using System; using Colosseum.Combat; using Unity.Behavior; using Unity.Properties; using UnityEngine; using Action = Unity.Behavior.Action; /// /// 현재 타겟이 살아 있는 유효 대상인지 확인하는 공통 체크 액션입니다. /// [Serializable, GeneratePropertyBag] [NodeDescription( name: "Validate Target", story: "[Target]이 살아 있는 유효 대상인지 확인", category: "Action", id: "e9ec7a3b5a5447138ecf85ab0c57b21f")] public partial class ValidateTargetAction : Action { [SerializeReference] public BlackboardVariable Target; protected override Status OnStart() { if (Target?.Value == null || !Target.Value.activeInHierarchy) return Status.Failure; IDamageable damageable = Target.Value.GetComponent(); return damageable != null && damageable.IsDead ? Status.Failure : Status.Success; } }