#if GRAPH_DESIGNER
using Opsive.BehaviorDesigner.Runtime.Tasks;
using Opsive.BehaviorDesigner.Runtime.Tasks.Conditionals;
using BaseGames.Enemies;
namespace BaseGames.Enemies.AI
{
///
/// BD Conditional:攻击冷却是否完毕(可以发动攻击)。
///
[TaskName("Can Attack?")]
[TaskCategory("BaseGames/Enemy/Combat")]
[TaskDescription("检查当前是否满足近战攻击条件(距离 + 视线)")]
public class BD_CanAttack : Conditional
{
private EnemyBase _enemy;
public override void OnAwake() => _enemy = GetComponent();
public override TaskStatus OnUpdate()
{
if (_enemy == null) return TaskStatus.Failure;
return _enemy.CanAttack() ? TaskStatus.Success : TaskStatus.Failure;
}
}
}
#endif