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.
460 lines
19 KiB
460 lines
19 KiB
local mod = DBM:NewMod(2529, "DBM-Aberrus", nil, 1208)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20230407024435")
|
|
mod:SetCreatureID(201774, 201773, 201934)--Krozgoth, Moltannia, Molgoth
|
|
mod:SetEncounterID(2687)
|
|
mod:SetUsedIcons(1, 2, 3, 4)
|
|
mod:SetBossHPInfoToHighest()
|
|
mod:SetHotfixNoticeRev(20230406000000)
|
|
--mod:SetMinSyncRevision(20221215000000)
|
|
--mod.respawnTime = 29
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 403459 405016 407640 403699 404732 403101 404896 405437 405641 408193 405914 406783 403203 409385",
|
|
"SPELL_CAST_SUCCESS 406730 409385",
|
|
"SPELL_AURA_APPLIED 401809 402617 405036 405394 405642 405914",
|
|
"SPELL_AURA_APPLIED_DOSE 401809 402617 405394",
|
|
"SPELL_AURA_REMOVED 401809 402617 405036 405642",
|
|
"SPELL_PERIODIC_DAMAGE 405084 405645",
|
|
"SPELL_PERIODIC_MISSED 405084 405645"
|
|
)
|
|
|
|
--[[
|
|
(ability.id = 403459 or ability.id = 405016 or ability.id = 407640 or ability.id = 403699 or ability.id = 404732 or ability.id = 403101 or ability.id = 404896 or ability.id = 403203 or ability.id = 405437 or ability.id = 405641 or ability.id = 408193 or ability.id = 405914 or ability.id = 406783) and type = "begincast"
|
|
or (ability.id = 406730 or ability.id = 406780) and type = "cast"
|
|
--]]
|
|
--TODO, also target scan Swirling Flame?
|
|
--TODO, secondary alert for Swirling Shadowflame ?
|
|
--TODO, if both tank abilities in P2 are a combo, just use generic tank combo timer
|
|
--General
|
|
local specWarnGTFO = mod:NewSpecialWarningGTFO(405084, nil, nil, nil, 1, 8)
|
|
|
|
mod:AddBoolOption("AdvancedBossFiltering", true, "misc")--May be default to off on live, but for testing purposes it needs to be forced
|
|
--Krozgoth
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(26336))
|
|
local warnCorruptingShadow = mod:NewCountAnnounce(401809, 2, nil, nil, DBM_CORE_L.AUTO_ANNOUNCE_OPTIONS.stack:format(401809))
|
|
local warnCorruptingShadowFades = mod:NewFadesAnnounce(401809, 1)
|
|
local warnUmbralDetonation = mod:NewTargetCountAnnounce(405016, 3, nil, nil, nil, nil, nil, nil, true)
|
|
|
|
local specWarnCoalescingVoid = mod:NewSpecialWarningCount(403459, nil, nil, nil, 2, 2)--Possibly use a run away warning if idea is to actualy move away? Something tells me falloff is just designed to scope damage to players on THIS boss only
|
|
local specWarnUmbralDetonation = mod:NewSpecialWarningYou(405016, nil, nil, nil, 1, 2)
|
|
local yellUmbralDetonation = mod:NewShortYell(405016)
|
|
local yellUmbralDetonationFades = mod:NewShortFadesYell(405016)
|
|
local specWarnShadowsConvergence = mod:NewSpecialWarningDodgeCount(407640, nil, nil, nil, 2, 2)
|
|
--local specWarnPyroBlast = mod:NewSpecialWarningInterrupt(396040, "HasInterrupt", nil, nil, 1, 2)
|
|
|
|
local timerCoalescingVoidCD = mod:NewCDCountTimer(21.9, 403459, nil, nil, nil, 2)
|
|
local timerUmbralDetonationCD = mod:NewCDCountTimer(21.9, 405016, nil, nil, nil, 3)
|
|
local timerShadowsConvergenceCD = mod:NewCDCountTimer(20.7, 407640, nil, nil, nil, 3)
|
|
local timerShadowSpikeCD = mod:NewCDCountTimer(11, 403699, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
--local berserkTimer = mod:NewBerserkTimer(600)
|
|
|
|
--mod:AddInfoFrameOption(361651, true)
|
|
mod:AddSetIconOption("SetIconOnUmbral", 405016, false, 0, {1, 2, 3})
|
|
--mod:AddNamePlateOption("NPAuraOnAscension", 385541)
|
|
--mod:GroupSpells(390715, 396094)
|
|
--Moltannia
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(26337))
|
|
local warnBlazingHeat = mod:NewCountAnnounce(402617, 2, nil, nil, DBM_CORE_L.AUTO_ANNOUNCE_OPTIONS.stack:format(401809))
|
|
local warnBlazingHeatFades = mod:NewFadesAnnounce(402617, 1)
|
|
|
|
local specWarnFieryMeteor = mod:NewSpecialWarningCount(404732, nil, nil, nil, 2, 2)
|
|
local specWarnMoltenEruption = mod:NewSpecialWarningCount(403101, nil, nil, nil, 2, 2)
|
|
local specWarnSwirlingFlame = mod:NewSpecialWarningDodgeCount(404896, nil, nil, nil, 2, 2)
|
|
|
|
local timerFieryMeteorCD = mod:NewCDCountTimer(31.7, 404732, nil, nil, nil, 3)
|
|
local timerMoltenEruptionCD = mod:NewCDCountTimer(22.3, 403101, nil, nil, nil, 5)
|
|
local timerSwirlingFlameCD = mod:NewCDCountTimer(20.7, 404896, nil, nil, nil, 3)
|
|
local timerFlameSlashCD = mod:NewCDCountTimer(11, 403203, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
--Molgoth
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(26338))
|
|
local warnShadowandFlame = mod:NewCastAnnounce(409385, 4)
|
|
local warnShadowflame = mod:NewCountAnnounce(405394, 2, nil, nil, DBM_CORE_L.AUTO_ANNOUNCE_OPTIONS.stack:format(405394))
|
|
local warnBlisteringTwilight = mod:NewTargetCountAnnounce(405641, 3, nil, nil, nil, nil, nil, nil, true)
|
|
local warnShadowflameBurst = mod:NewCountAnnounce(406783, 3)
|
|
|
|
local specWarnGloomConflag = mod:NewSpecialWarningCount(405437, nil, nil, nil, 2, 2)
|
|
local specWarnBlisteringTwilight = mod:NewSpecialWarningYou(405641, nil, nil, nil, 1, 2)
|
|
local yellBlisteringTwilight = mod:NewShortYell(405641)
|
|
local yellBlisteringTwilightFades = mod:NewShortFadesYell(405641)
|
|
local specWarnConvergentEruption = mod:NewSpecialWarningCount(408193, nil, nil, nil, 2, 2)
|
|
local specWarnWitheringVulnerability = mod:NewSpecialWarningDefensive(405914, nil, nil, nil, 1, 2)
|
|
local specWarnWitheringVulnerabilityTaunt = mod:NewSpecialWarningTaunt(405914, nil, nil, nil, 1, 2)
|
|
|
|
local timerShadowandFlameCD = mod:NewCDCountTimer(47.4, 409385, nil, nil, nil, 3, nil, DBM_COMMON_L.MYTHIC_ICON)
|
|
local timerGloomConflagCD = mod:NewCDCountTimer(40, 405437, nil, nil, nil, 3)
|
|
local timerBlisteringTwilightCD = mod:NewCDCountTimer(40, 405641, nil, nil, nil, 3)
|
|
local timerConvergentEruptionCD = mod:NewCDCountTimer(40, 408193, nil, nil, nil, 5)
|
|
local timerWitheringVulnerabilityCD = mod:NewCDCountTimer(35.3, 405914, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--35-40
|
|
local timerShadowflameBurstCD = mod:NewCDCountTimer(35.3, 406783, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--Might be redundant if always after crushing
|
|
|
|
mod:AddSetIconOption("SetIconOnBlistering", 405641, false, 0, {1, 2, 3, 4})
|
|
mod:AddRangeFrameOption(6, 409385)
|
|
|
|
local nearKroz, nearMolt = true, true
|
|
mod.vb.coalescingCount = 0
|
|
mod.vb.umbralCount = 0
|
|
mod.vb.umbralIcon = 1
|
|
mod.vb.shadowConvergeCount = 0
|
|
mod.vb.shadowStrikeCount = 0
|
|
|
|
mod.vb.meteorCast = 0
|
|
mod.vb.swirlingCount = 0
|
|
mod.vb.moltenEruptionCast = 0
|
|
mod.vb.flameSlashCast = 0
|
|
|
|
mod.vb.witheringVulnCount = 0
|
|
mod.vb.shadowflameBurstCount = 0
|
|
mod.vb.SandFCount = 0
|
|
|
|
--As computational as this looks, it's purpose is to just filter information overload.
|
|
--Basically, it solves for what should or shouldn't be shown, not what a player should or shouldn't do.
|
|
local function updateBossDistance(self)
|
|
if not self.Options.AdvancedBossFiltering then return end
|
|
--Check if near or far from Krozgoth
|
|
if self:CheckBossDistance(201774, true, 32698, 48) then
|
|
if not nearKroz then
|
|
nearKroz = true
|
|
timerCoalescingVoidCD:SetFade(false, self.vb.coalescingCount+1)
|
|
timerUmbralDetonationCD:SetFade(false, self.vb.umbralCount+1)
|
|
timerShadowsConvergenceCD:SetFade(false, self.vb.shadowConvergeCount+1)
|
|
timerShadowSpikeCD:SetFade(false, self.vb.shadowStrikeCount+1)
|
|
end
|
|
else
|
|
if nearKroz then
|
|
nearKroz = false
|
|
timerCoalescingVoidCD:SetFade(true, self.vb.coalescingCount+1)
|
|
timerUmbralDetonationCD:SetFade(true, self.vb.umbralCount+1)
|
|
timerShadowsConvergenceCD:SetFade(true, self.vb.shadowConvergeCount+1)
|
|
timerShadowSpikeCD:SetFade(true, self.vb.shadowStrikeCount+1)
|
|
end
|
|
end
|
|
--Check if near or far from Moltannia
|
|
if self:CheckBossDistance(201773, true, 32698, 48) then
|
|
if not nearMolt then
|
|
nearMolt = true
|
|
timerFieryMeteorCD:SetFade(false, self.vb.meteorCast+1)
|
|
timerMoltenEruptionCD:SetFade(false, self.vb.moltenEruptionCast+1)
|
|
timerSwirlingFlameCD:SetFade(false, self.vb.swirlingCount+1)
|
|
timerFlameSlashCD:SetFade(false, self.vb.flameSlashCast+1)
|
|
end
|
|
else
|
|
if nearMolt then
|
|
nearMolt = false
|
|
timerFieryMeteorCD:SetFade(true, self.vb.meteorCast+1)
|
|
timerMoltenEruptionCD:SetFade(true, self.vb.moltenEruptionCast+1)
|
|
timerSwirlingFlameCD:SetFade(true, self.vb.swirlingCount+1)
|
|
timerFlameSlashCD:SetFade(true, self.vb.flameSlashCast+1)
|
|
end
|
|
end
|
|
self:Schedule(2, updateBossDistance, self)
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
nearKroz, nearMolt = true, true
|
|
self:SetStage(1)
|
|
--Krozgoth
|
|
self.vb.coalescingCount = 0
|
|
self.vb.umbralCount = 0
|
|
self.vb.umbralIcon = 1
|
|
self.vb.shadowConvergeCount = 0
|
|
self.vb.shadowStrikeCount = 0
|
|
if self:IsMythic() then
|
|
timerShadowSpikeCD:Start(9.5-delay, 1)
|
|
timerUmbralDetonationCD:Start(14.3-delay, 1)
|
|
timerShadowsConvergenceCD:Start(22.8-delay, 1)
|
|
timerCoalescingVoidCD:Start(36.2-delay, 1)
|
|
else
|
|
timerShadowSpikeCD:Start(5.9-delay, 1)
|
|
timerUmbralDetonationCD:Start(19.3-delay, 1)
|
|
timerShadowsConvergenceCD:Start(22.8-delay, 1)
|
|
timerCoalescingVoidCD:Start(30.3-delay, 1)
|
|
end
|
|
--Reset Fades
|
|
timerCoalescingVoidCD:SetFade(false, 1)
|
|
timerUmbralDetonationCD:SetFade(false, 1)
|
|
timerShadowsConvergenceCD:SetFade(false, 1)
|
|
timerShadowSpikeCD:SetFade(false, 1)
|
|
--Moltannia
|
|
self.vb.meteorCast = 0
|
|
self.vb.moltenEruptionCast = 0
|
|
self.vb.swirlingCount = 0
|
|
self.vb.SandFCount = 0
|
|
self.vb.flameSlashCast = 0
|
|
if self:IsMythic() then
|
|
timerFlameSlashCD:Start(7-delay, 1)
|
|
timerSwirlingFlameCD:Start(10.7-delay, 1)
|
|
timerMoltenEruptionCD:Start(16.7-delay, 1)
|
|
timerFieryMeteorCD:Start(36.2-delay, 1)
|
|
else
|
|
timerFlameSlashCD:Start(5.9-delay, 1)
|
|
timerSwirlingFlameCD:Start(9.5-delay, 1)
|
|
timerMoltenEruptionCD:Start(23-delay, 1)
|
|
timerFieryMeteorCD:Start(32.7-delay, 1)
|
|
end
|
|
--Reset Fades
|
|
timerFieryMeteorCD:SetFade(false, 1)
|
|
timerMoltenEruptionCD:SetFade(false, 1)
|
|
timerSwirlingFlameCD:SetFade(false, 1)
|
|
timerFlameSlashCD:SetFade(false, 1)
|
|
-- if self.Options.NPAuraOnAscension then
|
|
-- DBM:FireEvent("BossMod_EnableHostileNameplates")
|
|
-- end
|
|
self:Schedule(2, updateBossDistance, self)
|
|
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.NPAuraOnAscension then
|
|
-- DBM.Nameplate:Hide(true, nil, nil, nil, true, true)
|
|
-- end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
--Krozgoth Spells
|
|
if spellId == 403459 then
|
|
self.vb.coalescingCount = self.vb.coalescingCount + 1
|
|
if nearKroz then
|
|
specWarnCoalescingVoid:Show(self.vb.coalescingCount)
|
|
specWarnCoalescingVoid:Play("aesoon")
|
|
end
|
|
timerCoalescingVoidCD:Start(self:IsMythic() and 35.3 or 21.9, self.vb.coalescingCount+1)
|
|
elseif spellId == 405016 then
|
|
self.vb.umbralCount = 0
|
|
self.vb.umbralIcon = 1
|
|
--14.3, 43.8, 35.4
|
|
timerUmbralDetonationCD:Start(self:IsMythic() and (self.vb.umbralCount == 1 and 43.8 or 35.3) or 21.9, self.vb.umbralCount+1)
|
|
elseif spellId == 407640 then
|
|
self.vb.shadowConvergeCount = self.vb.shadowConvergeCount + 1
|
|
if nearKroz then
|
|
specWarnShadowsConvergence:Show()
|
|
specWarnShadowsConvergence:Play("watchstep")
|
|
end
|
|
--22.8, 42.7, 35.3
|
|
timerShadowsConvergenceCD:Start(self:IsMythic() and (self.vb.shadowConvergeCount == 1 and 42.7 or 35.3) or 20.7, self.vb.shadowConvergeCount+1)
|
|
elseif spellId == 403699 then
|
|
self.vb.shadowStrikeCount = self.vb.shadowStrikeCount + 1
|
|
--if self:IsTanking("player", nil, nil, true, args.sourceGUID) then
|
|
|
|
--end
|
|
--9.5, 15.8, 15.8, 12.2, 15.8, 19.5, 15.8
|
|
timerShadowSpikeCD:Start(self:IsMythic() and 12.2 or 20.7, self.vb.shadowStrikeCount+1)
|
|
--Moltannia Spells
|
|
elseif spellId == 404732 then
|
|
self.vb.meteorCast = self.vb.meteorCast + 1
|
|
if nearMolt then
|
|
specWarnFieryMeteor:Show(self.vb.meteorCast)
|
|
specWarnFieryMeteor:Play("helpsoak")
|
|
end
|
|
timerFieryMeteorCD:Start(self:IsMythic() and 35.3 or 31.7, self.vb.meteorCast+1)
|
|
elseif spellId == 403101 then
|
|
self.vb.moltenEruptionCast = self.vb.moltenEruptionCast + 1
|
|
if nearMolt then
|
|
specWarnMoltenEruption:Show(self.vb.moltenEruptionCast)
|
|
specWarnMoltenEruption:Play("helpsoak")
|
|
end
|
|
--16.7, 42.6, 35.4
|
|
timerMoltenEruptionCD:Start(self:IsMythic() and (self.vb.moltenEruptionCast == 1 and 41.5 or 35.3) or 31.7, self.vb.moltenEruptionCast+1)
|
|
elseif spellId == 404896 then
|
|
self.vb.swirlingCount = self.vb.swirlingCount + 1
|
|
if nearMolt then
|
|
specWarnSwirlingFlame:Show()
|
|
specWarnSwirlingFlame:Play("watchwave")
|
|
end
|
|
local timer = 20.7--Heroic timer, TODO, see if it's still this way
|
|
if self:IsMythic() then
|
|
--10.7, 14.6, 28.0, 14.6, 20.7, 14.6
|
|
timer = self.vb.swirlingCount == 2 and 27 or (self.vb.swirlingCount % 2 == 0 and 20.7 or 14.6)
|
|
end
|
|
timerSwirlingFlameCD:Start(timer, self.vb.swirlingCount+1)
|
|
elseif spellId == 403203 then
|
|
self.vb.flameSlashCast = self.vb.flameSlashCast + 1
|
|
--if self:IsTanking("player", nil, nil, true, args.sourceGUID) then
|
|
|
|
--end
|
|
local timer = 11--Heroic timer, TODO, see if it's still this way
|
|
if self:IsMythic() then
|
|
--7.0, 15.7, 26.8, 15.9, 19.5, 15.8
|
|
timer = self.vb.flameSlashCast == 2 and 26.8 or (self.vb.flameSlashCast % 2 == 0 and 19.5 or 15.8)
|
|
end
|
|
timerFlameSlashCD:Start(timer, self.vb.flameSlashCast+1)
|
|
--Molgoth
|
|
elseif spellId == 405437 then
|
|
self.vb.meteorCast = self.vb.meteorCast + 1
|
|
specWarnGloomConflag:Show(self.vb.meteorCast)
|
|
specWarnGloomConflag:Play("helpsoak")
|
|
timerGloomConflagCD:Start(self:IsMythic() and 47.4 or 40, self.vb.meteorCast+1)
|
|
elseif spellId == 405641 then
|
|
self.vb.umbralCount = self.vb.umbralCount + 1
|
|
self.vb.umbralIcon = 1
|
|
timerBlisteringTwilightCD:Start(self:IsMythic() and 47.4 or 40, self.vb.umbralCount+1)
|
|
elseif spellId == 408193 then
|
|
self.vb.moltenEruptionCast = self.vb.moltenEruptionCast + 1
|
|
specWarnConvergentEruption:Show()
|
|
specWarnConvergentEruption:Play("helpsoak")
|
|
timerConvergentEruptionCD:Start(self:IsMythic() and 47.4 or 40, self.vb.moltenEruptionCast+1)
|
|
elseif spellId == 405914 then
|
|
self.vb.witheringVulnCount = self.vb.witheringVulnCount + 1
|
|
if self:IsTanking("player", nil, nil, true, args.sourceGUID) then
|
|
specWarnWitheringVulnerability:Show()
|
|
specWarnWitheringVulnerability:Play("defensive")
|
|
end
|
|
if self:IsMythic() then
|
|
timerWitheringVulnerabilityCD:Start(23.1, self.vb.witheringVulnCount+1)
|
|
else
|
|
--Likely a clearer explanation for this later like a spell queue that delays it later fight
|
|
if self.vb.witheringVulnCount >= 5 then
|
|
timerWitheringVulnerabilityCD:Start(40, self.vb.witheringVulnCount+1)
|
|
else
|
|
timerWitheringVulnerabilityCD:Start(35, self.vb.witheringVulnCount+1)
|
|
end
|
|
end
|
|
elseif spellId == 406783 then
|
|
self.vb.shadowflameBurstCount = self.vb.shadowflameBurstCount + 1
|
|
warnShadowflameBurst:Show(self.vb.shadowflameBurstCount)
|
|
if self:IsMythic() then
|
|
timerShadowflameBurstCD:Start(23.1, self.vb.shadowflameBurstCount+1)
|
|
else
|
|
if self.vb.shadowflameBurstCount >= 5 then
|
|
timerShadowflameBurstCD:Start(40, self.vb.shadowflameBurstCount+1)
|
|
else
|
|
timerShadowflameBurstCD:Start(35, self.vb.shadowflameBurstCount+1)
|
|
end
|
|
end
|
|
elseif spellId == 409385 then
|
|
self.vb.SandFCount = self.vb.SandFCount + 1
|
|
warnShadowandFlame:Show(self.vb.SandFCount)
|
|
timerShadowandFlameCD:Start(nil, self.vb.SandFCount+1)
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Show(6)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 406730 and self.vb.phase == 1 then--Crucible Instability
|
|
self:SetStage(2)
|
|
self.vb.bossLeft = self.vb.bossLeft - 2--Stage 1 bosses don't actually die, they fuse. This just updates mods internal count
|
|
self.vb.meteorCast = 0--Reused for Gloom Conflagration
|
|
self.vb.umbralCount = 0--Reused for Blistering Twilight
|
|
self.vb.moltenEruptionCast = 0--Reused for Converging Eruption
|
|
self.vb.witheringVulnCount = 0
|
|
self.vb.shadowflameBurstCount = 0
|
|
self:Unschedule(updateBossDistance)
|
|
timerCoalescingVoidCD:Stop()
|
|
timerUmbralDetonationCD:Stop()
|
|
timerShadowsConvergenceCD:Stop()
|
|
timerShadowSpikeCD:Stop()
|
|
timerFieryMeteorCD:Stop()
|
|
timerMoltenEruptionCD:Stop()
|
|
timerSwirlingFlameCD:Stop()
|
|
timerFlameSlashCD:Stop()
|
|
timerWitheringVulnerabilityCD:Start(17.3, 1)
|
|
timerShadowflameBurstCD:Start(19.4, 1)
|
|
timerBlisteringTwilightCD:Start(22.2, 1)
|
|
timerGloomConflagCD:Start(self:IsMythic() and 50 or 31.9, 1)
|
|
timerConvergentEruptionCD:Start(self:IsMythic() and 35.8 or 46.5, 1)
|
|
if self:IsMythic() then
|
|
timerShadowandFlameCD:Start(29.6, 1)
|
|
end
|
|
elseif spellId == 409385 then
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 401809 and args:IsPlayer() then
|
|
local amount = args.amount or 1
|
|
if (amount % 3 == 0) and amount >= 18 then--Adjust as needed
|
|
warnCorruptingShadow:Show(amount)
|
|
end
|
|
elseif spellId == 402617 and args:IsPlayer() then
|
|
local amount = args.amount or 1
|
|
if (amount % 3 == 0) and amount >= 18 then--Adjust as needed
|
|
warnBlazingHeat:Show(amount)
|
|
end
|
|
elseif spellId == 405394 and args:IsPlayer() then
|
|
local amount = args.amount or 1
|
|
if (amount % 3 == 0) and amount >= 18 then--Adjust as needed
|
|
warnShadowflame:Show(amount)
|
|
end
|
|
elseif spellId == 405036 then
|
|
local icon = self.vb.umbralIcon
|
|
if self.Options.SetIconOnUmbral then
|
|
self:SetIcon(args.destName, icon)
|
|
end
|
|
if args:IsPlayer() then
|
|
specWarnUmbralDetonation:Show()
|
|
specWarnUmbralDetonation:Play("targetyou")
|
|
yellUmbralDetonation:Yell()
|
|
yellUmbralDetonationFades:Countdown(spellId)
|
|
end
|
|
if nearKroz then
|
|
warnUmbralDetonation:CombinedShow(0.5, self.vb.umbralCount, args.destName)
|
|
end
|
|
self.vb.umbralIcon = self.vb.umbralIcon + 1
|
|
elseif spellId == 405642 then
|
|
local icon = self.vb.umbralIcon
|
|
if self.Options.SetIconOnBlistering then
|
|
self:SetIcon(args.destName, icon)
|
|
end
|
|
if args:IsPlayer() then
|
|
specWarnBlisteringTwilight:Show()
|
|
specWarnBlisteringTwilight:Play("targetyou")
|
|
yellBlisteringTwilight:Yell()
|
|
yellBlisteringTwilightFades:Countdown(spellId)
|
|
end
|
|
if nearKroz then
|
|
warnBlisteringTwilight:CombinedShow(0.5, self.vb.umbralCount, args.destName)
|
|
end
|
|
self.vb.umbralIcon = self.vb.umbralIcon + 1
|
|
elseif spellId == 405914 and not args:IsPlayer() then
|
|
specWarnWitheringVulnerabilityTaunt:Show(args.destName)
|
|
specWarnWitheringVulnerabilityTaunt:Play("tauntboss")
|
|
end
|
|
end
|
|
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 401809 and args:IsPlayer() then
|
|
warnCorruptingShadowFades:Show()
|
|
elseif spellId == 402617 and args:IsPlayer() then
|
|
warnBlazingHeatFades:Show()
|
|
elseif spellId == 405036 then
|
|
if self.Options.SetIconOnUmbral then
|
|
self:SetIcon(args.destName, 0)
|
|
end
|
|
if args:IsPlayer() then
|
|
yellUmbralDetonationFades:Cancel()
|
|
end
|
|
elseif spellId == 405642 then
|
|
if self.Options.SetIconOnBlistering then
|
|
self:SetIcon(args.destName, 0)
|
|
end
|
|
if args:IsPlayer() then
|
|
yellBlisteringTwilightFades:Cancel()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
if (spellId == 405084 or spellId == 405645) and destGUID == UnitGUID("player") and self:AntiSpam(3, 2) then
|
|
specWarnGTFO:Show(spellName)
|
|
specWarnGTFO:Play("watchfeet")
|
|
end
|
|
end
|
|
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
|
|
|