public override void IncreaseTier() { base.IncreaseTier(); List<object> list = new List<object>(); Item c; // don't know names above lev 6 switch ( this.Tier ) { case 1: c = new BookOfChivalry(); c.MoveToWorld(new Point3D(2924, 979, -18), this.Map); c.Movable = false; list.Add(c); c = new Longsword(); c.MoveToWorld(new Point3D(2923, 980, -18), this.Map); c.Movable = false; c.ItemID = 0x26CF; list.Add(c); c = new Shirt(); c.MoveToWorld(new Point3D(2924, 978, -18), this.Map); c.Movable = false; c.ItemID = 0x2662; c.Name = "Crisp White Shirt"; list.Add(c); break; case 2: c = new GraveDust(); c.MoveToWorld(new Point3D(2921, 972, -17), this.Map); c.Movable = false; list.Add(c); c = new NoxCrystal(); c.MoveToWorld(new Point3D(2921, 972, -17), this.Map); c.Movable = false; list.Add(c); c = new Static(0xF91); c.MoveToWorld(new Point3D(2921, 972, -17), this.Map); c.Movable = false; list.Add(c); c = new NecromancerSpellbook(); c.MoveToWorld(new Point3D(2922, 972, -18), this.Map); c.Movable = false; list.Add(c); c = new AnimateDeadScroll(); c.MoveToWorld(new Point3D(2923, 972, -18), this.Map); c.Movable = false; list.Add(c); c = new HorrificBeastScroll(); c.MoveToWorld(new Point3D(2923, 972, -18), this.Map); c.Movable = false; list.Add(c); c = new VampiricEmbraceScroll(); c.MoveToWorld(new Point3D(2923, 971, -20), this.Map); c.Movable = false; list.Add(c); c = new Static(0xFDD); c.MoveToWorld(new Point3D(2922, 971, -21), this.Map); list.Add(c); c = new Static(0xFDE); c.MoveToWorld(new Point3D(2923, 971, -21), this.Map); list.Add(c); break; case 3: c = new JesterSuit(); c.MoveToWorld(new Point3D(2919, 985, -16), this.Map); c.Movable = false; list.Add(c); c = new LocalizedStatic(0xE74, 1073424); c.MoveToWorld(new Point3D(2919, 984, -11), this.Map); c.Movable = false; c.Weight = 50.0; c.Hue = 0x113; list.Add(c); c = new JesterHat(); c.MoveToWorld(new Point3D(2919, 983, -13), this.Map); c.Movable = false; c.Hue = 0x113; list.Add(c); break; case 4: c = new Static(0xD25); c.MoveToWorld(new Point3D(2916, 984, -13), this.Map); c.Movable = false; list.Add(c); c = new Static(0x20D9); c.MoveToWorld(new Point3D(2916, 982, -12), this.Map); c.Name = "Gargoyle"; list.Add(c); c = new Static(0x2132); c.MoveToWorld(new Point3D(2914, 982, -9), this.Map); list.Add(c); c = new Static(0x25B6); c.MoveToWorld(new Point3D(2913, 982, -13), this.Map); list.Add(c); c = new Static(0x25B6); c.MoveToWorld(new Point3D(2913, 982, -13), this.Map); list.Add(c); c = new Static(0x222E); c.MoveToWorld(new Point3D(2915, 983, -14), this.Map); list.Add(c); c = new Static(0x2211); c.MoveToWorld(new Point3D(2914, 984, -13), this.Map); list.Add(c); break; case 5: c = new LocalizedStatic(0xE30, 1073421); c.MoveToWorld(new Point3D(2911, 983, -12), this.Map); c.Weight = 10.0; list.Add(c); c = new LocalizedStatic(0x2937, 1073422); c.MoveToWorld(new Point3D(2911, 984, -13), this.Map); list.Add(c); c = new LocalizedStatic(0x12AA, 1073423); c.MoveToWorld(new Point3D(2911, 985, -14), this.Map); list.Add(c); c = new Static(0xEAF); c.MoveToWorld(new Point3D(2910, 985, -21), this.Map); c.Weight = 5.0; list.Add(c); c = new Static(0xEAE); c.MoveToWorld(new Point3D(2910, 986, -21), this.Map); c.Weight = 5.0; list.Add(c); break; case 6: c = new Tessen(); c.MoveToWorld(new Point3D(2910, 966, -17), this.Map); c.Movable = false; list.Add(c); c = new Shuriken(); c.MoveToWorld(new Point3D(2910, 965, -17), this.Map); c.Movable = false; list.Add(c); c = new Static(0x2855); c.MoveToWorld(new Point3D(2910, 964, -16), this.Map); c.Weight = 5.0; list.Add(c); c = new Static(0x241D); c.MoveToWorld(new Point3D(2910, 963, -20), this.Map); c.Weight = 5.0; list.Add(c); c = new Static(0x2409); c.MoveToWorld(new Point3D(2910, 963, -17), this.Map); list.Add(c); c = new Static(0x2416); c.MoveToWorld(new Point3D(2909, 965, -17), this.Map); list.Add(c); break; case 7: c = new Static(0x3069); c.MoveToWorld(new Point3D(2914, 964, -21), this.Map); list.Add(c); c = new Static(0x306A); c.MoveToWorld(new Point3D(2913, 964, -21), this.Map); list.Add(c); c = new Static(0x306B); c.MoveToWorld(new Point3D(2912, 964, -21), this.Map); list.Add(c); c = new ElvenLoveseatEastAddon(); c.MoveToWorld(new Point3D(2913, 966, -21), this.Map); c.Movable = false; list.Add(c); c = new Static(0x2CFC); c.MoveToWorld(new Point3D(2912, 963, -21), this.Map); list.Add(c); c = new LocalizedStatic(0x2D74, 1073425); c.MoveToWorld(new Point3D(2914, 963, -21), this.Map); list.Add(c); break; case 8: c = new Static(0x2); c.MoveToWorld(new Point3D(2905, 970, -15), this.Map); list.Add(c); c = new Static(0x3); c.MoveToWorld(new Point3D(2905, 969, -15), this.Map); list.Add(c); c = new OrderShield(); c.MoveToWorld(new Point3D(2905, 971, -17), this.Map); c.Movable = false; list.Add(c); c = new Static(0x1579); c.MoveToWorld(new Point3D(2904, 971, -21), this.Map); list.Add(c); c = new Static(0x1613); c.MoveToWorld(new Point3D(2908, 969, -21), this.Map); list.Add(c); c = new Static(0x1614); c.MoveToWorld(new Point3D(2908, 968, -21), this.Map); list.Add(c); break; case 9: c = new Static(0x1526); c.MoveToWorld(new Point3D(2905, 976, -15), this.Map); list.Add(c); c = new Static(0x1527); c.MoveToWorld(new Point3D(2905, 975, -15), this.Map); list.Add(c); c = new Static(0x151A); c.MoveToWorld(new Point3D(2905, 972, -21), this.Map); list.Add(c); c = new Static(0x151A); c.MoveToWorld(new Point3D(2905, 977, -21), this.Map); list.Add(c); c = new Static(0x151A); c.MoveToWorld(new Point3D(2908, 972, -21), this.Map); list.Add(c); c = new Static(0x151A); c.MoveToWorld(new Point3D(2908, 977, -21), this.Map); list.Add(c); c = new Static(0x1514); c.MoveToWorld(new Point3D(2904, 975, -17), this.Map); list.Add(c); break; case 10: c = new Static(0x15C5); c.MoveToWorld(new Point3D(2904, 982, -21), this.Map); list.Add(c); c = new Static(0x15C5); c.MoveToWorld(new Point3D(2904, 979, -21), this.Map); list.Add(c); c = new Static(0x157B); c.MoveToWorld(new Point3D(2904, 981, -21), this.Map); list.Add(c); c = new Static(0x14E3); c.MoveToWorld(new Point3D(2905, 980, -21), this.Map); list.Add(c); c = new Static(0x14E4); c.MoveToWorld(new Point3D(2905, 981, -21), this.Map); list.Add(c); c = new Static(0x14E5); c.MoveToWorld(new Point3D(2906, 981, -21), this.Map); list.Add(c); c = new Static(0x14E6); c.MoveToWorld(new Point3D(2906, 980, -21), this.Map); list.Add(c); c = new ChaosShield(); c.MoveToWorld(new Point3D(2905, 978, -19), this.Map); c.Movable = false; list.Add(c); break; case 11: c = new FemaleStuddedChest(); c.MoveToWorld(new Point3D(2912, 976, -16), this.Map); c.Movable = false; c.Hue = 0x497; list.Add(c); c = new Static(0x1EA8); c.MoveToWorld(new Point3D(2913, 973, -13), this.Map); c.Hue = 0x497; list.Add(c); c = new Static(0x20F8); c.MoveToWorld(new Point3D(2913, 975, -11), this.Map); c.Hue = 0x113; list.Add(c); c = new Static(0x20E9); c.MoveToWorld(new Point3D(2912, 974, -11), this.Map); c.Name = "Troll"; list.Add(c); c = new Static(0x2607); c.MoveToWorld(new Point3D(2913, 974, -11), this.Map); list.Add(c); c = new Static(0x25F9); c.MoveToWorld(new Point3D(2912, 975, -11), this.Map); list.Add(c); break; case 12: c = new Static(0x1D8A); c.MoveToWorld(new Point3D(2915, 976, -13), this.Map); list.Add(c); c = new Static(0x1D8B); c.MoveToWorld(new Point3D(2916, 976, -13), this.Map); list.Add(c); c = new Static(0x234D); c.MoveToWorld(new Point3D(2915, 975, -10), this.Map); list.Add(c); c = new WizardsHat(); c.MoveToWorld(new Point3D(2915, 974, -13), this.Map); c.Movable = false; list.Add(c); break; } if (list.Count > 0) this.Tiers.Add(list); }
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 { item = (Item)Activator.CreateInstance( m_Type ); } } catch ( Exception e ) { throw new Exception( String.Format( "Bad type: {0}", m_Type ), e ); } if ( item is Server.Items.SpawnsOverseer ) { Server.Items.SpawnsOverseer sp = (Server.Items.SpawnsOverseer)item; for ( int i = 0; i < m_Params.Length; ++i ) { if ( m_Params[i].StartsWith( "Range" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) sp.Range = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } else if ( m_Params[i].StartsWith( "InRangeDelay" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) sp.InRangeDelay = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } else if ( m_Params[i].StartsWith( "OutRangeDelay" ) ) { int indexOf = m_Params[i].IndexOf( '=' ); if ( indexOf >= 0 ) sp.OutRangeDelay = Utility.ToInt32( m_Params[i].Substring( ++indexOf ) ); } } } 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( "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; }
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.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 ) { List<AddonComponent> comps = ((BaseAddon)item).Components; 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( "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; }
public override void IncreaseTier() { base.IncreaseTier(); List <object> list = new List <object>(); Item c; // don't know names above lev 6 switch (Tier) { case 1: c = new BookOfChivalry(); c.MoveToWorld(new Point3D(2924, 979, -18), Map); c.Movable = false; list.Add(c); c = new Longsword(); c.MoveToWorld(new Point3D(2923, 980, -18), Map); c.Movable = false; c.ItemID = 0x26CF; list.Add(c); c = new Shirt(); c.MoveToWorld(new Point3D(2924, 978, -18), Map); c.Movable = false; c.ItemID = 0x2662; c.Name = "Crisp White Shirt"; list.Add(c); break; case 2: c = new GraveDust(); c.MoveToWorld(new Point3D(2921, 972, -17), Map); c.Movable = false; list.Add(c); c = new NoxCrystal(); c.MoveToWorld(new Point3D(2921, 972, -17), Map); c.Movable = false; list.Add(c); c = new Static(0xF91); c.MoveToWorld(new Point3D(2921, 972, -17), Map); c.Movable = false; list.Add(c); c = new NecromancerSpellbook(); c.MoveToWorld(new Point3D(2922, 972, -18), Map); c.Movable = false; list.Add(c); c = new AnimateDeadScroll(); c.MoveToWorld(new Point3D(2923, 972, -18), Map); c.Movable = false; list.Add(c); c = new HorrificBeastScroll(); c.MoveToWorld(new Point3D(2923, 972, -18), Map); c.Movable = false; list.Add(c); c = new VampiricEmbraceScroll(); c.MoveToWorld(new Point3D(2923, 971, -20), Map); c.Movable = false; list.Add(c); c = new Static(0xFDD); c.MoveToWorld(new Point3D(2922, 971, -21), Map); list.Add(c); c = new Static(0xFDE); c.MoveToWorld(new Point3D(2923, 971, -21), Map); list.Add(c); break; case 3: c = new JesterSuit(); c.MoveToWorld(new Point3D(2919, 985, -16), Map); c.Movable = false; list.Add(c); c = new LocalizedStatic(0xE74, 1073424); c.MoveToWorld(new Point3D(2919, 984, -11), Map); c.Movable = false; c.Weight = 50.0; c.Hue = 0x113; list.Add(c); c = new JesterHat(); c.MoveToWorld(new Point3D(2919, 983, -13), Map); c.Movable = false; c.Hue = 0x113; list.Add(c); break; case 4: c = new Static(0xD25); c.MoveToWorld(new Point3D(2916, 984, -13), Map); c.Movable = false; list.Add(c); c = new Static(0x20D9); c.MoveToWorld(new Point3D(2916, 982, -12), Map); c.Name = "Gargoyle"; list.Add(c); c = new Static(0x2132); c.MoveToWorld(new Point3D(2914, 982, -9), Map); list.Add(c); c = new Static(0x25B6); c.MoveToWorld(new Point3D(2913, 982, -13), Map); list.Add(c); c = new Static(0x25B6); c.MoveToWorld(new Point3D(2913, 982, -13), Map); list.Add(c); c = new Static(0x222E); c.MoveToWorld(new Point3D(2915, 983, -14), Map); list.Add(c); c = new Static(0x2211); c.MoveToWorld(new Point3D(2914, 984, -13), Map); list.Add(c); break; case 5: c = new LocalizedStatic(0xE30, 1073421); c.MoveToWorld(new Point3D(2911, 983, -12), Map); c.Weight = 10.0; list.Add(c); c = new LocalizedStatic(0x2937, 1073422); c.MoveToWorld(new Point3D(2911, 984, -13), Map); list.Add(c); c = new LocalizedStatic(0x12AA, 1073423); c.MoveToWorld(new Point3D(2911, 985, -14), Map); list.Add(c); c = new Static(0xEAF); c.MoveToWorld(new Point3D(2910, 985, -21), Map); c.Weight = 5.0; list.Add(c); c = new Static(0xEAE); c.MoveToWorld(new Point3D(2910, 986, -21), Map); c.Weight = 5.0; list.Add(c); break; case 6: c = new Tessen(); c.MoveToWorld(new Point3D(2910, 966, -17), Map); c.Movable = false; list.Add(c); c = new Shuriken(); c.MoveToWorld(new Point3D(2910, 965, -17), Map); c.Movable = false; list.Add(c); c = new Static(0x2855); c.MoveToWorld(new Point3D(2910, 964, -16), Map); c.Weight = 5.0; list.Add(c); c = new Static(0x241D); c.MoveToWorld(new Point3D(2910, 963, -20), Map); c.Weight = 5.0; list.Add(c); c = new Static(0x2409); c.MoveToWorld(new Point3D(2910, 963, -17), Map); list.Add(c); c = new Static(0x2416); c.MoveToWorld(new Point3D(2909, 965, -17), Map); list.Add(c); break; case 7: c = new Static(0x3069); c.MoveToWorld(new Point3D(2914, 964, -21), Map); list.Add(c); c = new Static(0x306A); c.MoveToWorld(new Point3D(2913, 964, -21), Map); list.Add(c); c = new Static(0x306B); c.MoveToWorld(new Point3D(2912, 964, -21), Map); list.Add(c); c = new ElvenLoveseatEastAddon(); c.MoveToWorld(new Point3D(2913, 966, -21), Map); c.Movable = false; list.Add(c); c = new Static(0x2CFC); c.MoveToWorld(new Point3D(2912, 963, -21), Map); list.Add(c); c = new LocalizedStatic(0x2D74, 1073425); c.MoveToWorld(new Point3D(2914, 963, -21), Map); list.Add(c); break; case 8: c = new Static(0x2); c.MoveToWorld(new Point3D(2905, 970, -15), Map); list.Add(c); c = new Static(0x3); c.MoveToWorld(new Point3D(2905, 969, -15), Map); list.Add(c); c = new OrderShield(); c.MoveToWorld(new Point3D(2905, 971, -17), Map); c.Movable = false; list.Add(c); c = new Static(0x1579); c.MoveToWorld(new Point3D(2904, 971, -21), Map); list.Add(c); c = new Static(0x1613); c.MoveToWorld(new Point3D(2908, 969, -21), Map); list.Add(c); c = new Static(0x1614); c.MoveToWorld(new Point3D(2908, 968, -21), Map); list.Add(c); break; case 9: c = new Static(0x1526); c.MoveToWorld(new Point3D(2905, 976, -15), Map); list.Add(c); c = new Static(0x1527); c.MoveToWorld(new Point3D(2905, 975, -15), Map); list.Add(c); c = new Static(0x151A); c.MoveToWorld(new Point3D(2905, 972, -21), Map); list.Add(c); c = new Static(0x151A); c.MoveToWorld(new Point3D(2905, 977, -21), Map); list.Add(c); c = new Static(0x151A); c.MoveToWorld(new Point3D(2908, 972, -21), Map); list.Add(c); c = new Static(0x151A); c.MoveToWorld(new Point3D(2908, 977, -21), Map); list.Add(c); c = new Static(0x1514); c.MoveToWorld(new Point3D(2904, 975, -17), Map); list.Add(c); break; case 10: c = new Static(0x15C5); c.MoveToWorld(new Point3D(2904, 982, -21), Map); list.Add(c); c = new Static(0x15C5); c.MoveToWorld(new Point3D(2904, 979, -21), Map); list.Add(c); c = new Static(0x157B); c.MoveToWorld(new Point3D(2904, 981, -21), Map); list.Add(c); c = new Static(0x14E3); c.MoveToWorld(new Point3D(2905, 980, -21), Map); list.Add(c); c = new Static(0x14E4); c.MoveToWorld(new Point3D(2905, 981, -21), Map); list.Add(c); c = new Static(0x14E5); c.MoveToWorld(new Point3D(2906, 981, -21), Map); list.Add(c); c = new Static(0x14E6); c.MoveToWorld(new Point3D(2906, 980, -21), Map); list.Add(c); c = new ChaosShield(); c.MoveToWorld(new Point3D(2905, 978, -19), Map); c.Movable = false; list.Add(c); break; case 11: c = new FemaleStuddedChest(); c.MoveToWorld(new Point3D(2912, 976, -16), Map); c.Movable = false; c.Hue = 0x497; list.Add(c); c = new Static(0x1EA8); c.MoveToWorld(new Point3D(2913, 973, -13), Map); c.Hue = 0x497; list.Add(c); c = new Static(0x20F8); c.MoveToWorld(new Point3D(2913, 975, -11), Map); c.Hue = 0x113; list.Add(c); c = new Static(0x20E9); c.MoveToWorld(new Point3D(2912, 974, -11), Map); c.Name = "Troll"; list.Add(c); c = new Static(0x2607); c.MoveToWorld(new Point3D(2913, 974, -11), Map); list.Add(c); c = new Static(0x25F9); c.MoveToWorld(new Point3D(2912, 975, -11), Map); list.Add(c); break; case 12: c = new Static(0x1D8A); c.MoveToWorld(new Point3D(2915, 976, -13), Map); list.Add(c); c = new Static(0x1D8B); c.MoveToWorld(new Point3D(2916, 976, -13), Map); list.Add(c); c = new Static(0x234D); c.MoveToWorld(new Point3D(2915, 975, -10), Map); list.Add(c); c = new WizardsHat(); c.MoveToWorld(new Point3D(2915, 974, -13), Map); c.Movable = false; list.Add(c); break; } if (list.Count > 0) { Tiers.Add(list); } }