local mod = DBM:NewMod("UBRSTrash", "DBM-Party-WoD", 8) local L = mod:GetLocalizedStrings() mod:SetRevision("20240808043723") --mod:SetModelID(47785) mod.isTrashMod = true mod.isTrashModBossFightAllowed = 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