示例#1
0
        private static void LoadIndex(GenericReader reader)
        {
            var version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                reader.ReadBlockDictionary(r =>
                    {
                        var i = r.ReadInt();
                        var p = r.ReadMap();

                        var m = new InstanceMap(i, p, p.Name + "-INDEX", Season.Desolation, MapRules.None);

                        return(new KeyValuePair <InstanceMapSerial, InstanceMap>(m.Serial, m));
                    }, Maps);

                reader.ReadBlockDictionary(r =>
                    {
                        var s = r.ReadHashCode <DungeonSerial>();
                        var d = r.ReadTypeCreate <Dungeon>(s);

                        return(new KeyValuePair <DungeonSerial, Dungeon>(d.Serial, d));
                    }, Dungeons);
            }
            break;
            }
        }
示例#2
0
文件: Season.cs 项目: LordEnigma/UO
        public virtual void Deserialize(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 1:
            {
                Winners = reader.ReadBlockDictionary(
                    r =>
                    {
                        var k = r.ReadMobile <PlayerMobile>();
                        var v = r.ReadStrongItemList();
                        return(new KeyValuePair <PlayerMobile, List <Item> >(k, v));
                    });

                Losers = reader.ReadBlockDictionary(
                    r =>
                    {
                        var k = r.ReadMobile <PlayerMobile>();
                        var v = r.ReadStrongItemList();
                        return(new KeyValuePair <PlayerMobile, List <Item> >(k, v));
                    });
            }
                goto case 0;

            case 0:
            {
                Number = reader.ReadInt();

                if (version < 1)
                {
                    var winners = reader.ReadStrongMobileList <PlayerMobile>();
                    Winners = new Dictionary <PlayerMobile, List <Item> >(winners.Count);
                    winners.ForEach(m => Winners.Add(m, new List <Item>()));

                    var losers = reader.ReadStrongMobileList <PlayerMobile>();
                    Losers = new Dictionary <PlayerMobile, List <Item> >(losers.Count);
                    losers.ForEach(m => Losers.Add(m, new List <Item>()));
                }

                if (reader.ReadBool())
                {
                    Started = reader.ReadDateTime();
                }

                if (reader.ReadBool())
                {
                    Ended = reader.ReadDateTime();
                }
            }
            break;
            }
        }
示例#3
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();

            Name            = reader.ReadString();
            Summary         = reader.ReadString();
            Token           = reader.ReadString();
            Available       = reader.ReadBool();
            AutoJoin        = reader.ReadBool();
            Access          = reader.ReadFlag <AccessLevel>();
            ProfanityAction = reader.ReadFlag <ProfanityAction>();
            TextColor       = reader.ReadFlag <KnownColor>();
            TextHue         = reader.ReadInt();
            UserLimit       = reader.ReadInt();
            SpamDelay       = reader.ReadTimeSpan();

            Bans = reader.ReadBlockDictionary(
                r =>
            {
                var k = r.ReadMobile <PlayerMobile>();
                var v = r.ReadDateTime();
                return(new KeyValuePair <PlayerMobile, DateTime>(k, v));
            });

            History = new Dictionary <PlayerMobile, WorldChatMessage>();
            Users   = new Dictionary <PlayerMobile, DateTime>();
        }
示例#4
0
        private static bool DeserializeGames(GenericReader reader)
        {
            var version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                reader.ReadBlockDictionary(
                    r =>
                    {
                        var t = r.ReadType();
                        var g = Games.GetValue(t) ?? CreateGame(t);

                        g.Deserialize(r);

                        return(new KeyValuePair <Type, IGame>(t, g));
                    },
                    Games);
            }
            break;
            }

            return(true);
        }
示例#5
0
        public static bool Deserialize(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                if (reader.ReadBool())
                {
                    if (DefaultEntries != null)
                    {
                        DefaultEntries.Deserialize(reader);
                    }
                    else
                    {
                        DefaultEntries = new ToolbarState(reader);
                    }
                }

                reader.ReadBlockDictionary(
                    r =>
                    {
                        PlayerMobile k = r.ReadMobile <PlayerMobile>();
                        ToolbarState v = new ToolbarState(r);
                        return(new KeyValuePair <PlayerMobile, ToolbarState>(k, v));
                    },
                    Profiles);
            }
            break;
            }

            return(true);
        }
