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.

139 lines
4.1 KiB

4 years ago
--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("Black Rook Hold Trash", 1501)
if not mod then return end
mod.displayName = CL.trash
mod:RegisterEnableMob(
98280, -- Risen Arcanist
98243, -- Soul-torn Champion
100485, -- Soul-torn Vanguard
102094, -- Risen Swordsman
98275, -- Risen Archer
98691, -- Risen Scout
98370, -- Ghostly Councilor
102788 -- Felspite Dominator
)
--------------------------------------------------------------------------------
-- Localization
--
local L = mod:GetLocale()
if L then
L.arcanist = "Risen Arcanist"
L.champion = "Soul-torn Champion"
L.swordsman = "Risen Swordsman"
L.archer = "Risen Archer"
L.scout = "Risen Scout"
L.councilor = "Ghostly Councilor"
L.dominator = "Felspite Dominator"
end
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
200248, -- Arcane Blitz (Risen Arcanist)
200261, -- Bonebreaking Strike (Soul-torn Champion)
197974, -- Bonecrushing Strike (Soul-torn Vanguard)
214003, -- Coup de Grace (Risen Swordsman)
200343, -- Arrow Barrage (Risen Archer)
200291, -- Knife Dance (Risen Scout)
225573, -- Dark Mending (Ghostly Councilor)
203163, -- Sic Bats! (Felspite Dominator)
227913 -- Felfrenzy (Felspite Dominator)
}, {
[200248] = L.arcanist,
[200261] = L.champion,
[214003] = L.swordsman,
[200343] = L.archer,
[200291] = L.scout,
[225573] = L.councilor,
[203163] = L.dominator
}
end
function mod:OnBossEnable()
self:RegisterMessage("BigWigs_OnBossEngage", "Disable")
self:Log("SPELL_CAST_START", "ArcaneBlitz", 200248)
self:Log("SPELL_AURA_APPLIED_DOSE", "ArcaneBlitzApplied", 200248)
self:Log("SPELL_AURA_REMOVED", "ArcaneBlitzRemoved", 200248)
self:Log("SPELL_CAST_START", "BonebreakingStrike", 200261, 197974) -- 197974 = Bonecrushing Strike
self:Log("SPELL_CAST_START", "CoupdeGrace", 214003)
self:Log("SPELL_CAST_START", "ArrowBarrage", 200343)
self:Log("SPELL_CAST_START", "KnifeDance", 200291)
self:Log("SPELL_CAST_START", "DarkMending", 225573)
self:Log("SPELL_AURA_APPLIED", "SicBats", 203163)
self:Log("SPELL_CAST_START", "Felfrenzy", 227913)
end
--------------------------------------------------------------------------------
-- Event Handlers
--
do
local blitzTracker = {}
-- Risen Arcanist
function mod:ArcaneBlitz(args)
-- only show a message if stacks are getting high (6 = 300% which is around 1m damage a hit)
local amount = blitzTracker[args.sourceGUID]
if amount and amount > 5 and (self:Interrupter(args.sourceGUID) or self:Dispeller("magic", true)) then
self:MessageOld(args.spellId, "yellow", "alert", CL.count:format(args.spellName, amount))
end
end
function mod:ArcaneBlitzApplied(args)
blitzTracker[args.destGUID] = args.amount
end
function mod:ArcaneBlitzRemoved(args)
blitzTracker[args.destGUID] = nil
end
end
-- Soul-torn Champion, Soul-torn Vanguard
function mod:BonebreakingStrike(args)
self:MessageOld(args.spellId, "orange", "alarm", CL.incoming:format(args.spellName))
end
-- Risen Swordsman
function mod:CoupdeGrace(args)
self:MessageOld(args.spellId, "red", "alarm", CL.incoming:format(args.spellName))
end
-- Risen Archer
function mod:ArrowBarrage(args)
self:MessageOld(args.spellId, "yellow", "warning", CL.casting:format(args.spellName))
end
-- Risen Scout
function mod:KnifeDance(args)
self:MessageOld(args.spellId, "red", "alert", CL.casting:format(args.spellName))
end
-- Ghostly Councilor
function mod:DarkMending(args)
self:MessageOld(args.spellId, "yellow", self:Interrupter() and "alarm", CL.casting:format(args.spellName))
end
-- Felspite Dominator
function mod:Felfrenzy(args)
self:MessageOld(args.spellId, "yellow", self:Interrupter() and "alarm", CL.casting:format(args.spellName))
end
do
local prev = 0
function mod:SicBats(args)
local t = GetTime()
if t-prev > 1.5 then
prev = t
self:TargetMessageOld(args.spellId, args.destName, "orange", "warning")
end
end
end