summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2019-11-18 17:42:48 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2019-11-18 17:42:48 +0100 |
commit | dbbff9e8555a30bbae2d22b17973216f00bd5b70 (patch) | |
tree | 9932367ef79a165029c30f9de7262a8df0d79bee /src/battle/struct/btl_conditions.erl | |
parent | 8d7c8ffee198155a70cf5131ec4bb1f3d70a5891 (diff) |
...
Diffstat (limited to 'src/battle/struct/btl_conditions.erl')
-rw-r--r-- | src/battle/struct/btl_conditions.erl | 51 |
1 files changed, 11 insertions, 40 deletions
diff --git a/src/battle/struct/btl_conditions.erl b/src/battle/struct/btl_conditions.erl index 69f1ac8..aa5aefc 100644 --- a/src/battle/struct/btl_conditions.erl +++ b/src/battle/struct/btl_conditions.erl @@ -140,30 +140,6 @@ apply_trigger (Context, IXtoRef, S0Update, RelevantIndices, Conditions) -> {LastVolatileData, LastUpdate}. --spec compute_next_index (type()) -> non_neg_integer(). -compute_next_index (Conditions) -> - Collection = Conditions#btl_conds.collection, - CollectionSize = orddict:size(Collection), - Candidates = lists:seq(0, CollectionSize), - - Result = - lists:foldr - ( - fun (Candidate, CurrentResult) -> - case is_integer(CurrentResult) of - true -> CurrentResult; - false -> - case orddict:is_key(Candidate, Collection) of - true -> none; - false -> Candidate - end - end - end, - none, - Candidates - ), - - Result. -spec get_relevant_condition_indices ( @@ -572,15 +548,12 @@ add (CondID, Triggers, Params, Conditions) -> parameters = Params }, - NewConditionIX = compute_next_index(Conditions), + Collection = Conditions#btl_conds.collection, + + NewConditionIX = + shr_util_orddict:compute_next_non_neg_integer_index(Collection), - UpdatedCollection = - orddict:store - ( - NewConditionIX, - NewCondition, - Conditions#btl_conds.collection - ), + UpdatedCollection = orddict:store(NewConditionIX, NewCondition, Collection), UpdatedFromTrigger = ordsets:fold @@ -623,16 +596,14 @@ ataxia_add (CondID, Triggers, Params, Conditions) -> parameters = Params }, - NewConditionIX = compute_next_index(Conditions), + Collection = Conditions#btl_conds.collection, + + NewConditionIX = + shr_util_orddict:compute_next_non_neg_integer_index(Collection), + AtaxicNewConditionIX = ataxic:constant(NewConditionIX), - UpdatedCollection = - orddict:store - ( - NewConditionIX, - NewCondition, - Conditions#btl_conds.collection - ), + UpdatedCollection = orddict:store(NewConditionIX, NewCondition, Collection), CollectionAtaxicUpdate = ataxic:apply_function |