summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-07-06 18:42:47 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-07-06 18:42:47 +0200 |
commit | aaef063a01b14b9a2a04d3a0202ee533daa0c626 (patch) | |
tree | e5e7b7232f515eda466e87a6955f91161ec3dd92 | |
parent | 46083840cd9a3160906518e272904bc0dc6c50e0 (diff) |
Starting an interactive help menu...
-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) + ) ) |