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"); }
/// <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); } } }
public void SetTab(PauseTab newTab) { tab = newTab; }
private void ActivateTab(PauseTab tab) { DeactivateAllTabs(); tab.SetTabActive(true); }