Example #1
0
        public void Read(GenericReader reader)
        {
            int version = reader.ReadInt();

            Collection = (Collection)reader.ReadInt();
            Points     = reader.ReadLong();
            StartTier  = reader.ReadLong();
            NextTier   = reader.ReadLong();
            DailyDecay = reader.ReadLong();
            Tier       = reader.ReadInt();

            DonationTitle = QuestReader.Object(reader);

            for (int i = reader.ReadInt(); i > 0; i--)
            {
                List <object> list = new List <object>();

                for (int j = reader.ReadInt(); j > 0; j--)
                {
                    list.Add(QuestReader.Object(reader));
                }

                Tiers.Add(list);
            }
        }
Example #2
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_Points     = reader.ReadLong();
            m_StartTier  = reader.ReadLong();
            m_NextTier   = reader.ReadLong();
            m_DailyDecay = reader.ReadLong();
            m_Tier       = reader.ReadInt();

            m_DonationTitle = QuestReader.Object(reader);

            Init();

            for (int i = reader.ReadInt(); i > 0; i--)
            {
                List <object> list = new List <object>();

                for (int j = reader.ReadInt(); j > 0; j--)
                {
                    list.Add(QuestReader.Object(reader));
                }

                m_Tiers.Add(list);
            }

            if (CantWalk)
            {
                Frozen = true;
            }
        }
Example #3
0
        public SearchCriteria(GenericReader reader)
        {
            int version = reader.ReadInt();

            Details = new List <SearchDetail>();

            if (version > 1)
            {
                Auction = reader.ReadBool();
            }

            if (version != 0)
            {
                EntryPrice = reader.ReadBool();
            }

            SearchType = (Layer)reader.ReadInt();
            SearchName = reader.ReadString();
            SortBy     = (SortBy)reader.ReadInt();
            MinPrice   = reader.ReadLong();
            MaxPrice   = reader.ReadLong();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                Details.Add(new SearchDetail(reader));
            }
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            this.m_Points     = reader.ReadLong();
            this.m_StartTier  = reader.ReadLong();
            this.m_NextTier   = reader.ReadLong();
            this.m_DailyDecay = reader.ReadLong();
            this.m_Tier       = reader.ReadInt();

            this.Init();

            for (int i = reader.ReadInt(); i > 0; i--)
            {
                List <object> list = new List <object>();

                for (int j = reader.ReadInt(); j > 0; j--)
                {
                    list.Add(QuestReader.Object(reader));
                }

                this.m_Tiers.Add(list);
            }
        }
Example #5
0
        public void Deserialize(GenericReader reader)
        {
            m_ColorStates[0] = reader.ReadLong();
            m_ColorStates[1] = reader.ReadLong();
            m_ColorStates[2] = reader.ReadLong();
            m_ColorStates[3] = reader.ReadLong();

            UnlockColor(0, EColorRarity.Common);                // make sure the first common color is unlocked
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();

            FlagsCaptured = reader.ReadLong();
            FlagsDropped  = reader.ReadLong();
            FlagsStolen   = reader.ReadLong();
            FlagsReturned = reader.ReadLong();
        }
        public ExchangeDay(GenericReader reader)
        {
            int version = reader.ReadInt();

            HighestPrice = reader.ReadDouble();
            LowestPrice = reader.ReadDouble();
            TotalQuantity = reader.ReadLong();
            TotalRevenue = reader.ReadLong();
            Average = reader.ReadDouble();
            Day = reader.ReadInt();
        }
Example #8
0
        public Auction(AuctionSafe safe, GenericReader reader)
        {
            Safe = safe;

            int version = reader.ReadInt();

            Owner       = reader.ReadMobile();
            AuctionItem = reader.ReadItem();
            CurrentBid  = reader.ReadLong();
            StartBid    = reader.ReadLong();
            Buyout      = reader.ReadLong();
            Description = reader.ReadString();
            Duration    = reader.ReadInt();
            StartTime   = reader.ReadDateTime();
            OnGoing     = reader.ReadBool();

            Bids = new List <BidEntry>();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                PlayerMobile m     = reader.ReadMobile() as PlayerMobile;
                BidEntry     entry = new BidEntry(m, reader);

                if (m != null)
                {
                    Bids.Add(entry);

                    if (entry.CurrentBid > 0 && (HighestBid == null || entry.CurrentBid > HighestBid.CurrentBid))
                    {
                        HighestBid = entry;
                    }
                }
            }

            count = reader.ReadInt();

            if (count > 0)
            {
                BidHistory = new List <HistoryEntry>();
            }

            for (int i = 0; i < count; i++)
            {
                BidHistory.Add(new HistoryEntry(reader));
            }

            if (HasBegun)
            {
                Auctions.Add(this);
            }
        }
Example #9
0
 private static void ReadIndex(
     GenericReader idx,
     out Type type,
     out Serial serial,
     out Serial parent,
     out long index,
     out long length)
 {
     type   = idx.ReadType();
     serial = idx.ReadInt();
     parent = idx.ReadInt();
     index  = idx.ReadLong();
     length = idx.ReadLong();
 }
