From 5a75000ec7b961ad5fe93814e5b7905cacbdba49 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Thu, 12 Oct 2017 19:46:36 +0200 Subject: Started a rather large reorganization. --- elm/battlemap/src/Model/SelectCharacter.elm | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 elm/battlemap/src/Model/SelectCharacter.elm (limited to 'elm/battlemap/src/Model/SelectCharacter.elm') diff --git a/elm/battlemap/src/Model/SelectCharacter.elm b/elm/battlemap/src/Model/SelectCharacter.elm new file mode 100644 index 0000000..942e84d --- /dev/null +++ b/elm/battlemap/src/Model/SelectCharacter.elm @@ -0,0 +1,42 @@ +module Model.SelectCharacter exposing (apply_to) + +import Dict + +import Character + +import Battlemap + +import Model +import Event +import Error + +make_it_so : Model.Type -> Character.Ref -> Model.Type +make_it_so model char_id = + case (Dict.get char_id model.characters) of + (Just char) -> + {model | + state = Model.MovingCharacterWithClick, + selection = (Model.SelectedCharacter char_id), + battlemap = + (Battlemap.set_navigator + (Character.get_location char) + (Character.get_movement_points char) + (Character.get_attack_range char) + (\e -> True) -- TODO: check for characters. + model.battlemap + ) + } + + Nothing -> + (Model.invalidate + model + (Error.new + Error.Programming + "SelectCharacter: Unknown char selected." + ) + ) + +apply_to : Model.Type -> Character.Ref -> Model.Type +apply_to model char_id = + case (Model.get_state model) of + _ -> (make_it_so model char_id) -- cgit v1.2.3-70-g09d2