local npcId = 200000
function OnEnterCombat(event, creature, victim)
creature:SendUnitYell("You are kidding... Right?", 0)
creature:RegisterEvent(ShadowCleave, 7000, 0)
creature:RegisterEvent(SpinToWin, 25000, 0)
creature:RegisterEvent(VenomThrow, 20000, 0)
creature:RegisterEvent(TeleportPlayerActivateObject, 10000, 0)
creature:RegisterEvent(OnChangeState, 15000, 0)
creature:RegisterEvent(OnCheckHealth, 1000, 0)
end
function OnCheckHealth(event, delay, pCall, creature)
if (creature:GetHealthPct() <= 75) then
creature:RemoveEventById(event)
creature:SendUnitYell("You are kidding... Maybe?", 0)
creature:RegisterEvent(ShadowCleave, 5000, 0)
creature:RegisterEvent(VenomThrow, 10000, 0)
creature:RegisterEvent(DeadlyThrow, 30000, 0)
creature:RegisterEvent(TeleportPlayer, 30000, 0)
creature:RegisterEvent(OnCheckHealth1, 1000, 0)
end
end
function OnCheckHealth1(event, delay, pCall, creature)
creature:RemoveEventById(event)
local target = creature:GetAITarget(3, true)
if (creature:GetHealthPct() <= 25) then
creature:CastSpell(target, 40000)
end
end
function ShadowCleave(event, delay, pCall, creature)
creature:CastSpell(creature:GetVictim(), 69492, true)
end
function SpinToWin(event, delay, pCall, creature)
creature:CastSpell(creature:GetVictim(), 50228, true)
end
function VenomThrow(event, delay, pCall, creature)
creature:CastSpell(creature:GetAITarget(0, true), 72334, true)
end
function TeleportPlayerActivateObject(event, delay, pCall, creature)
local target = creature:GetAITarget(0, true)
if (target ~= nil) then
target:Teleport(36, -51, -819.77, 51.8, 1) -- MapId, X, Y, Z, O
local go = target:GetNearestGameObject(186859, 50) -- GameObject Entry, Radius
if (go ~= nil) then
go:SetGoState(0)
CreateLuaEvent(function() OnChangeState(go) end, 5000, 1) -- Only calls once
end
end
end
function OnChangeState(go)
go:SetGoState(1)
end
function DeadlyThrow(event, delay, pCall, creature)
creature:CastSpell(creature:GetAITarget(0, true), 52885, true)
end
function OnLeaveCombat(event, creature)
creature:RemoveEvents()
creature:SendUnitYell("Bring a challenge next time!", 0)
creature:CastSpell(creature, 23965, true)
end
function OnTargetDied(event, creature, victim)
creature:SendUnitYell("Seems like you are the weakest link!", 0)
end
function OnDied(event, creature, killer)
creature:RemoveEvents()
creature:SendUnitYell("This is just the... Beginning!", 0)
end
RegisterCreatureEvent(npcId, 1, OnEnterCombat)
RegisterCreatureEvent(npcId, 2, OnLeaveCombat)
RegisterCreatureEvent(npcId, 3, OnTargetDied)
RegisterCreatureEvent(npcId, 4, OnDied)