Esempio n. 1
1
        public VendorInventory(BaseHouse house, GenericReader reader)
        {
            this.m_House = house;

            int version = reader.ReadEncodedInt();

            this.m_Owner = reader.ReadMobile();
            this.m_VendorName = reader.ReadString();
            this.m_ShopName = reader.ReadString();

            this.m_Items = reader.ReadStrongItemList();
            this.m_Gold = reader.ReadInt();

            this.m_ExpireTime = reader.ReadDeltaTime();

            if (this.m_Items.Count == 0 && this.m_Gold == 0)
            {
                Timer.DelayCall(TimeSpan.Zero, new TimerCallback(Delete));
            }
            else
            {
                TimeSpan delay = this.m_ExpireTime - DateTime.Now;
                this.m_ExpireTimer = new ExpireTimer(this, delay > TimeSpan.Zero ? delay : TimeSpan.Zero);
                this.m_ExpireTimer.Start();
            }
        }
Esempio n. 2
1
		public override void Deserialize( GenericReader reader ) 
		{ 
			base.Deserialize( reader ); 
			int version = reader.ReadInt(); 

			m_Player = (PlayerMobile)reader.ReadMobile(); 
		} 
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 1:
                {
                    m_BondOwner = reader.ReadMobile();
                    goto case 0;
                }
                case 0:
                {
                    m_link = (BaseCreature)reader.ReadMobile();
                    m_toDeletePet = reader.ReadBool();
                    break;
                }

            }

            if ( m_link != null )
                m_link.IsStabled = true;
        }
Esempio n. 4
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();
            m_To = reader.ReadMobile();
            m_From = reader.ReadMobile();
        }
Esempio n. 5
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();
            m_StabledPet = reader.ReadMobile();
        }
 public void Deserialize( GenericReader reader )
 {
     Points = reader.ReadInt();
     Wins = reader.ReadInt();
     Losses = reader.ReadInt();
     Part = reader.ReadMobile();
 }
Esempio n. 7
0
        public PlayerState(GenericReader reader, Faction faction, List<PlayerState> owner)
        {
            this.m_Faction = faction;
            this.m_Owner = owner;

            int version = reader.ReadEncodedInt();

            switch ( version )
            {
                case 1:
                    {
                        this.m_IsActive = reader.ReadBool();
                        this.m_LastHonorTime = reader.ReadDateTime();
                        goto case 0;
                    }
                case 0:
                    {
                        this.m_Mobile = reader.ReadMobile();

                        this.m_KillPoints = reader.ReadEncodedInt();
                        this.m_MerchantTitle = (MerchantTitle)reader.ReadEncodedInt();

                        this.m_Leaving = reader.ReadDateTime();

                        break;
                    }
            }

            this.Attach();
        }
Esempio n. 8
0
		public BOBSmallEntry( GenericReader reader )
		{
			int version = reader.ReadEncodedInt();

			switch ( version )
			{
				case 1:
				{
					m_Owner = reader.ReadMobile();
					goto case 0;
				}
				case 0:
				{
					string type = reader.ReadString();

					if ( type != null )
						m_ItemType = ScriptCompiler.FindTypeByFullName( type );

					m_RequireExceptional = reader.ReadBool();

					m_DeedType = (BODType)reader.ReadEncodedInt();

					m_Material = (BulkMaterialType)reader.ReadEncodedInt();
					m_AmountCur = reader.ReadEncodedInt();
					m_AmountMax = reader.ReadEncodedInt();
					m_Number = reader.ReadEncodedInt();
					m_Graphic = reader.ReadEncodedInt();
					m_Price = reader.ReadEncodedInt();

					break;
				}
			}
		}
Esempio n. 9
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 1:
                {
                    m_Placer = reader.ReadMobile();

                    goto case 0;
                }
                case 0:
                {
                    int count = reader.ReadInt();

                    m_Components = new ArrayList( count );

                    for ( int i = 0; i < count; ++i )
                    {
                        Item item = reader.ReadItem();

                        if ( item != null )
                            m_Components.Add( item );
                    }

                    break;
                }
            }
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadEncodedInt();

            m_Owner = reader.ReadMobile();
        }
Esempio n. 11
0
        public CraftContext(GenericReader reader)
        {
            int version = reader.ReadInt();

            m_Items = new List<CraftItem>();

            Owner = reader.ReadMobile();
            int sysIndex = reader.ReadInt();
            m_LastResourceIndex = reader.ReadInt();
            m_LastResourceIndex2 = reader.ReadInt();
            m_LastGroupIndex = reader.ReadInt();
            m_DoNotColor = reader.ReadBool();
            m_MarkOption = (CraftMarkOption)reader.ReadInt();
            m_QuestOption = (CraftQuestOption)reader.ReadInt();

            m_MakeTotal = reader.ReadInt();

            System = GetCraftSystem(sysIndex);

            if (System != null && Owner != null)
            {
                System.AddContext(Owner, this);
                Contexts.Add(this);
            }
        }
Esempio n. 12
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadInt();

			switch (version)
			{
				case 0:
					{
						m_Owner = reader.ReadMobile();
						m_Open = reader.ReadBool();

						if (m_Owner == null)
						{
							Delete();
						}

						break;
					}
			}

			if (ItemID == 0xE41)
			{
				ItemID = 0xE7C;
			}
		}
Esempio n. 13
0
        public Orders( BaseFactionGuard guard, GenericReader reader )
        {
            m_Guard = guard;

            int version = reader.ReadEncodedInt();

            switch ( version )
            {
                case 1:
                {
                    m_Follow = reader.ReadMobile();
                    goto case 0;
                }
                case 0:
                {
                    int count = reader.ReadEncodedInt();
                    m_Reactions = new ArrayList( count );

                    for ( int i = 0; i < count; ++i )
                        m_Reactions.Add( new Reaction( reader ) );

                    m_Movement = (MovementType)reader.ReadEncodedInt();

                    break;
                }
            }
        }
Esempio n. 14
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadInt();
			m_Owner = reader.ReadMobile();
			m_Direction = Direction;
			m_WayPoints = new ArrayList();
		}
Esempio n. 15
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();
            m_Owner = reader.ReadMobile() as BaseCreature;

            Delete();
        }
Esempio n. 16
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_Parrot = reader.ReadMobile() as PetParrot;
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();
            m_MobileLock = reader.ReadMobile();
            m_BeltName = reader.ReadString();
        }
Esempio n. 18
0
        public EnchantContext( GenericReader reader, BaseWeapon weapon )
        {
            m_Owner = reader.ReadMobile();
            m_Attribute = (WeaponAttribute) reader.ReadInt();
            m_SpellChanneling = reader.ReadBool();
            m_Timer = Timer.DelayCall( reader.ReadTimeSpan(), new TimerStateCallback<BaseWeapon>( EnchantSpell.RemoveEnchantContext ), weapon );

            weapon.EnchantContext = this;
        }
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            /*int version = */
            reader.ReadInt();

            m_Representative = reader.ReadMobile() as BaseLibraryRepresentative;
        }
Esempio n. 20
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			LootType = LootType.Blessed;

			int version = reader.ReadInt();

			m_Owner = reader.ReadMobile();
		}
Esempio n. 21
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            this.m_Daemon = reader.ReadMobile() as BoneDemon;

            this.CheckDaemon();
        }
Esempio n. 22
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            var version = reader.ReadInt();

            Created = reader.ReadDateTime();
            Bounty = reader.ReadInt();
            Player = reader.ReadMobile<PlayerMobile>();
        }
Esempio n. 23
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            if (version == 1)
                reader.ReadMobile();
            else if (version == 2)
                m_Owner = reader.ReadString();
        }
Esempio n. 24
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadInt();
			m_Placer = reader.ReadMobile();
			m_Value = reader.ReadInt();
			ID1 = reader.ReadInt();
			ID2 = reader.ReadInt();
			ID3 = reader.ReadInt();
			ID4 = reader.ReadInt();
		}
        private static void Deserialize(GenericReader reader)
        {
            int version = reader.ReadInt();

            int count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                PlayerMobile m = reader.ReadMobile() as PlayerMobile;
                if(m != null)
                    NewPlayers.Add((PlayerMobile)m);
            }
        }
Esempio n. 26
0
        public TownState( GenericReader reader )
        {
            int version = reader.ReadEncodedInt();

            switch ( version )
            {
                case 3:
                {
                    m_LastIncome = reader.ReadDateTime();

                    goto case 2;
                }
                case 2:
                {
                    m_Tax = reader.ReadEncodedInt();
                    m_LastTaxChange = reader.ReadDateTime();

                    goto case 1;
                }
                case 1:
                {
                    m_Silver = reader.ReadEncodedInt();

                    goto case 0;
                }
                case 0:
                {
                    m_Town = Town.ReadReference( reader );
                    m_Owner = Faction.ReadReference( reader );

                    m_Sheriff = reader.ReadMobile();
                    m_Finance = reader.ReadMobile();

                    m_Town.State = this;

                    break;
                }
            }
        }
Esempio n. 27
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            int size = reader.ReadInt();

            DonationList = new Dictionary<PlayerMobile, int>();
            for (int i = 0; i < size; i++)
            {
                PlayerMobile m = reader.ReadMobile() as PlayerMobile;
                int value = reader.ReadInt();
                DonationList.Add(m, value);
            }
            UpdateBook();

            m_James = reader.ReadMobile();

            if (version == 0 && Weight == 25)
                Weight = -1;
        }
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			reader.ReadEncodedInt();

			m_Statue = reader.ReadMobile<CharacterStatue>();

			if (m_Statue == null || m_Statue.SculptedBy == null || Map == Map.Internal)
			{
				Timer.DelayCall(TimeSpan.Zero, Delete);
			}
		}
Esempio n. 29
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadEncodedInt();

            this.m_Statue = reader.ReadMobile() as CharacterStatue;

            if (this.m_Statue == null || this.m_Statue.SculptedBy == null || this.Map == Map.Internal)
            {
                Timer.DelayCall(TimeSpan.Zero, new TimerCallback(Delete));
            }
        }
