public void Update(MouseHandler mouse, PlayerHandler party, Vector2 offset, DataManager datamanager, TravelHandler travel, WorldMap world, Random rando, GameMain game) { travelFeed.Update(); if (mouse.isLeftClickDown == true) { //Hovercards hoverCards.Clear(); //UI Event Windows for (int i = 0; i < uiEventWindows.Count; ++i) { foreach (KeyValuePair <Rectangle, EventOption> o in uiEventWindows[i].eventOptionCollisions) { if (mouse.leftMouseClickPosition.Intersects(getUIPosition(o.Key, offset)) && o.Value.IsAvailable() == true) { //determine event outcome o.Value.DetermineEventOutcome(party, game, travel, rando, this); uiEventWindows.Clear(); } } } //UI Map Selections for (int i = 0; i < uiMapSelections.Count; ++i) { if (mouse.leftMouseClickPosition.Intersects(uiMapSelections[i].travelCollision)) { travel.TravelToDestination(travel.currentGridLocation, uiMapSelections[i].thisGridLocation, world, rando); uiMapSelections.Clear(); game.ChangeGameState(GameMain.GameState.Traveling); } else if (mouse.leftMouseClickPosition.Intersects(uiMapSelections[i].infoCollision)) { //do an info thing } else if (mouse.leftMouseClickPosition.Intersects(uiMapSelections[i].restCollision)) { uiMapSelections.Clear(); game.ChangeGameState(GameMain.GameState.Resting); } else { uiMapSelections.Clear(); travel.clearTravelPath(); } } //UI Windows for (int i = 0; i < uiWindows.Count; ++i) { foreach (KeyValuePair <Rectangle, UIHoverCard> r in uiWindows[i].hoverCardCollision) { if (mouse.leftMouseClickPosition.Intersects(getUIPosition(r.Key, offset))) { createHoverCard(r.Value); } } for (int t = 0; t < uiWindows[i].uiWindowTabs.Count; ++t) { if (mouse.leftMouseClickPosition.Intersects(getUIPosition(uiWindows[i].uiWindowTabs[t], uiWindows[i].uiWindowPosition, offset))) { ClickTabs(i, uiWindows[i].partymember, uiWindows[i].isTheMark, uiWindows[i].uiWindowsTabsText[t], party, datamanager); break; } } if (mouse.leftMouseClickPosition.Intersects(uiWindows[i].publicxButtonPosition) == true && hoverCards.Count == 0) { uiWindows.RemoveAt(i); fullcharacterposition = Vector2.Zero; } } } //Character Bubbles for (int i = 0; i < uiCharacterBubbles.Count; ++i) { if (mouse.isLeftClickDown == true) { if (mouse.leftMouseClickPosition.Intersects(getUIPosition(uiCharacterBubbles[i].bubblePosition, offset)) == true && uiCharacterBubbles[i].isActive == true && uiWindows.Count == 0) { if (i == 0) { createUIWindow(UIWindowCreationTypes.CharacterStatWindow, true, 0, party, datamanager); } else { createUIWindow(UIWindowCreationTypes.CharacterStatWindow, false, i, party, datamanager); } } } if (i == 0) { uiCharacterBubbles[i].HealthScale = party.returnHealthValuesForMark().Item3; uiCharacterBubbles[i].StaminaScale = party.returnStaminaValuesForMark().Item3; uiCharacterBubbles[i].StressScale = party.returnStressValuesForMark().Item3; } else if (uiCharacterBubbles[i].isActive == true) { uiCharacterBubbles[i].HealthScale = party.returnHealthValuesForPartyMember(i).Item3; uiCharacterBubbles[i].StaminaScale = party.returnStaminaValuesForPartyMember(i).Item3; uiCharacterBubbles[i].StressScale = party.returnStressValuesForPartyMember(i).Item3; } } }