new tubs.
This commit is contained in:
parent
c51df5dc74
commit
68ab65a475
9 changed files with 285 additions and 10 deletions
|
|
@ -81,7 +81,7 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool Redyable
|
||||
public virtual bool Redyable
|
||||
{
|
||||
get
|
||||
{
|
||||
|
|
@ -140,6 +140,9 @@ namespace Server.Items
|
|||
{
|
||||
}
|
||||
|
||||
// Three metallic tubs now.
|
||||
public virtual bool MetallicHues{ get { return false; } }
|
||||
|
||||
// Select the clothing to dye.
|
||||
public virtual int TargetMessage{ get{ return 500859; } }
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ namespace Server.Items
|
|||
public override int TargetMessage{ get{ return 1042416; } } // Select the leather item to dye.
|
||||
public override int FailMessage{ get{ return 1042418; } } // You can only dye leather with this tub.
|
||||
public override int LabelNumber{ get{ return 1041284; } } // Leather Dye Tub
|
||||
public override CustomHuePicker CustomHuePicker{ get{ return CustomHuePicker.LeatherDyeTub; } }
|
||||
public override CustomHuePicker CustomHuePicker{ get{ return null; } }
|
||||
|
||||
private bool m_IsRewardItem;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class MetallicClothDyetub : DyeTub
|
||||
{
|
||||
public override int LabelNumber { get { return 1152920; } } // Metallic Cloth ...
|
||||
|
||||
public override bool MetallicHues { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public MetallicClothDyetub()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public MetallicClothDyetub( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class MetallicHuePicker : Gump
|
||||
{
|
||||
public delegate void MetallicHuePickerCallback( Mobile from, object state, int hue );
|
||||
|
||||
private Mobile m_From;
|
||||
private MetallicHuePickerCallback m_Callback;
|
||||
private object m_State;
|
||||
|
||||
public void Render()
|
||||
{
|
||||
AddPage( 0 );
|
||||
|
||||
AddBackground( 0, 0, 450, 450, 0x13BE );
|
||||
AddBackground( 10, 10, 430, 430, 0xBB8 );
|
||||
|
||||
AddHtmlLocalized( 55, 400, 200, 25, 1011036, false, false ); // OKAY
|
||||
|
||||
AddButton( 20, 400, 4005, 4007, 1, GumpButtonType.Reply, 0 );
|
||||
AddButton( 200, 400, 4005, 4007, 2, GumpButtonType.Reply, 0 );
|
||||
AddLabel( 235, 400, 0, "DEFAULT" );
|
||||
|
||||
AddHtmlLocalized( 55, 25, 200, 25, 1150063, false, false ); // Base/Shadow Color
|
||||
AddHtmlLocalized( 260, 25, 200, 25, 1150064, false, false ); // Highlight Color
|
||||
|
||||
for( int row = 0; row < 13; row++ )
|
||||
{
|
||||
AddButton( 30, ( 65 + ( row * 25 ) ), 0x1467, 0x1468, row + 1, GumpButtonType.Page, row + 1 );
|
||||
AddItem( 50, ( 65 + ( row * 25 ) ), 0x1412, 2501 + ( row * 12 ) + ( ( row == 12 ) ? 6 : 0 ) );
|
||||
}
|
||||
|
||||
for( int page = 1; page < 14; page++ )
|
||||
{
|
||||
AddPage( page );
|
||||
|
||||
for( int row = 0; row < 12; row++ )
|
||||
{
|
||||
int hue = ( 2501 + ( ( page == 13 ) ? 6 : 0 ) + ( row + ( 12 * ( page - 1 ) ) ) ); /* OSI just had to skip 6 unused hues, didnt they */
|
||||
AddRadio( 260, ( 65 + ( row * 25 ) ), 0xd2, 0xd3, false, hue );
|
||||
AddItem( 280, ( 65 + ( row * 25 ) ), 0x1412, hue );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public MetallicHuePicker( Mobile from, MetallicHuePickerCallback callback, object state )
|
||||
: base( 450, 450 )
|
||||
{
|
||||
m_From = from;
|
||||
m_Callback = callback;
|
||||
m_State = state;
|
||||
|
||||
Render();
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
switch( info.ButtonID )
|
||||
{
|
||||
case 1: // Okay
|
||||
{
|
||||
if( info.Switches.Length > 0 )
|
||||
{
|
||||
m_Callback( m_From, m_State, info.Switches[ 0 ] );
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2: // Default
|
||||
{
|
||||
m_Callback( m_From, m_State, 0 );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class MetallicLeatherDyeTub : LeatherDyeTub
|
||||
{
|
||||
public override CustomHuePicker CustomHuePicker{ get{ return null; } }
|
||||
|
||||
public override int LabelNumber { get { return 1153495; } } // Metallic Leather ...
|
||||
|
||||
public override bool MetallicHues { get { return true; } }
|
||||
|
||||
[Constructable]
|
||||
public MetallicLeatherDyeTub()
|
||||
{
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public MetallicLeatherDyeTub( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
if ( Core.ML && IsRewardItem )
|
||||
list.Add( 1076221 ); // 5th Year Veteran Reward
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
using System;
|
||||
using Server.Engines.VeteranRewards;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SpecialDyeTub : DyeTub, Engines.VeteranRewards.IRewardItem
|
||||
public class SpecialDyeTub : DyeTub, IRewardItem
|
||||
{
|
||||
public override CustomHuePicker CustomHuePicker{ get{ return CustomHuePicker.SpecialDyeTub; } }
|
||||
public override int LabelNumber{ get{ return 1041285; } } // Special Dye Tub
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
using Server;
|
||||
using System;
|
||||
|
||||
namespace Server.Items /* High seas, loot from merchant ship's hold, also a "uncommon" loot item */
|
||||
{
|
||||
public class WhiteClothDyeTub : DyeTub
|
||||
{
|
||||
public override int LabelNumber { get { return 1149984; } } // White Cloth Dye Tub
|
||||
|
||||
public override bool Redyable { get { return false; } }
|
||||
|
||||
[Constructable]
|
||||
public WhiteClothDyeTub()
|
||||
{
|
||||
DyedHue = Hue = 0x9C2;
|
||||
}
|
||||
|
||||
public WhiteClothDyeTub( Serial serial )
|
||||
: base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( ( int )0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
using Server;
|
||||
using System;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class WhiteLeatherDyeTub : LeatherDyeTub /* OSI UO 13th anniv gift, from redeemable gift tickets */
|
||||
{
|
||||
public override int LabelNumber { get { return 1149900; } } // White Leather Dye Tub
|
||||
|
||||
public override bool Redyable { get { return false; } }
|
||||
|
||||
[Constructable]
|
||||
public WhiteLeatherDyeTub()
|
||||
{
|
||||
DyedHue = Hue = 0x9C2;
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
|
||||
public WhiteLeatherDyeTub( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,12 +4,23 @@ using Server.HuePickers;
|
|||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Dyes : Item
|
||||
public class Dyes : Item /* , IUsesRemaining */ /* TODO complete usesremaing */
|
||||
{
|
||||
/*
|
||||
public bool ShowUsesRemaining { get { return false; } set { } }
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public virtual int UsesRemaining { get { return m_UsesRemaining; } set { m_UsesRemaining = value; } }
|
||||
|
||||
private int m_UsesRemaining;
|
||||
*/
|
||||
|
||||
[Constructable]
|
||||
public Dyes() : base( 0xFA9 )
|
||||
{
|
||||
Weight = 3.0;
|
||||
|
||||
/* m_UsesRemaining = 25; */
|
||||
}
|
||||
|
||||
public Dyes( Serial serial ) : base( serial )
|
||||
|
|
@ -20,7 +31,9 @@ namespace Server.Items
|
|||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
/* writer.Write( ( int )m_UsesRemaining ); */
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
|
|
@ -31,6 +44,8 @@ namespace Server.Items
|
|||
|
||||
if ( Weight == 0.0 )
|
||||
Weight = 3.0;
|
||||
|
||||
/* m_UsesRemaining = ( version == 0 ) ? 25 : reader.ReadInt(); */
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
|
|
@ -60,9 +75,16 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
private static void SetTubHue( Mobile from, object state, int hue )
|
||||
public virtual void SetTubHue( Mobile from, object state, int hue )
|
||||
{
|
||||
((DyeTub)state).DyedHue = hue;
|
||||
if( state is DyeTub )
|
||||
{
|
||||
DyeTub tub = state as DyeTub;
|
||||
|
||||
tub.DyedHue = hue;
|
||||
|
||||
/* dyes.m_UsesRemaining--; let this change ride till the overhaul */
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnTarget( Mobile from, object targeted )
|
||||
|
|
@ -73,10 +95,18 @@ namespace Server.Items
|
|||
|
||||
if ( tub.Redyable )
|
||||
{
|
||||
if ( tub.CustomHuePicker == null )
|
||||
from.SendHuePicker( new InternalPicker( tub ) );
|
||||
else
|
||||
if( tub.MetallicHues ) /* OSI has three metallic tubs now */
|
||||
{
|
||||
from.SendGump( new MetallicHuePicker( from, new MetallicHuePicker.MetallicHuePickerCallback( SetTubHue ), tub ) );
|
||||
}
|
||||
else if( tub.CustomHuePicker != null )
|
||||
{
|
||||
from.SendGump( new CustomHuePickerGump( from, tub.CustomHuePicker, new CustomHuePickerCallback( SetTubHue ), tub ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendHuePicker( new InternalPicker( tub ) );
|
||||
}
|
||||
}
|
||||
else if ( tub is BlackDyeTub )
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue