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(); #region genova: support to mono #if MONO m_Door = reader.ReadItemG<BaseDoor>(); ; m_Addon = reader.ReadItemG<BaseAddon>(); ; m_Sequence = reader.ReadItemG<GauntletSpawner>(); #else m_Door = reader.ReadItem<BaseDoor>(); ; m_Addon = reader.ReadItem<BaseAddon>(); ; m_Sequence = reader.ReadItem<GauntletSpawner>(); #endif #endregion State = (GauntletSpawnerState)reader.ReadInt(); break; } } }
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 ) ); }