- BossPatternData에 minPhase 필드 추가 (기본값 1, Inspector 설정 가능) - BossCombatBehaviorContext의 signatureMinPhase를 minPhase로 대체 - IsPatternReady와 CheckPatternReadyActionBase에 Phase 체크 통합 - BT 경로와 Update 경로 모두 일관되게 Phase 제한 적용 - 집행개시 패턴 minPhase=3, 점프 패턴 minPhase=2 설정
41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
using System;
|
|
|
|
using Colosseum.AI;
|
|
using Colosseum.Enemy;
|
|
|
|
using Unity.Behavior;
|
|
using Unity.Properties;
|
|
|
|
using Action = Unity.Behavior.Action;
|
|
|
|
/// <summary>
|
|
/// 지정된 공통 패턴 역할의 준비 여부를 확인하는 체크 액션 기반 클래스입니다.
|
|
/// </summary>
|
|
[Serializable, GeneratePropertyBag]
|
|
public abstract partial class CheckPatternReadyActionBase : Action
|
|
{
|
|
/// <summary>
|
|
/// 현재 액션이 검사할 패턴 역할입니다.
|
|
/// </summary>
|
|
protected abstract BossCombatPatternRole PatternRole { get; }
|
|
|
|
protected override Status OnStart()
|
|
{
|
|
BossCombatBehaviorContext context = GameObject.GetComponent<BossCombatBehaviorContext>();
|
|
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;
|
|
}
|
|
}
|