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.

77 lines
2.6 KiB

local mod = DBM:NewMod(1168, "DBM-Party-WoD", 6, 537)
local L = mod:GetLocalizedStrings()
mod.statTypes = "normal,heroic,mythic,challenge,timewalker"
mod:SetRevision("20230504231118")
mod:SetCreatureID(75829)
mod:SetEncounterID(1688)
mod.sendMainBossGUID = true
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 152801 153067",
"SPELL_AURA_APPLIED 152979",
"SPELL_AURA_REMOVED 152979",
"SPELL_PERIODIC_DAMAGE 153070",
"SPELL_ABSORBED 153070"
)
--[[
(ability.id = 152801 or ability.id = 153067) and type = "begincast"
or ability.id = 152979 and type = "applydebuff"
or type = "dungeonencounterstart" or type = "dungeonencounterend"
--]]
local specWarnVoidVortex = mod:NewSpecialWarningRun(152801, nil, nil, 2, 4, 2)
local specWarnSoulShred = mod:NewSpecialWarningSpell(152979, nil, nil, nil, 1, 2)
local specWarnVoidDevastation = mod:NewSpecialWarningSpell(153067, nil, nil, nil, 2, 2)
local specWarnVoidDevastationM = mod:NewSpecialWarningGTFO(153070, nil, nil, nil, 1, 8)
local timerVoidVortexCD = mod:NewCDTimer(77, 152801, nil, nil, nil, 2)
local timerSoulShredCD = mod:NewNextTimer(77, 152979, nil, nil, nil, 6)
local timerSoulShred = mod:NewBuffFadesTimer(20, 152979)
local timerVoidDevastationCD = mod:NewNextTimer(77, 153067, nil, nil, nil, 3)
function mod:OnCombatStart(delay)
timerVoidVortexCD:Start(22.7-delay)
timerSoulShredCD:Start(37-delay)
timerVoidDevastationCD:Start(65.3-delay)
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 152801 then
timerVoidVortexCD:Start()
specWarnVoidVortex:Show()
specWarnVoidVortex:Play("runaway")
elseif spellId == 153067 then
specWarnVoidDevastation:Show()
specWarnVoidDevastation:Play("aesoon")
timerVoidDevastationCD:Start()
end
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 152979 and self:AntiSpam() then--SPELL_CAST_SUCCESS is missing so have to scan for debuffs
specWarnSoulShred:Show()
timerSoulShredCD:Start()
timerSoulShred:Start()
specWarnSoulShred:Play("killspirit")
end
end
function mod:SPELL_AURA_REMOVED(args)
if args.spellId == 152979 and args:IsPlayer() then
timerSoulShred:Cancel()
end
end
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, destName, _, _, spellId, spellName)
if spellId == 153070 and destGUID == UnitGUID("player") and self:AntiSpam(2, 1) then
specWarnVoidDevastationM:Show(spellName)
specWarnVoidDevastationM:Play("watchfeet")
end
end
mod.SPELL_ABSORBED = mod.SPELL_PERIODIC_DAMAGE