Files
UnicornElimination/Assets/Scripts/Unicorn/LivingEntity.cs
2026-05-08 22:45:22 +09:00

46 lines
1.1 KiB
C#

using Unicorn.Game.Hitbox;
using UnityEngine;
using NotImplementedException = System.NotImplementedException;
namespace Unicorn.Game
{
public partial class LivingEntity : MonoBehaviour
{
private Rigidbody2D _rb;
public float health = 20.0f;
private void Start()
{
_rb = TryGetComponent(out Rigidbody2D rb) ? rb : null;
}
private void OnTriggerEnter2D(Collider2D other)
{
if (_rb == null) return;
var transformPosition = other.transform.position - transform.position;
_rb.linearVelocity = Vector2.zero;
_rb.AddForce(transformPosition.normalized * health, ForceMode2D.Impulse);
}
public void Damage(DamageInfo info)
{
health -= info.damage;
OnDamaged(info);
if (health <= 0.0f) OnDeath();
}
protected virtual void OnDeath()
{
throw new NotImplementedException();
}
public Rigidbody2D Rb => _rb;
protected virtual void OnDamaged(DamageInfo info)
{
throw new NotImplementedException();
}
}
}