Example #10
0
        public void Deserialize(GenericReader reader)
        {
            var version = reader.ReadInt();

            Deleted = reader.ReadBool();
            Owner   = reader.ReadMobile <PlayerMobile>();

            switch (version)
            {
            case 0:
            {
                _Points = reader.ReadLong();

                History = reader.ReadBlock(r => r.ReadTypeCreate <PvPProfileHistory>(this, r)) ?? new PvPProfileHistory(this);

                Subscriptions = reader.ReadBlockList(
                    r =>
                    {
                        var serial = r.ReadTypeCreate <PvPSerial>(r) ?? new PvPSerial(r);

                        return(AutoPvP.FindBattleByID(serial));
                    },
                    Subscriptions);
            }
            break;
            }
        }
Example #11
0
        public void Deserialize(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                Account = reader.ReadAccount();
                Credits = reader.ReadLong();

                Transactions = reader.ReadDictionary(
                    () =>
                    {
                        if (reader.ReadBool())
                        {
                            DonationTransaction t = new DonationTransaction(reader);
                            return(new KeyValuePair <string, DonationTransaction>(t.ID, t));
                        }

                        return(new KeyValuePair <string, DonationTransaction>(null, null));
                    });

                Gifts = reader.ReadDictionary(
                    () =>
                    {
                        string k = reader.ReadString();
                        string v = reader.ReadString();
                        return(new KeyValuePair <string, string>(k, v));
                    });
            }
            break;
            }
        }
Example #12
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
            {
                m_Boat     = reader.ReadItem() as BaseBoat;
                m_Side     = (PlankSide)reader.ReadInt();
                m_Locked   = reader.ReadBool();
                m_KeyValue = reader.ReadLong();

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

                break;
            }
            }

            if (IsOpen)
            {
                m_CloseTimer = new CloseTimer(this);
                m_CloseTimer.Start();
            }
        }
            public override void Deserialize(GenericReader reader)
            {
                base.Deserialize(reader);

                int version = reader.ReadInt();

                m_market   = reader.ReadString();
                m_type     = reader.ReadInt();
                m_uniqueID = reader.ReadLong();

                string type = reader.ReadString();

                if (type != null)
                {
                    m_itemType = ScriptCompiler.FindTypeByFullName(type);
                }

                if (version >= 2)
                {
                    m_amountStart   = reader.ReadInt();
                    m_amountCurrent = reader.ReadInt();
                    m_unitPrice     = reader.ReadInt();
                }
                else
                {
                    m_amountStart   = 1;
                    m_amountCurrent = 1;
                    m_unitPrice     = 1;
                }
            }
Example #14
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 1:
                m_Instance   = reader.ReadItem() as PrimevalLichPuzzle;
                m_Altar      = reader.ReadItem() as ChampionSpawn;
                m_Key        = reader.ReadLong();
                m_Successful = reader.ReadMobile();
                m_Levers     = reader.ReadStrongItemList <PrimevalLichPuzzleLever>();
                break;
            }

            if (null == m_Levers)
            {
                m_Levers = new List <PrimevalLichPuzzleLever>();
            }
            //            if ( null != m_Instance && m_Instance.Deleted && this == m_Instance )
            //            {
            //                m_Instance = null;
            //                return;
            //            }
            //            // remove if no altar exists
            //            if ( null == m_Altar )
            //                Timer.DelayCall( TimeSpan.FromSeconds( 0.0 ), new TimerCallback( Delete ) );
            //            ResetLevers();
        }
Example #15
0
        public void Deserialize(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                ID               = reader.ReadString();
                _State           = reader.ReadFlag <DonationTransactionState>();
                Account          = reader.ReadAccount();
                Email            = reader.ReadString();
                Total            = reader.ReadDecimal();
                _Credit          = reader.ReadLong();
                _Time            = reader.ReadDouble();
                Version          = reader.ReadInt();
                _InternalVersion = reader.ReadInt();
                _Notes           = reader.ReadString();
                _Extra           = reader.ReadString();

                DeliverFrom = reader.ReadMobile();
                DeliverTo   = reader.ReadMobile();

                DeliveryTime = reader.ReadDouble();
            }
            break;
            }
        }
Example #16
0
        public void Deserialize(GenericReader reader)
        {
            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
            {
                m_TransactionID = reader.ReadLong();
                m_Date          = reader.ReadDateTime();
                m_TransType     = (TransactionType)reader.ReadInt();
                ResName         = reader.ReadString();
                Amount          = reader.ReadInt();
                Price           = reader.ReadDouble();
                NewAmount       = reader.ReadInt();
                VendorID        = (Serial)reader.ReadInt();
                break;
            }

            default:
            {
                Console.WriteLine("Error: Invalid save version for Resource Transaction.");
                break;
            }
            }
        }
Example #17
0
        public void Deserialize(GenericReader reader)
        {
            var version = reader.GetVersion();

            switch (version)
            {
            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 > 0)
                {
                    DeliveredTo  = reader.ReadMobile();
                    DeliveryTime = reader.ReadTimeStamp();
                }
                else
                {
                    reader.ReadMobile();                             // DeliverFrom

                    DeliveredTo  = reader.ReadMobile();
                    DeliveryTime = reader.ReadDouble();
                }
            }
            break;
            }
        }
Example #18
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();

            PointsTotal   = reader.ReadLong();
            PointsGained  = reader.ReadLong();
            PointsLost    = reader.ReadLong();
            Kills         = reader.ReadLong();
            Deaths        = reader.ReadLong();
            Resurrections = reader.ReadLong();
            DamageTaken   = reader.ReadLong();
            DamageDone    = reader.ReadLong();
            HealingTaken  = reader.ReadLong();
            HealingDone   = reader.ReadLong();
        }
