Code:
function Shadow_Shadownova1(pUnit, Event)
if pUnit:GetHealthPct() <= 50 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0 ,"Feel The Power of The Shadow")
pUnit:FullCastSpell(38627)
pUnit:RegisterEvent("Shadow_Shadowbolt", 2200, 0)
pUnit:RegisterEvent("Shadow_Shadowbolt2", 10000, 0)
pUnit:RegisterEvent("Shadow_Summon",60000, 0)
pUnit:RegisterEvent("Shadow_Spike", 15000, 0)
pUnit:RegisterEvent("Shadow_Rain", 45000, 0)
pUnit:RegisterEvent("Shadow_Shadowcleave", 35000, 0)
pUnit:RegisterEvent("Shadow_Shadowboltv", 20000, 0)
pUnit:RegisterEvent("Shadow_Shadownova2", 30000, 0)
pUnit:RegisterEvent("Shadow_Crushingshadows", 16000, 0)
pUnit:RegisterEvent("Shadow_Shadowburst", 1000, 0)
end
end
function Shadow_Shadownova2(pUnit, Event)
pUnit:CastSpellOnTarget(40737, pUnit:GetMainTank())
end
function Shadow_Shadowbolt(pUnit, Event)
pUnit:FullCastSpellOnTarget(29487, pUnit:GetMainTank())
end
function Shadow_Crushingshadows(pUnit, Event)
pUnit:CastSpell(40243)
end
function Shadow_Mos(pUnit, Event)
if pUnit:GetHealthPct() <= 60 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "You Will Die...")
pUnit:FullCastSpellOnTarget(30937, pUnit:GetMainTank())
pUnit:RegisterEvent("Shadow_Shadownova1", 1000, 0)
pUnit:RegisterEvent("Shadow_Shadowbolt", 2200, 0)
pUnit:RegisterEvent("Shadow_Shadowbolt2", 10000, 0)
pUnit:RegisterEvent("Shadow_Summon",60000, 0)
pUnit:RegisterEvent("Shadow_Spike", 15000, 0)
pUnit:RegisterEvent("Shadow_Rain", 45000, 0)
pUnit:RegisterEvent("Shadow_Shadowcleave", 35000, 0)
pUnit:RegisterEvent("Shadow_Shadowboltv", 20000, 0)
pUnit:RegisterEvent("Shadow_Crushingshadows", 12000, 0)
end
end
function Shadow_Shadowbolt2(pUnit, Event)
pUnit:FullCastSpellOnTarget(38378, pUnit:GetMainTank())
end
function Shadow_Shadowboltv(pUnit, Event)
pUnit:CastSpellOnTarget(39175, pUnit:GetMainTank())
end
function Shadow_Shadowburst(pUnit, Event)
if pUnit:GetHealthPct() <= 40 then
pUnit:RemoveEvents();
pUnit:FullCastSpell(34360)
pUnit:RegisterEvent("Shadow_Shadowbolt", 2200, 0)
pUnit:RegisterEvent("Shadow_Shadowbolt2", 10000, 0)
pUnit:RegisterEvent("Shadow_Summon",60000, 0)
pUnit:RegisterEvent("Shadow_Spike", 15000, 0)
pUnit:RegisterEvent("Shadow_Rain", 45000, 0)
pUnit:RegisterEvent("Shadow_Shadowcleave", 35000, 0)
pUnit:RegisterEvent("Shadow_Shadowboltv", 20000, 0)
pUnit:RegisterEvent("Shadow_Shadownova2", 30000, 0)
pUnit:RegisterEvent("Shadow_Crushingshadows", 16000, 0)
pUnit:RegisterEvent("Shadow_Shadowofdeath", 1000, 0)
end
end
function Shadow_Shadowcleave(pUnit, Event)
pUnit:CastSpellOnTarget(30495, pUnit:GetMainTank())
end
function Shadow_Shadowofdeath(pUnit, Event)
if pUnit:GetHealthPct() <=10 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "I WILL NOT DIE ALONE!!!!!!")
pUnit:FullCastSpellOnTarget(40251, pUnit:GetMainTank())
pUnit:RegisterEvent("Shadow_Shadowbolt", 2200, 0)
pUnit:RegisterEvent("Shadow_Shadowbolt2", 10000, 0)
pUnit:RegisterEvent("Shadow_Summon",60000, 0)
pUnit:RegisterEvent("Shadow_Spike", 15000, 0)
pUnit:RegisterEvent("Shadow_Rain", 45000, 0)
pUnit:RegisterEvent("Shadow_Shadowcleave", 35000, 0)
pUnit:RegisterEvent("Shadow_Shadowboltv", 20000, 0)
pUnit:RegisterEvent("Shadow_Shadownova2", 30000, 0)
pUnit:RegisterEvent("Shadow_Crushingshadows", 16000, 0)
end
end
function Shadow_Rain(pUnit, Event)
pUnit:CastSpell(37369)
end
function Shadow_Spike(pUnit, Event)
pUnit:CastSpellOnTarget(45885, pUnit:GetMainTank())
end
function Shadow_Summon(pUnit, Event)
pUnit:SendChatMessage(14, 0, "Come, Come and aid me.")
pUnit:FullCastSpell(33540)
end
function Shadow_OnCombat(Unit, Event)
Unit:RegisterEvent("Shadow_Shadowbolt", 2000, 0)
Unit:RegisterEvent("Shadow_Shadowbolt2", 10000, 0)
Unit:RegisterEvent("Shadow_Summon",60000, 0)
Unit:RegisterEvent("Shadow_Spike", 15000, 0)
Unit:RegisterEvent("Shadow_Rain", 45000, 0)
Unit:RegisterEvent("Shadow_Shadowcleave", 35000, 0)
Unit:RegisterEvent("Shadow_Shadowboltv", 20000, 0)
Unit:RegisterEvent("Shadow_Shadownova2", 30000, 0)
Unit:RegisterEvent("Shadow_Crushingshadows", 16000, 0)
Unit:RegisterEvent("Shadow_Mos", 1000, 0)
end
function Shadow_Leave(Unit, Event)
Unit:RemoveEvents();
end
function Shadow_Died(Unit, Event)
Unit:RemoveEvents();
end
RegisterUnitEvent(85001, 1, "Shadow_OnCombat")
RegisterUnitEvent(85001, 2, "Shadow_Leave")
RegisterUnitEvent(85001, 4, "Shadow_Died")
If you notice in some of the events i was forced to use CastSpell instead of FullCastSpell because the npc will not have enough time to cast that spell.