using System; using BehaviorDesigner.Runtime.Tasks; using BlueWater.Npcs.Customers; using Action = BehaviorDesigner.Runtime.Tasks.Action; namespace BlueWater.BehaviorTrees.Actions { [TaskCategory("Custom/Npc/Customer")] [Serializable] public class OrderFood : Action { private Customer _customer; private FoodBalloonUi _foodBalloonUi; public override void OnAwake() { _customer = GetComponent(); } public override void OnStart() { _foodBalloonUi = _customer.FoodBalloonUi; _foodBalloonUi.OrderFood(40001, 15f); } public override TaskStatus OnUpdate() { if (_foodBalloonUi.IsFoodReceive()) { return TaskStatus.Success; } if (_foodBalloonUi.IsWaitTimeOver()) { _foodBalloonUi.CancelOrder(); return TaskStatus.Failure; } return TaskStatus.Running; } } }