summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/src/Struct/Tile.elm')
-rw-r--r--src/battle/src/Struct/Tile.elm54
1 files changed, 28 insertions, 26 deletions
diff --git a/src/battle/src/Struct/Tile.elm b/src/battle/src/Struct/Tile.elm
index c7c0d52..b41b233 100644
--- a/src/battle/src/Struct/Tile.elm
+++ b/src/battle/src/Struct/Tile.elm
@@ -1,6 +1,7 @@
module Struct.Tile exposing
(
Ref,
+ VariantID,
Type,
Instance,
Border,
@@ -12,12 +13,12 @@ module Struct.Tile exposing
get_name,
get_borders,
get_border_type_id,
- get_border_variant_ix,
+ get_border_variant_id,
get_cost,
get_instance_cost,
get_location,
get_type_id,
- get_variant_ix,
+ get_variant_id,
get_local_variant_ix,
get_omnimods,
solve_tile_instance,
@@ -40,11 +41,12 @@ import Struct.Omnimods
--------------------------------------------------------------------------------
-- TYPES -----------------------------------------------------------------------
--------------------------------------------------------------------------------
-type alias Ref = Int
+type alias Ref = String
+type alias VariantID = String
type alias Type =
{
- id : Int,
+ id : Ref,
name : String,
crossing_cost : Int,
omnimods : Struct.Omnimods.Type
@@ -52,16 +54,16 @@ type alias Type =
type alias Border =
{
- type_id : Int,
- variant_ix : Int
+ type_id : Ref,
+ variant_id : VariantID
}
type alias Instance =
{
location : Struct.Location.Type,
crossing_cost : Int,
- type_id : Int,
- variant_ix : Int,
+ type_id : Ref ,
+ variant_id : VariantID,
borders : (List Border)
}
@@ -75,7 +77,7 @@ noise_function a b c =
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
-new : Int -> String -> Int -> Struct.Omnimods.Type -> Type
+new : Ref -> String -> Int -> Struct.Omnimods.Type -> Type
new id name crossing_cost omnimods =
{
id = id,
@@ -84,26 +86,26 @@ new id name crossing_cost omnimods =
omnimods = omnimods
}
-new_border : Int -> Int -> Border
+new_border : Ref -> VariantID -> Border
new_border a b =
{
type_id = a,
- variant_ix = b
+ variant_id = b
}
new_instance : (
Struct.Location.Type ->
- Int ->
- Int ->
+ Ref ->
+ VariantID ->
Int ->
(List Border) ->
Instance
)
-new_instance location type_id variant_ix crossing_cost borders =
+new_instance location type_id variant_id crossing_cost borders =
{
location = location,
type_id = type_id,
- variant_ix = variant_ix,
+ variant_id = variant_id,
crossing_cost = crossing_cost,
borders = borders
}
@@ -112,13 +114,13 @@ error_tile_instance : Int -> Int -> Instance
error_tile_instance x y =
{
location = {x = x, y = y},
- type_id = 0,
- variant_ix = 0,
+ type_id = "0",
+ variant_id = "0",
crossing_cost = Constants.Movement.cost_when_out_of_bounds,
borders = []
}
-get_id : Type -> Int
+get_id : Type -> Ref
get_id tile = tile.id
get_cost : Type -> Int
@@ -133,20 +135,20 @@ get_name tile = tile.name
get_location : Instance -> Struct.Location.Type
get_location tile_inst = tile_inst.location
-get_type_id : Instance -> Int
+get_type_id : Instance -> Ref
get_type_id tile_inst = tile_inst.type_id
-get_border_type_id : Border -> Int
+get_border_type_id : Border -> Ref
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_variant_id : Instance -> VariantID
+get_variant_id tile_inst = tile_inst.variant_id
-get_border_variant_ix : Border -> Int
-get_border_variant_ix tile_border = tile_border.variant_ix
+get_border_variant_id : Border -> VariantID
+get_border_variant_id tile_border = tile_border.variant_id
get_local_variant_ix : Instance -> Int
get_local_variant_ix tile_inst =
@@ -162,7 +164,7 @@ get_local_variant_ix tile_inst =
get_omnimods : Type -> Struct.Omnimods.Type
get_omnimods t = t.omnimods
-solve_tile_instance : (Dict.Dict Int Type) -> Instance -> Instance
+solve_tile_instance : (Dict.Dict Ref Type) -> Instance -> Instance
solve_tile_instance tiles tile_instance =
case (Dict.get tile_instance.type_id tiles) of
(Just tile) ->
@@ -178,7 +180,7 @@ decoder : (Json.Decode.Decoder Type)
decoder =
(Json.Decode.Pipeline.decode
Type
- |> (Json.Decode.Pipeline.required "id" Json.Decode.int)
+ |> (Json.Decode.Pipeline.required "id" Json.Decode.string)
|> (Json.Decode.Pipeline.required "nam" Json.Decode.string)
|> (Json.Decode.Pipeline.required "ct" Json.Decode.int)
|> (Json.Decode.Pipeline.required "omni" Struct.Omnimods.decoder)