28 lines
612 B
C#
28 lines
612 B
C#
using UnityEngine;
|
|
|
|
public class Health : MonoBehaviour, IDamageable
|
|
{
|
|
private float _currentHealth;
|
|
|
|
[SerializeField]
|
|
private float _maxHealth = 100.0f;
|
|
|
|
public event DamageEventHandler OnDamageTaken;
|
|
|
|
private void Awake()
|
|
{
|
|
_currentHealth = _maxHealth;
|
|
}
|
|
|
|
public void Damage(float damageAmount)
|
|
{
|
|
var oldHealth = _currentHealth;
|
|
_currentHealth -= damageAmount;
|
|
OnDamageTaken?.Invoke(new DamageData
|
|
{
|
|
oldHealth = oldHealth,
|
|
newHealth = _currentHealth,
|
|
damageAmount = damageAmount
|
|
});
|
|
}
|
|
} |