| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'client/elm/battlemap/src/Update.elm')
| -rw-r--r-- | client/elm/battlemap/src/Update.elm | 65 | 
1 files changed, 36 insertions, 29 deletions
| diff --git a/client/elm/battlemap/src/Update.elm b/client/elm/battlemap/src/Update.elm index 0fef667..2abddb5 100644 --- a/client/elm/battlemap/src/Update.elm +++ b/client/elm/battlemap/src/Update.elm @@ -1,23 +1,25 @@ -module Update exposing (update, Msg(..)) +module Update exposing (update, Type(..)) -import Model exposing (Model, model) +import Model -import Battlemap exposing (apply_to_all_tiles, apply_to_tile_unsafe) -import Battlemap.Direction exposing (Direction) +import Battlemap +import Battlemap.Direction +import Battlemap.Navigator -import Battlemap.Navigator as Nr exposing (go, reset_navigation) +import Dict -import Dict as Dt exposing (get, update, values) +import Character -import Character exposing (CharacterRef) - - -type Msg = -   DirectionRequest Direction -   | SelectCharacter CharacterRef +type Type = +   DirectionRequest Battlemap.Direction.Type +   | SelectCharacter Character.Ref     | EndTurn -handle_direction_request : Model -> Direction -> Model +handle_direction_request : ( +      Model.Type -> +      Battlemap.Direction.Type -> +      Model.Type +   )  handle_direction_request model dir =     (case (model.selection, model.navigator) of        (Nothing, _) -> model @@ -25,11 +27,11 @@ handle_direction_request model dir =        ((Just char_id), (Just nav)) ->           let              (new_bmap, new_nav) = -               (Nr.go +               (Battlemap.Navigator.go                    model.battlemap                    nav                    dir -                  (Dt.values model.characters) +                  (Dict.values model.characters)                 )           in              {model | @@ -38,44 +40,49 @@ handle_direction_request model dir =              }     ) -handle_select_character : Model -> CharacterRef -> Model +handle_select_character : Model.Type -> Character.Ref -> Model.Type  handle_select_character model char_id =     {model |        selection = (Just char_id),        battlemap = -         (apply_to_all_tiles +         (Battlemap.apply_to_all_tiles              model.battlemap -            (reset_navigation) +            (Battlemap.Navigator.reset_navigation)           ),        navigator = -         (case (Dt.get char_id model.characters) of +         (case (Dict.get char_id model.characters) of              Nothing -> Nothing              (Just char) -> -               (Just (Nr.new_navigator char.location char.movement_points)) +               (Just +                  (Battlemap.Navigator.new_navigator +                     char.location +                     char.movement_points +                  ) +               )           )     } -handle_end_turn : Model -> Model +handle_end_turn : Model.Type -> Model.Type  handle_end_turn model =     case (model.navigator, model.selection) of        (_, Nothing) -> model        (Nothing, _) -> model        ((Just nav), (Just char_id)) -> -         (case (Dt.get char_id model.characters) of +         (case (Dict.get char_id model.characters) of              Nothing -> model              (Just char) ->                 {model |                    navigator =                       (Just -                        (Nr.new_navigator +                        (Battlemap.Navigator.new_navigator                             nav.current_location                             char.movement_points                          )                       ),                    battlemap = -                     (apply_to_all_tiles -                        (apply_to_tile_unsafe -                           (apply_to_tile_unsafe +                     (Battlemap.apply_to_all_tiles +                        (Battlemap.apply_to_tile_unsafe +                           (Battlemap.apply_to_tile_unsafe                                model.battlemap                                char.location                                (\t -> {t | char_level = Nothing}) @@ -83,10 +90,10 @@ handle_end_turn model =                             nav.current_location                             (\t -> {t | char_level = (Just char_id)})                          ) -                        (reset_navigation) +                        (Battlemap.Navigator.reset_navigation)                       ),                    characters = -                     (Dt.update +                     (Dict.update                          char_id                          (\mc ->                             case mc of @@ -99,7 +106,7 @@ handle_end_turn model =                 }           ) -update : Msg -> Model -> Model +update : Type -> Model.Type -> Model.Type  update msg model =     case msg of        (DirectionRequest d) -> | 


