using BehaviorDesigner.Runtime.Tasks; using BlueWater.Npcs.Crews; namespace BlueWater.BehaviorTrees.Actions { [TaskCategory("Custom/Npc/Crew/Cleaner")] public class Cleaning : Conditional { private CleanerCrew _cleanerCrew; public override void OnAwake() { _cleanerCrew = GetComponent(); } public override void OnStart() { if (_cleanerCrew.CrewInteraction != null) { _cleanerCrew.AIMovement.Move(_cleanerCrew.CrewInteraction.CenterTransform.position); } } public override TaskStatus OnUpdate() { if (_cleanerCrew.CrewInteraction == null) { _cleanerCrew.AIMovement.StopMove(); _cleanerCrew.ResetMission(); return TaskStatus.Failure; } if (!_cleanerCrew.CrewInteraction.CanInteractionCrew()) { _cleanerCrew.AIMovement.StopMove(); return TaskStatus.Failure; } if (!_cleanerCrew.CanInteractionPosition()) return TaskStatus.Running; _cleanerCrew.AIMovement.StopMove(); _cleanerCrew.CrewInteraction.InteractionCrew(_cleanerCrew); return TaskStatus.Success; } } }