Пример #1
0
        // -------------------------------------------

        /*
         * Set the state of the main manager
         */
        private void SetState(int _newState)
        {
            List <PageInformation> pages = new List <PageInformation>();

            base.ChangeState(_newState);

            switch (m_state)
            {
            /////////////////////////////////
            case STATE_GAME_LOADING:
                m_playersLoadedInitialData = 0;
#if DEBUG_MODE_DISPLAY_LOG
                Debug.LogError("+++++++STATE_GAME_LOADING");
#endif
                GameEventController.instance.DispatchGameEvent(LocalPlayerController.EVENT_LOCALPLAYERCONTROLLER_FREEZE_PHYSICS);

                UIEventController.Instance.DispatchUIEvent(UIEventController.EVENT_SCREENMANAGER_DESTROY_ALL_SCREEN);

                GameEventController.instance.DispatchGameEvent(ScreenVRHUDView.EVENT_HUD_ACTIVATION, false);

                if (!YourNetworkTools.Instance.IsLocalGame)
                {
#if ENABLE_PHOTON
                    BasicSystemEventController.Instance.DelayBasicSystemEvent(PhotonController.EVENT_PHOTONCONTROLLER_GAME_STARTED, 0.2f);
#endif
                }
                CreateLoadingScreen();
                break;

            /////////////////////////////////
            case STATE_GAME_PRESENTATION:
#if DEBUG_MODE_DISPLAY_LOG
                Debug.LogError("+++++++STATE_GAME_PRESENTATION");
#endif
                UIEventController.Instance.DispatchUIEvent(UIEventController.EVENT_SCREENMANAGER_DESTROY_ALL_SCREEN);

                // LEVEL PRESENTATION
                GameEventController.Instance.DelayGameEvent(EVENT_GAMEEVENT_SHOW_PRESENTATION_SCREEN, 0.2f);
                break;

            /////////////////////////////////
            case STATE_GAME_RUNNING:
#if DEBUG_MODE_DISPLAY_LOG
                Debug.LogError("+++++++STATE_GAME_RUNNING");
#endif

                UIEventController.Instance.DispatchUIEvent(UIEventController.EVENT_SCREENMANAGER_DESTROY_ALL_SCREEN);

                // ASSIGN INITIAL POSITIONS
                GameEventController.instance.DelayGameEvent(PlayersController.EVENT_PLAYERSCONTROLLER_ASSIGN_INITIAL_POSITION, 0.1f);

                // HUD ACTIVATION
                CreateGameHUD();
                GameEventController.instance.DispatchGameEvent(ScreenVRHUDView.EVENT_HUD_ACTIVATION, true);
                SoundsConstants.PlayMelodyGameplay();

                // PLAYER ACTIVATION
                LocalPlayerController.Instance.StartLocalPlayer();

                YourNetworkTools.Instance.ActivateTransformUpdate = true;
                break;

            /////////////////////////////////
            case STATE_GAME_VICTORY:
#if DEBUG_MODE_DISPLAY_LOG
                Debug.LogError("+++++++STATE_GAME_VICTORY");
#endif

                m_level++;
                LocalPlayerController.Instance.StopLocalPlayer();
                CreateVictoryScreen();
                SoundsController.Instance.StopAllSounds();
                SoundsConstants.PlayMelodyWin();
                m_localDataInitialized = false;
                GameEventController.instance.DispatchGameEvent(ScreenVRHUDView.EVENT_HUD_ACTIVATION, false);

                YourNetworkTools.Instance.ActivateTransformUpdate = false;
                break;

            /////////////////////////////////
            case STATE_GAME_DEFEAT:
#if DEBUG_MODE_DISPLAY_LOG
                Debug.LogError("+++++++STATE_GAME_DEFEAT");
#endif

                m_level       = 0;
                m_globalLifes = 10;
                LocalPlayerController.Instance.StopLocalPlayer();
                LocalPlayerController.Instance.ResetValues();
                CreateDefeatScreen();
                SoundsController.Instance.StopAllSounds();
                SoundsConstants.PlayMelodyLose();
                m_localDataInitialized = false;
                GameEventController.instance.DispatchGameEvent(ScreenVRHUDView.EVENT_HUD_ACTIVATION, false);

                YourNetworkTools.Instance.ActivateTransformUpdate = false;
                break;

            /////////////////////////////////
            case STATE_GAME_COMPLETED:
#if DEBUG_MODE_DISPLAY_LOG
                Debug.LogError("+++++++STATE_GAME_COMPLETED");
#endif

                m_level       = 0;
                m_globalLifes = 10;
                LocalPlayerController.Instance.StopLocalPlayer();
                m_localDataInitialized = false;
                CreateGameCompletedScreen();
                SoundsController.Instance.StopAllSounds();
                SoundsConstants.PlayMelodyWin();
                m_localDataInitialized = false;
                GameEventController.instance.DispatchGameEvent(ScreenVRHUDView.EVENT_HUD_ACTIVATION, false);

                YourNetworkTools.Instance.ActivateTransformUpdate = false;
                break;

            /////////////////////////////////
            case STATE_GAME_DISCONNECTED:
#if DEBUG_MODE_DISPLAY_LOG
                Debug.LogError("+++++++STATE_GAME_DISCONNECTED");
#endif
                YourNetworkTools.Instance.ActivateTransformUpdate = false;
                try
                {
                    LocalPlayerController.Instance.StopLocalPlayer();
                    CreateDisconnectionScreen();
                    SoundsController.Instance.StopAllSounds();
                    GameEventController.instance.DispatchGameEvent(ScreenVRHUDView.EVENT_HUD_ACTIVATION, false);
                }
                catch (Exception err) { };
                break;
            }
        }