summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/struct')
-rw-r--r--src/battle/struct/btl_character.erl13
-rw-r--r--src/battle/struct/btl_character_turn_request.erl12
-rw-r--r--src/battle/struct/btl_character_turn_update.erl29
-rw-r--r--src/battle/struct/btl_pending_battle.erl6
-rw-r--r--src/battle/struct/btl_player.erl2
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 },