示例#6
0
        public void Deserialize(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                Owner   = reader.ReadMobile <PlayerMobile>();
                Deleted = reader.ReadBool();

                if (!Deleted)
                {
                    History = reader.ReadBlockDictionary(
                        () =>
                        {
                            TimeStamp k = reader.ReadDouble();
                            var v       = reader.ReadBlockArray(() => new VoteProfileEntry(reader)).Where(e => (e.VoteSite != null)).ToList();

                            return(new KeyValuePair <TimeStamp, List <VoteProfileEntry> >(k, v));
                        });
                }
            }
            break;
            }
        }
示例#7
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            var version = reader.GetVersion();

            Owner = reader.ReadMobile();

            switch (version)
            {
            case 0:
            {
                Credits = reader.ReadInt();

                _Statistics = reader.ReadBlockDictionary(
                    r =>
                    {
                        var k = r.ReadString();
                        var v = new GameStatistics(r);

                        return(new KeyValuePair <string, GameStatistics>(k, v));
                    },
                    _Statistics);
            }
            break;
            }
        }
示例#8
0
        public void Deserialize(GenericReader reader)
        {
            var version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                Owner   = reader.ReadMobile <PlayerMobile>();
                Deleted = reader.ReadBool();

                if (!Deleted)
                {
                    History = reader.ReadBlockDictionary(
                        r1 =>
                        {
                            TimeStamp k = r1.ReadDouble();
                            var v       = r1.ReadBlockList(r2 => new TrashProfileEntry(r2));
                            return(new KeyValuePair <TimeStamp, List <TrashProfileEntry> >(k, v));
                        });
                }
            }
            break;
            }
        }
示例#9
0
        private static bool DeserializeProfiles(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 1:
            {
                ConquestProfile[] list = reader.ReadBlockArray(() => new ConquestProfile(reader));

                foreach (ConquestProfile p in list)
                {
                    Profiles.AddOrReplace(p.Owner, p);
                }
            }
            break;

            case 0:
            {
                reader.ReadBlockDictionary(
                    () =>
                    {
                        var p          = new ConquestProfile(reader);
                        PlayerMobile s = p.Owner;

                        return(new KeyValuePair <PlayerMobile, ConquestProfile>(s, p));
                    },
                    Profiles);
            }
            break;
            }

            return(true);
        }
示例#10
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            var version = reader.GetVersion();

            switch (version)
            {
            case 1:
                Desc = reader.ReadString();
                goto case 0;

            case 0:
            {
                Type      = reader.ReadType();
                Name      = reader.ReadString();
                CanIgnore = reader.ReadBool();

                States = reader.ReadBlockDictionary(
                    r =>
                    {
                        var state = new NotifySettingsState(this, r);

                        return(new KeyValuePair <IAccount, NotifySettingsState>(state.Owner.Account, state));
                    });
            }
            break;
            }
        }
示例#11
0
        public void Deserialize(GenericReader reader)
        {
            var version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                Owner   = reader.ReadMobile <PlayerMobile>();
                Deleted = reader.ReadBool();

                if (!Deleted)
                {
                    History = reader.ReadBlockDictionary(
                        r1 =>
                        {
                            TimeStamp k = r1.ReadDouble();
                            var v       = r1.ReadBlockList(r2 => new VoteProfileEntry(r2));

                            return(new KeyValuePair <TimeStamp, List <VoteProfileEntry> >(k, v));
                        });
                }
            }
            break;
            }

            if (History != null)
            {
                foreach (var h in History.Values)
                {
                    h.Prune(true, e => e.VoteSite);
                }
            }
        }
