| 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} | 


