summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'elm/battlemap/src/Battlemap/Tile.elm')
-rw-r--r--elm/battlemap/src/Battlemap/Tile.elm45
1 files changed, 45 insertions, 0 deletions
diff --git a/elm/battlemap/src/Battlemap/Tile.elm b/elm/battlemap/src/Battlemap/Tile.elm
new file mode 100644
index 0000000..986cb2a
--- /dev/null
+++ b/elm/battlemap/src/Battlemap/Tile.elm
@@ -0,0 +1,45 @@
+module Battlemap.Tile exposing
+ (
+ Type,
+ TileModifier(..),
+ set_direction,
+ set_navigation,
+ reset_tile
+ )
+
+import Battlemap.Direction
+import Battlemap.Location
+
+import Character
+
+type TileModifier =
+ CanBeReached
+ | CanBeAttacked
+
+type alias Type =
+ {
+ location : Battlemap.Location.Ref,
+ floor_level : Int,
+ nav_level : Battlemap.Direction.Type,
+ char_level : (Maybe Character.Ref),
+ mod_level : (Maybe TileModifier)
+ }
+
+set_direction : Battlemap.Direction.Type -> Type -> Type
+set_direction d t =
+ {t |
+ nav_level = d
+ }
+
+set_navigation : Battlemap.Direction.Type -> Type -> Type
+set_navigation dir t =
+ {t |
+ nav_level = dir
+ }
+
+reset_tile : Type -> Type
+reset_tile t =
+ {t |
+ nav_level = Battlemap.Direction.None,
+ mod_level = Nothing
+ }