public void RemoveSideEffect(SideEffect effect) { if (m_appliedEffects.Contains(effect)) { m_appliedEffects.Remove(effect); } else if (m_passiveEffects.Contains(effect)) { m_passiveEffects.Remove(effect); } effect.FinishEffect(); }
void FixedUpdate() { foreach (Ability ability in m_abilities.Values) { ability.UpdateCdr(isClient); } for (int i = 0; i < m_appliedEffects.Count; i++) { SideEffect effect = m_appliedEffects[i]; if (!effect.Isfinish) { effect.ProcessEffect(); } else { m_appliedEffects.Remove(effect); effect.FinishEffect(); return; } } for (int i = 0; i < m_passiveEffects.Count; i++) { SideEffect effect = m_passiveEffects[i]; if (!effect.Isfinish) { effect.ProcessEffect(); } else { m_passiveEffects.Remove(effect); effect.FinishEffect(); return; } } }