using System; using System.Collections.Generic; using Server; using Server.Multis; using Server.Targeting; using Server.ContextMenus; using Server.Gumps; using Server.Network; using Server.Misc; namespace Server.Items { public class PigmentTub : DyeTub { public override bool AllowLeather{ get{ return Settings.PigmentLeather(); } } public override bool AllowMetal{ get{ return Settings.PigmentMetal(); } } public override bool AllowWood{ get{ return Settings.PigmentWood(); } } public int m_Color; public int m_Hue; public int m_Category; [Constructable] public PigmentTub() { Name = "pigment tub"; } public PigmentTub( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 1 ); // version } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); } public static int tubCost() { int value = 1000; if ( Settings.PigmentLeather() ) value = value + 1000; if ( Settings.PigmentMetal() ) value = value + 1000; if ( Settings.PigmentWood() ) value = value + 500; return value; } public class PigmentGump : Gump { private PigmentTub m_Tub; public PigmentGump( Mobile from, PigmentTub tub ) : base( 50, 50 ) { m_Tub = tub; if ( m_Tub.m_Color < 1 ) { m_Tub.m_Color = 1200; m_Tub.m_Hue = m_Tub.m_Color+1; m_Tub.m_Category = 900; } int color = m_Tub.m_Color; int c = 0; int d = 162; int n = 18; if ( m_Tub.m_Color == 1800 ) d = 142; this.Closable=true; this.Disposable=true; this.Dragable=true; this.Resizable=false; AddPage(0); AddImage(0, 0, 1); int x = 52; int y = 50; while ( d > 0 ) { c++; d--; if ( c >= n ){ c=1; y=y+12; x=52; } x=x+12; if ( color == 1254 ){ color = 1300; } else if ( color == 1354 ){ color = 1400; } else if ( color == 1454 ){ color = 1500; } else if ( color == 1554 ){ color = 1600; } else if ( color == 1654 ){ color = 1700; } else if ( color == 1754 ){ color = 1800; } else if ( color == 1908 ){ color = 2400; } AddButton(x, y, 2, 2, color, GumpButtonType.Reply, 0); AddImage(x, y, 2, color); color++; } AddItem(283, 43, 7939, m_Tub.m_Hue); if ( Settings.PigmentLeather() ){ AddItem(276, 71, 5075, m_Tub.m_Hue); } if ( Settings.PigmentMetal() ){ AddItem(291, 94, 5137, m_Tub.m_Hue); } if ( Settings.PigmentWood() ){ AddItem(280, 120, 7034, m_Tub.m_Hue); } AddItem(293, 149, 4011, m_Tub.m_Hue); AddButton(280, 205, 247, 248, 0, GumpButtonType.Reply, 0); int prev = m_Tub.m_Category-1; if ( prev == 899 ){ prev = 902; } int next = m_Tub.m_Category+1; if ( next == 903 ){ next = 900; } AddButton(47, 213, 5603, 5603, prev, GumpButtonType.Reply, 0); AddButton(70, 213, 5601, 5601, next, GumpButtonType.Reply, 0); } public override void OnResponse(NetState sender, RelayInfo info) { Mobile from = sender.Mobile; int button = info.ButtonID; if ( button == 900 ) { m_Tub.m_Color = 1200; m_Tub.m_Category = button; } else if ( button == 901 ) { m_Tub.m_Color = 1500; m_Tub.m_Category = button; } else if ( button == 902 ) { m_Tub.m_Color = 1800; m_Tub.m_Category = button; } else if ( button > 1000 ) { m_Tub.m_Hue = button+1; m_Tub.Hue = m_Tub.m_Hue; m_Tub.DyedHue = m_Tub.Hue; } if ( button > 0 ) from.SendGump( new PigmentTub.PigmentGump( from, m_Tub ) ); } } } }