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

            int version = reader.ReadInt();

            switch (version)
            {
            case 2:
                _YoungProtectionRegionsEnabled = reader.ReadBool();
                goto case 1;

            case 1:
                _MurderYoungFreezeSeconds = reader.ReadInt();
                goto case 0;

            case 0:
                //_PoisonChancePenaltyPerFollower = reader.ReadDouble();
                _MurderersCanJoinAnyFaction         = reader.ReadBool();
                _FactionHealRedIsCriminal           = reader.ReadBool();
                _FactionHealRedIsGuardWhackable     = reader.ReadBool();
                _FactionHealRedCrimIsCriminal       = reader.ReadBool();
                _FactionHealRedCrimIsGuardWhackable = reader.ReadBool();
                _RedHealRedIsCriminal           = reader.ReadBool();
                _RedHealRedIsGuardWhackable     = reader.ReadBool();
                _RedHealRedCrimIsCriminal       = reader.ReadBool();
                _RedHealRedCrimIsGuardWhackable = reader.ReadBool();
                _RedAllowHarmfulToBluesInTown   = reader.ReadBool();
                _HeadRansomCap       = reader.ReadInt();
                _KillsPerYoungMurder = reader.ReadInt();
                break;
            }
            m_Instance = this;
        }
 public static void UpdateInstancePosition(MurderSystemController 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 static void UpdateInstancePosition(MurderSystemController 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 MurderSystemController()
            : base(0xEDC)
        {
            this.Name = "Murder System Controller";
            this.Movable = false;
            this.Visible = false;

            if (m_Instance != null)
            {
                // there can only be one MurderSystemController game stone in the world
                m_Instance.Location = this.Location;
                Server.Commands.CommandHandlers.BroadcastMessage(AccessLevel.Administrator, 0x489,
                    "Existing MurderSystemController has been moved to this location (DON'T DELETE IT!).");
                Timer.DelayCall(TimeSpan.FromSeconds(1), new TimerStateCallback<MurderSystemController>(UpdateInstancePosition), this); 
            }
            else
                m_Instance = this;
        }
        public MurderSystemController()
            : base(0xEDC)
        {
            this.Name    = "Murder System Controller";
            this.Movable = false;
            this.Visible = false;

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

            int version = reader.ReadInt();
            switch (version)
            {
                case 2:
                    _YoungProtectionRegionsEnabled = reader.ReadBool();
                    goto case 1;
                case 1:
                    _MurderYoungFreezeSeconds = reader.ReadInt();
                    goto case 0;
                case 0:
                    //_PoisonChancePenaltyPerFollower = reader.ReadDouble();
                    _MurderersCanJoinAnyFaction = reader.ReadBool();
                    _FactionHealRedIsCriminal = reader.ReadBool();
                    _FactionHealRedIsGuardWhackable = reader.ReadBool();
                    _FactionHealRedCrimIsCriminal = reader.ReadBool();
                    _FactionHealRedCrimIsGuardWhackable  = reader.ReadBool();
                    _RedHealRedIsCriminal = reader.ReadBool();
                    _RedHealRedIsGuardWhackable = reader.ReadBool();
                    _RedHealRedCrimIsCriminal = reader.ReadBool();
                    _RedHealRedCrimIsGuardWhackable = reader.ReadBool();
                    _RedAllowHarmfulToBluesInTown = reader.ReadBool();
                    _HeadRansomCap = reader.ReadInt();
                    _KillsPerYoungMurder = reader.ReadInt();
                    break;
            }
            m_Instance = this;
        }