You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
189 lines
6.2 KiB
189 lines
6.2 KiB
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Kruul", 1698) -- The Highlord's Return
|
|
if not mod then return end
|
|
mod:RegisterEnableMob(117933, 117198) -- Inquisitor Variss, Highlord Kruul
|
|
mod.otherMenu = 1716 -- Broken Shore Mage Tower
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Locals
|
|
--
|
|
|
|
local aberrationCounter = 1
|
|
local annihilateCounter = 1
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Localization
|
|
--
|
|
|
|
local L = mod:GetLocale()
|
|
if L then
|
|
-- NPC Names
|
|
L.name = "Highlord Kruul"
|
|
L.inquisitor = "Inquisitor Variss"
|
|
L.velen = "Prophet Velen"
|
|
|
|
-- Triggers
|
|
L.warmup_trigger = "Arrogant fools! I am empowered by the souls of a thousand conquered worlds!"
|
|
L.win_trigger = "So be it. You will not stand in our way any longer."
|
|
|
|
L.nether_aberration = 235110
|
|
L.nether_aberration_desc = "Summons portals around the room, spawning Nether Aberrations."
|
|
L.nether_aberration_icon = "ability_socererking_summonaberration"
|
|
|
|
L.smoldering_infernal = "Smoldering Infernal"
|
|
L.smoldering_infernal_desc = "Summons a Smoldering Infernal."
|
|
L.smoldering_infernal_icon = "inv_infernalmountgreen"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
"warmup",
|
|
"stages",
|
|
"nether_aberration", -- Nether Aberration
|
|
240790, -- Nether Storm
|
|
|
|
--[[ Prophet Velen ]]--
|
|
233473, -- Holy Ward
|
|
|
|
--[[ Inquisitor Variss ]]--
|
|
234423, -- Drain Life
|
|
234422, -- Aura of Decay
|
|
234428, -- Summon Tormenting Eye
|
|
"smoldering_infernal", -- Smoldering Infernal Summon
|
|
234631, -- Smash
|
|
|
|
--[[ Highlord Kruul ]]--
|
|
236572, -- Annihilate
|
|
234920, -- Shadow Sweep
|
|
234673, -- Nether Stomp
|
|
234676, -- Twisted Reflections
|
|
},{
|
|
["warmup"] = "general",
|
|
[233473] = L.velen,
|
|
[234423] = L.inquisitor,
|
|
[236572] = L.name,
|
|
}
|
|
end
|
|
|
|
function mod:OnRegister()
|
|
self.displayName = L.name
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:RegisterEvent("INSTANCE_ENCOUNTER_ENGAGE_UNIT", "CheckBossStatus")
|
|
self:RegisterEvent("CHAT_MSG_MONSTER_SAY", "SayTriggers")
|
|
self:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", nil, "boss1")
|
|
|
|
self:Log("SPELL_CAST_START", "NetherStorm", 240790)
|
|
self:Log("SPELL_CAST_START", "DrainLife", 234423)
|
|
self:Log("SPELL_CAST_START", "HolyWard", 233473)
|
|
self:Log("SPELL_AURA_APPLIED_DOSE", "AuraOfDecay", 234422)
|
|
self:Log("SPELL_CAST_START", "Smash", 234631)
|
|
self:Log("SPELL_CAST_START", "Annihilate", 236572)
|
|
self:Log("SPELL_CAST_SUCCESS", "AnnihilateSuccess", 236572)
|
|
self:Log("SPELL_CAST_START", "TwistedReflections", 234676)
|
|
|
|
self:Death("KruulIncoming", 117933) -- Inquisitor Variss
|
|
end
|
|
|
|
function mod:OnEngage()
|
|
aberrationCounter = 1
|
|
annihilateCounter = 1
|
|
self:CDBar(234428, 3) -- Summon Tormenting Eye
|
|
self:CDBar("nether_aberration", 10, CL.count:format(self:SpellName(L.nether_aberration), aberrationCounter), L.nether_aberration_icon) -- Nether Aberration
|
|
self:CDBar("smoldering_infernal", 35, L.smoldering_infernal, L.smoldering_infernal_icon) -- Smoldering Infernal Summon
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
function mod:SayTriggers(_, msg)
|
|
if msg == L.warmup_trigger then
|
|
self:CDBar("warmup", 25, CL.active, "inv_pet_inquisitoreye")
|
|
elseif msg == L.win_trigger then
|
|
self:Win()
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(unit, spellName, _, _, spellId)
|
|
if spellId == 234428 then -- Summon Tormenting Eye
|
|
self:MessageOld(spellId, "yellow", "info")
|
|
self:CDBar(spellId, 17)
|
|
elseif spellId == 235110 then -- Nether Aberration
|
|
aberrationCounter = aberrationCounter + 1
|
|
self:MessageOld("nether_aberration", "yellow", "info", CL.incoming:format(CL.count:format(spellName, aberrationCounter-1)), L.nether_aberration_icon)
|
|
self:CDBar("nether_aberration", 35, CL.count:format(spellName, aberrationCounter), L.nether_aberration_icon)
|
|
elseif spellId == 235112 then -- Smoldering Infernal Summon
|
|
self:MessageOld("smoldering_infernal", "yellow", "info", CL.incoming:format(L.smoldering_infernal), L.smoldering_infernal_icon)
|
|
self:CDBar("smoldering_infernal", 65, L.smoldering_infernal, L.smoldering_infernal_icon)
|
|
elseif spellId == 234920 then -- Shadow Sweep
|
|
self:MessageOld(spellId, "yellow", "info", CL.incoming:format(spellName))
|
|
self:Bar(spellId, 20.7)
|
|
elseif spellId == 234673 then -- Netherstomp
|
|
self:MessageOld(spellId, "orange", "alert")
|
|
self:Bar(spellId, 15.8)
|
|
elseif spellId == 233458 then -- Gift of Sargeras
|
|
-- Spoiler: HE EXPLODES!
|
|
self:Win()
|
|
end
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:NetherStorm(args)
|
|
local t = GetTime()
|
|
if t-prev > 1 then
|
|
prev = t
|
|
self:MessageOld(args.spellId, "red", "warning", CL.casting:format(args.spellName))
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:DrainLife(args)
|
|
self:MessageOld(args.spellId, "orange", "alert", CL.casting:format(args.spellName))
|
|
self:CDBar(args.spellId, 23)
|
|
end
|
|
|
|
function mod:HolyWard(args)
|
|
self:MessageOld(args.spellId, "green", "long", CL.casting:format(args.spellName))
|
|
self:CastBar(args.spellId, 8)
|
|
self:CDBar(args.spellId, 35)
|
|
end
|
|
|
|
function mod:AuraOfDecay(args)
|
|
local amount = args.amount or 1
|
|
self:StackMessage(args.spellId, args.destName, amount, "blue", amount > 3 and "warning")
|
|
end
|
|
|
|
function mod:Smash(args)
|
|
self:MessageOld(args.spellId, "red", "alarm", args.spellName)
|
|
end
|
|
|
|
function mod:KruulIncoming(args)
|
|
self:MessageOld("stages", "green", "long", CL.incoming:format(L.name), "warlock_summon_doomguard")
|
|
self:StopBar(L.smoldering_infernal) -- Smoldering Infernal
|
|
self:StopBar(234423) -- Drain Life
|
|
self:StopBar(234428) -- Summon Tormenting Eye
|
|
end
|
|
|
|
function mod:Annihilate(args)
|
|
self:MessageOld(args.spellId, "red", "alarm", CL.casting:format(CL.count:format(args.spellName, annihilateCounter)))
|
|
end
|
|
|
|
function mod:AnnihilateSuccess(args)
|
|
annihilateCounter = annihilateCounter + 1
|
|
self:CDBar(args.spellId, 27, CL.count:format(args.spellName, annihilateCounter))
|
|
end
|
|
|
|
function mod:TwistedReflections(args)
|
|
self:MessageOld(args.spellId, "orange", "warning", CL.casting:format(args.spellName))
|
|
end
|
|
|