Exemple #1
0
 public override void Update(GameTime gameTime)
 {
     //Change the alpha of the cursor.
     if (CursorAppearing)
     {
         if (++CursorAlpha >= 200)
         {
             CursorAppearing = false;
         }
     }
     else
     {
         if (--CursorAlpha <= 20)
         {
             CursorAppearing = true;
         }
     }
     if (KeyboardHelper.InputUpPressed())
     {
         CursorIndex -= (CursorIndex > 0) ? 1 : 0;
     }
     else if (KeyboardHelper.InputDownPressed())
     {
         if (Sort == SortType.Type)
         {
             CursorIndex += (CursorIndex < 5) ? 1 : 0;
         }
         else
         {
             CursorIndex += (CursorIndex < ListItems.Count() - 1) ? 1 : 0;
         }
     }
     else if (KeyboardHelper.InputLeftPressed())
     {
         if (CursorIndex == 0)
         {
             Sort -= ((int)Sort > 0) ? 1 : 0;
         }
     }
     else if (KeyboardHelper.InputRightPressed())
     {
         if (CursorIndex == 0)
         {
             Sort += ((int)Sort < 1) ? 1 : 0;
         }
     }
     if (KeyboardHelper.InputCancelPressed())
     {
         GameScreen.RemoveScreen(this);
     }
     else if (KeyboardHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Escape))
     {
         GameScreen.RemoveScreen(this);
     }
 }
 public override void Update(GameTime gameTime)
 {
     if (KeyboardHelper.InputUpPressed())
     {
         CursorSelection -= CursorSelection > 0 ? 1 : 0;
     }
     else if (KeyboardHelper.InputDownPressed())
     {
         CursorSelection += CursorSelection < ListChoice.Count - 1 ? 1 : 0;
     }
     else if (KeyboardHelper.InputConfirmPressed())
     {
     }
     else if (KeyboardHelper.InputCancelPressed())
     {
         GameScreen.RemoveScreen(this);
     }
 }
        public override void Update(GameTime gameTime)
        {
            if (CursorAlphaAppearing)
            {//Increment SelectedAlpha before comparing it to 200
                CursorAlpha += 5;
                if (CursorAlpha >= 200)
                {
                    CursorAlphaAppearing = false;
                }
            }
            else
            {//Decrement SelectedAlpha before comparing it to 55
                CursorAlpha -= 5;
                if (CursorAlpha <= 55)
                {
                    CursorAlphaAppearing = true;
                }
            }

            #region Stage == -1
            if (Stage == -1)
            {
                if (KeyboardHelper.InputUpPressed())
                {
                    if ((int)SelectedChoice < 2)
                    {
                        SelectedChoice -= (int)SelectedChoice > 0 ? 1 : 0;
                    }
                    else if ((int)SelectedChoice < 4)
                    {
                        SelectedChoice -= (int)SelectedChoice > 2 ? 1 : 0;
                    }
                }
                else if (KeyboardHelper.InputDownPressed())
                {
                    if ((int)SelectedChoice < 2)
                    {
                        SelectedChoice += (int)SelectedChoice < 1 ? 1 : 0;
                    }
                    else if ((int)SelectedChoice < 4)
                    {
                        SelectedChoice += (int)SelectedChoice < 3 ? 1 : 0;
                    }
                }
                if (KeyboardHelper.InputLeftPressed() && (int)SelectedChoice >= 2)
                {
                    SelectedChoice = SelectChoice.PlayerList;
                }
                else if (KeyboardHelper.InputRightPressed() && (int)SelectedChoice < 2)
                {
                    SelectedChoice = SelectChoice.ChangeMap;
                }
                else if (KeyboardHelper.InputConfirmPressed())
                {
                    switch (SelectedChoice)
                    {
                    case SelectChoice.PlayerList:
                        PlayerIndex = 0;
                        break;

                    case SelectChoice.ChangeMap:
                        CursorMap = CurrentMap;
                        break;

                    case SelectChoice.StartGame:
                        GameScreen.PushScreen(new DeathmatchMap(ArrayMapFile[CurrentMap].FullName, ListPlayer, 1));
                        GameScreen.RemoveScreen(this);
                        break;
                    }
                    Stage = 0;
                }
            }
            #endregion
            else
            {
                switch (SelectedChoice)
                {
                    #region Messenger
                case SelectChoice.Messenger:

                    Microsoft.Xna.Framework.Input.Keys[] Input = KeyboardHelper.KeyPressed();
                    for (int i = 0; i < Input.Count(); i++)
                    {
                        if (KeyboardHelper.KeyPressed(Input[i]))
                        {
                            if (Input[i] == Microsoft.Xna.Framework.Input.Keys.Space)
                            {
                                Message     = Message.Insert(MessageCursorIndex, " ");
                                MessageDraw = MessageDraw.Insert(MessageCursorIndex, " ");
                                MessageCursorIndex++;
                                UpdateMessengerCursor();
                            }
                            else if (Input[i] == Microsoft.Xna.Framework.Input.Keys.Enter)
                            {
                                Messenger.Add(Message);
                                Message            = "";
                                MessageDraw        = "";
                                MessageCursorIndex = 0;
                            }
                            else if (Input[i] == Microsoft.Xna.Framework.Input.Keys.Back)
                            {
                                if (Message.Length > 0)
                                {
                                    MessageCursorIndex--;
                                    Message     = Message.Remove(MessageCursorIndex, 1);
                                    MessageDraw = MessageDraw.Remove(MessageCursorIndex, 1);
                                    UpdateMessengerCursor();
                                }
                            }
                            else if ((int)Input[i] >= 65 && (int)Input[i] <= 90)
                            {
                                Message     = Message.Insert(MessageCursorIndex, Input[i].ToString());
                                MessageDraw = MessageDraw.Insert(MessageCursorIndex, Input[i].ToString());
                                MessageCursorIndex++;
                                UpdateMessengerCursor();
                            }
                            else if (Input[i] == Microsoft.Xna.Framework.Input.Keys.Left)
                            {
                                MessageCursorIndex -= MessageCursorIndex > 0 ? 1 : 0;
                                UpdateMessengerCursor();
                            }
                            else if (Input[i] == Microsoft.Xna.Framework.Input.Keys.Right)
                            {
                                MessageCursorIndex += MessageCursorIndex < Message.Count() ? 1 : 0;
                                UpdateMessengerCursor();
                            }
                        }
                    }
                    if (KeyboardHelper.InputCancelPressed())
                    {
                        Stage = -1;
                    }
                    break;

                    #endregion
                    #region PlayerList
                case SelectChoice.PlayerList:
                    switch (Stage)
                    {
                    case 0:        //Player selection
                        if (KeyboardHelper.InputUpPressed())
                        {
                            PlayerIndex -= PlayerIndex > 0 ? 1 : 0;
                        }
                        else if (KeyboardHelper.InputDownPressed())
                        {
                            PlayerIndex += PlayerIndex < Math.Min(ListPlayer.Count, ListMap[CursorMap].NumberOfPlayers - 1) ? 1 : 0;
                        }
                        if (KeyboardHelper.InputLeftPressed() ||
                            KeyboardHelper.InputRightPressed() ||
                            KeyboardHelper.InputConfirmPressed())
                        {
                            SubMenu = 0;
                            Stage++;
                        }
                        else if (KeyboardHelper.InputCancelPressed())
                        {
                            Stage = -1;
                        }
                        break;

                    case 1:        //SubMenu selection
                        if (KeyboardHelper.InputUpPressed())
                        {
                            PlayerIndex -= PlayerIndex > 0 ? 1 : 0;
                        }
                        else if (KeyboardHelper.InputDownPressed())
                        {
                            PlayerIndex += PlayerIndex < Math.Min(ListPlayer.Count, ListMap[CursorMap].NumberOfPlayers - 1) ? 1 : 0;
                            if (PlayerIndex == ListMap[CursorMap].NumberOfPlayers - 1 && ListPlayer.Count < ListMap[CursorMap].NumberOfPlayers)
                            {
                                SubMenu = 0;
                            }
                        }
                        if (KeyboardHelper.InputLeftPressed() && (PlayerIndex != ListMap[CursorMap].NumberOfPlayers - 1 || ListPlayer.Count >= ListMap[CursorMap].NumberOfPlayers))
                        {
                            SubMenu -= SubMenu > 0 ? 1 : 0;
                        }
                        else if (KeyboardHelper.InputRightPressed() && (PlayerIndex != ListMap[CursorMap].NumberOfPlayers - 1 || ListPlayer.Count >= ListMap[CursorMap].NumberOfPlayers))
                        {
                            SubMenu += SubMenu < 2 ? 1 : 0;
                        }
                        else if (KeyboardHelper.InputCancelPressed())
                        {
                            Stage--;
                        }
                        else if (KeyboardHelper.InputConfirmPressed())
                        {
                            Stage++;
                            PlayerOptionIndex = 0;
                            if (SubMenu == 0)
                            {        //If the index is on the last player or on an empty space
                                if (PlayerIndex == ListPlayer.Count - 1 || PlayerIndex >= ListPlayer.Count)
                                {
                                    Types = new PlayerTypes[] { PlayerTypes.Closed, PlayerTypes.Human, PlayerTypes.CPUEasy }
                                }
                                ;
                                else
                                {
                                    Types = new PlayerTypes[] { PlayerTypes.Human, PlayerTypes.CPUEasy }
                                };
                            }
                        }
                        break;

                    case 2:        //PlayerOption selection
                        switch (SubMenu)
                        {
                        case 0:            //Player type
                            if (KeyboardHelper.InputUpPressed())
                            {
                                PlayerOptionIndex -= PlayerOptionIndex > 0 ? 1 : 0;
                            }
                            else if (KeyboardHelper.InputDownPressed())
                            {
                                PlayerOptionIndex += PlayerOptionIndex < Types.Count() - 1 ? 1 : 0;
                            }
                            else if (KeyboardHelper.InputConfirmPressed())
                            {
                                if (PlayerIndex < ListPlayer.Count)
                                {
                                    if (Types[PlayerOptionIndex] == PlayerTypes.Closed)
                                    {
                                        ListPlayer.RemoveAt(PlayerIndex);
                                    }
                                    else
                                    {
                                        ListPlayer[PlayerIndex].PType = Types[PlayerOptionIndex];
                                    }
                                }
                                else
                                {
                                    if (Types[PlayerOptionIndex] == PlayerTypes.Closed)
                                    {
                                        ListPlayer.RemoveAt(PlayerIndex);
                                    }
                                    else
                                    {
                                        List <Unit> ListUnit;
                                        ListUnit = new List <Unit>();

                                        /*ListUnit.Add(new UnitArmoredCore(UnitArmoredCore.ListUnitArmoredCore[0]));
                                         * ListUnit[0].Init();
                                         * ListUnit.Add(new UnitArmoredCore(UnitArmoredCore.ListUnitArmoredCore[0]));
                                         * ListUnit[1].Init();
                                         * ListUnit.Add(new UnitArmoredCore(UnitArmoredCore.ListUnitArmoredCore[0]));
                                         * ListUnit[2].Init();*/
                                        ListPlayer.Add(new Player("New player", Types[PlayerOptionIndex], ListUnit, 0));
                                    }
                                }
                                Stage--;
                            }
                            else if (KeyboardHelper.InputCancelPressed())
                            {
                                Stage--;
                            }
                            break;

                        case 1:            //Team
                            if (KeyboardHelper.InputUpPressed())
                            {
                                PlayerOptionIndex -= PlayerOptionIndex > 0 ? 1 : 0;
                            }
                            else if (KeyboardHelper.InputDownPressed())
                            {
                                PlayerOptionIndex += PlayerOptionIndex < ListMap[CursorMap].NumberOfTeam - 1 ? 1 : 0;
                            }
                            else if (KeyboardHelper.InputConfirmPressed())
                            {
                                ListPlayer[PlayerIndex].Team = PlayerOptionIndex;
                                Stage--;
                            }
                            else if (KeyboardHelper.InputCancelPressed())
                            {
                                Stage--;
                            }
                            break;
                        }
                        break;
                    }
                    break;

                    #endregion
                case SelectChoice.ChangeMap:
                    if (KeyboardHelper.InputUpPressed())
                    {
                        CursorMap--;
                        if (CursorMap < 0)
                        {
                            CursorMap = ListMap.Count - 1;
                        }
                    }
                    else if (KeyboardHelper.InputDownPressed())
                    {
                        CursorMap++;
                        if (CursorMap > ListMap.Count - 1)
                        {
                            CursorMap = 0;
                        }
                    }
                    else if (KeyboardHelper.InputConfirmPressed())
                    {
                        CurrentMap = CursorMap;
                        Stage--;
                    }
                    else if (KeyboardHelper.InputCancelPressed())
                    {
                        Stage--;
                    }
                    break;
                }
            }
            if (KeyboardHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Escape))
            {
                GameScreen.RemoveScreen(this);
            }
        }
