summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2017-12-12 13:04:04 +0100
committernsensfel <SpamShield0@noot-noot.org>2017-12-12 13:04:04 +0100
commit7e38eda602e083a4f9d978fcc5ad93a3b17c6a1b (patch)
tree3340d523cb07b0b39fbbc87bb95870f99aad61cf
parenteb33b4f122074659c04786d9e6fa57c6a06f3e8d (diff)
AttackMarkers not interactive, removes Model.State.
-rw-r--r--src/battlemap/src/Shim/Model.elm1
-rw-r--r--src/battlemap/src/Struct/Model.elm12
-rw-r--r--src/battlemap/src/Update/SelectCharacter.elm1
-rw-r--r--src/battlemap/src/Update/SelectTile.elm12
-rw-r--r--src/battlemap/src/View/Battlemap.elm1
-rw-r--r--src/battlemap/src/View/Battlemap/Navigator.elm46
-rw-r--r--src/battlemap/src/View/SideBar/TabMenu/Status.elm61
7 files changed, 54 insertions, 80 deletions
diff --git a/src/battlemap/src/Shim/Model.elm b/src/battlemap/src/Shim/Model.elm
index a03be3c..01ee8c8 100644
--- a/src/battlemap/src/Shim/Model.elm
+++ b/src/battlemap/src/Shim/Model.elm
@@ -19,7 +19,6 @@ import Struct.UI
--generate : Struct.Model.Type
generate =
{
- state = Struct.Model.Default,
battlemap = (Struct.Battlemap.empty),
characters = (Dict.empty),
error = Nothing,
diff --git a/src/battlemap/src/Struct/Model.elm b/src/battlemap/src/Struct/Model.elm
index fb8a72a..faef50b 100644
--- a/src/battlemap/src/Struct/Model.elm
+++ b/src/battlemap/src/Struct/Model.elm
@@ -1,9 +1,7 @@
module Struct.Model exposing
(
Type,
- State(..),
add_character,
- get_state,
invalidate,
reset,
clear_error
@@ -23,14 +21,8 @@ import Struct.UI
--------------------------------------------------------------------------------
-- TYPES -----------------------------------------------------------------------
--------------------------------------------------------------------------------
-type State =
- Default
- | InspectingTile Struct.Location.Ref
- | InspectingCharacter Struct.Character.Ref
-
type alias Type =
{
- state: State,
battlemap: Struct.Battlemap.Type,
characters: (Dict.Dict Struct.Character.Ref Struct.Character.Type),
error: (Maybe Struct.Error.Type),
@@ -58,13 +50,9 @@ add_character model char =
)
}
-get_state : Type -> State
-get_state model = model.state
-
reset : Type -> (Dict.Dict Struct.Character.Ref Struct.Character.Type) -> Type
reset model characters =
{model |
- state = Default,
characters = characters,
error = Nothing,
ui = (Struct.UI.set_previous_action model.ui Nothing),
diff --git a/src/battlemap/src/Update/SelectCharacter.elm b/src/battlemap/src/Update/SelectCharacter.elm
index 42c53d6..e8dd734 100644
--- a/src/battlemap/src/Update/SelectCharacter.elm
+++ b/src/battlemap/src/Update/SelectCharacter.elm
@@ -44,7 +44,6 @@ select_character model target_char_id target_char =
if (Struct.Character.is_enabled target_char)
then
{model |
- state = Struct.Model.Default,
char_turn =
(Struct.CharacterTurn.set_navigator
(Struct.CharacterTurn.set_controlled_character
diff --git a/src/battlemap/src/Update/SelectTile.elm b/src/battlemap/src/Update/SelectTile.elm
index b44e139..817b511 100644
--- a/src/battlemap/src/Update/SelectTile.elm
+++ b/src/battlemap/src/Update/SelectTile.elm
@@ -137,4 +137,14 @@ apply_to model loc_ref =
(Just navigator) ->
(go_to_tile model navigator loc_ref)
- _ -> ({model | state = (Struct.Model.InspectingTile loc_ref)}, Cmd.none)
+ _ ->
+ (
+ {model |
+ ui =
+ (Struct.UI.set_previous_action
+ model.ui
+ (Just (Struct.UI.SelectedLocation loc_ref))
+ )
+ },
+ Cmd.none
+ )
diff --git a/src/battlemap/src/View/Battlemap.elm b/src/battlemap/src/View/Battlemap.elm
index f52ed4e..e5e9d36 100644
--- a/src/battlemap/src/View/Battlemap.elm
+++ b/src/battlemap/src/View/Battlemap.elm
@@ -132,6 +132,7 @@ get_html model =
(Just navigator) ->
(View.Battlemap.Navigator.get_html
(Struct.Navigator.get_summary navigator)
+ True
)
Nothing ->
diff --git a/src/battlemap/src/View/Battlemap/Navigator.elm b/src/battlemap/src/View/Battlemap/Navigator.elm
index 1b99d47..fc32cc0 100644
--- a/src/battlemap/src/View/Battlemap/Navigator.elm
+++ b/src/battlemap/src/View/Battlemap/Navigator.elm
@@ -20,10 +20,11 @@ import Struct.Navigator
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
marker_get_html : (
+ Bool ->
(Struct.Location.Ref, Struct.Marker.Type) ->
(Html.Html Struct.Event.Type)
)
-marker_get_html (loc_ref, marker) =
+marker_get_html is_interactive (loc_ref, marker) =
(Html.div
[
(Html.Attributes.class "battlemap-marker-icon"),
@@ -43,8 +44,14 @@ marker_get_html (loc_ref, marker) =
"-marker"
)
),
- (Html.Events.onClick
- (Struct.Event.TileSelected loc_ref)
+ (
+ if (is_interactive && (marker == Struct.Marker.CanGoTo))
+ then
+ (Html.Events.onClick
+ (Struct.Event.TileSelected loc_ref)
+ )
+ else
+ (Html.Attributes.class "")
),
(Html.Attributes.style
(
@@ -178,21 +185,26 @@ mark_the_spot loc origin_dir =
--------------------------------------------------------------------------------
get_html : (
Struct.Navigator.Summary ->
+ Bool ->
(List (Html.Html Struct.Event.Type))
)
-get_html nav_summary =
- (
- (List.map (marker_get_html) nav_summary.markers)
- ++
+get_html nav_summary is_interactive =
+ if (is_interactive)
+ then
(
- let
- (final_loc, final_dir, path_node_htmls) =
- (List.foldr
- (path_node_get_html)
- (nav_summary.starting_location, Struct.Direction.None, [])
- nav_summary.path
- )
- in
- ((mark_the_spot final_loc final_dir) :: path_node_htmls)
+ (List.map (marker_get_html True) nav_summary.markers)
+ ++
+ (
+ let
+ (final_loc, final_dir, path_node_htmls) =
+ (List.foldr
+ (path_node_get_html)
+ (nav_summary.starting_location, Struct.Direction.None, [])
+ nav_summary.path
+ )
+ in
+ ((mark_the_spot final_loc final_dir) :: path_node_htmls)
+ )
)
- )
+ else
+ (List.map (marker_get_html False) nav_summary.markers)
diff --git a/src/battlemap/src/View/SideBar/TabMenu/Status.elm b/src/battlemap/src/View/SideBar/TabMenu/Status.elm
index 7309b01..61c0540 100644
--- a/src/battlemap/src/View/SideBar/TabMenu/Status.elm
+++ b/src/battlemap/src/View/SideBar/TabMenu/Status.elm
@@ -48,32 +48,6 @@ get_char_info_html model char_ref =
)
)
-get_char_attack_info_html : (
- Struct.Model.Type ->
- Struct.Character.Ref ->
- (Html.Html Struct.Event.Type)
- )
-get_char_attack_info_html model char_ref =
- case (Dict.get char_ref model.characters) of
- Nothing -> (Html.text "Error: Unknown character selected.")
- (Just char) ->
- (Html.text
- (
- "Attacking "
- ++ char.name
- ++ " (Team "
- ++ (toString (Struct.Character.get_team char))
- ++ "): "
- ++ (toString (Struct.Character.get_movement_points char))
- ++ " movement points; "
- ++ (toString (Struct.Character.get_attack_range char))
- ++ " attack range. Health: "
- ++ (toString (Struct.Character.get_current_health char))
- ++ "/"
- ++ (toString (Struct.Character.get_max_health char))
- )
- )
-
get_error_html : Struct.Error.Type -> (Html.Html Struct.Event.Type)
get_error_html err =
(Html.div
@@ -149,28 +123,19 @@ get_html model =
(Html.Attributes.class "battlemap-footer-tabmenu-content"),
(Html.Attributes.class "battlemap-footer-tabmenu-content-status")
]
- (case model.state of
- (Struct.Model.InspectingTile tile_loc) ->
- [(get_tile_info_html model (Struct.Location.from_ref tile_loc))]
-
- (Struct.Model.InspectingCharacter char_ref) ->
- [(get_char_info_html model char_ref)]
-
- _ ->
- [
- (case (Struct.UI.get_previous_action model.ui) of
- (Just (Struct.UI.SelectedLocation loc)) ->
- (get_tile_info_html
- model
- (Struct.Location.from_ref loc)
- )
+ [
+ (case (Struct.UI.get_previous_action model.ui) of
+ (Just (Struct.UI.SelectedLocation loc)) ->
+ (get_tile_info_html
+ model
+ (Struct.Location.from_ref loc)
+ )
- (Just (Struct.UI.SelectedCharacter target_char)) ->
- (get_char_info_html model target_char)
+ (Just (Struct.UI.SelectedCharacter target_char)) ->
+ (get_char_info_html model target_char)
- _ ->
- (Html.text "Double-click on a character to control it.")
- )
- ]
- )
+ _ ->
+ (Html.text "Double-click on a character to control it.")
+ )
+ ]
)