| 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 | |
| parent | 8d7c8ffee198155a70cf5131ec4bb1f3d70a5891 (diff) | |
...
Diffstat (limited to 'src/battle')
| -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 | 


