using System;
using Colosseum.Enemy;
using Unity.Behavior;
using Unity.Properties;
using UnityEngine;
using Action = Unity.Behavior.Action;
///
/// 보스 공통 시그니처 패턴을 실행하는 액션입니다.
///
[Serializable, GeneratePropertyBag]
[NodeDescription(
name: "Use Signature Pattern",
story: "시그니처 패턴 실행",
category: "Action",
id: "178f8888d56042c6a75b4d6ee8a7a7d4")]
public partial class UseSignaturePatternAction : Action
{
[SerializeReference]
public BlackboardVariable Target;
private BossCombatBehaviorContext combatBehaviorContext;
private bool started;
protected override Status OnStart()
{
combatBehaviorContext = GameObject.GetComponent();
if (combatBehaviorContext == null)
return Status.Failure;
GameObject target = Target != null ? Target.Value : null;
started = combatBehaviorContext.TryStartSignaturePattern(target);
return started ? Status.Running : Status.Failure;
}
protected override Status OnUpdate()
{
if (!started || combatBehaviorContext == null)
return Status.Failure;
return combatBehaviorContext.IsSignaturePatternActive
? Status.Running
: Status.Success;
}
protected override void OnEnd()
{
started = false;
combatBehaviorContext = null;
}
}