Files
2026-06-04 21:37:43 +03:00

44 lines
1.0 KiB
C#

using OTG.Lab06.Core;
using UnityEngine;
namespace OTG.Lab06.Combat
{
public sealed class Enemy : MonoBehaviour, IDamageable
{
[SerializeField] private float health = 80f;
[SerializeField] private GameObject deathEffectPrefab;
private bool isAlive = true;
public Transform Transform => transform;
public bool IsAlive => isAlive;
public void TakeDamage(float amount)
{
if (!isAlive)
{
return;
}
health -= Mathf.Max(0f, amount);
FloatingDamageManager.Show(amount, transform.position + Vector3.up * 2.1f);
if (health <= 0f)
{
Die();
}
}
private void Die()
{
isAlive = false;
if (deathEffectPrefab != null)
{
Instantiate(deathEffectPrefab, transform.position + Vector3.up * 0.6f, Quaternion.identity);
}
Destroy(gameObject, 0.05f);
}
}
}