Esempio n. 30
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			m_Title = reader.ReadString();
			m_Rank = (TrophyRank) reader.ReadInt();
			m_Owner = reader.ReadMobile();
			m_Date = reader.ReadDateTime();

			if ( version == 0 )
				LootType = LootType.Blessed;
		}
Esempio n. 31
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            m_Ghost = reader.ReadMobile() as GhostPast;
        }
Esempio n. 32
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 7:
            case 6:
            case 5:
            {
                SaveFlag flags = (SaveFlag)reader.ReadEncodedInt();

                if (GetSaveFlag(flags, SaveFlag.Identified))
                {
                    m_Identified = version >= 7 || reader.ReadBool();
                }

                if (GetSaveFlag(flags, SaveFlag.MaxHitPoints))
                {
                    m_MaxHitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.HitPoints))
                {
                    m_HitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Crafter))
                {
                    m_Crafter = reader.ReadMobile();
                }

                if (GetSaveFlag(flags, SaveFlag.Quality))
                {
                    m_Quality = (ArmorQuality)reader.ReadEncodedInt();
                }
                else
                {
                    m_Quality = ArmorQuality.Regular;
                }

                if (version == 5 && m_Quality == ArmorQuality.Low)
                {
                    m_Quality = ArmorQuality.Regular;
                }

                if (GetSaveFlag(flags, SaveFlag.Durability))
                {
                    m_Durability = (ArmorDurabilityLevel)reader.ReadEncodedInt();

                    if (m_Durability > ArmorDurabilityLevel.Indestructible)
                    {
                        m_Durability = ArmorDurabilityLevel.Durable;
                    }
                }

                if (GetSaveFlag(flags, SaveFlag.Protection))
                {
                    m_Protection = (ArmorProtectionLevel)reader.ReadEncodedInt();

                    if (m_Protection > ArmorProtectionLevel.Invulnerability)
                    {
                        m_Protection = ArmorProtectionLevel.Defense;
                    }
                }

                if (GetSaveFlag(flags, SaveFlag.Resource))
                {
                    m_Resource = (CraftResource)reader.ReadEncodedInt();
                }
                else
                {
                    m_Resource = DefaultResource;
                }

                if (m_Resource == CraftResource.None)
                {
                    m_Resource = DefaultResource;
                }

                if (GetSaveFlag(flags, SaveFlag.BaseArmor))
                {
                    m_ArmorBase = reader.ReadEncodedInt();
                }
                else
                {
                    m_ArmorBase = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.StrBonus))
                {
                    m_StrBonus = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrBonus = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.DexBonus))
                {
                    m_DexBonus = reader.ReadEncodedInt();
                }
                else
                {
                    m_DexBonus = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.IntBonus))
                {
                    m_IntBonus = reader.ReadEncodedInt();
                }
                else
                {
                    m_IntBonus = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.StrReq))
                {
                    m_StrReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.DexReq))
                {
                    m_DexReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_DexReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.IntReq))
                {
                    m_IntReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_IntReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.MedAllowance))
                {
                    m_Meditate = (AMA)reader.ReadEncodedInt();
                }
                else
                {
                    m_Meditate = (AMA)(-1);
                }

                if (GetSaveFlag(flags, SaveFlag.PlayerConstructed))
                {
                    m_PlayerConstructed = true;
                }

                break;
            }

            case 4:
            case 3:
            case 2:
            case 1:
            {
                m_Identified = reader.ReadBool();
                goto case 0;
            }

            case 0:
            {
                m_ArmorBase    = reader.ReadInt();
                m_MaxHitPoints = reader.ReadInt();
                m_HitPoints    = reader.ReadInt();
                m_Crafter      = reader.ReadMobile();
                m_Quality      = (ArmorQuality)reader.ReadInt();
                m_Durability   = (ArmorDurabilityLevel)reader.ReadInt();
                m_Protection   = (ArmorProtectionLevel)reader.ReadInt();

                AMT mat = (AMT)reader.ReadInt();

                if (m_ArmorBase == RevertArmorBase)
                {
                    m_ArmorBase = -1;
                }

                if (version >= 2)
                {
                    m_Resource = (CraftResource)reader.ReadInt();
                }
                else
                {
                    OreInfo info;

                    switch (reader.ReadInt())
                    {
                    default:
                    case 0: info = OreInfo.Iron; break;

                    case 1: info = OreInfo.DullCopper; break;

                    case 2: info = OreInfo.ShadowIron; break;

                    case 3: info = OreInfo.Copper; break;

                    case 4: info = OreInfo.Bronze; break;

                    case 5: info = OreInfo.Gold; break;

                    case 6: info = OreInfo.Agapite; break;

                    case 7: info = OreInfo.Verite; break;

                    case 8: info = OreInfo.Valorite; break;
                    }

                    m_Resource = CraftResources.GetFromOreInfo(info, mat);
                }

                m_StrBonus = reader.ReadInt();
                m_DexBonus = reader.ReadInt();
                m_IntBonus = reader.ReadInt();
                m_StrReq   = reader.ReadInt();
                m_DexReq   = reader.ReadInt();
                m_IntReq   = reader.ReadInt();

                if (m_StrBonus == OldStrBonus)
                {
                    m_StrBonus = -1;
                }

                if (m_DexBonus == OldDexBonus)
                {
                    m_DexBonus = -1;
                }

                if (m_IntBonus == OldIntBonus)
                {
                    m_IntBonus = -1;
                }

                if (m_StrReq == OldStrReq)
                {
                    m_StrReq = -1;
                }

                if (m_DexReq == OldDexReq)
                {
                    m_DexReq = -1;
                }

                if (m_IntReq == OldIntReq)
                {
                    m_IntReq = -1;
                }

                m_Meditate = (AMA)reader.ReadInt();

                if (m_Meditate == OldMedAllowance)
                {
                    m_Meditate = (AMA)(-1);
                }

                if (m_Resource == CraftResource.None)
                {
                    if (mat == ArmorMaterialType.Studded || mat == ArmorMaterialType.Leather)
                    {
                        m_Resource = CraftResource.RegularLeather;
                    }
                    else
                    {
                        m_Resource = CraftResource.Iron;
                    }
                }

                if (m_MaxHitPoints == 0 && m_HitPoints == 0)
                {
                    m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits);
                }

                break;
            }
            }

            int strBonus = ComputeStatBonus(StatType.Str);
            int dexBonus = ComputeStatBonus(StatType.Dex);
            int intBonus = ComputeStatBonus(StatType.Int);

            if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0))
            {
                Mobile m = (Mobile)Parent;

                string modName = Serial.ToString();

                if (strBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero));
                }

                if (dexBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero));
                }

                if (intBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero));
                }
            }

            if (Parent is Mobile)
            {
                ((Mobile)Parent).CheckStatTimers();
            }

            if (version < 7)
            {
                m_PlayerConstructed = true;                 // we don't know, so, assume it's crafted
            }
        }
Esempio n. 33
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            switch (version)
            {
            case 1:
            {
                m_DeadLine  = reader.ReadDateTime();
                m_Boss      = reader.ReadMobile();
                m_Activated = reader.ReadBool();
                m_Active    = reader.ReadBool();
                m_WarpPoint = reader.ReadPoint3D();

                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    Item map = reader.ReadItem();

                    if (map != null && !map.Deleted && map is CorgulIslandMap)
                    {
                        m_IslandMaps.Add(map);
                        ((CorgulIslandMap)map).Altar = this;
                    }
                }

                break;
            }

            case 0:
            {
                m_DeadLine  = reader.ReadDateTime();
                m_Boss      = reader.ReadMobile();
                m_Activated = reader.ReadBool();
                m_Active    = reader.ReadBool();
                m_WarpPoint = reader.ReadPoint3D();
                //m_IslandMap = reader.ReadItem() as CorgulIslandMap;
                Item item = reader.ReadItem();
                break;
            }
            }

            InitializeBossRegion();

            if (m_Active && m_Activated && m_WarpPoint != Point3D.Zero)
            {
                if (m_DeadLine < DateTime.UtcNow || m_Boss == null || m_Boss.Deleted)
                {
                    Reset();
                }
                else
                {
                    Rectangle2D bounds = GetRectangle(m_WarpPoint);
                    m_WarpRegion = new CorgulWarpRegion(this, bounds);
                    m_WarpRegion.Register();

                    m_DeadLineTimer = Timer.DelayCall(TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10), OnTick);
                }
            }
        }
Esempio n. 34
0
        public void Deserialize(GenericReader reader)
        {
            var version = reader.GetVersion();

            switch (version)
            {
            case 3:
                Deleted = reader.ReadBool();
                goto case 2;

            case 2:
            case 1:
                Bonus = reader.ReadLong();
                goto case 0;

            case 0:
            {
                ID      = reader.ReadString();
                _State  = reader.ReadFlag <TransactionState>();
                Account = reader.ReadAccount();
                Email   = reader.ReadString();
                Total   = reader.ReadDouble();
                Credit  = reader.ReadLong();

                Time = version > 0 ? reader.ReadTimeStamp() : reader.ReadDouble();

                Version = reader.ReadInt();

                if (version < 1)
                {
                    reader.ReadInt();                             // InternalVersion
                }

                Notes = reader.ReadString();
                Extra = reader.ReadString();

                if (version > 1)
                {
                    DeliveredTo  = reader.ReadString();
                    DeliveryTime = reader.ReadTimeStamp();
                }
                else if (version > 0)
                {
                    var m = reader.ReadMobile();

                    DeliveredTo  = m != null ? m.RawName : null;
                    DeliveryTime = reader.ReadTimeStamp();
                }
                else
                {
                    reader.ReadMobile();                             // DeliverFrom

                    var m = reader.ReadMobile();

                    DeliveredTo  = m != null ? m.RawName : null;
                    DeliveryTime = reader.ReadDouble();
                }
            }
            break;
            }
        }
