summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'client/elm/battlemap/src/Update')
-rw-r--r--client/elm/battlemap/src/Update/EndTurn.elm2
-rw-r--r--client/elm/battlemap/src/Update/SelectCharacter.elm65
2 files changed, 42 insertions, 25 deletions
diff --git a/client/elm/battlemap/src/Update/EndTurn.elm b/client/elm/battlemap/src/Update/EndTurn.elm
index 2e02d19..3490d57 100644
--- a/client/elm/battlemap/src/Update/EndTurn.elm
+++ b/client/elm/battlemap/src/Update/EndTurn.elm
@@ -27,7 +27,7 @@ update_model model nav char_id =
nav.current_location
(\t -> {t | char_level = (Just char_id)})
)
- (Battlemap.Tile.set_navigation Battlemap.Direction.None)
+ (Battlemap.Tile.reset_tile)
),
characters =
(Dict.update
diff --git a/client/elm/battlemap/src/Update/SelectCharacter.elm b/client/elm/battlemap/src/Update/SelectCharacter.elm
index 7ee8dfa..c8a0ddb 100644
--- a/client/elm/battlemap/src/Update/SelectCharacter.elm
+++ b/client/elm/battlemap/src/Update/SelectCharacter.elm
@@ -6,40 +6,57 @@ import Character
import Battlemap
import Battlemap.Direction
+import Battlemap.Location
import Battlemap.Navigator
import Battlemap.Tile
import Battlemap.RangeIndicator
import Model
+display_range : (
+ Battlemap.Location.Ref ->
+ Battlemap.RangeIndicator.Type ->
+ Battlemap.Type ->
+ Battlemap.Type
+ )
+display_range loc_ref indicator bmap =
+ (Battlemap.apply_to_tile_unsafe
+ bmap
+ (Battlemap.Location.from_ref loc_ref)
+ (\e -> {e | mod_level = (Just Battlemap.Tile.CanBeReached)})
+ )
+
+
apply_to : Model.Type -> Character.Ref -> Model.Type
apply_to model char_id =
- {model |
- selection = (Just char_id),
- battlemap =
- (Battlemap.apply_to_all_tiles
- model.battlemap
- (Battlemap.Tile.set_navigation Battlemap.Direction.None)
- ),
- navigator =
- (case (Dict.get char_id model.characters) of
- Nothing -> Nothing
- (Just char) ->
- (Just
- (Battlemap.Navigator.new_navigator
- char.location
- char.movement_points
- )
- )
- ),
- range_indicator =
- (case (Dict.get char_id model.characters) of
- Nothing -> Dict.empty
- (Just char) ->
+ case (Dict.get char_id model.characters) of
+ Nothing -> model
+ (Just char) ->
+ let
+ new_range_indicator =
(Battlemap.RangeIndicator.generate
model.battlemap
char.location
char.movement_points
)
- )
- }
+ in
+ {model |
+ selection = (Just char_id),
+ battlemap =
+ (Battlemap.apply_to_all_tiles
+ (Dict.foldl
+ (display_range)
+ model.battlemap
+ new_range_indicator
+ )
+ (Battlemap.Tile.set_navigation Battlemap.Direction.None)
+ ),
+ navigator =
+ (Just
+ (Battlemap.Navigator.new_navigator
+ char.location
+ char.movement_points
+ )
+ ),
+ range_indicator = new_range_indicator
+ }