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.
768 lines
36 KiB
768 lines
36 KiB
local mod = DBM:NewMod(2491, "DBM-VaultoftheIncarnates", nil, 1200)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20221021202926")
|
|
mod:SetCreatureID(184986)
|
|
mod:SetEncounterID(2605)
|
|
mod:SetUsedIcons(1, 2, 3, 4, 5, 6, 7, 8)
|
|
--mod:SetHotfixNoticeRev(20220322000000)
|
|
--mod:SetMinSyncRevision(20211203000000)
|
|
--mod.respawnTime = 29
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 390548 373678 382563 373487 374022 372456 375450 374691 374215 376669 374427 374430 374623 374624 374622 391019 392125 392192 392152 391268 393314 393295 393296 392098 393459 391267 393429 395893",
|
|
"SPELL_CAST_SUCCESS 373415",
|
|
"SPELL_SUMMON 374935 374931 374939 374943 393295 392098 393459",
|
|
"SPELL_AURA_APPLIED 371971 372158 373487 372458 372514 372517 374779 374380 374427 391056 390921 391419 391265 396109 396113 396106 396085 396241",
|
|
"SPELL_AURA_APPLIED_DOSE 372158 374321",
|
|
"SPELL_AURA_REMOVED 371971 373487 373494 372458 372514 374779 374380 374427 390921 391419 391265 391056",
|
|
"SPELL_PERIODIC_DAMAGE 374554 391555",
|
|
"SPELL_PERIODIC_MISSED 374554 391555",
|
|
"UNIT_DIED",
|
|
"UNIT_SPELLCAST_SUCCEEDED boss1"
|
|
)
|
|
|
|
--TODO, also add a stack too high warning on https://www.wowhead.com/beta/spell=373535/lightning-crash when strategies and tuning are established
|
|
--TODO, See how things play out with WA/BW on handling some of this bosses mechanics, right now drycode is steering clear of computational/solving for things and sticking to just showing them
|
|
--TODO, is https://www.wowhead.com/beta/npc=190807/seismic-rupture tangible or invisible script bunny
|
|
--TODO, is https://www.wowhead.com/beta/npc=190586/seismic-pillar tangible/in need of killing or no?
|
|
--TODO, GTFO https://www.wowhead.com/beta/spell=374705/seismic-rupture ?
|
|
--TODO, revisit thunder strike automation. May want to combine warnings to generalized warning instead of saying soak/avoid
|
|
--TODO, target scan https://www.wowhead.com/beta/spell=374622/storm-front ?
|
|
--TODO, announce https://www.wowhead.com/beta/spell=391555/raging-inferno spawns on mythic? They spawn from Searing
|
|
--TODO, smart change checker for https://www.wowhead.com/beta/spell=391272/icy-tempest on mythic
|
|
--TODO, is Sundering smash (391268) dodgable by tank? is it even aimed at tank?
|
|
--TODO, the abilities that are used by boss and add during stage 1/3, review if they are cast independantly and need independant Cds or if they're just cast at same time
|
|
--TODO, verify Dark Clouds mechanic on mythic
|
|
--TODO, add https://www.wowhead.com/beta/spell=374321/breaking-gravel if requires an actual tank swap to clear
|
|
--[[
|
|
(ability.id = 390548 or ability.id = 373678 or ability.id = 382563 or ability.id = 392125 or ability.id = 373487
|
|
or ability.id = 374022 or ability.id = 392192 or ability.id = 392152 or ability.id = 372456 or ability.id = 375450 or ability.id = 395893
|
|
or ability.id = 374691 or ability.id = 376669 or ability.id = 374215 or ability.id = 374427 or ability.id = 374430 or ability.id = 390920
|
|
or ability.id = 374623 or ability.id = 374624 or ability.id = 374622 or ability.id = 391019 or ability.id = 391055
|
|
or ability.id = 391268 or ability.id = 393314 or ability.id = 393309 or ability.id = 393295
|
|
or ability.id = 393296 or ability.id = 392098 or ability.id = 393459 or ability.id = 391267 or ability.id = 393429) and type = "begincast"
|
|
or ability.id = 373415 and type = "cast" or ability.id = 396241 and type = "applybuff"
|
|
or ability.id = 374779
|
|
--]]
|
|
--General
|
|
local specWarnGTFO = mod:NewSpecialWarningGTFO(374554, nil, nil, nil, 1, 8)
|
|
|
|
--local berserkTimer = mod:NewBerserkTimer(600)
|
|
|
|
--Stage One: Elemental Mastery
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25036))
|
|
--local warnElementalShift = mod:NewSpellAnnounce(374861, 3)--Cast not logged, so removed for now
|
|
local warnSplinteredBones = mod:NewStackAnnounce(372158, 2, nil, "Tank|Healer")
|
|
|
|
local specWarnSunderStrike = mod:NewSpecialWarningDefensive(390548, nil, nil, nil, 1, 2)
|
|
local specWarnSplinteredBones = mod:NewSpecialWarningTaunt(372158, nil, nil, nil, 1, 2)
|
|
|
|
local timerSunderStrikeCD = mod:NewCDTimer(30.3, 390548, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
--General timers for handling of bosses ability rotation
|
|
local timerDamageCD = mod:NewTimer(30, "timerDamageCD", 391096, nil, nil, 3)--Magma Burst, Biting Chill, Enveloping Earth, Lightning Crash
|
|
local timerAvoidCD = mod:NewTimer(60, "timerAvoidCD", 391100, nil, nil, 3)--Molten Rupture, Frigid Torrent, Erupting Bedrock, Shocking Burst
|
|
local timerUltimateCD = mod:NewTimer(60, "timerUltimateCD", 374680, nil, nil, 3)--Searing Carnage, Absolute Zero, Seismic Rupture, Thunder Strike
|
|
local timerAddsCD = mod:NewAddsTimer(60, 393314, nil, nil, nil, 1, nil, DBM_COMMON_L.MYTHIC_ICON)--60-66, blizz might have been playing with energy gains, or it's just that bad due to queuing
|
|
|
|
--mod:AddInfoFrameOption(361651, true)
|
|
mod:AddSetIconOption("SetIconOnLightningCrash", 373487, false, false, {1, 2, 3, 4, 5, 6, 7, 8})
|
|
mod:AddNamePlateOption("NPAuraOnSurge", 371971, true)
|
|
|
|
mod:GroupSpells(390548, 372158)--Tank cast with tank debuff
|
|
--Fire Altar An altar of primal fire
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25040))
|
|
--local warnBlisteringDominance = mod:NewStackAnnounce(374881, 2)
|
|
--local warnSearingCarnage = mod:NewTargetNoFilterAnnounce(374022, 3)
|
|
|
|
local specWarnMagmaBurst = mod:NewSpecialWarningDodge(382563, nil, nil, nil, 2, 2)
|
|
local specWarnMoltenRupture = mod:NewSpecialWarningDodge(373329, nil, nil, nil, 2, 2)
|
|
local specWarnSearingCarnage = mod:NewSpecialWarningDodge(374022, nil, nil, nil, 2, 2)--Just warn everyone since it targets most of raid, even if it's not on YOU, you need to avoid it
|
|
|
|
----Mythic Only (Flamewrought Eradicator)
|
|
local specWarnFlamewroughtEradicator = mod:NewSpecialWarningSwitch(393314, "-Healer", nil, nil, 1, 2)
|
|
local specWarnSunderingFlame = mod:NewSpecialWarningDodge(393309, nil, nil, nil, 2, 2)
|
|
|
|
local timerFlamewroughtEradicatorCD = mod:NewAITimer(35, 393314, nil, nil, nil, 1, nil, DBM_COMMON_L.MYTHIC_ICON)--Granyth Ability Selection
|
|
local timerSunderingFlameCD = mod:NewAITimer(35, 393309, nil, nil, nil, 3)
|
|
--Frost Altar An altar of primal frost.
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25061))
|
|
--local warnChillingDominance = mod:NewStackAnnounce(374916, 2)
|
|
local warnBitingChill = mod:NewCountAnnounce(373678, 2)
|
|
local warnAbsoluteZero = mod:NewTargetNoFilterAnnounce(372456, 3)
|
|
local warnFrostBite = mod:NewFadesAnnounce(372514, 1)
|
|
local warnFrozenSolid = mod:NewTargetNoFilterAnnounce(372517, 4, nil, false)--RL kinda thing
|
|
|
|
local specWarnFrigidTorrent = mod:NewSpecialWarningDodge(391019, nil, nil, nil, 2, 2)--Cast by boss AND Dominator
|
|
local specWarnAbsoluteZero = mod:NewSpecialWarningYouPos(372456, nil, nil, nil, 1, 2)
|
|
local yellAbsoluteZero = mod:NewShortPosYell(372456)
|
|
local yellAbsoluteZeroFades = mod:NewIconFadesYell(372456)
|
|
|
|
local timerFrostBite = mod:NewBuffFadesTimer(30, 372514, nil, false, nil, 5)
|
|
|
|
mod:AddSetIconOption("SetIconOnAbsoluteZero", 372456, true, false, {1, 2})
|
|
|
|
mod:GroupSpells(372456, 372514, 372517)--Group all Below Zero mechanics together
|
|
----Mythic Only (Icebound Dominator)
|
|
local specWarnIceboundDominator = mod:NewSpecialWarningSwitch(393295, "-Healer", nil, nil, 1, 2)
|
|
local specWarnFreezing = mod:NewSpecialWarningMoveTo(391419, nil, nil, nil, 1, 2)--Effect of Icy Tempest (391425)
|
|
local specWarnSunderingFrost = mod:NewSpecialWarningDodge(393296, nil, nil, nil, 2, 2)
|
|
|
|
local timerIceboundDominatorCD = mod:NewAITimer(35, 393295, nil, nil, nil, 1, nil, DBM_COMMON_L.MYTHIC_ICON)--Granyth Ability Selection
|
|
local timerSunderingFrostCD = mod:NewAITimer(35, 393296, nil, nil, nil, 3)
|
|
local timerFrigidTorrentCD = mod:NewAITimer(60, 391019, nil, nil, nil, 3, nil, DBM_COMMON_L.MYTHIC_ICON)
|
|
--Earth Altar An altar of primal earth.
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25064))
|
|
--local warnShatteringDominance = mod:NewStackAnnounce(374917, 2)
|
|
local warnEnvelopingEarth = mod:NewTargetNoFilterAnnounce(391055, 4, nil, "Healer")
|
|
|
|
local specWarnEnvelopingEarth = mod:NewSpecialWarningYou(391055, nil, nil, nil, 1, 2)
|
|
local specWarnEruptingBedrock = mod:NewSpecialWarningRun(395893, "Melee", nil, nil, 2, 2)--Cast by boss AND Doppelboulder
|
|
local specWarnSeismicRupture = mod:NewSpecialWarningDodge(374691, nil, nil, nil, 2, 2)
|
|
|
|
----Mythic Only (Ironwrought Smasher)
|
|
local specWarnIronwroughtSmasher = mod:NewSpecialWarningSwitch(392098, "-Healer", nil, nil, 1, 2)
|
|
local specWarnSunderingSmash = mod:NewSpecialWarningSpell(391268, nil, nil, nil, 1, 2)
|
|
|
|
local timerIronwroughtSmasherCD = mod:NewAITimer(35, 392098, nil, nil, nil, 1, nil, DBM_COMMON_L.MYTHIC_ICON)--Granyth Ability Selection
|
|
local timerSunderingSmashCD = mod:NewAITimer(35, 391268, nil, nil, nil, 3)--Ironwrought Smasher
|
|
local timerEruptingBedrockCD = mod:NewCDTimer(60, 395893, nil, nil, nil, 2, nil, DBM_COMMON_L.MYTHIC_ICON)
|
|
|
|
mod:AddSetIconOption("SetIconOnEnvelopingEarth", 391055, false, false, {1, 2, 3})
|
|
--Storm Altar An altar of primal storm
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25068))
|
|
--local warnThunderingDominance = mod:NewStackAnnounce(374918, 2)
|
|
local warnLightningCrash = mod:NewTargetNoFilterAnnounce(373487, 4)
|
|
local warnShockingBurst = mod:NewTargetNoFilterAnnounce(390920, 3)
|
|
|
|
local specWarnLightningCrash = mod:NewSpecialWarningYouPos(373487, nil, nil, nil, 1, 2)
|
|
local yellLightningCrash = mod:NewShortPosYell(373487)
|
|
local yellLightningCrashFades = mod:NewIconFadesYell(373487)
|
|
--local specWarnLightningCrashStacks = mod:NewSpecialWarningStack(373535, nil, 8, nil, nil, 1, 6)
|
|
local specWarnShockingBurst = mod:NewSpecialWarningMoveAway(390920, nil, nil, nil, 1, 2)
|
|
local yellShockingBurst = mod:NewShortYell(390920)
|
|
local yellShockingBurstFades = mod:NewShortFadesYell(390920)
|
|
local specWarnThunderStrike = mod:NewSpecialWarningSoak(374215, nil, nil, nil, 2, 2)--No Debuff
|
|
local specWarnThunderStrikeBad = mod:NewSpecialWarningDodge(374215, nil, nil, nil, 2, 2)--Debuff
|
|
|
|
mod:AddSetIconOption("SetIconOnShockingBurst", 390920, false, false, {4, 5})
|
|
--mod:GroupSpells(373487, 373535)--Group Lighting crash source debuff with dest (nearest player) debuff
|
|
----Mythic Only (Stormwrought Despoiler)
|
|
local warnOrbLightning = mod:NewTargetAnnounce(391267, 3)
|
|
|
|
local specWarnStormwroughtDespoiler = mod:NewSpecialWarningSwitch(393459, "-Healer", nil, nil, 1, 2)
|
|
local specWarnOrbLightning = mod:NewSpecialWarningMoveAway(373487, nil, nil, nil, 1, 2)
|
|
local yellOrbLightning = mod:NewShortYell(391267)
|
|
local yellOrbLightningFades = mod:NewShortFadesYell(391267)
|
|
local specWarnSunderingPeal = mod:NewSpecialWarningDodge(393429, nil, nil, nil, 2, 2)
|
|
|
|
local timerStormwroughtDespoilerCD = mod:NewAITimer(35, 393459, nil, nil, nil, 1, nil, DBM_COMMON_L.MYTHIC_ICON)--Granyth Ability Selection
|
|
local timerOrbLightningCD = mod:NewAITimer(35, 391267, nil, nil, nil, 3)
|
|
local timerSunderingPealCD = mod:NewAITimer(35, 393429, nil, nil, nil, 3)
|
|
|
|
--Stage Two: Summoning Incarnates
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25071))
|
|
mod:AddNamePlateOption("NPAuraOnElementalBond", 374380, true)
|
|
----Tectonic Crusher
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25073))
|
|
local warnBreakingGravel = mod:NewStackAnnounce(374321, 2, nil, "Tank|Healer")
|
|
|
|
local specWarnGroundShatter = mod:NewSpecialWarningMoveAway(374427, nil, nil, nil, 1, 2)
|
|
local yellGroundShatter = mod:NewShortYell(374427, nil, false)
|
|
local yellGroundShatterFades = mod:NewShortFadesYell(374427)
|
|
local specWarnViolentUpheavel = mod:NewSpecialWarningDodge(374430, nil, nil, nil, 2, 2)
|
|
|
|
local timerGroundShatterCD = mod:NewCDTimer(33.4, 374427, nil, nil, nil, 3)
|
|
local timerViolentUpheavelCD = mod:NewCDTimer(33.4, 374430, nil, nil, nil, 3)
|
|
local timerSeismicRuptureCD = mod:NewAITimer(60, 374691, nil, nil, nil, 3, nil, DBM_COMMON_L.MYTHIC_ICON)--Mythic Add version
|
|
|
|
----Frozen Destroyer
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25076))
|
|
local specWarnFrostBinds = mod:NewSpecialWarningInterrupt(374623, "HasInterrupt", nil, nil, 1, 2)
|
|
|
|
local specWarnFreezingTempest = mod:NewSpecialWarningMoveTo(374624, nil, nil, nil, 3, 2)
|
|
|
|
local timerFreezingTempestCD = mod:NewCDTimer(37.7, 374624, nil, nil, nil, 2)
|
|
local timerAbsoluteZeroCD = mod:NewAITimer(60, 372456, nil, nil, nil, 3, nil, DBM_COMMON_L.MYTHIC_ICON)--Mythic Add version
|
|
|
|
----Blazing Fiend
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25079))
|
|
local timerSearingCarnageCD = mod:NewAITimer(60, 374022, nil, nil, nil, 3, nil, DBM_COMMON_L.MYTHIC_ICON)--Mythic Add version
|
|
|
|
----Thundering Destroyer
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(25083))
|
|
local warnStormBreak = mod:NewSpellAnnounce(374622, 3)
|
|
|
|
local timerStormBreakCD = mod:NewCDTimer(20.8, 374622, nil, nil, nil, 2)
|
|
local timerThunderStrikeCD = mod:NewAITimer(60, 374215, nil, nil, nil, 5, nil, DBM_COMMON_L.MYTHIC_ICON)--Mythic Add version
|
|
|
|
mod:AddRangeFrameOption(10, 374620)
|
|
|
|
mod.vb.chillCast = 0
|
|
mod.vb.litCrashIcon = 1
|
|
mod.vb.zeroIcon = 1
|
|
mod.vb.curAltar = false
|
|
mod.vb.damageSpell = "?"
|
|
mod.vb.avoidSpell = "?"
|
|
mod.vb.ultimateSpell = "?"
|
|
local updateAltar
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self:SetStage(1)
|
|
self.vb.chillCast = 0
|
|
self.vb.curAltar = false
|
|
self.vb.damageSpell = "?"
|
|
self.vb.avoidSpell = "?"
|
|
self.vb.ultimateSpell = "?"
|
|
timerSunderStrikeCD:Start(10.7-delay)
|
|
timerDamageCD:Start(20.4-delay, "?")
|
|
timerAvoidCD:Start(30.2-delay, "?")
|
|
timerUltimateCD:Start(63.1-delay, "?")
|
|
--if self:IsMythic() then
|
|
-- timerAddsCD:Start(1-delay)
|
|
--end
|
|
if self.Options.NPAuraOnSurge or self.Options.NPAuraOnElementalBond then
|
|
DBM:FireEvent("BossMod_EnableHostileNameplates")
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
-- if self.Options.RangeFrame then
|
|
-- DBM.RangeCheck:Hide()
|
|
-- end
|
|
-- if self.Options.InfoFrame then
|
|
-- DBM.InfoFrame:Hide()
|
|
-- end
|
|
if self.Options.NPAuraOnSurge or self.Options.NPAuraOnElementalBond then
|
|
DBM.Nameplate:Hide(true, nil, nil, nil, true, true)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 390548 then
|
|
if self:IsTanking("player", "boss1", nil, true) then
|
|
specWarnSunderStrike:Show()
|
|
specWarnSunderStrike:Play("defensive")
|
|
end
|
|
timerSunderStrikeCD:Start()
|
|
elseif spellId == 373678 then
|
|
self.vb.chillCast = self.vb.chillCast + 1
|
|
warnBitingChill:Show(self.vb.chillCast)
|
|
elseif spellId == 382563 or spellId == 392125 then--Non Mythic, Mythic
|
|
specWarnMagmaBurst:Show()
|
|
specWarnMagmaBurst:Play("watchstep")
|
|
elseif spellId == 373487 then
|
|
self.vb.litCrashIcon = 1
|
|
elseif spellId == 374022 or spellId == 392192 or spellId == 392152 then--Normal/Heroic, LFR, Mythic (assumed)
|
|
specWarnSearingCarnage:Show()
|
|
specWarnSearingCarnage:Play("watchstep")
|
|
if args:GetSrcCreatureID() ~= 184986 then--Mythic Add
|
|
timerSearingCarnageCD:Start(nil, args.sourceGUID)
|
|
end
|
|
elseif spellId == 372456 or spellId == 375450 then--Hard, easy (assumed)
|
|
self.vb.zeroIcon = 1
|
|
if args:GetSrcCreatureID() ~= 184986 then--Mythic Add
|
|
timerAbsoluteZeroCD:Start(nil, args.sourceGUID)
|
|
end
|
|
elseif spellId == 374691 then
|
|
specWarnSeismicRupture:Show()
|
|
specWarnSeismicRupture:Play("watchstep")
|
|
if args:GetSrcCreatureID() ~= 184986 then--Mythic Add
|
|
timerSeismicRuptureCD:Start(nil, args.sourceGUID)
|
|
end
|
|
elseif spellId == 376669 or spellId == 374215 then--Mythic, Non (assumed)
|
|
if DBM:UnitDebuff("player", 373494) then--Vulnerable to nature damage
|
|
specWarnThunderStrikeBad:Show()
|
|
specWarnThunderStrikeBad:Play("watchstep")
|
|
else
|
|
specWarnThunderStrike:Show()
|
|
specWarnThunderStrike:Play("helpsoak")
|
|
end
|
|
if args:GetSrcCreatureID() ~= 184986 then--Mythic Add
|
|
timerThunderStrikeCD:Start(nil, args.sourceGUID)
|
|
end
|
|
elseif spellId == 374427 then
|
|
timerGroundShatterCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 374430 then
|
|
specWarnViolentUpheavel:Show()
|
|
specWarnViolentUpheavel:Play("watchstep")
|
|
timerViolentUpheavelCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 374623 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnFrostBinds:Show(args.sourceName)
|
|
specWarnFrostBinds:Play("kickcast")
|
|
elseif spellId == 374624 then
|
|
specWarnFreezingTempest:Show(args.sourceName)
|
|
specWarnFreezingTempest:Play("runin")
|
|
timerFreezingTempestCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 374622 then
|
|
warnStormBreak:Show()
|
|
timerStormBreakCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 391019 then
|
|
specWarnFrigidTorrent:Show()
|
|
specWarnFrigidTorrent:Play("watchorb")
|
|
if args:GetSrcCreatureID() ~= 184986 then--Mythic Add
|
|
timerFrigidTorrentCD:Start(nil, args.sourceGUID)
|
|
end
|
|
-- elseif spellId == 391055 then
|
|
|
|
elseif spellId == 395893 then--Hard, Easy
|
|
specWarnEruptingBedrock:Show()
|
|
specWarnEruptingBedrock:Play("justrun")
|
|
if args:GetSrcCreatureID() ~= 184986 then--Mythic Add
|
|
timerEruptingBedrockCD:Start(nil, args.sourceGUID)
|
|
end
|
|
--Mythic Stuff
|
|
elseif spellId == 391268 then
|
|
timerSunderingSmashCD:Start(nil, args.sourceGUID)
|
|
if self:IsTanking("player", nil, nil, nil, args.sourceGUID) then
|
|
specWarnSunderingSmash:Show()
|
|
specWarnSunderingSmash:Play("carefly")
|
|
end
|
|
elseif spellId == 393314 then
|
|
specWarnFlamewroughtEradicator:Show()
|
|
specWarnFlamewroughtEradicator:Play("bigmob")
|
|
timerFlamewroughtEradicatorCD:Start()
|
|
elseif spellId == 393309 then
|
|
specWarnSunderingFlame:Show()
|
|
specWarnSunderingFlame:Play("shockwave")
|
|
timerSunderingFlameCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 393295 then
|
|
specWarnIceboundDominator:Show()
|
|
specWarnIceboundDominator:Play("bigmob")
|
|
timerIceboundDominatorCD:Start()
|
|
elseif spellId == 393296 then
|
|
specWarnSunderingFrost:Show()
|
|
specWarnSunderingFrost:Play("shockwave")
|
|
timerSunderingFrostCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 392098 then
|
|
specWarnIronwroughtSmasher:Show()
|
|
specWarnIronwroughtSmasher:Play("bigmob")
|
|
timerIronwroughtSmasherCD:Start()
|
|
elseif spellId == 393459 then
|
|
specWarnStormwroughtDespoiler:Show()
|
|
specWarnStormwroughtDespoiler:Play("bigmob")
|
|
timerStormwroughtDespoilerCD:Start()
|
|
elseif spellId == 391267 then
|
|
timerOrbLightningCD:Start(nil, args.sourceGUID)
|
|
elseif spellId == 393429 then
|
|
specWarnSunderingPeal:Show()
|
|
specWarnSunderingPeal:Play("shockwave")
|
|
timerSunderingPealCD:Start(nil, args.sourceGUID)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 373415 then
|
|
DBM:AddMsg("373415 is combat logging now, notify DBM author")
|
|
--specWarnMoltenRupture:Show()
|
|
--specWarnMoltenRupture:Play("farfromline")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_SUMMON(args)
|
|
local spellId = args.spellId
|
|
if args:IsSpellID(374935, 374931, 374939, 374943) then--Not logged
|
|
if spellId == 374935 then--Frozen Incarnation
|
|
timerFreezingTempestCD:Start(1, args.destGUID)
|
|
--if self:IsMythic() then
|
|
-- timerAbsoluteZeroCD:Start()
|
|
--end
|
|
elseif spellId == 374931 then--Blazing Incarnation
|
|
--if self:IsMythic() then
|
|
-- timerSearingCarnageCD:Start()
|
|
--end
|
|
elseif spellId == 374939 then--Tectonic Incarnation
|
|
timerGroundShatterCD:Start(1, args.destGUID)
|
|
timerViolentUpheavelCD:Start(1, args.destGUID)
|
|
--if self:IsMythic() then
|
|
-- timerSeismicRuptureCD:Start()
|
|
--end
|
|
elseif spellId == 374943 then--Thundering Incarnation
|
|
timerStormBreakCD:Start(1, args.destGUID)
|
|
--if self:IsMythic() then
|
|
-- timerThunderStrikeCD:Start()
|
|
--end
|
|
end
|
|
elseif spellId == 393314 then--Flamewrought Eradicator
|
|
timerSunderingFlameCD:Start(1, args.destGUID)
|
|
elseif spellId == 393295 then--Icewrought Dominator
|
|
timerSunderingFrostCD:Start(1, args.destGUID)
|
|
elseif spellId == 392098 then--Ironwrought Smasher
|
|
timerSunderingSmashCD:Start(1, args.destGUID)
|
|
elseif spellId == 393459 then--Stormwrought Despoiler
|
|
timerOrbLightningCD:Start(1, args.destGUID)
|
|
timerSunderingPealCD:Start(1, args.destGUID)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 371971 then
|
|
if self.Options.NPAuraOnSurge then
|
|
DBM.Nameplate:Show(true, args.destGUID, spellId)
|
|
end
|
|
elseif spellId == 374321 then
|
|
local amount = args.amount or 1
|
|
if amount % 3 == 0 then
|
|
warnBreakingGravel:Show(args.destName, amount)
|
|
end
|
|
elseif spellId == 396109 and (not self.vb.curAltar or self.vb.curAltar ~= 1) then--Freezing Dominance
|
|
self.vb.curAltar = 1
|
|
updateAltar(self)
|
|
elseif spellId == 396113 and (not self.vb.curAltar or self.vb.curAltar ~= 2) then--Thundering Dominance
|
|
self.vb.curAltar = 2
|
|
updateAltar(self)
|
|
elseif spellId == 396106 and (not self.vb.curAltar or self.vb.curAltar ~= 3) then--Flaming Dominance
|
|
self.vb.curAltar = 3
|
|
updateAltar(self)
|
|
elseif spellId == 396085 and (not self.vb.curAltar or self.vb.curAltar ~= 4) then--Earthen Dominance
|
|
self.vb.curAltar = 4
|
|
updateAltar(self)
|
|
elseif spellId == 372158 and not args:IsPlayer() then
|
|
local amount = args.amount or 1
|
|
local _, _, _, _, _, expireTime = DBM:UnitDebuff("player", spellId)
|
|
local remaining
|
|
if expireTime then
|
|
remaining = expireTime-GetTime()
|
|
end
|
|
if (not remaining or remaining and remaining < 6.1) and not UnitIsDeadOrGhost("player") and not self:IsHealer() then
|
|
specWarnSplinteredBones:Show(args.destName)
|
|
specWarnSplinteredBones:Play("tauntboss")
|
|
else
|
|
warnSplinteredBones:Show(args.destName, amount)
|
|
end
|
|
elseif spellId == 373487 then
|
|
local icon = self.vb.litCrashIcon
|
|
if self.Options.SetIconOnLightningCrash and icon < 9 then--On 30 man it's 9 icons :\
|
|
self:SetIcon(args.destName, icon)
|
|
end
|
|
if args:IsPlayer() then
|
|
specWarnLightningCrash:Show(self:IconNumToTexture(icon))
|
|
specWarnLightningCrash:Play("mm"..icon)
|
|
yellLightningCrash:Yell(icon, icon)
|
|
yellLightningCrashFades:Countdown(spellId, nil, icon)
|
|
end
|
|
warnLightningCrash:CombinedShow(0.5, args.destName)
|
|
self.vb.litCrashIcon = self.vb.litCrashIcon + 1
|
|
elseif spellId == 372458 then
|
|
local icon = self.vb.zeroIcon
|
|
if self.Options.SetIconOnAbsoluteZero then
|
|
self:SetIcon(args.destName, icon)
|
|
end
|
|
if args:IsPlayer() then
|
|
specWarnAbsoluteZero:Show(self:IconNumToTexture(icon))
|
|
specWarnAbsoluteZero:Play("mm"..icon)
|
|
yellAbsoluteZero:Yell(icon, icon)
|
|
yellAbsoluteZeroFades:Countdown(spellId, nil, icon)
|
|
else
|
|
warnAbsoluteZero:CombinedShow(0.5, args.destName)
|
|
end
|
|
self.vb.zeroIcon = self.vb.zeroIcon + 1
|
|
elseif spellId == 372514 and args:IsPlayer() then
|
|
timerFrostBite:Start()
|
|
elseif spellId == 372517 then
|
|
warnFrozenSolid:CombinedShow(1, args.destName)
|
|
elseif spellId == 374779 then--Primal Barrier
|
|
self:SetStage(2)
|
|
--Base
|
|
timerSunderStrikeCD:Stop()
|
|
|
|
timerDamageCD:Stop()
|
|
timerAvoidCD:Stop()
|
|
timerUltimateCD:Stop()
|
|
timerAddsCD:Stop()
|
|
elseif spellId == 374380 then
|
|
if self.Options.NPAuraOnElementalBond then
|
|
DBM.Nameplate:Show(true, args.destGUID, spellId)
|
|
end
|
|
elseif spellId == 374427 then
|
|
if args:IsPlayer() then
|
|
specWarnGroundShatter:Show()
|
|
specWarnGroundShatter:Play("runout")
|
|
yellGroundShatter:Yell()
|
|
yellGroundShatterFades:Countdown(spellId)
|
|
end
|
|
elseif spellId == 391056 then
|
|
if self.Options.SetIconOnEnvelopingEarth then
|
|
self:SetUnsortedIcon(0.3, args.destName, 1, 3, false)
|
|
end
|
|
if args:IsPlayer() then
|
|
specWarnEnvelopingEarth:Show()
|
|
specWarnEnvelopingEarth:Play("checkhp")
|
|
end
|
|
warnEnvelopingEarth:CombinedShow(0.3, args.destName)
|
|
elseif spellId == 390921 then
|
|
if self.Options.SetIconOnShockingBurst then
|
|
self:SetUnsortedIcon(0.3, args.destName, 4, 2, false)
|
|
end
|
|
if args:IsPlayer() then
|
|
specWarnShockingBurst:Show()
|
|
specWarnShockingBurst:Play("runout")
|
|
yellShockingBurst:Yell()
|
|
yellShockingBurstFades:Countdown(spellId)
|
|
end
|
|
warnShockingBurst:CombinedShow(0.5, args.destName)
|
|
elseif spellId == 391419 and args:IsPlayer() then
|
|
--Players will get debuff a lot for momentary moves, we don't want to spam them to death
|
|
--So we schedule a check after 2.5 seconds (to give them 3.5 to find allies)
|
|
specWarnFreezing:Cancel()
|
|
specWarnFreezing:Schedule(2.5, DBM_COMMON_L.ALLIES)--Might adjust timing
|
|
specWarnFreezing:ScheduleVoice(2.5, "gathershare")
|
|
elseif spellId == 391265 then
|
|
if args:IsPlayer() then
|
|
specWarnOrbLightning:Show()
|
|
specWarnOrbLightning:Play("runout")
|
|
yellOrbLightning:Yell()
|
|
yellOrbLightningFades:Countdown(spellId)
|
|
end
|
|
warnOrbLightning:CombinedShow(0.5, args.destName)
|
|
elseif spellId == 396241 and self.vb.phase < 2 then
|
|
self:SetStage(3)
|
|
timerSunderStrikeCD:Stop()
|
|
timerDamageCD:Stop()
|
|
timerAvoidCD:Stop()
|
|
timerUltimateCD:Stop()
|
|
timerAddsCD:Stop()
|
|
|
|
timerSunderStrikeCD:Start(10)
|
|
timerDamageCD:Start(15, "?")
|
|
timerAvoidCD:Start(22, "?")--28.4 now?
|
|
--timerUltimateCD:Start(30, "?")
|
|
--if self:IsMythic() then
|
|
-- timerAddsCD:Start()
|
|
--end
|
|
end
|
|
end
|
|
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 371971 then
|
|
if self.Options.NPAuraOnSurge then
|
|
DBM.Nameplate:Hide(true, args.destGUID, spellId)
|
|
end
|
|
elseif spellId == 373487 then
|
|
-- if self.Options.SetIconOnLightningCrash then
|
|
-- self:SetIcon(args.destName, 0)
|
|
-- end
|
|
if args:IsPlayer() then
|
|
yellLightningCrashFades:Cancel()
|
|
end
|
|
elseif spellId == 373494 then--Icon removed off secondary debuff
|
|
if self.Options.SetIconOnLightningCrash then
|
|
self:SetIcon(args.destName, 0)
|
|
end
|
|
elseif spellId == 372458 then
|
|
if self.Options.SetIconOnAbsoluteZero then
|
|
self:SetIcon(args.destName, 0)
|
|
end
|
|
if args:IsPlayer() then
|
|
yellAbsoluteZeroFades:Cancel()
|
|
end
|
|
elseif spellId == 372514 and args:IsPlayer() then
|
|
warnFrostBite:Show()
|
|
timerFrostBite:Stop()
|
|
elseif spellId == 374779 then--Primal Barrier
|
|
self.vb.curAltar = false--Reset on intermission end because we don't want initial timers to show an altar spell when there isn't one yet
|
|
-- if self.vb.stageTotality == 2 then
|
|
self:SetStage(1)
|
|
--Base
|
|
timerSunderStrikeCD:Start(11)
|
|
timerDamageCD:Start(20, "?")
|
|
timerAvoidCD:Start(30, "?")
|
|
--timerUltimateCD:Start(60, "?")
|
|
--Boss retains power from previous stage
|
|
--Hopefully this is temp
|
|
--Alternatively could just pause timer going into intermission and resume it here with 4 seconds added?
|
|
-- local currentPower = UnitPower("boss1")
|
|
-- if currentPower then
|
|
-- local percent = currentPower / 100
|
|
-- local elapsed = percent * 60
|
|
-- timerUltimateCD:Update(elapsed, 64, "?")--Power updates resume after 4 seconds, so 4 sec added to total
|
|
-- end
|
|
--if self:IsMythic() then
|
|
-- timerAddsCD:Start()
|
|
--end
|
|
-- else--4, which means stage 3, totality 5
|
|
-- self:SetStage(3)
|
|
-- timerSunderStrikeCD:Start(10)
|
|
-- timerDamageCD:Start(15, " ")
|
|
-- timerAvoidCD:Start(22, " ")--28.4 now?
|
|
-- --Boss retains power from previous stage
|
|
-- --Hopefully this is temp
|
|
-- --Alternatively could just pause timer going into intermission and resume it here with 4 seconds added?
|
|
-- local currentPower = UnitPower("boss1")
|
|
-- if currentPower then
|
|
-- local percent = currentPower / 100
|
|
-- local elapsed = percent * 60
|
|
-- timerUltimateCD:Update(elapsed, 64, "?")--Power updates resume after 4 seconds, so 4 sec added to total
|
|
-- end
|
|
-- --if self:IsMythic() then
|
|
-- -- timerAddsCD:Start()
|
|
-- --end
|
|
-- end
|
|
elseif spellId == 374380 then
|
|
if self.Options.NPAuraOnElementalBond then
|
|
DBM.Nameplate:Hide(true, args.destGUID, spellId)
|
|
end
|
|
elseif spellId == 374427 then
|
|
if args:IsPlayer() then
|
|
yellGroundShatterFades:Cancel()
|
|
end
|
|
elseif spellId == 390921 then
|
|
if self.Options.SetIconOnShockingBurst then
|
|
self:SetIcon(args.destName, 0)
|
|
end
|
|
if args:IsPlayer() then
|
|
yellShockingBurstFades:Cancel()
|
|
end
|
|
elseif spellId == 391419 and args:IsPlayer() then
|
|
specWarnFreezing:Cancel()
|
|
specWarnFreezing:CancelVoice()
|
|
elseif spellId == 391265 then
|
|
if args:IsPlayer() then
|
|
yellOrbLightningFades:Cancel()
|
|
end
|
|
elseif spellId == 391056 then
|
|
if self.Options.SetIconOnEnvelopingEarth then
|
|
self:SetIcon(args.destName, 0)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
--Intermission Adds
|
|
if cid == 190688 then--Blazing Fiend
|
|
timerSearingCarnageCD:Stop(args.destGUID)
|
|
elseif cid == 190686 then--Frozen Destroyer
|
|
timerFreezingTempestCD:Stop(args.destGUID)
|
|
timerAbsoluteZeroCD:Stop(args.destGUID)
|
|
elseif cid == 190588 then--Tectonic Crusher
|
|
timerGroundShatterCD:Stop(args.destGUID)
|
|
timerViolentUpheavelCD:Stop(args.destGUID)
|
|
timerSeismicRuptureCD:Stop()
|
|
elseif cid == 190690 then--Thundering Tempest
|
|
timerStormBreakCD:Stop(args.destGUID)
|
|
timerThunderStrikeCD:Stop(args.destGUID)
|
|
--Mythic Adds
|
|
elseif cid == 198311 then--Flamewrought Eradicator
|
|
timerSunderingFlameCD:Stop(args.destGUID)
|
|
elseif cid == 198308 then--Icewrought Dominator
|
|
timerSunderingFrostCD:Stop(args.destGUID)
|
|
timerFrigidTorrentCD:Stop(args.destGUID)
|
|
elseif cid == 197595 then--Ironwrought Smasher
|
|
timerSunderingSmashCD:Stop(args.destGUID)
|
|
elseif cid == 198326 then--Stormwrought Despoiler
|
|
timerOrbLightningCD:Stop(args.destGUID)
|
|
timerSunderingPealCD:Stop(args.destGUID)
|
|
-- elseif cid == 190586 then--seismic-pillar
|
|
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
if (spellId == 374554 or spellId == 391555) 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
|
|
|
|
do
|
|
local spellEasyMapping = {
|
|
--Biting Chill, Shocking Burst, Magma Burst, Erupting Bedrock
|
|
[391096] = {DBM:GetSpellInfo(373678), DBM:GetSpellInfo(373487), DBM:GetSpellInfo(382563), (DBM:GetSpellInfo(395893))},
|
|
--Biting Chill, Shocking Burst, Magma Burst, Erupting Bedrock
|
|
[391100] = {DBM:GetSpellInfo(373678), DBM:GetSpellInfo(390920), DBM:GetSpellInfo(382563), (DBM:GetSpellInfo(395893))},
|
|
--Ultimate Selection (Absolute Zero, Thunder Strike, Searing Carnage, Seismic Rupture
|
|
[374680] = {DBM:GetSpellInfo(372456), DBM:GetSpellInfo(374217), DBM:GetSpellInfo(374022), (DBM:GetSpellInfo(374705))}
|
|
}
|
|
local iconEasyMapping = {
|
|
--Biting Chill, Shocking Burst, Magma Burst, Erupting Bedrock
|
|
[391096] = {GetSpellTexture(373678), GetSpellTexture(373487), GetSpellTexture(382563), (GetSpellTexture(395893))},
|
|
--Biting Chill, Shocking Burst, Magma Burst, Erupting Bedrock
|
|
[391100] = {GetSpellTexture(373678), GetSpellTexture(390920), GetSpellTexture(382563), (GetSpellTexture(395893))},
|
|
--Ultimate Selection (Absolute Zero, Thunder Strike, Searing Carnage, Seismic Rupture
|
|
[374680] = {GetSpellTexture(372456), GetSpellTexture(374217), GetSpellTexture(374022), (GetSpellTexture(374705))}
|
|
}
|
|
local spellMapping = {
|
|
--Biting Chill, Lightning Crash, Magma Burst, Enveloping Earth
|
|
[391096] = {DBM:GetSpellInfo(373678), DBM:GetSpellInfo(373487), DBM:GetSpellInfo(382563), (DBM:GetSpellInfo(391055))},
|
|
--Frigid Torrent, Shocking Burst, Molten Rupture, Erupting Bedrock
|
|
[391100] = {DBM:GetSpellInfo(391019), DBM:GetSpellInfo(390920), DBM:GetSpellInfo(373329), (DBM:GetSpellInfo(395893))},
|
|
--Ultimate Selection (Absolute Zero, Thunder Strike, Searing Carnage, Seismic Rupture
|
|
[374680] = {DBM:GetSpellInfo(372456), DBM:GetSpellInfo(374217), DBM:GetSpellInfo(374022), (DBM:GetSpellInfo(374705))}
|
|
}
|
|
local iconMapping = {
|
|
--Biting Chill, Lightning Crash, Magma Burst, Enveloping Earth
|
|
[391096] = {GetSpellTexture(373678), GetSpellTexture(373487), GetSpellTexture(382563), (GetSpellTexture(391055))},
|
|
--Frigid Torrent, Shocking Burst, Molten Rupture, Erupting Bedrock
|
|
[391100] = {GetSpellTexture(391019), GetSpellTexture(390920), GetSpellTexture(373329), (GetSpellTexture(395893))},
|
|
--Ultimate Selection (Absolute Zero, Thunder Strike, Searing Carnage, Seismic Rupture
|
|
[374680] = {GetSpellTexture(372456), GetSpellTexture(374217), GetSpellTexture(374022), (GetSpellTexture(374705))}
|
|
}
|
|
|
|
function updateAltar(self)
|
|
--Collect current timers usiing cached spellname reference so it's actually possible to find timer with API (before we change it)
|
|
local dElapsed, dTotal = timerDamageCD:GetTime(self.vb.damageSpell)
|
|
local aElapsed, aTotal = timerAvoidCD:GetTime(self.vb.avoidSpell)
|
|
local uElapsed, uTotal = timerUltimateCD:GetTime(self.vb.ultimateSpell)
|
|
--Terminate old timers
|
|
timerDamageCD:Stop()
|
|
timerAvoidCD:Stop()
|
|
timerUltimateCD:Stop()
|
|
--Gather new spellNames and Icons and update bars
|
|
if dTotal and dTotal > 0 then
|
|
self.vb.damageSpell = self.vb.curAltar and (self:IsEasy() and spellEasyMapping[391096][self.vb.curAltar] or spellMapping[391096][self.vb.curAltar]) or "?"
|
|
local dSpellIcon = self.vb.curAltar and (self:IsEasy() and iconEasyMapping[391096][self.vb.curAltar] or iconMapping[391096][self.vb.curAltar]) or 136116
|
|
timerDamageCD:Update(dElapsed, dTotal, self.vb.damageSpell)
|
|
timerDamageCD:UpdateIcon(dSpellIcon, self.vb.damageSpell)
|
|
end
|
|
|
|
if aTotal and aTotal > 0 then
|
|
self.vb.avoidSpell = self.vb.curAltar and (self:IsEasy() and spellEasyMapping[391100][self.vb.curAltar] or spellMapping[391100][self.vb.curAltar]) or "?"
|
|
local aSpellIcon = self.vb.curAltar and (self:IsEasy() and iconEasyMapping[391100][self.vb.curAltar] or iconMapping[391100][self.vb.curAltar]) or 136116
|
|
timerAvoidCD:Update(aElapsed, aTotal, self.vb.avoidSpell)
|
|
timerAvoidCD:UpdateIcon(aSpellIcon, self.vb.avoidSpell)
|
|
end
|
|
|
|
if uTotal and uTotal > 0 then
|
|
self.vb.ultimateSpell = self.vb.curAltar and (self:IsEasy() and spellEasyMapping[374680][self.vb.curAltar] or spellMapping[374680][self.vb.curAltar]) or "?"
|
|
local uSpellIcon = self.vb.curAltar and (self:IsEasy() and iconEasyMapping[374680][self.vb.curAltar] or iconMapping[374680][self.vb.curAltar]) or 136116
|
|
timerUltimateCD:Update(uElapsed, uTotal, self.vb.ultimateSpell)
|
|
timerUltimateCD:UpdateIcon(uSpellIcon, self.vb.ultimateSpell)
|
|
end
|
|
end
|
|
|
|
--Problematic Notes:
|
|
--Molten Rupture and Frigid Torrent flagged heroic+ only. So on normal and LFR Avoid Selection only has a 2/4 spells.
|
|
--Lightning Crash and Enveloping Earth flagged heroic+ only. So on normal and LFR "Damage Selection" only has a 2/4 spells.
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
|
if spellId == 373415 then
|
|
specWarnMoltenRupture:Show()
|
|
specWarnMoltenRupture:Play("farfromline")
|
|
elseif spellId == 391096 then--Damage Selection (Biting Chill, Lightning Crash, Magma Burst, Enveloping Earth)
|
|
self.vb.damageSpell = self.vb.curAltar and (self:IsEasy() and spellEasyMapping[spellId][self.vb.curAltar] or spellMapping[spellId][self.vb.curAltar]) or "?"
|
|
local spellIcon = self.vb.curAltar and (self:IsEasy() and iconEasyMapping[spellId][self.vb.curAltar] or iconMapping[spellId][self.vb.curAltar]) or 136116
|
|
timerDamageCD:Start(self.vb.phase == 3 and 32.9 or 30, self.vb.damageSpell)
|
|
timerDamageCD:UpdateIcon(spellIcon, self.vb.damageSpell)
|
|
elseif spellId == 391100 then--Avoid Selection (Frigid Torrent, Shocking Burst, Molten Rupture, Erupting Bedrock)
|
|
self.vb.avoidSpell = self.vb.curAltar and (self:IsEasy() and spellEasyMapping[spellId][self.vb.curAltar] or spellMapping[spellId][self.vb.curAltar]) or "?"
|
|
local spellIcon = self.vb.curAltar and (self:IsEasy() and iconEasyMapping[spellId][self.vb.curAltar] or iconMapping[spellId][self.vb.curAltar]) or 136116
|
|
timerAvoidCD:Start(self.vb.phase == 3 and 32.9 or 30, self.vb.avoidSpell)
|
|
timerAvoidCD:UpdateIcon(spellIcon, self.vb.avoidSpell)
|
|
elseif spellId == 374680 then--Ultimate Selection (Absolute Zero, Thunder Strike, Searing Carnage, Seismic Rupture)
|
|
self.vb.ultimateSpell = self.vb.curAltar and (self:IsEasy() and spellEasyMapping[spellId][self.vb.curAltar] or spellMapping[spellId][self.vb.curAltar]) or "?"
|
|
local spellIcon = self.vb.curAltar and (self:IsEasy() and iconEasyMapping[spellId][self.vb.curAltar] or iconMapping[spellId][self.vb.curAltar]) or 136116
|
|
timerUltimateCD:Start(self.vb.phase == 3 and 32.9 or 60, self.vb.ultimateSpell)
|
|
timerUltimateCD:UpdateIcon(spellIcon, self.vb.ultimateSpell)
|
|
elseif spellId == 386432 then--Granyth Ability Selection (Mythic add selection)
|
|
timerAddsCD:Start()
|
|
end
|
|
end
|
|
end
|
|
|