Danro/Assets/Scripts/Health.cs

47 lines
1.0 KiB
C#

using UnityEngine;
using RR.Common.Interfaces;
namespace RR.Game2D.Behaviour
{
[System.Serializable]
public class Health : MonoBehaviour
{
[SerializeField] private int maxHealth = 3;
[SerializeField] private int currentHealth;
private IDamageable owner;
public int MaxHealth => maxHealth;
public int CurrentHealth => currentHealth;
public void SetOwner(IDamageable owner)
{
this.owner = owner;
}
public void SetMaxHealth(int value)
{
maxHealth = value;
currentHealth = maxHealth;
}
public void TakeDamage(int amount)
{
currentHealth -= amount;
if (currentHealth <= 0)
{
owner?.Die();
}
}
public void Heal(int amount)
{
currentHealth = Mathf.Min(currentHealth + amount, maxHealth);
}
public void ResetHealth()
{
currentHealth = maxHealth;
}
}
}