示例#12
0
        private static bool Deserialize(GenericReader reader)
        {
            reader.ReadBlockDictionary(
                () =>
            {
                string name = reader.ReadString();
                var players = reader.ReadStrongMobileList <PlayerMobile>();
                return(new KeyValuePair <string, List <PlayerMobile> >(name, players));
            });

            return(true);
        }
示例#13
0
        private static bool Deserialize(GenericReader reader)
        {
            var version = reader.GetVersion();

            switch (version)
            {
            case 1:
            {
                reader.ReadBlockDictionary(
                    r =>
                    {
                        var k = r.ReadMobile <PlayerMobile>();
                        var v = new CastBarState(r);

                        return(new KeyValuePair <PlayerMobile, CastBarState>(k, v));
                    },
                    States);
            }
            break;

            case 0:
            {
                reader.ReadBlockDictionary(
                    r =>
                    {
                        var k = r.ReadMobile <PlayerMobile>();
                        var v = new CastBarState(r.ReadBool(), new Point(r.ReadInt(), r.ReadInt()));

                        return(new KeyValuePair <PlayerMobile, CastBarState>(k, v));
                    },
                    States);
            }
            break;
            }

            return(true);
        }
示例#14
0
        public void Deserialize(GenericReader reader)
        {
            var version = reader.GetVersion();

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

                Name   = reader.ReadString();
                Season = reader.ReadInt();
                Rules  = reader.ReadFlag <MapRules>();

                InstanceRegions = reader.ReadBlockList(r =>
                    {
                        var t    = r.ReadType();
                        var name = r.ReadString();
                        var area = r.ReadArray(r1 => r1.ReadRect3D());

                        if (Regions.ContainsKey(name))
                        {
                            var reg = Regions[name];

                            if (!(reg is InstanceRegion ir) || !reg.TypeEquals(t, false) || !reg.Area.ContentsEqual(area, true))
                            {
                                reg.Unregister();

                                Regions.Remove(name);
                            }
                            else
                            {
                                ir.Deserialize(r);

                                return(ir);
                            }
                        }

                        return(t.CreateInstanceSafe <InstanceRegion>(name, this, area, r));
                    }, InstanceRegions);

                BounceInfo = reader.ReadBlockDictionary(r =>
                    {
                        var k = r.ReadMobile <PlayerMobile>();
                        var v = r.ReadLocation();

                        return(new KeyValuePair <PlayerMobile, MapPoint>(k, v));
                    }, BounceInfo);
            }
示例#15
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            #region Critical Non-Versioned Values
            UID = new TemplateSerial(reader);
            #endregion

            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                Name   = reader.ReadString();
                Notes  = reader.ReadString();
                Skills = reader.ReadBlockDictionary(
                    () =>
                    {
                        var key    = reader.ReadFlag <SkillName>();
                        double val = reader.ReadDouble();
                        return(new KeyValuePair <SkillName, double>(key, val));
                    },
                    Skills);
                Stats = reader.ReadBlockDictionary(
                    () =>
                    {
                        var key = reader.ReadFlag <StatType>();
                        int val = reader.ReadInt();
                        return(new KeyValuePair <StatType, int>(key, val));
                    },
                    Stats);
            }
            break;
            }
        }
示例#16
0
        private static bool DeserializeTransactions(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                r =>
            {
                var t = new DonationTransaction(r);

                return(new KeyValuePair <string, DonationTransaction>(t.ID, t));
            },
                Transactions);

            return(true);
        }
示例#17
0
        private static bool Deserialize(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                r =>
            {
                var k = r.ReadAccount();
                var v = new TimeBoostProfile(r);

                return(new KeyValuePair <IAccount, TimeBoostProfile>(k, v));
            },
                Profiles);

            return(true);
        }
示例#18
0
        public virtual void Deserialize(GenericReader reader)
        {
            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
                Entries = reader.ReadBlockDictionary(
                    r =>
                {
                    PvPProfileHistoryEntry e = r.ReadTypeCreate <PvPProfileHistoryEntry>(r);
                    return(new KeyValuePair <int, PvPProfileHistoryEntry>(e.Season, e));
                });
                break;
            }
        }
