TigerProject/Assets/Scripts/Entity.cs
qoralstmd6825 5edef59289 Attack and Health Updated
대쉬 공격과 엔티티 체력 및 사망 스크립트 작성 + 특수 타일 기초 기능
2026-01-22 21:57:04 +09:00

50 lines
1.0 KiB
C#

using UnityEngine;
using UnityEngine.Events;
public class Entity : MonoBehaviour
{
public float maxHealth { get; private set; }
public float currentHealth { get; private set; }
public float attackDamage { get; private set; }
public UnityEvent OnDeath;
public UnityEvent<float> OnTakeDamage;
[SerializeField] private EntityData data;
void Awake()
{
maxHealth = data.maxHealth;
currentHealth = data.maxHealth;
attackDamage = data.attackDamage;
}
public virtual void TakeDamage(float damage)
{
currentHealth -= damage;
OnTakeDamage?.Invoke(damage);
if (currentHealth <= 0)
{
currentHealth = 0;
Die();
}
}
protected virtual void Die()
{
Destroy(gameObject);
OnDeath?.Invoke();
}
public void Heal(float heal)
{
if (heal < 0) return;
currentHealth += heal;
if(currentHealth > maxHealth)
{
currentHealth = maxHealth;
}
}
}