Exemple #1
0
        //============== RESOLUTION
        private void OnResolution(object sender, EventArgs e)
        {
            SkirmishPopup popup      = new SkirmishPopup(Owner);
            int           itemHeight = (int)FrameworkCore.Serif.MeasureString("Sample").Y;

            popup.screenPos = new Vector2(selectedItem.position.X + 96,
                                          (resolutions.Length / 2) * itemHeight);
            popup.hideChildren = false;

            MenuItem item = null;

            for (int i = 0; i < resolutions.Length; i++)
            {
                string itemName = resolutions[i].X + Resource.MenuVideoDivider + resolutions[i].Y;
                if (resolutions[i].X * 3 <= resolutions[i].Y * 4)
                {
                    //4:3 aspect ratio or lower.
                }
                else
                {
                    itemName += " " + Resource.MenuVideoWidescreen;
                }

                if (FrameworkCore.Graphics.PreferredBackBufferHeight == resolutions[i].Y &&
                    FrameworkCore.Graphics.PreferredBackBufferWidth == resolutions[i].X)
                {
                    itemName += " " + Resource.MenuVideoCurrent;
                }


                item             = new MenuItem(itemName);
                item.Selected   += OnChooseResolution;
                item.GenericInt1 = resolutions[i].X;
                item.GenericInt2 = resolutions[i].Y;
                popup.AddItem(item);
            }

            item           = new MenuItem(Resource.MenuCancel);
            item.Selected += closePopup;
            popup.AddItem(item);

            Owner.AddMenu(popup);
        }
        private void OpenShipSelection(PlayerIndex index)
        {
            if (selectedItem.commander == null)
            {
                return;
            }

            int playerIndex = (int)index;

            SkirmishPopup popup = new SkirmishPopup(Owner);

            popup.hideChildren = false;
            popup.darkenScreen = true;

            MenuItem item = null;

            item = new MenuItem(Resource.ShipDestroyer);
            item.shipArray[0] = shipTypes.Destroyer;
            item.Selected    += AddShip;
            item.GenericInt1  = playerIndex;
            popup.AddItem(item);

            item = new MenuItem(Resource.ShipBeamFrigate);
            item.shipArray[0] = shipTypes.BeamFrigate;
            item.Selected    += AddShip;
            item.GenericInt1  = playerIndex;
            popup.AddItem(item);

            item = new MenuItem(Resource.ShipBeamGunship);
            item.shipArray[0] = shipTypes.BeamGunship;
            item.Selected    += AddShip;
            item.GenericInt1  = playerIndex;
            popup.AddItem(item);

            item = new MenuItem(Resource.ShipGunship);
            item.shipArray[0] = shipTypes.Gunship;
            item.Selected    += AddShip;
            item.GenericInt1  = playerIndex;
            popup.AddItem(item);


            item = new MenuItem(Resource.ShipDreadnought);
            item.shipArray[0] = shipTypes.Dreadnought;
            item.Selected    += AddShip;
            item.GenericInt1  = playerIndex;
            popup.AddItem(item);


            item = new MenuItem(Resource.ShipBattleship);
            item.shipArray[0] = shipTypes.Battleship;
            item.Selected    += AddShip;
            item.GenericInt1  = playerIndex;
            popup.AddItem(item);

            item = new MenuItem(Resource.ShipFighter);
            item.shipArray[0] = shipTypes.Fighter;
            item.Selected    += AddShip;
            item.GenericInt1  = playerIndex;
            popup.AddItem(item);



#if DEBUG
            item = new MenuItem("DEBUG");
            item.shipArray[0] = shipTypes.DebugShip;
            item.Selected    += AddShip;
            item.GenericInt1  = playerIndex;
            popup.AddItem(item);
#endif


            int shipsInList = 0;
            for (int i = 0; i < selectedItem.shipArray.Length; i++)
            {
                if (selectedItem.shipArray[i] != null)
                {
                    shipsInList++;
                }
            }

            if (selectedItem != null && selectedItem.shipArray[selectedItem.shipArraySelection] != null && shipsInList > 1)
            {
                item           = new MenuItem(Resource.MenuSkirmishSlotClear);
                item.Selected += AddShip;
                popup.AddItem(item);
            }

            item           = new MenuItem(Resource.MenuCancel);
            item.Selected += closePopup;
            popup.AddItem(item);

            Owner.AddMenu(popup);
        }
        private void SlotLogic(int slotNumber, PlayerCommander player)
        {
            //let player2 remove himself.
            if (FrameworkCore.players.Count >= 2)
            {
                //player2 clicked himself.
                if (menuItems[slotNumber].commander == player &&
                    player == FrameworkCore.players[1])
                {
                    SkirmishPopup popup = new SkirmishPopup(Owner);
                    popup.screenPos    = selectedItem.position + new Vector2(96, 16);
                    popup.hideChildren = false;

                    MenuItem item = new MenuItem(Resource.MenuSkirmishSlotClear);
                    item.Selected   += ClearSlot;
                    item.GenericInt1 = slotNumber;
                    popup.AddItem(item);

                    item           = new MenuItem(Resource.MenuCancel);
                    item.Selected += closePopup;
                    popup.AddItem(item);

                    Owner.AddMenu(popup);

                    return;
                }
            }

            if (menuItems[slotNumber].commander == player ||
                menuItems[slotNumber].commander == FrameworkCore.players[0])
            {
                //selected slot this player is already in.
            }
            else
            {
                SkirmishPopup popup = new SkirmishPopup(Owner);
                popup.screenPos    = selectedItem.position + new Vector2(96, 16);
                popup.hideChildren = false;

                MenuItem item = null;

                //ADD COMPUTER.
                if (menuItems[slotNumber].commander == null)
                {
                    item             = new MenuItem(Resource.MenuSkirmishEasyAdd);
                    item.Selected   += AddAI;
                    item.GenericInt1 = slotNumber;
                    popup.AddItem(item);
                }

                //MOVE TO SLOT.
                if (menuItems[slotNumber].commander == null ||
                    (menuItems[slotNumber].commander != null &&
                     menuItems[slotNumber].commander.GetType() != typeof(PlayerCommander)))
                {
                    item             = new MenuItem(Resource.MenuSkirmishSlotMove);
                    item.commander   = player;//stuff data into this menu entry.
                    item.GenericInt1 = slotNumber;
                    item.Selected   += MoveToSlot;
                    popup.AddItem(item);
                }

                if (menuItems[slotNumber].commander != null)
                {
                    if (menuItems[slotNumber].commander != FrameworkCore.players[0])
                    {
                        item             = new MenuItem(Resource.MenuSkirmishSlotClear);
                        item.Selected   += ClearSlot;
                        item.GenericInt1 = slotNumber;
                        popup.AddItem(item);
                    }
                }

                item           = new MenuItem(Resource.MenuCancel);
                item.Selected += closePopup;
                popup.AddItem(item);

                Owner.AddMenu(popup);
            }
        }