summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/shared/battle-map/BattleMap/Struct/Map.elm')
-rw-r--r-- | src/shared/battle-map/BattleMap/Struct/Map.elm | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/src/shared/battle-map/BattleMap/Struct/Map.elm b/src/shared/battle-map/BattleMap/Struct/Map.elm index aa166d4..97f0ae8 100644 --- a/src/shared/battle-map/BattleMap/Struct/Map.elm +++ b/src/shared/battle-map/BattleMap/Struct/Map.elm @@ -27,10 +27,13 @@ import Battle.Struct.Omnimods -- Battle Map ------------------------------------------------------------------ import BattleMap.Struct.Location -import BattleMap.Struct.MapMarker +import BattleMap.Struct.Marker import BattleMap.Struct.Tile import BattleMap.Struct.TileInstance +-- Local Module ---------------------------------------------------------------- +import Constants.Movement + -------------------------------------------------------------------------------- -- TYPES ----------------------------------------------------------------------- -------------------------------------------------------------------------------- @@ -39,7 +42,7 @@ type alias Type = width : Int, height : Int, content : (Array.Array BattleMap.Struct.TileInstance.Type), - markers : (Dict.Dict String BattleMap.Struct.MapMarker.Type) + markers : (Dict.Dict String BattleMap.Struct.Marker.Type) } -------------------------------------------------------------------------------- @@ -70,7 +73,7 @@ get_height map = map.height get_tiles : Type -> (Array.Array BattleMap.Struct.TileInstance.Type) get_tiles map = map.content -get_markers : Type -> (Dict.Dict String BattleMap.Struct.MapMarker.Type) +get_markers : Type -> (Dict.Dict String BattleMap.Struct.Marker.Type) get_markers map = map.markers set_tile_to : BattleMap.Struct.Location.Type -> BattleMap.Struct.TileInstance.Type -> Type -> Type @@ -163,7 +166,7 @@ decoder = (Json.Decode.map (Dict.fromList) (Json.Decode.keyValuePairs - (BattleMap.Struct.MapMarker.decoder) + (BattleMap.Struct.Marker.decoder) ) ) ) @@ -174,32 +177,19 @@ decoder = get_movement_cost_function : ( Type -> + (List BattleMap.Struct.Location.Type) -> BattleMap.Struct.Location.Type -> - (List BattleMap.Struct.Character.Type) -> BattleMap.Struct.Location.Type -> Int ) -get_movement_cost_function bmap start_loc char_list loc = +get_movement_cost_function bmap occupied_tiles start_loc loc = if (has_location loc bmap) then case (Array.get (location_to_index loc bmap) bmap.content) of (Just tile) -> - if - (List.any - ( - \c -> - ( - ((BattleMap.Struct.Character.get_location c) == loc) - && (loc /= start_loc) - && (BattleMap.Struct.Character.is_alive c) - ) - ) - char_list - ) - then - Constants.Movement.cost_when_occupied_tile - else - (BattleMap.Struct.TileInstance.get_cost tile) + if ((loc /= start_loc) && (List.member loc occupied_tiles)) + then Constants.Movement.cost_when_occupied_tile + else (BattleMap.Struct.TileInstance.get_cost tile) Nothing -> Constants.Movement.cost_when_out_of_bounds else |