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
5.4 KiB

--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("Cathedral of Eternal Night Trash", 1677)
if not mod then return end
mod.displayName = CL.trash
mod:RegisterEnableMob(
118704, -- Dul'zak
118690, -- Wrathguard Invader
119952, -- Felguard Destroyer
119923, -- Helblaze Soulmender
118703, -- Felborne Botanist
118714, -- Hellblaze Temptress
118713, -- Felstrider Orbcaster
120713, -- Wa'glur
118719, -- Wyrmtongue Scavenger
118723, -- Gazerax
121569 -- Vilebark Walker
)
--------------------------------------------------------------------------------
-- Localization
--
local L = mod:GetLocale()
if L then
L.dulzak = "Dul'zak"
L.wrathguard = "Wrathguard Invader"
L.felguard = "Felguard Destroyer"
L.soulmender = "Helblaze Soulmender"
L.botanist = "Felborne Botanist"
L.temptress = "Hellblaze Temptress"
L.orbcaster = "Felstrider Orbcaster"
L.waglur = "Wa'glur"
L.scavenger = "Wyrmtongue Scavenger"
L.gazerax = "Gazerax"
L.vilebark = "Vilebark Walker"
L.throw_tome = "Throw Tome"
end
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
-- Dul'zak
238653, -- Shadow Wave
-- Wrathguard Invader
{236737, "SAY"}, -- Fel Strike
-- Felguard Destroyer
241598, -- Shadow Wall
-- Helblaze Soulmender
238543, -- Demonic Mending
-- Felborne Botanist
237565, -- Blistering Rain
-- Hellblaze Temptress
237391, -- Alluring Aroma
-- Felstrider Orbcaster
239320, -- Felblaze Orb
-- Wa'glur
241772, -- Unearthy Howl
-- Wyrmtongue Scavenger
242839, -- Throw Frost Tome
242841, -- Throw Silence Tome
239101, -- Throw Arcane Tome
-- Gazerax
239232, -- Blinding Glare
-- Vilebark Walker
242760, -- Lumbering Crash
}, {
[238653] = L.dulzak,
[236737] = L.wrathguard,
[241598] = L.felguard,
[238543] = L.soulmender,
[237565] = L.botanist,
[237391] = L.temptress,
[239320] = L.orbcaster,
[241772] = L.waglur,
[242839] = L.scavenger,
[239232] = L.gazerax,
[242760] = L.vilebark
}
end
function mod:OnBossEnable()
self:RegisterMessage("BigWigs_OnBossEngage", "Disable")
self:RegisterEvent("UNIT_SPELLCAST_START", "ShadowWave") -- Shadow Wave
self:Log("SPELL_CAST_START", "FelStrike", 236737) -- Fel Strike
self:Log("SPELL_CAST_START", "ShadowWall", 241598) -- Shadow Wall
self:Log("SPELL_CAST_START", "DemonicMending", 238543) -- Demonic Mending
self:Log("SPELL_CAST_START", "BlisteringRain", 237565) -- Blistering Rain
self:Log("SPELL_CAST_START", "AlluringAroma", 237391) -- Alluring Aroma
self:Log("SPELL_CAST_START", "FelblazeOrb", 239320) -- Felblaze Orb
self:Log("SPELL_CAST_START", "UnearthyHowl", 241772) -- Unearthy Howl
self:Log("SPELL_CAST_START", "BlindingGlare", 239232) -- Blinding Glare
self:Log("SPELL_CAST_START", "ThrowTome", 242839, 242841, 242837) -- Throw Frost Tome, Throw Silence Tome, Throw Arcane Tome
self:Log("SPELL_CAST_START", "LumberingCrash", 242760) -- Lumbering Crash
end
--------------------------------------------------------------------------------
-- Event Handlers
--
-- Dul'zak
do
local prev = nil
function mod:ShadowWave(_, _, castGUID, spellId)
if spellId == 238653 and castGUID ~= prev then -- Shadow Wave
prev = castGUID
self:MessageOld(spellId, "orange", "alarm", CL.incoming:format(self:SpellName(spellId)))
self:Bar(spellId, 23.2)
end
end
end
-- Wrathguard Invader
do
local prev = 0
local function printTarget(self, name, guid)
local t = GetTime()
if self:Me(guid) then
prev = t
self:TargetMessageOld(236737, name, "blue", "alert")
self:Say(236737)
elseif t-prev > 1.5 then
prev = t
self:MessageOld(236737, "yellow", "alert")
end
end
function mod:FelStrike(args)
self:GetUnitTarget(printTarget, 0.5, args.sourceGUID)
end
end
-- Felguard Destroyer
function mod:ShadowWall(args)
self:MessageOld(args.spellId, "yellow", "long", CL.casting:format(args.spellName))
end
-- Helblaze Soulmender
function mod:DemonicMending(args)
self:MessageOld(args.spellId, "orange", "warning", CL.casting:format(args.spellName))
end
-- Felborne Botanist
function mod:BlisteringRain(args)
self:MessageOld(args.spellId, "yellow", "long", CL.casting:format(args.spellName))
end
-- Hellblaze Temptress
function mod:AlluringAroma(args)
self:MessageOld(args.spellId, "orange", "warning", CL.casting:format(args.spellName))
end
-- Felstrider Orbcaster
function mod:FelblazeOrb(args)
self:MessageOld(args.spellId, "orange", "warning", CL.casting:format(args.spellName))
end
-- Wa'glur
function mod:UnearthyHowl(args)
self:MessageOld(args.spellId, "orange", "warning", CL.casting:format(args.spellName))
end
-- Gazerax
function mod:BlindingGlare(args)
self:MessageOld(args.spellId, "orange", "warning", CL.casting:format(args.spellName))
self:CastBar(args.spellId, 2.5)
end
do
local prev = 0
function mod:ThrowTome(args)
local t = GetTime()
if t-prev > 1 then
prev = t
self:MessageOld(args.spellId == 242837 and 239101 or args.spellId, "orange", "warning", CL.casting:format(L.throw_tome)) -- using a different ID for Arcane Tome's options because 242837 has no description
end
end
end
-- Vilebark Walker
function mod:LumberingCrash(args)
self:MessageOld(args.spellId, "red", "alarm", CL.casting:format(args.spellName))
end