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