using System.Linq;
using BehaviorDesigner.Runtime.Tasks;
using UnityEngine;
namespace CoreGame.Render
{
///
/// 视线x米内是否有敌人
///
public class IsEnemyInsightCondition : Conditional
{
[SerializeField] private float range;
public override TaskStatus OnUpdate()
{
var ownerEnt = (CombatEntity)(Owner.GetEntity());
var ac = ownerEnt.aI;
var combatEntities = ListPool.Pop();
TargetSelectSrv.SelectDistanceEnts(ownerEnt, range, combatEntities);
ac.targetList.Clear();
for (var index = 0; index < combatEntities.Count; index++)
{
ac.targetList.Add(combatEntities[index].creationIndex);
}
ListPool.Push(ref combatEntities);
return ac.targetList.Count > 0 ? TaskStatus.Success : TaskStatus.Failure;
}
}
}