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.
96 lines
4.2 KiB
96 lines
4.2 KiB
local mod = DBM:NewMod("UBRSTrash", "DBM-Party-WoD", 8)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20231026112110")
|
|
--mod:SetModelID(47785)
|
|
|
|
mod.isTrashMod = true
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_AURA_APPLIED 155586 155498",
|
|
"SPELL_CAST_START 155505 169088 169151 155572 155586 155588 154039 155037",
|
|
"UNIT_DIED",
|
|
"UNIT_SPELLCAST_SUCCEEDED"
|
|
)
|
|
|
|
local warnDebilitatingRay = mod:NewCastAnnounce(155505, 4)
|
|
local warnEarthPounder = mod:NewSpellAnnounce(154749, 4, nil, "Melee")
|
|
|
|
local specWarnRejuvSerumDispel = mod:NewSpecialWarningDispel(155498, "MagicDispeller", nil, 2, 1, 2)
|
|
local specWarnDebilitatingRay = mod:NewSpecialWarningInterrupt(155505, "HasInterrupt", nil, 2, 1, 2)
|
|
local specWarnSummonBlackIronDread = mod:NewSpecialWarningInterrupt(169088, "HasInterrupt", nil, 2, 1, 2)
|
|
local specWarnSummonBlackIronVet = mod:NewSpecialWarningInterrupt(169151, "HasInterrupt", nil, 2, 1, 2)
|
|
local specWarnVeilofShadow = mod:NewSpecialWarningInterrupt(155586, "HasInterrupt", nil, 2, 1, 2)--Challenge mode only(little spammy for mage)
|
|
local specWarnVeilofShadowDispel = mod:NewSpecialWarningDispel(155586, "RemoveCurse", nil, 2, 1, 2)
|
|
local specWarnShadowBoltVolley = mod:NewSpecialWarningInterrupt(155588, "HasInterrupt", nil, 2, 1, 2)
|
|
local specWarnSmash = mod:NewSpecialWarningDodge(155572, "Tank", nil, nil, 1, 2)
|
|
local specWarnFranticMauling = mod:NewSpecialWarningDodge(154039, "Tank", nil, nil, 1, 2)
|
|
local specWarnEruption = mod:NewSpecialWarningDodge(155037, "Tank", nil, nil, 1, 2)
|
|
|
|
local timerSmashCD = mod:NewCDNPTimer(13, 155572, nil, nil, nil, 3)
|
|
local timerEruptionCD = mod:NewCDNPTimer(10, 155037, nil, false, nil, 3)--10-15 sec variation. May be distracting or spammy since two of them
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if not self.Options.Enabled or self:IsDifficulty("normal5") or self:IsTrivial() then return end
|
|
local spellId = args.spellId
|
|
if spellId == 155586 and self:CheckDispelFilter("curse") then
|
|
specWarnVeilofShadowDispel:Show(args.destName)
|
|
specWarnVeilofShadowDispel:Play("helpdispel")
|
|
elseif spellId == 155498 and not args:IsDestTypePlayer() then
|
|
specWarnRejuvSerumDispel:Show(args.destName)
|
|
specWarnRejuvSerumDispel:Play("dispelboss")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if not self.Options.Enabled or self:IsDifficulty("normal5") or self:IsTrivial() then return end
|
|
local spellId = args.spellId
|
|
if spellId == 155505 then
|
|
if self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnDebilitatingRay:Show(args.sourceName)
|
|
specWarnDebilitatingRay:Play("kickcast")
|
|
else
|
|
warnDebilitatingRay:Show()
|
|
end
|
|
elseif spellId == 169088 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnSummonBlackIronDread:Show(args.sourceName)
|
|
specWarnSummonBlackIronDread:Play("kickcast")
|
|
elseif spellId == 169151 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnSummonBlackIronVet:Show(args.sourceName)
|
|
specWarnSummonBlackIronVet:Play("kickcast")
|
|
elseif spellId == 155586 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnVeilofShadow:Show(args.sourceName)
|
|
specWarnVeilofShadow:Play("kickcast")
|
|
elseif spellId == 155588 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnShadowBoltVolley:Show(args.sourceName)
|
|
specWarnShadowBoltVolley:Play("kickcast")
|
|
elseif spellId == 155572 then
|
|
if self:AntiSpam(2, 1) then
|
|
specWarnSmash:Show()
|
|
specWarnSmash:Play("shockwave")
|
|
end
|
|
timerSmashCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 154039 and self:AntiSpam(2, 2) then
|
|
specWarnFranticMauling:Show()
|
|
specWarnFranticMauling:Play("shockwave")
|
|
elseif spellId == 155037 then
|
|
specWarnEruption:Show()
|
|
specWarnEruption:Play("shockwave")
|
|
timerEruptionCD:Start(nil, args.sourceGUID)
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 77033 then
|
|
timerSmashCD:Cancel(args.destGUID)
|
|
elseif cid == 82556 then
|
|
timerEruptionCD:Cancel(args.destGUID)
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
|
if spellId == 154749 and self:AntiSpam(2, 3) then
|
|
warnEarthPounder:Show()
|
|
end
|
|
end
|
|
|