summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-07-06 18:42:47 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-07-06 18:42:47 +0200
commitaaef063a01b14b9a2a04d3a0202ee533daa0c626 (patch)
treee5e7b7232f515eda466e87a6955f91161ec3dd92
parent46083840cd9a3160906518e272904bc0dc6c50e0 (diff)
Starting an interactive help menu...
-rw-r--r--src/battlemap/src/ElmModule/Update.elm4
-rw-r--r--src/battlemap/src/Struct/Event.elm2
-rw-r--r--src/battlemap/src/Struct/HelpRequest.elm13
-rw-r--r--src/battlemap/src/Struct/Model.elm5
-rw-r--r--src/battlemap/src/Update/SetRequestedHelp.elm22
-rw-r--r--src/battlemap/src/View/Controlled/CharacterCard.elm8
-rw-r--r--src/battlemap/src/View/MessageBoard/Help.elm74
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)
+ )
)