using System; using Colosseum.AI; using Colosseum.Enemy; using Unity.Behavior; using Unity.Properties; using Action = Unity.Behavior.Action; /// /// 지정된 공통 패턴 역할의 준비 여부를 확인하는 체크 액션 기반 클래스입니다. /// [Serializable, GeneratePropertyBag] public abstract partial class CheckPatternReadyActionBase : Action { /// /// 현재 액션이 검사할 패턴 역할입니다. /// protected abstract BossCombatPatternRole PatternRole { get; } protected override Status OnStart() { BossCombatBehaviorContext context = GameObject.GetComponent(); if (context == null) return Status.Failure; if (context.IsBehaviorSuppressed) return Status.Failure; BossPatternData pattern = context.GetPattern(PatternRole); if (pattern == null) return Status.Failure; if (context.CurrentPatternPhase < pattern.MinPhase) return Status.Failure; return UsePatternAction.IsPatternReady(GameObject, pattern) ? Status.Success : Status.Failure; } }