http://jira.runuo.com/browse/RUNUO-12 House decay stages should pass at random intervals http://jira.runuo.com/browse/RUNUO-113 Nature's Fury cast issues http://jira.runuo.com/browse/RUNUO-114 Animal Form inaccuracies and issue with Talisman of the Fey http://jira.runuo.com/browse/RUNUO-115 BaseWaterContainer fill messages and behavior http://jira.runuo.com/browse/RUNUO-116 AdminGump filter for accounts owning houses http://jira.runuo.com/browse/RUNUO-118 Seeds should be stackable http://jira.runuo.com/browse/RUNUO-119 Typo in case of a jailbreak http://jira.runuo.com/browse/RUNUO-120 Prevent creation of invalid account names http://jira.runuo.com/browse/RUNUO-121
110 lines
No EOL
2.4 KiB
C#
110 lines
No EOL
2.4 KiB
C#
namespace Server.Items
|
|
{
|
|
public abstract class BaseWaterContainer : Container, IHasQuantity
|
|
{
|
|
public abstract int voidItem_ID { get; }
|
|
public abstract int fullItem_ID { get; }
|
|
public abstract int MaxQuantity { get; }
|
|
|
|
public override int DefaultGumpID { get { return 0x3e; } }
|
|
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public virtual bool IsEmpty { get { return ( m_Quantity <= 0 ); } }
|
|
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public virtual bool IsFull { get { return ( m_Quantity >= MaxQuantity ); } }
|
|
|
|
[CommandProperty( AccessLevel.GameMaster )]
|
|
public virtual int Quantity
|
|
{
|
|
get
|
|
{
|
|
return m_Quantity;
|
|
}
|
|
set
|
|
{
|
|
if( value != m_Quantity )
|
|
{
|
|
m_Quantity = ( value < 1 ) ? 0 : ( value > MaxQuantity ) ? MaxQuantity : value;
|
|
|
|
Movable = ( !IsLockedDown ) ? IsEmpty : false;
|
|
|
|
ItemID = ( IsEmpty ) ? voidItem_ID : fullItem_ID;
|
|
|
|
if( !IsEmpty )
|
|
{
|
|
IEntity rootParent = RootParentEntity;
|
|
|
|
if( rootParent != null && rootParent.Map != null && rootParent.Map != Map.Internal )
|
|
MoveToWorld( rootParent.Location, rootParent.Map );
|
|
}
|
|
|
|
InvalidateProperties();
|
|
}
|
|
}
|
|
}
|
|
|
|
private int m_Quantity;
|
|
|
|
public BaseWaterContainer( int Item_Id, bool filled )
|
|
: base( Item_Id )
|
|
{
|
|
m_Quantity = ( filled ) ? MaxQuantity : 0;
|
|
}
|
|
|
|
public override void OnDoubleClick( Mobile from )
|
|
{
|
|
if( IsEmpty )
|
|
{
|
|
base.OnDoubleClick( from );
|
|
}
|
|
}
|
|
|
|
public override void OnSingleClick( Mobile from )
|
|
{
|
|
if( IsEmpty )
|
|
{
|
|
base.OnDoubleClick( from );
|
|
}
|
|
}
|
|
|
|
public override void GetProperties( ObjectPropertyList list )
|
|
{
|
|
if( IsEmpty )
|
|
{
|
|
base.GetProperties( list );
|
|
}
|
|
}
|
|
|
|
public override bool OnDragDropInto( Mobile from, Item item, Point3D p )
|
|
{
|
|
if( !IsEmpty )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return base.OnDragDropInto( from, item, p );
|
|
}
|
|
|
|
public BaseWaterContainer( Serial serial )
|
|
: base( serial )
|
|
{
|
|
}
|
|
|
|
public override void Serialize( GenericWriter writer )
|
|
{
|
|
base.Serialize( writer );
|
|
|
|
writer.Write( (int)0 ); // version
|
|
writer.Write( (int)m_Quantity );
|
|
}
|
|
|
|
public override void Deserialize( GenericReader reader )
|
|
{
|
|
base.Deserialize( reader );
|
|
|
|
int version = reader.ReadInt();
|
|
m_Quantity = reader.ReadInt();
|
|
}
|
|
}
|
|
} |