OldBlueWater/BlueWater/Assets/02.Scripts/Ai/BehaviorTree/Task/CanAttackInOffense.cs

26 lines
912 B
C#
Raw Normal View History

2023-09-11 07:16:02 +00:00
using BehaviorDesigner.Runtime;
using BehaviorDesigner.Runtime.Tasks;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
[TaskCategory("Custom/Conditional")]
public class CanAttackInOffense : Conditional
{
[RequiredField] public SharedAiStat aiStat;
[RequiredField] public SharedIslandInfo islandInfo;
[RequiredField] public SharedTransform targetTransform;
public override TaskStatus OnUpdate()
{
if (!targetTransform.Value || !islandInfo.Value.TargetAllList.Contains(targetTransform.Value)) return TaskStatus.Failure;
var targetToDistance = Vector3.Distance(targetTransform.Value.position, transform.position);
var targetInAttackRange = targetToDistance <= aiStat.Value.AtkRange;
return targetInAttackRange ? TaskStatus.Success : TaskStatus.Failure;
}
}
}