public TickStateController Create(ITAlertPhotonClient photonClient) { var simulationSummary = new SimulationSummary.SimulationSummary(); // Loading var loadingState = new LoadingState(new LoadingStateInput()); loadingState.AddTransitions(new OnCompletedTransition(loadingState, LoginState.StateName)); // Login var loginState = new LoginState(); loginState.AddTransitions(new OnCompletedTransition(loginState, MenuState.StateName)); // Menu var menuState = new MenuState(photonClient); // Room var roomStateInput = new RoomStateInput(photonClient); var roomState = new RoomState(roomStateInput, photonClient, simulationSummary); // Test Simulation Summary var simulationSummaryStateInput = new SimulationSummaryStateInput(simulationSummary); var simulationSummaryState = new SimulationSummaryState(simulationSummaryStateInput, simulationSummary); // Add states to controller var stateController = new TickStateController(loadingState, loginState, menuState, roomState, simulationSummaryState); stateController.SetParent(ParentStateController); roomState.SetSubstateParentController(stateController); menuState.SetSubstateParentController(stateController); return stateController; }
private LoadingState CreateLoadingState(ScenarioController scenarioController) { var input = new LoadingStateInput(); var state = new LoadingState(input); var menuTransition = new EventTransition(MenuState.StateName); input.LoggedInEvent += scenarioController.Initialize; input.LoggedInEvent += menuTransition.ChangeState; state.AddTransitions(menuTransition); return(state); }