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.
152 lines
4.4 KiB
152 lines
4.4 KiB
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Maw of Souls Trash", 1492)
|
|
if not mod then return end
|
|
mod.displayName = CL.trash
|
|
mod:RegisterEnableMob(
|
|
99188, -- Waterlogged Soul Guard
|
|
97097, -- Helarjar Champion
|
|
97182, -- Night Watch Mariner
|
|
98919, -- Seacursed Swiftblade
|
|
97365, -- Seacursed Mistmender
|
|
99033, -- Helarjar Mistcaller
|
|
99307 -- Skjal
|
|
)
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Localization
|
|
--
|
|
|
|
local L = mod:GetLocale()
|
|
if L then
|
|
L.soulguard = "Waterlogged Soul Guard"
|
|
L.champion = "Helarjar Champion"
|
|
L.mariner = "Night Watch Mariner"
|
|
L.swiftblade = "Seacursed Swiftblade"
|
|
L.mistmender = "Seacursed Mistmender"
|
|
L.mistcaller = "Helarjar Mistcaller"
|
|
L.skjal = "Skjal"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
194657, -- Soul Siphon
|
|
198405, -- Bone Chilling Scream
|
|
192019, -- Lantern of Darkness
|
|
194615, -- Sea Legs
|
|
199514, -- Torrent of Souls
|
|
199589, -- Whirlpool of Souls
|
|
216197, -- Surging Waters
|
|
195293, -- Debilitating Shout
|
|
{198324, "SAY", "FLASH"}, -- Give No Quarter
|
|
}, {
|
|
[194657] = L.soulguard,
|
|
[198405] = L.champion,
|
|
[192019] = L.mariner,
|
|
[194615] = L.swiftblade,
|
|
[199514] = L.mistmender,
|
|
[199589] = L.mistcaller,
|
|
[195293] = L.skjal,
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:RegisterMessage("BigWigs_OnBossEngage", "Disable")
|
|
|
|
self:Log("SPELL_CAST_START", "Casts", 194657, 199514, 199589, 216197) -- Soul Siphon, Torrent of Souls, Whirlpool of Souls, Surging Waters
|
|
self:Log("SPELL_DAMAGE", "TorrentOfSouls", 199519)
|
|
self:Log("SPELL_MISSED", "TorrentOfSouls", 199519)
|
|
|
|
self:Log("SPELL_AURA_APPLIED", "GhostlyRage", 194663)
|
|
self:Log("SPELL_CAST_START", "BoneChillingScream", 198405)
|
|
|
|
self:Log("SPELL_AURA_APPLIED", "SeaLegs", 194615)
|
|
|
|
self:Log("SPELL_CAST_START", "LanternOfDarkness", 192019)
|
|
|
|
self:Log("SPELL_CAST_START", "DebilitatingShout", 195293)
|
|
self:Log("SPELL_CAST_SUCCESS", "GiveNoQuarter", 198324) -- the target-selecting instant cast (the real channeling cast is 196885)
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
do
|
|
local prevTable = {}
|
|
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", "alarm")
|
|
end
|
|
end
|
|
|
|
function mod:TorrentOfSouls(args)
|
|
if self:Me(args.destGUID) then
|
|
local t = GetTime()
|
|
if t - (prevTable[args.spellId] or 0) > 1.5 then
|
|
prevTable[args.spellId] = t
|
|
|
|
local spellId = self:CheckOption(199514, "MESSAGE") and 199514 or 199589 -- both these spells do damage with 199519
|
|
self:MessageOld(spellId, "blue", "alert", CL.underyou:format(args.spellName))
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:GhostlyRage(args)
|
|
local t = GetTime()
|
|
if t - (prevTable[args.spellId] or 0) > 1.5 then
|
|
prevTable[args.spellId] = t
|
|
self:MessageOld(198405, "yellow", "info", CL.soon:format(self:SpellName(5782))) -- Bone Chilling Scream, 5782 = "Fear"
|
|
self:CDBar(198405, 6)
|
|
end
|
|
end
|
|
|
|
function mod:BoneChillingScream(args)
|
|
local t = GetTime()
|
|
if t - (prevTable[args.spellId] or 0) > 1 then
|
|
prevTable[args.spellId] = t
|
|
self:MessageOld(args.spellId, "red", "warning")
|
|
end
|
|
end
|
|
|
|
|
|
function mod:SeaLegs(args)
|
|
if self:MobId(args.destGUID) ~= 98919 then return end -- mages can spellsteal it
|
|
-- for casters/hunters it's deflection, for melees it's just dodge chance
|
|
if self:Ranged() or self:Dispeller("magic", true) then
|
|
local t = GetTime()
|
|
if t - (prevTable[args.spellId] or 0) > 1 then
|
|
prevTable[args.spellId] = t
|
|
self:MessageOld(args.spellId, "yellow", "alarm", CL.other:format(args.spellName, args.destName))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:LanternOfDarkness(args)
|
|
self:MessageOld(args.spellId, "yellow", "long")
|
|
self:CastBar(args.spellId, 7)
|
|
end
|
|
|
|
function mod:DebilitatingShout(args)
|
|
self:MessageOld(args.spellId, "orange", "long")
|
|
end
|
|
|
|
function mod:GiveNoQuarter(args)
|
|
if self:Me(args.destGUID) then
|
|
self:Say(args.spellId)
|
|
self:Flash(args.spellId)
|
|
self:TargetMessageOld(args.spellId, args.destName, "red", "warning")
|
|
else
|
|
self:TargetMessageOld(args.spellId, args.destName, "red", "alarm", nil, nil, true)
|
|
end
|
|
end
|
|
|