Example #19
0
        public BidEntry(PlayerMobile m, GenericReader reader)
        {
            Mobile = m;

            int version = reader.ReadInt();

            CurrentBid = reader.ReadLong();
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
                Gold   = reader.ReadLong();
                Tokens = reader.ReadLong();
                break;

            case 1:
                DateLastPaid = reader.ReadDateTime();
                goto case 0;
            }
        }
Example #21
0
        public HistoryEntry(GenericReader reader)
        {
            int version = reader.ReadInt();

            Mobile      = reader.ReadMobile();
            Bid         = reader.ReadLong();
            ShowRealBid = reader.ReadBool();
            BidTime     = reader.ReadDateTime();
        }
Example #22
0
        private bool FindPosition(GenericReader rcreader)
        {
            ((BinaryFileReader)rcreader).Seek(0, SeekOrigin.Begin);
            if (rcreader.End())
            {
                return(false);
            }

            int rcversion = rcreader.ReadInt();

            switch (rcversion)
            {
            case 0:
            {
                long tableposition = rcreader.ReadLong();
                Console.WriteLine("Tableposition: {0}", tableposition);
                ((BinaryFileReader)rcreader).Seek(tableposition, SeekOrigin.Begin);
                while (!rcreader.End())
                {
                    string typename = rcreader.ReadString();
                    long   location = rcreader.ReadLong();
                    Console.WriteLine("{0}, {1}", typename, location);
                    if (typename == m_Type.FullName)
                    {
                        ((BinaryFileReader)rcreader).Seek(location, SeekOrigin.Begin);
                        return(true);
                    }
                }

                break;
            }

            default:
            {
                throw new Exception("ResourcePool error: Invalid consignments.dat save version");
            }
            }

            return(false);
        }
Example #23
0
		public void Deserialize(GenericReader reader)
		{
			var version = reader.GetVersion();

			switch (version)
			{
				case 1:
				case 0:
				{
					Account = reader.ReadAccount();
					Credit = reader.ReadLong();

					Transactions = reader.ReadDictionary(
						r =>
						{
							string k = null;
							DonationTransaction v = null;

							if (r.ReadBool())
							{
								if (version > 0)
								{
									k = r.ReadString();
									v = AutoDonate.Transactions.GetValue(k);
								}
								else
								{
									v = new DonationTransaction(r);
									k = v.ID;

									AutoDonate.Transactions[k] = v;
								}
							}

							return new KeyValuePair<string, DonationTransaction>(k, v);
						},
						Transactions);

					if (version < 1) // Gifts
					{
						reader.ReadDictionary(
							() =>
							{
								var k = reader.ReadString();
								var v = reader.ReadString();
								return new KeyValuePair<string, string>(k, v);
							});
					}
				}
					break;
			}
		}
Example #24
0
        public BestWave(GenericReader reader)
        {
            int version = reader.ReadInt();

            Waves      = reader.ReadInt();
            TotalScore = reader.ReadLong();
            Date       = reader.ReadString();

            Score = new Dictionary <Mobile, long>();

            int cnt = reader.ReadInt();

            for (int i = 0; i < cnt; i++)
            {
                Mobile m     = reader.ReadMobile();
                long   score = reader.ReadLong();
                if (m != null)
                {
                    Score[m] = score;
                }
            }
        }
Example #25
0
        private static void ReadLength(GenericReader idx, bool reset, out long length, out int count)
        {
            var index = idx.Seek(0, SeekOrigin.Current);

            idx.Seek(4, SeekOrigin.Begin);

            length = idx.ReadLong();
            count  = idx.ReadInt();

            if (reset)
            {
                idx.Seek(index, SeekOrigin.Begin);
            }
        }
Example #26
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            this.Init();

            if (version == 0)
            {
                this.m_Points     = reader.ReadLong();
                this.m_StartTier  = reader.ReadLong();
                this.m_NextTier   = reader.ReadLong();
                this.m_DailyDecay = reader.ReadLong();
                this.m_Tier       = reader.ReadInt();

                this.m_DonationTitle = QuestReader.Object(reader);

                for (int i = reader.ReadInt(); i > 0; i--)
                {
                    List <object> list = new List <object>();

                    for (int j = reader.ReadInt(); j > 0; j--)
                    {
                        list.Add(QuestReader.Object(reader));
                    }

                    this.m_Tiers.Add(list);
                }
                CollectionsSystem.RegisterMobile(this);
            }

            if (this.CantWalk)
            {
                this.Frozen = true;
            }
        }
