using System; using Server; using Server.Multis; using System.Collections.Generic; using Server.Network; namespace Server.Gumps { public class AccessListGump : BaseShipGump { private BaseGalleon m_Galleon; private SecurityEntry m_Entry; private List m_UseList; public AccessListGump(Mobile from, BaseGalleon galleon) : base(galleon) { from.CloseGump(typeof(AccessListGump)); m_Galleon = galleon; m_Entry = galleon.SecurityEntry; if (m_Entry == null) { m_Entry = new SecurityEntry(m_Galleon); m_Galleon.SecurityEntry = m_Entry; } AddButton(10, 355, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0); AddHtmlLocalized(45, 357, 100, 18, 1149777, LabelColor, false, false); // MAIN MENU m_UseList = new List(m_Entry.Manifest.Keys); int page = 1; int y = 79; AddPage(page); for (int i = 0; i < m_UseList.Count; i++) { if (page > 1) AddButton(270, 390, 4014, 4016, 0, GumpButtonType.Page, page - 1); Mobile mob = m_UseList[i]; if (mob == null || m_Galleon.IsOwner(mob)) continue; string name = mob.Name; SecurityLevel level = m_Entry.GetEffectiveLevel(mob); AddButton(10, y, 0xFA5, 0xFA7, i + 2, GumpButtonType.Reply, 0); AddLabel(45, y + 2, 0x3E7, name); AddHtmlLocalized(160, y + 2, 150, 18, GetLevel(level), GetHue(level), false, false); y += 25; bool pages = (i + 1) % 10 == 0; if (pages && m_UseList.Count - 1 != i) { AddButton(310, 390, 4005, 4007, 0, GumpButtonType.Page, page + 1); page++; y = 0; AddPage(page); } } } public override void OnResponse(NetState sender, RelayInfo info) { Mobile from = sender.Mobile; if (info.ButtonID == 1) from.SendGump(new ShipSecurityGump(from, m_Galleon)); else if (info.ButtonID > 1) { int index = info.ButtonID - 2; if (index < 0 || index >= m_UseList.Count) return; Mobile mob = m_UseList[index]; from.SendGump(new GrantAccessGump(mob, m_Galleon)); } } } }