Esempio n. 1
0
        private static void DeserializeFilters(GenericReader reader)
        {
            reader.GetVersion();

            reader.ReadDictionary(
                r =>
            {
                var m = r.ReadMobile <PlayerMobile>();
                var f = r.ReadBlockList(
                    r2 =>
                {
                    var t = r2.ReadType();
                    var o = t.CreateInstanceSafe <IFilter>(r2);

                    if (o != null)
                    {
                        return(o);
                    }

                    o = t.CreateInstanceSafe <IFilter>();

                    if (o != null)
                    {
                        o.Deserialize(r2);
                    }

                    return(o);
                });

                return(new KeyValuePair <PlayerMobile, List <IFilter> >(m, f));
            },
                _Filters);
        }
Esempio n. 2
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.GetVersion();

			switch (version)
			{
				case 3:
					Level = reader.ReadFlag<SecureLevel>();
					goto case 2;
				case 2:
					RemoveLocked = reader.ReadBool();
					goto case 1;
				case 1:
					{
						EditLocked = reader.ReadBool();
						AddLocked = reader.ReadBool();
						CloneEntryChargeCost = reader.ReadInt();

						ChargeTypes = reader.ReadDictionary(
							() =>
							{
								Type k = reader.ReadType();
								int v = reader.ReadInt();
								return new KeyValuePair<Type, int>(k, v);
							});
					}
					goto case 0;
				case 0:
					{
						Charges = reader.ReadInt();
						RecallChargeCost = reader.ReadInt();
						GateChargeCost = reader.ReadInt();
						_Descripton = reader.ReadString();
						Categories = new RuneCodexCategoryGrid(reader);
					}
					break;
			}

			if (version > 0)
			{
				return;
			}

			Charges = 1000;
			CloneEntryChargeCost = 5;
			RecallChargeCost = 1;
			GateChargeCost = 2;
			ChargeTypes = new Dictionary<Type, int>
			{
				{typeof(Gold), 100}
			};
		}
Esempio n. 3
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.GetVersion();

			switch (version)
			{
				case 0:
					{
						Flag = reader.ReadItem<CTFFlag>();

						if (Flag != null)
						{
							Flag.Team = this;
						}

						FlagPodium = reader.ReadItem<CTFPodium>();

						if (FlagPodium != null)
						{
							FlagPodium.Team = this;
						}

						Caps = reader.ReadInt();

						FlagRespawnDelay = reader.ReadTimeSpan();
						SolidHueOverride = reader.ReadBool();

						reader.ReadDictionary(
							() => new KeyValuePair<PlayerMobile, int>(reader.ReadMobile<PlayerMobile>(), reader.ReadInt()), Attackers);

						reader.ReadDictionary(
							() => new KeyValuePair<PlayerMobile, int>(reader.ReadMobile<PlayerMobile>(), reader.ReadInt()), Defenders);
					}
					break;
			}
		}