示例#19
0
        private static bool DeserializePlayerProfiles(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
            {
                var e = reader.ReadMobile <PlayerMobile>();

                var p = new PlayerZombieProfile(reader);

                return(new KeyValuePair <PlayerMobile, PlayerZombieProfile>(e, p));
            },
                PlayerProfiles);

            return(true);
        }
示例#20
0
        private static bool DeserializePortals(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
            {
                var c = reader.ReadTypeCreate <Portal>(reader);

                PortalSerial s = c != null ? c.UID : null;

                return(new KeyValuePair <PortalSerial, Portal>(s, c));
            },
                PortalList);

            return(true);
        }
        private static bool DeserializeDonationProfiles(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
                {
                    var e = reader.ReadString();

                    var p = new DonationProfile(reader);

                    return new KeyValuePair<string, DonationProfile>(e, p);
                },
                DonationProfiles);

            return true;
        }
示例#22
0
        private static bool DeserializeInvasions(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
            {
                var c = reader.ReadTypeCreate <Invasion>(reader);

                InvasionSerial s = c != null ? c.UID : null;

                return(new KeyValuePair <InvasionSerial, Invasion>(s, c));
            },
                Invasions);

            return(true);
        }
示例#23
0
        private static bool DeserializeDonationProfiles(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
            {
                var e = reader.ReadString();

                var p = new DonationProfile(reader);

                return(new KeyValuePair <string, DonationProfile>(e, p));
            },
                DonationProfiles);

            return(true);
        }
示例#24
0
        private static bool DeserializeZombieEvent(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
            {
                var c = reader.ReadTypeCreate <ZombieInstance>(reader);

                ZombieInstanceSerial s = c != null ? c.Uid : null;

                return(new KeyValuePair <ZombieInstanceSerial, ZombieInstance>(s, c));
            },
                ZombieEvents);

            return(true);
        }
示例#25
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            var version = reader.GetVersion();

            UID = version > 0
                                ? new PvPSerial(reader)
                                : new PvPSerial(TimeStamp.UtcNow + "~" + Utility.RandomMinMax(0, Int32.MaxValue));

            switch (version)
            {
            case 1:
            case 0:
            {
                Season = reader.ReadInt();

                _DamageTaken   = reader.ReadLong();
                _DamageDone    = reader.ReadLong();
                _HealingTaken  = reader.ReadLong();
                _HealingDone   = reader.ReadLong();
                _Kills         = reader.ReadLong();
                _Deaths        = reader.ReadLong();
                _Resurrections = reader.ReadLong();
                _PointsGained  = reader.ReadLong();
                _PointsLost    = reader.ReadLong();
                _Wins          = reader.ReadLong();
                _Losses        = reader.ReadLong();
                _Battles       = reader.ReadLong();

                _MiscStats = reader.ReadBlockDictionary(
                    r =>
                    {
                        var k = r.ReadString();
                        var v = r.ReadLong();

                        return(new KeyValuePair <string, long>(k, v));
                    },
                    _MiscStats);
            }
            break;
            }
        }
示例#26
0
        private static bool LoadSets(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                reader.ReadBlockDictionary(
                    r =>
                    {
                        EquipmentSet v = r.ReadTypeCreate <EquipmentSet>(r);
                        return(new KeyValuePair <Type, EquipmentSet>(v.GetType(), v));
                    },
                    Sets);
            }
            break;
            }

            return(true);
        }
示例#27
0
        private static bool DeserializeLockouts(GenericReader reader)
        {
            var version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                reader.ReadBlockDictionary(r =>
                    {
                        var k = r.ReadMobile <PlayerMobile>();
                        var v = new LockoutState(r);

                        return(new KeyValuePair <PlayerMobile, LockoutState>(k, v));
                    }, Lockouts);
            }
            break;
            }

            return(true);
        }
