87 lines
2.5 KiB
C#
87 lines
2.5 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Network;
|
|
using Server.Items;
|
|
|
|
namespace Server.Gumps
|
|
{
|
|
public class DawnsMusicBoxGump : Gump
|
|
{
|
|
private 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 ] );
|
|
}
|
|
}
|
|
}
|