Example #27
0
        public override void Deserialize(GenericReader reader)
        {
            City = (City)reader.ReadInt();

            base.Deserialize(reader);
            int version = reader.ReadInt();

            CompletedTrades    = reader.ReadInt();
            Governor           = reader.ReadMobile();
            GovernorElect      = reader.ReadMobile();
            PendingGovernor    = reader.ReadBool();
            Treasury           = reader.ReadLong();
            ActiveTradeDeal    = (TradeDeal)reader.ReadInt();
            TradeDealStart     = reader.ReadDateTime();
            NextTradeDealCheck = reader.ReadDateTime();
            CanUtilize         = reader.ReadBool();

            Headline = reader.ReadString();
            Body     = reader.ReadString();
            PostedOn = reader.ReadDateTime();

            if (reader.ReadInt() == 0)
            {
                Election = new CityElection(this, reader);
            }
            else
            {
                Election = new CityElection(this);
            }

            if (this.City == City.Britain)
            {
                _CitizenWait = new Dictionary <Mobile, DateTime>();

                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    Mobile   m  = reader.ReadMobile();
                    DateTime dt = reader.ReadDateTime();

                    if (m != null && dt > DateTime.UtcNow)
                    {
                        _CitizenWait[m] = dt;
                    }
                }

                Timer.DelayCall(TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10), OnTick);
            }
        }
Example #28
0
        public static bool SubRead(GenericReader reader, Action <GenericReader> deserializer)
        {
            if (reader == null)
            {
                return(false);
            }

            using (var s = new MemoryStream())
            {
                var length = reader.ReadLong();

                while (s.Length < length)
                {
                    s.WriteByte(reader.ReadByte());
                }

                if (deserializer != null)
                {
                    s.Position = 0;

                    var r = new BinaryFileReader(new BinaryReader(s));

                    try
                    {
                        deserializer(r);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Quest Load Failure: {0}", Utility.FormatDelegate(deserializer));
                        Console.WriteLine(e);

                        return(false);
                    }
                    finally
                    {
                        r.Close();
                    }
                }
            }

            return(true);
        }
Example #29
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            if (version == 1)
            {
                m_CanDropInWhenLocked = reader.ReadBool();
                m_CanSeeInWhenLocked  = reader.ReadBool();
            }

            m_IsShipwreckedItem = reader.ReadBool();
            m_TrapOnLockpick    = reader.ReadBool();
            m_RequiredSkill     = reader.ReadInt();
            m_MaxLockLevel      = reader.ReadInt();
            m_KeyValue          = reader.ReadLong();
            m_LockLevel         = reader.ReadInt();
            m_Locked            = reader.ReadBool();
        }
Example #30
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            Owner = reader.ReadMobile <PlayerMobile>();

            switch (version)
            {
            case 0:
            {
                Credit = reader.ReadLong();

                Registry = reader.ReadBlockList(() => new ConquestState(reader));
            }
            break;
            }

            Sync();
        }
