protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            PrevKey    = CurrentKey;
            CurrentKey = Keyboard.GetState();
            prevms     = ms;
            ms         = Mouse.GetState();
            string username = Login.userName;

            switch (gameState)
            {
            case GameStates.TitleScreen:
                if (playButton.Contains(ms.Position))
                {
                    if (ms.LeftButton == ButtonState.Pressed && prevms.LeftButton == ButtonState.Released)
                    {
                        loginForm.Show();
                        System.Threading.Thread.Sleep(300);
                        gameState = GameStates.GameLobby;
                    }
                }
                if (exitButton.Contains(ms.Position))
                {
                    if (ms.LeftButton == ButtonState.Pressed && prevms.LeftButton == ButtonState.Released)
                    {
                        Exit();
                    }
                }
                break;

            case GameStates.GameLobby:
                Network.Update(this);
                ChatManager.Update();
                GameLobby.Update(gameTime, ms);

                if (Login.IsConnected)
                {
                    if (CurrentKey.IsKeyDown(Keys.E) && PrevKey.IsKeyUp(Keys.E))
                    {
                        chatBox.Show();
                    }
                }

                if (GameLobby.timer <= 0)
                {
                    Random randX = new Random();
                    Random randY = new Random();
                    int    x, y;

                    x = randX.Next(0, 500);
                    y = randY.Next(0, 400);

                    Network.outmsg = Network.Client.CreateMessage();
                    Network.outmsg.Write("CharacterSelection");
                    Network.outmsg.Write(Login.userName);
                    Network.outmsg.Write(GameLobby.selectedHero);
                    Network.outmsg.Write(x);
                    Network.outmsg.Write(y);
                    Network.Client.SendMessage(Network.outmsg, NetDeliveryMethod.ReliableOrdered);
                    gameState = GameStates.PlayingState;
                }
                break;

            case GameStates.PlayingState:
                Network.Update(this);
                collisionManager.Update(this);
                Player.Update(gameTime);
                shotManager.Update();
                break;

            case GameStates.EndGameScreen:
                Network.Update(this);
                break;
            }
            base.Update(gameTime);
        }