local mod = DBM:NewMod(2411, "DBM-Party-Shadowlands", 4, 1185) local L = mod:GetLocalizedStrings() mod:SetRevision("20240426175442") mod:SetCreatureID(165410) mod:SetEncounterID(2403) mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_CAST_START 323552 323538 329340", "SPELL_SUMMON 323597", "SPELL_AURA_APPLIED 323650", "SPELL_AURA_REMOVED 323650" -- "SPELL_CAST_SUCCESS", -- "SPELL_PERIODIC_DAMAGE", -- "SPELL_PERIODIC_MISSED", -- "UNIT_SPELLCAST_SUCCEEDED boss1" ) --TODO, DBM need to do anything for Vessel of Atonement? Maybe have fixate warning be MoveTo? --TODO, transcriptor log to get actual cast of spectral maybe? only event i see in combat log is add popping out of players --[[ (ability.id = 323552 or ability.id = 329340) and type = "begincast" or ability.id = 323597 or type = "dungeonencounterstart" or type = "dungeonencounterend" or ability.id = 323538 and type = "begincast" --]] local warnFixate = mod:NewTargetNoFilterAnnounce(323650, 4) local specWarnFixate = mod:NewSpecialWarningYou(323650, nil, nil, nil, 3, 2) local yellFixate = mod:NewYell(323650) local specWarnBoltofPower = mod:NewSpecialWarningInterrupt(323538, false, nil, nil, 1, 2) local specWarnVolleyofPower = mod:NewSpecialWarningInterrupt(323552, "HasInterrupt", nil, nil, 1, 2) local specWarnAnimaFountain = mod:NewSpecialWarningDodge(329340, nil, nil, nil, 2, 2) --local specWarnGTFO = mod:NewSpecialWarningGTFO(257274, nil, nil, nil, 1, 8) local timerVolleyofPowerCD = mod:NewCDTimer(10.9, 323552, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)--12-20 local timerSpectralProcessionCD = mod:NewCDTimer(20.6, 323597, nil, nil, nil, 1) local timerAnimaFountainCD = mod:NewCDTimer(24.2, 329340, nil, nil, nil, 3) mod:AddNamePlateOption("NPAuraOnFixate", 323650, true) --mod:GroupSpells(323597, 323650)--Group spectral with associated fixate debuff --local vesselName = DBM:GetSpellName(323848) function mod:OnCombatStart(delay) timerVolleyofPowerCD:Start(12-delay) timerSpectralProcessionCD:Start(15.5-delay) timerAnimaFountainCD:Start(22.8-delay) if self.Options.NPAuraOnFixate then DBM:FireEvent("BossMod_EnableHostileNameplates") end end function mod:OnCombatEnd() if self.Options.NPAuraOnFixate then DBM.Nameplate:Hide(true, nil, nil, nil, true, true) end end function mod:SPELL_CAST_START(args) local spellId = args.spellId if spellId == 323538 then if self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnBoltofPower:Show(args.sourceName) specWarnBoltofPower:Play("kickcast") end elseif spellId == 323552 then timerVolleyofPowerCD:Start() if self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnVolleyofPower:Show(args.sourceName) specWarnVolleyofPower:Play("kickcast") end elseif spellId == 329340 then specWarnAnimaFountain:Show() specWarnAnimaFountain:Play("watchstep") timerAnimaFountainCD:Start() end end function mod:SPELL_SUMMON(args) local spellId = args.spellId if spellId == 323597 then timerSpectralProcessionCD:Start() end end --[[ function mod:SPELL_CAST_SUCCESS(args) local spellId = args.spellId if spellId == 257316 then end end --]] function mod:SPELL_AURA_APPLIED(args) local spellId = args.spellId if spellId == 323650 then warnFixate:CombinedShow(1, args.destName) if args:IsPlayer() then if self:AntiSpam(3, 2) then specWarnFixate:Show() specWarnFixate:Play("targetyou") yellFixate:Yell() end if self.Options.NPAuraOnFixate then DBM.Nameplate:Show(true, args.sourceGUID, spellId) end end end end function mod:SPELL_AURA_REMOVED(args) local spellId = args.spellId if spellId == 323650 then if self.Options.NPAuraOnFixate then DBM.Nameplate:Hide(true, args.sourceGUID, spellId) end end end --[[ function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName) if spellId == 309991 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_SPELLCAST_SUCCEEDED(uId, _, spellId) if spellId == 257453 then end end --]]