Esempio n. 35
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 3:
            {
                m_Inmates = new Hashtable();
                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    Mobile   m  = reader.ReadMobile();
                    DateTime dt = reader.ReadDateTime();
                    m_Inmates.Add(m, dt);
                }
                break;
            }

            case 2:
            {
                m_Inmates = new Hashtable();
                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    Mobile   m  = reader.ReadMobile();
                    TimeSpan ts = reader.ReadTimeSpan();
                    DateTime dt = DateTime.Now + ts;
                    m_Inmates.Add(m, dt);
                }
                break;
            }

            case 1:
            {
                m_Inmates = new Hashtable();
                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    Mobile   m  = reader.ReadMobile();
                    DateTime dt = reader.ReadDateTime();
                    m_Inmates.Add(m, dt);
                }
                break;
            }

            case 0:
            {
                m_Inmates = new Hashtable();
                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    Mobile   m  = reader.ReadMobile();
                    DateTime dt = reader.ReadDateTime() + TimeSpan.FromHours(24);
                    m_Inmates.Add(m, dt);
                }
                break;
            }
            }
        }
Esempio n. 36
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 12:
            {
                if (reader.ReadBool())
                {
                    m_RestoreEquip = reader.ReadStrongItemList();
                }

                goto case 11;
            }

            case 11:
            {
                // Version 11, we move all bools to a CorpseFlag
                m_Flags = (CorpseFlag)reader.ReadInt();

                m_TimeOfDeath = reader.ReadDeltaTime();

                int count = reader.ReadInt();

                for (int i = 0; i < count; ++i)
                {
                    Item item = reader.ReadItem();

                    if (reader.ReadBool())
                    {
                        SetRestoreInfo(item, reader.ReadPoint3D());
                    }
                    else if (item != null)
                    {
                        SetRestoreInfo(item, item.Location);
                    }
                }

                if (reader.ReadBool())
                {
                    BeginDecay(reader.ReadDeltaTime() - DateTime.UtcNow);
                }

                m_Looters = reader.ReadStrongMobileList();
                m_Killer  = reader.ReadMobile();

                m_Aggressors = reader.ReadStrongMobileList();
                m_Owner      = reader.ReadMobile();

                m_CorpseName = reader.ReadString();

                m_AccessLevel = (AccessLevel)reader.ReadInt();
                reader.ReadInt();                                 // guild reserve
                m_Kills = reader.ReadInt();

                m_EquipItems = reader.ReadStrongItemList();
                break;
            }

            case 10:
            {
                m_TimeOfDeath = reader.ReadDeltaTime();

                goto case 9;
            }

            case 9:
            {
                int count = reader.ReadInt();

                for (int i = 0; i < count; ++i)
                {
                    Item item = reader.ReadItem();

                    if (reader.ReadBool())
                    {
                        SetRestoreInfo(item, reader.ReadPoint3D());
                    }
                    else if (item != null)
                    {
                        SetRestoreInfo(item, item.Location);
                    }
                }

                goto case 8;
            }

            case 8:
            {
                SetFlag(CorpseFlag.VisitedByTaxidermist, reader.ReadBool());

                goto case 7;
            }

            case 7:
            {
                if (reader.ReadBool())
                {
                    BeginDecay(reader.ReadDeltaTime() - DateTime.UtcNow);
                }

                goto case 6;
            }

            case 6:
            {
                m_Looters = reader.ReadStrongMobileList();
                m_Killer  = reader.ReadMobile();

                goto case 5;
            }

            case 5:
            {
                SetFlag(CorpseFlag.Carved, reader.ReadBool());

                goto case 4;
            }

            case 4:
            {
                m_Aggressors = reader.ReadStrongMobileList();

                goto case 3;
            }

            case 3:
            {
                m_Owner = reader.ReadMobile();

                goto case 2;
            }

            case 2:
            {
                SetFlag(CorpseFlag.NoBones, reader.ReadBool());

                goto case 1;
            }

            case 1:
            {
                m_CorpseName = reader.ReadString();

                goto case 0;
            }

            case 0:
            {
                if (version < 10)
                {
                    m_TimeOfDeath = DateTime.UtcNow;
                }

                if (version < 7)
                {
                    BeginDecay(m_DefaultDecayTime);
                }

                if (version < 6)
                {
                    m_Looters = new List <Mobile>();
                }

                if (version < 4)
                {
                    m_Aggressors = new List <Mobile>();
                }

                m_AccessLevel = (AccessLevel)reader.ReadInt();
                reader.ReadInt();                                 // guild reserve
                m_Kills = reader.ReadInt();
                SetFlag(CorpseFlag.Criminal, reader.ReadBool());

                m_EquipItems = reader.ReadStrongItemList();

                break;
            }
            }

            if (m_Owner is PlayerMobile)
            {
                if (PlayerCorpses == null)
                {
                    PlayerCorpses = new Dictionary <Corpse, int>();
                }

                PlayerCorpses[this] = 0;
            }
        }
Esempio n. 37
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 5:
            {
                Owner = reader.ReadMobile();
                goto case 4;
            }

            case 4:
            case 3:
                if (version < 5)
                {
                    reader.ReadBool();
                }
                goto case 2;

            case 2:
            case 1:
                if (reader.ReadBool())
                {
                    m_Helpers = reader.ReadStrongMobileList <BaseCreature>();
                }
                goto case 0;

            case 0:
                Peerless     = reader.ReadMobile() as BasePeerless;
                BossLocation = reader.ReadPoint3D();
                TeleportDest = reader.ReadPoint3D();
                ExitDest     = reader.ReadPoint3D();

                Deadline = reader.ReadDateTime();

                MasterKeys = reader.ReadStrongItemList();
                Fighters   = reader.ReadStrongMobileList();

                if (version < 4)
                {
                    int count = reader.ReadInt();

                    for (int i = 0; i < count; i++)
                    {
                        reader.ReadMobile();
                        reader.ReadStrongMobileList();
                    }
                }

                if (version < 2)
                {
                    reader.ReadBool();
                }

                if (Peerless == null && m_Helpers.Count > 0)
                {
                    Timer.DelayCall(TimeSpan.FromSeconds(30), new TimerCallback(CleanupHelpers));
                }

                break;
            }


            if (Owner != null && Peerless == null)
            {
                FinishSequence();
            }
        }
Esempio n. 38
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 3:
            {
                m_Crafter = reader.ReadMobile();
                goto case 2;
            }

            case 2:
            {
                m_Slayer  = (SlayerName)reader.ReadInt();
                m_Slayer2 = (SlayerName)reader.ReadInt();
                goto case 1;
            }

            case 1:
            {
                m_AosAttributes   = new AosAttributes(this, reader);
                m_AosSkillBonuses = new AosSkillBonuses(this, reader);

                goto case 0;
            }

            case 0:
            {
                m_Content = reader.ReadULong();
                m_Count   = reader.ReadInt();

                break;
            }
            }

            if (m_AosAttributes == null)
            {
                m_AosAttributes = new AosAttributes(this);
            }

            if (m_AosSkillBonuses == null)
            {
                m_AosSkillBonuses = new AosSkillBonuses(this);
            }

            if (Core.AOS && Parent is Mobile)
            {
                m_AosSkillBonuses.AddTo((Mobile)Parent);
            }

            int strBonus = m_AosAttributes.BonusStr;
            int dexBonus = m_AosAttributes.BonusDex;
            int intBonus = m_AosAttributes.BonusInt;

            if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0))
            {
                Mobile m = (Mobile)Parent;

                string modName = Serial.ToString();

                if (strBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero));
                }

                if (dexBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero));
                }

                if (intBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero));
                }
            }

            if (Parent is Mobile)
            {
                ((Mobile)Parent).CheckStatTimers();
            }
        }
Esempio n. 39
0
        public VvVBattle(GenericReader reader, ViceVsVirtueSystem system)
        {
            int version = reader.ReadInt();

            System = system;

            Altars       = new List <VvVAltar>();
            KillCooldown = new Dictionary <Mobile, DateTime>();
            Messages     = new List <string>();
            Traps        = new List <VvVTrap>();
            Warned       = new List <Mobile>();
            Turrets      = new List <CannonTurret>();
            Teams        = new List <BattleTeam>();

            OnGoing = reader.ReadBool();

            if (reader.ReadInt() == 0)
            {
                StartTime           = reader.ReadDateTime();
                CooldownEnds        = reader.ReadDateTime();
                LastOccupationCheck = reader.ReadDateTime();
                NextSigilSpawn      = reader.ReadDateTime();
                NextAnnouncement    = reader.ReadDateTime();
                NextAltarActivate   = reader.ReadDateTime();
                City         = (VvVCity)reader.ReadInt();
                Sigil        = reader.ReadItem() as VvVSigil;
                VicePriest   = reader.ReadMobile() as VvVPriest;
                VirtuePriest = reader.ReadMobile() as VvVPriest;

                if (Sigil != null)
                {
                    Sigil.Battle = this;
                }

                if (VicePriest != null)
                {
                    VicePriest.Battle = this;
                }

                if (VirtuePriest != null)
                {
                    VirtuePriest.Battle = this;
                }

                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    VvVAltar altar = reader.ReadItem() as VvVAltar;
                    if (altar != null)
                    {
                        altar.Battle = this;
                        Altars.Add(altar);
                    }
                }

                if (version == 1)
                {
                    count = reader.ReadInt();
                    for (int i = 0; i < count; i++)
                    {
                        BattleTeam team = new BattleTeam(reader);
                        Teams.Add(team);
                    }
                }
                else
                {
                    count = reader.ReadInt();
                    for (int i = 0; i < count; i++)
                    {
                        Guild g = reader.ReadGuild() as Guild;
                        VvVGuildBattleStats stats = new VvVGuildBattleStats(reader, g);
                    }
                }

                count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    VvVTrap t = reader.ReadItem() as VvVTrap;

                    if (t != null)
                    {
                        Traps.Add(t);
                    }
                }

                Timer.DelayCall(TimeSpan.FromSeconds(10), () =>
                {
                    if (Region is GuardedRegion)
                    {
                        GuardedRegion.Disable((GuardedRegion)Region);
                    }

                    BeginTimer();

                    ActivateArrows();
                });
            }
        }
