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.elm19
1 files changed, 16 insertions, 3 deletions
diff --git a/client/elm/battlemap/src/Update/SelectCharacter.elm b/client/elm/battlemap/src/Update/SelectCharacter.elm
index 4e23e92..b2b28ca 100644
--- a/client/elm/battlemap/src/Update/SelectCharacter.elm
+++ b/client/elm/battlemap/src/Update/SelectCharacter.elm
@@ -14,16 +14,28 @@ import Battlemap.RangeIndicator
import Model
display_range : (
+ Int ->
Battlemap.Location.Ref ->
Battlemap.RangeIndicator.Type ->
Battlemap.Type ->
Battlemap.Type
)
-display_range loc_ref indicator bmap =
+display_range dist loc_ref indicator bmap =
(Battlemap.apply_to_tile_unsafe
bmap
(Battlemap.Location.from_ref loc_ref)
- (\e -> {e | mod_level = (Just Battlemap.Tile.CanBeReached)})
+ (\e ->
+ {e |
+ mod_level =
+ (
+ if (indicator.distance <= dist)
+ then
+ (Just Battlemap.Tile.CanBeReached)
+ else
+ (Just Battlemap.Tile.CanBeAttacked)
+ )
+ }
+ )
)
@@ -38,6 +50,7 @@ apply_to model char_id =
model.battlemap
char.location
char.movement_points
+ (char.movement_points + char.atk_dist)
)
in
{model |
@@ -45,7 +58,7 @@ apply_to model char_id =
battlemap =
(
(Dict.foldl
- (display_range)
+ (display_range char.movement_points)
(Battlemap.apply_to_all_tiles
model.battlemap
(Battlemap.Tile.reset_tile)