using System; using Colosseum.Enemy; using Unity.Behavior; using Unity.Properties; using UnityEngine; using Condition = Unity.Behavior.Condition; namespace Colosseum.AI.BehaviorActions.Conditions { /// /// 현재 보스 페이즈가 지정된 최소 페이즈 이상인지 확인하는 조건 노드입니다. /// 패턴의 Phase 진입 조건을 BT에서 시각적으로 확인할 수 있습니다. /// [Serializable, GeneratePropertyBag] [Condition(name: "Min Phase Satisfied", story: "현재 페이즈가 [MinPhase] 이상인가?", id: "e3f4a5b6-7777-8888-9999-ddddddddeeee")] [NodeDescription( name: "Min Phase Satisfied", story: "현재 페이즈가 [MinPhase] 이상인가?", category: "Condition/Phase")] public partial class IsMinPhaseSatisfiedCondition : Condition { [SerializeReference] [Tooltip("최소 요구 페이즈 (1=Phase 1부터)")] public BlackboardVariable MinPhase; public override bool IsTrue() { int minPhase = MinPhase?.Value ?? 1; if (minPhase <= 1) return true; BossBehaviorRuntimeState context = GameObject.GetComponent(); return context != null && context.CurrentPatternPhase >= minPhase; } } }