| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-22 14:35:25 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-22 14:35:25 +0200 | 
| commit | 16abf2b1e598cb89a1d4251c2313e6f2e165f7da (patch) | |
| tree | 403fcc9802772a54fe006f883addd4a8b3b49d16 /client/elm/battlemap/src/Update.elm | |
| parent | 2d20dc042a386bc9f66bc5f535403227f9acf1b1 (diff) | |
Clears up Update.elm a bit.
Diffstat (limited to 'client/elm/battlemap/src/Update.elm')
| -rw-r--r-- | client/elm/battlemap/src/Update.elm | 104 | 
1 files changed, 9 insertions, 95 deletions
| diff --git a/client/elm/battlemap/src/Update.elm b/client/elm/battlemap/src/Update.elm index 2abddb5..5c97ab8 100644 --- a/client/elm/battlemap/src/Update.elm +++ b/client/elm/battlemap/src/Update.elm @@ -2,6 +2,10 @@ module Update exposing (update, Type(..))  import Model +import Update.DirectionRequest +import Update.SelectCharacter +import Update.EndTurn +  import Battlemap  import Battlemap.Direction  import Battlemap.Navigator @@ -15,104 +19,14 @@ type Type =     | SelectCharacter Character.Ref     | EndTurn -handle_direction_request : ( -      Model.Type -> -      Battlemap.Direction.Type -> -      Model.Type -   ) -handle_direction_request model dir = -   (case (model.selection, model.navigator) of -      (Nothing, _) -> model -      (_ , Nothing) -> model -      ((Just char_id), (Just nav)) -> -         let -            (new_bmap, new_nav) = -               (Battlemap.Navigator.go -                  model.battlemap -                  nav -                  dir -                  (Dict.values model.characters) -               ) -         in -            {model | -               battlemap = new_bmap, -               navigator = (Just new_nav) -            } -   ) - -handle_select_character : Model.Type -> Character.Ref -> Model.Type -handle_select_character model char_id = -   {model | -      selection = (Just char_id), -      battlemap = -         (Battlemap.apply_to_all_tiles -            model.battlemap -            (Battlemap.Navigator.reset_navigation) -         ), -      navigator = -         (case (Dict.get char_id model.characters) of -            Nothing -> Nothing -            (Just char) -> -               (Just -                  (Battlemap.Navigator.new_navigator -                     char.location -                     char.movement_points -                  ) -               ) -         ) -   } - -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 (Dict.get char_id model.characters) of -            Nothing -> model -            (Just char) -> -               {model | -                  navigator = -                     (Just -                        (Battlemap.Navigator.new_navigator -                           nav.current_location -                           char.movement_points -                        ) -                     ), -                  battlemap = -                     (Battlemap.apply_to_all_tiles -                        (Battlemap.apply_to_tile_unsafe -                           (Battlemap.apply_to_tile_unsafe -                              model.battlemap -                              char.location -                              (\t -> {t | char_level = Nothing}) -                           ) -                           nav.current_location -                           (\t -> {t | char_level = (Just char_id)}) -                        ) -                        (Battlemap.Navigator.reset_navigation) -                     ), -                  characters = -                     (Dict.update -                        char_id -                        (\mc -> -                           case mc of -                              Nothing -> Nothing -                              (Just c) -> -                                 (Just {c | location = nav.current_location}) -                        ) -                        model.characters -                     ) -               } -         ) -  update : Type -> Model.Type -> Model.Type  update msg model =     case msg of        (DirectionRequest d) -> -         (handle_direction_request model d) +         (Update.DirectionRequest.apply_to model d) +        (SelectCharacter char_id) -> -         (handle_select_character model char_id) +         (Update.SelectCharacter.apply_to model char_id) +        EndTurn -> -         (handle_end_turn model) -      --_ -> model +         (Update.EndTurn.apply_to model) | 


