summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battlemap')
-rw-r--r-- | src/battlemap/src/game-logic/next_turn.erl | 4 | ||||
-rw-r--r-- | src/battlemap/src/game-logic/turn_actions.erl | 29 | ||||
-rw-r--r-- | src/battlemap/src/struct/battle.erl | 16 | ||||
-rw-r--r-- | src/battlemap/src/struct/character.erl | 19 | ||||
-rw-r--r-- | src/battlemap/src/struct/db_query.erl | 30 |
5 files changed, 75 insertions, 23 deletions
diff --git a/src/battlemap/src/game-logic/next_turn.erl b/src/battlemap/src/game-logic/next_turn.erl index 3de69fd..8e7ca8a 100644 --- a/src/battlemap/src/game-logic/next_turn.erl +++ b/src/battlemap/src/game-logic/next_turn.erl @@ -83,9 +83,9 @@ add_activation_updates ([IX|NextIXs], Update) -> ( db_query:update_indexed ( - character, + battle:get_characters_field(), IX, - [db_query:set_field(active, true)] + [db_query:set_field(character:get_active_field(), true)] ), Update ) diff --git a/src/battlemap/src/game-logic/turn_actions.erl b/src/battlemap/src/game-logic/turn_actions.erl index c789908..e6aac9e 100644 --- a/src/battlemap/src/game-logic/turn_actions.erl +++ b/src/battlemap/src/game-logic/turn_actions.erl @@ -43,11 +43,14 @@ handle_switch_weapon (Update) -> DBQuery = db_query:update_indexed ( - character, + battle:get_characters_field(), CharacterIX, [ - db_query:set_field(wp0, SecondaryWeaponID), - db_query:set_field(wp1, PrimaryWeaponID) + db_query:set_field + ( + character:get_weapons_field(), + UpdatedWeaponIDs + ) ] ), @@ -146,9 +149,15 @@ commit_move (Update, Path, NewLocation) -> ( db_query:update_indexed ( - character, + battle:get_characters_field(), CharacterIX, - [db_query:set_field(loc, NewLocation)] + [ + db_query:set_field + ( + character:get_location_field(), + NewLocation + ) + ] ), S0Update ), @@ -325,9 +334,15 @@ handle_attack (BattleAction, Update) -> DBQuery = db_query:update_indexed ( - character, + battle:get_characters_field(), TargetIX, - [ db_query:set_field(health, RemainingDefenderHealth) ] + [ + db_query:set_field + ( + character:get_current_health_field(), + RemainingDefenderHealth + ) + ] ), character_turn_update:add_to_db(DBQuery, S1Update). diff --git a/src/battlemap/src/struct/battle.erl b/src/battlemap/src/struct/battle.erl index 37e0d1b..6a76975 100644 --- a/src/battlemap/src/struct/battle.erl +++ b/src/battlemap/src/struct/battle.erl @@ -42,7 +42,11 @@ set_character/3, set_players/2, set_player/3, - set_current_player_turn/2 + set_current_player_turn/2, + + get_characters_field/0, + get_players_field/0, + get_current_player_turn_field/0 ] ). @@ -181,3 +185,13 @@ new (ID, PlayersAsList, Battlemap, CharactersAsList) -> players = array:from_list(PlayersAsList), current_player_turn = player_turn:new(0, 0) }. + + +-spec get_characters_field () -> non_neg_integer(). +get_characters_field () -> #battle.characters. + +-spec get_players_field () -> non_neg_integer(). +get_players_field () -> #battle.players. + +-spec get_current_player_turn_field () -> non_neg_integer(). +get_current_player_turn_field () -> #battle.current_player_turn. diff --git a/src/battlemap/src/struct/character.erl b/src/battlemap/src/struct/character.erl index 930bdc9..2792da5 100644 --- a/src/battlemap/src/struct/character.erl +++ b/src/battlemap/src/struct/character.erl @@ -50,7 +50,13 @@ set_statistics/2, set_location/2, set_current_health/2, - set_is_active/2 + set_is_active/2, + + get_statistics_field/0, + get_weapons_field/0, + get_location_field/0, + get_current_health_field/0, + get_active_field/0 ] ). @@ -220,3 +226,14 @@ random (ID, OwnerID, BattlemapWidth, BattlemapHeight, ForbiddenLocations) -> current_health = statistics:get_health(Statistics), active = false }. + +-spec get_statistics_field() -> non_neg_integer(). +get_statistics_field () -> #character.statistics. +-spec get_weapons_field() -> non_neg_integer(). +get_weapons_field () -> #character.weapon_ids. +-spec get_location_field() -> non_neg_integer(). +get_location_field () -> #character.location. +-spec get_current_health_field() -> non_neg_integer(). +get_current_health_field () -> #character.current_health. +-spec get_active_field() -> non_neg_integer(). +get_active_field () -> #character.active. diff --git a/src/battlemap/src/struct/db_query.erl b/src/battlemap/src/struct/db_query.erl index c6a4fa5..bf4b0f3 100644 --- a/src/battlemap/src/struct/db_query.erl +++ b/src/battlemap/src/struct/db_query.erl @@ -8,7 +8,7 @@ ( set_field, { - name :: atom(), + field :: non_neg_integer(), value :: any() } ). @@ -17,7 +17,7 @@ ( add_to_field, { - name :: atom(), + field :: non_neg_integer(), values :: list(any()) } ). @@ -26,7 +26,7 @@ ( update_indexed, { - name :: atom(), + field :: non_neg_integer(), ix :: non_neg_integer(), update :: list(type()) } @@ -55,14 +55,20 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec set_field (atom(), any()) -> type(). -set_field (Name, Value) -> - #set_field { name = Name, value = Value }. +-spec set_field (non_neg_integer(), any()) -> type(). +set_field (Field, Value) -> + #set_field { field = Field, value = Value }. --spec add_to_field (atom(), list(any())) -> type(). -add_to_field (Name, Values) -> - #add_to_field { name = Name, values = Values }. +-spec add_to_field (non_neg_integer(), list(any())) -> type(). +add_to_field (Field, Values) -> + #add_to_field { field = Field, values = Values }. --spec update_indexed (atom(), non_neg_integer(), list(type())) -> type(). -update_indexed (Name, IX, Updates) -> - #update_indexed { name = Name, ix = IX, update = Updates}. +-spec update_indexed + ( + non_neg_integer(), + non_neg_integer(), + list(type()) + ) + -> type(). +update_indexed (Field, IX, Updates) -> + #update_indexed { field = Field, ix = IX, update = Updates}. |