public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Commodity = reader.ReadItem(); switch ( version ) { case 0: { if (m_Commodity != null) { Hue = 0x592; } break; } } if ( m_Commodity != null && !( m_Commodity is ICommodity ) ) //Apparently, there may be items out there with this. Funky. { Timer.DelayCall( TimeSpan.Zero, this.Delete ); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_House = reader.ReadItem() as BaseHouse; goto case 0; } case 0: { m_Description = reader.ReadString(); m_Marked = reader.ReadBool(); m_Target = reader.ReadPoint3D(); m_TargetMap = reader.ReadMap(); CalculateHue(); break; } } }
public void Deserialize( GenericReader reader ) { int version = reader.ReadInt(); switch ( version ) { case 1: { m_Flag = reader.ReadItem() as IGameFlag; goto case 0; } case 0: { m_Members = reader.ReadMobileList(); m_Home = reader.ReadPoint3D(); m_FlagHome = reader.ReadPoint3D(); m_Map = reader.ReadMap(); m_Points = reader.ReadInt(); m_Name = reader.ReadString(); m_Hue = reader.ReadInt(); m_UId = reader.ReadInt(); m_Game = reader.ReadItem() as CTFGame; break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_Item = reader.ReadItem() as InternalItem; this.m_Item2 = reader.ReadItem() as InternalItem2; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_TillerMan = reader.ReadItem() as NewTillerMan; m_PPlank = reader.ReadItem() as NewPlank; m_SPlank = reader.ReadItem() as NewPlank; m_Hold = reader.ReadItem() as NewHold; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_ChainedItem1 = reader.ReadItem(); m_ChainedItem2 = reader.ReadItem(); m_ChainedItem3 = reader.ReadItem(); m_ChainedItem4 = reader.ReadItem(); m_ChainedMobile1 = reader.ReadMobile(); m_ChainedMobile2 = reader.ReadMobile(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { default: { int count = reader.ReadInt(); m_Components = new List<Item>( count ); for( int i = 0; i < count; ++i ) { Item item = reader.ReadItem(); if( item != null ) m_Components.Add( item ); } break; } } cellblock = new HoldingCell( X, Y, Map ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Boat = reader.ReadItem() as BaseBoat; m_Side = (PlankSide) reader.ReadInt(); m_Locked = reader.ReadBool(); m_KeyValue = reader.ReadUInt(); if ( m_Boat == null ) Delete(); break; } } if ( IsOpen ) { m_CloseTimer = new CloseTimer( this ); m_CloseTimer.Start(); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_Altar = reader.ReadItem() as PeerlessAltar; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); mLight = ( WearableLight )reader.ReadItem( ); IsLit = (bool) reader.ReadBool(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); /*int version = */reader.ReadInt(); m_Item = reader.ReadItem() as InternalItem; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_House = reader.ReadItem() as BaseHouse; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); mate = reader.ReadItem() as LinkedBook; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_Lantern = (Lantern)reader.ReadItem(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); this.m_Gland = reader.ReadItem(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); if( version >= 1 ) { m_Owner = reader.ReadMobile(); m_Tent = reader.ReadItem() as TentAddon; m_Bedroll = reader.ReadItem() as TentBedroll; m_Chest = reader.ReadItem() as SecureTentChest; m_Bounds = reader.ReadRect2D(); if( m_Owner != null && m_Chest != null && m_Tent != null ) m_Region = new TravelTentRegion( m_Owner, m_Chest, m_Tent.Map, m_Bounds, 16 ); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); this.m_IsRewardItem = reader.ReadBool(); this.m_Fire = reader.ReadItem(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Government = (GovernmentEntity)reader.ReadItem(); if (m_Government == null || m_Government.Deleted) Delete(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); decayTime = reader.ReadDateTime(); mountedHead = reader.ReadItem() as Head; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_LastTimeOpened = reader.ReadDateTime(); m_CoffinSlave = reader.ReadItem(); }
public KeyInfo( GenericReader reader ) { int version = reader.ReadInt(); m_KeyVal = reader.ReadUInt(); m_Description = reader.ReadString(); m_MaxRange = reader.ReadInt(); m_Link = reader.ReadItem(); m_Type = (KeyType)reader.ReadInt(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); this.m_RaisableItem = (RaisableItem)reader.ReadItem(); this.Reset(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); if( version > 1 ) m_ControllingGuild = (CustomGuildStone)reader.ReadItem(); Treasuries.Add( this ); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_Code = reader.ReadByte(); this.m_Controller = reader.ReadItem() as PrimevalLichPuzzle; // remove if no controller exists or is deleted if (null == this.m_Controller || this.m_Controller.Deleted) this.Delete(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: m_Static = (Static)reader.ReadItem(); break; } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch (version) { case 0: { IsPartOf = reader.ReadItem() as YardFountain; break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Game = reader.ReadItem() as CTFGame; break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_Ladder = reader.ReadItem() as LadderController; break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 0: { m_Link = ( DMStone )reader.ReadItem(); break; } } }
public FactionItem( GenericReader reader, Faction faction ) { int version = reader.ReadEncodedInt(); switch ( version ) { case 0: { m_Item = reader.ReadItem(); m_Expiration = reader.ReadDateTime(); break; } } m_Faction = faction; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 6: { m_MobilesSeekHome = reader.ReadBool(); m_UsesSpawnerHome = reader.ReadBool(); goto case 5; } case 5: { m_SpawnArea = reader.ReadRect2D(); m_UsesSpawnerHome = reader.ReadBool(); goto case 4; } case 4: { m_WalkingRange = reader.ReadInt(); goto case 3; } case 3: case 2: { m_WayPoint = reader.ReadItem() as WayPoint; goto case 1; } case 1: { m_Group = reader.ReadBool(); goto case 0; } case 0: { m_MinDelay = reader.ReadTimeSpan(); m_MaxDelay = reader.ReadTimeSpan(); m_Count = reader.ReadInt(); m_Team = reader.ReadInt(); m_HomeRange = reader.ReadInt(); m_Running = reader.ReadBool(); TimeSpan ts = TimeSpan.Zero; if (m_Running) { ts = reader.ReadDeltaTime() - DateTime.Now; } int size = reader.ReadInt(); m_SpawnNames = new List <string>(size); for (int i = 0; i < size; ++i) { string creatureString = reader.ReadString(); m_SpawnNames.Add(creatureString); string typeName = ParseType(creatureString); if (ScriptCompiler.FindTypeByName(typeName) == null) { if (m_WarnTimer == null) { m_WarnTimer = new WarnTimer(); } m_WarnTimer.Add(Location, Map, typeName); } } int count = reader.ReadInt(); m_Spawned = new List <ISpawnable>(count); for (int i = 0; i < count; ++i) { ISpawnable e = World.FindEntity(reader.ReadInt()) as ISpawnable; if (e != null) { e.Spawner = this; m_Spawned.Add(e); } } if (m_Running) { DoTimer(ts); } break; } } if (version < 3 && Weight == 0) { Weight = -1; } }
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; } } }
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.ReadMobileList(); m_Killer = reader.ReadMobile(); goto case 5; } case 5: { m_Carved = reader.ReadBool(); goto case 4; } case 4: { m_Aggressors = reader.ReadMobileList(); 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 ArrayList(); } if (version < 4) { m_Aggressors = new ArrayList(); } m_AccessLevel = (AccessLevel)reader.ReadInt(); reader.ReadInt(); // guild reserve m_Kills = reader.ReadInt(); m_Criminal = reader.ReadBool(); int count = reader.ReadInt(); m_EquipItems = new ArrayList(count); for (int i = 0; i < count; ++i) { Item item = reader.ReadItem(); if (item != null) { m_EquipItems.Add(item); } } 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(); if (version >= 13) { c_ForcePrivate = reader.ReadBool(); c_ForcePublic = reader.ReadBool(); c_NoTrade = reader.ReadBool(); } if (version >= 12) { c_Free = reader.ReadBool(); } if (version >= 11) { c_Murderers = (Intu)reader.ReadInt(); } if (version >= 10) { c_LeaveItems = reader.ReadBool(); } if (version >= 9) { c_RentToOwn = reader.ReadBool(); c_OriginalRentTime = reader.ReadTimeSpan(); c_RTOPayments = reader.ReadInt(); } c_PreviewItems = new List <Item>(); if (version >= 7) { int previewcount = reader.ReadInt(); for (int i = 0; i < previewcount; ++i) { Item item = reader.ReadItem(); c_PreviewItems.Add(item); } } if (version >= 6) { c_ItemsPrice = reader.ReadInt(); c_KeepItems = reader.ReadBool(); } c_DecoreItemInfos = new List <DecoreItemInfo>(); if (version >= 5) { int decorecount = reader.ReadInt(); DecoreItemInfo info; for (int i = 0; i < decorecount; ++i) { info = new DecoreItemInfo(); info.Load(reader); c_DecoreItemInfos.Add(info); } c_Relock = reader.ReadBool(); } if (version >= 4) { c_RecurRent = reader.ReadBool(); c_RentByTime = reader.ReadTimeSpan(); c_RentTime = reader.ReadDateTime(); c_DemolishTime = reader.ReadDateTime(); c_YoungOnly = reader.ReadBool(); c_MinTotalSkill = reader.ReadInt(); c_MaxTotalSkill = reader.ReadInt(); } if (version >= 3) { c_MinZ = reader.ReadInt(); c_MaxZ = reader.ReadInt(); } if (version >= 2) { c_House = (TownHouse)reader.ReadItem(); } c_Price = reader.ReadInt(); c_Locks = reader.ReadInt(); c_Secures = reader.ReadInt(); c_BanLoc = reader.ReadPoint3D(); c_SignLoc = reader.ReadPoint3D(); c_Skill = reader.ReadString(); c_SkillReq = reader.ReadDouble(); c_Blocks = new List <Rectangle2D>(); int count = reader.ReadInt(); for (int i = 0; i < count; ++i) { c_Blocks.Add(reader.ReadRect2D()); } if (c_RentTime > DateTime.Now) { BeginRentTimer(c_RentTime - DateTime.Now); } Timer.DelayCall(TimeSpan.Zero, StartTimers); ClearPreview(); s_TownHouseSigns.Add(this); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); if (version >= 0) { m_Tower = (SiegeMachine)reader.ReadItem(); } if (version >= 1) { bool notNull = reader.ReadBool(); if (notNull) { int count = reader.ReadInt(); m_Items = new List <Item>(count); for (int i = 0; i < count; i++) { Item item = reader.ReadItem(); if (item != null) { m_Items.Add(item); } } } else { m_Items = new List <Item>(); } } if (version >= 2) { bool notNull = reader.ReadBool(); if (notNull) { int count = reader.ReadInt(); m_Mobiles = new List <Mobile>(count); for (int i = 0; i < count; i++) { Mobile m = reader.ReadMobile(); if (m != null) { m_Mobiles.Add(m); } } } else { m_Mobiles = new List <Mobile>(); } } }
public virtual void Deserialize(GenericReader reader) { int version = reader.ReadInt(); SaveFlag flags = SaveFlag.None; if (version >= 4) { flags = (SaveFlag)reader.ReadInt(); } switch (version) { case 4: if (GetSaveFlag(flags, SaveFlag.ExpireActCondition)) { m_ExpireActCondition = reader.ReadString(); } if (GetSaveFlag(flags, SaveFlag.ExpireAction)) { m_ExpireAction = reader.ReadString(); } if (GetSaveFlag(flags, SaveFlag.ExpireTrigMob)) { m_ExpireTrigMob = reader.ReadMobile(); } if (GetSaveFlag(flags, SaveFlag.AttachedBy)) { m_AttachedBy = reader.ReadString(); } if (GetSaveFlag(flags, SaveFlag.OwnedByMobile)) { OwnedBy = reader.ReadMobile(); } else if (GetSaveFlag(flags, SaveFlag.OwnedByItem)) { OwnedBy = reader.ReadItem(); } if (GetSaveFlag(flags, SaveFlag.Name)) { Name = reader.ReadString(); } // if there are any active timers, then serialize if (GetSaveFlag(flags, SaveFlag.Expiration)) { m_Expiration = reader.ReadTimeSpan(); } if (GetSaveFlag(flags, SaveFlag.ExpirationEnd)) { TimeSpan remainingTime = reader.ReadTimeSpan(); if (remainingTime > TimeSpan.Zero) { DoTimer(remainingTime); } } if (GetSaveFlag(flags, SaveFlag.CreationTime)) { m_CreationTime = reader.ReadDateTime(); } // DO NOT GO ON TO CASE 3 OR BELOW! break; // =============== OLD DESERIALIZATION ===================== case 3: m_ExpireAction = reader.ReadString(); m_ExpireActCondition = reader.ReadString(); m_ExpireTrigMob = reader.ReadMobile(); goto case 2; case 2: m_AttachedBy = reader.ReadString(); goto case 1; case 1: int owned = reader.ReadInt(); if (owned == 0) { OwnedBy = reader.ReadItem(); } else if (owned == 1) { OwnedBy = reader.ReadMobile(); } else { OwnedBy = null; } goto case 0; case 0: // version 0 Name = reader.ReadString(); m_Expiration = reader.ReadTimeSpan(); TimeSpan remaining = reader.ReadTimeSpan(); if (remaining > TimeSpan.Zero) { DoTimer(remaining); } m_CreationTime = reader.ReadDateTime(); break; } }
public void Deserialize(GenericReader reader) { int version = reader.ReadInt(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { ArenaStats stats = new ArenaStats(reader); if (stats.Owner != null) { SurvivalRankings.Add(stats); } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { ArenaStats stats = new ArenaStats(reader); if (stats.Owner != null) { TeamRankings.Add(stats); } } count = reader.ReadInt(); for (int i = 0; i < count; i++) { Item blocker = reader.ReadItem(); if (blocker != null) { Blockers.Add(blocker); } } Stone = reader.ReadItem() as ArenaStone; Manager = reader.ReadMobile() as ArenaManager; Banner1 = reader.ReadItem() as ArenaExitBanner; Banner2 = reader.ReadItem() as ArenaExitBanner; count = reader.ReadInt(); for (int i = 0; i < count; i++) { ArenaDuel duel = new ArenaDuel(reader, this); DateTime dt = reader.ReadDeltaTime(); PendingDuels[duel] = dt; } count = reader.ReadInt(); for (int i = 0; i < count; i++) { BookedDuels.Add(new ArenaDuel(reader, this)); } if (reader.ReadInt() == 1) { CurrentDuel = new ArenaDuel(reader, this); } if (Stone != null) { Stone.Arena = this; } if (Manager != null) { Manager.Arena = this; } if (Banner1 != null) { Banner1.Arena = this; } if (Banner2 != null) { Banner2.Arena = this; } if (version == 0) { foreach (var blocker in Blockers) { blocker?.Delete(); } ColUtility.Free(Blockers); } }
public virtual void Deserialize(GenericReader reader) { int version = reader.GetVersion(); if (version > 4) { reader.ReadBlock( r => { if (version > 5) { Serial = new PvPSerial(r); } else { Serial = r.ReadTypeCreate<PvPSerial>(r) ?? new PvPSerial(r); Serial = new PvPSerial(); } }); } else { Serial = new PvPSerial(); } switch (version) { case 6: case 5: case 4: case 3: RespawnOnStart = reader.ReadBool(); goto case 2; case 2: KickOnDeath = reader.ReadBool(); goto case 1; case 1: { GateLocation = new MapPoint(reader); Gate = reader.ReadItem<PvPTeamGate>(); } goto case 0; case 0: { Name = reader.ReadString(); MinCapacity = reader.ReadInt(); MaxCapacity = reader.ReadInt(); Color = reader.ReadInt(); HomeBase = reader.ReadPoint3D(); SpawnPoint = reader.ReadPoint3D(); RespawnOnDeath = reader.ReadBool(); RespawnDelay = reader.ReadTimeSpan(); reader.ReadBlock(r => Statistics = r.ReadTypeCreate<PvPTeamStatistics>(this) ?? new PvPTeamStatistics(this)); } break; } if (version < 4) { RespawnOnStart = true; } if (version < 1) { GateLocation = MapPoint.Empty; } if (Gate != null) { Gate.Team = this; } if (Battle == null) { Delete(); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 7: { GuardImmune = reader.ReadBool(); goto case 6; } case 6: { m_SpawnRange = reader.ReadInt(); goto case 5; } case 5: case 4: { m_WalkingRange = reader.ReadInt(); goto case 3; } case 3: case 2: { m_WayPoint = reader.ReadItem() as WayPoint; goto case 1; } case 1: { m_Group = reader.ReadBool(); goto case 0; } case 0: { m_MinDelay = reader.ReadTimeSpan(); m_MaxDelay = reader.ReadTimeSpan(); m_MaxCount = reader.ReadInt(); m_Team = reader.ReadInt(); m_HomeRange = reader.ReadInt(); m_Running = reader.ReadBool(); TimeSpan ts = TimeSpan.Zero; if (m_Running) { ts = reader.ReadDeltaTime() - DateTime.UtcNow; } int size = reader.ReadInt(); m_SpawnObjects = new List <SpawnObject>(size); for (int i = 0; i < size; ++i) { if (version > 4) { SpawnObject so = new SpawnObject(reader); if (AddSpawnObject(so)) { string typeName = ParseType(so.SpawnName); if (ScriptCompiler.FindTypeByName(typeName) == null) { if (m_WarnTimer == null) { m_WarnTimer = new WarnTimer(); } m_WarnTimer.Add(Location, Map, typeName); } } } else { string creatureString = reader.ReadString(); AddSpawnObject(new SpawnObject(creatureString)); string typeName = ParseType(creatureString); if (ScriptCompiler.FindTypeByName(typeName) == null) { if (m_WarnTimer == null) { m_WarnTimer = new WarnTimer(); } m_WarnTimer.Add(Location, Map, typeName); } } } if (version < 5) { int count = reader.ReadInt(); for (int i = 0; i < count; ++i) { ISpawnable e = World.FindEntity(reader.ReadInt()) as ISpawnable; if (e != null) { e.Delete(); // lets make this easy } } } if (m_Running) { DoTimer(ts); } break; } } if (version < 3 && Weight == 0) { Weight = -1; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { 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.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 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 List <PlayerState>(); 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 List <FactionItem>(); 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 List <BaseFactionTrap>(); 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(); switch (version) { case 3: { this.m_State = (HouseRaffleState)reader.ReadEncodedInt(); goto case 2; } case 2: { this.m_ExpireAction = (HouseRaffleExpireAction)reader.ReadEncodedInt(); goto case 1; } case 1: { this.m_Deed = reader.ReadItem <HouseRaffleDeed>(); goto case 0; } case 0: { bool oldActive = (version < 3) ? reader.ReadBool() : false; this.m_Bounds = reader.ReadRect2D(); this.m_Facet = reader.ReadMap(); this.m_Winner = reader.ReadMobile(); this.m_TicketPrice = reader.ReadInt(); this.m_Started = reader.ReadDateTime(); this.m_Duration = reader.ReadTimeSpan(); int entryCount = reader.ReadInt(); this.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 } this.m_Entries.Add(entry); } this.InvalidateRegion(); m_AllStones.Add(this); if (version < 3) { if (oldActive) { this.m_State = HouseRaffleState.Active; } else if (this.m_Winner != null) { this.m_State = HouseRaffleState.Completed; } else { this.m_State = HouseRaffleState.Inactive; } } break; } } }