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.
441 lines
11 KiB
441 lines
11 KiB
|
4 years ago
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Module Declaration
|
||
|
|
--
|
||
|
|
|
||
|
|
local mod, CL = BigWigs:NewBoss("Waycrest Manor Trash", 1862)
|
||
|
|
if not mod then return end
|
||
|
|
mod.displayName = CL.trash
|
||
|
|
mod:RegisterEnableMob(
|
||
|
|
131586, -- Banquet Steward
|
||
|
|
137830, -- Pallid Gorger
|
||
|
|
131849, -- Crazed Marksman
|
||
|
|
131677, -- Heartsbane Runeweaver
|
||
|
|
131670, -- Heartsbane Vinetwister
|
||
|
|
131850, -- Maddened Survivalist
|
||
|
|
135329, -- Matron Bryndle
|
||
|
|
131666, -- Coven Thornshaper
|
||
|
|
131858, -- Thornguard
|
||
|
|
135052, -- Blight Toad
|
||
|
|
135049, -- Dreadwing Raven
|
||
|
|
131812, -- Heartsbane Soulcharmer
|
||
|
|
131587, -- Bewitched Captain
|
||
|
|
131685, -- Runic Disciple
|
||
|
|
131818, -- Marked Sister
|
||
|
|
135365 -- Matron Alma
|
||
|
|
)
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Localization
|
||
|
|
--
|
||
|
|
|
||
|
|
local L = mod:GetLocale()
|
||
|
|
if L then
|
||
|
|
L.steward = "Banquet Steward"
|
||
|
|
L.gorger = "Pallid Gorger"
|
||
|
|
L.marksman = "Crazed Marksman"
|
||
|
|
L.runeweaver = "Heartsbane Runeweaver"
|
||
|
|
L.vinetwister = "Heartsbane Vinetwister"
|
||
|
|
L.survivalist = "Maddened Survivalist"
|
||
|
|
L.bryndle = "Matron Bryndle"
|
||
|
|
L.thornshaper = "Coven Thornshaper"
|
||
|
|
L.thornguard = "Thornguard"
|
||
|
|
L.toad = "Blight Toad"
|
||
|
|
L.raven = "Dreadwing Raven"
|
||
|
|
L.soulcharmer = "Heartsbane Soulcharmer"
|
||
|
|
L.captain = "Bewitched Captain"
|
||
|
|
L.disciple = "Runic Disciple"
|
||
|
|
L.sister = "Marked Sister"
|
||
|
|
L.alma = "Matron Alma"
|
||
|
|
end
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Initialization
|
||
|
|
--
|
||
|
|
|
||
|
|
function mod:GetOptions()
|
||
|
|
return {
|
||
|
|
-- Banquet Steward
|
||
|
|
265407, -- Dinner Bell
|
||
|
|
-- Pallid Gorger
|
||
|
|
271174, -- Retch
|
||
|
|
-- Crazed Marksman
|
||
|
|
264456, -- Tracking Explosive
|
||
|
|
-- Heartsbane Runeweaver
|
||
|
|
263943, -- Etch
|
||
|
|
263905, -- Marking Cleave
|
||
|
|
-- Heartsbane Vinetwister
|
||
|
|
263891, -- Grasping Thorns
|
||
|
|
-- Maddened Survivalist
|
||
|
|
264525, -- Shrapnel Trap
|
||
|
|
264520, -- Severing Serpent
|
||
|
|
-- Matron Bryndle
|
||
|
|
265759, -- Splinter Spike
|
||
|
|
265760, -- Thorned Barrage
|
||
|
|
265741, -- Drain Soul Essence
|
||
|
|
-- Coven Thornshaper
|
||
|
|
264050, -- Infected Thorn
|
||
|
|
278474, -- Effigy Reconstruction
|
||
|
|
{264038, "SAY"}, -- Uproot
|
||
|
|
-- Thornguard
|
||
|
|
264556, -- Tearing Strike
|
||
|
|
264150, -- Shatter
|
||
|
|
-- Blight Toad
|
||
|
|
265352, -- Toad Blight
|
||
|
|
-- Dreadwing Raven
|
||
|
|
265346, -- Pallid Glare
|
||
|
|
-- Heartsbane Soulcharmer
|
||
|
|
263959, -- Soul Volley
|
||
|
|
263961, -- Warding Candles
|
||
|
|
-- Bewitched Captain
|
||
|
|
265368, -- Spirited Defense
|
||
|
|
-- Runic Disciple
|
||
|
|
264396, -- Spectral Talisman
|
||
|
|
264390, -- Spellbind
|
||
|
|
-- Marked Sister
|
||
|
|
{264105, "SAY", "SAY_COUNTDOWN"}, -- Runic Mark
|
||
|
|
-- Matron Alma
|
||
|
|
265876, -- Ruinous Volley
|
||
|
|
{265880, "SAY", "SAY_COUNTDOWN"}, -- Dread Mark
|
||
|
|
265881, -- Decaying Touch
|
||
|
|
}, {
|
||
|
|
[265407] = L.steward,
|
||
|
|
[271174] = L.gorger,
|
||
|
|
[264456] = L.marksman,
|
||
|
|
[263943] = L.runeweaver,
|
||
|
|
[263891] = L.vinetwister,
|
||
|
|
[264525] = L.survivalist,
|
||
|
|
[265759] = L.bryndle,
|
||
|
|
[264050] = L.thornshaper,
|
||
|
|
[264556] = L.thornguard,
|
||
|
|
[265352] = L.toad,
|
||
|
|
[265346] = L.raven,
|
||
|
|
[263959] = L.soulcharmer,
|
||
|
|
[265368] = L.captain,
|
||
|
|
[264396] = L.disciple,
|
||
|
|
[264105] = L.sister,
|
||
|
|
[265876] = L.alma,
|
||
|
|
}
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnBossEnable()
|
||
|
|
-- Banquet Steward
|
||
|
|
self:Log("SPELL_CAST_START", "DinnerBell", 265407)
|
||
|
|
-- Pallid Gorger
|
||
|
|
self:Log("SPELL_CAST_START", "Retch", 271174)
|
||
|
|
-- Crazed Marksman
|
||
|
|
self:Log("SPELL_CAST_START", "TrackingExplosive", 264456)
|
||
|
|
-- Heartsbane Runeweaver
|
||
|
|
self:Log("SPELL_CAST_SUCCESS", "Etch", 263943)
|
||
|
|
self:Log("SPELL_CAST_START", "MarkingCleave", 263905)
|
||
|
|
-- Heartsbane Vinetwister
|
||
|
|
self:Log("SPELL_CAST_START", "GraspingThorns", 263891)
|
||
|
|
self:Log("SPELL_AURA_APPLIED", "GraspingThornsApplied", 263891)
|
||
|
|
self:Log("SPELL_AURA_REMOVED", "GraspingThornsRemoved", 263891)
|
||
|
|
-- Maddened Survivalist
|
||
|
|
self:Log("SPELL_CAST_START", "ShrapnelTrap", 264525)
|
||
|
|
self:Log("SPELL_CAST_START", "SeveringSerpent", 264520)
|
||
|
|
-- Matron Bryndle
|
||
|
|
self:Log("SPELL_CAST_SUCCESS", "SplinterSpike", 265759)
|
||
|
|
self:Log("SPELL_CAST_START", "ThornedBarrage", 265760)
|
||
|
|
self:Log("SPELL_CAST_START", "DrainSoulEssence", 265741)
|
||
|
|
-- Coven Thornshaper
|
||
|
|
self:Log("SPELL_CAST_START", "InfectedThorn", 264050)
|
||
|
|
self:Log("SPELL_CAST_START", "EffigyReconstruction", 278474)
|
||
|
|
self:Log("SPELL_CAST_START", "Uproot", 264038)
|
||
|
|
-- Thornguard
|
||
|
|
self:Log("SPELL_AURA_APPLIED", "TearingStrike", 264556)
|
||
|
|
self:Log("SPELL_CAST_START", "Shatter", 264150)
|
||
|
|
-- Blight Toad
|
||
|
|
self:Log("SPELL_CAST_START", "ToadBlight", 265352)
|
||
|
|
-- Dreadwing Raven
|
||
|
|
self:Log("SPELL_CAST_START", "PallidGlare", 265346)
|
||
|
|
-- Heartsbane Soulcharmer
|
||
|
|
self:Log("SPELL_CAST_START", "SoulVolley", 263959)
|
||
|
|
self:Log("SPELL_CAST_START", "WardingCandles", 263961)
|
||
|
|
-- Bewitched Captain
|
||
|
|
self:Log("SPELL_CAST_START", "SpiritedDefense", 265368)
|
||
|
|
-- Runic Disciple
|
||
|
|
self:Log("SPELL_CAST_START", "SpectralTalisman", 264396)
|
||
|
|
self:Log("SPELL_CAST_START", "Spellbind", 264390)
|
||
|
|
-- Marked Sister
|
||
|
|
self:Log("SPELL_CAST_START", "RunicMark", 264105)
|
||
|
|
self:Log("SPELL_AURA_APPLIED", "RunicMarkApplied", 264105)
|
||
|
|
self:Log("SPELL_AURA_REMOVED", "RunicMarkRemoved", 264105)
|
||
|
|
-- Matron Alma
|
||
|
|
self:Log("SPELL_CAST_START", "RuinousVolley", 265876)
|
||
|
|
self:Log("SPELL_CAST_SUCCESS", "DreadMark", 265880)
|
||
|
|
self:Log("SPELL_AURA_APPLIED", "DreadMarkApplied", 265880)
|
||
|
|
self:Log("SPELL_AURA_REMOVED", "DreadMarkRemoved", 265880)
|
||
|
|
self:Log("SPELL_CAST_START", "DecayingTouch", 265881)
|
||
|
|
|
||
|
|
end
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Event Handlers
|
||
|
|
--
|
||
|
|
|
||
|
|
-- Banquet Steward
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:DinnerBell(args)
|
||
|
|
local t = args.time
|
||
|
|
if t-prev > 1.5 then
|
||
|
|
prev = t
|
||
|
|
self:Message(args.spellId, "orange")
|
||
|
|
self:PlaySound(args.spellId, "warning")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Pallid Gorger
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:Retch(args)
|
||
|
|
local t = args.time
|
||
|
|
if t-prev > 1.5 then
|
||
|
|
prev = t
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Crazed Marksman
|
||
|
|
function mod:TrackingExplosive(args)
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Heartsbane Runeweaver
|
||
|
|
function mod:Etch(args)
|
||
|
|
self:TargetMessage(args.spellId, "orange", args.destName)
|
||
|
|
if self:Me(args.destGUID) or self:Healer() then
|
||
|
|
self:PlaySound(args.spellId, "warning", nil, args.destName)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:MarkingCleave(args)
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Heartsbane Vinetwister
|
||
|
|
function mod:GraspingThorns(args)
|
||
|
|
self:Message(args.spellId, "yellow", CL.casting:format(args.spellName))
|
||
|
|
|
||
|
|
local _, interruptReady = self:Interrupter()
|
||
|
|
if interruptReady then
|
||
|
|
self:PlaySound(args.spellId, "alarm")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:GraspingThornsApplied(args)
|
||
|
|
if self:Dispeller("magic") then
|
||
|
|
self:TargetMessage(args.spellId, "red", args.destName)
|
||
|
|
self:PlaySound(args.spellId, "warning", nil, args.destName)
|
||
|
|
self:TargetBar(args.spellId, 4, args.destName)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:GraspingThornsRemoved(args)
|
||
|
|
self:StopBar(args.spellName, args.destName)
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Maddened Survivalist
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:ShrapnelTrap(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:SeveringSerpent(args)
|
||
|
|
local t = args.time
|
||
|
|
if t-prev > 1.5 then
|
||
|
|
prev = t
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Matron Bryndle
|
||
|
|
function mod:SplinterSpike(args)
|
||
|
|
self:Message(args.spellId, "orange")
|
||
|
|
self:PlaySound(args.spellId, "warning")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:ThornedBarrage(args)
|
||
|
|
self:Message(args.spellId, "red")
|
||
|
|
self:PlaySound(args.spellId, "alarm")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:DrainSoulEssence(args)
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Coven Thornshaper
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:InfectedThorn(args)
|
||
|
|
local t = args.time
|
||
|
|
if t-prev > 1.5 then
|
||
|
|
prev = t
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:EffigyReconstruction(args)
|
||
|
|
self:Message(args.spellId, "red")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
local function printTarget(self, name, guid)
|
||
|
|
self:TargetMessage(264038, "orange", name) -- Uproot
|
||
|
|
self:PlaySound(264038, "alarm", nil, name) -- Uproot
|
||
|
|
if self:Me(guid) then
|
||
|
|
self:Say(264038) -- Uproot
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:Uproot(args)
|
||
|
|
self:GetUnitTarget(printTarget, 0.4, args.sourceGUID)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Thornguard
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:TearingStrike(args)
|
||
|
|
if self:Me(args.destGUID) then
|
||
|
|
local t = args.time
|
||
|
|
if t-prev > 1.5 then
|
||
|
|
prev = t
|
||
|
|
self:PersonalMessage(args.spellId)
|
||
|
|
self:PlaySound(args.spellId, "alarm")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:Shatter(args)
|
||
|
|
local t = args.time
|
||
|
|
if t-prev > 1.5 then
|
||
|
|
prev = t
|
||
|
|
self:Message(args.spellId, "red")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Blight Toad
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:ToadBlight(args)
|
||
|
|
local t = args.time
|
||
|
|
if t-prev > 1.5 then
|
||
|
|
prev = t
|
||
|
|
self:Message(args.spellId, "red")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Dreadwing Raven
|
||
|
|
function mod:PallidGlare(args)
|
||
|
|
self:Message(args.spellId, "orange")
|
||
|
|
self:PlaySound(args.spellId, "alarm")
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Heartsbane Soulcharmer
|
||
|
|
function mod:SoulVolley(args)
|
||
|
|
self:Message(args.spellId, "red")
|
||
|
|
self:PlaySound(args.spellId, "warning")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:WardingCandles(args)
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Bewitched Captain
|
||
|
|
function mod:SpiritedDefense(args)
|
||
|
|
self:Message(args.spellId, "cyan")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Runic Disciple
|
||
|
|
function mod:SpectralTalisman(args)
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:Spellbind(args)
|
||
|
|
self:Message(args.spellId, "red")
|
||
|
|
self:PlaySound(args.spellId, "warning")
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Marked Sister
|
||
|
|
function mod:RunicMark(args)
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:RunicMarkApplied(args)
|
||
|
|
self:TargetMessage(args.spellId, "orange", args.destName)
|
||
|
|
if self:Me(args.destGUID) then
|
||
|
|
self:PlaySound(args.spellId, "warning")
|
||
|
|
self:Say(args.spellId)
|
||
|
|
self:SayCountdown(args.spellId, 6)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:RunicMarkRemoved(args)
|
||
|
|
if self:Me(args.destGUID) then
|
||
|
|
self:CancelSayCountdown(args.spellId)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
-- Matron Alma
|
||
|
|
function mod:RuinousVolley(args)
|
||
|
|
self:Message(args.spellId, "red")
|
||
|
|
self:PlaySound(args.spellId, "warning")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:DreadMark(args)
|
||
|
|
self:Message(args.spellId, "orange")
|
||
|
|
self:PlaySound(args.spellId, "alarm")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:DreadMarkApplied(args)
|
||
|
|
if self:Me(args.destGUID) then
|
||
|
|
self:Say(args.spellId)
|
||
|
|
self:SayCountdown(args.spellId, 6)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:DreadMarkRemoved(args)
|
||
|
|
if self:Me(args.destGUID) then
|
||
|
|
self:CancelSayCountdown(args.spellId)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:DecayingTouch(args)
|
||
|
|
self:Message(args.spellId, "yellow")
|
||
|
|
self:PlaySound(args.spellId, "alert")
|
||
|
|
end
|