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.
111 lines
6.0 KiB
111 lines
6.0 KiB
local mod = DBM:NewMod("UndermineTrash", "DBM-Party-BfA", 7)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20230813054730")
|
|
--mod:SetModelID(47785)
|
|
|
|
mod.isTrashMod = true
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_CAST_START 268709 268129 263275 267433 263103 263066 268865 268797 269090 262540 262554 262092 263202 267354",
|
|
"SPELL_AURA_APPLIED 268702 262947 262540 262092",
|
|
"SPELL_CAST_SUCCESS 280604 262515"
|
|
)
|
|
|
|
local warnActivateMech = mod:NewCastAnnounce(267433, 4)
|
|
local warnRepair = mod:NewCastAnnounce(262554, 4)
|
|
local warnAzeriteHeartseeker = mod:NewTargetNoFilterAnnounce(262515, 3)
|
|
|
|
--local yellArrowBarrage = mod:NewYell(200343)
|
|
local specWarnHailofFlechettes = mod:NewSpecialWarningSpell(267354, nil, nil, nil, 2, 3)
|
|
local specWarnCover = mod:NewSpecialWarningMove(263275, "Tank", nil, nil, 1, 2)
|
|
local specWarnEarthShield = mod:NewSpecialWarningInterrupt(268709, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnRockLance = mod:NewSpecialWarningInterrupt(263202, false, nil, nil, 1, 2)
|
|
local specWarnIcedSpritzer = mod:NewSpecialWarningInterrupt(280604, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnCola = mod:NewSpecialWarningInterrupt(268129, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnFuriousQuake = mod:NewSpecialWarningInterrupt(268702, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnBlowtorch = mod:NewSpecialWarningInterrupt(263103, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnTransSyrum = mod:NewSpecialWarningInterrupt(263066, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnEnemyToGoo = mod:NewSpecialWarningInterrupt(268797, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnArtilleryBarrage = mod:NewSpecialWarningInterrupt(269090, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnOvercharge = mod:NewSpecialWarningInterrupt(262540, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnInhaleVapors = mod:NewSpecialWarningInterrupt(262092, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnForceCannon = mod:NewSpecialWarningDodge(268865, nil, nil, nil, 2, 2)
|
|
local specWarnAzeriteInjection = mod:NewSpecialWarningDispel(262947, "MagicDispeller", nil, nil, 1, 2)
|
|
local specWarnOverchargeDispel = mod:NewSpecialWarningDispel(262540, "MagicDispeller", nil, nil, 1, 2)
|
|
local specWarnInhaleVaporsDispel = mod:NewSpecialWarningDispel(262092, "RemoveEnrage", nil, 2, 1, 2)
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 268709 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnEarthShield:Show(args.sourceName)
|
|
specWarnEarthShield:Play("kickcast")
|
|
elseif spellId == 268129 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnCola:Show(args.sourceName)
|
|
specWarnCola:Play("kickcast")
|
|
elseif spellId == 263103 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnBlowtorch:Show(args.sourceName)
|
|
specWarnBlowtorch:Play("kickcast")
|
|
elseif spellId == 263066 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnTransSyrum:Show(args.sourceName)
|
|
specWarnTransSyrum:Play("kickcast")
|
|
elseif spellId == 268797 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnEnemyToGoo:Show(args.sourceName)
|
|
specWarnEnemyToGoo:Play("kickcast")
|
|
elseif spellId == 269090 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnArtilleryBarrage:Show(args.sourceName)
|
|
specWarnArtilleryBarrage:Play("kickcast")
|
|
elseif spellId == 262540 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnOvercharge:Show(args.sourceName)
|
|
specWarnOvercharge:Play("kickcast")
|
|
elseif spellId == 262092 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnInhaleVapors:Show(args.sourceName)
|
|
specWarnInhaleVapors:Play("kickcast")
|
|
elseif spellId == 263202 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnRockLance:Show(args.sourceName)
|
|
specWarnRockLance:Play("kickcast")
|
|
elseif spellId == 263275 and self:IsValidWarning(args.sourceGUID) then
|
|
specWarnCover:Show()
|
|
specWarnCover:Play("moveboss")
|
|
elseif spellId == 267433 and self:AntiSpam(4, 1) then--IsValidWarning removed because it caused most activate mechs not to announce. re-add if it becomes problem
|
|
warnActivateMech:Show()
|
|
elseif spellId == 262554 and self:IsValidWarning(args.sourceGUID) and self:AntiSpam(4, 2) then
|
|
warnRepair:Show()
|
|
elseif spellId == 268865 and self:IsValidWarning(args.sourceGUID) and self:AntiSpam(4, 3) then
|
|
specWarnForceCannon:Show()
|
|
specWarnForceCannon:Play("shockwave")
|
|
elseif spellId == 267354 and self:IsValidWarning(args.sourceGUID) and self:AntiSpam(4, 5) then
|
|
specWarnHailofFlechettes:Show()
|
|
specWarnHailofFlechettes:Play("crowdcontrol")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 268702 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnFuriousQuake:Show(args.sourceName)
|
|
specWarnFuriousQuake:Play("kickcast")
|
|
elseif spellId == 262947 and not args:IsDestTypePlayer() and self:AntiSpam(3, 4) then
|
|
specWarnAzeriteInjection:Show(args.destName)
|
|
specWarnAzeriteInjection:Play("helpdispel")
|
|
elseif spellId == 262540 and not args:IsDestTypePlayer() and self:AntiSpam(3, 4) then
|
|
specWarnOverchargeDispel:Show(args.destName)
|
|
specWarnOverchargeDispel:Play("helpdispel")
|
|
elseif spellId == 262092 and not args:IsDestTypePlayer() and self:AntiSpam(3, 4) then
|
|
specWarnInhaleVaporsDispel:Show(args.destName)
|
|
specWarnInhaleVaporsDispel:Play("helpdispel")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 280604 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnIcedSpritzer:Show(args.sourceName)
|
|
specWarnIcedSpritzer:Play("kickcast")
|
|
elseif spellId == 262515 and self:AntiSpam(2.5, args.destName) then
|
|
warnAzeriteHeartseeker:CombinedShow(0.5, args.destName)
|
|
end
|
|
end
|
|
|