| 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/battlemap | |
| parent | e2813997860edc136142f5d8aeb8f5513f9a57db (diff) | |
Updates how the random battle is generated.
Diffstat (limited to 'src/battlemap')
| -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, | 


