local mod = DBM:NewMod(2585, "DBM-Party-WarWithin", 6, 1271) local L = mod:GetLocalizedStrings() mod:SetRevision("20240818054948") mod:SetCreatureID(215407) mod:SetEncounterID(2901) mod:SetHotfixNoticeRev(20240818000000) mod:SetMinSyncRevision(20240818000000) --mod.respawnTime = 29 mod.sendMainBossGUID = true mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_CAST_START 432117 432227 432130 461487" -- "SPELL_CAST_SUCCESS 431985" -- "SPELL_AURA_APPLIED" -- "SPELL_AURA_REMOVED" -- "SPELL_PERIODIC_DAMAGE", -- "SPELL_PERIODIC_MISSED" ) --TODO, grasping spammy --[[ (ability.id = 432117 or ability.id = 432227 or ability.id = 432130 or ability.id = 461487) and type = "begincast" or type = "dungeonencounterstart" or type = "dungeonencounterend" or ability.id = 431985 and type = "cast" --]] local warnVenomVolley = mod:NewCountAnnounce(432227, 3) local warnCultivatedPoisons = mod:NewCountAnnounce(461487, 3) local specWarnCosmicSingularity = mod:NewSpecialWarningMoveTo(432117, nil, nil, nil, 3, 15) local specWarnVenomVolley = mod:NewSpecialWarningDispel(432227, "RemovePoison", nil, nil, 1, 2) local specWarnCultivatedPoisons = mod:NewSpecialWarningDispel(461487, "RemovePoison", nil, nil, 1, 2, 4) local specWarnEruptingWebs = mod:NewSpecialWarningDodgeCount(432130, nil, nil, nil, 2, 2) --local specWarnGTFO = mod:NewSpecialWarningGTFO(372820, nil, nil, nil, 1, 8) --local timerAddsCD = mod:NewCDTimer(3, -28411, nil, nil, nil, 1, 431985) local timerCosmicSingularityCD = mod:NewCDCountTimer(46.1, 432117, nil, nil, nil, 2, nil, DBM_COMMON_L.DEADLY_ICON)--54.6 old local timerVenomVolleyCD = mod:NewCDCountTimer(22.6, 432227, nil, nil, nil, 2, nil, DBM_COMMON_L.POISON_ICON) local timerCulturePoisonsCD = mod:NewCDCountTimer(21.0, 461487, nil, nil, nil, 2, nil, DBM_COMMON_L.MYTHIC_ICON) local timerEruptingWebsCD = mod:NewCDCountTimer(18.1, 432130, nil, nil, nil, 3)--18.1-19.3 mod.vb.cosmicCount = 0 mod.vb.venomCount = 0 mod.vb.eruptingCount = 0 function mod:OnCombatStart(delay) self.vb.cosmicCount = 0 self.vb.venomCount = 0 self.vb.eruptingCount = 0 -- timerAddsCD:Start()--3 timerEruptingWebsCD:Start(6.2-delay, 1) if self:IsMythic() then timerCulturePoisonsCD:Start(12-delay, 1) else timerVenomVolleyCD:Start(12-delay, 1)--16.8 on normal still? end timerCosmicSingularityCD:Start(26.5-delay, 1) end --function mod:OnCombatEnd() --end function mod:SPELL_CAST_START(args) local spellId = args.spellId if spellId == 432117 then self.vb.cosmicCount = self.vb.cosmicCount + 1 specWarnCosmicSingularity:Show(DBM_COMMON_L.POOL) specWarnCosmicSingularity:Play("movetopool") --Timer has predictable spell queuing after first cast, but first cast is 46.1-48 timerCosmicSingularityCD:Start(self.vb.cosmicCount == 1 and 46.1 or 47.2, self.vb.cosmicCount+1) --Do some timer adjustments if needed if self:IsMythic() then --if time remaining on Venom is < 7.3, it's extended by this every time if timerCulturePoisonsCD:GetRemaining(self.vb.venomCount+1) < 7.2 then local elapsed, total = timerCulturePoisonsCD:GetTime(self.vb.venomCount+1) local extend = 7.2 - (total-elapsed) DBM:Debug("timerCulturePoisonsCD extended by: "..extend, 2) timerCulturePoisonsCD:Update(elapsed, total+extend, self.vb.venomCount+1) end else --if time remaining on Venom is < 7.3, it's extended by this every time if timerVenomVolleyCD:GetRemaining(self.vb.venomCount+1) < 7.2 then local elapsed, total = timerVenomVolleyCD:GetTime(self.vb.venomCount+1) local extend = 7.2 - (total-elapsed) DBM:Debug("timerVenomVolleyCD extended by: "..extend, 2) timerVenomVolleyCD:Update(elapsed, total+extend, self.vb.venomCount+1) end end --if time remaining on Erupting Webs is < 13.3, it's extended by this every time if timerEruptingWebsCD:GetRemaining(self.vb.eruptingCount+1) < 13.3 then local elapsed, total = timerEruptingWebsCD:GetTime(self.vb.eruptingCount+1) local extend = 13.3 - (total-elapsed) DBM:Debug("timerEruptingWebsCD extended by: "..extend, 2) timerEruptingWebsCD:Update(elapsed, total+extend, self.vb.eruptingCount+1) end elseif spellId == 432227 then--Non Mythic self.vb.venomCount = self.vb.venomCount + 1 if self.Options.SpecWarn432227dispel and self:CheckDispelFilter("poison") then specWarnVenomVolley:Show(DBM_COMMON_L.ALLIES) specWarnVenomVolley:Play("helpdispel") else warnVenomVolley:Show(self.vb.venomCount) end --Start next timer if cosmic is far enough away, else wait for cosmic to restart timer if timerCosmicSingularityCD:GetRemaining(self.vb.cosmicCount+1) >= 27.9 then timerVenomVolleyCD:Start(nil, self.vb.venomCount+1) end elseif spellId == 461487 then--Mythic self.vb.venomCount = self.vb.venomCount + 1 if self.Options.SpecWarn461487dispel and self:CheckDispelFilter("poison") then specWarnCultivatedPoisons:Show(DBM_COMMON_L.ALLIES) specWarnCultivatedPoisons:Play("helpdispel") else warnCultivatedPoisons:Show(self.vb.venomCount) end --Start next timer if cosmic is far enough away, else wait for cosmic to restart timer if timerCosmicSingularityCD:GetRemaining(self.vb.cosmicCount+1) >= 27.9 then timerCulturePoisonsCD:Start(nil, self.vb.venomCount+1) end elseif spellId == 432130 then self.vb.eruptingCount = self.vb.eruptingCount + 1 specWarnEruptingWebs:Show(self.vb.eruptingCount) specWarnEruptingWebs:Play("watchstep") --Start next timer if cosmic is far enough away, else wait for cosmic to restart timer if timerCosmicSingularityCD:GetRemaining(self.vb.cosmicCount+1) >= 18.1 then timerEruptingWebsCD:Start(nil, self.vb.eruptingCount+1) end --timerAddsCD:Stop() --timerAddsCD:Start(2.1)--2.1-5 end end --[[ function mod:SPELL_CAST_SUCCESS(args) local spellId = args.spellId if spellId == 431985 then timerAddsCD:Start() end end --]] --[[ function mod:SPELL_AURA_APPLIED(args) local spellId = args.spellId if spellId == 432031 then if args:IsPlayer() then end end end --mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED --]] --[[ function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName) if spellId == 372820 and destGUID == UnitGUID("player") and self:AntiSpam(3, 2) then specWarnGTFO:Show(spellName) specWarnGTFO:Play("watchfeet") end end mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE --]]