Exemple #1
0
 public ScenarioController(ITAlertPhotonClient photonClient, CreateGameController createGameController)
 {
     _photonClient                  = photonClient;
     _scenarioLoader                = new ScenarioLoader();
     _createGameController          = createGameController;
     _photonClient.JoinedRoomEvent += OnJoinedRoom;
 }
 public InitializingState(Director director, InitializingStateInput input, ITAlertPhotonClient photonClient)
     : base(input)
 {
     _director       = director;
     _photonClient   = photonClient;
     _scenarioLoader = new ScenarioLoader();
 }
		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 FeedbackState CreateFeedbackState(ITAlertPhotonClient photonClient)
        {
            var input = new FeedbackStateInput(photonClient, _director);
            var state = new FeedbackState(input, photonClient);

            var onLobbyStateSync = new OnMessageTransition(
                photonClient,
                ITAlertChannel.GameState,
                typeof(LobbyMessage),
                LobbyState.StateName);

            var onSendAndSimulationSummaryTransition = new OnEventTransition(
                SimulationSummaryState.StateName,
                () => _simulationSummary.HasData);

            var onSendAndNoSimulationSummaryTransition = new OnEventTransition(
                MenuState.StateName,
                () => !_simulationSummary.HasData);

            input.FeedbackSendClickedEvent += onSendAndSimulationSummaryTransition.ChangeState;
            input.FeedbackSendClickedEvent += onSendAndNoSimulationSummaryTransition.ChangeState;

            state.AddTransitions(
                onLobbyStateSync,
                onSendAndSimulationSummaryTransition,
                onSendAndNoSimulationSummaryTransition);

            return(state);
        }
Exemple #5
0
 public RoomState(RoomStateInput roomStateInput, ITAlertPhotonClient photonClient,
                  SimulationSummary.SimulationSummary simulationSummary)
     : base(roomStateInput)
 {
     _director            = roomStateInput.Director;
     _director.Exception += GameExceptionHandler.OnException;
     _photonClient        = photonClient;
     _controllerFactory   = new RoomStateControllerFactory(_director, photonClient, simulationSummary);
 }
