Example #1
0
    private MenuState CreateMenuState(ScenarioController scenarioController)
    {
        var input = new MenuStateInput(scenarioController);
        var state = new MenuState(input);

        var settingsTransition = new EventTransition(SettingsState.StateName);

        input.SettingsClickedEvent += settingsTransition.ChangeState;

        // TODO uncomment the lines for the next state wanted when play is pressed

        // begin level select
        // var nextStateTransition = new EventTransition(LevelState.StateName);
        // end level select

        // begin straight to gema
        var nextStateTransition = new EventTransition(CallState.StateName);

        input.PlayClickedEvent += _scenarioController.NextLevel;
        // end straight to game
        input.PlayClickedEvent += nextStateTransition.ChangeState;
        state.AddTransitions(settingsTransition, nextStateTransition);

        return(state);
    }
        /// <summary>
        /// This is where it all begins!
        /// </summary>
        /// <param name="photonPlugin"></param>
        /// <param name="messenger"></param>
        /// <param name="playerManager"></param>
        /// <returns></returns>
        public ITAlertRoomStateController Create(PluginBase photonPlugin,
                                                 Messenger messenger,
                                                 ITAlertPlayerManager playerManager,
                                                 ExceptionHandler exceptionHandler)
        {
            var sugarAnalytics = new AnalyticsServiceAdapter();
            var analytics      = new AnalyticsServiceManager(sugarAnalytics);
            var roomSettings   = new RoomSettings(photonPlugin);

            var exceptionTransition = new EventTransition(ErrorState.StateName);

            exceptionHandler.ExceptionEvent += e => exceptionTransition.ChangeState();

            var lobbyState            = new LobbyState(photonPlugin, messenger, playerManager, roomSettings, analytics);
            var gameStartedTransition = new EventTransition(GameState.StateName);

            lobbyState.GameStartedEvent += gameStartedTransition.ChangeState;
            lobbyState.AddTransitions(gameStartedTransition);

            var gameState = new GameState(photonPlugin, messenger, playerManager, roomSettings, analytics, exceptionHandler);

            gameState.AddTransitions(exceptionTransition);

            var errorState = new ErrorState(photonPlugin, messenger, playerManager, roomSettings, analytics, exceptionHandler);
            var controller = new ITAlertRoomStateController(lobbyState, gameState, errorState);

            gameState.ParentStateController = controller;

            return(controller);
        }
Example #3
0
    private SettingsState CreateSettingsState(ScenarioController scenarioController)
    {
        var input = new SettingsStateInput(scenarioController);
        var state = new SettingsState(input);

        var menuTransistion = new EventTransition(MenuState.StateName);

        input.BackClickedEvent += menuTransistion.ChangeState;

        state.AddTransitions(menuTransistion);

        return(state);
    }
Example #4
0
    private QuestionnaireState CreateQuestionnaireState(ScenarioController scenarioController)
    {
        var input = new QuestionnaireStateInput(scenarioController);
        var state = new QuestionnaireState(input, scenarioController);

        var menuTransition = new EventTransition(MenuState.StateName);

        input.FinishClickedEvent += menuTransition.ChangeState;

        state.AddTransitions(menuTransition);

        return(state);
    }
Example #5
0
    private ReviewState CreateReviewState(ScenarioController scenarioController)
    {
        var input = new ReviewStateInput(scenarioController);
        var state = new ReviewState(input, scenarioController);

        var scoreTransition = new EventTransition(ScoreState.StateName);

        input.NextClickedEvent += scoreTransition.ChangeState;

        state.AddTransitions(scoreTransition);

        return(state);
    }
Example #6
0
    private GameState CreateGameState(ScenarioController scenarioController, ModulesController modulesController)
    {
        var input = new GameStateInput(scenarioController);
        var state = new GameState(input, scenarioController, modulesController);

        var reviewTransition = new EventTransition(ReviewState.StateName);

        input.HandleFinalStateEvent += reviewTransition.ChangeState;

        state.AddTransitions(reviewTransition);

        return(state);
    }
Example #7
0
    private CallState CreateCallState()
    {
        var input = new CallStateInput();
        var state = new CallState(input);

        var gameTransition = new EventTransition(GameState.StateName);

        input.AnswerClickedEvent += gameTransition.ChangeState;

        state.AddTransitions(gameTransition);

        return(state);
    }
Example #8
0
    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);
    }
Example #9
0
    private LevelState CreateLevelState(ScenarioController scenarioController)
    {
        var input = new LevelStateInput(scenarioController);
        var state = new LevelState(input, scenarioController);

        var menuTransition = new EventTransition(MenuState.StateName);
        var callTransition = new EventTransition(CallState.StateName);

        input.BackClickedEvent += menuTransition.ChangeState;

        input.LoadLevelEvent += _scenarioController.NextLevel;
        input.LoadLevelEvent += callTransition.ChangeState;

        state.AddTransitions(callTransition, menuTransition);

        return(state);
    }
Example #10
0
    private ScoreState CreateScoreState(ScenarioController scenarioController)
    {
        var input = new ScoreStateInput(scenarioController);
        var state = new ScoreState(input, scenarioController);

        var menuTransition = new EventTransition(MenuState.StateName);

        input.NextEvent += menuTransition.ChangeState;

        var questionnaireTransition = new EventTransition(QuestionnaireState.StateName);

        input.InGameQuestionnaire += scenarioController.NextQuestionnaire;
        input.InGameQuestionnaire += questionnaireTransition.ChangeState;

        state.AddTransitions(menuTransition, questionnaireTransition);

        return(state);
    }