public void IncomingSkill(BaseSkill skill) { switch (skill) { case StatusSkill ss: InflictableStatus infS = Instantiate(ss.m_Effect); infS.m_Source = ss; if (ss.m_DamageAmount > 0) { m_DealingDamage = ss.m_DamageAmount + ss.m_ExtraDamage; if (m_CurrentHealth - m_DealingDamage <= 0) { m_animator.SetTrigger("TriggerDeath"); } else { m_animator.SetTrigger("TriggerDamage"); if (m_DeathParticle) { m_DeathParticle.Play(); } } AddStatusEffect(infS); } else { AddStatusEffectFromSkill(infS); } break; case DamageSkill ds: m_DealingDamage = ds.m_DamageAmount + ds.m_ExtraDamage; if (m_CurrentHealth - m_DealingDamage <= 0) { m_animator.SetTrigger("TriggerDeath"); if (m_DeathParticle) { m_DeathParticle.Play(); } } else { m_animator.SetTrigger("TriggerDamage"); } break; case HealSkill hs: AddHealingFromSkill(hs.m_HealAmount); break; default: break; } }
public void RemoveStatusEffect(InflictableStatus effect) => m_StatusEffects.Remove(effect);
/// <summary> /// Add a status effect to the unit. /// </summary> /// <param name="effect"> The status effect to add to the unit. </param> public void AddStatusEffect(InflictableStatus effect) => m_StatusEffects.Add(effect);
private void AddStatusEffectFromSkill(InflictableStatus effect) { ParticlesManager.m_Instance.RemoveUnitFromTarget(); AddStatusEffect(effect); }