summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battle/struct')
-rw-r--r-- | src/battle/struct/btl_character.erl | 13 | ||||
-rw-r--r-- | src/battle/struct/btl_character_turn_request.erl | 12 | ||||
-rw-r--r-- | src/battle/struct/btl_character_turn_update.erl | 29 | ||||
-rw-r--r-- | src/battle/struct/btl_pending_battle.erl | 6 | ||||
-rw-r--r-- | src/battle/struct/btl_player.erl | 2 |
5 files changed, 36 insertions, 26 deletions
diff --git a/src/battle/struct/btl_character.erl b/src/battle/struct/btl_character.erl index 8ee0169..cca53b3 100644 --- a/src/battle/struct/btl_character.erl +++ b/src/battle/struct/btl_character.erl @@ -116,7 +116,7 @@ handle_max_health_change (OldBaseChar, NewBaseChar, OldHealth) -> shr_statistics:get_health(shr_character:get_statistics(NewBaseChar)), case (OldMaxHealth == NewMaxHealth) of - true -> {false, OldMaxHealth, OldHealth}; + true -> {false, OldHealth}; false -> OldHealthRatio = (OldHealth / OldMaxHealth), NewHealth = @@ -207,7 +207,8 @@ ataxia_set_rank (Rank, Char) -> -> type(). set_location (Location, LocOmnimods, Char) -> CurrentBaseCharacter = Char#btl_char.base, - UpdatedBaseCharacter = shr_character:set_extra_omnimods(LocOmnimods), + UpdatedBaseCharacter = + shr_character:set_extra_omnimods(LocOmnimods, CurrentBaseCharacter), case handle_max_health_change @@ -217,7 +218,7 @@ set_location (Location, LocOmnimods, Char) -> Char#btl_char.current_health ) of - {false, _, _} -> + {false, _} -> Char#btl_char { location = Location, @@ -253,7 +254,7 @@ ataxia_set_location (Location, LocOmnimods, Char) -> { UpdatedChar, - case (CurrentHealth == UpdatedChar) of + case (CurrentHealth == UpdatedCharHealth) of true -> LocationUpdate; false -> ataxic:sequence @@ -344,7 +345,7 @@ set_base_character (NewBaseCharacter, Char) -> Char#btl_char.current_health ) of - {false, _, _} -> + {false, _} -> Char#btl_char { base = NewBaseCharacter @@ -378,7 +379,7 @@ ataxia_set_base_character (NewBaseCharacter, BaseCharacterAtaxicUpdate, Char) -> { UpdatedChar, - case (CurrentHealth == UpdatedChar) of + case (CurrentHealth == UpdatedCharHealth) of true -> BattleCharacterAtaxicUpdate; false -> ataxic:sequence diff --git a/src/battle/struct/btl_character_turn_request.erl b/src/battle/struct/btl_character_turn_request.erl index faf8d07..7246ca7 100644 --- a/src/battle/struct/btl_character_turn_request.erl +++ b/src/battle/struct/btl_character_turn_request.erl @@ -20,7 +20,7 @@ session_token :: binary(), battle_id :: binary(), character_ix :: non_neg_integer(), - actions :: list(btl_battle_action:type()) + actions :: list(btl_action:type()) } ). @@ -52,12 +52,12 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec decode_actions (map()) -> list(btl_battle_action:type()). +-spec decode_actions (map()) -> list(btl_action:type()). decode_actions (Act) -> S0Result = [], S1Result = case - btl_battle_action:maybe_decode_move(maps:get(?ACTIONS_MOVE_FIELD, Act)) + btl_action:maybe_decode_move(maps:get(?ACTIONS_MOVE_FIELD, Act)) of [] -> S0Result; [Move] -> [Move|S0Result] @@ -65,7 +65,7 @@ decode_actions (Act) -> S2Result = case - btl_battle_action:maybe_decode_attack + btl_action:maybe_decode_attack ( maps:get(?ACTIONS_ATTACK_FIELD, Act) ) @@ -76,7 +76,7 @@ decode_actions (Act) -> S3Result = case - btl_battle_action:maybe_decode_weapon_switch + btl_action:maybe_decode_weapon_switch ( maps:get(?ACTIONS_WEAPON_SWITCH_FIELD, Act) ) @@ -117,5 +117,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(btl_battle_action:type()). +-spec get_actions (type()) -> list(btl_action:type()). get_actions (Request) -> Request#type.actions. diff --git a/src/battle/struct/btl_character_turn_update.erl b/src/battle/struct/btl_character_turn_update.erl index 601f314..9f2c30a 100644 --- a/src/battle/struct/btl_character_turn_update.erl +++ b/src/battle/struct/btl_character_turn_update.erl @@ -56,10 +56,10 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -spec resolve_character_at ( - btl_battle:type(), - non_neg_integer() - ) -> btl_charater:type(). -resolve_character_at (Battle, CharacterIX) -> + non_neg_integer(), + btl_battle:type() + ) -> btl_character:type(). +resolve_character_at (CharacterIX, Battle) -> CharacterRef = btl_battle:get_character(CharacterIX, Battle), Location = btl_character:get_location(CharacterRef), Map = btl_battle:get_map(Battle), @@ -78,7 +78,6 @@ resolve_character_at (Battle, CharacterIX) -> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -spec new (btl_battle:type(), non_neg_integer()) -> type(). new (Battle, CharacterIX) -> - #type { character_is_outdated = false, @@ -87,7 +86,7 @@ new (Battle, CharacterIX) -> battle = Battle, reversed_battle_updates = [], - character = resolve_character_at(Battle, CharacterIX), + character = resolve_character_at(CharacterIX, Battle), reversed_character_updates = [], character_ix = CharacterIX, @@ -104,7 +103,7 @@ get_battle (Data) -> btl_battle:ataxia_set_character ( Data#type.character_ix, - Data#type.character, + btl_character:to_unresolved(Data#type.character), ataxic:sequence ( lists:reverse(Data#type.reversed_character_updates) @@ -153,9 +152,12 @@ get_character_ix (Data) -> Data#type.character_ix. -spec set_battle (btl_battle:type(), boolean(), type()) -> type(). set_battle (Battle, CouldAffectCharacter, Data) -> + false = (Data#type.battle_is_outdated and CouldAffectCharacter), + Data#type { - character_is_outdated = CouldAffectCharacter, + character_is_outdated = + (Data#type.character_is_outdated or CouldAffectCharacter), battle = Battle }. @@ -168,15 +170,20 @@ set_battle (Battle, CouldAffectCharacter, Data) -> ) -> type(). ataxia_set_battle (Battle, CouldAffectCharacter, BattleUpdate, Data) -> + false = (Data#type.battle_is_outdated and CouldAffectCharacter), + Data#type { - character_is_outdated = CouldAffectCharacter, + character_is_outdated = + (Data#type.character_is_outdated or CouldAffectCharacter), battle = Battle, reversed_battle_updates = [BattleUpdate|Data#type.reversed_battle_updates] }. -spec set_character (btl_character:type(), type()) -> type(). set_character (Character, Data) -> + false = Data#type.character_is_outdated, + Data#type { battle_is_outdated = true, @@ -186,11 +193,13 @@ set_character (Character, Data) -> -spec ataxia_set_character ( btl_character:type(), - ataxia:basic(), + ataxic:basic(), type() ) -> type(). ataxia_set_character (Character, CharacterUpdate, Data) -> + false = Data#type.character_is_outdated, + Data#type { battle_is_outdated = true, diff --git a/src/battle/struct/btl_pending_battle.erl b/src/battle/struct/btl_pending_battle.erl index c82d4ae..0e46a24 100644 --- a/src/battle/struct/btl_pending_battle.erl +++ b/src/battle/struct/btl_pending_battle.erl @@ -187,7 +187,7 @@ push_player_summary_ix (Val, PBattle) -> non_neg_integer(), type() ) - -> {type(), ataxic:constant()}. + -> {type(), ataxic:basic()}. ataxia_push_player_summary_ix (Val, PBattle) -> { PBattle#pending_battle @@ -209,7 +209,7 @@ set_player_ids (Val, PBattle) -> PBattle#pending_battle{ player_ids = Val }. list(shr_player:id()), type() ) - -> {type(), ataxia:basic()}. + -> {type(), ataxic:basic()}. ataxia_set_player_ids (Val, PBattle) -> { PBattle#pending_battle{ player_ids = Val }, @@ -232,7 +232,7 @@ push_player_id (Val, PBattle) -> shr_player:id(), type() ) - -> {type(), ataxia:basic()}. + -> {type(), ataxic:basic()}. ataxia_push_player_id (Val, PBattle) -> { PBattle#pending_battle diff --git a/src/battle/struct/btl_player.erl b/src/battle/struct/btl_player.erl index 3669e00..604efca 100644 --- a/src/battle/struct/btl_player.erl +++ b/src/battle/struct/btl_player.erl @@ -98,7 +98,7 @@ get_is_active (Player) -> Player#player.is_active. -spec set_is_active (boolean(), type()) -> type(). set_is_active (Val, Player) -> Player#player{ is_active = Val }. --spec ataxia_set_is_active (boolean(), type()) -> {type(), ataxia:basic()}. +-spec ataxia_set_is_active (boolean(), type()) -> {type(), ataxic:basic()}. ataxia_set_is_active (Val, Player) -> { Player#player{ is_active = Val }, |