summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2019-12-09 16:33:22 +0100
committernsensfel <SpamShield0@noot-noot.org>2019-12-09 16:33:22 +0100
commitc15fb9fbe4a580ff1cf09dc76e781ce0b4e44481 (patch)
tree555933cb4d917de07f97d89931394cfc80d1d342
parentaa78efddd31bba27566a5bae7de50e26405bdb94 (diff)
...
-rw-r--r--src/battle/src/Struct/PuppeteerAction.elm26
-rw-r--r--src/battle/src/Update/Puppeteer/AnnounceLoss.elm51
-rw-r--r--src/battle/src/Update/Puppeteer/AnnounceVictory.elm28
-rw-r--r--src/battle/src/Update/Puppeteer/RefreshCharacter.elm9
-rw-r--r--src/battle/src/Update/Puppeteer/StartTurn.elm53
-rw-r--r--src/battle/src/Update/Puppeteer/Target.elm31
6 files changed, 170 insertions, 28 deletions
diff --git a/src/battle/src/Struct/PuppeteerAction.elm b/src/battle/src/Struct/PuppeteerAction.elm
index 8e4d77a..6f7b102 100644
--- a/src/battle/src/Struct/PuppeteerAction.elm
+++ b/src/battle/src/Struct/PuppeteerAction.elm
@@ -2,9 +2,7 @@ module Struct.PuppeteerAction exposing
(
Type(..),
Group(..),
- from_turn_result,
- forward,
- backward
+ from_turn_result
)
-- Elm -------------------------------------------------------------------------
@@ -155,25 +153,3 @@ from_turn_results turn_result =
(Struct.TurnResult.PlayerTurnStarted player_turn_start) ->
(from_player_turn_started player_turn_start)
-
-forward : Type -> Struct.Battle.Type -> Struct.Battle.Type
-forward puppeteer_action battle =
- case puppeteer_action of
- Inactive -> battle
- (Target (actor_ix, target_ix)) ->
- (forward_target actor_ix target_ix battle)
- (Hit attack) -> (forward_hit attack battle)
- (Focus actor_ix) -> (forward_focus actor_ix battle)
- (Move (actor_ix, direction)) -> (forward_move actor_ix direction battle)
- (SwapWeapons actor_ix) -> (forward_swap_weapons actor_ix battle)
- (RefreshCharacter actor_ix) -> (forward_refresh_character actor_ix battle)
- (Sequence list) -> (List.foldl (forward) battle list)
-
-backward : Type -> Struct.Battle.Type -> Struct.Battle.Type
-backward puppeteer_action battle =
- case puppeteer_action of
- (Hit attack) -> (backward_hit attack battle)
- (Move (actor_ix, direction)) -> (backward_move actor_ix direction battle)
- (SwapWeapons actor_ix) -> (backward_swap_weapons actor_ix battle)
- (Sequence list) -> (List.foldr (backward) battle list)
- _ -> battle
diff --git a/src/battle/src/Update/Puppeteer/AnnounceLoss.elm b/src/battle/src/Update/Puppeteer/AnnounceLoss.elm
new file mode 100644
index 0000000..0e4c320
--- /dev/null
+++ b/src/battle/src/Update/Puppeteer/AnnounceLoss.elm
@@ -0,0 +1,51 @@
+module Update.Puppeteer.AnnounceLoss exposing (forward, backward)
+
+-- Local Module ----------------------------------------------------------------
+import Struct.Battle
+import Struct.Character
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+set_player_is_defeated : (
+ Bool ->
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+set_player_is_defeated val player_ix model =
+ (
+ {model |
+ battle =
+ (Struct.Battle.set_characters
+ (Array.map
+ (\character ->
+ if ((Struct.Character.get_player_index c) == player_ix)
+ then (Struct.Character.set_defeated val character)
+ else character
+ )
+ )
+ (Struct.Battle.get_characters model.battle)
+ )
+ },
+ []
+ )
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+forward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+forward player_ix model = (set_player_is_defeated True player_ix model)
+
+backward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+backward player_ix model = (set_player_is_defeated False player_ix model)
diff --git a/src/battle/src/Update/Puppeteer/AnnounceVictory.elm b/src/battle/src/Update/Puppeteer/AnnounceVictory.elm
new file mode 100644
index 0000000..73d3dab
--- /dev/null
+++ b/src/battle/src/Update/Puppeteer/AnnounceVictory.elm
@@ -0,0 +1,28 @@
+module Update.Puppeteer.AnnounceVictory exposing (forward, backward)
+
+-- Local Module ----------------------------------------------------------------
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+forward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+forward player_ix model =
+ -- TODO: implement
+ (model, [])
+
+backward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+backward player_ix model = (model, [])
diff --git a/src/battle/src/Update/Puppeteer/RefreshCharacter.elm b/src/battle/src/Update/Puppeteer/RefreshCharacter.elm
index 4956c3f..75b86dc 100644
--- a/src/battle/src/Update/Puppeteer/RefreshCharacter.elm
+++ b/src/battle/src/Update/Puppeteer/RefreshCharacter.elm
@@ -1,5 +1,11 @@
module Update.Puppeteer.RefreshCharacter exposing (forward, backward)
+-- FIXME: This might not be the way to go about it. This works when going
+-- forward, as all the "dirty" changes have applied before the character is
+-- refreshed, but this step will appear *before* the changes when going
+-- backward, which means those changes are not taken into account during the
+-- "refresh".
+
-- Local Module ----------------------------------------------------------------
import Action.Scroll
@@ -29,9 +35,6 @@ forward actor_ix model =
(Struct.Battle.set_character
actor_ix
(Struct.Character.set_location
- -- TODO:
- -- Handle both Struct.Character.dirty_set_location and
- -- BattleCharacters.Struct.Character.dirty_switch_weapons.
(Struct.Character.get_location character)
character
)
diff --git a/src/battle/src/Update/Puppeteer/StartTurn.elm b/src/battle/src/Update/Puppeteer/StartTurn.elm
new file mode 100644
index 0000000..9681198
--- /dev/null
+++ b/src/battle/src/Update/Puppeteer/StartTurn.elm
@@ -0,0 +1,53 @@
+module Update.Puppeteer.StartTurn exposing (forward, backward)
+
+-- Local Module ----------------------------------------------------------------
+import Struct.Battle
+import Struct.Character
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+set_player_characters_are_enabled : (
+ Bool ->
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+set_player_characters_are_enabled val player_ix model =
+ (
+ {model |
+ battle =
+ (Struct.Battle.set_characters
+ (Array.map
+ (\character ->
+ if ((Struct.Character.get_player_index c) == player_ix)
+ then (Struct.Character.set_enabled val character)
+ else character
+ )
+ )
+ (Struct.Battle.get_characters model.battle)
+ )
+ },
+ []
+ )
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+forward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+forward player_ix model =
+ (set_player_characters_are_enabled True player_ix model)
+
+backward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+backward player_ix model =
+ (set_player_characters_are_enabled False player_ix model)
diff --git a/src/battle/src/Update/Puppeteer/Target.elm b/src/battle/src/Update/Puppeteer/Target.elm
new file mode 100644
index 0000000..7989587
--- /dev/null
+++ b/src/battle/src/Update/Puppeteer/Target.elm
@@ -0,0 +1,31 @@
+module Update.Puppeteer.Target exposing (forward, backward)
+
+-- Local Module ----------------------------------------------------------------
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+forward : (
+ Int ->
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+forward actor_ix target_ix model =
+ -- TODO: implement.
+ (model, [])
+
+
+backward : (
+ Int ->
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+backward actor_ix target_ix model = (model, [])