public void Heal(IHealingSource source)
        {
            if (source == null)
            {
                return;
            }

            float healing = Mathf.Abs(source.BaseHealing);

            foreach (var modifier in _healingModifiers)
            {
                healing = modifier(source, healing);
            }

            HandleHealing(source, healing);
            OnHeal.SafeInvoke(source, healing);
        }
        public void Heal(IHealingSource source)
        {
            if (source == null)
                return;

            float healing = Mathf.Abs(source.BaseHealing);

            foreach (var modifier in _healingModifiers)
                healing = modifier(source, healing);

            HandleHealing(source, healing);
            OnHeal.SafeInvoke(source, healing);
        }
 protected virtual void HandleHealing(IHealingSource source, float damage)
 {
     InternalDamage -= damage;
 }
 protected virtual void HandleHealing(IHealingSource source, float damage)
 {
     InternalDamage -= damage;
 }