Exemple #6
0
 public VoiceController(
     ITAlertPhotonClient photonClient,
     Director director,
     Func <bool> getActivated,
     Func <bool> getDeactivated)
 {
     _photonClient   = photonClient;
     _director       = director;
     _getActivated   = getActivated;
     _getDeactivated = getDeactivated;
 }
        private InitializingState CreateInitializingState(ITAlertPhotonClient photonClient)
        {
            var input = new InitializingStateInput();
            var state = new InitializingState(_director, input, photonClient);

            var onPlayingStateSyncTransition = new OnMessageTransition(photonClient, ITAlertChannel.GameState, typeof(PlayingMessage), PlayingState.StateName);

            state.AddTransitions(onPlayingStateSyncTransition);

            return(state);
        }
 public OnMessageTransition(
     ITAlertPhotonClient photonClient,
     ITAlertChannel channel,
     Type messageType,
     string toStateName,
     Func <bool> condition = null)
 {
     _photonClient        = photonClient;
     _channel             = channel;
     _requiredMessageType = messageType;
     _toStateName         = toStateName;
     _condition           = condition;
 }
        private SettingsState CreateSettingsState(ITAlertPhotonClient photonClient)
        {
            var input = new SettingsStateInput();
            var state = new SettingsState(input);

            var previousStateTransition       = new OnEventTransition(PausedState.StateName);
            var onFeedbackStateSyncTransition = new OnMessageTransition(photonClient, ITAlertChannel.GameState, typeof(FeedbackMessage), FeedbackState.StateName);

            input.BackClickedEvent += previousStateTransition.ChangeState;

            state.AddTransitions(onFeedbackStateSyncTransition, previousStateTransition);

            return(state);
        }
        private static CreateGameState CreateCreateGameState(ITAlertPhotonClient client, CreateGameController createGameController, ScenarioController scenarioController)
        {
            var input = new CreateGameStateInput(client, scenarioController);
            var state = new CreateGameState(input, createGameController);

            var joinedRoomTransition    = new OnEventTransition(RoomState.StateName);
            var previousStateTransition = new OnEventTransition(ScenarioListState.StateName);

            input.JoinedRoomEvent  += joinedRoomTransition.ChangeState;
            input.BackClickedEvent += previousStateTransition.ChangeState;

            state.AddTransitions(joinedRoomTransition, previousStateTransition);

            return(state);
        }
        private LobbyState CreateLobbyState(ITAlertPhotonClient photonClient)
        {
            var lobbyController = new LobbyController(_photonClient);
            var lobbyStateInput = new LobbyStateInput(photonClient);
            var lobbyState      = new LobbyState(lobbyStateInput, lobbyController, photonClient);

            var initializingTransition = new OnMessageTransition(photonClient, ITAlertChannel.GameState, typeof(InitializingMessage), InitializingState.StateName);
            var toMenuStateTransition  = new OnEventTransition(MenuState.StateName);

            lobbyStateInput.LeaveLobbyClickedEvent += toMenuStateTransition.ChangeState;

            lobbyState.AddTransitions(initializingTransition, toMenuStateTransition);

            return(lobbyState);
        }
        private ScenarioListState CreateScenarioListState(ITAlertPhotonClient client, ScenarioController scenarioController)
        {
            var input = new ScenarioListStateInput(client, scenarioController);
            var state = new ScenarioListState(input, scenarioController);

            var scenarioSelectedTransition = new OnEventTransition(CreateGameState.StateName);
            var quickMatchTransition       = new OnEventTransition(RoomState.StateName);
            var previousStateTransition    = new OnEventTransition(MainMenuState.StateName);

            scenarioController.ScenarioSelectedSuccessEvent += scenarioSelectedTransition.ChangeState;
            scenarioController.QuickMatchSuccessEvent       += quickMatchTransition.ChangeState;
            input.BackClickedEvent += previousStateTransition.ChangeState;

            state.AddTransitions(scenarioSelectedTransition, previousStateTransition, quickMatchTransition);

            return(state);
        }
        private GamesListState CreateGameListState(ITAlertPhotonClient client)
        {
            var gamesListController = new GamesListController(client);
            var joinGameController  = new JoinGameController(_photonClient);

            var input = new GamesListStateInput(_photonClient, gamesListController);
            var state = new GamesListState(input, gamesListController, joinGameController);

            var joinedRoomTransition    = new OnEventTransition(RoomState.StateName);
            var previousStateTransition = new OnEventTransition(MainMenuState.StateName);

            input.JoinGameSuccessEvent += joinedRoomTransition.ChangeState;
            input.BackClickedEvent     += previousStateTransition.ChangeState;

            state.AddTransitions(joinedRoomTransition, previousStateTransition);

            return(state);
        }
        private PausedState CreatePausedState(ITAlertPhotonClient photonClient)
        {
            var pausedStateInput = new PausedStateInput(_director);
            var pausedState      = new PausedState(pausedStateInput);

            var onFeedbackStateSyncTransition = new OnMessageTransition(photonClient, ITAlertChannel.GameState, typeof(FeedbackMessage), FeedbackState.StateName);
            var toPlayingStateTransition      = new OnEventTransition(PlayingState.StateName);
            var toSettingsStateTransition     = new OnEventTransition(SettingsState.StateName);
            var quitTransition = new OnEventTransition(MenuState.StateName);

            pausedStateInput.ContinueClickedEvent += toPlayingStateTransition.ChangeState;
            pausedStateInput.SettingsClickedEvent += toSettingsStateTransition.ChangeState;
            pausedStateInput.QuitClickedEvent     += quitTransition.ChangeState;

            pausedState.AddTransitions(onFeedbackStateSyncTransition, toPlayingStateTransition, toSettingsStateTransition, quitTransition);

            return(pausedState);
        }
