Пример #1
1
		public BOBSmallEntry( GenericReader reader )
		{
			int version = reader.ReadEncodedInt();

			switch ( version )
			{
				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;
				}
			}
		}
Пример #2
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();
            }
        }
Пример #3
1
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 0:
				{
					PersistedType type;

					while ( (type = (PersistedType)reader.ReadEncodedInt()) != PersistedType.Terminator )
					{
						switch ( type )
						{
							case PersistedType.Faction: new FactionState( reader ); break;
							case PersistedType.Town: new TownState( reader ); break;
						}
					}

					break;
				}
			}
		}
Пример #4
1
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadEncodedInt();
			
			switch ( version )
			{
				case 1:
				{
					m_Music = (MusicName) reader.ReadInt();
					break;
				}
			}
			
			if ( version == 0 ) // Music wasn't serialized in version 0, pick a new track of random rarity
			{
				DawnsMusicRarity rarity;
				double rand = Utility.RandomDouble();
				
				if ( rand < 0.025 )
					rarity = DawnsMusicRarity.Rare;
				else if ( rand < 0.225 )
					rarity = DawnsMusicRarity.Uncommon;
				else
					rarity = DawnsMusicRarity.Common;
				
				m_Music = DawnsMusicBox.RandomTrack( rarity );
			}
		}
Пример #5
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();
        }
Пример #6
0
        public Preferences(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

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

                        this.m_Table = new Hashtable(count);
                        this.m_Entries = new ArrayList(count);

                        for (int i = 0; i < count; ++i)
                        {
                            PreferencesEntry entry = new PreferencesEntry(reader, this, version);

                            if (entry.Mobile != null)
                            {
                                this.m_Table[entry.Mobile] = entry;
                                this.m_Entries.Add(entry);
                            }
                        }

                        break;
                    }
            }
        }
		public BOBLargeEntry( GenericReader reader )
		{
			int version = reader.ReadEncodedInt();

			switch ( version )
			{
				case 0:
				{
					m_RequireExceptional = reader.ReadBool();

					m_DeedType = (BODType)reader.ReadEncodedInt();

					m_Material = (BulkMaterialType)reader.ReadEncodedInt();
					m_AmountMax = reader.ReadEncodedInt();
					m_Price = reader.ReadEncodedInt();

					m_Entries = new BOBLargeSubEntry[reader.ReadEncodedInt()];

					for ( int i = 0; i < m_Entries.Length; ++i )
						m_Entries[i] = new BOBLargeSubEntry( reader );

					break;
				}
			}
		}
Пример #8
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;
                }
            }
        }
Пример #9
0
        public static Type ReadType(Type[] referenceTable, GenericReader reader)
        {
            int encoding = reader.ReadEncodedInt();

            switch ( encoding )
            {
                default:
                case 0x00: // null
                    {
                        return null;
                    }
                case 0x01: // indexed
                    {
                        int index = reader.ReadEncodedInt();

                        if (index >= 0 && index < referenceTable.Length)
                            return referenceTable[index];

                        return null;
                    }
                case 0x02: // by name
                    {
                        string fullName = reader.ReadString();

                        if (fullName == null)
                            return null;

                        return ScriptCompiler.FindTypeByFullName(fullName, false);
                    }
            }
        }
Пример #10
0
        public Election(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

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

                        this.m_LastStateTime = reader.ReadDateTime();
                        this.m_State = (ElectionState)reader.ReadEncodedInt();

                        this.m_Candidates = new List<Candidate>();

                        int count = reader.ReadEncodedInt();

                        for (int i = 0; i < count; ++i)
                        {
                            Candidate cd = new Candidate(reader);

                            if (cd.Mobile != null)
                                this.m_Candidates.Add(cd);
                        }

                        break;
                    }
            }

            this.StartTimer();
        }
Пример #11
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize( reader );

			int version = reader.ReadEncodedInt();

			m_Level = (SecureLevel) reader.ReadEncodedInt();
		}
        public PowerScrollFilter(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            switch (version)
            {
                case 1:
                    m_SkillCat = (SkillCategory)reader.ReadEncodedInt();
                    m_SkillValue = reader.ReadEncodedInt();
                    break;
            }
        }
        public PowerScrollBookEntry(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            switch (version)
            {
                case 0:
                    m_Skill = (SkillName)reader.ReadEncodedInt();
                    m_SkillValue = reader.ReadEncodedInt();
                    m_Price = reader.ReadEncodedInt();
                    break;
            }
        }