Example #31
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_MaxRange = reader.ReadInt();

            m_Link = reader.ReadItem();

            if (version < 2 || m_MaxRange == 0)
            {
                m_MaxRange = 3;
            }

            m_Description = reader.ReadString();

            m_KeyVal = reader.ReadLong();

            LootType = LootType.Blessed;
        }
        public void Deserialize(GenericReader reader)
        {
            int version = reader.ReadInt();

            //Category set by the collections this belongs to
            LastExchangeTime = reader.ReadDateTime();
            LastPrice = reader.ReadDouble();
            LastQuantity = reader.ReadInt();

            AveragePrice = reader.ReadDouble();

            HighestDayQuantity = reader.ReadLong();
            HighestDayPrice = reader.ReadDouble();
            LowestDayPrice = reader.ReadDouble();

            HighestPrice = reader.ReadDouble();
            LowestPrice = reader.ReadDouble();
            TotalQuantity = reader.ReadLong();

            int count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                ExchangeDay ed = new ExchangeDay(reader);
                ExchangeDayList.Add(ed);

                if (i == count - 1)
                    CurrentDay = ed;
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                BuyInfo bi = new BuyInfo(reader);
                BuyInfoList.Add(bi);
                bi.Info = this;
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                SellInfo si= new SellInfo(reader);
                SellInfoList.Add(si);
                si.Info = this;
            }

            m_SalesInfo1 = CustomSaving.DeserializeStringArray(reader);
            m_SalesInfo2 = CustomSaving.DeserializeStringArray(reader);
        }
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);
			int version = reader.ReadInt();

			switch (version)
			{
                case 29:
					{
						m_GauntletPoints = reader.ReadDouble();

						m_SSNextSeed = reader.ReadDateTime();
						m_SSSeedExpire = reader.ReadDateTime();
						m_SSSeedLocation = reader.ReadPoint3D();
						m_SSSeedMap = reader.ReadMap();

						m_LevelExp = reader.ReadLong();
						m_Exp = reader.ReadLong();
						m_Level = reader.ReadInt();
						m_ExpTitle = reader.ReadString();

						m_VASTotalMonsterFame = reader.ReadInt();

						m_Quests = QuestReader.Quests(reader, this);
						m_Chains = QuestReader.Chains(reader);

						m_Collections = new Dictionary<Collection, int>();
						m_CollectionTitles = new List<object>();

						for (int i = reader.ReadInt(); i > 0; i--)
						{
							m_Collections.Add((Collection)reader.ReadInt(), reader.ReadInt());
						}

						for (int i = reader.ReadInt(); i > 0; i--)
						{
							m_CollectionTitles.Add(QuestReader.Object(reader));
						}

						m_SelectedTitle = reader.ReadInt();

						goto case 28;
					}
				case 28:
					{
						m_PeacedUntil = reader.ReadDateTime();

						goto case 27;
					}
				case 27:
					{
						m_AnkhNextUse = reader.ReadDateTime();

						goto case 26;
					}
				case 26:
					{
						m_AutoStabled = reader.ReadStrongMobileList();

						goto case 25;
					}
				case 25:
					{
						int recipeCount = reader.ReadInt();

						if (recipeCount > 0)
						{
							m_AcquiredRecipes = new Dictionary<int, bool>();

							for (int i = 0; i < recipeCount; i++)
							{
								int r = reader.ReadInt();
								if (reader.ReadBool()) //Don't add in recipies which we haven't gotten or have been removed
								{
									m_AcquiredRecipes.Add(r, true);
								}
							}
						}
						goto case 24;
					}
				case 24:
					{
						m_LastHonorLoss = reader.ReadDeltaTime();
						goto case 23;
					}
				case 23:
					{
						m_ChampionTitles = new ChampionTitleInfo(reader);
						goto case 22;
					}
				case 22:
					{
						m_LastValorLoss = reader.ReadDateTime();
						goto case 21;
					}
				case 21:
					{
						m_ToTItemsTurnedIn = reader.ReadEncodedInt();
						m_ToTTotalMonsterFame = reader.ReadInt();
						goto case 20;
					}
				case 20:
					{
						m_AllianceMessageHue = reader.ReadEncodedInt();
						m_GuildMessageHue = reader.ReadEncodedInt();

						goto case 19;
					}
				case 19:
					{
						int rank = reader.ReadEncodedInt();
						int maxRank = RankDefinition.Ranks.Length - 1;
						if (rank > maxRank)
						{
							rank = maxRank;
						}

						m_GuildRank = RankDefinition.Ranks[rank];
						m_LastOnline = reader.ReadDateTime();
						goto case 18;
					}
				case 18:
					{
						m_SolenFriendship = (SolenFriendship)reader.ReadEncodedInt();

						goto case 17;
					}
				case 17: // changed how DoneQuests is serialized
				case 16:
					{
						m_Quest = QuestSerializer.DeserializeQuest(reader);

						if (m_Quest != null)
						{
							m_Quest.From = this;
						}

						int count = reader.ReadEncodedInt();

						if (count > 0)
						{
							m_DoneQuests = new List<QuestRestartInfo>();

							for (int i = 0; i < count; ++i)
							{
								Type questType = QuestSerializer.ReadType(QuestSystem.QuestTypes, reader);
								DateTime restartTime;

								if (version < 17)
								{
									restartTime = DateTime.MaxValue;
								}
								else
								{
									restartTime = reader.ReadDateTime();
								}

								m_DoneQuests.Add(new QuestRestartInfo(questType, restartTime));
							}
						}

						m_Profession = reader.ReadEncodedInt();
						goto case 15;
					}
				case 15:
					{
						m_LastCompassionLoss = reader.ReadDeltaTime();
						goto case 14;
					}
				case 14:
					{
						m_CompassionGains = reader.ReadEncodedInt();

						if (m_CompassionGains > 0)
						{
							m_NextCompassionDay = reader.ReadDeltaTime();
						}

						goto case 13;
					}
				case 13: // just removed m_PayedInsurance list
				case 12:
					{
						m_BOBFilter = new BOBFilter(reader);
						goto case 11;
					}
				case 11:
					{
						if (version < 13)
						{
							var payed = reader.ReadStrongItemList();

							for (int i = 0; i < payed.Count; ++i)
							{
								payed[i].PayedInsurance = true;
							}
						}

						goto case 10;
					}
				case 10:
					{
						if (reader.ReadBool())
						{
							m_HairModID = reader.ReadInt();
							m_HairModHue = reader.ReadInt();
							m_BeardModID = reader.ReadInt();
							m_BeardModHue = reader.ReadInt();
						}

						goto case 9;
					}
				case 9:
					{
						SavagePaintExpiration = reader.ReadTimeSpan();

						if (SavagePaintExpiration > TimeSpan.Zero)
						{
							BodyMod = (Female ? 184 : 183);
							HueMod = 0;
						}

						goto case 8;
					}
				case 8:
					{
						m_NpcGuild = (NpcGuild)reader.ReadInt();
						m_NpcGuildJoinTime = reader.ReadDateTime();
						m_NpcGuildGameTime = reader.ReadTimeSpan();
						goto case 7;
					}
				case 7:
					{
						m_PermaFlags = reader.ReadStrongMobileList();
						goto case 6;
					}
				case 6:
					{
						NextTailorBulkOrder = reader.ReadTimeSpan();
						goto case 5;
					}
				case 5:
					{
						NextSmithBulkOrder = reader.ReadTimeSpan();
						goto case 4;
					}
				case 4:
					{
						m_LastJusticeLoss = reader.ReadDeltaTime();
						m_JusticeProtectors = reader.ReadStrongMobileList();
						goto case 3;
					}
				case 3:
					{
						m_LastSacrificeGain = reader.ReadDeltaTime();
						m_LastSacrificeLoss = reader.ReadDeltaTime();
						m_AvailableResurrects = reader.ReadInt();
						goto case 2;
					}
				case 2:
					{
						m_Flags = (PlayerFlag)reader.ReadInt();
						goto case 1;
					}
				case 1:
					{
						m_LongTermElapse = reader.ReadTimeSpan();
						m_ShortTermElapse = reader.ReadTimeSpan();
						m_GameTime = reader.ReadTimeSpan();
						goto case 0;
					}
				case 0:
					{
						if (version < 26)
						{
							m_AutoStabled = new List<Mobile>();
						}
						break;
					}
			}

			if (version < 29)
			{
				m_SSNextSeed = m_SSSeedExpire = DateTime.UtcNow;
				m_SSSeedLocation = Point3D.Zero;
			}

			if (m_RecentlyReported == null)
			{
				m_RecentlyReported = new List<Mobile>();
			}

			#region QueensLoyaltySystem
			if (version < 29)
			{
				m_LevelExp = 2000;
				m_Exp = 0;
				m_Level = 0;

				m_ExpTitle = "Friend of TerMur";
			}
			#endregion

			#region Mondain's Legacy
			if (m_Quests == null)
			{
				m_Quests = new List<BaseQuest>();
			}

			if (m_Chains == null)
			{
				m_Chains = new Dictionary<QuestChain, BaseChain>();
			}

			if (m_DoneQuests == null)
			{
				m_DoneQuests = new List<QuestRestartInfo>();
			}

			if (m_Collections == null)
			{
				m_Collections = new Dictionary<Collection, int>();
			}

			if (m_CollectionTitles == null)
			{
				m_CollectionTitles = new List<object>();
			}
			#endregion

			// Professions weren't verified on 1.0 RC0
			if (!CharacterCreation.VerifyProfession(m_Profession))
			{
				m_Profession = 0;
			}

			if (m_PermaFlags == null)
			{
				m_PermaFlags = new List<Mobile>();
			}

			if (m_JusticeProtectors == null)
			{
				m_JusticeProtectors = new List<Mobile>();
			}

			if (m_BOBFilter == null)
			{
				m_BOBFilter = new BOBFilter();
			}

			if (m_GuildRank == null)
			{
				m_GuildRank = RankDefinition.Member;
				//Default to member if going from older version to new version (only time it should be null)
			}

			if (m_LastOnline == DateTime.MinValue && Account != null)
			{
				m_LastOnline = ((Account)Account).LastLogin;
			}

			if (m_ChampionTitles == null)
			{
				m_ChampionTitles = new ChampionTitleInfo();
			}

			var list = Stabled;

			for (int i = 0; i < list.Count; ++i)
			{
				BaseCreature bc = list[i] as BaseCreature;

				if (bc != null)
				{
					bc.IsStabled = true;
					bc.StabledBy = this;
				}
			}

			CheckAtrophies(this);

			if (Hidden) //Hiding is the only buff where it has an effect that's serialized.
			{
				AddBuff(new BuffInfo(BuffIcon.HidingAndOrStealth, 1075655));
			}
		}
