summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/src/Struct/Tile.elm')
-rw-r--r--src/battle/src/Struct/Tile.elm67
1 files changed, 47 insertions, 20 deletions
diff --git a/src/battle/src/Struct/Tile.elm b/src/battle/src/Struct/Tile.elm
index 0077e7f..9783672 100644
--- a/src/battle/src/Struct/Tile.elm
+++ b/src/battle/src/Struct/Tile.elm
@@ -3,16 +3,21 @@ module Struct.Tile exposing
Ref,
Type,
Instance,
+ Border,
new,
new_instance,
+ new_border,
error_tile_instance,
get_id,
get_name,
+ get_borders,
+ get_border_type_id,
+ get_border_variant_ix,
get_cost,
get_instance_cost,
get_location,
- get_icon_id,
get_type_id,
+ get_variant_ix,
get_local_variant_ix,
solve_tile_instance,
decoder
@@ -49,13 +54,19 @@ type alias Type =
crossing_cost : Int
}
+type alias Border =
+ {
+ type_id : Int,
+ variant_ix : Int
+ }
+
type alias Instance =
{
location : Struct.Location.Type,
+ crossing_cost : Int,
type_id : Int,
- border_id : Int,
variant_ix : Int,
- crossing_cost : Int
+ borders : (List Border)
}
--------------------------------------------------------------------------------
@@ -84,14 +95,28 @@ new id name crossing_cost =
crossing_cost = crossing_cost
}
-new_instance : Int -> Int -> Int -> Int -> Int -> Int -> Instance
-new_instance x y type_id border_id variant_ix crossing_cost =
+new_border : Int -> Int -> Border
+new_border a b =
{
- location = {x = x, y = y},
+ type_id = a,
+ variant_ix = b
+ }
+
+new_instance : (
+ Struct.Location.Type ->
+ Int ->
+ Int ->
+ Int ->
+ (List Border) ->
+ Instance
+ )
+new_instance location type_id variant_ix crossing_cost borders =
+ {
+ location = location,
type_id = type_id,
- border_id = border_id,
variant_ix = variant_ix,
- crossing_cost = crossing_cost
+ crossing_cost = crossing_cost,
+ borders = borders
}
error_tile_instance : Int -> Int -> Instance
@@ -99,9 +124,9 @@ error_tile_instance x y =
{
location = {x = x, y = y},
type_id = 0,
- border_id = 0,
variant_ix = 0,
- crossing_cost = Constants.Movement.cost_when_out_of_bounds
+ crossing_cost = Constants.Movement.cost_when_out_of_bounds,
+ borders = []
}
get_id : Type -> Int
@@ -119,19 +144,21 @@ get_name tile = tile.name
get_location : Instance -> Struct.Location.Type
get_location tile_inst = tile_inst.location
-get_icon_id : Instance -> String
-get_icon_id tile_inst =
- (
- (toString tile_inst.type_id)
- ++ "-"
- ++ (toString tile_inst.border_id)
- ++ "-"
- ++ (toString tile_inst.variant_ix)
- )
-
get_type_id : Instance -> Int
get_type_id tile_inst = tile_inst.type_id
+get_border_type_id : Border -> Int
+get_border_type_id tile_border = tile_border.type_id
+
+get_borders : Instance -> (List Border)
+get_borders tile_inst = tile_inst.borders
+
+get_variant_ix : Instance -> Int
+get_variant_ix tile_inst = tile_inst.variant_ix
+
+get_border_variant_ix : Border -> Int
+get_border_variant_ix tile_border = tile_border.variant_ix
+
get_local_variant_ix : Instance -> Int
get_local_variant_ix tile_inst =
(