Exemple #4
0
 public bool InputUpPressed()
 {
     return(KeyboardHelper.InputUpPressed());
 }
Exemple #5
0
 public override void Update(GameTime gameTime)
 {
     //Change the alpha of the cursor.
     if (CursorAppearing)
     {
         if (++CursorAlpha >= 200)
         {
             CursorAppearing = false;
         }
     }
     else
     {
         if (--CursorAlpha <= 70)
         {
             CursorAppearing = true;
         }
     }
     if (KeyboardHelper.InputUpPressed())
     {
         CursorIndex--;
         if (CursorIndex < 0)
         {
             CursorIndex = CursorIndexMax;
             if (CursorIndex > 32)
             {
                 CursorIndexStart = CursorIndexMax - 31;
             }
         }
         if (CursorIndex < CursorIndexStart)
         {
             CursorIndexStart--;
         }
         //Reset the CursorFilter.
         int CursorPos = CursorIndex;
         ResetCursorFilter(MainFilter);
         GetCursorFilter(MainFilter, ref CursorPos);
     }
     else if (KeyboardHelper.InputDownPressed())
     {
         CursorIndex++;
         if (CursorIndex > CursorIndexMax)
         {
             CursorIndex      = 0;
             CursorIndexStart = 0;
         }
         if (CursorIndex >= 32 + CursorIndexStart)
         {
             CursorIndexStart++;
         }
         //Reset the CursorFilter.
         int CursorPos = CursorIndex;
         ResetCursorFilter(MainFilter);
         GetCursorFilter(MainFilter, ref CursorPos);
     }
     if (KeyboardHelper.InputRightPressed())
     {
         //If the cursor points on an Item and the item can be bought and is not on Check Out.
         if (CursorFilter.CursorIndex < CursorFilter.ListItem.Count && CursorFilter.ListItem[CursorFilter.CursorIndex].QuantityToBuy + 1 <= CursorFilter.ListItem[CursorFilter.CursorIndex].Quantity && CursorIndex != CursorIndexMax)
         {
             CursorFilter.ListItem[CursorFilter.CursorIndex].QuantityToBuy++;
             CheckOutAmount += CursorFilter.ListItem[CursorFilter.CursorIndex].Price;
         }
     }
     else if (KeyboardHelper.InputLeftPressed())
     {
         //If the cursor points on an Item and the Item have at least 1 Quantity to buy and is not on Check Out.
         if (CursorFilter.CursorIndex < CursorFilter.ListItem.Count && CursorFilter.ListItem[CursorFilter.CursorIndex].QuantityToBuy - 1 >= 0 && CursorIndex != CursorIndexMax)
         {
             CursorFilter.ListItem[CursorFilter.CursorIndex].QuantityToBuy--;
             CheckOutAmount -= CursorFilter.ListItem[CursorFilter.CursorIndex].Price;
         }
     }
     else if (KeyboardHelper.InputConfirmPressed())
     {//If the cursor is not on Check Out
         if (CursorIndex != CursorIndexMax)
         {
             //If the cursor points on a FilterItem.
             if (CursorFilter.CursorIndex >= CursorFilter.ListItem.Count)
             {//Open/Close the selected FilterItem.
                 CursorFilter.ListFilter[CursorFilter.CursorIndex - CursorFilter.ListItem.Count].IsOpen = !CursorFilter.ListFilter[CursorFilter.CursorIndex - CursorFilter.ListItem.Count].IsOpen;
                 //Reset the CursorIndexMax.
                 CursorIndexMax = 0;
                 SetCursorIndexMax(MainFilter);
             }
         }
         else
         {
             if (Game.Money - CheckOutAmount >= 0)
             {
                 BuyItem(MainFilter);
                 Game.Money    -= CheckOutAmount;
                 CheckOutAmount = 0;
             }
         }
     }
     else if (KeyboardHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Escape))
     {
         GameScreen.RemoveScreen(this);
     }
 }
