예제 #1
0
    public void Damage(int dmg)
    {
        _hp -= dmg;
        OnDamageDealt?.Invoke(_hp);

        if (_hp <= 0)
        {
            Kill();
        }
    }
예제 #2
0
 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);
     }
 }
예제 #3
0
    private void OnHit(HitParameters arguments)
    {
        var dealt = arguments.damageable.TakeDamage(Damage);

        OnDamageDealt?.Invoke(new DamageDealtParameters(arguments, dealt));
    }