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 { // Bank Music if (Utility.RandomDouble() < 0.001) { m.Send(Network.PlayMusic.GetInstance(MusicName.Stones2)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Flamestrike if (Utility.RandomDouble() < 0.01) { m.Stam -= 20; m.Mana -= 25; m.FixedParticles(0x3709, 10, 30, 5052, EffectLayer.LeftFoot); m.PlaySound(0x208); m.PlaySound(m.Female ? 814 : 1088); m.Say("*ahhhh!*"); AOS.Damage(m, Utility.Random(15, 25), 0, 100, 0, 0, 0); } // Forest Music if (Utility.RandomDouble() < 0.001) { m.Send(Network.PlayMusic.GetInstance(MusicName.Linelle)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Greater Heal if (Utility.RandomDouble() < 0.01) { m.Hits += (Utility.Random(250, 300)); m.Stam += (Utility.Random(250, 300)); m.Mana += (Utility.Random(250, 300)); m.FixedParticles(0x375A, 1, 30, 9966, 88, 2, EffectLayer.Head); m.FixedParticles(0x37B9, 1, 30, 9502, 85, 3, EffectLayer.Head); m.FixedParticles(0x376A, 1, 31, 9961, 80, 0, EffectLayer.Waist); m.FixedParticles(0x37C4, 1, 31, 9502, 88, 2, EffectLayer.Waist); m.PlaySound(0x202); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Ice Blast if (Utility.RandomDouble() < 0.01) { m.Stam -= 10; m.Mana -= 20; m.FixedParticles(0x374A, 10, 30, 5013, 1153, 2, EffectLayer.Waist); m.PlaySound(0x0FC); AOS.Damage(m, Utility.Random(15, 25), 0, 0, 100, 0, 0); } // Lightning Strike if (Utility.RandomDouble() < 0.01) { m.PlaySound(Utility.RandomList(0x5CE)); m.BoltEffect(0x480); AOS.Damage(m, Utility.RandomMinMax(12, 35), 0, 0, 0, 0, 100); } // Random Encounter 1 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Tokuno) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Tokuno.GetAverageZ(x1, y1); if (Map.Tokuno.CanSpawnMobile(x1, y1, z1)) { BaseCreature encountera; switch (Utility.Random(3)) { default: case 0: encountera = new RunningPants(); break; case 1: encountera = new RunningPants(); break; case 2: encountera = new RunningPants(); break; } encountera.MoveToWorld(new Point3D(x1, y1, z1), Map.Tokuno); encountera.Combatant = m; IceFieldIceFlame ice = new IceFieldIceFlame(); ice.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icea = new IceFieldIceFlame(); icea.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceb = new IceFieldIceFlame(); iceb.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icec = new IceFieldIceFlame(); icec.MoveToWorld(new Point3D(encountera.X, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iced = new IceFieldIceFlame(); iced.MoveToWorld(new Point3D(encountera.X, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icee = new IceFieldIceFlame(); icee.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icef = new IceFieldIceFlame(); icef.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceg = new IceFieldIceFlame(); iceg.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceh = new IceFieldIceFlame(); iceh.ItemID = 0x8e1; iceh.MoveToWorld(new Point3D(encountera.X, encountera.Y, encountera.Z + 19), encountera.Map); m.PlaySound(0x208); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Random Encounter 2 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Tokuno) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Tokuno.GetAverageZ(x2, y2); if (Map.Tokuno.CanSpawnMobile(x2, y2, z2)) { BaseCreature encountera; switch (Utility.Random(3)) { default: case 0: encountera = new RunningPants(); break; case 1: encountera = new RunningPants(); break; case 2: encountera = new RunningPants(); break; } encountera.MoveToWorld(new Point3D(x2, y2, z2), Map.Tokuno); encountera.Combatant = m; IceFieldIceFlame ice = new IceFieldIceFlame(); ice.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icea = new IceFieldIceFlame(); icea.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceb = new IceFieldIceFlame(); iceb.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icec = new IceFieldIceFlame(); icec.MoveToWorld(new Point3D(encountera.X, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iced = new IceFieldIceFlame(); iced.MoveToWorld(new Point3D(encountera.X, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icee = new IceFieldIceFlame(); icee.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icef = new IceFieldIceFlame(); icef.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceg = new IceFieldIceFlame(); iceg.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceh = new IceFieldIceFlame(); iceh.ItemID = 0x8e1; iceh.MoveToWorld(new Point3D(encountera.X, encountera.Y, encountera.Z + 19), encountera.Map); m.PlaySound(0x208); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Tamable Encounter 1 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Tokuno) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Tokuno.GetAverageZ(x1, y1); if (Map.Tokuno.CanSpawnMobile(x1, y1, z1)) { BaseCreature tameable; switch (Utility.Random(5)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new BlackBear(); break; case 2: tameable = new DireWolf(); break; case 3: tameable = new Goat(); break; case 4: tameable = new Horse(); break; } tameable.MoveToWorld(new Point3D(x1, y1, z1), Map.Tokuno); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable); } } } // Tamable Encounter 2 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Tokuno) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Tokuno.GetAverageZ(x2, y2); if (Map.Tokuno.CanSpawnMobile(x2, y2, z2)) { BaseCreature tameable; switch (Utility.Random(5)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new BlackBear(); break; case 2: tameable = new DireWolf(); break; case 3: tameable = new Goat(); break; case 4: tameable = new Horse(); break; } tameable.MoveToWorld(new Point3D(x2, y2, z2), Map.Tokuno); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable); } } } } } }
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 GMRobeExplosion) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.PlaySound(Utility.RandomList(0x307, 0x308)); } else if (item is GMRobeHoly) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.FixedParticles(0x375A, 1, 30, 9966, 88, 2, EffectLayer.Head); m.FixedParticles(0x37B9, 1, 30, 9502, 85, 3, EffectLayer.Head); m.FixedParticles(0x376A, 1, 31, 9961, 80, 0, EffectLayer.Waist); m.FixedParticles(0x37C4, 1, 31, 9502, 88, 2, EffectLayer.Waist); } else if (item is GMRobeTrailfire) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.FixedParticles(0x3709, 10, 30, 5052, EffectLayer.LeftFoot); } else { // sfx noises if (Utility.RandomDouble() < 0.02) { m.PlaySound(Utility.RandomList(0x0F5, 0x0F7, 0x0F8, 0x0FB)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // ice aura damage if (Utility.RandomDouble() < 0.010) { m.Hits -= 15; m.Stam -= 5; m.Mana -= 20; m.FixedParticles(0x374A, 10, 30, 5013, 1153, 2, EffectLayer.Waist); m.PlaySound(0x0FC); m.ApplyPoison(m, Poison.Regular); m.SendMessage("An icy aura claws at your vessel and hypothermia starts to settle in."); AOS.Damage(m, Utility.Random(15, 25), 0, 0, 100, 0, 0); } // Beelzebug Ambush 1 if (Utility.RandomDouble() < 0.012) { if (m.Map == Map.Tokuno) { int x1 = m.X + 1; int y1 = m.Y + 1; int z1 = Map.Tokuno.GetAverageZ(x1, y1); if (Map.Tokuno.CanSpawnMobile(x1, y1, z1)) { BaseCreature beelzebug = new Beelzebug(); beelzebug.MoveToWorld(new Point3D(x1, y1, z1), Map.Tokuno); beelzebug.Combatant = m; beelzebug.PlaySound(0x4E8); IceFieldIceFlame ice = new IceFieldIceFlame(); ice.MoveToWorld(new Point3D(beelzebug.X + 5, beelzebug.Y, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame icea = new IceFieldIceFlame(); icea.MoveToWorld(new Point3D(beelzebug.X + 5, beelzebug.Y + 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame iceb = new IceFieldIceFlame(); iceb.MoveToWorld(new Point3D(beelzebug.X + 5, beelzebug.Y - 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame icec = new IceFieldIceFlame(); icec.MoveToWorld(new Point3D(beelzebug.X, beelzebug.Y + 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame iced = new IceFieldIceFlame(); iced.MoveToWorld(new Point3D(beelzebug.X, beelzebug.Y - 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame icee = new IceFieldIceFlame(); icee.MoveToWorld(new Point3D(beelzebug.X - 5, beelzebug.Y, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame icef = new IceFieldIceFlame(); icef.MoveToWorld(new Point3D(beelzebug.X - 5, beelzebug.Y - 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame iceg = new IceFieldIceFlame(); iceg.MoveToWorld(new Point3D(beelzebug.X - 5, beelzebug.Y + 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame iceh = new IceFieldIceFlame(); iceh.ItemID = 0x8e1; iceh.MoveToWorld(new Point3D(beelzebug.X, beelzebug.Y, beelzebug.Z + 19), beelzebug.Map); m.PlaySound(0x208); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteBeelzebug), beelzebug); } } } // Beelzebug Ambush 2 if (Utility.RandomDouble() < 0.012) { if (m.Map == Map.Tokuno) { int x2 = m.X - 1; int y2 = m.Y - 1; int z2 = Map.Tokuno.GetAverageZ(x2, y2); if (Map.Tokuno.CanSpawnMobile(x2, y2, z2)) { BaseCreature beelzebug = new Beelzebug(); beelzebug.MoveToWorld(new Point3D(x2, y2, z2), Map.Tokuno); beelzebug.Combatant = m; beelzebug.PlaySound(0x4E8); IceFieldIceFlame ice = new IceFieldIceFlame(); ice.MoveToWorld(new Point3D(beelzebug.X + 5, beelzebug.Y, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame icea = new IceFieldIceFlame(); icea.MoveToWorld(new Point3D(beelzebug.X + 5, beelzebug.Y + 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame iceb = new IceFieldIceFlame(); iceb.MoveToWorld(new Point3D(beelzebug.X + 5, beelzebug.Y - 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame icec = new IceFieldIceFlame(); icec.MoveToWorld(new Point3D(beelzebug.X, beelzebug.Y + 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame iced = new IceFieldIceFlame(); iced.MoveToWorld(new Point3D(beelzebug.X, beelzebug.Y - 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame icee = new IceFieldIceFlame(); icee.MoveToWorld(new Point3D(beelzebug.X - 5, beelzebug.Y, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame icef = new IceFieldIceFlame(); icef.MoveToWorld(new Point3D(beelzebug.X - 5, beelzebug.Y - 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame iceg = new IceFieldIceFlame(); iceg.MoveToWorld(new Point3D(beelzebug.X - 5, beelzebug.Y + 5, beelzebug.Z), beelzebug.Map); m.PlaySound(0x208); IceFieldIceFlame iceh = new IceFieldIceFlame(); iceh.ItemID = 0x8e1; iceh.MoveToWorld(new Point3D(beelzebug.X, beelzebug.Y, beelzebug.Z + 19), beelzebug.Map); m.PlaySound(0x208); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteBeelzebug), beelzebug); } } } // Ice Fiend Ambush 1 if (Utility.RandomDouble() < 0.015) { if (m.Map == Map.Tokuno) { int x1 = m.X + 1; int y1 = m.Y + 1; int z1 = Map.Tokuno.GetAverageZ(x1, y1); if (Map.Tokuno.CanSpawnMobile(x1, y1, z1)) { BaseCreature icefiend = new IceFiend(); icefiend.MoveToWorld(new Point3D(x1, y1, z1), Map.Tokuno); icefiend.Combatant = m; icefiend.PlaySound(357); IceFieldIceFlame ice = new IceFieldIceFlame(); ice.MoveToWorld(new Point3D(icefiend.X + 5, icefiend.Y, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame icea = new IceFieldIceFlame(); icea.MoveToWorld(new Point3D(icefiend.X + 5, icefiend.Y + 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame iceb = new IceFieldIceFlame(); iceb.MoveToWorld(new Point3D(icefiend.X + 5, icefiend.Y - 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame icec = new IceFieldIceFlame(); icec.MoveToWorld(new Point3D(icefiend.X, icefiend.Y + 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame iced = new IceFieldIceFlame(); iced.MoveToWorld(new Point3D(icefiend.X, icefiend.Y - 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame icee = new IceFieldIceFlame(); icee.MoveToWorld(new Point3D(icefiend.X - 5, icefiend.Y, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame icef = new IceFieldIceFlame(); icef.MoveToWorld(new Point3D(icefiend.X - 5, icefiend.Y - 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame iceg = new IceFieldIceFlame(); iceg.MoveToWorld(new Point3D(icefiend.X - 5, icefiend.Y + 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame iceh = new IceFieldIceFlame(); iceh.ItemID = 0x8e1; iceh.MoveToWorld(new Point3D(icefiend.X, icefiend.Y, icefiend.Z + 19), icefiend.Map); m.PlaySound(0x208); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteIceFiend), icefiend); } } } // Ice Fiend Ambush 2 if (Utility.RandomDouble() < 0.015) { if (m.Map == Map.Tokuno) { int x2 = m.X - 1; int y2 = m.Y - 1; int z2 = Map.Tokuno.GetAverageZ(x2, y2); if (Map.Tokuno.CanSpawnMobile(x2, y2, z2)) { BaseCreature icefiend = new IceFiend(); icefiend.MoveToWorld(new Point3D(x2, y2, z2), Map.Tokuno); icefiend.Combatant = m; icefiend.PlaySound(357); IceFieldIceFlame ice = new IceFieldIceFlame(); ice.MoveToWorld(new Point3D(icefiend.X + 5, icefiend.Y, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame icea = new IceFieldIceFlame(); icea.MoveToWorld(new Point3D(icefiend.X + 5, icefiend.Y + 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame iceb = new IceFieldIceFlame(); iceb.MoveToWorld(new Point3D(icefiend.X + 5, icefiend.Y - 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame icec = new IceFieldIceFlame(); icec.MoveToWorld(new Point3D(icefiend.X, icefiend.Y + 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame iced = new IceFieldIceFlame(); iced.MoveToWorld(new Point3D(icefiend.X, icefiend.Y - 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame icee = new IceFieldIceFlame(); icee.MoveToWorld(new Point3D(icefiend.X - 5, icefiend.Y, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame icef = new IceFieldIceFlame(); icef.MoveToWorld(new Point3D(icefiend.X - 5, icefiend.Y - 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame iceg = new IceFieldIceFlame(); iceg.MoveToWorld(new Point3D(icefiend.X - 5, icefiend.Y + 5, icefiend.Z), icefiend.Map); m.PlaySound(0x208); IceFieldIceFlame iceh = new IceFieldIceFlame(); iceh.ItemID = 0x8e1; iceh.MoveToWorld(new Point3D(icefiend.X, icefiend.Y, icefiend.Z + 19), icefiend.Map); m.PlaySound(0x208); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteIceFiend), icefiend); } } } } } }