--NPC Entry--
local NPC_ID = 50001
--Spells--
local function spell_1(eventId, delay, calls, creature)
creature:CastSpell(creature, 75159, true)
end
local function spell_2(eventId, delay, calls, creature)
creature:CastSpell(creature, 48463, false) -- Starfire
end
local function spell_3(eventId, delay, calls, creature)
creature:CastSpell(creature, 17233, true) -- Lay on Hands
end
-- Phases --
local function TOT(event, delay, pCall, creature, player, killed)
if (creature:GetHealthPct() <= 0) then
creature:SendUnitYell("Congratz, You have defeated me!", 1)
creature:RemoveEvents()
end
end
local function reset(event, delay, pCall, creature, player, killed)
if (creature:GetHealthPct() >= 95) then
creature:RemoveEvents()
creature:SendUnitYell("Feels good to be back alive", 1)
creature:RegisterEvent(spell_1, 1000, 0)
creature:RegisterEvent(Phase2, 1000, 0)
end
end
local function PhaseEnd(event, delay, pCall, creature, player, killed)
if (creature:GetHealthPct() <= 10) then
creature:RemoveEvents()
creature:SendUnitYell("How is this even possible !!!", 1)
creature:RegisterEvent(spell_3, 500, 1)
creature:RegisterEvent(reset, 1000, 0)
end
end
local function Phase6(event, delay, pCall, creature)
if (creature:GetHealthPct() <= 15) then
creature:RemoveEvents()
creature:SetDisplayId(2281)
creature:RegisterEvent(spell_2, 5500, 0)
creature:RegisterEvent(PhaseEnd, 1000, 0)
end
end
local function Phase5(event, delay, pCall, creature)
if (creature:GetHealthPct() <= 30) then
creature:RemoveEvents()
creature:SetDisplayId(892)
creature:RegisterEvent(spell_1, 1000, 0)
creature:RegisterEvent(Phase6, 1000, 0)
end
end
local function Phase4(event, delay, pCall, creature)
if (creature:GetHealthPct() <= 50) then
creature:RemoveEvents()
creature:SetDisplayId(15374)
creature:RegisterEvent(spell_2, 5500, 0)
creature:RegisterEvent(Phase5, 1000, 0)
end
end
local function Phase3(event, delay, pCall, creature)
if (creature:GetHealthPct() <= 60) then
creature:RemoveEvents()
creature:SetDisplayId(892)
creature:RegisterEvent(spell_1, 1000, 0)
creature:RegisterEvent(Phase4, 1000, 0)
end
end
local function Phase2(event, delay, pCall, creature)
if (creature:GetHealthPct() <= 80) then
creature:RemoveEvents()
creature:SetDisplayId(15374)
creature:RegisterEvent(spell_2, 2000, 1)
creature:RegisterEvent(Phase3, 1000, 0)
end
end
local function Phase1(event, delay, pCall, creature, player)
if (creature:GetHealthPct() <= 100) then
creature:RemoveEvents()
creature:SetDisplayId(892)
creature:RegisterEvent(spell_1, 1000, 0)
creature:RegisterEvent(Phase2, 1000, 0)
end
end
local function OnEnterCombat(event, creature, target, player)
creature:SendUnitYell("Are you serious? Are you really gonna try kill me? LEAVE NOW OR DIE !!!", 0)
creature:RegisterEvent(Phase1, 1000, 0)
end
RegisterCreatureEvent(NPC_ID, 1, OnEnterCombat)