32 lines
938 B
C#
32 lines
938 B
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;
|
|
|
|
BossPatternData pattern = context.GetPattern(PatternRole);
|
|
return UsePatternAction.IsPatternReady(GameObject, pattern) ? Status.Success : Status.Failure;
|
|
}
|
|
}
|