Files
abysmal-isle/Scripts/Items/StoreBought/WoodenBookcase.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

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