summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battlemap.erl')
-rw-r--r-- | src/battlemap.erl | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/battlemap.erl b/src/battlemap.erl new file mode 100644 index 0000000..209a4ab --- /dev/null +++ b/src/battlemap.erl @@ -0,0 +1,24 @@ +-module(battlemap). +-export +( + [ + cross/4 + ] +). + +-include("timed_cache_data.hrl"). + +calc_new_loc (X, Y, [], _Points, _Map, _OtherChars) -> + {X, Y}; +calc_new_loc (X, Y, [Step|Path], Points, Map, OtherChars) -> + case Step of + <<"U">> -> calc_new_loc(X, (Y - 1), Path, Points, Map, OtherChars); + <<"D">> -> calc_new_loc(X, (Y + 1), Path, Points, Map, OtherChars); + <<"L">> -> calc_new_loc((X - 1), Y, Path, Points, Map, OtherChars); + <<"R">> -> calc_new_loc((X + 1), Y, Path, Points, Map, OtherChars); + _ -> calc_new_loc(X, Y, Path, Points, Map, OtherChars) + end. + +cross (Battlemap, CharInst, Path, OtherChars) -> + {X, Y} = character_instance:get_location(CharInst), + {ok, calc_new_loc(X, Y, Path, 99, Battlemap, OtherChars)}. |