protected override void OnTick() { if (m_Item.Deleted) { return; } Mobile spawn; switch (Utility.Random(10)) { default: case 0: spawn = new AirElemental(); break; case 1: spawn = new EarthElemental(); break; case 2: spawn = new WaterElemental(); break; case 3: spawn = new FireElemental(); break; case 4: spawn = new IceElemental(); break; case 5: spawn = new SnowElemental(); break; case 6: spawn = new Efreet(); break; case 7: spawn = new BloodElemental(); break; case 8: spawn = new PoisonElemental(); break; } spawn.MoveToWorld(m_Item.Location, m_Item.Map); m_Item.Delete(); }
public override void Damage(Mobile m) { base.Damage(m); if (m.Alive) { Item item = m.FindItemOnLayer(Layer.OuterTorso); if (item is GMRobe) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); } else { if (item is BaseOuterTorso) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); } else { m.Stam -= 10; m.Mana -= 20; m.FixedParticles(0x37CC, 1, 40, 97, 3, 9917, EffectLayer.Waist); m.FixedParticles(0x374A, 1, 15, 9502, 97, 3, (EffectLayer)255); m.PlaySound(20); m.SendMessage("You feel as if your skin is freezing!!!"); m.PlaySound(m.Female ? 811 : 1085); m.Say("*oooh!*"); AOS.Damage(m, Utility.Random(5, 15), 0, 0, 100, 0, 0); } // sfx noises if (Utility.RandomDouble() < 0.02) { m.PlaySound(Utility.RandomList(0x0F5, 0x0F7, 0x0F8, 0x0FB)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Wind if (Utility.RandomDouble() < 0.25) { m.PlaySound(Utility.RandomList(0x014, 0x15, 0x016, 0x5C7)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Wind if (Utility.RandomDouble() < 0.15) { m.PlaySound(Utility.RandomList(0x014, 0x15, 0x016, 0x5C7)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Wind if (Utility.RandomDouble() < 0.08) { m.PlaySound(Utility.RandomList(0x014, 0x15, 0x016, 0x5C7)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Wind if (Utility.RandomDouble() < 0.05) { m.PlaySound(Utility.RandomList(0x014, 0x15, 0x016, 0x5C7)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Random Encounter 1 if (Utility.RandomDouble() < 0.003) { if (m.Map == Map.Tokuno) { int x1 = m.X + 10; int y1 = m.Y + 10; int z1 = Map.Tokuno.GetAverageZ(x1, y1); if (Map.Tokuno.CanSpawnMobile(x1, y1, z1)) { BaseCreature encountera; switch (Utility.Random(8)) { default: case 0: encountera = new BleakWindPredator(); break; case 1: encountera = new CrystalElemental(); break; case 2: encountera = new FrostGator(); break; case 3: encountera = new FrostOoze(); break; case 4: encountera = new FrostTroll(); break; case 5: encountera = new SnowboundRidgeback(); break; case 6: encountera = new SnowElemental(); break; case 7: encountera = new TundraMaiden(); break; } encountera.MoveToWorld(new Point3D(x1, y1, z1), Map.Tokuno); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Random Encounter 2 if (Utility.RandomDouble() < 0.003) { if (m.Map == Map.Tokuno) { int x2 = m.X - 10; int y2 = m.Y - 10; int z2 = Map.Tokuno.GetAverageZ(x2, y2); if (Map.Tokuno.CanSpawnMobile(x2, y2, z2)) { BaseCreature encountera; switch (Utility.Random(8)) { default: case 0: encountera = new BleakWindPredator(); break; case 1: encountera = new CrystalElemental(); break; case 2: encountera = new FrostGator(); break; case 3: encountera = new FrostOoze(); break; case 4: encountera = new FrostTroll(); break; case 5: encountera = new SnowboundRidgeback(); break; case 6: encountera = new SnowElemental(); break; case 7: encountera = new TundraMaiden(); break; } encountera.MoveToWorld(new Point3D(x2, y2, z2), Map.Tokuno); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } } } }