1. local NPC_ID = 600004
  2. local METEOR = 41276
  3. local function ShaOfLust_OnCombat (event, creature, unit)
  4. local TARGET = creature:GetAITarget(1, true, 0, 45)
  5. creature:CastSpell(TARGET, 66552, true)
  6. unit:RegisterEvent(PhaseOne, 1000, 0)
  7. end
  8. local function PhaseOne (event, creature, unit)
  9. if (creature:GetHealthPct() <= 90) then
  10. unit:RemoveEvents()
  11. local TARGET2 = creature:GetAITarget(0, true, 0, 45)
  12. creature:CastSpell(TARGET2, 59351, true)
  13. unit:RegisterEvent(PhaseTwo, 1000, 0)
  14. end
  15. end
  16. local function PhaseTwo (event, creature, unit)
  17. if (creature:GetHealthPct() <= 75) then
  18. unit:RemoveEvents()
  19. creature:JumpToCoords(10322.841797, -6302.415039, 26.328140, 10, 10)
  20. creature:CastSpellAoF(10289.741211, -6288.017578, 26.145884, 41276, true) --one
  21. creature:CastSpellAoF(10297.828125, -6280.993652, 26.863653, 41276, true) --two
  22. creature:CastSpellAoF(10306.276367, -6276.641602, 27.530766, 41276, true) --three
  23. creature:CastSpellAoF(10289.741211, -6288.017578, 26.145884, 41276, true) --four
  24. creature:CastSpellAoF(10297.828125, -6280.993652, 26.863653, 41276, true) --five
  25. creature:CastSpellAoF(10306.276367, -6276.641602, 27.530766, 41276, true) --six
  26. unit:RegisterEvent(PhaseThree, 1000, 0)
  27. end
  28. end
  29. local function PhaseThree (event, creature, unit)
  30. if (creature:GetHealthPct() <= 30) then
  31. unit:RemoveEvents()
  32. local TARGET3 = creature:GetAITarget(1, true, 0, 45)
  33. creature:JumpToCoords(10329.123047, -6280.8548980, 26.420488, 10, 10)
  34. creature:CastSpell(TARGET3, 59351, true)
  35. unit:RegisterEvent(PhaseEnd, 1000, 0)
  36. end
  37. end
  38. local function PhaseEnd (event, creature, unit)
  39. if (creature:GetHealthPct() <= 10) then
  40. unit:RemoveEvents()
  41. creature:CastSpell(74458)
  42. creature:SendUnitSay("It would appear that I have been beaten, please forgive me.", 0)
  43. unit:RegisterEvent(Suicide, 6000, 1)
  44. end
  45. end
  46. local function Suicide (event, creature, unit)
  47. if (creature:GetAura(74458) == true) then
  48. creature:SendUnitSay("I will not let me blood stain your hands, I will rid this world of myself", 0)
  49. creature:CastSpell(creature, 7, true)
  50. end
  51. end
  52. RegisterCreatureEvent(NPC_ID, 1, ShaOfLust_OnCombat)

LUA Sha of Lust Script