local mod = DBM:NewMod("SotSTrash", "DBM-Party-BfA", 4) local L = mod:GetLocalizedStrings() mod:SetRevision("20240426175442") --mod:SetModelID(47785) mod.isTrashMod = true mod:RegisterEvents( "SPELL_CAST_START 268030 267973 268391 268239 268309 276268 267977 268050 268027 274437 268184 276292 268211 268273 268322 268317 268375 276767", "SPELL_AURA_APPLIED 268375 268322 268214 276297 276767 274631", "SPELL_AURA_REMOVED 276297" ) --TODO, Colossal Slam-268348? START --TODO, Tempest-274437-npc:139800 target scan (START)? --Find slicing hurricane local warnCarvedFlesh = mod:NewTargetAnnounce(268214, 2) --local yellArrowBarrage = mod:NewYell(200343) local specWarnRisingTides = mod:NewSpecialWarningSpell(268027, nil, nil, nil, 2, 2) local specWarnShipbreakerStorm = mod:NewSpecialWarningSpell(268239, nil, nil, nil, 2, 2)--Can be interrupted by stuns, but not interrupts local specWarnWashAway = mod:NewSpecialWarningDodge(267973, nil, nil, nil, 2, 2) local specWarnDeepSmash = mod:NewSpecialWarningDodge(268273, nil, nil, nil, 2, 2) local specWarnWhirlingSlam = mod:NewSpecialWarningDodge(276292, nil, nil, nil, 4, 2) local specWarnMentalAssault = mod:NewSpecialWarningDodge(268391, "Tank", nil, 2, 1, 2) local specWarnHeavingBlow = mod:NewSpecialWarningDodge(276268, "Tank", nil, nil, 1, 2) local specWarnBlessingofIrontides = mod:NewSpecialWarningRun(274631, "Tank", nil, nil, 1, 2) local specWarnMinorSwiftness = mod:NewSpecialWarningMove(268184, "Tank", nil, nil, 1, 2) local specWarnMinorReinforcement = mod:NewSpecialWarningMove(268211, "Tank", nil, nil, 1, 2) local specWarnAnchorofBinding = mod:NewSpecialWarningInterrupt(268050, false, nil, nil, 1, 2)--Off by default, should only be interrupted if group has enough for this and mending and purging swiftness local specWarnMendingRapids = mod:NewSpecialWarningInterrupt(268030, "HasInterrupt", nil, nil, 1, 2) local specWarnUnendingDarkness = mod:NewSpecialWarningInterrupt(268309, "HasInterrupt", nil, nil, 1, 2) local specWarnTidalSurge = mod:NewSpecialWarningInterrupt(267977, "HasInterrupt", nil, nil, 1, 2) local specWarnTempest = mod:NewSpecialWarningInterrupt(274437, "HasInterrupt", nil, nil, 1, 2) local specWarnRipMind = mod:NewSpecialWarningInterrupt(268317, "Tank", nil, nil, 1, 2)--Let tank handle this interrupt local specWarnTouchofDrownedKick = mod:NewSpecialWarningInterrupt(268322, "HasInterrupt", nil, nil, 1, 2)--Let everyone else get this one (or healers can dispel it) local specWarnDetectThoughtsKick = mod:NewSpecialWarningInterrupt(268375, "HasInterrupt", nil, nil, 1, 2) local specWarnConsumingVoidKick = mod:NewSpecialWarningInterrupt(276767, "HasInterrupt", nil, nil, 1, 2) local specWarnDetectThoughts = mod:NewSpecialWarningDispel(268375, "MagicDispeller", nil, nil, 1, 2) local specWarnConsumingVoid = mod:NewSpecialWarningDispel(276767, "MagicDispeller", nil, nil, 1, 2) local specWarnTouchofDrowned = mod:NewSpecialWarningDispel(268322, "RemoveMagic", nil, 2, 1, 2) local specWarnConsumingVoidStop = mod:NewSpecialWarningReflect(276767, "CasterDps", nil, nil, 1, 2) local specWarnCarveFlesh = mod:NewSpecialWarningMoveTo(268214, nil, nil, nil, 3, 2) local specWarnVoidSeed = mod:NewSpecialWarningMoveAway(276297, nil, nil, nil, 1, 2) local yellVoidSeed = mod:NewShortFadesYell(276297) local MinorReinforcement = DBM:GetSpellName(268211) --1: Dodge Shit on ground, 2: Shockwaves, 4: AoEs, 5: Run Away, 6: Role function mod:SPELL_CAST_START(args) if not self.Options.Enabled then return end local spellId = args.spellId if spellId == 268030 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnMendingRapids:Show(args.sourceName) specWarnMendingRapids:Play("kickcast") elseif spellId == 268309 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnUnendingDarkness:Show(args.sourceName) specWarnUnendingDarkness:Play("kickcast") elseif spellId == 267973 and self:AntiSpam(5, 1) then specWarnWashAway:Show() specWarnWashAway:Play("watchstep") elseif spellId == 268391 and self:AntiSpam(3, 2) then specWarnMentalAssault:Show() specWarnMentalAssault:Play("shockwave") elseif spellId == 268239 and self:AntiSpam(5, 4) then specWarnShipbreakerStorm:Show() specWarnShipbreakerStorm:Play("aesoon") elseif spellId == 276268 and self:AntiSpam(3, 2) then specWarnHeavingBlow:Show() specWarnHeavingBlow:Play("shockwave") elseif spellId == 267977 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnTidalSurge:Show(args.sourceName) specWarnTidalSurge:Play("kickcast") elseif spellId == 268050 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnAnchorofBinding:Show(args.sourceName) specWarnAnchorofBinding:Play("kickcast") elseif spellId == 268027 and self:AntiSpam(4, 4) then specWarnRisingTides:Show() specWarnRisingTides:Play("aesoon") elseif spellId == 274437 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnTempest:Show(args.sourceName) specWarnTempest:Play("kickcast") elseif spellId == 268184 and self:AntiSpam(4, 6) then specWarnMinorSwiftness:Show() specWarnMinorSwiftness:Play("moveboss") elseif spellId == 276292 and self:AntiSpam(5, 5) then specWarnWhirlingSlam:Show() specWarnWhirlingSlam:Play("justrun") elseif spellId == 268211 and self:AntiSpam(4, 6) then specWarnMinorReinforcement:Show() specWarnMinorReinforcement:Play("moveboss") elseif spellId == 268273 and self:AntiSpam(4, 1) then specWarnDeepSmash:Show() specWarnDeepSmash:Play("watchstep") elseif spellId == 268322 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnTouchofDrownedKick:Show(args.sourceName) specWarnTouchofDrownedKick:Play("kickcast") elseif spellId == 268317 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnRipMind:Show(args.sourceName) specWarnRipMind:Play("kickcast") elseif spellId == 268375 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnDetectThoughtsKick:Show(args.sourceName) specWarnDetectThoughtsKick:Play("kickcast") elseif spellId == 276767 and self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnConsumingVoidKick:Show(args.sourceName) specWarnConsumingVoidKick:Play("kickcast") end end function mod:SPELL_AURA_APPLIED(args) if not self.Options.Enabled then return end local spellId = args.spellId if spellId == 268375 and self:AntiSpam(2, 6) then specWarnDetectThoughts:Show(args.destName) specWarnDetectThoughts:Play("helpdispel") elseif spellId == 276767 and self:AntiSpam(2, 6) then if self.Options.SpecWarn276767dispel then specWarnConsumingVoid:Show(args.destName) specWarnConsumingVoid:Play("helpdispel") else specWarnConsumingVoidStop:Show(args.destName) specWarnConsumingVoidStop:Play("stopattack") end elseif spellId == 268322 and args:IsDestTypePlayer() and self:CheckDispelFilter("magic") and self:AntiSpam(2, 3) then specWarnTouchofDrowned:Show(args.destName) specWarnTouchofDrowned:Play("helpdispel") elseif spellId == 268214 then if args:IsPlayer() then specWarnCarveFlesh:Show(MinorReinforcement) specWarnCarveFlesh:Play("targetyou") else warnCarvedFlesh:Show(args.destName) end elseif spellId == 276297 then if args:IsPlayer() then specWarnVoidSeed:Schedule(8) specWarnVoidSeed:ScheduleVoice(8, "runout") yellVoidSeed:Countdown(12) end elseif spellId == 274631 and self:AntiSpam(4, 5) then specWarnBlessingofIrontides:Show() specWarnBlessingofIrontides:Play("justrun") end end function mod:SPELL_AURA_REMOVED(args) if not self.Options.Enabled then return end local spellId = args.spellId if spellId == 276297 then if args:IsPlayer() then specWarnVoidSeed:Cancel() specWarnVoidSeed:CancelVoice() yellVoidSeed:Cancel() end end end