Exemple #6
0
        public override void Update(GameTime gameTime)
        {
            if (Stage == -1)
            {
                if (KeyboardHelper.InputUpPressed())
                {
                    if (CursorIndex > 0)
                    {
                        CursorIndex--;
                    }
                }
                else if (KeyboardHelper.InputDownPressed())
                {
                    if (CursorIndex < ItemPerPage && CursorIndex + 1 + (PageCurrent - 1) * ItemPerPage < Game.ListUnit.Count)
                    {
                        CursorIndex++;
                    }
                }
                else if (KeyboardHelper.InputLeftPressed())
                {
                    if (PageCurrent > 1)
                    {
                        PageCurrent--;
                    }
                }
                else if (KeyboardHelper.InputRightPressed())
                {
                    if (PageCurrent * 8 < Game.ListUnit.Count)
                    {
                        PageCurrent++;
                    }
                }
                else if (KeyboardHelper.InputConfirmPressed())
                {
                    Stage++;
                }
            }
            else if (Stage == 0)
            {
                if (KeyboardHelper.InputUpPressed())
                {
                    if (CursorIndexSub > 0)
                    {
                        CursorIndexSub--;
                    }
                }
                else if (KeyboardHelper.InputDownPressed())
                {
                    if (CursorIndexSub < 6)
                    {
                        CursorIndexSub++;
                    }
                }
                else if (KeyboardHelper.InputConfirmPressed())
                {
                    switch (CursorIndexSub)
                    {
                    case 0:    //Leader stats.

                        break;

                    case 1:    //Wing 1 stats.

                        break;

                    case 2:    //Wing 2 stats.

                        break;

                    case 3:    //Rename squad.

                        break;

                    case 4:    //Leader stats.

                        break;

                    case 5:    //Wing 1 set.

                        break;

                    case 6:    //Wing B set.

                        break;

                    case 7:    //Disband squad.

                        break;
                    }
                }
            }
        }
