summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'client/elm/battlemap/src/Update/SelectCharacter.elm')
-rw-r--r--client/elm/battlemap/src/Update/SelectCharacter.elm33
1 files changed, 22 insertions, 11 deletions
diff --git a/client/elm/battlemap/src/Update/SelectCharacter.elm b/client/elm/battlemap/src/Update/SelectCharacter.elm
index 3fa2ab2..0e7b1c4 100644
--- a/client/elm/battlemap/src/Update/SelectCharacter.elm
+++ b/client/elm/battlemap/src/Update/SelectCharacter.elm
@@ -12,6 +12,8 @@ import Battlemap.Tile
import Battlemap.RangeIndicator
import Model
+import Event
+import Error
display_range : (
Int ->
@@ -39,10 +41,10 @@ display_range dist loc_ref indicator bmap =
)
-apply_to : Model.Type -> Character.Ref -> Model.Type
-apply_to model char_id =
+make_it_so : Model.Type -> Character.Ref -> Model.Type
+make_it_so model char_id =
case (Dict.get char_id model.characters) of
- Nothing -> model
+ Nothing -> {model | state = (Model.Error Error.Programming)}
(Just char) ->
let
new_range_indicator =
@@ -54,7 +56,7 @@ apply_to model char_id =
)
in
{model |
- state = (Model.MovingCharacter char_id),
+ state = Model.MovingCharacterWithClick,
battlemap =
(
(Dict.foldl
@@ -66,12 +68,21 @@ apply_to model char_id =
new_range_indicator
)
),
- navigator =
+ selection =
(Just
- (Battlemap.Navigator.new_navigator
- char.location
- char.movement_points
- )
- ),
- range_indicator = new_range_indicator
+ {
+ character = char_id,
+ navigator =
+ (Battlemap.Navigator.new
+ char.location
+ char.movement_points
+ ),
+ range_indicator = new_range_indicator
+ }
+ )
}
+
+apply_to : Model.Type -> Character.Ref -> Model.Type
+apply_to model char_id =
+ case model.state of
+ _ -> (make_it_so model char_id)