Пример #14
0
        public TamingBOBFilter( GenericReader reader )
        {
            int version = reader.ReadEncodedInt();

            switch ( version )
            {
                case 1:
                {
                    m_Type = reader.ReadEncodedInt();
                    m_Quantity = reader.ReadEncodedInt();

                    break;
                }
            }
        }
Пример #15
0
        public TalismanAttribute(GenericReader reader)
        {
            int version = reader.ReadInt();

            SaveFlag flags = (SaveFlag)reader.ReadEncodedInt();

            if (GetSaveFlag(flags, SaveFlag.Type))
                this.m_Type = ScriptCompiler.FindTypeByFullName(reader.ReadString(), false);

            if (GetSaveFlag(flags, SaveFlag.Name))
                this.m_Name = TextDefinition.Deserialize(reader);

            if (GetSaveFlag(flags, SaveFlag.Amount))
                this.m_Amount = reader.ReadEncodedInt();
        }
Пример #16
0
		public Reaction( GenericReader reader )
		{
			int version = reader.ReadEncodedInt();

			switch ( version )
			{
				case 0:
				{
					m_Faction = Faction.ReadReference( reader );
					m_Type = (ReactionType) reader.ReadEncodedInt();

					break;
				}
			}
		}
Пример #17
0
        public static QuestConversation DeserializeConversation( Type[] referenceTable, GenericReader reader )
        {
            int encoding = reader.ReadEncodedInt();

            switch ( encoding )
            {
                default:
                case 0x00: // null
                    {
                        return null;
                    }
                case 0x01:
                    {
                        Type type = ReadType( referenceTable, reader );

                        QuestConversation conv = Construct( type ) as QuestConversation;

                        if ( conv != null )
                        {
                            conv.BaseDeserialize( reader );
                        }

                        return conv;
                    }
            }
        }
Пример #18
0
        public override void Deserialize(GenericReader reader) // Default Deserialize method
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();
            m_Guild = reader.ReadEncodedInt();
        }
Пример #19
0
		public EthicsItem( GenericReader reader, Ethic ethic )
		{
			int version = reader.ReadEncodedInt();

			switch ( version )
			{
				case 2:
				{
					m_IsRunic = reader.ReadBool();
					m_OrigHue = reader.ReadInt();
					goto case 0;
				}
				case 1:
				{
					/*m_OrigLootType = (LootType)*/reader.ReadByte();
					m_OrigHue = reader.ReadInt();
					goto case 0;
				}
				case 0:
				{
					m_Item = reader.ReadItem();
					m_Expiration = reader.ReadDateTime();
					break;
				}
			}

			m_Ethic = ethic;
		}
Пример #20
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			/*int version = */
			reader.ReadEncodedInt();
		}
Пример #21
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			LootType = LootType.Blessed;

			int version = reader.ReadEncodedInt();
		}
Пример #22
0
		public VendorInventory(BaseHouse house, GenericReader reader)
		{
			House = house;

			reader.ReadEncodedInt();

			Owner = reader.ReadMobile();
			VendorName = reader.ReadString();
			ShopName = reader.ReadString();

			Items = reader.ReadStrongItemList();
			Currency = reader.ReadInt();

			ExpireTime = reader.ReadDeltaTime();

			if (Items.Count == 0 && Currency == 0)
			{
				Timer.DelayCall(TimeSpan.Zero, Delete);
			}
			else
			{
				TimeSpan delay = ExpireTime - DateTime.UtcNow;

				m_ExpireTimer = new ExpireTimer(this, delay > TimeSpan.Zero ? delay : TimeSpan.Zero);
				m_ExpireTimer.Start();
			}
		}
Пример #23
0
        public static QuestObjective DeserializeObjective( Type[] referenceTable, GenericReader reader )
        {
            int encoding = reader.ReadEncodedInt();

            switch ( encoding )
            {
                default:
                case 0x00: // null
                    {
                        return null;
                    }
                case 0x01:
                    {
                        Type type = ReadType( referenceTable, reader );

                        QuestObjective obj = Construct( type ) as QuestObjective;

                        if ( obj != null )
                        {
                            obj.BaseDeserialize( reader );
                        }

                        return obj;
                    }
            }
        }
Пример #24
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

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

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

			int version = reader.ReadEncodedInt();
			m_Sound = reader.ReadInt();
		}