Esempio n. 40
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 3:
            {
                m_State = (HouseRaffleState)reader.ReadEncodedInt();

                goto case 2;
            }

            case 2:
            {
                m_ExpireAction = (HouseRaffleExpireAction)reader.ReadEncodedInt();

                goto case 1;
            }

            case 1:
            {
                m_Deed = reader.ReadItem <HouseRaffleDeed>();

                goto case 0;
            }

            case 0:
            {
                bool oldActive = (version < 3) ? reader.ReadBool() : false;

                m_Bounds = reader.ReadRect2D();
                m_Facet  = reader.ReadMap();

                m_Winner = reader.ReadMobile();

                m_TicketPrice = reader.ReadInt();
                m_Started     = reader.ReadDateTime();
                m_Duration    = reader.ReadTimeSpan();

                int entryCount = reader.ReadInt();
                m_Entries = new List <RaffleEntry>(entryCount);

                for (int i = 0; i < entryCount; i++)
                {
                    RaffleEntry entry = new RaffleEntry(reader, version);

                    if (entry.From == null)
                    {
                        continue;         // Character was deleted
                    }
                    m_Entries.Add(entry);
                }

                InvalidateRegion();

                m_AllStones.Add(this);

                if (version < 3)
                {
                    if (oldActive)
                    {
                        m_State = HouseRaffleState.Active;
                    }
                    else if (m_Winner != null)
                    {
                        m_State = HouseRaffleState.Completed;
                    }
                    else
                    {
                        m_State = HouseRaffleState.Inactive;
                    }
                }

                break;
            }
            }
        }
Esempio n. 41
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            if (version == 0)               //BodyParty -> Head
            {
                reader.ReadDateTime();
                version = reader.ReadInt();
            }

            switch (version)
            {
            case 2:
            {
                m_PlayerName = reader.ReadString();
                m_HeadType   = (HeadType)reader.ReadEncodedInt();
                break;
            }

            case 1:
            case 0:
            {
                if (reader.ReadBool())
                {
                    Timer.DelayCall(TimeSpan.FromSeconds(5.0), new TimerStateCallback(ConvertHead), reader.ReadMobile());
                }

                break;
            }

                /*
                 * case 0:
                 * {
                 *      string format = this.Name;
                 *
                 *      if ( format != null )
                 *      {
                 *              if ( format.StartsWith( "the head of " ) )
                 *                      format = format.Substring( "the head of ".Length );
                 *
                 *              if ( format.EndsWith( ", taken in a duel" ) )
                 *              {
                 *                      format = format.Substring( 0, format.Length - ", taken in a duel".Length );
                 *                      m_HeadType = HeadType.Duel;
                 *              }
                 *              else if ( format.EndsWith( ", taken in a tournament" ) )
                 *              {
                 *                      format = format.Substring( 0, format.Length - ", taken in a tournament".Length );
                 *                      m_HeadType = HeadType.Tournament;
                 *              }
                 *      }
                 *
                 *      m_PlayerName = format;
                 *      this.Name = null;
                 *
                 *      break;
                 * }
                 */
            }
        }
Esempio n. 42
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            Spawn      = new Dictionary <BaseCreature, List <BaseCreature> >();
            SpawnZones = new List <Rectangle2D>();

            if (Map == Map.Trammel)
            {
                TramInstance = this;
            }

            if (Map == Map.Felucca)
            {
                FelInstance = this;
            }

            CurrentInvasion = (City)reader.ReadInt();
            InvasionType    = (InvasionType)reader.ReadInt();
            Beacon          = reader.ReadItem() as InvasionBeacon;
            CurrentWave     = reader.ReadInt();

            if (Beacon != null)
            {
                Beacon.Controller = this;
            }

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                SpawnZones.Add(reader.ReadRect2D());
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                BaseCreature captain = reader.ReadMobile() as BaseCreature;
                int          c       = reader.ReadInt();

                List <BaseCreature> list = new List <BaseCreature>();

                for (int j = 0; j < c; j++)
                {
                    BaseCreature spawn = reader.ReadMobile() as BaseCreature;

                    if (spawn != null)
                    {
                        list.Add(spawn);
                    }
                }

                if (captain != null)
                {
                    Spawn[captain] = list;
                }
                else
                {
                    list.Clear();
                }
            }

            Timer.DelayCall(TimeSpan.FromSeconds(10), () =>
            {
                if (Beacon == null || Beacon.Destroyed)
                {
                    Timer.DelayCall(TimeSpan.FromMinutes(2), () =>
                    {
                        Cleanup();
                        BeginInvasion();
                    });
                }
            });
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                #region ItemID_Mods
            case 6:
            {
                SaveFlag flags = (SaveFlag)reader.ReadEncodedInt();

                if (GetSaveFlag(flags, SaveFlag.Resource))
                {
                    m_Resource = (CraftResource)reader.ReadEncodedInt();
                }
                else
                {
                    m_Resource = DefaultResource;
                }

                if (GetSaveFlag(flags, SaveFlag.Attributes))
                {
                    m_AosAttributes = new AosAttributes(this, reader);
                }
                else
                {
                    m_AosAttributes = new AosAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.ClothingAttributes))
                {
                    m_AosClothingAttributes = new AosArmorAttributes(this, reader);
                }
                else
                {
                    m_AosClothingAttributes = new AosArmorAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.SkillBonuses))
                {
                    m_AosSkillBonuses = new AosSkillBonuses(this, reader);
                }
                else
                {
                    m_AosSkillBonuses = new AosSkillBonuses(this);
                }

                if (GetSaveFlag(flags, SaveFlag.Resistances))
                {
                    m_AosResistances = new AosElementAttributes(this, reader);
                }
                else
                {
                    m_AosResistances = new AosElementAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.MaxHitPoints))
                {
                    m_MaxHitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.HitPoints))
                {
                    m_HitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Crafter))
                {
                    m_Crafter = reader.ReadMobile();
                }

                if (GetSaveFlag(flags, SaveFlag.Quality))
                {
                    m_Quality = (ClothingQuality)reader.ReadEncodedInt();
                }
                else
                {
                    m_Quality = ClothingQuality.Regular;
                }

                if (GetSaveFlag(flags, SaveFlag.StrReq))
                {
                    m_StrReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.PlayerConstructed))
                {
                    m_PlayerConstructed = true;
                }

                if (GetSaveFlag(flags, SaveFlag.Identified))
                {
                    m_Identified = true;
                }
                break;
            }

                #endregion
            case 5:
            {
                SaveFlag flags = (SaveFlag)reader.ReadEncodedInt();

                if (GetSaveFlag(flags, SaveFlag.Resource))
                {
                    m_Resource = (CraftResource)reader.ReadEncodedInt();
                }
                else
                {
                    m_Resource = DefaultResource;
                }

                if (GetSaveFlag(flags, SaveFlag.Attributes))
                {
                    m_AosAttributes = new AosAttributes(this, reader);
                }
                else
                {
                    m_AosAttributes = new AosAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.ClothingAttributes))
                {
                    m_AosClothingAttributes = new AosArmorAttributes(this, reader);
                }
                else
                {
                    m_AosClothingAttributes = new AosArmorAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.SkillBonuses))
                {
                    m_AosSkillBonuses = new AosSkillBonuses(this, reader);
                }
                else
                {
                    m_AosSkillBonuses = new AosSkillBonuses(this);
                }

                if (GetSaveFlag(flags, SaveFlag.Resistances))
                {
                    m_AosResistances = new AosElementAttributes(this, reader);
                }
                else
                {
                    m_AosResistances = new AosElementAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.MaxHitPoints))
                {
                    m_MaxHitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.HitPoints))
                {
                    m_HitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Crafter))
                {
                    m_Crafter = reader.ReadMobile();
                }

                if (GetSaveFlag(flags, SaveFlag.Quality))
                {
                    m_Quality = (ClothingQuality)reader.ReadEncodedInt();
                }
                else
                {
                    m_Quality = ClothingQuality.Regular;
                }

                if (GetSaveFlag(flags, SaveFlag.StrReq))
                {
                    m_StrReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.PlayerConstructed))
                {
                    m_PlayerConstructed = true;
                }

                break;
            }

            case 4:
            {
                m_Resource = (CraftResource)reader.ReadInt();

                goto case 3;
            }

            case 3:
            {
                m_AosAttributes         = new AosAttributes(this, reader);
                m_AosClothingAttributes = new AosArmorAttributes(this, reader);
                m_AosSkillBonuses       = new AosSkillBonuses(this, reader);
                m_AosResistances        = new AosElementAttributes(this, reader);

                goto case 2;
            }

            case 2:
            {
                m_PlayerConstructed = reader.ReadBool();
                goto case 1;
            }

            case 1:
            {
                m_Crafter = reader.ReadMobile();
                m_Quality = (ClothingQuality)reader.ReadInt();
                break;
            }

            case 0:
            {
                m_Crafter = null;
                m_Quality = ClothingQuality.Regular;
                break;
            }
            }

            if (version < 2)
            {
                m_PlayerConstructed = true;                 // we don't know, so, assume it's crafted
            }
            if (version < 3)
            {
                m_AosAttributes         = new AosAttributes(this);
                m_AosClothingAttributes = new AosArmorAttributes(this);
                m_AosSkillBonuses       = new AosSkillBonuses(this);
                m_AosResistances        = new AosElementAttributes(this);
            }

            if (version < 4)
            {
                m_Resource = DefaultResource;
            }

            if (m_MaxHitPoints == 0 && m_HitPoints == 0)
            {
                m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits);
            }

            Mobile parent = Parent as Mobile;

            if (parent != null)
            {
                if (Core.AOS)
                {
                    m_AosSkillBonuses.AddTo(parent);
                }

                AddStatBonuses(parent);
                parent.CheckStatTimers();
            }
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 3:
            {
                m_ReplenishesCharges = reader.ReadBool();

                if (m_ReplenishesCharges)
                {
                    m_LastReplenished = reader.ReadDateTime();
                }

                goto case 2;
            }

            case 2:
            {
                m_Crafter = reader.ReadMobile();

                m_Quality = (InstrumentQuality)reader.ReadEncodedInt();
                m_Slayer  = (SlayerName)reader.ReadEncodedInt();
                m_Slayer2 = (SlayerName)reader.ReadEncodedInt();

                UsesRemaining = reader.ReadEncodedInt();

                m_WellSound  = reader.ReadEncodedInt();
                m_BadlySound = reader.ReadEncodedInt();

                break;
            }

            case 1:
            {
                m_Crafter = reader.ReadMobile();

                m_Quality = (InstrumentQuality)reader.ReadEncodedInt();
                m_Slayer  = (SlayerName)reader.ReadEncodedInt();

                UsesRemaining = reader.ReadEncodedInt();

                m_WellSound  = reader.ReadEncodedInt();
                m_BadlySound = reader.ReadEncodedInt();

                break;
            }

            case 0:
            {
                m_WellSound   = reader.ReadInt();
                m_BadlySound  = reader.ReadInt();
                UsesRemaining = Utility.RandomMinMax(InitMinUses, InitMaxUses);

                break;
            }
            }

            CheckReplenishUses();
        }
