| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2019-12-06 13:30:36 +0100 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2019-12-06 13:30:36 +0100 | 
| commit | dbd68714bc60cfc7682cd1c131120be9a6235234 (patch) | |
| tree | 3ee1b1de5162db7bab1c40831f0e8e0e241d8c33 /src | |
| parent | 644b742c33685d336efebfa990a23a0fd1e38c99 (diff) | |
...
Diffstat (limited to 'src')
| -rw-r--r-- | src/battle/src/Struct/PuppeteerAction.elm | 95 | ||||
| -rw-r--r-- | src/battle/src/Update/Puppeteer/Focus.elm | 42 | 
2 files changed, 117 insertions, 20 deletions
| diff --git a/src/battle/src/Struct/PuppeteerAction.elm b/src/battle/src/Struct/PuppeteerAction.elm index 38a22b2..8e4d77a 100644 --- a/src/battle/src/Struct/PuppeteerAction.elm +++ b/src/battle/src/Struct/PuppeteerAction.elm @@ -1,7 +1,7 @@  module Struct.PuppeteerAction exposing     ( -      Type, -      Action(..), +      Type(..), +      Group(..),        from_turn_result,        forward,        backward @@ -21,15 +21,20 @@ import Struct.TurnResult  --------------------------------------------------------------------------------  -- TYPES -----------------------------------------------------------------------  -------------------------------------------------------------------------------- -type Type = -   Inactive -   | Target (Int, Int) -   | Hit Struct.Attack.Type +type Effect = +   AnnounceLoss Int +   | AnnounceVictory Int     | Focus Int +   | Hit Struct.Attack.Type     | Move (Int, Battle.Struct.Direction) -   | SwapWeapons Int     | RefreshCharacter Int -   | Sequence (List Type) +   | StartTurn Int +   | SwapWeapons Int +   | Target (Int, Int) + +type Type = +   Perform (List Effect) +   | PerformFor (Float, (List Effect))  --------------------------------------------------------------------------------  -- LOCAL ----------------------------------------------------------------------- @@ -41,10 +46,12 @@ from_attacked attack =        defender_ix = (Struct.TurnResult.get_attack_defender_index attack)     in        [ -         (Focus attacker_ix), -         (Focus defender_ix), -         (Hit attack), -         (Sequence +         (PerformFor (2.0, [(Focus attacker_ix)])), +         (PerformFor (2.0, [(Focus defender_ix)])), +         (List.map +            (PerformFor (..., (Hit attack))) +         ), +         (Perform              [                 (RefreshCharacter attacker_ix),                 (RefreshCharacter defender_ix) @@ -57,29 +64,77 @@ from_moved movement =     let actor_ix = (Struct.TurnResult.get_movement_actor movement) in        (           [ -            (Focus actor_ix), -            | (List.map (\dir -> (Move (actor_ix, dir)))) +            (PerformFor (1.0, [(Focus actor_ix)])), +            | +            (List.map +               (\dir -> +                  (PerformFor +                     ( +                        0.5, +                        [(Move (actor_ix, dir))] +                     ) +                  ) +               ) +            )           ]           ++ -         [ (RefreshCharacter actor_ix) ] +         [ (Perform [(RefreshCharacter actor_ix)]) ]        )  from_switched_weapon : Struct.TurnResult.WeaponSwitch -> (List Type)  from_switched_weapon weapon_switch =     let actor_ix = (Struct.TurnResult.get_weapon_switch_actor weapon_switch) in        [ -         (Focus actor_ix), -         (SwapWeapons actor_ix) +         (PerformFor (1.0, [(Focus actor_ix)])), +         (PerformFor (2.0, [(SwapWeapons actor_ix)]))        ]  from_player_won : Struct.TurnResult.PlayerVictory -> (List Type) -from_player_won player_victory = [] +from_player_won player_victory = +   [ +      (PerformFor +         ( +            2.0, +            [ +               (AnnounceVictory +                  (Struct.TurnResult.get_player_victory_index player_victory) +               ) +            ] +         ) +      ) +   ]  from_player_lost : Struct.TurnResult.PlayerLoss -> (List Type) -from_player_lost player_loss = [] +from_player_lost player_loss = +   [ +      (PerformFor +         ( +            2.0, +            [ +               (AnnounceLoss +                  (Struct.TurnResult.get_player_loss_index player_loss) +               ) +            ] +         ) +      ) +   ]  from_player_turn_started : Struct.TurnResult.PlayerTurnStart -> (List Type) -from_player_turn_started player_turn_started = [] +from_player_turn_started player_turn_started = +   [ +      (PerformFor +         ( +            2.0, +            [ +               (StartPlayerTurn +                  (Struct.TurnResult.get_player_start_of_turn_index +                     player_turn_started +                  ) +               ) +            ] +         ) +      ) +   ]  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- diff --git a/src/battle/src/Update/Puppeteer/Focus.elm b/src/battle/src/Update/Puppeteer/Focus.elm new file mode 100644 index 0000000..f956b1f --- /dev/null +++ b/src/battle/src/Update/Puppeteer/Focus.elm @@ -0,0 +1,42 @@ +module Update.Puppeteer.Focus exposing (forward, backward) + +-- Local Module ---------------------------------------------------------------- +import Struct.Model +import Struct.Event +import Struct.UI + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +forward : ( +      Int -> +      Struct.Model.Type -> +      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) +   ) +forward actor_ix model = +   ( +      model, +      [ +         (Task.attempt +            (Struct.Event.attempted) +            (Action.Scroll.to +               (Struct.Character.get_location +                  (Struct.Battle.get_character actor_ix model.battle) +               ) +               model.ui +            ) +         ) +      ] +   ) + + +backward : ( +      Int -> +      Struct.Model.Type -> +      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) +   ) +backward actor_ix model = (model, []) | 


