public async void AddCustomer(bool teleport = false) { if (State != OrderStationState.Empty) { return; } State = OrderStationState.Entering; // Make customer visible Customer.Avatar.gameObject.SetActive(true); if (!teleport) { await Customer.Locomotion.MoveTo(_customerOrderPosition.position); } else { _customerAvatar.transform.position = _customerOrderPosition.position; _customerAvatar.transform.rotation = _customerOrderPosition.rotation; } // Hack so order UI does not get updated after game over. if (GameController.Instance.State == GameController.StateType.Playing) { var dish = GameSettings.SaladDishes[Random.Range(0, GameSettings.SaladDishes.Length)]; Customer.PlaceOrder(dish); State = OrderStationState.WaitingForOrder; } }
public async void CustomerLeave() { Customer.RemoveOrder(); State = OrderStationState.Leaving; await Customer.Locomotion.MoveTo(_customerStartPosition); State = OrderStationState.Empty; }
public override void Reset() { State = OrderStationState.Empty; Customer.Reset(); base.Reset(); }