| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2018-07-11 17:54:14 +0200 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2018-07-11 17:54:14 +0200 | 
| commit | fde827cba1ff3d889135c74ee1978098465fd200 (patch) | |
| tree | d6022f800aa8226bf79a26a19189965c8cbfb2fe /src | |
| parent | df59024199c387903e3d4a901171939a358489d3 (diff) | |
"Battlemap" -> "Battle".
Diffstat (limited to 'src')
| -rw-r--r-- | src/battle/btl_handler.erl (renamed from src/battlemap/bm_handler.erl) | 10 | ||||
| -rw-r--r-- | src/battle/btl_shim.erl (renamed from src/battlemap/bm_shim.erl) | 38 | ||||
| -rw-r--r-- | src/battle/game-logic/btl_movement.erl (renamed from src/battlemap/game-logic/bm_movement.erl) | 32 | ||||
| -rw-r--r-- | src/battle/game-logic/btl_next_turn.erl (renamed from src/battlemap/game-logic/bm_next_turn.erl) | 86 | ||||
| -rw-r--r-- | src/battle/game-logic/btl_turn_actions.erl (renamed from src/battlemap/game-logic/bm_turn_actions.erl) | 196 | ||||
| -rw-r--r-- | src/battle/game-logic/btl_victory.erl (renamed from src/battlemap/game-logic/bm_victory.erl) | 86 | ||||
| -rw-r--r-- | src/battle/io/btl_security.erl (renamed from src/battlemap/io/bm_security.erl) | 2 | ||||
| -rw-r--r-- | src/battle/query/btl_character_turn.erl | 282 | ||||
| -rw-r--r-- | src/battle/query/btl_load_state.erl (renamed from src/battlemap/query/bm_load_state.erl) | 40 | ||||
| -rw-r--r-- | src/battle/reply/btl_add_armor.erl (renamed from src/battlemap/reply/bm_add_armor.erl) | 2 | ||||
| -rw-r--r-- | src/battle/reply/btl_add_char.erl (renamed from src/battlemap/reply/bm_add_char.erl) | 32 | ||||
| -rw-r--r-- | src/battle/reply/btl_add_tile.erl (renamed from src/battlemap/reply/bm_add_tile.erl) | 14 | ||||
| -rw-r--r-- | src/battle/reply/btl_add_weapon.erl (renamed from src/battlemap/reply/bm_add_weapon.erl) | 2 | ||||
| -rw-r--r-- | src/battle/reply/btl_set_map.erl (renamed from src/battlemap/reply/bm_set_map.erl) | 10 | ||||
| -rw-r--r-- | src/battle/reply/btl_set_timeline.erl (renamed from src/battlemap/reply/bm_set_timeline.erl) | 2 | ||||
| -rw-r--r-- | src/battle/reply/btl_turn_results.erl (renamed from src/battlemap/reply/bm_turn_results.erl) | 2 | ||||
| -rw-r--r-- | src/battle/struct/btl_attack.erl (renamed from src/battlemap/struct/bm_attack.erl) | 20 | ||||
| -rw-r--r-- | src/battle/struct/btl_battle.erl (renamed from src/battlemap/struct/bm_battle.erl) | 52 | ||||
| -rw-r--r-- | src/battle/struct/btl_battle_action.erl (renamed from src/battlemap/struct/bm_battle_action.erl) | 8 | ||||
| -rw-r--r-- | src/battle/struct/btl_battlemap.erl (renamed from src/battlemap/struct/bm_battlemap.erl) | 12 | ||||
| -rw-r--r-- | src/battle/struct/btl_character.erl (renamed from src/battlemap/struct/bm_character.erl) | 2 | ||||
| -rw-r--r-- | src/battle/struct/btl_character_turn_data.erl (renamed from src/battlemap/struct/bm_character_turn_data.erl) | 22 | ||||
| -rw-r--r-- | src/battle/struct/btl_character_turn_request.erl (renamed from src/battlemap/struct/bm_character_turn_request.erl) | 12 | ||||
| -rw-r--r-- | src/battle/struct/btl_character_turn_update.erl (renamed from src/battlemap/struct/bm_character_turn_update.erl) | 14 | ||||
| -rw-r--r-- | src/battle/struct/btl_direction.erl (renamed from src/battlemap/struct/bm_direction.erl) | 2 | ||||
| -rw-r--r-- | src/battle/struct/btl_location.erl (renamed from src/battlemap/struct/bm_location.erl) | 4 | ||||
| -rw-r--r-- | src/battle/struct/btl_player.erl (renamed from src/battlemap/struct/bm_player.erl) | 2 | ||||
| -rw-r--r-- | src/battle/struct/btl_player_turn.erl (renamed from src/battlemap/struct/bm_player_turn.erl) | 8 | ||||
| -rw-r--r-- | src/battle/struct/btl_tile.erl (renamed from src/battlemap/struct/bm_tile.erl) | 2 | ||||
| -rw-r--r-- | src/battle/struct/btl_turn_result.erl (renamed from src/battlemap/struct/bm_turn_result.erl) | 36 | ||||
| -rw-r--r-- | src/battlemap/query/bm_character_turn.erl | 282 | ||||
| -rw-r--r-- | src/query/qry_handler.erl | 23 | 
32 files changed, 680 insertions, 657 deletions
| diff --git a/src/battlemap/bm_handler.erl b/src/battle/btl_handler.erl index d355ea1..19b0e20 100644 --- a/src/battlemap/bm_handler.erl +++ b/src/battle/btl_handler.erl @@ -1,4 +1,4 @@ --module(bm_handler). +-module(btl_handler).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -16,8 +16,8 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -start (_YawsParams) -> -   {ok, Pid} = sh_timed_caches_manager:start(), +-spec start (pid()) -> 'ok'. +start (TimedCachesManagerPid) ->     case sh_database:fetch(battle_db, <<"0">>) of        {ok, _} -> ok;        not_found -> @@ -26,8 +26,8 @@ start (_YawsParams) ->              battle_db,              <<"0">>,              any, -            bm_shim:generate_random_battle() +            btl_shim:generate_random_battle()           )     end, -   sh_timed_caches_manager:new_cache(Pid, battle_db, none), +   sh_timed_caches_manager:new_cache(TimedCachesManagerPid, battle_db, none),     ok. diff --git a/src/battlemap/bm_shim.erl b/src/battle/btl_shim.erl index 67e82bf..07d5854 100644 --- a/src/battlemap/bm_shim.erl +++ b/src/battle/btl_shim.erl @@ -1,4 +1,4 @@ --module(bm_shim). +-module(btl_shim).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -19,11 +19,11 @@        non_neg_integer(),        non_neg_integer(),        non_neg_integer(), -      bm_battlemap:type(), -      list(bm_location:type()), -      list(bm_character:type()) +      btl_battlemap:type(), +      list(btl_location:type()), +      list(btl_character:type())     ) -   -> list(bm_character:type()). +   -> list(btl_character:type()).  generate_random_characters  (     0, @@ -66,17 +66,17 @@ generate_random_characters     Result  ) ->     NewCharacter = -      bm_character:random +      btl_character:random        (           TotalCharacterCount,           MaxPlayerIX, -         bm_battlemap:get_width(Battlemap), -         bm_battlemap:get_height(Battlemap), +         btl_battlemap:get_width(Battlemap), +         btl_battlemap:get_height(Battlemap),           ForbiddenLocations        ),     Character =        case MaxPlayerIX of -         0 -> bm_character:set_is_active(true, NewCharacter); +         0 -> btl_character:set_is_active(true, NewCharacter);           _ -> NewCharacter        end, @@ -87,7 +87,7 @@ generate_random_characters        CharactersPerPlayer,        (TotalCharacterCount + 1),        Battlemap, -      [bm_character:get_location(Character)|ForbiddenLocations], +      [btl_character:get_location(Character)|ForbiddenLocations],        [Character|Result]     ).  -spec demo_map () -> list(non_neg_integer()). @@ -130,21 +130,21 @@ demo_map () ->  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec generate_random_battle () -> bm_battle:type(). +-spec generate_random_battle () -> btl_battle:type().  generate_random_battle () ->     %BattlemapWidth = 32, % sh_roll:between(16, 32),     %BattlemapHeight = 32, %sh_roll:between(16, 32), -   %Battlemap = bm_battlemap:random(0, BattlemapWidth, BattlemapHeight), -   Battlemap = bm_battlemap:from_list(0, 32, 32, demo_map()), +   %Battlemap = btl_battlemap:random(0, BattlemapWidth, BattlemapHeight), +   Battlemap = btl_battlemap:from_list(0, 32, 32, demo_map()),     Characters = generate_random_characters(1, 8, 8, 0, Battlemap, [], []), -   PlayersAsList = [bm_player:new(0, 8, <<"0">>), bm_player:new(1, 0, <<"1">>)], +   PlayersAsList = [btl_player:new(0, 8, <<"0">>), btl_player:new(1, 0, <<"1">>)],     {UsedWeaponIDs, UsedArmorIDs} =        lists:foldl        (           fun (Character, {UWIDs, UAIDs}) -> -            {MWpID, SWpID} = bm_character:get_weapon_ids(Character), -            AID = bm_character:get_armor_id(Character), +            {MWpID, SWpID} = btl_character:get_weapon_ids(Character), +            AID = btl_character:get_armor_id(Character),              {                 sets:add_element(MWpID, sets:add_element(SWpID, UWIDs)),                 sets:add_element(AID, UAIDs) @@ -160,16 +160,16 @@ generate_random_battle () ->           fun (_IX, TileClassID, CurrentTileIDs) ->              sets:add_element              ( -               bm_tile:class_id_to_type_id(TileClassID), +               btl_tile:class_id_to_type_id(TileClassID),                 CurrentTileIDs              )           end,           sets:new(), -         bm_battlemap:get_tile_class_ids(Battlemap) +         btl_battlemap:get_tile_class_ids(Battlemap)        ),     Battle = -      bm_battle:new +      btl_battle:new        (           <<"0">>,           PlayersAsList, diff --git a/src/battlemap/game-logic/bm_movement.erl b/src/battle/game-logic/btl_movement.erl index 8bf2c5b..87b1806 100644 --- a/src/battlemap/game-logic/bm_movement.erl +++ b/src/battle/game-logic/btl_movement.erl @@ -1,4 +1,4 @@ --module(bm_movement). +-module(btl_movement).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -19,21 +19,21 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -spec cross     ( -      bm_battlemap:type(), -      list(bm_location:type()), -      list(bm_direction:enum()), +      btl_battlemap:type(), +      list(btl_location:type()), +      list(btl_direction:enum()),        non_neg_integer(), -      bm_location:type() +      btl_location:type()     ) -   -> {bm_location:type(), non_neg_integer()}. +   -> {btl_location:type(), non_neg_integer()}.  cross (_Battlemap, _ForbiddenLocations, [], Cost, Location) ->     {Location, Cost};  cross (Battlemap, ForbiddenLocations, [Step|NextSteps], Cost, Location) -> -   NextLocation = bm_location:apply_direction(Step, Location), -   NextTileClassID = bm_battlemap:get_tile_class_id(NextLocation, Battlemap), -   NextTileID = bm_tile:class_id_to_type_id(NextTileClassID), -   NextTile = bm_tile:from_id(NextTileID), -   NextCost = (Cost + bm_tile:get_cost(NextTile)), +   NextLocation = btl_location:apply_direction(Step, Location), +   NextTileClassID = btl_battlemap:get_tile_class_id(NextLocation, Battlemap), +   NextTileID = btl_tile:class_id_to_type_id(NextTileClassID), +   NextTile = btl_tile:from_id(NextTileID), +   NextCost = (Cost + btl_tile:get_cost(NextTile)),     IsForbidden =        lists:foldl        ( @@ -50,11 +50,11 @@ cross (Battlemap, ForbiddenLocations, [Step|NextSteps], Cost, Location) ->  -spec cross     ( -      bm_battlemap:type(), -      list(bm_location:type()), -      list(bm_direction:enum()), -      bm_location:type() +      btl_battlemap:type(), +      list(btl_location:type()), +      list(btl_direction:enum()), +      btl_location:type()     ) -   -> {bm_location:type(), non_neg_integer()}. +   -> {btl_location:type(), non_neg_integer()}.  cross (Battlemap, ForbiddenLocations, Path, Location) ->     cross(Battlemap, ForbiddenLocations, Path, 0, Location). diff --git a/src/battlemap/game-logic/bm_next_turn.erl b/src/battle/game-logic/btl_next_turn.erl index 56e7f7e..82eec98 100644 --- a/src/battlemap/game-logic/bm_next_turn.erl +++ b/src/battle/game-logic/btl_next_turn.erl @@ -1,4 +1,4 @@ --module(bm_next_turn). +-module(btl_next_turn).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -16,61 +16,61 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec set_player_turn_to_next (bm_battle:type()) -   -> {bm_battle:type(), sh_db_query:op()}. +-spec set_player_turn_to_next (btl_battle:type()) +   -> {btl_battle:type(), sh_db_query:op()}.  set_player_turn_to_next (Battle) -> -   Players = bm_battle:get_players(Battle), -   CurrentPlayerTurn = bm_battle:get_current_player_turn(Battle), +   Players = btl_battle:get_players(Battle), +   CurrentPlayerTurn = btl_battle:get_current_player_turn(Battle), -   NextPlayerTurn = bm_player_turn:next(Players, CurrentPlayerTurn), +   NextPlayerTurn = btl_player_turn:next(Players, CurrentPlayerTurn), -   UpdatedBattle = bm_battle:set_current_player_turn(NextPlayerTurn, Battle), +   UpdatedBattle = btl_battle:set_current_player_turn(NextPlayerTurn, Battle),     DBQuery =        sh_db_query:set_field        ( -         bm_battle:get_current_player_turn_field(), +         btl_battle:get_current_player_turn_field(),           NextPlayerTurn        ),     {UpdatedBattle, DBQuery}. --spec reset_next_player_timeline (bm_battle:type()) -   -> {bm_battle:type(), bm_player:type(), sh_db_query:op()}. +-spec reset_next_player_timeline (btl_battle:type()) +   -> {btl_battle:type(), btl_player:type(), sh_db_query:op()}.  reset_next_player_timeline (Battle) -> -   NextPlayerTurn = bm_battle:get_current_player_turn(Battle), -   NextPlayerIX = bm_player_turn:get_player_ix(NextPlayerTurn), -   NextPlayer = bm_battle:get_player(NextPlayerIX, Battle), +   NextPlayerTurn = btl_battle:get_current_player_turn(Battle), +   NextPlayerIX = btl_player_turn:get_player_ix(NextPlayerTurn), +   NextPlayer = btl_battle:get_player(NextPlayerIX, Battle), -   UpdatedNextPlayer = bm_player:reset_timeline(NextPlayer), +   UpdatedNextPlayer = btl_player:reset_timeline(NextPlayer),     UpdatedBattle = -      bm_battle:set_player(NextPlayerIX, UpdatedNextPlayer, Battle), +      btl_battle:set_player(NextPlayerIX, UpdatedNextPlayer, Battle),     DBQuery =        sh_db_query:update_indexed        ( -         bm_battle:get_players_field(), +         btl_battle:get_players_field(),           NextPlayerIX, -         [ sh_db_query:set_field(bm_player:get_timeline_field(), []) ] +         [ sh_db_query:set_field(btl_player:get_timeline_field(), []) ]        ),     {UpdatedBattle, UpdatedNextPlayer, DBQuery}. --spec activate_next_players_characters (bm_battle:type(), bm_player:type()) -   -> {bm_battle:type(), list(sh_db_query:op())}. +-spec activate_next_players_characters (btl_battle:type(), btl_player:type()) +   -> {btl_battle:type(), list(sh_db_query:op())}.  activate_next_players_characters (Battle, NextPlayer) -> -   NextPlayerIX = bm_player:get_index(NextPlayer), -   Characters = bm_battle:get_characters(Battle), +   NextPlayerIX = btl_player:get_index(NextPlayer), +   Characters = btl_battle:get_characters(Battle),     {UpdatedCharacters, ModifiedIXs} =        sh_array_util:mapiff        (           fun (Character) -> -            (bm_character:get_player_index(Character) == NextPlayerIX) +            (btl_character:get_player_index(Character) == NextPlayerIX)           end,           fun (Character) -> -            bm_character:set_is_active(true, Character) +            btl_character:set_is_active(true, Character)           end,           Characters        ), @@ -81,12 +81,12 @@ activate_next_players_characters (Battle, NextPlayer) ->           fun (IX) ->              sh_db_query:update_indexed              ( -               bm_battle:get_characters_field(), +               btl_battle:get_characters_field(),                 IX,                 [                    sh_db_query:set_field                    ( -                     bm_character:get_is_active_field(), +                     btl_character:get_is_active_field(),                       true                    )                 ] @@ -95,64 +95,64 @@ activate_next_players_characters (Battle, NextPlayer) ->           ModifiedIXs        ), -   UpdatedBattle = bm_battle:set_characters(UpdatedCharacters, Battle), +   UpdatedBattle = btl_battle:set_characters(UpdatedCharacters, Battle),     {UpdatedBattle, DBQueries}.  -spec update     ( -      bm_character_turn_update:type() +      btl_character_turn_update:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  update (Update) -> -   Data = bm_character_turn_update:get_data(Update), -   Battle = bm_character_turn_data:get_battle(Data), +   Data = btl_character_turn_update:get_data(Update), +   Battle = btl_character_turn_data:get_battle(Data),     {S0Battle, DBQuery0} = set_player_turn_to_next(Battle),     {S1Battle, NextPlayer, DBQuery1} = reset_next_player_timeline(S0Battle),     {S2Battle, DBQueries} =        activate_next_players_characters(S1Battle, NextPlayer), -   S0Data = bm_character_turn_data:set_battle(S2Battle, Data), +   S0Data = btl_character_turn_data:set_battle(S2Battle, Data),     S0Update = -      bm_character_turn_update:add_to_timeline +      btl_character_turn_update:add_to_timeline        ( -         bm_turn_result:new_player_turn_started +         btl_turn_result:new_player_turn_started           ( -            bm_player:get_index(NextPlayer) +            btl_player:get_index(NextPlayer)           ),           DBQuery0,           Update        ), -   S1Update = bm_character_turn_update:set_data(S0Data, S0Update), +   S1Update = btl_character_turn_update:set_data(S0Data, S0Update),     S2Update =        lists:foldl        ( -         fun bm_character_turn_update:add_to_db/2, +         fun btl_character_turn_update:add_to_db/2,           S1Update,           [DBQuery1|DBQueries]        ),     S2Update. --spec requires_update (bm_character_turn_update:type()) -> boolean(). +-spec requires_update (btl_character_turn_update:type()) -> boolean().  requires_update (Update) -> -   Data = bm_character_turn_update:get_data(Update), -   Battle = bm_character_turn_data:get_battle(Data), -   Characters = bm_battle:get_characters(Battle), +   Data = btl_character_turn_update:get_data(Update), +   Battle = btl_character_turn_data:get_battle(Data), +   Characters = btl_battle:get_characters(Battle), -   sh_array_util:none(fun bm_character:get_is_active/1, Characters). +   sh_array_util:none(fun btl_character:get_is_active/1, Characters).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -spec update_if_needed     ( -      bm_character_turn_update:type() +      btl_character_turn_update:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  update_if_needed (Update) ->     case requires_update(Update) of        true -> update(Update); diff --git a/src/battlemap/game-logic/bm_turn_actions.erl b/src/battle/game-logic/btl_turn_actions.erl index c3e091a..21205ac 100644 --- a/src/battlemap/game-logic/bm_turn_actions.erl +++ b/src/battle/game-logic/btl_turn_actions.erl @@ -1,4 +1,4 @@ --module(bm_turn_actions). +-module(btl_turn_actions).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -20,102 +20,102 @@  %%%% SWITCHING WEAPON %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -spec handle_switch_weapon     ( -      bm_character_turn_update:type() +      btl_character_turn_update:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  handle_switch_weapon (Update) -> -   Data = bm_character_turn_update:get_data(Update), -   Character = bm_character_turn_data:get_character(Data), -   CharacterIX = bm_character_turn_data:get_character_ix(Data), -   CharacterAttributes = bm_character:get_attributes(Character), -   ArmorID = bm_character:get_armor_id(Character), -   {PrimaryWeaponID, SecondaryWeaponID} = bm_character:get_weapon_ids(Character), +   Data = btl_character_turn_update:get_data(Update), +   Character = btl_character_turn_data:get_character(Data), +   CharacterIX = btl_character_turn_data:get_character_ix(Data), +   CharacterAttributes = btl_character:get_attributes(Character), +   ArmorID = btl_character:get_armor_id(Character), +   {PrimaryWeaponID, SecondaryWeaponID} = btl_character:get_weapon_ids(Character),     UpdatedWeaponIDs = {SecondaryWeaponID, PrimaryWeaponID},     UpdatedCharacterStatistics =        sh_statistics:new(CharacterAttributes, UpdatedWeaponIDs, ArmorID),     UpdatedCharacter = -      bm_character:set_statistics +      btl_character:set_statistics        (           UpdatedCharacterStatistics, -         bm_character:set_weapon_ids(UpdatedWeaponIDs, Character) +         btl_character:set_weapon_ids(UpdatedWeaponIDs, Character)        ), -   TimelineItem = bm_turn_result:new_character_switched_weapons(CharacterIX), +   TimelineItem = btl_turn_result:new_character_switched_weapons(CharacterIX),     DBQuery =        sh_db_query:update_indexed        ( -         bm_battle:get_characters_field(), +         btl_battle:get_characters_field(),           CharacterIX,           [              sh_db_query:set_field              ( -               bm_character:get_weapons_field(), +               btl_character:get_weapons_field(),                 UpdatedWeaponIDs              ),              sh_db_query:set_field              ( -               bm_character:get_statistics_field(), +               btl_character:get_statistics_field(),                 UpdatedCharacterStatistics              )           ]        ), -   UpdatedData = bm_character_turn_data:set_character(UpdatedCharacter, Data), +   UpdatedData = btl_character_turn_data:set_character(UpdatedCharacter, Data), -   S0Update = bm_character_turn_update:set_data(UpdatedData, Update), +   S0Update = btl_character_turn_update:set_data(UpdatedData, Update), -   bm_character_turn_update:add_to_timeline(TimelineItem, DBQuery, S0Update). +   btl_character_turn_update:add_to_timeline(TimelineItem, DBQuery, S0Update).  %%%% MOVING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -spec get_path_cost_and_destination     ( -      bm_character_turn_data:type(), -      list(bm_direction:type()) +      btl_character_turn_data:type(), +      list(btl_direction:type())     ) -   -> {non_neg_integer(), bm_location:type()}. +   -> {non_neg_integer(), btl_location:type()}.  get_path_cost_and_destination (Data, Path) -> -   Character = bm_character_turn_data:get_character(Data), -   CharacterIX = bm_character_turn_data:get_character_ix(Data), -   Battle = bm_character_turn_data:get_battle(Data), -   Battlemap = bm_battle:get_battlemap(Battle), +   Character = btl_character_turn_data:get_character(Data), +   CharacterIX = btl_character_turn_data:get_character_ix(Data), +   Battle = btl_character_turn_data:get_battle(Data), +   Battlemap = btl_battle:get_battlemap(Battle),     ForbiddenLocations =        array:foldl        (           fun (IX, Char, Prev) -> -            IsAlive = bm_character:get_is_alive(Char), +            IsAlive = btl_character:get_is_alive(Char),              if                 (IX == CharacterIX) -> Prev;                 (not IsAlive) -> Prev; -               true -> [bm_character:get_location(Char)|Prev] +               true -> [btl_character:get_location(Char)|Prev]              end           end,           [], -         bm_battle:get_characters(Battle) +         btl_battle:get_characters(Battle)        ),     {NewLocation, Cost} = -      bm_movement:cross +      btl_movement:cross        (           Battlemap,           ForbiddenLocations,           Path, -         bm_character:get_location(Character) +         btl_character:get_location(Character)        ),     {Cost, NewLocation}.  -spec assert_character_can_move     ( -      bm_character_turn_data:type(), +      btl_character_turn_data:type(),        non_neg_integer()     )     -> 'ok'.  assert_character_can_move (Data, Cost) -> -   Character = bm_character_turn_data:get_character(Data), -   CharacterStatistics = bm_character:get_statistics(Character), +   Character = btl_character_turn_data:get_character(Data), +   CharacterStatistics = btl_character:get_statistics(Character),     CharacterMovementPoints =        sh_statistics:get_movement_points(CharacterStatistics), @@ -125,56 +125,56 @@ assert_character_can_move (Data, Cost) ->  -spec commit_move     ( -      bm_character_turn_update:type(), -      list(bm_direction:type()), -      bm_location:type() +      btl_character_turn_update:type(), +      list(btl_direction:type()), +      btl_location:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  commit_move (Update, Path, NewLocation) -> -   Data = bm_character_turn_update:get_data(Update), -   Character = bm_character_turn_data:get_character(Data), -   CharacterIX = bm_character_turn_data:get_character_ix(Data), +   Data = btl_character_turn_update:get_data(Update), +   Character = btl_character_turn_data:get_character(Data), +   CharacterIX = btl_character_turn_data:get_character_ix(Data), -   UpdatedCharacter = bm_character:set_location(NewLocation, Character), +   UpdatedCharacter = btl_character:set_location(NewLocation, Character), -   UpdatedData = bm_character_turn_data:set_character(UpdatedCharacter, Data), +   UpdatedData = btl_character_turn_data:set_character(UpdatedCharacter, Data),     TimelineItem = -      bm_turn_result:new_character_moved(CharacterIX, Path, NewLocation), +      btl_turn_result:new_character_moved(CharacterIX, Path, NewLocation),     DBQuery =        sh_db_query:update_indexed        ( -         bm_battle:get_characters_field(), +         btl_battle:get_characters_field(),           CharacterIX,           [              sh_db_query:set_field              ( -               bm_character:get_location_field(), +               btl_character:get_location_field(),                 NewLocation              )           ]        ),     S0Update = -      bm_character_turn_update:add_to_timeline +      btl_character_turn_update:add_to_timeline        (           TimelineItem,           DBQuery,           Update        ), -   bm_character_turn_update:set_data(UpdatedData, S0Update). +   btl_character_turn_update:set_data(UpdatedData, S0Update).  -spec handle_move     ( -      bm_battle_action:type(), -      bm_character_turn_update:type() +      btl_battle_action:type(), +      btl_character_turn_update:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  handle_move (BattleAction, Update) -> -   Data = bm_character_turn_update:get_data(Update), -   Path = bm_battle_action:get_path(BattleAction), +   Data = btl_character_turn_update:get_data(Update), +   Path = btl_battle_action:get_path(BattleAction),     {PathCost, NewLocation} = get_path_cost_and_destination(Data, Path),     assert_character_can_move(Data, PathCost), @@ -184,11 +184,11 @@ handle_move (BattleAction, Update) ->  %%%% ATTACKING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -spec handle_attack_sequence     ( -      bm_character:type(), -      bm_character:type(), -      list(bm_attack:step()) +      btl_character:type(), +      btl_character:type(), +      list(btl_attack:step())     ) -   -> {list(bm_attack:type()), non_neg_integer(), non_neg_integer()}. +   -> {list(btl_attack:type()), non_neg_integer(), non_neg_integer()}.  handle_attack_sequence  (     Character, @@ -199,7 +199,7 @@ handle_attack_sequence        lists:map        (           fun (AttackStep) -> -            bm_attack:get_description_of +            btl_attack:get_description_of              (                 AttackStep,                 Character, @@ -217,7 +217,7 @@ handle_attack_sequence           {AttackValidEffects, AttackerHealth, DefenderHealth}        ) ->           {AttackResult, NewAttackerHealth, NewDefenderHealth} = -            bm_attack:apply_to_healths +            btl_attack:apply_to_healths              (                 AttackEffectCandidate,                 AttackerHealth, @@ -235,50 +235,50 @@ handle_attack_sequence        end,        {           [], -         bm_character:get_current_health(Character), -         bm_character:get_current_health(TargetCharacter) +         btl_character:get_current_health(Character), +         btl_character:get_current_health(TargetCharacter)        },        AttackPlannedEffects     ).  -spec get_attack_sequence     ( -      bm_character:type(), -      bm_character:type() +      btl_character:type(), +      btl_character:type()     ) -   -> list(bm_attack:step()). +   -> list(btl_attack:step()).  get_attack_sequence (Character, TargetCharacter) ->     Range = -      bm_location:dist +      btl_location:dist        ( -         bm_character:get_location(Character), -         bm_character:get_location(TargetCharacter) +         btl_character:get_location(Character), +         btl_character:get_location(TargetCharacter)        ), -   {AttackingWeaponID, _} = bm_character:get_weapon_ids(Character), -   {DefendingWeaponID, _} = bm_character:get_weapon_ids(TargetCharacter), +   {AttackingWeaponID, _} = btl_character:get_weapon_ids(Character), +   {DefendingWeaponID, _} = btl_character:get_weapon_ids(TargetCharacter),     AttackingWeapon = sh_weapon:from_id(AttackingWeaponID),     DefendingWeapon = sh_weapon:from_id(DefendingWeaponID), -   bm_attack:get_sequence(Range, AttackingWeapon, DefendingWeapon). +   btl_attack:get_sequence(Range, AttackingWeapon, DefendingWeapon).  -spec handle_attack     ( -      bm_battle_action:type(), -      bm_character_turn_update:type() +      btl_battle_action:type(), +      btl_character_turn_update:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  handle_attack (BattleAction, Update) -> -   Data = bm_character_turn_update:get_data(Update), -   Battle = bm_character_turn_data:get_battle(Data), -   Character = bm_character_turn_data:get_character(Data), -   CharacterIX = bm_character_turn_data:get_character_ix(Data), -   TargetIX = bm_battle_action:get_target_ix(BattleAction), -   TargetCharacter = bm_battle:get_character(TargetIX, Battle), +   Data = btl_character_turn_update:get_data(Update), +   Battle = btl_character_turn_data:get_battle(Data), +   Character = btl_character_turn_data:get_character(Data), +   CharacterIX = btl_character_turn_data:get_character_ix(Data), +   TargetIX = btl_battle_action:get_target_ix(BattleAction), +   TargetCharacter = btl_battle:get_character(TargetIX, Battle), -   true = bm_character:get_is_alive(TargetCharacter), +   true = btl_character:get_is_alive(TargetCharacter),     AttackSequence = get_attack_sequence(Character, TargetCharacter), @@ -286,13 +286,13 @@ handle_attack (BattleAction, Update) ->        handle_attack_sequence(Character, TargetCharacter, AttackSequence),     UpdatedCharacter = -      bm_character:set_current_health(RemainingAttackerHealth, Character), +      btl_character:set_current_health(RemainingAttackerHealth, Character),     UpdatedBattle = -      bm_battle:set_character +      btl_battle:set_character        (           TargetIX, -         bm_character:set_current_health +         btl_character:set_current_health           (              RemainingDefenderHealth,              TargetCharacter @@ -300,11 +300,11 @@ handle_attack (BattleAction, Update) ->           Battle        ), -   S0Data = bm_character_turn_data:set_battle(UpdatedBattle, Data), -   S1Data = bm_character_turn_data:set_character(UpdatedCharacter, S0Data), +   S0Data = btl_character_turn_data:set_battle(UpdatedBattle, Data), +   S1Data = btl_character_turn_data:set_character(UpdatedCharacter, S0Data),     TimelineItem = -      bm_turn_result:new_character_attacked +      btl_turn_result:new_character_attacked        (           CharacterIX,           TargetIX, @@ -314,12 +314,12 @@ handle_attack (BattleAction, Update) ->     DBQuery0 =        sh_db_query:update_indexed        ( -         bm_battle:get_characters_field(), +         btl_battle:get_characters_field(),           TargetIX,           [              sh_db_query:set_field              ( -               bm_character:get_current_health_field(), +               btl_character:get_current_health_field(),                 RemainingDefenderHealth              )           ] @@ -328,19 +328,19 @@ handle_attack (BattleAction, Update) ->     DBQuery1 =        sh_db_query:update_indexed        ( -         bm_battle:get_characters_field(), +         btl_battle:get_characters_field(),           CharacterIX,           [              sh_db_query:set_field              ( -               bm_character:get_current_health_field(), +               btl_character:get_current_health_field(),                 RemainingAttackerHealth              )           ]        ),     S0Update = -      bm_character_turn_update:add_to_timeline +      btl_character_turn_update:add_to_timeline        (           TimelineItem,           DBQuery0, @@ -348,16 +348,16 @@ handle_attack (BattleAction, Update) ->        ),     S1Update = -      bm_character_turn_update:add_to_db +      btl_character_turn_update:add_to_db        (           DBQuery1,           S0Update        ), -   S2Update = bm_character_turn_update:set_data(S1Data, S1Update), +   S2Update = btl_character_turn_update:set_data(S1Data, S1Update),     S3Update = -      bm_victory:handle_character_lost_health +      btl_victory:handle_character_lost_health        (           CharacterIX,           RemainingAttackerHealth, @@ -365,7 +365,7 @@ handle_attack (BattleAction, Update) ->        ),     S4Update = -      bm_victory:handle_character_lost_health +      btl_victory:handle_character_lost_health        (           TargetIX,           RemainingDefenderHealth, @@ -379,12 +379,12 @@ handle_attack (BattleAction, Update) ->  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -spec handle  ( -   bm_battle_action:type(), -   bm_character_turn_update:type() +   btl_battle_action:type(), +   btl_character_turn_update:type()  ) --> bm_character_turn_update:type(). +-> btl_character_turn_update:type().  handle (BattleAction, Update) -> -   case bm_battle_action:get_category(BattleAction) of +   case btl_battle_action:get_category(BattleAction) of        move -> handle_move(BattleAction, Update);        switch_weapon -> handle_switch_weapon(Update);        attack -> handle_attack(BattleAction, Update) diff --git a/src/battlemap/game-logic/bm_victory.erl b/src/battle/game-logic/btl_victory.erl index 327920a..eef42ad 100644 --- a/src/battlemap/game-logic/bm_victory.erl +++ b/src/battle/game-logic/btl_victory.erl @@ -1,4 +1,4 @@ --module(bm_victory). +-module(btl_victory).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -20,16 +20,16 @@  -spec mark_players_characters_as_defeated     (        non_neg_integer(), -      array:array(bm_character:type()) -   ) -> {array:array(bm_character:type()), list(non_neg_integer())}. +      array:array(btl_character:type()) +   ) -> {array:array(btl_character:type()), list(non_neg_integer())}.  mark_players_characters_as_defeated (PlayerIX, Characters) ->     sh_array_util:mapiff     (        fun (Character) -> -         (bm_character:get_player_index(Character) == PlayerIX) +         (btl_character:get_player_index(Character) == PlayerIX)        end,        fun (Character) -> -         bm_character:set_is_defeated(true, Character) +         btl_character:set_is_defeated(true, Character)        end,        Characters     ). @@ -37,20 +37,20 @@ mark_players_characters_as_defeated (PlayerIX, Characters) ->  -spec add_db_query_to_mark_character_as_defeated     (        non_neg_integer(), -      bm_character_turn_update:type() +      btl_character_turn_update:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  add_db_query_to_mark_character_as_defeated (IX, Update) -> -   bm_character_turn_update:add_to_db +   btl_character_turn_update:add_to_db     (        sh_db_query:update_indexed        ( -         bm_battle:get_characters_field(), +         btl_battle:get_characters_field(),           IX,           [              sh_db_query:set_field              ( -               bm_character:get_is_defeated_field(), +               btl_character:get_is_defeated_field(),                 true              )           ] @@ -61,13 +61,13 @@ add_db_query_to_mark_character_as_defeated (IX, Update) ->  -spec handle_player_defeat     (        non_neg_integer(), -      bm_character_turn_update:type() +      btl_character_turn_update:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  handle_player_defeat (PlayerIX, Update) -> -   Data = bm_character_turn_update:get_data(Update), -   Battle = bm_character_turn_data:get_battle(Data), -   Characters = bm_battle:get_characters(Battle), +   Data = btl_character_turn_update:get_data(Update), +   Battle = btl_character_turn_data:get_battle(Data), +   Characters = btl_battle:get_characters(Battle),     %% FIXME: The controlled character might slip through.     {UpdatedCharacters, ModifiedIXs} = @@ -83,28 +83,28 @@ handle_player_defeat (PlayerIX, Update) ->     %% TODO: Battle.player[PlayerIX].is_active <- false -   UpdatedBattle = bm_battle:set_characters(UpdatedCharacters, Battle), -   UpdatedData = bm_character_turn_data:set_battle(UpdatedBattle, Data), -   S2Update = bm_character_turn_update:set_data(UpdatedData, S1Update), +   UpdatedBattle = btl_battle:set_characters(UpdatedCharacters, Battle), +   UpdatedData = btl_character_turn_data:set_battle(UpdatedBattle, Data), +   S2Update = btl_character_turn_update:set_data(UpdatedData, S1Update),     DBQuery =        sh_db_query:update_indexed        ( -         bm_battle:get_players_field(), +         btl_battle:get_players_field(),           PlayerIX,           [              sh_db_query:set_field              ( -               bm_player:get_is_active_field(), +               btl_player:get_is_active_field(),                 false              )           ]        ),     S3Update = -      bm_character_turn_update:add_to_timeline +      btl_character_turn_update:add_to_timeline        ( -         bm_turn_result:new_player_lost(PlayerIX), +         btl_turn_result:new_player_lost(PlayerIX),           DBQuery,           S2Update        ), @@ -115,17 +115,17 @@ handle_player_defeat (PlayerIX, Update) ->  -spec actually_handle_character_lost_health     (        non_neg_integer(), -      bm_character_turn_update:type() +      btl_character_turn_update:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  actually_handle_character_lost_health (CharIX, Update) -> -   Data = bm_character_turn_update:get_data(Update), -   Battle = bm_character_turn_data:get_battle(Data), -   Character = bm_battle:get_character(CharIX, Battle), -   Characters = bm_battle:get_characters(Battle), -   CharacterPlayerIX = bm_character:get_player_index(Character), +   Data = btl_character_turn_update:get_data(Update), +   Battle = btl_character_turn_data:get_battle(Data), +   Character = btl_battle:get_character(CharIX, Battle), +   Characters = btl_battle:get_characters(Battle), +   CharacterPlayerIX = btl_character:get_player_index(Character), -   case bm_character:get_rank(Character) of +   case btl_character:get_rank(Character) of        optional ->           %% Let's not assume there is a commander           StillHasAliveChar = @@ -133,9 +133,9 @@ actually_handle_character_lost_health (CharIX, Update) ->              (                 fun (IX, Char) ->                    ( -                     (CharacterPlayerIX == bm_character:get_player_index(Char)) +                     (CharacterPlayerIX == btl_character:get_player_index(Char))                       and (IX /= CharIX) -                     and bm_character:get_is_alive(Char) +                     and btl_character:get_is_alive(Char)                    )                 end,                 Characters @@ -154,10 +154,10 @@ actually_handle_character_lost_health (CharIX, Update) ->              (                 fun (IX, Char) ->                    ( -                     (CharacterPlayerIX == bm_character:get_player_index(Char)) +                     (CharacterPlayerIX == btl_character:get_player_index(Char))                       and (IX /= CharIX) -                     and bm_character:get_is_alive(Char) -                     and (bm_character:get_rank(Char) == target) +                     and btl_character:get_is_alive(Char) +                     and (btl_character:get_rank(Char) == target)                    )                 end,                 Characters @@ -176,19 +176,19 @@ actually_handle_character_lost_health (CharIX, Update) ->     (        non_neg_integer(),        integer(), -      bm_character_turn_update:type() +      btl_character_turn_update:type()     ) -   -> bm_character_turn_update:type(). +   -> btl_character_turn_update:type().  handle_character_lost_health (_, Health, Update) when (Health > 0) -> Update;  handle_character_lost_health (CharIX, _Health, Update) -> -   Data = bm_character_turn_update:get_data(Update), -   S1Data = bm_character_turn_data:clean_battle(Data), -   S1Update = bm_character_turn_update:set_data(S1Data, Update), +   Data = btl_character_turn_update:get_data(Update), +   S1Data = btl_character_turn_data:clean_battle(Data), +   S1Update = btl_character_turn_update:set_data(S1Data, Update),     S2Update = actually_handle_character_lost_health(CharIX, S1Update), -   S2Data = bm_character_turn_update:get_data(S2Update), -   S3Data = bm_character_turn_data:refresh_character(S2Data), -   S3Update = bm_character_turn_update:set_data(S3Data, S2Update), +   S2Data = btl_character_turn_update:get_data(S2Update), +   S3Data = btl_character_turn_data:refresh_character(S2Data), +   S3Update = btl_character_turn_update:set_data(S3Data, S2Update),     S3Update. diff --git a/src/battlemap/io/bm_security.erl b/src/battle/io/btl_security.erl index 787082a..cf6bb9b 100644 --- a/src/battlemap/io/bm_security.erl +++ b/src/battle/io/btl_security.erl @@ -1,4 +1,4 @@ --module(bm_security). +-module(btl_security).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battle/query/btl_character_turn.erl b/src/battle/query/btl_character_turn.erl new file mode 100644 index 0000000..c232ab0 --- /dev/null +++ b/src/battle/query/btl_character_turn.erl @@ -0,0 +1,282 @@ +-module(btl_character_turn). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-include("../../../include/yaws_api.hrl"). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export([out/1]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%-spec send_to_database (list(database_diff:type()), character_turn_request:type()) -> 'ok'. + + +%%%% REQUEST DECODING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec decode_request (binary()) -> btl_character_turn_request:type(). +decode_request (BinaryRequest) -> +   JSONMap = jiffy:decode(BinaryRequest, [return_maps]), + +   btl_character_turn_request:decode(JSONMap). + +%%%% USER AUTHENTICATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec authenticate_user (btl_character_turn_request:type()) -> 'ok'. +authenticate_user (Request) -> +   PlayerID = btl_character_turn_request:get_player_id(Request), +   SessionToken = btl_character_turn_request:get_session_token(Request), + +   btl_security:assert_identity(PlayerID, SessionToken), +   btl_security:lock_queries(PlayerID), + +   ok. + +%%%% MAIN LOGIC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec fetch_data +   ( +      btl_character_turn_request:type() +   ) +   -> btl_character_turn_data:type(). +fetch_data (Request) -> +   PlayerID = btl_character_turn_request:get_player_id(Request), +   BattleID = btl_character_turn_request:get_battle_id(Request), +   CharacterIX = btl_character_turn_request:get_character_ix(Request), +   Battle = sh_timed_cache:fetch(battle_db, PlayerID, BattleID), + +   btl_character_turn_data:new(Battle, CharacterIX). + +%%%% ASSERTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec assert_user_is_current_player +   ( +      btl_character_turn_data:type(), +      btl_character_turn_request:type() +   ) -> 'ok'. +assert_user_is_current_player (Data, Request) -> +   PlayerID = btl_character_turn_request:get_player_id(Request), +   Battle = btl_character_turn_data:get_battle(Data), +   CurrentPlayerTurn = btl_battle:get_current_player_turn(Battle), +   CurrentPlayerIX = btl_player_turn:get_player_ix(CurrentPlayerTurn), +   CurrentPlayer = btl_battle:get_player(CurrentPlayerIX, Battle), + +   true = (PlayerID == btl_player:get_id(CurrentPlayer)), + +   ok. + +-spec assert_user_owns_played_character +   ( +      btl_character_turn_data:type(), +      btl_character_turn_request:type() +   ) -> 'ok'. +assert_user_owns_played_character (Data, Request) -> +   PlayerID = btl_character_turn_request:get_player_id(Request), +   Battle = btl_character_turn_data:get_battle(Data), +   Players = btl_battle:get_players(Battle), +   Character = btl_character_turn_data:get_character(Data), +   CharacterPlayerIX = btl_character:get_player_index(Character), +   CharacterPlayer = array:get(CharacterPlayerIX, Players), +   CharacterPlayerID = btl_player:get_id(CharacterPlayer), + +   true = (PlayerID == CharacterPlayerID), + +   ok. + +-spec assert_character_can_be_played (btl_character_turn_data:type()) -> 'ok'. +assert_character_can_be_played (Data) -> +   Character = btl_character_turn_data:get_character(Data), + +   true = btl_character:get_is_active(Character), + +   ok. + +-spec assert_user_permissions +   ( +      btl_character_turn_data:type(), +      btl_character_turn_request:type() +   ) -> 'ok'. +assert_user_permissions (Data, Request) -> +   assert_user_is_current_player(Data, Request), +   assert_user_owns_played_character(Data, Request), +   assert_character_can_be_played(Data), + +   ok. + +%%%% QUERY LOGIC HANDLING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec finalize_character +   ( +      btl_character_turn_update:type() +   ) +   -> btl_character_turn_update:type(). +finalize_character (Update) -> +   Data = btl_character_turn_update:get_data(Update), +   Character = btl_character_turn_data:get_character(Data), + +   DisabledCharacter = btl_character:set_is_active(false, Character), +   UpdatedData = btl_character_turn_data:set_character(DisabledCharacter, Data), +   FinalizedData = btl_character_turn_data:clean_battle(UpdatedData), + +   DBQuery = +      sh_db_query:update_indexed +      ( +         btl_battle:get_characters_field(), +         btl_character_turn_data:get_character_ix(Data), +         [ sh_db_query:set_field(btl_character:get_is_active_field(), false) ] +      ), + +   S0Update = btl_character_turn_update:set_data(FinalizedData, Update), +   S1Update = btl_character_turn_update:add_to_db(DBQuery, S0Update), + +   S1Update. + +-spec handle_actions +   ( +      btl_character_turn_data:type(), +      btl_character_turn_request:type() +   ) +   -> btl_character_turn_update:type(). +handle_actions (Data, Request) -> +   Actions = btl_character_turn_request:get_actions(Request), + +   EmptyUpdate = btl_character_turn_update:new(Data), +   PostActionsUpdate = +      lists:foldl(fun btl_turn_actions:handle/2, EmptyUpdate, Actions), + +   finalize_character(PostActionsUpdate). + +-spec update_timeline +   ( +      btl_character_turn_update:type() +   ) +   -> btl_character_turn_update:type(). +update_timeline (Update) -> +   NewTimelineElements = btl_character_turn_update:get_timeline(Update), +   Data = btl_character_turn_update:get_data(Update), +   Battle = btl_character_turn_data:get_battle(Data), +   PlayerTurn = btl_battle:get_current_player_turn(Battle), +   PlayerIX = btl_player_turn:get_player_ix(PlayerTurn), +   Player = btl_battle:get_player(PlayerIX, Battle), + +   UpdatedPlayer = btl_player:add_to_timeline(NewTimelineElements, Player), +   UpdatedBattle = btl_battle:set_player(PlayerIX, UpdatedPlayer, Battle), +   UpdatedData = btl_character_turn_data:set_battle(UpdatedBattle, Data), + +   DBQuery = +      sh_db_query:update_indexed +      ( +         btl_battle:get_players_field(), +         PlayerIX, +         [ +            sh_db_query:add_to_field +            ( +               btl_player:get_timeline_field(), +               NewTimelineElements, +               true % We add those to the start of the list +            ) +         ] +      ), + +   S0Update = btl_character_turn_update:set_data(UpdatedData, Update), +   S1Update = btl_character_turn_update:add_to_db(DBQuery, S0Update), + +   S1Update. + + +-spec update_data +   ( +      btl_character_turn_data:type(), +      btl_character_turn_request:type() +   ) +   -> btl_character_turn_update:type(). +update_data (Data, Request) -> +   PostActionsUpdate = handle_actions(Data, Request), +   PostCharacterTurnUpdate = update_timeline(PostActionsUpdate), + +   btl_next_turn:update_if_needed(PostCharacterTurnUpdate). + +%%%% DATABASE UPDATES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec send_to_database +   ( +      btl_character_turn_update:type(), +      btl_character_turn_request:type() +   ) +   -> 'ok'. +send_to_database (Update, Request) -> +   PlayerID = btl_character_turn_request:get_player_id(Request), +   BattleID = btl_character_turn_request:get_battle_id(Request), +   Ops = btl_character_turn_update:get_db(Update), +   Query = sh_db_query:new(battle_db, BattleID, {user, PlayerID}, Ops), + +   sh_database:commit(Query), + +   ok. + +-spec send_to_cache +   ( +      btl_character_turn_update:type(), +      btl_character_turn_request:type() +   ) +   -> 'ok'. +send_to_cache (Update, Request) -> +   PlayerID = btl_character_turn_request:get_player_id(Request), +   BattleID = btl_character_turn_request:get_battle_id(Request), +   Data = btl_character_turn_update:get_data(Update), +   Battle = btl_character_turn_data:get_battle(Data), + +   sh_timed_cache:update(battle_db, PlayerID, BattleID, Battle), + +   ok. + +-spec commit_update +   ( +      btl_character_turn_update:type(), +      btl_character_turn_request:type() +   ) +   -> 'ok'. +commit_update (Update, Request) -> +   send_to_database(Update, Request), +   send_to_cache(Update, Request), + +   ok. + +%%%% USER DISCONNECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec disconnect_user (btl_character_turn_request:type()) -> 'ok'. +disconnect_user (Request) -> +   PlayerID = btl_character_turn_request:get_player_id(Request), + +   btl_security:unlock_queries(PlayerID), + +   ok. + +%%%% REPLY GENERATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec generate_reply (btl_character_turn_update:type()) -> binary(). +generate_reply (Update) -> +   NewTimelineItems = btl_character_turn_update:get_timeline(Update), + +   TurnResultReply = btl_turn_results:generate(NewTimelineItems), + +   jiffy:encode([TurnResultReply]). + +%%%% MAIN LOGIC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec handle (binary()) -> binary(). +handle (EncodedRequest) -> +   Request = decode_request(EncodedRequest), +   authenticate_user(Request), +   Data = fetch_data(Request), +   assert_user_permissions(Data, Request), +   Update = update_data(Data, Request), +   commit_update(Update, Request), +   disconnect_user(Request), +   generate_reply(Update). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +out(A) -> +   { +      content, +      "application/json; charset=UTF-8", +      handle(A#arg.clidata) +   }. diff --git a/src/battlemap/query/bm_load_state.erl b/src/battle/query/btl_load_state.erl index 505ec3b..f79e24e 100644 --- a/src/battlemap/query/bm_load_state.erl +++ b/src/battle/query/btl_load_state.erl @@ -1,4 +1,4 @@ --module(bm_load_state). +-module(btl_load_state).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -9,7 +9,7 @@  (     input,     { -      player_id :: bm_player:id(), +      player_id :: btl_player:id(),        session_token :: binary(),        battle_id :: binary()     } @@ -19,7 +19,7 @@  (     query_state,     { -      battle :: bm_battle:type() +      battle :: btl_battle:type()     }  ). @@ -39,7 +39,7 @@ parse_input (Req) ->     JSONReqMap = jiffy:decode(Req, [return_maps]),     PlayerID = maps:get(<<"pid">>, JSONReqMap),     SessionToken =  maps:get(<<"stk">>, JSONReqMap), -   BattleID = maps:get(<<"bmi">>, JSONReqMap), +   BattleID = maps:get(<<"bid">>, JSONReqMap),     #input     { @@ -64,13 +64,13 @@ fetch_data (Input) ->  generate_reply (QueryState, Input) ->     PlayerID = Input#input.player_id,     Battle = QueryState#query_state.battle, -   Players = bm_battle:get_players(Battle), +   Players = btl_battle:get_players(Battle),     PlayerIX =        sh_array_util:first        (           fun (Player) -> -            (bm_player:get_id(Player) == PlayerID) +            (btl_player:get_id(Player) == PlayerID)           end,           Players        ), @@ -78,12 +78,12 @@ generate_reply (QueryState, Input) ->     true = (PlayerIX >= 0),     SetTimeline = -      bm_set_timeline:generate +      btl_set_timeline:generate        ( -         bm_battle:get_encoded_last_turns_effects(Battle) +         btl_battle:get_encoded_last_turns_effects(Battle)        ), -   SetMap = bm_set_map:generate(bm_battle:get_battlemap(Battle)), +   SetMap = btl_set_map:generate(btl_battle:get_battlemap(Battle)),     AddCharList =        array:sparse_to_list @@ -91,9 +91,9 @@ generate_reply (QueryState, Input) ->           array:map           (              fun (IX, Character) -> -               bm_add_char:generate(IX, Character, PlayerIX) +               btl_add_char:generate(IX, Character, PlayerIX)              end, -            bm_battle:get_characters(Battle) +            btl_battle:get_characters(Battle)           )        ), @@ -101,27 +101,27 @@ generate_reply (QueryState, Input) ->        lists:map        (           fun (WeaponID) -> -            bm_add_weapon:generate(sh_weapon:from_id(WeaponID)) +            btl_add_weapon:generate(sh_weapon:from_id(WeaponID))           end, -         bm_battle:get_used_weapon_ids(Battle) +         btl_battle:get_used_weapon_ids(Battle)        ),     AddArmorList =        lists:map        (           fun (ArmorID) -> -            bm_add_armor:generate(sh_armor:from_id(ArmorID)) +            btl_add_armor:generate(sh_armor:from_id(ArmorID))           end, -         bm_battle:get_used_armor_ids(Battle) +         btl_battle:get_used_armor_ids(Battle)        ),     AddTileList =        lists:map        (           fun (TileID) -> -            bm_add_tile:generate(bm_tile:from_id(TileID)) +            btl_add_tile:generate(btl_tile:from_id(TileID))           end, -         bm_battle:get_used_tile_ids(Battle) +         btl_battle:get_used_tile_ids(Battle)        ),     OutputList = @@ -138,14 +138,14 @@ generate_reply (QueryState, Input) ->  -spec handle (binary()) -> binary().  handle (Req) ->     Input = parse_input(Req), -   bm_security:assert_identity +   btl_security:assert_identity     (        Input#input.player_id,        Input#input.session_token     ), -   bm_security:lock_queries(Input#input.player_id), +   btl_security:lock_queries(Input#input.player_id),     QueryState = fetch_data(Input), -   bm_security:unlock_queries(Input#input.player_id), +   btl_security:unlock_queries(Input#input.player_id),     generate_reply(QueryState, Input).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/reply/bm_add_armor.erl b/src/battle/reply/btl_add_armor.erl index 4f098bd..2c6a875 100644 --- a/src/battlemap/reply/bm_add_armor.erl +++ b/src/battle/reply/btl_add_armor.erl @@ -1,4 +1,4 @@ --module(bm_add_armor). +-module(btl_add_armor).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/reply/bm_add_char.erl b/src/battle/reply/btl_add_char.erl index 4dab700..75b6fcd 100644 --- a/src/battlemap/reply/bm_add_char.erl +++ b/src/battle/reply/btl_add_char.erl @@ -1,4 +1,4 @@ --module(bm_add_char). +-module(btl_add_char).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -12,7 +12,7 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec rank_to_string (bm_character:rank()) -> binary(). +-spec rank_to_string (btl_character:rank()) -> binary().  rank_to_string (Rank) ->     case Rank of        optional -> <<"o">>; @@ -43,41 +43,41 @@ attributes_as_json (Attributes) ->  -spec generate     (        non_neg_integer(), -      bm_character:type(), +      btl_character:type(),        non_neg_integer()     )     -> {list(any())}.  generate (IX, Character, PlayerIX) -> -   Attributes = bm_character:get_attributes(Character), -   {ActiveWeapon, SecondaryWeapon} = bm_character:get_weapon_ids(Character), -   CharacterPlayerIX = bm_character:get_player_index(Character), -   Location = bm_character:get_location(Character), +   Attributes = btl_character:get_attributes(Character), +   {ActiveWeapon, SecondaryWeapon} = btl_character:get_weapon_ids(Character), +   CharacterPlayerIX = btl_character:get_player_index(Character), +   Location = btl_character:get_location(Character),     {        [           {<<"msg">>, <<"add_char">>},           {<<"ix">>, IX}, -         {<<"nam">>, bm_character:get_name(Character)}, -         {<<"rnk">>, rank_to_string(bm_character:get_rank(Character))}, -         {<<"ico">>, bm_character:get_icon(Character)}, -         {<<"prt">>, bm_character:get_portrait(Character)}, +         {<<"nam">>, btl_character:get_name(Character)}, +         {<<"rnk">>, rank_to_string(btl_character:get_rank(Character))}, +         {<<"ico">>, btl_character:get_icon(Character)}, +         {<<"prt">>, btl_character:get_portrait(Character)},           {              <<"hea">>, -            bm_character:get_current_health(Character) +            btl_character:get_current_health(Character)           }, -         {<<"lc">>, bm_location:encode(Location)}, +         {<<"lc">>, btl_location:encode(Location)},           {<<"pla">>, CharacterPlayerIX},           {              <<"ena">>,              ( -               bm_character:get_is_active(Character) +               btl_character:get_is_active(Character)                 and (CharacterPlayerIX == PlayerIX)              )           }, -         {<<"dea">>, bm_character:get_is_defeated(Character)}, +         {<<"dea">>, btl_character:get_is_defeated(Character)},           {<<"att">>, attributes_as_json(Attributes)},           {<<"awp">>, ActiveWeapon},           {<<"swp">>, SecondaryWeapon}, -         {<<"ar">>, bm_character:get_armor_id(Character)} +         {<<"ar">>, btl_character:get_armor_id(Character)}        ]     }. diff --git a/src/battlemap/reply/bm_add_tile.erl b/src/battle/reply/btl_add_tile.erl index 1845ffc..04c4ec2 100644 --- a/src/battlemap/reply/bm_add_tile.erl +++ b/src/battle/reply/btl_add_tile.erl @@ -1,4 +1,4 @@ --module(bm_add_tile). +-module(btl_add_tile).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -16,15 +16,15 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec generate (bm_tile:type()) -> {list(any())}. +-spec generate (btl_tile:type()) -> {list(any())}.  generate (Tile) ->     {        [           {<<"msg">>, <<"add_tile">>}, -         {<<"id">>, bm_tile:get_id(Tile)}, -         {<<"nam">>, bm_tile:get_name(Tile)}, -         {<<"ct">>, bm_tile:get_cost(Tile)}, -         {<<"rmi">>, bm_tile:get_range_minimum(Tile)}, -         {<<"rma">>, bm_tile:get_range_maximum(Tile)} +         {<<"id">>, btl_tile:get_id(Tile)}, +         {<<"nam">>, btl_tile:get_name(Tile)}, +         {<<"ct">>, btl_tile:get_cost(Tile)}, +         {<<"rmi">>, btl_tile:get_range_minimum(Tile)}, +         {<<"rma">>, btl_tile:get_range_maximum(Tile)}        ]     }. diff --git a/src/battlemap/reply/bm_add_weapon.erl b/src/battle/reply/btl_add_weapon.erl index 3473265..d4edbef 100644 --- a/src/battlemap/reply/bm_add_weapon.erl +++ b/src/battle/reply/btl_add_weapon.erl @@ -1,4 +1,4 @@ --module(bm_add_weapon). +-module(btl_add_weapon).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/reply/bm_set_map.erl b/src/battle/reply/btl_set_map.erl index 9989fa0..37c6331 100644 --- a/src/battlemap/reply/bm_set_map.erl +++ b/src/battle/reply/btl_set_map.erl @@ -1,4 +1,4 @@ --module(bm_set_map). +-module(btl_set_map).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -16,16 +16,16 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec generate (bm_battlemap:type()) -> {list(any())}. +-spec generate (btl_battlemap:type()) -> {list(any())}.  generate (Battlemap) ->     {        [           {<<"msg">>, <<"set_map">>}, -         {<<"w">>, bm_battlemap:get_width(Battlemap)}, -         {<<"h">>, bm_battlemap:get_height(Battlemap)}, +         {<<"w">>, btl_battlemap:get_width(Battlemap)}, +         {<<"h">>, btl_battlemap:get_height(Battlemap)},           {              <<"t">>, -            array:sparse_to_list(bm_battlemap:get_tile_class_ids(Battlemap)) +            array:sparse_to_list(btl_battlemap:get_tile_class_ids(Battlemap))           }        ]     }. diff --git a/src/battlemap/reply/bm_set_timeline.erl b/src/battle/reply/btl_set_timeline.erl index cea3790..e6f571f 100644 --- a/src/battlemap/reply/bm_set_timeline.erl +++ b/src/battle/reply/btl_set_timeline.erl @@ -1,4 +1,4 @@ --module(bm_set_timeline). +-module(btl_set_timeline).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/reply/bm_turn_results.erl b/src/battle/reply/btl_turn_results.erl index d47a693..361cab1 100644 --- a/src/battlemap/reply/bm_turn_results.erl +++ b/src/battle/reply/btl_turn_results.erl @@ -1,4 +1,4 @@ --module(bm_turn_results). +-module(btl_turn_results).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/struct/bm_attack.erl b/src/battle/struct/btl_attack.erl index a1ce027..aa7659f 100644 --- a/src/battlemap/struct/bm_attack.erl +++ b/src/battle/struct/btl_attack.erl @@ -1,4 +1,4 @@ --module(bm_attack). +-module(btl_attack).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -86,14 +86,14 @@ roll_parry (DefenderStatistics) ->  -spec effect_of_attack     (        order(), -      bm_character:type(), -      bm_character:type(), +      btl_character:type(), +      btl_character:type(),        boolean()     )     -> type().  effect_of_attack (Order, Attacker, Defender, CanParry) -> -   AttackerStatistics = bm_character:get_statistics(Attacker), -   DefenderStatistics = bm_character:get_statistics(Defender), +   AttackerStatistics = btl_character:get_statistics(Attacker), +   DefenderStatistics = btl_character:get_statistics(Defender),     ParryIsSuccessful = (CanParry and roll_parry(DefenderStatistics)), @@ -108,8 +108,8 @@ effect_of_attack (Order, Attacker, Defender, CanParry) ->           false -> {Attacker, Defender}        end, -   ActualDefArmor = sh_armor:from_id(bm_character:get_armor_id(ActualDefender)), -   {ActualAtkWeaponID, _} = bm_character:get_weapon_ids(ActualAttacker), +   ActualDefArmor = sh_armor:from_id(btl_character:get_armor_id(ActualDefender)), +   {ActualAtkWeaponID, _} = btl_character:get_weapon_ids(ActualAttacker),     ActualAtkWeaponDmgType =        sh_weapon:get_damage_type(sh_weapon:from_id(ActualAtkWeaponID)), @@ -151,14 +151,14 @@ encode_precision (misses) -> <<"m">>.  -spec get_description_of     (        step(), -      bm_character:type(), -      bm_character:type() +      btl_character:type(), +      btl_character:type()     )     -> maybe_type().  get_description_of ({first, CanParry}, Attacker, Defender) ->     effect_of_attack(first, Attacker, Defender, CanParry);  get_description_of ({second, CanParry}, Attacker, Defender) -> -   AttackerStatistics = bm_character:get_statistics(Attacker), +   AttackerStatistics = btl_character:get_statistics(Attacker),     AttackerDoubleAttackChange =        sh_statistics:get_double_hits(AttackerStatistics), diff --git a/src/battlemap/struct/bm_battle.erl b/src/battle/struct/btl_battle.erl index 4c93460..8befc4e 100644 --- a/src/battlemap/struct/bm_battle.erl +++ b/src/battle/struct/btl_battle.erl @@ -1,4 +1,4 @@ --module(bm_battle). +-module(btl_battle).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -12,11 +12,11 @@        id :: id(),        used_armor_ids :: list(sh_armor:id()),        used_weapon_ids :: list(sh_weapon:id()), -      used_tile_ids :: list(bm_tile:id()), -      battlemap :: bm_battlemap:type(), -      characters :: array:array(bm_character:type()), -      players :: array:array(bm_player:type()), -      current_player_turn :: bm_player_turn:type() +      used_tile_ids :: list(btl_tile:id()), +      battlemap :: btl_battlemap:type(), +      characters :: array:array(btl_character:type()), +      players :: array:array(btl_player:type()), +      current_player_turn :: btl_player_turn:type()     }  ). @@ -68,7 +68,7 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  get_all_timelines (Result, CurrentIndex, EndPoint, ArraySize, Players) ->     Player = array:get(CurrentIndex, Players), -   Timeline = bm_player:get_timeline(Player), +   Timeline = btl_player:get_timeline(Player),     NextIndex = ((CurrentIndex + 1) rem ArraySize),     NextResult = (Timeline ++ Result),     case CurrentIndex of @@ -92,28 +92,28 @@ get_used_weapon_ids (Battle) -> Battle#battle.used_weapon_ids.  -spec get_used_armor_ids (type()) -> list(sh_armor:id()).  get_used_armor_ids (Battle) -> Battle#battle.used_armor_ids. --spec get_used_tile_ids (type()) -> list(bm_tile:id()). +-spec get_used_tile_ids (type()) -> list(btl_tile:id()).  get_used_tile_ids (Battle) -> Battle#battle.used_tile_ids. --spec get_battlemap (type()) -> bm_battlemap:type(). +-spec get_battlemap (type()) -> btl_battlemap:type().  get_battlemap (Battle) -> Battle#battle.battlemap. --spec get_characters (type()) -> array:array(bm_character:type()). +-spec get_characters (type()) -> array:array(btl_character:type()).  get_characters (Battle) -> Battle#battle.characters. --spec get_character (non_neg_integer(), type()) -> bm_character:type(). +-spec get_character (non_neg_integer(), type()) -> btl_character:type().  get_character (IX, Battle) ->     array:get(IX, Battle#battle.characters). --spec get_players (type()) -> array:array(bm_player:type()). +-spec get_players (type()) -> array:array(btl_player:type()).  get_players (Battle) ->     Battle#battle.players. --spec get_player (non_neg_integer(), type()) -> bm_player:type(). +-spec get_player (non_neg_integer(), type()) -> btl_player:type().  get_player (IX, Battle) ->     array:get(IX, Battle#battle.players). --spec get_current_player_turn (type()) -> bm_player_turn:type(). +-spec get_current_player_turn (type()) -> btl_player_turn:type().  get_current_player_turn (Battle) ->     Battle#battle.current_player_turn. @@ -121,27 +121,27 @@ get_current_player_turn (Battle) ->  get_encoded_last_turns_effects (Battle) ->     CurrentPlayerTurn = Battle#battle.current_player_turn,     Players = Battle#battle.players, -   CurrentPlayerIX = bm_player_turn:get_player_ix(CurrentPlayerTurn), +   CurrentPlayerIX = btl_player_turn:get_player_ix(CurrentPlayerTurn),     PlayersCount = array:size(Players),     StartingPoint = ((CurrentPlayerIX + 1) rem PlayersCount),     get_all_timelines([], StartingPoint, CurrentPlayerIX, PlayersCount, Players). --spec set_battlemap (bm_battlemap:type(), type()) -> type(). +-spec set_battlemap (btl_battlemap:type(), type()) -> type().  set_battlemap (Battlemap, Battle) ->     Battle#battle     {        battlemap = Battlemap     }. --spec set_characters (array:array(bm_character:type()), type()) -> type(). +-spec set_characters (array:array(btl_character:type()), type()) -> type().  set_characters (Characters, Battle) ->     Battle#battle     {        characters = Characters     }. --spec set_character (non_neg_integer(), bm_character:type(), type()) -> type(). +-spec set_character (non_neg_integer(), btl_character:type(), type()) -> type().  set_character (IX, Character, Battle) ->     Battle#battle     { @@ -154,14 +154,14 @@ set_character (IX, Character, Battle) ->           )     }. --spec set_players (array:array(bm_player:type()), type()) -> type(). +-spec set_players (array:array(btl_player:type()), type()) -> type().  set_players (Players, Battle) ->     Battle#battle     {        players = Players     }. --spec set_player (non_neg_integer(), bm_player:type(), type()) -> type(). +-spec set_player (non_neg_integer(), btl_player:type(), type()) -> type().  set_player (IX, Player, Battle) ->     Battle#battle     { @@ -174,7 +174,7 @@ set_player (IX, Player, Battle) ->           )     }. --spec set_current_player_turn (bm_player_turn:type(), type()) -> type(). +-spec set_current_player_turn (btl_player_turn:type(), type()) -> type().  set_current_player_turn (PlayerTurn, Battle) ->     Battle#battle     { @@ -184,12 +184,12 @@ set_current_player_turn (PlayerTurn, Battle) ->  -spec new     (        id(), -      list(bm_player:type()), -      bm_battlemap:type(), -      list(bm_character:type()), +      list(btl_player:type()), +      btl_battlemap:type(), +      list(btl_character:type()),        list(sh_weapon:id()),        list(sh_armor:id()), -      list(bm_tile:id()) +      list(btl_tile:id())     )     -> type().  new (ID, PlayersAsList, Battlemap, CharactersAsList, UWIDs, UAIDs, UTIDs) -> @@ -202,7 +202,7 @@ new (ID, PlayersAsList, Battlemap, CharactersAsList, UWIDs, UAIDs, UTIDs) ->        battlemap = Battlemap,        characters = array:from_list(CharactersAsList),        players = array:from_list(PlayersAsList), -      current_player_turn = bm_player_turn:new(0, 0) +      current_player_turn = btl_player_turn:new(0, 0)     }. diff --git a/src/battlemap/struct/bm_battle_action.erl b/src/battle/struct/btl_battle_action.erl index 1bc0f3b..307043a 100644 --- a/src/battlemap/struct/bm_battle_action.erl +++ b/src/battle/struct/btl_battle_action.erl @@ -1,4 +1,4 @@ --module(bm_battle_action). +-module(btl_battle_action).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -7,7 +7,7 @@  (     move,     { -      path :: list(bm_direction:enum()) +      path :: list(btl_direction:enum())     }  ). @@ -57,7 +57,7 @@  -spec decode_mov_action (map()) -> type().  decode_mov_action (JSONMap) ->     PathInBinary = maps:get(<<"p">>, JSONMap), -   Path = lists:map(fun bm_direction:decode/1, PathInBinary), +   Path = lists:map(fun btl_direction:decode/1, PathInBinary),     #move { path = Path }. @@ -92,7 +92,7 @@ can_follow (switch_weapon, attack) -> true;  can_follow (move, attack) -> true;  can_follow (_, _) -> false. --spec get_path (type()) -> list(bm_direction:type()). +-spec get_path (type()) -> list(btl_direction:type()).  get_path (Action) when is_record(Action, move) ->     Action#move.path;  get_path (_) -> diff --git a/src/battlemap/struct/bm_battlemap.erl b/src/battle/struct/btl_battlemap.erl index 77d3041..886e2a9 100644 --- a/src/battlemap/struct/bm_battlemap.erl +++ b/src/battle/struct/btl_battlemap.erl @@ -1,4 +1,4 @@ --module(bm_battlemap). +-module(btl_battlemap).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -12,7 +12,7 @@        id :: id(),        width :: integer(),        height :: integer(), -      tile_class_ids :: array:array(bm_tile:class_id()) +      tile_class_ids :: array:array(btl_tile:class_id())     }  ). @@ -48,7 +48,7 @@  -spec location_to_array_index     (        non_neg_integer(), -      bm_location:type() +      btl_location:type()     )     -> ('error' | non_neg_integer()).  location_to_array_index (ArrayWidth, {X, Y}) -> @@ -72,10 +72,10 @@ get_width (Battlemap) -> Battlemap#battlemap.width.  -spec get_height (type()) -> integer().  get_height (Battlemap) -> Battlemap#battlemap.height. --spec get_tile_class_ids (type()) -> array:array(bm_tile:class_id()). +-spec get_tile_class_ids (type()) -> array:array(btl_tile:class_id()).  get_tile_class_ids (Battlemap) -> Battlemap#battlemap.tile_class_ids. --spec get_tile_class_id (bm_location:type(), type()) -> bm_tile:class_id(). +-spec get_tile_class_id (btl_location:type(), type()) -> btl_tile:class_id().  get_tile_class_id (Location, Battlemap) ->     TileIX = location_to_array_index(Battlemap#battlemap.width, Location),     array:get(TileIX, Battlemap#battlemap.tile_class_ids). @@ -89,7 +89,7 @@ get_tile_class_id (Location, Battlemap) ->     )     -> type().  from_list (ID, Width, Height, List) -> -   TileClassIDs = lists:map(fun bm_tile:class_id_from_int/1, List), +   TileClassIDs = lists:map(fun btl_tile:class_id_from_int/1, List),     #battlemap     { diff --git a/src/battlemap/struct/bm_character.erl b/src/battle/struct/btl_character.erl index b0e19ed..841f4ea 100644 --- a/src/battlemap/struct/bm_character.erl +++ b/src/battle/struct/btl_character.erl @@ -1,4 +1,4 @@ --module(bm_character). +-module(btl_character).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/struct/bm_character_turn_data.erl b/src/battle/struct/btl_character_turn_data.erl index 65b650c..31a4b7d 100644 --- a/src/battlemap/struct/bm_character_turn_data.erl +++ b/src/battle/struct/btl_character_turn_data.erl @@ -1,4 +1,4 @@ --module(bm_character_turn_data). +-module(btl_character_turn_data).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -8,8 +8,8 @@     type,     {        dirty :: boolean(), -      battle :: bm_battle:type(), -      character :: bm_character:type(), +      battle :: btl_battle:type(), +      character :: btl_character:type(),        character_ix :: non_neg_integer()     }  ). @@ -51,9 +51,9 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec new (bm_battle:type(), non_neg_integer()) -> type(). +-spec new (btl_battle:type(), non_neg_integer()) -> type().  new (Battle, CharacterIX) -> -   Character = bm_battle:get_character(CharacterIX, Battle), +   Character = btl_battle:get_character(CharacterIX, Battle),     #type     { @@ -66,20 +66,20 @@ new (Battle, CharacterIX) ->  -spec get_battle_is_dirty (type()) -> boolean().  get_battle_is_dirty (Data) -> Data#type.dirty. --spec get_battle (type()) -> bm_battle:type(). +-spec get_battle (type()) -> btl_battle:type().  get_battle (Data) -> Data#type.battle. --spec get_character (type()) -> bm_character:type(). +-spec get_character (type()) -> btl_character:type().  get_character (Data) -> Data#type.character.  -spec get_character_ix (type()) -> non_neg_integer().  get_character_ix (Data) -> Data#type.character_ix. --spec set_battle (bm_battle:type(), type()) -> type(). +-spec set_battle (btl_battle:type(), type()) -> type().  set_battle (Battle, Data) ->     Data#type{ battle = Battle }. --spec set_character (bm_character:type(), type()) -> type(). +-spec set_character (btl_character:type(), type()) -> type().  set_character (Character, Data) ->     Data#type     { @@ -93,7 +93,7 @@ clean_battle (Data) ->     {        dirty = false,        battle = -         bm_battle:set_character +         btl_battle:set_character           (              Data#type.character_ix,              Data#type.character, @@ -107,7 +107,7 @@ refresh_character (Data) ->     {        dirty = false,        character = -         bm_battle:get_character +         btl_battle:get_character           (              Data#type.character_ix,              Data#type.battle diff --git a/src/battlemap/struct/bm_character_turn_request.erl b/src/battle/struct/btl_character_turn_request.erl index 51c87a3..a4f310d 100644 --- a/src/battlemap/struct/bm_character_turn_request.erl +++ b/src/battle/struct/btl_character_turn_request.erl @@ -1,4 +1,4 @@ --module(bm_character_turn_request). +-module(btl_character_turn_request).  -define(PLAYER_ID_FIELD, <<"pid">>).  -define(SESSION_TOKEN_FIELD, <<"stk">>). @@ -13,11 +13,11 @@  (     type,     { -      player_id :: bm_player:id(), +      player_id :: btl_player:id(),        session_token :: binary(),        battle_id :: binary(),        character_ix :: non_neg_integer(), -      actions :: list(bm_battle_action:type()) +      actions :: list(btl_battle_action:type())     }  ). @@ -57,7 +57,7 @@  decode (Map) ->     CharacterIX = maps:get(?CHAR_IX_FIELD, Map),     EncodedActions = maps:get(?ACTIONS_FIELD, Map), -   Actions = lists:map(fun bm_battle_action:decode/1, EncodedActions), +   Actions = lists:map(fun btl_battle_action:decode/1, EncodedActions),     #type     { @@ -68,7 +68,7 @@ decode (Map) ->        actions = Actions     }. --spec get_player_id (type()) -> bm_player:id(). +-spec get_player_id (type()) -> btl_player:id().  get_player_id (Request) -> Request#type.player_id.  -spec get_session_token (type()) -> binary(). @@ -80,5 +80,5 @@ get_battle_id (Request) -> Request#type.battle_id.  -spec get_character_ix (type()) -> non_neg_integer().  get_character_ix (Request) -> Request#type.character_ix. --spec get_actions (type()) -> list(bm_battle_action:type()). +-spec get_actions (type()) -> list(btl_battle_action:type()).  get_actions (Request) -> Request#type.actions. diff --git a/src/battlemap/struct/bm_character_turn_update.erl b/src/battle/struct/btl_character_turn_update.erl index 1ca5d94..a6b29d9 100644 --- a/src/battlemap/struct/bm_character_turn_update.erl +++ b/src/battle/struct/btl_character_turn_update.erl @@ -1,4 +1,4 @@ --module(bm_character_turn_update). +-module(btl_character_turn_update).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -7,7 +7,7 @@  (     type,     { -      data :: bm_character_turn_data:type(), +      data :: btl_character_turn_data:type(),        timeline :: list(any()),        db :: list(sh_db_query:op())     } @@ -42,7 +42,7 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec new (bm_character_turn_data:type()) -> type(). +-spec new (btl_character_turn_data:type()) -> type().  new (Data) ->     #type     { @@ -51,7 +51,7 @@ new (Data) ->        db = []     }. --spec get_data (type()) -> bm_character_turn_data:type(). +-spec get_data (type()) -> btl_character_turn_data:type().  get_data (Update) -> Update#type.data.  -spec get_timeline (type()) -> list(any()). @@ -60,13 +60,13 @@ get_timeline (Update) -> Update#type.timeline.  -spec get_db (type()) -> list(sh_db_query:op()).  get_db (Update) -> Update#type.db. --spec set_data (bm_character_turn_data:type(), type()) -> type(). +-spec set_data (btl_character_turn_data:type(), type()) -> type().  set_data (Data, Update) ->     Update#type{ data = Data}.  -spec add_to_timeline     ( -      bm_turn_result:type(), +      btl_turn_result:type(),        sh_db_query:op(),        type()     ) -> type(). @@ -76,7 +76,7 @@ add_to_timeline (Item, DBUpdate, Update) ->        DBUpdate,        Update#type        { -         timeline = [bm_turn_result:encode(Item)|Update#type.timeline] +         timeline = [btl_turn_result:encode(Item)|Update#type.timeline]        }     ). diff --git a/src/battlemap/struct/bm_direction.erl b/src/battle/struct/btl_direction.erl index 2da3936..9fb5a01 100644 --- a/src/battlemap/struct/bm_direction.erl +++ b/src/battle/struct/btl_direction.erl @@ -1,4 +1,4 @@ --module(bm_direction). +-module(btl_direction).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/struct/bm_location.erl b/src/battle/struct/btl_location.erl index 056d10c..9670cb0 100644 --- a/src/battlemap/struct/bm_location.erl +++ b/src/battle/struct/btl_location.erl @@ -1,4 +1,4 @@ --module(bm_location). +-module(btl_location).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -44,7 +44,7 @@ validate ({X, Y}) ->  -spec get_nowhere () -> type().  get_nowhere () -> nowhere. --spec apply_direction (bm_direction:enum(), type()) -> type(). +-spec apply_direction (btl_direction:enum(), type()) -> type().  apply_direction (left, {X, Y}) ->     validate({(X - 1), Y});  apply_direction (right, {X, Y}) -> diff --git a/src/battlemap/struct/bm_player.erl b/src/battle/struct/btl_player.erl index 6e5338d..1cb1d93 100644 --- a/src/battlemap/struct/bm_player.erl +++ b/src/battle/struct/btl_player.erl @@ -1,4 +1,4 @@ --module(bm_player). +-module(btl_player).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/struct/bm_player_turn.erl b/src/battle/struct/btl_player_turn.erl index c72112a..e0665f4 100644 --- a/src/battlemap/struct/bm_player_turn.erl +++ b/src/battle/struct/btl_player_turn.erl @@ -1,4 +1,4 @@ --module(bm_player_turn). +-module(btl_player_turn).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -43,7 +43,7 @@  -spec next_valid_player     (        non_neg_integer(), -      array:array(bm_player:type()), +      array:array(btl_player:type()),        non_neg_integer(),        non_neg_integer()     ) -> non_neg_integer(). @@ -52,7 +52,7 @@ next_valid_player (StartingPoint, _Players, _PlayersCount, StartingPoint) ->  next_valid_player (CandidateIX, Players, PlayersCount, StartingPoint) ->     Candidate = array:get(CandidateIX, Players), -   case bm_player:get_is_active(Candidate) of +   case btl_player:get_is_active(Candidate) of        true -> CandidateIX;        _ ->           next_valid_player @@ -82,7 +82,7 @@ get_number (PlayerTurn) -> PlayerTurn#player_turn.number.  -spec get_player_ix (type()) -> non_neg_integer().  get_player_ix (PlayerTurn) -> PlayerTurn#player_turn.player_ix. --spec next (array:array(bm_player:type()), type()) -> type(). +-spec next (array:array(btl_player:type()), type()) -> type().  next (Players, CurrentPlayerTurn) ->     CurrentPlayerIX = CurrentPlayerTurn#player_turn.player_ix,     CurrentTurnNumber = CurrentPlayerTurn#player_turn.number, diff --git a/src/battlemap/struct/bm_tile.erl b/src/battle/struct/btl_tile.erl index cf00b7a..16e671b 100644 --- a/src/battlemap/struct/bm_tile.erl +++ b/src/battle/struct/btl_tile.erl @@ -1,4 +1,4 @@ --module(bm_tile). +-module(btl_tile).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/struct/bm_turn_result.erl b/src/battle/struct/btl_turn_result.erl index 79fd7f3..97169e3 100644 --- a/src/battlemap/struct/bm_turn_result.erl +++ b/src/battle/struct/btl_turn_result.erl @@ -1,4 +1,4 @@ --module(bm_turn_result). +-module(btl_turn_result).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -8,7 +8,7 @@  (     switched_weapon,     { -      character_ix :: bm_character:id() +      character_ix :: btl_character:id()     }  ). @@ -16,9 +16,9 @@  (     moved,     { -      character_ix :: bm_character:id(), -      path :: list(bm_direction:enum()), -      new_location :: bm_location:type() +      character_ix :: btl_character:id(), +      path :: list(btl_direction:enum()), +      new_location :: btl_location:type()     }  ). @@ -26,9 +26,9 @@  (     attacked,     { -      attacker_ix :: bm_character:id(), -      defender_ix :: bm_character:id(), -      sequence :: list(bm_attack:type()) +      attacker_ix :: btl_character:id(), +      defender_ix :: btl_character:id(), +      sequence :: list(btl_attack:type())     }  ). @@ -108,15 +108,15 @@ new_player_lost (PlayerIX) ->  new_player_turn_started (PlayerIX) ->     #player_turn_started { player_ix = PlayerIX }. --spec new_character_switched_weapons (bm_character:id()) -> type(). +-spec new_character_switched_weapons (btl_character:id()) -> type().  new_character_switched_weapons (CharacterIX) ->     #switched_weapon { character_ix = CharacterIX }.  -spec new_character_moved     ( -      bm_character:id(), -      list(bm_direction:enum()), -      bm_location:type() +      btl_character:id(), +      list(btl_direction:enum()), +      btl_location:type()     )     -> type().  new_character_moved (CharacterIX, Path, NewLocation) -> @@ -129,9 +129,9 @@ new_character_moved (CharacterIX, Path, NewLocation) ->  -spec new_character_attacked     ( -      bm_character:id(), -      bm_character:id(), -      list(bm_attack:type()) +      btl_character:id(), +      btl_character:id(), +      list(btl_attack:type())     )     -> type().  new_character_attacked (AttackerIX, DefenderIX, AttackSequence) -> @@ -157,8 +157,8 @@ encode (TurnResult) when is_record(TurnResult, moved) ->     Path = TurnResult#moved.path,     NewLocation = TurnResult#moved.new_location, -   EncodedPath = lists:map(fun bm_direction:encode/1, Path), -   EncodedNewLocation = bm_location:encode(NewLocation), +   EncodedPath = lists:map(fun btl_direction:encode/1, Path), +   EncodedNewLocation = btl_location:encode(NewLocation),     {        [ @@ -173,7 +173,7 @@ encode (TurnResult) when is_record(TurnResult, attacked) ->     DefenderIX = TurnResult#attacked.defender_ix,     Sequence = TurnResult#attacked.sequence, -   EncodedSequence = lists:map(fun bm_attack:encode/1, Sequence), +   EncodedSequence = lists:map(fun btl_attack:encode/1, Sequence),     {        [ diff --git a/src/battlemap/query/bm_character_turn.erl b/src/battlemap/query/bm_character_turn.erl deleted file mode 100644 index 7a7476c..0000000 --- a/src/battlemap/query/bm_character_turn.erl +++ /dev/null @@ -1,282 +0,0 @@ --module(bm_character_turn). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --include("../../../include/yaws_api.hrl"). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export([out/1]). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%-spec send_to_database (list(database_diff:type()), character_turn_request:type()) -> 'ok'. - - -%%%% REQUEST DECODING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec decode_request (binary()) -> bm_character_turn_request:type(). -decode_request (BinaryRequest) -> -   JSONMap = jiffy:decode(BinaryRequest, [return_maps]), - -   bm_character_turn_request:decode(JSONMap). - -%%%% USER AUTHENTICATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec authenticate_user (bm_character_turn_request:type()) -> 'ok'. -authenticate_user (Request) -> -   PlayerID = bm_character_turn_request:get_player_id(Request), -   SessionToken = bm_character_turn_request:get_session_token(Request), - -   bm_security:assert_identity(PlayerID, SessionToken), -   bm_security:lock_queries(PlayerID), - -   ok. - -%%%% MAIN LOGIC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec fetch_data -   ( -      bm_character_turn_request:type() -   ) -   -> bm_character_turn_data:type(). -fetch_data (Request) -> -   PlayerID = bm_character_turn_request:get_player_id(Request), -   BattleID = bm_character_turn_request:get_battle_id(Request), -   CharacterIX = bm_character_turn_request:get_character_ix(Request), -   Battle = sh_timed_cache:fetch(battle_db, PlayerID, BattleID), - -   bm_character_turn_data:new(Battle, CharacterIX). - -%%%% ASSERTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec assert_user_is_current_player -   ( -      bm_character_turn_data:type(), -      bm_character_turn_request:type() -   ) -> 'ok'. -assert_user_is_current_player (Data, Request) -> -   PlayerID = bm_character_turn_request:get_player_id(Request), -   Battle = bm_character_turn_data:get_battle(Data), -   CurrentPlayerTurn = bm_battle:get_current_player_turn(Battle), -   CurrentPlayerIX = bm_player_turn:get_player_ix(CurrentPlayerTurn), -   CurrentPlayer = bm_battle:get_player(CurrentPlayerIX, Battle), - -   true = (PlayerID == bm_player:get_id(CurrentPlayer)), - -   ok. - --spec assert_user_owns_played_character -   ( -      bm_character_turn_data:type(), -      bm_character_turn_request:type() -   ) -> 'ok'. -assert_user_owns_played_character (Data, Request) -> -   PlayerID = bm_character_turn_request:get_player_id(Request), -   Battle = bm_character_turn_data:get_battle(Data), -   Players = bm_battle:get_players(Battle), -   Character = bm_character_turn_data:get_character(Data), -   CharacterPlayerIX = bm_character:get_player_index(Character), -   CharacterPlayer = array:get(CharacterPlayerIX, Players), -   CharacterPlayerID = bm_player:get_id(CharacterPlayer), - -   true = (PlayerID == CharacterPlayerID), - -   ok. - --spec assert_character_can_be_played (bm_character_turn_data:type()) -> 'ok'. -assert_character_can_be_played (Data) -> -   Character = bm_character_turn_data:get_character(Data), - -   true = bm_character:get_is_active(Character), - -   ok. - --spec assert_user_permissions -   ( -      bm_character_turn_data:type(), -      bm_character_turn_request:type() -   ) -> 'ok'. -assert_user_permissions (Data, Request) -> -   assert_user_is_current_player(Data, Request), -   assert_user_owns_played_character(Data, Request), -   assert_character_can_be_played(Data), - -   ok. - -%%%% QUERY LOGIC HANDLING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec finalize_character -   ( -      bm_character_turn_update:type() -   ) -   -> bm_character_turn_update:type(). -finalize_character (Update) -> -   Data = bm_character_turn_update:get_data(Update), -   Character = bm_character_turn_data:get_character(Data), - -   DisabledCharacter = bm_character:set_is_active(false, Character), -   UpdatedData = bm_character_turn_data:set_character(DisabledCharacter, Data), -   FinalizedData = bm_character_turn_data:clean_battle(UpdatedData), - -   DBQuery = -      sh_db_query:update_indexed -      ( -         bm_battle:get_characters_field(), -         bm_character_turn_data:get_character_ix(Data), -         [ sh_db_query:set_field(bm_character:get_is_active_field(), false) ] -      ), - -   S0Update = bm_character_turn_update:set_data(FinalizedData, Update), -   S1Update = bm_character_turn_update:add_to_db(DBQuery, S0Update), - -   S1Update. - --spec handle_actions -   ( -      bm_character_turn_data:type(), -      bm_character_turn_request:type() -   ) -   -> bm_character_turn_update:type(). -handle_actions (Data, Request) -> -   Actions = bm_character_turn_request:get_actions(Request), - -   EmptyUpdate = bm_character_turn_update:new(Data), -   PostActionsUpdate = -      lists:foldl(fun bm_turn_actions:handle/2, EmptyUpdate, Actions), - -   finalize_character(PostActionsUpdate). - --spec update_timeline -   ( -      bm_character_turn_update:type() -   ) -   -> bm_character_turn_update:type(). -update_timeline (Update) -> -   NewTimelineElements = bm_character_turn_update:get_timeline(Update), -   Data = bm_character_turn_update:get_data(Update), -   Battle = bm_character_turn_data:get_battle(Data), -   PlayerTurn = bm_battle:get_current_player_turn(Battle), -   PlayerIX = bm_player_turn:get_player_ix(PlayerTurn), -   Player = bm_battle:get_player(PlayerIX, Battle), - -   UpdatedPlayer = bm_player:add_to_timeline(NewTimelineElements, Player), -   UpdatedBattle = bm_battle:set_player(PlayerIX, UpdatedPlayer, Battle), -   UpdatedData = bm_character_turn_data:set_battle(UpdatedBattle, Data), - -   DBQuery = -      sh_db_query:update_indexed -      ( -         bm_battle:get_players_field(), -         PlayerIX, -         [ -            sh_db_query:add_to_field -            ( -               bm_player:get_timeline_field(), -               NewTimelineElements, -               true % We add those to the start of the list -            ) -         ] -      ), - -   S0Update = bm_character_turn_update:set_data(UpdatedData, Update), -   S1Update = bm_character_turn_update:add_to_db(DBQuery, S0Update), - -   S1Update. - - --spec update_data -   ( -      bm_character_turn_data:type(), -      bm_character_turn_request:type() -   ) -   -> bm_character_turn_update:type(). -update_data (Data, Request) -> -   PostActionsUpdate = handle_actions(Data, Request), -   PostCharacterTurnUpdate = update_timeline(PostActionsUpdate), - -   bm_next_turn:update_if_needed(PostCharacterTurnUpdate). - -%%%% DATABASE UPDATES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec send_to_database -   ( -      bm_character_turn_update:type(), -      bm_character_turn_request:type() -   ) -   -> 'ok'. -send_to_database (Update, Request) -> -   PlayerID = bm_character_turn_request:get_player_id(Request), -   BattleID = bm_character_turn_request:get_battle_id(Request), -   Ops = bm_character_turn_update:get_db(Update), -   Query = sh_db_query:new(battle_db, BattleID, {user, PlayerID}, Ops), - -   sh_database:commit(Query), - -   ok. - --spec send_to_cache -   ( -      bm_character_turn_update:type(), -      bm_character_turn_request:type() -   ) -   -> 'ok'. -send_to_cache (Update, Request) -> -   PlayerID = bm_character_turn_request:get_player_id(Request), -   BattleID = bm_character_turn_request:get_battle_id(Request), -   Data = bm_character_turn_update:get_data(Update), -   Battle = bm_character_turn_data:get_battle(Data), - -   sh_timed_cache:update(battle_db, PlayerID, BattleID, Battle), - -   ok. - --spec commit_update -   ( -      bm_character_turn_update:type(), -      bm_character_turn_request:type() -   ) -   -> 'ok'. -commit_update (Update, Request) -> -   send_to_database(Update, Request), -   send_to_cache(Update, Request), - -   ok. - -%%%% USER DISCONNECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec disconnect_user (bm_character_turn_request:type()) -> 'ok'. -disconnect_user (Request) -> -   PlayerID = bm_character_turn_request:get_player_id(Request), - -   bm_security:unlock_queries(PlayerID), - -   ok. - -%%%% REPLY GENERATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec generate_reply (bm_character_turn_update:type()) -> binary(). -generate_reply (Update) -> -   NewTimelineItems = bm_character_turn_update:get_timeline(Update), - -   TurnResultReply = bm_turn_results:generate(NewTimelineItems), - -   jiffy:encode([TurnResultReply]). - -%%%% MAIN LOGIC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec handle (binary()) -> binary(). -handle (EncodedRequest) -> -   Request = decode_request(EncodedRequest), -   authenticate_user(Request), -   Data = fetch_data(Request), -   assert_user_permissions(Data, Request), -   Update = update_data(Data, Request), -   commit_update(Update, Request), -   disconnect_user(Request), -   generate_reply(Update). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -out(A) -> -   { -      content, -      "application/json; charset=UTF-8", -      handle(A#arg.clidata) -   }. diff --git a/src/query/qry_handler.erl b/src/query/qry_handler.erl new file mode 100644 index 0000000..ecf3263 --- /dev/null +++ b/src/query/qry_handler.erl @@ -0,0 +1,23 @@ +-module(qry_handler). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export([start/1]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec start (any()) -> 'ok'. +start (_YawsParams) -> +   {ok, TimedCachesManagerPid} = sh_timed_caches_manager:start(), +   ok = btl_handler:start(TimedCachesManagerPid), +   ok. | 


