private static void GenToK_Command(CommandEventArgs e) { e.Mobile.SendMessage("Creating Tomb of Kings..."); // Bridge Static st = new Static(16880); WeakEntityCollection.Add("sa", st); st.MoveToWorld(new Point3D(36, 36, 0), Map.TerMur); st = new Static(16882); WeakEntityCollection.Add("sa", st); st.MoveToWorld(new Point3D(37, 36, 0), Map.TerMur); st = new Static(16883); st.MoveToWorld(new Point3D(38, 36, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16878); st.MoveToWorld(new Point3D(36, 35, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16884); st.MoveToWorld(new Point3D(37, 35, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16884); st.MoveToWorld(new Point3D(38, 35, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16878); st.MoveToWorld(new Point3D(36, 34, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16884); st.MoveToWorld(new Point3D(37, 34, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16884); st.MoveToWorld(new Point3D(38, 34, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16878); st.MoveToWorld(new Point3D(36, 33, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16884); st.MoveToWorld(new Point3D(37, 33, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16884); st.MoveToWorld(new Point3D(38, 33, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16878); st.MoveToWorld(new Point3D(36, 32, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16884); st.MoveToWorld(new Point3D(37, 32, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16884); st.MoveToWorld(new Point3D(38, 32, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16872); st.MoveToWorld(new Point3D(36, 31, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16873); st.MoveToWorld(new Point3D(37, 31, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(16874); st.MoveToWorld(new Point3D(38, 31, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); //Sacred Quest Blocker SacredQuestBlocker sq = new SacredQuestBlocker(); sq.MoveToWorld(new Point3D(35, 38, 0), Map.TerMur); WeakEntityCollection.Add("sa", sq); sq = new SacredQuestBlocker(); sq.MoveToWorld(new Point3D(36, 38, 0), Map.TerMur); WeakEntityCollection.Add("sa", sq); sq = new SacredQuestBlocker(); sq.MoveToWorld(new Point3D(37, 38, 0), Map.TerMur); WeakEntityCollection.Add("sa", sq); sq = new SacredQuestBlocker(); sq.MoveToWorld(new Point3D(38, 38, 0), Map.TerMur); WeakEntityCollection.Add("sa", sq); sq = new SacredQuestBlocker(); sq.MoveToWorld(new Point3D(39, 38, 0), Map.TerMur); WeakEntityCollection.Add("sa", sq); // Guardian XmlSpawner spawner = new XmlSpawner(1, 300, 600, 0, 0, 0, "GargoyleDestroyer, /blessed/true/Frozen/true/Direction/West/Paralyzed/true/Hue/2401/Name/Guardian"); spawner.SmartSpawning = true; spawner.MoveToWorld(new Point3D(42, 38, 13), Map.TerMur); WeakEntityCollection.Add("sa", spawner); spawner = new XmlSpawner(1, 300, 600, 0, 0, 0, "GargoyleDestroyer, /blessed/true/Frozen/true/Direction/East/Paralyzed/true/Hue/2401/Name/Guardian"); spawner.SmartSpawning = true; spawner.MoveToWorld(new Point3D(33, 38, 13), Map.TerMur); WeakEntityCollection.Add("sa", spawner); // Teleporter ToKTeleporter t = new ToKTeleporter(); t.MoveToWorld(new Point3D(21, 99, 1), Map.TerMur); WeakEntityCollection.Add("sa", t); st = new Static(14186); // sparkle st.MoveToWorld(new Point3D(21, 99, 1), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(18304); // door st.MoveToWorld(new Point3D(18, 99, 0), Map.TerMur); WeakEntityCollection.Add("sa", st); TombOfKingsSecretDoor door = new TombOfKingsSecretDoor(18304); door.MoveToWorld(new Point3D(52, 99, 0), Map.TerMur); WeakEntityCollection.Add("sa", door); // Serpent's Breath Item flame = new FlameOfOrder(new Point3D(28, 212, 3), Map.TerMur); WeakEntityCollection.Add("sa", flame); flame = new FlameOfChaos(new Point3D(43, 212, 3), Map.TerMur); WeakEntityCollection.Add("sa", flame); st = new Static(3025); st.Name = "Order Shall Steal The Serpent's Strength"; st.MoveToWorld(new Point3D(28, 208, 4), Map.TerMur); WeakEntityCollection.Add("sa", st); st = new Static(3025); st.Name = "Chaos Shall Quell The Serpent's Wrath"; st.MoveToWorld(new Point3D(28, 208, 4), Map.TerMur); WeakEntityCollection.Add("sa", st); // Kings' Chambers ChamberLever.Generate(); Chamber.Generate(); ChamberSpawner.Generate(); CommandSystem.Handle(e.Mobile, Server.Commands.CommandSystem.Prefix + "ArisenGenerate"); e.Mobile.SendMessage("Generation completed!"); }
public Item Construct() { Item item; try { if ( m_Type == typeofStatic ) { item = new Static( m_ItemID ); } else if ( m_Type == typeofLocalizedStatic ) { int labelNumber = 0; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "LabelNumber" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { labelNumber = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); break; } } } item = new LocalizedStatic( m_ItemID, labelNumber ); } else if ( m_Type == typeofLocalizedSign ) { int labelNumber = 0; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "LabelNumber" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { labelNumber = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); break; } } } item = new LocalizedSign( m_ItemID, labelNumber ); } else if ( m_Type == typeofAnkhWest || m_Type == typeofAnkhEast ) { bool bloodied = false; for ( int i = 0; !bloodied && i < m_Params.Length; ++i ) { bloodied = ( m_Params[i] == "Bloodied" ); } if ( m_Type == typeofAnkhWest ) { item = new AnkhWest( bloodied ); } else { item = new AnkhEast( bloodied ); } } else if ( m_Type == typeofMarkContainer ) { bool bone = false; bool locked = false; Map map = Map.Malas; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i] == "Bone" ) { bone = true; } else if ( m_Params[i] == "Locked" ) { locked = true; } else if ( m_Params[i].StartsWith( "TargetMap" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { map = Map.Parse( m_Params[i].Substring( ++indexOf ) ); } } } MarkContainer mc = new MarkContainer( bone, locked ); mc.TargetMap = map; mc.Description = "strange location"; item = mc; } else if ( m_Type == typeofHintItem ) { int range = 0; int messageNumber = 0; string messageString = null; int hintNumber = 0; string hintString = null; TimeSpan resetDelay = TimeSpan.Zero; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Range" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { range = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "WarningString" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { messageString = m_Params[i].Substring( ++indexOf ); } } else if ( m_Params[i].StartsWith( "WarningNumber" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { messageNumber = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "HintString" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { hintString = m_Params[i].Substring( ++indexOf ); } } else if ( m_Params[i].StartsWith( "HintNumber" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { hintNumber = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "ResetDelay" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { resetDelay = TimeSpan.Parse( m_Params[i].Substring( ++indexOf ) ); } } } HintItem hi = new HintItem( m_ItemID, range, messageNumber, hintNumber ); hi.WarningString = messageString; hi.HintString = hintString; hi.ResetDelay = resetDelay; item = hi; } else if ( m_Type == typeofWarningItem ) { int range = 0; int messageNumber = 0; string messageString = null; TimeSpan resetDelay = TimeSpan.Zero; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Range" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { range = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "WarningString" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { messageString = m_Params[i].Substring( ++indexOf ); } } else if ( m_Params[i].StartsWith( "WarningNumber" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { messageNumber = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "ResetDelay" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { resetDelay = TimeSpan.Parse( m_Params[i].Substring( ++indexOf ) ); } } } WarningItem wi = new WarningItem( m_ItemID, range, messageNumber ); wi.WarningString = messageString; wi.ResetDelay = resetDelay; item = wi; } else if ( m_Type == typeofCannon ) { CannonDirection direction = CannonDirection.North; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "CannonDirection" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { direction = (CannonDirection) Enum.Parse( typeof( CannonDirection ), m_Params[i].Substring( ++indexOf ), true ); } } } item = new Cannon( direction ); } else if ( m_Type == typeofSerpentPillar ) { string word = null; Rectangle2D destination = new Rectangle2D(); for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Word" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { word = m_Params[i].Substring( ++indexOf ); } } else if ( m_Params[i].StartsWith( "DestStart" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { destination.Start = Point2D.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "DestEnd" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { destination.End = Point2D.Parse( m_Params[i].Substring( ++indexOf ) ); } } } item = new SerpentPillar( word, destination ); } else if ( m_Type == typeofResurrectItem ) { ResurrectMessage message = ResurrectMessage.Generic; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "ResurrectMessage" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { message = (ResurrectMessage) Enum.Parse( typeof( ResurrectMessage ), m_Params[i].Substring( ++indexOf ), true ); } } } item = new ResurrectItem( message ); } else if ( m_Type == typeofUnderworldSecretDoor ) { int closedId = 1, mediumId = 1; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "ClosedId" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { closedId = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "MediumId" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { mediumId = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } } item = new UnderworldSecretDoor( closedId, mediumId ); } else if ( m_Type == typeofTombOfKingsSecretDoor ) { int closedId = 1; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "ClosedId" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { closedId = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } } item = new TombOfKingsSecretDoor( closedId ); } else if ( m_Type == typeofVinesLockedSecretDoor ) { int closedId = 1, mediumId = 1; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "ClosedId" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { closedId = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "MediumId" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { mediumId = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } } item = new VinesLockedSecretDoor( closedId, mediumId ); } else if ( m_Type.IsSubclassOf( typeofBeverage ) ) { BeverageType content = BeverageType.Liquor; bool fill = false; for ( int i = 0; !fill && i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Content" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { content = (BeverageType) Enum.Parse( typeof( BeverageType ), m_Params[i].Substring( ++indexOf ), true ); fill = true; } } } if ( fill ) { item = (Item) Activator.CreateInstance( m_Type, new object[] { content } ); } else { item = (Item) Activator.CreateInstance( m_Type ); } } else if ( m_Type.IsSubclassOf( typeofBaseDoor ) ) { DoorFacing facing = DoorFacing.WestCW; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Facing" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { facing = (DoorFacing) Enum.Parse( typeof( DoorFacing ), m_Params[i].Substring( ++indexOf ), true ); break; } } } item = (Item) Activator.CreateInstance( m_Type, new object[] { facing } ); } else { item = (Item) Activator.CreateInstance( m_Type ); } } catch ( Exception e ) { throw new Exception( String.Format( "Bad type: {0}", m_Type ), e ); } if ( item is BaseAddon ) { if ( item is MaabusCoffin ) { MaabusCoffin coffin = (MaabusCoffin) item; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "SpawnLocation" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { coffin.SpawnLocation = Point3D.Parse( m_Params[i].Substring( ++indexOf ) ); } } } } else if ( m_ItemID > 0 ) { ArrayList comps = ( (BaseAddon) item ).AddonComponents; for ( int i = 0; i < comps.Count; ++i ) { AddonComponent comp = (AddonComponent) comps[i]; if ( comp.Offset == Point3D.Zero ) { comp.ItemID = m_ItemID; } } } } else if ( item is BaseLight ) { bool unlit = false; for ( int i = 0; !unlit && i < m_Params.Length; ++i ) { unlit = ( m_Params[i] == "Unlit" ); } if ( !unlit ) { ( (BaseLight) item ).Ignite(); } ( (BaseLight) item ).Protected = true; if ( m_ItemID > 0 ) { item.ItemID = m_ItemID; } } else if ( item is Server.Mobiles.Spawner ) { Server.Mobiles.Spawner sp = (Server.Mobiles.Spawner) item; sp.NextSpawn = TimeSpan.Zero; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Spawn" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { sp.CreaturesName.Add( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "MinDelay" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { sp.MinDelay = TimeSpan.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "MaxDelay" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { sp.MaxDelay = TimeSpan.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "NextSpawn" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { sp.NextSpawn = TimeSpan.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Count" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { sp.Count = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Team" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { sp.Team = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "HomeRange" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { sp.HomeRange = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Running" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { sp.Running = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Group" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { sp.Group = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } } } else if ( item is RecallRune ) { RecallRune rune = (RecallRune) item; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Description" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { rune.Description = m_Params[i].Substring( ++indexOf ); } } else if ( m_Params[i].StartsWith( "Marked" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { rune.Marked = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "TargetMap" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { rune.TargetMap = Map.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Target" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { rune.Target = Point3D.Parse( m_Params[i].Substring( ++indexOf ) ); } } } } else if ( item is SkillTeleporter ) { SkillTeleporter tp = (SkillTeleporter) item; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Skill" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Skill = (SkillName) Enum.Parse( typeof( SkillName ), m_Params[i].Substring( ++indexOf ), true ); } } else if ( m_Params[i].StartsWith( "RequiredFixedPoint" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Required = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ) * 0.01; } } else if ( m_Params[i].StartsWith( "Required" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Required = Utility.ToDouble( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "MessageString" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.MessageString = m_Params[i].Substring( ++indexOf ); } } else if ( m_Params[i].StartsWith( "MessageNumber" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.MessageNumber = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "PointDest" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.PointDest = Point3D.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "MapDest" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.MapDest = Map.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Creatures" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Creatures = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "SourceEffect" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.SourceEffect = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "DestEffect" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.DestEffect = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "SoundID" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.SoundID = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Delay" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Delay = TimeSpan.Parse( m_Params[i].Substring( ++indexOf ) ); } } } if ( m_ItemID > 0 ) { item.ItemID = m_ItemID; } } else if ( item is KeywordTeleporter ) { KeywordTeleporter tp = (KeywordTeleporter) item; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Substring" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Substring = m_Params[i].Substring( ++indexOf ); } } else if ( m_Params[i].StartsWith( "Keyword" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Keyword = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Range" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Range = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "PointDest" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.PointDest = Point3D.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "MapDest" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.MapDest = Map.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Creatures" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Creatures = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "SourceEffect" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.SourceEffect = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "DestEffect" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.DestEffect = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "SoundID" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.SoundID = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Delay" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Delay = TimeSpan.Parse( m_Params[i].Substring( ++indexOf ) ); } } } if ( m_ItemID > 0 ) { item.ItemID = m_ItemID; } } else if ( item is Teleporter ) { Teleporter tp = (Teleporter) item; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "PointDest" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.PointDest = Point3D.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "MapDest" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.MapDest = Map.Parse( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Creatures" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Creatures = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "SourceEffect" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.SourceEffect = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "DestEffect" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.DestEffect = Utility.ToBoolean( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "SoundID" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.SoundID = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } else if ( m_Params[i].StartsWith( "Delay" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { tp.Delay = TimeSpan.Parse( m_Params[i].Substring( ++indexOf ) ); } } } if ( m_ItemID > 0 ) { item.ItemID = m_ItemID; } } else if ( item is FillableContainer ) { FillableContainer cont = (FillableContainer) item; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "ContentType" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { cont.ContentType = (FillableContentType) Enum.Parse( typeof( FillableContentType ), m_Params[i].Substring( ++indexOf ), true ); } } } if ( m_ItemID > 0 ) { item.ItemID = m_ItemID; } } else if ( m_ItemID > 0 ) { item.ItemID = m_ItemID; } item.Movable = false; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Light" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { item.Light = (LightType) Enum.Parse( typeof( LightType ), m_Params[i].Substring( ++indexOf ), true ); } } else if ( m_Params[i].StartsWith( "Hue" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { int hue = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); if ( item is DyeTub ) { ( (DyeTub) item ).DyedHue = hue; } else { item.Hue = hue; } } } else if ( m_Params[i].StartsWith( "Name" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { item.Name = m_Params[i].Substring( ++indexOf ); } } else if ( m_Params[i].StartsWith( "Label1" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) item.Label1 = m_Params[i].Substring( ++indexOf ); } else if ( m_Params[i].StartsWith( "Label2" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) item.Label2 = m_Params[i].Substring( ++indexOf ); } else if ( m_Params[i].StartsWith( "Label3" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) item.Label3 = m_Params[i].Substring( ++indexOf ); } else if ( m_Params[i].StartsWith( "Amount" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) { // Must supress stackable warnings bool wasStackable = item.Stackable; item.Stackable = true; item.Amount = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); item.Stackable = wasStackable; } } } return item; }