using System;
using Colosseum.Combat;
using UnityEngine;
using Unity.Behavior;
using Unity.Properties;
using Condition = Unity.Behavior.Condition;
namespace Colosseum.AI.BehaviorActions.Conditions
{
///
/// 타겟이 지정된 거리 내에 있는지 확인합니다.
///
[Serializable, GeneratePropertyBag]
[NodeDescription(name: "Is In Range", story: "Is [Target] within [Range] distance", category: "Combat")]
public partial class IsInRangeCondition : Condition
{
[SerializeReference]
public BlackboardVariable Target;
[SerializeReference]
public BlackboardVariable Range = new BlackboardVariable(2f);
public override bool IsTrue()
{
if (Target.Value == null)
{
return false;
}
float distance = TargetSurfaceUtility.GetHorizontalSurfaceDistance(GameObject.transform.position, Target.Value);
return distance <= Range.Value;
}
}
}