125 lines
3.5 KiB
C#
125 lines
3.5 KiB
C#
using System;
|
|
using Server.Gumps;
|
|
|
|
namespace Server.Items
|
|
{
|
|
[Furniture]
|
|
[Flipable(0x0A9D, 0x0A9E)]
|
|
public class WoodenBookcase : BaseContainer
|
|
{
|
|
public override int LabelNumber { get { return 1071102; } } // Wooden Bookcase
|
|
public override int DefaultGumpID { get { return 0x4D; } }
|
|
|
|
public bool IsEmpty { get { return Items.Count == 0; } }
|
|
|
|
[CommandProperty(AccessLevel.Decorator)]
|
|
public override int ItemID
|
|
{
|
|
get { return base.ItemID; }
|
|
set
|
|
{
|
|
int id = value;
|
|
|
|
if (!IsEmpty && (id == 0x0A9D || id == 0x0A9E))
|
|
{
|
|
switch (id)
|
|
{
|
|
case 0x0A9D: base.ItemID = Utility.RandomList(0x0A97, 0x0A98, 0x0A9B); break;
|
|
case 0x0A9E: base.ItemID = Utility.RandomList(0x0A99, 0x0A9A, 0x0A9C); break;
|
|
}
|
|
}
|
|
else if (IsEmpty && id != 0x0A9D && id != 0x0A9E)
|
|
{
|
|
switch (id)
|
|
{
|
|
case 0x0A97:
|
|
case 0x0A98:
|
|
case 0x0A9B: base.ItemID = 0x0A9D; break;
|
|
case 0x0A99:
|
|
case 0x0A9A:
|
|
case 0x0A9C: base.ItemID = 0x0A9E; break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
base.ItemID = value;
|
|
}
|
|
}
|
|
}
|
|
|
|
[Constructable]
|
|
public WoodenBookcase()
|
|
: base(0x0A9D)
|
|
{
|
|
}
|
|
|
|
public override void OnItemAdded(Item item)
|
|
{
|
|
base.OnItemAdded(item);
|
|
|
|
if (ItemID == 0x0A9D || ItemID == 0x0A9E)
|
|
{
|
|
switch (ItemID)
|
|
{
|
|
default:
|
|
case 0x0A9D: ItemID = Utility.RandomList(0x0A97, 0x0A98, 0x0A9B); break;
|
|
case 0x0A9E: ItemID = Utility.RandomList(0x0A99, 0x0A9A, 0x0A9C); break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void OnItemRemoved(Item item)
|
|
{
|
|
base.OnItemRemoved(item);
|
|
|
|
if (IsEmpty && ItemID != 0x0A9D && ItemID != 0x0A9E)
|
|
{
|
|
switch (ItemID)
|
|
{
|
|
default:
|
|
case 0x0A97:
|
|
case 0x0A98:
|
|
case 0x0A9B: base.ItemID = 0x0A9D; break;
|
|
case 0x0A99:
|
|
case 0x0A9A:
|
|
case 0x0A9C: base.ItemID = 0x0A9E; break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void Flip()
|
|
{
|
|
switch (ItemID)
|
|
{
|
|
case 0x0A97: ItemID = 0x0A99; break;
|
|
case 0x0A98: ItemID = 0x0A9A; break;
|
|
case 0x0A99: ItemID = 0x0A97; break;
|
|
case 0x0A9A: ItemID = 0x0A98; break;
|
|
case 0x0A9B: ItemID = 0x0A9C; break;
|
|
case 0x0A9C: ItemID = 0x0A9B; break;
|
|
case 0x0A9D: ItemID = 0x0A9E; break;
|
|
case 0x0A9E: ItemID = 0x0A9D; break;
|
|
}
|
|
}
|
|
|
|
public WoodenBookcase(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
|
|
writer.Write((int)0);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
}
|