public PeerlessInstance( GenericReader reader ) { m_Owner = reader.ReadItem<PeerlessPlatform>(); m_Light = reader.ReadItem(); m_Map = reader.ReadMap(); m_EntranceLocation = reader.ReadPoint3D(); m_BossSpawnLocation = reader.ReadPoint3D(); m_RegionBounds = reader.ReadRect2D(); Mobile boss = reader.ReadMobile(); if ( boss != null ) boss.Delete(); Initialize(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); int count; bool idocannc = false; m_Region = new HouseRegion(this); switch (version) { case 20: { m_NPCData = reader.ReadUInt32(); goto case 19; } case 19: { m_RestartDecay = reader.ReadTimeSpan(); goto case 18; } case 18: { m_Flags = (ImplFlags)reader.ReadUInt32(); goto case 17; } case 17: { m_UpgradeCosts = reader.ReadUInt32(); goto case 16; } case 16: { m_LockBoxData = reader.ReadUInt32(); goto case 15; } case 15: { m_SecurePremises = reader.ReadBool(); goto case 14; } case 14: { idocannc = reader.ReadBool(); goto case 13; } case 13: { m_DecayMinutesStored = reader.ReadDouble(); m_NeverDecay = reader.ReadBool(); goto case 11; //note, this isn't a mistake - we want to skip 12 } case 12: { DateTime tempDT = reader.ReadDeltaTime(); //StructureDecayTime = reader.ReadDeltaTime(); m_DecayMinutesStored = (tempDT - DateTime.Now).TotalMinutes; m_NeverDecay = reader.ReadBool(); goto case 11; } case 11: { m_MaxLockBoxes = reader.ReadInt(); m_LockBoxCount = reader.ReadInt(); goto case 9; } case 10: // just a signal for updates case 9: { m_Visits = reader.ReadInt(); goto case 8; } case 8: { m_Price = reader.ReadInt(); goto case 7; } case 7: { m_Access = reader.ReadMobileList(); goto case 6; } case 6: { m_BuiltOn = reader.ReadDateTime(); m_LastTraded = reader.ReadDateTime(); goto case 5; } case 5: // just removed fields case 4: { m_Addons = reader.ReadItemList(); goto case 3; } case 3: { count = reader.ReadInt(); m_Secures = new ArrayList(count); for (int i = 0; i < count; ++i) { SecureInfo info = new SecureInfo(reader); if (info.Item != null) { info.Item.IsSecure = true; info.Item.CancelFreezeTimer(); // don't initiate for Deserialize m_Secures.Add(info); } } goto case 2; } case 2: { m_Public = reader.ReadBool(); goto case 1; } case 1: { m_Region.GoLocation = reader.ReadPoint3D(); goto case 0; } case 0: { if (version < 16) { LockBoxCeling = (uint)m_MaxLockBoxes * 2; // high limit LockBoxFloor = (uint)m_MaxLockBoxes; // low limit } if (version < 12) { Refresh(); m_NeverDecay = false; } if (version < 4) m_Addons = new ArrayList(); if (version < 7) m_Access = new ArrayList(); if (version < 8) m_Price = DefaultPrice; m_Owner = reader.ReadMobile(); if (version < 5) { count = reader.ReadInt(); for (int i = 0; i < count; i++) reader.ReadRect2D(); } UpdateRegionArea(); Region.AddRegion(m_Region); m_CoOwners = reader.ReadMobileList(); m_Friends = reader.ReadMobileList(); m_Bans = reader.ReadMobileList(); m_Sign = reader.ReadItem() as HouseSign; m_Trash = reader.ReadItem() as TrashBarrel; m_Doors = reader.ReadItemList(); m_LockDowns = reader.ReadItemList(); for (int i = 0; i < m_LockDowns.Count; ++i) { Item item = m_LockDowns[i] as Item; if (item != null) { item.IsLockedDown = true; item.CancelFreezeTimer(); // don't initiate for Deserialize } } if (version < 3) { ArrayList items = reader.ReadItemList(); m_Secures = new ArrayList(items.Count); for (int i = 0; i < items.Count; ++i) { Container c = items[i] as Container; if (c != null) { c.IsSecure = true; m_Secures.Add(new SecureInfo(c, SecureLevel.CoOwners)); } } } m_MaxLockDowns = reader.ReadInt(); m_MaxSecures = reader.ReadInt(); if ((Map == null || Map == Map.Internal) && Location == Point3D.Zero) Delete(); if (m_Owner != null) { ArrayList list = (ArrayList)m_Table[m_Owner]; if (list == null) m_Table[m_Owner] = list = new ArrayList(); list.Add(this); } break; } } // patch m_NPCData to hold the default barkeep count if (version < 20) MaximumBarkeepCount = 2; if (version <= 1) ChangeSignType(0xBD2);//private house, plain brass sign if (version < 10) { /* NOTE: This can exceed the house lockdown limit. It must be this way, because * we do not want players' items to decay without them knowing. Or not even * having a chance to fix it themselves. */ Timer.DelayCall(TimeSpan.Zero, new TimerCallback(FixLockdowns_Sandbox)); } if (idocannc) // idoc announcement was running when we saved, re-create it { string[] lines = new string[1]; lines[0] = String.Format("Lord British has condemned the estate of {0} near {1}.", this.Owner.Name, DescribeLocation()); m_IDOC_Broadcast_TCE = new TownCrierEntry(lines, TimeSpan.FromMinutes(m_DecayMinutesStored), Serial.MinusOne); GlobalTownCrierEntryList.Instance.AddEntry(m_IDOC_Broadcast_TCE); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_RegionBounds = reader.ReadRect2D(); m_Traps = reader.ReadStrongItemList<BaseTrap>(); goto case 0; } case 0: { if ( version < 1 ) { m_Traps = new List<BaseTrap>(); m_RegionBounds = new Rectangle2D( X - 40, Y - 40, 80, 80 ); } m_Creatures = reader.ReadStrongMobileList(); m_TypeName = reader.ReadString(); m_Door = reader.ReadItem<BaseDoor>(); ; m_Addon = reader.ReadItem<BaseAddon>(); ; m_Sequence = reader.ReadItem<GauntletSpawner>(); State = (GauntletSpawnerState)reader.ReadInt(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); int count; switch ( version ) { case 14: { m_RelativeBanLocation = reader.ReadPoint3D(); goto case 13; } case 13: // removed ban location serialization case 12: { m_VendorRentalContracts = reader.ReadItemList(); m_InternalizedVendors = reader.ReadMobileList(); int relocatedCount = reader.ReadEncodedInt(); for ( int i = 0; i < relocatedCount; i++ ) { Point3D relLocation = reader.ReadPoint3D(); IEntity entity = World.FindEntity( reader.ReadInt() ); if ( entity != null ) m_RelocatedEntities.Add( new RelocatedEntity( entity, relLocation ) ); } int inventoryCount = reader.ReadEncodedInt(); for ( int i = 0; i < inventoryCount; i++ ) { VendorInventory inventory = new VendorInventory( this, reader ); m_VendorInventories.Add( inventory ); } goto case 11; } case 11: { m_LastRefreshed = reader.ReadDateTime(); m_RestrictDecay = reader.ReadBool(); goto case 10; } case 10: // just a signal for updates case 9: { m_Visits = reader.ReadInt(); goto case 8; } case 8: { m_Price = reader.ReadInt(); goto case 7; } case 7: { m_Access = reader.ReadMobileList(); goto case 6; } case 6: { m_BuiltOn = reader.ReadDateTime(); m_LastTraded = reader.ReadDateTime(); goto case 5; } case 5: // just removed fields case 4: { m_Addons = reader.ReadItemList(); goto case 3; } case 3: { count = reader.ReadInt(); m_Secures = new ArrayList( count ); for ( int i = 0; i < count; ++i ) { SecureInfo info = new SecureInfo( reader ); if ( info.Item != null ) { info.Item.IsSecure = true; m_Secures.Add( info ); } } goto case 2; } case 2: { m_Public = reader.ReadBool(); goto case 1; } case 1: { if ( version < 13 ) reader.ReadPoint3D(); // house ban location goto case 0; } case 0: { if ( version < 14 ) m_RelativeBanLocation = this.BaseBanLocation; if ( version < 12 ) { m_VendorRentalContracts = new ArrayList(); m_InternalizedVendors = new ArrayList(); } if ( version < 4 ) m_Addons = new ArrayList(); if ( version < 7 ) m_Access = new ArrayList(); if ( version < 8 ) m_Price = DefaultPrice; m_Owner = reader.ReadMobile(); if ( version < 5 ) { count = reader.ReadInt(); for(int i=0;i<count;i++) reader.ReadRect2D(); } UpdateRegion(); m_CoOwners = reader.ReadMobileList(); m_Friends = reader.ReadMobileList(); m_Bans = reader.ReadMobileList(); m_Sign = reader.ReadItem() as HouseSign; m_Trash = reader.ReadItem() as TrashBarrel; m_Doors = reader.ReadItemList(); m_LockDowns = reader.ReadItemList(); for ( int i = 0; i < m_LockDowns.Count; ++i ) ((Item)m_LockDowns[i]).IsLockedDown = true; for ( int i = 0; i < m_VendorRentalContracts.Count; ++i ) ((Item)m_VendorRentalContracts[i]).IsLockedDown = true; if ( version < 3 ) { ArrayList items = reader.ReadItemList(); m_Secures = new ArrayList( items.Count ); for ( int i = 0; i < items.Count; ++i ) { Container c = items[i] as Container; if ( c != null ) { c.IsSecure = true; m_Secures.Add( new SecureInfo( c, SecureLevel.CoOwners ) ); } } } m_MaxLockDowns = reader.ReadInt(); m_MaxSecures = reader.ReadInt(); if ( (Map == null || Map == Map.Internal) && Location == Point3D.Zero ) Delete(); if ( m_Owner != null ) { List<BaseHouse> list = null; m_Table.TryGetValue( m_Owner, out list ); if ( list == null ) m_Table[m_Owner] = list = new List<BaseHouse>(); list.Add( this ); } break; } } if ( version <= 1 ) ChangeSignType( 0xBD2 );//private house, plain brass sign if ( version < 10 ) { /* NOTE: This can exceed the house lockdown limit. It must be this way, because * we do not want players' items to decay without them knowing. Or not even * having a chance to fix it themselves. */ Timer.DelayCall( TimeSpan.Zero, new TimerCallback( FixLockdowns_Sandbox ) ); } if ( version < 11 ) m_LastRefreshed = DateTime.Now + TimeSpan.FromHours( 24 * Utility.RandomDouble() ); if ( !CheckDecay() ) { if ( RelocatedEntities.Count > 0 ) Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RestoreRelocatedEntities ) ); if ( m_Owner == null && m_Friends.Count == 0 && m_CoOwners.Count == 0 ) Timer.DelayCall( TimeSpan.FromSeconds( 10.0 ), new TimerCallback( Delete ) ); } }
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 static List<Rectangle2D> ReadRect2DArray( GenericReader reader ) { int size = reader.ReadInt(); List<Rectangle2D> newAry = new List<Rectangle2D>(); for( int i = 0; i < size; i++ ) { newAry.Add( reader.ReadRect2D() ); } return newAry; }
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 1: { m_Facet = reader.ReadMap(); goto case 0; } case 0: { m_Bounds = reader.ReadRect2D(); m_Width = reader.ReadInt(); m_Height = reader.ReadInt(); m_Protected = reader.ReadBool(); int count = reader.ReadInt(); for ( int i = 0; i < count; i++ ) m_Pins.Add( reader.ReadPoint2D() ); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_ChallengeArea = new Rectangle3D[0]; switch ( version ) { case 2: case 1: { m_Disable = reader.ReadBool(); goto case 0; } case 0: { m_Music = (MusicName)reader.ReadInt(); m_Priority = reader.ReadInt(); if (version < 2) { // old region area reader.ReadRect2D(); } m_ChallengeRegionName = reader.ReadString(); string mapname = reader.ReadString(); try{ m_ChallengeMap = Map.Parse(mapname); } catch {} m_CopiedRegion = reader.ReadString(); // do the coord list int count = reader.ReadInt(); if (count > 0) { // the old version used 2D rectangles for the region area. The new version uses 3D if (version < 2) { Rectangle2D[] area = new Rectangle2D[count]; for (int i = 0; i < count; i++) { area[i] = reader.ReadRect2D(); } m_ChallengeArea = Region.ConvertTo3D(area); } else { m_ChallengeArea = new Rectangle3D[count]; for (int i = 0; i < count; i++) { m_ChallengeArea[i] = new Rectangle3D(reader.ReadPoint3D(), reader.ReadPoint3D()); } } } break; } } // refresh the region Timer.DelayCall(TimeSpan.Zero, new TimerCallback(RefreshRegions)); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); if( version >= 15 ) m_Flip = reader.ReadBool(); if( version >= 14 ) { m_Nation = (Nation)reader.ReadInt(); m_Treasury = (Container)reader.ReadItem(); } 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 ArrayList(); if ( version >= 7 ) c_PreviewItems = reader.ReadItemList(); if ( version >= 6 ) { c_ItemsPrice = reader.ReadInt(); c_KeepItems = reader.ReadBool(); } c_DecoreItemInfos = new ArrayList(); 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 ArrayList(); int count = reader.ReadInt(); for ( int i = 0; i < count; ++i ) c_Blocks.Add( reader.ReadRect2D() ); Timer.DelayCall(TimeSpan.Zero, new TimerCallback(StartTimers)); ClearPreview(); s_TownHouseSigns.Add( this ); }
public MaginciaHousingPlot(GenericReader reader) { int version = reader.ReadInt(); m_Identifier = reader.ReadString(); m_Writ = reader.ReadItem() as WritOfLease; m_Stone = reader.ReadItem() as MaginciaPlotStone; m_LottoEnds = reader.ReadDateTime(); m_Bounds = reader.ReadRect2D(); m_Map = reader.ReadMap(); m_IsPrimeSpot = reader.ReadBool(); m_Complete = reader.ReadBool(); m_Winner = reader.ReadMobile(); m_Expires = reader.ReadDateTime(); int c = reader.ReadInt(); for (int i = 0; i < c; i++) { Mobile m = reader.ReadMobile(); int amount = reader.ReadInt(); if (m != null) m_Participants[m] = amount; } if ((m_Stone == null || m_Stone.Deleted) && LottoOngoing && MaginciaLottoSystem.IsRegisteredPlot(this)) AddPlotStone(); else if (m_Stone != null) m_Stone.Plot = this; if (m_Writ != null) m_Writ.Plot = this; }
public static ArrayList ReadRect2DArray(GenericReader reader) { int size = reader.ReadInt(); ArrayList newAry = new ArrayList(); for (int i = 0; i < size; i++) { newAry.Add(reader.ReadRect2D()); } return newAry; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 14: { //version 14 m_Coords=ReadRect3DArray(reader); m_InnBounds=ReadRect3DArray(reader); goto case 13; } case 13: { m_TargetMap = reader.ReadMap(); m_GoLocation = reader.ReadPoint3D(); m_MinZ = reader.ReadInt(); m_MaxZ = reader.ReadInt(); goto case 12; } case 12: { m_Enabled = reader.ReadBool(); goto case 11; } case 11: { int size = reader.ReadInt(); m_Types = new ArrayList(size); for (int i = 0; i < size; ++i) { string typeName = reader.ReadString(); m_Types.Add(typeName); } goto case 10; } case 10: { m_MaxFollowers = reader.ReadInt(); goto case 9; } case 9: { m_RestrictedMagicMsg = reader.ReadString(); goto case 8; } case 8: { m_Music = (MusicName)reader.ReadInt(); goto case 7; } case 7: { if (m_InnBounds == null) { m_InnBounds = ReadRect2DArray(reader); } else { m_InnBounds.AddRange(ReadRect2DArray(reader)); } m_InnLogoutDelay = reader.ReadTimeSpan(); goto case 6; } case 6: { m_PlayerLogoutDelay = reader.ReadTimeSpan(); goto case 5; } case 5: { if (version < 13) { // converted to a flag bool m_IsDungeon = (bool)reader.ReadBool(); IsDungeon = m_IsDungeon; } goto case 4; } case 4: { m_IOBAlignment = (IOBAlignment)reader.ReadInt(); goto case 3; } case 3: { m_LightLevel = reader.ReadInt(); goto case 2; } case 2: { goto case 1; } case 1: { if (Coords == null) { Coords = ReadRect2DArray(reader); } else { Coords.AddRange(ReadRect2DArray(reader)); } m_Priority = (CustomRegionPriority)reader.ReadInt(); m_RestrictedSpells = ReadBitArray(reader); m_RestrictedSkills = ReadBitArray(reader); m_Flags = (RegionFlag)reader.ReadInt(); m_RegionName = reader.ReadString(); break; } case 0: { Coords = new ArrayList(); Coords.Add(reader.ReadRect2D()); m_RestrictedSpells = ReadBitArray(reader); m_RestrictedSkills = ReadBitArray(reader); m_Flags = (RegionFlag)reader.ReadInt(); m_RegionName = reader.ReadString(); break; } } if (version < 12) { m_Enabled = true; } if (version < 11) { m_Types = new ArrayList(); } if (version < 8) { m_Music = MusicName.Invalid; } // fixup this table if Skills have been added or removed. if (SkillInfo.Table.Length != m_RestrictedSkills.Count) { BitArray temp = new BitArray(SkillInfo.Table.Length); int MaxIterations = Math.Min(temp.Length, m_RestrictedSkills.Count); for (int ix = 0; ix < MaxIterations; ix++) temp[ix] = m_RestrictedSkills[ix]; m_RestrictedSkills = temp; } // fixup this table if Spells have been added or removed. if (SpellRegistry.Types.Length != m_RestrictedSpells.Count) { BitArray temp = new BitArray(SpellRegistry.Types.Length); int MaxIterations = Math.Min(temp.Length, m_RestrictedSpells.Count); for (int ix = 0; ix < MaxIterations; ix++) temp[ix] = m_RestrictedSpells[ix]; m_RestrictedSkills = temp; } UpdateRegion(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 3: { m_LightLevel = reader.ReadInt(); goto case 2; } case 2: { m_Music = (MusicName)reader.ReadInt(); goto case 1; } case 1: { Coords = ReadRect2DArray( reader ); m_Priority = (CustomRegionPriority) reader.ReadInt(); m_PlayerLogoutDelay = reader.ReadTimeSpan(); m_RestrictedSpells = ReadBitArray( reader ); m_RestrictedSkills = ReadBitArray( reader ); m_Flags = (RegionFlag)reader.ReadInt(); m_RegionName = reader.ReadString(); break; } case 0: { Coords = new ArrayList(); Coords.Add( reader.ReadRect2D() ); m_RestrictedSpells = ReadBitArray( reader ); m_RestrictedSkills = ReadBitArray( reader ); m_Flags = (RegionFlag)reader.ReadInt(); m_RegionName = reader.ReadString(); break; } } UpdateRegion(); }
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(); switch ( version ) { case 0: _Rect = reader.ReadRect2D(); _Items = reader.ReadStrongItemList(); _Battle = reader.ReadItem<BattleController>(); _Owner = reader.ReadInt(); _ScoreFactor = reader.ReadSByte(); break; } Timer.DelayCall(TimeSpan.Zero, new TimerCallback(UpdateRect)); _CheckTimer = Timer.DelayCall(TimeSpan.Zero, TimeSpan.FromSeconds(1.0), new TimerCallback(CheckOwner)); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 8: { m_MinimumDuelers = (int)reader.ReadInt(); m_LastReset = (DateTime)reader.ReadDateTime(); goto case 7; } case 7: { m_TimerEnabled = (bool)reader.ReadBool(); goto case 6; } case 6: { m_CoinsPerRound = (int)reader.ReadInt(); m_CoinsWinner = (int)reader.ReadInt(); goto case 5; } case 5: { m_BroadcastHue = (int)reader.ReadInt(); goto case 4; } case 4: { m_WallHue = (int)reader.ReadInt(); m_WallID = (int)reader.ReadInt(); goto case 3; } case 3: { m_WallMidPoint = (Point3D)reader.ReadPoint3D(); m_WallExtendWidth = (int)reader.ReadInt(); ; m_WallNorthToSouth = (bool)reader.ReadBool(); goto case 2; } case 2: { m_CurrentRound = (int)reader.ReadInt(); m_TotalParticipants = (int)reader.ReadInt(); goto case 1; } case 1: { m_Running = (bool)reader.ReadBool(); m_AcceptingPlayers = (bool)reader.ReadBool(); m_MapLocation = (Map)reader.ReadMap(); goto case 0; } case 0: { m_EventRate = (TimeSpan)reader.ReadTimeSpan(); m_StartLocation = (Point3D)reader.ReadPoint3D(); m_LostLocation = (Point3D)reader.ReadPoint3D(); m_DuelLocation1 = (Point3D)reader.ReadPoint3D(); m_DuelLocation2 = (Point3D)reader.ReadPoint3D(); m_LastEvent = (DateTime)reader.ReadDateTime(); m_DuelingArea = (Rectangle2D)reader.ReadRect2D(); m_StageingArea = (Rectangle2D)reader.ReadRect2D(); m_ViewingArea = (Rectangle2D)reader.ReadRect2D(); break; } } if (version == 7) m_LastReset = DateTime.Now; if (version == 5) { m_CoinsPerRound = 2; m_CoinsWinner = 10; } if (version == 4) m_BroadcastHue = 269; if (version == 3) { m_WallHue = 0; m_WallID = 0x0081; } if (m_DuelList == null) m_DuelList = new List<Mobile>(); if (m_CurrentDuelers == null) m_CurrentDuelers = new List<Mobile>(); if (m_WallList == null) m_WallList = new List<Item>(); if (m_BroadcastList == null) m_BroadcastList = new List<Mobile>(); m_CountDown = 0; UpdateRegions(false); m_RestartTimer = new InternalTimer(this, TimeSpan.FromSeconds(1.0)); if(m_TimerEnabled) m_RestartTimer.Start(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); SheepRegionMap = reader.ReadMap(); SheepRegionPoint = reader.ReadRect2D(); RabbitRegionMap = reader.ReadMap(); RabbitRegionPoint = reader.ReadRect2D(); abled = reader.ReadBool(); SheepSpawnPoint = reader.ReadPoint3D(); RabbitSpawnPoint = reader.ReadPoint3D(); SheepSpawnMap = reader.ReadMap(); RabbitSpawnMap = reader.ReadMap(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_Deed = reader.ReadItem<HouseRaffleDeed>(); goto case 0; } case 0: { m_Active = reader.ReadBool(); 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 ); break; } } }
public void Deserialize(GenericReader reader) { int version = reader.ReadInt(); m_HasSpawned = reader.ReadBool(); m_LastAttempt = reader.ReadDateTime(); m_Active = reader.ReadBool(); m_Charydbis = reader.ReadMobile() as Charydbis; m_NextSpawn = reader.ReadDateTime(); m_IsSummoned = reader.ReadBool(); m_Map = reader.ReadMap(); m_CurrentLocation = reader.ReadRect2D(); m_LastLocation = reader.ReadRect2D(); if (m_NextSpawn > DateTime.UtcNow) m_Timer = new InternalTimer(this, m_NextSpawn - DateTime.UtcNow); else Reset(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); _ChestLocation = reader.ReadPoint2D(); _ChestMap = reader.ReadMap(); _Decoder = reader.ReadMobile(); _Level = reader.ReadInt(); _Bounds = reader.ReadRect2D(); }
public override void Deserialize(GenericReader reader) { base.Deserialize (reader); int version = reader.ReadInt(); switch ( version ) { case 5: SafeZone = reader.ReadBool(); goto case 4; case 4: m_BoardWhiteHue = reader.ReadInt(); m_BoardBlackHue = reader.ReadInt(); m_BoardStairsHue = reader.ReadInt(); m_BoardWhiteTiles = reader.ReadStrongItemList(); m_BoardBlackTiles = reader.ReadStrongItemList(); m_BoardStairsTiles = reader.ReadStrongItemList(); goto case 3; case 3: m_OverrideMinorHue = reader.ReadBool(); m_AllowSpectators = reader.ReadBool(); goto case 2; case 2 : m_Orientation = (BoardOrientation) reader.ReadByte(); m_BlackMinorHue = reader.ReadInt(); m_WhiteMinorHue = reader.ReadInt(); goto case 1; case 1: m_ChessSet = ( ChessSet ) reader.ReadInt(); m_WhiteHue = reader.ReadInt(); m_BlackHue = reader.ReadInt(); m_AttackEffect = reader.ReadInt(); m_CaptureEffect = reader.ReadInt(); m_BoltOnDeath = reader.ReadBool(); goto case 0; case 0: m_Bounds = reader.ReadRect2D(); m_SquareWidth = reader.ReadInt(); m_BoardHeight = reader.ReadInt(); break; } }
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(); 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 >= 2 ) c_Hanger = reader.ReadItem(); c_Sign = (TownHouseSign)reader.ReadItem(); if (version <= 2) { int count = reader.ReadInt(); for (int i = 0; i < count; ++i) reader.ReadRect2D(); } if( Price == 0 ) Price = 1; ItemID = 0x1DD6 | 0x4000; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 2: m_MinutesOpen = reader.ReadInt(); m_Rewards = reader.ReadBool(); goto case 1; case 1: m_RegionRect = reader.ReadRect2D(); goto case 0; case 0: m_MaxCrates = reader.ReadInt(); m_Laps = reader.ReadInt(); Track = reader.ReadItem(); m_Animalised = reader.ReadBool(); m_Price = reader.ReadInt(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) Rectangles.Add(new CrateRectangle(reader)); break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); m_DamageEntries = new Dictionary<Mobile, int>(); int version = reader.ReadInt(); switch (version) { 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.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 version = reader.ReadEncodedInt(); m_Active = reader.ReadBool(); m_Word = reader.ReadString(); m_Destination = reader.ReadRect2D(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Music = (MusicName)reader.ReadInt(); m_Priority = reader.ReadInt(); m_MobFactionArea = reader.ReadRect2D(); m_MobFactionRegionName = reader.ReadString(); string mapname = reader.ReadString(); try{ m_MobFactionMap = Map.Parse(mapname); } catch {} m_CopiedRegion = reader.ReadString(); m_MobFactionRegion = new MobFactionRegion(m_MobFactionRegionName, m_MobFactionMap); // do the coord list int count = reader.ReadInt(); m_MobFactionRegion.Coords = new ArrayList(); for(int i =0;i<count;i++) { m_MobFactionRegion.Coords.Add(reader.ReadRect2D()); } m_MobFactionRegion.Priority = m_Priority; m_MobFactionRegion.Music = m_Music; m_MobFactionRegion.Map = m_MobFactionMap; break; } } // refresh the region RefreshRegions(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); regionmap = reader.ReadMap(); regionpoint = reader.ReadRect2D(); abled = reader.ReadBool(); spawnpoint = reader.ReadPoint3D(); spawnmap = reader.ReadMap(); }