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.
88 lines
3.0 KiB
88 lines
3.0 KiB
|
3 years ago
|
local mod = DBM:NewMod("HoVTrash", "DBM-Party-Legion", 4)
|
||
|
|
local L = mod:GetLocalizedStrings()
|
||
|
|
|
||
|
|
mod:SetRevision("20221115231757")
|
||
|
|
--mod:SetModelID(47785)
|
||
|
|
|
||
|
|
mod.isTrashMod = true
|
||
|
|
|
||
|
|
mod:RegisterEvents(
|
||
|
|
"SPELL_CAST_START 199805 192563 199726 191508 199210",
|
||
|
|
"SPELL_AURA_APPLIED 215430",
|
||
|
|
"SPELL_AURA_REMOVED 215430"
|
||
|
|
)
|
||
|
|
|
||
|
|
--TODO wicked dagger (199674)?
|
||
|
|
local warnCrackle = mod:NewTargetAnnounce(199805, 2)
|
||
|
|
|
||
|
|
local specWarnBlastofLight = mod:NewSpecialWarningDodge(191508, nil, nil, nil, 2, 2)
|
||
|
|
local specWarnPenetratingShot = mod:NewSpecialWarningDodge(199210, nil, nil, nil, 2, 2)
|
||
|
|
local specWarnCrackle = mod:NewSpecialWarningDodge(199805, nil, nil, nil, 1, 2)
|
||
|
|
local yellCrackle = mod:NewShortYell(199805)
|
||
|
|
local specWarnThunderstrike = mod:NewSpecialWarningMoveAway(215430, nil, nil, nil, 1, 2)
|
||
|
|
local yellThunderstrike = mod:NewShortYell(215430)
|
||
|
|
local specWarnCleansingFlame = mod:NewSpecialWarningInterrupt(192563, "HasInterrupt", nil, nil, 1, 2)
|
||
|
|
local specWarnUnrulyYell = mod:NewSpecialWarningInterrupt(199726, "HasInterrupt", nil, nil, 1, 2)
|
||
|
|
|
||
|
|
--Antispam IDs for this mod: 1 run away, 2 dodge, 3 dispel, 4 incoming damage, 5 you/role, 6 generalized, 7 GTFO
|
||
|
|
|
||
|
|
function mod:CrackleTarget(targetname, uId)
|
||
|
|
if not targetname then
|
||
|
|
warnCrackle:Show(DBM_COMMON_L.UNKNOWN)
|
||
|
|
return
|
||
|
|
end
|
||
|
|
if targetname == UnitName("player") then
|
||
|
|
specWarnCrackle:Show()
|
||
|
|
specWarnCrackle:Play("watchstep")
|
||
|
|
yellCrackle:Yell()
|
||
|
|
else
|
||
|
|
warnCrackle:Show(targetname)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_CAST_START(args)
|
||
|
|
if not self.Options.Enabled then return end
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 199805 then
|
||
|
|
self:BossTargetScanner(args.sourceGUID, "CrackleTarget", 0.1, 9)
|
||
|
|
elseif spellId == 192563 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
||
|
|
specWarnCleansingFlame:Show(args.sourceName)
|
||
|
|
specWarnCleansingFlame:Play("kickcast")
|
||
|
|
elseif spellId == 199726 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
||
|
|
specWarnUnrulyYell:Show(args.sourceName)
|
||
|
|
specWarnUnrulyYell:Play("kickcast")
|
||
|
|
elseif spellId == 191508 then
|
||
|
|
if self:IsTanking("player", nil, nil, true, args.sourceGUID) then
|
||
|
|
specWarnBlastofLight:Show()
|
||
|
|
specWarnBlastofLight:Play("shockwave")
|
||
|
|
end
|
||
|
|
elseif spellId == 199210 and self:AntiSpam(3, 2) then
|
||
|
|
specWarnPenetratingShot:Show()
|
||
|
|
specWarnPenetratingShot:Play("shockwave")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_APPLIED(args)
|
||
|
|
if not self.Options.Enabled then return end
|
||
|
|
if args.spellId == 215430 then
|
||
|
|
if args:IsPlayer() then
|
||
|
|
specWarnThunderstrike:Show()
|
||
|
|
specWarnThunderstrike:Play("scatter")
|
||
|
|
yellThunderstrike:Yell()
|
||
|
|
if self.Options.RangeFrame then
|
||
|
|
DBM.RangeCheck:Show(6)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
--mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_REMOVED(args)
|
||
|
|
if not self.Options.Enabled then return end
|
||
|
|
if args.spellId == 215430 and args:IsPlayer() then
|
||
|
|
if self.Options.RangeFrame then
|
||
|
|
DBM.RangeCheck:Hide()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|