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.
456 lines
20 KiB
456 lines
20 KiB
|
2 years ago
|
local mod = DBM:NewMod(2523, "DBM-Raids-Dragonflight", 2, 1208)
|
||
|
3 years ago
|
local L = mod:GetLocalizedStrings()
|
||
|
|
|
||
|
2 years ago
|
mod:SetRevision("20240426174649")
|
||
|
3 years ago
|
mod:SetCreatureID(201668)
|
||
|
3 years ago
|
mod:SetEncounterID(2684)
|
||
|
3 years ago
|
mod:SetUsedIcons(6)
|
||
|
2 years ago
|
mod:SetHotfixNoticeRev(20230801000000)
|
||
|
2 years ago
|
mod:SetMinSyncRevision(20230614000000)
|
||
|
2 years ago
|
mod.respawnTime = 29
|
||
|
3 years ago
|
|
||
|
|
mod:RegisterCombat("combat")
|
||
|
|
|
||
|
|
mod:RegisterEventsInCombat(
|
||
|
3 years ago
|
"SPELL_CAST_START 407207 403272 406222 403057 407790 407796 407936 407917 405436 405434 405433 404038 409313 401022",
|
||
|
|
"SPELL_CAST_SUCCESS 402902 401480 407917 409241 410968",
|
||
|
|
"SPELL_AURA_APPLIED 401998 405484 407728 407919",--407182 410966
|
||
|
|
"SPELL_AURA_APPLIED_DOSE",
|
||
|
|
"SPELL_AURA_REMOVED 405484 407088 407919",--407182 410966
|
||
|
|
"SPELL_AURA_REMOVED_DOSE 407088",
|
||
|
3 years ago
|
"SPELL_PERIODIC_DAMAGE 409058 404277 409183",
|
||
|
2 years ago
|
"SPELL_PERIODIC_MISSED 409058 404277 409183"
|
||
|
|
-- "UNIT_SPELLCAST_SUCCEEDED boss1"
|
||
|
3 years ago
|
)
|
||
|
|
|
||
|
|
--[[
|
||
|
3 years ago
|
(ability.id = 401022 or ability.id = 409313 or ability.id = 401480 or ability.id = 403272 or ability.id = 406222 or ability.id = 407790 or ability.id = 403057
|
||
|
3 years ago
|
or ability.id = 401101 or ability.id = 405436 or ability.id = 405434 or ability.id = 405433 or ability.id = 405433 or ability.id = 404038 or ability.id = 403528 or ability.id = 407796
|
||
|
|
or ability.id = 407936 or ability.id = 407917 or ability.id = 407207) and type = "begincast"
|
||
|
3 years ago
|
or (ability.id = 401480 or ability.id = 410968 or ability.id = 409241 or ability.id = 402902) and type = "cast"
|
||
|
3 years ago
|
or ability.id = 407088 and (type = "applybuff" or type = "removebuff")
|
||
|
|
or ability.id = 405484 and type = "applydebuff"
|
||
|
3 years ago
|
or ability.id = 410966 and type = "applydebuff"
|
||
|
3 years ago
|
--]]
|
||
|
|
--TODO, delete redundant/incorrect events when real events known
|
||
|
|
--TODO, Add shatter? https://www.wowhead.com/ptr/spell=401825/shatter
|
||
|
2 years ago
|
local warnPhase = mod:NewPhaseChangeAnnounce(2, 2, nil, nil, nil, nil, nil, 2)
|
||
|
3 years ago
|
--Stage One: The Earth Warder
|
||
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(26192))
|
||
|
3 years ago
|
local warnTwistedEarth = mod:NewCountAnnounce(402902, 2)
|
||
|
|
--local warnVolcanicHeart = mod:NewTargetCountAnnounce(410953, 2, nil, nil, nil, nil, nil, nil, true)
|
||
|
|
local warnRushingDarkness = mod:NewIncomingCountAnnounce(407221, 2)
|
||
|
3 years ago
|
local warnRushingDarknessWallTarget = mod:NewTargetCountAnnounce(407221, 2, nil, nil, nil, nil, nil, nil, true)
|
||
|
2 years ago
|
local warnVolcanicHeart = mod:NewCountAnnounce(410953, 3, nil, nil, 167180)--This is using count object instead of incoming count because weak auras are scanning for "Bombs (number")
|
||
|
3 years ago
|
|
||
|
3 years ago
|
--local specWarnVolcanicHeart = mod:NewSpecialWarningMoveAway(410953, nil, nil, nil, 1, 2)
|
||
|
|
--local yellVolcanicHeart = mod:NewShortPosYell(410953)
|
||
|
|
--local yellVolcanicHeartFades = mod:NewIconFadesYell(410953)
|
||
|
|
local specWarnTwistedEarth = mod:NewSpecialWarningDodgeCount(402902, false, nil, 2, 2, 2)--Twisted earth spawn+Dodge for Volcanic Blast
|
||
|
2 years ago
|
local specWarnEchoingFissure = mod:NewSpecialWarningDodgeCount(402115, nil, 381446, nil, 2, 2)
|
||
|
3 years ago
|
local specWarnRushingDarkness = mod:NewSpecialWarningDodgeCount(407221, nil, nil, nil, 2, 2)
|
||
|
3 years ago
|
local yellRushingDarkness = mod:NewYell(407221, L.WallBreaker)
|
||
|
|
local yellRushingDarknessFades = mod:NewIconFadesYell(407221)
|
||
|
2 years ago
|
local specWarnCalamitousStrike = mod:NewSpecialWarningDefensive(401998, nil, nil, nil, 1, 2)
|
||
|
|
local specWarnCalamitousStrikeSwap = mod:NewSpecialWarningTaunt(401998, nil, nil, nil, 1, 2)
|
||
|
3 years ago
|
--local specWarnPyroBlast = mod:NewSpecialWarningInterrupt(396040, "HasInterrupt", nil, nil, 1, 2)
|
||
|
|
local specWarnGTFO = mod:NewSpecialWarningGTFO(409058, nil, nil, nil, 1, 8)
|
||
|
|
|
||
|
2 years ago
|
local timerVolcanicHeartCD = mod:NewNextCountTimer(26.2, 410953, 167180, nil, nil, 3)--ShortText "Bombs" (not precise enough as next timer, but next is used to match BW string for weak aura matching)
|
||
|
3 years ago
|
local timerTwistedEarthCD = mod:NewCDCountTimer(26.2, 402902, nil, nil, nil, 3)
|
||
|
2 years ago
|
local timerEchoingFissureCD = mod:NewCDCountTimer(36.3, 402115, 381446, nil, nil, 2)
|
||
|
3 years ago
|
local timerRushingDarknessCD = mod:NewCDCountTimer(36.3, 407221, nil, nil, nil, 3)
|
||
|
2 years ago
|
local timerCalamitousStrikeCD = mod:NewCDCountTimer(36.3, 401998, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
||
|
3 years ago
|
--local berserkTimer = mod:NewBerserkTimer(600)
|
||
|
|
|
||
|
3 years ago
|
mod:AddPrivateAuraSoundOption(407182, true, 407221, 1)--Rushing Darkness
|
||
|
|
mod:AddPrivateAuraSoundOption(410966, true, 410953, 3)--Volcanic Heart
|
||
|
3 years ago
|
--mod:AddSetIconOption("SetIconOnVolcanicHeart", 410953, true, 0, {1, 2, 3})
|
||
|
3 years ago
|
mod:AddSetIconOption("SetIconOnRushingDarkness", 407221, true, 0, {6})
|
||
|
3 years ago
|
--mod:AddNamePlateOption("NPAuraOnAscension", 385541)
|
||
|
|
|
||
|
|
--Stage Two: Corruption Takes Hold
|
||
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(26421))
|
||
|
|
----Voice From Beyond
|
||
|
|
--mod:AddTimerLine(DBM:EJ_GetSectionInfo(26456))
|
||
|
|
local warnCorruption = mod:NewTargetCountAnnounce(401010, 3)--Class Call Parent
|
||
|
|
local warnShadowShadowStrike = mod:NewCastAnnounce(407796, 2, nil, nil, "Tank|Healer")
|
||
|
3 years ago
|
local warnHidden = mod:NewAddsLeftAnnounce(407036, 1)--Announces how many are still hidden, but also kinda acts as a "one has also become unhidden" alert
|
||
|
3 years ago
|
|
||
|
3 years ago
|
local specWarnRazetheEarth = mod:NewSpecialWarningDodge(409313, nil, nil, nil, 2, 2)
|
||
|
3 years ago
|
local specWarnCorruption = mod:NewSpecialWarningYou(401010, nil, nil, nil, 1, 2)
|
||
|
|
local yellCorruption = mod:NewShortYell(401010)
|
||
|
2 years ago
|
local specWarnUmbralAnnihilation = mod:NewSpecialWarningCount(405433, nil, nil, nil, 2, 2)
|
||
|
3 years ago
|
local specWarnSweepingShadows = mod:NewSpecialWarningDodgeCount(403846, nil, nil, nil, 2, 2)
|
||
|
|
local specWarnSunderShadow = mod:NewSpecialWarningDefensive(407790, nil, nil, nil, 1, 2)
|
||
|
3 years ago
|
local specWarnSunderShadowSwap = mod:NewSpecialWarningTaunt(407790, nil, nil, nil, 1, 2)
|
||
|
3 years ago
|
|
||
|
3 years ago
|
local timerCorruptionCD = mod:NewCDCountTimer(43.4, 401010, nil, nil, nil, 5)--Parent
|
||
|
2 years ago
|
local timerUmbralAnnihilationCD = mod:NewCDCountTimer(29.1, 405433, nil, nil, nil, 2, nil, DBM_COMMON_L.DEADLY_ICON)
|
||
|
3 years ago
|
local timerSunderShadowCD = mod:NewCDCountTimer(27.9, 407790, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
||
|
3 years ago
|
|
||
|
|
--Stage Three: Reality Fractures
|
||
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(26422))
|
||
|
3 years ago
|
local warnSunderReality = mod:NewCastAnnounce(407936, 2, nil, nil, nil, 109401)
|
||
|
|
local warnEbonDestruction = mod:NewCountAnnounce(407917, 4)
|
||
|
3 years ago
|
|
||
|
3 years ago
|
local specWarnEbonDestructionMove = mod:NewSpecialWarningMoveTo(407917, nil, 64584, nil, 3, 2)
|
||
|
3 years ago
|
|
||
|
3 years ago
|
local timerSunderRealityCD = mod:NewCDCountTimer(29.1, 407936, 109401, nil, nil, 5)--"Portals"
|
||
|
|
local timerEbonDestructionCD = mod:NewCDCountTimer(29.2, 407917, 64584, nil, nil, 2, nil, DBM_COMMON_L.DEADLY_ICON)--"Big Bang"
|
||
|
3 years ago
|
|
||
|
|
mod:AddInfoFrameOption(407919, true)
|
||
|
|
|
||
|
|
--General
|
||
|
|
mod.vb.tankCount = 0
|
||
|
|
--P1
|
||
|
3 years ago
|
mod.vb.volcanicCount = 0
|
||
|
3 years ago
|
mod.vb.twistedEarthCount = 0
|
||
|
|
mod.vb.fissureCount = 0
|
||
|
3 years ago
|
mod.vb.RushingDarknessCount = 0
|
||
|
2 years ago
|
mod.vb.skippedDarkness = false
|
||
|
3 years ago
|
--mod.vb.volcIcon = 1
|
||
|
|
--mod.vb.rushingIcon = 4
|
||
|
3 years ago
|
--P2
|
||
|
|
mod.vb.corruptionCount = 0
|
||
|
|
mod.vb.annihilatingCount = 0
|
||
|
|
--P3
|
||
|
3 years ago
|
mod.vb.sunderRealityCount = 0
|
||
|
3 years ago
|
mod.vb.ebonCount = 0
|
||
|
2 years ago
|
local realityName = DBM:GetSpellName(407919)
|
||
|
3 years ago
|
local playerReality = false
|
||
|
3 years ago
|
local mythicTwistedP1Timers = {2, 20.6, 19.4, 18.2, 18.2, 18.2, 19.5, 17.0}
|
||
|
|
local mythicTwistedP2Timers = {41.6, 18.2, 12.1, 29.2, 13.4, 14.6}
|
||
|
2 years ago
|
local volcanicP2Timers = {21.3, 15.7, 17.0, 14.8, 17.3, 16.7, 18, 14.5}
|
||
|
|
local volcanicP2LFRTimers = {21.3, 15.6, 16.9, 17, 12, 16.9, 12, 16.9, 12, 17}
|
||
|
3 years ago
|
|
||
|
|
|
||
|
|
local function checkRealityOnSelf(self)
|
||
|
|
if not playerReality then
|
||
|
|
specWarnEbonDestructionMove:Show(realityName)
|
||
|
|
specWarnEbonDestructionMove:Play("findshelter")
|
||
|
|
end
|
||
|
|
end
|
||
|
3 years ago
|
|
||
|
3 years ago
|
--Work around for stage 2 bug where sometimes cast success event is missing
|
||
|
|
local function fixBrokenHeartTimer(self)
|
||
|
|
self.vb.volcanicCount = self.vb.volcanicCount + 1
|
||
|
|
local timer = volcanicP2Timers[self.vb.volcanicCount+1]
|
||
|
|
if timer then
|
||
|
|
timerVolcanicHeartCD:Start(timer-5, self.vb.volcanicCount+1)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function checkForSkippedDarkness(self)
|
||
|
|
if self.vb.RushingDarknessCount == 0 then--first one skipped (which is like 95% of pulls)
|
||
|
|
self.vb.RushingDarknessCount = self.vb.RushingDarknessCount + 1
|
||
|
2 years ago
|
self.vb.skippedDarkness = true
|
||
|
2 years ago
|
timerRushingDarknessCD:Start(10.2, 2)
|
||
|
3 years ago
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:RushingDarknessTarget(targetname, uId)
|
||
|
|
if not targetname then return end
|
||
|
|
warnRushingDarknessWallTarget:Show(self.vb.RushingDarknessCount, targetname)
|
||
|
|
if targetname == UnitName("player") then
|
||
|
|
yellRushingDarkness:Yell(6, 6)
|
||
|
|
yellRushingDarknessFades:Countdown(5, nil, 6)
|
||
|
|
end
|
||
|
|
if self.Options.SetIconOnRushingDarkness then
|
||
|
|
self:SetIcon(targetname, 6, 5)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
3 years ago
|
function mod:OnCombatStart(delay)
|
||
|
|
self:SetStage(1)
|
||
|
|
self.vb.tankCount = 0
|
||
|
3 years ago
|
self.vb.volcanicCount = 0
|
||
|
3 years ago
|
self.vb.twistedEarthCount = 0
|
||
|
|
self.vb.fissureCount = 0
|
||
|
3 years ago
|
self.vb.RushingDarknessCount = 0
|
||
|
2 years ago
|
self.vb.skippedDarkness = false
|
||
|
3 years ago
|
self.vb.corruptionCount = 0
|
||
|
|
self.vb.annihilatingCount = 0
|
||
|
3 years ago
|
self.vb.sunderRealityCount = 0
|
||
|
3 years ago
|
self.vb.ebonCount = 0
|
||
|
3 years ago
|
playerReality = false
|
||
|
3 years ago
|
-- timerTwistedEarthCD:Start(2-delay)--Used 2 sec into pull
|
||
|
|
timerRushingDarknessCD:Start(10.5-delay, 1)
|
||
|
|
timerVolcanicHeartCD:Start(15.6-delay, 1)
|
||
|
|
timerCalamitousStrikeCD:Start(self:IsMythic() and 25.1 or 24.1-delay, 1)--Delayed by extra wall on mythic
|
||
|
|
timerEchoingFissureCD:Start(33.6-delay, 1)
|
||
|
|
self:EnablePrivateAuraSound(407182, "targetyou", 2)--Rushing Darkness
|
||
|
|
self:EnablePrivateAuraSound(410966, "runout", 2)--Volcanic Heart
|
||
|
3 years ago
|
end
|
||
|
|
|
||
|
|
function mod:OnCombatEnd()
|
||
|
|
if self.Options.InfoFrame then
|
||
|
|
DBM.InfoFrame:Hide()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_CAST_START(args)
|
||
|
|
local spellId = args.spellId
|
||
|
3 years ago
|
if spellId == 403272 then
|
||
|
3 years ago
|
self.vb.fissureCount = self.vb.fissureCount + 1
|
||
|
|
specWarnEchoingFissure:Show(self.vb.fissureCount)
|
||
|
|
specWarnEchoingFissure:Play("justrun")
|
||
|
3 years ago
|
timerEchoingFissureCD:Start(nil, self.vb.fissureCount+1)
|
||
|
3 years ago
|
elseif spellId == 406222 or spellId == 401022 then
|
||
|
3 years ago
|
self.vb.tankCount = self.vb.tankCount + 1
|
||
|
3 years ago
|
if self:IsTanking("player", nil, nil, true, args.sourceGUID) then
|
||
|
3 years ago
|
specWarnCalamitousStrike:Show()
|
||
|
3 years ago
|
specWarnCalamitousStrike:Play("carefly")
|
||
|
3 years ago
|
end
|
||
|
3 years ago
|
timerCalamitousStrikeCD:Start(self:GetStage(1) and 36.3 or 29, self.vb.tankCount+1)
|
||
|
3 years ago
|
elseif spellId == 407790 then
|
||
|
|
self.vb.tankCount = self.vb.tankCount + 1
|
||
|
3 years ago
|
if self:IsTanking("player", nil, nil, true, args.sourceGUID) then
|
||
|
3 years ago
|
specWarnSunderShadow:Show()
|
||
|
|
specWarnSunderShadow:Play("defensive")
|
||
|
|
end
|
||
|
3 years ago
|
timerSunderShadowCD:Start(nil, self.vb.tankCount+1)
|
||
|
|
elseif args:IsSpellID(405436, 405434, 405433, 404038) then--10, 7.5, 5, 2.5 (405433 used on heroic AND normal, others used?)
|
||
|
3 years ago
|
self.vb.annihilatingCount = self.vb.annihilatingCount + 1
|
||
|
3 years ago
|
specWarnUmbralAnnihilation:Show(self.vb.annihilatingCount)
|
||
|
|
specWarnUmbralAnnihilation:Play("aesoon")
|
||
|
3 years ago
|
if self.vb.annihilatingCount >= 5 then--Still true?
|
||
|
3 years ago
|
timerUmbralAnnihilationCD:Start(10.9, self.vb.annihilatingCount+1)
|
||
|
2 years ago
|
elseif self.vb.annihilatingCount == 2 then--A wild fluke that keeps coming up in debug
|
||
|
|
timerUmbralAnnihilationCD:Start(27.9, self.vb.annihilatingCount+1)
|
||
|
3 years ago
|
else
|
||
|
|
timerUmbralAnnihilationCD:Start(29.2, self.vb.annihilatingCount+1)
|
||
|
|
end
|
||
|
3 years ago
|
elseif spellId == 407796 then
|
||
|
|
warnShadowShadowStrike:Show()
|
||
|
|
elseif spellId == 407936 then
|
||
|
3 years ago
|
self.vb.sunderRealityCount = self.vb.sunderRealityCount + 1
|
||
|
|
warnSunderReality:Show()
|
||
|
3 years ago
|
timerSunderRealityCD:Start(29.1, self.vb.sunderRealityCount+1)
|
||
|
3 years ago
|
elseif spellId == 407917 then
|
||
|
|
self.vb.ebonCount = self.vb.ebonCount + 1
|
||
|
3 years ago
|
warnEbonDestruction:Show(self.vb.ebonCount)
|
||
|
3 years ago
|
timerEbonDestructionCD:Start(nil, self.vb.ebonCount+1)
|
||
|
3 years ago
|
if self.Options.InfoFrame then
|
||
|
3 years ago
|
DBM.InfoFrame:SetHeader(DBM_COMMON_L.NO_DEBUFF:format(realityName))
|
||
|
3 years ago
|
DBM.InfoFrame:Show(5, "playergooddebuff", 407919)
|
||
|
3 years ago
|
end
|
||
|
3 years ago
|
self:Unschedule(checkRealityOnSelf)
|
||
|
3 years ago
|
checkRealityOnSelf(self)
|
||
|
3 years ago
|
self:Schedule(4, checkRealityOnSelf, self)
|
||
|
3 years ago
|
elseif spellId == 407207 then
|
||
|
2 years ago
|
self:Unschedule(checkForSkippedDarkness)
|
||
|
3 years ago
|
self.vb.RushingDarknessCount = self.vb.RushingDarknessCount + 1
|
||
|
3 years ago
|
-- self.vb.rushingIcon = 4
|
||
|
3 years ago
|
--As of May 23rd reset, stage 3 has a new darkness cast that causes the 17 second time between darkness 1 and 2 in stage 3
|
||
|
|
--As of May 30th reset, stage 3 no longer has new darkness that causes the 17 second time between darkness 1 and 2 in stage 3
|
||
|
2 years ago
|
--As of June 13th reset, it's kind of up in air how to handle this cause it's still going back and forth, so now code is gonna account for BOTH variations of initial timers
|
||
|
|
if self:GetStage(3) and (self.vb.RushingDarknessCount == 1) and not self.vb.skippedDarkness then
|
||
|
|
timerRushingDarknessCD:Start(17, self.vb.RushingDarknessCount+1)
|
||
|
|
else
|
||
|
2 years ago
|
timerRushingDarknessCD:Start(self:GetStage(1) and 35.9 or 27.9, self.vb.RushingDarknessCount+1)--27.9-29.2, almost always 29 but sometimes 28 :\
|
||
|
2 years ago
|
end
|
||
|
3 years ago
|
if self:IsMythic() and self:GetStage(1) then--Mythic P1 only wall breaker strat used by all top guilds (which means everyone else will use it too and expect it in DBM)
|
||
|
|
self:BossTargetScanner(args.sourceGUID, "RushingDarknessTarget", 0.2, 8, true, nil, nil, nil, true)
|
||
|
2 years ago
|
else
|
||
|
|
warnRushingDarkness:Show(self.vb.RushingDarknessCount)
|
||
|
3 years ago
|
end
|
||
|
3 years ago
|
elseif spellId == 409313 then--Intermission 1.5
|
||
|
|
specWarnRazetheEarth:Show()
|
||
|
|
specWarnRazetheEarth:Play("watchstep")
|
||
|
|
timerTwistedEarthCD:Stop()
|
||
|
|
timerEchoingFissureCD:Stop()
|
||
|
|
timerRushingDarknessCD:Stop()
|
||
|
|
timerCalamitousStrikeCD:Stop()
|
||
|
|
timerVolcanicHeartCD:Stop()
|
||
|
3 years ago
|
timerCorruptionCD:Start(14, 1)--Time to first debuffs
|
||
|
3 years ago
|
elseif spellId == 403057 then--Surrender To Corruption
|
||
|
|
self:SetStage(2)
|
||
|
3 years ago
|
warnPhase:Show(DBM_CORE_L.AUTO_ANNOUNCE_TEXTS.stage:format(2))
|
||
|
|
warnPhase:Play("ptwo")
|
||
|
|
self.vb.twistedEarthCount = 0
|
||
|
3 years ago
|
self.vb.volcanicCount = 0
|
||
|
|
self.vb.RushingDarknessCount = 0
|
||
|
|
timerSunderShadowCD:Start(14.8, 1)
|
||
|
3 years ago
|
timerVolcanicHeartCD:Start(20.7, 1)
|
||
|
|
timerUmbralAnnihilationCD:Start(25.1, 1)
|
||
|
|
timerRushingDarknessCD:Start(30.9, 1)
|
||
|
3 years ago
|
if self:IsHard() then
|
||
|
|
timerTwistedEarthCD:Start(self:IsMythic() and 41.5 or 71.5, 1)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
3 years ago
|
function mod:SPELL_CAST_SUCCESS(args)
|
||
|
|
local spellId = args.spellId
|
||
|
3 years ago
|
if spellId == 407917 then
|
||
|
3 years ago
|
if self.Options.InfoFrame then
|
||
|
|
DBM.InfoFrame:Hide()
|
||
|
|
end
|
||
|
3 years ago
|
elseif spellId == 410968 then--Event is bugged, doesn't always fire
|
||
|
|
-- self.vb.volcIcon = 1
|
||
|
3 years ago
|
self.vb.volcanicCount = self.vb.volcanicCount + 1
|
||
|
3 years ago
|
warnVolcanicHeart:Show(self.vb.volcanicCount)
|
||
|
|
if self:GetStage(1) then
|
||
|
2 years ago
|
timerVolcanicHeartCD:Start(36.4, self.vb.volcanicCount+1)
|
||
|
3 years ago
|
else
|
||
|
|
--21.3, 15.7, 17.0, 17.0, 17.3, 16.7, 19.4, 14.5
|
||
|
|
self:Unschedule(fixBrokenHeartTimer)
|
||
|
2 years ago
|
local timer = self:IsLFR() and volcanicP2LFRTimers[self.vb.volcanicCount+1] or volcanicP2Timers[self.vb.volcanicCount+1]
|
||
|
3 years ago
|
if timer then
|
||
|
|
timerVolcanicHeartCD:Start(timer, self.vb.volcanicCount+1)
|
||
|
|
self:Schedule(timer+5, fixBrokenHeartTimer, self)--Should only be needed for 5-6th cast, but letting it run for all for good measure
|
||
|
|
end
|
||
|
3 years ago
|
end
|
||
|
3 years ago
|
elseif args:IsSpellID(402902, 401480, 409241) and self:AntiSpam(5, 1) then--2 and 3 confirmed, 1 unknown
|
||
|
|
self.vb.twistedEarthCount = self.vb.twistedEarthCount + 1
|
||
|
|
if self.Options[specWarnTwistedEarth.option] then
|
||
|
|
specWarnTwistedEarth:Show(self.vb.twistedEarthCount)
|
||
|
|
specWarnTwistedEarth:Play("watchstep")
|
||
|
|
else
|
||
|
|
warnTwistedEarth:Show(self.vb.twistedEarthCount)
|
||
|
3 years ago
|
end
|
||
|
3 years ago
|
if self:IsMythic() then
|
||
|
|
if self.vb.phase == 1 then
|
||
|
|
local timer = mythicTwistedP1Timers[self.vb.twistedEarthCount+1]
|
||
|
|
if timer then
|
||
|
|
timerTwistedEarthCD:Start(timer, self.vb.twistedEarthCount+1)
|
||
|
|
end
|
||
|
|
else
|
||
|
|
local timer = mythicTwistedP2Timers[self.vb.twistedEarthCount+1]
|
||
|
|
if timer then
|
||
|
|
timerTwistedEarthCD:Start(timer, self.vb.twistedEarthCount+1)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
else--Heroic
|
||
|
|
if self.vb.phase == 1 then
|
||
|
|
if spellId == 401480 then--first cast
|
||
|
|
timerTwistedEarthCD:Start(40, 2)
|
||
|
|
else
|
||
|
3 years ago
|
--2, 40, 36.4, 36.4
|
||
|
|
if self.vb.twistedEarthCount < 4 then--2 and 3
|
||
|
3 years ago
|
timerTwistedEarthCD:Start(36.4, self.vb.twistedEarthCount+1)
|
||
|
|
end
|
||
|
|
end
|
||
|
3 years ago
|
else
|
||
|
3 years ago
|
--71.5, 58.2
|
||
|
|
if self.vb.twistedEarthCount == 2 then
|
||
|
|
timerTwistedEarthCD:Start(58.2, self.vb.twistedEarthCount+1)
|
||
|
|
end
|
||
|
3 years ago
|
end
|
||
|
3 years ago
|
end
|
||
|
3 years ago
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_APPLIED(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 401998 and not args:IsPlayer() then
|
||
|
3 years ago
|
specWarnCalamitousStrikeSwap:Show(args.destName)
|
||
|
3 years ago
|
specWarnCalamitousStrikeSwap:Play("tauntboss")
|
||
|
3 years ago
|
--elseif spellId == 407182 then
|
||
|
|
-- local icon = self.vb.rushingIcon
|
||
|
|
-- if self.Options.SetIconOnRushingDarkness then
|
||
|
|
-- self:SetIcon(args.destName, icon)
|
||
|
|
-- end
|
||
|
|
-- if args:IsPlayer() then
|
||
|
|
-- specWarnRushingDarkness:Show()
|
||
|
|
-- specWarnRushingDarkness:Play("targetyou")
|
||
|
|
-- yellRushingDarkness:Yell(icon, icon)
|
||
|
|
-- yellRushingDarknessFades:Countdown(spellId, nil, icon)
|
||
|
|
-- end
|
||
|
|
-- warnRushingDarkness:CombinedShow(0.3, self.vb.RushingDarknessCount, args.destName)
|
||
|
|
-- self.vb.rushingIcon = self.vb.rushingIcon + 1
|
||
|
|
--elseif spellId == 410966 then
|
||
|
|
-- local icon = self.vb.volcIcon
|
||
|
|
-- if self.Options.SetIconOnVolcanicHeart then
|
||
|
|
-- self:SetIcon(args.destName, icon)
|
||
|
|
-- end
|
||
|
|
-- if args:IsPlayer() then
|
||
|
|
-- specWarnVolcanicHeart:Show()--DBM_COMMON_L.BREAK_LOS
|
||
|
|
-- if self:IsMythic() then
|
||
|
|
-- --Raid wide, must break LOS
|
||
|
|
-- specWarnVolcanicHeart:Play("breaklos")
|
||
|
|
-- else
|
||
|
|
-- --5 yard range, just spread
|
||
|
|
-- specWarnVolcanicHeart:Play("range5")
|
||
|
|
-- end
|
||
|
|
-- yellVolcanicHeart:Yell(icon, icon)
|
||
|
|
-- yellVolcanicHeartFades:Countdown(spellId, nil, icon)
|
||
|
|
-- end
|
||
|
|
-- warnVolcanicHeart:CombinedShow(0.3, self.vb.volcanicCount, args.destName)
|
||
|
|
-- self.vb.volcIcon = self.vb.volcIcon + 1
|
||
|
3 years ago
|
elseif spellId == 405484 then
|
||
|
3 years ago
|
if self:AntiSpam(5, 3) then
|
||
|
|
self.vb.corruptionCount = self.vb.corruptionCount + 1
|
||
|
2 years ago
|
timerCorruptionCD:Start(43.4, self.vb.corruptionCount+1)
|
||
|
3 years ago
|
end
|
||
|
|
warnCorruption:CombinedShow(0.3, self.vb.corruptionCount, args.destName)
|
||
|
3 years ago
|
if args:IsPlayer() then
|
||
|
|
specWarnCorruption:Show()
|
||
|
|
specWarnCorruption:Play("targetyou")
|
||
|
|
yellCorruption:Yell()
|
||
|
|
end
|
||
|
3 years ago
|
elseif spellId == 407728 and not args:IsPlayer() then
|
||
|
|
specWarnSunderShadowSwap:Show(args.destName)
|
||
|
|
specWarnSunderShadowSwap:Play("tauntboss")
|
||
|
|
elseif spellId == 407919 and args:IsPlayer() then
|
||
|
|
playerReality = true
|
||
|
3 years ago
|
end
|
||
|
|
end
|
||
|
|
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_REMOVED(args)
|
||
|
|
local spellId = args.spellId
|
||
|
3 years ago
|
if spellId == 407088 and self:GetStage(3, 1) then
|
||
|
3 years ago
|
self:SetStage(3)
|
||
|
3 years ago
|
warnPhase:Show(DBM_CORE_L.AUTO_ANNOUNCE_TEXTS.stage:format(3))
|
||
|
|
warnPhase:Play("pthree")
|
||
|
3 years ago
|
self.vb.RushingDarknessCount = 0
|
||
|
|
self.vb.tankCount = 0
|
||
|
3 years ago
|
timerCorruptionCD:Stop()
|
||
|
3 years ago
|
timerUmbralAnnihilationCD:Stop()
|
||
|
3 years ago
|
timerSunderShadowCD:Stop()
|
||
|
3 years ago
|
timerRushingDarknessCD:Stop()
|
||
|
|
timerVolcanicHeartCD:Stop()
|
||
|
3 years ago
|
self:Unschedule(fixBrokenHeartTimer)
|
||
|
2 years ago
|
timerRushingDarknessCD:Start(10.8, 1)--Start initial timer (you know, for the cast that's skipped 95% of time)
|
||
|
|
self:Schedule(15.8, checkForSkippedDarkness, self)--Schedule checker to see if the normally skipped cast happened, and if not, start backup timer for second cast
|
||
|
3 years ago
|
timerSunderRealityCD:Start(19.5, 1)
|
||
|
2 years ago
|
-- timerRushingDarknessCD:Start(27, 1)
|
||
|
2 years ago
|
timerCalamitousStrikeCD:Start(34.4, 1)
|
||
|
3 years ago
|
timerEbonDestructionCD:Start(40.2, 1)
|
||
|
3 years ago
|
--elseif spellId == 407182 then
|
||
|
|
-- if self.Options.SetIconOnRushingDarkness then
|
||
|
|
-- self:SetIcon(args.destName, 0)
|
||
|
|
-- end
|
||
|
|
-- if args:IsPlayer() then
|
||
|
|
-- yellRushingDarknessFades:Cancel()
|
||
|
|
-- end
|
||
|
|
--elseif spellId == 410966 then
|
||
|
|
-- if self.Options.SetIconOnVolcanicHeart then
|
||
|
|
-- self:SetIcon(args.destName, 0)
|
||
|
|
-- end
|
||
|
|
-- if args:IsPlayer() then
|
||
|
|
-- yellVolcanicHeartFades:Cancel()
|
||
|
|
-- end
|
||
|
3 years ago
|
elseif spellId == 407919 and args:IsPlayer() then
|
||
|
|
playerReality = false
|
||
|
3 years ago
|
end
|
||
|
|
end
|
||
|
|
|
||
|
3 years ago
|
function mod:SPELL_AURA_REMOVED_DOSE(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 407088 then
|
||
|
|
warnHidden:Show(args.amount or 1)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
3 years ago
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
||
|
|
if (spellId == 409058 or spellId == 404277 or spellId == 409183) and destGUID == UnitGUID("player") and self:AntiSpam(2, 4) then
|
||
|
|
specWarnGTFO:Show(spellName)
|
||
|
|
specWarnGTFO:Play("watchfeet")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
|
||
|
|
|