summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2019-04-25 17:26:34 +0200
committernsensfel <SpamShield0@noot-noot.org>2019-04-25 17:26:34 +0200
commitfa540d6d07e430789809435741e6cd1d98111c50 (patch)
tree890c376b5684593f972ec81cf8c4fbf9455b8342 /src/battle/struct
parent4fb024b4ee52ccbb9f25b17eaa606ce0b5e0296a (diff)
...
Diffstat (limited to 'src/battle/struct')
-rw-r--r--src/battle/struct/btl_character.erl37
-rw-r--r--src/battle/struct/btl_character_turn_update.erl10
2 files changed, 33 insertions, 14 deletions
diff --git a/src/battle/struct/btl_character.erl b/src/battle/struct/btl_character.erl
index 69904c6..ce0b3aa 100644
--- a/src/battle/struct/btl_character.erl
+++ b/src/battle/struct/btl_character.erl
@@ -69,6 +69,15 @@
set_is_defeated/2,
set_base_character/2,
+ ataxia_set_rank/2,
+ ataxia_set_location/2,
+ ataxia_set_current_health/2,
+ ataxia_set_is_active/2,
+ ataxia_set_is_defeated/2,
+ ataxia_set_base_character/2,
+
+ ataxia_set_base_character/3,
+
get_rank_field/0,
get_current_health_field/0,
get_is_active_field/0,
@@ -119,7 +128,6 @@ get_is_alive (#btl_char{ current_health = H, is_defeated = D }) ->
get_is_alive (#btl_char_ref{ current_health = H, is_defeated = D }) ->
((not D) and (H > 0)).
-
-spec get_is_active (either()) -> boolean().
get_is_active
(
@@ -150,13 +158,23 @@ set_rank (Rank, Char) when is_record(Char, btl_char) ->
set_rank (Rank, Char) when is_record(Char, btl_char_ref) ->
Char#btl_char_ref{ rank = Rank }.
+% TODO: This can change current_health.
+% FIXME: Can't do this without giving the new tile omnimods.
-spec set_location
- ({non_neg_integer(), non_neg_integer()}, type()) -> type();
- ({non_neg_integer(), non_neg_integer()}, unresolved()) -> unresolved().
-set_location (Location, Char) when is_record(Char, btl_char) ->
- Char#btl_char{ location = Location };
-set_location (Location, Char) when is_record(Char, btl_char_ref) ->
- Char#btl_char_ref{ location = Location }.
+ (
+ {non_neg_integer(), non_neg_integer()},
+ shr_omnimods:type(),
+ type()
+ )
+ -> type();
+set_location (Location, LocOmnimods, Char) ->
+ BaseCharacter =
+ CurrentMaxHealth =
+ shr_statistics:get_health
+ (
+ shr_character:get_statistics
+ )
+ Char#btl_char{ location = Location }.
-spec set_current_health
(integer(), type()) -> type();
@@ -182,13 +200,14 @@ set_is_defeated (Defeated, Char) when is_record(Char, btl_char) ->
set_is_defeated (Defeated, Char) when is_record(Char, btl_char_ref) ->
Char#btl_char_ref{ is_defeated = Defeated }.
+% TODO: This can change current_health.
-spec set_base_character
(shr_character:type(), type()) -> type();
(shr_character:unresolved(), unresolved()) -> unresolved().
set_base_character (Base, Char) when is_record(Char, btl_char) ->
- Char#btl_char{ base = Base};
+ Char#btl_char{ base = Base };
set_base_character (Base, Char) when is_record(Char, btl_char_ref) ->
- Char#btl_char_ref{ base = Base}.
+ Char#btl_char_ref{ base = Base }.
%%%% Utils
-spec new
diff --git a/src/battle/struct/btl_character_turn_update.erl b/src/battle/struct/btl_character_turn_update.erl
index 6649eb2..601f314 100644
--- a/src/battle/struct/btl_character_turn_update.erl
+++ b/src/battle/struct/btl_character_turn_update.erl
@@ -18,7 +18,7 @@
character_ix :: non_neg_integer(),
- reversed_timeline :: list(any())
+ timeline :: list(any())
}
).
@@ -92,7 +92,7 @@ new (Battle, CharacterIX) ->
character_ix = CharacterIX,
- reversed_timeline = []
+ timeline = []
}.
-spec get_battle (type()) -> {type(), btl_battle:type()}.
@@ -203,12 +203,12 @@ ataxia_set_character (Character, CharacterUpdate, Data) ->
add_to_timeline (Item, Data) ->
Data#type
{
- reversed_timeline =
- [btl_turn_result:encode(Item)|Data#type.reversed_timeline]
+ timeline =
+ [btl_turn_result:encode(Item)|Data#type.timeline]
}.
-spec get_timeline (type()) -> list(any()).
-get_timeline (Data) -> lists:reverse(Data#type.reversed_timeline).
+get_timeline (Data) -> Data#type.timeline.
-spec get_battle_update (type()) -> ataxic:basic().
get_battle_update (Data) ->