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.

99 lines
3.7 KiB

local mod = DBM:NewMod("CoENTrash", "DBM-Party-Legion", 12)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20220116042005")
--mod:SetModelID(47785)
mod.isTrashMod = true
mod:RegisterEvents(
"SPELL_CAST_START 239232 237391 238543 236737 242724 242760 239320 239266",
"SPELL_AURA_APPLIED 238688 239161",
"UNIT_SPELLCAST_START"
)
--TODO, Interrupt warning for Shadow Wall 241937?
local warnFelStrike = mod:NewTargetAnnounce(236737, 3)
local specWarnFelStrike = mod:NewSpecialWarningDodge(236737, nil, nil, nil, 1, 2)
local yellFelStrike = mod:NewYell(236737)
local specWarnAlluringAroma = mod:NewSpecialWarningInterrupt(237391, "HasInterrupt", nil, nil, 1, 2)
local specWarnDemonicMending = mod:NewSpecialWarningInterrupt(238543, "HasInterrupt", nil, nil, 1, 2)
local specWarnDreadScream = mod:NewSpecialWarningInterrupt(242724, "HasInterrupt", nil, nil, 1, 2)
local specWarnBlindingGlare = mod:NewSpecialWarningSpell(239232, nil, nil, nil, 1, 2)
local specWarnLumberingCrash = mod:NewSpecialWarningRun(242760, "Melee", nil, nil, 4, 2)
local specWarnShadowWave = mod:NewSpecialWarningDodge(238653, nil, nil, nil, 2, 2)
local specWarnChokingVines = mod:NewSpecialWarningRun(238688, nil, nil, nil, 4, 2)
local specWarnTomeSilence = mod:NewSpecialWarningSwitch(239161, "-Healer", nil, nil, 1, 2)
local specWarnFelblazeOrb = mod:NewSpecialWarningDodge(239320, nil, nil, nil, 1, 2)
local specWarnVenomStorm = mod:NewSpecialWarningDodge(239266, nil, nil, nil, 1, 2)
function mod:FelStrikeTarget(targetname, uId)
if not targetname then
warnFelStrike:Show(DBM_COMMON_L.UNKNOWN)
return
end
if self:AntiSpam(2, targetname) then--In case two enemies target same target
if targetname == UnitName("player") then
specWarnFelStrike:Show()
specWarnFelStrike:Play("watchstep")
yellFelStrike:Yell()
else
warnFelStrike:CombinedShow(0.5, targetname)
end
end
end
function mod:SPELL_CAST_START(args)
if not self.Options.Enabled then return end
local spellId = args.spellId
if spellId == 236737 then
self:BossTargetScanner(args.sourceGUID, "FelStrikeTarget", 0.1, 9)
elseif spellId == 239232 then
specWarnBlindingGlare:Show()
specWarnBlindingGlare:Play("turnaway")
elseif spellId == 237391 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnAlluringAroma:Show(args.sourceName)
specWarnAlluringAroma:Play("kickcast")
elseif spellId == 238543 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnDemonicMending:Show(args.sourceName)
specWarnDemonicMending:Play("kickcast")
elseif spellId == 242724 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnDreadScream:Show(args.sourceName)
specWarnDreadScream:Play("kickcast")
elseif spellId == 242760 then
specWarnLumberingCrash:Show()
specWarnLumberingCrash:Play("runout")
elseif spellId == 239320 then
specWarnFelblazeOrb:Show()
specWarnFelblazeOrb:Play("watchorb")
elseif spellId == 239266 then
specWarnVenomStorm:Show()
specWarnVenomStorm:Play("shockwave")
end
end
function mod:SPELL_AURA_APPLIED(args)
if not self.Options.Enabled then return end
local spellId = args.spellId
if spellId == 238688 and args:IsPlayer() then
specWarnChokingVines:Show()
specWarnChokingVines:Play("runout")
elseif spellId == 239161 and self:AntiSpam(4, 1) then
specWarnTomeSilence:Show()
specWarnTomeSilence:Play("targetchange")
end
end
function mod:UNIT_SPELLCAST_START(uId, _, spellId)
if spellId == 238653 then
self:SendSync("ShadowWave")
end
end
function mod:OnSync(msg)
if msg == "ShadowWave" then
specWarnShadowWave:Show()
specWarnShadowWave:Play("shockwave")
end
end