Code:
local NAME = "Elite Boss"
local NPCID = 500026
function Elite_OnCombat(pUnit, event, player)
Elite=pUnit
pUnit:SendChatMessage(14, 0, "Feel the earth's wrath!")
pUnit:RegisterEvent("Elite_Phase1", 1000, 0) --checks every sec
end
function Elite_OnLeaveCombat(pUnit, event, player)
pUnit:RemoveEvents()
pUnit:SendChatMessage(14, 0, "Puny mortal, you are no match for me!")
Elite:SetScale(1)
end
function Elite_OnDeath(pUnit, event, player)
pUnit:RemoveEvents()
end
function Elite_Phase1(pUnit, event, player) --Here is the first phase (All Work)
local hp = pUnit:GetHealth()
if (hp <= 725000) then
Elite:RemoveEvents()
Elite:GetRandomEnemy()
Elite:SendChatMessage(14, 0, "I see, you must really want to die!")
Elite:FullCastSpellOnTarget(30926, pUnit:GetMainTank())
Elite:RegisterEvent("Elite_Phase2", 1000, 0)
end
end
function Elite_Phase2(pUnit, event, player) -- Here is the seond phase (All work)
local hp = pUnit:GetHealth()
if (hp <= 666666) then
Elite:RemoveEvents()
Elite:GetRandomEnemy()
Elite:SendChatMessage(14, 0, "Prepare for pain!")
Elite:FullCastSpell (41107)
Elite:FullCastSpellOnTarget(50989, pUnit:GetMainTank())
Elite:RegisterEvent("Elite_Phase3", 1000, 0)
end
end
function Elite_Phase3(pUnit, event, player) -- Here is the third phase
local hp = pUnit:GetHealth()
if (hp <= 633222) then
Elite:RemoveEvents()
Elite:SendChatMessage(14, 0, "Feel the flames as they burn your flesh!")
Elite:FullCastSpellOnTarget(39055, pUnit:GetMainTank())
Elite:GetRandomEnemy()
Elite:FullCastSpell (66313)
Elite:RegisterEvent("Elite_Phase4", 1000, 0)
end
end
function Elite_Phase4(pUnit, event, player) -- Here is the fourth phase (All Work)
local hp = pUnit:GetHealth()
if (hp <= 550000) then
Elite:RemoveEvents()
Elite:SendChatMessage(14, 0, "HA HA HA! YOU FOOLISH MORTALS KNOW NOT OF WHAT YOU TRIFEL WITH!")
Elite:FullCastSpell (46967)
Elite:GetRandomEnemy()
Elite:FullCastSpell (2602)
Elite:GetRandomEnemy()
Elite:FullCastSpell (38771)
Elite:GetRandomEnemy()
Elite:FullCastSpell (17205)
Elite:RegisterEvent("Elite_Phase5", 1000, 0)
end
end
function Elite_Phase5(pUnit, event, player) -- Here is the fifth phase (All work)
local hp = pUnit:GetHealth()
if (hp <= 435000) then
Elite:RemoveEvents()
Elite:SetModel(18139)
Elite:SetScale(1.5)
Elite:SendChatMessage(14, 0, "My true form has been unleashed!")
Elite:FullCastSpellOnTarget(60870, pUnit:GetMainTank())
Elite:GetRandomEnemy()
Elite:FullCastSpell (40938)
Elite:GetRandomEnemy()
Elite:FullCastSpell (35874)
Elite:RegisterEvent("Elite_Phase6", 1000, 0)
end
end
function Elite_Phase6(pUnit, event, player) -- Here is the sixth phase (All work)
local hp = pUnit:GetHealth()
if (hp <= 335000) then
Elite:RemoveEvents()
Elite:SendChatMessage(14, 0, "Prepare to meet your makers!")
Elite:FullCastSpell (35916)
Elite:GetRandomEnemy()
Elite:FullCastSpell (31305)
Elite:GetRandomEnemy()
Elite:FullCastSpell (52208)
Elite:RegisterEvent("Elite_Phase7", 1000, 0)
end
end
function Elite_Phase7(pUnit, event, player) -- Here is the seventh phase
local hp = pUnit:GetHealth()
if (hp <= 265000) then
Elite:RemoveEvents()
Elite:SetScale(2)
Elite:SendChatMessage(14, 0, "The power of fire courses throughout my being!")
Elite:FullCastSpellOnTarget(18958, pUnit:GetMainTank())
Elite:GetRandomEnemy()
Elite:FullCastSpell (66313)
Elite:GetRandomEnemy()
Elite:FullCastSpell (45150)
Elite:RegisterEvent("Elite_Phase8", 1000, 0)
end
end
function Elite_Phase8(pUnit, event, player) -- Here is the eighth phase
local hp = pUnit:GetHealth()
if (hp <= 205000) then
Elite:RemoveEvents()
Elite:SendChatMessage(14, 0, "No, this cannot be! How can you puny mortals even think to defeat me?!")
Elite:FullCastSpellOnTarget(40832, pUnit:GetMainTank())
Elite:GetRandomEnemy()
Elite:FullCastSpell (57494)
Elite:GetRandomEnemy()
Elite:FullCastSpell (50989)
Elite:RegisterEvent("Elite_Phase9", 1000, 0)
end
end
function Elite_Phase9(pUnit, event, player) -- Here is the nineth phase
local hp = pUnit:GetHealth()
if (hp <= 165000) then
Elite:RemoveEvents()
Elite:SendChatMessage(14, 0, "Taste the power of my flames!")
Elite:FullCastSpellOnTarget(53496, pUnit:GetMainTank())
Elite:GetRandomEnemy()
Elite:FullCastSpell (16559)
Elite:GetRandomEnemy()
Elite:FullCastSpell (30971)
Elite:RegisterEvent("Elite_Phase10", 1000, 0)
end
end
function Elite_Phase10(pUnit, event, player) -- Here is the tenth phase
local hp = pUnit:GetHealth()
if (hp <= 125000) then
Elite:RemoveEvents()
Elite:SetScale(2.7)
Elite:SendChatMessage(14, 0, "A mortal shall never defeat me, for I am the god of flames!")
Elite:FullCastSpellOnTarget(72040, pUnit:GetMainTank())
Elite:GetRandomEnemy()
Elite:FullCastSpell (22436)
Elite:GetRandomEnemy()
Elite:FullCastSpell (50521)
Elite:GetRandomEnemy()
Elite:FullCastSpell (39575)
Elite:GetRandomEnemy()
Elite:FullCastSpell (15636)
Elite:RegisterEvent("Elite_Phase11", 1000, 0)
end
end
function Elite_Phase11(pUnit, event, player) -- Here is the eleventh phase (All work)
local hp = pUnit:GetHealth()
if (hp <= 35000) then
Elite:RemoveEvents()
Elite:SetScale(3.2)
Elite:SendChatMessage(14, 0, "I WILL NOT DIE!")
Elite:FullCastSpellOnTarget(36877, pUnit:GetMainTank())
Elite:FullCastSpellOnTarget(59469, pUnit:GetMainTank())
Elite:GetRandomEnemy()
Elite:FullCastSpell (32120)
Elite:GetRandomEnemy()
Elite:FullCastSpell (62396)
Elite:RegisterEvent("Elite_Phase12", 1000, 0)
end
end
function Elite_Phase12(pUnit, event, player) -- Here is the twelth phase (All work)
local hp = pUnit:GetHealth()
if (hp <= 1) then
Elite:RemoveEvents()
Elite:SetScale(1)
Elite:SetModel(5488)
Elite:SendChatMessage(12, 0, "Why must it end like this? Why coulden't I be left alone to sleep for the rest of eternity? Well..At least I may find some measure of peace this way...")
end
end
RegisterUnitEvent(500026, 1, "Elite_OnCombat")
RegisterUnitEvent(500026, 2, "Elite_OnLeaveCombat")
RegisterUnitEvent(500026, 3, "Elite_OnDeath")