Exemple #7
0
 public override void Update(GameTime gameTime)
 {
     //Change the alpha of the cursor.
     if (CursorAppearing)
     {
         if (++CursorAlpha >= 200)
         {
             CursorAppearing = false;
         }
     }
     else
     {
         if (--CursorAlpha <= 70)
         {
             CursorAppearing = true;
         }
     }
     if (KeyboardHelper.InputUpPressed())
     {
         if (Stage == 0)
         {
             CursorIndex--;
             if (CursorIndex < 0)
             {
                 CursorIndex = CursorIndexMax - 1;
                 if (CursorIndex >= 32)
                 {
                     CursorIndexStart = CursorIndexMax - 31;
                 }
             }
             if (CursorIndex < CursorIndexStart)
             {
                 CursorIndexStart--;
             }
             //Reset the CursorFilter.
             int CursorPos = CursorIndex;
             ResetCursorFilter(MainFilter);
             GetCursorFilter(MainFilter, ref CursorPos);
         }
     }
     else if (KeyboardHelper.InputDownPressed())
     {
         if (Stage == 0)
         {
             CursorIndex++;
             if (CursorIndex > CursorIndexMax - 1)
             {
                 CursorIndex      = 0;
                 CursorIndexStart = 0;
             }
             if (CursorIndex > 32 + CursorIndexStart)
             {
                 CursorIndexStart++;
             }
             //Reset the CursorFilter.
             int CursorPos = CursorIndex;
             ResetCursorFilter(MainFilter);
             GetCursorFilter(MainFilter, ref CursorPos);
         }
     }
     else if (KeyboardHelper.InputConfirmPressed())
     {
         if (Stage == 0)
         {
             //If the cursor points on a FilterItem.
             if (CursorFilter.CursorIndex >= CursorFilter.ListItem.Count)
             {//Open/Close the selected FilterItem.
                 CursorFilter.ListFilter[CursorFilter.CursorIndex - CursorFilter.ListItem.Count].IsOpen = !CursorFilter.ListFilter[CursorFilter.CursorIndex - CursorFilter.ListItem.Count].IsOpen;
                 //Reset the CursorIndexMax.
                 CursorIndexMax = 0;
                 SetCursorIndexMax(MainFilter);
             }
             else
             {
                 Stage++;
             }
         }
         else
         {
         }
     }
     else if (KeyboardHelper.InputCancelPressed())
     {
         if (Stage == 0)
         {
             GameScreen.RemoveScreen(this);
         }
         else
         {
             Stage--;
         }
     }
     else if (KeyboardHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Escape))
     {
         GameScreen.RemoveScreen(this);
     }
 }
        public override void Update(GameTime gameTime)
        {
            if (SelectedAlphaAppearing)
            {//Increment SelectedAlpha before comparing it to 200
                if (++SelectedAlpha >= 200)
                {
                    SelectedAlphaAppearing = false;
                }
            }
            else
            {//Decrement SelectedAlpha before comparing it to 55
                if (--SelectedAlpha <= 55)
                {
                    SelectedAlphaAppearing = true;
                }
            }
            if (KeyboardHelper.InputUpPressed())
            {
                if (Menu[SelectedChoice].Open)
                {
                    if (SubMenu > -1)
                    {
                        SubMenu--;
                    }
                    else
                    {
                        //Decrement SelectedChoice before comparing it to 0
                        if (--SelectedChoice < 0)
                        {
                            SelectedChoice = Menu.Count() - 1;
                        }
                        SubMenu = -1;
                    }
                }
                else
                {
                    SelectedChoice -= SelectedChoice > 0 ? 1 : 0;
                    if (Menu[SelectedChoice].Open)
                    {
                        SubMenu = Menu[SelectedChoice].Categories.Count() - 1;
                    }
                }
                Up.Play();
            }
            else if (KeyboardHelper.InputDownPressed())
            {
                if (Menu[SelectedChoice].Open)
                {
                    if (SubMenu < Menu[SelectedChoice].Categories.Count() - 1)
                    {
                        SubMenu++;
                    }
                    else
                    {
                        SelectedChoice++;
                        SubMenu = -1;
                    }
                }
                else
                //Increment SelectedChoice before comparing it to maximum value.
                if (++SelectedChoice > Menu.Count() - 1)
                {
                    SelectedChoice = 0;
                }
                Down.Play();
            }
            else if (KeyboardHelper.InputConfirmPressed())
            {
                switch ((MenuChoice)SelectedChoice)
                {
                case MenuChoice.StartBattle:
                    GameScreen.PushScreen(new UnitSelection(3));

                    GameScreen.RemoveScreen(this);
                    break;

                case MenuChoice.View:
                    if (SubMenu == 0)    //Pilot
                    {
                    }
                    else if (SubMenu == 1)    //Units
                    {
                    }
                    else if (SubMenu == 2)    //Parts
                    {
                    }
                    GameScreen.PushScreen(new Shop());
                    break;

                case MenuChoice.Customize:
                    if (SubMenu == 0)    //Unit
                    {
                        GameScreen.PushScreen(new SquadSelection());
                    }
                    else if (SubMenu == 1)    //Pilot
                    {
                        GameScreen.PushScreen(new PilotSelection());
                    }
                    else if (SubMenu == 2)    //Parts
                    {
                        //GameScreen.PushScreen(new PartsEquipScreen(serviceProvider, UnitArmoredCore.ListUnitArmoredCore[0]));
                    }
                    else if (SubMenu == 3)    //Shop
                    {
                        GameScreen.PushScreen(new Shop());
                    }
                    else if (SubMenu == 4)    //Forge
                    {
                        GameScreen.PushScreen(new Forge());
                    }
                    break;

                case MenuChoice.Data:

                    break;

                case MenuChoice.Multiplayer:
                    GameScreen.PushScreen(new MultiplayerScreen());
                    break;

                case MenuChoice.Exit:
                    GameScreen.RemoveScreen(this);
                    break;
                }
            }
        }
