| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/battlemap/src/ElmModule/Update.elm | 4 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/Event.elm | 2 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/HelpRequest.elm | 13 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/Model.elm | 5 | ||||
| -rw-r--r-- | src/battlemap/src/Update/SetRequestedHelp.elm | 22 | ||||
| -rw-r--r-- | src/battlemap/src/View/Controlled/CharacterCard.elm | 8 | ||||
| -rw-r--r-- | src/battlemap/src/View/MessageBoard/Help.elm | 74 | 
7 files changed, 124 insertions, 4 deletions
| diff --git a/src/battlemap/src/ElmModule/Update.elm b/src/battlemap/src/ElmModule/Update.elm index 0e4f4a6..3b23963 100644 --- a/src/battlemap/src/ElmModule/Update.elm +++ b/src/battlemap/src/ElmModule/Update.elm @@ -20,6 +20,7 @@ import Update.SelectCharacterOrTile  import Update.SelectTab  import Update.SelectTile  import Update.SendLoadBattlemapRequest +import Update.SetRequestedHelp  import Update.SwitchTeam  import Update.SwitchWeapon  import Update.TestAnimation @@ -100,3 +101,6 @@ update event model =        Struct.Event.AbortTurnRequest ->           (Update.AbortTurn.apply_to new_model) + +      (Struct.Event.RequestedHelp help_request) -> +         (Update.SetRequestedHelp.apply_to new_model help_request) diff --git a/src/battlemap/src/Struct/Event.elm b/src/battlemap/src/Struct/Event.elm index 891cc60..716718e 100644 --- a/src/battlemap/src/Struct/Event.elm +++ b/src/battlemap/src/Struct/Event.elm @@ -8,6 +8,7 @@ import Struct.Direction  import Struct.Error  import Struct.Location  import Struct.ServerReply +import Struct.HelpRequest  import Struct.UI  -------------------------------------------------------------------------------- @@ -32,6 +33,7 @@ type Type =     | TileSelected Struct.Location.Ref     | CharacterOrTileSelected Struct.Location.Ref     | TurnEnded +   | RequestedHelp Struct.HelpRequest.Type     | WeaponSwitchRequest  attempted : (Result.Result err val) -> Type diff --git a/src/battlemap/src/Struct/HelpRequest.elm b/src/battlemap/src/Struct/HelpRequest.elm new file mode 100644 index 0000000..3357b56 --- /dev/null +++ b/src/battlemap/src/Struct/HelpRequest.elm @@ -0,0 +1,13 @@ +module Struct.HelpRequest exposing (Type(..)) + +-- Elm ------------------------------------------------------------------------- + +-- Battlemap ------------------------------------------------------------------- +import Struct.Character + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +type Type = +   None +   | HelpOnRank Struct.Character.Rank diff --git a/src/battlemap/src/Struct/Model.elm b/src/battlemap/src/Struct/Model.elm index 71a13b0..7ed6cb3 100644 --- a/src/battlemap/src/Struct/Model.elm +++ b/src/battlemap/src/Struct/Model.elm @@ -28,6 +28,7 @@ import Struct.Battlemap  import Struct.Character  import Struct.CharacterTurn  import Struct.Error +import Struct.HelpRequest  import Struct.Tile  import Struct.TurnResult  import Struct.TurnResultAnimator @@ -41,6 +42,7 @@ import Util.Array  --------------------------------------------------------------------------------  type alias Type =     { +      help_request: Struct.HelpRequest.Type,        animator: (Maybe Struct.TurnResultAnimator.Type),        battlemap: Struct.Battlemap.Type,        characters: (Array.Array Struct.Character.Type), @@ -65,6 +67,7 @@ type alias Type =  new : Type  new =     { +      help_request = Struct.HelpRequest.None,        animator = Nothing,        battlemap = (Struct.Battlemap.empty),        characters = (Array.empty), @@ -125,6 +128,7 @@ add_tile tl model =  reset : Type -> Type  reset model =     {model | +      help_request = Struct.HelpRequest.None,        error = Nothing,        ui =           (Struct.UI.reset_displayed_nav @@ -136,6 +140,7 @@ reset model =  full_debug_reset : Type -> Type  full_debug_reset model =     {model | +      help_request = Struct.HelpRequest.None,        animator = Nothing,        battlemap = (Struct.Battlemap.empty),        characters = (Array.empty), diff --git a/src/battlemap/src/Update/SetRequestedHelp.elm b/src/battlemap/src/Update/SetRequestedHelp.elm new file mode 100644 index 0000000..8f76e3b --- /dev/null +++ b/src/battlemap/src/Update/SetRequestedHelp.elm @@ -0,0 +1,22 @@ +module Update.SetRequestedHelp exposing (apply_to) +-- Elm ------------------------------------------------------------------------- + +-- Battlemap ------------------------------------------------------------------- +import Struct.Event +import Struct.HelpRequest +import Struct.Model + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +apply_to : ( +      Struct.Model.Type -> +      Struct.HelpRequest.Type -> +      (Struct.Model.Type, (Cmd Struct.Event.Type)) +   ) +apply_to model help_request = +   ({model | help_request = help_request}, Cmd.none) diff --git a/src/battlemap/src/View/Controlled/CharacterCard.elm b/src/battlemap/src/View/Controlled/CharacterCard.elm index ea5a4e6..5d2ad68 100644 --- a/src/battlemap/src/View/Controlled/CharacterCard.elm +++ b/src/battlemap/src/View/Controlled/CharacterCard.elm @@ -8,13 +8,15 @@ module View.Controlled.CharacterCard exposing  -- Elm -------------------------------------------------------------------------  import Html  import Html.Attributes +import Html.Events  -- Battlemap ------------------------------------------------------------------- -import Struct.Attributes  import Struct.Armor +import Struct.Attributes  import Struct.Character  import Struct.CharacterTurn  import Struct.Event +import Struct.HelpRequest  import Struct.Navigator  import Struct.Statistics  import Struct.Weapon @@ -70,6 +72,10 @@ get_rank_status rank =     (Html.div        [           (Html.Attributes.class "battlemap-character-card-status"), +         (Html.Attributes.class "clickable"), +         (Html.Events.onClick +            (Struct.Event.RequestedHelp (Struct.HelpRequest.HelpOnRank rank)) +         ),           (Html.Attributes.class              (                 case rank of diff --git a/src/battlemap/src/View/MessageBoard/Help.elm b/src/battlemap/src/View/MessageBoard/Help.elm index 8253c61..26d820d 100644 --- a/src/battlemap/src/View/MessageBoard/Help.elm +++ b/src/battlemap/src/View/MessageBoard/Help.elm @@ -5,18 +5,79 @@ import Html  import Html.Attributes  -- Battlemap ------------------------------------------------------------------- +import Struct.Character  import Struct.CharacterTurn  import Struct.Event +import Struct.HelpRequest  import Struct.Model  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  -------------------------------------------------------------------------------- -get_help_message : Struct.Model.Type -> (List (Html.Html Struct.Event.Type)) -get_help_message model = +get_rank_help_message : ( +      Struct.Character.Rank -> +      (List (Html.Html Struct.Event.Type)) +   ) +get_rank_help_message rank = +   case rank of +      Struct.Character.Target -> +         [ +            (Html.h1 [] [(Html.text "Protected Character")]), +            (Html.div +               [ +                  (Html.Attributes.class +                     "battlemap-character-card-target-status" +                  ) +               ] +               [] +            ), +            (Html.text +               ( +                  "Players that lost all of their Protected characters are" +                  ++ " eliminated." +               ) +            ) +         ] + +      Struct.Character.Commander -> +         [ +            (Html.h1 [] [(Html.text "Critical Character")]), +            (Html.div +               [ +                  (Html.Attributes.class +                     "battlemap-character-card-commander-status" +                  ) +               ] +               [] +            ), +            (Html.text +               ( +                  "Players that lost any of their Critical characters are" +                  ++ " eliminated." +               ) +            ) +         ] + +      Struct.Character.Optional -> +         [ +            (Html.h1 [] [(Html.text "Reinforcement Character")]), +            (Html.text +               ( +                  "Unless it is their last character, losing Reinforcement" +                  ++ " characters does not cause a player to be eliminated." +               ) +            ) +         ] + +get_default_help_message : ( +      Struct.Model.Type -> +      (List (Html.Html Struct.Event.Type)) +   ) +get_default_help_message model =     case (Struct.CharacterTurn.get_state model.char_turn) of        Struct.CharacterTurn.SelectedCharacter ->           [ +            (Html.h1 [] [(Html.text "Character Selected")]),              (Html.text                 (                    "Click on a target tile to select a path or use the manual" @@ -28,6 +89,7 @@ get_help_message model =        Struct.CharacterTurn.MovedCharacter ->           [ +            (Html.h1 [] [(Html.text "Character Moved")]),              (Html.text                 (                    "You can now choose a target in range. Dashed tiles indicate" @@ -39,6 +101,7 @@ get_help_message model =        Struct.CharacterTurn.ChoseTarget ->           [ +            (Html.h1 [] [(Html.text "Target Selected")]),              (Html.text                 (                    "If you are satisfied with your choices, end the turn to" @@ -49,6 +112,7 @@ get_help_message model =        _ ->           [ +            (Html.h1 [] [(Html.text "Selecting Character")]),              (Html.text                 (                    "Click once on a character to focus them. This will show you" @@ -68,5 +132,9 @@ get_html model =        [           (Html.Attributes.class "battlemap-message-board")        ] -      (get_help_message model) +      ( +         case model.help_request of +            Struct.HelpRequest.None -> (get_default_help_message model) +            (Struct.HelpRequest.HelpOnRank rank) -> (get_rank_help_message rank) +      )     ) | 


