26 lines
912 B
C#
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;
|
|
}
|
|
}
|
|
}
|