Пример #27
0
        public static QuestSystem DeserializeQuest( GenericReader reader )
        {
            int encoding = reader.ReadEncodedInt();

            switch ( encoding )
            {
                default:
                case 0x00: // null
                    {
                        return null;
                    }
                case 0x01:
                    {
                        Type type = ReadType( QuestSystem.QuestTypes, reader );

                        QuestSystem qs = Construct( type ) as QuestSystem;

                        if ( qs != null )
                        {
                            qs.BaseDeserialize( reader );
                        }

                        return qs;
                    }
            }
        }
Пример #28
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            this.m_Image = (ImageType)reader.ReadEncodedInt();
        }
Пример #29
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadEncodedInt();

			m_IsRewardItem = reader.ReadBool();
		}
Пример #30
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			reader.ReadEncodedInt();

			//m_Charge = reader.ReadDouble();
		}
Пример #31
0
        public override void ChildDeserialize(GenericReader reader)
        {
            /*int version = */ reader.ReadEncodedInt();

            m_Step = (KillHordeMinionsStep)reader.ReadEncodedInt();
        }
Пример #32
0
        public override void ChildDeserialize(GenericReader reader)
        {
            /*int version = */ reader.ReadEncodedInt();

            m_Ambushed = reader.ReadBool();
        }
Пример #33
0
        public override void ChildDeserialize(GenericReader reader)
        {
            /*int version = */ reader.ReadEncodedInt();

            m_CorpseWithBone = (Container)reader.ReadItem();
        }
Пример #34
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadEncodedInt();
        }
Пример #35
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            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 (version < 2)
            {
                m_Resource = CraftResource.Iron;
                m_GemType  = GemType.None;
            }
        }
Пример #36
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            m_CursedSoul = reader.ReadBool();
        }
Пример #37
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            m_Theater = (Theater)reader.ReadEncodedInt();
        }
Пример #38
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            m_KilledCat = reader.ReadBool();
        }
Пример #39
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

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

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

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

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

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

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

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

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

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

                if (GetSaveFlag(flags, SaveFlag.Exceptional))
                {
                    m_Exceptional = true;
                }

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

                if (GetSaveFlag(flags, SaveFlag.AbsorptionAttributes))
                {
                    m_AbsorptionAttributes = new AbsorptionAttributes(this, reader);
                }
                else
                {
                    m_AbsorptionAttributes = new AbsorptionAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.Altered))
                {
                    m_Altered = true;
                }

                break;
            }

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

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

                m_Resource = (CraftResource)reader.ReadInt();

                m_MagicalAttributes  = new MagicalAttributes(this, reader);
                m_ClothingAttributes = new ArmorAttributes(this, reader);
                m_SkillBonuses       = new SkillBonuses(this, reader);
                m_Resistances        = new ElementAttributes(this, reader);

                break;
            }
            }

            Mobile parent = Parent as Mobile;

            if (parent != null)
            {
                m_SkillBonuses.AddTo(parent);

                AddStatBonuses(parent);
                parent.CheckStatTimers();
            }
        }
Пример #40
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            SaveFlag flags = (SaveFlag)reader.ReadEncodedInt();

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

            if (GetSaveFlag(flags, SaveFlag.LowerAmmoCost))
            {
                this.m_LowerAmmoCost = reader.ReadInt();
            }

            if (GetSaveFlag(flags, SaveFlag.WeightReduction))
            {
                this.m_WeightReduction = reader.ReadInt();
            }

            if (GetSaveFlag(flags, SaveFlag.DamageIncrease))
            {
                this.m_DamageIncrease = reader.ReadInt();
            }

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

            if (GetSaveFlag(flags, SaveFlag.Quality))
            {
                this.m_Quality = (ClothingQuality)reader.ReadInt();
            }

            if (GetSaveFlag(flags, SaveFlag.Capacity))
            {
                this.m_Capacity = reader.ReadInt();
            }

            #region Mondain's Legacy Sets
            if (GetSaveFlag(flags, SaveFlag.SetAttributes))
            {
                this.m_SetAttributes = new AosAttributes(this, reader);
            }
            else
            {
                this.m_SetAttributes = new AosAttributes(this);
            }

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

            if (GetSaveFlag(flags, SaveFlag.SetHue))
            {
                this.m_SetHue = reader.ReadInt();
            }

            if (GetSaveFlag(flags, SaveFlag.LastEquipped))
            {
                this.m_LastEquipped = reader.ReadBool();
            }

            if (GetSaveFlag(flags, SaveFlag.SetEquipped))
            {
                this.m_SetEquipped = reader.ReadBool();
            }
            #endregion
        }
