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.

148 lines
4.1 KiB

--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("Darkheart Thicket Trash", 1466)
if not mod then return end
mod.displayName = CL.trash
mod:RegisterEnableMob(
95771, -- Dreadsoul Ruiner
101679, -- Dreadsoul Poisoner
95766, -- Crazed Razorbeak
95779, -- Festerhide Grizzly
100531, -- Bloodtainted Fury
113398, -- Bloodtainted Fury
100527 -- Dreadfire Imp
)
--------------------------------------------------------------------------------
-- Localization
--
local L = mod:GetLocale()
if L then
L.ruiner = "Dreadsoul Ruiner"
L.poisoner = "Dreadsoul Poisoner"
L.razorbeak = "Crazed Razorbeak"
L.grizzly = "Festerhide Grizzly"
L.fury = "Bloodtainted Fury"
L.imp = "Dreadfire Imp"
end
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
--[[ Dreadsoul Ruiner ]]--
200658, -- Star Shower
--[[ Dreadsoul Poisoner ]]--
{200684, "SAY", "SAY_COUNTDOWN"}, -- Nightmare Toxin
--[[ Crazed Razorbeak ]]--
200768, -- Propelling Charge
--[[ Festerhide Grizzly ]]--
200580, -- Maddening Roar
218759, -- Corruption Pool
--[[ Bloodtainted Fury ]]--
201226, -- Blood Assault
201272, -- Blood Bomb
225562, -- Blood Metamorphosis
--[[ Dreadfire Imp ]]--
201399, -- Dread Inferno
}, {
[200658] = L.ruiner,
[200684] = L.poisoner,
[200768] = L.razorbeak,
[200580] = L.grizzly,
[201226] = L.fury,
[201399] = L.imp,
}
end
function mod:OnBossEnable()
self:RegisterMessage("BigWigs_OnBossEngage", "Disable")
--[[ Dreadsoul Ruiner, Dreadfire Imp ]]--
self:Log("SPELL_CAST_START", "Interrupts", 200658, 201399) -- Star Shower, Dread Inferno
--[[ Dreadsoul Poisoner ]]--
self:Log("SPELL_AURA_APPLIED", "NightmareToxinApplied", 200684)
self:Log("SPELL_AURA_REMOVED", "NightmareToxinRemoved", 200684)
--[[ Crazed Razorbeak, Festerhide Grizzly ]]--
self:Log("SPELL_CAST_START", "Casts", 200768, 200580, 201226, 225562) -- Propelling Charge, Maddening Roar, Blood Assault, Blood Metamorphosis
--[[ Bloodtainted Fury ]]--
self:Log("SPELL_CAST_SUCCESS", "BloodBomb", 201272)
--[[ Festerhide Grizzly ]]--
self:Log("SPELL_AURA_APPLIED", "CorruptionPool", 218759)
self:Log("SPELL_PERIODIC_DAMAGE", "CorruptionPool", 218759)
self:Log("SPELL_PERIODIC_MISSED", "CorruptionPool", 218759)
end
--------------------------------------------------------------------------------
-- Event Handlers
--
do
local prevTable = {}
-- Dreadsoul Ruiner, Dreadfire Imp
function mod:Interrupts(args)
local t = GetTime()
if t - (prevTable[args.spellId] or 0) > 1 then
prevTable[args.spellId] = t
self:MessageOld(args.spellId, "yellow", self:Interrupter() and "alarm", CL.casting:format(args.spellName))
end
end
-- Crazed Razorbeak, Festerhide Grizzly, Bloodtainted Fury
function mod:Casts(args)
local t = GetTime()
if t - (prevTable[args.spellId] or 0) > 1 then
prevTable[args.spellId] = t
self:MessageOld(args.spellId, "orange", "warning", CL.casting:format(args.spellName))
end
end
end
function mod:NightmareToxinApplied(args)
if self:Me(args.destGUID) and self:MythicPlus() then -- avoid spamming in trivial difficulties
self:Say(args.spellId)
self:SayCountdown(args.spellId, 3, nil, 2)
end
self:TargetMessageOld(args.spellId, args.destName, "red", "alert", nil, nil, self:Dispeller("poison"))
self:TargetBar(args.spellId, 3, args.destName)
end
function mod:NightmareToxinRemoved(args)
if self:Me(args.destGUID) then
self:CancelSayCountdown(args.spellId)
end
self:StopBar(args.spellId, args.destName)
end
-- Festerhide Grizzly
do
local prev = 0
function mod:CorruptionPool(args)
if self:Me(args.destGUID) then
local t = GetTime()
if t-prev > 1.5 then
prev = t
self:MessageOld(args.spellId, "blue", "warning", CL.underyou:format(args.spellName))
end
end
end
end
-- Bloodtainted Fury
function mod:BloodBomb(args)
self:MessageOld(args.spellId, "orange", "alert")
end