public void RemoveStatusEffect(StatusEffect timedEffect) { RemoveStatusEffect(timedEffect.ID); }
public void AddStatusEffect(StatusEffect statusEffect) { //todo: if in status reductions we have this status, reduce status.duration by amt if status has duration StatusEffects.Add(statusEffect); CustomVariableHandler.HandleCvarSetters(statusEffect.Effect.CustomVariableSetters); DestroyHelper destroyCondition; AddEffectPrefabs(statusEffect.Effect, out destroyCondition); if (destroyCondition != null) { destroyCondition.Init(DestroyCondition.StatusEffectNotActive, CharacterMono.Controller, statusEffect.ID); } if (statusEffect.Effect.RemoveStatusEffect) { RemoveStatusEffect(statusEffect.Effect.RemoveStatusEffectID); } for (int index = 0; index < StatusEffects.Count; index++) { var statusEff = StatusEffects[index]; if (statusEff.Effect.CanBeCancelled) { if (statusEff.Effect.CancellingStatusEffectID == statusEffect.ID) { RemoveStatusEffect(statusEff); index--; } } } for (int index = 0; index < AuraEffects.Count; index++) { var auraEffect = AuraEffects[index]; if (auraEffect.PassiveEffect.CanBeCancelled) { if (auraEffect.PassiveEffect.CancellingStatusEffectID == statusEffect.ID) { RemoveAuraEffect(auraEffect); index--; } } } for (int index = 0; index < TimedPassiveEffects.Count; index++) { var timedPassiveEffect = TimedPassiveEffects[index]; if (timedPassiveEffect.CanBeCancelled) { if (timedPassiveEffect.CancellingStatusEffectID == statusEffect.ID) { RemoveTimedPassiveEffect(timedPassiveEffect); index--; } } } FullUpdateStats(); }