summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2017-11-21 17:35:32 +0100
committernsensfel <SpamShield0@noot-noot.org>2017-11-21 17:35:32 +0100
commitf633e4d5320806f13b4cffa8dbef0f59a08ae90f (patch)
tree00759914fa79b18577e0cc0368403db4ee60d8f4 /src/battlemap.erl
parenteea0d1d6d519bba540c261787a6223536abf237b (diff)
Server/client disagreement on tile crossing cost.
Diffstat (limited to 'src/battlemap.erl')
-rw-r--r--src/battlemap.erl50
1 files changed, 1 insertions, 49 deletions
diff --git a/src/battlemap.erl b/src/battlemap.erl
index 0b742d9..d8940e9 100644
--- a/src/battlemap.erl
+++ b/src/battlemap.erl
@@ -1,53 +1,5 @@
-module(battlemap).
--export
-(
- [
- cross/4
- ]
-).
-include("timed_cache_data.hrl").
-next_loc (X, Y, <<"L">>) -> {(X - 1), Y};
-next_loc (X, Y, <<"R">>) -> {(X + 1), Y};
-next_loc (X, Y, <<"U">>) -> {X, (Y - 1)};
-next_loc (X, Y, <<"D">>) -> {X, (Y + 1)}.
-
-loc_to_index(X, Y, Map) ->
- if
- (X < 0) -> error;
- (Y < 0) -> error;
- (X >= Map#battlemap.width) -> error;
- true -> ((Y * Map#battlemap.width) + X)
- end.
-
-calc_new_loc (X, Y, [], Points, _Map, _OtherCharsLocs) ->
- true = (Points >= 0),
- {X, Y};
-calc_new_loc (X, Y, [Step|Path], Points, Map, OtherCharsLocs) ->
- {NX, NY} = next_loc(X, Y, Step),
- NPoints =
- (
- Points
- -
- tile:get_cost
- (
- array:get
- (
- loc_to_index(X, Y, Map),
- Map#battlemap.content
- )
- )
- ),
- false = lists:member({NX, NY}, OtherCharsLocs),
- calc_new_loc(NX, NY, Path, NPoints, Map, OtherCharsLocs).
-
-cross (Battlemap, CharInst, Path, OtherChars) ->
- {X, Y} = character_instance:get_location(CharInst),
- OtherCharsLocs =
- lists:map
- (
- fun character_instance:get_location/1,
- OtherChars
- ),
- {ok, calc_new_loc(X, Y, Path, 99, Battlemap, OtherCharsLocs)}.
+-include("battlemap/cross.erl").