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