local mod = DBM:NewMod("NLTrash", "DBM-Party-Legion", 5) local L = mod:GetLocalizedStrings() mod:SetRevision("20240808043723") --mod:SetModelID(47785) mod.isTrashMod = true mod.isTrashModBossFightAllowed = true mod:RegisterEvents( "SPELL_CAST_START 183088 226296 202108 193505 226287 183548 193585 226406 202181 193941 226347 183539", "SPELL_CAST_SUCCESS 183433 183526 183088", "SPELL_AURA_APPLIED 200154 183407 186576 193803 201983 226388 186616", "UNIT_DIED" ) --[[ (ability.id = 183088 or ability.id = 226296 or ability.id = 202108 or ability.id = 193505 or ability.id = 226287 or ability.id = 183548 or ability.id = 193585 or ability.id = 226406 or ability.id = 202181 or ability.id = 193941 or ability.id = 226347 or ability.id = 183539 or ability.id = 201983 or ability.id = 200154) and type = "begincast" or (ability.id = 183433 or ability.id = 183526) and type = "cast" --]] local warnSubmerge = mod:NewSpellAnnounce(183433, 3) local warnWarDrums = mod:NewSpellAnnounce(183526, 4) local warnBurningHatred = mod:NewTargetAnnounce(200154, 3) local warnMetamorphosis = mod:NewTargetNoFilterAnnounce(193803, 3, nil, false) local warnPetrifed = mod:NewTargetNoFilterAnnounce(186616, 4) local warnCallWorm = mod:NewCastAnnounce(183548, 3) local warnCrush = mod:NewCastAnnounce(226287, 3) local warnPiercingShards = mod:NewCastAnnounce(226296, 4, nil, nil, "Tank|Healer") local warnFracture = mod:NewCastAnnounce(193505, 3, nil, nil, "Tank|Healer") local warnEmberSwipe = mod:NewCastAnnounce(226406, 3, nil, nil, "Tank|Healer") local warnImpalingShard = mod:NewCastAnnounce(193941, 3, nil, nil, "Tank|Healer") local warnPetrifyingTotem = mod:NewCastAnnounce(202108, 3) local warnBound = mod:NewCastAnnounce(193585, 3) local warnStoneShatter = mod:NewCastAnnounce(226347, 3) local warnBarbedTongue = mod:NewCastAnnounce(183539, 3) local specWarnBurningHatred = mod:NewSpecialWarningRun(200154, nil, nil, nil, 4, 2) local specWarnCrush = mod:NewSpecialWarningRun(226287, "Melee", nil, nil, 1, 2) local specWarnAvalanche = mod:NewSpecialWarningDodge(183088, nil, nil, 3, 1, 2) local specWarnPetrifyingTotem = mod:NewSpecialWarningDodge(202108, nil, nil, nil, 2, 2) local specWarnPetrifyingCloud = mod:NewSpecialWarningDispel(186576, "RemoveMagic", nil, nil, 1, 2) local specWarnFrenzy = mod:NewSpecialWarningDispel(201983, "RemoveEnrage", nil, nil, 1, 2) local specWarnStoneGaze = mod:NewSpecialWarningInterrupt(202181, "HasInterrupt", nil, nil, 1, 2) local specWarnGTFO = mod:NewSpecialWarningGTFO(186576, nil, nil, nil, 1, 8) local timerSubmergeCD = mod:NewCDNPTimer(22.7, 183433, nil, nil, nil, 5) local timerStoneShatterCD = mod:NewCDNPTimer(12.1, 226347, nil, nil, nil, 3) local timerImpalingShardCD = mod:NewCDNPTimer(15.7, 193941, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON) local timerCrushCD = mod:NewCDNPTimer(18.2, 226287, nil, nil, nil, 3) local timerFractureCD = mod:NewCDNPTimer(15.7, 193505, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--Also acts as piercing shards timer, piercing is awlays used immediately after fracture local timerStoneGazeCD = mod:NewCDNPTimer(20.6, 202181, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON) local timerAvalancheCD = mod:NewCDNPTimer(19.4, 183088, nil, nil, nil, 3) local timerPetrifyingTotemCD = mod:NewCDNPTimer(35.1, 202108, nil, nil, nil, 3) local timerEmberSwipeCD = mod:NewCDNPTimer(10.9, 226406, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON) local timerFrenzyCD = mod:NewCDNPTimer(20.6, 201983, nil, "RemoveEnrage|Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON) local timerBoundCD = mod:NewCDNPTimer(20.6, 193585, nil, nil, nil, 5) --Antispam IDs for this mod: 1 run away, 2 dodge, 3 dispel, 4 incoming damage, 5 you/role, 6 misc, 7 GTFO function mod:SPELL_CAST_START(args) if not self.Options.Enabled then return end local spellId = args.spellId if spellId == 183088 then if self:AntiSpam(3, 2) then specWarnAvalanche:Show() specWarnAvalanche:Play("watchstep") end elseif spellId == 226296 and self:AntiSpam(3, 5) then warnPiercingShards:Show() elseif spellId == 202108 then timerPetrifyingTotemCD:Start(nil, args.sourceGUID) if self:AntiSpam(3, 2) then specWarnPetrifyingTotem:Show() specWarnPetrifyingTotem:Play("runaway") end elseif spellId == 193505 then timerFractureCD:Start(nil, args.sourceGUID) if self:AntiSpam(3, 5) then warnFracture:Show() end elseif spellId == 226287 then timerCrushCD:Start(nil, args.sourceGUID) if self:AntiSpam(3, 4) then if self.Options.SpecWarn226287run then specWarnCrush:Show() specWarnCrush:Play("justrun") else warnCrush:Show() end end elseif spellId == 183548 and self:AntiSpam(3, 5) then warnCallWorm:Show() elseif spellId == 193585 then timerBoundCD:Start(nil, args.sourceGUID) if self:AntiSpam(3, 6) then warnBound:Show() end elseif spellId == 226406 then timerEmberSwipeCD:Start(nil, args.sourceGUID) if self:AntiSpam(3, 5) then warnEmberSwipe:Show() end elseif spellId == 193941 then timerImpalingShardCD:Start(nil, args.sourceGUID) if self:AntiSpam(3, 5) then warnImpalingShard:Show() end elseif spellId == 202181 then if args:GetSrcCreatureID() == 91332 then--Stoneclaw Hunter timerStoneGazeCD:Start(12.1, args.sourceGUID) else--Stoneclaw Grubmaster timerStoneGazeCD:Start(13.8, args.sourceGUID) end if self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnStoneGaze:Show(args.sourceName) specWarnStoneGaze:Play("kickcast") end elseif spellId == 226347 then timerStoneShatterCD:Start(nil, args.sourceGUID) if self:AntiSpam(3, 5) then warnStoneShatter:Show() end elseif spellId == 183539 and self:AntiSpam(3, 5) then warnBarbedTongue:Show() end end function mod:SPELL_CAST_SUCCESS(args) if not self.Options.Enabled then return end local spellId = args.spellId if spellId == 183433 then timerSubmergeCD:Start(nil, args.sourceGUID) if self:AntiSpam(3, 5) then warnSubmerge:Show() end elseif spellId == 183526 and self:AntiSpam(3, 5) then warnWarDrums:Show() elseif spellId == 183088 then timerAvalancheCD:Start(18.3, args.sourceGUID)--19.4 - 1.1 end end function mod:SPELL_AURA_APPLIED(args) if not self.Options.Enabled then return end local spellId = args.spellId if spellId == 200154 then if args:IsPlayer() then specWarnBurningHatred:Show() specWarnBurningHatred:Play("justrun") else warnBurningHatred:Show(args.destName) end elseif (spellId == 183407 or spellId == 226388) and args:IsPlayer() and self:AntiSpam(3, 7) then specWarnGTFO:Show(args.spellName) specWarnGTFO:Play("watchfeet") elseif spellId == 186576 then if args:IsPlayer() then specWarnGTFO:Show(args.spellName) specWarnGTFO:Play("watchfeet") elseif self:CheckDispelFilter("magic") then specWarnPetrifyingCloud:Show(args.destName) specWarnPetrifyingCloud:Play("helpdispel") end elseif spellId == 193803 and self:AntiSpam(3, 6) then warnMetamorphosis:Show(args.destName) elseif spellId == 201983 then timerFrenzyCD:Start(nil, args.sourceGUID) if self:AntiSpam(3, 3) then specWarnFrenzy:Show(args.destName) specWarnFrenzy:Play("enrage") end elseif spellId == 186616 then warnPetrifed:Show(args.destName) end end function mod:UNIT_DIED(args) local cid = self:GetCIDFromGUID(args.destGUID) if cid == 91001 then--Tarspitter Lurker timerSubmergeCD:Stop(args.destGUID) elseif cid == 91332 then--Stoneclaw Hunter timerStoneShatterCD:Stop(args.destGUID) elseif cid == 98406 then--Embershard Scorpion timerImpalingShardCD:Stop(args.destGUID) elseif cid == 101438 then--Vileshard Chunk timerCrushCD:Stop(args.destGUID) elseif cid == 91000 then--Vileshard Hulk timerFractureCD:Stop(args.destGUID) elseif cid == 91006 then--Rockback Gnasher timerStoneGazeCD:Stop(args.destGUID) elseif cid == 102404 then--Stoneclaw Grubmaster timerStoneShatterCD:Stop(args.destGUID) elseif cid == 90997 then--Mightstone breaker timerAvalancheCD:Stop(args.destGUID) elseif cid == 90998 then--Blightshard Shaper timerPetrifyingTotemCD:Stop(args.destGUID) elseif cid == 102295 or cid == 102287 or cid == 113536 or cid == 113537 then--Emberhusk Dominator timerEmberSwipeCD:Stop(args.destGUID) timerFrenzyCD:Stop(args.destGUID) elseif cid == 102232 then--Rockbound Trapper timerBoundCD:Stop(args.destGUID) end end