summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-10-11 23:39:11 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-10-11 23:39:11 +0200
commit2df0db54d42a54fe5bec35bdf9996376164c23e7 (patch)
treea653438a54ac3491237b2bc70f868cd54344b183 /src/battle/struct/btl_character.erl
parent60d0cf646133e70684b727b1b1874b57d9b2fccf (diff)
...
Diffstat (limited to 'src/battle/struct/btl_character.erl')
-rw-r--r--src/battle/struct/btl_character.erl46
1 files changed, 31 insertions, 15 deletions
diff --git a/src/battle/struct/btl_character.erl b/src/battle/struct/btl_character.erl
index 6dffd6b..7771b1a 100644
--- a/src/battle/struct/btl_character.erl
+++ b/src/battle/struct/btl_character.erl
@@ -7,7 +7,7 @@
-define(IS_ACTIVE_FIELD, <<"ena">>).
-define(IS_DEFEATED_FIELD, <<"dea">>).
-define(BASE_CHAR_FIELD, <<"bas">>).
--define(CONDITION_FIELD, <<"con">>).
+-define(CONDITIONS_FIELD, <<"con">>).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -25,7 +25,7 @@
is_active :: boolean(),
is_defeated :: boolean(),
base :: shr_character:unresolved(),
- conditions :: list(btl_condition:type())
+ conditions :: orddict:orddict(non_neg_integer(), btl_condition:type())
}
).
@@ -40,7 +40,7 @@
is_active :: boolean(),
is_defeated :: boolean(),
base :: shr_character:type(),
- conditions :: list(btl_condition:type())
+ conditions :: orddict:orddict(non_neg_integer(), btl_condition:type())
}
).
@@ -105,7 +105,7 @@
-export
(
[
- new/4,
+ new/5,
resolve/2,
is_unresolved/1,
to_unresolved/1,
@@ -194,8 +194,8 @@ get_base_character (#btl_char{ base = R }) -> R;
get_base_character (#btl_char_ref{ base = R }) -> R.
-spec get_conditions
- (type()) -> list(btl_condition:type());
- (unresolved()) -> list(btl_conditions:type()).
+ (type()) -> orddict:orddict(non_neg_integer(), btl_condition:type());
+ (unresolved()) -> orddict:orddict(non_neg_integer(), btl_conditions:type()).
get_conditions (#btl_char{ conditions = R }) -> R;
get_conditions (#btl_char_ref{ conditions = R }) -> R.
@@ -204,11 +204,11 @@ get_conditions (#btl_char_ref{ conditions = R }) -> R.
shr_condition:trigger(),
either()
)
- -> list(btl_condition:type()).
+ -> orddict:orddict(non_neg_integer(), btl_condition:type()).
get_conditions_on (Trigger, Char) ->
- lists:filter
+ orddict:filter
(
- fun (Condition) ->
+ fun (_IX, Condition) ->
btl_condition:triggers_on(Trigger, Condition)
end,
get_conditions(Char)
@@ -448,8 +448,16 @@ ataxia_set_base_character (NewBaseCharacter, Char) ->
).
-spec set_conditions
- (list(btl_condition:type()), type()) -> type();
- (list(btl_condition:type()), unresolved()) -> unresolved().
+ (
+ orddict:orddict(non_neg_integer(), btl_condition:type()),
+ type()
+ )
+ -> type();
+ (
+ orddict:orddict(non_neg_integer(), btl_condition:type()),
+ unresolved()
+ )
+ -> unresolved().
set_conditions (Conditions, Char) when is_record(Char, btl_char) ->
Char#btl_char{ conditions = Conditions };
set_conditions (Conditions, Char) when is_record(Char, btl_char_ref) ->
@@ -458,13 +466,13 @@ set_conditions (Conditions, Char) when is_record(Char, btl_char_ref) ->
-spec ataxia_set_conditions
(
- list(btl_condition:type()),
+ orddict:orddict(non_neg_integer(), btl_condition:type()),
ataxic:basic(),
type()
)
-> {type(), ataxic:basic()};
(
- list(btl_condition:type()),
+ orddict:orddict(non_neg_integer(), btl_condition:type()),
ataxic:basic(),
unresolved()
) -> {unresolved(), ataxic:basic()}.
@@ -479,8 +487,16 @@ ataxia_set_conditions (Conditions, Update, Char) ->
}.
-spec ataxia_set_conditions
- (list(btl_condition:type()), type()) -> {type(), ataxic:basic()};
- (list(btl_condition:type()), unresolved()) -> {unresolved(), ataxic:basic()}.
+ (
+ orddict:orddict(non_neg_integer(), btl_condition:type()),
+ type()
+ )
+ -> {type(), ataxic:basic()};
+ (
+ orddict:orddict(non_neg_integer(), btl_condition:type()),
+ unresolved()
+ )
+ -> {unresolved(), ataxic:basic()}.
ataxia_set_conditions (Conditions, Char) ->
ataxia_set_conditions
(