summaryrefslogtreecommitdiff |
diff options
author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-05-29 17:48:47 +0200 |
---|---|---|
committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-05-29 17:48:47 +0200 |
commit | d35c5a2213bdc13cfdcd5dc15dbe5000b655ea25 (patch) | |
tree | e46ee2802ebb992a6a23ba57be468d7ccc91a81e | |
parent | 9193b4b42310f6d5712373a4adcb95375e3699e9 (diff) |
Restores the message board attack displays.
-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); +} |