示例#28
0
        private static bool DeserializeVoteSites(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                reader.ReadBlockDictionary(
                    r =>
                    {
                        var v = r.ReadTypeCreate <IVoteSite>(r);
                        return(new KeyValuePair <int, IVoteSite>(v.UID, v));
                    },
                    VoteSites);
            }
            break;
            }

            return(true);
        }
示例#29
0
        private static bool Deserialize(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
            {
                var k = reader.ReadType();
                var v = EnsureSettings(k);

                if (v != null)
                {
                    v.Deserialize(reader);
                }

                return(new KeyValuePair <Type, NotifySettings>(k, v));
            },
                Settings);

            return(true);
        }
示例#30
0
        private static bool DeserializeTemplates(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                reader.ReadBlockDictionary(
                    () =>
                    {
                        var key = reader.ReadMobile <PlayerMobile>();
                        var val = new TemplateProfile(reader);
                        return(new KeyValuePair <PlayerMobile, TemplateProfile>(key, val));
                    },
                    Templates);
            }
            break;
            }

            return(true);
        }
示例#31
0
        private static bool DeserializeProfiles(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 0:
            {
                reader.ReadBlockDictionary(
                    () =>
                    {
                        PlayerMobile key = reader.ReadMobile <PlayerMobile>();
                        PvPProfile val   = reader.ReadTypeCreate <PvPProfile>(reader);
                        return(new KeyValuePair <PlayerMobile, PvPProfile>(key, val));
                    },
                    Profiles);
            }
            break;
            }

            return(true);
        }
        private static bool DeserializeHueRegistry(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
                case 0:
                {
                    reader.ReadBlockDictionary(
                        () =>
                        {
                            var h = new TitleHue(reader);
                            TitleObjectSerial s = h.UID;

                            return new KeyValuePair<TitleObjectSerial, TitleHue>(s, h);
                        },
                        HueRegistry);
                }
                    break;
            }

            return true;
        }
        private static bool DeserializeProfiles(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
                case 0:
                {
                    reader.ReadBlockDictionary(
                        () =>
                        {
                            var p = new TitleProfile(reader);
                            PlayerMobile s = p.Owner;

                            return new KeyValuePair<PlayerMobile, TitleProfile>(s, p);
                        },
                        Profiles);
                }
                    break;
            }

            return true;
        }
		private static bool DeserializeTemplates(GenericReader reader)
		{
			int version = reader.GetVersion();

			switch (version)
			{
				case 0:
					{
						reader.ReadBlockDictionary(
							() =>
							{
								var key = reader.ReadMobile<PlayerMobile>();
								var val = new TemplateProfile(reader);
								return new KeyValuePair<PlayerMobile, TemplateProfile>(key, val);
							},
							Templates);
					}
					break;
			}

			return true;
		}
        private static bool DeserializeInvasions(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
                {
                    var c = reader.ReadTypeCreate<Invasion>(reader);

                    InvasionSerial s = c != null ? c.UID : null;

                    return new KeyValuePair<InvasionSerial, Invasion>(s, c);
                },
                Invasions);

            return true;
        }
