public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadInt();

			switch (version)
			{
				case 0:
				{	// all done
					break;
				}

				case 1:
				{
					m_ChampionSpawn = reader.ReadItem() as ChampInvasion; // pla :changed to invasion class
					m_bChampDeadHandled = reader.ReadBool();
					m_bChampComplete = reader.ReadBool();
					goto case 0;
				}
			}
		}
		public override void OnEventStartInit()
		{
			// speed up announcements!
			AnnounceDelta = TimeSpan.FromMinutes( 5.0 ); //	every 5 minutes

			foreach (Item ix in World.Items.Values)
			{
				if (ix is ChampInvasion)
				{
					ChampInvasion cs = ix as ChampInvasion;
					if (cs != null )
					{
						m_ChampionSpawn = cs;

						// basic setup
						m_ChampionSpawn.NavPoint = NavDestinations.Britan;	// Britan invasion
						m_ChampionSpawn.PickChamp();										// pick a new random champ type
						
						// old stuff!
						//m_ChampionSpawn.SpawnRange = 30;					// spawn range from spawner						
						//Pla : Changed this to reflect new enum mode of operation for champ spawns
						//m_ChampionSpawn.RandomizeType = true;				// want random
						//m_ChampionSpawn.SpawnMode = ChampionSpawnMode.Random;						
						//m_ChampionSpawn.Type =							// invasion type
						//ChampionSpawnType.VerminHorde;
						// timing
						//m_ChampionSpawn.RestartDelay;		// placeholder
						//m_ChampionSpawn.RestartTime;		// read-only
						//m_ChampionSpawn.ExpireDelay; 		// placeholder
						//m_ChampionSpawn.ExpireTime;  		// placeholder

						// turn off guards
						Region town = Region.GetByName("Britain", Map.Felucca);			// Britain specific
						GuardedRegion reg = town as GuardedRegion;
						if (reg != null)
							reg.IsGuarded = false;

						// tell the champ spawn that we would like to know what's going on
						m_ChampionSpawn.Monitor = this;

						// let the fun begin!
						m_ChampionSpawn.Active = true;		// start the creatures;

						break;								// we only support on invasion at this time
					}
				}
			}

			if (m_ChampionSpawn == null)
			{
				Console.WriteLine("TownInvasionAES: No appropriate Champion Spawn found, aborting event..");
				// tell our base class to stop processing.
				//	the base will also begin cleanup
				ValidState = false;
			}
			else
			{
				string line = String.Format("The Britain guards are nowhere to be found.");	
				World.Broadcast( 0x22, true, line );						// tell the world
			}

			Console.WriteLine("TownInvasionAES: Start event.");
		}