Пример #41
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 4:
            {
                m_SecureLevel = (SecureLevel)reader.ReadInt();
                goto case 3;
            }

            case 3:
            case 2:
            {
                BookContent content = this.DefaultContent;

                SaveFlags flags = (SaveFlags)reader.ReadByte();

                if ((flags & SaveFlags.Title) != 0)
                {
                    m_Title = Utility.Intern(reader.ReadString());
                }
                else if (content != null)
                {
                    m_Title = content.Title;
                }

                if ((flags & SaveFlags.Author) != 0)
                {
                    m_Author = reader.ReadString();
                }
                else if (content != null)
                {
                    m_Author = content.Author;
                }

                m_Writable = (flags & SaveFlags.Writable) != 0;

                if ((flags & SaveFlags.Content) != 0)
                {
                    m_Pages = new BookPageInfo[reader.ReadEncodedInt()];

                    for (int i = 0; i < m_Pages.Length; ++i)
                    {
                        m_Pages[i] = new BookPageInfo(reader);
                    }
                }
                else
                {
                    if (content != null)
                    {
                        m_Pages = content.Copy();
                    }
                    else
                    {
                        m_Pages = new BookPageInfo[0];
                    }
                }

                break;
            }

            case 1:
            case 0:
            {
                m_Title    = reader.ReadString();
                m_Author   = reader.ReadString();
                m_Writable = reader.ReadBool();

                if (version == 0 || reader.ReadBool())
                {
                    m_Pages = new BookPageInfo[reader.ReadInt()];

                    for (int i = 0; i < m_Pages.Length; ++i)
                    {
                        m_Pages[i] = new BookPageInfo(reader);
                    }
                }
                else
                {
                    BookContent content = this.DefaultContent;

                    if (content != null)
                    {
                        m_Pages = content.Copy();
                    }
                    else
                    {
                        m_Pages = new BookPageInfo[0];
                    }
                }

                break;
            }
            }

            if (version < 3 && (Weight == 1 || Weight == 2))
            {
                Weight = -1;
            }
        }
Пример #42
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.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();
            }
        }
Пример #43
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 < 12 && reader.ReadBool())
                {
                    m_NegativeAttributes.NoRepair = 1;
                }
                #endregion

                #region Stygian Abyss
                m_GorgonLenseCharges = reader.ReadInt();
                m_GorgonLenseType    = (LenseType)reader.ReadInt();
                #endregion

                goto case 4;
            }

            case 4:
            {
                #region Stygian Abyss
                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;
            }
        }
Пример #44
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            this.m_HasLeftTheMansion = reader.ReadBool();
        }
Пример #45
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

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

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

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

                // Backward compatibility
                if (GetSaveFlag(flags, SaveFlag.Owner))
                {
                    this.BlessedFor = reader.ReadMobile();
                }

                if (GetSaveFlag(flags, SaveFlag.Protection))
                {
                    this.m_Protection = new TalismanAttribute(reader);
                }
                else
                {
                    this.m_Protection = new TalismanAttribute();
                }

                if (GetSaveFlag(flags, SaveFlag.Killer))
                {
                    this.m_Killer = new TalismanAttribute(reader);
                }
                else
                {
                    this.m_Killer = new TalismanAttribute();
                }

                if (GetSaveFlag(flags, SaveFlag.Summoner))
                {
                    this.m_Summoner = new TalismanAttribute(reader);
                }
                else
                {
                    this.m_Summoner = new TalismanAttribute();
                }

                if (GetSaveFlag(flags, SaveFlag.Removal))
                {
                    this.m_Removal = (TalismanRemoval)reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.OldKarmaLoss))
                {
                    this.m_AosAttributes.IncreasedKarmaLoss = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Skill))
                {
                    this.m_Skill = (SkillName)reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.SuccessBonus))
                {
                    this.m_SuccessBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.ExceptionalBonus))
                {
                    this.m_ExceptionalBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.MaxCharges))
                {
                    this.m_MaxCharges = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Charges))
                {
                    this.m_Charges = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.MaxChargeTime))
                {
                    this.m_MaxChargeTime = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.ChargeTime))
                {
                    this.m_ChargeTime = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Slayer))
                {
                    this.m_Slayer = (TalismanSlayerName)reader.ReadEncodedInt();
                }

                this.m_Blessed = GetSaveFlag(flags, SaveFlag.Blessed);

                break;
            }
            }

            if (this.Parent is Mobile)
            {
                Mobile m = (Mobile)this.Parent;

                this.m_AosAttributes.AddStatBonuses(m);
                this.m_AosSkillBonuses.AddTo(m);

                if (this.m_ChargeTime > 0)
                {
                    this.StartTimer();
                }
            }
        }