Esempio n. 45
0
        public override void Deserialize(GenericReader reader)
        {
            int version = reader.ReadInt();

            switch (version)
            {
            case 4:
            {
                m_AllyDeclarations = reader.ReadGuildListOrNull();
                m_AllyInvitations  = reader.ReadGuildListOrNull();

                goto case 3;
            }

            case 3:
            {
                m_TypeLastChange = reader.ReadDateTime();

                goto case 2;
            }

            case 2:
            {
                m_Type = (GuildType)reader.ReadInt();

                goto case 1;
            }

            case 1:
            {
                m_LastFealty = reader.ReadDateTime();

                goto case 0;
            }

            case 0:
            {
                m_Leader       = reader.ReadMobile();
                m_Name         = reader.ReadString();
                m_Abbreviation = reader.ReadString();

                m_Allies          = reader.ReadGuildListOrNull();
                m_Enemies         = reader.ReadGuildListOrNull();
                m_WarDeclarations = reader.ReadGuildListOrNull();
                m_WarInvitations  = reader.ReadGuildListOrNull();

                m_Members    = reader.ReadMobileList();
                m_Candidates = reader.ReadMobileListOrNull();
                m_Accepted   = reader.ReadMobileListOrNull();

                m_Guildstone = reader.ReadItem();
                m_Teleporter = reader.ReadItem();

                m_Charter = reader.ReadString();
                m_Website = reader.ReadString();

                break;
            }
            }

            if (m_Guildstone == null || m_Members.Count == 0)
            {
                Disband();
            }
        }
Esempio n. 46
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 5:
            {
                m_MultiID  = reader.ReadInt();
                m_Offset   = reader.ReadPoint3D();
                m_ShipName = reader.ReadString();
                m_BoatItem = reader.ReadItem() as BaseBoat;
                break;
            }

            case 4:
            {
                switch (reader.ReadInt())
                {
                default:
                case 0: break;

                case 1: m_PilotEntry = new PilotEntry(reader);
                    break;
                }
                goto case 3;
            }

            case 3:
            {
                m_BaseHue = reader.ReadInt();

                if (version < 5)
                {
                    reader.ReadItem();
                }
                reader.ReadItem();
                m_Owner = reader.ReadMobile();
                goto case 2;
            }

            case 2:
            {
                switch (reader.ReadInt())
                {
                default:
                case 0: break;

                case 1: m_SecurityEntry = new SecurityEntry(null, reader);
                    break;
                }
                goto case 1;
            }

            case 1:
            case 0:
            {
                m_MultiID  = reader.ReadInt();
                m_Offset   = reader.ReadPoint3D();
                m_ShipName = reader.ReadString();

                if (version == 0)
                {
                    reader.ReadUInt();
                }

                break;
            }
            }

            if (LootType == LootType.Newbied)
            {
                LootType = LootType.Blessed;
            }

            if (Weight == 0.0)
            {
                Weight = 1.0;
            }
        }
Esempio n. 47
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 12:
            case 11:
            {
                m_SetPhysicalBonus = reader.ReadInt();
                m_SetFireBonus     = reader.ReadInt();
                m_SetColdBonus     = reader.ReadInt();
                m_SetPoisonBonus   = reader.ReadInt();
                m_SetEnergyBonus   = reader.ReadInt();
                goto case 10;
            }

            case 10:
            {
                m_PlayerConstructed = reader.ReadBool();
                goto case 9;
            }

            case 9:
            {
                m_TalismanProtection = new TalismanAttribute(reader);
                goto case 8;
            }

            case 8:
            {
                if (version == 11)
                {
                    reader.ReadBool();
                }
                _Owner     = reader.ReadMobile();
                _OwnerName = reader.ReadString();
                goto case 7;
            }

            case 7:
            {
                m_IsImbued = reader.ReadBool();
                goto case 6;
            }

            case 6:
            {
                m_NegativeAttributes = new NegativeAttributes(this, reader);
                goto case 5;
            }

            case 5:
            {
                #region Runic Reforging
                m_ReforgedPrefix = (ReforgedPrefix)reader.ReadInt();
                m_ReforgedSuffix = (ReforgedSuffix)reader.ReadInt();
                m_ItemPower      = (ItemPower)reader.ReadInt();
                if (version == 11 && reader.ReadBool())
                {
                    m_NegativeAttributes.NoRepair = 1;
                }
                #endregion

                #region Stygian Abyss
                m_GorgonLenseCharges = reader.ReadInt();
                m_GorgonLenseType    = (LenseType)reader.ReadInt();
                goto case 4;
            }

            case 4:
            {
                m_TimesImbued = reader.ReadEncodedInt();

                m_SAAbsorptionAttributes = new SAAbsorptionAttributes(this, reader);
                #endregion

                m_BlessedBy    = reader.ReadMobile();
                m_LastEquipped = reader.ReadBool();
                m_SetEquipped  = reader.ReadBool();
                m_SetHue       = reader.ReadEncodedInt();

                m_SetAttributes   = new AosAttributes(this, reader);
                m_SetSkillBonuses = new AosSkillBonuses(this, reader);

                m_Crafter = reader.ReadMobile();
                m_Quality = (ItemQuality)reader.ReadInt();
                goto case 3;
            }

            case 3:
            {
                m_MaxHitPoints = reader.ReadEncodedInt();
                m_HitPoints    = reader.ReadEncodedInt();

                goto case 2;
            }

            case 2:
            {
                m_Resource = (CraftResource)reader.ReadEncodedInt();
                m_GemType  = (GemType)reader.ReadEncodedInt();

                goto case 1;
            }

            case 1:
            {
                m_AosAttributes   = new AosAttributes(this, reader);
                m_AosResistances  = new AosElementAttributes(this, reader);
                m_AosSkillBonuses = new AosSkillBonuses(this, reader);

                if (Core.AOS && Parent is Mobile)
                {
                    m_AosSkillBonuses.AddTo((Mobile)Parent);
                }

                int strBonus = m_AosAttributes.BonusStr;
                int dexBonus = m_AosAttributes.BonusDex;
                int intBonus = m_AosAttributes.BonusInt;

                if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0))
                {
                    Mobile m = (Mobile)Parent;

                    string modName = Serial.ToString();

                    if (strBonus != 0)
                    {
                        m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero));
                    }

                    if (dexBonus != 0)
                    {
                        m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero));
                    }

                    if (intBonus != 0)
                    {
                        m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero));
                    }
                }

                if (Parent is Mobile)
                {
                    ((Mobile)Parent).CheckStatTimers();
                }

                break;
            }

            case 0:
            {
                m_AosAttributes   = new AosAttributes(this);
                m_AosResistances  = new AosElementAttributes(this);
                m_AosSkillBonuses = new AosSkillBonuses(this);

                break;
            }
            }

            if (m_NegativeAttributes == null)
            {
                m_NegativeAttributes = new NegativeAttributes(this);
            }

            if (m_TalismanProtection == null)
            {
                m_TalismanProtection = new TalismanAttribute();
            }

            #region Mondain's Legacy Sets
            if (m_SetAttributes == null)
            {
                m_SetAttributes = new AosAttributes(this);
            }

            if (m_SetSkillBonuses == null)
            {
                m_SetSkillBonuses = new AosSkillBonuses(this);
            }
            #endregion

            if (version < 2)
            {
                m_Resource = CraftResource.Iron;
                m_GemType  = GemType.None;
            }
        }
Esempio n. 48
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            //Version 0
            if (version >= 0)
            {
                m_Guildmaster  = (PlayerMobile)reader.ReadMobile();
                m_Abbreviation = reader.ReadString();
                m_CreationTime = reader.ReadDateTime();
                m_Icon         = reader.ReadInt();
                m_IconHue      = reader.ReadInt();
                m_Website      = reader.ReadString();
                m_Guildhouse   = reader.ReadItem() as BaseHouse;
                m_Faction      = reader.ReadItem() as Faction;

                //Rank Names
                int rankNamesCount = reader.ReadInt();
                for (int a = 0; a < rankNamesCount; a++)
                {
                    m_RankNames[a] = reader.ReadString();
                }

                //Members
                int membersCount = reader.ReadInt();
                for (int a = 0; a < membersCount; a++)
                {
                    PlayerMobile    player       = reader.ReadMobile() as PlayerMobile;
                    GuildMemberRank rank         = (GuildMemberRank)reader.ReadInt();
                    DateTime        joinDate     = reader.ReadDateTime();
                    PlayerMobile    fealtyPlayer = reader.ReadMobile() as PlayerMobile;

                    if (player != null)
                    {
                        if (!player.Deleted)
                        {
                            GuildMemberEntry guildMemberEntry = new GuildMemberEntry(player, rank, joinDate, fealtyPlayer);

                            m_Members.Add(guildMemberEntry);
                        }
                    }
                }

                //Lists
                int alliesCount = reader.ReadInt();
                for (int a = 0; a < alliesCount; a++)
                {
                    Guild entry = reader.ReadItem() as Guild;

                    if (entry != null)
                    {
                        if (!entry.Deleted)
                        {
                            m_Allies.Add(entry);
                        }
                    }
                }

                int alliesRequestsSentCount = reader.ReadInt();
                for (int a = 0; a < alliesRequestsSentCount; a++)
                {
                    Guild entry = reader.ReadItem() as Guild;

                    if (entry != null)
                    {
                        if (!entry.Deleted)
                        {
                            m_AlliesRequestsSent.Add(entry);
                        }
                    }
                }

                int alliesRequestsReceivedCount = reader.ReadInt();
                for (int a = 0; a < alliesRequestsReceivedCount; a++)
                {
                    Guild entry = reader.ReadItem() as Guild;

                    if (entry != null)
                    {
                        if (!entry.Deleted)
                        {
                            m_AlliesRequestsReceived.Add(entry);
                        }
                    }
                }

                int enemiesCount = reader.ReadInt();
                for (int a = 0; a < enemiesCount; a++)
                {
                    Guild entry = reader.ReadItem() as Guild;

                    if (entry != null)
                    {
                        if (!entry.Deleted)
                        {
                            m_Enemies.Add(entry);
                        }
                    }
                }

                int enemiesRequestsSentCount = reader.ReadInt();
                for (int a = 0; a < enemiesRequestsSentCount; a++)
                {
                    Guild entry = reader.ReadItem() as Guild;

                    if (entry != null)
                    {
                        if (!entry.Deleted)
                        {
                            m_EnemiesRequestsSent.Add(entry);
                        }
                    }
                }

                int enemiesRequestsReceivedCount = reader.ReadInt();
                for (int a = 0; a < enemiesRequestsReceivedCount; a++)
                {
                    Guild entry = reader.ReadItem() as Guild;

                    if (entry != null)
                    {
                        if (!entry.Deleted)
                        {
                            m_EnemiesRequestsReceived.Add(entry);
                        }
                    }
                }

                int candidatesCount = reader.ReadInt();
                for (int a = 0; a < candidatesCount; a++)
                {
                    PlayerMobile candidate = reader.ReadMobile() as PlayerMobile;

                    if (candidate != null)
                    {
                        if (!candidate.Deleted)
                        {
                            m_Candidates.Add(candidate);
                        }
                    }
                }
            }

            //-----

            Guilds.m_Guilds.Add(this);

            ReapplyMemberships();

            AuditGuild();
        }
