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);
 }