summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2017-10-19 13:30:40 +0200
committernsensfel <SpamShield0@noot-noot.org>2017-10-19 13:30:40 +0200
commite008855086d124f0de14eacc858ecb57d23e371c (patch)
treee3fe94dcf2966d17ac970b4b9cbbf6998c1f34a6 /elm/battlemap/src/Model
parentab299e08cee6ee9b2b122ce87b9bdab3b0dd637c (diff)
Starting a more modular approach for the website.
Diffstat (limited to 'elm/battlemap/src/Model')
-rw-r--r--elm/battlemap/src/Model/EndTurn.elm63
-rw-r--r--elm/battlemap/src/Model/RequestDirection.elm81
-rw-r--r--elm/battlemap/src/Model/SelectCharacter.elm41
-rw-r--r--elm/battlemap/src/Model/SelectTile.elm62
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."
- )
- )