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.
291 lines
8.1 KiB
291 lines
8.1 KiB
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Sanguine Depths Trash", 2284)
|
|
if not mod then return end
|
|
mod.displayName = CL.trash
|
|
mod:RegisterEnableMob(
|
|
174001, -- Anima Collector
|
|
162057, -- Chamber Sentinel
|
|
171799, -- Depths Warden
|
|
171448, -- Dreadful Huntmaster
|
|
162046, -- Famished Tick
|
|
162133, -- General Kaal
|
|
162040, -- Grand Overseer
|
|
171376, -- Head Custodian Javlin
|
|
162047, -- Insatiable Brute
|
|
166396, -- Noble Skirmisher
|
|
162038, -- Regal Mistdancer
|
|
171805, -- Research Scribe
|
|
162039 -- Wicked Oppressor
|
|
)
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Localization
|
|
--
|
|
|
|
local L = mod:GetLocale()
|
|
if L then
|
|
L.anima_collector = "Anima Collector"
|
|
L.chamber_sentinel = "Chamber Sentinel"
|
|
L.depths_warden = "Depths Warden"
|
|
L.dreadful_huntmaster = "Dreadful Huntmaster"
|
|
L.general_kaal = "General Kaal"
|
|
L.grand_overseer = "Grand Overseer"
|
|
L.head_custodian_javlin = "Head Custodian Javlin"
|
|
L.insatiable_brute = "Insatiable Brute"
|
|
L.regal_mistdancer = "Regal Mistdancer"
|
|
L.research_scribe = "Research Scribe"
|
|
L.wicked_oppressor = "Wicked Oppressor"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
-- Anima Collector
|
|
341321, -- Summon Anima Collector Stalker
|
|
-- Chamber Sentinel
|
|
328170, -- Craggy Fracture
|
|
322429, -- Severing Slice
|
|
322433, -- Stoneskin
|
|
-- Depths Warden
|
|
335305, -- Barbed Shackles
|
|
{335308, "TANK_HEALER"}, -- Crushing Strike
|
|
-- Dreadful Huntmaster
|
|
334558, -- Volatile Trap
|
|
-- General Kaal
|
|
324103, -- Gloom Squall
|
|
324086, -- Shining Radiance
|
|
-- Grand Overseer
|
|
326827, -- Dread Bindings
|
|
-- Head Custodian Javlin
|
|
334329, -- Sweeping Slash
|
|
{334326, "TANK_HEALER"}, -- Bludgeoning Bash
|
|
-- Insatiable Brute
|
|
{321178, "TANK_HEALER"}, -- Slam
|
|
334918, -- Umbral Crash
|
|
-- Regal Mistdancer
|
|
320991, -- Echoing Thrust
|
|
-- Research Scribe
|
|
334377, -- Explosive Vellum
|
|
-- Wicked Oppressor
|
|
{326836, "DISPEL"}, -- Curse of Suppression
|
|
}, {
|
|
[341321] = L.anima_collector,
|
|
[328170] = L.chamber_sentinel,
|
|
[335305] = L.depths_warden,
|
|
[334558] = L.dreadful_huntmaster,
|
|
[324103] = L.general_kaal,
|
|
[326827] = L.grand_overseer,
|
|
[334329] = L.head_custodian_javlin,
|
|
[321178] = L.insatiable_brute,
|
|
[320991] = L.regal_mistdancer,
|
|
[334377] = L.research_scribe,
|
|
[326836] = L.wicked_oppressor,
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
-- Anima Container
|
|
self:Log("SPELL_SUMMON", "SummonAnimaCollectorStalker", 341321)
|
|
-- Chamber Sentinel
|
|
self:Log("SPELL_CAST_START", "CraggyFracture", 328170) -- Craggy Fracture
|
|
self:Log("SPELL_CAST_START", "SeveringSlice", 322429) -- Severing Slice
|
|
self:Log("SPELL_CAST_START", "Stoneskin", 322433) -- Stoneskin
|
|
self:Log("SPELL_AURA_APPLIED", "StoneskinApplied", 322433) -- Stoneskin
|
|
-- Depths Warden
|
|
self:Log("SPELL_CAST_START", "BarbedShackles", 335305) -- Barbed Shackles
|
|
self:Log("SPELL_AURA_APPLIED", "BarbedShacklesApplied", 335306) -- Barbed Shackles
|
|
self:Log("SPELL_CAST_START", "CrushingStrike", 335308) -- Crushing Strike
|
|
-- Dreadful Huntmaster
|
|
self:Log("SPELL_CAST_SUCCESS", "VolatileTrap", 334558) -- Volatile Trap
|
|
-- General Kaal
|
|
self:Log("SPELL_CAST_START", "GloomSquall", 324103) -- Gloom Squall
|
|
self:Log("SPELL_CAST_SUCCESS", "ShiningRadiance", 324086) -- Shining Radiance
|
|
-- Grand Overseer
|
|
self:Log("SPELL_CAST_START", "DreadBindings", 326827) -- Dread Bindings
|
|
self:Log("SPELL_AURA_REMOVED", "DreadBindingsRemoved", 326827)
|
|
-- Head Custodian Javlin
|
|
self:Log("SPELL_CAST_START", "SweepingSlash", 334329) -- Sweeping Slash
|
|
self:Log("SPELL_CAST_START", "BludgeoningBash", 334326) -- Bludgeoning Bash
|
|
-- Insatiable Brute
|
|
self:Log("SPELL_CAST_START", "Slam", 321178) -- Slam
|
|
self:Log("SPELL_CAST_START", "UmbralCrash", 334918) -- Umbral Crash
|
|
-- Regal Mistdancer
|
|
self:Log("SPELL_CAST_START", "EchoingThrust", 320991) -- Echoing Thrust
|
|
-- Research Scribe
|
|
self:Log("SPELL_CAST_SUCCESS", "ExplosiveVellum", 334377) -- Explosive Vellum
|
|
-- Wicked Oppressor
|
|
self:Log("SPELL_CAST_START", "CurseOfSuppression", 326836) -- Curse of Suppression
|
|
self:Log("SPELL_AURA_APPLIED", "CurseOfSuppressionApplied", 326836) -- Curse of Suppression
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
-- Anima Collector
|
|
|
|
function mod:SummonAnimaCollectorStalker(args)
|
|
self:Message(args.spellId, "green", L.anima_collector)
|
|
self:PlaySound(args.spellId, "info")
|
|
end
|
|
|
|
-- Chamber Sentinel
|
|
|
|
function mod:CraggyFracture(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
function mod:SeveringSlice(args)
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:Stoneskin(args)
|
|
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:StoneskinApplied(args)
|
|
if not self:Player(args.destFlags) then
|
|
self:Message(args.spellId, "yellow", CL.on:format(args.spellName, args.destName))
|
|
self:PlaySound(args.spellId, "warning")
|
|
end
|
|
end
|
|
|
|
-- Depths Warden
|
|
|
|
function mod:BarbedShackles(args)
|
|
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:BarbedShacklesApplied(args)
|
|
self:TargetMessage(335305, "yellow", args.destName)
|
|
self:PlaySound(335305, "alert", nil, args.destName)
|
|
end
|
|
|
|
function mod:CrushingStrike(args)
|
|
self:Message(args.spellId, "purple")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
-- Dreadful Huntmaster
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:VolatileTrap(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
|
|
|
|
-- General Kaal
|
|
|
|
function mod:GloomSquall(args)
|
|
self:Message(args.spellId, "red", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "warning")
|
|
end
|
|
|
|
function mod:ShiningRadiance(args)
|
|
self:Message(args.spellId, "green")
|
|
self:PlaySound(args.spellId, "info")
|
|
end
|
|
|
|
-- Grand Overseer
|
|
|
|
function mod:DreadBindings(args)
|
|
self:Message(args.spellId, "red", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "warning")
|
|
end
|
|
|
|
function mod:DreadBindingsRemoved(args)
|
|
if self:Me(args.destGUID) then
|
|
self:Message(args.spellId, "green", CL.removed:format(args.spellName))
|
|
self:PlaySound(args.spellId, "info")
|
|
end
|
|
end
|
|
|
|
-- Head Custodian Javlin
|
|
|
|
function mod:SweepingSlash(args)
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:BludgeoningBash(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
-- Insatiable Brute
|
|
|
|
function mod:Slam(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
function mod:UmbralCrash(args)
|
|
self:Message(args.spellId, "yellow")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
-- Regal Mistdancer
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:EchoingThrust(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
|
|
|
|
-- Research Scribe
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:ExplosiveVellum(args)
|
|
local t = args.time
|
|
if t-prev > 2 then
|
|
prev = t
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Wicked Oppressor
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:CurseOfSuppression(args)
|
|
local t = args.time
|
|
if t-prev > 1.5 then
|
|
prev = t
|
|
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:CurseOfSuppressionApplied(args)
|
|
if self:Dispeller("curse", nil, args.spellId) then
|
|
self:TargetMessage(args.spellId, "red", args.destName)
|
|
self:PlaySound(args.spellId, "warning", nil, args.destName)
|
|
end
|
|
end
|
|
|