using System; using BehaviorDesigner.Runtime.Tasks; using BlueWater.Npcs.Customers; namespace BlueWater.BehaviorTrees.Actions { [TaskCategory("Custom/Npc/Customer")] [Serializable] public class OrderCocktail : Conditional { private Customer _customer; public override void OnAwake() { _customer = GetComponent(); } public override void OnStart() { _customer.OrderCocktail(); } public override TaskStatus OnUpdate() { if (_customer.IsWaitTimeOver()) { _customer.UnregisterPlayerInteraction(); return TaskStatus.Failure; } if (!_customer.IsReceivedItem) return TaskStatus.Running; _customer.UnregisterPlayerInteraction(); return _customer.IsOrderedCorrected ? TaskStatus.Success : TaskStatus.Failure; } } }