public void Damage(int dmg) { _hp -= dmg; OnDamageDealt?.Invoke(_hp); if (_hp <= 0) { Kill(); } }
public void DealDamage(Actor originator, float damage) { OnHit?.Invoke(originator, this); if (!m_Template.m_Vulnerable) { return; } health -= damage; OnDamageDealt?.Invoke(originator, this, damage, health); if (health <= 0f) { OnDeath?.Invoke(originator, this); } }
private void OnHit(HitParameters arguments) { var dealt = arguments.damageable.TakeDamage(Damage); OnDamageDealt?.Invoke(new DamageDealtParameters(arguments, dealt)); }