using System; namespace Core { public class Health : IHealthView { public int MaxHP { get; private set; } public int CurrentHP { get; private set; } public bool IsDead => CurrentHP <= 0; // 필드 대신 계산 (상태 중복 제거) public event Action HPChanged; public event Action Died; public Health(int maxHp) { MaxHP = maxHp; CurrentHP = maxHp; } //데미지 받기 public void TakeDamage(int amount) { if (IsDead) return; CurrentHP = Math.Max(0, CurrentHP - amount); HPChanged?.Invoke(MaxHP, CurrentHP); if (IsDead) Died?.Invoke(); } public void Revive() { CurrentHP = MaxHP; // CurrentHP가 MaxHP가 되면 IsDead도 자동 false HPChanged?.Invoke(MaxHP, CurrentHP); } } }