namespace Server.Items { public class RewardDyeTub : DyeTub { private Mobile m_Owner; private bool m_IsRewardItem; private int m_DyedHue; public virtual bool AllowRunebooks // so you can dye runes. { get { return true; } } [CommandProperty(AccessLevel.GameMaster)] public bool IsRewardItem { get { return m_IsRewardItem; } set { m_IsRewardItem = value; } } [CommandProperty(AccessLevel.GameMaster)] public Mobile Owner { get { return m_Owner; } set { m_Owner = value; InvalidateProperties(); } } [CommandProperty(AccessLevel.GameMaster)] public int DyedHue { get { return m_DyedHue; } set { m_DyedHue = value; } } [Constructable] public RewardDyeTub() : base( 0xFAB ) { Hue = DyedHue = 0; Redyable = false; LootType = LootType.Blessed; } public RewardDyeTub(Serial serial) : base(serial) { } public RewardDyeTub(Mobile owner) { m_Owner = Owner; } public override void OnDoubleClick(Mobile from) { if (from != m_Owner) from.SendAsciiMessage("This is not your Rare DyeTub!"); else { base.OnDoubleClick(from); } } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)1); // version writer.Write((bool)m_IsRewardItem); writer.Write((int)m_DyedHue); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { m_DyedHue = reader.ReadInt(); break; } case 1: { m_IsRewardItem = reader.ReadBool(); break; } } } } }