From c15fb9fbe4a580ff1cf09dc76e781ce0b4e44481 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Mon, 9 Dec 2019 16:33:22 +0100 Subject: ... --- src/battle/src/Struct/PuppeteerAction.elm | 26 +---------- src/battle/src/Update/Puppeteer/AnnounceLoss.elm | 51 +++++++++++++++++++++ .../src/Update/Puppeteer/AnnounceVictory.elm | 28 ++++++++++++ .../src/Update/Puppeteer/RefreshCharacter.elm | 9 ++-- src/battle/src/Update/Puppeteer/StartTurn.elm | 53 ++++++++++++++++++++++ src/battle/src/Update/Puppeteer/Target.elm | 31 +++++++++++++ 6 files changed, 170 insertions(+), 28 deletions(-) create mode 100644 src/battle/src/Update/Puppeteer/AnnounceLoss.elm create mode 100644 src/battle/src/Update/Puppeteer/AnnounceVictory.elm create mode 100644 src/battle/src/Update/Puppeteer/StartTurn.elm create mode 100644 src/battle/src/Update/Puppeteer/Target.elm 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, []) -- cgit v1.2.3-70-g09d2