namespace Colosseum.Combat
{
///
/// 대미지를 받을 수 있는 엔티티를 위한 인터페이스.
/// 플레이어, 적, 보스 등이 구현합니다.
///
public interface IDamageable
{
///
/// 현재 체력
///
float CurrentHealth { get; }
///
/// 최대 체력
///
float MaxHealth { get; }
///
/// 사망 여부
///
bool IsDead { get; }
///
/// 대미지 적용
///
/// 적용할 대미지량
/// 대미지 출처 (선택)
/// 실제로 적용된 대미지량
float TakeDamage(float damage, object source = null);
///
/// 대미지 컨텍스트를 사용해 대미지를 적용합니다.
///
/// 피해량과 방어 규칙이 담긴 컨텍스트
/// 실제로 적용된 대미지량
float TakeDamage(DamageContext damageContext);
///
/// 체력 회복
///
/// 회복량
/// 실제로 회복된 양
float Heal(float amount);
}
}