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.
301 lines
8.7 KiB
301 lines
8.7 KiB
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Plaguefall Trash", 2289)
|
|
if not mod then return end
|
|
mod.displayName = CL.trash
|
|
mod:RegisterEnableMob(
|
|
168580, -- Plagueborer
|
|
168361, -- Fen Hornet
|
|
163882, -- Decaying Flesh Giant
|
|
168153, -- Plagueroc
|
|
168393, -- Plaguebelcher
|
|
168396, -- Plaguebelcher
|
|
163892, -- Rotting Slimeclaw
|
|
163894, -- Blighted Spinebreaker
|
|
168627, -- Plaguebinder
|
|
164707, -- Congealed Slime
|
|
163862, -- Defender of Many Eyes
|
|
164737, -- Brood Ambusher
|
|
169861, -- Ickor Bileflesh
|
|
168578, -- Fungalmancer
|
|
168574, -- Pestilent Harvester
|
|
168572 -- Fungi Stormer
|
|
)
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Localization
|
|
--
|
|
|
|
local L = mod:GetLocale()
|
|
if L then
|
|
L.plagueborer = "Plagueborer"
|
|
L.fen_hornet = "Fen Hornet"
|
|
L.decaying_flesh_giant = "Decaying Flesh Giant"
|
|
L.plagueroc = "Plagueroc"
|
|
L.plaguebelcher = "Plaguebelcher"
|
|
L.rotting_slimeclaw = "Rotting Slimeclaw"
|
|
L.blighted_spinebreaker = "Blighted Spinebreaker"
|
|
L.plaguebinder = "Plaguebinder"
|
|
L.congealed_slime = "Congealed Slime"
|
|
L.defender_of_many_eyes = "Defender of Many Eyes"
|
|
L.brood_ambusher = "Brood Ambusher"
|
|
L.ickor_bileflesh = "Ickor Bileflesh"
|
|
L.fungalmancer = "Fungalmancer"
|
|
L.pestilent_harvester = "Pestilent Harvester"
|
|
L.fungi_stormer = "Fungi Stormer"
|
|
|
|
L.summon_stealthlings = 328400
|
|
L.summon_stealthlings_desc = "Show a warning when the Stealthlings spawn."
|
|
L.summon_stealthlings_icon = 328400
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
-- Plagueborer
|
|
323572, -- Rolling Plague
|
|
-- Fen Hornet
|
|
{327515, "DISPEL"}, -- Fen Stinger
|
|
-- Decaying Flesh Giant
|
|
329239, -- Creepy Crawlers
|
|
-- Plagueroc
|
|
330403, -- Wing Buffet
|
|
{327882, "DISPEL"}, -- Blightbeak
|
|
-- Plaguebelcher
|
|
327233, -- Belch Plague
|
|
327584, -- Beckon Slime
|
|
-- Rotting Slimeclaw
|
|
{320512, "DISPEL"}, -- Corroded Claws
|
|
-- Blighted Spinebreaker
|
|
318949, -- Festering Belch
|
|
320517, -- Jagged Spines
|
|
-- Plaguebinder
|
|
{328180, "DISPEL"}, -- Gripping Infection
|
|
-- Congealed Slime
|
|
{321935, "SAY"}, -- Withering Filth
|
|
-- Defender of Many Eyes
|
|
336451, -- Bulwark of Maldraxxus
|
|
-- Brood Ambusher
|
|
328475, -- Enveloping Webbing
|
|
"summon_stealthlings", -- Stealthlings
|
|
-- Ickor Bileflesh
|
|
330786, -- Oozing Carcass
|
|
330816, -- Ghost Step
|
|
-- Fungalmancer
|
|
328016, -- Wonder Grow
|
|
-- Pestilent Harvester
|
|
327995, -- Doom Shroom
|
|
-- Fungi Stormer
|
|
328177, -- Fungistorm
|
|
}, {
|
|
[323572] = L.plagueborer,
|
|
[327515] = L.fen_hornet,
|
|
[329239] = L.decaying_flesh_giant,
|
|
[330403] = L.plagueroc,
|
|
[327233] = L.plaguebelcher,
|
|
[320512] = L.rotting_slimeclaw,
|
|
[318949] = L.blighted_spinebreaker,
|
|
[328180] = L.plaguebinder,
|
|
[321935] = L.congealed_slime,
|
|
[336451] = L.defender_of_many_eyes,
|
|
[328475] = L.brood_ambusher,
|
|
[330786] = L.ickor_bileflesh,
|
|
[328016] = L.fungalmancer,
|
|
[327995] = L.pestilent_harvester,
|
|
[328177] = L.fungi_stormer,
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:Log("SPELL_CAST_START", "RollingPlague", 323572)
|
|
self:Log("SPELL_AURA_APPLIED", "FenStingerApplied", 327515)
|
|
self:Log("SPELL_CAST_START", "CreepyCrawlers", 329239)
|
|
self:Log("SPELL_CAST_START", "WingBuffet", 330403)
|
|
self:Log("SPELL_AURA_APPLIED", "BlightbeakApplied", 327882)
|
|
self:Log("SPELL_AURA_APPLIED_DOSE", "BlightbeakApplied", 327882)
|
|
self:Log("SPELL_CAST_START", "BelchPlague", 327233)
|
|
self:Log("SPELL_CAST_START", "BeckonSlime", 327584)
|
|
self:Log("SPELL_AURA_APPLIED", "CorrodedClawsApplied", 320512)
|
|
self:Log("SPELL_AURA_APPLIED_DOSE", "CorrodedClawsApplied", 320512)
|
|
self:Log("SPELL_CAST_START", "FesteringBelch", 318949)
|
|
self:Log("SPELL_CAST_SUCCESS", "JaggedSpines", 320517)
|
|
self:Log("SPELL_CAST_START", "GrippingInfection", 328180)
|
|
self:Log("SPELL_AURA_APPLIED", "GrippingInfectionApplied", 328180)
|
|
self:Log("SPELL_CAST_START", "WitheringFilth", 321935)
|
|
self:Log("SPELL_CAST_SUCCESS", "BulwarkOfMaldraxxus", 336451)
|
|
self:Log("SPELL_CAST_START", "EnvelopingWebbing", 328475)
|
|
self:Log("SPELL_CAST_SUCCESS", "Stealthlings", 328400)
|
|
self:Log("SPELL_CAST_START", "OozingCarcass", 330786)
|
|
self:Log("SPELL_CAST_START", "GhostStep", 330816)
|
|
self:Log("SPELL_CAST_START", "WonderGrow", 328016)
|
|
self:Log("SPELL_CAST_SUCCESS", "DoomShroom", 327995)
|
|
self:Log("SPELL_CAST_SUCCESS", "Fungistorm", 328177)
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:RollingPlague(args)
|
|
local t = args.time
|
|
if t-prev > 1.5 then
|
|
prev = t
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:FenStingerApplied(args)
|
|
if self:Dispeller("poison", nil, args.spellId) then
|
|
self:TargetMessage(args.spellId, "yellow", args.destName)
|
|
self:PlaySound(args.spellId, "alert", nil, args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:CreepyCrawlers(args)
|
|
local unit = self:GetUnitIdByGUID(args.sourceGUID)
|
|
if unit and UnitAffectingCombat(unit) then
|
|
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
end
|
|
|
|
function mod:WingBuffet(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
function mod:BlightbeakApplied(args)
|
|
if self:Dispeller("disease", nil, args.spellId) then
|
|
self:StackMessage(args.spellId, args.destName, args.amount, "yellow")
|
|
self:PlaySound(args.spellId, "alert", nil, args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:BelchPlague(args)
|
|
local unit = self:GetUnitIdByGUID(args.sourceGUID)
|
|
if unit and UnitAffectingCombat(unit) then
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
end
|
|
|
|
function mod:BeckonSlime(args)
|
|
self:Message(args.spellId, "yellow", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "long")
|
|
end
|
|
|
|
function mod:CorrodedClawsApplied(args)
|
|
if self:Dispeller("disease", nil, args.spellId) then
|
|
self:StackMessage(args.spellId, args.destName, args.amount, "yellow")
|
|
self:PlaySound(args.spellId, "alert", nil, args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:FesteringBelch(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
function mod:JaggedSpines(args)
|
|
self:Message(args.spellId, "yellow")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:GrippingInfection(args)
|
|
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:GrippingInfectionApplied(args)
|
|
if self:Dispeller("disease", nil, args.spellId) then
|
|
self:TargetMessage(args.spellId, "yellow", args.destName)
|
|
self:PlaySound(args.spellId, "info", nil, args.destName)
|
|
end
|
|
end
|
|
|
|
do
|
|
local function printTarget(self, name, guid)
|
|
local isOnMe = self:Me(guid)
|
|
self:TargetMessage(321935, isOnMe and "red" or "yellow", name)
|
|
self:PlaySound(321935, isOnMe and "alarm" or "info", nil, name)
|
|
if isOnMe then
|
|
self:Say(321935)
|
|
end
|
|
end
|
|
|
|
function mod:WitheringFilth(args)
|
|
-- XXX check if the mob actually changes target
|
|
self:GetUnitTarget(printTarget, 0.6, args.sourceGUID)
|
|
end
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:BulwarkOfMaldraxxus(args)
|
|
local t = args.time
|
|
local unit = self:GetUnitIdByGUID(args.sourceGUID)
|
|
if t-prev > 1.5 and unit and UnitAffectingCombat(unit) then
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:EnvelopingWebbing(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
function mod:Stealthlings(args)
|
|
self:Message("summon_stealthlings", "red", CL.spawned:format(args.spellName), args.spellId)
|
|
self:PlaySound("summon_stealthlings", "warning")
|
|
end
|
|
|
|
function mod:OozingCarcass(args)
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:GhostStep(args)
|
|
self:Message(args.spellId, "yellow")
|
|
self:PlaySound(args.spellId, "info")
|
|
end
|
|
|
|
function mod:WonderGrow(args)
|
|
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:DoomShroom(args)
|
|
local t = args.time
|
|
if t-prev > 1.5 then
|
|
prev = t
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
end
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:Fungistorm(args)
|
|
local t = args.time
|
|
if t-prev > 1.5 then
|
|
prev = t
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
end
|
|
end
|
|
|