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.
489 lines
19 KiB
489 lines
19 KiB
local mod = DBM:NewMod(1726, "DBM-Raids-Legion", 5, 768)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20240525081121")
|
|
mod:SetCreatureID(103769)
|
|
mod:SetEncounterID(1864)
|
|
mod:SetUsedIcons(6, 2, 1)
|
|
mod:SetHotfixNoticeRev(15369)
|
|
mod.respawnTime = 15
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 207830 209443 205588",
|
|
"SPELL_CAST_SUCCESS 206651 209158 224649 210264",
|
|
"SPELL_SUMMON 210264",
|
|
"SPELL_AURA_APPLIED 208431 206651 205771 209158 211802 209034 210451 224508 206005",
|
|
"SPELL_AURA_APPLIED_DOSE 206651 209158",
|
|
"SPELL_AURA_REMOVED 208431 211802 206651 209158 209034 210451 224508 206005",
|
|
"UNIT_DIED",
|
|
"UNIT_SPELLCAST_SUCCEEDED boss1"
|
|
)
|
|
|
|
--"<271.21 22:57:25> [CLEU] SPELL_PERIODIC_ENERGIZE##nil#Player-3693-07CA07EE#Jaybee#208385#Tainted Discharge#3#10", -- [5739]
|
|
--TODO, infoframe for remaining tainted discharge maybe? Has to be combined with alt power infoframe
|
|
--TODO, reverify mythic/LFR timers
|
|
--Nightmare Corruption
|
|
local warnDescentIntoMadness = mod:NewTargetAnnounce(208431, 4)
|
|
local warnDream = mod:NewYouAnnounce(206005, 1)
|
|
local warnDreamOthers = mod:NewTargetAnnounce(206005, 1)
|
|
local warnTormentingSwipe = mod:NewTargetAnnounce(224649, 2, nil, "Tank")
|
|
--Stage One: The Decent Into Madness
|
|
local warnNightmareBlades = mod:NewTargetAnnounce(206656, 2)
|
|
local warnDarkeningSoul = mod:NewStackAnnounce(206651, 3, nil, "Healer|Tank")
|
|
local warnTormentingFixation = mod:NewTargetAnnounce(205771, 4)
|
|
--Stage Two: From the Shadows
|
|
local warnPhase2 = mod:NewPhaseAnnounce(2, 2, nil, nil, nil, nil, nil, 2)
|
|
local warnBlackeningSoul = mod:NewStackAnnounce(209158, 3, nil, "Healer|Tank")
|
|
local warnNightmareInfusion = mod:NewSpellAnnounce(209443, 4, nil, "Tank")
|
|
local warnBondsOfTerror = mod:NewTargetAnnounce(209034, 2)
|
|
--Stage Three: Darkness and stuff
|
|
local warnPhase3 = mod:NewPhaseAnnounce(3, 2, nil, nil, nil, nil, nil, 2)
|
|
local warnNightmareTentacles = mod:NewSpellAnnounce("ej12977", 3, 93708)
|
|
|
|
local specWarnDescentIntoMadness = mod:NewSpecialWarningYou(208431)
|
|
local yellDescentIntoMadness = mod:NewFadesYell(208431)
|
|
local specWarnDreaming = mod:NewSpecialWarningCount(205843, nil, nil, nil, 1, 2)--Mythic
|
|
--Stage One: The Decent Into Madness
|
|
local specWarnNightmareBlades = mod:NewSpecialWarningMoveAway(206656, nil, nil, nil, 1, 2)
|
|
local specWarnCorruptionHorror = mod:NewSpecialWarningSwitchCount("ej12973", "-Healer", nil, nil, 1, 2)
|
|
local specWarnCorruptingNova = mod:NewSpecialWarningSpell(207830, nil, nil, nil, 2, 2)
|
|
local specWarnDarkeningSoulYou = mod:NewSpecialWarningStack(206651, nil, 3, nil, 2, 1, 6)
|
|
local specWarnDarkeningSoulOther = mod:NewSpecialWarningTaunt(206651, nil, nil, nil, 1, 2)
|
|
local specWarnTormentingFixation = mod:NewSpecialWarningMoveAway(205771, nil, nil, nil, 1, 2)
|
|
local specWarnNightmareInfusionOther = mod:NewSpecialWarningTaunt(209443, nil, nil, nil, 1, 2)
|
|
--Stage Two: From the Shadows
|
|
local specWarnBondsOfTerror = mod:NewSpecialWarningMoveTo(209034, nil, nil, nil, 1, 2)
|
|
local specWarnCorruptionMeteorYou = mod:NewSpecialWarningYou(206308, nil, nil, nil, 1, 2)
|
|
local yellMeteor = mod:NewFadesYell(206308)
|
|
local specWarnCorruptionMeteorAway = mod:NewSpecialWarningDodge(206308, "-Tank", nil, nil, 2, 2)--No dream, high corruption, dodge it. Subjective and defaults may be altered to off.
|
|
local specWarnCorruptionMeteorTo = mod:NewSpecialWarningMoveTo(206308, "-Tank", nil, nil, 1, 2)--Has dream, definitely should help
|
|
local specWarnBlackeningSoulYou = mod:NewSpecialWarningStack(209158, nil, 3, nil, 2, 1, 6)
|
|
local specWarnBlackeningSoulOther = mod:NewSpecialWarningTaunt(209158, nil, nil, nil, 1, 2)
|
|
local specWarnInconHorror = mod:NewSpecialWarningSwitch("ej13162", "-Healer", nil, nil, 1, 2)
|
|
|
|
--Stage One: The Decent Into Madness
|
|
mod:AddTimerLine(SCENARIO_STAGE:format(1))
|
|
local timerDarkeningSoulCD = mod:NewCDTimer(7, 206651, nil, "Healer|Tank", nil, 5, nil, DBM_COMMON_L.MAGIC_ICON..DBM_COMMON_L.TANK_ICON)
|
|
local timerNightmareBladesCD = mod:NewNextTimer(15.7, 206656, nil, "-Tank", 2, 3)
|
|
local timerLurkingEruptionCD = mod:NewCDCountTimer(20.5, 208322, nil, "-Tank", 2, 3)
|
|
local timerCorruptionHorrorCD = mod:NewNextCountTimer(82.5, 210264, nil, nil, nil, 1, nil, DBM_COMMON_L.DAMAGE_ICON, nil, 1, 4)
|
|
local timerCorruptingNovaCD = mod:NewNextTimer(20, 207830, nil, nil, nil, 2)
|
|
local timerTormentingSwipeCD = mod:NewCDTimer(10, 224649, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
--Stage Two: From the Shadows
|
|
mod:AddTimerLine(SCENARIO_STAGE:format(2))
|
|
local timerBondsOfTerrorCD = mod:NewCDTimer(14.1, 209034, nil, "-Tank", 2, 3)
|
|
local timerCorruptionMeteorCD = mod:NewCDCountTimer(28, 206308, 57467, nil, nil, 3, nil, DBM_COMMON_L.DEADLY_ICON, nil, not mod:IsTank() and 3 or nil, 4)--Short text "meteor"
|
|
local timerBlackeningSoulCD = mod:NewCDTimer(7.2, 209158, nil, "Healer|Tank", nil, 5, nil, DBM_COMMON_L.MAGIC_ICON..DBM_COMMON_L.TANK_ICON)
|
|
local timerNightmareInfusionCD = mod:NewCDTimer(61.5, 209443, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON, nil, 2, 4)--61.5-62.5
|
|
local timerCallOfNightmaresCD = mod:NewCDTimer(40, 205588, nil, nil, nil, 1, nil, DBM_COMMON_L.DAMAGE_ICON, nil, 1, 4)
|
|
--Stage Three: Darkness and stuff
|
|
mod:AddTimerLine(SCENARIO_STAGE:format(3))
|
|
local timerNightmareTentacleCD = mod:NewCDTimer(20, "ej12977", nil, nil, nil, 1, 93708)--226194 is an icon consideration now
|
|
|
|
mod:AddInfoFrameOption(-12970)
|
|
mod:AddBoolOption("InfoFrameFilterDream", true)
|
|
mod:AddRangeFrameOption(6, 208322)
|
|
mod:AddSetIconOption("SetIconOnBlades", 206656)
|
|
mod:AddSetIconOption("SetIconOnMeteor", 206308)
|
|
|
|
local lurkingTimers = {17, 20.5, 41, 20.5, 20.5}--{13.6, 26.3, 47.4, 20.7, 25.9} old. TODO, get more data, if all but one are 20.5, just code smarter without table
|
|
local corruptionName = DBM:EJ_GetSectionInfo(12970)
|
|
local darkSoul, blackSoul, dreamDebuff, blackened = DBM:GetSpellName(206651), DBM:GetSpellName(209158), DBM:GetSpellName(206005), DBM:GetSpellName(205612)
|
|
local bladesTarget = {}
|
|
local gatherTarget = {}
|
|
local playerName = UnitName("player")
|
|
local playerHasDream = false
|
|
mod.vb.phase = 1
|
|
mod.vb.lurkingCount = 0
|
|
mod.vb.corruptionHorror = 0
|
|
mod.vb.inconHorror = 0
|
|
mod.vb.meteorCount = 0
|
|
mod.vb.lastBonds = nil
|
|
mod.vb.dreamCount = 0
|
|
|
|
local function updateRangeFrame(self)
|
|
if not self.Options.RangeFrame then return end
|
|
if DBM:UnitDebuff("player", darkSoul) then
|
|
if self:IsEasy() then
|
|
DBM.RangeCheck:Show(15)
|
|
else
|
|
DBM.RangeCheck:Show(25)
|
|
end
|
|
elseif DBM:UnitDebuff("player", blackSoul) then
|
|
DBM.RangeCheck:Show(10)--10 for tainted discharge?
|
|
elseif self.vb.phase == 1 then--Maybe only show for ranged?
|
|
DBM.RangeCheck:Show(6)--Will be rounded up by 7.1+ restrictions
|
|
else
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
end
|
|
|
|
local function bondsWarning(self)
|
|
local previousTarget = nil
|
|
for i = 1, #gatherTarget do
|
|
local name = gatherTarget[i]
|
|
if previousTarget then
|
|
if playerName == previousTarget then
|
|
specWarnBondsOfTerror:Show(name)
|
|
specWarnBondsOfTerror:Play("linegather")
|
|
elseif playerName == name then
|
|
specWarnBondsOfTerror:Show(previousTarget)
|
|
specWarnBondsOfTerror:Play("linegather")
|
|
end
|
|
end
|
|
previousTarget = name
|
|
end
|
|
table.wipe(gatherTarget)
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self.vb.phase = 1
|
|
self.vb.lurkingCount = 0
|
|
self.vb.corruptionHorror = 0
|
|
self.vb.inconHorror = 0
|
|
self.vb.meteorCount = 0
|
|
self.vb.dreamCount = 0
|
|
self.vb.lastBonds = nil
|
|
table.wipe(bladesTarget)
|
|
table.wipe(gatherTarget)
|
|
timerDarkeningSoulCD:Start(-delay)
|
|
timerLurkingEruptionCD:Start(13.6-delay, 1)
|
|
timerNightmareBladesCD:Start(18.5-delay)
|
|
timerCorruptionHorrorCD:Start(58.4-delay, 1)
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:SetHeader(corruptionName)
|
|
if self.Options.InfoFrameFilterDream then
|
|
DBM.InfoFrame:Show(8, "playerpower", 5, ALTERNATE_POWER_INDEX, dreamDebuff)
|
|
else
|
|
DBM.InfoFrame:Show(8, "playerpower", 5, ALTERNATE_POWER_INDEX)
|
|
end
|
|
end
|
|
updateRangeFrame(self)
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:Hide()
|
|
end
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
self:UnregisterShortTermEvents()
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 207830 then
|
|
timerCorruptingNovaCD:Start(nil, args.sourceGUID)
|
|
if self:AntiSpam(2, 1) then
|
|
specWarnCorruptingNova:Show(args.sourceName)
|
|
specWarnCorruptingNova:Play("aesoon")
|
|
end
|
|
elseif spellId == 209443 then
|
|
if self.vb.phase == 3 then
|
|
timerNightmareInfusionCD:Start(31.5)
|
|
else
|
|
timerNightmareInfusionCD:Start()
|
|
end
|
|
local targetName, uId = self:GetBossTarget(args.sourceGUID, true)
|
|
if self:IsTanking("player", "boss1", nil, true) then
|
|
--Player is current target, just give a generic warning, since if player has dream it doesn't matter, if player doesn't, it's OTHER tanks job to fix this
|
|
warnNightmareInfusion:Show()
|
|
else
|
|
--Player has dream buff and current tank does NOT so TAUNT warning.
|
|
if playerHasDream and uId and not DBM:UnitDebuff(uId, dreamDebuff) then
|
|
specWarnNightmareInfusionOther:Show(targetName)
|
|
specWarnNightmareInfusionOther:Play("tauntboss")
|
|
end
|
|
end
|
|
elseif spellId == 205588 then
|
|
self.vb.inconHorror = self.vb.inconHorror + 1
|
|
specWarnInconHorror:Show(self.vb.inconHorror)
|
|
specWarnInconHorror:Play("killmob")
|
|
timerCallOfNightmaresCD:Start(nil, self.vb.inconHorror+1)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 206651 then
|
|
timerDarkeningSoulCD:Start()
|
|
elseif spellId == 209158 then
|
|
timerBlackeningSoulCD:Start()
|
|
elseif spellId == 224649 then
|
|
warnTormentingSwipe:Show(args.destName)
|
|
timerTormentingSwipeCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 210264 then
|
|
self.vb.corruptionHorror = self.vb.corruptionHorror + 1
|
|
specWarnCorruptionHorror:Show(self.vb.corruptionHorror)
|
|
specWarnCorruptionHorror:Play("bigmob")
|
|
timerCorruptionHorrorCD:Start(nil, self.vb.corruptionHorror+1)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_SUMMON(args)
|
|
local spellId = args.spellId
|
|
if spellId == 210264 then
|
|
timerTormentingSwipeCD:Start(10, args.destGUID)
|
|
timerCorruptingNovaCD:Start(14.5, args.destGUID)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 208431 then
|
|
warnDescentIntoMadness:CombinedShow(0.5, args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnDescentIntoMadness:Show()
|
|
if not playerHasDream then
|
|
yellDescentIntoMadness:Schedule(19, 1)
|
|
yellDescentIntoMadness:Schedule(18, 2)
|
|
yellDescentIntoMadness:Schedule(17, 3)
|
|
end
|
|
end
|
|
elseif spellId == 206651 then
|
|
local amount = args.amount or 1
|
|
warnDarkeningSoul:Show(args.destName, amount)
|
|
if args:IsPlayer() then
|
|
if amount >= 3 then
|
|
specWarnDarkeningSoulYou:Show(amount)
|
|
specWarnDarkeningSoulYou:Play("stackhigh")
|
|
end
|
|
updateRangeFrame(self)
|
|
else
|
|
if amount >= 4 then
|
|
local filterWarning = false
|
|
if self:GetNumAliveTanks() >= 3 then
|
|
--Three (or more) Tank Strat AND at least 3 alive
|
|
for i = 1, 5 do
|
|
--Check if tanking a big add
|
|
local bossUnitID = "boss"..i
|
|
if UnitExists(bossUnitID) and self:IsTanking("player", bossUnitID, nil, true) and self:GetCIDFromGUID(UnitGUID(bossUnitID)) == 103695 then
|
|
filterWarning = true--Tanking big add, in 3 tank strat means this tank has nothing to do with boss swapping.
|
|
break
|
|
end
|
|
end
|
|
end
|
|
if not filterWarning then
|
|
specWarnDarkeningSoulOther:Show(args.destName)
|
|
specWarnDarkeningSoulOther:Play("tauntboss")
|
|
end
|
|
end
|
|
end
|
|
elseif spellId == 209158 then
|
|
local amount = args.amount or 1
|
|
warnBlackeningSoul:Show(args.destName, amount)
|
|
if args:IsPlayer() then
|
|
if amount >= 3 then
|
|
specWarnBlackeningSoulYou:Show(amount)
|
|
specWarnBlackeningSoulYou:Play("stackhigh")
|
|
end
|
|
updateRangeFrame(self)
|
|
else
|
|
if amount >= 4 then
|
|
local filterWarning = false
|
|
if self:GetNumAliveTanks() >= 3 then
|
|
--Three (or more) Tank Strat AND at least 3 alive
|
|
for i = 1, 5 do
|
|
--Check if tanking a big add
|
|
local bossUnitID = "boss"..i
|
|
if UnitExists(bossUnitID) and self:IsTanking("player", bossUnitID, nil, true) and self:GetCIDFromGUID(UnitGUID(bossUnitID)) == 103695 then
|
|
filterWarning = true--Tanking big add, in 3 tank strat means this tank has nothing to do with boss swapping.
|
|
break
|
|
end
|
|
end
|
|
end
|
|
if not filterWarning and not DBM:UnitDebuff("player", blackened) then
|
|
specWarnBlackeningSoulOther:Show(args.destName)
|
|
specWarnBlackeningSoulOther:Play("tauntboss")
|
|
end
|
|
end
|
|
end
|
|
elseif spellId == 205771 then
|
|
warnTormentingFixation:CombinedShow(1, args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnTormentingFixation:Show()
|
|
specWarnTormentingFixation:Play("targetyou")
|
|
end
|
|
elseif spellId == 211802 then
|
|
warnNightmareBlades:CombinedShow(0.5, args.destName)
|
|
if not tContains(bladesTarget, args.destName) then
|
|
bladesTarget[#bladesTarget+1] = args.destName
|
|
end
|
|
if args:IsPlayer() then
|
|
specWarnNightmareBlades:Show()
|
|
specWarnNightmareBlades:Play("runout")
|
|
end
|
|
if self.Options.SetIconOnBlades then
|
|
self:SetIcon(args.destName, #bladesTarget)
|
|
end
|
|
elseif spellId == 209034 or spellId == 210451 then
|
|
warnBondsOfTerror:CombinedShow(0.5, args.destName)
|
|
self:Unschedule(bondsWarning)
|
|
if not tContains(gatherTarget, args.destName) then
|
|
gatherTarget[#gatherTarget+1] = args.destName
|
|
end
|
|
if #gatherTarget == 2 then--Know it's 2 on heroic and normal, mythic unknown LFR assumed can't be more than normal/heroic.
|
|
bondsWarning(self)
|
|
else
|
|
self:Schedule(1, bondsWarning, self)
|
|
end
|
|
elseif spellId == 224508 then
|
|
if args:IsPlayer() then
|
|
specWarnCorruptionMeteorYou:Show()
|
|
specWarnCorruptionMeteorYou:Play("targetyou")
|
|
yellMeteor:Countdown(spellId)
|
|
else
|
|
if playerHasDream then
|
|
specWarnCorruptionMeteorTo:Show(args.destName)
|
|
specWarnCorruptionMeteorTo:Play("gathershare")
|
|
else
|
|
local maxPower = UnitPowerMax("player", ALTERNATE_POWER_INDEX)
|
|
if maxPower > 0 then
|
|
local playerPower = UnitPower("player", ALTERNATE_POWER_INDEX) / maxPower * 100
|
|
if self.vb.phase == 3 and playerPower > 75 or playerPower > 55 then--Avoid it if corruption too high for it
|
|
specWarnCorruptionMeteorAway:Show()
|
|
specWarnCorruptionMeteorAway:Play("watchstep")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if self.Options.SetIconOnMeteor then
|
|
self:SetIcon(args.destName, 6)
|
|
end
|
|
elseif spellId == 206005 then
|
|
if args:IsPlayer() then
|
|
playerHasDream = true
|
|
end
|
|
if self:IsTank() then
|
|
local uId = DBM:GetRaidUnitId(args.destName)
|
|
if uId and self:IsTanking(uId) then
|
|
warnDreamOthers:CombinedShow(0.3, args.destName)
|
|
end
|
|
elseif self:IsHealer() then
|
|
local uId = DBM:GetRaidUnitId(args.destName)
|
|
if uId and self:IsHealer(uId) then
|
|
warnDreamOthers:CombinedShow(0.3, args.destName)
|
|
end
|
|
else--Just an unspecial dps
|
|
if args:IsPlayer() then
|
|
warnDream:Show()
|
|
end
|
|
end
|
|
end
|
|
end
|
|
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 208431 and args:IsPlayer() then
|
|
yellDescentIntoMadness:Cancel()
|
|
elseif spellId == 211802 then
|
|
bladesTarget[args.destName] = nil
|
|
if self.Options.SetIconOnBlades then
|
|
self:SetIcon(args.destName, 0)
|
|
end
|
|
elseif spellId == 206651 then
|
|
if args:IsPlayer() then
|
|
updateRangeFrame(self)
|
|
end
|
|
elseif spellId == 209158 then
|
|
if args:IsPlayer() then
|
|
updateRangeFrame(self)
|
|
end
|
|
elseif spellId == 209034 or spellId == 210451 then
|
|
elseif spellId == 224508 then
|
|
if args:IsPlayer() then
|
|
yellMeteor:Cancel()
|
|
end
|
|
if self.Options.SetIconOnMeteor then
|
|
self:SetIcon(args.destName, 0)
|
|
end
|
|
elseif spellId == 206005 then
|
|
if args:IsPlayer() then
|
|
playerHasDream = false
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 103695 then--Corruption Horror
|
|
timerCorruptingNovaCD:Stop(args.destGUID)
|
|
timerTormentingSwipeCD:Stop(args.destGUID)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_PERIODIC_ENERGIZE(_, _, _, _, destGUID, _, _, _, spellId)
|
|
if spellId == 208385 then
|
|
DBM:Debug("SPELL_PERIODIC_ENERGIZE fired for Tainted Discharge", 3)
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
|
if spellId == 206341 then--Corruption Meteor (casting not in combat log, targetting is finally but I trust this more for timer in case targetting can be gamed.)
|
|
self.vb.meteorCount = self.vb.meteorCount + 1
|
|
if self.vb.phase == 3 then
|
|
timerCorruptionMeteorCD:Start(35, self.vb.meteorCount+1)--35-38 in phase 3
|
|
else
|
|
timerCorruptionMeteorCD:Start(nil, self.vb.meteorCount+1)--Generally always 28
|
|
end
|
|
elseif spellId == 209000 then--Nightmare Blades (casting not in combat log)
|
|
if self.vb.phase == 3 then
|
|
timerNightmareBladesCD:Start(30)--Every 30 or so
|
|
else
|
|
timerNightmareBladesCD:Start()--Every 15.7 or so
|
|
end
|
|
elseif spellId == 209034 then--Bonds of Terror (casting not in combat log)
|
|
timerBondsOfTerrorCD:Start()
|
|
elseif spellId == 208322 then--Lurking Eruption
|
|
self.vb.lurkingCount = self.vb.lurkingCount + 1
|
|
local timers = lurkingTimers[self.vb.lurkingCount+1]
|
|
if timers then
|
|
timerLurkingEruptionCD:Start(timers, self.vb.lurkingCount+1)
|
|
else
|
|
timerLurkingEruptionCD:Start(20.5, self.vb.lurkingCount+1)
|
|
end
|
|
elseif spellId == 226193 then--Xavius Energize Phase 2
|
|
self.vb.phase = 2
|
|
warnPhase2:Show()
|
|
warnPhase2:Play("ptwo")
|
|
timerNightmareBladesCD:Stop()
|
|
timerLurkingEruptionCD:Stop()
|
|
timerCorruptionHorrorCD:Stop()
|
|
timerBlackeningSoulCD:Start(7)
|
|
timerBondsOfTerrorCD:Start(14)
|
|
timerCorruptionMeteorCD:Start(21, 1)
|
|
timerCallOfNightmaresCD:Start(23, 1)
|
|
timerNightmareInfusionCD:Start(30)
|
|
updateRangeFrame(self)
|
|
self:RegisterShortTermEvents(
|
|
"SPELL_PERIODIC_ENERGIZE 208385"
|
|
)
|
|
elseif spellId == 226185 then--Xavius Energize Phase 3
|
|
self.vb.phase = 3
|
|
warnPhase3:Show()
|
|
warnPhase3:Play("pthree")
|
|
timerBlackeningSoulCD:Stop()
|
|
timerBondsOfTerrorCD:Stop()
|
|
timerCallOfNightmaresCD:Stop()
|
|
timerCorruptionMeteorCD:Stop()
|
|
timerNightmareInfusionCD:Stop()
|
|
timerNightmareInfusionCD:Start(11)
|
|
timerBlackeningSoulCD:Start(15)
|
|
timerCorruptionMeteorCD:Start(20.5, 1)
|
|
timerNightmareBladesCD:Start(30)
|
|
self:UnregisterShortTermEvents()
|
|
elseif spellId == 226194 then--Writhing Deep
|
|
warnNightmareTentacles:Show()
|
|
timerNightmareTentacleCD:Start()
|
|
elseif spellId == 205843 and self:IsMythic() then
|
|
self.vb.dreamCount = self.vb.dreamCount + 1
|
|
local count = self.vb.dreamCount
|
|
specWarnDreaming:Show(count)
|
|
specWarnDreaming:Play(nil, "Interface\\AddOns\\DBM-VP"..DBM.Options.ChosenVoicePack2.."\\count\\"..count..".ogg")
|
|
specWarnDreaming:ScheduleVoice(1, "stepring")
|
|
end
|
|
end
|
|
|