| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2018-06-18 18:35:53 +0200 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2018-06-18 18:35:53 +0200 | 
| commit | b251f5165ea3530747657b522773c4a8f44b16fa (patch) | |
| tree | 68d830acec3fe8c171429ac903a16944ed31120c /src/battlemap/struct/bm_tile.erl | |
| parent | a174bc2cc95b94c0b7d786e764c48de72206d7c5 (diff) | |
Separates tiles from their icon images IDs.
The client has yet to be updated to support the new exchanges.
Diffstat (limited to 'src/battlemap/struct/bm_tile.erl')
| -rw-r--r-- | src/battlemap/struct/bm_tile.erl | 102 | 
1 files changed, 85 insertions, 17 deletions
| diff --git a/src/battlemap/struct/bm_tile.erl b/src/battlemap/struct/bm_tile.erl index ce04898..36c22dc 100644 --- a/src/battlemap/struct/bm_tile.erl +++ b/src/battlemap/struct/bm_tile.erl @@ -3,17 +3,35 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-record +( +   tile, +   { +      id :: id(), +      name :: binary(), +      cost :: non_neg_integer(), +      class_range_min :: non_neg_integer(), +      class_range_max :: non_neg_integer() +   } +). +  -opaque id() :: non_neg_integer(). --opaque type() :: id(). +-opaque class_id() :: non_neg_integer(). +-opaque type() :: #tile{}. --export_type([type/0, id/0]). +-export_type([type/0, class_id/0, id/0]).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -export  (     [ +      get_id/1, +      get_name/1,        get_cost/1, +      get_range_minimum/1, +      get_range_maximum/1, +      from_id/1,        cost_when_oob/0     ]  ). @@ -21,8 +39,8 @@  -export  (     [ -      random_id/0, -      id_from_int/1 +      class_id_to_type_id/1, +      class_id_from_int/1     ]  ). @@ -33,21 +51,71 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +-spec class_id_to_type_id (class_id()) -> id(). +class_id_to_type_id (ClassID) -> +   case ClassID of +      0 -> 0; +      1 -> 1; +      2 -> 2; +      N when ((N >= 3) and (N =< 16)) -> 3 +   end. + +-spec from_id (id()) -> type(). +from_id (0) -> +   #tile +   { +      id = 0, +      name = <<"[Grassland] Grass">>, +      cost = 6, +      class_range_min = 1, +      class_range_max = 1 +   }; +from_id (1) -> +   #tile +   { +      id = 1, +      name = <<"[Grassland] Mushroom Infestation">>, +      cost = 12, +      class_range_min = 1, +      class_range_max = 1 +   }; +from_id (2) -> +   #tile +   { +      id = 2, +      name = <<"[Grassland] Tree Remains">>, +      cost = 24, +      class_range_min = 2, +      class_range_max = 2 +   }; +from_id (3) -> +   #tile +   { +      id = 2, +      name = <<"[Grassland] Clear Water">>, +      cost = cost_when_oob(), +      class_range_min = 3, +      class_range_max = 17 +   }. +  -spec cost_when_oob () -> non_neg_integer().  cost_when_oob () -> 255. --spec get_cost (id()) -> non_neg_integer(). -get_cost (N) -> -   case N of -      0 -> 6; -      1 -> 12; -      2 -> 24; -      _ -> cost_when_oob() -   end. +-spec get_id (type()) -> non_neg_integer(). +get_id (Tile) -> Tile#tile.id. + +-spec get_cost (type()) -> non_neg_integer(). +get_cost (Tile) -> Tile#tile.cost. + +-spec get_name (type()) -> binary(). +get_name (Tile) -> Tile#tile.name. + +-spec get_range_minimum (type()) -> non_neg_integer(). +get_range_minimum (Tile) -> Tile#tile.class_range_min. --spec random_id () -> id(). -random_id () -> -   sh_roll:between(0, 15). +-spec get_range_maximum (type()) -> non_neg_integer(). +get_range_maximum (Tile) -> Tile#tile.class_range_max. --spec id_from_int (non_neg_integer()) -> id(). -id_from_int (I) -> I. +-spec class_id_from_int (non_neg_integer()) -> id(). +class_id_from_int (I) -> I. | 


