protected override TimeSpan Play(int step) { switch (step) { case 0: { Effects.PlaySound(Location, Map, 0x106); Effects.SendLocationParticles(EffectItem.Create(Location, Map, EffectItem.DefaultDuration), 0x3735, 1, 182, 0xBE3); return(TimeSpan.FromSeconds(4.0)); } case 1: { Effects.PlaySound(Location, Map, 0x222); return(TimeSpan.FromSeconds(4.0)); } case 2: { Effects.PlaySound(Location, Map, 0x21F); return(TimeSpan.FromSeconds(4.0)); } default: { EffectItem dummy = EffectItem.Create(Location, Map, TimeSpan.FromSeconds(20.0)); dummy.PublicOverheadMessage(MessageType.Regular, 0x3B2, true, "* Slithering ice serpents rise to the surface to investigate the disturbance! *"); BaseCreature spawn = new GiantIceWorm(); if (!SpawnCreature(spawn)) { spawn.Delete(); } for (int i = 0; i < 3; i++) { BaseCreature snake = new IceSnake(); if (!SpawnCreature(snake)) { snake.Delete(); } } return(TimeSpan.Zero); } } }
protected override void OnTick() { i++; switch (effect) { case 1: { Item randomreg = null; switch (i) { case 4: { from.PlaySound(0x222); break; } case 8: { from.PlaySound(0x21F); break; } case 13: { from.PrivateOverheadMessage(MessageType.Regular, 0x3B2, true, "*The ground erupts with chaotic growth!*", from.NetState); from.PlaySound(0x12D); randomreg = RandomReg(); randomreg.Amount = Utility.RandomMinMax(15, 22); randomreg.MoveToWorld(p, from.Map); randomreg = RandomReg(); randomreg.MoveToWorld(new Point3D(p.X - 1, p.Y - 1, p.Z), from.Map); randomreg.Amount = Utility.RandomMinMax(14, 20); break; } case 15: { from.PlaySound(0x12D); randomreg = RandomReg(); randomreg.MoveToWorld(new Point3D(p.X, p.Y + 1, p.Z), from.Map); randomreg.Amount = Utility.RandomMinMax(13, 18); randomreg = RandomReg(); randomreg.MoveToWorld(new Point3D(p.X + 1, p.Y - 1, p.Z), from.Map); randomreg.Amount = Utility.RandomMinMax(16, 22); break; } case 17: { from.PlaySound(0x12D); randomreg = RandomReg(); randomreg.MoveToWorld(new Point3D(p.X, p.Y - 1, p.Z), from.Map); randomreg.Amount = Utility.RandomMinMax(16, 20); randomreg = RandomReg(); randomreg.MoveToWorld(new Point3D(p.X + 1, p.Y - 1, p.Z), from.Map); randomreg.Amount = Utility.RandomMinMax(14, 18); break; } case 20: { from.PlaySound(0x12D); randomreg = RandomReg(); randomreg.MoveToWorld(new Point3D(p.X + 1, p.Y + 1, p.Z), from.Map); randomreg.Amount = Utility.RandomMinMax(16, 20); randomreg = RandomReg(); randomreg.MoveToWorld(new Point3D(p.X - 1, p.Y, p.Z), from.Map); randomreg.Amount = Utility.RandomMinMax(16, 20); Stop(); break; } } break; } case 2: { switch (i) { case 4: { from.PlaySound(0x222); break; } case 8: { from.PlaySound(0x21F); break; } case 9: { from.PlaySound(0x2B0); from.PrivateOverheadMessage(MessageType.Regular, 0x3B2, true, "*Strange green tendrils rise from the ground, whipping wildly!*", from.NetState); BaseCreature WV = new WhippingVine(); WV.Map = from.Map; WV.Location = p; WV.Combatant = from; break; } } break; } case 3: { switch (i) { case 4: { from.PlaySound(0x222); break; } case 8: { from.PlaySound(0x21F); break; } case 13: { from.PrivateOverheadMessage(MessageType.Regular, 0x3B2, true, "*The sand collapses, revealing a dark hole.*", from.NetState); Item SH = new SolenHiveEntrance(); SH.MoveToWorld(p, from.Map); break; } } break; } case 4: //ToDO Ice Worm { switch (i) { case 4: { from.PlaySound(0x222); break; } case 8: { from.PlaySound(0x21F); break; } case 12: { from.PrivateOverheadMessage(MessageType.Regular, 0x3B2, true, "*Slithering ice serpaents rise to the surface to investigate the disturbance!*", from.NetState); BaseCreature IW = new GiantIceWorm(); IW.Map = from.Map; IW.Location = p; IW.Combatant = from; for (int j = 0; j < 3; j++) { BaseCreature IS = new IceSnake(); IS.Map = from.Map; IS.Location = p; IS.Combatant = from; } break; } } break; } case 5: { switch (i) { case 4: { Item hole = new Item(0X913); hole.MoveToWorld(p, from.Map); hole.Movable = false; temp = hole; from.PlaySound(0x222); break; } case 8: { from.PlaySound(0x21F); break; } case 12: { from.PrivateOverheadMessage(MessageType.Regular, 0x3B2, true, "*A magical bunny leaps out of its hole, disturbed by the thorn's effect!*", from.NetState); BaseCreature VB = new VorpalBunny(); VB.Map = from.Map; VB.Location = p; VB.Combatant = from; ((Item)temp).Delete(); break; } } break; } } }