Example #34
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch ( version )
            {
                case 1:
                    m_Instance = reader.ReadItem() as PrimevalLichPuzzle;
                    this.m_Altar = reader.ReadItem() as ChampionSpawn;
                    this.m_Key = reader.ReadLong();
                    this.m_Successful = reader.ReadMobile();
                    this.m_Levers = reader.ReadStrongItemList<PrimevalLichPuzzleLever>();
                    break;
            }

            if (null == this.m_Levers)
                this.m_Levers = new List<PrimevalLichPuzzleLever>();
            //            if ( null != m_Instance && m_Instance.Deleted && this == m_Instance )
            //            {
            //                m_Instance = null;
            //                return;
            //            }
            //            // remove if no altar exists
            //            if ( null == m_Altar )
            //                Timer.DelayCall( TimeSpan.FromSeconds( 0.0 ), new TimerCallback( Delete ) );
            //            ResetLevers();
        }
Example #35
0
		public void Read(GenericReader reader)
		{
			int version = reader.ReadInt();

			Collection = (Collection)reader.ReadInt();
			Points = reader.ReadLong();
			StartTier = reader.ReadLong();
			NextTier = reader.ReadLong();
			DailyDecay = reader.ReadLong();
			Tier = reader.ReadInt();

			DonationTitle = QuestReader.Object(reader);

			for (int i = reader.ReadInt(); i > 0; i--)
			{
				List<object> list = new List<object>();

				for (int j = reader.ReadInt(); j > 0; j--)
					list.Add(QuestReader.Object(reader));

				Tiers.Add(list);
			}
		}
Example #36
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            this.m_Points = reader.ReadLong();
            this.m_StartTier = reader.ReadLong();
            this.m_NextTier = reader.ReadLong();
            this.m_DailyDecay = reader.ReadLong();
            this.m_Tier = reader.ReadInt();

            this.m_DonationTitle = QuestReader.Object(reader);

            this.Init();

            for (int i = reader.ReadInt(); i > 0; i --)
            {
                List<object> list = new List<object>();

                for (int j = reader.ReadInt(); j > 0; j --)
                    list.Add(QuestReader.Object(reader));

                this.m_Tiers.Add(list);
            }

            if (this.CantWalk)
                this.Frozen = true;
        }
