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.
186 lines
7.5 KiB
186 lines
7.5 KiB
local mod = DBM:NewMod(2397, "DBM-Party-Shadowlands", 6, 1187)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20240203193824")
|
|
mod:SetCreatureID(164451, 164463, 164461)--Dessia, Paceran, Sathel
|
|
mod:SetEncounterID(2391)
|
|
mod:SetHotfixNoticeRev(20220416000000)
|
|
mod:SetBossHPInfoToHighest()
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 320063",
|
|
"SPELL_CAST_SUCCESS 320069 320272 320248 333231 333222 320063 333540",
|
|
"SPELL_AURA_APPLIED 320069 324085 320272 320293 333231 333222 333540 326892",
|
|
"SPELL_PERIODIC_DAMAGE 320180",
|
|
"SPELL_PERIODIC_MISSED 320180",
|
|
"UNIT_SPELLCAST_SUCCEEDED boss1 boss2 boss3",
|
|
"UNIT_DIED"
|
|
)
|
|
|
|
--[[
|
|
ability.id = 320063 and type = "begincast"
|
|
or (ability.id = 320069 or ability.id = 320272 or ability.id = 333222 or ability.id = 320248 or ability.id = 333231 or ability.id = 333540) and type = "cast"
|
|
or (ability.id = 324085 or ability.id = 320293) and (type = "applybuff" or type = "applydebuff")
|
|
or (target.id = 164451 or target.id = 164463 or target.id = 164461) and type = "death"
|
|
or type = "dungeonencounterstart" or type = "dungeonencounterend"
|
|
--]]
|
|
--Dessia the Decapitator
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(21582))
|
|
local warnSlam = mod:NewSpellAnnounce(320063, 3, nil, "Tank")
|
|
local warnMortalStrike = mod:NewTargetNoFilterAnnounce(320069, 3, nil, "Tank|Healer")
|
|
local warnEnrage = mod:NewTargetNoFilterAnnounce(324085, 3)
|
|
local warnFixate = mod:NewTargetNoFilterAnnounce(326892, 2)
|
|
|
|
local specWarnSlam = mod:NewSpecialWarningDefensive(320063, false, nil, 2, 1, 2)--Cast very often, let this be an opt in
|
|
local specWarnEnrage = mod:NewSpecialWarningDispel(324085, "RemoveEnrage", nil, nil, 1, 2)
|
|
local specWarnFixate = mod:NewSpecialWarningYou(326892, nil, nil, nil, 1, 2)
|
|
|
|
local timerMortalStrikeCD = mod:NewCDTimer(21.8, 320069, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--21.8-32.7
|
|
local timerSlamCD = mod:NewCDTimer(7.3, 320063, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--7.3-10.9
|
|
--Paceran the Virulent
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(21581))
|
|
local warnGeneticAlteration = mod:NewSpellAnnounce(320248, 2)--Goes on everyone
|
|
local specWarnGTFO = mod:NewSpecialWarningGTFO(320180, nil, nil, nil, 1, 8)
|
|
|
|
local timerNoxiousSporeCD = mod:NewCDTimer(15.8, 320180, nil, nil, nil, 3)
|
|
--Sathel the Accursed
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(21591))
|
|
local warnSearingDeath = mod:NewTargetAnnounce(333231, 3)
|
|
local warnOnewithDeath = mod:NewTargetNoFilterAnnounce(320293, 3)
|
|
|
|
local specWarnSearingDeath = mod:NewSpecialWarningMoveAway(333231, nil, nil, nil, 1, 2)
|
|
local yellSearingDeath = mod:NewYell(333231)
|
|
local specWarnSpectralTransference = mod:NewSpecialWarningDispel(320272, "MagicDispeller", nil, nil, 1, 2)
|
|
|
|
local timerSearingDeathCD = mod:NewCDTimer(11.7, 333231, nil, nil, nil, 3)--11.7-24
|
|
local timerSpectralTransferenceCD = mod:NewCDTimer(13.4, 320272, nil, nil, nil, 5, nil, DBM_COMMON_L.MAGIC_ICON)--13.4-57
|
|
--Xira the Underhanded
|
|
mod:AddTimerLine(DBM:EJ_GetSectionInfo(23841))
|
|
local warnOpportunityStrikes = mod:NewTargetNoFilterAnnounce(333540, 4)--And re-added in 9.1?
|
|
|
|
local yellOpportunityStrikes = mod:NewYell(333540)
|
|
|
|
local timerOpportunityStrikesCD = mod:NewCDTimer(30, 333540, nil, nil, nil, 3, nil, DBM_COMMON_L.MYTHIC_ICON)--And re-added in 9.1?
|
|
|
|
function mod:OnCombatStart(delay)
|
|
--Dessia
|
|
timerSlamCD:Start(9.4-delay)
|
|
timerMortalStrikeCD:Start(22.6-delay)--SUCCESS (Health based?), 22-26 from some data but 2nd cast gets worse 21-32 variance in logs
|
|
--Paceran
|
|
timerNoxiousSporeCD:Start(17.7-delay)
|
|
--Sathel
|
|
timerSearingDeathCD:Start(10.2-delay)--SUCCESS 10-15
|
|
timerSpectralTransferenceCD:Start(10.5-delay)--SUCCESS 10-13
|
|
if self:IsMythic() then
|
|
timerOpportunityStrikesCD:Start(40-delay)
|
|
end
|
|
local trashMod = DBM:GetModByName("TheaterofPainTrash")
|
|
if trashMod then
|
|
trashMod.isTrashModBossFightAllowed = true
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
local trashMod = DBM:GetModByName("TheaterofPainTrash")
|
|
if trashMod then
|
|
trashMod.isTrashModBossFightAllowed = false
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 320063 and self:AntiSpam(4, 1) then--Boss can stutter cast this (self interrupt and start cast over)
|
|
if self.Options.SpecWarn320063defensive2 and self:IsTanking("player", nil, nil, true, args.sourceGUID) then
|
|
specWarnSlam:Show()
|
|
specWarnSlam:Play("defensive")
|
|
else
|
|
warnSlam:Show()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 320069 then
|
|
-- timerMortalStrikeCD:Start()
|
|
elseif spellId == 320272 or spellId == 333222 then--Seems to have two spellIds in older logs but may be fixed in newer ones
|
|
timerSpectralTransferenceCD:Start()
|
|
elseif spellId == 320248 then
|
|
warnGeneticAlteration:Show()
|
|
elseif spellId == 333231 then
|
|
timerSearingDeathCD:Start()
|
|
elseif spellId == 320063 then
|
|
timerSlamCD:Start(6.4)--Started in success do to stutter casting, cast time removed from CD
|
|
elseif spellId == 333540 then
|
|
timerOpportunityStrikesCD:Start()--Not seen more than once during a pull, rarely even see it once
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 320069 then
|
|
warnMortalStrike:Show(args.destName)
|
|
elseif spellId == 324085 then
|
|
if self.Options.SpecWarn324085dispel then
|
|
specWarnEnrage:Show(args.destName)
|
|
else
|
|
warnEnrage:Show(args.destName)
|
|
end
|
|
elseif spellId == 320272 or spellId == 333222 then--Seems to have two spellIds in older logs but may be fixed in newer ones
|
|
specWarnSpectralTransference:Show(args.destName)--Combined because of Mass Transference
|
|
specWarnSpectralTransference:Play("dispelboss")
|
|
elseif spellId == 320293 then
|
|
warnOnewithDeath:Show(args.destName)
|
|
elseif spellId == 333231 then
|
|
if args:IsPlayer() then
|
|
specWarnSearingDeath:Show()
|
|
specWarnSearingDeath:Play("runout")
|
|
yellSearingDeath:Yell()
|
|
else
|
|
warnSearingDeath:Show(args.destName)
|
|
end
|
|
elseif spellId == 333540 then
|
|
warnOpportunityStrikes:Show(args.destName)
|
|
if args:IsPlayer() then
|
|
yellOpportunityStrikes:Yell()
|
|
end
|
|
elseif spellId == 326892 and args:IsDestTypePlayer() then
|
|
if args:IsPlayer() then
|
|
specWarnFixate:Show()
|
|
specWarnFixate:Play("targetyou")
|
|
else
|
|
warnFixate:Show(args.destName)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
if spellId == 320180 and destGUID == UnitGUID("player") and self:AntiSpam(2, 2) 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 == 164451 then--Dessia the Decapitator
|
|
timerMortalStrikeCD:Stop()
|
|
timerSlamCD:Stop()
|
|
elseif cid == 164463 then--Paceran the Virulent
|
|
timerNoxiousSporeCD:Stop()
|
|
elseif cid == 164461 then--Sathel the Accursed
|
|
timerSpectralTransferenceCD:Stop()
|
|
timerSearingDeathCD:Stop()
|
|
end
|
|
end
|
|
|
|
--"<48.53 02:10:59> [UNIT_SPELLCAST_SUCCEEDED] Paceran the Virulent(??) -Noxious Spore- [[boss3:Cast-3-2084-2293-25939-324118-000024A504:324118]]
|
|
--"<52.18 02:11:03> [CLEU] SPELL_AURA_APPLIED#Creature-0-2084-2293-25939-164463-000024A49F#Paceran the Virulent#Player-970-004E060B#Viterratwo-TheMaw#320180#Noxious Spore#DEBUFF#nil", -- [579]
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
|
if spellId == 324118 then--Noxious Spore (spawn event)
|
|
timerNoxiousSporeCD:Start()
|
|
end
|
|
end
|
|
|