Code:
function Malchezzar_FastDrain(pUnit)
local plr = punit:GetMainTank())
if (plr ~= nil) then
pUnit:FullCastSpellOnTarget(34036,punit:GetMainTank())
end
end
function Malchezzar_AirBurst(pUnit)
local plr = pUnit:GetRandomPlayer(0))
if (plr ~= nil) then
pUnit:FullCastSpellOnTarget(32014, pUnit:GetRandomPlayer(0))
end
end
function Malchezzar_Drain(pUnit)
local plr = pUnit:GetRandomPlayer(4))
if (plr ~= nil) then
pUnit:CastSpellOnTarget(34036,pUnit:GetRandomPlayer(4))
end
end
function Malchezzar_OnCombat(pUnit)
pUnit:RegisterEvent("Malchezzar_Drain",45000,0)
pUnit:RegisterEvent("Malchezzar_Phase1",1000,0)
end
RegisterUnitEvent (600099,1,"Malchezzar_OnCombat")
RegisterUnitEvent (600099,2,"Malchezzar_onLeaveCombat")
RegisterUnitEvent (600099,4,"Malchezzar_OnDeath")
function Malchezzar_Phase1(pUnit)
if pUnit:GetHealthPct() < 45 then
pUnit:RemoveEvents()
pUnit:SendChatMessage(12,0,"I think its time you met some of my friends!")
x = pUnit:GetX();
y = pUnit:GetY();
z = pUnit:GetZ();
o = pUnit:GetO();
pUnit:SpawnCreature(600015, x, y, z, o, 15, 0);
pUnit:SpawnCreature(600015, x, y, z, o, 15, 0);
pUnit:SpawnCreature(600015, x, y, z, o, 15, 0);
pUnit:RegisterEvent("Malchezzar_Phase2",1000,0)
pUnit:RegisterEvent("Malchezzar_Drain",15000,0)
end
end
function Malchezzar_Phase2(pUnit)
if pUnit:GetHealthPct() < 20 then
pUnit:RemoveEvents()
pUnit:SendChatMessage(12,0,"I will not be killed by these mortals!")
pUnit:SetScale(4);
pUnit:CastSpell(18173)
pUnit:RegisterEvent("Malchezzar_FastDrain",2000,0)
pUnit:RegisterEvent("Malchezzar_AirBurst",90000,0)
end
end
function Malchezzar_OnLeaveCombat(pUnit,Event)
pUnit:RemoveEvents()
end
function Malchezzar_OnDeath(pUnit,Event)
pUnit:SendChatMessage(12,0,"I will not die...alone.")
pUnit:CastSpell(38973)
pUnit:RemoveEvents()
end