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