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.
154 lines
5.7 KiB
154 lines
5.7 KiB
local mod = DBM:NewMod(672, "DBM-Party-MoP", 1, 313)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod.statTypes = "normal,heroic,challenge,timewalker"
|
|
|
|
mod:SetRevision("20240601044955")
|
|
mod:SetCreatureID(56448)
|
|
mod:SetEncounterID(1418)
|
|
mod:SetUsedIcons(8)
|
|
mod:SetHotfixNoticeRev(20230410000000)
|
|
mod:SetMinSyncRevision(20230410000000)
|
|
mod.sendMainBossGUID = true
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
--mod:RegisterEventsInCombat(
|
|
|
|
--)
|
|
|
|
--Hybrid mod that works for both Season 1 Dragonflight version and original version you seen in timewalking
|
|
--[[
|
|
ability.id = 397783 and type = "begincast"
|
|
or ability.id = 397797 and type = "applydebuff"
|
|
or type = "dungeonencounterstart" or type = "dungeonencounterend"
|
|
--]]
|
|
local warnCorruptedVortex = mod:NewTargetAnnounce(397797, 3)
|
|
local warnCorruptedGeyser = mod:NewCountAnnounce(397793, 3)
|
|
local warnBubbleBurst = mod:NewCastAnnounce(106612, 3)
|
|
local warnAddsLeft = mod:NewAddsLeftAnnounce(-5616, 2, 106526)
|
|
|
|
local specWarnLivingWater = mod:NewSpecialWarningSwitch(-5616, "-Healer", nil, nil, 1, 2)
|
|
local specWarnWashAway = mod:NewSpecialWarningDodge(397783, nil, nil, nil, 2, 2)
|
|
local specWarnCorruptedVortex = mod:NewSpecialWarningMoveAway(397797, nil, nil, nil, 1, 2)
|
|
local yellCorruptedVortex = mod:NewYell(397797)
|
|
local yellCorruptedVortexFades = mod:NewShortFadesYell(397797)
|
|
local specWarnHydrolance = mod:NewSpecialWarningInterrupt(397801, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnGTFO = mod:NewSpecialWarningGTFO(397799, nil, nil, nil, 1, 8)
|
|
|
|
local timerWashAwayCD = mod:NewCDTimer(41.3, 397783, nil, nil, nil, 2, nil, DBM_COMMON_L.DEADLY_ICON)--41-44
|
|
local timerCorruptedVortexCD = mod:NewCDTimer(13, 397797, nil, nil, nil, 3, nil, DBM_COMMON_L.HEALER_ICON)
|
|
local timerCorruptedGeyserCD = mod:NewCDCountTimer("d5", 397793, nil, nil, nil, 3)
|
|
local timerLivingWater = mod:NewCastTimer(5.5, 106526, nil, nil, nil, 1)
|
|
|
|
--mod:AddSetIconOption("SetIconOnAdds", "ej5616", false, true, {8})--FIXME, where the fuck did scanner go?
|
|
|
|
mod.vb.addsRemaining = 4--Also 4 on heroic?
|
|
mod.vb.firstAdd = false
|
|
local addsName = DBM:EJ_GetSectionInfo(5616)
|
|
|
|
function mod:OnCombatStart(delay)
|
|
if self:IsMythicPlus() then
|
|
timerCorruptedVortexCD:Start(8.5-delay)
|
|
timerWashAwayCD:Start(20.6-delay)
|
|
self:RegisterShortTermEvents(
|
|
"SPELL_CAST_START 397783 397801",
|
|
"SPELL_AURA_APPLIED 397797 397799",
|
|
"SPELL_AURA_REMOVED 397797"
|
|
)
|
|
else
|
|
self.vb.addsRemaining = 4
|
|
self.vb.firstAdd = false
|
|
timerLivingWater:Start(13-delay)
|
|
self:RegisterShortTermEvents(
|
|
"SPELL_AURA_APPLIED 106653",
|
|
"SPELL_CAST_START 106526 106612",
|
|
"SPELL_DAMAGE 115167",
|
|
"SPELL_MISSED 115167",
|
|
"UNIT_DIED"
|
|
)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
self:UnregisterShortTermEvents()
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
--Retail M+ stuff
|
|
if spellId == 397783 then
|
|
specWarnWashAway:Show()
|
|
specWarnWashAway:Play("watchstep")
|
|
timerWashAwayCD:Start()
|
|
timerCorruptedVortexCD:Stop()
|
|
timerCorruptedVortexCD:Start(16)
|
|
--"<432.19 20:50:33> [CLEU] SPELL_CAST_START#Creature-0-3772-960-3510-56448-000045A960#Der weise Mari(56.1%-100.0%)##nil#397783#Wegspülen#nil#nil", -- [3320]
|
|
--"<435.47 20:50:36> [CLEU] SPELL_DAMAGE[CONDENSED]#Creature-0-3772-960-3510-56448-000045A960#Der weise Mari#2 Targets#397793#Verderbter Geysir", -- [3338]
|
|
--"<440.60 20:50:41> [CLEU] SPELL_DAMAGE#Creature-0-3772-960-3510-56448-000045A960#Der weise Mari#Player-1401-04216D3A#Valî-Shattrath#397793#Verderbter Geysir", -- [3373]
|
|
--"<445.52 20:50:46> [CLEU] SPELL_DAMAGE#Creature-0-3772-960-3510-56448-000045A960#Der weise Mari#Player-1401-04216D3A#Valî-Shattrath#397793#Verderbter Geysir", -- [3382]
|
|
warnCorruptedGeyser:Schedule(3.2, 1)
|
|
timerCorruptedGeyserCD:Start(3.2, 1)
|
|
warnCorruptedGeyser:Schedule(8.3, 2)
|
|
timerCorruptedGeyserCD:Start(8.3, 2)
|
|
warnCorruptedGeyser:Schedule(13.3, 3)
|
|
timerCorruptedGeyserCD:Start(13.3, 3)
|
|
elseif spellId == 397801 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnHydrolance:Show(args.sourceName)
|
|
specWarnHydrolance:Play("kickcast")
|
|
--Classic and retail timewalking/non mythic+
|
|
elseif args.spellId == 106526 then--Call Water
|
|
if not self.vb.firstAdd then
|
|
self.vb.firstAdd = true
|
|
else
|
|
timerLivingWater:Start()
|
|
end
|
|
specWarnLivingWater:Schedule(5.5)
|
|
specWarnLivingWater:ScheduleVoice(5.5, "killmob")
|
|
elseif args.spellId == 106612 then--Bubble Burst (phase 2)
|
|
warnBubbleBurst:Show()
|
|
timerWashAwayCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 397797 then
|
|
if self:AntiSpam(5, 1) then
|
|
timerCorruptedVortexCD:Start()
|
|
end
|
|
if args:IsPlayer() then
|
|
specWarnCorruptedVortex:Show()
|
|
specWarnCorruptedVortex:Play("runout")
|
|
yellCorruptedVortex:Yell()
|
|
yellCorruptedVortexFades:Countdown(spellId)
|
|
end
|
|
elseif (spellId == 106653 or spellId == 397799) and args:IsPlayer() and self:AntiSpam(3, 2) then
|
|
specWarnGTFO:Show(args.spellName)
|
|
specWarnGTFO:Play("watchfeet")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if args.spellId == 397797 then
|
|
if args:IsPlayer() then
|
|
yellCorruptedVortexFades:Cancel()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
if spellId == 115167 and destGUID == UnitGUID("player") and self:AntiSpam(3, 2) then
|
|
specWarnGTFO:Show(spellName)
|
|
specWarnGTFO:Play("watchfeet")
|
|
end
|
|
end
|
|
mod.SPELL_MISSED = mod.SPELL_DAMAGE
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 56511 then--Corrupt Living Water
|
|
self.vb.addsRemaining = self.vb.addsRemaining - 1
|
|
warnAddsLeft:Show(self.vb.addsRemaining)
|
|
end
|
|
end
|
|
|