/// <summary> /// Apply a delta health object to this controller /// </summary> /// <param name="dHealth"></param> public void ApplyDeltaHealth(DeltaHealth dHealth) { float delta = dHealth.GetDelta(this); health += delta; if (maxHealth >= 0f) { health = Mathf.Max(maxHealth, health); } if (health <= 0f) { OnDeath(this, dHealth); } if (delta != 0f) { OnDelta?.Invoke(this, dHealth); } if (delta > 0f) { OnHeal?.Invoke(this, dHealth); } else if (delta < 0f) { OnHurt?.Invoke(this, dHealth); } }