/// <summary>
        /// This is called when the game should draw itself.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.Black);

            float elapsedTime = (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (GameState == GameState.SignIn)
            {
                return;
            }

            if (GameState == GameState.SplashScreen)
            {
                SplashSystem.Draw(elapsedTime);
            }
            else if (GameState != GameState.CharacterSelection && GameState != GameState.RoomChange)
            {
                LevelManager.Draw(elapsedTime);
                NetworkSystem.Draw(elapsedTime);
                RenderingSystem.Draw(elapsedTime);
                HUDSystem.Draw(elapsedTime);
                QuestLogSystem.Draw();
            }
            else
            {
                ContinueNewGameScreen.Draw(elapsedTime);
            }

            base.Draw(gameTime);
        }