public override void OnDelete()
        {
            if (this == m_Instance)
            {
                m_Instance = null;
            }

            base.OnDelete();
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            MobList = reader.ReadStrongMobileList();
            // global attributes
            m_Instance = this;
        }
 public static void UpdateInstancePosition(PetRestorationStone attemptedConstruct)
 {
     if (attemptedConstruct == null)
     {
         return;
     }
     if (m_Instance == null) // should never happen, but if it does, make this the instance
     {
         m_Instance = attemptedConstruct;
     }
     else if (attemptedConstruct.Location != new Point3D(0, 0, 0))
     // move the instance to it's location and delete it
     {
         m_Instance.Location = attemptedConstruct.Location;
         attemptedConstruct.Delete();
     }
 }
        public PetRestorationStone()
            : base(0xEDC)
        {
            Name =
                "Pet Restoration Stone - Double click and pets lost in the recent update will be brought here (NOT to your stable) and you will have control of them.";
            Movable = false;
            Visible = false;

            if (m_Instance != null)
            {
                // there can only be one WeaponDamageController game stone in the world
                m_Instance.Location = Location;
                CommandHandlers.BroadcastMessage(
                    AccessLevel.Administrator,
                    0x489,
                    "Existing PetRestorationStone has been moved to this location (DON'T DELETE IT!).");
                Timer.DelayCall(TimeSpan.FromSeconds(1), UpdateInstancePosition, this);
            }
            else
            {
                m_Instance = this;
            }
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            MobList = reader.ReadStrongMobileList();
            // global attributes
            m_Instance = this;
        }
        public override void OnDelete()
        {
            if (this == m_Instance)
            {
                m_Instance = null;
            }

            base.OnDelete();
        }
 public static void UpdateInstancePosition(PetRestorationStone attemptedConstruct)
 {
     if (attemptedConstruct == null)
     {
         return;
     }
     if (m_Instance == null) // should never happen, but if it does, make this the instance
     {
         m_Instance = attemptedConstruct;
     }
     else if (attemptedConstruct.Location != new Point3D(0, 0, 0))
         // move the instance to it's location and delete it
     {
         m_Instance.Location = attemptedConstruct.Location;
         attemptedConstruct.Delete();
     }
 }
        public PetRestorationStone()
            : base(0xEDC)
        {
            Name =
                "Pet Restoration Stone - Double click and pets lost in the recent update will be brought here (NOT to your stable) and you will have control of them.";
            Movable = false;
            Visible = false;

            if (m_Instance != null)
            {
                // there can only be one WeaponDamageController game stone in the world
                m_Instance.Location = Location;
                CommandHandlers.BroadcastMessage(
                    AccessLevel.Administrator,
                    0x489,
                    "Existing PetRestorationStone has been moved to this location (DON'T DELETE IT!).");
                Timer.DelayCall(TimeSpan.FromSeconds(1), UpdateInstancePosition, this);
            }
            else
            {
                m_Instance = this;
            }
        }