summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2019-12-17 17:44:38 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2019-12-17 17:44:38 +0100 |
commit | 0db9aabba95a33fd23c192343721559f9ca15581 (patch) | |
tree | a32f83b1d9640f969ee4be25d2bf034f7ad36bb1 /src/battle | |
parent | a22cf9ed01111999a8397ed4a9723d97ea407bdd (diff) |
...
Diffstat (limited to 'src/battle')
-rw-r--r-- | src/battle/src/Struct/MessageBoard.elm | 72 | ||||
-rw-r--r-- | src/battle/src/Struct/Model.elm | 22 |
2 files changed, 82 insertions, 12 deletions
diff --git a/src/battle/src/Struct/MessageBoard.elm b/src/battle/src/Struct/MessageBoard.elm new file mode 100644 index 0000000..9ddecf0 --- /dev/null +++ b/src/battle/src/Struct/MessageBoard.elm @@ -0,0 +1,72 @@ +module Struct.MessageBoard exposing + ( + Type, + Message(..), + display, + try_getting_current_message, + clear_current_message, + new, + clear + ) + +-- Elm ------------------------------------------------------------------------- + +-- Local Module ---------------------------------------------------------------- +import Struct.Attack +import Struct.Error +import Struct.HelpRequest + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +type Message = + Help Struct.HelpRequest.Type + | Error Struct.Error.Type + | AttackReport Struct.Attack.Type + +type alias Type = + { + secondary_messages = (List Message), + main_message = (Maybe Message) + } + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +display : Message -> Type -> Type +display message board = + case message of + (AttackReport _) -> {board | main_message = (Just message)} + _ -> + {board | + secondary_messages = [message|board.secondary_messages] + } + +try_getting_current_message : Type -> (Maybe Message) +try_getting_current_message board = + case secondary_messages of + [] -> board.main_message + [secondary_message|_] -> (Just secondary_message) + +clear_current_message : Type -> Type +clear_current_message board = + case secondary_messages of + [] -> {board | main_message = Nothing} + [_|remaining_secondary_messages] -> + {board | + secondary_messages = remaining_secondary_messages + } + +new : Type +new = + { + secondary_messages = [], + main_message = Nothing + } + +clear : Type -> Type +clear board = (new) diff --git a/src/battle/src/Struct/Model.elm b/src/battle/src/Struct/Model.elm index a53b4df..989f66d 100644 --- a/src/battle/src/Struct/Model.elm +++ b/src/battle/src/Struct/Model.elm @@ -19,9 +19,9 @@ import BattleMap.Struct.DataSet -- Local Module ---------------------------------------------------------------- import Struct.CharacterTurn import Struct.Error -import Struct.HelpRequest -import Struct.TurnResult +import Struct.MessageBoard import Struct.Puppeteer +import Struct.TurnResult import Struct.UI -------------------------------------------------------------------------------- @@ -30,11 +30,10 @@ import Struct.UI type alias Type = { flags : Struct.Flags.Type, - help_request : Struct.HelpRequest.Type, puppeteer : Struct.Puppeteer.Type, ui : Struct.UI.Type, char_turn : Struct.CharacterTurn.Type, - error : (Maybe Struct.Error.Type), + message_board : Struct.MessageBoard.Type, battle : Struct.Battle.Type, @@ -56,11 +55,10 @@ new flags = model = { flags = flags, - help_request = Struct.HelpRequest.None, puppeteer = (Struct.Puppeteer.new), ui = (Struct.UI.default), char_turn = (Struct.CharacterTurn.new), - error = Nothing, + message_board = (Struct.MessageBoard.new), characters_data_set = (BattleCharacters.Struct.DataSet.new), map_data_set = (BattleMap.Struct.DataSet.new), @@ -86,8 +84,7 @@ new flags = clear : Type -> Type clear model = {model | - help_request = Struct.HelpRequest.None, - error = Nothing, + message_board = (Struct.MessageBoard.clear), ui = (Struct.UI.reset_displayed_nav (Struct.UI.set_previous_action Nothing model.ui) @@ -98,8 +95,9 @@ clear model = invalidate : Struct.Error.Type -> Type -> Type invalidate err model = {model | - error = (Just err) + message_board = + (Struct.MessageBoard.display + (Struct.MessageBoard.Error err) + model.message_board + ) } - -clear_error : Type -> Type -clear_error model = {model | error = Nothing} |