Example #1
0
        //////////////////////////////////////////////////////////////////////////////

        protected override void OnStateChanged(State oldState, State newState)
        {
            switch (newState)
            {
            case State.RoundStart:
            {
                StartScreen(new BlockingScreen("Starting round..."));
                break;
            }

            case State.Playing:
            {
                Debug.Assert(m_localPlayer != null);
                Debug.Assert(m_localPlayer.IsReady);
                Debug.Assert(m_localPlayer.connection != null);

                gameScreen = new GameScreen();
                StartScreen(gameScreen);

                m_localPlayer.ResetNetworkState();
                m_localPlayer.IsReady = true;

                gameScreen.AddDebugView(new NetworkTraceView(m_localPlayer.connection));
                gameScreen.AddDebugView(new LocalPlayerView(m_localPlayer));
                break;
            }

            case State.RoundEnd:
            {
                SetPlayersReady(false);
                StartScreen(new BlockingScreen("Waiting round results..."));
                break;
            }

            default:
            {
                Debug.Fail("Unexpected state: " + newState);
                break;
            }
            }
        }