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.

244 lines
12 KiB

local mod = DBM:NewMod("DawnoftheInfiniteTrash", "DBM-Party-Dragonflight", 5)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20230711080712")
--mod:SetModelID(47785)
mod:SetZone(2579)
mod.isTrashMod = true
mod:RegisterEvents(
"SPELL_CAST_START 415770 413487 415435 415437 413529 413621 413622 412806 411958 412505 400165 413607 412136 413024 413023 412922 417481 419327 412378 412262 412233 412200 413427 407205 407535 419351",
"SPELL_CAST_SUCCESS 411994 412012 418435",
"SPELL_AURA_APPLIED 412063 415554 415437 413547 415436"
-- "SPELL_AURA_APPLIED_DOSE",
-- "SPELL_AURA_REMOVED",
-- "UNIT_DIED",
-- "GOSSIP_SHOW"
)
--[[
(ability.id = 415770 or ability.id = 413487 or ability.id = 415435 or ability.id = 415437 or ability.id = 413529 or ability.id = 413621 or ability.id = 413622 or ability.id = 412806 or ability.id = 411958 or ability.id = 412505 or ability.id = 400165 or ability.id = 413607 or ability.id = 412136 or ability.id = 413024 or ability.id = 413023 or ability.id = 412922 or ability.id = 417481 or ability.id = 419327 or ability.id = 412378 or ability.id = 412262 or ability.id = 412233 or ability.id = 412200 or ability.id = 413427 or ability.id = 407205 or ability.id = 407535 or ability.id = 419351 ability.id = 415769 or ability.id = 415436 or ability.id = 413544) and type = "begincast"
or (411994 412012 418435) and type = "cast"
or ability.id = 412063
--]]
--TODO, 407535 might be wrong for sappers, didn't get a log of this one
local warnTemposlice = mod:NewSpellAnnounce(412012, 3, nil, nil, nil, nil, nil, 3)
local warnInfiniteBoltVolley = mod:NewCastAnnounce(415770, 3)
local warnCorrodingVolley = mod:NewCastAnnounce(413607, 3, nil, nil, nil, nil, nil, 3)
local warnInfiniteSchism = mod:NewCastAnnounce(419327, 3, nil, nil, nil, nil, nil, 3)
local warnDeployGoblinSappers = mod:NewCastAnnounce(407535, 3, nil, nil, nil, nil, nil, 3)
local warnTripleStrike = mod:NewCastAnnounce(413487, 3, nil, nil, "Tank")
local warnRendingCleave = mod:NewCastAnnounce(412505, 3, nil, nil, "Tank")
local warnTitanicBulwark = mod:NewCastAnnounce(413024, 3, nil, nil, "Tank")
local warnStatickyPunch = mod:NewCastAnnounce(412262, 3, nil, nil, "Tank")
local warnEnervate = mod:NewTargetAnnounce(415437, 3)
local specWarnInfiniteFury = mod:NewSpecialWarningSpell(413622, nil, nil, nil, 2, 2)
local specWarnAncientRadiance = mod:NewSpecialWarningSpell(413023, nil, nil, nil, 2, 2)
local specWarnTimerip = mod:NewSpecialWarningDodge(412063, nil, nil, nil, 2, 2)
local specWarnUntwist = mod:NewSpecialWarningDodge(413529, nil, nil, nil, 2, 2)
local specWarnTimelessCurse = mod:NewSpecialWarningDodge(413621, nil, nil, nil, 2, 2)
local specWarnBlightSpew = mod:NewSpecialWarningDodge(412806, nil, nil, nil, 2, 2)
local specWarnTemporalStrike = mod:NewSpecialWarningDodge(412136, nil, nil, nil, 2, 2)
local specWarnOrbofContemplation = mod:NewSpecialWarningDodge(412129, nil, nil, nil, 2, 2)
local yellOrbofContemplation = mod:NewShortYell(412129)--targets off a player, but everyone needs to dodge the orb
local specWarnElectroJuicedGigablast = mod:NewSpecialWarningDodge(412200, nil, nil, nil, 2, 2)
local specWarnVolatileMortar = mod:NewSpecialWarningDodge(407205, nil, nil, nil, 2, 2)
local specWarnBronzeExhalation = mod:NewSpecialWarningDodge(419351, nil, nil, nil, 2, 2)
local specWarnEnervateYou = mod:NewSpecialWarningMoveAway(415437, nil, nil, nil, 1, 2)
local yellEnervate = mod:NewShortYell(415437)
--local yellAstralBombFades = mod:NewShortFadesYell(387843)
local specWarnChronoburst = mod:NewSpecialWarningDispel(415554, "RemoveMagic", nil, nil, 1, 2)
local specWarnTaintedSands = mod:NewSpecialWarningDispel(415436, "RemoveMagic", nil, nil, 1, 2)
local specWarnEnervateDispel = mod:NewSpecialWarningDispel(415437, "RemoveMagic", nil, nil, 1, 2)
local specWarnBloom = mod:NewSpecialWarningDispel(413547, "RemoveMagic", nil, nil, 1, 2)
local specWarnInfiniteBoltVolley = mod:NewSpecialWarningInterrupt(415770, "HasInterrupt", nil, nil, 1, 2)
local specWarnChronomelt = mod:NewSpecialWarningInterrupt(411994, "HasInterrupt", nil, nil, 1, 2)
local specWarnInfiniteBolt = mod:NewSpecialWarningInterrupt(415435, "HasInterrupt", nil, nil, 1, 2)
local specWarnEnervate = mod:NewSpecialWarningInterrupt(415437, "HasInterrupt", nil, nil, 1, 2)
local specWarnStonebolt = mod:NewSpecialWarningInterrupt(411958, "HasInterrupt", nil, nil, 1, 2)
local specWarnEpochBolt = mod:NewSpecialWarningInterrupt(400165, "HasInterrupt", nil, nil, 1, 2)
local specWarnBindingGrasp = mod:NewSpecialWarningInterrupt(412922, "HasInterrupt", nil, nil, 1, 2)
local specWarnDisplacedChronosequence = mod:NewSpecialWarningInterrupt(417481, "HasInterrupt", nil, nil, 1, 2)
local specWarnDizzyingSands = mod:NewSpecialWarningInterrupt(412378, "HasInterrupt", nil, nil, 1, 2)
local specWarnRocketBoltVolley = mod:NewSpecialWarningInterrupt(412233, "HasInterrupt", nil, nil, 1, 2)
local specWarnTimebeam = mod:NewSpecialWarningInterrupt(413427, "HasInterrupt", nil, nil, 1, 2)
--
--local timerInfiniteBoltVolleyCD = mod:NewCDTimer(36, 415770, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
--local timerDeadlyWindsCD = mod:NewCDTimer(10.9, 378003, nil, nil, nil, 3)
--mod:AddBoolOption("AGBuffs", true)
--local playerName = UnitName("player")
--Antispam IDs for this mod: 1 run away, 2 dodge, 3 dispel, 4 incoming damage, 5 you/role, 6 misc, 7 off interrupt
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if not self:IsValidWarning(args.sourceGUID) then return end
if spellId == 415770 then
-- timerInfiniteBoltVolleyCD:Start(nil, args.sourceGUID)
if self.Options.SpecWarn415770interrupt and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnInfiniteBoltVolley:Show(args.sourceName)
specWarnInfiniteBoltVolley:Play("kickcast")
elseif self:AntiSpam(2, 7) then
warnInfiniteBoltVolley:Show()
end
elseif spellId == 413487 and self:AntiSpam(2, 5) then
warnTripleStrike:Show()
elseif spellId == 415435 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnInfiniteBolt:Show(args.sourceName)
specWarnInfiniteBolt:Play("kickcast")
elseif spellId == 415437 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnEnervate:Show(args.sourceName)
specWarnEnervate:Play("kickcast")
elseif spellId == 413529 and self:AntiSpam(2, 2) then
specWarnUntwist:Show()
specWarnUntwist:Play("shockwave")
elseif spellId == 413621 and self:AntiSpam(3, 2) then
specWarnTimelessCurse:Show()
specWarnTimelessCurse:Play("watchstep")
elseif spellId == 413622 and self:AntiSpam(2, 4) then
specWarnInfiniteFury:Show()
specWarnInfiniteFury:Play("aesoon")
elseif spellId == 412806 and self:AntiSpam(3, 2) then
specWarnBlightSpew:Show()
specWarnBlightSpew:Play("watchstep")
elseif spellId == 411958 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnStonebolt:Show(args.sourceName)
specWarnStonebolt:Play("kickcast")
elseif spellId == 412505 and self:AntiSpam(2, 5) then
warnRendingCleave:Show()
elseif spellId == 400165 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnEpochBolt:Show(args.sourceName)
specWarnEpochBolt:Play("kickcast")
elseif spellId == 413607 and self:AntiSpam(3, 6) then
warnCorrodingVolley:Show()
warnCorrodingVolley:Play("crowdcontrol")
elseif spellId == 412136 and self:AntiSpam(3, 2) then
specWarnTemporalStrike:Show()
specWarnTemporalStrike:Play("watchstep")
elseif spellId == 413024 and self:AntiSpam(2, 5) then
warnTitanicBulwark:Show()
elseif spellId == 413023 and self:AntiSpam(2, 4) then
specWarnAncientRadiance:Show()
specWarnAncientRadiance:Play("aesoon")
elseif spellId == 412922 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnBindingGrasp:Show(args.sourceName)
specWarnBindingGrasp:Play("kickcast")
elseif spellId == 417481 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnDisplacedChronosequence:Show(args.sourceName)
specWarnDisplacedChronosequence:Play("kickcast")
elseif spellId == 419327 and self:AntiSpam(3, 6) then
warnInfiniteSchism:Show()
warnInfiniteSchism:Play("crowdcontrol")
elseif spellId == 412378 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnDizzyingSands:Show(args.sourceName)
specWarnDizzyingSands:Play("kickcast")
elseif spellId == 412262 and self:AntiSpam(2, 5) then
warnStatickyPunch:Show()
elseif spellId == 412233 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnRocketBoltVolley:Show(args.sourceName)
specWarnRocketBoltVolley:Play("kickcast")
elseif spellId == 412200 and self:AntiSpam(2, 2) then
specWarnElectroJuicedGigablast:Show()
specWarnElectroJuicedGigablast:Play("shockwave")
elseif spellId == 413427 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnTimebeam:Show(args.sourceName)
specWarnTimebeam:Play("kickcast")
elseif spellId == 407205 and self:AntiSpam(3, 2) then
specWarnVolatileMortar:Show()
specWarnVolatileMortar:Play("watchstep")
elseif spellId == 407535 and self:AntiSpam(3, 6) then
warnDeployGoblinSappers:Show()
warnDeployGoblinSappers:Play("crowdcontrol")
elseif spellId == 419351 and self:AntiSpam(3, 2) then
specWarnBronzeExhalation:Show()
specWarnBronzeExhalation:Play("breathsoon")
end
end
function mod:SPELL_CAST_SUCCESS(args)
local spellId = args.spellId
if spellId == 411994 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnChronomelt:Show(args.sourceName)
specWarnChronomelt:Play("kickcast")
elseif spellId == 412012 then
-- timerHailofStoneCD:Start(nil, args.sourceGUID)
if self:AntiSpam(3, 6) then
warnTemposlice:Show()
warnTemposlice:Play("crowdcontrol")
end
elseif spellId == 418435 then
if self:AntiSpam(3, 2) then
specWarnOrbofContemplation:Show()
specWarnOrbofContemplation:Play("watchorb")
end
if args:IsPlayer() then
yellOrbofContemplation:Yell()
end
end
end
function mod:SPELL_AURA_APPLIED(args)
if not self.Options.Enabled then return end
local spellId = args.spellId
if spellId == 412063 and self:AntiSpam(3, 2) then
specWarnTimerip:Show()
specWarnTimerip:Play("watchstep")
elseif spellId == 415554 and args:IsDestTypePlayer() and self:CheckDispelFilter("magic") and self:AntiSpam(3, 3) then
specWarnChronoburst:Show(args.destName)
specWarnChronoburst:Play("helpdispel")
elseif spellId == 415436 and args:IsDestTypePlayer() and self:CheckDispelFilter("magic") and self:AntiSpam(3, 3) then
specWarnTaintedSands:Show(args.destName)
specWarnTaintedSands:Play("helpdispel")
elseif spellId == 415437 then
-- warnViciousAmbush:Show(args.destName)
if self.Options.SpecWarn415437dispel and self:CheckDispelFilter("magic") and self:AntiSpam(3, 3) then
specWarnEnervateDispel:Show(args.destName)
specWarnEnervateDispel:Play("helpdispel")
elseif args:IsPlayer() then
specWarnEnervateYou:Show()
specWarnEnervateYou:Play("targetyou")
yellEnervate:Yell()
else
warnEnervate:Show(args.destName)
end
elseif spellId == 413547 and args:IsDestTypePlayer() and self:CheckDispelFilter("magic") and self:AntiSpam(3, 3) then
specWarnBloom:Show(args.destName)
specWarnBloom:Play("helpdispel")
end
end
--mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
--[[
function mod:SPELL_AURA_REMOVED(args)
local spellId = args.spellId
if spellId == 387843 and args:IsPlayer() then
end
end
--]]
--[[
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 196044 then
timerMonotonousLectureCD:Stop(args.destGUID)
end
end
--]]
--[[
function mod:GOSSIP_SHOW()
local gossipOptionID = self:GetGossipID()
if gossipOptionID then
--Black, Bronze, Blue, Red, Green
if self.Options.AGBuffs and (gossipOptionID == 107065 or gossipOptionID == 107081 or gossipOptionID == 107082 or gossipOptionID == 107088 or gossipOptionID == 107083) then -- Buffs
self:SelectGossip(gossipOptionID)
end
end
end
--]]