using System; using BehaviorDesigner.Runtime; using BehaviorDesigner.Runtime.Tasks; using BlueWater.Enemies.Bosses; using Action = BehaviorDesigner.Runtime.Tasks.Action; namespace BlueWater.BehaviorTrees.Enemies.Bosses.Actions { [TaskCategory("Custom/Enemy/Boss")] [Serializable] public class Move : Action { public bool UseMovePosition; public SharedVector3 MovePosition; public SharedCollider Target; private Boss _boss; public override void OnAwake() { _boss = transform.GetComponent(); } public override void OnStart() { var movePosition = UseMovePosition ? MovePosition.Value : Target.Value.transform.position; _boss.Move(movePosition); } public override TaskStatus OnUpdate() { if (!_boss.HasReachedDestination()) return TaskStatus.Running; _boss.StopMove(); return TaskStatus.Success; } } }