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