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.

98 lines
3.6 KiB

local mod = DBM:NewMod(2153, "DBM-Party-BfA", 4, 1036)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20240417180519")
mod:SetCreatureID(134056)--134828 split forms
mod:SetEncounterID(2130)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_AURA_APPLIED 264144 264166 264560 264773",
"SPELL_AURA_REMOVED 264560 264773 264903",
"SPELL_CAST_START 264101 264903 264144 264166"
)
--TODO, timer work needs longer pull, so heroic or mythic cause boss health drops too fast on normal
local warnUndertow = mod:NewTargetAnnounce(264144, 2)
local warnChokingBrine = mod:NewTargetNoFilterAnnounce(264560, 2, nil, "Healer")
local warnEruptingWaters = mod:NewSpellAnnounce(264903, 2, nil, nil, nil, nil, nil, 2)
local specWarnSurgingRush = mod:NewSpecialWarningDodge(264101, nil, nil, nil, 1, 2)
local specWarnChokingBrine = mod:NewSpecialWarningDodge(264560, nil, nil, nil, 1, 2)
local yellChokingBrine = mod:NewFadesYell(264560, DBM_CORE_L.AUTO_YELL_CUSTOM_FADE)
local specWarnUndertow = mod:NewSpecialWarningYou(264144, nil, nil, nil, 3, 2)
local timerSurgingRushCD = mod:NewCDTimer(13, 264101, nil, nil, nil, 3)
local timerChokingBrineCD = mod:NewCDTimer(13, 264560, nil, nil, nil, 5, nil, DBM_COMMON_L.HEALER_ICON..DBM_COMMON_L.MAGIC_ICON)
local timerUndertowCD = mod:NewCDTimer(13, 264144, nil, nil, nil, 3, nil, DBM_COMMON_L.DEADLY_ICON)
function mod:UndertowTarget(targetname)
if not targetname then return end
if self:AntiSpam(4, targetname) then--Antispam to lock out redundant later warning from firing if this one succeeds
if targetname == UnitName("player") then
specWarnUndertow:Show()
specWarnUndertow:Play("targetyou")
specWarnUndertow:ScheduleVoice(1.8, "keepmove")
else
warnUndertow:CombinedShow(0.5, targetname)
end
end
end
function mod:OnCombatStart(delay)
timerChokingBrineCD:Start(10.5-delay)--SUCCESS
timerSurgingRushCD:Start(17-delay)
timerUndertowCD:Start(30-delay)
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if (spellId == 264144 or spellId == 264166) and self:AntiSpam(4, args.destName) then--Backup warning if scan failed
warnUndertow:CombinedShow(0.5, args.destName)
if args:IsPlayer() then
specWarnUndertow:Show()
specWarnUndertow:Play("targetyou")
specWarnUndertow:ScheduleVoice(1.8, "keepmove")
end
elseif spellId == 264560 or spellId == 264773 then--264773 spread one for not avoiding swirls from dispel/expire
warnChokingBrine:CombinedShow(0.5, args.destName)
end
end
function mod:SPELL_AURA_REMOVED(args)
local spellId = args.spellId
if (spellId == 264560 or spellId == 264773) then
if self:AntiSpam(4, 2) then
specWarnChokingBrine:Show()
specWarnChokingBrine:Play("watchstep")
end
if args:IsPlayer() then
yellChokingBrine:Yell(args.spellName)
end
elseif spellId == 264903 then--Erupting Waters Removed
timerChokingBrineCD:Start(10)
end
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 264101 and self:AntiSpam(3, 1) then
specWarnSurgingRush:Show()
specWarnSurgingRush:Play("chargemove")
elseif spellId == 264903 then
warnEruptingWaters:Show()
warnEruptingWaters:Play("phasechange")
--Boss Timer stops
timerChokingBrineCD:Stop()
timerUndertowCD:Stop()
timerSurgingRushCD:Stop()
--Little add timer starts
timerChokingBrineCD:Start(13.5)
timerSurgingRushCD:Start(19)
timerUndertowCD:Start(26)
elseif spellId == 264144 or spellId == 264166 then
self:ScheduleMethod(0.2, "BossTargetScanner", args.sourceGUID, "UndertowTarget", 0.1, 12, true, nil, nil, nil, true)
end
end