revert crafting updates of SVN538. Per Mark: changing baseclasses is a bad idea.
This commit is contained in:
parent
7399519cf7
commit
e86794c4e6
130 changed files with 1007 additions and 4906 deletions
|
|
@ -139,250 +139,7 @@ namespace Server.Items
|
|||
public BaseContainer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
#region Consume[...]
|
||||
public int ConsumeTotalGroupedCompared( Type[][] types, int[] amounts, bool recurse, OnItemConsumed callback, CheckItemGroup grouper, Item compareTo )
|
||||
{
|
||||
if ( types.Length != amounts.Length )
|
||||
throw new ArgumentException();
|
||||
else if ( grouper == null )
|
||||
throw new ArgumentNullException();
|
||||
|
||||
Item[][][] items = new Item[types.Length][][];
|
||||
int[] totals = new int[types.Length];
|
||||
|
||||
bool hasComparer = false;
|
||||
|
||||
Item originalComparer = compareTo;
|
||||
|
||||
int comparerType = -1;
|
||||
|
||||
for ( int i = 0; i < types.Length; ++i )
|
||||
{
|
||||
Item[] typedItems = FindItemsByType( types[i], recurse );
|
||||
|
||||
List<List<Item>> groups = new List<List<Item>>();
|
||||
|
||||
int idx = 0;
|
||||
|
||||
if ( originalComparer != null )
|
||||
{
|
||||
for ( int j = 0; j < types[i].Length; ++j )
|
||||
{
|
||||
if ( originalComparer.GetType() == types[i][j] )
|
||||
{
|
||||
hasComparer = true;
|
||||
compareTo = originalComparer;
|
||||
comparerType = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
while( idx < typedItems.Length )
|
||||
{
|
||||
Item a = typedItems[idx++];
|
||||
List<Item> group = new List<Item>();
|
||||
|
||||
if ( !hasComparer )
|
||||
{
|
||||
compareTo = a;
|
||||
group.Add( a );
|
||||
}
|
||||
else if ( grouper( compareTo, a ) == 0 )
|
||||
group.Add( a );
|
||||
|
||||
while( idx < typedItems.Length )
|
||||
{
|
||||
Item b = typedItems[idx];
|
||||
int v = grouper( compareTo, b );
|
||||
|
||||
if( v == 0 )
|
||||
group.Add( b );
|
||||
else
|
||||
break;
|
||||
|
||||
++idx;
|
||||
}
|
||||
|
||||
groups.Add( group );
|
||||
}
|
||||
|
||||
compareTo = originalComparer;
|
||||
hasComparer = false;
|
||||
|
||||
items[i] = new Item[groups.Count][];
|
||||
|
||||
bool hasEnough = false;
|
||||
|
||||
for ( int j = 0; j < groups.Count; ++j )
|
||||
{
|
||||
items[i][j] = groups[j].ToArray();
|
||||
|
||||
for ( int k = 0; k < items[i][j].Length; ++k )
|
||||
totals[i] += items[i][j][k].Amount;
|
||||
}
|
||||
|
||||
if ( totals[i] >= amounts[i] )
|
||||
hasEnough = true;
|
||||
|
||||
if ( !hasEnough )
|
||||
return i;
|
||||
}
|
||||
|
||||
|
||||
for ( int i = 0; i < items.Length; ++i )
|
||||
{
|
||||
int need = amounts[i];
|
||||
|
||||
if ( originalComparer != null && comparerType == i )
|
||||
{
|
||||
object parent = originalComparer.RootParent;
|
||||
|
||||
if ( parent is Mobile )
|
||||
{
|
||||
Mobile m = (Mobile)parent;
|
||||
|
||||
if ( this.RootParent is Mobile && m == (Mobile)this.RootParent )
|
||||
ConsumeNeeded( ref need, originalComparer, callback );
|
||||
}
|
||||
}
|
||||
|
||||
for ( int j = 0; j < items[i].Length && need > 0; ++j )
|
||||
{
|
||||
if ( totals[i] >= amounts[i] )
|
||||
{
|
||||
for ( int k = 0; k < items[i][j].Length && need > 0; ++k )
|
||||
{
|
||||
Item item = items[i][j][k];
|
||||
|
||||
if ( !item.Deleted )
|
||||
ConsumeNeeded( ref need, item, callback );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
private void ConsumeNeeded( ref int need, Item item, OnItemConsumed callback )
|
||||
{
|
||||
int theirAmount = item.Amount;
|
||||
|
||||
if ( theirAmount < need )
|
||||
{
|
||||
if ( callback != null )
|
||||
callback( item, theirAmount );
|
||||
|
||||
item.Delete();
|
||||
need -= theirAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( callback != null )
|
||||
callback( item, need );
|
||||
|
||||
item.Consume( need );
|
||||
need = 0;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Get[Compared]Amount
|
||||
public int GetComparedGroupAmount( Type[] types, bool recurse, CheckItemGroup grouper, Item compareTo )
|
||||
{
|
||||
if( grouper == null )
|
||||
throw new ArgumentNullException();
|
||||
|
||||
Item[] typedItems = FindItemsByType( types, recurse );
|
||||
|
||||
bool hasComparer = false;
|
||||
|
||||
if ( compareTo != null )
|
||||
{
|
||||
for ( int i = 0; i < types.Length; ++i )
|
||||
{
|
||||
if ( compareTo.GetType() == types[i] )
|
||||
{
|
||||
hasComparer = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<List<Item>> groups = new List<List<Item>>();
|
||||
|
||||
int idx = 0;
|
||||
|
||||
while( idx < typedItems.Length )
|
||||
{
|
||||
Item a = typedItems[idx++];
|
||||
List<Item> group = new List<Item>();
|
||||
|
||||
if ( !hasComparer )
|
||||
{
|
||||
compareTo = a;
|
||||
group.Add( a );
|
||||
}
|
||||
else if ( grouper( compareTo, a ) == 0 )
|
||||
group.Add( a );
|
||||
|
||||
while( idx < typedItems.Length )
|
||||
{
|
||||
Item b = typedItems[idx];
|
||||
int v = grouper( compareTo, b );
|
||||
|
||||
if( v == 0 )
|
||||
group.Add( b );
|
||||
else
|
||||
break;
|
||||
|
||||
++idx;
|
||||
}
|
||||
|
||||
groups.Add( group );
|
||||
}
|
||||
|
||||
int total = 0;
|
||||
|
||||
for( int j = 0; j < groups.Count; ++j )
|
||||
{
|
||||
Item[] items = groups[j].ToArray();
|
||||
|
||||
for( int k = 0; k < items.Length; ++k )
|
||||
total += items[k].Amount;
|
||||
}
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
public int GetAmountCompared( Type[] types, CheckItemGroup grouper, Item compareTo )
|
||||
{
|
||||
return GetAmountCompared( types, grouper, compareTo, true );
|
||||
}
|
||||
|
||||
public int GetAmountCompared( Type[] types, CheckItemGroup grouper, Item compareTo, bool recurse )
|
||||
{
|
||||
Item[] items = FindItemsByType( types, recurse );
|
||||
|
||||
int amount = 0;
|
||||
|
||||
for ( int i = 0; i < items.Length; ++i )
|
||||
{
|
||||
if ( compareTo == null )
|
||||
{
|
||||
compareTo = items[i];
|
||||
amount += items[i].Amount;
|
||||
}
|
||||
else if ( grouper( compareTo, items[i] ) == 0 )
|
||||
amount += items[i].Amount;
|
||||
}
|
||||
|
||||
return amount;
|
||||
}
|
||||
#endregion
|
||||
|
||||
/* Note: base class insertion; we cannot serialize anything here */
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
|
|
@ -717,7 +474,7 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
public class Barrel : BaseFurnitureContainer
|
||||
public class Barrel : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public Barrel() : base( 0xE77 )
|
||||
|
|
@ -740,14 +497,14 @@ namespace Server.Items
|
|||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( Weight == 0.0 )
|
||||
Weight = 25.0;
|
||||
}
|
||||
}
|
||||
|
||||
public class Keg : BaseFurnitureContainer
|
||||
public class Keg : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public Keg() : base( 0xE7F )
|
||||
|
|
@ -770,7 +527,7 @@ namespace Server.Items
|
|||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -833,7 +590,7 @@ namespace Server.Items
|
|||
public class WoodenBox : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public WoodenBox() : base( 0xE7D )
|
||||
public WoodenBox() : base( 0x9AA )
|
||||
{
|
||||
Weight = 4.0;
|
||||
}
|
||||
|
|
@ -862,9 +619,9 @@ namespace Server.Items
|
|||
public class SmallCrate : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public SmallCrate() : base( 0xE7E )
|
||||
public SmallCrate() : base( 0x9A9 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
Weight = 2.0;
|
||||
}
|
||||
|
||||
public SmallCrate( Serial serial ) : base( serial )
|
||||
|
|
@ -884,8 +641,8 @@ namespace Server.Items
|
|||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( Weight == 4.0 || Weight == 2.0 )
|
||||
Weight = 1.0;
|
||||
if ( Weight == 4.0 )
|
||||
Weight = 2.0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -894,9 +651,9 @@ namespace Server.Items
|
|||
public class MediumCrate : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public MediumCrate() : base( 0xE3E )
|
||||
public MediumCrate() : base( 0xE3F )
|
||||
{
|
||||
Weight = 1.0;
|
||||
Weight = 2.0;
|
||||
}
|
||||
|
||||
public MediumCrate( Serial serial ) : base( serial )
|
||||
|
|
@ -916,8 +673,8 @@ namespace Server.Items
|
|||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( Weight == 6.0 || Weight == 2.0 )
|
||||
Weight = 1.0;
|
||||
if ( Weight == 6.0 )
|
||||
Weight = 2.0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -926,7 +683,7 @@ namespace Server.Items
|
|||
public class LargeCrate : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public LargeCrate() : base( 0xE3C )
|
||||
public LargeCrate() : base( 0xE3D )
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
@ -957,8 +714,6 @@ namespace Server.Items
|
|||
[Flipable( 0x9A8, 0xE80 )]
|
||||
public class MetalBox : LockableContainer
|
||||
{
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
|
||||
|
||||
[Constructable]
|
||||
public MetalBox() : base( 0x9A8 )
|
||||
{
|
||||
|
|
@ -990,8 +745,6 @@ namespace Server.Items
|
|||
[Flipable( 0x9AB, 0xE7C )]
|
||||
public class MetalChest : LockableContainer
|
||||
{
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
|
||||
|
||||
[Constructable]
|
||||
public MetalChest() : base( 0x9AB )
|
||||
{
|
||||
|
|
@ -1023,8 +776,6 @@ namespace Server.Items
|
|||
[Flipable( 0xE41, 0xE40 )]
|
||||
public class MetalGoldenChest : LockableContainer
|
||||
{
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
|
||||
|
||||
[Constructable]
|
||||
public MetalGoldenChest() : base( 0xE41 )
|
||||
{
|
||||
|
|
@ -1053,13 +804,13 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0xE43, 0xE42 )]
|
||||
[Flipable( 0xe43, 0xe42 )]
|
||||
public class WoodenChest : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public WoodenChest() : base( 0xE42 )
|
||||
public WoodenChest() : base( 0xe43 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
Weight = 2.0;
|
||||
}
|
||||
|
||||
public WoodenChest( Serial serial ) : base( serial )
|
||||
|
|
@ -1079,8 +830,8 @@ namespace Server.Items
|
|||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( Weight == 15.0 || Weight == 2.0 )
|
||||
Weight = 1.0;
|
||||
if ( Weight == 15.0 )
|
||||
Weight = 2.0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1089,7 +840,7 @@ namespace Server.Items
|
|||
public class PlainWoodenChest : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public PlainWoodenChest() : base( 0x280C )
|
||||
public PlainWoodenChest() : base( 0x280B )
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -1120,7 +871,7 @@ namespace Server.Items
|
|||
public class OrnateWoodenChest : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public OrnateWoodenChest() : base( 0x280E )
|
||||
public OrnateWoodenChest() : base( 0x280D )
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -1151,7 +902,7 @@ namespace Server.Items
|
|||
public class GildedWoodenChest : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public GildedWoodenChest() : base( 0x2810 )
|
||||
public GildedWoodenChest() : base( 0x280F )
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -1182,7 +933,7 @@ namespace Server.Items
|
|||
public class WoodenFootLocker : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public WoodenFootLocker() : base( 0x2812 )
|
||||
public WoodenFootLocker() : base( 0x2811 )
|
||||
{
|
||||
GumpID = 0x10B;
|
||||
}
|
||||
|
|
@ -1217,7 +968,7 @@ namespace Server.Items
|
|||
public class FinishedWoodenChest : LockableContainer
|
||||
{
|
||||
[Constructable]
|
||||
public FinishedWoodenChest() : base( 0x2814 )
|
||||
public FinishedWoodenChest() : base( 0x2813 )
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -407,8 +407,6 @@ namespace Server.Items
|
|||
[Flipable( 0x9A8, 0xE80 )]
|
||||
public class FillableMetalBox : FillableContainer
|
||||
{
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
|
||||
|
||||
[Constructable]
|
||||
public FillableMetalBox() : base( 0x9A8 )
|
||||
{
|
||||
|
|
@ -470,8 +468,6 @@ namespace Server.Items
|
|||
[Flipable( 0x9AB, 0xE7C )]
|
||||
public class FillableMetalChest : FillableContainer
|
||||
{
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
|
||||
|
||||
[Constructable]
|
||||
public FillableMetalChest() : base( 0x9AB )
|
||||
{
|
||||
|
|
@ -502,8 +498,6 @@ namespace Server.Items
|
|||
[Flipable( 0xE41, 0xE40 )]
|
||||
public class FillableMetalGoldenChest : FillableContainer
|
||||
{
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
|
||||
|
||||
[Constructable]
|
||||
public FillableMetalGoldenChest() : base( 0xE41 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,162 +1,17 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server;
|
||||
using Server.Misc;
|
||||
using Server.Multis;
|
||||
using Server.Network;
|
||||
using Server.Engines.Craft;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public abstract class BaseFurnitureContainer : BaseContainer, ICraftable
|
||||
{
|
||||
private Mobile m_Crafter;
|
||||
private CraftQuality m_Quality;
|
||||
private CraftResource m_Resource;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Mobile Crafter
|
||||
{
|
||||
get { return m_Crafter; }
|
||||
set { m_Crafter = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public CraftQuality Quality
|
||||
{
|
||||
get { return m_Quality; }
|
||||
set { m_Quality = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public CraftResource Resource
|
||||
{
|
||||
get { return m_Resource; }
|
||||
set
|
||||
{
|
||||
if ( m_Resource != value )
|
||||
{
|
||||
m_Resource = value;
|
||||
Hue = CraftResources.GetHue( m_Resource );
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual CraftResource DefaultResource{ get{ return CraftResource.RegularWood; } }
|
||||
public virtual bool DisplaysResource{ get{ return true; } }
|
||||
public virtual bool DisplaysMakersMark{ get{ return true; } }
|
||||
|
||||
#region Old Container Serialization Vars
|
||||
/* DO NOT USE! Only used in serialization of furniture containers that originally derived from BaseContainer */
|
||||
private bool m_InheritsBaseCont;
|
||||
private int m_OldVersion;
|
||||
|
||||
protected bool InheritsBaseCont
|
||||
{
|
||||
get{ return m_InheritsBaseCont; }
|
||||
}
|
||||
|
||||
protected int OldVersion
|
||||
{
|
||||
get{ return m_OldVersion; }
|
||||
}
|
||||
#endregion
|
||||
|
||||
public BaseFurnitureContainer( int itemID ) : base( itemID )
|
||||
{
|
||||
m_Quality = CraftQuality.Regular;
|
||||
Resource = DefaultResource;
|
||||
}
|
||||
|
||||
public BaseFurnitureContainer(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
if ( m_Crafter != null && DisplaysMakersMark )
|
||||
list.Add( 1050043, m_Crafter.Name ); // crafted by ~1_NAME~
|
||||
|
||||
if ( m_Quality == CraftQuality.Exceptional )
|
||||
list.Add( 1060636 ); // exceptional
|
||||
|
||||
if( ( m_Resource >= CraftResource.OakWood && m_Resource <= CraftResource.Frostwood ) && Hue == CraftResources.GetHue( m_Resource ) && DisplaysResource )
|
||||
list.Add( CraftResources.GetLocalizationNumber( m_Resource ) ); // resource name
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int) 2);
|
||||
|
||||
writer.Write( m_Crafter );
|
||||
writer.WriteEncodedInt( (int) m_Quality );
|
||||
writer.WriteEncodedInt( (int) m_Resource );
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
m_Crafter = reader.ReadMobile();
|
||||
m_Quality = (CraftQuality)reader.ReadEncodedInt();
|
||||
m_Resource = (CraftResource)reader.ReadEncodedInt();
|
||||
break;
|
||||
}
|
||||
case 1: //Captcha for EmptyBookcase
|
||||
case 0:
|
||||
{
|
||||
m_InheritsBaseCont = true;
|
||||
m_OldVersion = version;
|
||||
m_Quality = CraftQuality.Regular;
|
||||
m_Resource = DefaultResource;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual int OnCraft( int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue )
|
||||
{
|
||||
if ( Core.ML )
|
||||
{
|
||||
Quality = (CraftQuality)quality;
|
||||
|
||||
if ( makersMark )
|
||||
Crafter = from;
|
||||
|
||||
Type resourceType = typeRes;
|
||||
|
||||
if ( resourceType == null )
|
||||
resourceType = craftItem.Resources.GetAt( 0 ).ItemType;
|
||||
|
||||
Resource = CraftResources.GetFromType( resourceType );
|
||||
|
||||
CraftContext context = craftSystem.GetContext( from );
|
||||
|
||||
if ( context != null && context.DoNotColor )
|
||||
Hue = 0;
|
||||
}
|
||||
|
||||
return quality;
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0x2815, 0x2816 )]
|
||||
public class TallCabinet : BaseFurnitureContainer
|
||||
public class TallCabinet : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public TallCabinet() : base( 0x2816 )
|
||||
public TallCabinet() : base( 0x2815 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
@ -174,16 +29,16 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0x2817, 0x2818 )]
|
||||
public class ShortCabinet : BaseFurnitureContainer
|
||||
public class ShortCabinet : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public ShortCabinet() : base( 0x2818 )
|
||||
public ShortCabinet() : base( 0x2817 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
@ -201,19 +56,19 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0x2857, 0x2858 )]
|
||||
public class RedArmoire : BaseFurnitureContainer
|
||||
public class RedArmoire : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public RedArmoire() : base( 0x2858 )
|
||||
public RedArmoire() : base( 0x2857 )
|
||||
{
|
||||
Weight = 10.0;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public RedArmoire( Serial serial ) : base( serial )
|
||||
|
|
@ -229,21 +84,18 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
|
||||
if ( Weight == 1.0 )
|
||||
Weight = 10.0;
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0x285D, 0x285E )]
|
||||
public class CherryArmoire : BaseFurnitureContainer
|
||||
public class CherryArmoire : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public CherryArmoire() : base( 0x285E )
|
||||
public CherryArmoire() : base( 0x285D )
|
||||
{
|
||||
Weight = 10.0;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public CherryArmoire( Serial serial ) : base( serial )
|
||||
|
|
@ -259,21 +111,18 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
|
||||
if ( Weight == 1.0 )
|
||||
Weight = 10.0;
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0x285B, 0x285C )]
|
||||
public class MapleArmoire : BaseFurnitureContainer
|
||||
public class MapleArmoire : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public MapleArmoire() : base( 0x285C )
|
||||
public MapleArmoire() : base( 0x285B )
|
||||
{
|
||||
Weight = 10.0;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public MapleArmoire( Serial serial ) : base( serial )
|
||||
|
|
@ -289,21 +138,18 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
|
||||
if ( Weight == 1.0 )
|
||||
Weight = 10.0;
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0x2859, 0x285A )]
|
||||
public class ElegantArmoire : BaseFurnitureContainer
|
||||
public class ElegantArmoire : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public ElegantArmoire() : base( 0x285A )
|
||||
public ElegantArmoire() : base( 0x2859 )
|
||||
{
|
||||
Weight = 10.0;
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public ElegantArmoire( Serial serial ) : base( serial )
|
||||
|
|
@ -319,19 +165,16 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
|
||||
if ( Weight == 1.0 )
|
||||
Weight = 10.0;
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0xA97, 0xA99, 0xA98, 0xA9A, 0xA9B, 0xA9C )]
|
||||
public class FullBookcase : BaseFurnitureContainer
|
||||
[Flipable( 0xa97, 0xa99, 0xa98, 0xa9a, 0xa9b, 0xa9c )]
|
||||
public class FullBookcase : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public FullBookcase() : base( 0xA99 )
|
||||
public FullBookcase() : base( 0xA97 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
@ -349,16 +192,16 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0xA9D, 0xA9E )]
|
||||
public class EmptyBookcase : BaseFurnitureContainer
|
||||
[Flipable( 0xa9d, 0xa9e )]
|
||||
public class EmptyBookcase : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public EmptyBookcase() : base( 0xA9E )
|
||||
public EmptyBookcase() : base( 0xA9D )
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -376,7 +219,7 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if ( version == 0 && Weight == 1.0 )
|
||||
Weight = -1;
|
||||
|
|
@ -384,11 +227,11 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0xA2C, 0xA34 )]
|
||||
public class Drawer : BaseFurnitureContainer
|
||||
[Flipable( 0xa2c, 0xa34 )]
|
||||
public class Drawer : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public Drawer() : base( 0xA34 )
|
||||
public Drawer() : base( 0xA2C )
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
@ -406,16 +249,16 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0xA30, 0xA38 )]
|
||||
public class FancyDrawer : BaseFurnitureContainer
|
||||
[Flipable( 0xa30, 0xa38 )]
|
||||
public class FancyDrawer : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public FancyDrawer() : base( 0xA38 )
|
||||
public FancyDrawer() : base( 0xA30 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
@ -430,81 +273,19 @@ namespace Server.Items
|
|||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0x2DF1, 0x2DF2 )]
|
||||
public class OrnateElvenChest : BaseFurnitureContainer
|
||||
{
|
||||
[Constructable]
|
||||
public OrnateElvenChest() : base( 0x2DF1 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
GumpID = 0x10C;
|
||||
}
|
||||
|
||||
public OrnateElvenChest( 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();
|
||||
|
||||
if ( version < 1 )
|
||||
GumpID = 0x10C;
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0x2DF3, 0x2DF4 )]
|
||||
public class OrnateElvenBox : BaseFurnitureContainer
|
||||
{
|
||||
[Constructable]
|
||||
public OrnateElvenBox() : base( 0x2DF3 )
|
||||
{
|
||||
Weight = 1.0;
|
||||
GumpID = 0x10C;
|
||||
}
|
||||
|
||||
public OrnateElvenBox( 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();
|
||||
|
||||
if ( version < 1 )
|
||||
GumpID = 0x10C;
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0xA4F, 0xA53 )]
|
||||
public class Armoire : BaseFurnitureContainer
|
||||
[Flipable( 0xa4f, 0xa53 )]
|
||||
public class Armoire : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public Armoire() : base( 0xA53 )
|
||||
public Armoire() : base( 0xA4F )
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
@ -528,18 +309,18 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
int version = reader.ReadInt();
|
||||
|
||||
DynamicFurniture.Close( this );
|
||||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flipable( 0xA4D, 0xA51 )]
|
||||
public class FancyArmoire : BaseFurnitureContainer
|
||||
[Flipable( 0xa4d, 0xa51 )]
|
||||
public class FancyArmoire : BaseContainer
|
||||
{
|
||||
[Constructable]
|
||||
public FancyArmoire() : base( 0xA51 )
|
||||
public FancyArmoire() : base( 0xA4D )
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
|
@ -563,7 +344,7 @@ namespace Server.Items
|
|||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
|
||||
int version = reader.ReadInt();
|
||||
|
||||
DynamicFurniture.Close( this );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,9 +12,6 @@ namespace Server.Items
|
|||
private uint m_KeyValue;
|
||||
private Mobile m_Picker;
|
||||
private bool m_TrapOnLockpick;
|
||||
private CraftQuality m_Quality;
|
||||
private Mobile m_Crafter;
|
||||
private CraftResource m_Resource;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Mobile Picker
|
||||
|
|
@ -119,39 +116,12 @@ namespace Server.Items
|
|||
m_TrapOnLockpick = value;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public CraftQuality Quality
|
||||
{
|
||||
get{ return m_Quality; }
|
||||
set{ m_Quality = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public Mobile Crafter
|
||||
{
|
||||
get{ return m_Crafter; }
|
||||
set{ m_Crafter = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public CraftResource Resource
|
||||
{
|
||||
get{ return m_Resource; }
|
||||
set{ m_Resource = value; Hue = CraftResources.GetHue( m_Resource ); InvalidateProperties(); }
|
||||
}
|
||||
|
||||
public virtual CraftResource DefaultResource{ get{ return CraftResource.RegularWood; } }
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 7 ); // version
|
||||
|
||||
writer.Write( (int)m_Quality );
|
||||
writer.Write( (int)m_Resource );
|
||||
writer.WriteMobile( m_Crafter );
|
||||
writer.Write( (int) 6 ); // version
|
||||
|
||||
writer.Write( m_IsShipwreckedItem );
|
||||
|
||||
|
|
@ -174,13 +144,6 @@ namespace Server.Items
|
|||
|
||||
switch ( version )
|
||||
{
|
||||
case 7:
|
||||
{
|
||||
m_Quality = (CraftQuality)reader.ReadInt();
|
||||
m_Resource = (CraftResource)reader.ReadInt();
|
||||
m_Crafter = reader.ReadMobile();
|
||||
goto case 6;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
m_IsShipwreckedItem = reader.ReadBool();
|
||||
|
|
@ -235,12 +198,6 @@ namespace Server.Items
|
|||
m_RequiredSkill = m_LockLevel;
|
||||
}
|
||||
}
|
||||
|
||||
if ( version < 7 )
|
||||
{
|
||||
m_Quality = CraftQuality.Regular;
|
||||
m_Resource = DefaultResource;
|
||||
}
|
||||
|
||||
m_Locked = reader.ReadBool();
|
||||
|
||||
|
|
@ -251,8 +208,6 @@ namespace Server.Items
|
|||
|
||||
public LockableContainer( int itemID ) : base( itemID )
|
||||
{
|
||||
m_Quality = CraftQuality.Regular;
|
||||
Resource = DefaultResource;
|
||||
m_MaxLockLevel = 100;
|
||||
}
|
||||
|
||||
|
|
@ -260,20 +215,6 @@ namespace Server.Items
|
|||
{
|
||||
}
|
||||
|
||||
public override void GetProperties( ObjectPropertyList list )
|
||||
{
|
||||
base.GetProperties( list );
|
||||
|
||||
if ( m_Crafter != null )
|
||||
list.Add( 1050043, m_Crafter.Name ); // crafted by ~1_NAME~
|
||||
|
||||
if ( m_Quality == CraftQuality.Exceptional )
|
||||
list.Add( 1060636 ); // exceptional
|
||||
|
||||
if( ( m_Resource >= CraftResource.OakWood && m_Resource <= CraftResource.Frostwood ) && Hue == CraftResources.GetHue( m_Resource ) )
|
||||
list.Add( CraftResources.GetLocalizationNumber( m_Resource ) ); // resource name
|
||||
}
|
||||
|
||||
public override bool CheckContentDisplay( Mobile from )
|
||||
{
|
||||
return !m_Locked && base.CheckContentDisplay( from );
|
||||
|
|
@ -419,26 +360,6 @@ namespace Server.Items
|
|||
|
||||
public int OnCraft( int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue )
|
||||
{
|
||||
if ( Core.ML )
|
||||
{
|
||||
Quality = (CraftQuality)quality;
|
||||
|
||||
Type resourceType = typeRes;
|
||||
|
||||
if ( resourceType == null )
|
||||
resourceType = craftItem.Resources.GetAt( 0 ).ItemType;
|
||||
|
||||
Resource = CraftResources.GetFromType( resourceType );
|
||||
|
||||
CraftContext context = craftSystem.GetContext( from );
|
||||
|
||||
if ( context != null && context.DoNotColor )
|
||||
Resource = DefaultResource;
|
||||
|
||||
if ( makersMark )
|
||||
Crafter = from;
|
||||
}
|
||||
|
||||
if ( from.CheckSkill( SkillName.Tinkering, -5.0, 15.0 ) )
|
||||
{
|
||||
from.SendLocalizedMessage( 500636 ); // Your tinker skill was sufficient to make the item lockable.
|
||||
|
|
@ -471,7 +392,7 @@ namespace Server.Items
|
|||
from.SendLocalizedMessage( 500637 ); // Your tinker skill was insufficient to make the item lockable.
|
||||
}
|
||||
|
||||
return quality;
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -12,8 +12,6 @@ namespace Server.Items
|
|||
[Flipable]
|
||||
public class ParagonChest : LockableContainer
|
||||
{
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
|
||||
|
||||
private static int[] m_ItemIDs = new int[]
|
||||
{
|
||||
0x9AB, 0xE40, 0xE41, 0xE7C
|
||||
|
|
|
|||
|
|
@ -36,8 +36,6 @@ namespace Server.Items
|
|||
[FlipableAttribute( 0xe41, 0xe40 )]
|
||||
public class MetalGoldenTreasureChest : BaseTreasureChest
|
||||
{
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
|
||||
|
||||
[Constructable]
|
||||
public MetalGoldenTreasureChest() : base( 0xE41 )
|
||||
{
|
||||
|
|
@ -65,8 +63,6 @@ namespace Server.Items
|
|||
[FlipableAttribute( 0x9ab, 0xe7c )]
|
||||
public class MetalTreasureChest : BaseTreasureChest
|
||||
{
|
||||
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
|
||||
|
||||
[Constructable]
|
||||
public MetalTreasureChest() : base( 0x9AB )
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue