All pastes #625469 Raw Edit

Untitled

public text v1 · immutable
·published 2007-07-18 23:16 UTC
rendered paste body
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;
                InvalidateProperties();
            }
        }

        [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;
                    }
            }
        }
    }
}