public void OnSpawn()
 {
     CurrentHealth = BaseHealth;
     HealthSet?.Invoke(CurrentHealth);
     ActionSet?.Invoke(CurrentActions);
     DefenseSet?.Invoke(DefenseModifier);
     Spawned?.Invoke();
 }
 public void TakeDamage(int damage)
 {
     CurrentHealth -= Mathf.CeilToInt(damage * DefenseModifier);
     HealthSet?.Invoke(CurrentHealth);
     if (_currentHealth <= 0)
     {
         Kill();
     }
 }
    public void Damage(int damageTaken)
    {
        CurrentHealth -= damageTaken;


        if (CurrentHealth > 0)
        {
            TookDamage?.Invoke(damageTaken);
        }
        else
        {
            CurrentHealth = 0;
            Kill();
        }
        HealthSet?.Invoke(CurrentHealth);
    }
 public void Heal(int amountHealed)
 {
     CurrentHealth += amountHealed;
     HealthRestored?.Invoke(amountHealed);
     HealthSet?.Invoke(CurrentHealth);
 }
 protected virtual void RaiseHealth(int health)
 {
     HealthSet?.Invoke(health);
 }
 public void BoostHealth(int value)
 {
     CurrentHealth += value;
     HealthSet?.Invoke(CurrentHealth);
     Boosted?.Invoke("HP");
 }