Esempio n. 49
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int v = reader.ReadInt();

            Instance = this;

            MyrmidexTeam = new Dictionary <int, List <BaseCreature> >();
            TribeTeam    = new Dictionary <int, List <BaseCreature> >();
            Players      = new Dictionary <PlayerMobile, int>();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                int wave = reader.ReadInt();
                int c    = reader.ReadInt();

                MyrmidexTeam[wave] = new List <BaseCreature>();

                for (int j = 0; j < c; j++)
                {
                    BaseCreature bc = reader.ReadMobile() as BaseCreature;

                    if (bc != null)
                    {
                        MyrmidexTeam[wave].Add(bc);
                        //AssignNavpoints(bc, Allegiance.Myrmidex);
                    }
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                int wave = reader.ReadInt();
                int c    = reader.ReadInt();

                TribeTeam[wave] = new List <BaseCreature>();

                for (int j = 0; j < c; j++)
                {
                    BaseCreature bc = reader.ReadMobile() as BaseCreature;

                    if (bc != null)
                    {
                        TribeTeam[wave].Add(bc);
                        //AssignNavpoints(bc, Allegiance.Tribes);
                    }
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                PlayerMobile pm    = reader.ReadMobile() as PlayerMobile;
                int          score = reader.ReadInt();

                if (pm != null)
                {
                    Players[pm] = score;
                }
            }

            if (Active)
            {
                Timer = Timer.DelayCall(TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10), OnTick);
                Timer.Start();

                Timer.DelayCall(TimeSpan.FromSeconds(10), AssignNavPoints);
            }
            else
            {
                MyrmidexTeam.Clear();
                TribeTeam.Clear();
                Players.Clear();
            }

            if (v == 0)
            {
                Timer.DelayCall(TimeSpan.FromSeconds(20), FixFlags);
            }
        }
Esempio n. 50
0
        public FactionState(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            switch (version)
            {
            case 4:
            {
                int count = reader.ReadEncodedInt();

                for (int i = 0; i < count; ++i)
                {
                    DateTime time = reader.ReadDateTime();

                    if (i < m_LastBroadcasts.Length)
                    {
                        m_LastBroadcasts[i] = time;
                    }
                }

                goto case 3;
            }

            case 3:
            case 2:
            case 1:
            {
                m_Election = new Election(reader);

                goto case 0;
            }

            case 0:
            {
                m_Faction = Faction.ReadReference(reader);

                m_Commander = reader.ReadMobile();

                if (version < 4)
                {
                    DateTime time = reader.ReadDateTime();

                    if (m_LastBroadcasts.Length > 0)
                    {
                        m_LastBroadcasts[0] = time;
                    }
                }

                m_Tithe  = reader.ReadEncodedInt();
                m_Silver = reader.ReadEncodedInt();

                int memberCount = reader.ReadEncodedInt();

                m_Members = new PlayerStateCollection();

                for (int i = 0; i < memberCount; ++i)
                {
                    PlayerState pl = new PlayerState(reader, m_Faction, m_Members);

                    if (pl.Mobile != null)
                    {
                        m_Members.Add(pl);
                    }
                }

                m_Faction.State = this;
                m_Faction.UpdateRanks();

                m_FactionItems = new FactionItemCollection();

                if (version >= 2)
                {
                    int factionItemCount = reader.ReadEncodedInt();

                    for (int i = 0; i < factionItemCount; ++i)
                    {
                        FactionItem factionItem = new FactionItem(reader, m_Faction);

                        if (!factionItem.HasExpired)
                        {
                            factionItem.Attach();
                        }
                        else
                        {
                            Timer.DelayCall(TimeSpan.Zero, new TimerCallback(factionItem.Detach));                                         // sandbox detachment
                        }
                    }
                }

                m_FactionTraps = new FactionTrapCollection();

                if (version >= 3)
                {
                    int factionTrapCount = reader.ReadEncodedInt();

                    for (int i = 0; i < factionTrapCount; ++i)
                    {
                        BaseFactionTrap trap = reader.ReadItem() as BaseFactionTrap;

                        if (trap != null && !trap.CheckDecay())
                        {
                            m_FactionTraps.Add(trap);
                        }
                    }
                }

                break;
            }
            }

            if (version < 1)
            {
                m_Election = new Election(m_Faction);
            }
        }
Esempio n. 51
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            Armor          = new List <Item>();
            DestroyedArmor = new List <Item>();
            Items          = new List <Item>();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                Item it = reader.ReadItem();

                if (it != null)
                {
                    if (it is CursedSuitOfArmor)
                    {
                        ((CursedSuitOfArmor)it).Encounter = this;
                    }

                    Armor.Add(it);
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                Item it = reader.ReadItem();

                if (it != null)
                {
                    DestroyedArmor.Add(it);
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                if (Spawn == null)
                {
                    Spawn = new List <BaseCreature>();
                }

                BaseCreature bc = reader.ReadMobile() as BaseCreature;
                if (bc != null)
                {
                    if (bc is EnsorcelledArmor)
                    {
                        ((EnsorcelledArmor)bc).Encounter = this;
                    }

                    Spawn.Add(bc);
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                if (Items == null)
                {
                    Items = new List <Item>();
                }

                Item item = reader.ReadItem();
                if (item != null)
                {
                    Items.Add(item);
                }
            }

            if (Spawn == null || Spawn.Count < 4)
            {
                int toSpawn = Spawn == null ? 4 : 4 - Spawn.Count;
                for (int i = 0; i < toSpawn; i++)
                {
                    if (Spawn == null)
                    {
                        Spawn = new List <BaseCreature>();
                    }

                    SpawnRandom();
                }
            }
        }
Esempio n. 52
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 8:
            {
                m_Identified = reader.ReadMobileList();

                goto case 7;
            }

            case 7:
            case 6:
            case 5:
            {
                SaveFlag flags = (SaveFlag)reader.ReadEncodedInt();

                if (GetSaveFlag(flags, SaveFlag.Attributes))
                {
                    m_AosAttributes = new AosAttributes(this, reader);
                }
                else
                {
                    m_AosAttributes = new AosAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.ArmorAttributes))
                {
                    m_AosArmorAttributes = new AosArmorAttributes(this, reader);
                }
                else
                {
                    m_AosArmorAttributes = new AosArmorAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.PhysicalBonus))
                {
                    m_PhysicalBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.FireBonus))
                {
                    m_FireBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.ColdBonus))
                {
                    m_ColdBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.PoisonBonus))
                {
                    m_PoisonBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.EnergyBonus))
                {
                    m_EnergyBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Identified) && version < 7)
                {
                    reader.ReadBool();
                }
                //m_Identified = ( version >= 7 || reader.ReadBool() );

                if (GetSaveFlag(flags, SaveFlag.MaxHitPoints))
                {
                    m_MaxHitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.HitPoints))
                {
                    m_HitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Crafter))
                {
                    m_Crafter = reader.ReadMobile();
                }

                if (GetSaveFlag(flags, SaveFlag.Quality))
                {
                    m_Quality = (CraftQuality)reader.ReadEncodedInt();
                }
                else
                {
                    m_Quality = CraftQuality.Regular;
                }

                if (version == 5 && m_Quality == CraftQuality.Low)
                {
                    m_Quality = CraftQuality.Regular;
                }

                if (GetSaveFlag(flags, SaveFlag.Durability))
                {
                    m_Durability = (DurabilityLevel)reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Protection))
                {
                    m_Protection = (ArmorProtectionLevel)reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.BaseArmor))
                {
                    m_ArmorBase = reader.ReadEncodedInt();
                }
                else
                {
                    m_ArmorBase = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.StrBonus))
                {
                    m_StrBonus = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrBonus = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.DexBonus))
                {
                    m_DexBonus = reader.ReadEncodedInt();
                }
                else
                {
                    m_DexBonus = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.IntBonus))
                {
                    m_IntBonus = reader.ReadEncodedInt();
                }
                else
                {
                    m_IntBonus = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.StrReq))
                {
                    m_StrReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.DexReq))
                {
                    m_DexReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_DexReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.IntReq))
                {
                    m_IntReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_IntReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.MedAllowance))
                {
                    m_Meditate = (AMA)reader.ReadEncodedInt();
                }
                else
                {
                    m_Meditate = (AMA)(-1);
                }

                if (GetSaveFlag(flags, SaveFlag.SkillBonuses))
                {
                    m_AosSkillBonuses = new AosSkillBonuses(this, reader);
                }

                if (GetSaveFlag(flags, SaveFlag.PlayerConstructed))
                {
                    m_PlayerConstructed = true;
                }

                break;
            }

            case 4:
            {
                m_AosAttributes      = new AosAttributes(this, reader);
                m_AosArmorAttributes = new AosArmorAttributes(this, reader);
                goto case 3;
            }

            case 3:
            {
                m_PhysicalBonus = reader.ReadInt();
                m_FireBonus     = reader.ReadInt();
                m_ColdBonus     = reader.ReadInt();
                m_PoisonBonus   = reader.ReadInt();
                m_EnergyBonus   = reader.ReadInt();
                goto case 2;
            }

            case 2:
            case 1:
            {
                /*m_Identified = */ reader.ReadBool();
                goto case 0;
            }

            case 0:
            {
                m_ArmorBase    = reader.ReadInt();
                m_MaxHitPoints = reader.ReadInt();
                m_HitPoints    = reader.ReadInt();
                m_Crafter      = reader.ReadMobile();
                m_Quality      = (CraftQuality)reader.ReadInt();
                m_Durability   = (DurabilityLevel)reader.ReadInt();
                m_Protection   = (ArmorProtectionLevel)reader.ReadInt();

                AMT mat = (AMT)reader.ReadInt();

                if (m_ArmorBase == RevertArmorBase)
                {
                    m_ArmorBase = -1;
                }

                /*m_BodyPos = (ArmorBodyType)*/ reader.ReadInt();

                if (version < 4)
                {
                    m_AosAttributes      = new AosAttributes(this);
                    m_AosArmorAttributes = new AosArmorAttributes(this);
                }

                if (version < 3 && m_Quality == CraftQuality.Exceptional)
                {
                    DistributeBonuses(6);
                }

                m_StrBonus = reader.ReadInt();
                m_DexBonus = reader.ReadInt();
                m_IntBonus = reader.ReadInt();
                m_StrReq   = reader.ReadInt();
                m_DexReq   = reader.ReadInt();
                m_IntReq   = reader.ReadInt();

                if (m_StrBonus == OldStrBonus)
                {
                    m_StrBonus = -1;
                }

                if (m_DexBonus == OldDexBonus)
                {
                    m_DexBonus = -1;
                }

                if (m_IntBonus == OldIntBonus)
                {
                    m_IntBonus = -1;
                }

                if (m_StrReq == OldStrReq)
                {
                    m_StrReq = -1;
                }

                if (m_DexReq == OldDexReq)
                {
                    m_DexReq = -1;
                }

                if (m_IntReq == OldIntReq)
                {
                    m_IntReq = -1;
                }

                m_Meditate = (AMA)reader.ReadInt();

                if (m_Meditate == OldMedAllowance)
                {
                    m_Meditate = (AMA)(-1);
                }

                if (m_MaxHitPoints == 0 && m_HitPoints == 0)
                {
                    m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits);
                }

                break;
            }
            }

            if (m_AosSkillBonuses == null)
            {
                m_AosSkillBonuses = new AosSkillBonuses(this);
            }

            if (Core.AOS && Parent is Mobile)
            {
                m_AosSkillBonuses.AddTo((Mobile)Parent);
            }

            int strBonus = ComputeStatBonus(StatType.Str);
            int dexBonus = ComputeStatBonus(StatType.Dex);
            int intBonus = ComputeStatBonus(StatType.Int);

            if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0))
            {
                Mobile m = (Mobile)Parent;

                string modName = Serial.ToString();

                if (strBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero));
                }

                if (dexBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero));
                }

                if (intBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero));
                }
            }

            if (Parent is Mobile)
            {
                ((Mobile)Parent).CheckStatTimers();
            }

            if (version < 7)
            {
                m_PlayerConstructed = true;                 // we don't know, so, assume it's crafted
            }
        }
