using System; using System.Collections; using System.Collections.Generic; using Server; using Server.Commands; using Server.Gumps; using Server.Network; namespace Server.ACC { public class ACCGump : Gump { public static void Initialize() { CommandSystem.Register( "ACC", ACC.GlobalMinimumAccessLevel, new CommandEventHandler( OnCommand ) ); } [Usage( "ACC" )] [Description( "Sends the ACC Gump" )] private static void OnCommand( CommandEventArgs e ) { e.Mobile.SendGump( new ACCGump( e.Mobile, null, null ) ); } private List m_List; private string m_SysString; private ACCSystem m_Syst; private ACCGumpParams m_SubP; public ACCGump( Mobile from, string system, ACCGumpParams subParams ) : base( 0, 0 ) { if( from.AccessLevel < ACC.GlobalMinimumAccessLevel ) return; m_List = new List(); m_SysString = system; m_SubP = subParams; foreach( KeyValuePair kvp in ACC.RegisteredSystems ) { m_List.Add( kvp.Key ); } Closable = true; Disposable = true; Dragable = true; Resizable = false; AddPage(0); AddBackground( 0, 0, 630, 360, 5120 ); //Top BG AddBackground( 0, 360, 630, 113, 5120 ); //Bottom BG AddImageTiled( 0, 446, 620, 50, 10452 ); //Bottom if( system == null ) { AddHtml( 175, 40, 375, 30, "
A_Li_N - Completely Custom
", false, false ); AddHtml( 175, 80, 420, 265, "Thanks for choosing to test A_Li_N - Completely Custom. With this gump, you will be able to control every aspect of my systems that are changable in-game. Currently, there are only a couple test bases that I have made to do minimal testing. If you have any questions, concerns, requests, bugs or anything else having to do with my systems, please email me at anAliengmail.com with the topic of 'ACC'. Enjoy!", false, false ); } for( int i = 0; i < m_List.Count; i++ ) { Type t = Type.GetType( m_List[i] ); if( t == null ) continue; ACCSystem sys = (ACCSystem)Activator.CreateInstance( t ); if( sys == null ) continue; AddButton( (i<3?35:(i<6?225:415)), (i%3==0?372:(i%3==1?397:422)), 1122, 1124, i+1, GumpButtonType.Reply, 0 ); AddHtml( (i<3?35:(i<6?225:415)), (i%3==0?370:(i%3==1?395:420)), 184, 20, String.Format( "
{0}
", sys.Name() ), false, false ); if( system == m_List[i] ) m_Syst = sys; } if( m_Syst != null ) { AddButton( 560, 0, 1417, 1417, 10, GumpButtonType.Reply, 0 ); if( m_Syst.Enabled ) AddLabel( 592, 45, 66, "On" ); else AddLabel( 588, 45, 36, "Off" ); // AddButton( 15, 340, 22153, 22155, 11, GumpButtonType.Reply, 0 ); //Help } AddImage( 0, 0, 9002); //Border AddImage( 580, 350, 10410); //Dragon if( m_Syst != null ) { AddPage(1); m_Syst.Gump( from, this, m_SubP ); } } /* Reserved ButtonIDs 1-9 = System Buttons 10 = Dis/Enable System 11 = System Help */ public override void OnResponse( NetState state, RelayInfo info ) { if( info.ButtonID == 0 || state.Mobile.AccessLevel < ACC.GlobalMinimumAccessLevel ) return; if( info.ButtonID >= 1 && info.ButtonID < 10 ) { int page = info.ButtonID-1; if( m_SysString == m_List[page] ) state.Mobile.SendGump( new ACCGump( state.Mobile, null, null ) ); else if( page >= 0 && page <= m_List.Count ) state.Mobile.SendGump( new ACCGump( state.Mobile, m_List[page], null ) ); return; } if( info.ButtonID == 10 && m_Syst != null ) { state.Mobile.SendMessage( "{0} {1}", (m_Syst.Enabled?"Disabling":"Enabling"), m_Syst.Name() ); if( m_Syst.Enabled ) ACC.DisableSystem( m_Syst.ToString() ); else ACC.EnableSystem( m_Syst.ToString() ); state.Mobile.SendGump( new ACCGump( state.Mobile, m_SysString, m_SubP ) ); return; } /* if( info.ButtonID == 11 && m_Syst != null ) { m_Syst.Help(); } */ if( m_Syst != null ) m_Syst.OnResponse( state, info, m_SubP ); } } }