예제 #1
0
 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();
 }
예제 #2
0
    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;
            }
        }
    }