summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2017-11-21 17:35:32 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2017-11-21 17:35:32 +0100 |
commit | f633e4d5320806f13b4cffa8dbef0f59a08ae90f (patch) | |
tree | 00759914fa79b18577e0cc0368403db4ee60d8f4 /src/battlemap.erl | |
parent | eea0d1d6d519bba540c261787a6223536abf237b (diff) |
Server/client disagreement on tile crossing cost.
Diffstat (limited to 'src/battlemap.erl')
-rw-r--r-- | src/battlemap.erl | 50 |
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"). |