summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2017-10-19 13:30:40 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2017-10-19 13:30:40 +0200 |
commit | e008855086d124f0de14eacc858ecb57d23e371c (patch) | |
tree | e3fe94dcf2966d17ac970b4b9cbbf6998c1f34a6 /elm/battlemap/src/Model | |
parent | ab299e08cee6ee9b2b122ce87b9bdab3b0dd637c (diff) |
Starting a more modular approach for the website.
Diffstat (limited to 'elm/battlemap/src/Model')
-rw-r--r-- | elm/battlemap/src/Model/EndTurn.elm | 63 | ||||
-rw-r--r-- | elm/battlemap/src/Model/RequestDirection.elm | 81 | ||||
-rw-r--r-- | elm/battlemap/src/Model/SelectCharacter.elm | 41 | ||||
-rw-r--r-- | elm/battlemap/src/Model/SelectTile.elm | 62 |
4 files changed, 0 insertions, 247 deletions
diff --git a/elm/battlemap/src/Model/EndTurn.elm b/elm/battlemap/src/Model/EndTurn.elm deleted file mode 100644 index 441f3b7..0000000 --- a/elm/battlemap/src/Model/EndTurn.elm +++ /dev/null @@ -1,63 +0,0 @@ -module Model.EndTurn exposing (apply_to) - -import Dict - -import Battlemap - -import Character - -import Error - -import Model - -make_it_so : Model.Type -> Model.Type -make_it_so model = - case model.selection of - (Model.SelectedCharacter char_id) -> - case (Battlemap.try_getting_navigator_location model.battlemap) of - (Just location) -> - (Model.reset - model - (Dict.update - char_id - (\maybe_char -> - case maybe_char of - (Just char) -> - (Just - (Character.set_location location char) - ) - Nothing -> Nothing - ) - model.characters - ) - ) - Nothing -> - (Model.invalidate - model - (Error.new - Error.Programming - "EndTurn: model moving char, no navigator location." - ) - ) - _ -> - (Model.invalidate - model - (Error.new - Error.Programming - "EndTurn: model moving char, no char selected." - ) - ) - -apply_to : Model.Type -> Model.Type -apply_to model = - case (Model.get_state model) of - Model.MovingCharacterWithButtons -> (make_it_so model) - Model.MovingCharacterWithClick -> (make_it_so model) - _ -> - (Model.invalidate - model - (Error.new - Error.IllegalAction - "This can only be done while moving a character." - ) - ) diff --git a/elm/battlemap/src/Model/RequestDirection.elm b/elm/battlemap/src/Model/RequestDirection.elm deleted file mode 100644 index cf600e6..0000000 --- a/elm/battlemap/src/Model/RequestDirection.elm +++ /dev/null @@ -1,81 +0,0 @@ -module Model.RequestDirection exposing (apply_to) - -import Dict - -import Battlemap -import Battlemap.Direction -import Battlemap.Location - - -import Character - -import Model -import Error - -make_it_so : Model.Type -> Battlemap.Direction.Type -> Model.Type -make_it_so model dir = - case model.selection of - (Model.SelectedCharacter char_id) -> - let - new_bmap = - (Battlemap.try_adding_step_to_navigator - model.battlemap - (\loc -> - (List.all - (\char -> - ( - ((Character.get_ref char) == char_id) - || - ( - (Battlemap.Location.get_ref - (Character.get_location char) - ) - /= - (Battlemap.Location.get_ref loc) - ) - ) - ) - (Dict.values model.characters) - ) - ) - dir - ) - in - case new_bmap of - (Just bmap) -> - {model | - state = Model.MovingCharacterWithButtons, - battlemap = bmap - } - - Nothing -> - (Model.invalidate - model - (Error.new - Error.IllegalAction - "Unreachable/occupied tile." - ) - ) - - _ -> - (Model.invalidate - model - (Error.new - Error.Programming - "DirectionRequest: model moving char, no char selected." - ) - ) - -apply_to : Model.Type -> Battlemap.Direction.Type -> Model.Type -apply_to model dir = - case (Model.get_state model) of - Model.MovingCharacterWithButtons -> (make_it_so model dir) - Model.MovingCharacterWithClick -> (make_it_so model dir) - _ -> - (Model.invalidate - model - (Error.new - Error.IllegalAction - "This can only be done while moving a character." - ) - ) diff --git a/elm/battlemap/src/Model/SelectCharacter.elm b/elm/battlemap/src/Model/SelectCharacter.elm deleted file mode 100644 index 7cc2102..0000000 --- a/elm/battlemap/src/Model/SelectCharacter.elm +++ /dev/null @@ -1,41 +0,0 @@ -module Model.SelectCharacter exposing (apply_to) - -import Dict - -import Character - -import Battlemap - -import Model -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) diff --git a/elm/battlemap/src/Model/SelectTile.elm b/elm/battlemap/src/Model/SelectTile.elm deleted file mode 100644 index 0fe30fa..0000000 --- a/elm/battlemap/src/Model/SelectTile.elm +++ /dev/null @@ -1,62 +0,0 @@ -module Model.SelectTile exposing (apply_to) - -import Battlemap -import Battlemap.Direction -import Battlemap.Location - -import Model.RequestDirection -import Model.EndTurn - -import Model -import Error - -autopilot : Battlemap.Direction.Type -> Model.Type -> Model.Type -autopilot dir model = - (Model.RequestDirection.apply_to model dir) - -go_to_tile : Model.Type -> Battlemap.Location.Ref -> Model.Type -go_to_tile model loc_ref = - case (Battlemap.try_getting_navigator_location model.battlemap) of - (Just nav_loc) -> - if (loc_ref == (Battlemap.Location.get_ref nav_loc)) - then - -- We are already there. - if (model.state == Model.MovingCharacterWithClick) - then - -- And we just clicked on that tile. - (Model.EndTurn.apply_to model) - else - -- And we didn't just click on that tile. - {model | state = Model.MovingCharacterWithClick} - else - -- We have to try getting there. - case - (Battlemap.try_getting_navigator_path_to - model.battlemap - loc_ref - ) - of - (Just path) -> - let - new_model = (List.foldr (autopilot) model path) - in - {new_model | state = Model.MovingCharacterWithClick} - - Nothing -> -- Clicked outside of the range indicator - (Model.reset model model.characters) - Nothing -> -- Clicked outside of the range indicator - (Model.reset model model.characters) - -apply_to : Model.Type -> Battlemap.Location.Ref -> Model.Type -apply_to model loc_ref = - case (Model.get_state model) of - Model.MovingCharacterWithButtons -> (go_to_tile model loc_ref) - Model.MovingCharacterWithClick -> (go_to_tile model loc_ref) - _ -> - (Model.invalidate - model - (Error.new - Error.IllegalAction - "This can only be done while moving a character." - ) - ) |