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(); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Player = (PlayerMobile)reader.ReadMobile(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_BondOwner = reader.ReadMobile(); goto case 0; } case 0: { m_link = (BaseCreature)reader.ReadMobile(); m_toDeletePet = reader.ReadBool(); break; } } if ( m_link != null ) m_link.IsStabled = true; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_To = reader.ReadMobile(); m_From = reader.ReadMobile(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_StabledPet = reader.ReadMobile(); }
public void Deserialize( GenericReader reader ) { Points = reader.ReadInt(); Wins = reader.ReadInt(); Losses = reader.ReadInt(); Part = reader.ReadMobile(); }
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(); }
public BOBSmallEntry( GenericReader reader ) { int version = reader.ReadEncodedInt(); switch ( version ) { case 1: { m_Owner = reader.ReadMobile(); goto case 0; } case 0: { string type = reader.ReadString(); if ( type != null ) m_ItemType = ScriptCompiler.FindTypeByFullName( type ); m_RequireExceptional = reader.ReadBool(); m_DeedType = (BODType)reader.ReadEncodedInt(); m_Material = (BulkMaterialType)reader.ReadEncodedInt(); m_AmountCur = reader.ReadEncodedInt(); m_AmountMax = reader.ReadEncodedInt(); m_Number = reader.ReadEncodedInt(); m_Graphic = reader.ReadEncodedInt(); m_Price = reader.ReadEncodedInt(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_Placer = reader.ReadMobile(); goto case 0; } case 0: { int count = reader.ReadInt(); m_Components = new ArrayList( count ); for ( int i = 0; i < count; ++i ) { Item item = reader.ReadItem(); if ( item != null ) m_Components.Add( item ); } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); m_Owner = reader.ReadMobile(); }
public CraftContext(GenericReader reader) { int version = reader.ReadInt(); m_Items = new List<CraftItem>(); Owner = reader.ReadMobile(); int sysIndex = reader.ReadInt(); m_LastResourceIndex = reader.ReadInt(); m_LastResourceIndex2 = reader.ReadInt(); m_LastGroupIndex = reader.ReadInt(); m_DoNotColor = reader.ReadBool(); m_MarkOption = (CraftMarkOption)reader.ReadInt(); m_QuestOption = (CraftQuestOption)reader.ReadInt(); m_MakeTotal = reader.ReadInt(); System = GetCraftSystem(sysIndex); if (System != null && Owner != null) { System.AddContext(Owner, this); Contexts.Add(this); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { m_Owner = reader.ReadMobile(); m_Open = reader.ReadBool(); if (m_Owner == null) { Delete(); } break; } } if (ItemID == 0xE41) { ItemID = 0xE7C; } }
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; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Owner = reader.ReadMobile(); m_Direction = Direction; m_WayPoints = new ArrayList(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Owner = reader.ReadMobile() as BaseCreature; Delete(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Parrot = reader.ReadMobile() as PetParrot; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_MobileLock = reader.ReadMobile(); m_BeltName = reader.ReadString(); }
public EnchantContext( GenericReader reader, BaseWeapon weapon ) { m_Owner = reader.ReadMobile(); m_Attribute = (WeaponAttribute) reader.ReadInt(); m_SpellChanneling = reader.ReadBool(); m_Timer = Timer.DelayCall( reader.ReadTimeSpan(), new TimerStateCallback<BaseWeapon>( EnchantSpell.RemoveEnchantContext ), weapon ); weapon.EnchantContext = this; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); /*int version = */ reader.ReadInt(); m_Representative = reader.ReadMobile() as BaseLibraryRepresentative; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); LootType = LootType.Blessed; int version = reader.ReadInt(); m_Owner = reader.ReadMobile(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_Daemon = reader.ReadMobile() as BoneDemon; this.CheckDaemon(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); var version = reader.ReadInt(); Created = reader.ReadDateTime(); Bounty = reader.ReadInt(); Player = reader.ReadMobile<PlayerMobile>(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); if (version == 1) reader.ReadMobile(); else if (version == 2) m_Owner = reader.ReadString(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Placer = reader.ReadMobile(); m_Value = reader.ReadInt(); ID1 = reader.ReadInt(); ID2 = reader.ReadInt(); ID3 = reader.ReadInt(); ID4 = reader.ReadInt(); }
private static void Deserialize(GenericReader reader) { int version = reader.ReadInt(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { PlayerMobile m = reader.ReadMobile() as PlayerMobile; if(m != null) NewPlayers.Add((PlayerMobile)m); } }
public TownState( GenericReader reader ) { int version = reader.ReadEncodedInt(); switch ( version ) { case 3: { m_LastIncome = reader.ReadDateTime(); goto case 2; } case 2: { m_Tax = reader.ReadEncodedInt(); m_LastTaxChange = reader.ReadDateTime(); goto case 1; } case 1: { m_Silver = reader.ReadEncodedInt(); goto case 0; } case 0: { m_Town = Town.ReadReference( reader ); m_Owner = Faction.ReadReference( reader ); m_Sheriff = reader.ReadMobile(); m_Finance = reader.ReadMobile(); m_Town.State = this; break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); int size = reader.ReadInt(); DonationList = new Dictionary<PlayerMobile, int>(); for (int i = 0; i < size; i++) { PlayerMobile m = reader.ReadMobile() as PlayerMobile; int value = reader.ReadInt(); DonationList.Add(m, value); } UpdateBook(); m_James = reader.ReadMobile(); if (version == 0 && Weight == 25) Weight = -1; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); reader.ReadEncodedInt(); m_Statue = reader.ReadMobile<CharacterStatue>(); if (m_Statue == null || m_Statue.SculptedBy == null || Map == Map.Internal) { Timer.DelayCall(TimeSpan.Zero, Delete); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); this.m_Statue = reader.ReadMobile() as CharacterStatue; if (this.m_Statue == null || this.m_Statue.SculptedBy == null || this.Map == Map.Internal) { Timer.DelayCall(TimeSpan.Zero, new TimerCallback(Delete)); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Title = reader.ReadString(); m_Rank = (TrophyRank) reader.ReadInt(); m_Owner = reader.ReadMobile(); m_Date = reader.ReadDateTime(); if ( version == 0 ) LootType = LootType.Blessed; }
public override void ChildDeserialize(GenericReader reader) { int version = reader.ReadEncodedInt(); m_Ghost = reader.ReadMobile() as GhostPast; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 7: case 6: case 5: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if (GetSaveFlag(flags, SaveFlag.Identified)) { m_Identified = version >= 7 || reader.ReadBool(); } if (GetSaveFlag(flags, SaveFlag.MaxHitPoints)) { m_MaxHitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.HitPoints)) { m_HitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.Crafter)) { m_Crafter = reader.ReadMobile(); } if (GetSaveFlag(flags, SaveFlag.Quality)) { m_Quality = (ArmorQuality)reader.ReadEncodedInt(); } else { m_Quality = ArmorQuality.Regular; } if (version == 5 && m_Quality == ArmorQuality.Low) { m_Quality = ArmorQuality.Regular; } if (GetSaveFlag(flags, SaveFlag.Durability)) { m_Durability = (ArmorDurabilityLevel)reader.ReadEncodedInt(); if (m_Durability > ArmorDurabilityLevel.Indestructible) { m_Durability = ArmorDurabilityLevel.Durable; } } if (GetSaveFlag(flags, SaveFlag.Protection)) { m_Protection = (ArmorProtectionLevel)reader.ReadEncodedInt(); if (m_Protection > ArmorProtectionLevel.Invulnerability) { m_Protection = ArmorProtectionLevel.Defense; } } if (GetSaveFlag(flags, SaveFlag.Resource)) { m_Resource = (CraftResource)reader.ReadEncodedInt(); } else { m_Resource = DefaultResource; } if (m_Resource == CraftResource.None) { m_Resource = DefaultResource; } if (GetSaveFlag(flags, SaveFlag.BaseArmor)) { m_ArmorBase = reader.ReadEncodedInt(); } else { m_ArmorBase = -1; } if (GetSaveFlag(flags, SaveFlag.StrBonus)) { m_StrBonus = reader.ReadEncodedInt(); } else { m_StrBonus = -1; } if (GetSaveFlag(flags, SaveFlag.DexBonus)) { m_DexBonus = reader.ReadEncodedInt(); } else { m_DexBonus = -1; } if (GetSaveFlag(flags, SaveFlag.IntBonus)) { m_IntBonus = reader.ReadEncodedInt(); } else { m_IntBonus = -1; } if (GetSaveFlag(flags, SaveFlag.StrReq)) { m_StrReq = reader.ReadEncodedInt(); } else { m_StrReq = -1; } if (GetSaveFlag(flags, SaveFlag.DexReq)) { m_DexReq = reader.ReadEncodedInt(); } else { m_DexReq = -1; } if (GetSaveFlag(flags, SaveFlag.IntReq)) { m_IntReq = reader.ReadEncodedInt(); } else { m_IntReq = -1; } if (GetSaveFlag(flags, SaveFlag.MedAllowance)) { m_Meditate = (AMA)reader.ReadEncodedInt(); } else { m_Meditate = (AMA)(-1); } if (GetSaveFlag(flags, SaveFlag.PlayerConstructed)) { m_PlayerConstructed = true; } break; } case 4: case 3: case 2: case 1: { m_Identified = reader.ReadBool(); goto case 0; } case 0: { m_ArmorBase = reader.ReadInt(); m_MaxHitPoints = reader.ReadInt(); m_HitPoints = reader.ReadInt(); m_Crafter = reader.ReadMobile(); m_Quality = (ArmorQuality)reader.ReadInt(); m_Durability = (ArmorDurabilityLevel)reader.ReadInt(); m_Protection = (ArmorProtectionLevel)reader.ReadInt(); AMT mat = (AMT)reader.ReadInt(); if (m_ArmorBase == RevertArmorBase) { m_ArmorBase = -1; } if (version >= 2) { m_Resource = (CraftResource)reader.ReadInt(); } else { OreInfo info; switch (reader.ReadInt()) { default: case 0: info = OreInfo.Iron; break; case 1: info = OreInfo.DullCopper; break; case 2: info = OreInfo.ShadowIron; break; case 3: info = OreInfo.Copper; break; case 4: info = OreInfo.Bronze; break; case 5: info = OreInfo.Gold; break; case 6: info = OreInfo.Agapite; break; case 7: info = OreInfo.Verite; break; case 8: info = OreInfo.Valorite; break; } m_Resource = CraftResources.GetFromOreInfo(info, mat); } m_StrBonus = reader.ReadInt(); m_DexBonus = reader.ReadInt(); m_IntBonus = reader.ReadInt(); m_StrReq = reader.ReadInt(); m_DexReq = reader.ReadInt(); m_IntReq = reader.ReadInt(); if (m_StrBonus == OldStrBonus) { m_StrBonus = -1; } if (m_DexBonus == OldDexBonus) { m_DexBonus = -1; } if (m_IntBonus == OldIntBonus) { m_IntBonus = -1; } if (m_StrReq == OldStrReq) { m_StrReq = -1; } if (m_DexReq == OldDexReq) { m_DexReq = -1; } if (m_IntReq == OldIntReq) { m_IntReq = -1; } m_Meditate = (AMA)reader.ReadInt(); if (m_Meditate == OldMedAllowance) { m_Meditate = (AMA)(-1); } if (m_Resource == CraftResource.None) { if (mat == ArmorMaterialType.Studded || mat == ArmorMaterialType.Leather) { m_Resource = CraftResource.RegularLeather; } else { m_Resource = CraftResource.Iron; } } if (m_MaxHitPoints == 0 && m_HitPoints == 0) { m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits); } break; } } int strBonus = ComputeStatBonus(StatType.Str); int dexBonus = ComputeStatBonus(StatType.Dex); int intBonus = ComputeStatBonus(StatType.Int); if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0)) { Mobile m = (Mobile)Parent; string modName = Serial.ToString(); if (strBonus != 0) { m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero)); } if (dexBonus != 0) { m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero)); } if (intBonus != 0) { m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero)); } } if (Parent is Mobile) { ((Mobile)Parent).CheckStatTimers(); } if (version < 7) { m_PlayerConstructed = true; // we don't know, so, assume it's crafted } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { m_DeadLine = reader.ReadDateTime(); m_Boss = reader.ReadMobile(); m_Activated = reader.ReadBool(); m_Active = reader.ReadBool(); m_WarpPoint = reader.ReadPoint3D(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Item map = reader.ReadItem(); if (map != null && !map.Deleted && map is CorgulIslandMap) { m_IslandMaps.Add(map); ((CorgulIslandMap)map).Altar = this; } } break; } case 0: { m_DeadLine = reader.ReadDateTime(); m_Boss = reader.ReadMobile(); m_Activated = reader.ReadBool(); m_Active = reader.ReadBool(); m_WarpPoint = reader.ReadPoint3D(); //m_IslandMap = reader.ReadItem() as CorgulIslandMap; Item item = reader.ReadItem(); break; } } InitializeBossRegion(); if (m_Active && m_Activated && m_WarpPoint != Point3D.Zero) { if (m_DeadLine < DateTime.UtcNow || m_Boss == null || m_Boss.Deleted) { Reset(); } else { Rectangle2D bounds = GetRectangle(m_WarpPoint); m_WarpRegion = new CorgulWarpRegion(this, bounds); m_WarpRegion.Register(); m_DeadLineTimer = Timer.DelayCall(TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10), OnTick); } } }
public void Deserialize(GenericReader reader) { var version = reader.GetVersion(); switch (version) { case 3: Deleted = reader.ReadBool(); goto case 2; case 2: case 1: Bonus = reader.ReadLong(); goto case 0; case 0: { ID = reader.ReadString(); _State = reader.ReadFlag <TransactionState>(); Account = reader.ReadAccount(); Email = reader.ReadString(); Total = reader.ReadDouble(); Credit = reader.ReadLong(); Time = version > 0 ? reader.ReadTimeStamp() : reader.ReadDouble(); Version = reader.ReadInt(); if (version < 1) { reader.ReadInt(); // InternalVersion } Notes = reader.ReadString(); Extra = reader.ReadString(); if (version > 1) { DeliveredTo = reader.ReadString(); DeliveryTime = reader.ReadTimeStamp(); } else if (version > 0) { var m = reader.ReadMobile(); DeliveredTo = m != null ? m.RawName : null; DeliveryTime = reader.ReadTimeStamp(); } else { reader.ReadMobile(); // DeliverFrom var m = reader.ReadMobile(); DeliveredTo = m != null ? m.RawName : null; DeliveryTime = reader.ReadDouble(); } } break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: { m_Inmates = new Hashtable(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Mobile m = reader.ReadMobile(); DateTime dt = reader.ReadDateTime(); m_Inmates.Add(m, dt); } break; } case 2: { m_Inmates = new Hashtable(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Mobile m = reader.ReadMobile(); TimeSpan ts = reader.ReadTimeSpan(); DateTime dt = DateTime.Now + ts; m_Inmates.Add(m, dt); } break; } case 1: { m_Inmates = new Hashtable(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Mobile m = reader.ReadMobile(); DateTime dt = reader.ReadDateTime(); m_Inmates.Add(m, dt); } break; } case 0: { m_Inmates = new Hashtable(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Mobile m = reader.ReadMobile(); DateTime dt = reader.ReadDateTime() + TimeSpan.FromHours(24); m_Inmates.Add(m, dt); } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 12: { if (reader.ReadBool()) { m_RestoreEquip = reader.ReadStrongItemList(); } goto case 11; } case 11: { // Version 11, we move all bools to a CorpseFlag m_Flags = (CorpseFlag)reader.ReadInt(); m_TimeOfDeath = reader.ReadDeltaTime(); int count = reader.ReadInt(); for (int i = 0; i < count; ++i) { Item item = reader.ReadItem(); if (reader.ReadBool()) { SetRestoreInfo(item, reader.ReadPoint3D()); } else if (item != null) { SetRestoreInfo(item, item.Location); } } if (reader.ReadBool()) { BeginDecay(reader.ReadDeltaTime() - DateTime.UtcNow); } m_Looters = reader.ReadStrongMobileList(); m_Killer = reader.ReadMobile(); m_Aggressors = reader.ReadStrongMobileList(); m_Owner = reader.ReadMobile(); m_CorpseName = reader.ReadString(); m_AccessLevel = (AccessLevel)reader.ReadInt(); reader.ReadInt(); // guild reserve m_Kills = reader.ReadInt(); m_EquipItems = reader.ReadStrongItemList(); break; } case 10: { m_TimeOfDeath = reader.ReadDeltaTime(); goto case 9; } case 9: { int count = reader.ReadInt(); for (int i = 0; i < count; ++i) { Item item = reader.ReadItem(); if (reader.ReadBool()) { SetRestoreInfo(item, reader.ReadPoint3D()); } else if (item != null) { SetRestoreInfo(item, item.Location); } } goto case 8; } case 8: { SetFlag(CorpseFlag.VisitedByTaxidermist, reader.ReadBool()); goto case 7; } case 7: { if (reader.ReadBool()) { BeginDecay(reader.ReadDeltaTime() - DateTime.UtcNow); } goto case 6; } case 6: { m_Looters = reader.ReadStrongMobileList(); m_Killer = reader.ReadMobile(); goto case 5; } case 5: { SetFlag(CorpseFlag.Carved, reader.ReadBool()); goto case 4; } case 4: { m_Aggressors = reader.ReadStrongMobileList(); goto case 3; } case 3: { m_Owner = reader.ReadMobile(); goto case 2; } case 2: { SetFlag(CorpseFlag.NoBones, reader.ReadBool()); goto case 1; } case 1: { m_CorpseName = reader.ReadString(); goto case 0; } case 0: { if (version < 10) { m_TimeOfDeath = DateTime.UtcNow; } if (version < 7) { BeginDecay(m_DefaultDecayTime); } if (version < 6) { m_Looters = new List <Mobile>(); } if (version < 4) { m_Aggressors = new List <Mobile>(); } m_AccessLevel = (AccessLevel)reader.ReadInt(); reader.ReadInt(); // guild reserve m_Kills = reader.ReadInt(); SetFlag(CorpseFlag.Criminal, reader.ReadBool()); m_EquipItems = reader.ReadStrongItemList(); break; } } if (m_Owner is PlayerMobile) { if (PlayerCorpses == null) { PlayerCorpses = new Dictionary <Corpse, int>(); } PlayerCorpses[this] = 0; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 5: { Owner = reader.ReadMobile(); goto case 4; } case 4: case 3: if (version < 5) { reader.ReadBool(); } goto case 2; case 2: case 1: if (reader.ReadBool()) { m_Helpers = reader.ReadStrongMobileList <BaseCreature>(); } goto case 0; case 0: Peerless = reader.ReadMobile() as BasePeerless; BossLocation = reader.ReadPoint3D(); TeleportDest = reader.ReadPoint3D(); ExitDest = reader.ReadPoint3D(); Deadline = reader.ReadDateTime(); MasterKeys = reader.ReadStrongItemList(); Fighters = reader.ReadStrongMobileList(); if (version < 4) { int count = reader.ReadInt(); for (int i = 0; i < count; i++) { reader.ReadMobile(); reader.ReadStrongMobileList(); } } if (version < 2) { reader.ReadBool(); } if (Peerless == null && m_Helpers.Count > 0) { Timer.DelayCall(TimeSpan.FromSeconds(30), new TimerCallback(CleanupHelpers)); } break; } if (Owner != null && Peerless == null) { FinishSequence(); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: { m_Crafter = reader.ReadMobile(); goto case 2; } case 2: { m_Slayer = (SlayerName)reader.ReadInt(); m_Slayer2 = (SlayerName)reader.ReadInt(); goto case 1; } case 1: { m_AosAttributes = new AosAttributes(this, reader); m_AosSkillBonuses = new AosSkillBonuses(this, reader); goto case 0; } case 0: { m_Content = reader.ReadULong(); m_Count = reader.ReadInt(); break; } } if (m_AosAttributes == null) { m_AosAttributes = new AosAttributes(this); } if (m_AosSkillBonuses == null) { m_AosSkillBonuses = new AosSkillBonuses(this); } if (Core.AOS && Parent is Mobile) { m_AosSkillBonuses.AddTo((Mobile)Parent); } int strBonus = m_AosAttributes.BonusStr; int dexBonus = m_AosAttributes.BonusDex; int intBonus = m_AosAttributes.BonusInt; if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0)) { Mobile m = (Mobile)Parent; string modName = Serial.ToString(); if (strBonus != 0) { m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero)); } if (dexBonus != 0) { m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero)); } if (intBonus != 0) { m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero)); } } if (Parent is Mobile) { ((Mobile)Parent).CheckStatTimers(); } }
public VvVBattle(GenericReader reader, ViceVsVirtueSystem system) { int version = reader.ReadInt(); System = system; Altars = new List <VvVAltar>(); KillCooldown = new Dictionary <Mobile, DateTime>(); Messages = new List <string>(); Traps = new List <VvVTrap>(); Warned = new List <Mobile>(); Turrets = new List <CannonTurret>(); Teams = new List <BattleTeam>(); OnGoing = reader.ReadBool(); if (reader.ReadInt() == 0) { StartTime = reader.ReadDateTime(); CooldownEnds = reader.ReadDateTime(); LastOccupationCheck = reader.ReadDateTime(); NextSigilSpawn = reader.ReadDateTime(); NextAnnouncement = reader.ReadDateTime(); NextAltarActivate = reader.ReadDateTime(); City = (VvVCity)reader.ReadInt(); Sigil = reader.ReadItem() as VvVSigil; VicePriest = reader.ReadMobile() as VvVPriest; VirtuePriest = reader.ReadMobile() as VvVPriest; if (Sigil != null) { Sigil.Battle = this; } if (VicePriest != null) { VicePriest.Battle = this; } if (VirtuePriest != null) { VirtuePriest.Battle = this; } int count = reader.ReadInt(); for (int i = 0; i < count; i++) { VvVAltar altar = reader.ReadItem() as VvVAltar; if (altar != null) { altar.Battle = this; Altars.Add(altar); } } if (version == 1) { count = reader.ReadInt(); for (int i = 0; i < count; i++) { BattleTeam team = new BattleTeam(reader); Teams.Add(team); } } else { count = reader.ReadInt(); for (int i = 0; i < count; i++) { Guild g = reader.ReadGuild() as Guild; VvVGuildBattleStats stats = new VvVGuildBattleStats(reader, g); } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { VvVTrap t = reader.ReadItem() as VvVTrap; if (t != null) { Traps.Add(t); } } Timer.DelayCall(TimeSpan.FromSeconds(10), () => { if (Region is GuardedRegion) { GuardedRegion.Disable((GuardedRegion)Region); } BeginTimer(); ActivateArrows(); }); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: { m_State = (HouseRaffleState)reader.ReadEncodedInt(); goto case 2; } case 2: { m_ExpireAction = (HouseRaffleExpireAction)reader.ReadEncodedInt(); goto case 1; } case 1: { m_Deed = reader.ReadItem <HouseRaffleDeed>(); goto case 0; } case 0: { bool oldActive = (version < 3) ? reader.ReadBool() : false; m_Bounds = reader.ReadRect2D(); m_Facet = reader.ReadMap(); m_Winner = reader.ReadMobile(); m_TicketPrice = reader.ReadInt(); m_Started = reader.ReadDateTime(); m_Duration = reader.ReadTimeSpan(); int entryCount = reader.ReadInt(); m_Entries = new List <RaffleEntry>(entryCount); for (int i = 0; i < entryCount; i++) { RaffleEntry entry = new RaffleEntry(reader, version); if (entry.From == null) { continue; // Character was deleted } m_Entries.Add(entry); } InvalidateRegion(); m_AllStones.Add(this); if (version < 3) { if (oldActive) { m_State = HouseRaffleState.Active; } else if (m_Winner != null) { m_State = HouseRaffleState.Completed; } else { m_State = HouseRaffleState.Inactive; } } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); if (version == 0) //BodyParty -> Head { reader.ReadDateTime(); version = reader.ReadInt(); } switch (version) { case 2: { m_PlayerName = reader.ReadString(); m_HeadType = (HeadType)reader.ReadEncodedInt(); break; } case 1: case 0: { if (reader.ReadBool()) { Timer.DelayCall(TimeSpan.FromSeconds(5.0), new TimerStateCallback(ConvertHead), reader.ReadMobile()); } break; } /* * case 0: * { * string format = this.Name; * * if ( format != null ) * { * if ( format.StartsWith( "the head of " ) ) * format = format.Substring( "the head of ".Length ); * * if ( format.EndsWith( ", taken in a duel" ) ) * { * format = format.Substring( 0, format.Length - ", taken in a duel".Length ); * m_HeadType = HeadType.Duel; * } * else if ( format.EndsWith( ", taken in a tournament" ) ) * { * format = format.Substring( 0, format.Length - ", taken in a tournament".Length ); * m_HeadType = HeadType.Tournament; * } * } * * m_PlayerName = format; * this.Name = null; * * break; * } */ } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); Spawn = new Dictionary <BaseCreature, List <BaseCreature> >(); SpawnZones = new List <Rectangle2D>(); if (Map == Map.Trammel) { TramInstance = this; } if (Map == Map.Felucca) { FelInstance = this; } CurrentInvasion = (City)reader.ReadInt(); InvasionType = (InvasionType)reader.ReadInt(); Beacon = reader.ReadItem() as InvasionBeacon; CurrentWave = reader.ReadInt(); if (Beacon != null) { Beacon.Controller = this; } int count = reader.ReadInt(); for (int i = 0; i < count; i++) { SpawnZones.Add(reader.ReadRect2D()); } count = reader.ReadInt(); for (int i = 0; i < count; i++) { BaseCreature captain = reader.ReadMobile() as BaseCreature; int c = reader.ReadInt(); List <BaseCreature> list = new List <BaseCreature>(); for (int j = 0; j < c; j++) { BaseCreature spawn = reader.ReadMobile() as BaseCreature; if (spawn != null) { list.Add(spawn); } } if (captain != null) { Spawn[captain] = list; } else { list.Clear(); } } Timer.DelayCall(TimeSpan.FromSeconds(10), () => { if (Beacon == null || Beacon.Destroyed) { Timer.DelayCall(TimeSpan.FromMinutes(2), () => { Cleanup(); BeginInvasion(); }); } }); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { #region ItemID_Mods case 6: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if (GetSaveFlag(flags, SaveFlag.Resource)) { m_Resource = (CraftResource)reader.ReadEncodedInt(); } else { m_Resource = DefaultResource; } if (GetSaveFlag(flags, SaveFlag.Attributes)) { m_AosAttributes = new AosAttributes(this, reader); } else { m_AosAttributes = new AosAttributes(this); } if (GetSaveFlag(flags, SaveFlag.ClothingAttributes)) { m_AosClothingAttributes = new AosArmorAttributes(this, reader); } else { m_AosClothingAttributes = new AosArmorAttributes(this); } if (GetSaveFlag(flags, SaveFlag.SkillBonuses)) { m_AosSkillBonuses = new AosSkillBonuses(this, reader); } else { m_AosSkillBonuses = new AosSkillBonuses(this); } if (GetSaveFlag(flags, SaveFlag.Resistances)) { m_AosResistances = new AosElementAttributes(this, reader); } else { m_AosResistances = new AosElementAttributes(this); } if (GetSaveFlag(flags, SaveFlag.MaxHitPoints)) { m_MaxHitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.HitPoints)) { m_HitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.Crafter)) { m_Crafter = reader.ReadMobile(); } if (GetSaveFlag(flags, SaveFlag.Quality)) { m_Quality = (ClothingQuality)reader.ReadEncodedInt(); } else { m_Quality = ClothingQuality.Regular; } if (GetSaveFlag(flags, SaveFlag.StrReq)) { m_StrReq = reader.ReadEncodedInt(); } else { m_StrReq = -1; } if (GetSaveFlag(flags, SaveFlag.PlayerConstructed)) { m_PlayerConstructed = true; } if (GetSaveFlag(flags, SaveFlag.Identified)) { m_Identified = true; } break; } #endregion case 5: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if (GetSaveFlag(flags, SaveFlag.Resource)) { m_Resource = (CraftResource)reader.ReadEncodedInt(); } else { m_Resource = DefaultResource; } if (GetSaveFlag(flags, SaveFlag.Attributes)) { m_AosAttributes = new AosAttributes(this, reader); } else { m_AosAttributes = new AosAttributes(this); } if (GetSaveFlag(flags, SaveFlag.ClothingAttributes)) { m_AosClothingAttributes = new AosArmorAttributes(this, reader); } else { m_AosClothingAttributes = new AosArmorAttributes(this); } if (GetSaveFlag(flags, SaveFlag.SkillBonuses)) { m_AosSkillBonuses = new AosSkillBonuses(this, reader); } else { m_AosSkillBonuses = new AosSkillBonuses(this); } if (GetSaveFlag(flags, SaveFlag.Resistances)) { m_AosResistances = new AosElementAttributes(this, reader); } else { m_AosResistances = new AosElementAttributes(this); } if (GetSaveFlag(flags, SaveFlag.MaxHitPoints)) { m_MaxHitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.HitPoints)) { m_HitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.Crafter)) { m_Crafter = reader.ReadMobile(); } if (GetSaveFlag(flags, SaveFlag.Quality)) { m_Quality = (ClothingQuality)reader.ReadEncodedInt(); } else { m_Quality = ClothingQuality.Regular; } if (GetSaveFlag(flags, SaveFlag.StrReq)) { m_StrReq = reader.ReadEncodedInt(); } else { m_StrReq = -1; } if (GetSaveFlag(flags, SaveFlag.PlayerConstructed)) { m_PlayerConstructed = true; } break; } case 4: { m_Resource = (CraftResource)reader.ReadInt(); goto case 3; } case 3: { m_AosAttributes = new AosAttributes(this, reader); m_AosClothingAttributes = new AosArmorAttributes(this, reader); m_AosSkillBonuses = new AosSkillBonuses(this, reader); m_AosResistances = new AosElementAttributes(this, reader); goto case 2; } case 2: { m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { m_Crafter = null; m_Quality = ClothingQuality.Regular; break; } } if (version < 2) { m_PlayerConstructed = true; // we don't know, so, assume it's crafted } if (version < 3) { m_AosAttributes = new AosAttributes(this); m_AosClothingAttributes = new AosArmorAttributes(this); m_AosSkillBonuses = new AosSkillBonuses(this); m_AosResistances = new AosElementAttributes(this); } if (version < 4) { m_Resource = DefaultResource; } if (m_MaxHitPoints == 0 && m_HitPoints == 0) { m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits); } Mobile parent = Parent as Mobile; if (parent != null) { if (Core.AOS) { m_AosSkillBonuses.AddTo(parent); } AddStatBonuses(parent); parent.CheckStatTimers(); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: { m_ReplenishesCharges = reader.ReadBool(); if (m_ReplenishesCharges) { m_LastReplenished = reader.ReadDateTime(); } goto case 2; } case 2: { m_Crafter = reader.ReadMobile(); m_Quality = (InstrumentQuality)reader.ReadEncodedInt(); m_Slayer = (SlayerName)reader.ReadEncodedInt(); m_Slayer2 = (SlayerName)reader.ReadEncodedInt(); UsesRemaining = reader.ReadEncodedInt(); m_WellSound = reader.ReadEncodedInt(); m_BadlySound = reader.ReadEncodedInt(); break; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (InstrumentQuality)reader.ReadEncodedInt(); m_Slayer = (SlayerName)reader.ReadEncodedInt(); UsesRemaining = reader.ReadEncodedInt(); m_WellSound = reader.ReadEncodedInt(); m_BadlySound = reader.ReadEncodedInt(); break; } case 0: { m_WellSound = reader.ReadInt(); m_BadlySound = reader.ReadInt(); UsesRemaining = Utility.RandomMinMax(InitMinUses, InitMaxUses); break; } } CheckReplenishUses(); }
public override void Deserialize(GenericReader reader) { int version = reader.ReadInt(); switch (version) { case 4: { m_AllyDeclarations = reader.ReadGuildListOrNull(); m_AllyInvitations = reader.ReadGuildListOrNull(); goto case 3; } case 3: { m_TypeLastChange = reader.ReadDateTime(); goto case 2; } case 2: { m_Type = (GuildType)reader.ReadInt(); goto case 1; } case 1: { m_LastFealty = reader.ReadDateTime(); goto case 0; } case 0: { m_Leader = reader.ReadMobile(); m_Name = reader.ReadString(); m_Abbreviation = reader.ReadString(); m_Allies = reader.ReadGuildListOrNull(); m_Enemies = reader.ReadGuildListOrNull(); m_WarDeclarations = reader.ReadGuildListOrNull(); m_WarInvitations = reader.ReadGuildListOrNull(); m_Members = reader.ReadMobileList(); m_Candidates = reader.ReadMobileListOrNull(); m_Accepted = reader.ReadMobileListOrNull(); m_Guildstone = reader.ReadItem(); m_Teleporter = reader.ReadItem(); m_Charter = reader.ReadString(); m_Website = reader.ReadString(); break; } } if (m_Guildstone == null || m_Members.Count == 0) { Disband(); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 5: { m_MultiID = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_ShipName = reader.ReadString(); m_BoatItem = reader.ReadItem() as BaseBoat; break; } case 4: { switch (reader.ReadInt()) { default: case 0: break; case 1: m_PilotEntry = new PilotEntry(reader); break; } goto case 3; } case 3: { m_BaseHue = reader.ReadInt(); if (version < 5) { reader.ReadItem(); } reader.ReadItem(); m_Owner = reader.ReadMobile(); goto case 2; } case 2: { switch (reader.ReadInt()) { default: case 0: break; case 1: m_SecurityEntry = new SecurityEntry(null, reader); break; } goto case 1; } case 1: case 0: { m_MultiID = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_ShipName = reader.ReadString(); if (version == 0) { reader.ReadUInt(); } break; } } if (LootType == LootType.Newbied) { LootType = LootType.Blessed; } if (Weight == 0.0) { Weight = 1.0; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 12: case 11: { m_SetPhysicalBonus = reader.ReadInt(); m_SetFireBonus = reader.ReadInt(); m_SetColdBonus = reader.ReadInt(); m_SetPoisonBonus = reader.ReadInt(); m_SetEnergyBonus = reader.ReadInt(); goto case 10; } case 10: { m_PlayerConstructed = reader.ReadBool(); goto case 9; } case 9: { m_TalismanProtection = new TalismanAttribute(reader); goto case 8; } case 8: { if (version == 11) { reader.ReadBool(); } _Owner = reader.ReadMobile(); _OwnerName = reader.ReadString(); goto case 7; } case 7: { m_IsImbued = reader.ReadBool(); goto case 6; } case 6: { m_NegativeAttributes = new NegativeAttributes(this, reader); goto case 5; } case 5: { #region Runic Reforging m_ReforgedPrefix = (ReforgedPrefix)reader.ReadInt(); m_ReforgedSuffix = (ReforgedSuffix)reader.ReadInt(); m_ItemPower = (ItemPower)reader.ReadInt(); if (version == 11 && reader.ReadBool()) { m_NegativeAttributes.NoRepair = 1; } #endregion #region Stygian Abyss m_GorgonLenseCharges = reader.ReadInt(); m_GorgonLenseType = (LenseType)reader.ReadInt(); goto case 4; } case 4: { m_TimesImbued = reader.ReadEncodedInt(); m_SAAbsorptionAttributes = new SAAbsorptionAttributes(this, reader); #endregion m_BlessedBy = reader.ReadMobile(); m_LastEquipped = reader.ReadBool(); m_SetEquipped = reader.ReadBool(); m_SetHue = reader.ReadEncodedInt(); m_SetAttributes = new AosAttributes(this, reader); m_SetSkillBonuses = new AosSkillBonuses(this, reader); m_Crafter = reader.ReadMobile(); m_Quality = (ItemQuality)reader.ReadInt(); goto case 3; } case 3: { m_MaxHitPoints = reader.ReadEncodedInt(); m_HitPoints = reader.ReadEncodedInt(); goto case 2; } case 2: { m_Resource = (CraftResource)reader.ReadEncodedInt(); m_GemType = (GemType)reader.ReadEncodedInt(); goto case 1; } case 1: { m_AosAttributes = new AosAttributes(this, reader); m_AosResistances = new AosElementAttributes(this, reader); m_AosSkillBonuses = new AosSkillBonuses(this, reader); if (Core.AOS && Parent is Mobile) { m_AosSkillBonuses.AddTo((Mobile)Parent); } int strBonus = m_AosAttributes.BonusStr; int dexBonus = m_AosAttributes.BonusDex; int intBonus = m_AosAttributes.BonusInt; if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0)) { Mobile m = (Mobile)Parent; string modName = Serial.ToString(); if (strBonus != 0) { m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero)); } if (dexBonus != 0) { m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero)); } if (intBonus != 0) { m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero)); } } if (Parent is Mobile) { ((Mobile)Parent).CheckStatTimers(); } break; } case 0: { m_AosAttributes = new AosAttributes(this); m_AosResistances = new AosElementAttributes(this); m_AosSkillBonuses = new AosSkillBonuses(this); break; } } if (m_NegativeAttributes == null) { m_NegativeAttributes = new NegativeAttributes(this); } if (m_TalismanProtection == null) { m_TalismanProtection = new TalismanAttribute(); } #region Mondain's Legacy Sets if (m_SetAttributes == null) { m_SetAttributes = new AosAttributes(this); } if (m_SetSkillBonuses == null) { m_SetSkillBonuses = new AosSkillBonuses(this); } #endregion if (version < 2) { m_Resource = CraftResource.Iron; m_GemType = GemType.None; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); //Version 0 if (version >= 0) { m_Guildmaster = (PlayerMobile)reader.ReadMobile(); m_Abbreviation = reader.ReadString(); m_CreationTime = reader.ReadDateTime(); m_Icon = reader.ReadInt(); m_IconHue = reader.ReadInt(); m_Website = reader.ReadString(); m_Guildhouse = reader.ReadItem() as BaseHouse; m_Faction = reader.ReadItem() as Faction; //Rank Names int rankNamesCount = reader.ReadInt(); for (int a = 0; a < rankNamesCount; a++) { m_RankNames[a] = reader.ReadString(); } //Members int membersCount = reader.ReadInt(); for (int a = 0; a < membersCount; a++) { PlayerMobile player = reader.ReadMobile() as PlayerMobile; GuildMemberRank rank = (GuildMemberRank)reader.ReadInt(); DateTime joinDate = reader.ReadDateTime(); PlayerMobile fealtyPlayer = reader.ReadMobile() as PlayerMobile; if (player != null) { if (!player.Deleted) { GuildMemberEntry guildMemberEntry = new GuildMemberEntry(player, rank, joinDate, fealtyPlayer); m_Members.Add(guildMemberEntry); } } } //Lists int alliesCount = reader.ReadInt(); for (int a = 0; a < alliesCount; a++) { Guild entry = reader.ReadItem() as Guild; if (entry != null) { if (!entry.Deleted) { m_Allies.Add(entry); } } } int alliesRequestsSentCount = reader.ReadInt(); for (int a = 0; a < alliesRequestsSentCount; a++) { Guild entry = reader.ReadItem() as Guild; if (entry != null) { if (!entry.Deleted) { m_AlliesRequestsSent.Add(entry); } } } int alliesRequestsReceivedCount = reader.ReadInt(); for (int a = 0; a < alliesRequestsReceivedCount; a++) { Guild entry = reader.ReadItem() as Guild; if (entry != null) { if (!entry.Deleted) { m_AlliesRequestsReceived.Add(entry); } } } int enemiesCount = reader.ReadInt(); for (int a = 0; a < enemiesCount; a++) { Guild entry = reader.ReadItem() as Guild; if (entry != null) { if (!entry.Deleted) { m_Enemies.Add(entry); } } } int enemiesRequestsSentCount = reader.ReadInt(); for (int a = 0; a < enemiesRequestsSentCount; a++) { Guild entry = reader.ReadItem() as Guild; if (entry != null) { if (!entry.Deleted) { m_EnemiesRequestsSent.Add(entry); } } } int enemiesRequestsReceivedCount = reader.ReadInt(); for (int a = 0; a < enemiesRequestsReceivedCount; a++) { Guild entry = reader.ReadItem() as Guild; if (entry != null) { if (!entry.Deleted) { m_EnemiesRequestsReceived.Add(entry); } } } int candidatesCount = reader.ReadInt(); for (int a = 0; a < candidatesCount; a++) { PlayerMobile candidate = reader.ReadMobile() as PlayerMobile; if (candidate != null) { if (!candidate.Deleted) { m_Candidates.Add(candidate); } } } } //----- Guilds.m_Guilds.Add(this); ReapplyMemberships(); AuditGuild(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int v = reader.ReadInt(); Instance = this; MyrmidexTeam = new Dictionary <int, List <BaseCreature> >(); TribeTeam = new Dictionary <int, List <BaseCreature> >(); Players = new Dictionary <PlayerMobile, int>(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { int wave = reader.ReadInt(); int c = reader.ReadInt(); MyrmidexTeam[wave] = new List <BaseCreature>(); for (int j = 0; j < c; j++) { BaseCreature bc = reader.ReadMobile() as BaseCreature; if (bc != null) { MyrmidexTeam[wave].Add(bc); //AssignNavpoints(bc, Allegiance.Myrmidex); } } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { int wave = reader.ReadInt(); int c = reader.ReadInt(); TribeTeam[wave] = new List <BaseCreature>(); for (int j = 0; j < c; j++) { BaseCreature bc = reader.ReadMobile() as BaseCreature; if (bc != null) { TribeTeam[wave].Add(bc); //AssignNavpoints(bc, Allegiance.Tribes); } } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { PlayerMobile pm = reader.ReadMobile() as PlayerMobile; int score = reader.ReadInt(); if (pm != null) { Players[pm] = score; } } if (Active) { Timer = Timer.DelayCall(TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10), OnTick); Timer.Start(); Timer.DelayCall(TimeSpan.FromSeconds(10), AssignNavPoints); } else { MyrmidexTeam.Clear(); TribeTeam.Clear(); Players.Clear(); } if (v == 0) { Timer.DelayCall(TimeSpan.FromSeconds(20), FixFlags); } }
public FactionState(GenericReader reader) { int version = reader.ReadEncodedInt(); switch (version) { case 4: { int count = reader.ReadEncodedInt(); for (int i = 0; i < count; ++i) { DateTime time = reader.ReadDateTime(); if (i < m_LastBroadcasts.Length) { m_LastBroadcasts[i] = time; } } goto case 3; } case 3: case 2: case 1: { m_Election = new Election(reader); goto case 0; } case 0: { m_Faction = Faction.ReadReference(reader); m_Commander = reader.ReadMobile(); if (version < 4) { DateTime time = reader.ReadDateTime(); if (m_LastBroadcasts.Length > 0) { m_LastBroadcasts[0] = time; } } m_Tithe = reader.ReadEncodedInt(); m_Silver = reader.ReadEncodedInt(); int memberCount = reader.ReadEncodedInt(); m_Members = new PlayerStateCollection(); for (int i = 0; i < memberCount; ++i) { PlayerState pl = new PlayerState(reader, m_Faction, m_Members); if (pl.Mobile != null) { m_Members.Add(pl); } } m_Faction.State = this; m_Faction.UpdateRanks(); m_FactionItems = new FactionItemCollection(); if (version >= 2) { int factionItemCount = reader.ReadEncodedInt(); for (int i = 0; i < factionItemCount; ++i) { FactionItem factionItem = new FactionItem(reader, m_Faction); if (!factionItem.HasExpired) { factionItem.Attach(); } else { Timer.DelayCall(TimeSpan.Zero, new TimerCallback(factionItem.Detach)); // sandbox detachment } } } m_FactionTraps = new FactionTrapCollection(); if (version >= 3) { int factionTrapCount = reader.ReadEncodedInt(); for (int i = 0; i < factionTrapCount; ++i) { BaseFactionTrap trap = reader.ReadItem() as BaseFactionTrap; if (trap != null && !trap.CheckDecay()) { m_FactionTraps.Add(trap); } } } break; } } if (version < 1) { m_Election = new Election(m_Faction); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); Armor = new List <Item>(); DestroyedArmor = new List <Item>(); Items = new List <Item>(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Item it = reader.ReadItem(); if (it != null) { if (it is CursedSuitOfArmor) { ((CursedSuitOfArmor)it).Encounter = this; } Armor.Add(it); } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { Item it = reader.ReadItem(); if (it != null) { DestroyedArmor.Add(it); } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { if (Spawn == null) { Spawn = new List <BaseCreature>(); } BaseCreature bc = reader.ReadMobile() as BaseCreature; if (bc != null) { if (bc is EnsorcelledArmor) { ((EnsorcelledArmor)bc).Encounter = this; } Spawn.Add(bc); } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { if (Items == null) { Items = new List <Item>(); } Item item = reader.ReadItem(); if (item != null) { Items.Add(item); } } if (Spawn == null || Spawn.Count < 4) { int toSpawn = Spawn == null ? 4 : 4 - Spawn.Count; for (int i = 0; i < toSpawn; i++) { if (Spawn == null) { Spawn = new List <BaseCreature>(); } SpawnRandom(); } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 8: { m_Identified = reader.ReadMobileList(); goto case 7; } case 7: case 6: case 5: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if (GetSaveFlag(flags, SaveFlag.Attributes)) { m_AosAttributes = new AosAttributes(this, reader); } else { m_AosAttributes = new AosAttributes(this); } if (GetSaveFlag(flags, SaveFlag.ArmorAttributes)) { m_AosArmorAttributes = new AosArmorAttributes(this, reader); } else { m_AosArmorAttributes = new AosArmorAttributes(this); } if (GetSaveFlag(flags, SaveFlag.PhysicalBonus)) { m_PhysicalBonus = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.FireBonus)) { m_FireBonus = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.ColdBonus)) { m_ColdBonus = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.PoisonBonus)) { m_PoisonBonus = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.EnergyBonus)) { m_EnergyBonus = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.Identified) && version < 7) { reader.ReadBool(); } //m_Identified = ( version >= 7 || reader.ReadBool() ); if (GetSaveFlag(flags, SaveFlag.MaxHitPoints)) { m_MaxHitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.HitPoints)) { m_HitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.Crafter)) { m_Crafter = reader.ReadMobile(); } if (GetSaveFlag(flags, SaveFlag.Quality)) { m_Quality = (CraftQuality)reader.ReadEncodedInt(); } else { m_Quality = CraftQuality.Regular; } if (version == 5 && m_Quality == CraftQuality.Low) { m_Quality = CraftQuality.Regular; } if (GetSaveFlag(flags, SaveFlag.Durability)) { m_Durability = (DurabilityLevel)reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.Protection)) { m_Protection = (ArmorProtectionLevel)reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.BaseArmor)) { m_ArmorBase = reader.ReadEncodedInt(); } else { m_ArmorBase = -1; } if (GetSaveFlag(flags, SaveFlag.StrBonus)) { m_StrBonus = reader.ReadEncodedInt(); } else { m_StrBonus = -1; } if (GetSaveFlag(flags, SaveFlag.DexBonus)) { m_DexBonus = reader.ReadEncodedInt(); } else { m_DexBonus = -1; } if (GetSaveFlag(flags, SaveFlag.IntBonus)) { m_IntBonus = reader.ReadEncodedInt(); } else { m_IntBonus = -1; } if (GetSaveFlag(flags, SaveFlag.StrReq)) { m_StrReq = reader.ReadEncodedInt(); } else { m_StrReq = -1; } if (GetSaveFlag(flags, SaveFlag.DexReq)) { m_DexReq = reader.ReadEncodedInt(); } else { m_DexReq = -1; } if (GetSaveFlag(flags, SaveFlag.IntReq)) { m_IntReq = reader.ReadEncodedInt(); } else { m_IntReq = -1; } if (GetSaveFlag(flags, SaveFlag.MedAllowance)) { m_Meditate = (AMA)reader.ReadEncodedInt(); } else { m_Meditate = (AMA)(-1); } if (GetSaveFlag(flags, SaveFlag.SkillBonuses)) { m_AosSkillBonuses = new AosSkillBonuses(this, reader); } if (GetSaveFlag(flags, SaveFlag.PlayerConstructed)) { m_PlayerConstructed = true; } break; } case 4: { m_AosAttributes = new AosAttributes(this, reader); m_AosArmorAttributes = new AosArmorAttributes(this, reader); goto case 3; } case 3: { m_PhysicalBonus = reader.ReadInt(); m_FireBonus = reader.ReadInt(); m_ColdBonus = reader.ReadInt(); m_PoisonBonus = reader.ReadInt(); m_EnergyBonus = reader.ReadInt(); goto case 2; } case 2: case 1: { /*m_Identified = */ reader.ReadBool(); goto case 0; } case 0: { m_ArmorBase = reader.ReadInt(); m_MaxHitPoints = reader.ReadInt(); m_HitPoints = reader.ReadInt(); m_Crafter = reader.ReadMobile(); m_Quality = (CraftQuality)reader.ReadInt(); m_Durability = (DurabilityLevel)reader.ReadInt(); m_Protection = (ArmorProtectionLevel)reader.ReadInt(); AMT mat = (AMT)reader.ReadInt(); if (m_ArmorBase == RevertArmorBase) { m_ArmorBase = -1; } /*m_BodyPos = (ArmorBodyType)*/ reader.ReadInt(); if (version < 4) { m_AosAttributes = new AosAttributes(this); m_AosArmorAttributes = new AosArmorAttributes(this); } if (version < 3 && m_Quality == CraftQuality.Exceptional) { DistributeBonuses(6); } m_StrBonus = reader.ReadInt(); m_DexBonus = reader.ReadInt(); m_IntBonus = reader.ReadInt(); m_StrReq = reader.ReadInt(); m_DexReq = reader.ReadInt(); m_IntReq = reader.ReadInt(); if (m_StrBonus == OldStrBonus) { m_StrBonus = -1; } if (m_DexBonus == OldDexBonus) { m_DexBonus = -1; } if (m_IntBonus == OldIntBonus) { m_IntBonus = -1; } if (m_StrReq == OldStrReq) { m_StrReq = -1; } if (m_DexReq == OldDexReq) { m_DexReq = -1; } if (m_IntReq == OldIntReq) { m_IntReq = -1; } m_Meditate = (AMA)reader.ReadInt(); if (m_Meditate == OldMedAllowance) { m_Meditate = (AMA)(-1); } if (m_MaxHitPoints == 0 && m_HitPoints == 0) { m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits); } break; } } if (m_AosSkillBonuses == null) { m_AosSkillBonuses = new AosSkillBonuses(this); } if (Core.AOS && Parent is Mobile) { m_AosSkillBonuses.AddTo((Mobile)Parent); } int strBonus = ComputeStatBonus(StatType.Str); int dexBonus = ComputeStatBonus(StatType.Dex); int intBonus = ComputeStatBonus(StatType.Int); if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0)) { Mobile m = (Mobile)Parent; string modName = Serial.ToString(); if (strBonus != 0) { m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero)); } if (dexBonus != 0) { m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero)); } if (intBonus != 0) { m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero)); } } if (Parent is Mobile) { ((Mobile)Parent).CheckStatTimers(); } if (version < 7) { m_PlayerConstructed = true; // we don't know, so, assume it's crafted } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 8: { m_Exceptional = reader.ReadBool(); m_PlayerConstructed = reader.ReadBool(); m_Crafter = reader.ReadMobile(); goto case 7; } case 7: { m_AbsorptionAttributes = new AbsorptionAttributes(this, reader); m_TimesImbued = reader.ReadEncodedInt(); m_MaxHitPoints = reader.ReadEncodedInt(); m_HitPoints = reader.ReadEncodedInt(); m_Resource = (CraftResource)reader.ReadEncodedInt(); m_GemType = (GemType)reader.ReadEncodedInt(); m_MagicalAttributes = new MagicalAttributes(this, reader); m_AosResistances = new ElementAttributes(this, reader); m_SkillBonuses = new SkillBonuses(this, reader); if (Parent is Mobile) { m_SkillBonuses.AddTo((Mobile)Parent); } break; } } int strBonus = m_MagicalAttributes.BonusStr; int dexBonus = m_MagicalAttributes.BonusDex; int intBonus = m_MagicalAttributes.BonusInt; if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0)) { Mobile m = (Mobile)Parent; string modName = Serial.ToString(); if (strBonus != 0) { m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero)); } if (dexBonus != 0) { m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero)); } if (intBonus != 0) { m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero)); } } if (Parent is Mobile) { ((Mobile)Parent).CheckStatTimers(); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 10: { m_TimeOfDeath = reader.ReadDeltaTime(); goto case 9; } case 9: { int count = reader.ReadInt(); for (int i = 0; i < count; ++i) { Item item = reader.ReadItem(); if (reader.ReadBool()) { SetRestoreInfo(item, reader.ReadPoint3D()); } else if (item != null) { SetRestoreInfo(item, item.Location); } } goto case 8; } case 8: { m_VisitedByTaxidermist = reader.ReadBool(); goto case 7; } case 7: { if (reader.ReadBool()) { BeginDecay(reader.ReadDeltaTime() - DateTime.Now); } goto case 6; } case 6: { m_Looters = reader.ReadStrongMobileList(); m_Killer = reader.ReadMobile(); goto case 5; } case 5: { m_Carved = reader.ReadBool(); goto case 4; } case 4: { m_Aggressors = reader.ReadStrongMobileList(); goto case 3; } case 3: { m_Owner = reader.ReadMobile(); goto case 2; } case 2: { m_NoBones = reader.ReadBool(); goto case 1; } case 1: { m_CorpseName = reader.ReadString(); goto case 0; } case 0: { if (version < 10) { m_TimeOfDeath = DateTime.Now; } if (version < 7) { BeginDecay(m_DefaultDecayTime); } if (version < 6) { m_Looters = new List <Mobile>(); } if (version < 4) { m_Aggressors = new List <Mobile>(); } m_AccessLevel = (AccessLevel)reader.ReadInt(); reader.ReadInt(); // guild reserve m_Kills = reader.ReadInt(); m_Criminal = reader.ReadBool(); m_EquipItems = reader.ReadStrongItemList(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 5: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if (GetSaveFlag(flags, SaveFlag.Resource)) { m_Resource = (CraftResource)reader.ReadEncodedInt(); } else { m_Resource = DefaultResource; } if (GetSaveFlag(flags, SaveFlag.MaxHitPoints)) { m_MaxHitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.HitPoints)) { m_HitPoints = reader.ReadEncodedInt(); } if (GetSaveFlag(flags, SaveFlag.Crafter)) { m_Crafter = reader.ReadMobile(); } if (GetSaveFlag(flags, SaveFlag.Quality)) { m_Quality = (ClothingQuality)reader.ReadEncodedInt(); } else { m_Quality = ClothingQuality.Regular; } if (GetSaveFlag(flags, SaveFlag.StrReq)) { m_StrReq = reader.ReadEncodedInt(); } else { m_StrReq = -1; } if (GetSaveFlag(flags, SaveFlag.PlayerConstructed)) { m_PlayerConstructed = true; } break; } case 4: { m_Resource = (CraftResource)reader.ReadInt(); goto case 3; } case 3: case 2: { m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { m_Crafter = null; m_Quality = ClothingQuality.Regular; break; } } if (version < 2) { m_PlayerConstructed = true; // we don't know, so, assume it's crafted } if (version < 4) { m_Resource = DefaultResource; } if (m_MaxHitPoints == 0 && m_HitPoints == 0) { m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits); } Mobile parent = Parent as Mobile; if (parent != null) { AddStatBonuses(parent); parent.CheckStatTimers(); } }
public Arena(GenericReader reader) { int version = reader.ReadEncodedInt(); switch (version) { case 7: { m_IsGuarded = reader.ReadBool(); goto case 6; } case 6: { m_Ladder = reader.ReadItem() as LadderController; goto case 5; } case 5: { m_Tournament = reader.ReadItem() as TournamentController; m_Announcer = reader.ReadMobile(); goto case 4; } case 4: { m_Name = reader.ReadString(); goto case 3; } case 3: { m_Zone = reader.ReadRect2D(); goto case 2; } case 2: { m_GateIn = reader.ReadPoint3D(); m_GateOut = reader.ReadPoint3D(); m_Teleporter = reader.ReadItem(); goto case 1; } case 1: { m_Players = reader.ReadStrongMobileList(); goto case 0; } case 0: { m_Facet = reader.ReadMap(); m_Bounds = reader.ReadRect2D(); m_Outside = reader.ReadPoint3D(); m_Wall = reader.ReadPoint3D(); if (version == 0) { reader.ReadBool(); m_Players = new List <Mobile>(); } m_Active = reader.ReadBool(); m_Points = new ArenaStartPoints(reader); if (m_Active) { m_Arenas.Add(this); m_Arenas.Sort(); } break; } } if (m_Zone.Start != Point2D.Zero && m_Zone.End != Point2D.Zero && m_Facet != null) { m_Region = new SafeZone(m_Zone, m_Outside, m_Facet, m_IsGuarded); } if (IsOccupied) { Timer.DelayCall(TimeSpan.FromSeconds(2.0), new TimerCallback(Evict)); } if (m_Tournament != null) { Timer.DelayCall(TimeSpan.Zero, new TimerCallback(AttachToTournament_Sandbox)); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 4: { m_ConfinedRoaming = reader.ReadBool(); #region genova: support to mono #if MONO m_Idol = reader.ReadItemG <IdolOfTheChampion>(); #else m_Idol = reader.ReadItem <IdolOfTheChampion>(); #endif #endregion m_HasBeenAdvanced = reader.ReadBool(); goto case 3; } case 3: { m_SpawnArea = reader.ReadRect2D(); goto case 2; } case 2: { m_RandomizeType = reader.ReadBool(); goto case 1; } case 1: { if (version < 3) { int oldRange = reader.ReadInt(); m_SpawnArea = new Rectangle2D(new Point2D(X - oldRange, Y - oldRange), new Point2D(X + oldRange, Y + oldRange)); } m_Kills = reader.ReadInt(); goto case 0; } case 0: { if (version < 1) { m_SpawnArea = new Rectangle2D(new Point2D(X - 24, Y - 24), new Point2D(X + 24, Y + 24)); //Default was 24 } bool active = reader.ReadBool(); m_Type = (ChampionSpawnType)reader.ReadInt(); m_Creatures = reader.ReadStrongMobileList(); m_RedSkulls = reader.ReadStrongItemList(); m_WhiteSkulls = reader.ReadStrongItemList(); #region genova: support to mono #if MONO m_Platform = reader.ReadItemG <ChampionPlatform>(); m_Altar = reader.ReadItemG <ChampionAltar>(); #else m_Platform = reader.ReadItem <ChampionPlatform>(); m_Altar = reader.ReadItem <ChampionAltar>(); #endif #endregion m_ExpireDelay = reader.ReadTimeSpan(); m_ExpireTime = reader.ReadDeltaTime(); m_Champion = reader.ReadMobile(); m_RestartDelay = reader.ReadTimeSpan(); if (reader.ReadBool()) { m_RestartTime = reader.ReadDeltaTime(); BeginRestart(m_RestartTime - DateTime.Now); } if (version < 4) { m_Idol = new IdolOfTheChampion(this); m_Idol.MoveToWorld(new Point3D(X, Y, Z - 15), Map); } if (m_Platform == null || m_Altar == null || m_Idol == null) { Delete(); } else if (active) { Start(); } break; } } Timer.DelayCall(TimeSpan.Zero, new TimerCallback(UpdateRegion)); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int v = reader.ReadInt(); m_Active = reader.ReadBool(); m_SeasonBegins = reader.ReadDateTime(); m_SeasonEnds = reader.ReadDateTime(); m_Top10 = new Dictionary <HuntType, List <HuntingKillEntry> >(); m_Leaders = new Dictionary <HuntType, List <HuntingKillEntry> >(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Mobile m = reader.ReadMobile(); int c = 1; if (v == 0) { new HuntingKillEntry(reader); } else { c = reader.ReadInt(); } if (m != null) { m_UnclaimedWinners[m] = c; } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { HuntType type = (HuntType)reader.ReadInt(); int c = reader.ReadInt(); if (!m_Top10.ContainsKey(type)) { m_Top10[type] = new List <HuntingKillEntry>(); } for (int j = 0; j < c; j++) { m_Top10[type].Add(new HuntingKillEntry(reader)); } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { HuntType type = (HuntType)reader.ReadInt(); int c = reader.ReadInt(); if (!m_Leaders.ContainsKey(type)) { m_Leaders[type] = new List <HuntingKillEntry>(); } for (int j = 0; j < c; j++) { m_Leaders[type].Add(new HuntingKillEntry(reader)); } } m_Instance = this; m_NextHint = DateTime.UtcNow; m_NextBonusIndex = DateTime.UtcNow; CheckTimer(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); m_DamageEntries = new Dictionary <Mobile, int>(); int version = reader.ReadInt(); switch (version) { case 6: { m_SPawnSzMod = reader.ReadInt(); goto case 5; } case 5: { int entries = reader.ReadInt(); Mobile m; int damage; for (int i = 0; i < entries; ++i) { m = reader.ReadMobile(); damage = reader.ReadInt(); if (m == null) { continue; } m_DamageEntries.Add(m, damage); } goto case 4; } case 4: { m_ConfinedRoaming = reader.ReadBool(); m_Idol = reader.ReadItem <IdolOfTheChampion>(); m_HasBeenAdvanced = reader.ReadBool(); goto case 3; } case 3: { m_SpawnArea = reader.ReadRect2D(); goto case 2; } case 2: { m_RandomizeType = reader.ReadBool(); goto case 1; } case 1: { if (version < 3) { int oldRange = reader.ReadInt(); m_SpawnArea = new Rectangle2D(new Point2D(X - oldRange, Y - oldRange), new Point2D(X + oldRange, Y + oldRange)); } m_Kills = reader.ReadInt(); goto case 0; } case 0: { if (version < 1) { m_SpawnArea = new Rectangle2D(new Point2D(X - 24, Y - 24), new Point2D(X + 24, Y + 24)); //Default was 24 } bool active = reader.ReadBool(); m_Type = (ChampionSpawnType)reader.ReadInt(); m_Creatures = reader.ReadStrongMobileList(); m_RedSkulls = reader.ReadStrongItemList(); m_WhiteSkulls = reader.ReadStrongItemList(); m_Platform = reader.ReadItem <ChampionPlatform>(); m_Altar = reader.ReadItem <ChampionAltar>(); m_ExpireDelay = reader.ReadTimeSpan(); m_ExpireTime = reader.ReadDeltaTime(); m_Champion = reader.ReadMobile(); m_RestartDelay = reader.ReadTimeSpan(); if (reader.ReadBool()) { m_RestartTime = reader.ReadDeltaTime(); BeginRestart(m_RestartTime - DateTime.UtcNow); } if (version < 4) { m_Idol = new IdolOfTheChampion(this); m_Idol.MoveToWorld(new Point3D(X, Y, Z - 15), Map); } if (m_Platform == null || m_Altar == null || m_Idol == null) { Delete(); } else if (active) { Start(); } break; } } Timer.DelayCall(TimeSpan.Zero, new TimerCallback(UpdateRegion)); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: int count = reader.ReadInt(); for (int i = 0; i < count; i++) { CTFBase b = reader.ReadItem() as CTFBase; HomeBases.Add(b); } m_Challenger = reader.ReadMobile(); m_Organizers.Add(m_Challenger); m_GameLocked = reader.ReadBool(); m_GameInProgress = reader.ReadBool(); m_TotalPurse = reader.ReadInt(); m_EntryFee = reader.ReadInt(); m_ArenaSize = reader.ReadInt(); m_TargetScore = reader.ReadInt(); m_MatchLength = reader.ReadTimeSpan(); TimeSpan elapsed = reader.ReadTimeSpan(); if (elapsed > TimeSpan.Zero) { m_MatchStart = DateTime.UtcNow - elapsed; } m_MatchEnd = reader.ReadDateTime(); count = reader.ReadInt(); for (int i = 0; i < count; i++) { ChallengeEntry entry = new ChallengeEntry(); entry.Participant = reader.ReadMobile(); string sname = reader.ReadString(); // look up the enum by name ChallengeStatus status = ChallengeStatus.None; try{ status = (ChallengeStatus)Enum.Parse(typeof(ChallengeStatus), sname); } catch {} entry.Status = status; entry.Accepted = reader.ReadBool(); entry.PageBeingViewed = reader.ReadInt(); entry.Score = reader.ReadInt(); entry.Winner = reader.ReadBool(); entry.Team = reader.ReadInt(); Participants.Add(entry); } break; } if (GameCompleted) { Timer.DelayCall(PostGameDecayTime, new TimerCallback(Delete)); } // start the challenge timer StartChallengeTimer(); SetNameHue(); }