new tubs.

This commit is contained in:
xavier 2012-12-22 22:21:04 +00:00
parent c51df5dc74
commit 68ab65a475
9 changed files with 285 additions and 10 deletions

View file

@ -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; } }

View file

@ -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;

View file

@ -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();
}
}
}

View file

@ -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;
}
}
}
}
}

View file

@ -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();
}
}
}

View file

@ -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

View file

@ -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();
}
}
}

View file

@ -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();
}
}
}

View file

@ -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 )
{