summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-02-26 17:16:08 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-02-26 17:16:08 +0100 |
commit | 6494b74a45e27085fd81836f7b8c969431e8ff3c (patch) | |
tree | e344a24fa2e9a2ee198314c0552c46b235072009 /src/struct/battlemap_instance.erl | |
parent | fd4d031ab5b31763d376c663cc049f62ee389243 (diff) |
Got it to work, I think.
Diffstat (limited to 'src/struct/battlemap_instance.erl')
-rw-r--r-- | src/struct/battlemap_instance.erl | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/src/struct/battlemap_instance.erl b/src/struct/battlemap_instance.erl index d031ccd..bae7a4a 100644 --- a/src/struct/battlemap_instance.erl +++ b/src/struct/battlemap_instance.erl @@ -10,7 +10,7 @@ id, battlemap, character_instances, - players, + player_ids, current_player_turn, last_turns_effects } @@ -26,13 +26,13 @@ get_id/1, get_battlemap/1, get_character_instances/1, - get_players/1, + get_player_ids/1, get_current_player_turn/1, get_last_turns_effects/1, set_battlemap/2, set_character_instances/2, - set_players/2, + set_player_ids/2, set_current_player_turn/2, set_last_turns_effects/2 ] @@ -61,8 +61,8 @@ get_battlemap (BattlemapInstance) -> get_character_instances (BattlemapInstance) -> BattlemapInstance#battlemap_instance.character_instances. -get_players (BattlemapInstance) -> - BattlemapInstance#battlemap_instance.players. +get_player_ids (BattlemapInstance) -> + BattlemapInstance#battlemap_instance.player_ids. get_current_player_turn (BattlemapInstance) -> BattlemapInstance#battlemap_instance.current_player_turn. @@ -82,10 +82,10 @@ set_character_instances (CharacterInstances, BattlemapInstance) -> character_instances = CharacterInstances }. -set_players (Players, BattlemapInstance) -> +set_player_ids (Players, BattlemapInstance) -> BattlemapInstance#battlemap_instance { - players = Players + player_ids = Players }. set_current_player_turn (PlayerTurn, BattlemapInstance) -> @@ -103,10 +103,11 @@ set_last_turns_effects (Effects, BattlemapInstance) -> random (ID, PlayersAsList, Battlemap, Characters) -> BattlemapWidth = battlemap:get_width(Battlemap), BattlemapHeight = battlemap:get_height(Battlemap), - CharacterInstancesAsList = + {CharacterInstancesAsList, _ForbiddenLocations} = lists:mapfoldl ( fun (Character, ForbiddenLocations) -> + CharacterOwner = character:get_owner_id(Character), NewCharacterInstance = character_instance:random ( @@ -115,13 +116,26 @@ random (ID, PlayersAsList, Battlemap, Characters) -> BattlemapHeight, ForbiddenLocations ), + NewCharacterInstanceActive = + case CharacterOwner of + <<"0">> -> + character_instance:set_is_active + ( + true, + NewCharacterInstance + ); + + _ -> + NewCharacterInstance + end, NewCharacterInstanceLocation = - character_instance:get_location(NewCharacterInstance), + character_instance:get_location(NewCharacterInstanceActive), { - NewCharacterInstance, + NewCharacterInstanceActive, [NewCharacterInstanceLocation|ForbiddenLocations] } end, + [], Characters ), @@ -130,7 +144,7 @@ random (ID, PlayersAsList, Battlemap, Characters) -> id = ID, battlemap = Battlemap, character_instances = array:from_list(CharacterInstancesAsList), - players = array:from_list(PlayersAsList), + player_ids = array:from_list(PlayersAsList), current_player_turn = player_turn:new(0, 0), last_turns_effects = [] }. |