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.

498 lines
22 KiB

4 years ago
local mod = DBM:NewMod(2457, "DBM-Sepulcher", nil, 1195)
local L = mod:GetLocalizedStrings()
3 years ago
mod:SetRevision("20220920224913")
mod:SetCreatureID(181398, 181399)
4 years ago
mod:SetEncounterID(2543)
mod:SetUsedIcons(1, 2, 6, 7, 8)
mod:SetHotfixNoticeRev(20220320000000)
mod:SetMinSyncRevision(20220308000000)
4 years ago
--mod.respawnTime = 29
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 360006 361913 361923 359960 360717 360145 360229 360284 360300 360304",
"SPELL_CAST_SUCCESS 360420",
"SPELL_AURA_APPLIED 360300 360304 360012 361934 362020 361945 359963 360418 360146 360148 363191 360241 360287 364985",
4 years ago
"SPELL_AURA_APPLIED_DOSE 360287",
"SPELL_AURA_REMOVED 360300 360304 360012 361934 362020 361945 360418 360146 360148 363191 360241 360516 364985",
4 years ago
"UNIT_DIED"
)
--TODO, pre spread warning for cloud of carrion?
--TODO, manifest shadows need a special warning?
--TODO, possibly adjust timing of opened veins warning to better align with swaps of other boss, when more precise timings are known
--TODO, properly detect aura of shadow up. not sure if the buff is on boss or players, boss is assumed ATM
--TODO, tank defensive warnings may feel like too much by default and be better as opt ins, will guage feedback from testing (if there is testing)
--[[
(ability.id = 360006 or ability.id = 361913 or ability.id = 359960 or ability.id = 360717 or ability.id = 360145 or ability.id = 360229 or ability.id = 360284 or ability.id = 360300 or ability.id = 360304) and type = "begincast"
or (ability.id = 360319 or ability.id = 360420) and type = "cast"
or ability.id = 363191 or ability.id = 360516
or (ability.id = 360300 or ability.id = 360304) and type = "removebuff"
--]]
4 years ago
--General
--local specWarnGTFO = mod:NewSpecialWarningGTFO(340324, nil, nil, nil, 1, 8)
local berserkTimer = mod:NewBerserkTimer(600)
4 years ago
mod:AddRangeFrameOption("5/8/10")
4 years ago
--Mal'Ganis
4 years ago
mod:AddTimerLine(DBM:EJ_GetSectionInfo(23927))
4 years ago
local warnCloudofCarrion = mod:NewTargetNoFilterAnnounce(360012, 3)
local warnManifestShadows = mod:NewCountAnnounce(361913, 3)
local warnFullyFormed = mod:NewSpellAnnounce(361945, 3)
local warnUntoDarknessOver = mod:NewEndAnnounce(360319, 1)
4 years ago
local specWarnUntoDarkness = mod:NewSpecialWarningCount(360319, nil, nil, nil, 2, 2)
4 years ago
local specWarnCloudofCarrion = mod:NewSpecialWarningMoveAway(360012, nil, nil, nil, 2, 2)--Pre spread warning?
4 years ago
local specWarnCloudofCarrionDebuff = mod:NewSpecialWarningYou(360012, nil, nil, nil, 1, 2)
local specWarnCloudofCarrionDebuffMove = mod:NewSpecialWarningMoveTo(360012, false, nil, nil, 1, 2)--Off by default because person has to actually have basic understanding of mechanic first, then agree to this helpful warning to help with it
local yellCloudofCarrion = mod:NewYell(360012)
local yellBitingWounds = mod:NewIconRepeatYell(364985)
4 years ago
local specWarnLeechingClaws = mod:NewSpecialWarningDefensive(359960, nil, nil, nil, 1, 2)
local specWarnOpenedVeins = mod:NewSpecialWarningTaunt(359963, nil, nil, nil, 1, 2)
----Shadow adds
local specWarnRavenousHunger = mod:NewSpecialWarningInterruptCount(361923, "HasInterrupt", nil, nil, 1, 2)
4 years ago
local timerUntoDarknessCD = mod:NewCDCountTimer(102.4, 360319, nil, nil, nil, 6)--100+3sec cast time with standard variation, paused by infiltration of dread
4 years ago
local timerSwarmofDecay = mod:NewBuffActiveTimer(20, 360300, 56158, nil, nil, 6)--Short text swarm, timer is used for both swarms
local timerCloudofCarrionCD = mod:NewCDCountTimer(21.8, 360012, nil, nil, nil, 3)
local timerManifestShadowsCD = mod:NewCDCountTimer(1, 361913, nil, nil, nil, 1)--No in between time
local timerLeechingClawsCD = mod:NewCDTimer(16.9, 359960, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON, nil, 2, 4)
4 years ago
mod:AddInfoFrameOption(360319, false)
mod:AddSetIconOption("SetIconOnManifestShadows", 361913, true, true, {6, 7, 8})--On by default since they'll be used by most interrupt helpers
mod:AddNamePlateOption("NPAuraOnIncompleteForm", 362020, false)--Off by default so it doesn't cover up interrupt weak aura counters, which i suspect many will use
mod:AddNamePlateOption("NPAuraOnFullyFormed", 361945, true)--Might also cover up interrupt weak auras, but this signifies target is now very dangerous but killable on mythic difficulty
mod:GroupSpells(360012, 364985)--Group biting wounds with cloud of carrion
4 years ago
--Kin'tessa
4 years ago
mod:AddTimerLine(DBM:EJ_GetSectionInfo(23929))
local warnShatterMind = mod:NewSpellAnnounce(360420, 4)--Kind of a generic alert to say "this pull is a wash"
local warnFearfulTrepidation = mod:NewTargetCountAnnounce(360146, 3, nil, nil, 39176, nil, nil, nil, true)
4 years ago
local warnAuraofShadows = mod:NewSpellAnnounce(363191, 4)
local warnAuraofShadowsOver = mod:NewEndAnnounce(363191, 1)
local warnSlumberCloud = mod:NewCountAnnounce(360229, 2)
local warnAnguishingStrike = mod:NewStackAnnounce(360284, 2, nil, "Tank|Healer", 31907)--shorttext "Strike"
4 years ago
4 years ago
local specWarnInfiltrationofDread = mod:NewSpecialWarningCount(360717, nil, nil, nil, 2, 2)
local specWarnFearfulTrepidation = mod:NewSpecialWarningYou(360146, nil, 39176, nil, 2, 2)
local yellFearfulTrepidation = mod:NewShortPosYell(360146, 39176)--Shorttext "Fear"
local yellFearfulTrepidationFades = mod:NewIconFadesYell(360146, 39176)
local specWarnBurstingDread = mod:NewSpecialWarningDispel(360148, "RemoveMagic", 39176, nil, 1, 2)--shorttext "Fear"
4 years ago
local specWarnUnsettlingDreams = mod:NewSpecialWarningDispel(360241, "RemoveMagic", nil, nil, 1, 2)
local specWarnAnguishingStrike = mod:NewSpecialWarningDefensive(360284, nil, 31907, nil, 1, 2)
local specWarnAnguishingStrikeStack = mod:NewSpecialWarningStack(360284, nil, 3, 31907, nil, 1, 6)
local specWarnAnguishingStrikeTaunt = mod:NewSpecialWarningTaunt(360284, nil, 31907, nil, 1, 2)
4 years ago
local timerInfiltrationofDreadCD = mod:NewCDCountTimer(122.5, 360717, nil, nil, nil, 6)--120+3sec cast time with standard variation
4 years ago
local timerParanoia = mod:NewBuffFadesTimer(25, 360418, nil, nil, nil, 5)
local timerFearfulTrepidationCD = mod:NewCDCountTimer(29.1, 360145, 39176, nil, nil, 3)--DBM_COMMON_L.MAGIC_ICON
local timerSlumberCloudCD = mod:NewCDCountTimer(32.8, 360229, nil, nil, nil, 3)
local timerAnguishingStrikeCD = mod:NewCDTimer(9.7, 360284, 31907, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
4 years ago
mod:AddSetIconOption("SetIconOnFearfulTrepidation", 360146, true, false, {1, 2})--On by default because max targets shows 2 debuffs can be out, and don't want both carrions running to same person. with icons the carrions can make split decisions to pick an icon each are going to
mod:GroupSpells(360717, 360418)--Group paranoia with parent mechanic Infiltration of dread
4 years ago
--Mal'Ganis
4 years ago
mod.vb.darknessCount = 0
mod.vb.carrionCount = 0
mod.vb.carrionDebuffs = 0
4 years ago
mod.vb.shadowsCount = 0
mod.vb.shadowsIcon = 8
--Kin'tessa
4 years ago
mod.vb.trepidationIcon = 1
mod.vb.infiltrationCount = 0
mod.vb.fearfulCount = 0
mod.vb.slumberCount = 0
4 years ago
mod.vb.auraofShadowsOn = false
local castsPerGUID = {}
local playerDebuffed = false
local carrionTime = 0
4 years ago
--Things get a bit complicated with debuff priority
local function updateRangeFrame(self)
if not self.Options.RangeFrame then return end
if self.vb.auraofShadowsOn then--Mythic fear mechanic
--I know this is smaller range than fearful, but if fearful target goes to 0 right away they'll get feared into bumfuck
--They are just going to have to be smart enough to joust this (stay within 8 til right before it expires then move out)
DBM.RangeCheck:Show(8)
elseif DBM:UnitDebuff("player", 360146) then--Fearful Trepidation
DBM.RangeCheck:Show(10)
elseif DBM:UnitDebuff("player", 360012) then--Cloud of Carrion
DBM.RangeCheck:Show(5)
else
DBM.RangeCheck:Hide()
end
end
local function BugsRepeater(self, text)
yellBitingWounds:Yell(text)
self:Schedule(1.5, BugsRepeater, self, text)
end
4 years ago
function mod:OnCombatStart(delay)
self.vb.darknessCount = 0
self.vb.shadowsCount = 0
self.vb.shadowsIcon = 8
self.vb.carrionCount = 0
self.vb.carrionDebuffs = 0
4 years ago
self.vb.trepidationIcon = 1
self.vb.infiltrationCount = 0
self.vb.fearfulCount = 0
self.vb.slumberCount = 0
4 years ago
playerDebuffed = false
--Mal'Ganis
timerCloudofCarrionCD:Start(6-delay, 1)--6-7 (leaning toward 7 on mythic)
timerManifestShadowsCD:Start(12.1-delay, 1)--12-13 (leaning toward 13 on mythic)
timerLeechingClawsCD:Start(15.7-delay)
timerUntoDarknessCD:Start(50-delay, 1)
4 years ago
--Kin'tessa
timerAnguishingStrikeCD:Start(8.2-delay)
timerSlumberCloudCD:Start(12.1-delay, 1)--12-13
timerFearfulTrepidationCD:Start(25.2-delay, 1)
timerInfiltrationofDreadCD:Start(123-delay, 1)
berserkTimer:Start(self:IsMythic() and 540 or self:IsHeroic() and 600 or 780)
4 years ago
if self.Options.InfoFrame then
DBM.InfoFrame:SetHeader(DBM_CORE_L.INFOFRAME_POWER)
DBM.InfoFrame:Show(2, "enemypower", 1)--TODO, figure out power type
end
if self.Options.NPAuraOnIncompleteForm or self.Options.NPAuraOnFullyFormed then
DBM:FireEvent("BossMod_EnableHostileNameplates")
end
end
function mod:OnCombatEnd()
table.wipe(castsPerGUID)
if self.Options.InfoFrame then
DBM.InfoFrame:Hide()
end
if self.Options.RangeFrame then
DBM.RangeCheck:Hide()
end
if self.Options.NPAuraOnIncompleteForm or self.Options.NPAuraOnFullyFormed then
DBM.Nameplate:Hide(true, nil, nil, nil, true, true)
end
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 360006 then
carrionTime = GetTime()
self.vb.carrionCount = self.vb.carrionCount + 1
4 years ago
specWarnCloudofCarrion:Show()
specWarnCloudofCarrion:Play("scatter")
timerCloudofCarrionCD:Start(nil, self.vb.carrionCount+1)--21.8
4 years ago
elseif spellId == 361913 then
self.vb.shadowsCount = self.vb.shadowsCount + 1
warnManifestShadows:Show(self.vb.shadowsCount)
-- timerManifestShadowsCD:Start(nil, self.vb.shadowsCount+1)--Never recast more than once between stages/rotations
4 years ago
self.vb.shadowsIcon = 8
elseif spellId == 361923 and castsPerGUID[args.sourceGUID] then
4 years ago
castsPerGUID[args.sourceGUID] = castsPerGUID[args.sourceGUID] + 1
local count = castsPerGUID[args.sourceGUID]
if self:CheckInterruptFilter(args.sourceGUID, false, false) then
specWarnRavenousHunger:Show(args.sourceName, count)
if count == 1 then
specWarnRavenousHunger:Play("kick1r")
elseif count == 2 then
specWarnRavenousHunger:Play("kick2r")
elseif count == 3 then
specWarnRavenousHunger:Play("kick3r")
elseif count == 4 then
specWarnRavenousHunger:Play("kick4r")
elseif count == 5 then
specWarnRavenousHunger:Play("kick5r")
else
specWarnRavenousHunger:Play("kickcast")
end
end
elseif spellId == 359960 then
if self:IsTanking("player", nil, nil, true, args.sourceGUID) then--Change to boss1/2 if confirmed it's consistent
4 years ago
specWarnLeechingClaws:Show()
specWarnLeechingClaws:Play("defensive")
end
timerLeechingClawsCD:Start()--16.9
elseif spellId == 360717 and self:AntiSpam(3, 1) then
4 years ago
self.vb.infiltrationCount = self.vb.infiltrationCount + 1
specWarnInfiltrationofDread:Show(self.vb.infiltrationCount)
specWarnInfiltrationofDread:Play("specialsoon")
--Stop some timers (May still be missing some that actually pause/resume instead, but seems accurate enough)
--Mal'Ganis
timerCloudofCarrionCD:Stop()
timerManifestShadowsCD:Stop()
timerLeechingClawsCD:Stop()
--Kin'tessa
timerAnguishingStrikeCD:Stop()
timerSlumberCloudCD:Stop()
3 years ago
if self:IsFated() then
self:AffixEvent(0)
end
elseif (spellId == 360300 or spellId == 360304) and self:AntiSpam(3, 2) then
self.vb.darknessCount = self.vb.darknessCount + 1
specWarnUntoDarkness:Show(self.vb.darknessCount)
specWarnUntoDarkness:Play("specialsoon")
--Stop some timers (May still be missing some that actually pause/resume instead, but seems accurate enough)
--Mal'Ganis
timerCloudofCarrionCD:Stop()
timerManifestShadowsCD:Stop()
timerLeechingClawsCD:Stop()
--Kin'tessa
timerAnguishingStrikeCD:Stop()
timerFearfulTrepidationCD:Stop()
4 years ago
elseif spellId == 360145 then
self.vb.fearfulCount = self.vb.fearfulCount + 1
4 years ago
self.vb.trepidationIcon = 1
timerFearfulTrepidationCD:Start(nil, self.vb.fearfulCount+1)--29.1
4 years ago
elseif spellId == 360229 then
self.vb.slumberCount = self.vb.slumberCount + 1--Doesn't reset, used by timers and announce
warnSlumberCloud:Show(self.vb.slumberCount)
timerSlumberCloudCD:Start(self:IsMythic() and 32.8 or 45, self.vb.slumberCount+1)
4 years ago
elseif spellId == 360284 then
if self:IsTanking("player", nil, nil, true, args.sourceGUID) then--Change to boss1/2 if confirmed it's consistent
4 years ago
specWarnAnguishingStrike:Show()
specWarnAnguishingStrike:Play("defensive")
end
timerAnguishingStrikeCD:Start()--9.7
4 years ago
end
end
function mod:SPELL_CAST_SUCCESS(args)
local spellId = args.spellId
if spellId == 360420 and self:AntiSpam(3, 1) then
4 years ago
warnShatterMind:Show()
end
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 360012 then
self.vb.carrionDebuffs = self.vb.carrionDebuffs + 1
4 years ago
if args:IsPlayer() then
specWarnCloudofCarrionDebuff:Show()
specWarnCloudofCarrionDebuff:Play("range5")
yellCloudofCarrion:Yell()
updateRangeFrame(self)
else
if (GetTime() - carrionTime) < 4 then
warnCloudofCarrion:CombinedShow(0.5, args.destName)
end
4 years ago
end
elseif spellId == 361934 or spellId == 362020 then
if self.Options.SetIconOnManifestShadows then
self:ScanForMobs(args.destGUID, 2, self.vb.shadowsIcon, 1, nil, 12, "SetIconOnManifestShadows")
end
self.vb.shadowsIcon = self.vb.shadowsIcon - 1
4 years ago
if self.Options.NPAuraOnIncompleteForm then
DBM.Nameplate:Show(true, args.sourceGUID, spellId)
end
elseif spellId == 361945 then
if self:AntiSpam(3, 3) then--If multiple adds they'll fully form at same time
4 years ago
warnFullyFormed:Show()
end
if self.Options.NPAuraOnFullyFormed then
DBM.Nameplate:Show(true, args.sourceGUID, spellId)
end
elseif spellId == 359963 then
local uId = DBM:GetRaidUnitId(args.destName)
if self:IsTanking(uId) then--If not on a tank, it's just some numpty in wrong place
if not args:IsPlayer() then
local _, _, _, _, _, expireTime = DBM:UnitDebuff("player", spellId)
local remaining
if expireTime then
remaining = expireTime-GetTime()
end
if (not remaining or remaining and remaining < 5) and not UnitIsDeadOrGhost("player") then
specWarnOpenedVeins:Show(args.destName)
specWarnOpenedVeins:Play("tauntboss")
end
4 years ago
end
end
elseif (spellId == 360300 or spellId == 360304) and self:AntiSpam(3, 4) then--Darkness
timerSwarmofDecay:Start()
--This timer pauses, but also has a min time of 5 seconds so first we need to check and extend that if applicable
if timerSlumberCloudCD:GetRemaining(self.vb.slumberCount+1) < 4.6 then
local elapsed, total = timerSlumberCloudCD:GetTime(self.vb.slumberCount+1)
local extend = 4.6 - (total-elapsed)
timerSlumberCloudCD:Update(elapsed, total+extend, self.vb.slumberCount+1)
DBM:Debug("timerSlumberCloudCD extended by: "..extend, 2)
end
timerSlumberCloudCD:Pause(self.vb.slumberCount+1)
3 years ago
if self:IsFated() then
self:AffixEvent(0)
end
elseif spellId == 360516 and self:AntiSpam(3, 5) then--Infiltration
timerUntoDarknessCD:Pause(self.vb.darknessCount+1)--Pauses since bosses stop gaining energy
--This timer pauses, but also has a min time of 5 seconds so first we need to check and extend that if applicable
if timerFearfulTrepidationCD:GetRemaining(self.vb.fearfulCount+1) < 4.6 then
local elapsed, total = timerFearfulTrepidationCD:GetTime(self.vb.fearfulCount+1)
local extend = 4.6 - (total-elapsed)
timerFearfulTrepidationCD:Update(elapsed, total+extend, self.vb.fearfulCount+1)
DBM:Debug("timerFearfulTrepidationCD extended by: "..extend, 2)
end
timerFearfulTrepidationCD:Pause(self.vb.fearfulCount+1)
4 years ago
elseif spellId == 360418 and args:IsPlayer() then
timerParanoia:Start(self:IsEasy() and 40 or 25)
4 years ago
elseif spellId == 360146 then
local icon = self.vb.trepidationIcon
if self.Options.SetIconOnFearfulTrepidation then
self:SetIcon(args.destName, icon)
end
if args:IsPlayer() then
specWarnFearfulTrepidation:Show()
specWarnFearfulTrepidation:Play("runout")
yellFearfulTrepidation:Yell(icon, icon)
yellFearfulTrepidationFades:Countdown(spellId, nil, icon)
updateRangeFrame(self)
specWarnCloudofCarrionDebuffMove:Cancel()
specWarnCloudofCarrionDebuffMove:CancelVoice()
4 years ago
elseif self.Options.SpecWarn360012moveto and DBM:UnitDebuff("player", 360012) then--If have Carrion debuff, spec warn to runt o tepidate debuff to clear it
specWarnCloudofCarrionDebuffMove:CombinedShow(0.5, args.destName)
specWarnCloudofCarrionDebuffMove:ScheduleVoice(0.5, "gathershare")
4 years ago
end
warnFearfulTrepidation:CombinedShow(0.5, self.vb.fearfulCount, args.destName)
4 years ago
self.vb.trepidationIcon = self.vb.trepidationIcon + 1
elseif spellId == 360148 then
if args:IsPlayer() then
playerDebuffed = true
specWarnBurstingDread:Cancel()
specWarnBurstingDread:CancelVoice()
end
--Smart code that only warns player to dispel it, if they thesmelves aren't a victim of it and dispel is off CD
3 years ago
if self:CheckDispelFilter("magic") and not playerDebuffed then
4 years ago
specWarnBurstingDread:CombinedShow(0.3, args.destName)
specWarnBurstingDread:ScheduleVoice(0.3, "helpdispel")
end
elseif spellId == 360241 then
if args:IsPlayer() then
playerDebuffed = true
specWarnUnsettlingDreams:Cancel()
specWarnUnsettlingDreams:CancelVoice()
end
--Smart code that only warns player to dispel it, if they thesmelves aren't a victim of it and dispel is off CD
3 years ago
if self:CheckDispelFilter("magic") and not playerDebuffed then
4 years ago
specWarnUnsettlingDreams:CombinedShow(0.3, args.destName)
specWarnUnsettlingDreams:ScheduleVoice(0.3, "helpdispel")
end
elseif spellId == 363191 then
self.vb.auraofShadowsOn = true
updateRangeFrame(self)
warnAuraofShadows:Show()
elseif spellId == 360287 then
local uId = DBM:GetRaidUnitId(args.destName)
if self:IsTanking(uId) then--If not on a tank, it's just some numpty in wrong place
local amount = args.amount or 1
3 years ago
if args:IsPlayer() and amount >= 3 then
specWarnAnguishingStrikeStack:Show(amount)
specWarnAnguishingStrikeStack:Play("stackhigh")
4 years ago
else
warnAnguishingStrike:Show(args.destName, amount)
end
end
elseif spellId == 364985 then
if args:IsPlayer() then
self:Unschedule(BugsRepeater)
self:Schedule(1.5, BugsRepeater, self, 7)
end
4 years ago
end
end
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
function mod:SPELL_AURA_REMOVED(args)
local spellId = args.spellId
if (spellId == 360300 or spellId == 360304) and self:AntiSpam(3, 6) then--Both Swarm casts tied to Darkness
warnUntoDarknessOver:Show()
4 years ago
timerSwarmofDecay:Stop()
--May still be missing some that actually pause/resume instead, but seems accurate enough
--Mal
timerLeechingClawsCD:Start(5)
timerCloudofCarrionCD:Start(7.3, self.vb.carrionCount+1)
timerManifestShadowsCD:Start(10.1, self.vb.shadowsCount+1)
timerUntoDarknessCD:Start(nil, self.vb.darknessCount+1)--102.4
--Kintessa
timerFearfulTrepidationCD:Start(5, self.vb.fearfulCount+1)
timerAnguishingStrikeCD:Start(7.4)--7.4-9.7
--This timer resumes
timerSlumberCloudCD:Resume(self.vb.slumberCount+1)
3 years ago
if self:IsFated() then
self:AffixEvent(1, 2)
end
elseif spellId == 360516 and self:AntiSpam(3, 7) then--Infiltration
--May still be missing some that actually pause/resume instead, but seems accurate enough
--Mal
timerLeechingClawsCD:Start(4.6)--4.6-5.3
timerCloudofCarrionCD:Start(6, self.vb.carrionCount+1)--6-7.1
timerManifestShadowsCD:Start(10.6, self.vb.shadowsCount+1)
timerUntoDarknessCD:Resume(self.vb.darknessCount+1)
--Kintessa
timerSlumberCloudCD:Start(4.6, self.vb.slumberCount+1)--4.6-5.3
timerAnguishingStrikeCD:Start(7.1)
timerInfiltrationofDreadCD:Start(nil, self.vb.infiltrationCount+1)--122.5
--These timers resume
timerFearfulTrepidationCD:Resume(self.vb.fearfulCount+1)
3 years ago
if self:IsFated() then
self:AffixEvent(1, 2)
end
elseif spellId == 360418 and args:IsPlayer() then
timerParanoia:Stop()
4 years ago
elseif spellId == 360012 then
self.vb.carrionDebuffs = self.vb.carrionDebuffs + 1
4 years ago
if args:IsPlayer() then
updateRangeFrame(self)
end
elseif spellId == 361934 or spellId == 362020 then
if self.Options.NPAuraOnIncompleteForm then
DBM.Nameplate:Hide(true, args.sourceGUID, spellId)
end
if not castsPerGUID[args.destGUID] then
castsPerGUID[args.destGUID] = 0
end
4 years ago
elseif spellId == 361945 then
if self.Options.NPAuraOnFullyFormed then
DBM.Nameplate:Hide(true, args.sourceGUID, spellId)
end
elseif spellId == 360146 then
if self.Options.SetIconOnFearfulTrepidation then
self:SetIcon(args.destName, 0)
end
if args:IsPlayer() then
yellFearfulTrepidationFades:Cancel()
updateRangeFrame(self)
end
elseif spellId == 360148 then
if args:IsPlayer() and not DBM:UnitDebuff("player", 360241) then
playerDebuffed = false
end
elseif spellId == 360241 then
if args:IsPlayer() and not DBM:UnitDebuff("player", 360148) then
playerDebuffed = false
end
elseif spellId == 363191 then
self.vb.auraofShadowsOn = false
updateRangeFrame(self)
warnAuraofShadowsOver:Show()
elseif spellId == 364985 then
if args:IsPlayer() then
self:Unschedule(BugsRepeater)
end
4 years ago
end
end
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 183138 then--Manifest Shadows/Inchoate Shadow
castsPerGUID[args.destGUID] = nil
elseif cid == 181398 then--Mal'Ganis
timerUntoDarknessCD:Stop()
timerCloudofCarrionCD:Stop()
timerManifestShadowsCD:Stop()
timerLeechingClawsCD:Stop()
elseif cid == 181399 then--Kin'tessa
4 years ago
timerInfiltrationofDreadCD:Stop()
timerFearfulTrepidationCD:Stop()
timerSlumberCloudCD:Stop()
timerAnguishingStrikeCD:Stop()
end
end