summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'client/elm/battlemap/src/Battlemap.elm')
-rw-r--r-- | client/elm/battlemap/src/Battlemap.elm | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/client/elm/battlemap/src/Battlemap.elm b/client/elm/battlemap/src/Battlemap.elm new file mode 100644 index 0000000..dbf797a --- /dev/null +++ b/client/elm/battlemap/src/Battlemap.elm @@ -0,0 +1,47 @@ +module Battlemap exposing (Battlemap, random, apply_to_tile) + +import Array exposing (Array, set, get) + +import Battlemap.Tile exposing (Tile, generate) +import Battlemap.Direction exposing (..) +import Battlemap.Location exposing (..) + +type alias Battlemap = + { + width : Int, + height : Int, + content : (Array Tile) + } + +random : Battlemap +random = + { + width = 6, + height = 6, + content = (generate 6 6) + } + +location_to_index : Battlemap -> Location -> Int +location_to_index bmap loc = + ((loc.y * bmap.width) + loc.x) + +apply_to_tile : Battlemap -> Location -> (Tile -> Tile) -> (Maybe Battlemap) +apply_to_tile bmap loc fun = + let + index = (location_to_index bmap loc) + at_index = (get index bmap.content) + in + case at_index of + Nothing -> + Nothing + (Just tile) -> + (Just + {bmap | + content = + (set + index + (fun tile) + bmap.content + ) + } + ) |