186 lines
7.0 KiB
C#
186 lines
7.0 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Multis;
|
|
using Server.Network;
|
|
|
|
namespace Server.Gumps
|
|
{
|
|
public class GrantAccessGump : BaseShipGump
|
|
{
|
|
private Mobile m_Player;
|
|
private BaseGalleon m_Galleon;
|
|
private SecurityEntry m_Entry;
|
|
|
|
public GrantAccessGump(Mobile player, BaseGalleon galleon)
|
|
: base(galleon)
|
|
{
|
|
player.CloseGump(typeof(GrantAccessGump));
|
|
|
|
m_Player = player;
|
|
m_Galleon = galleon;
|
|
m_Entry = galleon.SecurityEntry;
|
|
|
|
if (m_Entry == null)
|
|
{
|
|
m_Entry = new SecurityEntry(m_Galleon);
|
|
m_Galleon.SecurityEntry = m_Entry;
|
|
}
|
|
|
|
bool isAccessed = m_Entry.Manifest.ContainsKey(player);
|
|
bool inGuild = m_Entry.IsInGuild(player);
|
|
bool inParty = m_Entry.IsInParty(player);
|
|
bool isPublic = m_Entry.IsPublic;
|
|
SecurityLevel level = m_Entry.GetEffectiveLevel(player);
|
|
|
|
//Player Info
|
|
AddHtmlLocalized(10, 79, 125, 18, 1149763, LabelColor, false, false); // Player:
|
|
AddLabel(140, 79, 0x30, player.Name);
|
|
|
|
AddHtmlLocalized(10, 97, 125, 18, 1149768, LabelColor, false, false); // Effective Level:
|
|
AddHtmlLocalized(140, 97, 160, 18, GetLevel(level), GetHue(level), false, false);
|
|
|
|
//Default Info
|
|
int cliloc = isPublic ? 1149756 : 1149757;
|
|
int hue = isPublic ? CrewHue : NoHue;
|
|
|
|
AddHtmlLocalized(10, 120, 125, 18, 1149731, LabelColor, false, false); // Public Access:
|
|
AddHtmlLocalized(140, 120, 50, 18, cliloc, hue, false, false); // Yes/No
|
|
|
|
if (isPublic)
|
|
AddHtmlLocalized(200, 120, 100, 18, GetLevel(m_Entry.DefaultPublicAccess), GetHue(m_Entry.DefaultPublicAccess), false, false);
|
|
|
|
cliloc = inParty ? 1149756 : 1149757;
|
|
hue = inParty ? CrewHue : NoHue;
|
|
|
|
AddHtmlLocalized(10, 138, 125, 18, 1149769, LabelColor, false, false); // Is Party Member:
|
|
AddHtmlLocalized(140, 138, 50, 18, cliloc, hue, false, false);
|
|
|
|
if (inParty)
|
|
AddHtmlLocalized(200, 138, 50, 18, GetLevel(m_Entry.DefaultPartyAccess), GetHue(m_Entry.DefaultPartyAccess), false, false);
|
|
|
|
cliloc = inGuild ? 1149756 : 1149757;
|
|
hue = inGuild ? CrewHue : NoHue;
|
|
|
|
AddHtmlLocalized(10, 156, 125, 18, 1149770, LabelColor, false, false); // Is Guild Member
|
|
AddHtmlLocalized(140, 156, 50, 18, cliloc, hue, false, false);
|
|
|
|
if (inGuild)
|
|
AddHtmlLocalized(200, 156, 50, 18, GetLevel(m_Entry.DefaultGuildAccess), GetHue(m_Entry.DefaultGuildAccess), false, false);
|
|
|
|
AddHtmlLocalized(10, 179, 300, 18, 1149747, LabelColor, false, false); // Access List Status:
|
|
|
|
if (level == SecurityLevel.NA)
|
|
{
|
|
AddImage(65, 197, 0xFA6);
|
|
AddHtmlLocalized(100, 199, 200, 18, 1149775, NoHue, false, false); // NOT IN ACCESS LIST
|
|
}
|
|
else
|
|
{
|
|
AddButton(65, 197, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0);
|
|
AddHtmlLocalized(100, 199, 200, 18, 1149776, NoHue, false, false); // REMOVE FROM LIST
|
|
}
|
|
|
|
if (level == SecurityLevel.Denied)
|
|
{
|
|
AddImage(65, 215, 0xFA6);
|
|
}
|
|
else
|
|
{
|
|
AddButton(65, 215, 0xFA5, 0xFA7, 2, GumpButtonType.Reply, 0);
|
|
}
|
|
|
|
AddHtmlLocalized(100, 217, 100, 18, 1149726, level == SecurityLevel.Denied ? GetHue(level) : LabelColor, false, false); // DENY ACCESS
|
|
|
|
if (level == SecurityLevel.Passenger)
|
|
{
|
|
AddImage(65, 233, 0xFA6);
|
|
}
|
|
else
|
|
{
|
|
AddButton(65, 233, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0);
|
|
}
|
|
|
|
AddHtmlLocalized(100, 235, 100, 18, 1149727, level == SecurityLevel.Passenger ? GetHue(level) : LabelColor, false, false); // PASSENGER
|
|
|
|
if (level == SecurityLevel.Crewman)
|
|
{
|
|
AddImage(65, 251, 0xFA6);
|
|
}
|
|
else
|
|
{
|
|
AddButton(65, 251, 0xFA5, 0xFA7, 4, GumpButtonType.Reply, 0);
|
|
}
|
|
|
|
AddHtmlLocalized(100, 253, 100, 18, 1149728, level == SecurityLevel.Crewman ? GetHue(level) : LabelColor, false, false); // CREW
|
|
|
|
if (level == SecurityLevel.Officer)
|
|
{
|
|
AddImage(65, 269, 0xFA6);
|
|
}
|
|
else
|
|
{
|
|
AddButton(65, 269, 0xFA5, 0xFA7, 5, GumpButtonType.Reply, 0);
|
|
}
|
|
|
|
AddHtmlLocalized(100, 271, 100, 18, 1149729, level == SecurityLevel.Officer ? GetHue(level) : LabelColor, false, false); // OFFICER
|
|
|
|
if (level == SecurityLevel.Captain)
|
|
{
|
|
AddImage(65, 287, 0xFA6);
|
|
}
|
|
else
|
|
{
|
|
AddButton(65, 287, 0xFA5, 0xFA7, 6, GumpButtonType.Reply, 0);
|
|
}
|
|
|
|
AddHtmlLocalized(100, 289, 100, 18, 1149730, level == SecurityLevel.Captain ? GetHue(level) : LabelColor, false, false); // CAPTAIN
|
|
|
|
AddButton(10, 355, 0xFA5, 0xFA7, 7, GumpButtonType.Reply, 0);
|
|
AddHtmlLocalized(45, 357, 100, 18, 1149777, LabelColor, false, false); // MAIN MENU
|
|
|
|
AddButton(160, 355, 0xFA5, 0xFA, 8, GumpButtonType.Reply, 0);
|
|
AddHtmlLocalized(195, 357, 100, 18, 1149734, LabelColor, false, false); // ACCESS LIST
|
|
}
|
|
|
|
public override void OnResponse(NetState sender, RelayInfo info)
|
|
{
|
|
Mobile from = sender.Mobile;
|
|
|
|
if (from == null)
|
|
return;
|
|
|
|
switch (info.ButtonID)
|
|
{
|
|
case 0: return;
|
|
case 1: // REMOVE FROM LIST
|
|
m_Entry.RemoveFromAccessList(m_Player);
|
|
from.SendGump(new AccessListGump(m_Player, m_Galleon));
|
|
return;
|
|
case 2: // DENY ACCESS
|
|
m_Entry.AddToManifest(m_Player, SecurityLevel.Denied);
|
|
break;
|
|
case 3: // PASSENGER
|
|
m_Entry.AddToManifest(m_Player, SecurityLevel.Passenger);
|
|
break;
|
|
case 4: // CREW
|
|
m_Entry.AddToManifest(m_Player, SecurityLevel.Crewman);
|
|
break;
|
|
case 5: // OFFICER
|
|
m_Entry.AddToManifest(m_Player, SecurityLevel.Officer);
|
|
break;
|
|
case 6: // CAPTAIN
|
|
m_Entry.AddToManifest(m_Player, SecurityLevel.Captain);
|
|
break;
|
|
case 7: // MAIN MENU
|
|
from.SendGump(new ShipSecurityGump(from, m_Galleon));
|
|
return;
|
|
case 8: // ACCESS LIST
|
|
from.SendGump(new AccessListGump(m_Player, m_Galleon));
|
|
return;
|
|
}
|
|
|
|
from.SendGump(new GrantAccessGump(m_Player, m_Galleon));
|
|
}
|
|
}
|
|
}
|