summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2017-12-11 19:56:33 +0100
committernsensfel <SpamShield0@noot-noot.org>2017-12-11 19:56:33 +0100
commitc7afb68ff6182075a103bfc033caa90f69cab10a (patch)
tree4b0351d8f8655b61d8873db63fd6207caeac90f2
parent90e1669ffd68398c57872cd838829787d73c22ac (diff)
Re-enables preemptively moving the main character.
-rw-r--r--src/battlemap/src/Update/EndTurn.elm100
1 files changed, 54 insertions, 46 deletions
diff --git a/src/battlemap/src/Update/EndTurn.elm b/src/battlemap/src/Update/EndTurn.elm
index 150188a..0e046bf 100644
--- a/src/battlemap/src/Update/EndTurn.elm
+++ b/src/battlemap/src/Update/EndTurn.elm
@@ -16,64 +16,72 @@ import Struct.Model
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
-make_it_so : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))
-make_it_so model =
- case -- (Struct.Battlemap.try_getting_navigator_location model.battlemap) of
- (Just {x = 0, y = 0})
- of
- (Just location) ->
- case (Send.CharacterTurn.try model) of
- (Just cmd) ->
- (
- (Struct.Model.reset
- model
- (Dict.update
- "0" --char_ref
- (\maybe_char ->
- case maybe_char of
- (Just char) ->
- (Just
- (Struct.Character.set_enabled
- (Struct.Character.set_location
- location
- char
- )
- False
- )
- )
- Nothing -> Nothing
- )
- model.characters
- )
- ),
- cmd
- )
-
- Nothing ->
- (model, Cmd.none)
-
- Nothing ->
+make_it_so : (
+ Struct.Model.Type ->
+ Struct.Character.Ref ->
+ Struct.Navigator.Type ->
+ (Struct.Model.Type, (Cmd Struct.Event.Type))
+ )
+make_it_so model char_id nav =
+ case (Send.CharacterTurn.try model) of
+ (Just cmd) ->
(
- (Struct.Model.invalidate
+ (Struct.Model.reset
model
- (Struct.Error.new
- Struct.Error.Programming
- "EndTurn: model moving char, no navigator location."
+ (Dict.update
+ char_id
+ (\maybe_char ->
+ case maybe_char of
+ (Just char) ->
+ (Just
+ (Struct.Character.set_enabled
+ (Struct.Character.set_location
+ (Struct.Navigator.get_current_location nav)
+ char
+ )
+ False
+ )
+ )
+ Nothing -> Nothing
+ )
+ model.characters
)
),
- Cmd.none
+ cmd
)
+ Nothing ->
+ (model, Cmd.none)
+
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))
apply_to model =
- case (Struct.CharacterTurn.get_state model.char_turn) of
- Struct.CharacterTurn.MovedCharacter -> (make_it_so model)
- Struct.CharacterTurn.ChoseTarget -> (make_it_so model)
+ case
+ (
+ (Struct.CharacterTurn.get_state model.char_turn),
+ (Struct.CharacterTurn.try_getting_controlled_character
+ model.char_turn
+ ),
+ (Struct.CharacterTurn.try_getting_navigator model.char_turn)
+ )
+ of
+ (
+ Struct.CharacterTurn.MovedCharacter,
+ (Just char_id),
+ (Just nav)
+ ) ->
+ (make_it_so model char_id nav)
+
+ (
+ Struct.CharacterTurn.ChoseTarget,
+ (Just char_id),
+ (Just nav)
+ ) ->
+ (make_it_so model char_id nav)
- _ ->
+ (_, _, _) ->
(
(Struct.Model.invalidate
model