| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/battle/src/Struct/MessageBoard.elm | 8 | ||||
| -rw-r--r-- | src/battle/src/Struct/PuppeteerAction.elm | 9 | ||||
| -rw-r--r-- | src/battle/src/Update/Puppeteer.elm | 16 | ||||
| -rw-r--r-- | src/battle/src/Update/Puppeteer/DisplayMessage.elm | 41 | ||||
| -rw-r--r-- | src/battle/src/View/MessageBoard/Attack.elm | 41 | ||||
| -rw-r--r-- | src/css/src/battle.scss | 1 | ||||
| -rw-r--r-- | src/css/src/battle/portrait-effects.scss | 8 | 
7 files changed, 103 insertions, 21 deletions
| diff --git a/src/battle/src/Struct/MessageBoard.elm b/src/battle/src/Struct/MessageBoard.elm index 08d4c75..aa34573 100644 --- a/src/battle/src/Struct/MessageBoard.elm +++ b/src/battle/src/Struct/MessageBoard.elm @@ -5,6 +5,7 @@ module Struct.MessageBoard exposing        display,        maybe_get_current_message,        clear_current_message, +      clear_main_message,        new,        clear     ) @@ -12,9 +13,9 @@ module Struct.MessageBoard exposing  -- Elm -------------------------------------------------------------------------  -- Local Module ---------------------------------------------------------------- -import Struct.Attack  import Struct.Error  import Struct.HelpRequest +import Struct.TurnResult  --------------------------------------------------------------------------------  -- TYPES ----------------------------------------------------------------------- @@ -22,7 +23,7 @@ import Struct.HelpRequest  type Message =     Help Struct.HelpRequest.Type     | Error Struct.Error.Type -   | AttackReport Struct.Attack.Type +   | AttackReport Struct.TurnResult.Attack  type alias Type =     { @@ -61,6 +62,9 @@ clear_current_message board =              secondary_messages = remaining_secondary_messages           } +clear_main_message : Type -> Type +clear_main_message board = {board | main_message = Nothing} +  new : Type  new =     { diff --git a/src/battle/src/Struct/PuppeteerAction.elm b/src/battle/src/Struct/PuppeteerAction.elm index 1cd6403..9c0ba00 100644 --- a/src/battle/src/Struct/PuppeteerAction.elm +++ b/src/battle/src/Struct/PuppeteerAction.elm @@ -17,6 +17,7 @@ import BattleMap.Struct.Direction  import Constants.DisplayEffects  import Struct.Attack +import Struct.MessageBoard  import Struct.Battle  import Struct.TurnResult @@ -27,7 +28,8 @@ type Effect =     AnnounceLoss Int     | AnnounceVictory Int     | Focus Int -   | Hit Struct.Attack.Type +   | DisplayMessage Struct.MessageBoard.Message +   | ClearMessage Struct.MessageBoard.Message     | Move (Int, BattleMap.Struct.Direction.Type)     | RefreshCharacter (Bool, Int)     | RefreshCharactersOf (Bool, Int) @@ -63,19 +65,20 @@ from_attacked attack =                          Constants.DisplayEffects.attack_target                       )                    ), -                  (DisplayCharacterNavigator attacker_ix) +                  (DisplayCharacterNavigator attacker_ix), +                  (DisplayMessage (Struct.MessageBoard.AttackReport attack))                 ]              ),              (PerformFor                 (                    5.0,                    [ -                     (Hit (Struct.TurnResult.get_attack_data attack))                    ]                 )              ),              (Perform                 [ +                  (ClearMessage (Struct.MessageBoard.AttackReport attack)),                    (RefreshCharacter (True, attacker_ix)),                    (RefreshCharacter (True, defender_ix)),                    (ToggleCharacterEffect diff --git a/src/battle/src/Update/Puppeteer.elm b/src/battle/src/Update/Puppeteer.elm index ffa1d10..28ae6aa 100644 --- a/src/battle/src/Update/Puppeteer.elm +++ b/src/battle/src/Update/Puppeteer.elm @@ -12,8 +12,8 @@ import Struct.PuppeteerAction  import Update.Puppeteer.AnnounceLoss  import Update.Puppeteer.AnnounceVictory  import Update.Puppeteer.DisplayCharacterNavigator +import Update.Puppeteer.DisplayMessage  import Update.Puppeteer.Focus -import Update.Puppeteer.Hit  import Update.Puppeteer.Move  import Update.Puppeteer.RefreshCharacter  import Update.Puppeteer.RefreshCharactersOf @@ -48,8 +48,11 @@ forward effect model =              model           ) -      (Struct.PuppeteerAction.Hit attack) -> -         (Update.Puppeteer.Hit.forward attack model) +      (Struct.PuppeteerAction.DisplayMessage message) -> +         (Update.Puppeteer.DisplayMessage.forward message model) + +      (Struct.PuppeteerAction.ClearMessage message) -> +         (Update.Puppeteer.DisplayMessage.backward message model)        (Struct.PuppeteerAction.Move (character_ix, direction)) ->           (Update.Puppeteer.Move.forward character_ix direction model) @@ -105,8 +108,11 @@ backward effect model =        (Struct.PuppeteerAction.Focus character_ix) ->           (Update.Puppeteer.Focus.backward character_ix model) -      (Struct.PuppeteerAction.Hit attack) -> -         (Update.Puppeteer.Hit.backward attack model) +      (Struct.PuppeteerAction.DisplayMessage message) -> +         (Update.Puppeteer.DisplayMessage.backward message model) + +      (Struct.PuppeteerAction.ClearMessage message) -> +         (Update.Puppeteer.DisplayMessage.forward message model)        (Struct.PuppeteerAction.ToggleCharacterEffect (character_ix, deffect)) ->           (Update.Puppeteer.ToggleCharacterEffect.backward diff --git a/src/battle/src/Update/Puppeteer/DisplayMessage.elm b/src/battle/src/Update/Puppeteer/DisplayMessage.elm new file mode 100644 index 0000000..67602e7 --- /dev/null +++ b/src/battle/src/Update/Puppeteer/DisplayMessage.elm @@ -0,0 +1,41 @@ +module Update.Puppeteer.DisplayMessage exposing (forward, backward) + +-- Local Module ---------------------------------------------------------------- +import Struct.Event +import Struct.MessageBoard +import Struct.Model + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +forward : ( +      Struct.MessageBoard.Message -> +      Struct.Model.Type -> +      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) +   ) +forward message model = +   ( +      {model | +         message_board = +            (Struct.MessageBoard.display message model.message_board) +      }, +      [] +   ) + + +backward : ( +      Struct.MessageBoard.Message -> +      Struct.Model.Type -> +      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) +   ) +backward message model = +   ( +      {model | +         message_board = +            (Struct.MessageBoard.clear_main_message model.message_board) +      }, +      [] +   ) diff --git a/src/battle/src/View/MessageBoard/Attack.elm b/src/battle/src/View/MessageBoard/Attack.elm index 041b3e3..e589bab 100644 --- a/src/battle/src/View/MessageBoard/Attack.elm +++ b/src/battle/src/View/MessageBoard/Attack.elm @@ -15,6 +15,7 @@ import Struct.Battle  import Struct.Character  import Struct.Event  import Struct.Model +import Struct.TurnResult  import View.Controlled.CharacterCard @@ -168,7 +169,12 @@ get_attacker_card attack char =                    (get_attack_animation_class attack char)              )           ), -         (Html.Attributes.class "animated-portrait") +         (Html.Attributes.class "animated-portrait"), +         ( +            if (attack.order == Struct.Attack.Counter) +            then (Html.Attributes.class "initial-target") +            else (Html.Attributes.class "initial-attacker") +         )        ]        [           (View.Controlled.CharacterCard.get_minimal_html @@ -201,7 +207,12 @@ get_defender_card attack char =                    (get_defense_animation_class attack char)              )           ), -         (Html.Attributes.class "animated-portrait") +         (Html.Attributes.class "animated-portrait"), +         ( +            if (attack.order == Struct.Attack.Counter) +            then (Html.Attributes.class "initial-attacker") +            else (Html.Attributes.class "initial-target") +         )        ]        [           (View.Controlled.CharacterCard.get_minimal_html -1 char) @@ -229,11 +240,19 @@ get_placeholder_html characters attacker_ix defender_ix attack =                 (Html.Attributes.class "message-attack")              ]              ( -               [ -                  (get_attacker_card attack atkchar), -                  (get_attack_html atkchar defchar attack), -                  (get_defender_card attack defchar) -               ] +               if (attack.order == Struct.Attack.Counter) +               then +                  [ +                     (get_defender_card attack defchar), +                     (get_attack_html atkchar defchar attack), +                     (get_attacker_card attack atkchar) +                  ] +               else +                  [ +                     (get_attacker_card attack atkchar), +                     (get_attack_html atkchar defchar attack), +                     (get_defender_card attack defchar) +                  ]              )           ) @@ -250,13 +269,13 @@ get_placeholder_html characters attacker_ix defender_ix attack =  --------------------------------------------------------------------------------  get_html : (        Struct.Model.Type -> -      Struct.Attack.Type -> +      Struct.TurnResult.Attack ->        (Html.Html Struct.Event.Type)     )  get_html model attack =     (get_placeholder_html        (Struct.Battle.get_characters model.battle) -      0 -- TODO: get attacker IX -      0 -- TODO: get defender IX -      attack +      (Struct.TurnResult.get_attack_actor_index attack) +      (Struct.TurnResult.get_attack_target_index attack) +      (Struct.TurnResult.get_attack_data attack)     ) diff --git a/src/css/src/battle.scss b/src/css/src/battle.scss index 536b2fa..1977011 100644 --- a/src/css/src/battle.scss +++ b/src/css/src/battle.scss @@ -4,6 +4,7 @@  @import 'shared/omnimod-icons';  @import 'battle/controlled-panel'; +@import 'battle/portrait-effects';  @import 'battle/keyframes';  @import 'battle/map';  @import 'battle/message-board'; diff --git a/src/css/src/battle/portrait-effects.scss b/src/css/src/battle/portrait-effects.scss new file mode 100644 index 0000000..5054d44 --- /dev/null +++ b/src/css/src/battle/portrait-effects.scss @@ -0,0 +1,8 @@ +.animated-portrait.initial-attacker .character-portrait +{ +} + +.animated-portrait.initial-target .character-portrait +{ +   transform: scale(-1, 1); +} | 


