summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-05-29 17:48:47 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-05-29 17:48:47 +0200
commitd35c5a2213bdc13cfdcd5dc15dbe5000b655ea25 (patch)
treee46ee2802ebb992a6a23ba57be468d7ccc91a81e
parent9193b4b42310f6d5712373a4adcb95375e3699e9 (diff)
Restores the message board attack displays.
-rw-r--r--src/battle/src/Struct/MessageBoard.elm8
-rw-r--r--src/battle/src/Struct/PuppeteerAction.elm9
-rw-r--r--src/battle/src/Update/Puppeteer.elm16
-rw-r--r--src/battle/src/Update/Puppeteer/DisplayMessage.elm41
-rw-r--r--src/battle/src/View/MessageBoard/Attack.elm41
-rw-r--r--src/css/src/battle.scss1
-rw-r--r--src/css/src/battle/portrait-effects.scss8
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);
+}