Esempio n. 53
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 8:
            {
                m_Exceptional       = reader.ReadBool();
                m_PlayerConstructed = reader.ReadBool();
                m_Crafter           = reader.ReadMobile();

                goto case 7;
            }

            case 7:
            {
                m_AbsorptionAttributes = new AbsorptionAttributes(this, reader);

                m_TimesImbued = reader.ReadEncodedInt();

                m_MaxHitPoints = reader.ReadEncodedInt();
                m_HitPoints    = reader.ReadEncodedInt();

                m_Resource = (CraftResource)reader.ReadEncodedInt();
                m_GemType  = (GemType)reader.ReadEncodedInt();

                m_MagicalAttributes = new MagicalAttributes(this, reader);
                m_AosResistances    = new ElementAttributes(this, reader);
                m_SkillBonuses      = new SkillBonuses(this, reader);

                if (Parent is Mobile)
                {
                    m_SkillBonuses.AddTo((Mobile)Parent);
                }

                break;
            }
            }

            int strBonus = m_MagicalAttributes.BonusStr;
            int dexBonus = m_MagicalAttributes.BonusDex;
            int intBonus = m_MagicalAttributes.BonusInt;

            if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0))
            {
                Mobile m = (Mobile)Parent;

                string modName = Serial.ToString();

                if (strBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero));
                }

                if (dexBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero));
                }

                if (intBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero));
                }
            }

            if (Parent is Mobile)
            {
                ((Mobile)Parent).CheckStatTimers();
            }
        }
Esempio n. 54
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 10:
            {
                m_TimeOfDeath = reader.ReadDeltaTime();

                goto case 9;
            }

            case 9:
            {
                int count = reader.ReadInt();

                for (int i = 0; i < count; ++i)
                {
                    Item item = reader.ReadItem();

                    if (reader.ReadBool())
                    {
                        SetRestoreInfo(item, reader.ReadPoint3D());
                    }
                    else if (item != null)
                    {
                        SetRestoreInfo(item, item.Location);
                    }
                }

                goto case 8;
            }

            case 8:
            {
                m_VisitedByTaxidermist = reader.ReadBool();

                goto case 7;
            }

            case 7:
            {
                if (reader.ReadBool())
                {
                    BeginDecay(reader.ReadDeltaTime() - DateTime.Now);
                }

                goto case 6;
            }

            case 6:
            {
                m_Looters = reader.ReadStrongMobileList();
                m_Killer  = reader.ReadMobile();

                goto case 5;
            }

            case 5:
            {
                m_Carved = reader.ReadBool();

                goto case 4;
            }

            case 4:
            {
                m_Aggressors = reader.ReadStrongMobileList();

                goto case 3;
            }

            case 3:
            {
                m_Owner = reader.ReadMobile();

                goto case 2;
            }

            case 2:
            {
                m_NoBones = reader.ReadBool();

                goto case 1;
            }

            case 1:
            {
                m_CorpseName = reader.ReadString();

                goto case 0;
            }

            case 0:
            {
                if (version < 10)
                {
                    m_TimeOfDeath = DateTime.Now;
                }

                if (version < 7)
                {
                    BeginDecay(m_DefaultDecayTime);
                }

                if (version < 6)
                {
                    m_Looters = new List <Mobile>();
                }

                if (version < 4)
                {
                    m_Aggressors = new List <Mobile>();
                }

                m_AccessLevel = (AccessLevel)reader.ReadInt();
                reader.ReadInt();                         // guild reserve
                m_Kills    = reader.ReadInt();
                m_Criminal = reader.ReadBool();

                m_EquipItems = reader.ReadStrongItemList();

                break;
            }
            }
        }
Esempio n. 55
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 5:
            {
                SaveFlag flags = (SaveFlag)reader.ReadEncodedInt();

                if (GetSaveFlag(flags, SaveFlag.Resource))
                {
                    m_Resource = (CraftResource)reader.ReadEncodedInt();
                }
                else
                {
                    m_Resource = DefaultResource;
                }

                if (GetSaveFlag(flags, SaveFlag.MaxHitPoints))
                {
                    m_MaxHitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.HitPoints))
                {
                    m_HitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Crafter))
                {
                    m_Crafter = reader.ReadMobile();
                }

                if (GetSaveFlag(flags, SaveFlag.Quality))
                {
                    m_Quality = (ClothingQuality)reader.ReadEncodedInt();
                }
                else
                {
                    m_Quality = ClothingQuality.Regular;
                }

                if (GetSaveFlag(flags, SaveFlag.StrReq))
                {
                    m_StrReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.PlayerConstructed))
                {
                    m_PlayerConstructed = true;
                }

                break;
            }

            case 4:
            {
                m_Resource = (CraftResource)reader.ReadInt();

                goto case 3;
            }

            case 3:
            case 2:
            {
                m_PlayerConstructed = reader.ReadBool();
                goto case 1;
            }

            case 1:
            {
                m_Crafter = reader.ReadMobile();
                m_Quality = (ClothingQuality)reader.ReadInt();
                break;
            }

            case 0:
            {
                m_Crafter = null;
                m_Quality = ClothingQuality.Regular;
                break;
            }
            }

            if (version < 2)
            {
                m_PlayerConstructed = true;                 // we don't know, so, assume it's crafted
            }
            if (version < 4)
            {
                m_Resource = DefaultResource;
            }

            if (m_MaxHitPoints == 0 && m_HitPoints == 0)
            {
                m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits);
            }

            Mobile parent = Parent as Mobile;

            if (parent != null)
            {
                AddStatBonuses(parent);
                parent.CheckStatTimers();
            }
        }
