From 705d2b61926b90aa2906dd717edd1a2286a36b96 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Fri, 15 Jun 2018 15:54:42 +0200 Subject: Uses the existing tiles to make a demo map. --- src/battlemap/struct/bm_battlemap.erl | 22 +++++++++++++++++++++- src/battlemap/struct/bm_tile.erl | 14 ++++++++++---- 2 files changed, 31 insertions(+), 5 deletions(-) (limited to 'src/battlemap/struct') diff --git a/src/battlemap/struct/bm_battlemap.erl b/src/battlemap/struct/bm_battlemap.erl index c3eabb0..6c9fbf9 100644 --- a/src/battlemap/struct/bm_battlemap.erl +++ b/src/battlemap/struct/bm_battlemap.erl @@ -38,7 +38,8 @@ -export ( [ - random/3 + random/3, + from_list/4 ] ). @@ -119,3 +120,22 @@ random (ID, Width, Height) -> height = Height, tile_ids = array:from_list(TileIDs) }. + +-spec from_list + ( + non_neg_integer(), + non_neg_integer(), + non_neg_integer(), + list(non_neg_integer()) + ) + -> type(). +from_list (ID, Width, Height, List) -> + TileIDs = lists:map(fun bm_tile:id_from_int/1, List), + + #battlemap + { + id = list_to_binary(integer_to_list(ID)), + width = Width, + height = Height, + tile_ids = array:from_list(TileIDs) + }. diff --git a/src/battlemap/struct/bm_tile.erl b/src/battlemap/struct/bm_tile.erl index c1dd448..ce04898 100644 --- a/src/battlemap/struct/bm_tile.erl +++ b/src/battlemap/struct/bm_tile.erl @@ -21,7 +21,8 @@ -export ( [ - random_id/0 + random_id/0, + id_from_int/1 ] ). @@ -37,11 +38,16 @@ cost_when_oob () -> 255. -spec get_cost (id()) -> non_neg_integer(). get_cost (N) -> - if - (N =< 200) -> (N + 8); - true -> cost_when_oob() + case N of + 0 -> 6; + 1 -> 12; + 2 -> 24; + _ -> cost_when_oob() end. -spec random_id () -> id(). random_id () -> sh_roll:between(0, 15). + +-spec id_from_int (non_neg_integer()) -> id(). +id_from_int (I) -> I. -- cgit v1.2.3-70-g09d2