summaryrefslogtreecommitdiff |
diff options
author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-05-11 21:32:23 +0200 |
---|---|---|
committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-05-11 21:32:23 +0200 |
commit | 92756a57bcad59c8b7a617b608bb6b7a18f128c8 (patch) | |
tree | 706e4038ee4a3445f255c315721ce6485bc43117 /src | |
parent | e2813997860edc136142f5d8aeb8f5513f9a57db (diff) |
Updates how the random battle is generated.
Diffstat (limited to 'src')
-rw-r--r-- | src/battlemap/src/shim/database_shim.erl | 36 | ||||
-rw-r--r-- | src/battlemap/src/struct/battle.erl | 44 |
2 files changed, 28 insertions, 52 deletions
diff --git a/src/battlemap/src/shim/database_shim.erl b/src/battlemap/src/shim/database_shim.erl index 1b1992b..cc653ad 100644 --- a/src/battlemap/src/shim/database_shim.erl +++ b/src/battlemap/src/shim/database_shim.erl @@ -47,6 +47,8 @@ add_to_db (ID, Val) -> non_neg_integer(), non_neg_integer(), non_neg_integer(), + battlemap:type(), + list(location:type()), list(character:type()) ) -> list(character:type()). @@ -56,6 +58,8 @@ generate_random_characters 0, _CharactersPerPlayer, _TotalCharacterCount, + _Battlemap, + _ForbiddenLocations, Result ) -> Result; @@ -65,6 +69,8 @@ generate_random_characters 0, CharactersPerPlayer, TotalCharacterCount, + Battlemap, + ForbiddenLocations, Result ) -> generate_random_characters @@ -73,6 +79,8 @@ generate_random_characters CharactersPerPlayer, CharactersPerPlayer, TotalCharacterCount, + Battlemap, + ForbiddenLocations, Result ); generate_random_characters @@ -81,21 +89,34 @@ generate_random_characters PlayerCharacterCount, CharactersPerPlayer, TotalCharacterCount, + Battlemap, + ForbiddenLocations, Result ) -> NewCharacter = character:random ( TotalCharacterCount, - list_to_binary(integer_to_list(MaxPlayerID)) + list_to_binary(integer_to_list(MaxPlayerID)), + battlemap:get_width(Battlemap), + battlemap:get_height(Battlemap), + ForbiddenLocations ), + Character = + case MaxPlayerID of + 0 -> character:set_is_active(true, NewCharacter); + _ -> NewCharacter + end, + generate_random_characters ( MaxPlayerID, (PlayerCharacterCount - 1), CharactersPerPlayer, (TotalCharacterCount + 1), - [NewCharacter|Result] + Battlemap, + [character:get_location(Character)|ForbiddenLocations], + [Character|Result] ). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -111,16 +132,9 @@ generate_db (Heir) -> BattlemapWidth = roll:between(16, 64), BattlemapHeight = roll:between(16, 64), Battlemap = battlemap:random(0, BattlemapWidth, BattlemapHeight), - Characters = generate_random_characters(1, 8, 8, 0, []), + Characters = generate_random_characters(1, 8, 8, 0, Battlemap, [], []), PlayersAsList = [player:new(<<"0">>), player:new(<<"1">>)], - Battle = - battle:random - ( - <<"0">>, - PlayersAsList, - Battlemap, - Characters - ), + Battle = battle:new(<<"0">>, PlayersAsList, Battlemap, Characters), add_to_db({battle_db, <<"0">>}, Battle). diff --git a/src/battlemap/src/struct/battle.erl b/src/battlemap/src/struct/battle.erl index 59cc581..37e0d1b 100644 --- a/src/battlemap/src/struct/battle.erl +++ b/src/battlemap/src/struct/battle.erl @@ -49,7 +49,7 @@ -export ( [ - random/4 + new/4 ] ). @@ -164,7 +164,7 @@ set_current_player_turn (PlayerTurn, Battle) -> current_player_turn = PlayerTurn }. --spec random +-spec new ( id(), list(player:type()), @@ -172,45 +172,7 @@ set_current_player_turn (PlayerTurn, Battle) -> list(character:type()) ) -> type(). -random (ID, PlayersAsList, Battlemap, Characters) -> - BattlemapWidth = battlemap:get_width(Battlemap), - BattlemapHeight = battlemap:get_height(Battlemap), - {CharactersAsList, _ForbiddenLocations} = - lists:mapfoldl - ( - fun (Character, ForbiddenLocations) -> - CharacterOwner = character:get_owner_id(Character), - NewCharacter = - character:random - ( - Character, - BattlemapWidth, - BattlemapHeight, - ForbiddenLocations - ), - NewCharacterActive = - case CharacterOwner of - <<"0">> -> - character:set_is_active - ( - true, - NewCharacter - ); - - _ -> - NewCharacter - end, - NewCharacterLocation = - character:get_location(NewCharacterActive), - { - NewCharacterActive, - [NewCharacterLocation|ForbiddenLocations] - } - end, - [], - Characters - ), - +new (ID, PlayersAsList, Battlemap, CharactersAsList) -> #battle { id = ID, |