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

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