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.
132 lines
5.2 KiB
132 lines
5.2 KiB
local mod = DBM:NewMod("SMBGTrash", "DBM-Party-WoD", 6)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20231026112110")
|
|
--mod:SetModelID(47785)
|
|
mod.isTrashMod = true
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_CAST_START 152818 152964 153395 398150 153268 398206 156718 394512 164907",
|
|
"SPELL_CAST_SUCCESS 394512",
|
|
"SPELL_AURA_APPLIED 152819",
|
|
-- "SPELL_AURA_APPLIED_DOSE 339528",
|
|
-- "SPELL_AURA_REMOVED 339525",
|
|
"UNIT_DIED"
|
|
)
|
|
|
|
--[[
|
|
(ability.id = 152818 or ability.id = 152964 or ability.id = 153395 or ability.id = 398150 or ability.id = 153268 or ability.id = 398206 or ability.id = 156718 or ability.id = 394512 or ability.id = 164907) and type = "begincast"
|
|
--]]
|
|
local warnVoidSlash = mod:NewCastAnnounce(164907, 4, nil, nil, "Tank|Healer")
|
|
local warnDomination = mod:NewCastAnnounce(398150, 4)
|
|
local warnExhume = mod:NewCastAnnounce(153268, 2)
|
|
local warnVoidPulse = mod:NewSpellAnnounce(152964, 3)
|
|
local warnBodySlam = mod:NewCastAnnounce(153395, 4)
|
|
|
|
--local yellConcentrateAnima = mod:NewYell(339525)
|
|
--local yellConcentrateAnimaFades = mod:NewShortFadesYell(339525)
|
|
local specWarnShadowWordFrailty = mod:NewSpecialWarningYou(152819, nil, nil, nil, 1, 2)
|
|
local specWarnShadowWordFrailtyDispel = mod:NewSpecialWarningDispel(152819, "RemoveMagic", nil, nil, 1, 2)
|
|
local specWarnShadowMend = mod:NewSpecialWarningInterrupt(152818, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnDeathblast = mod:NewSpecialWarningInterrupt(398206, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnNecroticBurst = mod:NewSpecialWarningInterrupt(156718, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnVoidEruptions = mod:NewSpecialWarningDodge(394512, nil, nil, nil, 2, 2)
|
|
local specWarnBodySlam = mod:NewSpecialWarningDodge(153395, "Tank", nil, nil, 2, 2)
|
|
|
|
local timerShadowMendCD = mod:NewCDNPTimer(8.5, 152818, nil, "HasInterrupt", nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
|
|
local timerVoidSlashCD = mod:NewCDNPTimer(10.9, 164907, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
local timerVoidEruptionsCD = mod:NewCDNPTimer(19.4, 394512, nil, nil, nil, 3, nil, DBM_COMMON_L.INTERRUPT_ICON)
|
|
local timerNecroticBurstCD = mod:NewCDNPTimer(19.4, 156718, nil, "HasInterrupt", nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
|
|
local timerBodySlamCD = mod:NewCDNPTimer(14.5, 153395, nil, nil, nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
|
|
--local playerName = UnitName("player")
|
|
|
|
--Antispam IDs for this mod: 1 run away, 2 dodge, 3 dispel, 4 incoming damage, 5 you/role, 6 misc
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 152818 then
|
|
timerShadowMendCD:Start(nil, args.sourceGUID)
|
|
if self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnShadowMend:Show(args.sourceName)
|
|
specWarnShadowMend:Play("kickcast")
|
|
end
|
|
elseif spellId == 398206 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnDeathblast:Show(args.sourceName)
|
|
specWarnDeathblast:Play("kickcast")
|
|
elseif spellId == 156718 then
|
|
timerNecroticBurstCD:Start(nil, args.sourceGUID)
|
|
if self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnNecroticBurst:Show(args.sourceName)
|
|
specWarnNecroticBurst:Play("kickcast")
|
|
end
|
|
elseif spellId == 152964 and self:AntiSpam(3, 4) then
|
|
warnVoidPulse:Show()
|
|
elseif spellId == 153395 then
|
|
timerBodySlamCD:Start(nil, args.sourceGUID)--NO clean cancel, cause mob doesn't die, it leaves
|
|
if self:AntiSpam(5, 4) then
|
|
if self.Options.SpecWarn153395dodge then
|
|
specWarnBodySlam:Show()
|
|
specWarnBodySlam:Play("shockwave")
|
|
else
|
|
warnBodySlam:Show()
|
|
end
|
|
end
|
|
elseif spellId == 398150 and self:AntiSpam(5, 5) then
|
|
warnDomination:Show()
|
|
elseif spellId == 153268 and self:AntiSpam(5, 6) then
|
|
warnExhume:Show()
|
|
elseif spellId == 394512 then
|
|
timerVoidEruptionsCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 164907 then
|
|
timerVoidSlashCD:Start(nil, args.sourceGUID)
|
|
if self:AntiSpam(3, 5) then
|
|
warnVoidSlash:Show()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 394512 and self:AntiSpam(3, 2) then
|
|
specWarnVoidEruptions:Show()
|
|
specWarnVoidEruptions:Play("watchstep")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 152819 then
|
|
if args:IsPlayer() then
|
|
specWarnShadowWordFrailty:Show()
|
|
specWarnShadowWordFrailty:Play("targetyou")
|
|
elseif self:CheckDispelFilter("magic") then
|
|
specWarnShadowWordFrailtyDispel:Show(args.destName)
|
|
specWarnShadowWordFrailtyDispel:Play("helpdispel")
|
|
end
|
|
end
|
|
end
|
|
--mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
--[[
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 339525 and args:IsPlayer() then
|
|
|
|
end
|
|
end
|
|
--]]
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 75713 then--Shadowmoon Bone-Mender
|
|
timerShadowMendCD:Stop(args.destGUID)
|
|
elseif cid == 75652 then--Void Spawn
|
|
timerVoidEruptionsCD:Stop(args.destGUID)
|
|
elseif cid == 76104 then--Corpse Spider
|
|
timerNecroticBurstCD:Stop(args.destGUID)
|
|
elseif cid == 76518 then--Ritual Bones
|
|
timerVoidSlashCD:Stop(args.destGUID)
|
|
end
|
|
end
|
|
|