Пример #46
0
 public virtual void ChildDeserialize(GenericReader reader)
 {
     _ = reader.ReadEncodedInt();
 }
Пример #47
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            m_ImpLocation = reader.ReadPoint3D();
        }
Пример #48
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 0:
				{
					m_EffectDelay = reader.ReadTimeSpan();
					m_TriggerDelay = reader.ReadTimeSpan();
					m_SoundDelay = reader.ReadTimeSpan();

					m_Source = ReadEntity( reader );
					m_Target = ReadEntity( reader );
					m_Trigger = reader.ReadItem() as EffectController;

					m_FixedDirection = reader.ReadBool();
					m_Explodes = reader.ReadBool();
					m_PlaySoundAtTrigger = reader.ReadBool();

					m_EffectType = (ECEffectType)reader.ReadEncodedInt();
					m_EffectLayer = (EffectLayer)reader.ReadEncodedInt();
					m_TriggerType = (EffectTriggerType)reader.ReadEncodedInt();

					m_ItemID = reader.ReadEncodedInt();
					m_Hue = reader.ReadEncodedInt();
					m_RenderMode = reader.ReadEncodedInt();
					m_Speed = reader.ReadEncodedInt();
					m_Duration = reader.ReadEncodedInt();
					m_ParticleEffect = reader.ReadEncodedInt();
					m_ExplodeParticleEffect = reader.ReadEncodedInt();
					m_ExplodeSound = reader.ReadEncodedInt();
					m_Unknown = reader.ReadEncodedInt();
					m_SoundID = reader.ReadEncodedInt();
					m_TriggerRange = reader.ReadEncodedInt();

					break;
				}
			}
		}
Пример #49
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            m_StolenTreasure = reader.ReadBool();
        }
Пример #50
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 5:
                m_ArrowType = (ArrowType)reader.ReadEncodedInt();
                goto case 4;

            case 4:
            case 3:
            {
                if (version == 3 && reader.ReadBool())
                {
                    Attributes.BalancedWeapon = 1;
                }

                m_Velocity = reader.ReadInt();

                goto case 2;
            }

            case 2:
            case 1:
            {
                break;
            }

            case 0:
            {
                /*m_EffectID =*/
                reader.ReadInt();
                break;
            }
            }

            if (version < 2)
            {
                WeaponAttributes.MageWeapon   = 0;
                WeaponAttributes.UseBestSkill = 0;
            }

            if (ArrowSelection == ArrowType.Normal)
            {
                if (AmmoType == typeof(Bolt))
                {
                    SpecialAmmoType = typeof(Bolt);
                }
                else
                {
                    SpecialAmmoType = typeof(Arrow);
                }
            }
            if (ArrowSelection == ArrowType.Poison)
            {
                if (AmmoType == typeof(Bolt))
                {
                    SpecialAmmoType = typeof(PoisonBolt);
                }
                else
                {
                    SpecialAmmoType = typeof(PoisonArrow);
                }
            }

            else if (ArrowSelection == ArrowType.Explosive)
            {
                if (AmmoType == typeof(Bolt))
                {
                    SpecialAmmoType = typeof(ExplosiveBolt);
                }
                else
                {
                    SpecialAmmoType = typeof(ExplosiveArrow);
                }
            }

            else if (ArrowSelection == ArrowType.ArmorPiercing)
            {
                if (AmmoType == typeof(Bolt))
                {
                    SpecialAmmoType = typeof(ArmorPiercingBolt);
                }
                else
                {
                    SpecialAmmoType = typeof(ArmorPiercingArrow);
                }
            }

            else if (ArrowSelection == ArrowType.Freeze)
            {
                if (AmmoType == typeof(Bolt))
                {
                    SpecialAmmoType = typeof(FreezeBolt);
                }
                else
                {
                    SpecialAmmoType = typeof(FreezeArrow);
                }
            }

            else if (ArrowSelection == ArrowType.Lightning)
            {
                if (AmmoType == typeof(Bolt))
                {
                    SpecialAmmoType = typeof(LightningBolt);
                }
                else
                {
                    SpecialAmmoType = typeof(LightningArrowAmmo);
                }
            }
        }
Пример #51
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            m_FromUzeraan = reader.ReadBool();
        }
Пример #52
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            m_MaxProgress = reader.ReadInt();
        }