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.
158 lines
7.8 KiB
158 lines
7.8 KiB
local mod = DBM:NewMod("SotSTrash", "DBM-Party-BfA", 4)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20240426175442")
|
|
--mod:SetModelID(47785)
|
|
|
|
mod.isTrashMod = true
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_CAST_START 268030 267973 268391 268239 268309 276268 267977 268050 268027 274437 268184 276292 268211 268273 268322 268317 268375 276767",
|
|
"SPELL_AURA_APPLIED 268375 268322 268214 276297 276767 274631",
|
|
"SPELL_AURA_REMOVED 276297"
|
|
)
|
|
|
|
--TODO, Colossal Slam-268348? START
|
|
--TODO, Tempest-274437-npc:139800 target scan (START)?
|
|
--Find slicing hurricane
|
|
local warnCarvedFlesh = mod:NewTargetAnnounce(268214, 2)
|
|
|
|
--local yellArrowBarrage = mod:NewYell(200343)
|
|
local specWarnRisingTides = mod:NewSpecialWarningSpell(268027, nil, nil, nil, 2, 2)
|
|
local specWarnShipbreakerStorm = mod:NewSpecialWarningSpell(268239, nil, nil, nil, 2, 2)--Can be interrupted by stuns, but not interrupts
|
|
local specWarnWashAway = mod:NewSpecialWarningDodge(267973, nil, nil, nil, 2, 2)
|
|
local specWarnDeepSmash = mod:NewSpecialWarningDodge(268273, nil, nil, nil, 2, 2)
|
|
local specWarnWhirlingSlam = mod:NewSpecialWarningDodge(276292, nil, nil, nil, 4, 2)
|
|
local specWarnMentalAssault = mod:NewSpecialWarningDodge(268391, "Tank", nil, 2, 1, 2)
|
|
local specWarnHeavingBlow = mod:NewSpecialWarningDodge(276268, "Tank", nil, nil, 1, 2)
|
|
local specWarnBlessingofIrontides = mod:NewSpecialWarningRun(274631, "Tank", nil, nil, 1, 2)
|
|
local specWarnMinorSwiftness = mod:NewSpecialWarningMove(268184, "Tank", nil, nil, 1, 2)
|
|
local specWarnMinorReinforcement = mod:NewSpecialWarningMove(268211, "Tank", nil, nil, 1, 2)
|
|
local specWarnAnchorofBinding = mod:NewSpecialWarningInterrupt(268050, false, nil, nil, 1, 2)--Off by default, should only be interrupted if group has enough for this and mending and purging swiftness
|
|
local specWarnMendingRapids = mod:NewSpecialWarningInterrupt(268030, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnUnendingDarkness = mod:NewSpecialWarningInterrupt(268309, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnTidalSurge = mod:NewSpecialWarningInterrupt(267977, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnTempest = mod:NewSpecialWarningInterrupt(274437, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnRipMind = mod:NewSpecialWarningInterrupt(268317, "Tank", nil, nil, 1, 2)--Let tank handle this interrupt
|
|
local specWarnTouchofDrownedKick = mod:NewSpecialWarningInterrupt(268322, "HasInterrupt", nil, nil, 1, 2)--Let everyone else get this one (or healers can dispel it)
|
|
local specWarnDetectThoughtsKick = mod:NewSpecialWarningInterrupt(268375, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnConsumingVoidKick = mod:NewSpecialWarningInterrupt(276767, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnDetectThoughts = mod:NewSpecialWarningDispel(268375, "MagicDispeller", nil, nil, 1, 2)
|
|
local specWarnConsumingVoid = mod:NewSpecialWarningDispel(276767, "MagicDispeller", nil, nil, 1, 2)
|
|
local specWarnTouchofDrowned = mod:NewSpecialWarningDispel(268322, "RemoveMagic", nil, 2, 1, 2)
|
|
local specWarnConsumingVoidStop = mod:NewSpecialWarningReflect(276767, "CasterDps", nil, nil, 1, 2)
|
|
local specWarnCarveFlesh = mod:NewSpecialWarningMoveTo(268214, nil, nil, nil, 3, 2)
|
|
local specWarnVoidSeed = mod:NewSpecialWarningMoveAway(276297, nil, nil, nil, 1, 2)
|
|
local yellVoidSeed = mod:NewShortFadesYell(276297)
|
|
|
|
local MinorReinforcement = DBM:GetSpellName(268211)
|
|
|
|
--1: Dodge Shit on ground, 2: Shockwaves, 4: AoEs, 5: Run Away, 6: Role
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 268030 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnMendingRapids:Show(args.sourceName)
|
|
specWarnMendingRapids:Play("kickcast")
|
|
elseif spellId == 268309 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnUnendingDarkness:Show(args.sourceName)
|
|
specWarnUnendingDarkness:Play("kickcast")
|
|
elseif spellId == 267973 and self:AntiSpam(5, 1) then
|
|
specWarnWashAway:Show()
|
|
specWarnWashAway:Play("watchstep")
|
|
elseif spellId == 268391 and self:AntiSpam(3, 2) then
|
|
specWarnMentalAssault:Show()
|
|
specWarnMentalAssault:Play("shockwave")
|
|
elseif spellId == 268239 and self:AntiSpam(5, 4) then
|
|
specWarnShipbreakerStorm:Show()
|
|
specWarnShipbreakerStorm:Play("aesoon")
|
|
elseif spellId == 276268 and self:AntiSpam(3, 2) then
|
|
specWarnHeavingBlow:Show()
|
|
specWarnHeavingBlow:Play("shockwave")
|
|
elseif spellId == 267977 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnTidalSurge:Show(args.sourceName)
|
|
specWarnTidalSurge:Play("kickcast")
|
|
elseif spellId == 268050 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnAnchorofBinding:Show(args.sourceName)
|
|
specWarnAnchorofBinding:Play("kickcast")
|
|
elseif spellId == 268027 and self:AntiSpam(4, 4) then
|
|
specWarnRisingTides:Show()
|
|
specWarnRisingTides:Play("aesoon")
|
|
elseif spellId == 274437 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnTempest:Show(args.sourceName)
|
|
specWarnTempest:Play("kickcast")
|
|
elseif spellId == 268184 and self:AntiSpam(4, 6) then
|
|
specWarnMinorSwiftness:Show()
|
|
specWarnMinorSwiftness:Play("moveboss")
|
|
elseif spellId == 276292 and self:AntiSpam(5, 5) then
|
|
specWarnWhirlingSlam:Show()
|
|
specWarnWhirlingSlam:Play("justrun")
|
|
elseif spellId == 268211 and self:AntiSpam(4, 6) then
|
|
specWarnMinorReinforcement:Show()
|
|
specWarnMinorReinforcement:Play("moveboss")
|
|
elseif spellId == 268273 and self:AntiSpam(4, 1) then
|
|
specWarnDeepSmash:Show()
|
|
specWarnDeepSmash:Play("watchstep")
|
|
elseif spellId == 268322 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnTouchofDrownedKick:Show(args.sourceName)
|
|
specWarnTouchofDrownedKick:Play("kickcast")
|
|
elseif spellId == 268317 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnRipMind:Show(args.sourceName)
|
|
specWarnRipMind:Play("kickcast")
|
|
elseif spellId == 268375 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnDetectThoughtsKick:Show(args.sourceName)
|
|
specWarnDetectThoughtsKick:Play("kickcast")
|
|
elseif spellId == 276767 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnConsumingVoidKick:Show(args.sourceName)
|
|
specWarnConsumingVoidKick:Play("kickcast")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 268375 and self:AntiSpam(2, 6) then
|
|
specWarnDetectThoughts:Show(args.destName)
|
|
specWarnDetectThoughts:Play("helpdispel")
|
|
elseif spellId == 276767 and self:AntiSpam(2, 6) then
|
|
if self.Options.SpecWarn276767dispel then
|
|
specWarnConsumingVoid:Show(args.destName)
|
|
specWarnConsumingVoid:Play("helpdispel")
|
|
else
|
|
specWarnConsumingVoidStop:Show(args.destName)
|
|
specWarnConsumingVoidStop:Play("stopattack")
|
|
end
|
|
elseif spellId == 268322 and args:IsDestTypePlayer() and self:CheckDispelFilter("magic") and self:AntiSpam(2, 3) then
|
|
specWarnTouchofDrowned:Show(args.destName)
|
|
specWarnTouchofDrowned:Play("helpdispel")
|
|
elseif spellId == 268214 then
|
|
if args:IsPlayer() then
|
|
specWarnCarveFlesh:Show(MinorReinforcement)
|
|
specWarnCarveFlesh:Play("targetyou")
|
|
else
|
|
warnCarvedFlesh:Show(args.destName)
|
|
end
|
|
elseif spellId == 276297 then
|
|
if args:IsPlayer() then
|
|
specWarnVoidSeed:Schedule(8)
|
|
specWarnVoidSeed:ScheduleVoice(8, "runout")
|
|
yellVoidSeed:Countdown(12)
|
|
end
|
|
elseif spellId == 274631 and self:AntiSpam(4, 5) then
|
|
specWarnBlessingofIrontides:Show()
|
|
specWarnBlessingofIrontides:Play("justrun")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 276297 then
|
|
if args:IsPlayer() then
|
|
specWarnVoidSeed:Cancel()
|
|
specWarnVoidSeed:CancelVoice()
|
|
yellVoidSeed:Cancel()
|
|
end
|
|
end
|
|
end
|
|
|