Exemple #9
0
        public override void Update(GameTime gameTime)
        {
            if (Stage == -1)
            {
                if (KeyboardHelper.InputUpPressed())
                {
                    if (CursorIndex > 0)
                    {
                        CursorIndex--;
                    }
                }
                else if (KeyboardHelper.InputDownPressed())
                {
                    if (CursorIndex < 8 && CursorIndex + 1 + (PageCurrent - 1) * 8 < ListUnitSelection.Count)
                    {
                        CursorIndex++;
                    }
                }
                else if (KeyboardHelper.InputLeftPressed())
                {
                    if (PageCurrent > 1)
                    {
                        PageCurrent--;
                    }
                }
                else if (KeyboardHelper.InputRightPressed())
                {
                    if (PageCurrent * 8 < ListUnitSelection.Count)
                    {
                        PageCurrent++;
                    }
                }
                else if (KeyboardHelper.InputConfirmPressed())
                {
                    //If the Unit has a pilot.
                    if (ListUnitSelection[CursorIndex + (PageCurrent - 1) * 8].ArrayCharacterActive[0] != null)
                    {
                        if (ListUnitSelected.Contains(CursorIndex + (PageCurrent - 1) * 8))
                        {
                            ListUnitSelected.Remove(CursorIndex + (PageCurrent - 1) * 8);
                        }
                        else
                        {
                            ListUnitSelected.Add(CursorIndex + (PageCurrent - 1) * 8);
                        }
                        if (ListUnitSelected.Count >= NbUnitsToSelect)
                        {
                            List <Player> ListPlayers    = new List <Player>();
                            List <Unit>   ListPlayerUnit = new List <Unit>();
                            for (int U = 0; U < ListUnitSelected.Count; U++)
                            {
                                ListPlayerUnit.Add(ListUnitSelection[ListUnitSelected[U]]);
                            }
                            ListPlayers.Add(new Player("noname", PlayerTypes.Human, ListPlayerUnit, 0));

                            GameScreen.PushScreen(new DeathmatchMap(ListPlayers));
                            GameScreen.RemoveScreen(this);
                        }
                    }
                    else//Open the pop up menu.
                    {
                        Stage++;
                    }
                }
                else if (KeyboardHelper.InputCancelPressed())
                {
                    GameScreen.RemoveAllScreens();
                    GameScreen.PushScreen(new IntermissionScreen());
                }
            }
            else
            {
                if (KeyboardHelper.InputCancelPressed() || KeyboardHelper.InputConfirmPressed())
                {
                    Stage--;
                }
            }
        }
        public override void Update(GameTime gameTime)
        {
            if (KeyboardHelper.InputUpPressed())
            {
                if (Stage == -1)
                {
                    if (CursorIndexUnitSelection > 0)
                    {
                        CursorIndexUnitSelection--;
                    }
                }
                else if (Stage == 0)
                {
                    if (CursorIndexSubMenu > 0)
                    {
                        CursorIndexSubMenu--;
                    }
                }
                else if (Stage == 1)
                {
                    if (CursorIndexPilotPosition > 0)
                    {
                        CursorIndexPilotPosition--;
                    }
                }
            }
            else if (KeyboardHelper.InputDownPressed())
            {
                if (Stage == -1)
                {
                    if (CursorIndexUnitSelection < ItemPerPage - 1 && CursorIndexUnitSelection + 1 + (PageCurrentUnitSelection - 1) * ItemPerPage < Game.ListUnit.Count)
                    {
                        CursorIndexUnitSelection++;
                    }
                }
                else if (Stage == 0)
                {
                    if (CursorIndexSubMenu < SelectedUnit.MaxCharacter)
                    {
                        CursorIndexSubMenu++;
                    }
                }
                else if (Stage == 1)
                {
                    if (CursorIndexPilotPosition < SelectedUnit.MaxCharacter)
                    {
                        CursorIndexPilotPosition++;
                    }
                }
            }
            else if (KeyboardHelper.InputLeftPressed())
            {
                if (Stage == -1)
                {
                    if (PageCurrentUnitSelection > 1)
                    {
                        PageCurrentUnitSelection--;
                    }
                }
                else if (Stage == 1)
                {
                    if (PageCurrentPilotPosition > 1)
                    {
                        PageCurrentPilotPosition--;
                    }
                }
            }
            else if (KeyboardHelper.InputRightPressed())
            {
                if (Stage == -1)
                {
                    if (PageCurrentUnitSelection * ItemPerPage < Game.ListUnit.Count)
                    {
                        PageCurrentUnitSelection++;
                    }
                }

                else if (Stage == 1)
                {
                    if ((PageCurrentPilotPosition + 1) * ItemPerPage < ListCharacterInfo.Count)
                    {
                        PageCurrentPilotPosition++;
                    }
                }
            }
            else if (KeyboardHelper.InputConfirmPressed())
            {
                if (Stage == -1)
                {
                    SelectedUnit       = Game.ListUnit[CursorIndexUnitSelection + (PageCurrentUnitSelection - 1) * ItemPerPage];
                    CursorIndexSubMenu = 0;
                    Stage++;
                }
                else if (Stage == 0)
                {
                    CursorIndexPilotPosition = 0;
                    PageCurrentPilotPosition = 1;
                    Stage++;
                }
                else if (Stage == 1)
                {
                    int CharacterIndex = CursorIndexPilotPosition + (PageCurrentPilotPosition - 1) * PilotPerPage;
                    if (ListCharacterInfo[CharacterIndex].UnitIndex != -1)
                    {
                        Game.ListUnit[ListCharacterInfo[CharacterIndex].UnitIndex].ArrayCharacterActive[ListCharacterInfo[CharacterIndex].CharacterUnitIndex] = null;
                    }
                    //If the selection is not empty, add the pilot.
                    if (CharacterIndex != 0)
                    {
                        SelectedUnit.ArrayCharacterActive[CursorIndexSubMenu] = Game.ListCharacter[CharacterIndex - 1];
                        ListCharacterInfo[CharacterIndex].UnitName            = SelectedUnit.Name;
                        ListCharacterInfo[CharacterIndex].UnitIndex           = CursorIndexUnitSelection + (PageCurrentUnitSelection - 1) * ItemPerPage;
                        ListCharacterInfo[CharacterIndex].CharacterUnitIndex  = CursorIndexSubMenu;
                    }
                    else
                    {
                        SelectedUnit.ArrayCharacterActive[CursorIndexSubMenu] = null;
                        ListCharacterInfo[CharacterIndex].UnitName            = "------";
                        ListCharacterInfo[CharacterIndex].UnitIndex           = -1;
                        ListCharacterInfo[CharacterIndex].CharacterUnitIndex  = -1;
                    }
                    Stage = -1;
                }
            }
            else if (KeyboardHelper.InputCancelPressed())
            {
                if (Stage > -1)
                {
                    Stage--;
                }
                else
                {
                    GameScreen.RemoveScreen(this);
                }
            }
        }