namespace Northbound
{
    /// <summary>
    /// 상호작용 대상 없이도 실행 가능한 행동 (공격, 점프 등)
    /// </summary>
    public interface IAction
    {
        /// <summary>
        /// 액션 실행 가능한지 여부 (쿨다운, 스테미나 등)
        /// </summary>
        bool CanExecute(ulong playerId);

        /// <summary>
        /// 액션 실행
        /// </summary>
        void Execute(ulong playerId);

        /// <summary>
        /// 액션 이름
        /// </summary>
        string GetActionName();

        /// <summary>
        /// 플레이어가 재생할 애니메이션 트리거 이름 (없으면 null 또는 빈 문자열)
        /// </summary>
        string GetActionAnimation();
    }
}