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.
623 lines
28 KiB
623 lines
28 KiB
local wowToc, testBuild = DBM:GetTOC()
|
|
if (wowToc < 100200) and not testBuild then return end
|
|
local mod = DBM:NewMod(2553, "DBM-Raids-Dragonflight", 1, 1207)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20231107021301")
|
|
mod:SetCreatureID(208445)
|
|
mod:SetEncounterID(2731)
|
|
mod:SetUsedIcons(6, 7, 8)
|
|
mod:SetHotfixNoticeRev(20231021000000)
|
|
mod:SetMinSyncRevision(20231021000000)
|
|
mod.respawnTime = 29
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 425889 426524 422614 418637 426206 417634 427252 427343 429973 421325",
|
|
"SPELL_CAST_SUCCESS 417653 419485 427299 428901",
|
|
"SPELL_AURA_APPLIED 425888 425468 420544 426387 423719 426249 426256 421316 427299 427306 421594 421407 418520 429032 428946 428901",
|
|
"SPELL_AURA_APPLIED_DOSE 426249 426256 421407 418520 429032 428946",
|
|
"SPELL_AURA_REMOVED 421316 427299 421594 428901",
|
|
-- "SPELL_AURA_REMOVED_DOSE",
|
|
"SPELL_PERIODIC_DAMAGE 417632",
|
|
"SPELL_PERIODIC_MISSED 417632",
|
|
"UNIT_DIED",
|
|
"INSTANCE_ENCOUNTER_ENGAGE_UNIT",
|
|
"UNIT_SPELLCAST_SUCCEEDED"
|
|
)
|
|
|
|
--[[
|
|
(ability.id = 425889 or ability.id = 426524 or ability.id = 422614 or ability.id = 418637 or ability.id = 426206 or ability.id = 417634 or ability.id = 427252 or ability.id = 427343 or ability.id = 429973 or ability.id = 421325) and type = "begincast"
|
|
or (ability.id = 417653 or ability.id = 419485 or ability.id = 427299 or ability.id = 428901) and type = "cast"
|
|
or ability.id = 421316 and (type = "applybuff" or type = "removebuff")
|
|
--]]
|
|
--TODO, repeat yells for igniting growth? depends on if it's few targets or everyone.
|
|
--TODO, https://www.wowhead.com/ptr-2/spell=426393/seed-of-life is probably cast on pull, so no reason to alert, unless cast more than once
|
|
--TODO, best way to track https://www.wowhead.com/ptr-2/spell=425531/dream-fatigue ? Infoframe?
|
|
--TODO, nameplate aura for 424997 on Seed of life? (IE do they have visible nameplates it'd be usefulf or)
|
|
--TODO, maybe infoframe for tracking Blazing Coal stacks?
|
|
--TODO, more with the tank stuff?
|
|
--General
|
|
local warnPhase = mod:NewPhaseChangeAnnounce(2, nil, nil, nil, nil, nil, 2)
|
|
|
|
local specWarnGTFO = mod:NewSpecialWarningGTFO(417632, nil, nil, nil, 1, 8)
|
|
|
|
--local berserkTimer = mod:NewBerserkTimer(600)
|
|
--Stage One: The Cycle of Flame
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(27241))
|
|
local warnForces = mod:NewCountAnnounce(417653, 3)
|
|
local warnBlisteringSplinters = mod:NewCountAnnounce(418520, 3, nil, nil, DBM_CORE_L.AUTO_ANNOUNCE_OPTIONS.stack:format(418520))--Player
|
|
--local warnDreamBlossom = mod:NewTargetNoFilterAnnounce(425468, 2, nil, false)--non filtered, but off by default
|
|
local warnScorchingRoots = mod:NewCountAnnounce(422614, 3)
|
|
local warnCharredTreant = mod:NewSpellAnnounce(417667, 2, nil, "Healer")
|
|
local warnRenewedTreant = mod:NewSpellAnnounce(417668, 1)
|
|
local warnScorchingBramblethorn = mod:NewTargetNoFilterAnnounce(426387, 2, nil, false)--Hella spammy. not to be defaulted
|
|
local warnNaturesBulwark = mod:NewSpellAnnounce(419485, 1)
|
|
local warnBlazingCoalescence = mod:NewCountAnnounce(426249, 2, nil, nil, DBM_CORE_L.AUTO_ANNOUNCE_OPTIONS.stack:format(426249))--Player
|
|
local warnBlazingCoalescenceBoss = mod:NewStackAnnounce(426256, 4)--Boss
|
|
local warnEverlastingBlaze = mod:NewCountAnnounce(429032, 4, nil, nil, DBM_CORE_L.AUTO_ANNOUNCE_OPTIONS.stack:format(429032))--Player
|
|
local warnAshenAsphyxiation = mod:NewStackAnnounce(428946, 3, nil, "Tank|Healer")
|
|
|
|
--local specWarnIgnitingGrowth = mod:NewSpecialWarningMoveAway(425888, nil, nil, nil, 1, 2, 4)
|
|
--local yellIgnitingGrowth = mod:NewShortYell(425888, nil, false)
|
|
--local specWarnDreamBlossom = mod:NewSpecialWarningYou(425468, nil, nil, nil, 1, 2)
|
|
--local yellDreamBlossom = mod:NewShortYell(425468, nil, false)
|
|
local specWarnFieryFlourish = mod:NewSpecialWarningInterruptCount(426524, "HasInterrupt", nil, nil, 1, 2)
|
|
--local specWarnScorchingPursuit = mod:NewSpecialWarningRun(420544, nil, nil, nil, 4, 2)--BW using 420546, but may change to 420544
|
|
--local yellScorchingPursuit = mod:NewShortYell(420544)
|
|
local specWarnScorchingBramblethorn = mod:NewSpecialWarningYou(426387, nil, nil, nil, 1, 2)
|
|
local specWarnFuriousCharge = mod:NewSpecialWarningRun(418637, nil, 100, nil, 4, 2)
|
|
local yellFuriousCharge = mod:NewShortYell(418637, 100)
|
|
local specWarnNaturesFury = mod:NewSpecialWarningTaunt(423719, nil, nil, nil, 1, 2)
|
|
local specWarnBlazingThornsSoak = mod:NewSpecialWarningSoakCount(426206, "-Healer", nil, nil, 1, 2)
|
|
local specWarnBlazingThornsAvoid = mod:NewSpecialWarningDodgeCount(426206, "-Healer", nil, nil, 1, 2)
|
|
local specWarnRagingInferno = mod:NewSpecialWarningMoveTo(417634, nil, 37625, nil, 3, 2)--Shortname Inferno
|
|
|
|
local timerIgnitingGrowthCD = mod:NewCDCountTimer(49, 425888, DBM_COMMON_L.POOLS.." (%s)", nil, nil, 3, nil, DBM_COMMON_L.MYTHIC_ICON)
|
|
local timerFieryForceofNatureCD = mod:NewCDCountTimer(11.8, 417653, DBM_COMMON_L.ADDS.." (%s)", nil, nil, 1)
|
|
local timerFieryFlourishCD = mod:NewCDNPTimer(11.8, 426524, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)--Nameplate only timer
|
|
local timerScorchingRootsCD = mod:NewCDCountTimer(49, 422614, DBM_COMMON_L.ROOTS.." (%s)", nil, nil, 3)
|
|
local timerFuriousChargeCD = mod:NewCDCountTimer(49, 418637, 100, nil, nil, 5, nil, DBM_COMMON_L.TANK_ICON)--SN "Charge"
|
|
local timerBlazingThornsCD = mod:NewCDCountTimer(49, 426206, DBM_COMMON_L.ORBS.." (%s)", nil, nil, 5, nil, DBM_COMMON_L.DAMAGE_ICON)
|
|
local timerRagingInfernoCD = mod:NewCDCountTimer(49, 417634, 37625, nil, nil, 2, nil, DBM_COMMON_L.DEADLY_ICON)--SN "Inferno"
|
|
|
|
mod:AddPrivateAuraSoundOption(425888, true, 425888, 1)--Igniting Growth
|
|
mod:AddPrivateAuraSoundOption(425468, true, 425468, 1)--Dream Blossom
|
|
mod:AddPrivateAuraSoundOption(420544, true, 420544, 4)--Scorching Pursuit
|
|
mod:AddSetIconOption("SetIconOnForces", 417653, true, 5, {8, 7, 6})
|
|
--Intermission: Unreborn Again
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(27242))
|
|
local warnConsumingFlame = mod:NewTargetNoFilterAnnounce(421316, 2)
|
|
|
|
local timerConsumingFlame = mod:NewBuffActiveTimer(16, 421316, nil, nil, nil, 6)
|
|
--Stage Two: Avatar of Ash
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(27243))
|
|
local warnFlashFire = mod:NewTargetNoFilterAnnounce(427299, 3, nil, "Healer")
|
|
local warnEncasedInAsh = mod:NewTargetNoFilterAnnounce(427306, 4, nil, "RemoveMagic")
|
|
local warnAshenCall = mod:NewCountAnnounce(421325, 2)
|
|
local warnSearingAsh = mod:NewCountAnnounce(421407, 2, nil, nil, DBM_CORE_L.AUTO_ANNOUNCE_OPTIONS.stack:format(426249))
|
|
--local warnAshenDevastation = mod:NewTargetNoFilterAnnounce(428901, 4, nil, nil, 167180)--Shortname "Bombs"
|
|
|
|
local specWarnFallingEmbers = mod:NewSpecialWarningSoakCount(427252, nil, nil, nil, 2, 2)
|
|
local specWarnFlashFire = mod:NewSpecialWarningMoveAway(427299, nil, nil, nil, 1, 2)--Blizzard didn't flag right spellids as private aura, so this probably still works for now
|
|
local yellFlashFire = mod:NewShortYell(427299)--Blizzard didn't flag right spellids as private aura, so this probably still works for now
|
|
local yellFlashFireFades = mod:NewShortFadesYell(427299)--Blizzard didn't flag right spellids as private aura, so this probably still works for now
|
|
local specWarnEncasedInAsh = mod:NewSpecialWarningYou(427306, nil, nil, nil, 1, 2)
|
|
local yellEncasedInAsh = mod:NewShortYell(427306)
|
|
local specWarnFireWhirl = mod:NewSpecialWarningDodgeCount(427343, nil, 86189, nil, 2, 2)
|
|
local specWarnSmolderingBackdraft = mod:NewSpecialWarningDefensive(429973, nil, nil, nil, 1, 2)
|
|
local specWarnSmolderingSuffocation = mod:NewSpecialWarningTaunt(421594, nil, nil, nil, 1, 2)
|
|
local yellSmolderingSuffocationRepeater = mod:NewIconRepeatYell(421594, DBM_CORE_L.AUTO_YELL_ANNOUNCE_TEXT.shortyell, false, nil, "YELL")--using custom yell text "%s" because of custom needs (it has to use not only icons but two asci emoji
|
|
--local specWarnAshenDevestation = mod:NewSpecialWarningMoveAway(428901, nil, 37859, nil, 1, 2, 4)
|
|
--local yellAshenDevestation = mod:NewShortYell(428901, 37859)--Shortname "Bomb"
|
|
--local yellAshenDevestationFades = mod:NewShortFadesYell(428901)
|
|
|
|
local timerFallingEmbersCD = mod:NewCDCountTimer(49, 427252, nil, nil, nil, 5, nil, DBM_COMMON_L.DEADLY_ICON)
|
|
local timerFlashFireCD = mod:NewCDCountTimer(49, 427299, L.HealAbsorb, nil, nil, 3)
|
|
local timerFireWhirlCD = mod:NewCDCountTimer(50, 427343, 86189, nil, nil, 3)--Shortname "Tornados"
|
|
local timerSmolderingBackdraftCD = mod:NewCDCountTimer(49, 429973, DBM_COMMON_L.FRONTAL.." (%s)", nil, nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
local timerAshenCallCD = mod:NewCDCountTimer(11.8, 421325, DBM_COMMON_L.ADDS.." (%s)", nil, nil, 1, nil, DBM_COMMON_L.DAMAGE_ICON)
|
|
local timerAshenDevestationCD = mod:NewCDCountTimer(49, 428901, nil, nil, nil, 3, nil, DBM_COMMON_L.MYTHIC_ICON)
|
|
|
|
mod:AddPrivateAuraSoundOption(421461, true, 427299, 1)--Flash Fire
|
|
mod:AddPrivateAuraSoundOption(428901, true, 428901, 1)--Ashen Devestation
|
|
|
|
--Stage 1
|
|
mod.vb.ignitingCount = 0--Reused in stage 2 for Ashen Devestation
|
|
mod.vb.forcesCount = 0--Reused in Stage 2 for Ashen Call
|
|
mod.vb.treeIcon = 8
|
|
mod.vb.scorchingRootCount = 0--Reused in Stage 2 for Falling Embers
|
|
mod.vb.furiousChargeCount = 0--Reused in Stage 2 for Smoldering Backdraft
|
|
mod.vb.thornsCount = 0--Reused in Stage 2 for Flash Fire
|
|
mod.vb.infernoCount = 0--Reused in Stage 2 for Fire Whirl
|
|
|
|
local castsPerGUID = {}
|
|
local difficultyName = "normal"
|
|
local allTimers = {
|
|
["mythic"] = {
|
|
--Stage 1
|
|
--Fiery Force of Nature
|
|
[417653] = {6.5, 114.9, 109.6, 115.0},
|
|
--Blazing Thorns
|
|
[426206] = {31.3, 24.7, 24.7, 46.3, 65.6, 63.2, 24.7, 24.7, 46.5, 65.5},
|
|
--Furious Charge
|
|
[418637] = {22.3, 22.4, 22.5, 46.5, 22.2, 31.1, 13.4, 66.5, 22.4, 22.5, 46.6, 22.3, 31.1, 13.3},
|
|
--Scorching Roots
|
|
[422614] = {38.0, 120.0, 104.5, 120.2},
|
|
--Raging Inferno
|
|
[417634] = {101.3, 111.6, 112.1, 111.9},
|
|
--Igniting Growth (Mythic Only)
|
|
[425889] = {14.5, 133.6, 90.2, 133.9},
|
|
--Stage 2
|
|
--Falling Embers
|
|
[427252] = {},--Had no variations
|
|
--FlashFire
|
|
[427299] = {},--Lowest of each used until can figure out how to detect which sequence is used on demand
|
|
--Fire Whirl
|
|
[427343] = {},--Had no variation
|
|
--Smoldering backdraft
|
|
[421318] = {},--Had no variations
|
|
--Ashen Call
|
|
[421325] = {},--Lowest of each used until can figure out how to detect which sequence is used on demand
|
|
--Ashen Devestation
|
|
[428901] = {},--Lowest of each used until can figure out how to detect which sequence is used on demand
|
|
},
|
|
["heroic"] = {
|
|
--Stage 1 (same as mythic stage 1 likely)
|
|
--Fiery Force of Nature
|
|
[417653] = {6.7, 115.4, 110.3},
|
|
--6.7, 118.6
|
|
--Blazing Thorns
|
|
[426206] = {31.4, 24.8, 24.5, 46.8, 65.5},
|
|
--31.6, 24.6, 24.6, 50.1, 65.6
|
|
--Furious Charge
|
|
[418637] = {22.5, 22.3, 22.4, 46.9, 22.2, 31.3, 13.3, 67.0},
|
|
--22.6, 22.3, 22.4, 50.2, 22.2, 31.1, 13.3
|
|
--Scorching Roots
|
|
[422614] = {38.1, 120.5},
|
|
--38.1, 123.9
|
|
--Raging Inferno
|
|
[417634] = {101.7, 112.8},
|
|
--104.2
|
|
--Stage 2
|
|
--Falling Embers
|
|
[427252] = {7.4, 26.7, 25.0, 23.3, 30.0, 20.0, 25.0, 25.0, 25.0, 26.7, 23.3},
|
|
--7.4, 26.7, 25.0, 23.3, 30.1, 20.0, 25.0, 25.0, 25.0, 26.7, 23.3
|
|
--FlashFire
|
|
[427299] = {29.1, 46.7, 26.6, 36.7, 30.9, 37.5, 37.5},--Lowest times used of variations
|
|
--29.1, 46.7, 26.6, 36.7, 36.7, 37.5
|
|
--29.1, 46.7, 26.6, 42.5, 30.9, 37.5, 37.5
|
|
--Fire Whirl
|
|
[427343] = {54.0, 40.9, 32.5, 36.6, 36.7, 39.1},
|
|
--54.1, 40.9, 32.4, 36.7, 36.6, 39.2
|
|
--Smoldering backdraft
|
|
[429973] = {14.0, 25.9, 30.0, 19.1, 29.2, 20.7, 25.0, 24.2, 25.0, 26.7},--Lowest times used of variations
|
|
--14.0, 25.9, 30.0, 19.2, 29.2, 25.8, 25.0, 24.2, 25.0, 26.7
|
|
--14.1, 25.9, 30.0, 19.1, 29.2, 20.7, 30.0, 24.1, 25.0, 26.7
|
|
--Ashen Call
|
|
[421325] = {20.7, 44.2, 42.5, 42.5, 38.3, 40.8},
|
|
--20.7, 44.2, 42.5, 42.5, 38.3, 40.8
|
|
},
|
|
["normal"] = {--Likely obsolete and the same as heroic
|
|
--Stage 1
|
|
--Fiery Force of Nature
|
|
[417653] = {6.0, 113.4, 44.0, 64.7, 114.5},
|
|
--Blazing Thorns
|
|
[426206] = {14.0, 36.0, 74.5, 111.6, 36.0, 75.6},
|
|
--Furious Charge
|
|
[418637] = {20.0, 20.0, 20.0, 52.5, 19.9, 19.9, 20.0, 69.6, 20.0, 20.0, 53.5},
|
|
--Scorching Roots
|
|
[422614] = {30.1, 113.3, 108.7},
|
|
--Raging Inferno
|
|
[417634] = {100, 110.6, 111.6},
|
|
--Stage 2
|
|
--Falling Embers
|
|
[427252] = {7.3, 35.0, 20.0, 33.4, 16.7, 33.4, 25.0, 33.4, 16.7, 33.4, 16.7, 41.7, 16.7, 33.4, 16.7, 33.4},
|
|
--FlashFire
|
|
[427299] = {34.0, 45.0, 41.8, 41.8, 50.1, 50.2, 41.7, 41.7, 41.8},
|
|
--Fire Whirl
|
|
[427343] = {54.0, 50.1, 50.2, 41.7, 41.8, 41.8, 41.7, 50.1},
|
|
--Smoldering backdraft
|
|
[429973] = {17.3, 53.3, 58.5, 50.1, 50.1, 58.5, 50.0, 58.5},
|
|
--Ashen Call
|
|
[421325] = {25.7, 61.7, 50.1, 50.1, 58.5, 50.1, 58.4, 50.1},
|
|
},
|
|
}
|
|
|
|
local function smolderingYellRepeater(self)
|
|
local health = UnitHealth("player") / UnitHealthMax("player") * 100
|
|
if health < 75 then -- Only let players know when you are below 75%
|
|
local playerIcon = GetRaidTargetIndex("player")
|
|
local text = playerIcon and L.currentHealthIcon:format(playerIcon, health) or L.currentHealth:format(health)
|
|
yellSmolderingSuffocationRepeater:Yell(text)
|
|
end
|
|
self:Schedule(2, smolderingYellRepeater, self)
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self:SetStage(1)
|
|
self.vb.ignitingCount = 0
|
|
self.vb.forcesCount = 0
|
|
self.vb.scorchingRootCount = 0
|
|
self.vb.furiousChargeCount = 0
|
|
self.vb.thornsCount = 0
|
|
self.vb.infernoCount = 0
|
|
table.wipe(castsPerGUID)
|
|
self:EnablePrivateAuraSound(425888, "runout", 2)--Igniting Growth
|
|
self:EnablePrivateAuraSound(425468, "targetyou", 2)--Dream Blossom. Bad sound, needs better?
|
|
self:EnablePrivateAuraSound(420544, "justrun", 2)--Scorching Pursuit
|
|
self:EnablePrivateAuraSound(421461, "runout", 2)--Flash Fire
|
|
self:EnablePrivateAuraSound(428901, "runout", 2)--Ashen Devastation
|
|
if self:IsMythic() then
|
|
difficultyName = "mythic"
|
|
timerFieryForceofNatureCD:Start(6.5-delay, 1)
|
|
timerIgnitingGrowthCD:Start(14.4-delay, 1)
|
|
timerFuriousChargeCD:Start(22.3-delay, 1)
|
|
timerBlazingThornsCD:Start(31.3-delay, 1)
|
|
timerScorchingRootsCD:Start(38-delay, 1)
|
|
timerRagingInfernoCD:Start(101-delay, 1)
|
|
elseif self:IsHeroic() then
|
|
--Pretty much same as mythic
|
|
difficultyName = "heroic"
|
|
timerFieryForceofNatureCD:Start(6.5-delay, 1)
|
|
timerIgnitingGrowthCD:Start(14.4-delay, 1)
|
|
timerFuriousChargeCD:Start(22.3-delay, 1)
|
|
timerBlazingThornsCD:Start(31.3-delay, 1)
|
|
timerScorchingRootsCD:Start(38-delay, 1)
|
|
timerRagingInfernoCD:Start(101-delay, 1)
|
|
else--Only normal vetted
|
|
difficultyName = "normal"
|
|
timerFieryForceofNatureCD:Start(6.1-delay, 1)
|
|
timerBlazingThornsCD:Start(14-delay, 1)
|
|
timerFuriousChargeCD:Start(20-delay, 1)
|
|
timerScorchingRootsCD:Start(30.1-delay, 1)
|
|
timerRagingInfernoCD:Start(100-delay, 1)
|
|
end
|
|
end
|
|
|
|
--function mod:OnCombatEnd()
|
|
-- if self.Options.RangeFrame then
|
|
-- DBM.RangeCheck:Hide()
|
|
-- end
|
|
--end
|
|
|
|
function mod:OnTimerRecovery()
|
|
if self:IsMythic() then
|
|
difficultyName = "mythic"
|
|
elseif self:IsHeroic() then
|
|
difficultyName = "heroic"
|
|
-- elseif self:IsNormal() then
|
|
-- difficultyName = "normal"
|
|
else
|
|
-- difficultyName = "lfr"
|
|
difficultyName = "normal"
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 425889 then
|
|
self.vb.ignitingCount = self.vb.ignitingCount + 1
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.ignitingCount+1)
|
|
if timer then
|
|
timerIgnitingGrowthCD:Start(timer, self.vb.ignitingCount+1)
|
|
end
|
|
elseif spellId == 426524 then
|
|
-- timerFieryFlourishCD:Start(nil, args.sourceGUID)
|
|
if not castsPerGUID[args.sourceGUID] then--Shouldn't happen, but just in case
|
|
castsPerGUID[args.sourceGUID] = 0
|
|
if self.Options.SetIconOnForces then
|
|
self:ScanForMobs(args.sourceGUID, 2, self.vb.treeIcon, 1, nil, 12, "SetIconOnForces")
|
|
end
|
|
self.vb.treeIcon = self.vb.treeIcon - 1
|
|
end
|
|
castsPerGUID[args.sourceGUID] = castsPerGUID[args.sourceGUID] + 1
|
|
local count = castsPerGUID[args.sourceGUID]
|
|
if self:CheckInterruptFilter(args.sourceGUID, false, false) then--Count interrupt, so cooldown is not checked
|
|
specWarnFieryFlourish:Show(args.sourceName, count)
|
|
if count < 6 then
|
|
specWarnFieryFlourish:Play("kick"..count.."r")
|
|
else
|
|
specWarnFieryFlourish:Play("kickcast")
|
|
end
|
|
end
|
|
elseif spellId == 422614 then
|
|
self.vb.scorchingRootCount = self.vb.scorchingRootCount + 1
|
|
warnScorchingRoots:Show(self.vb.scorchingRootCount)
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.scorchingRootCount+1)
|
|
if timer then
|
|
timerScorchingRootsCD:Start(timer, self.vb.scorchingRootCount+1)
|
|
end
|
|
elseif spellId == 418637 then
|
|
self.vb.furiousChargeCount = self.vb.furiousChargeCount + 1
|
|
if self:IsTanking("player", "boss1", nil, true) then
|
|
specWarnFuriousCharge:Show()
|
|
specWarnFuriousCharge:Play("justrun")
|
|
yellFuriousCharge:Yell()
|
|
end
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.furiousChargeCount+1) or 20
|
|
if timer then
|
|
timerFuriousChargeCD:Start(timer, self.vb.furiousChargeCount+1)
|
|
end
|
|
elseif spellId == 426206 then
|
|
self.vb.thornsCount = self.vb.thornsCount + 1
|
|
if DBM:UnitDebuff("player", 429032) then--Everlasting Blaze
|
|
specWarnBlazingThornsAvoid:Show(self.vb.thornsCount)
|
|
specWarnBlazingThornsAvoid:Play("watchstep")
|
|
else
|
|
specWarnBlazingThornsSoak:Show(self.vb.thornsCount)
|
|
specWarnBlazingThornsSoak:Play("helpsoak")
|
|
end
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.thornsCount+1)
|
|
if timer then
|
|
timerBlazingThornsCD:Start(timer, self.vb.thornsCount+1)
|
|
end
|
|
elseif spellId == 417634 then
|
|
self.vb.infernoCount = self.vb.infernoCount + 1
|
|
specWarnRagingInferno:Show(DBM_COMMON_L.SHIELD)
|
|
specWarnRagingInferno:Play("findshield")
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.infernoCount+1) or 110.6
|
|
if timer then
|
|
timerRagingInfernoCD:Start(timer, self.vb.infernoCount+1)
|
|
end
|
|
elseif spellId == 427252 then
|
|
self.vb.scorchingRootCount = self.vb.scorchingRootCount + 1
|
|
specWarnFallingEmbers:Show(self.vb.scorchingRootCount)
|
|
specWarnFallingEmbers:Play("helpsoak")
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.scorchingRootCount+1)
|
|
if timer then
|
|
timerFallingEmbersCD:Start(timer, self.vb.scorchingRootCount+1)
|
|
end
|
|
elseif spellId == 427343 then
|
|
self.vb.infernoCount = self.vb.infernoCount + 1
|
|
specWarnFireWhirl:Show(self.vb.infernoCount)
|
|
specWarnFireWhirl:Play("watchstep")
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.infernoCount+1)
|
|
if timer then
|
|
timerFireWhirlCD:Start(timer, self.vb.infernoCount+1)
|
|
end
|
|
elseif spellId == 429973 then
|
|
self.vb.furiousChargeCount = self.vb.furiousChargeCount + 1
|
|
if self:IsTanking("player", "boss1", nil, true) then
|
|
specWarnSmolderingBackdraft:Show()
|
|
specWarnSmolderingBackdraft:Play("defensive")
|
|
end
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.furiousChargeCount+1)
|
|
if timer then
|
|
timerSmolderingBackdraftCD:Start(timer, self.vb.furiousChargeCount+1)
|
|
end
|
|
elseif spellId == 421325 then
|
|
self.vb.forcesCount = self.vb.forcesCount + 1
|
|
warnAshenCall:Show(self.vb.forcesCount)
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.forcesCount+1)
|
|
if timer then
|
|
timerAshenCallCD:Start(timer, self.vb.forcesCount+1)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 417653 then
|
|
self.vb.forcesCount = self.vb.forcesCount + 1
|
|
warnForces:Show(self.vb.forcesCount)
|
|
self.vb.treeIcon = 8
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.forcesCount+1)
|
|
if timer then
|
|
timerFieryForceofNatureCD:Start(timer, self.vb.forcesCount+1)
|
|
end
|
|
elseif spellId == 419485 then
|
|
--event fires for every player moving in and out of it, we just want to announce barrier is up per root, once
|
|
if not castsPerGUID[args.sourceGUID] then
|
|
castsPerGUID[args.sourceGUID] = 0
|
|
warnNaturesBulwark:Show()
|
|
end
|
|
elseif spellId == 427299 and self:AntiSpam(5, 1) then
|
|
self.vb.thornsCount = self.vb.thornsCount + 1
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.thornsCount+1)
|
|
if timer then
|
|
timerFlashFireCD:Start(timer, self.vb.thornsCount+1)
|
|
end
|
|
elseif spellId == 428901 and self:AntiSpam(5, 2) then
|
|
self.vb.ignitingCount = self.vb.ignitingCount + 1
|
|
local timer = self:GetFromTimersTable(allTimers, difficultyName, false, spellId, self.vb.ignitingCount+1)
|
|
if timer then
|
|
timerAshenDevestationCD:Start(timer, self.vb.ignitingCount+1)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 426387 then
|
|
if args:IsPlayer() then
|
|
specWarnScorchingBramblethorn:Show()
|
|
specWarnScorchingBramblethorn:Play("targetyou")
|
|
else
|
|
warnScorchingBramblethorn:Show(args.destName)
|
|
end
|
|
-- elseif spellId == 425888 then
|
|
-- if args:IsPlayer() then
|
|
-- specWarnIgnitingGrowth:Show()
|
|
-- specWarnIgnitingGrowth:Play("runout")
|
|
-- yellIgnitingGrowth:Yell()
|
|
-- end
|
|
-- elseif spellId == 425468 then
|
|
-- if args:IsPlayer() then
|
|
-- specWarnDreamBlossom:Show()
|
|
-- specWarnDreamBlossom:Play("targetyou")
|
|
-- yellDreamBlossom:Yell()
|
|
-- else
|
|
-- warnDreamBlossom:Show(args.destName)
|
|
-- end
|
|
-- elseif spellId == 420544 then
|
|
-- if args:IsPlayer() then
|
|
-- specWarnScorchingPursuit:Show()
|
|
-- specWarnScorchingPursuit:Play("justrun")
|
|
-- yellScorchingPursuit:Yell()
|
|
-- end
|
|
elseif spellId == 423719 and not args:IsPlayer() then
|
|
local uId = DBM:GetRaidUnitId(args.destName)
|
|
if self:IsTanking(uId) then--May be unnessesary, but precaution for a drycode, remove later
|
|
specWarnNaturesFury:Show(args.destName)
|
|
specWarnNaturesFury:Play("tauntboss")
|
|
end
|
|
elseif spellId == 421594 then
|
|
if args:IsPlayer() then
|
|
self:Unschedule(smolderingYellRepeater)
|
|
self:Schedule(2, smolderingYellRepeater, self)
|
|
else
|
|
local uId = DBM:GetRaidUnitId(args.destName)
|
|
if self:IsTanking(uId) then
|
|
specWarnSmolderingSuffocation:Show(args.destName)
|
|
specWarnSmolderingSuffocation:Play("tauntboss")
|
|
end
|
|
end
|
|
elseif spellId == 426249 then
|
|
if args:IsPlayer() then
|
|
-- warnBlazingCoalescence:Cancel()
|
|
-- warnBlazingCoalescence:Schedule(1, args.amount or 1)
|
|
warnBlazingCoalescence:Show(args.amount or 1)
|
|
end
|
|
elseif spellId == 429032 then
|
|
if args:IsPlayer() then
|
|
warnEverlastingBlaze:Cancel()
|
|
warnEverlastingBlaze:Schedule(1, args.amount or 1)
|
|
end
|
|
elseif spellId == 418520 then
|
|
if args:IsPlayer() then
|
|
local amount = args.amount or 1
|
|
if amount % 2 == 1 then -- 1, 3, 5...
|
|
warnBlisteringSplinters:Show(amount)
|
|
end
|
|
end
|
|
elseif spellId == 421407 then
|
|
warnSearingAsh:Show(args.amount or 1)
|
|
elseif spellId == 426256 then
|
|
warnBlazingCoalescenceBoss:Show(args.destName, args.amount or 1)
|
|
elseif spellId == 427299 then
|
|
warnFlashFire:CombinedShow(0.5, args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnFlashFire:Show()
|
|
specWarnFlashFire:Play("runout")
|
|
specWarnFlashFire:Yell()
|
|
yellFlashFireFades:Countdown(spellId)
|
|
end
|
|
-- elseif spellId == 428901 then
|
|
-- warnAshenDevastation:CombinedShow(0.5, args.destName)
|
|
-- if args:IsPlayer() then
|
|
-- specWarnAshenDevestation:Show()
|
|
-- specWarnAshenDevestation:Play("runout")
|
|
-- yellAshenDevestation:Yell()
|
|
-- yellAshenDevestationFades:Countdown(spellId)
|
|
-- end
|
|
elseif spellId == 427306 then
|
|
warnEncasedInAsh:CombinedShow(0.5, args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnEncasedInAsh:Show()
|
|
specWarnEncasedInAsh:Play("targetyou")
|
|
yellEncasedInAsh:Yell()
|
|
end
|
|
elseif spellId == 428946 then
|
|
warnAshenAsphyxiation:Show(args.destName, args.amount or 1)
|
|
elseif spellId == 421316 then--Consuming Flame
|
|
self:SetStage(1.5)
|
|
timerFieryForceofNatureCD:Stop()
|
|
timerScorchingRootsCD:Stop()
|
|
timerFuriousChargeCD:Stop()
|
|
timerBlazingThornsCD:Stop()
|
|
timerRagingInfernoCD:Stop()
|
|
timerIgnitingGrowthCD:Stop()
|
|
warnConsumingFlame:Show(args.destName)
|
|
timerConsumingFlame:Start()
|
|
end
|
|
end
|
|
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 421316 then--Consuming Flame
|
|
self:SetStage(2)
|
|
self.vb.ignitingCount = 0--Reused in stage 2 for Ashen Devestation
|
|
self.vb.scorchingRootCount = 0--Reused in stage 2 for Fallen Embers
|
|
self.vb.forcesCount = 0--Reused in Stage 2 for Ashen Call
|
|
self.vb.furiousChargeCount = 0--Reused in Stage 2 for Smoldering Backdraft
|
|
self.vb.thornsCount = 0--Reused in Stage 2 for Flash Fire
|
|
self.vb.infernoCount = 0--Reused in Stage 2 for Fire Whirl
|
|
timerConsumingFlame:Stop()
|
|
warnPhase:Show(DBM_CORE_L.AUTO_ANNOUNCE_TEXTS.stage:format(2))
|
|
warnPhase:Play("ptwo")
|
|
if self:IsMythic() then
|
|
timerFallingEmbersCD:Start(7.4, 1)
|
|
timerSmolderingBackdraftCD:Start(14.1, 1)
|
|
timerAshenCallCD:Start(20.8, 1)
|
|
timerFlashFireCD:Start(29, 1)
|
|
timerAshenDevestationCD:Start(47.4, 1)
|
|
timerFireWhirlCD:Start(60, 1)
|
|
elseif self:IsHeroic() then
|
|
timerFallingEmbersCD:Start(7.4, 1)
|
|
timerSmolderingBackdraftCD:Start(14, 1)
|
|
timerAshenCallCD:Start(20.7, 1)
|
|
timerFlashFireCD:Start(29.1, 1)
|
|
timerFireWhirlCD:Start(54, 1)
|
|
else--Normal needs rechecking. Ashen and smoldering likely changed to match mythic and heroic
|
|
timerFallingEmbersCD:Start(7.3, 1)
|
|
timerSmolderingBackdraftCD:Start(17.3, 1)--14?
|
|
timerAshenCallCD:Start(25.7, 1)--20.7?
|
|
timerFlashFireCD:Start(34, 1)--29?
|
|
timerFireWhirlCD:Start(54, 1)
|
|
end
|
|
elseif spellId == 421594 then
|
|
if args:IsPlayer() then
|
|
self:Unschedule(smolderingYellRepeater)
|
|
end
|
|
end
|
|
end
|
|
--mod.SPELL_AURA_REMOVED_DOSE = mod.SPELL_AURA_REMOVED
|
|
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
if spellId == 417632 and destGUID == UnitGUID("player") and self:AntiSpam(3, 3) then
|
|
specWarnGTFO:Show(spellName)
|
|
specWarnGTFO:Play("watchfeet")
|
|
end
|
|
end
|
|
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 208459 then--fiery-treant
|
|
timerFieryFlourishCD:Stop(args.destGUID)
|
|
end
|
|
end
|
|
|
|
function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT()
|
|
for i = 1, 5 do
|
|
local unitID = "boss"..i
|
|
local GUID = UnitGUID(unitID)
|
|
if GUID and not castsPerGUID[GUID] then
|
|
castsPerGUID[GUID] = 0
|
|
local cid = self:GetCIDFromGUID(GUID)
|
|
if cid == 208459 then--Fiery Treant
|
|
timerFieryFlourishCD:Start(4, GUID)
|
|
if self.Options.SetIconOnForces then
|
|
self:ScanForMobs(GUID, 2, self.vb.treeIcon, 1, nil, 12, "SetIconOnForces")
|
|
end
|
|
self.vb.treeIcon = self.vb.treeIcon - 1
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
--"<36.79 01:24:52> [UNIT_SPELLCAST_SUCCEEDED] Scorching Roots(0.0%-0.0%){Target:Luxvertwo} -Charred Brambles- [[nameplate7:Cast-3-5770-2549-63-418655-00198E2244:418655]]",
|
|
--"<51.80 01:25:07> [UNIT_SPELLCAST_SUCCEEDED] Charred Brambles(100.0%-0.0%){Target:??} -Renewed Bramble Barrier- [[nameplate7:Cast-3-5770-2549-63-418653-00280E2253:418653]]",
|
|
--"<51.81 01:25:08> [UNIT_SPELLCAST_SUCCEEDED] Renewed Bramble Barrier(100.0%-0.0%){Target:??} -Nature's Bulwark- [[nameplate7:Cast-3-5770-2549-63-419485-002A8E2253:419485]]",
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
|
if spellId == 417667 and self:AntiSpam(3, 4) then
|
|
warnCharredTreant:Show()
|
|
elseif spellId == 417668 and self:AntiSpam(3, 5) then
|
|
warnRenewedTreant:Show()
|
|
elseif spellId == 418655 and self:AntiSpam(3, 6) then
|
|
--Roots healing warning
|
|
end
|
|
end
|
|
|