|
|
|
|
local mod = DBM:NewMod(175, "DBM-Party-Cataclysm", 11, 76)
|
|
|
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
|
|
|
|
|
|
mod.statTypes = "heroic,timewalker"
|
|
|
|
|
|
|
|
|
|
mod:SetRevision("20240428124541")
|
|
|
|
|
mod:SetCreatureID(52155)
|
|
|
|
|
mod:SetEncounterID(1178)
|
|
|
|
|
mod:SetUsedIcons(7, 8)
|
|
|
|
|
|
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
|
|
|
|
|
|
mod:RegisterEventsInCombat(
|
|
|
|
|
"SPELL_CAST_START 96842"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
mod:RegisterEvents(
|
|
|
|
|
"SPELL_AURA_APPLIED 96477 96509 96512 96466",
|
|
|
|
|
"SPELL_AURA_REMOVED 96466 96477"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
local warnWordHethiss = mod:NewSpellAnnounce(96560, 2)
|
|
|
|
|
local warnBreathHethiss = mod:NewSpellAnnounce(96509, 3)
|
|
|
|
|
local warnToxicLink = mod:NewTargetNoFilterAnnounce(96477, 4)
|
|
|
|
|
local warnBlessing = mod:NewSpellAnnounce(96512, 3)
|
|
|
|
|
|
|
|
|
|
local specWarnWhisperHethiss= mod:NewSpecialWarningInterrupt(96466, "HasInterrupt", nil, nil, 1, 2)
|
|
|
|
|
local specWarnToxicLink = mod:NewSpecialWarningYou(96477, nil, nil, nil, 1, 2)
|
|
|
|
|
local specWarnBloodvenom = mod:NewSpecialWarningSpell(96842, nil, nil, nil, 2, 2)
|
|
|
|
|
local specWarnPoolAcridTears= mod:NewSpecialWarningMove(96521, nil, nil, nil, 1, 2)
|
|
|
|
|
local specWarnEffusion = mod:NewSpecialWarningMove(96680, nil, nil, nil, 1, 2)
|
|
|
|
|
|
|
|
|
|
local timerWhisperHethiss = mod:NewTargetTimer(8, 96466, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
|
|
|
|
|
local timerBreathHethiss = mod:NewNextTimer(12, 96509, nil, nil, nil, 3)
|
|
|
|
|
local timerToxicLinkCD = mod:NewNextTimer(14, 96477, nil, nil, nil, 3)--13-15 second variations, 14 will be a good medium
|
|
|
|
|
|
|
|
|
|
mod:AddSetIconOption("SetIconOnToxicLink", 96477, true, 0, {7, 8})
|
|
|
|
|
|
|
|
|
|
mod.vb.toxicLinkIcon = 8
|
|
|
|
|
local toxicLinkTargets = {}
|
|
|
|
|
|
|
|
|
|
local function warnToxicLinkTargets(self)
|
|
|
|
|
warnToxicLink:Show(table.concat(toxicLinkTargets, "<, >"))
|
|
|
|
|
table.wipe(toxicLinkTargets)
|
|
|
|
|
self.vb.toxicLinkIcon = 8
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:OnCombatStart(delay)
|
|
|
|
|
timerToxicLinkCD:Start(12-delay)
|
|
|
|
|
self.vb.toxicLinkIcon = 8
|
|
|
|
|
table.wipe(toxicLinkTargets)
|
|
|
|
|
if not self:IsTrivial() then--Only warning that uses these events is remorseless winter and that warning is completely useless spam for level 90s.
|
|
|
|
|
self:RegisterShortTermEvents(
|
|
|
|
|
"SPELL_DAMAGE 96685 96521",
|
|
|
|
|
"SPELL_MISSED 96685 96521"
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:OnCombatEnd()
|
|
|
|
|
self:UnregisterShortTermEvents()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
|
|
|
if args.spellId == 96477 then
|
|
|
|
|
toxicLinkTargets[#toxicLinkTargets + 1] = args.destName
|
|
|
|
|
if self:IsInCombat() then--only start cd timer on boss fight, not when trash does it.
|
|
|
|
|
timerToxicLinkCD:Start()
|
|
|
|
|
end
|
|
|
|
|
if args:IsPlayer() then
|
|
|
|
|
specWarnToxicLink:Show()
|
|
|
|
|
specWarnToxicLink:Play("gather")
|
|
|
|
|
end
|
|
|
|
|
if self.Options.SetIconOnToxicLink then
|
|
|
|
|
self:SetIcon(args.destName, self.vb.toxicLinkIcon, 10)
|
|
|
|
|
end
|
|
|
|
|
self.vb.toxicLinkIcon = self.vb.toxicLinkIcon - 1
|
|
|
|
|
self:Unschedule(warnToxicLinkTargets)
|
|
|
|
|
self:Schedule(0.2, warnToxicLinkTargets, self)
|
|
|
|
|
elseif args.spellId == 96509 then
|
|
|
|
|
warnBreathHethiss:Show()
|
|
|
|
|
timerBreathHethiss:Start()
|
|
|
|
|
elseif args.spellId == 96512 then
|
|
|
|
|
warnBlessing:Show()
|
|
|
|
|
elseif args.spellId == 96466 and args:IsDestTypePlayer() then
|
|
|
|
|
timerWhisperHethiss:Start(args.destName)
|
|
|
|
|
if self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
|
|
|
specWarnWhisperHethiss:Show(args.sourceName)
|
|
|
|
|
specWarnWhisperHethiss:Play("kickcast")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
|
|
|
if args.spellId == 96466 then
|
|
|
|
|
timerWhisperHethiss:Cancel(args.destName)
|
|
|
|
|
elseif args.spellId == 96477 then
|
|
|
|
|
if self.Options.SetIconOnToxicLink then
|
|
|
|
|
self:SetIcon(args.destName, 0)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
|
|
|
if args.spellId == 96842 then
|
|
|
|
|
specWarnBloodvenom:Show()
|
|
|
|
|
specWarnBloodvenom:Play("runaway")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
|
|
|
|
|
if spellId == 96685 and self:AntiSpam(3, 1) and destGUID == UnitGUID("player") then
|
|
|
|
|
specWarnEffusion:Show()
|
|
|
|
|
specWarnEffusion:Play("watchfeet")
|
|
|
|
|
elseif spellId == 96521 and self:AntiSpam(3, 2) and destGUID == UnitGUID("player") then
|
|
|
|
|
specWarnPoolAcridTears:Show()
|
|
|
|
|
specWarnPoolAcridTears:Play("watchfeet")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
mod.SPELL_MISSED = mod.SPELL_DAMAGE
|