using System; using System.Collections; using BehaviorDesigner.Runtime.Tasks; using BlueWater.Npcs.Customers; using UnityEngine; using Action = BehaviorDesigner.Runtime.Tasks.Action; namespace BlueWater.BehaviorTrees.Actions { [TaskCategory("Custom/Npc/Customer")] [Serializable] public class Vomit : Action { private Customer _customer; private bool _isArrivedVomitPosition; private bool _isVomiting; private Vector3 _vomitingPosition; public override void OnAwake() { _customer = GetComponent(); } public override TaskStatus OnUpdate() { if (!_isArrivedVomitPosition) { if (_customer.AIMovement.HasReachedDestination()) { _isArrivedVomitPosition = true; } return TaskStatus.Running; } if (!_isVomiting) { _customer.Vomit(); _isVomiting = true; } return _customer.IsVomited ? TaskStatus.Success : TaskStatus.Running; } } }