public SkillMasteryGump(Mobile player, SkillMasteryPageType skillMasteryPageType, Item item) : base(10, 10) { m_Player = player as PlayerMobile; m_SkillMasteryPage = skillMasteryPageType; m_Item = item; if (m_Player == null) { return; } switch (skillMasteryPageType) { case SkillMasteryPageType.Overview: break; case SkillMasteryPageType.Orb: if (!(item is SkillMasteryOrb)) { return; } if (item == null) { return; } if (item.Deleted) { return; } m_SkillMasteryOrb = item as SkillMasteryOrb; break; case SkillMasteryPageType.Scroll: if (!(item is SkillMasteryScroll)) { return; } if (item == null) { return; } if (item.Deleted) { return; } m_SkillMasteryScroll = item as SkillMasteryScroll; break; } #region Images AddImage(5, 5, 103, 2499); AddImage(140, 5, 103, 2499); AddImage(266, 5, 103, 2499); AddImage(140, 92, 103, 2499); AddImage(5, 92, 103, 2499); AddImage(266, 92, 103, 2499); AddImage(140, 180, 103, 2499); AddImage(5, 180, 103, 2499); AddImage(266, 180, 103, 2499); AddImage(140, 264, 103, 2499); AddImage(5, 264, 103, 2499); AddImage(266, 264, 103, 2499); AddImage(400, 5, 103, 2499); AddImage(400, 92, 103, 2499); AddImage(400, 180, 103, 2499); AddImage(400, 265, 103, 2499); AddImage(400, 362, 103, 2499); AddImage(266, 361, 103, 2499); AddImage(140, 361, 103, 2499); AddImage(5, 361, 103, 2499); AddImage(100, 361, 5104, 2052); AddImage(19, 361, 5104, 2052); AddImage(164, 361, 5104, 2052); AddImage(253, 361, 5104, 2052); AddImage(312, 361, 5104, 2052); AddImage(398, 361, 5104, 2052); AddImage(442, 361, 5104, 2052); AddImage(273, 83, 2081, 2499); AddImage(271, 282, 2081, 2499); AddImage(272, 149, 2081, 2499); AddImage(272, 13, 2081, 2499); AddImage(272, 214, 2081, 2499); AddImage(15, 14, 2081, 2499); AddImage(15, 83, 2081, 2499); AddImage(14, 149, 2081, 2499); AddImage(14, 214, 2081, 2499); AddImage(14, 282, 2081, 2499); AddImageTiled(272, 10, 6, 341, 2701); AddItem(48, 390, 2942); AddItem(23, 376, 2943); AddItem(43, 381, 2507); AddItem(42, 397, 4030); AddItem(55, 376, 7716); AddItem(23, 368, 7717, 2652); AddItem(45, 387, 4031); AddImage(184, 12, 2446, 2401); AddLabel(232, 12, 2599, "Skill Mastery"); AddLabel(65, 41, 149, "Skill"); AddLabel(151, 41, 149, "Value"); AddLabel(199, 41, 149, "Cap"); AddLabel(324, 40, 149, "Skill"); AddLabel(410, 40, 149, "Value"); AddLabel(458, 40, 149, "Cap"); AddLabel(95, 379, 149, "Total Skills"); AddLabel(95, 405, 149, "Total Skill Cap"); #endregion List <SkillName> m_SkillList = new List <SkillName>(); foreach (SkillName skillName in SkillMasteryScroll.Skills) { m_SkillList.Add(skillName); } int leftStartY = 60; int rightStartY = 60; int spacingY = 20; bool canUseOrb = false; bool canUseScroll = false; if (m_Player.SkillsCap < PlayerMobile.MaxSkillCap) { canUseOrb = true; } for (int a = 0; a < m_SkillList.Count; a++) { int textHue = WhiteTextHue; SkillName skillName = m_SkillList[a]; string skillValueText = m_Player.Skills[skillName].Base.ToString(); string skillCapText = (m_Player.Skills[skillName].CapFixedPoint / 10).ToString(); int skillCap = m_Player.Skills[skillName].CapFixedPoint / 10; if ((m_Player.Skills[skillName].CapFixedPoint / 10) > 100) { textHue = 2599; } bool canIncrease = false; if (skillMasteryPageType == SkillMasteryPageType.Scroll) { if (skillName == m_SkillMasteryScroll.Skill) { if (m_Player.Skills[skillName].Cap < 120) { canUseScroll = true; canIncrease = true; textHue = 63; skillCapText = ((m_Player.Skills[skillName].CapFixedPoint / 10) + 1).ToString(); } } } //Left Side if (a < EntriesPerSide) { AddLabel(25, leftStartY, textHue, SkillCheck.GetSkillName(skillName)); AddLabel(Utility.CenteredTextOffset(165, skillValueText), leftStartY, textHue, skillValueText); AddLabel(Utility.CenteredTextOffset(210, skillCapText), leftStartY, textHue, skillCapText); if (canUseScroll && canIncrease) { AddImage(232, leftStartY + 1, 5600, 63); AddLabel(252, leftStartY, 63, "+1"); } leftStartY += spacingY; } //Right Side else { AddLabel(285, rightStartY, textHue, SkillCheck.GetSkillName(skillName)); AddLabel(Utility.CenteredTextOffset(426, skillValueText), rightStartY, textHue, skillValueText); AddLabel(Utility.CenteredTextOffset(470, skillCapText), rightStartY, textHue, skillCapText); if (canUseScroll && canIncrease) { AddImage(488, rightStartY + 1, 5600, 63); AddLabel(508, rightStartY, 63, "+1"); } rightStartY += spacingY; } } //Guide AddButton(19, 15, 2094, 2095, 1, GumpButtonType.Reply, 0); AddLabel(15, 1, 149, "Guide"); string actionText = ""; string resultText = ""; int totalSkills = (m_Player.SkillsTotal / 10); int totalSkillCap = (m_Player.SkillsCap / 10); int totalSkillsHue = WhiteTextHue; int totalSkillCapHue = WhiteTextHue; if (totalSkills > 700) { totalSkillsHue = 2599; } if (totalSkillCap > 700) { totalSkillCapHue = 2599; } switch (m_SkillMasteryPage) { case SkillMasteryPageType.Overview: AddLabel(199, 379, totalSkillsHue, totalSkills.ToString()); AddLabel(199, 405, totalSkillCapHue, totalSkillCap.ToString()); break; case SkillMasteryPageType.Orb: if (canUseOrb) { int newSkillCap = totalSkillCap + 1; AddLabel(199, 379, totalSkillsHue, totalSkills.ToString()); AddLabel(199, 405, 63, newSkillCap.ToString()); AddImage(232, 406, 5600, 63); AddLabel(252, 405, 63, "+1"); actionText = "Use Mastery Orb?"; resultText = "(Increase Total Skill Cap to " + newSkillCap + ")"; AddLabel(Utility.CenteredTextOffset(400, actionText), 364, 63, actionText); AddLabel(Utility.CenteredTextOffset(410, resultText), 382, 2599, resultText); AddItem(375, 415, 22336, 2966); //Orb AddButton(423, 411, 247, 248, 2, GumpButtonType.Reply, 0); } else { AddLabel(199, 379, totalSkillsHue, totalSkills.ToString()); AddLabel(199, 405, totalSkillCapHue, totalSkillCap.ToString()); actionText = "Mastery Orb Unusable"; resultText = "(Already at Maximum Total Skill Cap)"; AddLabel(Utility.CenteredTextOffset(400, actionText), 364, 149, actionText); AddLabel(Utility.CenteredTextOffset(410, resultText), 382, 149, resultText); } break; case SkillMasteryPageType.Scroll: if (canUseScroll) { AddLabel(199, 379, totalSkillsHue, totalSkills.ToString()); AddLabel(199, 405, totalSkillCapHue, totalSkillCap.ToString()); string skillName = SkillCheck.GetSkillName(m_SkillMasteryScroll.Skill); int newSkillCap = (m_Player.Skills[m_SkillMasteryScroll.Skill].CapFixedPoint / 10) + 1; actionText = "Use Mastery Scroll?"; resultText = "(Increase " + skillName + " Skill Cap to " + newSkillCap + ")"; AddLabel(Utility.CenteredTextOffset(400, actionText), 364, 63, actionText); AddLabel(Utility.CenteredTextOffset(410, resultText), 382, 2599, resultText); AddItem(372, 406, 5360, 2963); //Scroll AddButton(423, 411, 247, 248, 2, GumpButtonType.Reply, 0); } else { AddLabel(199, 379, totalSkillsHue, totalSkills.ToString()); AddLabel(199, 405, totalSkillCapHue, totalSkillCap.ToString()); actionText = "Mastery Scroll Unusable"; resultText = "(Already At Skill's Maximum Cap)"; AddLabel(Utility.CenteredTextOffset(400, actionText), 364, 149, actionText); AddLabel(Utility.CenteredTextOffset(410, resultText), 382, 149, resultText); } break; } }
//Invitations //TEST: NEED TO CREATE OBJECT TO SEND PUBLIC PROPERTIES BACK TO GUMP //TEST public GuildGump(Mobile from, int guildTabPage) : base(10, 10) { m_Player = from as PlayerMobile; m_GuildTabPage = guildTabPage; if (m_Player == null) { return; } Guilds.CheckCreateGuildGuildSettings(m_Player); m_GumpPageType = m_Player.m_GuildGumpSettings.m_GuildGumpPage; Closable = true; Disposable = true; Dragable = true; Resizable = false; int WhiteTextHue = 2655; int GreenTextHue = 63; int YellowTextHue = 2550; int GreyTextHue = 2401; #region Background AddImage(132, 193, 103, 2499); AddImage(131, 98, 103, 2499); AddImage(132, 288, 103, 2499); AddImage(528, 369, 103, 2499); AddImage(395, 369, 103, 2499); AddImage(265, 369, 103, 2499); AddImage(132, 369, 103, 2499); AddImage(528, 3, 103, 2499); AddImage(528, 98, 103, 2499); AddImage(528, 193, 103, 2499); AddImage(527, 288, 103, 2499); AddImage(132, 3, 103, 2499); AddImage(265, 3, 103, 2499); AddImage(395, 3, 103, 2499); AddImage(395, 98, 103, 2499); AddImage(395, 193, 103, 2499); AddImage(394, 288, 103, 2499); AddImage(265, 98, 103, 2499); AddImage(265, 193, 103, 2499); AddImage(264, 288, 103, 2499); AddImage(3, 194, 103, 2499); AddImage(3, 272, 103, 2499); AddImage(3, 369, 103, 2499); AddImage(2, 3, 103, 2499); AddImage(2, 97, 103, 2499); AddImage(10, 15, 3604, 2052); AddImage(10, 108, 3604, 2052); AddImage(10, 213, 3604, 2052); AddImage(10, 330, 3604, 2052); AddImage(147, 15, 3604, 2052); AddImage(147, 108, 3604, 2052); AddImage(147, 213, 3604, 2052); AddImage(147, 330, 3604, 2052); AddImage(286, 15, 3604, 2052); AddImage(286, 108, 3604, 2052); AddImage(286, 213, 3604, 2052); AddImage(286, 330, 3604, 2052); AddImage(411, 15, 3604, 2052); AddImage(411, 108, 3604, 2052); AddImage(411, 213, 3604, 2052); AddImage(411, 330, 3604, 2052); AddImage(531, 15, 3604, 2052); AddImage(531, 108, 3604, 2052); AddImage(531, 213, 3604, 2052); AddImage(531, 330, 3604, 2052); AddImage(184, 15, 3604, 2052); AddImage(184, 108, 3604, 2052); AddImage(184, 213, 3604, 2052); AddImage(184, 330, 3604, 2052); #endregion #region Sidebar List <GuildGumpPageType> m_GuildTabs = Guilds.GetGuildPageTypeList(m_Player); int GuildTabsPerPage = 4; int TotalGuildTabs = m_GuildTabs.Count; int TotalGuildTabPages = (int)(Math.Ceiling((double)TotalGuildTabs / (double)GuildTabsPerPage)); if (m_GuildTabPage >= TotalGuildTabPages) { m_GuildTabPage = TotalGuildTabPages - 1; } if (m_GuildTabPage < 0) { m_GuildTabPage = 0; } int guildTabStartIndex = m_GuildTabPage * GuildTabsPerPage; int guildTabEndIndex = (m_GuildTabPage * GuildTabsPerPage) + (GuildTabsPerPage - 1); if (guildTabEndIndex >= TotalGuildTabs) { guildTabEndIndex = TotalGuildTabs - 1; } int guildTabCount = guildTabEndIndex - guildTabStartIndex; int startX = 12; int startY = 50; int tabSpacing = 90; for (int a = 0; a < guildTabCount + 1; a++) { int guildTabIndex = guildTabStartIndex + a; int buttonIndex = 20 + guildTabIndex; GuildGumpPageType gumpPageType = m_GuildTabs[guildTabIndex]; #region Guild Tab Images int pressedId = 9721; int releaseId = 9724; if (gumpPageType == m_Player.m_GuildGumpSettings.m_GuildGumpPage) { pressedId = 9724; releaseId = 9721; } switch (gumpPageType) { case GuildGumpPageType.Messages: AddLabel(startX + 36, startY + 5, 2526, "Messages"); AddImage(startX + 60, startY + 32, 10550, 55); AddImage(startX + 88, startY + 32, 10552, 55); AddButton(startX + 74, startY + 46, pressedId, releaseId, buttonIndex, GumpButtonType.Reply, 0); AddItem(startX + -1, startY + 18, 7774); break; case GuildGumpPageType.Overview: AddLabel(startX + 34, startY + 5, 2401, "Overview"); AddImage(startX + 60, startY + 32, 10550, 2401); AddImage(startX + 88, startY + 32, 10552, 2401); AddButton(startX + 74, startY + 46, pressedId, releaseId, buttonIndex, GumpButtonType.Reply, 0); AddImage(startX + 13, startY + 35, 11016); break; case GuildGumpPageType.Invitations: AddItem(startX + 21, startY + 41, 2942); AddItem(startX + -3, startY + 25, 2943); AddLabel(startX + 12, startY + 5, 2564, "Guild Invitations"); AddImage(startX + 60, startY + 32, 10550, 2566); AddImage(startX + 88, startY + 32, 10552, 2566); AddButton(startX + 74, startY + 46, pressedId, releaseId, buttonIndex, GumpButtonType.Reply, 0); AddItem(startX + 9, startY + 31, 5359); AddItem(startX + 23, startY + 24, 4031); AddItem(startX + 23, startY + 50, 5357); AddItem(startX + 27, startY + 52, 5357); break; case GuildGumpPageType.Members: AddLabel(startX + 35, startY + 5, 64, "Members"); AddItem(startX + 69, startY + 46, 6877); AddImage(startX + 60, startY + 32, 10550, 2551); AddImage(startX + 88, startY + 32, 10552, 2551); AddButton(startX + 74, startY + 46, pressedId, releaseId, buttonIndex, GumpButtonType.Reply, 0); AddItem(startX + 20, startY + 29, 10905); AddItem(startX + 19, startY + 33, 3746); break; case GuildGumpPageType.Candidates: AddLabel(startX + 27, startY + 4, 2553, "Candidates"); AddImage(startX + 60, startY + 32, 10550, 2566); AddImage(startX + 88, startY + 32, 10552, 2566); AddButton(startX + 74, startY + 45, pressedId, releaseId, buttonIndex, GumpButtonType.Reply, 0); AddItem(startX + 28, startY + 45, 4647, 2563); AddItem(startX + 11, startY + 36, 4645, 2563); AddItem(startX + -5, startY + 42, 5018, 2563); break; case GuildGumpPageType.CreateGuild: AddImage(startX + 88, startY + 32, 10552, 2401); AddLabel(startX + 25, startY + 5, 2401, "Create Guild"); AddImage(startX + 60, startY + 32, 10550, 2401); AddButton(startX + 74, startY + 46, pressedId, releaseId, buttonIndex, GumpButtonType.Reply, 0); AddItem(startX + 15, startY + 29, 3796); break; case GuildGumpPageType.Faction: AddLabel(startX + 44, startY + 5, 1256, "Faction"); AddItem(startX + -15, startY + 20, 3936); AddItem(startX + 18, startY + 21, 18194); AddItem(startX + 10, startY + 13, 5129); AddItem(startX + 32, startY + 31, 18196); AddItem(startX + 9, startY + 30, 5050); AddItem(startX + 26, startY + 22, 5135, 2500); AddImage(startX + 60, startY + 32, 10550, 1256); AddImage(startX + 88, startY + 32, 10552, 1256); AddItem(startX + 26, startY + 47, 7034); AddButton(startX + 74, startY + 46, pressedId, releaseId, buttonIndex, GumpButtonType.Reply, 0); AddItem(startX + -4, startY + 33, 543); AddItem(startX + 14, startY + 45, 543); break; case GuildGumpPageType.Diplomacy: AddItem(startX + 21, startY + 42, 2942); AddItem(startX + -4, startY + 28, 2943); AddItem(startX + 11, startY + 20, 4031); AddItem(startX + 13, startY + 38, 4030); AddItem(startX + 20, startY + 59, 2507); AddItem(startX + 22, startY + 44, 2459); AddLabel(startX + 35, startY + 5, 2606, "Diplomacy"); AddImage(startX + 60, startY + 32, 10550, 2606); AddImage(startX + 88, startY + 32, 10552, 2606); AddButton(startX + 74, startY + 46, pressedId, releaseId, buttonIndex, GumpButtonType.Reply, 0); break; } #endregion startY += tabSpacing; } AddButton(3, 3, 2094, 2095, 1, GumpButtonType.Reply, 0); AddLabel(24, -2, 149, "Guide"); if (m_GuildTabPage > 0) { AddButton(65, 22, 9900, 9900, 2, GumpButtonType.Reply, 0); } if (m_GuildTabPage < TotalGuildTabPages - 1) { AddButton(65, 432, 9906, 9906, 3, GumpButtonType.Reply, 0); } #endregion //----- #region Create Guild if (m_Player.m_GuildGumpSettings.m_GuildGumpPage == GuildGumpPageType.CreateGuild) { #region Images AddImage(326, 116, 2328, 0); AddImage(159, 165, 9809, 0); AddItem(485, 115, 1928); AddItem(507, 136, 1928); AddItem(529, 158, 1928); AddItem(551, 180, 1928); AddItem(573, 202, 1928); AddItem(589, 219, 1928); AddItem(466, 134, 1928); AddItem(488, 155, 1928); AddItem(510, 177, 1928); AddItem(532, 199, 1928); AddItem(555, 220, 1928); AddItem(571, 237, 1928); AddItem(445, 154, 1928); AddItem(467, 175, 1928); AddItem(489, 197, 1928); AddItem(511, 219, 1928); AddItem(534, 240, 1928); AddItem(550, 257, 1928); AddItem(424, 176, 1928); AddItem(446, 197, 1928); AddItem(468, 219, 1928); AddItem(490, 241, 1928); AddItem(513, 262, 1928); AddItem(529, 279, 1928); AddItem(606, 235, 1930); AddItem(586, 255, 1930); AddItem(564, 276, 1930); AddItem(544, 295, 1930); AddItem(403, 198, 1929); AddItem(422, 217, 1929); AddItem(443, 238, 1929); AddItem(462, 256, 1929); AddItem(482, 275, 1929); AddItem(504, 295, 1929); AddItem(524, 315, 1934); AddLabel(212, 86, 149, "Guild Abbreviation"); AddLabel(212, 46, 149, "Guild Name"); AddImage(286, 44, 1141, 2400); AddImage(335, 85, 2444, 2401); AddItem(163, 43, 3796); AddLabel(212, 134, 149, "Guild Symbol"); AddItem(156, 123, 7776); AddLabel(369, 16, 149, "Create Guild"); AddLabel(319, 406, 63, "Confirm and Create Guild"); AddItem(160, 187, 3823); AddLabel(212, 185, 149, "Registration Fee"); AddItem(470, 146, 6918); AddItem(497, 267, 6914); AddItem(550, 202, 6916); AddItem(516, 291, 6920); AddItem(577, 289, 6915); AddItem(555, 214, 6917); AddItem(523, 344, 6918); AddItem(464, 279, 6913); AddItem(399, 229, 6916); AddItem(486, 158, 6916); AddItem(499, 161, 16645); AddItem(497, 193, 3823); AddItem(592, 232, 6913); AddItem(527, 207, 6918); AddItem(504, 113, 17074); AddItem(412, 170, 633, 2419); AddItem(585, 198, 635, 2419); AddItem(429, 142, 636, 2419); AddItem(604, 153, 16119); AddItem(563, 264, 634, 2419); AddItem(547, 274, 633, 2419); AddItem(592, 252, 6915); AddItem(471, 341, 3791); AddItem(463, 154, 3786); AddItem(378, 214, 3792); AddItem(609, 197, 3814); AddItem(562, 236, 3790); AddItem(442, 144, 3812); AddItem(243, 303, 3816); AddItem(265, 320, 3808); AddItem(276, 275, 3816); AddItem(298, 292, 3808); AddItem(243, 303, 3816); AddItem(265, 320, 3808); AddItem(308, 243, 3816); AddItem(331, 259, 3808); AddItem(297, 230, 3799); AddItem(206, 331, 3816); AddItem(228, 346, 3808); AddItem(199, 313, 4455); AddItem(287, 343, 2322); AddItem(312, 293, 2322); AddItem(208, 355, 2322); AddItem(351, 263, 7685, 2401); AddItem(330, 325, 7685, 2401); AddItem(252, 360, 7685, 2401); AddItem(379, 272, 7684, 2401); AddItem(475, 310, 7684, 2401); AddItem(231, 388, 7684, 2401); AddItem(385, 348, 7684, 2401); AddItem(447, 321, 7684, 2401); AddItem(421, 321, 7682, 2401); AddItem(243, 338, 7684, 1107); AddItem(292, 326, 7682, 2401); AddItem(469, 254, 7684, 2401); AddItem(331, 244, 7681, 2415); AddItem(232, 324, 7684, 2401); AddItem(269, 291, 7684, 2401); AddItem(224, 305, 7684, 2401); AddItem(331, 287, 7682, 2401); AddItem(365, 300, 7684, 2401); AddItem(418, 271, 7684, 2401); AddItem(601, 178, 7574); AddItem(496, 309, 7570); AddItem(240, 271, 4465); AddItem(272, 253, 4479); AddItem(505, 335, 4651); AddItem(441, 258, 6937); AddItem(397, 288, 6927); AddItem(311, 289, 6925); AddItem(348, 341, 6922); AddItem(214, 346, 6930); AddItem(226, 353, 6938); AddItem(276, 353, 3786); AddItem(391, 254, 6938); AddItem(472, 228, 3793); AddItem(295, 371, 7684, 2401); AddItem(196, 367, 7685, 2401); AddItem(368, 241, 7684, 2401); AddItem(368, 324, 7685, 2401); AddItem(492, 199, 2507, 2415); AddItem(507, 199, 3880); AddItem(493, 208, 4234, 2499); AddItem(436, 92, 3938); AddItem(476, 102, 18236); AddItem(470, 96, 5128, 2401); AddItem(457, 124, 7032); AddItem(549, 150, 18194); AddItem(541, 142, 5135, 2500); AddItem(530, 152, 5114); AddItem(532, 248, 18196); AddItem(531, 268, 7034); AddItem(522, 240, 5133, 2413); AddItem(513, 253, 5178); AddItem(442, 211, 18210, 2500); AddItem(445, 208, 5049, 2500); AddItem(437, 199, 5138, 2500); AddItem(426, 221, 7028, 2500); AddItem(550, 163, 7030); AddItem(345, 312, 6930); AddItem(261, 330, 6934); AddItem(400, 332, 6924); AddItem(424, 312, 6883); AddItem(310, 352, 6881); AddItem(405, 217, 7684, 2401); AddItem(341, 273, 3788); AddItem(441, 350, 7685, 2401); AddItem(467, 336, 7684, 2401); AddItem(518, 298, 17075); AddItem(538, 205, 3788); AddItem(334, 304, 3788); AddItem(369, 259, 3790); AddItem(263, 331, 6930); AddItem(298, 295, 6938); AddItem(276, 294, 6883); AddItem(480, 293, 7684, 2401); AddItem(405, 235, 7684, 2401); AddItem(453, 185, 7684, 2401); AddItem(304, 325, 3793); #endregion AddTextEntry(295, 46, 248, 20, WhiteTextHue, 7, "Guild Name", Guilds.GuildNameCharacterLimit); AddTextEntry(355, 86, 47, 20, WhiteTextHue, 8, "ABC", Guilds.GuildNameCharacterLimit); AddButton(300, 137, 2223, 2223, 4, GumpButtonType.Reply, 0); //Previous Symbol AddItem(341, 123, 4014); // Symbol AddButton(413, 137, 2224, 2224, 5, GumpButtonType.Reply, 0); //Next Symbol AddLabel(341, 185, GreenTextHue, Utility.CreateCurrencyString(Guilds.GuildRegistrationFee)); AddButton(366, 429, 247, 249, 6, GumpButtonType.Reply, 0); //Create Guild } #endregion #region Invitations else if (m_Player.m_GuildGumpSettings.m_GuildGumpPage == GuildGumpPageType.Invitations) { #region Images AddLabel(345, 15, 2563, "Guild Invitations"); AddLabel(188, 429, WhiteTextHue, "Previous Page"); AddLabel(552, 429, WhiteTextHue, "Next Page"); AddImage(299, 39, 2446, 2401); AddLabel(508, 39, 149, "Search for Guild Name"); AddLabel(360, 400, 149, "Page"); AddLabel(356, 429, 63, "Ignore Guild Invitations"); AddLabel(157, 400, 2599, "Total Invitations"); AddLabel(289, 70, 149, "Guild Name"); AddLabel(605, 70, 149, "Decline"); AddLabel(534, 70, 149, "Guild Info"); AddLabel(158, 70, 149, "Accept"); AddLabel(458, 70, 149, "Expires In"); #endregion AddButton(271, 40, 9909, 9909, 3, GumpButtonType.Reply, 0); //Search Left AddTextEntry(308, 40, 158, 20, WhiteTextHue, 10, "Guild Name", Guilds.GuildNameCharacterLimit); AddButton(483, 39, 9903, 9903, 4, GumpButtonType.Reply, 0); //Search Right AddButton(268, 73, 2117, 2118, 5, GumpButtonType.Reply, 0); //Guild Name Sort AddButton(438, 73, 5602, 5606, 6, GumpButtonType.Reply, 0); //Expiration Sort //List AddButton(165, 90, 9721, 9724, 0, GumpButtonType.Reply, 0); AddLabel(218, 97, WhiteTextHue, "Outlands Shipping Company (OSC)"); AddLabel(448, 95, WhiteTextHue, "24d 18h 20m"); AddButton(550, 95, 4011, 4013, 0, GumpButtonType.Reply, 0); AddButton(614, 90, 2472, 2473, 0, GumpButtonType.Reply, 0); //-- AddLabel(270, 400, WhiteTextHue, "1"); //Total Invitations AddLabel(397, 400, WhiteTextHue, "1/1"); //Page AddButton(154, 429, 4014, 4016, 7, GumpButtonType.Reply, 0); //Previous Page AddButton(620, 429, 4005, 4007, 8, GumpButtonType.Reply, 0); //Next Page AddButton(322, 426, 9721, 9724, 9, GumpButtonType.Reply, 0); //Ignore Guild Invites } #endregion #region Overview else if (m_Player.m_GuildGumpSettings.m_GuildGumpPage == GuildGumpPageType.Overview) { #region Images AddImage(285, 90, 2328, 0); AddItem(155, 384, 4647); AddItem(156, 191, 8900); AddItem(153, 150, 4810, 2563); AddLabel(197, 159, 149, "Guildmaster"); AddLabel(197, 61, 149, "Guild Abbreviation"); AddLabel(197, 25, 149, "Guild Name"); AddImage(271, 23, 1141, 2400); AddImage(320, 60, 2444, 2401); AddItem(151, 22, 3796); AddImage(278, 160, 2446, 2401); AddLabel(197, 109, 149, "Guild Symbol"); AddItem(144, 98, 7776); AddLabel(197, 203, 149, "Guildhouse"); AddImage(269, 202, 2446, 2401); AddLabel(515, 109, 149, "Faction"); AddBackground(158, 347, 493, 23, 5100); AddLabel(197, 324, 149, "Website"); AddLabel(197, 392, 149, "My Rank"); AddImage(256, 391, 2446, 2401); AddLabel(503, 392, 149, "Show Guild Title"); AddItem(454, 397, 3034, 2562); AddItem(458, 380, 2978); AddLabel(310, 429, 2115, "Resign from Guild"); AddItem(482, 80, 5402); AddLabel(299, 257, 2502, "Players"); AddLabel(382, 257, 2506, "Characters"); AddLabel(493, 257, 1256, "Wars"); AddLabel(553, 257, 2599, "Alliances"); AddLabel(197, 257, 149, "Guild Age"); AddItem(164, 250, 3103); AddItem(296, 281, 8454, 2500); AddItem(383, 281, 8454, 2515); AddItem(404, 281, 8455, 2515); AddItem(493, 292, 3914); AddItem(479, 293, 5049); AddItem(558, 295, 4030); AddItem(558, 287, 4031); #endregion Guild guild = m_Player.Guild; if (guild == null) { return; } AddLabel(Utility.CenteredTextOffset(405, guild.Name), 25, WhiteTextHue, guild.Name); AddLabel(Utility.CenteredTextOffset(354, guild.m_Abbreviation), 61, WhiteTextHue, guild.m_Abbreviation); //Get Guild Symbol Detail int guildIcon = guild.m_Icon; int guildIconHue = guild.m_IconHue; int guildIconOffsetX = 0; int guildIconOffsetY = 0; AddItem(300 + guildIconOffsetX, 97 + guildIconOffsetY, guildIcon, guildIconHue); //Guild Symbol //Faction AddItem(555, 58, 17099, 2603); //Flag AddItem(600, 91, 11009, 2603); //Shield AddLabel(586, 144, 2603, "Order"); string guildmasterName = ""; if (guild.m_Guildmaster != null) { guildmasterName = guild.m_Guildmaster.RawName; } AddLabel(Utility.CenteredTextOffset(365, guildmasterName), 161, WhiteTextHue, guildmasterName); string guildHouseOwner = ""; string guildHouseLocation = ""; bool guildHouseExists = false; if (guild.m_Guildhouse != null) { guildHouseExists = true; if (guild.m_Guildhouse.Owner != null) { guildHouseOwner = "Owned by " + guild.m_Guildhouse.Owner.RawName; } else { guildHouseOwner = "Unknown Owner"; } guildHouseLocation = "(Located at " + guild.m_Guildhouse.Location.X.ToString() + "," + guild.m_Guildhouse.Location.Y.ToString() + ")"; } else { guildHouseOwner = "-"; } AddLabel(Utility.CenteredTextOffset(358, guildHouseOwner), 203, WhiteTextHue, guildHouseOwner); if (guildHouseLocation != "") { AddLabel(282, 226, 2599, "(located at 2500, 2500)"); } if (guild.m_Guildhouse != null) { AddLabel(473, 203, 2550, "Show Location"); AddButton(453, 206, 2117, 2118, 4, GumpButtonType.Reply, 0); //Show Guildhouse Location } int guildAge = (int)(Math.Floor((DateTime.UtcNow - guild.m_CreationTime).TotalDays)); string guildAgeText = ""; if (guildAge > 1) { guildAgeText = guildAge.ToString() + " Days"; } else if (guildAge == 1) { guildAgeText = "1 Day"; } else { guildAgeText = "Brand New"; } int activePlayers = 25; int activeCharacters = 125; int wars = 1; int alliances = 1; AddLabel(196, 282, WhiteTextHue, guildAgeText); //Guild Age AddLabel(332, 296, WhiteTextHue, activePlayers.ToString()); //Players AddLabel(443, 297, WhiteTextHue, activeCharacters.ToString()); //Characters AddLabel(529, 297, WhiteTextHue, wars.ToString()); //Wars AddLabel(599, 297, WhiteTextHue, alliances.ToString()); //Alliances AddButton(165, 327, 30008, 30009, 5, GumpButtonType.Reply, 0); //Launch Website AddLabel(167, 348, WhiteTextHue, guild.m_Website); //Website string rankName = ""; int rankHue = WhiteTextHue; if (m_Player.m_GuildMemberEntry != null) { rankName = guild.GetRankName(m_Player.m_GuildMemberEntry.m_Rank); rankHue = guild.GetRankHue(m_Player.m_GuildMemberEntry.m_Rank); } AddLabel(Utility.CenteredTextOffset(347, rankName), 392, rankHue, rankName); //Guild Rank if (m_Player.m_GuildGumpSettings.m_ShowGuildTitle) { AddButton(611, 389, 9724, 9721, 6, GumpButtonType.Reply, 0); //Show Guild Title } else { AddButton(611, 389, 9721, 9724, 6, GumpButtonType.Reply, 0); //Show Guild Title } AddButton(425, 425, 2472, 2473, 7, GumpButtonType.Reply, 0); //Resign from Guild } #endregion #region Members else if (m_Player.m_GuildGumpSettings.m_GuildGumpPage == GuildGumpPageType.Members) { #region Images AddLabel(365, 15, 2563, "Members"); AddLabel(280, 70, 149, "Player Name"); AddLabel(407, 70, 149, "Guild Rank"); AddLabel(188, 429, WhiteTextHue, "Previous Page"); AddLabel(552, 429, WhiteTextHue, "Next Page"); AddLabel(373, 429, 63, "Invite Player to Guild"); AddLabel(170, 70, 149, "Last Online"); AddLabel(556, 70, 149, "Fealty"); AddLabel(604, 70, 149, "Dismiss"); AddLabel(503, 70, 149, "Manage"); AddImage(299, 39, 2446, 2401); AddLabel(508, 39, 149, "Search for Player"); AddLabel(360, 400, 149, "Page"); AddLabel(526, 400, 2550, "Total Members"); AddLabel(157, 400, 2599, "Online Members"); #endregion AddButton(271, 40, 9909, 9909, 4, GumpButtonType.Reply, 0); //Search Left AddTextEntry(308, 40, 158, 20, WhiteTextHue, 12, "Player Name", Guilds.GuildNameCharacterLimit); AddButton(483, 39, 9903, 9903, 5, GumpButtonType.Reply, 0); //Search Right AddButton(151, 73, 5602, 5606, 6, GumpButtonType.Reply, 0); //Sort Last Online AddButton(259, 73, 2117, 2118, 7, GumpButtonType.Reply, 0); //Sort Player Name AddButton(387, 73, 2117, 2118, 8, GumpButtonType.Reply, 0); //Sort Rank //List AddButton(163, 101, 2361, 2361, 0, GumpButtonType.Reply, 0); //Online Icon AddLabel(185, 97, 63, "Online"); AddLabel(272, 97, WhiteTextHue, "Merrill Calder"); AddLabel(401, 97, 2603, "Guildmaster"); AddButton(512, 95, 4011, 4013, 0, GumpButtonType.Reply, 0); //Manage Player AddButton(564, 92, 9721, 9724, 0, GumpButtonType.Reply, 0); //Declare Fealty AddButton(614, 92, 2472, 2473, 0, GumpButtonType.Reply, 0); //Dismiss // AddLabel(263, 400, WhiteTextHue, "8"); //Online Members AddLabel(397, 400, WhiteTextHue, "10/10"); //Page AddLabel(623, 400, WhiteTextHue, "50"); //Total Members AddButton(154, 429, 4014, 4016, 9, GumpButtonType.Reply, 0); //Previous Page AddButton(620, 429, 4005, 4007, 10, GumpButtonType.Reply, 0); //Next Page AddButton(337, 429, 4002, 4004, 11, GumpButtonType.Reply, 0); //Invite Player } #endregion #region Candidates else if (m_Player.m_GuildGumpSettings.m_GuildGumpPage == GuildGumpPageType.Candidates) { AddLabel(365, 15, 2563, "Candidates"); AddLabel(267, 70, 149, "Player Name"); AddLabel(188, 429, WhiteTextHue, "Previous Page"); AddLabel(552, 429, WhiteTextHue, "Next Page"); AddLabel(373, 429, 63, "Invite Player to Guild"); AddLabel(548, 70, 149, "Approve"); AddLabel(605, 70, 149, "Decline"); AddLabel(466, 70, 149, "Player Info"); AddLabel(174, 70, 149, "Accepted"); AddLabel(387, 70, 149, "Expires In"); AddImage(299, 39, 2446, 2401); AddLabel(508, 39, 149, "Search for Player"); AddLabel(360, 400, 149, "Page"); AddLabel(513, 400, 2550, "Total Candidates"); AddLabel(157, 400, 2599, "Total Accepted"); AddButton(271, 40, 9909, 9909, 4, GumpButtonType.Reply, 0); //Search Left AddTextEntry(308, 40, 158, 20, WhiteTextHue, 12, "Player Name", Guilds.GuildNameCharacterLimit); AddButton(483, 39, 9903, 9903, 5, GumpButtonType.Reply, 0); //Search Right AddButton(154, 73, 2117, 2118, 6, GumpButtonType.Reply, 0); //Sort Accepted AddButton(246, 73, 2117, 2118, 7, GumpButtonType.Reply, 0); //Sort Player Name AddButton(367, 73, 5602, 5606, 8, GumpButtonType.Reply, 0); //Sort Expiration //List AddButton(185, 90, 9723, 2151, 0, GumpButtonType.Reply, 0); //Accepted AddLabel(260, 95, WhiteTextHue, "Merrill Calder"); AddLabel(377, 95, WhiteTextHue, "24d 18h 20m"); AddButton(485, 95, 4011, 4013, 0, GumpButtonType.Reply, 0); //Player Info AddButton(559, 90, 2151, 2154, 0, GumpButtonType.Reply, 0); //Approve AddButton(614, 90, 2472, 2473, 0, GumpButtonType.Reply, 0); //Decline // AddLabel(262, 400, WhiteTextHue, "1"); //Total Accepted AddLabel(397, 400, WhiteTextHue, "1/1"); //Page AddLabel(625, 400, WhiteTextHue, "1"); //Total Candidates AddButton(154, 429, 4014, 4016, 9, GumpButtonType.Reply, 0); AddButton(620, 429, 4005, 4007, 10, GumpButtonType.Reply, 0); AddButton(337, 429, 4002, 4004, 11, GumpButtonType.Reply, 0); //Invite Player } #endregion #region Diplomacy else if (m_Player.m_GuildGumpSettings.m_GuildGumpPage == GuildGumpPageType.Diplomacy) { #region Images AddLabel(365, 15, 2606, "Diplomacy"); AddLabel(244, 70, 149, "Guild Name"); AddLabel(422, 70, 149, "Relationship"); AddLabel(188, 429, WhiteTextHue, "Previous Page"); AddLabel(552, 429, WhiteTextHue, "Next Page"); AddLabel(373, 429, 63, "Add New Guild"); AddLabel(609, 70, 149, "Manage"); AddImage(299, 39, 2446, 2401); AddLabel(508, 39, 149, "Search for Guild Name"); AddLabel(360, 400, 149, "Page"); AddLabel(546, 70, 149, "Players"); #endregion AddButton(271, 40, 9909, 9909, 4, GumpButtonType.Reply, 0); //Search Left AddTextEntry(308, 40, 158, 20, WhiteTextHue, 14, "Guild Name", Guilds.GuildNameCharacterLimit); AddButton(483, 39, 9903, 9903, 5, GumpButtonType.Reply, 0); //Search Right AddButton(223, 73, 2117, 2118, 6, GumpButtonType.Reply, 0); //Sort Guild Name AddButton(400, 73, 5602, 5606, 7, GumpButtonType.Reply, 0); //Sort Relationship AddButton(526, 73, 2117, 2118, 8, GumpButtonType.Reply, 0); //Sort Players //List AddLabel(192, 95, WhiteTextHue, "God's Wrath Clan (GoD)"); AddLabel(398, 95, 2599, "Alliance Requested"); AddLabel(561, 95, WhiteTextHue, "5"); //Players AddButton(617, 95, 4011, 4013, 0, GumpButtonType.Reply, 0); //Manage Relationship //-- AddButton(295, 379, 2223, 2223, 9, GumpButtonType.Reply, 0); //Previous Relationship Filter AddLabel(326, 375, 2603, "Show All Relationships"); AddButton(473, 379, 2224, 2224, 10, GumpButtonType.Reply, 0); //Next Relationship Filter AddLabel(158, 400, 1256, "War Requests"); AddLabel(251, 400, WhiteTextHue, "10"); AddLabel(397, 400, WhiteTextHue, "1/1"); //Page AddLabel(533, 400, 2599, "Ally Requests"); AddLabel(625, 400, WhiteTextHue, "10"); AddButton(154, 429, 4014, 4016, 11, GumpButtonType.Reply, 0); //Previous Page AddButton(620, 429, 4005, 4007, 12, GumpButtonType.Reply, 0); //Next Page AddButton(337, 429, 4002, 4004, 13, GumpButtonType.Reply, 0); //Add New Guild } #endregion #region Faction else if (m_Player.m_GuildGumpSettings.m_GuildGumpPage == GuildGumpPageType.Faction) { } #endregion #region Messages else if (m_Player.m_GuildGumpSettings.m_GuildGumpPage == GuildGumpPageType.Messages) { } #endregion }
public AspectGearGump(Mobile player, AspectMould aspectMould, Item item, AspectEnum selectedAspect) : base(10, 10) { m_Player = player as PlayerMobile; m_AspectMould = aspectMould; m_Item = item; m_SelectedAspect = selectedAspect; if (m_Player == null) { return; } if (m_Player.Deleted || !m_Player.Alive) { return; } if (m_AspectMould == null) { return; } if (m_AspectMould.Deleted) { return; } if (m_Item == null) { return; } if (m_Item.Deleted) { return; } if (!m_AspectMould.IsChildOf(m_Player.Backpack)) { m_Player.SendMessage("The mould you wish to use must be in your backpack in order to use it."); return; } Item targetItem = m_Item as Item; if (targetItem == null) { m_Player.SendMessage("You cannot improve that."); return; } if (!(targetItem is BaseWeapon || targetItem is BaseArmor)) { m_Player.SendMessage("You may only improve weapons and armor."); return; } if (targetItem is BaseShield) { m_Player.SendMessage("You may only improve weapons and armor."); return; } if (!(targetItem.IsChildOf(m_Player.Backpack) || targetItem.RootParent == m_Player)) { m_Player.SendMessage("The item you wish to improve must be equipped or in your backpack."); return; } Type itemType = targetItem.GetType(); CraftItem craftItem = null; switch (m_AspectMould.MouldType) { case AspectMould.MouldSkillType.Blacksmithy: craftItem = DefBlacksmithy.CraftSystem.CraftItems.SearchFor(itemType); if (craftItem == null) { m_Player.SendMessage("You may only improve items craftable through blacksmithing with this mould."); return; } break; case AspectMould.MouldSkillType.Carpentry: craftItem = DefCarpentry.CraftSystem.CraftItems.SearchFor(itemType); if (craftItem == null) { m_Player.SendMessage("You may only improve items craftable through carpentry with this mould."); return; } break; case AspectMould.MouldSkillType.Tailoring: craftItem = DefTailoring.CraftSystem.CraftItems.SearchFor(itemType); if (craftItem == null) { m_Player.SendMessage("You may only improve items craftable through tailoring with this mould."); return; } break; } if (targetItem.DecorativeEquipment) { m_Player.SendMessage("Decorative equipment may not be improved."); return; } if (targetItem.LootType == LootType.Newbied) { m_Player.SendMessage("Newbied equipment may not be improved."); return; } if (targetItem.LootType == LootType.Blessed && targetItem.Aspect == AspectEnum.None) { m_Player.SendMessage("Blessed equipment may not be improved."); return; } BaseWeapon weapon = targetItem as BaseWeapon; BaseArmor armor = targetItem as BaseArmor; if (weapon != null) { if (weapon.TrainingWeapon) { m_Player.SendMessage("Training weapons may not be improved."); return; } if (weapon.DurabilityLevel != WeaponDurabilityLevel.Regular || weapon.AccuracyLevel != WeaponAccuracyLevel.Regular || weapon.DamageLevel != WeaponDamageLevel.Regular) { m_Player.SendMessage("Magical weapons may not be improved."); return; } } if (armor != null) { if (armor.DurabilityLevel != ArmorDurabilityLevel.Regular || armor.ProtectionLevel != ArmorProtectionLevel.Regular) { m_Player.SendMessage("Magical weapons may not be improved."); return; } } //Aspect Item if (targetItem.Aspect != AspectEnum.None && targetItem.TierLevel >= 1 && targetItem.TierLevel <= 10) { if (targetItem.TierLevel == 10) { m_Player.SendMessage("That item is already at it's maximum tier level."); return; } } else if (targetItem.Aspect == AspectEnum.None) { if (!(targetItem.Quality == Quality.Exceptional && targetItem.DisplayCrafter)) { m_Player.SendMessage("Only mastermarked items may be improved."); return; } } #region Images AddImage(256, 251, 103); AddImage(127, 251, 103); AddImage(4, 251, 103); AddImage(4, 329, 103); AddImage(129, 329, 103); AddImage(69, 97, 103); AddImage(4, 97, 103); AddImage(128, 2, 103); AddImage(4, 2, 103); AddImage(256, 97, 103); AddImage(256, 2, 103); AddImage(127, 183, 103); AddImage(4, 183, 103); AddImage(256, 329, 103); AddImage(256, 183, 103); AddImage(128, 380, 103); AddImage(4, 380, 103); AddImage(256, 380, 103); AddImage(16, 15, 3604, 2052); AddImage(133, 15, 3604, 2052); AddImage(260, 15, 3604, 2052); AddImage(16, 137, 3604, 2052); AddImage(133, 135, 3604, 2052); AddImage(260, 137, 3604, 2052); AddImage(16, 203, 3604, 2052); AddImage(133, 203, 3604, 2052); AddImage(260, 203, 3604, 2052); AddImage(17, 342, 3604, 2052); AddImage(134, 342, 3604, 2052); AddImage(260, 342, 3604, 2052); #endregion int WhiteTextHue = 2499; int DetailTextHue = 2603; //Guide AddButton(18, 16, 2094, 2095, 1, GumpButtonType.Reply, 0); AddLabel(16, 3, 149, "Guide"); if (targetItem.Aspect != AspectEnum.None && targetItem.TierLevel > 0) { m_SelectedAspect = targetItem.Aspect; } int newTier = targetItem.TierLevel + 1; string requiredMouldName = ""; #region Mould Names switch (m_AspectMould.MouldType) { case AspectMould.MouldSkillType.Blacksmithy: switch (newTier) { case 1: requiredMouldName = "Basic Smithing Mould"; break; case 2: requiredMouldName = "Basic Smithing Mould"; break; case 3: requiredMouldName = "Advanced Smithing Mould"; break; case 4: requiredMouldName = "Advanced Smithing Mould"; break; case 5: requiredMouldName = "Expert Smithing Mould"; break; case 6: requiredMouldName = "Expert Smithing Mould"; break; case 7: requiredMouldName = "Master Smithing Mould"; break; case 8: requiredMouldName = "Master Smithing Mould"; break; case 9: requiredMouldName = "Legendary Smithing Mould"; break; case 10: requiredMouldName = "Legendary Smithing Mould"; break; } break; case AspectMould.MouldSkillType.Carpentry: switch (newTier) { case 1: requiredMouldName = "Basic Carpentry Mould"; break; case 2: requiredMouldName = "Basic Carpentry Mould"; break; case 3: requiredMouldName = "Advanced Carpentry Mould"; break; case 4: requiredMouldName = "Advanced Carpentry Mould"; break; case 5: requiredMouldName = "Expert Carpentry Mould"; break; case 6: requiredMouldName = "Expert Carpentry Mould"; break; case 7: requiredMouldName = "Master Carpentry Mould"; break; case 8: requiredMouldName = "Master Carpentry Mould"; break; case 9: requiredMouldName = "Legendary Carpentry Mould"; break; case 10: requiredMouldName = "Legendary Carpentry Mould"; break; } break; case AspectMould.MouldSkillType.Tailoring: switch (newTier) { case 1: requiredMouldName = "Basic Tailoring Mould"; break; case 2: requiredMouldName = "Basic Tailoring Mould"; break; case 3: requiredMouldName = "Advanced Tailoring Mould"; break; case 4: requiredMouldName = "Advanced Tailoring Mould"; break; case 5: requiredMouldName = "Expert Tailoring Mould"; break; case 6: requiredMouldName = "Expert Tailoring Mould"; break; case 7: requiredMouldName = "Master Tailoring Mould"; break; case 8: requiredMouldName = "Master Tailoring Mould"; break; case 9: requiredMouldName = "Legendary Tailoring Mould"; break; case 10: requiredMouldName = "Legendary Tailoring Mould"; break; } break; } #endregion string itemName = ""; string itemAspectName = ""; string aspectName = AspectGear.GetAspectName(m_SelectedAspect); int aspectHue = AspectGear.GetAspectHue(m_SelectedAspect); int aspectTextHue = AspectGear.GetAspectTextHue(m_SelectedAspect); int itemOffsetX = 0; int itemOffsetY = 0; int itemIconItemdId = 0; if (weapon != null) { AspectWeaponDetail aspectWeaponDetail = AspectGear.GetAspectWeaponDetail(m_SelectedAspect); if (weapon.TierLevel == 0) { AddLabel(129, 25, 149, "Create Aspect Weapon"); } else { AddLabel(129, 25, 149, "Upgrade Aspect Tier"); } itemName = weapon.Name; if (itemName == null) { itemName = ""; } itemName = Utility.Capitalize(itemName); itemAspectName = aspectName + " Tier " + newTier.ToString(); itemOffsetX = weapon.IconOffsetX; itemOffsetY = weapon.IconOffsetY; itemIconItemdId = weapon.IconItemId; AddLabel(Utility.CenteredTextOffset(195, itemName), 49, aspectTextHue, itemName); AddLabel(Utility.CenteredTextOffset(195, itemAspectName), 74, aspectTextHue, itemAspectName); AddItem(120 + itemOffsetX, 75 + itemOffsetY, itemIconItemdId, aspectHue); //Image int newDurability = AspectGear.BaselineDurability + (AspectGear.IncreasedDurabilityPerTier * newTier); int adjustedBlessedCharges = AspectGear.ArcaneMaxCharges; double accuracy = 100 * (AspectGear.BaseAccuracy + (AspectGear.AccuracyPerTier * (double)newTier)); double tactics = AspectGear.BaseTactics + (AspectGear.TacticsPerTier * (double)newTier); double effectChance = 11111; // AspectGear.BaseEffectChance + (AspectGear.BaseEffectChancePerTier * (double)newTier); effectChance *= AspectGear.GetEffectWeaponSpeedScalar(weapon); AddLabel(137, 168, WhiteTextHue, "Durability:"); AddLabel(214, 168, aspectTextHue, newDurability.ToString() + "/" + newDurability.ToString()); AddLabel(142, 188, WhiteTextHue, "Accuracy:"); AddLabel(214, 188, aspectTextHue, "+" + accuracy.ToString() + "%"); AddLabel(153, 208, WhiteTextHue, "Tactics:"); AddLabel(214, 208, aspectTextHue, "+" + tactics.ToString()); AddLabel(110, 228, WhiteTextHue, "Effect Chance:"); AddLabel(214, 228, aspectTextHue, Utility.CreateDecimalPercentageString(effectChance, 1)); AddLabel(109, 248, WhiteTextHue, "(scaled for weapon speed)"); AddLabel(149, 273, WhiteTextHue, "Special Effect"); AddLabel(169, 293, aspectTextHue, aspectWeaponDetail.m_EffectDisplayName); AddButton(149, 297, 1209, 1210, 2, GumpButtonType.Reply, 0); } if (armor != null) { if (armor.TierLevel == 0) { AddLabel(135, 25, 149, "Create Aspect Armor"); } else { AddLabel(135, 25, 149, "Upgrade Aspect Tier"); } itemName = armor.Name; if (itemName == null) { itemName = ""; } itemName = Utility.Capitalize(itemName); itemAspectName = aspectName + " Tier " + (targetItem.TierLevel + 1).ToString(); itemOffsetX = armor.IconOffsetX; itemOffsetY = armor.IconOffsetY; itemIconItemdId = armor.IconItemId; AddLabel(Utility.CenteredTextOffset(200, itemName), 49, aspectTextHue, itemName); AddLabel(Utility.CenteredTextOffset(200, itemAspectName), 74, aspectTextHue, itemAspectName); AddItem(120 + itemOffsetX, 75 + itemOffsetY, itemIconItemdId, aspectHue); //Image //TEST: FINISH!!! //Armor Details AddLabel(39, 165, WhiteTextHue, "Total Armor:"); AddLabel(126, 165, DetailTextHue, "20"); AddLabel(60, 185, WhiteTextHue, "Dex Loss:"); AddLabel(126, 185, DetailTextHue, "-5"); AddLabel(47, 205, WhiteTextHue, "Meditation:"); AddLabel(126, 205, DetailTextHue, "0%"); //Effects Loop int startY = 165; int spacingY = 40; for (int a = 0; a < 4; a++) { string effectName = "Effect"; string effectPercent = "25%"; AddLabel(Utility.CenteredTextOffset(260, effectName), startY, WhiteTextHue, effectName); AddLabel(Utility.CenteredTextOffset(260, effectPercent), startY + 20, DetailTextHue, effectPercent); startY += spacingY; } } //Change Aspect AddLabel(73, 347, 149, "Aspect"); AddLabel(Utility.CenteredTextOffset(94, aspectName), 376, aspectTextHue, aspectName); if (m_Item.TierLevel == 0) { AddButton(25, 376, 9909, 9909, 3, GumpButtonType.Reply, 0); //Left AddButton(139, 376, 9903, 9903, 4, GumpButtonType.Reply, 0); //Right } //Create or Upgrade AddButton(38, 432, 2152, 2154, 5, GumpButtonType.Reply, 0); if (targetItem.TierLevel == 0) { AddLabel(76, 436, 63, "Create"); } else { AddLabel(76, 436, 63, "Upgrade"); } //Materials Required int distillationNeeded = 0; int coresNeeded = 0; if (targetItem.TierLevel == 0) { if (weapon != null) { distillationNeeded = AspectGear.DistillationNeededForWeaponCreation; coresNeeded = AspectGear.CoresNeededForWeaponCreation; } if (armor != null) { distillationNeeded = AspectGear.DistillationNeededForArmorCreation; coresNeeded = AspectGear.CoresNeededForArmorCreation; } } else { if (weapon != null) { distillationNeeded = AspectGear.DistillationNeededForWeaponUpgrade; coresNeeded = AspectGear.CoresNeededForWeaponUpgrade; } if (armor != null) { distillationNeeded = AspectGear.DistillationNeededForArmorUpgrade; coresNeeded = AspectGear.CoresNeededForArmorUpgrade; } } AddLabel(228, 347, 149, "Required Materials"); AddItem(174, 368, 4323); AddLabel(226, 373, WhiteTextHue, requiredMouldName); AddItem(181, 403, 17686, aspectHue); AddLabel(225, 406, aspectTextHue, distillationNeeded.ToString() + " " + aspectName + " Distillation"); AddItem(184, 439, 3985, aspectHue); AddLabel(225, 436, aspectTextHue, coresNeeded.ToString() + " " + aspectName + " Cores"); }
public ShipUpgradeGump(PlayerMobile player, ShipUpgradeGumpObject shipUpgradeGumpObject) : base(325, 150) { m_Player = player; m_ShipUpgradeGumpObject = shipUpgradeGumpObject; if (m_Player == null) { return; } if (m_Player.Deleted) { return; } if (m_ShipUpgradeGumpObject == null) { return; } BaseShip ship = m_ShipUpgradeGumpObject.m_Ship; BaseShipDeed shipDeed = m_ShipUpgradeGumpObject.m_ShipDeed; ShipStatsProfile shipStatsProfile = ShipUniqueness.GetShipStatsProfile(shipDeed, ship, true, true); int startX = 0; int startY = 0; #region Background AddImage(275, 9, 103); AddImage(275, 106, 103); AddImage(275, 149, 103); AddImage(145, 9, 103); AddImage(145, 106, 103); AddImage(146, 149, 103); AddImage(10, 148, 103); AddImage(10, 9, 103); AddImage(10, 106, 103); AddImage(20, 108, 3604, 2052); AddImage(145, 109, 3604, 2052); AddImage(20, 19, 3604, 2052); AddImage(140, 19, 3604, 2052); AddImage(236, 18, 3604, 2052); AddImage(280, 18, 3604, 2052); AddImage(236, 109, 3604, 2052); AddImage(280, 109, 3604, 2052); AddImage(33, 68, 2328); AddItem(82, 173, 2539); #endregion ShipUpgradeDetail upgradeDetail = null; bool replaceExistingUpgrade = false; #region Upgrade Type switch (m_ShipUpgradeGumpObject.m_UpgradeType) { case ShipUpgrades.UpgradeType.Theme: if (ship != null) { if (ship.m_ThemeUpgrade != ShipUpgrades.ThemeType.None) { replaceExistingUpgrade = true; } } if (shipDeed != null) { if (shipDeed.m_ThemeUpgrade != ShipUpgrades.ThemeType.None) { replaceExistingUpgrade = true; } } upgradeDetail = ShipUpgrades.GetThemeDetail(m_ShipUpgradeGumpObject.m_Theme); break; case ShipUpgrades.UpgradeType.Paint: if (ship != null) { if (ship.m_PaintUpgrade != ShipUpgrades.PaintType.None) { replaceExistingUpgrade = true; } } if (shipDeed != null) { if (shipDeed.m_PaintUpgrade != ShipUpgrades.PaintType.None) { replaceExistingUpgrade = true; } } upgradeDetail = ShipUpgrades.GetPaintDetail(m_ShipUpgradeGumpObject.m_Paint); break; case ShipUpgrades.UpgradeType.CannonMetal: if (ship != null) { if (ship.m_CannonMetalUpgrade != ShipUpgrades.CannonMetalType.None) { replaceExistingUpgrade = true; } } if (shipDeed != null) { if (shipDeed.m_CannonMetalUpgrade != ShipUpgrades.CannonMetalType.None) { replaceExistingUpgrade = true; } } upgradeDetail = ShipUpgrades.GetCannonMetalDetail(m_ShipUpgradeGumpObject.m_CannonMetal); break; case ShipUpgrades.UpgradeType.Outfitting: if (ship != null) { if (ship.m_OutfittingUpgrade != ShipUpgrades.OutfittingType.None) { replaceExistingUpgrade = true; } } if (shipDeed != null) { if (shipDeed.m_OutfittingUpgrade != ShipUpgrades.OutfittingType.None) { replaceExistingUpgrade = true; } } upgradeDetail = ShipUpgrades.GetOutfittingDetail(m_ShipUpgradeGumpObject.m_Outfitting); break; case ShipUpgrades.UpgradeType.Banner: if (ship != null) { if (ship.m_BannerUpgrade != ShipUpgrades.BannerType.None) { replaceExistingUpgrade = true; } } if (shipDeed != null) { if (shipDeed.m_BannerUpgrade != ShipUpgrades.BannerType.None) { replaceExistingUpgrade = true; } } upgradeDetail = ShipUpgrades.GetBannerDetail(m_ShipUpgradeGumpObject.m_Banner); break; case ShipUpgrades.UpgradeType.Charm: if (ship != null) { if (ship.m_CharmUpgrade != ShipUpgrades.CharmType.None) { replaceExistingUpgrade = true; } } if (shipDeed != null) { if (shipDeed.m_CharmUpgrade != ShipUpgrades.CharmType.None) { replaceExistingUpgrade = true; } } upgradeDetail = ShipUpgrades.GetCharmDetail(m_ShipUpgradeGumpObject.m_Charm); break; case ShipUpgrades.UpgradeType.MinorAbility: if (ship != null) { if (ship.m_MinorAbilityUpgrade != ShipUpgrades.MinorAbilityType.None) { replaceExistingUpgrade = true; } } if (shipDeed != null) { if (shipDeed.m_MinorAbilityUpgrade != ShipUpgrades.MinorAbilityType.None) { replaceExistingUpgrade = true; } } upgradeDetail = ShipUpgrades.GetMinorAbilityDetail(m_ShipUpgradeGumpObject.m_MinorAbility); break; case ShipUpgrades.UpgradeType.MajorAbility: if (ship != null) { if (ship.m_MajorAbilityUpgrade != ShipUpgrades.MajorAbilityType.None) { replaceExistingUpgrade = true; } } if (shipDeed != null) { if (shipDeed.m_MajorAbilityUpgrade != ShipUpgrades.MajorAbilityType.None) { replaceExistingUpgrade = true; } } upgradeDetail = ShipUpgrades.GetMajorAbilityDetail(m_ShipUpgradeGumpObject.m_MajorAbility); break; case ShipUpgrades.UpgradeType.EpicAbility: if (ship != null) { if (ship.m_EpicAbilityUpgrade != ShipUpgrades.EpicAbilityType.None) { replaceExistingUpgrade = true; } } if (shipDeed != null) { if (shipDeed.m_EpicAbilityUpgrade != ShipUpgrades.EpicAbilityType.None) { replaceExistingUpgrade = true; } } upgradeDetail = ShipUpgrades.GetEpicAbilityDetail(m_ShipUpgradeGumpObject.m_EpicAbility); break; } #endregion if (upgradeDetail == null) { return; } int doubloonBaseCost = ShipUniqueness.GetShipUpgradeBaseDoubloonCost(upgradeDetail.m_UpgradeType); AddLabel(143, 20, 149, "Ship Outfitting Upgrade"); AddLabel(Utility.CenteredTextOffset(210, upgradeDetail.m_UpgradeName), 40, WhiteTextHue, upgradeDetail.m_UpgradeName); AddLabel(26, 170, 149, "Base Cost:"); AddLabel(114, 170, WhiteTextHue, doubloonBaseCost.ToString()); double doubloonMultiplier = shipStatsProfile.UpgradeDoubloonMultiplier; if (m_ShipUpgradeGumpObject.m_UpgradeDisplayMode == UpgradeDisplayMode.DeedAttemptInstall || m_ShipUpgradeGumpObject.m_UpgradeDisplayMode == UpgradeDisplayMode.InstalledOnShip) { if (replaceExistingUpgrade && m_ShipUpgradeGumpObject.m_UpgradeDisplayMode == UpgradeDisplayMode.DeedAttemptInstall) { AddLabel(26, 190, 149, "Will Replace Existing Upgrade"); AddLabel(213, 190, 2550, "(at no cost)"); } else { AddLabel(26, 190, 149, "Ship Type Multiplier:"); AddLabel(151, 190, WhiteTextHue, Utility.CreateDecimalString(doubloonMultiplier, 1) + "x"); } int doubloonAdjustedCost = (int)(Math.Round((double)doubloonBaseCost * (double)doubloonMultiplier)); if (replaceExistingUpgrade && m_ShipUpgradeGumpObject.m_UpgradeDisplayMode == UpgradeDisplayMode.DeedAttemptInstall) { doubloonAdjustedCost = 0; } AddLabel(26, 210, 149, "Adjusted Cost:"); AddItem(112, 213, 2539); AddLabel(143, 210, 63, doubloonAdjustedCost.ToString()); } startY = 65; int rowSpacing = 20; for (int a = 0; a < upgradeDetail.m_SpecialEffects.Count; a++) { KeyValuePair <string, ShipUpgradeDetail.UpgradeEffectType> descriptionLine = upgradeDetail.m_SpecialEffects[a]; AddLabel(125, startY, upgradeDetail.GetHue(descriptionLine.Value), descriptionLine.Key); startY += rowSpacing; } int offsetX = -32; int offsetY = -22; AddGumpCollection(GumpCollections.GetGumpCollection(upgradeDetail.GumpCollectionId, -1), offsetX + 33, offsetY + 68); //Guide AddButton(6, 7, 2094, 2095, 0, GumpButtonType.Reply, 0); AddLabel(1, -2, 149, "Guide"); switch (m_ShipUpgradeGumpObject.m_UpgradeDisplayMode) { case UpgradeDisplayMode.DeedUse: AddLabel(250, 209, 63, "Select Target Ship"); AddButton(372, 206, 2151, 2151, 2, GumpButtonType.Reply, 0); break; case UpgradeDisplayMode.DeedAttemptInstall: AddLabel(211, 209, 63, "Confirm Ship Installation"); AddButton(372, 206, 2151, 2151, 2, GumpButtonType.Reply, 0); break; case UpgradeDisplayMode.InstalledOnShip: break; } }
public StableGump(Mobile vendor, PlayerMobile player, int page) : base(10, 10) { if (vendor == null) { return; } if (player == null) { return; } m_Vendor = vendor; m_Player = player; m_Page = page; Closable = true; Disposable = true; Dragable = true; Resizable = false; #region Images AddPage(0); AddImage(3, 369, 103); AddImage(2, 262, 103); AddImage(2, 3, 103); AddImage(131, 3, 103); AddImage(2, 97, 103); AddImage(134, 97, 103); AddImage(264, 288, 103); AddImage(133, 368, 103); AddImage(265, 3, 103); AddImage(265, 98, 103); AddImage(265, 193, 103); AddImage(2, 194, 103); AddImage(265, 368, 103); AddImage(394, 288, 103); AddImage(395, 3, 103); AddImage(395, 98, 103); AddImage(395, 193, 103); AddImage(395, 368, 103); AddImage(527, 288, 103); AddImage(528, 3, 103); AddImage(528, 98, 103); AddImage(528, 193, 103); AddImage(528, 368, 103); AddBackground(11, 106, 647, 352, 3000); AddBackground(11, 14, 647, 84, 3000); AddItem(133, 10, 3892); AddItem(142, 43, 3892); AddItem(142, 43, 3892); AddItem(113, 49, 3892); AddItem(101, 15, 3892); AddItem(71, 47, 3892); AddItem(71, 47, 3892); AddItem(96, 29, 3892); AddItem(177, 60, 3899); AddItem(114, 12, 3896); AddItem(177, 19, 3894); AddItem(120, 15, 3898); AddItem(100, 84, 3899); AddItem(77, 32, 3894); AddItem(139, 28, 5368); AddItem(580, 30, 2604); AddItem(586, 29, 4030); AddItem(599, 36, 4031); AddItem(479, 48, 2602); AddItem(550, 15, 2651); AddItem(534, 42, 2650); AddItem(537, 35, 2707, 2118); AddItem(496, 17, 2868); AddItem(499, 21, 2479); AddItem(485, 24, 2542); AddItem(493, 28, 2575); #endregion int usedStableSlots = Stables.GetUsedStableSlots(m_Player); int maxStableSlots = Stables.GetMaxStableSlots(m_Player); int totalFollowers = m_Player.Stabled.Count; int totalPages = (int)(Math.Ceiling((double)totalFollowers / (double)FollowersPerPage)); if (m_Page >= totalPages) { m_Page = 0; } if (m_Page < 0) { m_Page = 0; } int creatureStartIndex = m_Page * FollowersPerPage; int creatureEndIndex = (m_Page * FollowersPerPage) + (FollowersPerPage - 1); if (creatureEndIndex >= totalFollowers) { creatureEndIndex = totalFollowers - 1; } int WhiteTextHue = 2655; //2036 AddLabel(24, 112, 2599, "Claim"); AddLabel(75, 112, 2599, "Slots"); AddLabel(126, 112, 2599, "Claim Cost"); AddLabel(310, 112, 2599, "Follower"); AddLabel(455, 112, 2599, "Lore"); AddLabel(498, 112, 2599, "Level"); AddLabel(556, 112, 2599, "Exp"); AddLabel(602, 112, 2599, "Dismiss"); //Guide AddButton(10, 11, 2094, 2095, 1, GumpButtonType.Reply, 0); AddLabel(7, 0, 149, "Guide"); AddLabel(304, 27, 2201, "Claim Followers"); AddLabel(282, 62, 2610, "Stable Slots Used:"); AddLabel(402, 62, WhiteTextHue, usedStableSlots.ToString() + " / " + maxStableSlots.ToString()); int startY = 142; int itemSpacing = 40; int creatureCount = creatureEndIndex - creatureStartIndex; for (int a = 0; a < creatureCount + 1; a++) { int creatureIndex = creatureStartIndex + a; int creatureButtonIndex = (10 * (creatureIndex + 1)); if (creatureIndex >= m_Player.Stabled.Count) { continue; } BaseCreature bc_Creature = m_Player.Stabled[creatureIndex] as BaseCreature; if (bc_Creature == null) { continue; } string controlSlots = bc_Creature.ControlSlots.ToString(); string claimCost = Stables.GetClaimCost(m_Vendor, m_Player, bc_Creature).ToString(); string followerName = bc_Creature.GetTamedDisplayName(); int aliveTextHue = WhiteTextHue; int claimCostTextHue = WhiteTextHue; string experienceLevel = bc_Creature.ExperienceLevel.ToString(); string experience = bc_Creature.Experience.ToString() + "/" + BaseCreature.GetMaxLevelExperience(bc_Creature.ExperienceLevel); AddButton(24, startY - 5, 2151, 2152, creatureButtonIndex, GumpButtonType.Reply, 0); //Claim Button AddLabel(Utility.CenteredTextOffset(90, controlSlots), startY, WhiteTextHue, controlSlots); //Slots AddItem(117, startY - 5, 3823); //Gold Image AddLabel(160, startY, claimCostTextHue, claimCost.ToString()); //Claim Cost AddLabel(Utility.CenteredTextOffset(335, followerName), startY, 2603, followerName); //Follower Name AddButton(455, startY - 5, 9721, 9724, creatureButtonIndex + 1, GumpButtonType.Reply, 0); AddLabel(Utility.CenteredTextOffset(515, experienceLevel), startY, WhiteTextHue, experienceLevel); AddLabel(Utility.CenteredTextOffset(565, experience), startY, WhiteTextHue, experience); AddButton(611, startY - 5, 2472, 2473, creatureButtonIndex + 2, GumpButtonType.Reply, 0); startY += itemSpacing; } //Previous Page if (m_Page > 0) { AddButton(24, 408, 4014, 4016, 2, GumpButtonType.Reply, 0); AddLabel(61, 409, WhiteTextHue, "Previous Page"); } //Stable Follower AddButton(180, 408, 4002, 4004, 3, GumpButtonType.Reply, 0); AddLabel(217, 409, 63, "Stable Follower"); //Retrieve Lost Followers AddButton(343, 408, 4029, 4031, 5, GumpButtonType.Reply, 0); AddLabel(380, 409, 2606, "Retrieve Lost Followers"); //Next Page if (m_Page < totalPages - 1) { AddLabel(547, 408, WhiteTextHue, "Next Page"); AddButton(616, 409, 4005, 4007, 4, GumpButtonType.Reply, 0); } AddLabel(19, 433, 149, "Claim Cost:"); AddLabel(96, 433, 2550, "Days Housed X Control Slots X " + Stables.GoldCostPerControlSlotPerDay.ToString()); AddLabel(358, 433, 149, "Retrieval Cost:"); AddLabel(457, 433, 2550, "Adds " + Stables.RetireveFollowerDaysAdded.ToString() + " Days Worth of Housing"); }
public AnimalLoreGump(PlayerMobile player, AnimalLoreGumpObject animalLoreGumpObject) : base(50, 50) { m_Player = player; m_AnimalLoreGumpObject = animalLoreGumpObject; if (m_Player == null) { return; } if (m_AnimalLoreGumpObject == null) { return; } if (m_AnimalLoreGumpObject.bc_Creature == null) { return; } if (m_AnimalLoreGumpObject.bc_Creature.Deleted) { return; } if (!m_AnimalLoreGumpObject.bc_Creature.Alive && !m_AnimalLoreGumpObject.bc_Creature.IsBonded) { return; } BaseCreature bc_Creature = m_AnimalLoreGumpObject.bc_Creature; int traitsEarned = FollowerTraits.GetFollowerTraitsEarned(bc_Creature); int traitsAvailable = FollowerTraits.GetFollowerTraitsAvailable(bc_Creature); int totalTraits = (int)((double)bc_Creature.TraitsList.Count / 2); //Populate Trait Selection if (m_AnimalLoreGumpObject.m_TraitGumpSelections.Count == 0) { for (int a = 0; a < totalTraits; a++) { m_AnimalLoreGumpObject.m_TraitGumpSelections.Add(TraitSelectionType.None); } } Closable = true; Disposable = true; Dragable = true; Resizable = false; AddPage(0); int HeaderTextHue = 2603; int WhiteTextHue = 2655; int GreyTextHue = 1102; //2036 int MainTextHue = 149; int BlueTextHue = 2603; int GreenTextHue = 0x3F; int RedTextHue = 1256; int ValueTextHue = 2655; int DifficultyTextHue = 2114; int SlayerGroupTextHue = 2606; AddImage(8, 4, 1250, 2499); //Background string creatureDisplayName = bc_Creature.GetTamedDisplayName(); AddLabel(Utility.CenteredTextOffset(170, creatureDisplayName), 15, HeaderTextHue, creatureDisplayName); AddLabel(10, 0, 149, "Guide"); AddButton(14, 15, 2094, 2095, 1, GumpButtonType.Reply, 0); switch (m_AnimalLoreGumpObject.m_AnimalLorePage) { #region Stats case AnimalLoreGumpPage.Stats: if (bc_Creature.Tameable) { AddLabel(78, 370, WhiteTextHue, "Traits"); AddButton(45, 369, 4011, 4013, 2, GumpButtonType.Reply, 0); if (traitsAvailable > 0) { AddLabel(123, 370, GreenTextHue, "(" + traitsAvailable.ToString() + " Available)"); } if (bc_Creature.RessPenaltyCount > 0) { AddItem(172, 363, 6227, 0); AddLabel(206, 370, 2116, bc_Creature.RessPenaltyCount.ToString()); AddButton(221, 369, 4029, 4031, 3, GumpButtonType.Reply, 0); AddLabel(259, 370, 2116, "Info"); } else { AddButton(221, 369, 4029, 4031, 3, GumpButtonType.Reply, 0); AddLabel(259, 370, WhiteTextHue, "Info"); } } int shrinkTableIcon = ShrinkTable.Lookup(bc_Creature); if (shrinkTableIcon == 6256) { shrinkTableIcon = 7960; } if (bc_Creature.IsHenchman) { Custom.BaseHenchman henchman = bc_Creature as Custom.BaseHenchman; int henchmanIcon = 8454; int henchmanHue = 0; if (bc_Creature.Female) { henchmanIcon = 8455; } if (!henchman.HenchmanHumanoid) { henchmanIcon = bc_Creature.TamedItemId; henchmanHue = bc_Creature.TamedItemHue; } AddItem(74 + bc_Creature.TamedItemXOffset, 62 + bc_Creature.TamedItemYOffset, henchmanIcon, henchmanHue); } else { if (bc_Creature.TamedItemId != -1) //Creature Icon { AddItem(74 + bc_Creature.TamedItemXOffset, 62 + bc_Creature.TamedItemYOffset, bc_Creature.TamedItemId, bc_Creature.TamedItemHue); } else { AddItem(74 + bc_Creature.TamedItemXOffset, 62 + bc_Creature.TamedItemYOffset, shrinkTableIcon, 0); } } string creatureDifficulty = Utility.CreateDecimalString(bc_Creature.InitialDifficulty, 2); string slayerGroup = bc_Creature.SlayerGroup.ToString(); int level = bc_Creature.ExperienceLevel; int experience = bc_Creature.Experience; int maxExperience = 0; if (bc_Creature.ExperienceLevel < BaseCreature.MaxExperienceLevel) { maxExperience = BaseCreature.ExperiencePerLevel[bc_Creature.ExperienceLevel]; } double passiveTamingSkillGainRemaining = player.m_PassiveSkillGainRemaining; if (!bc_Creature.InPassiveTamingSkillGainRange(player)) { passiveTamingSkillGainRemaining = 0; } string passiveTamingSkillGainRemainingText = Utility.CreateDecimalString(passiveTamingSkillGainRemaining, 1); if (!(bc_Creature.IsStabled || bc_Creature.ControlMaster == player)) { passiveTamingSkillGainRemainingText = "-"; } int hitsAdjusted = bc_Creature.Hits; int hitsMaxAdjusted = bc_Creature.HitsMax; int stamAdjusted = bc_Creature.Stam; int stamMaxAdjusted = bc_Creature.StamMax; int manaAdjusted = bc_Creature.Mana; int manaMaxAdjusted = bc_Creature.ManaMax; int minDamageAdjusted = bc_Creature.DamageMin; int maxDamageAdjusted = bc_Creature.DamageMax; double wrestlingAdjusted = bc_Creature.Skills.Wrestling.Value; double evalIntAdjusted = bc_Creature.Skills.EvalInt.Value; double mageryAdjusted = bc_Creature.Skills.Magery.Value; double magicResistAdjusted = bc_Creature.Skills.MagicResist.Value; double poisoningAdjusted = bc_Creature.Skills.Poisoning.Value; int virtualArmorAdjusted = bc_Creature.VirtualArmor; //Tamed Scalars string hitsTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBaseMaxHitsCreationScalar - 1), 1); int hitsTamedColor = RedTextHue; if ((bc_Creature.TamedBaseMaxHitsCreationScalar - 1) >= 0) { hitsTamedScalar = "+" + hitsTamedScalar; hitsTamedColor = GreenTextHue; } if (hitsTamedScalar.Length == 3) { hitsTamedScalar = hitsTamedScalar.Insert(2, ".0"); } string stamTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBaseDexCreationScalar - 1), 1); int stamTamedColor = RedTextHue; if ((bc_Creature.TamedBaseDexCreationScalar - 1) >= 0) { stamTamedScalar = "+" + stamTamedScalar; stamTamedColor = GreenTextHue; } if (stamTamedScalar.Length == 3) { stamTamedScalar = stamTamedScalar.Insert(2, ".0"); } string manaTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBaseMaxManaCreationScalar - 1), 1); int manaTamedColor = RedTextHue; if ((bc_Creature.TamedBaseMaxManaCreationScalar - 1) >= 0) { manaTamedScalar = "+" + manaTamedScalar; manaTamedColor = GreenTextHue; } if (manaTamedScalar.Length == 3) { manaTamedScalar = manaTamedScalar.Insert(2, ".0"); } string damageTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBaseMaxDamageCreationScalar - 1), 1); int damageTamedColor = RedTextHue; if ((bc_Creature.TamedBaseMaxDamageCreationScalar - 1) >= 0) { damageTamedScalar = "+" + damageTamedScalar; damageTamedColor = GreenTextHue; } if (damageTamedScalar.Length == 3) { damageTamedScalar = damageTamedScalar.Insert(2, ".0"); } string virtualArmorTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBaseVirtualArmorCreationScalar - 1), 1); int virtualArmorTamedColor = RedTextHue; if ((bc_Creature.TamedBaseVirtualArmorCreationScalar - 1) >= 0) { virtualArmorTamedScalar = "+" + virtualArmorTamedScalar; virtualArmorTamedColor = GreenTextHue; } if (virtualArmorTamedScalar.Length == 3) { virtualArmorTamedScalar = virtualArmorTamedScalar.Insert(2, ".0"); } string wrestlingTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBaseWrestlingCreationScalar - 1), 1); int wrestlingTamedColor = RedTextHue; if ((bc_Creature.TamedBaseWrestlingCreationScalar - 1) >= 0) { wrestlingTamedScalar = "+" + wrestlingTamedScalar; wrestlingTamedColor = GreenTextHue; } if (wrestlingTamedScalar.Length == 3) { wrestlingTamedScalar = wrestlingTamedScalar.Insert(2, ".0"); } string evalIntTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBaseEvalIntCreationScalar - 1), 1); int evalIntTamedColor = RedTextHue; if ((bc_Creature.TamedBaseEvalIntCreationScalar - 1) >= 0) { evalIntTamedScalar = "+" + evalIntTamedScalar; evalIntTamedColor = GreenTextHue; } if (evalIntTamedScalar.Length == 3) { evalIntTamedScalar = evalIntTamedScalar.Insert(2, ".0"); } string mageryTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBaseMageryCreationScalar - 1), 1); int mageryTamedColor = RedTextHue; if ((bc_Creature.TamedBaseMageryCreationScalar - 1) >= 0) { mageryTamedScalar = "+" + mageryTamedScalar; mageryTamedColor = GreenTextHue; } if (mageryTamedScalar.Length == 3) { mageryTamedScalar = mageryTamedScalar.Insert(2, ".0"); } string magicResistTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBaseMagicResistCreationScalar - 1), 1); int magicResistTamedColor = RedTextHue; if ((bc_Creature.TamedBaseMagicResistCreationScalar - 1) >= 0) { magicResistTamedScalar = "+" + magicResistTamedScalar; magicResistTamedColor = GreenTextHue; } if (magicResistTamedScalar.Length == 3) { magicResistTamedScalar = magicResistTamedScalar.Insert(2, ".0"); } string poisoningTamedScalar = Utility.CreateDecimalPercentageString((bc_Creature.TamedBasePoisoningCreationScalar - 1), 1); int poisoningTamedColor = RedTextHue; if ((bc_Creature.TamedBasePoisoningCreationScalar - 1) >= 0) { poisoningTamedScalar = "+" + poisoningTamedScalar; poisoningTamedColor = GreenTextHue; } if (poisoningTamedScalar.Length == 3) { poisoningTamedScalar = poisoningTamedScalar.Insert(2, ".0"); } if (bc_Creature.IsStabled || (bc_Creature.Controlled && bc_Creature.ControlMaster is PlayerMobile)) { AddLabel(166, 50, MainTextHue, "Level:"); if (traitsAvailable > 0) { AddLabel(210, 50, GreenTextHue, level.ToString()); } else { AddLabel(210, 50, ValueTextHue, level.ToString()); } if (bc_Creature.ExperienceLevel < BaseCreature.MaxExperienceLevel) { AddLabel(175, 70, MainTextHue, "Exp:"); AddLabel(210, 70, ValueTextHue, experience.ToString() + " / " + maxExperience.ToString()); } else { AddLabel(175, 70, MainTextHue, "Exp:"); AddLabel(210, 70, ValueTextHue, "Maxed"); } AddLabel(160, 90, MainTextHue, "Passive Taming"); AddLabel(130, 105, MainTextHue, "Skill Gain Remaining"); if (passiveTamingSkillGainRemaining > 0) { AddLabel(260, 100, 2603, passiveTamingSkillGainRemainingText); } else { AddLabel(260, 100, 2401, passiveTamingSkillGainRemainingText); } } else { AddLabel(170, 45, MainTextHue, "Creature Difficulty"); AddLabel(Utility.CenteredTextOffset(220, creatureDifficulty), 65, DifficultyTextHue, creatureDifficulty); AddLabel(185, 85, MainTextHue, "Slayer Group"); AddLabel(205, 105, SlayerGroupTextHue, slayerGroup); hitsAdjusted = (int)((double)bc_Creature.TamedBaseMaxHits * bc_Creature.TamedBaseMaxHitsCreationScalar); hitsMaxAdjusted = hitsAdjusted; stamAdjusted = (int)((double)bc_Creature.TamedBaseDex * bc_Creature.TamedBaseDexCreationScalar); stamMaxAdjusted = stamAdjusted; manaAdjusted = (int)((double)bc_Creature.TamedBaseMaxMana * bc_Creature.TamedBaseMaxManaCreationScalar); manaMaxAdjusted = manaAdjusted; minDamageAdjusted = (int)((double)bc_Creature.TamedBaseMinDamage * bc_Creature.TamedBaseMinDamageCreationScalar); maxDamageAdjusted = (int)((double)bc_Creature.TamedBaseMaxDamage * bc_Creature.TamedBaseMaxDamageCreationScalar); virtualArmorAdjusted = (int)((double)bc_Creature.TamedBaseVirtualArmor * bc_Creature.TamedBaseVirtualArmorCreationScalar); wrestlingAdjusted = bc_Creature.TamedBaseWrestling * bc_Creature.TamedBaseWrestlingCreationScalar; evalIntAdjusted = bc_Creature.TamedBaseEvalInt * bc_Creature.TamedBaseEvalIntCreationScalar; mageryAdjusted = bc_Creature.TamedBaseMagery * bc_Creature.TamedBaseMageryCreationScalar; magicResistAdjusted = bc_Creature.TamedBaseMagicResist * bc_Creature.TamedBaseMagicResistCreationScalar; poisoningAdjusted = bc_Creature.TamedBasePoisoning * bc_Creature.TamedBasePoisoningCreationScalar; } int labelX = 45; int valuesX = 140; int tamedScalarsX = 245; int startY = 125; int rowHeight = 18; int rowSpacer = 0; bool showTamedScalars = false; if (bc_Creature.Tameable) { showTamedScalars = true; if (bc_Creature.IsHenchman) { AddLabel(labelX, startY, MainTextHue, "Min Begging:"); } else { AddLabel(labelX, startY, MainTextHue, "Min Taming:"); } AddLabel(valuesX, startY, ValueTextHue, bc_Creature.MinTameSkill.ToString()); startY += rowHeight; AddLabel(labelX, startY, MainTextHue, "Control Slots:"); AddLabel(valuesX, startY, ValueTextHue, bc_Creature.ControlSlots.ToString()); AddLabel(242, startY, MainTextHue, "vs Avg."); startY += rowHeight; startY += rowSpacer; } AddLabel(labelX, startY, MainTextHue, "Hits:"); AddLabel(valuesX, startY, ValueTextHue, hitsAdjusted + " / " + hitsMaxAdjusted); if (showTamedScalars) { AddLabel(tamedScalarsX, startY, hitsTamedColor, hitsTamedScalar); } startY += rowHeight; AddLabel(labelX, startY, MainTextHue, "Dex:"); AddLabel(valuesX, startY, ValueTextHue, stamMaxAdjusted.ToString()); if (showTamedScalars) { AddLabel(tamedScalarsX, startY, stamTamedColor, stamTamedScalar); } startY += rowHeight; /* * AddLabel(labelX, startY, MainTextHue, "Mana:"); * AddLabel(valuesX, startY, ValueTextHue, manaAdjusted + " / " + manaMaxAdjusted); * if (showTamedScalars && manaAdjusted > 0 && manaMaxAdjusted > 0) * AddLabel(tamedScalarsX, startY, manaTamedColor, manaTamedScalar); * * startY += rowHeight; */ startY += rowSpacer; AddLabel(labelX, startY, MainTextHue, "Damage:"); AddLabel(valuesX, startY, ValueTextHue, minDamageAdjusted + " - " + maxDamageAdjusted); if (showTamedScalars) { AddLabel(tamedScalarsX, startY, damageTamedColor, damageTamedScalar); } startY += rowHeight; AddLabel(labelX, startY, MainTextHue, "Armor:"); AddLabel(valuesX, startY, ValueTextHue, virtualArmorAdjusted.ToString()); if (showTamedScalars) { AddLabel(tamedScalarsX, startY, virtualArmorTamedColor, virtualArmorTamedScalar); } startY += rowHeight; startY += rowSpacer; if (bc_Creature.IsHenchman) { AddLabel(labelX, startY, MainTextHue, "Combat Skill:"); } else { AddLabel(labelX, startY, MainTextHue, "Wrestling:"); } AddLabel(valuesX, startY, ValueTextHue, RoundToTenth(wrestlingAdjusted).ToString()); if (showTamedScalars) { AddLabel(tamedScalarsX, startY, wrestlingTamedColor, wrestlingTamedScalar); } startY += rowHeight; AddLabel(labelX, startY, MainTextHue, "Magery:"); if (mageryAdjusted == 0) { AddLabel(valuesX, startY, ValueTextHue, "-"); } else { AddLabel(valuesX, startY, ValueTextHue, RoundToTenth(mageryAdjusted).ToString()); if (showTamedScalars) { AddLabel(tamedScalarsX, startY, mageryTamedColor, mageryTamedScalar); } } startY += rowHeight; AddLabel(labelX, startY, MainTextHue, "Eval Int:"); if (evalIntAdjusted == 0) { AddLabel(valuesX, startY, ValueTextHue, "-"); } else { AddLabel(valuesX, startY, ValueTextHue, RoundToTenth(evalIntAdjusted).ToString()); if (showTamedScalars) { AddLabel(tamedScalarsX, startY, evalIntTamedColor, evalIntTamedScalar); } } startY += rowHeight; AddLabel(labelX, startY, MainTextHue, "Magic Resist:"); AddLabel(valuesX, startY, ValueTextHue, RoundToTenth(magicResistAdjusted).ToString()); if (showTamedScalars) { AddLabel(tamedScalarsX, startY, magicResistTamedColor, magicResistTamedScalar); } startY += rowHeight; AddLabel(labelX, startY, MainTextHue, "Poisoning:"); if (bc_Creature.HitPoison != null) { AddLabel(valuesX, startY, ValueTextHue, RoundToTenth(poisoningAdjusted).ToString() + " (" + bc_Creature.HitPoison.Name + ")"); if (showTamedScalars) { AddLabel(tamedScalarsX, startY, poisoningTamedColor, poisoningTamedScalar); } } else { AddLabel(valuesX, startY, ValueTextHue, "-"); } startY += rowHeight; AddLabel(labelX, startY, MainTextHue, "Poison Resist:"); if (bc_Creature.PoisonResistance > 0) { if (bc_Creature.PoisonResistance > 1) { AddLabel(valuesX, startY, ValueTextHue, "Reduced " + bc_Creature.PoisonResistance.ToString() + " Levels"); } else { AddLabel(valuesX, startY, ValueTextHue, "Reduced " + bc_Creature.PoisonResistance.ToString() + " Level"); } } else { AddLabel(valuesX, startY, ValueTextHue, "-"); } startY += rowHeight; break; #endregion #region Traits case AnimalLoreGumpPage.Traits: AddLabel(78, 370, WhiteTextHue, "Stats"); AddButton(45, 369, 4011, 4013, 2, GumpButtonType.Reply, 0); AddButton(221, 369, 4029, 4031, 3, GumpButtonType.Reply, 0); AddLabel(259, 370, WhiteTextHue, "Info"); string traitsText = "Traits"; if ((bc_Creature.IsStabled || (bc_Creature.Controlled && bc_Creature.ControlMaster == m_Player)) && traitsAvailable > 0) { if (traitsAvailable == 1) { traitsText = traitsAvailable.ToString() + " Trait Available"; } else { traitsText = traitsAvailable.ToString() + " Traits Available"; } AddLabel(Utility.CenteredTextOffset(175, traitsText), 45, 2606, traitsText); } else { AddLabel(145, 45, 2606, traitsText); } int traitIndex = 0; int iStartY = 60; int rowSpacing = 57; for (int a = 0; a < bc_Creature.TraitsList.Count; a++) { int traitLevelIndex = (int)(Math.Floor((double)a / 2)); int buttonBaseIndex = 10 + (10 * traitLevelIndex); FollowerTraitType traitOption = bc_Creature.TraitsList[a]; FollowerTraitDetail followerTraitDetail = FollowerTraits.GetFollowerTraitDetail(traitOption); bool controlled = false; bool traitAvailable = false; if (bc_Creature.IsStabled || bc_Creature.Controlled && bc_Creature.ControlMaster == m_Player) { controlled = true; } if ((traitLevelIndex <= (traitsEarned - 1)) && bc_Creature.m_SelectedTraits[traitLevelIndex] == FollowerTraitType.None) { traitAvailable = true; } //Left Side if (a % 2 == 0) { if (traitAvailable && controlled && m_AnimalLoreGumpObject.m_TraitGumpSelections[traitLevelIndex] == TraitSelectionType.Left) { AddItem(40 + followerTraitDetail.IconOffsetX, iStartY + 20 + followerTraitDetail.IconOffsetY, followerTraitDetail.IconItemId, followerTraitDetail.IconHue); AddLabel(Utility.CenteredTextOffset(85, followerTraitDetail.Name), iStartY, GreenTextHue, followerTraitDetail.Name); AddButton(85, iStartY + 33, 2118, 2117, buttonBaseIndex, GumpButtonType.Reply, 0); AddLabel(105, iStartY + 30, 2550, "Info"); AddButton(145, iStartY + 30, 9909, 9910, buttonBaseIndex + 1, GumpButtonType.Reply, 0); } else if (traitAvailable && controlled && m_AnimalLoreGumpObject.m_TraitGumpSelections[traitLevelIndex] != TraitSelectionType.Left) { AddItem(40 + followerTraitDetail.IconOffsetX, iStartY + 20 + followerTraitDetail.IconOffsetY, followerTraitDetail.IconItemId, followerTraitDetail.IconHue); AddLabel(Utility.CenteredTextOffset(85, followerTraitDetail.Name), iStartY, WhiteTextHue, followerTraitDetail.Name); AddButton(85, iStartY + 33, 2118, 2117, buttonBaseIndex, GumpButtonType.Reply, 0); AddLabel(105, iStartY + 30, 2550, "Info"); AddButton(145, iStartY + 30, 9910, 9909, buttonBaseIndex + 1, GumpButtonType.Reply, 0); } else if (bc_Creature.m_SelectedTraits[traitLevelIndex] == traitOption) { AddItem(40 + followerTraitDetail.IconOffsetX, iStartY + 20 + followerTraitDetail.IconOffsetY, followerTraitDetail.IconItemId, followerTraitDetail.IconHue); AddLabel(Utility.CenteredTextOffset(85, followerTraitDetail.Name), iStartY, 149, followerTraitDetail.Name); AddButton(85, iStartY + 33, 2118, 2117, buttonBaseIndex, GumpButtonType.Reply, 0); AddLabel(105, iStartY + 30, 2550, "Info"); } else { AddItem(40 + followerTraitDetail.IconOffsetX, iStartY + 20 + followerTraitDetail.IconOffsetY, followerTraitDetail.IconItemId, followerTraitDetail.IconHue); AddLabel(Utility.CenteredTextOffset(85, followerTraitDetail.Name), iStartY, 1102, followerTraitDetail.Name); AddButton(85, iStartY + 33, 2118, 2117, buttonBaseIndex, GumpButtonType.Reply, 0); AddLabel(105, iStartY + 30, 2401, "Info"); } } //Right Side else { if (traitAvailable && controlled && m_AnimalLoreGumpObject.m_TraitGumpSelections[traitLevelIndex] == TraitSelectionType.Right) { AddItem(195 + followerTraitDetail.IconOffsetX, iStartY + 20 + followerTraitDetail.IconOffsetY, followerTraitDetail.IconItemId, followerTraitDetail.IconHue); AddLabel(Utility.CenteredTextOffset(240, followerTraitDetail.Name), iStartY, GreenTextHue, followerTraitDetail.Name); AddButton(240, iStartY + 33, 2118, 2117, buttonBaseIndex, GumpButtonType.Reply, 0); AddLabel(260, iStartY + 30, 2550, "Info"); AddButton(172, iStartY + 30, 9903, 9904, buttonBaseIndex + 2, GumpButtonType.Reply, 0); } else if (traitAvailable && controlled && m_AnimalLoreGumpObject.m_TraitGumpSelections[traitLevelIndex] != TraitSelectionType.Right) { AddItem(195 + followerTraitDetail.IconOffsetX, iStartY + 20 + followerTraitDetail.IconOffsetY, followerTraitDetail.IconItemId, followerTraitDetail.IconHue); AddLabel(Utility.CenteredTextOffset(240, followerTraitDetail.Name), iStartY, WhiteTextHue, followerTraitDetail.Name); AddButton(240, iStartY + 33, 2118, 2117, buttonBaseIndex, GumpButtonType.Reply, 0); AddLabel(260, iStartY + 30, 2550, "Info"); AddButton(172, iStartY + 30, 9904, 9903, buttonBaseIndex + 2, GumpButtonType.Reply, 0); } else if (bc_Creature.m_SelectedTraits[traitLevelIndex] == traitOption) { AddItem(195 + followerTraitDetail.IconOffsetX, iStartY + 20 + followerTraitDetail.IconOffsetY, followerTraitDetail.IconItemId, followerTraitDetail.IconHue); AddLabel(Utility.CenteredTextOffset(240, followerTraitDetail.Name), iStartY, 149, followerTraitDetail.Name); AddButton(240, iStartY + 33, 2118, 2117, buttonBaseIndex, GumpButtonType.Reply, 0); AddLabel(260, iStartY + 30, 2550, "Info"); } else { AddItem(195 + followerTraitDetail.IconOffsetX, iStartY + 20 + followerTraitDetail.IconOffsetY, followerTraitDetail.IconItemId, followerTraitDetail.IconHue); AddLabel(Utility.CenteredTextOffset(240, followerTraitDetail.Name), iStartY, 1102, followerTraitDetail.Name); AddButton(240, iStartY + 33, 2118, 2117, buttonBaseIndex, GumpButtonType.Reply, 0); AddLabel(260, iStartY + 30, 2401, "Info"); } iStartY += rowSpacing; } } bool selectionsMade = false; for (int a = 0; a < m_AnimalLoreGumpObject.m_TraitGumpSelections.Count; a++) { if (m_AnimalLoreGumpObject.m_TraitGumpSelections[a] != TraitSelectionType.None) { selectionsMade = true; } } if (selectionsMade && traitsAvailable > 0 && (bc_Creature.IsStabled || (bc_Creature.Controlled && bc_Creature.ControlMaster == m_Player))) { AddLabel(90, 345, 68, "Confirm Trait Selection"); AddButton(140, 370, 2076, 2075, 9, GumpButtonType.Reply, 0); } break; #endregion #region Info case AnimalLoreGumpPage.Info: AddLabel(78, 370, WhiteTextHue, "Traits"); AddButton(45, 369, 4011, 4013, 2, GumpButtonType.Reply, 0); if (traitsAvailable > 0) { AddLabel(120, 370, GreenTextHue, "(" + traitsAvailable.ToString() + " Available)"); } AddButton(221, 369, 4029, 4031, 3, GumpButtonType.Reply, 0); AddLabel(259, 370, WhiteTextHue, "Stats"); if (bc_Creature.RessPenaltyCount > 0) { AddLabel(73, 47, 149, "Current Ress Penalty"); AddItem(198, 42, 6227, 0); AddLabel(232, 47, 2116, "x" + bc_Creature.RessPenaltyCount.ToString()); string timeRemainingText = "Expires in " + Utility.CreateTimeRemainingString(DateTime.UtcNow, bc_Creature.RessPenaltyExpiration, true, false, true, true, true); string textA = "-" + Utility.CreateDecimalPercentageString(bc_Creature.GetRessPenaltyDamageDealtModifier(), 0) + " Damage Dealt"; string textB = "+" + Utility.CreateDecimalPercentageString(bc_Creature.GetRessPenaltyDamageReceivedModifier(), 0) + " Damage Received"; AddLabel(Utility.CenteredTextOffset(165, timeRemainingText), 67, 2550, timeRemainingText); AddLabel(Utility.CenteredTextOffset(165, textA), 87, 1256, textA); AddLabel(Utility.CenteredTextOffset(165, textB), 107, 1256, textB); } break; #endregion } }
public ShipHotbarGump(PlayerMobile player, ShipHotbarGumpObject shipHotbarGumpObject) : base(10, 10) { m_Player = player; m_ShipHotbarGumpObject = shipHotbarGumpObject; if (player == null) { return; } if (m_ShipHotbarGumpObject == null) { return; } Closable = true; Disposable = true; Dragable = true; Resizable = false; AddPage(0); int WhiteTextHue = 2499; //2036 //----- BaseShip m_Ship = m_Player.ShipOccupied; if (m_Ship != null) { if (m_Ship.Deleted) { m_Ship = null; } } #region Ship Property Values string shipNameText = ""; int hullPoints = -1; int maxHullPoints = -1; double hullPercent = 0; int sailPoints = -1; int maxSailPoints = -1; double sailPercent = 0; int gunPoints = -1; int maxGunPoints = -1; double gunPercent = 0; string minorAbilityText = ""; string minorAbilityTimeRemaining = ""; bool minorAbilityReady = false; string majorAbilityText = ""; string majorAbilityTimeRemaining = ""; bool majorAbilityReady = false; string epicAbilityText = ""; string epicAbilityTimeRemaining = ""; bool epicAbilityReady = false; string movementModeText = ""; string actionText = ""; int actionButtonID = 4029; int actionButtonPressedID = 4029; string targetingModeText = ""; int leftCannonsAmmunition = -1; bool leftCannonsReady = false; int rightCannonsAmmunition = -1; bool rightCannonsReady = false; #endregion #region Populate Values switch (m_ShipHotbarGumpObject.m_MovementMode) { case MovementMode.Single: movementModeText = "Single"; break; case MovementMode.Full: movementModeText = "Full"; break; } if (m_Ship != null) { shipNameText = "The Rebellion"; //TEST: OK hullPoints = m_Ship.HitPoints; maxHullPoints = m_Ship.MaxHitPoints; hullPercent = (double)hullPoints / (double)maxHullPoints; sailPoints = m_Ship.SailPoints; maxSailPoints = m_Ship.MaxSailPoints; sailPercent = (double)sailPoints / (double)maxSailPoints; gunPoints = m_Ship.GunPoints; maxGunPoints = m_Ship.MaxGunPoints; gunPercent = (double)gunPoints / (double)maxGunPoints; leftCannonsAmmunition = 10; //TEST: FIX leftCannonsReady = true; rightCannonsAmmunition = 10; //TEST: FIX rightCannonsReady = false; minorAbilityText = "Expedite Repairs"; //TEST: FIX minorAbilityTimeRemaining = "1m 59s"; //TEST: FIX minorAbilityReady = false; majorAbilityText = "Smokescreen"; //TEST: FIX majorAbilityTimeRemaining = "4m 59s"; //TEST: FIX majorAbilityReady = false; epicAbilityText = "Hellfire"; //TEST: FIX epicAbilityTimeRemaining = "9m 59s"; //TEST: FIX epicAbilityReady = false; switch (m_Ship.m_TargetingMode) { case TargetingMode.Random: targetingModeText = "Random"; break; case TargetingMode.Hull: targetingModeText = "Hull"; break; case TargetingMode.Sails: targetingModeText = "Sails"; break; case TargetingMode.Guns: targetingModeText = "Guns"; break; } } switch (m_ShipHotbarGumpObject.m_ShipAction) { case ShipAction.RaiseAnchor: actionText = "Raise Anchor"; actionButtonID = 4014; actionButtonPressedID = 4016; break; case ShipAction.LowerAnchor: actionText = "Lower Anchor"; actionButtonID = 4005; actionButtonPressedID = 4007; break; case ShipAction.Embark: actionText = "Embark"; actionButtonID = 4002; actionButtonPressedID = 4004; break; case ShipAction.EmbarkFollowers: actionText = "Embark Followers"; actionButtonID = 4008; actionButtonPressedID = 4010; break; case ShipAction.Disembark: actionText = "Disembark"; actionButtonID = 4002; actionButtonPressedID = 4004; break; case ShipAction.DisembarkFollowers: actionText = "Disembark Followers"; actionButtonID = 4008; actionButtonPressedID = 4010; break; case ShipAction.Dock: actionText = "Dock The Ship"; actionButtonID = 4017; actionButtonPressedID = 4019; break; case ShipAction.ClearDeck: actionText = "Clear The Deck"; actionButtonID = 4020; actionButtonPressedID = 4022; break; case ShipAction.AddFriend: actionText = "Add Friend"; actionButtonID = 4003; actionButtonPressedID = 4002; break; case ShipAction.AddCoOwner: actionText = "Add Co-Owner"; actionButtonID = 4003; actionButtonPressedID = 4002; break; case ShipAction.ThrowTargetOverboard: actionText = "Throw Target Overboard"; actionButtonID = 4014; actionButtonPressedID = 4016; break; } #endregion #region Gump Areas bool showStats = false; bool showAbilities = false; bool showNavigator = false; int startX = 0; int startY = 12; int statsHeight = 102; int abilitiesHeight = 55; switch (m_ShipHotbarGumpObject.m_DisplayMode) { case DisplayModeType.Stats: showStats = true; break; case DisplayModeType.StatsAbilities: showStats = true; showAbilities = true; break; case DisplayModeType.StatsAbilitiesNavigator: showStats = true; showAbilities = true; showNavigator = true; break; case DisplayModeType.StatsNavigator: showStats = true; showNavigator = true; break; case DisplayModeType.Navigator: showNavigator = true; startX = 18; break; } #endregion if (m_ShipHotbarGumpObject.m_CollapseMode) { AddAlphaRegion(12, 12, 30, 75); AddButton(17, 12, 9906, 9906, 24, GumpButtonType.Reply, 0); //Collapse AddItem(6, 39, 5363); AddButton(20, 69, 1210, 1209, 27, GumpButtonType.Reply, 0); //Ship Selection } else { AddButton(17, 12, 9900, 9900, 24, GumpButtonType.Reply, 0); //Collapse AddItem(6, 39, 5363); AddButton(20, 69, 1210, 1209, 27, GumpButtonType.Reply, 0); //Ship Selection AddButton(20, 93, 2224, 2224, 26, GumpButtonType.Reply, 0); //Change Display Mode #region Stats if (showStats) { //Add Background AddImage(48, startY, 103); AddImage(185, startY, 103); AddImageTiled(62, startY + 14, 257, 77, 2624); //Add Header: shipNameText AddImage(52, startY + 3, 1141); AddLabel(Utility.CenteredTextOffset(190, shipNameText), startY + 5, 149, shipNameText); AddLabel(71, startY + 30, 149, "Hull"); AddImage(102, startY + 35, 2057); AddImageTiled(102 + Utility.ProgressBarX(hullPercent), startY + 38, Utility.ProgressBarWidth(hullPercent), 7, 2488); if (maxHullPoints > -1) { AddLabel(219, startY + 30, WhiteTextHue, hullPoints.ToString() + "/" + maxHullPoints.ToString()); } AddLabel(66, startY + 50, 187, "Sails"); AddImage(102, startY + 55, 2054); AddImageTiled(102 + Utility.ProgressBarX(sailPercent), startY + 58, Utility.ProgressBarWidth(sailPercent), 7, 2488); if (maxSailPoints > -1) { AddLabel(219, startY + 50, WhiteTextHue, sailPoints.ToString() + "/" + maxSailPoints.ToString()); } AddLabel(66, startY + 70, WhiteTextHue, "Guns"); AddImage(102, startY + 75, 2057, 2499); AddImageTiled(102 + Utility.ProgressBarX(gunPercent), startY + 78, Utility.ProgressBarWidth(gunPercent), 7, 2488); if (maxGunPoints > -1) { AddLabel(219, startY + 70, WhiteTextHue, gunPoints.ToString() + "/" + maxGunPoints.ToString()); } startY += statsHeight; } #endregion #region Abilities if (showAbilities) { if (minorAbilityText != "") { if (minorAbilityReady) { AddLabel(Utility.CenteredTextOffset(61, minorAbilityText), startY, 2599, minorAbilityText); AddButton(44, startY + 21, 2151, 2154, 21, GumpButtonType.Reply, 0); AddLabel(76, startY + 25, WhiteTextHue, "Ready"); } else { AddLabel(Utility.CenteredTextOffset(61, minorAbilityText), startY, 2599, minorAbilityText); AddButton(44, startY + 21, 9721, 9721, 21, GumpButtonType.Reply, 0); AddLabel(76, startY + 25, WhiteTextHue, minorAbilityTimeRemaining); } } if (majorAbilityText != "") { if (majorAbilityReady) { AddLabel(Utility.CenteredTextOffset(185, majorAbilityText), startY, 2603, majorAbilityText); AddButton(168, startY + 21, 2151, 2154, 22, GumpButtonType.Reply, 0); AddLabel(201, startY + 25, WhiteTextHue, "Ready"); } else { AddLabel(Utility.CenteredTextOffset(185, majorAbilityText), startY, 2603, majorAbilityText); AddButton(168, startY + 21, 9721, 9721, 22, GumpButtonType.Reply, 0); AddLabel(201, startY + 25, WhiteTextHue, majorAbilityTimeRemaining); } } if (epicAbilityText != "") { if (epicAbilityReady) { AddLabel(Utility.CenteredTextOffset(305, epicAbilityText), startY, 2606, epicAbilityText); AddButton(287, startY + 21, 2151, 2154, 23, GumpButtonType.Reply, 0); AddLabel(321, startY + 25, WhiteTextHue, "Ready"); } else { AddLabel(Utility.CenteredTextOffset(305, epicAbilityText), startY, 2606, epicAbilityText); AddButton(287, startY + 21, 9721, 9721, 23, GumpButtonType.Reply, 0); AddLabel(321, startY + 25, WhiteTextHue, epicAbilityTimeRemaining); } } startY += abilitiesHeight; } #endregion #region Navigator if (showNavigator) { //Background AddImage(startX + 33, startY + 50, 103); AddImage(startX + 120, startY + 50, 103); AddImage(startX + 196, startY + 50, 103); AddImage(startX + 33, startY + 136, 103); AddImage(startX + 197, startY + 141, 103); AddImage(startX + 33, startY + 160, 103); AddImage(startX + 175, startY + 160, 103); AddImage(startX + 197, startY + 160, 103); AddImageTiled(startX + 46, startY + 61, 280, 190, 2624); //Movement Mode AddLabel(startX + 63, startY + 0, 187, "Movement Mode"); AddLabel(Utility.CenteredTextOffset(startX + 115, movementModeText), startY + 20, WhiteTextHue, movementModeText); AddButton(startX + 60, startY + 25, 2223, 2223, 12, GumpButtonType.Reply, 0); AddButton(startX + 140, startY + 25, 2224, 2224, 13, GumpButtonType.Reply, 0); //Action AddLabel(Utility.CenteredTextOffset(startX + 263, actionText), startY + 0, 63, actionText); AddButton(startX + 215, startY + 25, 2223, 2223, 14, GumpButtonType.Reply, 0); AddButton(startX + 285, startY + 25, 2224, 2224, 15, GumpButtonType.Reply, 0); AddButton(startX + 246, startY + 20, actionButtonID, actionButtonPressedID, 16, GumpButtonType.Reply, 0); //Left Cannon AddItem(startX + 33, startY + 46, 733); AddItem(startX + 88, startY + 92, 3700); if (leftCannonsAmmunition > -1) { if (leftCannonsReady && leftCannonsAmmunition > 0) { AddButton(startX + 59, startY + 113, 2151, 2154, 17, GumpButtonType.Reply, 0); AddLabel(startX + 96, startY + 74, WhiteTextHue, leftCannonsAmmunition.ToString()); } else if (!leftCannonsReady && leftCannonsAmmunition > 0) { AddButton(startX + 59, startY + 113, 9721, 9721, 17, GumpButtonType.Reply, 0); AddLabel(startX + 96, startY + 74, WhiteTextHue, leftCannonsAmmunition.ToString()); } else { AddButton(startX + 59, startY + 113, 2472, 2474, 17, GumpButtonType.Reply, 0); AddLabel(startX + 96, startY + 74, 2115, leftCannonsAmmunition.ToString()); } } //Right Cannon AddItem(startX + 284, startY + 49, 709); AddItem(startX + 255, startY + 92, 3700); if (rightCannonsAmmunition > -1) { if (rightCannonsReady && rightCannonsAmmunition > 0) { AddButton(startX + 287, startY + 115, 2151, 2154, 18, GumpButtonType.Reply, 0); AddLabel(startX + 263, startY + 74, WhiteTextHue, rightCannonsAmmunition.ToString()); } else if (!rightCannonsReady && rightCannonsAmmunition > 0) { AddButton(startX + 287, startY + 115, 9721, 9721, 18, GumpButtonType.Reply, 0); AddLabel(startX + 263, startY + 74, WhiteTextHue, rightCannonsAmmunition.ToString()); } else { AddButton(startX + 287, startY + 115, 2472, 2474, 18, GumpButtonType.Reply, 0); AddLabel(startX + 263, startY + 74, 2115, rightCannonsAmmunition.ToString()); } } //Targeting Mode if (targetingModeText != "") { AddLabel(startX + 136, startY + 65, 2115, "Targeting Mode"); AddLabel(Utility.CenteredTextOffset(startX + 186, targetingModeText), startY + 85, WhiteTextHue, targetingModeText); AddButton(startX + 127, startY + 88, 2223, 2223, 19, GumpButtonType.Reply, 0); AddButton(startX + 221, startY + 88, 2224, 2224, 20, GumpButtonType.Reply, 0); } //Directions AddButton(startX + 160, startY + 109, 4500, 4500, 1, GumpButtonType.Reply, 0); //Forward AddButton(startX + 220, startY + 109, 4501, 4501, 2, GumpButtonType.Reply, 0); //Forward Right AddButton(startX + 267, startY + 152, 4502, 4502, 3, GumpButtonType.Reply, 0); //Right AddButton(startX + 220, startY + 197, 4503, 4503, 4, GumpButtonType.Reply, 0); //Backwards Right AddButton(startX + 160, startY + 197, 4504, 4504, 5, GumpButtonType.Reply, 0); //Backwards AddButton(startX + 100, startY + 197, 4505, 4505, 6, GumpButtonType.Reply, 0); //Backwards Left AddButton(startX + 55, startY + 152, 4506, 4506, 7, GumpButtonType.Reply, 0); //Left AddButton(startX + 100, startY + 109, 4507, 4507, 8, GumpButtonType.Reply, 0); //Forward Right //Center Controls AddButton(startX + 114, startY + 167, 4014, 4016, 9, GumpButtonType.Reply, 0); //Turn Left AddButton(startX + 171, startY + 167, 4017, 4019, 10, GumpButtonType.Reply, 0); //Stop AddButton(startX + 227, startY + 167, 4005, 4007, 11, GumpButtonType.Reply, 0); //Turn Right } #endregion } }
public DamageTrackerGump(PlayerMobile player) : base(10, 10) { if (player == null) { return; } if (player.Deleted) { return; } if (player.m_DamageTracker == null) { return; } m_Player = player; Closable = true; Disposable = true; Dragable = true; Resizable = false; int textHue = 2036; int totalDamage = 0; if (player.m_DamageTracker.AddMeleeDamageToTotal) { totalDamage += player.m_DamageTracker.MeleeDamage; } if (player.m_DamageTracker.AddSpellDamageToTotal) { totalDamage += player.m_DamageTracker.SpellDamage; } if (player.m_DamageTracker.AddFollowerDamageToTotal) { totalDamage += player.m_DamageTracker.FollowerDamage; } if (player.m_DamageTracker.AddProvocationDamageToTotal) { totalDamage += player.m_DamageTracker.ProvocationDamage; } if (player.m_DamageTracker.AddPoisonDamageToTotal) { totalDamage += player.m_DamageTracker.PoisonDamage; } string timeElapsed = Utility.CreateTimeRemainingString(DateTime.UtcNow, DateTime.UtcNow + m_Player.m_DamageTracker.RunningTime, true, false, true, true, true); if (m_Player.m_DamageTracker.RunningTime == TimeSpan.FromSeconds(0)) { timeElapsed = "0s"; } string autostopHours = m_Player.m_DamageTracker.AutoStopDuration.Hours.ToString() + "h"; string autostopMinutes = m_Player.m_DamageTracker.AutoStopDuration.Minutes.ToString() + "m"; string autostopSeconds = m_Player.m_DamageTracker.AutoStopDuration.Seconds.ToString() + "s"; if (player.m_DamageTracker.m_Collapsed) { AddAlphaRegion(9, 7, 150, 90); AddButton(16, 18, 9900, 9900, 1, GumpButtonType.Reply, 0); //Expand Gump AddLabel(42, 17, 2577, "Total Damage"); AddLabel(130, 17, textHue, Utility.CreateCurrencyString(totalDamage)); AddItem(39, 38, 6160); //Hour Glass AddButton(46, 69, 4017, 4019, 2, GumpButtonType.Reply, 0); //Reset //Running if (m_Player.m_DamageTracker.m_Running) { AddLabel(72, 43, 63, timeElapsed); AddButton(88, 69, 4020, 4022, 3, GumpButtonType.Reply, 0); //Pause } //Paused else { AddLabel(72, 43, 2213, timeElapsed); AddButton(88, 69, 4005, 4007, 3, GumpButtonType.Reply, 0); //Start } } else { AddAlphaRegion(3, 9, 169, 376); //Collapse AddButton(16, 20, 9906, 9906, 1, GumpButtonType.Reply, 0); //Collapse Gump //Damage Dealt AddImage(40, 17, 2445, 2425); AddLabel(52, 18, textHue, "Damage Dealt"); AddLabel(49, 45, 34, "Melee"); if (player.m_DamageTracker.AddMeleeDamageToTotal) { AddButton(91, 45, 211, 210, 20, GumpButtonType.Reply, 0); } else { AddButton(91, 45, 210, 211, 20, GumpButtonType.Reply, 0); } AddLabel(117, 45, textHue, Utility.CreateCurrencyString(player.m_DamageTracker.MeleeDamage)); AddLabel(52, 65, 117, "Spell"); if (player.m_DamageTracker.AddSpellDamageToTotal) { AddButton(91, 65, 211, 210, 21, GumpButtonType.Reply, 0); } else { AddButton(91, 65, 210, 211, 21, GumpButtonType.Reply, 0); } AddLabel(117, 65, textHue, Utility.CreateCurrencyString(player.m_DamageTracker.SpellDamage)); AddLabel(42, 85, 63, "Poison"); if (player.m_DamageTracker.AddPoisonDamageToTotal) { AddButton(91, 85, 211, 210, 22, GumpButtonType.Reply, 0); } else { AddButton(91, 85, 210, 211, 22, GumpButtonType.Reply, 0); } AddLabel(117, 85, textHue, Utility.CreateCurrencyString(player.m_DamageTracker.PoisonDamage)); AddLabel(11, 105, 2417, "Provocation"); if (player.m_DamageTracker.AddProvocationDamageToTotal) { AddButton(91, 105, 211, 210, 23, GumpButtonType.Reply, 0); } else { AddButton(91, 105, 210, 211, 23, GumpButtonType.Reply, 0); } AddLabel(117, 105, textHue, Utility.CreateCurrencyString(player.m_DamageTracker.ProvocationDamage)); AddLabel(26, 125, 89, "Followers"); if (player.m_DamageTracker.AddFollowerDamageToTotal) { AddButton(91, 125, 211, 210, 24, GumpButtonType.Reply, 0); } else { AddButton(91, 125, 210, 211, 24, GumpButtonType.Reply, 0); } AddLabel(117, 125, textHue, Utility.CreateCurrencyString(player.m_DamageTracker.FollowerDamage)); AddLabel(48, 144, 2577, "Total"); AddLabel(117, 144, textHue, Utility.CreateCurrencyString(totalDamage)); //Damage Taken AddImage(40, 169, 2445, 2425); AddLabel(50, 171, textHue, "Damage Taken"); AddLabel(82, 198, 2603, "Self"); AddLabel(117, 198, textHue, Utility.CreateCurrencyString(player.m_DamageTracker.DamageTaken)); AddLabel(52, 219, 2562, "Followers"); AddLabel(117, 219, textHue, Utility.CreateCurrencyString(player.m_DamageTracker.FollowerDamageTaken)); //Stop Timer At AddImage(40, 243, 2445, 2425); AddLabel(49, 245, textHue, "Stop Timer At"); if (m_Player.m_DamageTracker.AutoStopEnabled) { AddButton(18, 283, 2154, 2151, 4, GumpButtonType.Reply, 0); } else { AddButton(18, 283, 2151, 2154, 4, GumpButtonType.Reply, 0); } //Hours AddButton(58, 273, 5600, 5600, 5, GumpButtonType.Reply, 0); AddLabel(Utility.CenteredTextOffset(65, autostopHours), 288, textHue, autostopHours); AddButton(58, 308, 5606, 5606, 6, GumpButtonType.Reply, 0); AddButton(91, 273, 5600, 5600, 7, GumpButtonType.Reply, 0); AddLabel(Utility.CenteredTextOffset(98, autostopMinutes), 288, textHue, autostopMinutes); AddButton(91, 308, 5606, 5606, 8, GumpButtonType.Reply, 0); AddButton(122, 273, 5600, 5600, 9, GumpButtonType.Reply, 0); AddLabel(Utility.CenteredTextOffset(130, autostopSeconds), 288, textHue, autostopSeconds); AddButton(122, 308, 5606, 5606, 10, GumpButtonType.Reply, 0); //Reset AddLabel(8, 330, 2116, "Reset"); AddButton(50, 330, 4017, 4019, 2, GumpButtonType.Reply, 0); //Running if (m_Player.m_DamageTracker.m_Running) { AddLabel(77, 361, 63, timeElapsed); //Time Elapsed AddLabel(93, 331, 2599, "Pause"); AddButton(134, 329, 4020, 4022, 3, GumpButtonType.Reply, 0); } //Paused else { AddLabel(77, 361, 2213, timeElapsed); //Time Elapsed AddLabel(93, 331, 2599, "Start"); AddButton(134, 329, 4005, 4007, 3, GumpButtonType.Reply, 0); } AddItem(44, 356, 6160); //Hourglass } }
public BoatHotbarGump(PlayerMobile player) : base(10, 10) { if (player == null) { return; } m_Player = player; if (m_Player.m_ShipControlSettings == null) { m_Player.m_ShipControlSettings = new ShipPlayerControlSettings(); } Closable = true; Disposable = true; Dragable = true; Resizable = false; AddPage(0); int textHue = 2036; //----- BaseBoat m_Boat = m_Player.BoatOccupied; if (m_Boat != null) { if (m_Boat.Deleted || m_Boat.m_SinkTimer != null) { m_Boat = null; } } if (m_Player.m_ShipControlSettings.m_CollapseMode) { //Gump Controls AddAlphaRegion(0, 0, 30, 85); AddButton(3, 0, 9906, 9906, 27, GumpButtonType.Reply, 0); //Collapse AddItem(-8, 29, 5363); AddButton(6, 62, 1210, 1209, 28, GumpButtonType.Reply, 0); //Ship Selection } else { int hullPoints = -1; int maxHullPoints = -1; double hullPercent = 0; int sailPoints = -1; int maxSailPoints = -1; double sailPercent = 0; int gunPoints = -1; int maxGunPoints = -1; double gunPercent = 0; int leftCannons = -1; bool leftCannonsReady = false; int rightCannons = -1; bool rightCannonsReady = false; string targetingMode = "-"; string movementMode = "Full"; switch (m_Player.m_ShipControlSettings.m_MovementMode) { case MovementMode.Single: movementMode = "Single"; break; case MovementMode.Full: movementMode = "Full"; break; } string minorAbilityText1 = ""; string minorAbilityText2 = ""; string minorAbilityTimeRemaining = ""; bool minorAbilityReady = false; string epicAbilityText1 = ""; string epicAbilityText2 = ""; string epicAbilityTimeRemaining = ""; bool epicAbilityReady = false; if (m_Boat != null) { hullPoints = m_Boat.HitPoints; maxHullPoints = m_Boat.MaxHitPoints; hullPercent = (double)hullPoints / (double)maxHullPoints; sailPoints = m_Boat.SailPoints; maxSailPoints = m_Boat.MaxSailPoints; sailPercent = (double)sailPoints / (double)maxSailPoints; gunPoints = m_Boat.GunPoints; maxGunPoints = m_Boat.MaxGunPoints; gunPercent = (double)gunPoints / (double)maxGunPoints; leftCannons = 10; leftCannonsReady = true; rightCannons = 10; rightCannonsReady = false; //TEST: Add Ability Display Names and Descriptions //public ActiveAbilityType m_ActiveAbility = ActiveAbilityType.None; minorAbilityText1 = "Mastercraft"; minorAbilityText2 = "Cannons"; minorAbilityTimeRemaining = "Ready"; minorAbilityReady = true; //TEST: Add Ability Display Names and Descriptions //public EpicAbilityType m_EpicAbility = EpicAbilityType.None; epicAbilityText1 = "Hellfire"; epicAbilityText2 = "Ammunition"; epicAbilityTimeRemaining = "4m 30s"; epicAbilityReady = false; switch (m_Boat.TargetingMode) { case TargetingMode.Random: targetingMode = "Random"; break; case TargetingMode.Hull: targetingMode = "Hull"; break; case TargetingMode.Sails: targetingMode = "Sails"; break; case TargetingMode.Guns: targetingMode = "Guns"; break; } } AddAlphaRegion(0, 0, 304, 392); //Gump Controls AddAlphaRegion(0, 0, 30, 85); AddButton(3, 0, 9900, 9900, 27, GumpButtonType.Reply, 0); AddItem(-8, 29, 5363); AddButton(6, 62, 1210, 1209, 28, GumpButtonType.Reply, 0); //Directions AddButton(129, 269, 4500, 4500, 1, GumpButtonType.Reply, 0); //Forward AddButton(189, 269, 4501, 4501, 2, GumpButtonType.Reply, 0); //Forward Right AddButton(236, 312, 4502, 4502, 3, GumpButtonType.Reply, 0); //Right AddButton(236, 357, 4503, 4503, 4, GumpButtonType.Reply, 0); //Backwards Right //x=189 AddButton(129, 357, 4504, 4504, 5, GumpButtonType.Reply, 0); //Backwards AddButton(24, 357, 4505, 4505, 6, GumpButtonType.Reply, 0); //Backwards Left //x=69 AddButton(24, 312, 4506, 4506, 7, GumpButtonType.Reply, 0); //Left AddButton(69, 269, 4507, 4507, 8, GumpButtonType.Reply, 0); //Forward Right //Center Controls AddButton(83, 328, 4014, 4016, 9, GumpButtonType.Reply, 0); AddButton(140, 328, 4017, 4019, 10, GumpButtonType.Reply, 0); AddButton(196, 328, 4005, 4007, 11, GumpButtonType.Reply, 0); //Movement Mode AddLabel(34, 167, 187, "Movement Mode"); AddLabel(Utility.CenteredTextOffset(85, movementMode), 189, textHue, movementMode); AddButton(33, 194, 2223, 2223, 12, GumpButtonType.Reply, 0); AddButton(109, 194, 2224, 2224, 13, GumpButtonType.Reply, 0); //Action string actionText = "Embark/Disembark"; int buttonID = 4029; int buttonPressedID = 4029; switch (m_Player.m_ShipControlSettings.m_ShipAction) { case ShipAction.RaiseAnchor: actionText = "Raise Anchor"; buttonID = 4014; buttonPressedID = 4016; break; case ShipAction.LowerAnchor: actionText = "Lower Anchor"; buttonID = 4005; buttonPressedID = 4007; break; case ShipAction.Embark: actionText = "Embark"; buttonID = 4002; buttonPressedID = 4004; break; case ShipAction.EmbarkFollowers: actionText = "Embark Followers"; buttonID = 4008; buttonPressedID = 4010; break; case ShipAction.Disembark: actionText = "Disembark"; buttonID = 4002; buttonPressedID = 4004; break; case ShipAction.DisembarkFollowers: actionText = "Disembark Followers"; buttonID = 4008; buttonPressedID = 4010; break; case ShipAction.Dock: actionText = "Dock The Ship"; buttonID = 4017; buttonPressedID = 4019; break; case ShipAction.ClearDeck: actionText = "Clear The Deck"; buttonID = 4020; buttonPressedID = 4022; break; case ShipAction.DividePlunder: actionText = "Divide The Plunder"; buttonID = 4029; buttonPressedID = 4031; break; case ShipAction.AddFriend: actionText = "Add Friend"; buttonID = 4003; buttonPressedID = 4002; break; case ShipAction.AddCoOwner: actionText = "Add Co-Owner"; buttonID = 4003; buttonPressedID = 4002; break; case ShipAction.ThrowTargetOverboard: actionText = "Throw Target Overboard"; buttonID = 4014; buttonPressedID = 4016; break; } AddLabel(Utility.CenteredTextOffset(232, actionText), 167, 169, actionText); AddButton(181, 194, 2223, 2223, 14, GumpButtonType.Reply, 0); AddButton(252, 194, 2224, 2224, 15, GumpButtonType.Reply, 0); AddButton(212, 189, buttonID, buttonPressedID, 16, GumpButtonType.Reply, 0); //Left Cannon AddItem(2, 206, 733); if (leftCannons > -1) { if (leftCannonsReady) { AddButton(28, 273, 2152, 2151, 17, GumpButtonType.Reply, 0); } else { AddButton(28, 273, 9720, 9722, 17, GumpButtonType.Reply, 0); } AddLabel(10, 245, textHue, leftCannons.ToString()); } else { AddLabel(10, 245, textHue, "-"); } //Right Cannon AddItem(253, 209, 709); if (rightCannons > 1) { if (rightCannonsReady) { AddButton(256, 275, 2152, 2151, 18, GumpButtonType.Reply, 0); } else { AddButton(256, 275, 9720, 9722, 18, GumpButtonType.Reply, 0); } AddLabel(285, 248, textHue, rightCannons.ToString()); } else { AddLabel(285, 248, textHue, "-"); } //Targeting Mode AddLabel(105, 222, 2115, "Targeting Mode"); AddLabel(Utility.CenteredTextOffset(157, targetingMode), 241, textHue, targetingMode); if (m_Boat != null) { AddButton(96, 245, 2223, 2223, 19, GumpButtonType.Reply, 0); AddButton(190, 245, 2224, 2224, 20, GumpButtonType.Reply, 0); } //Minor Ability AddLabel(33, 75, 2603, "Ship Minor Ability"); if (m_Boat != null) { if (minorAbilityText2 != "") { AddLabel(Utility.CenteredTextOffset(89, minorAbilityText1), 94, textHue, minorAbilityText1); AddLabel(Utility.CenteredTextOffset(89, minorAbilityText2), 109, textHue, minorAbilityText2); } else { AddLabel(Utility.CenteredTextOffset(89, minorAbilityText1), 101, textHue, minorAbilityText1); } if (minorAbilityReady) { AddLabel(21, 123, 169, "Ready"); } else { AddLabel(21, 123, 2562, minorAbilityTimeRemaining); } } else { AddLabel(Utility.CenteredTextOffset(89, "-"), 101, textHue, "-"); } if (m_Boat != null) { AddButton(19, 104, 2223, 2223, 21, GumpButtonType.Reply, 0); AddButton(132, 104, 2224, 2224, 22, GumpButtonType.Reply, 0); if (minorAbilityReady) { AddButton(68, 130, 2152, 2151, 23, GumpButtonType.Reply, 0); } else { AddButton(68, 130, 9720, 9722, 23, GumpButtonType.Reply, 0); } } //Epic Ability AddLabel(176, 76, 2606, "Ship Epic Ability"); if (m_Boat != null) { if (epicAbilityText2 != "") { AddLabel(Utility.CenteredTextOffset(232, epicAbilityText1), 94, textHue, epicAbilityText1); AddLabel(Utility.CenteredTextOffset(232, epicAbilityText2), 109, textHue, epicAbilityText2); } else { AddLabel(Utility.CenteredTextOffset(232, epicAbilityText1), 101, textHue, epicAbilityText1); } if (epicAbilityReady) { AddLabel(244, 127, 169, "Ready"); } else { AddLabel(244, 127, 2562, epicAbilityTimeRemaining); } } else { AddLabel(Utility.CenteredTextOffset(230, "-"), 101, textHue, "-"); } if (m_Boat != null) { AddButton(162, 105, 2223, 2223, 24, GumpButtonType.Reply, 0); AddButton(270, 105, 2224, 2224, 25, GumpButtonType.Reply, 0); if (epicAbilityReady) { AddButton(211, 131, 2152, 2151, 26, GumpButtonType.Reply, 0); } else { AddButton(211, 131, 9720, 9722, 26, GumpButtonType.Reply, 0); } } //Stats AddLabel(48, 7, 149, "Hull"); AddImage(79, 11, 2057); AddImageTiled(79 + Utility.ProgressBarX(hullPercent), 14, Utility.ProgressBarWidth(hullPercent), 7, 2488); if (maxHullPoints > -1) { AddLabel(196, 7, textHue, hullPoints.ToString() + "/" + maxHullPoints.ToString()); } AddLabel(43, 27, 187, "Sails"); AddImage(79, 32, 2054); AddImageTiled(79 + Utility.ProgressBarX(sailPercent), 34, Utility.ProgressBarWidth(sailPercent), 7, 2488); if (maxSailPoints > -1) { AddLabel(196, 27, textHue, sailPoints.ToString() + "/" + maxSailPoints.ToString()); } AddLabel(43, 46, textHue, "Guns"); AddImage(79, 51, 2057, 2499); AddImageTiled(79 + Utility.ProgressBarX(gunPercent), 54, Utility.ProgressBarWidth(gunPercent), 7, 2488); if (maxGunPoints > -1) { AddLabel(196, 47, textHue, gunPoints.ToString() + "/" + maxGunPoints.ToString()); } } }
public AchievementsGump(Mobile from, PageType selectedPageType, int mainPage, AchievementCategory achievementCategory, int achievementListPage, int achievementSelectedIndex) : base(10, 10) { m_Player = from as PlayerMobile; if (m_Player == null) { return; } AchievementsPersistance.CheckAndCreateAchievementAccountEntry(m_Player); m_SelectedPageType = selectedPageType; m_MainPage = mainPage; m_AchievementCategory = achievementCategory; m_AchievementListPage = achievementListPage; m_AchievementSelectedIndex = achievementSelectedIndex; Closable = true; Disposable = true; Dragable = true; Resizable = false; int WhiteTextHue = 2655; int GreenTextHue = 63; int YellowTextHue = 2550; int GreyTextHue = 1102; int startX = 0; int startY = 0; AddPage(0); int totalPages; #region Background AddImage(409, 8, 103, 2401); AddImage(142, 105, 103); AddImage(143, 148, 103); AddImage(143, 234, 103); AddImage(143, 324, 103); AddImage(145, 410, 103, 2401); AddImage(8, 410, 103, 2401); AddImage(8, 233, 103, 2401); AddImage(142, 8, 103, 2401); AddImage(7, 147, 103, 2401); AddImage(8, 7, 103, 2401); AddImage(8, 104, 103, 2401); AddImage(17, 107, 3604, 2052); AddImage(143, 107, 3604, 2052); AddImage(17, 18, 3604, 2052); AddImage(143, 18, 3604, 2052); AddImage(8, 323, 103, 2401); AddImage(17, 194, 3604, 2052); AddImage(143, 194, 3604, 2052); AddImage(17, 286, 3604, 2052); AddImage(143, 286, 3604, 2052); AddImage(17, 370, 3604, 2052); AddImage(143, 370, 3604, 2052); AddImage(274, 105, 103); AddImage(275, 148, 103); AddImage(275, 234, 103); AddImage(275, 324, 103); AddImage(276, 410, 103, 2401); AddImage(274, 8, 103, 2401); AddImage(409, 91, 103, 2401); AddImage(409, 182, 103, 2401); AddImage(409, 261, 103, 2401); AddImage(409, 354, 103, 2401); AddImage(409, 410, 103, 2401); AddImage(267, 107, 3604, 2052); AddImage(267, 18, 3604, 2052); AddImage(267, 194, 3604, 2052); AddImage(267, 286, 3604, 2052); AddImage(267, 370, 3604, 2052); AddImage(375, 107, 3604, 2052); AddImage(375, 18, 3604, 2052); AddImage(375, 194, 3604, 2052); AddImage(375, 286, 3604, 2052); AddImage(375, 370, 3604, 2052); AddImage(411, 107, 3604, 2052); AddImage(411, 18, 3604, 2052); AddImage(411, 194, 3604, 2052); AddImage(411, 286, 3604, 2052); AddImage(412, 370, 3604, 2052); #endregion //Header AddImage(144, -2, 1143, 2499); AddLabel(235, 0, 2606, "Achievements"); //Guide AddButton(7, 8, 2094, 2095, 1, GumpButtonType.Reply, 0); AddLabel(3, -2, 149, "Guide"); switch (m_SelectedPageType) { #region Main case PageType.Main: int categoriesPerPage = categoryRows * categoryColumns; int totalCategories = Enum.GetNames(typeof(AchievementCategory)).Length; int totalCategoryPages = (int)(Math.Ceiling((double)totalCategories / (double)categoriesPerPage)); if (m_MainPage >= totalCategoryPages) { m_MainPage = 0; } if (m_MainPage < 0) { m_MainPage = 0; } int categoryStartIndex = m_MainPage * categoriesPerPage; int categoryEndIndex = (m_MainPage * categoriesPerPage) + (categoriesPerPage - 1); if (categoryEndIndex >= totalCategories) { categoryEndIndex = totalCategories - 1; } int totalCompletedAchievements = Achievements.GetCompletedAchievementCount(m_Player); int totalAchievementsAvailable = Achievements.GetTotalAchievementsCount(); //Previous if (m_MainPage > 0) { AddLabel(57, 472, WhiteTextHue, "Previous Page"); AddButton(23, 471, 4014, 4016, 2, GumpButtonType.Reply, 0); } //Next if (m_MainPage < totalCategoryPages - 1) { AddButton(502, 471, 4005, 4007, 3, GumpButtonType.Reply, 0); AddLabel(432, 472, WhiteTextHue, "Next Page"); } //Settings AddButton(243, 471, 4029, 4031, 4, GumpButtonType.Reply, 0); AddLabel(277, 472, 63, "Settings"); int textHue = GreyTextHue; if (totalCompletedAchievements > 0) { textHue = YellowTextHue; } if (totalCompletedAchievements == totalAchievementsAvailable) { textHue = GreenTextHue; } AddLabel(175, 447, 149, "Total"); AddLabel(332, 447, textHue, totalCompletedAchievements.ToString() + "/" + totalAchievementsAvailable.ToString()); double totalAchievementProgress = (double)totalCompletedAchievements / (double)totalAchievementsAvailable; AddImage(216, 452, Achievements.GetProgressBarBackground(totalAchievementProgress)); AddImageTiled(216 + Utility.ProgressBarX(totalAchievementProgress), 455, Utility.ProgressBarWidth(totalAchievementProgress), 7, 2488); int iBaseX = 25; int iBaseY = 30; startX = iBaseX; startY = iBaseY; int columnIndex = 0; int rowIndex = 0; int rowSpacing = 140; int columnSpacing = 125; int categoryDisplayCount = categoryEndIndex - categoryStartIndex; for (int a = 0; a < categoryDisplayCount + 1; a++) { int categoryIndex = categoryStartIndex + a; int buttonIndex = 10 + categoryIndex; if (categoryStartIndex >= totalCategories) { continue; } AchievementCategory category = (AchievementCategory)categoryIndex; AchievementCategoryDetail achievementCategoryDetail = Achievements.GetCategoryDetail(category); AddGumpCollection(GumpCollections.GetGumpCollection(achievementCategoryDetail.GumpCollectionGroupId, achievementCategoryDetail.GumpCollectionItemId), startX - 40, startY + 8); AddLabel(Utility.CenteredTextOffset(startX + 65, achievementCategoryDetail.m_CategoryName), startY + 5, achievementCategoryDetail.m_TextHue, achievementCategoryDetail.m_CategoryName); AddImage(startX + 60, startY + 32, 10550, achievementCategoryDetail.m_IconHue); AddImage(startX + 88, startY + 32, 10552, achievementCategoryDetail.m_IconHue); AddButton(startX + 74, startY + 46, 9721, 9721, buttonIndex, GumpButtonType.Reply, 0); //Category Progress int completedAchievementsInCategory = Achievements.GetCompletedCategoryAchievements(m_Player, category); int achievementsInCategory = Achievements.GetCategoryAchievements(category).Count; textHue = GreyTextHue; if (completedAchievementsInCategory > 0) { textHue = YellowTextHue; } if (completedAchievementsInCategory == achievementsInCategory) { textHue = GreenTextHue; } double categoryAchievementProgress = (double)completedAchievementsInCategory / (double)achievementsInCategory; string progressText = completedAchievementsInCategory.ToString() + "/" + achievementsInCategory.ToString(); AddImage(startX + 10, startY + 99, Achievements.GetProgressBarBackground(totalAchievementProgress)); AddImageTiled(startX + 10 + Utility.ProgressBarX(totalAchievementProgress), startY + 102, Utility.ProgressBarWidth(totalAchievementProgress), 7, 2488); AddLabel(Utility.CenteredTextOffset(startX + 60, progressText), startY + 113, textHue, progressText); startX += columnSpacing; columnIndex++; if (columnIndex >= categoryColumns) { columnIndex = 0; rowIndex++; startX = iBaseX; startY += rowSpacing; } } break; #endregion #region Category case PageType.Category: List <Achievement> m_AchievementsInCategory = Achievements.GetCategoryAchievements(m_AchievementCategory); AchievementCategoryDetail categoryDetail = Achievements.GetCategoryDetail(m_AchievementCategory); if (m_AchievementsInCategory.Count == 0) { return; } if (m_AchievementSelectedIndex >= m_AchievementsInCategory.Count) { m_AchievementSelectedIndex = 0; } Achievement achievementSelected = m_AchievementsInCategory[m_AchievementSelectedIndex]; int achievementsPerPage = 12; int totalAchievements = m_AchievementsInCategory.Count; int totalAchievementPages = (int)(Math.Ceiling((double)totalAchievements / (double)achievementsPerPage)); if (m_AchievementListPage >= totalAchievementPages) { m_AchievementListPage = 0; } if (m_AchievementListPage < 0) { m_AchievementListPage = 0; } int achievementStartIndex = m_AchievementListPage * achievementsPerPage; int achievementEndIndex = (m_AchievementListPage * achievementsPerPage) + (achievementsPerPage - 1); if (achievementEndIndex >= totalAchievements) { achievementEndIndex = totalAchievements - 1; } int achievementCount = achievementEndIndex - achievementStartIndex; //Return to Categories AddButton(23, 471, 4014, 4016, 5, GumpButtonType.Reply, 0); AddLabel(57, 472, 149, "Categories"); //Previous List Page if (m_AchievementListPage > 0) { AddButton(172, 471, 9909, 9909, 3, GumpButtonType.Reply, 0); } if (m_AchievementListPage > 0 || m_AchievementListPage < totalAchievementPages - 1) { AddLabel(201, 472, 149, "More"); } //Next List Page if (m_AchievementListPage < totalAchievementPages - 1) { AddButton(239, 471, 9903, 9903, 4, GumpButtonType.Reply, 0); } //Category startX = 25; startY = 30; int playerCompletedAchievementsInCategory = Achievements.GetCompletedCategoryAchievements(m_Player, m_AchievementCategory); int totalAchievementsInCategory = m_AchievementsInCategory.Count; textHue = GreyTextHue; if (playerCompletedAchievementsInCategory > 0) { textHue = YellowTextHue; } if (playerCompletedAchievementsInCategory == m_AchievementsInCategory.Count) { textHue = GreenTextHue; } double playerCategoryAchievementProgress = (double)playerCompletedAchievementsInCategory / (double)totalAchievementsInCategory; string categoryProgressText = playerCompletedAchievementsInCategory.ToString() + "/" + totalAchievementsInCategory.ToString(); startX = 25; startY = 30; //Category Image AddGumpCollection(GumpCollections.GetGumpCollection(categoryDetail.GumpCollectionGroupId, categoryDetail.GumpCollectionItemId), startX - 40, startY + 8); AddLabel(Utility.CenteredTextOffset(startX + 65, categoryDetail.m_CategoryName), startY + 5, categoryDetail.m_TextHue, categoryDetail.m_CategoryName); AddImage(startX + 60, startY + 32, 10550, categoryDetail.m_IconHue); AddImage(startX + 88, startY + 32, 10552, categoryDetail.m_IconHue); //Category Progress AddImage(startX + 10, startY + 99, Achievements.GetProgressBarBackground(playerCategoryAchievementProgress)); AddImageTiled(startX + 10 + Utility.ProgressBarX(playerCategoryAchievementProgress), startY + 102, Utility.ProgressBarWidth(playerCategoryAchievementProgress), 7, 2488); AddLabel(Utility.CenteredTextOffset(startX + 60, categoryProgressText), startY + 113, textHue, categoryProgressText); startX = 3; startY = 165; int achievementSpacing = 25; for (int a = 0; a < achievementCount + 1; a++) { int achievementIndex = achievementStartIndex + a; int buttonIndex = 10 + achievementIndex; if (achievementStartIndex >= totalAchievements) { continue; } Achievement achievement = m_AchievementsInCategory[achievementIndex]; AchievementDetail achievementDetail = Achievements.GetAchievementDetail(achievement); AchievementEntry achievementEntry = Achievements.GetAchievementEntry(m_Player, achievement); if (achievementDetail != null && achievementEntry != null) { textHue = WhiteTextHue; string completionPercentageText = "0%"; if (achievementEntry.m_Completed) { textHue = GreenTextHue; if (!achievementEntry.m_Claimed) { AddItem(startX, startY + 5, 572); //Green Orb } completionPercentageText = "100%"; } else { double completionPercentage = (double)achievementEntry.m_Progress / (double)achievementDetail.m_ProgressNeeded; completionPercentageText = Utility.CreateDecimalPercentageString(completionPercentage, 0); if (completionPercentage > 0 && completionPercentage < .01) { completionPercentageText = "1%"; } if (completionPercentage >= .99 && completionPercentage < 1.0) { completionPercentageText = "99%"; } if (completionPercentage > 0) { textHue = YellowTextHue; } } if (!achievementEntry.m_Unlocked) { textHue = GreyTextHue; //AddItem(startX, startY + 5, 573); //Orange Orb } if (achievementSelected == achievement) { AddButton(startX + 33, startY, 4030, 4030, buttonIndex, GumpButtonType.Reply, 0); } else { AddButton(startX + 33, startY, 4029, 4031, buttonIndex, GumpButtonType.Reply, 0); } AddLabel(startX + 68, startY + 1, textHue, completionPercentageText); AddLabel(startX + 110, startY + 1, textHue, achievementDetail.m_DisplayName); } startY += achievementSpacing; } #region Achievement Window AddImage(408, 233, 103, 2401); AddImage(408, 150, 103, 2401); AddImage(408, 60, 103, 2401); AddImage(306, 150, 103); AddImage(303, 234, 103, 2401); AddImage(303, 150, 103, 2401); AddImage(303, 60, 103, 2401); AddImage(316, 72, 3604, 2052); AddImage(316, 195, 3604, 2052); AddImage(410, 72, 3604, 2052); AddImage(411, 195, 3604, 2052); AddImage(408, 322, 103, 2401); AddImage(303, 323, 103, 2401); AddImage(316, 284, 3604, 2052); AddImage(411, 284, 3604, 2052); AddImage(408, 362, 103, 2401); AddImage(303, 363, 103, 2401); AddImage(316, 324, 3604, 2052); AddImage(411, 324, 3604, 2052); AddImage(516, 49, 10441, 2401); #endregion AchievementDetail selectedAchievementDetail = Achievements.GetAchievementDetail(achievementSelected); AchievementEntry selectedAchievementEntry = Achievements.GetAchievementEntry(m_Player, achievementSelected); int centerTextX = 440; int textY = 80; rowSpacing = 20; AddImage(349, 54, 2440, 1102); AddLabel(Utility.CenteredTextOffset(centerTextX, selectedAchievementDetail.m_DisplayName), 55, categoryDetail.m_TextHue, selectedAchievementDetail.m_DisplayName); if (selectedAchievementDetail != null && selectedAchievementEntry != null) { if (!selectedAchievementEntry.m_Unlocked) { string unlockedText = "Stage " + selectedAchievementDetail.m_Stage.ToString() + " (Not Yet Unlocked)"; AddLabel(Utility.CenteredTextOffset(centerTextX, unlockedText), textY, GreyTextHue, unlockedText); textY += rowSpacing; } for (int a = 0; a < selectedAchievementDetail.m_Description.Length; a++) { AddLabel(Utility.CenteredTextOffset(centerTextX, selectedAchievementDetail.m_Description[a]), textY, WhiteTextHue, selectedAchievementDetail.m_Description[a]); textY += rowSpacing; } AddLabel(409, 184, 2599, "Progress"); double selectedAchievementProgress = (double)selectedAchievementEntry.m_Progress / (double)selectedAchievementDetail.m_ProgressNeeded; textHue = GreyTextHue; if (selectedAchievementEntry.m_Progress > 0) { textHue = YellowTextHue; } if (selectedAchievementEntry.m_Progress == selectedAchievementDetail.m_ProgressNeeded) { textHue = GreenTextHue; } AddImage(382, 205, Achievements.GetProgressBarBackground(selectedAchievementProgress)); AddImageTiled(382 + Utility.ProgressBarX(selectedAchievementProgress), 208, Utility.ProgressBarWidth(selectedAchievementProgress), 7, 2488); string progressText = selectedAchievementEntry.m_Progress.ToString() + "/" + selectedAchievementDetail.m_ProgressNeeded.ToString(); AddLabel(Utility.CenteredTextOffset(centerTextX - 5, progressText), 220, textHue, progressText); AddLabel(415, 250, 63, "Reward"); textY = 270; for (int a = 0; a < selectedAchievementDetail.m_RewardDescription.Length; a++) { AddLabel(Utility.CenteredTextOffset(centerTextX, selectedAchievementDetail.m_RewardDescription[a]), textY, WhiteTextHue, selectedAchievementDetail.m_RewardDescription[a]); textY += rowSpacing; } if (selectedAchievementDetail.m_RewardItemID != 0) { AddItem(360 + selectedAchievementDetail.m_RewardItemOffsetX, textY + 20 + selectedAchievementDetail.m_RewardItemOffsetY, selectedAchievementDetail.m_RewardItemID, selectedAchievementDetail.m_RewardItemHue); } else { AddGumpCollection(GumpCollections.GetGumpCollection(selectedAchievementDetail.GumpCollectionGroupId, selectedAchievementDetail.GumpCollectionItemId), 355, 350); } if (selectedAchievementEntry.m_Completed) { if (selectedAchievementEntry.m_Claimed) { AddLabel(426, 472, 63, "Claim"); AddButton(426, 442, 2151, 2154, 6, GumpButtonType.Reply, 0); } else { AddLabel(393, 462, 149, "Already Claimed"); } } } break; #endregion case PageType.Settings: break; } }