From fd4d031ab5b31763d376c663cc049f62ee389243 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Mon, 26 Feb 2018 13:52:29 +0100 Subject: Got it to run, at last. --- src/struct/battlemap_instance.erl | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/struct/battlemap_instance.erl') diff --git a/src/struct/battlemap_instance.erl b/src/struct/battlemap_instance.erl index 9a57d09..d031ccd 100644 --- a/src/struct/battlemap_instance.erl +++ b/src/struct/battlemap_instance.erl @@ -38,6 +38,13 @@ ] ). +-export +( + [ + random/4 + ] +). + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -92,3 +99,38 @@ set_last_turns_effects (Effects, BattlemapInstance) -> { last_turns_effects = Effects }. + +random (ID, PlayersAsList, Battlemap, Characters) -> + BattlemapWidth = battlemap:get_width(Battlemap), + BattlemapHeight = battlemap:get_height(Battlemap), + CharacterInstancesAsList = + lists:mapfoldl + ( + fun (Character, ForbiddenLocations) -> + NewCharacterInstance = + character_instance:random + ( + Character, + BattlemapWidth, + BattlemapHeight, + ForbiddenLocations + ), + NewCharacterInstanceLocation = + character_instance:get_location(NewCharacterInstance), + { + NewCharacterInstance, + [NewCharacterInstanceLocation|ForbiddenLocations] + } + end, + Characters + ), + + #battlemap_instance + { + id = ID, + battlemap = Battlemap, + character_instances = array:from_list(CharacterInstancesAsList), + players = array:from_list(PlayersAsList), + current_player_turn = player_turn:new(0, 0), + last_turns_effects = [] + }. -- cgit v1.2.3-70-g09d2