using UnityEngine;

// ============================================================================
// IDamageable
// ----------------------------------------------------------------------------
// "데미지를 받을 수 있는 무언가"를 표현하는 인터페이스.
// AttackHitbox가 트리거에 들어온 콜라이더에서 이 인터페이스를 찾아 TakeDamage 호출.
// Enemy, Player 등 어떤 GameObject든 이 인터페이스만 구현하면 같은 공격 시스템으로 피격 가능.
// ----------------------------------------------------------------------------
// 매개변수:
//   amount                       — 데미지 양
//   hitVelocity                  — 넉백 속도 (피해자에게 적용할 vx/vy)
//   hitReactionAnimationState    — 피격 모션 애니메이션 State 이름 (null 가능)
//   hitTargetPosition            — 피격 시 위치 보정 목표 (null이면 보정 안 함)
//   correctHitTargetY            — 위 위치 보정에서 Y도 보정할지 (false면 X만)
//   hitPositionSolidMask         — 위치 보정 시 끼이지 않게 검사할 솔리드 레이어
//   hitPositionCorrectionDuration — 위치 보정 보간 시간 (0이면 즉시 스냅)
// ============================================================================
public interface IDamageable
{
    void TakeDamage(int amount, Vector2 hitVelocity = default, string hitReactionAnimationState = null, Vector2? hitTargetPosition = null, bool correctHitTargetY = false, int hitPositionSolidMask = 0, float hitPositionCorrectionDuration = 0f);
}
