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;
}
}
}