using System.Threading.Tasks; using UnityEngine; namespace DDD { public class RestaurantRunController : FlowController { RestaurantCustomerState _restaurantCustomerStateSo; public override Task InitializeController() { _restaurantCustomerStateSo = RestaurantController.Instance.RestaurantState.CustomerState; return Task.CompletedTask; } public override Task InitializeState() { return Task.CompletedTask; } public override async Task OnReadyNewFlow(GameFlowState newFlowState) { var restaurantCustomerStateHandle = _restaurantCustomerStateSo.OnReadyNewFlow(newFlowState); await Task.WhenAll(restaurantCustomerStateHandle); } public override async Task OnExitCurrentFlow(GameFlowState exitingFlowState) { if (exitingFlowState == GameFlowState.RunRestaurant) { var restaurantCustomerStateHandle = _restaurantCustomerStateSo.OnExitCurrentFlow(exitingFlowState); await Task.WhenAll(restaurantCustomerStateHandle); } } } }