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.

109 lines
3.6 KiB

local mod = DBM:NewMod(2171, "DBM-Party-BfA", 3, 1041)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20220116042005")
mod:SetCreatureID(134993)
mod:SetEncounterID(2142)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_AURA_APPLIED 267618 267702",
"SPELL_AURA_REMOVED 267702",
"SPELL_CAST_START 267639 267763 267702",
"SPELL_CAST_SUCCESS 267618",
"SPELL_PERIODIC_DAMAGE 267874",
"SPELL_PERIODIC_MISSED 267874",
"CHAT_MSG_RAID_BOSS_EMOTE"
)
local specWarnBurnCorruption = mod:NewSpecialWarningRun(267639, "Melee", nil, nil, 4, 2)
local specWarnDrainFluids = mod:NewSpecialWarningYou(267618, nil, nil, 2, 1, 2)
local specWarnDrainFluidsTarget = mod:NewSpecialWarningTarget(267618, "Healer", nil, nil, 1, 2)
local specWarnEntomb = mod:NewSpecialWarningYou(267702, nil, nil, nil, 1, 2)
local yellEntomb = mod:NewYell(267702)
local specWarnEntombOther = mod:NewSpecialWarningSwitch(267702, nil, nil, nil, 1, 2)
local specWarnWretchedDischarge = mod:NewSpecialWarningInterrupt(267763, "HasInterrupt", nil, nil, 1, 2)
local specWarnGTFO = mod:NewSpecialWarningGTFO(267874, nil, nil, nil, 1, 8)
local timerBurnCorruptionCD = mod:NewCDTimer(15.5, 267639, nil, "Melee", nil, 2, nil, DBM_COMMON_L.TANK_ICON..DBM_COMMON_L.DEADLY_ICON)
local timerDrainFluidsCD = mod:NewCDTimer(16.8, 267618, nil, nil, nil, 3)
local timerEntombCD = mod:NewCDTimer(60, 267702, nil, nil, nil, 3)
function mod:OnCombatStart(delay)
timerBurnCorruptionCD:Start(10.8-delay)
timerDrainFluidsCD:Start(17.6-delay)--SUCCESS
timerEntombCD:Start(26.5-delay)
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 267618 then
if args:IsPlayer() then
specWarnDrainFluids:Show()
specWarnDrainFluids:Play("targetyou")
else
specWarnDrainFluidsTarget:Show(args.destName)
specWarnDrainFluidsTarget:Play("healfull")
end
elseif spellId == 267702 then
--Boss stops casting stuff and opens tombs until phase ends
timerBurnCorruptionCD:Stop()
timerDrainFluidsCD:Stop()
timerEntombCD:Stop()
end
end
function mod:SPELL_AURA_REMOVED(args)
local spellId = args.spellId
if spellId == 267702 then
--Resume normal boss behavior
timerBurnCorruptionCD:Start(10)
timerDrainFluidsCD:Start(17)--SUCCESS
end
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 267639 then
specWarnBurnCorruption:Show()
specWarnBurnCorruption:Play("justrun")
timerBurnCorruptionCD:Start()
elseif spellId == 267763 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnWretchedDischarge:Show(args.sourceName)
specWarnWretchedDischarge:Play("kickcast")
elseif spellId == 267702 then
timerEntombCD:Start()
end
end
function mod:SPELL_CAST_SUCCESS(args)
local spellId = args.spellId
if spellId == 267618 and self:AntiSpam(3, 1) then
timerDrainFluidsCD:Start()
end
end
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
if spellId == 267874 and destGUID == UnitGUID("player") and self:AntiSpam(2, 4) then
specWarnGTFO:Show()
specWarnGTFO:Play("watchfeet")
end
end
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg, _, _, _, targetname)
if msg:find("spell:267702") then
if targetname and self:AntiSpam(5, targetname) then
if targetname == UnitName("player") then
specWarnEntomb:Show()
specWarnEntomb:Play("targetyou")
yellEntomb:Yell()
else
specWarnEntombOther:Show()
specWarnEntombOther:Play("targetchange")
end
end
end
end