Exemple #15
0
        protected override void OnEnter()
        {
            _photonClient?.Dispose();
            _photonClient = new ITAlertPhotonClient(GamePlugin, GameVersion, new ITAlertMessageSerializationHandler());
            _photonClient.ExceptionEvent += OnClientException;
            _photonClient.ConnectedEvent += OnConnected;

            PlayerCommands.PhotonClient = _photonClient;
            DebugCommands.PhotonClient  = _photonClient;

            _stateController = _stateControllerFactory.Create(_photonClient);
            _stateController.Initialize();

            if (!GameExceptionHandler.HasException)
            {
                _stateController.EnterState(LoadingState.StateName);
                _photonClient.Connect();
            }
        }
        private PlayingState CreatePlayingState(ITAlertPhotonClient photonClient)
        {
            var playingStateInput = new PlayingStateInput(_photonClient, _director);
            var playingState      = new PlayingState(_director, playingStateInput, photonClient, _simulationSummary);

            var onFeedbackStateSyncTransition = new OnMessageTransition(photonClient, ITAlertChannel.GameState, typeof(FeedbackMessage), FeedbackState.StateName);
            var toFeedbackTransition          = new OnEventTransition(FeedbackState.StateName);
            var toSimulationSummaryTransition = new OnEventTransition(SimulationSummaryState.StateName);
            var toMenuTransition  = new OnEventTransition(MenuState.StateName);
            var toPauseTransition = new OnEventTransition(PausedState.StateName);

            playingStateInput.PauseClickedEvent                       += toPauseTransition.ChangeState;
            playingStateInput.EndGameContinueClickedEvent             += toFeedbackTransition.ChangeState;
            playingStateInput.EndGameOnePlayerContinueClickedEvent    += toSimulationSummaryTransition.ChangeState;
            playingStateInput.EndGameMaxOnePlayerContinueClickedEvent += toMenuTransition.ChangeState;

            playingState.AddTransitions(onFeedbackStateSyncTransition, toPauseTransition, toFeedbackTransition, toSimulationSummaryTransition, toMenuTransition);

            return(playingState);
        }
        private MainMenuState CreateMainMenuState(ITAlertPhotonClient photonClient, ScenarioController scenarioController)
        {
            var input = new MenuStateInput(photonClient, scenarioController);
            var state = new MainMenuState(input);

            var joinGameTransition        = new OnEventTransition(GamesListState.StateName);
            var createGameTransition      = new OnEventTransition(ScenarioListState.StateName);
            var settingsTransition        = new OnEventTransition(SettingsState.StateName);
            var joinGameSuccessTransition = new OnEventTransition(RoomState.StateName);
            var quitTransition            = new QuitTransition();

            input.JoinGameEvent          += joinGameTransition.ChangeState;
            input.CreateGameClickedEvent += createGameTransition.ChangeState;
            input.SettingsClickedEvent   += settingsTransition.ChangeState;
            input.JoinGameSuccessEvent   += joinGameSuccessTransition.ChangeState;
            input.QuitClickedEvent       += quitTransition.Quit;

            state.AddTransitions(joinGameTransition, createGameTransition, settingsTransition, joinGameSuccessTransition,
                                 quitTransition);

            return(state);
        }
Exemple #18
0
 public PopupController(ITAlertPhotonClient photonClient)
 {
     _popupPanel     = GameObject.Find("PopupContainer").transform.GetChild(0).gameObject;
     _popupBehaviour = _popupPanel.GetComponent <PopupBehaviour>();
     _photonClient   = photonClient;
 }
Exemple #19
0
 public MenuState(ITAlertPhotonClient photonClient)
 {
     _controllerFactory = new MenuStateControllerFactory(photonClient);
 }
Exemple #20
0
 public PlayingStateInput(ITAlertPhotonClient photonClient, Director director)
 {
     _photonClient = photonClient;
     _director     = director;
 }
Exemple #21
0
 public JoinGameController(ITAlertPhotonClient photonClient)
 {
     _photonClient = photonClient;
 }
Exemple #22
0
 public LobbyController(ITAlertPhotonClient photonClient)
 {
     _photonClient = photonClient;
 }
Exemple #23
0
 public LobbyState(LobbyStateInput input, LobbyController controller, ITAlertPhotonClient photonClient)
     : base(input)
 {
     _controller   = controller;
     _photonClient = photonClient;
 }
Exemple #24
0
 public FeedbackState(FeedbackStateInput input, ITAlertPhotonClient photonClient) : base(input)
 {
     input.PlayerRankingsCompleteEvent += OnPlayerRankingsComplete;
     _photonClient = photonClient;
 }
Exemple #25
0
 public MenuStateInput(ITAlertPhotonClient photonClient, ScenarioController controller)
 {
     _photonClient = photonClient;
     _controller   = controller;
 }
Exemple #26
0
 public PlayingState(Director director, PlayingStateInput input, ITAlertPhotonClient photonClient, SimulationSummary.SimulationSummary simulationSummary) : base(input)
 {
     _director          = director;
     _photonClient      = photonClient;
     _simulationSummary = simulationSummary;
 }
Exemple #27
0
 public ScenarioListStateInput(ITAlertPhotonClient photonClient, ScenarioController scenarioController)
 {
     _photonClient       = photonClient;
     _scenarioController = scenarioController;
 }
 public CreateGameController(ITAlertPhotonClient photonClient)
 {
     _photonClient = photonClient;
 }
Exemple #29
0
 public LobbyStateInput(ITAlertPhotonClient photonClient)
 {
     _photonClient    = photonClient;
     _popupController = new PopupController(_photonClient);
 }
Exemple #30
0
 public FeedbackStateInput(ITAlertPhotonClient photonClient, Director director)
 {
     _photonClient = photonClient;
     _director     = director;
 }