function Velen_Heal(pUnit)
pUnit:CastSpell(41455)
end
function Velen_Bubble(pUnit)
pUnit:CastSpell(41475)
end
function Velen_DoT(pUnit)
pUnit:CastSpellOnTarget(41471, pUnit:GetRandomPlayer(0))
end
function Velen_Smite(pUnit)
pUnite:CastSpellOnTarget(41471, pUnit:GetRandomPlayer(0))
end
function Velen_Energy(pUnit)
pUnite:CastSpellOnTarget(46008, pUnit:GetRandomPlayer(0))
end
function Velen_Bolt(pUnit)
pUnite:CastSpellOnTarget(45664, pUnit:GetRandomPlayer(0))
end
function Velen_Volley(pUnit)
pUnite:CastSpellOnTarget(45031)
end
function phase_1(pUnit, Event)
if pUnit:GetHealthPct() < 99 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "An unwise decision.")
local Choice=math.random(1, 2)
if Choice==1 then
pUnit:RegisterEvent("Velen_DoT",10000,0)
pUnit:RegisterEvent("Velen_Smite",8000,0)
elseif Choice==2 then
pUnit:RegisterEvent("Velen_Volley",8000,0)
pUnit:RegisterEvent("Velen_Bolt",9000,0)
end
pUnit:RegisterEvent("phase_2",1000, 0)
end
end
function phase_2(pUnit, Event)
if pUnit:GetHealthPct() < 85 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "I foresaw this.")
local Choice=math.random(1, 3)
if Choice==1 then
pUnit:RegisterEvent("Velen_DoT",8000,0)
pUnit:RegisterEvent("Velen_Bolt",9000,0)
pUnit:RegisterEvent("Velen_Energy",10000,0)
elseif Choice==2 then
pUnit:RegisterEvent("Velen_DoT",9000,0)
pUnit:RegisterEvent("Velen_heal",30000,0)
pUnit:RegisterEvent("Velen_Smite",8000,0)
elseif Choice==3 then
pUnit:RegisterEvent("Velen_Energy",8000,0)
pUnit:RegisterEvent("Velen_Bolt",9000,0)
pUnit:RegisterEvent("Velen_Bubble",30000,0)
pUnit:RegisterEvent("phase_3",1000, 0)
end
pUnit:RegisterEvent("phase_3",1000, 0)
end
end
function phase_3(pUnit, Event)
if pUnit:GetHealthPct() < 60 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "This is your doing.")
local Choice=math.random(1, 4)
if Choice==1 then
pUnit:RegisterEvent("Velen_DoT",7000,0)
pUnit:RegisterEvent("Velen_Bolt",8000,0)
pUnit:RegisterEvent("Velen_Energy",9000,0)
elseif Choice==2 then
pUnit:RegisterEvent("Velen_DoT",8000,0)
pUnit:RegisterEvent("Velen_heal",25000,0)
pUnit:RegisterEvent("Velen_Smite",7000,0)
elseif Choice==3 then
pUnit:RegisterEvent("Velen_Energy",7000,0)
pUnit:RegisterEvent("Velen_Bolt",8000,0)
pUnit:RegisterEvent("Velen_Bubble",25000,0)
elseif Choice==4 then
pUnit:RegisterEvent("Velen_Energy",7000,0)
pUnit:RegisterEvent("Velen_Bolt",8000,0)
pUnit:RegisterEvent("Velen_Smite",6000,0)
end
pUnit:RegisterEvent("phase_4",1000, 0)
end
end
function phase_4(pUnit, Event)
if pUnit:GetHealthPct() < 20 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "This is your doing.")
pUnit:RegisterEvent("Velen_DoT",8000,0)
pUnit:RegisterEvent("Velen_heal",20000,0)
pUnit:RegisterEvent("Velen_Bolt",8000,0)
pUnit:RegisterEvent("Velen_Smite",6000,0)
end
end
function Velen_OnCombat(pUnit, event)
function Velen_OnLeaveCombat(pUnit)
pUnit:RemoveEvents()
end
function Velen_OnKilledTarget(pUnit)
pUnit:SendChatMessage(11, 0, "How unfortunate...for you.")
pUnit:CastSpellOnTarget(40737)
end
function Velen_onDied(pUnit)
pUnit:SendChatMessage(12, 0, "Thank you...")
pUnit:RemoveEvents()
end
RegisterUnitEvent(<ID of NPC>, 1, "Velen_OnCombat")
RegisterUnitEvent(<ID of NPC>, 2, "Velen_OnLeaveCombat")
RegisterUnitEvent(<ID of NPC>, 3, "Velen_OnKilledTarget")
RegisterUnitEvent(<ID of NPC>, 4, "Velen_OnDied")