local mod = DBM:NewMod(2528, "DBM-Party-Dragonflight", 9, 1209) local L = mod:GetLocalizedStrings() mod.statTypes = "normal,heroic,mythic,challenge"--No Follower dungeon mod:SetRevision("20240428124541") mod:SetCreatureID(198996) mod:SetEncounterID(2667) mod:SetUsedIcons(1, 2) mod:SetHotfixNoticeRev(20231102000000) mod:SetMinSyncRevision(20231102000000) mod.respawnTime = 29 mod.sendMainBossGUID = true mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_CAST_START 405696 405431",--414303 "SPELL_AURA_APPLIED 404141", "SPELL_AURA_REMOVED 404141" -- "SPELL_PERIODIC_DAMAGE", -- "SPELL_PERIODIC_MISSED" ) mod:RegisterEvents( "CHAT_MSG_MONSTER_YELL" ) --[[ (ability.id = 405696 or ability.id = 405431 or ability.id = 414303 or ability.id = 414307) and type = "begincast" or type = "dungeonencounterstart" or type = "dungeonencounterend" --]] --TODO, more data, but I need to figure out what causes the fluke non 30.3 timers (one higher by 7 seconds, and one lower by 7 seconds) --TODO, Add RP timer, still missing for this boss --NOTE: 10.2 seems to have utterly deleted "Unwind" from encounter. For now its commented but kept in case this is an error or still around but not noted local warnChronoFaded = mod:NewTargetCountAnnounce(405696, 3) local specWarnChronofaded = mod:NewSpecialWarningMoveTo(405696, nil, nil, nil, 1, 2) local yellChronofaded = mod:NewShortPosYell(405696) local yellChronofadedFades = mod:NewIconFadesYell(405696) local specWarnFragmentsofTime = mod:NewSpecialWarningDodgeCount(405431, nil, nil, nil, 2, 2) --local specWarnGTFO = mod:NewSpecialWarningGTFO(386201, nil, nil, nil, 1, 8) local timerRP = mod:NewRPTimer(13.3) local timerChronofadedCD = mod:NewCDCountTimer(30.3, 405696, nil, nil, nil, 3, nil, DBM_COMMON_L.MAGIC_ICON) local timerFragmentsofTimeCD = mod:NewCDCountTimer(30.3, 405431, nil, nil, nil, 3) mod:AddSetIconOption("SetIconOnChronoFaded", 405696, true, 0, {1, 2}) local fastTime = DBM:GetSpellName(403912) mod.vb.DebuffIcon = 1 mod.vb.fadedCount = 0 mod.vb.fragmentsCount = 0 --mod.vb.unwindCount = 0 function mod:OnCombatStart(delay) self.vb.fadedCount = 0 self.vb.fragmentsCount = 0 -- self.vb.unwindCount = 0 -- timerUnwindCD:Start(5.9-delay, 1) timerFragmentsofTimeCD:Start(15.6-delay, 1) timerChronofadedCD:Start(30.2-delay, 1) end function mod:SPELL_CAST_START(args) local spellId = args.spellId if spellId == 405696 then self.vb.DebuffIcon = 1 self.vb.fadedCount = self.vb.fadedCount + 1 timerChronofadedCD:Start(nil, self.vb.fadedCount+1) elseif spellId == 405431 then self.vb.fragmentsCount = self.vb.fragmentsCount + 1 specWarnFragmentsofTime:Show(self.vb.fragmentsCount) specWarnFragmentsofTime:Play("watchorb") timerFragmentsofTimeCD:Start(nil, self.vb.fragmentsCount+1) -- elseif spellId == 414303 then -- self.vb.unwindCount = self.vb.unwindCount + 1 -- if self:IsTanking("player", "boss1", nil, true) then -- specWarnUnwind:Show() -- specWarnUnwind:Play("defensive") -- end -- timerUnwindCD:Start(nil, self.vb.unwindCount+1) end end function mod:SPELL_AURA_APPLIED(args) local spellId = args.spellId if spellId == 404141 then local icon = self.vb.DebuffIcon if self.Options.SetIconOnChronoFaded then self:SetIcon(args.destName, icon) end if args:IsPlayer() then specWarnChronofaded:Show(fastTime) specWarnChronofaded:Play("targetyou") yellChronofaded:Yell(icon, icon) yellChronofadedFades:Countdown(spellId, nil, icon) end warnChronoFaded:CombinedShow(0.5, self.vb.fadedCount, args.destName) self.vb.DebuffIcon = self.vb.DebuffIcon + 1 end end function mod:SPELL_AURA_REMOVED(args) local spellId = args.spellId if spellId == 404141 then if self.Options.SetIconOnChronoFaded then self:SetIcon(args.destName, 0) end if args:IsPlayer() then yellChronofadedFades:Cancel() end end end --[[ function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName) if spellId == 386201 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 --]] function mod:CHAT_MSG_MONSTER_YELL(msg) if (msg == L.PrePullRP or msg:find(L.PrePullRP)) then self:SendSync("MTRP")--Syncing to help unlocalized clients end end function mod:OnSync(msg) if msg == "MTRP" and self:AntiSpam(10, 2) then timerRP:Start() end end