servuo/Scripts/Gumps/AddSignGump.cs
TrueUO 1c7f53a414
OCT17 (#4887)
* OCT17

Minor gump cleanup and XML cleanup.

* Improvements

- Skill Gain is no longer redundantly checked against the same values inside of XMLSpawner.
- AI_Animal (which was not used and just defaulted to AI_Melee) along with AI_Beserk, AI_Predator, and AI_Thief have been safely removed.
- ItemFlags.cs has been moved from XMLSpawner to MISC.
- Removed some misc double calls.

* Needed for recent AI fix.

* Item Fix
2020-10-21 10:15:47 -07:00

225 lines
7.2 KiB
C#

using Server.Commands;
using Server.Network;
namespace Server.Gumps
{
public class AddSignGump : Gump
{
public static SignInfo[] m_Types = new SignInfo[]
{
new SignInfo(0xB95),
new SignInfo(0xB96),
new SignInfo(0xBA3),
new SignInfo(0xBA4),
new SignInfo(0xBA5),
new SignInfo(0xBA6),
new SignInfo(0xBA7),
new SignInfo(0xBA8),
new SignInfo(0xBA9),
new SignInfo(0xBAA),
new SignInfo(0xBAB),
new SignInfo(0xBAC),
new SignInfo(0xBAD),
new SignInfo(0xBAE),
new SignInfo(0xBAF),
new SignInfo(0xBB0),
new SignInfo(0xBB1),
new SignInfo(0xBB2),
new SignInfo(0xBB3),
new SignInfo(0xBB4),
new SignInfo(0xBB5),
new SignInfo(0xBB6),
new SignInfo(0xBB7),
new SignInfo(0xBB8),
new SignInfo(0xBB9),
new SignInfo(0xBBA),
new SignInfo(0xBBB),
new SignInfo(0xBBC),
new SignInfo(0xBBD),
new SignInfo(0xBBE),
new SignInfo(0xBBF),
new SignInfo(0xBC0),
new SignInfo(0xBC1),
new SignInfo(0xBC2),
new SignInfo(0xBC3),
new SignInfo(0xBC4),
new SignInfo(0xBC5),
new SignInfo(0xBC6),
new SignInfo(0xBC7),
new SignInfo(0xBC8),
new SignInfo(0xBC9),
new SignInfo(0xBCA),
new SignInfo(0xBCB),
new SignInfo(0xBCC),
new SignInfo(0xBCD),
new SignInfo(0xBCE),
new SignInfo(0xBCF),
new SignInfo(0xBD0),
new SignInfo(0xBD1),
new SignInfo(0xBD2),
new SignInfo(0xBD3),
new SignInfo(0xBD4),
new SignInfo(0xBD5),
new SignInfo(0xBD6),
new SignInfo(0xBD7),
new SignInfo(0xBD8),
new SignInfo(0xBD9),
new SignInfo(0xBDA),
new SignInfo(0xBDB),
new SignInfo(0xBDC),
new SignInfo(0xBDD),
new SignInfo(0xBDE),
new SignInfo(0xBDF),
new SignInfo(0xBE0),
new SignInfo(0xBE1),
new SignInfo(0xBE2),
new SignInfo(0xBE3),
new SignInfo(0xBE4),
new SignInfo(0xBE5),
new SignInfo(0xBE6),
new SignInfo(0xBE7),
new SignInfo(0xBE8),
new SignInfo(0xBE9),
new SignInfo(0xBEA),
new SignInfo(0xBEB),
new SignInfo(0xBEC),
new SignInfo(0xBED),
new SignInfo(0xBEE),
new SignInfo(0xBEF),
new SignInfo(0xBF0),
new SignInfo(0xBF1),
new SignInfo(0xBF2),
new SignInfo(0xBF3),
new SignInfo(0xBF4),
new SignInfo(0xBF5),
new SignInfo(0xBF6),
new SignInfo(0xBF7),
new SignInfo(0xBF8),
new SignInfo(0xBF9),
new SignInfo(0xBFA),
new SignInfo(0xBFB),
new SignInfo(0xBFC),
new SignInfo(0xBFD),
new SignInfo(0xBFE),
new SignInfo(0xBFF),
new SignInfo(0xC00),
new SignInfo(0xC01),
new SignInfo(0xC02),
new SignInfo(0xC03),
new SignInfo(0xC04),
new SignInfo(0xC05),
new SignInfo(0xC06),
new SignInfo(0xC07),
new SignInfo(0xC08),
new SignInfo(0xC09),
new SignInfo(0xC0A),
new SignInfo(0xC0B),
new SignInfo(0xC0C),
new SignInfo(0xC0D),
new SignInfo(0xC0E),
new SignInfo(0x1297),
new SignInfo(0x1298),
new SignInfo(0x1299),
new SignInfo(0x129A),
new SignInfo(0x129B),
new SignInfo(0x129C),
new SignInfo(0x129D),
new SignInfo(0x129E),
new SignInfo(0x1F28),
new SignInfo(0x1F29),
new SignInfo(0x4B20),
new SignInfo(0x4B21),
new SignInfo(0x9A0C),
new SignInfo(0x9A0D),
new SignInfo(0x9A0E),
new SignInfo(0x9A0F),
new SignInfo(0x9A10),
new SignInfo(0x9A11),
new SignInfo(0x9A12),
new SignInfo(0x9A13)
};
public AddSignGump()
: base(50, 40)
{
AddPage(0);
AddBlueBack(570, 175);
int pages = m_Types.Length / 20 + 1;
for (int i = 0; i < m_Types.Length; ++i)
{
int page = i / 20 + 1;
int xpos = (i / 2) % 10;
int ypos = i % 2;
if (xpos == 0 && ypos == 0)
{
AddPage(page);
AddHtmlLocalized(30, 20, 60, 20, 1042971, string.Format("{0}", page), 0x7FFF, false, false); // #
AddHtmlLocalized(30, 45, 60, 20, 1043353, 0x7FFF, false, false); // Next
if (page < pages)
AddButton(30, 60, 0xFA5, 0xFA7, 0, GumpButtonType.Page, page + 1);
else
AddButton(30, 60, 0xFA5, 0xFA7, 0, GumpButtonType.Page, 1);
AddHtmlLocalized(30, 85, 60, 20, 1011393, 0x7FFF, false, false); // Back
if (page > 1)
AddButton(30, 100, 0xFAE, 0xFB0, 0, GumpButtonType.Page, page - 1);
else
AddButton(30, 100, 0xFAE, 0xFB0, 0, GumpButtonType.Page, pages);
}
if (m_Types[i].m_BaseID == 0)
continue;
int x = (xpos + 1) * 50;
int y = (ypos * 75);
AddButton(30 + x, 20 + y, 0x2624, 0x2625, i + 1, GumpButtonType.Reply, m_Types[i].m_BaseID);
AddItem(15 + x, 40 + y, m_Types[i].m_BaseID);
}
}
public static void Initialize()
{
CommandSystem.Register("AddSign", AccessLevel.GameMaster, AddSign_OnCommand);
}
[Usage("AddSign")]
[Description("Displays a menu from which you can interactively add signs.")]
public static void AddSign_OnCommand(CommandEventArgs e)
{
e.Mobile.SendGump(new AddSignGump());
}
public void AddBlueBack(int width, int height)
{
AddBackground(0, 0, width - 00, height - 00, 0xE10);
AddBackground(8, 5, width - 16, height - 11, 0x053);
AddImageTiled(15, 14, width - 29, height - 29, 0xE14);
AddAlphaRegion(15, 14, width - 29, height - 29);
}
public override void OnResponse(NetState sender, RelayInfo info)
{
Mobile from = sender.Mobile;
int button = info.ButtonID - 1;
if (button < 0)
return;
CommandSystem.Handle(from, string.Format("{0}Add {1} {2}", CommandSystem.Prefix, " Sign ", m_Types[button].m_BaseID));
from.SendGump(new AddSignGump());
}
}
public class SignInfo
{
public int m_BaseID;
public SignInfo(int baseID)
{
m_BaseID = baseID;
}
}
}