示例#36
0
		private static void DeserializeCams(GenericReader reader)
		{
			int version = reader.GetVersion();

			switch (version)
			{
				case 3: // Skip to case 1
					goto case 1;
                case 2:
			        {
                        reader.ReadBlockDictionary(
                            () =>
                            {
                                var cam = reader.ReadMobile<PlayerMobile>();
                                var viewed = reader.ReadMobile<PlayerMobile>();

								return new KeyValuePair<PlayerMobile, PlayerMobile>(cam, viewed);
                            },
                            CurrentlyViewing);			        
			        }
			        goto case 1;
				case 1:
					{
						reader.ReadBlockDictionary(
							() =>
							{
								var player = reader.ReadMobile<PlayerMobile>();
								int count = reader.ReadInt();

								return new KeyValuePair<PlayerMobile, int>(player, count);
							},
							PlayerMurderers);

						reader.ReadBlockDictionary(
							() =>
							{
								BaseCreature mob = reader.ReadMobile<BaseCreature>();
								int count = reader.ReadInt();

								return new KeyValuePair<BaseCreature, int>(mob, count);
							},
							MonsterMurderers);

						CurrentDeathCount = reader.ReadULong();
						CurrentPlayerMurders = reader.ReadULong();
						CurrentMonsterMurders = reader.ReadULong();
					}
					goto case 0;
				case 0:
					{
						if (version < 1)
						{
							CurrentDeathCount = Convert.ToUInt64(reader.ReadInt());
							CurrentPlayerMurders = Convert.ToUInt64(reader.ReadInt());
							CurrentMonsterMurders = Convert.ToUInt64(reader.ReadInt());
						}

						TopPlayerMurderer = reader.ReadMobile<PlayerMobile>();
						TopMonsterMurderer = reader.ReadMobile<BaseCreature>();

						if (version < 1)
						{
							reader.ReadBlockDictionary(
								() =>
								{
									var player = reader.ReadMobile<PlayerMobile>();
									DateTime date = reader.ReadDateTime();

									return new KeyValuePair<PlayerMobile, DateTime>(player, date);
								},
								DeathCams);

							reader.ReadBlockDictionary(
								() =>
								{
									var player = reader.ReadMobile<PlayerMobile>();
									DateTime date = reader.ReadDateTime();

									return new KeyValuePair<PlayerMobile, DateTime>(player, date);
								},
								DeathCamsEvents);
						}
					}
					break;
			}
		}
示例#37
0
        private static bool DeserializePortals(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
                {
                    var c = reader.ReadTypeCreate<Portal>(reader);

                    PortalSerial s = c != null ? c.UID : null;

                    return new KeyValuePair<PortalSerial, Portal>(s, c);
                },
                PortalList);

            return true;
        }
示例#38
0
        private static bool DeserializeConquestRegistry(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
                case 0:
                {
                    reader.ReadBlockDictionary(
                        () =>
                        {
                            var c = reader.ReadTypeCreate<Conquest>(reader);

                            ConquestSerial s = c != null ? c.UID : null;

                            return new KeyValuePair<ConquestSerial, Conquest>(s, c);
                        },
                        ConquestRegistry);
                }
                    break;
            }

            return true;
        }
示例#39
0
        private static bool DeserializePlayerProfiles(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
                {
                    var e = reader.ReadMobile<PlayerMobile>();

                    var p = new PlayerEventScoreProfile(reader);

                    if (p.DisplayCharacter == null)
                    {
                        p.DisplayCharacter = e;
                    }

                    return new KeyValuePair<PlayerMobile, PlayerEventScoreProfile>(e, p);
                },
                PlayerProfiles);

            return true;
        }
示例#40
0
        private static bool DeserializeZombieEvent(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
                {
                    var c = reader.ReadTypeCreate<ZombieInstance>(reader);

                    ZombieInstanceSerial s = c != null ? c.Uid : null;

                    return new KeyValuePair<ZombieInstanceSerial, ZombieInstance>(s, c);
                },
                ZombieEvents);

            return true;
        }
示例#41
0
        private static bool DeserializePlayerProfiles(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadBlockDictionary(
                () =>
                {
                    var e = reader.ReadMobile<PlayerMobile>();

                    var p = new PlayerZombieProfile(reader);

                    return new KeyValuePair<PlayerMobile, PlayerZombieProfile>(e, p);
                },
                PlayerProfiles);

            return true;
        }
示例#42
0
        private static bool DeserializeProfiles(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
                case 1:
                {
                    ConquestProfile[] list = reader.ReadBlockArray(() => new ConquestProfile(reader));

                    foreach (ConquestProfile p in list)
                    {
                        Profiles.AddOrReplace(p.Owner, p);
                    }
                }
                    break;
                case 0:
                {
                    reader.ReadBlockDictionary(
                        () =>
                        {
                            var p = new ConquestProfile(reader);
                            PlayerMobile s = p.Owner;

                            return new KeyValuePair<PlayerMobile, ConquestProfile>(s, p);
                        },
                        Profiles);
                }
                    break;
            }

            return true;
        }