Esempio n. 56
0
        public Arena(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            switch (version)
            {
            case 7:
            {
                m_IsGuarded = reader.ReadBool();

                goto case 6;
            }

            case 6:
            {
                m_Ladder = reader.ReadItem() as LadderController;

                goto case 5;
            }

            case 5:
            {
                m_Tournament = reader.ReadItem() as TournamentController;
                m_Announcer  = reader.ReadMobile();

                goto case 4;
            }

            case 4:
            {
                m_Name = reader.ReadString();

                goto case 3;
            }

            case 3:
            {
                m_Zone = reader.ReadRect2D();

                goto case 2;
            }

            case 2:
            {
                m_GateIn     = reader.ReadPoint3D();
                m_GateOut    = reader.ReadPoint3D();
                m_Teleporter = reader.ReadItem();

                goto case 1;
            }

            case 1:
            {
                m_Players = reader.ReadStrongMobileList();

                goto case 0;
            }

            case 0:
            {
                m_Facet   = reader.ReadMap();
                m_Bounds  = reader.ReadRect2D();
                m_Outside = reader.ReadPoint3D();
                m_Wall    = reader.ReadPoint3D();

                if (version == 0)
                {
                    reader.ReadBool();
                    m_Players = new List <Mobile>();
                }

                m_Active = reader.ReadBool();
                m_Points = new ArenaStartPoints(reader);

                if (m_Active)
                {
                    m_Arenas.Add(this);
                    m_Arenas.Sort();
                }

                break;
            }
            }

            if (m_Zone.Start != Point2D.Zero && m_Zone.End != Point2D.Zero && m_Facet != null)
            {
                m_Region = new SafeZone(m_Zone, m_Outside, m_Facet, m_IsGuarded);
            }

            if (IsOccupied)
            {
                Timer.DelayCall(TimeSpan.FromSeconds(2.0), new TimerCallback(Evict));
            }

            if (m_Tournament != null)
            {
                Timer.DelayCall(TimeSpan.Zero, new TimerCallback(AttachToTournament_Sandbox));
            }
        }
Esempio n. 57
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 4:
            {
                m_ConfinedRoaming = reader.ReadBool();

                #region genova: support to mono
#if MONO
                m_Idol = reader.ReadItemG <IdolOfTheChampion>();
#else
                m_Idol = reader.ReadItem <IdolOfTheChampion>();
#endif
                #endregion

                m_HasBeenAdvanced = reader.ReadBool();

                goto case 3;
            }

            case 3:
            {
                m_SpawnArea = reader.ReadRect2D();

                goto case 2;
            }

            case 2:
            {
                m_RandomizeType = reader.ReadBool();

                goto case 1;
            }

            case 1:
            {
                if (version < 3)
                {
                    int oldRange = reader.ReadInt();

                    m_SpawnArea = new Rectangle2D(new Point2D(X - oldRange, Y - oldRange), new Point2D(X + oldRange, Y + oldRange));
                }

                m_Kills = reader.ReadInt();

                goto case 0;
            }

            case 0:
            {
                if (version < 1)
                {
                    m_SpawnArea = new Rectangle2D(new Point2D(X - 24, Y - 24), new Point2D(X + 24, Y + 24));                                    //Default was 24
                }
                bool active = reader.ReadBool();
                m_Type        = (ChampionSpawnType)reader.ReadInt();
                m_Creatures   = reader.ReadStrongMobileList();
                m_RedSkulls   = reader.ReadStrongItemList();
                m_WhiteSkulls = reader.ReadStrongItemList();

                #region genova: support to mono
#if MONO
                m_Platform = reader.ReadItemG <ChampionPlatform>();
                m_Altar    = reader.ReadItemG <ChampionAltar>();
#else
                m_Platform = reader.ReadItem <ChampionPlatform>();
                m_Altar    = reader.ReadItem <ChampionAltar>();
#endif
                #endregion

                m_ExpireDelay  = reader.ReadTimeSpan();
                m_ExpireTime   = reader.ReadDeltaTime();
                m_Champion     = reader.ReadMobile();
                m_RestartDelay = reader.ReadTimeSpan();

                if (reader.ReadBool())
                {
                    m_RestartTime = reader.ReadDeltaTime();
                    BeginRestart(m_RestartTime - DateTime.Now);
                }

                if (version < 4)
                {
                    m_Idol = new IdolOfTheChampion(this);
                    m_Idol.MoveToWorld(new Point3D(X, Y, Z - 15), Map);
                }

                if (m_Platform == null || m_Altar == null || m_Idol == null)
                {
                    Delete();
                }
                else if (active)
                {
                    Start();
                }

                break;
            }
            }

            Timer.DelayCall(TimeSpan.Zero, new TimerCallback(UpdateRegion));
        }
Esempio n. 58
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int v = reader.ReadInt();

            m_Active       = reader.ReadBool();
            m_SeasonBegins = reader.ReadDateTime();
            m_SeasonEnds   = reader.ReadDateTime();

            m_Top10   = new Dictionary <HuntType, List <HuntingKillEntry> >();
            m_Leaders = new Dictionary <HuntType, List <HuntingKillEntry> >();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                Mobile m = reader.ReadMobile();
                int    c = 1;

                if (v == 0)
                {
                    new HuntingKillEntry(reader);
                }
                else
                {
                    c = reader.ReadInt();
                }

                if (m != null)
                {
                    m_UnclaimedWinners[m] = c;
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                HuntType type = (HuntType)reader.ReadInt();
                int      c    = reader.ReadInt();

                if (!m_Top10.ContainsKey(type))
                {
                    m_Top10[type] = new List <HuntingKillEntry>();
                }

                for (int j = 0; j < c; j++)
                {
                    m_Top10[type].Add(new HuntingKillEntry(reader));
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                HuntType type = (HuntType)reader.ReadInt();
                int      c    = reader.ReadInt();

                if (!m_Leaders.ContainsKey(type))
                {
                    m_Leaders[type] = new List <HuntingKillEntry>();
                }

                for (int j = 0; j < c; j++)
                {
                    m_Leaders[type].Add(new HuntingKillEntry(reader));
                }
            }

            m_Instance       = this;
            m_NextHint       = DateTime.UtcNow;
            m_NextBonusIndex = DateTime.UtcNow;

            CheckTimer();
        }
Esempio n. 59
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            m_DamageEntries = new Dictionary <Mobile, int>();

            int version = reader.ReadInt();

            switch (version)
            {
            case 6:
            {
                m_SPawnSzMod = reader.ReadInt();
                goto case 5;
            }

            case 5:
            {
                int    entries = reader.ReadInt();
                Mobile m;
                int    damage;
                for (int i = 0; i < entries; ++i)
                {
                    m      = reader.ReadMobile();
                    damage = reader.ReadInt();

                    if (m == null)
                    {
                        continue;
                    }

                    m_DamageEntries.Add(m, damage);
                }

                goto case 4;
            }

            case 4:
            {
                m_ConfinedRoaming = reader.ReadBool();
                m_Idol            = reader.ReadItem <IdolOfTheChampion>();
                m_HasBeenAdvanced = reader.ReadBool();

                goto case 3;
            }

            case 3:
            {
                m_SpawnArea = reader.ReadRect2D();

                goto case 2;
            }

            case 2:
            {
                m_RandomizeType = reader.ReadBool();

                goto case 1;
            }

            case 1:
            {
                if (version < 3)
                {
                    int oldRange = reader.ReadInt();

                    m_SpawnArea = new Rectangle2D(new Point2D(X - oldRange, Y - oldRange), new Point2D(X + oldRange, Y + oldRange));
                }

                m_Kills = reader.ReadInt();

                goto case 0;
            }

            case 0:
            {
                if (version < 1)
                {
                    m_SpawnArea = new Rectangle2D(new Point2D(X - 24, Y - 24), new Point2D(X + 24, Y + 24));                                    //Default was 24
                }
                bool active = reader.ReadBool();
                m_Type         = (ChampionSpawnType)reader.ReadInt();
                m_Creatures    = reader.ReadStrongMobileList();
                m_RedSkulls    = reader.ReadStrongItemList();
                m_WhiteSkulls  = reader.ReadStrongItemList();
                m_Platform     = reader.ReadItem <ChampionPlatform>();
                m_Altar        = reader.ReadItem <ChampionAltar>();
                m_ExpireDelay  = reader.ReadTimeSpan();
                m_ExpireTime   = reader.ReadDeltaTime();
                m_Champion     = reader.ReadMobile();
                m_RestartDelay = reader.ReadTimeSpan();

                if (reader.ReadBool())
                {
                    m_RestartTime = reader.ReadDeltaTime();
                    BeginRestart(m_RestartTime - DateTime.UtcNow);
                }

                if (version < 4)
                {
                    m_Idol = new IdolOfTheChampion(this);
                    m_Idol.MoveToWorld(new Point3D(X, Y, Z - 15), Map);
                }

                if (m_Platform == null || m_Altar == null || m_Idol == null)
                {
                    Delete();
                }
                else if (active)
                {
                    Start();
                }

                break;
            }
            }

            Timer.DelayCall(TimeSpan.Zero, new TimerCallback(UpdateRegion));
        }
Esempio n. 60
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    CTFBase b = reader.ReadItem() as CTFBase;
                    HomeBases.Add(b);
                }
                m_Challenger = reader.ReadMobile();

                m_Organizers.Add(m_Challenger);

                m_GameLocked     = reader.ReadBool();
                m_GameInProgress = reader.ReadBool();
                m_TotalPurse     = reader.ReadInt();
                m_EntryFee       = reader.ReadInt();
                m_ArenaSize      = reader.ReadInt();
                m_TargetScore    = reader.ReadInt();
                m_MatchLength    = reader.ReadTimeSpan();

                TimeSpan elapsed = reader.ReadTimeSpan();

                if (elapsed > TimeSpan.Zero)
                {
                    m_MatchStart = DateTime.UtcNow - elapsed;
                }

                m_MatchEnd = reader.ReadDateTime();

                count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    ChallengeEntry entry = new ChallengeEntry();
                    entry.Participant = reader.ReadMobile();
                    string sname = reader.ReadString();
                    // look up the enum by name
                    ChallengeStatus status = ChallengeStatus.None;
                    try{
                        status = (ChallengeStatus)Enum.Parse(typeof(ChallengeStatus), sname);
                    } catch {}
                    entry.Status          = status;
                    entry.Accepted        = reader.ReadBool();
                    entry.PageBeingViewed = reader.ReadInt();
                    entry.Score           = reader.ReadInt();
                    entry.Winner          = reader.ReadBool();
                    entry.Team            = reader.ReadInt();

                    Participants.Add(entry);
                }
                break;
            }

            if (GameCompleted)
            {
                Timer.DelayCall(PostGameDecayTime, new TimerCallback(Delete));
            }

            // start the challenge timer
            StartChallengeTimer();

            SetNameHue();
        }