Example #37
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadInt();

			switch (version)
			{
                case 14:
                    {
                        m_IsImbued = reader.ReadBool();
                        goto case 13;
                    }
                case 13:
                case 12:
                    {
                        #region Runic Reforging
                        m_ReforgedPrefix = (ReforgedPrefix)reader.ReadInt();
                        m_ReforgedSuffix = (ReforgedSuffix)reader.ReadInt();
                        m_ItemPower = (ItemPower)reader.ReadInt();
                        m_BlockRepair = reader.ReadBool();
                        #endregion

                        #region Stygian Abyss
                        m_DImodded = reader.ReadBool();
                        m_SearingWeapon = reader.ReadBool();
                        goto case 11;
                    }
				case 11:
					{
						m_TimesImbued = reader.ReadInt();
                     
                        #endregion

                        goto case 10;
					}
				case 10:
					{
						m_BlessedBy = reader.ReadMobile();
						m_EngravedText = reader.ReadString();
						m_Slayer3 = (TalismanSlayerName)reader.ReadInt();

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

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

						if (GetSaveFlag(flags, SetFlag.WeaponAttributes))
						{
							m_SetSelfRepair = (new AosWeaponAttributes(this, reader)).SelfRepair;
						}

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

						if (GetSaveFlag(flags, SetFlag.Hue))
						{
							m_SetHue = reader.ReadInt();
						}

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

						if (GetSaveFlag(flags, SetFlag.SetEquipped))
						{
							m_SetEquipped = reader.ReadBool();
						}

						if (GetSaveFlag(flags, SetFlag.SetSelfRepair))
						{
							m_SetSelfRepair = reader.ReadEncodedInt();
						}

						goto case 5;
					}
				case 9:
				case 8:
				case 7:
				case 6:
				case 5:
					{
						SaveFlag flags;
                        
                        if(version < 13)
                            flags = (SaveFlag)reader.ReadInt();
                        else
                            flags = (SaveFlag)reader.ReadLong();

						if (GetSaveFlag(flags, SaveFlag.DamageLevel))
						{
							m_DamageLevel = (WeaponDamageLevel)reader.ReadInt();

							if (m_DamageLevel > WeaponDamageLevel.Vanq)
							{
								m_DamageLevel = WeaponDamageLevel.Ruin;
							}
						}

						if (GetSaveFlag(flags, SaveFlag.AccuracyLevel))
						{
							m_AccuracyLevel = (WeaponAccuracyLevel)reader.ReadInt();

							if (m_AccuracyLevel > WeaponAccuracyLevel.Supremely)
							{
								m_AccuracyLevel = WeaponAccuracyLevel.Accurate;
							}
						}

						if (GetSaveFlag(flags, SaveFlag.DurabilityLevel))
						{
							m_DurabilityLevel = (WeaponDurabilityLevel)reader.ReadInt();

							if (m_DurabilityLevel > WeaponDurabilityLevel.Indestructible)
							{
								m_DurabilityLevel = WeaponDurabilityLevel.Durable;
							}
						}

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

						if (GetSaveFlag(flags, SaveFlag.Hits))
						{
							m_Hits = reader.ReadInt();
						}

						if (GetSaveFlag(flags, SaveFlag.MaxHits))
						{
							m_MaxHits = reader.ReadInt();
						}

						if (GetSaveFlag(flags, SaveFlag.Slayer))
						{
							m_Slayer = (SlayerName)reader.ReadInt();
						}

						if (GetSaveFlag(flags, SaveFlag.Poison))
						{
							m_Poison = Poison.Deserialize(reader);
						}

						if (GetSaveFlag(flags, SaveFlag.PoisonCharges))
						{
							m_PoisonCharges = reader.ReadInt();
						}

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

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

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

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

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

						if (GetSaveFlag(flags, SaveFlag.MinDamage))
						{
							m_MinDamage = reader.ReadInt();
						}
						else
						{
							m_MinDamage = -1;
						}

						if (GetSaveFlag(flags, SaveFlag.MaxDamage))
						{
							m_MaxDamage = reader.ReadInt();
						}
						else
						{
							m_MaxDamage = -1;
						}

						if (GetSaveFlag(flags, SaveFlag.HitSound))
						{
							m_HitSound = reader.ReadInt();
						}
						else
						{
							m_HitSound = -1;
						}

						if (GetSaveFlag(flags, SaveFlag.MissSound))
						{
							m_MissSound = reader.ReadInt();
						}
						else
						{
							m_MissSound = -1;
						}

						if (GetSaveFlag(flags, SaveFlag.Speed))
						{
							if (version < 9)
							{
								m_Speed = reader.ReadInt();
							}
							else
							{
								m_Speed = reader.ReadFloat();
							}
						}
						else
						{
							m_Speed = -1;
						}

						if (GetSaveFlag(flags, SaveFlag.MaxRange))
						{
							m_MaxRange = reader.ReadInt();
						}
						else
						{
							m_MaxRange = -1;
						}

						if (GetSaveFlag(flags, SaveFlag.Skill))
						{
							m_Skill = (SkillName)reader.ReadInt();
						}
						else
						{
							m_Skill = (SkillName)(-1);
						}

						if (GetSaveFlag(flags, SaveFlag.Type))
						{
							m_Type = (WeaponType)reader.ReadInt();
						}
						else
						{
							m_Type = (WeaponType)(-1);
						}

						if (GetSaveFlag(flags, SaveFlag.Animation))
						{
							m_Animation = (WeaponAnimation)reader.ReadInt();
						}
						else
						{
							m_Animation = (WeaponAnimation)(-1);
						}

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

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

						if (GetSaveFlag(flags, SaveFlag.xWeaponAttributes))
						{
							m_AosWeaponAttributes = new AosWeaponAttributes(this, reader);
						}
						else
						{
							m_AosWeaponAttributes = new AosWeaponAttributes(this);
						}

						if (UseSkillMod && m_AccuracyLevel != WeaponAccuracyLevel.Regular && Parent is Mobile)
						{
							m_SkillMod = new DefaultSkillMod(AccuracySkill, true, (int)m_AccuracyLevel * 5);
							((Mobile)Parent).AddSkillMod(m_SkillMod);
						}

						if (version < 7 && m_AosWeaponAttributes.MageWeapon != 0)
						{
							m_AosWeaponAttributes.MageWeapon = 30 - m_AosWeaponAttributes.MageWeapon;
						}

						if (Core.AOS && m_AosWeaponAttributes.MageWeapon != 0 && m_AosWeaponAttributes.MageWeapon != 30 &&
							Parent is Mobile)
						{
							m_MageMod = new DefaultSkillMod(SkillName.Magery, true, -30 + m_AosWeaponAttributes.MageWeapon);
							((Mobile)Parent).AddSkillMod(m_MageMod);
						}

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

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

						if (GetSaveFlag(flags, SaveFlag.Slayer2))
						{
							m_Slayer2 = (SlayerName)reader.ReadInt();
						}

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

						if (GetSaveFlag(flags, SaveFlag.EngravedText))
						{
							m_EngravedText = reader.ReadString();
						}

						#region Stygian Abyss
						if (version > 9 && GetSaveFlag(flags, SaveFlag.xAbsorptionAttributes))
						{
							m_SAAbsorptionAttributes = new SAAbsorptionAttributes(this, reader);
						}
						else
						{
							m_SAAbsorptionAttributes = new SAAbsorptionAttributes(this);
						}

                        if (version >= 13 && GetSaveFlag(flags, SaveFlag.xNegativeAttributes))
                        {
                            m_NegativeAttributes = new NegativeAttributes(this, reader);
                        }
                        else
                        {
                            m_NegativeAttributes = new NegativeAttributes(this);
                        }
						#endregion

						break;
					}
				case 4:
					{
						m_Slayer = (SlayerName)reader.ReadInt();

						goto case 3;
					}
				case 3:
					{
						m_StrReq = reader.ReadInt();
						m_DexReq = reader.ReadInt();
						m_IntReq = reader.ReadInt();

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

						goto case 1;
					}
				case 1:
					{
						m_MaxRange = reader.ReadInt();

						goto case 0;
					}
				case 0:
					{
						if (version == 0)
						{
							m_MaxRange = 1; // default
						}

						if (version < 5)
						{
							m_Resource = CraftResource.Iron;
							m_AosAttributes = new AosAttributes(this);
							m_AosWeaponAttributes = new AosWeaponAttributes(this);
							m_AosElementDamages = new AosElementAttributes(this);
							m_AosSkillBonuses = new AosSkillBonuses(this);
						}

						m_MinDamage = reader.ReadInt();
						m_MaxDamage = reader.ReadInt();

						m_Speed = reader.ReadInt();

						m_HitSound = reader.ReadInt();
						m_MissSound = reader.ReadInt();

						m_Skill = (SkillName)reader.ReadInt();
						m_Type = (WeaponType)reader.ReadInt();
						m_Animation = (WeaponAnimation)reader.ReadInt();
						m_DamageLevel = (WeaponDamageLevel)reader.ReadInt();
						m_AccuracyLevel = (WeaponAccuracyLevel)reader.ReadInt();
						m_DurabilityLevel = (WeaponDurabilityLevel)reader.ReadInt();
						m_Quality = (WeaponQuality)reader.ReadInt();

						m_Crafter = reader.ReadMobile();

						m_Poison = Poison.Deserialize(reader);
						m_PoisonCharges = reader.ReadInt();

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

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

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

						if (m_MinDamage == OldMinDamage)
						{
							m_MinDamage = -1;
						}

						if (m_MaxDamage == OldMaxDamage)
						{
							m_MaxDamage = -1;
						}

						if (m_HitSound == OldHitSound)
						{
							m_HitSound = -1;
						}

						if (m_MissSound == OldMissSound)
						{
							m_MissSound = -1;
						}

						if (m_Speed == OldSpeed)
						{
							m_Speed = -1;
						}

						if (m_MaxRange == OldMaxRange)
						{
							m_MaxRange = -1;
						}

						if (m_Skill == OldSkill)
						{
							m_Skill = (SkillName)(-1);
						}

						if (m_Type == OldType)
						{
							m_Type = (WeaponType)(-1);
						}

						if (m_Animation == OldAnimation)
						{
							m_Animation = (WeaponAnimation)(-1);
						}

						if (UseSkillMod && m_AccuracyLevel != WeaponAccuracyLevel.Regular && Parent is Mobile)
						{
							m_SkillMod = new DefaultSkillMod(AccuracySkill, true, (int)m_AccuracyLevel * 5);
							((Mobile)Parent).AddSkillMod(m_SkillMod);
						}

						break;
					}
			}

			#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 (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();
			}

			if (m_Hits <= 0 && m_MaxHits <= 0)
			{
				m_Hits = m_MaxHits = Utility.RandomMinMax(InitMinHits, InitMaxHits);
			}

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