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) |