OldBlueWater/BlueWater/Assets/02.Scripts/Ai/BehaviorTree/Task/CanAttackInOffense.cs
2023-09-11 16:16:02 +09:00

26 lines
912 B
C#

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