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 SimulationSummaryState CreateSimulationSummaryState(SimulationSummary.SimulationSummary simulationSummary) { var input = new SimulationSummaryStateInput(simulationSummary); var state = new SimulationSummaryState(input, simulationSummary); var launchQuestionnaire = _photonClient.CurrentRoom.RoomInfo.customProperties[CustomRoomSettingKeys.GameScenario].ToString() == "SPL3"; var onEndAndLaunchQuestionniareTransition = new OnEventTransition( LaunchQuestionnaireState.StateName, () => launchQuestionnaire); var onEndAndReturnToMenuTransition = new OnEventTransition( MenuState.StateName, () => !launchQuestionnaire); input.ContinueClickedEvent += onEndAndReturnToMenuTransition.ChangeState; input.ContinueClickedEvent += onEndAndLaunchQuestionniareTransition.ChangeState; input.ContinueClickedEvent += _photonClient.CurrentRoom.Leave; state.AddTransitions( onEndAndReturnToMenuTransition, onEndAndLaunchQuestionniareTransition ); return(state); }