Files
abysmal-isle/Scripts/Gumps/DawnsMusicBoxGump.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

99 lines
2.4 KiB
C#

#region References
using Server.Items;
using Server.Network;
#endregion
namespace Server.Gumps
{
public class DawnsMusicBoxGump : Gump
{
private readonly DawnsMusicBox m_Box;
public DawnsMusicBoxGump(DawnsMusicBox box)
: base(60, 36)
{
m_Box = box;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF, false, false); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1075130, 0x7FFF, false, false); // Choose a track to play
int page = 1;
int i, y = 49;
AddPage(page);
for (i = 0; i < m_Box.Tracks.Count; i++, y += 24)
{
DawnsMusicInfo info = DawnsMusicBox.GetInfo(m_Box.Tracks[i]);
if (i > 0 && i % 10 == 0)
{
AddButton(228, 294, 0xFA5, 0xFA6, 0, GumpButtonType.Page, page + 1);
AddPage(page + 1);
y = 49;
AddButton(193, 294, 0xFAE, 0xFAF, 0, GumpButtonType.Page, page);
page++;
}
if (info == null)
{
continue;
}
AddButton(19, y, 0x845, 0x846, 100 + i, GumpButtonType.Reply, 0);
AddHtmlLocalized(44, y - 2, 213, 20, info.Name, 0x7FFF, false, false);
}
if (i % 10 == 0)
{
AddButton(228, 294, 0xFA5, 0xFA6, 0, GumpButtonType.Page, page + 1);
AddPage(page + 1);
y = 49;
AddButton(193, 294, 0xFAE, 0xFAF, 0, GumpButtonType.Page, page);
}
AddButton(19, y, 0x845, 0x846, 1, GumpButtonType.Reply, 0);
AddHtmlLocalized(44, y - 2, 213, 20, 1075207, 0x7FFF, false, false); // Stop Song
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Box == null || m_Box.Deleted)
{
return;
}
Mobile m = sender.Mobile;
if (!m_Box.IsChildOf(m.Backpack) && !m_Box.IsLockedDown)
{
m.SendLocalizedMessage(1061856); // You must have the item in your backpack or locked down in order to use it.
}
else if (m_Box.IsLockedDown && !m_Box.HasAccces(m))
{
m.SendLocalizedMessage(502691); // You must be the owner to use this.
}
else if (info.ButtonID == 1)
{
m_Box.EndMusic(m);
}
else if (info.ButtonID >= 100 && info.ButtonID - 100 < m_Box.Tracks.Count)
{
m_Box.PlayMusic(m, m_Box.Tracks[info.ButtonID - 100]);
}
}
}
}