local mod = DBM:NewMod(1210, "DBM-Party-WoD", 5, 556) local L = mod:GetLocalizedStrings() local wowToc = DBM:GetTOC() mod.statTypes = "normal,heroic,mythic,challenge,timewalker" if (wowToc >= 100200) then mod.upgradedMPlus = true mod.sendMainBossGUID = true end mod:SetRevision("20240206052332") mod:SetCreatureID(83846) mod:SetEncounterID(1756) mod:SetHotfixNoticeRev(20231021000000) mod:SetMinSyncRevision(20231021000000) mod:RegisterCombat("combat") if (wowToc >= 100200) then --Patch 10.2 or later mod:SetUsedIcons(8) mod:RegisterEventsInCombat( "SPELL_CAST_START 169179 169613 428823 173563 169929", "SPELL_AURA_APPLIED 428948 428746", -- "SPELL_PERIODIC_DAMAGE", -- "SPELL_PERIODIC_MISSED", "UNIT_DIED" ) mod:RegisterEvents( "CHAT_MSG_MONSTER_YELL" ) --[[ (ability.id = 169179 or ability.id = 169613 or ability.id = 428823 or ability.id = 173563 or ability.id = 169929) and type = "begincast" or ability.id = 428948 and type = "applybuff" or type = "dungeonencounterstart" or type = "dungeonencounterend" --]] --NOTE: This mod was made from old log, people apparently suck at everbloom and aren't getting to last boss this most recent test weekend local warnBrushfire = mod:NewTargetNoFilterAnnounce(428746, 1) local specWarnColossalBlow = mod:NewSpecialWarningDodge(169179, nil, nil, nil, 2, 2)--Still random direction or now only toward tank? local specWarnVerdantEruption = mod:NewSpecialWarningSwitchCount(428823, "-Healer", nil, nil, 1, 2) local specWarnLumberingSwipe = mod:NewSpecialWarningDodge(169929, nil, nil, nil, 2, 2) local specWarnGenesis = mod:NewSpecialWarningCount(169613, nil, nil, nil, 1, 12) local specWarnLasherVenom = mod:NewSpecialWarningInterrupt(173563, "HasInterrupt", nil, nil, 1, 2) --local specWarnGTFO = mod:NewSpecialWarningGTFO(409058, nil, nil, nil, 1, 8) local timerCombatStart = mod:NewCombatTimer(7.9) local timerBrushfireCD = mod:NewNextTimer(15.4, 428746, nil, nil, nil, 5, nil, DBM_COMMON_L.DAMAGE_ICON)--For buff going back up on boss, DPS can time burst CDs local timerColossalBlowCD = mod:NewCDTimer(15.3, 169179, nil, nil, nil, 3, nil, DBM_COMMON_L.TANK_ICON) local timerVerdantEruptionCD = mod:NewCDCountTimer(53.1, 428823, nil, nil, nil, 1, nil, DBM_COMMON_L.DAMAGE_ICON) local timerLumberingSwipeCD = mod:NewCDNPTimer(11.8, 169929, nil, nil, nil, 3) local timerGenesis = mod:NewCastTimer(14, 169613, nil, nil, nil, 5) local timerGenesisCD = mod:NewCDCountTimer(53.1, 169613, nil, nil, nil, 6) mod:AddSetIconOption("SetIconOnAncient", -10537, true, 5, {8}) mod.vb.eruptionCount = 0 mod.vb.GenesisCount = 0 function mod:OnCombatStart(delay) self.vb.eruptionCount = 0 self.vb.GenesisCount = 0 timerColossalBlowCD:Start(2.4-delay) timerBrushfireCD:Start(4-delay) timerVerdantEruptionCD:Start(22.9-delay, 1) timerGenesisCD:Start(40-delay, 1) end function mod:SPELL_CAST_START(args) local spellId = args.spellId if spellId == 169179 then if self:AntiSpam(3, 2) or not self.Options.SpecWarn169929dodge then--Many might have add warning already disabled, so if disabled ignore aggregation from it specWarnColossalBlow:Show() specWarnColossalBlow:Play("shockwave") end timerColossalBlowCD:Start() elseif spellId == 169613 then self.vb.GenesisCount = self.vb.GenesisCount + 1 specWarnGenesis:Show(self.vb.GenesisCount) specWarnGenesis:Play("runoverflowers") timerGenesis:Start() timerGenesisCD:Start(nil, self.vb.GenesisCount+1) elseif spellId == 428823 then self.vb.eruptionCount = self.vb.eruptionCount + 1 specWarnVerdantEruption:Show(self.vb.eruptionCount) specWarnVerdantEruption:Play("killmob") timerVerdantEruptionCD:Start(nil, self.vb.eruptionCount+1) elseif spellId == 173563 then if self:CheckInterruptFilter(args.sourceGUID, false, true) then specWarnLasherVenom:Show(args.sourceName) specWarnLasherVenom:Play("kickcast") end elseif spellId == 169929 then if self:AntiSpam(3, 2) then specWarnLumberingSwipe:Show() specWarnLumberingSwipe:Play("shockwave") end --timerLumberingSwipeCD:Start(nil, args.sourceGUID) end end function mod:SPELL_AURA_APPLIED(args) local spellId = args.spellId if spellId == 428948 and self:AntiSpam(3, 1) then--Vibrant Flourish (fires twice, we want to filter one) timerLumberingSwipeCD:Start(5.5, args.destGUID) timerBrushfireCD:Start()--Add dispels brushfire soon as Vibrant Flourish goes up on it if self.Options.SetIconOnAncient then self:ScanForMobs(args.destGUID, 2, 8, 1, nil, 12, "SetIconOnAncient") end elseif spellId == 428746 then warnBrushfire:Show(args.destName) end end --[[ function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName) if spellId == 409058 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:UNIT_DIED(args) local cid = self:GetCIDFromGUID(args.destGUID) if cid == 84400 then--Flourishing Ancient timerLumberingSwipeCD:Stop(args.destGUID) end end --"<51.64 00:21:17> [CHAT_MSG_MONSTER_YELL] The portal is lost! We must stop this beast before it can escape!#Lady Baihu###Omegal##0#0##0#90#nil#0#false#false#false#false", -- [112] --"<59.59 00:21:25> [ENCOUNTER_START] 1756#Yalnu#23#5", -- [123] function mod:CHAT_MSG_MONSTER_YELL(msg) if (msg == L.YalnuRP or msg:find(L.YalnuRP)) then self:SendSync("YalnuRP")--Syncing to help unlocalized clients end end function mod:OnSync(msg, targetname) if msg == "YalnuRP" and self:AntiSpam(5, 3) then timerCombatStart:Start() end end else --10.1.7 on retail, and classic if it happens (if it doesn't happen old version of mod will be retired) mod:RegisterEventsInCombat( "SPELL_CAST_START 169179 169613", "SPELL_CAST_SUCCESS 169251", "UNIT_SPELLCAST_SUCCEEDED boss1" ) local warnFontofLife = mod:NewSpellAnnounce(169120, 3)--Does this need a switch warning too? local specWarnColossalBlow = mod:NewSpecialWarningDodge(169179, nil, nil, nil, 2, 2) local specWarnEntanglement = mod:NewSpecialWarningSwitch(169251, "Dps", nil, nil, 1, 2) local specWarnGenesis = mod:NewSpecialWarningSpell(169613, nil, nil, nil, 1, 12)--Everyone. "Switch" is closest generic to "run around stomping flowers" --Only timers that were consistent, others are all over the place. local timerFontOfLife = mod:NewNextTimer(15, 169120, nil, nil, nil, 1) local timerGenesis = mod:NewCastTimer(17, 169613, nil, nil, nil, 5) local timerGenesisCD = mod:NewNextTimer(60.5, 169613, nil, nil, nil, 6) function mod:OnCombatStart(delay) --timerFontOfLife:Start(-delay) --timerGenesisCD:Start(25-delay) end function mod:SPELL_CAST_START(args) local spellId = args.spellId if spellId == 169179 then specWarnColossalBlow:Show() specWarnColossalBlow:Play("shockwave") elseif spellId == 169613 then specWarnGenesis:Show() specWarnGenesis:Play("runoverflowers") timerGenesis:Start() timerGenesisCD:Start() end end function mod:SPELL_CAST_SUCCESS(args) if args.spellId == 169251 then specWarnEntanglement:Show() specWarnEntanglement:Play("targetchange") end end function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) if spellId == 169120 then warnFontofLife:Show() timerFontOfLife:Start() end end end