Exemple #1
0
        public PauseMenu(ContentManager content, Room currentRoom, ref PlayerStats stats)
        {
            prevMs = Mouse.GetState();

            tab = PauseTab.Stats;

            invMenu  = new InvMenu(content, ref stats);
            shopMenu = new ShopMenu(content, ref stats);
            map      = new Map();

            this.currentRoom = currentRoom;

            //Setting up button colours
            mapColour      = Color.RoyalBlue;
            statsColour    = Color.DarkRed;
            invColour      = Color.DarkGreen;
            shopColour     = Color.Gold;
            inactiveColour = Color.DarkSlateGray;
            hoverColour    = Color.SlateGray;

            //Setting up buttons
            mapButton   = new Button(new Rectangle(BUTTON_WITDH * 0 + BUTTON_WIDTH_OFFSET, BUTTON_HEIGHT_OFFSET, BUTTON_WITDH, BUTTON_HEIGHT), "Map", mapColour, new Vector2(BUTTON_WITDH * 0 + BUTTON_WIDTH_OFFSET + 22, BUTTON_HEIGHT_OFFSET + BUTTON_TEXT_OFFSET));
            statsButton = new Button(new Rectangle(BUTTON_WITDH * 1 + BUTTON_WIDTH_OFFSET, BUTTON_HEIGHT_OFFSET, BUTTON_WITDH, BUTTON_HEIGHT), "Stats", inactiveColour, new Vector2(BUTTON_WITDH * 1 + BUTTON_WIDTH_OFFSET + 8, BUTTON_HEIGHT_OFFSET + BUTTON_TEXT_OFFSET));
            invButton   = new Button(new Rectangle(BUTTON_WITDH * 2 + BUTTON_WIDTH_OFFSET, BUTTON_HEIGHT_OFFSET, BUTTON_WITDH, BUTTON_HEIGHT), "Inv.", inactiveColour, new Vector2(BUTTON_WITDH * 2 + BUTTON_WIDTH_OFFSET + 23, BUTTON_HEIGHT_OFFSET + BUTTON_TEXT_OFFSET));
            shopButton  = new Button(new Rectangle(BUTTON_WITDH * 3 + BUTTON_WIDTH_OFFSET, BUTTON_HEIGHT_OFFSET, BUTTON_WITDH, BUTTON_HEIGHT), "Shop", inactiveColour, new Vector2(BUTTON_WITDH * 3 + BUTTON_WIDTH_OFFSET + 12, BUTTON_HEIGHT_OFFSET + BUTTON_TEXT_OFFSET));

            //Setting up tab switch sound effect
            tabEffect = content.Load <SoundEffect>(@"Sound\Menu\tab");
        }
Exemple #2
0
        /// <summary>
        /// Updates the PauseMenu
        /// </summary>
        /// <param name="ms">A valid MouseState</param>
        /// <param name="currentRoom">The players current room</param>
        public void Update(MouseState ms, Room currentRoom)
        {
            //Updates data that the menu must keep track of
            this.currentRoom = currentRoom;

            if (!ms.Equals(prevMs))
            {
                prevMs = ms;

                //Updates tab, depending on which button was clicked
                if (mapButton.WasClicked(ms) == true)
                {
                    tab = PauseTab.Map;

                    //Plays sound effect
                    tabEffect.Play();
                }
                else if (statsButton.WasClicked(ms) == true)
                {
                    tab = PauseTab.Stats;

                    //Plays sound effect
                    tabEffect.Play();
                }
                else if (invButton.WasClicked(ms) == true)
                {
                    tab = PauseTab.Inventory;

                    //Plays sound effect
                    tabEffect.Play();
                }
                else if (shopButton.WasClicked(ms) == true)
                {
                    tab = PauseTab.Shop;

                    //Plays sound effect
                    tabEffect.Play();
                }

                //Sets button colours to highlight the tab which is currently selected
                switch (tab)
                {
                case PauseTab.Map:

                    mapButton.SetColour(mapColour);
                    statsButton.SetColour(inactiveColour);
                    invButton.SetColour(inactiveColour);
                    shopButton.SetColour(inactiveColour);

                    break;

                case PauseTab.Stats:

                    mapButton.SetColour(inactiveColour);
                    statsButton.SetColour(statsColour);
                    invButton.SetColour(inactiveColour);
                    shopButton.SetColour(inactiveColour);

                    break;

                case PauseTab.Inventory:

                    mapButton.SetColour(inactiveColour);
                    statsButton.SetColour(inactiveColour);
                    invButton.SetColour(invColour);
                    shopButton.SetColour(inactiveColour);

                    invMenu.UpdateItemList();
                    invMenu.Update(ms);

                    break;

                case PauseTab.Shop:

                    mapButton.SetColour(inactiveColour);
                    statsButton.SetColour(inactiveColour);
                    invButton.SetColour(inactiveColour);
                    shopButton.SetColour(shopColour);

                    shopMenu.Update(ms);

                    break;
                }

                //Sets button colours to indicate if any are being hovered over
                if (mapButton.Hover(ms) == true && tab != PauseTab.Map)
                {
                    mapButton.SetColour(hoverColour);
                }
                else if (statsButton.Hover(ms) == true && tab != PauseTab.Stats)
                {
                    statsButton.SetColour(hoverColour);
                }
                else if (invButton.Hover(ms) == true && tab != PauseTab.Inventory)
                {
                    invButton.SetColour(hoverColour);
                }
                else if (shopButton.Hover(ms) == true && tab != PauseTab.Shop)
                {
                    shopButton.SetColour(hoverColour);
                }
            }
        }
Exemple #3
0
 public void SetTab(PauseTab newTab)
 {
     tab = newTab;
 }
Exemple #4
0
 private void ActivateTab(PauseTab tab)
 {
     DeactivateAllTabs();
     tab.SetTabActive(true);
 }