using UnityEngine; using UnityEngine.Events; public class Entity : MonoBehaviour { protected int maxHp; protected int currentHp; protected int attackDamage; [SerializeField] protected EntityData data; protected virtual void Awake() { if (data != null) { maxHp = data.maxHealth; currentHp = data.maxHealth; attackDamage = data.attackDamage; } } public virtual void TakeDamage(int damage) { currentHp -= damage; if (currentHp <= 0) { Die(); } } protected virtual void Die() { currentHp = 0; Destroy(gameObject); } public virtual void OnHitPlayer(Player player) { player.TakeDamage(attackDamage); Die(); } public virtual void RunAI() { } void Update() { RunAI(); } }