public static SpellHueTypeDetail GetSpellHueTypeDetail(SpellHueType spellHueType) { SpellHueTypeDetail detail = new SpellHueTypeDetail(); detail.m_SpellHueType = spellHueType; #region Spell Hue Type Details switch (spellHueType) { case SpellHueType.Standard: detail.m_SpellHueTypeName = "Standard"; detail.m_IconHue = 0; detail.m_TextHue = 2499; detail.m_SpellHue = 0; break; case SpellHueType.Charcoal: detail.m_SpellHueTypeName = "Fire"; detail.m_IconHue = 2117; detail.m_TextHue = 2117; detail.m_SpellHue = 2117; break; case SpellHueType.Earthen: detail.m_SpellHueTypeName = "Earthen"; detail.m_IconHue = 2550; detail.m_TextHue = 2550; detail.m_SpellHue = 2550; break; case SpellHueType.Rose: detail.m_SpellHueTypeName = "Rose"; detail.m_IconHue = 2660; detail.m_TextHue = 2660; detail.m_SpellHue = 2660; break; case SpellHueType.Otherworldly: detail.m_SpellHueTypeName = "Otherworldly"; detail.m_IconHue = 2962; detail.m_TextHue = 2962; detail.m_SpellHue = 2962; break; } #endregion return(detail); }
public PlayerSpellHuesGump(Mobile from, int pageNumber) : base(10, 10) { PlayerMobile player = from as PlayerMobile; if (player == null) { return; } m_Player = player; m_PageNumber = pageNumber; Closable = true; Disposable = true; Dragable = true; Resizable = false; AddImage(0, 44, 202); AddImage(44, 0, 201); AddImage(0, 0, 206); AddImage(0, 468, 204); AddImage(590, 1, 207); AddImage(590, 468, 205); AddImage(44, 468, 233); AddImage(590, 45, 203); AddImageTiled(44, 44, 546, 424, 200); AddImage(0, 152, 202); AddImage(163, 0, 201); AddImage(166, 468, 233); AddImage(590, 152, 203); //------------- int textHue = 2036; int boldHue = 149; int totalSpells = Enum.GetNames(typeof(HueableSpell)).Length; int totalHues = Enum.GetNames(typeof(SpellHueType)).Length; int spellsPerPage = 3; m_TotalPages = (int)(Math.Ceiling((double)totalSpells / (double)spellsPerPage)); int indexStart = (m_PageNumber - 1) * spellsPerPage; int indexEnd; if (indexStart + spellsPerPage <= totalSpells) { indexEnd = indexStart + spellsPerPage; } else { indexEnd = totalSpells; } var iStartY = 50; var iSpacingY = 135; AddLabel(292, 20, 2606, "Spell Hues"); int iRow = 0; //Entry for (int a = indexStart; a < indexEnd; a++) { HueableSpell hueableSpell = (HueableSpell)a; HueableSpellDetail spellDetail = SpellHue.GetHueableSpellDetail(hueableSpell); SpellHueEntry spellEntry = PlayerEnhancementPersistance.GetSpellHueEntry(player, hueableSpell); if (hueableSpell == null || spellDetail == null || spellEntry == null) { return; } m_SpellsOnPage.Add(hueableSpell); AddLabel(320 - (spellDetail.m_SpellName.Length * 3), iStartY, boldHue, spellDetail.m_SpellName); for (int b = 0; b < totalHues; b++) { SpellHueType spellHueType = (SpellHueType)b; SpellHueTypeDetail spellHueTypeDetail = SpellHue.GetSpellHueTypeDetail(spellHueType); AddItem((100 + (75 * b)), iStartY + 25, spellDetail.m_IconItemId, spellHueTypeDetail.m_DisplayHue); AddLabel((120 + (75 * b)) - (spellHueTypeDetail.m_Name.Length * 3), iStartY + 75, textHue, spellHueTypeDetail.m_Name); bool unlocked = false; bool active = false; if (spellEntry.m_UnlockedHues.Contains(spellHueType)) { unlocked = true; } if (spellEntry.m_ActiveHue == spellHueType) { active = true; } int buttonIndex = 3 + (iRow * totalHues) + b; if (unlocked) { if (active) { AddButton(105 + (75 * b), iStartY + 100, 2154, 2151, buttonIndex, GumpButtonType.Reply, 0); } else { AddButton(105 + (75 * b), iStartY + 100, 2151, 2154, buttonIndex, GumpButtonType.Reply, 0); } } else { AddButton(105 + (75 * b), iStartY + 100, 9727, 9727, buttonIndex, GumpButtonType.Reply, 0); } } iStartY += iSpacingY; iRow++; } //Navigation if (m_PageNumber > 1) { AddButton(50, 465, 4014, 4016, 1, GumpButtonType.Reply, 0); AddLabel(85, 465, textHue, @"Previous Page"); } if (m_PageNumber < m_TotalPages) { AddButton(485, 465, 4005, 4007, 2, GumpButtonType.Reply, 0); AddLabel(520, 465, textHue, @"Next Page"); } }