From 7c1b62009c2c34e5c3a030b3688fe56b3a26e856 Mon Sep 17 00:00:00 2001 From: MysticalOS Date: Tue, 25 Jun 2019 10:33:52 -0400 Subject: [PATCH] Migrated all mods to new countdown feature Bumped TOC files Disabled Model viewer playsoundfile in mods to avoid lua errors (since these aren't converted to soundkit yet) Updated some textures to use file data id instead of texture path, in some legacy mods that still use direct textures instead of GetSpellTexture --- DBM-BlackrockFoundry/Blackhand.lua | 39 +-------- DBM-BlackrockFoundry/BlastFurnace.lua | 30 +------ DBM-BlackrockFoundry/DBM-BlackrockFoundry.toc | 2 +- DBM-BlackrockFoundry/Darmac.lua | 36 +------- DBM-BlackrockFoundry/Gruul.lua | 13 +-- DBM-BlackrockFoundry/HansgarAndFranzok.lua | 11 +-- DBM-BlackrockFoundry/IronMaidens.lua | 83 ++++++------------- DBM-BlackrockFoundry/Kagraz.lua | 22 +---- DBM-BlackrockFoundry/Kromog.lua | 10 +-- DBM-BlackrockFoundry/Oregorger.lua | 8 +- DBM-BlackrockFoundry/Thogar.lua | 8 +- DBM-Draenor/DBM-Draenor.toc | 2 +- .../DBM-GarrisonInvasions.toc | 2 +- DBM-HellfireCitadel/Archimonde.lua | 63 ++------------ DBM-HellfireCitadel/DBM-HellfireCitadel.toc | 2 +- DBM-HellfireCitadel/Gorefiend.lua | 9 +- DBM-HellfireCitadel/HellfireAssault.lua | 13 +-- DBM-HellfireCitadel/HellfireCouncil.lua | 15 +--- DBM-HellfireCitadel/IronReaver.lua | 17 +--- DBM-HellfireCitadel/Iskar.lua | 26 +----- DBM-HellfireCitadel/Kilrogg.lua | 25 +----- DBM-HellfireCitadel/Kormrok.lua | 28 +------ DBM-HellfireCitadel/Mannoroth.lua | 38 +-------- DBM-HellfireCitadel/Socrethar.lua | 27 +----- DBM-HellfireCitadel/Velhari.lua | 29 +------ DBM-HellfireCitadel/Xhulhorac.lua | 21 +---- DBM-HellfireCitadel/Zakuun.lua | 21 +---- DBM-Highmaul/Brackenspore.lua | 11 +-- DBM-Highmaul/DBM-Highmaul.toc | 2 +- DBM-Highmaul/KargathBladefist.lua | 22 ++--- DBM-Highmaul/Koragh.lua | 18 +--- DBM-Highmaul/Margok.lua | 69 +++------------ DBM-Highmaul/Tectus.lua | 7 +- DBM-Highmaul/TheButcher.lua | 20 +---- DBM-Highmaul/TwinOgron.lua | 33 ++------ 35 files changed, 128 insertions(+), 654 deletions(-) diff --git a/DBM-BlackrockFoundry/Blackhand.lua b/DBM-BlackrockFoundry/Blackhand.lua index cbc3f19..e37c24c 100644 --- a/DBM-BlackrockFoundry/Blackhand.lua +++ b/DBM-BlackrockFoundry/Blackhand.lua @@ -63,9 +63,9 @@ local specWarnFallingDebris = mod:NewSpecialWarningCount(162585, nil, nil, nil mod:AddTimerLine(SCENARIO_STAGE:format(1)) local timerDemolitionCD = mod:NewNextCountTimer(45, 156425, nil, nil, nil, 2, nil, DBM_CORE_HEALER_ICON) local timerMassiveDemolitionCD = mod:NewNextCountTimer(6, 156479, nil, nil, nil, 2, nil, DBM_CORE_DEADLY_ICON) -local timerMarkedforDeathCD = mod:NewNextCountTimer(15.5, 156096, nil, nil, nil, 3)--Deadly icon? DJ doesn't give it an icon so i won't either for now -local timerThrowSlagBombsCD = mod:NewCDCountTimer(24.5, 156030, nil, "Melee", nil, 3)--It's a next timer, but sometimes delayed by Shattering Smash -local timerShatteringSmashCD = mod:NewCDCountTimer(44.5, 155992, nil, nil, nil, 5, nil, DBM_CORE_TANK_ICON)--power based, can variate a little do to blizzard buggy power code. +local timerMarkedforDeathCD = mod:NewNextCountTimer(15.5, 156096, nil, nil, nil, 3, nil, nil, nil, 3, 4)--Deadly icon? DJ doesn't give it an icon so i won't either for now +local timerThrowSlagBombsCD = mod:NewCDCountTimer(24.5, 156030, nil, "Melee", nil, 3, nil, nil, nil, 2, 4)--It's a next timer, but sometimes delayed by Shattering Smash +local timerShatteringSmashCD = mod:NewCDCountTimer(44.5, 155992, nil, nil, nil, 5, nil, DBM_CORE_TANK_ICON, nil, 1, 5)--power based, can variate a little do to blizzard buggy power code. local timerImpalingThrow = mod:NewCastTimer(5, 156111, nil, nil, nil, nil, nil, DBM_CORE_DEADLY_ICON)--How long marked target has to aim throw at Debris Pile or Siegemaker --Stage Two: Storage Warehouse mod:AddTimerLine(SCENARIO_STAGE:format(2)) @@ -79,11 +79,6 @@ local timerSlagBomb = mod:NewCastTimer(5, 157015) local timerFallingDebris = mod:NewCastTimer(6, 162585)--Mythic local timerFallingDebrisCD = mod:NewNextCountTimer(40, 162585, nil, nil, nil, 5, nil, DBM_CORE_HEROIC_ICON)--Mythic -local countdownShatteringSmash = mod:NewCountdown(45.5, 155992) -local countdownSlagBombs = mod:NewCountdown("Alt25", 156030, "Melee") -local countdownMarkedforDeath = mod:NewCountdown("AltTwo25", 156096, "-Tank") -local countdownMarkedforDeathFades = mod:NewCountdownFades("AltTwo5", 156096)--Same voice should be fine, never will overlap, and both for same spell, so people will understand - mod:AddSetIconOption("SetIconOnMarked", 156096, true) mod:AddRangeFrameOption("6/10") mod:AddBoolOption("PositionsAllPhases", false) @@ -269,17 +264,14 @@ function mod:OnCombatStart(delay) self.vb.markCount = 0 self.vb.slagCastCount = 0 timerThrowSlagBombsCD:Start(5.2-delay, 1) - countdownSlagBombs:Start(5.2-delay) timerDemolitionCD:Start(15-delay, 1) timerShatteringSmashCD:Start(21-delay, 1) if self:IsTank() then--Ability only concerns tank in phase 1 - countdownShatteringSmash:Start(21-delay) if self.Options.InfoFrame then--Only tanks in phase 1 DBM.InfoFrame:Show(5, "enemypower", 1) end end timerMarkedforDeathCD:Start(36-delay, 1) - countdownMarkedforDeath:Start(36-delay) end function mod:OnCombatEnd() @@ -303,16 +295,13 @@ function mod:SPELL_CAST_START(args) timerShatteringSmashCD:Start(30, self.vb.smashCount+1) if self:IsTank() then--only warnk tank in phase 1 specWarnShatteringSmash:Show(self.vb.smashCount) - countdownShatteringSmash:Start(30) specWarnShatteringSmash:Play("carefly") end else if self:IsMythic() then timerShatteringSmashCD:Start(30.5, self.vb.smashCount+1) - countdownShatteringSmash:Start(30.5) else timerShatteringSmashCD:Start(nil, self.vb.smashCount+1) - countdownShatteringSmash:Start()--Not phase 1, concerns everyone not just tank end specWarnShatteringSmash:Show(self.vb.smashCount)--Warn all melee in phase 2 specWarnShatteringSmash:Play("carefly") @@ -326,7 +315,6 @@ function mod:SPELL_CAST_START(args) self.vb.smashCount = self.vb.smashCount + 1 specWarnMassiveShatteringSmash:Show(self.vb.smashCount) timerShatteringSmashCD:Start(24.5, self.vb.smashCount+1)--Use this cd bar in phase 3 as well, because text for "Massive Shattering Smash" too long. - countdownShatteringSmash:Start(24.5) specWarnMassiveShatteringSmash:Play("carefly") if self.Options.RangeFrame and smashTank then --Open regular range frame if you are the smash tank, even if you are a bomb, because now you don't have a choice. @@ -374,7 +362,6 @@ function mod:SPELL_AURA_APPLIED(args) end timerImpalingThrow:Start() timerMarkedforDeathCD:Start(timer, self.vb.markCount+1) - countdownMarkedforDeath:Start(timer) local elapsed, total = timerShatteringSmashCD:GetTime(self.vb.smashCount+1) local remaining = total - elapsed DBM:Debug("Smash Elapsed: "..elapsed.." Smash Total: "..total.." Smash Remaining: "..remaining.." MFD Timer: "..timer, 2) @@ -382,8 +369,6 @@ function mod:SPELL_AURA_APPLIED(args) local extend = (timer+6)-remaining DBM:Debug("Delay detected, updating smash timer now. Extend: "..extend) timerShatteringSmashCD:Update(elapsed, total+extend, self.vb.smashCount+1) - countdownShatteringSmash:Cancel() - countdownShatteringSmash:Start(remaining+extend) end end markTargets[#markTargets + 1] = args.destName @@ -396,7 +381,6 @@ function mod:SPELL_AURA_APPLIED(args) end if args:IsPlayer() then specWarnMarkedforDeath:Show() - countdownMarkedforDeathFades:Start() if self:IsLFR() or (not self.Options.PositionsAllPhases and self.vb.phase < 3) then yellMarkedforDeath:Yell() specWarnMarkedforDeath:Play("findshelter") @@ -413,7 +397,6 @@ function mod:SPELL_AURA_APPLIED(args) slagPlayerCount = 0--Reset to 0, once self.vb.slagCastCount = self.vb.slagCastCount + 1 timerAttachSlagBombsCD:Start(nil, self.vb.slagCastCount+1) - countdownSlagBombs:Start(26) end slagPlayerCount = slagPlayerCount + 1--Add counter (not in antispam on purpose) slagTargets[#slagTargets + 1] = args.destName @@ -504,8 +487,6 @@ function mod:SPELL_ENERGIZE(_, _, _, _, destGUID, _, _, _, spellId, _, _, amount local bossPower = UnitPower("boss1") bossPower = bossPower / 4--4 energy per second, smash every 25 seconds there abouts. local remaining = 25-bossPower - countdownShatteringSmash:Cancel() - countdownShatteringSmash:Start(remaining) timerShatteringSmashCD:Stop()--Prevent timer debug when updating timer timerShatteringSmashCD:Start(remaining, self.vb.smashCount+1) end @@ -523,7 +504,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) self.vb.slagCastCount = self.vb.slagCastCount + 1 specWarnThrowSlagBombs:Show(self.vb.slagCastCount) timerThrowSlagBombsCD:Start(nil, self.vb.slagCastCount+1) - countdownSlagBombs:Start() specWarnThrowSlagBombs:Play("bombsoon") elseif spellId == 156425 then self.vb.demolitionCount = self.vb.demolitionCount + 1 @@ -578,24 +558,17 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) timerMassiveDemolitionCD:Unschedule()--Redundant? specWarnMassiveDemolition:Cancel() warnMassiveDemolition:Cancel() - countdownSlagBombs:Cancel() - countdownSlagBombs:Start(11) timerThrowSlagBombsCD:Stop() timerThrowSlagBombsCD:Start(11, 1)--11-12.5 timerSiegemakerCD:Start(15, 1) - countdownShatteringSmash:Cancel() timerShatteringSmashCD:Stop() if self:IsMythic() then--Boss gain power faster on mythic phase 2 - countdownShatteringSmash:Start(18) timerShatteringSmashCD:Start(18, 1)--18 seen in 10 pulls worth of data. else - countdownShatteringSmash:Start(21) timerShatteringSmashCD:Start(21, 1)--21-23 variation. Boss power is set to 66/100 automatically by transitions end timerMarkedforDeathCD:Stop() timerMarkedforDeathCD:Start(25.5, 1) - countdownMarkedforDeath:Cancel() - countdownMarkedforDeath:Start(25) warnPhase:Show(DBM_CORE_AUTO_ANNOUNCE_TEXTS.stage:format(2)) warnPhase:Play("ptwo") --Maybe not needed whole phase, only when balcony adds are up? A way to detect and improve? @@ -616,14 +589,10 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) self.vb.slagCastCount = 0 timerSiegemakerCD:Stop() timerThrowSlagBombsCD:Stop() - countdownSlagBombs:Cancel() if self:IsMythic() then timerFallingDebrisCD:Start(11, 1) end timerAttachSlagBombsCD:Start(11, 1) - countdownSlagBombs:Start(11) - countdownShatteringSmash:Cancel() - countdownShatteringSmash:Start(26) timerShatteringSmashCD:Stop() timerShatteringSmashCD:Start(26, 1)--26-28 variation. Boss power is set to 33/100 automatically by transition (after short delay) timerMarkedforDeathCD:Stop() @@ -632,8 +601,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) else timerMarkedforDeathCD:Start(17, 1) end - countdownMarkedforDeath:Cancel() - countdownMarkedforDeath:Start(17) timerSlagEruptionCD:Start(31.5, 1) warnPhase:Show(DBM_CORE_AUTO_ANNOUNCE_TEXTS.stage:format(3)) warnPhase:Play("pthree") diff --git a/DBM-BlackrockFoundry/BlastFurnace.lua b/DBM-BlackrockFoundry/BlastFurnace.lua index 6a2f93f..c2fb3f6 100644 --- a/DBM-BlackrockFoundry/BlastFurnace.lua +++ b/DBM-BlackrockFoundry/BlastFurnace.lua @@ -75,25 +75,18 @@ mod:AddTimerLine(SCENARIO_STAGE:format(1)) local timerBomb = mod:NewBuffFadesTimer(15, 155192) local timerBlastCD = mod:NewCDTimer(25, 155209, nil, nil, nil, 2)--25 seconds base. shorter when loading is being channeled by operators. local timerRuptureCD = mod:NewCDTimer(20, 156934, nil, "-Tank", 2, 3) -local timerEngineer = mod:NewNextCountTimer(41, "ej9649", nil, nil, nil, 1, 155179) +local timerEngineer = mod:NewNextCountTimer(41, "ej9649", nil, nil, nil, 1, 155179, nil, nil, 1, 5) local timerBellowsOperator = mod:NewCDCountTimer(59, "ej9650", nil, nil, nil, 1, 155181)--60-65second variation for sure mod:AddTimerLine(SCENARIO_STAGE:format(2)) local timerVolatileFireCD = mod:NewCDTimer(20, 176121, nil, false, nil, 3)--Very useful, but off by default since it can be spammy if > 2 adds up at once. -local timerVolatileFire = mod:NewBuffFadesTimer(8, 176121) +local timerVolatileFire = mod:NewBuffFadesTimer(8, 176121, nil, nil, nil, 5, nil, nil, nil, 1, 4) local timerShieldsDown = mod:NewBuffActiveTimer(30, 158345, nil, "Dps", nil, 6, nil, DBM_CORE_DAMAGE_ICON) local timerSlagElemental = mod:NewNextCountTimer(55, "ej9657", nil, "-Tank", nil, 1, 155196)--Definitely 55 seconds, although current detection method may make it appear 1-2 seconds if slag has to run across room before casting first fixate -local timerFireCaller = mod:NewNextCountTimer(45, "ej9659", nil, "Tank", nil, 1, 156937) -local timerSecurityGuard = mod:NewNextCountTimer(40, "ej9648", nil, "Tank", nil, 1, 160379, DBM_CORE_TANK_ICON) +local timerFireCaller = mod:NewNextCountTimer(45, "ej9659", nil, "Tank", nil, 1, 156937, nil, nil, 3, 4) +local timerSecurityGuard = mod:NewNextCountTimer(40, "ej9648", nil, "Tank", nil, 1, 160379, DBM_CORE_TANK_ICON, nil, 2, 4) local berserkTimer = mod:NewBerserkTimer(780) -local countdownBlast = mod:NewCountdown(30, 155209, false, 2) -local countdownEngineer = mod:NewCountdown("AltTwo41", "ej9649", "Tank", 2) ---Phase 2 countdowns, no conflict with phase 1 countdowns -local countdownFireCaller = mod:NewCountdown("AltTwo64", "ej9659", "Tank") -local countdownSecurityGuard = mod:NewCountdown("Alt41", "ej9648", "Tank") -local countdownVolatileFire = mod:NewCountdownFades(8, 176121) - local voiceSlagElemental = mod:NewVoice("ej9657", "-Tank") mod:AddRangeFrameOption(8) @@ -195,11 +188,9 @@ local function Engineers(self) if self:IsDifficulty("mythic", "normal") then timerEngineer:Start(35, count+1) self:Schedule(35, Engineers, self) - countdownEngineer:Start(35) elseif self:IsHeroic() then timerEngineer:Start(40.5, count+1) self:Schedule(40.5, Engineers, self) - countdownEngineer:Start(40.5) end end @@ -213,11 +204,9 @@ local function SecurityGuard(self) end if self.vb.phase == 1 then timerSecurityGuard:Start(30.5, count+1) - countdownSecurityGuard:Start(30.5) self:Schedule(30.5, SecurityGuard, self) else timerSecurityGuard:Start(40, count+1) - countdownSecurityGuard:Start(40) self:Schedule(40, SecurityGuard, self) end end @@ -337,14 +326,11 @@ function mod:OnCombatStart(delay) local blastTimer = self:IsMythic() and 24 or 29 self.vb.lastTotal = blastTimer timerBlastCD:Start(blastTimer) - countdownBlast:Start(blastTimer) if not self:IsLFR() then self:Schedule(firstTimer, SecurityGuard, self) self:Schedule(firstTimer, Engineers, self) timerSecurityGuard:Start(firstTimer, 2) - countdownSecurityGuard:Start(firstTimer) timerEngineer:Start(firstTimer, 2) - countdownEngineer:Start(firstTimer) berserkTimer:Start(-delay) end if self.Options.InfoFrame then @@ -503,7 +489,6 @@ function mod:SPELL_AURA_APPLIED(args) if self:AntiSpam(3, 9) then specVolatileFire:Show() --Only one countdown/yell/runout alert though to avoid spam, user needs to get out of group for first expire, they just need to STAY out for second - countdownVolatileFire:Start(debuffTime) specVolatileFire:ScheduleVoice(debuffTime - 4, "runout") if not self:IsLFR() and self.Options.Yell176121 then if self:IsMythic() and self.Options.VFYellType2 == "Countdown" then @@ -600,7 +585,6 @@ function mod:UNIT_DIED(args) else timerFireCaller:Stop() timerSecurityGuard:Stop() - countdownSecurityGuard:Cancel() timerSlagElemental:Stop() self:Unschedule(SecurityGuard) self:Unschedule(FireCaller) @@ -626,10 +610,8 @@ function mod:UNIT_DIED(args) warnPhase2:Show() self:Unschedule(Engineers) timerEngineer:Stop() - countdownEngineer:Cancel() timerBellowsOperator:Stop() timerSecurityGuard:Stop() - countdownSecurityGuard:Cancel() self:Unschedule(SecurityGuard) warnPhase2:Play("ptwo") --Start adds timers. Seem same in all modes. @@ -638,7 +620,6 @@ function mod:UNIT_DIED(args) timerSlagElemental:Start(13, 1) self:Schedule(72, SecurityGuard, self) timerSecurityGuard:Start(71.5, 1) - countdownSecurityGuard:Start(71.5) self:Schedule(76, FireCaller, self) timerFireCaller:Start(76, 1) end @@ -695,8 +676,6 @@ do local bossPower = UnitPower("boss1") --Get Boss Power local elapsed = bossPower / powerRate timerBlastCD:Update(elapsed, totalTime) - countdownBlast:Cancel() - countdownBlast:Start(totalTime-elapsed) end else local bossPower = UnitPower("boss1") --Get Boss Power @@ -709,7 +688,6 @@ do elseif bossPower < 5 and self.vb.blastWarned then--Should catch 0, if not, at least 1-4 will fire it but then timer may be a second or so off self.vb.blastWarned = false timerBlastCD:Start(totalTime) - countdownBlast:Start(totalTime) end end end diff --git a/DBM-BlackrockFoundry/DBM-BlackrockFoundry.toc b/DBM-BlackrockFoundry/DBM-BlackrockFoundry.toc index c93f5ff..09bd775 100644 --- a/DBM-BlackrockFoundry/DBM-BlackrockFoundry.toc +++ b/DBM-BlackrockFoundry/DBM-BlackrockFoundry.toc @@ -1,4 +1,4 @@ -## Interface: 80100 +## Interface: 80200 ## X-Min-Interface: 80000 ## Title:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Blackrock Foundry|r ## Title-koKR:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0검은바위 용광로|r diff --git a/DBM-BlackrockFoundry/Darmac.lua b/DBM-BlackrockFoundry/Darmac.lua index 9a101eb..f9a37a7 100644 --- a/DBM-BlackrockFoundry/Darmac.lua +++ b/DBM-BlackrockFoundry/Darmac.lua @@ -65,14 +65,14 @@ local yellInfernoBreath = mod:NewYell(154989) --Boss basic attacks mod:AddTimerLine(CORE_ABILITIES)--Core Abilities -local timerPinDownCD = mod:NewCDTimer(19.7, 155365, nil, "Ranged", 2)--Every 19.7 seconds unless delayed by other things. CD timer used for this reason -local timerCallthePackCD = mod:NewCDTimer(31.5, 154975, nil, "Tank", 2, 1, nil, DBM_CORE_TANK_ICON)--almost always 31, but cd resets to 11 whenever boss dismounts a beast (causing some calls to be less or greater than 31 seconds apart. In rare cases, boss still interrupts his own cast/delays cast even when not caused by gaining beast buff +local timerPinDownCD = mod:NewCDTimer(19.7, 155365, nil, "Ranged", 2, 3, nil, nil, nil, 1, 4)--Every 19.7 seconds unless delayed by other things. CD timer used for this reason +local timerCallthePackCD = mod:NewCDTimer(31.5, 154975, nil, "Tank", 2, 1, nil, DBM_CORE_TANK_ICON, nil, 2, 4)--almost always 31, but cd resets to 11 whenever boss dismounts a beast (causing some calls to be less or greater than 31 seconds apart. In rare cases, boss still interrupts his own cast/delays cast even when not caused by gaining beast buff --Boss gained abilities (beast deaths grant boss new abilities) mod:AddTimerLine(SPELL_BUCKET_ABILITIES_UNLOCKED)--Abilities Unlocked local timerRendandTearCD = mod:NewCDTimer(12, 155385, nil, nil, nil, 3) local timerSuperheatedShrapnelCD = mod:NewCDTimer(14.2, 155499, nil, nil, nil, 3) local timerTantrumCD = mod:NewNextCountTimer(29.5, 162275, nil, nil, nil, 2, nil, DBM_CORE_HEALER_ICON) -local timerEpicenterCD = mod:NewCDCountTimer(19.5, 159043, nil, "Melee") +local timerEpicenterCD = mod:NewCDCountTimer(19.5, 159043, nil, "Melee", nil, 3, nil, nil, nil, 3, 4) --Beast abilities (living) mod:AddTimerLine(BATTLE_PET_DAMAGE_NAME_8)--Beast local timerSavageHowlCD = mod:NewCDTimer(25, 155198, nil, "Healer|Tank|RemoveEnrage", 2, 5, nil, DBM_CORE_ENRAGE_ICON) @@ -82,10 +82,6 @@ local timerInfernoBreathCD = mod:NewNextTimer(20, 154989, nil, nil, nil, 3) local berserkTimer = mod:NewBerserkTimer(720) -local countdownPinDown = mod:NewCountdown(19.7, 154960, "Ranged") -local countdownCallPack = mod:NewCountdown("Alt31", 154975, "Tank") -local countdownEpicenter = mod:NewCountdown("AltTwo20", 159043, "Melee") - mod:AddRangeFrameOption("8/7/3", nil, "-Melee") mod:AddSetIconOption("SetIconOnSpear", 154960)--Not often I make icon options on by default but this one is universally important. YOu always break players out of spear, in any strat. mod:AddSetIconOption("SetIconOnConflag", 154981, false) @@ -121,7 +117,6 @@ local function updateBeastTimers(self, all, spellId, adjust) if self.vb.FaultlineAbilites and (self:IsMythic() and spellId == 155462 or all) then--Faultline timerEpicenterCD:Stop() timerEpicenterCD:Start(24, self.vb.epicenterCount+1) - countdownEpicenter:Start(24) end --Base ability Timers are reset any time boss gains new abilites. Timers are next timers but vary depending on what abilities boss possesses if adjust then return end--adjust true means triggered by boss dismounted on mythic, this doesn't reset pin down or call of the pack @@ -129,42 +124,28 @@ local function updateBeastTimers(self, all, spellId, adjust) if self.vb.ElekkAbilities and self.vb.WolfAbilities then--Wolf, elekk AND rylak timerCallthePackCD:Stop()--Just to not repeatedly see timer update before expires timerPinDownCD:Stop()--Just to not repeatedly see timer update before expires - countdownPinDown:Cancel() - countdownCallPack:Cancel() if self:IsDifficulty("lfr") then--Todo, see if normal also does this, since the 41 second timer is both normal and LFR timerCallthePackCD:Start(26)--Verified twice over in LFR. - countdownCallPack:Start(26) else timerCallthePackCD:Start(17) - countdownCallPack:Start(17) end timerPinDownCD:Start(23) - countdownPinDown:Start(23) else--TODO, i need data on rylak with wolf (2) or rylak with elekk (2). timerCallthePackCD:Stop()--Just to not repeatedly see timer update before expires timerPinDownCD:Stop()--Just to not repeatedly see timer update before expires - countdownCallPack:Cancel() - countdownPinDown:Cancel() --This can't actually happen in LFR so doesn't need anything special timerCallthePackCD:Start(15)--rylak alone verified 15 seconds - countdownCallPack:Start(15) timerPinDownCD:Start(13.5) - countdownPinDown:Start(13.5) end else--Elekk alone verified, wolf alone verified. Wolf AND Elekk together verified. These timers only alter once rylak abilities activated. timerCallthePackCD:Stop()--Just to not repeatedly see timer update before expires timerPinDownCD:Stop()--Just to not repeatedly see timer update before expires - countdownCallPack:Cancel() - countdownPinDown:Cancel() if self:IsDifficulty("lfr") then--Todo, see if normal also does this, since the 41 second timer is both normal and LFR timerCallthePackCD:Start(24) - countdownCallPack:Start(24) else timerCallthePackCD:Start(11) - countdownCallPack:Start(11) end timerPinDownCD:Start(12) - countdownPinDown:Start(12) end end @@ -200,14 +181,11 @@ function mod:OnCombatStart(delay) self.vb.tantrumCount = 0 table.wipe(activeBossGUIDS) timerPinDownCD:Start(9.5-delay) - countdownPinDown:Start(9.5-delay) if self:IsLFR() then --Now confirmed. timerCallthePackCD:Start(20-delay)--Time for cast finish, not cast start, because only cast finish is sure thing. cast start can be interrupted - countdownCallPack:Start(20-delay) else timerCallthePackCD:Start(9.5-delay)--Time for cast finish, not cast start, because only cast finish is sure thing. cast start can be interrupted - countdownCallPack:Start(9.5-delay) end if self.Options.RangeFrame then DBM.RangeCheck:Show(3) @@ -246,7 +224,6 @@ function mod:SPELL_CAST_START(args) specWarnEpicenter:Show()--Warn melee during cast to move outa head of time. end timerEpicenterCD:Start(nil, self.vb.epicenterCount+1) - countdownEpicenter:Start() end end @@ -267,10 +244,8 @@ function mod:SPELL_CAST_SUCCESS(args) end if self:IsDifficulty("normal", "lfr") then timerCallthePackCD:Start(41.5)--40+1.5 - countdownCallPack:Start(41.5) else timerCallthePackCD:Start()--30+1.5 - countdownCallPack:Start() end end end @@ -413,7 +388,6 @@ function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT() self.vb.epicenterCount = 0 self:UnregisterShortTermEvents()--UNIT_TARGETABLE_CHANGED no longer used, and in fact unregistered to prevent bug with how it fires when faultline dies timerEpicenterCD:Start(10, 1) - countdownEpicenter:Start(10) --Cancel timers for abilities he can't use from other dead beasts timerRendandTearCD:Stop() timerSuperheatedShrapnelCD:Stop() @@ -423,10 +397,8 @@ function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT() local remaining = timerCallthePackCD:GetRemaining() if remaining < 20 then--if less than 20, it's changed to 20, else, current timer finishes if > 20 DBM:Debug("Call timer less than 20 remaining, CD reset to 20 by blizzard failsafe") - countdownCallPack:Cancel() timerCallthePackCD:Stop() timerCallthePackCD:Start(20) - countdownCallPack:Start(20) end end end @@ -460,7 +432,6 @@ function mod:UNIT_DIED(args) timerTantrumCD:Stop() elseif cid == 76946 then timerEpicenterCD:Stop() - countdownEpicenter:Cancel() end end end @@ -489,7 +460,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) elseif spellId == 155365 then--Cast specWarnPinDown:Show() timerPinDownCD:Start() - countdownPinDown:Start() specWarnPinDown:Play("spear") elseif spellId == 155423 then--Face Random Non-Tank (beast version) specWarnInfernoBreath:Show() diff --git a/DBM-BlackrockFoundry/Gruul.lua b/DBM-BlackrockFoundry/Gruul.lua index 3cda7bb..b81623a 100644 --- a/DBM-BlackrockFoundry/Gruul.lua +++ b/DBM-BlackrockFoundry/Gruul.lua @@ -34,7 +34,7 @@ local specWarnOverheadSmash = mod:NewSpecialWarningCount(155301, nil, nil, nil local specWarnCaveIn = mod:NewSpecialWarningMove(173192) local specWarnPetrifyingSlam = mod:NewSpecialWarningMoveAway(155326, nil, nil, nil, 3, 2) -local timerInfernoSliceCD = mod:NewCDCountTimer(11, 155080, nil, nil, nil, 5)--Variable do to energy bugs (gruul not gain power consistently) +local timerInfernoSliceCD = mod:NewCDCountTimer(11, 155080, nil, nil, nil, 5, nil, nil, nil, 1, 3)--Variable do to energy bugs (gruul not gain power consistently) local timerSpecialCD = mod:NewCDSpecialTimer(20.5) local timerPetrifyingSlamCD = mod:NewCDCountTimer(60, 155323, nil, nil, nil, 2)--60-70 variation local timerOverheadSmashCD = mod:NewCDCountTimer(20.5, 155301, nil, nil, nil, 3)--20-42 variation @@ -44,8 +44,6 @@ local timerRampageCD = mod:NewCDTimer(107, 155539, nil, nil, nil, 6)--Variabl local berserkTimer = mod:NewBerserkTimer(360) -local countdownInfernoSlice = mod:NewCountdown(12, 155080, "Tank") - mod:AddRangeFrameOption(8, 155530) mod:AddHudMapOption("HudMapOnShatter", 155530, false)--Might be overwhelming. up to 8 targets on non mythic, and on mythic, 20 of them. So off by default mod:AddDropdownOption("MythicSoakBehavior", {"ThreeGroup", "TwoGroup"}, "ThreeGroup", "misc") @@ -119,10 +117,8 @@ function mod:OnCombatStart(delay) self.vb.firstWarned = false if not self:IsMythic() then timerInfernoSliceCD:Start(12.5-delay, 1) - countdownInfernoSlice:Start(12.5-delay) else timerInfernoSliceCD:Start(11-delay, 1) - countdownInfernoSlice:Start(11-delay) self:RegisterShortTermEvents( "UNIT_POWER_FREQUENT boss1" ) @@ -156,7 +152,6 @@ function mod:SPELL_CAST_START(args) self.vb.sliceCount = self.vb.sliceCount + 1 if not self:IsMythic() then timerInfernoSliceCD:Start(17, self.vb.sliceCount+1) - countdownInfernoSlice:Start(17) if self.Options.SpecWarn155080count then specWarnInfernoSlice:Show(self.vb.sliceCount.."-"..otherSoakOrder[self.vb.sliceCount]) else @@ -164,7 +159,6 @@ function mod:SPELL_CAST_START(args) end else timerInfernoSliceCD:Start(nil, self.vb.sliceCount+1) - countdownInfernoSlice:Start() local countFormat = self.vb.sliceCount if self.Options.MythicSoakBehavior == "ThreeGroup" then if mythicSoakOrder3Group[self.vb.sliceCount] then @@ -242,7 +236,6 @@ function mod:SPELL_AURA_APPLIED(args) specWarnRampage:Show() timerRampage:Start() timerInfernoSliceCD:Stop() - countdownInfernoSlice:Cancel() self:UnregisterShortTermEvents() elseif spellId == 155078 then local uId = DBM:GetRaidUnitId(args.destName) @@ -278,10 +271,8 @@ function mod:SPELL_AURA_REMOVED(args) -- timerOverheadSmashCD:Start(47, 1)--VERIFY if not self:IsMythic() then timerInfernoSliceCD:Start(17.5, 1) - countdownInfernoSlice:Start(17.5) else timerInfernoSliceCD:Start(nil, 1) - countdownInfernoSlice:Start() if self:IsMythic() then self:RegisterShortTermEvents( "UNIT_POWER_FREQUENT boss1" @@ -315,8 +306,6 @@ do local timeElapsed = bossPower / 10 --Divide it by 10 (cause he gains 10 power per second and we need to know how many seconds to subtrack from CD) local timeRemaining = 10-timeElapsed timerInfernoSliceCD:Update(timeElapsed+1, 11, self.vb.sliceCount+1)--+3 because total time is 13, else, it's timeElapsed, 10 - countdownInfernoSlice:Cancel() - countdownInfernoSlice:Start(timeRemaining) end lastPower = bossPower end diff --git a/DBM-BlackrockFoundry/HansgarAndFranzok.lua b/DBM-BlackrockFoundry/HansgarAndFranzok.lua index 75f22e1..7810437 100644 --- a/DBM-BlackrockFoundry/HansgarAndFranzok.lua +++ b/DBM-BlackrockFoundry/HansgarAndFranzok.lua @@ -33,16 +33,13 @@ local specWarnStampersEnd = mod:NewSpecialWarningEnd(174825, nil, nil, nil, 1 local timerDisruptingRoar = mod:NewCastTimer(2.5, 160838, nil, "SpellCaster") local timerDisruptingRoarCD = mod:NewCDTimer(45, 160838, nil, "SpellCaster") local timerSkullcrackerCD = mod:NewCDTimer(22, 153470, nil, "Healer", nil, 5, nil, DBM_CORE_HEALER_ICON) -local timerCripplingSupplex = mod:NewCastTimer(9.5, 156938, nil, "Tank|Healer", nil, 5, nil, DBM_CORE_TANK_ICON) +local timerCripplingSupplex = mod:NewCastTimer(9.5, 156938, nil, "Tank|Healer", nil, 5, nil, DBM_CORE_TANK_ICON, nil, 2, 4) local timerJumpSlamCD = mod:NewNextTimer(34, "ej9854", nil, nil, nil, 3) mod:AddTimerLine(ENCOUNTER_JOURNAL_SECTION_FLAG12) -local timerSmartStamperCD = mod:NewNextTimer(12, 162124, nil, nil, nil, 6, nil, DBM_CORE_HEROIC_ICON)--Activation +local timerSmartStamperCD = mod:NewNextTimer(12, 162124, nil, nil, nil, 6, nil, DBM_CORE_HEROIC_ICON, nil, 1, 4)--Activation --local berserkTimer = mod:NewBerserkTimer(360) -local countSmartStampers = mod:NewCountdown(12, 160582) -local countCripplingSupplex = mod:NewCountdown("Alt9.5", 156938, "Tank|Healer", 2) - mod.vb.phase = 1 mod.vb.stamperDodgeCount = 0 mod.vb.bossUp = "NoBody" @@ -76,7 +73,6 @@ function mod:OnCombatStart(delay) timerDisruptingRoarCD:Start(-delay) if self:IsMythic() then timerSmartStamperCD:Start(13-delay) - countSmartStampers:Start(13-delay) -- berserkTimer:Start(-delay) end end @@ -134,7 +130,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) elseif spellId == 156546 or spellId == 156542 then specWarnCripplingSupplex:Schedule(6)--warn 3 seconds before, stun removed in 6.1 timerCripplingSupplex:Start() - countCripplingSupplex:Start() elseif spellId == 157926 then--Jump Activation self.vb.firstJump = false--So reset firstjump self.vb.jumpCount = 0 @@ -172,7 +167,6 @@ function mod:UNIT_TARGETABLE_CHANGED(uId) specWarnSearingPlatesEnd:Show() if self:IsMythic() then timerSmartStamperCD:Start() - countSmartStampers:Start() specWarnSearingPlatesEnd:Play("gather")--Must restack for smart stampers else specWarnSearingPlatesEnd:Play("safenow") @@ -181,7 +175,6 @@ function mod:UNIT_TARGETABLE_CHANGED(uId) specWarnStampersEnd:Show() if self:IsMythic() then timerSmartStamperCD:Start() - countSmartStampers:Start() specWarnStampersEnd:Play("gather")--Must restack for smart stampers else specWarnStampersEnd:Play("safenow") diff --git a/DBM-BlackrockFoundry/IronMaidens.lua b/DBM-BlackrockFoundry/IronMaidens.lua index 92ce957..4ea731f 100644 --- a/DBM-BlackrockFoundry/IronMaidens.lua +++ b/DBM-BlackrockFoundry/IronMaidens.lua @@ -7,7 +7,7 @@ mod:SetEncounterID(1695) mod:SetZone() mod:SetBossHPInfoToHighest() mod:SetUsedIcons(5, 4, 3, 2, 1) -mod:SetModelSound("sound\\creature\\marak\\vo_60_ironmaidens_marak_08.ogg", "sound\\creature\\marak\\vo_60_ironmaidens_marak_08.ogg") +--mod:SetModelSound("sound\\creature\\marak\\vo_60_ironmaidens_marak_08.ogg", "sound\\creature\\marak\\vo_60_ironmaidens_marak_08.ogg") mod.respawnTime = 29.5 mod:RegisterCombat("combat") @@ -92,9 +92,9 @@ local yellHeartseeker = mod:NewYell(158010, nil, false) --Ship mod:AddTimerLine(Ship) -local timerShipCD = mod:NewNextCountTimer(198, "ej10019", nil, nil, nil, 6, 76204) +local timerShipCD = mod:NewNextCountTimer(198, "ej10019", nil, nil, nil, 6, 76204, nil, nil, 1, 5) local timerBombardmentAlphaCD = mod:NewNextTimer(18, 157854, nil, nil, nil, 2, nil, DBM_CORE_DEADLY_ICON) -local timerWarmingUp = mod:NewCastTimer(90, 158849, nil, nil, nil, 6) +local timerWarmingUp = mod:NewCastTimer(90, 158849, nil, nil, nil, 6, nil, nil, nil, 1, 5) --Ground ----Admiral Gar'an mod:AddTimerLine(Garan) @@ -104,19 +104,13 @@ local timerPenetratingShotCD = mod:NewCDCountTimer(28.8, 164271, nil, nil, nil local timerDeployTurretCD = mod:NewCDCountTimer(20.2, 158599, nil, nil, nil, 1, nil, DBM_CORE_DAMAGE_ICON)--20.2-23.5 ----Enforcer Sorka mod:AddTimerLine(Sorka) -local timerBladeDashCD = mod:NewCDCountTimer(20, 155794, nil, "Ranged|Tank", nil, 5, nil, DBM_CORE_TANK_ICON) +local timerBladeDashCD = mod:NewCDCountTimer(20, 155794, nil, "Ranged|Tank", nil, 5, nil, DBM_CORE_TANK_ICON, nil, mod:IsTank() and 3, 4) local timerConvulsiveShadowsCD = mod:NewNextCountTimer(55.6, 156214, nil, nil, nil, 3)--Timer only enabled on mythic, On non mythic, it's just an unimportant dot. On mythic, MUCH more important because user has to run out of raid and get dispelled. ----Marak the Blooded mod:AddTimerLine(Marak) -local timerBloodRitualCD = mod:NewCDCountTimer(20, 158078, nil, nil, nil, 5, nil, DBM_CORE_TANK_ICON) +local timerBloodRitualCD = mod:NewCDCountTimer(20, 158078, nil, nil, nil, 5, nil, DBM_CORE_TANK_ICON, nil, mod:IsTank() and 2, 4) local timerHeartSeekerCD = mod:NewCDCountTimer(70, 158010, nil, "Ranged", nil, 3) -local countdownShip = mod:NewCountdown(198, "ej10019") -local countdownWarmingUp = mod:NewCountdown(90, 158849) -local countdownBloodRitual = mod:NewCountdownFades("Alt5", 158078, "Tank") -local countdownBladeDash = mod:NewCountdown("AltTwo20", 155794, "Tank") -local countdownDarkHunt = mod:NewCountdownFades("AltTwo8", 158315) - mod:AddSetIconOption("SetIconOnRapidFire", 156626, true) mod:AddSetIconOption("SetIconOnBloodRitual", 158078, true) mod:AddSetIconOption("SetIconOnHeartSeeker", 158010, true) @@ -141,13 +135,8 @@ mod.vb.boatMissionActive = false mod.vb.lastBoatPower = 0 local preyDebuff, bloodcallingDebuff = DBM:GetSpellInfo(170395), DBM:GetSpellInfo(170405) -local UnitPosition, UnitIsConnected, GetTime = UnitPosition, UnitIsConnected, GetTime local playerOnBoat = false -local function isPlayerOnBoat() - return playerOnBoat -end - --For canceling timers if player is on boat team, timers will return when they get off boat local function checkBoatOn(self, count) if UnitInVehicle("player") then--Returns true when on the hook/transport @@ -155,7 +144,6 @@ local function checkBoatOn(self, count) timerBloodRitualCD:Stop() timerRapidFireCD:Stop() timerBladeDashCD:Stop() - countdownBladeDash:Cancel() timerHeartSeekerCD:Stop() timerConvulsiveShadowsCD:Stop() timerPenetratingShotCD:Stop() @@ -173,7 +161,7 @@ function mod:ConvulsiveTarget(targetname, uId) if not DBM.Options.DontShowFarWarnings then noFilter = true end - if (noFilter or not isPlayerOnBoat()) then + if (noFilter or not playerOnBoat) then if self.Options.SpecWarn156214target then specWarnConvulsiveShadowsOther:Show(self.vb.convulsiveShadows, targetname) else @@ -218,13 +206,9 @@ function mod:OnCombatStart(delay) self.vb.lastBoatPower = 0 playerOnBoat = false timerBladeDashCD:Start(8-delay, 1) - if self:IsMythic() then - countdownBladeDash:Start(8-delay) - end timerBloodRitualCD:Start(12.4-delay, 1) timerRapidFireCD:Start(15.5-delay, 1) timerShipCD:Start(59.5-delay, 1) - countdownShip:Start(59.5-delay) self:RegisterShortTermEvents( "UNIT_HEALTH_FREQUENT boss1 boss2 boss3" ) @@ -246,43 +230,39 @@ function mod:SPELL_CAST_START(args) end if spellId == 158078 then self.vb.bloodRitual = self.vb.bloodRitual + 1 - if noFilter or not isPlayerOnBoat() then--Blood Ritual. Still safest way to start timer, in case no sync + if noFilter or not playerOnBoat then--Blood Ritual. Still safest way to start timer, in case no sync timerBloodRitualCD:Start(nil, self.vb.bloodRitual+1) end elseif spellId == 156626 then--Rapid Fire. Still safest way to start timer, in case no sync self.vb.rapidfire = self.vb.rapidfire + 1 - if noFilter or not isPlayerOnBoat() then + if noFilter or not playerOnBoat then timerRapidFireCD:Start(nil, self.vb.rapidfire+1) end elseif spellId == 158599 then self.vb.turret = self.vb.turret + 1 - if (noFilter or not isPlayerOnBoat()) then + if (noFilter or not playerOnBoat) then specWarnDeployTurret:Show() specWarnDeployTurret:Play("158599") timerDeployTurretCD:Start(nil, self.vb.turret+1) end elseif spellId == 155794 then - if noFilter or not isPlayerOnBoat() then + if noFilter or not playerOnBoat then self:ScheduleMethod(0.1, "BossTargetScanner", 77231, "BladeDashTarget", 0.1, 16) timerBladeDashCD:Stop() timerBladeDashCD:Start(nil, self.vb.bladeDash+1) - if self:IsMythic() then - countdownBladeDash:Cancel() - countdownBladeDash:Start() - end end elseif spellId == 158008 then self.vb.heartseeker = self.vb.heartseeker + 1 - if noFilter or not isPlayerOnBoat() then + if noFilter or not playerOnBoat then timerHeartSeekerCD:Start(nil, self.vb.heartseeker+1) end --Begin Deck Abilities - elseif spellId == 158708 and (noFilter or isPlayerOnBoat()) then + elseif spellId == 158708 and (noFilter or playerOnBoat) then specWarnEarthenbarrier:Show(args.sourceName) specWarnEarthenbarrier:Play("kickcast") - elseif spellId == 158707 and (noFilter or isPlayerOnBoat()) then + elseif spellId == 158707 and (noFilter or playerOnBoat) then warnProtectiveEarth:Show() - elseif spellId == 158692 and (noFilter or isPlayerOnBoat()) then + elseif spellId == 158692 and (noFilter or playerOnBoat) then specWarnDeadlyThrow:Show() elseif spellId == 156109 then self.vb.shadowsWarned = false @@ -300,15 +280,15 @@ function mod:SPELL_CAST_SUCCESS(args) noFilter = true end if spellId == 157854 then - if noFilter or not isPlayerOnBoat() then + if noFilter or not playerOnBoat then warnBombardmentAlpha:Show(self.vb.alphaOmega) timerBombardmentAlphaCD:Start() end - elseif spellId == 157886 and (noFilter or not isPlayerOnBoat()) then + elseif spellId == 157886 and (noFilter or not playerOnBoat) then specWarnBombardmentOmega:Show(self.vb.alphaOmega) self.vb.alphaOmega = self.vb.alphaOmega + 1 elseif spellId == 156109 and self:IsMythic() then - if noFilter or not isPlayerOnBoat() then + if noFilter or not playerOnBoat then timerConvulsiveShadowsCD:Start(nil, self.vb.convulsiveShadows+1) end elseif spellId == 155794 then @@ -324,7 +304,7 @@ function mod:SPELL_AURA_APPLIED(args) end if spellId == 164271 then self.vb.penetratingShot = self.vb.penetratingShot + 1 - if noFilter or not isPlayerOnBoat() then + if noFilter or not playerOnBoat then if self.Options.SpecWarn164271target then specWarnPenetratingShotOther:Show(self.vb.penetratingShot, args.destName) else @@ -337,7 +317,7 @@ function mod:SPELL_AURA_APPLIED(args) specWarnPenetratingShot:Play("gathershare") end end - elseif spellId == 156214 and not self.vb.shadowsWarned and (noFilter or not isPlayerOnBoat()) then + elseif spellId == 156214 and not self.vb.shadowsWarned and (noFilter or not playerOnBoat) then --Count not showed here because spreads aren't counted warnConvulsiveShadows:CombinedShow(0.5, args.destName)--Combined because a bad lingeringshadows drop may have multiple. if args:IsPlayer() and self:IsMythic() then @@ -347,10 +327,9 @@ function mod:SPELL_AURA_APPLIED(args) end elseif spellId == 158315 then self.vb.darkHunt = self.vb.darkHunt + 1 - if (noFilter or not isPlayerOnBoat()) then + if (noFilter or not playerOnBoat) then if args:IsPlayer() then specWarnDarkHunt:ScheduleVoice(1.5, "defensive") - countdownDarkHunt:Start() specWarnDarkHunt:Show() else if self.Options.SpecWarn158315target then @@ -365,7 +344,7 @@ function mod:SPELL_AURA_APPLIED(args) if self.Options.SetIconOnHeartSeeker and not self:IsLFR() then self:SetSortedIcon(1, args.destName, 3, 3) end - if (noFilter or not isPlayerOnBoat()) then + if (noFilter or not playerOnBoat) then warnBloodsoakedHeartseeker:CombinedShow(0.5, self.vb.heartseeker, args.destName) if args:IsPlayer() then specWarnBloodsoakedHeartseeker:Show() @@ -377,8 +356,7 @@ function mod:SPELL_AURA_APPLIED(args) if self.Options.SetIconOnBloodRitual and not self:IsLFR() then self:SetIcon(args.destName, 2) end - if (noFilter or not isPlayerOnBoat()) then - countdownBloodRitual:Start() + if (noFilter or not playerOnBoat) then if self.Options.HudMapOnBloodRitual then DBMHudMap:RegisterRangeMarkerOnPartyMember(spellId, "highlight", args.destName, 3.5, 7, 1, 0, 0, 0.5, nil, true, 2):Pulse(0.5, 0.5) end @@ -402,7 +380,7 @@ function mod:SPELL_AURA_APPLIED(args) if self.Options.SetIconOnRapidFire and not self:IsLFR() then self:SetIcon(args.destName, 1, 7) end - if (noFilter or not isPlayerOnBoat()) then + if (noFilter or not playerOnBoat) then if self:CheckNearby(5, args.destName) and self.Options.SpecWarn156631close then specWarnRapidFireNear:Show(args.destName) specWarnRapidFireNear:Play("runaway") @@ -418,7 +396,7 @@ function mod:SPELL_AURA_APPLIED(args) warnSanguineStrikes:Show(args.destName) --warnSanguineStrikes:Play("healall") --Begin Deck Abilities - elseif spellId == 158702 and (noFilter or isPlayerOnBoat()) then + elseif spellId == 158702 and (noFilter or playerOnBoat) then warnFixate:CombinedShow(0.5, args.destName) if args:IsPlayer() and self:AntiSpam(3, 1) then--it spams sometimes specWarnFixate:Show() @@ -459,7 +437,6 @@ function mod:UNIT_DIED(args) timerDeployTurretCD:Stop() elseif cid == 77231 then--Sorka timerBladeDashCD:Stop() - countdownBladeDash:Cancel() timerConvulsiveShadowsCD:Stop() timerDarkHuntCD:Stop() elseif cid == 78351 or cid == 78341 or cid == 78343 then--boat bosses @@ -470,7 +447,6 @@ end function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) if spellId == 158849 then timerWarmingUp:Start() - countdownWarmingUp:Start() --No emote trigger, backup if not self.vb.boatMissionActive then --self:Schedule(1, checkBoatOn, self, 1) @@ -480,7 +456,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) --Timers that always cancel on mythic, regardless of boss going up if self:IsMythic() then timerBladeDashCD:Stop() - countdownBladeDash:Cancel() timerBloodRitualCD:Stop() timerHeartSeekerCD:Stop() else--This cancels in all modes @@ -491,7 +466,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) warnShip:Play("1695ukurogg") elseif cid == 77231 then--Sorka timerBladeDashCD:Stop() - countdownBladeDash:Cancel() timerConvulsiveShadowsCD:Stop() timerDarkHuntCD:Stop() warnShip:Play("1695gorak") @@ -514,13 +488,11 @@ function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg, npc) warnShip:Show(npc) if self.vb.ship < 3 then timerShipCD:Start(nil, self.vb.ship+1) - countdownShip:Start() end --Timers that always cancel on mythic, regardless of boss going up if self:IsMythic() then self:Schedule(3, function() timerBladeDashCD:Stop() - countdownBladeDash:Cancel() timerBloodRitualCD:Stop() timerHeartSeekerCD:Stop() end) @@ -541,7 +513,6 @@ function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg, npc) self.vb.boatMissionActive = 77231 self:Schedule(3, function() timerBladeDashCD:Stop() - countdownBladeDash:Cancel() timerConvulsiveShadowsCD:Stop() timerDarkHuntCD:Stop() end) @@ -586,7 +557,7 @@ function mod:CHAT_MSG_ADDON(prefix, msg, channel, targetName) if self.Options.SetIconOnRapidFire and not self:IsLFR() then self:SetIcon(targetName, 1, 10) end - if DBM.Options.DontShowFarWarnings and isPlayerOnBoat() then return end--Anything below this line doesn't concern people on boat + if DBM.Options.DontShowFarWarnings and playerOnBoat then return end--Anything below this line doesn't concern people on boat if self:CheckNearby(5, targetName) and self.Options.SpecWarn156631close then specWarnRapidFireNear:Show(targetName) specWarnRapidFireNear:Play("runaway") @@ -614,7 +585,6 @@ function mod:UNIT_HEALTH_FREQUENT(uId) local hp = UnitHealth(uId) / UnitHealthMax(uId) if hp < 0.20 and self.vb.phase ~= 2 then timerShipCD:Stop() - countdownShip:Cancel() self.vb.phase = 2 warnPhase2:Show() warnPhase2:Play("ptwo") @@ -632,7 +602,6 @@ function mod:UNIT_POWER_FREQUENT(uId, type) DBM:Debug("checkBoatPlayer finished") timerBombardmentAlphaCD:Stop() timerWarmingUp:Stop() - countdownWarmingUp:Cancel() if playerOnBoat then -- leave boat playerOnBoat = false specWarnReturnBase:Show() @@ -645,8 +614,6 @@ function mod:UNIT_POWER_FREQUENT(uId, type) --These abilites resume when boat phase ends with thes timers, they do NOT resume previous timers where they left off. timerBladeDashCD:Stop() timerBladeDashCD:Start(8, 1) - countdownBladeDash:Cancel() - countdownBladeDash:Start(8) timerBloodRitualCD:Stop() timerBloodRitualCD:Start(12.5, 1)--Variation on this may be same as penetrating shot variation. when it's marak returning from boat may be when it's 9.7 --These are altered by boat ending, even though boss continues casting it during boat phases. diff --git a/DBM-BlackrockFoundry/Kagraz.lua b/DBM-BlackrockFoundry/Kagraz.lua index 0f62c0b..a2179b4 100644 --- a/DBM-BlackrockFoundry/Kagraz.lua +++ b/DBM-BlackrockFoundry/Kagraz.lua @@ -52,23 +52,17 @@ local specWarnCharringBreathOther = mod:NewSpecialWarningTaunt(155074) local timerLavaSlashCD = mod:NewCDTimer(14.5, 155318, nil, false, nil, 3) local timerMoltenTorrentCD = mod:NewCDTimer(14, 154932, nil, "Ranged", 2, 3) -local timerSummonEnchantedArmamentsCD = mod:NewCDTimer(45, 156724, nil, "Ranged", 2, 3)--45-47sec variation -local timerSummonCinderWolvesCD = mod:NewNextTimer(76, 155776, nil, nil, nil, 1) -local timerOverheated = mod:NewTargetTimer(14, 154950, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) +local timerSummonEnchantedArmamentsCD = mod:NewCDTimer(45, 156724, nil, "Ranged", 2, 3, nil, nil, nil, 2, 4)--45-47sec variation +local timerSummonCinderWolvesCD = mod:NewNextTimer(76, 155776, nil, nil, nil, 1, nil, nil, nil, 1, 4) +local timerOverheated = mod:NewTargetTimer(14, 154950, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON, nil, 2, 4) local timerCharringBreathCD = mod:NewNextTimer(5, 155074, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) local timerFixate = mod:NewBuffFadesTimer(9.6, 154952) local timerBlazingRadianceCD = mod:NewCDTimer(12, 155277, nil, false, nil, 3)--somewhat important but not important enough. there is just too much going on to be distracted by this timer -local timerFireStormCD = mod:NewNextCountTimer(61, 155493, nil, nil, nil, 2, nil, DBM_CORE_HEALER_ICON) +local timerFireStormCD = mod:NewNextCountTimer(61, 155493, nil, nil, nil, 2, nil, DBM_CORE_HEALER_ICON, nil, 1, 5) local timerFireStorm = mod:NewBuffActiveTimer(14, 155493, nil, nil, nil, 6) local berserkTimer = mod:NewBerserkTimer(420) -local countdownCinderWolves = mod:NewCountdown(76, 155776) -local countdownFireStorm = mod:NewCountdown(61, 155493)--Same count as wolves cause never happen at same time, in fact they alternate. -local countdownEnchantedArmaments = mod:NewCountdown("Alt45", 156724, false, 2) -local countdownOverheated = mod:NewCountdownFades("Alt20", 154950, "Tank") -local countdownMoltenTorrent = mod:NewCountdownFades("AltTwo6", 154932) - mod:AddRangeFrameOption("10/6") mod:AddSetIconOption("SetIconOnAdds", 155776, true, true) mod:AddHudMapOption("HudMapOnFixate", 154952, false) @@ -98,7 +92,6 @@ function mod:OnCombatStart(delay) timerLavaSlashCD:Start(11-delay) timerMoltenTorrentCD:Start(30-delay) timerSummonCinderWolvesCD:Start(60-delay) - countdownCinderWolves:Start(60-delay) if self:IsMythic() then berserkTimer:Start(-delay) end @@ -137,7 +130,6 @@ function mod:SPELL_CAST_SUCCESS(args) timerBlazingRadianceCD:Start(34) timerFireStormCD:Start(nil, self.vb.firestorm+1) specWarnFireStorm:ScheduleVoice(56.5, "aesoon") - countdownFireStorm:Start() specWarnCinderWolves:Play("killmob") wolfIcon = 2 if self.Options.SetIconOnAdds and not self:IsLFR() then @@ -215,7 +207,6 @@ function mod:SPELL_AURA_APPLIED(args) timerMoltenTorrentCD:Start() if args:IsPlayer() then specWarnMoltenTorrent:Show() - countdownMoltenTorrent:Start(6) specWarnMoltenTorrent:Play("runin") yellMoltenTorrent:Schedule(5, 1) yellMoltenTorrent:Schedule(4, 2) @@ -229,7 +220,6 @@ function mod:SPELL_AURA_APPLIED(args) specWarnOverheated:Show() timerOverheated:Start(args.destName) timerCharringBreathCD:Start() - countdownOverheated:Start() end end mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED @@ -250,7 +240,6 @@ function mod:SPELL_AURA_REMOVED(args) end elseif spellId == 154950 then timerOverheated:Cancel(args.destName) - countdownOverheated:Cancel() elseif spellId == 154952 then if args:IsPlayer() then timerFixate:Stop() @@ -310,10 +299,8 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) warnSummonEnchantedArmaments:Show() if self:IsMythic() then timerSummonEnchantedArmamentsCD:Start(20) - countdownEnchantedArmaments:Start(20) else timerSummonEnchantedArmamentsCD:Start() - countdownEnchantedArmaments:Start() end elseif spellId == 154914 then warnLavaSlash:Show() @@ -325,7 +312,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) timerFireStorm:Start() timerMoltenTorrentCD:Start(42.5) timerSummonCinderWolvesCD:Start() - countdownCinderWolves:Start() specWarnFireStorm:Play("gather") end end diff --git a/DBM-BlackrockFoundry/Kromog.lua b/DBM-BlackrockFoundry/Kromog.lua index 33883bf..a85ee41 100644 --- a/DBM-BlackrockFoundry/Kromog.lua +++ b/DBM-BlackrockFoundry/Kromog.lua @@ -41,20 +41,17 @@ local specWarnTremblingEarth = mod:NewSpecialWarningCount(173917, nil, nil, nil local specWarnCalloftheMountain = mod:NewSpecialWarningCount(158217, nil, nil, nil, 3, 2) local timerGraspingEarthCD = mod:NewCDTimer(114, 157060, nil, nil, nil, 6)--Unless see new logs on normal showing it can still be 111, raising to 115, average i saw was 116-119 -local timerThunderingBlowsCD = mod:NewNextTimer(12, 157054, nil, nil, nil, 2, nil, DBM_CORE_DEADLY_ICON) +local timerThunderingBlowsCD = mod:NewNextTimer(12, 157054, nil, nil, nil, 2, nil, DBM_CORE_DEADLY_ICON, nil, 1, 4) local timerRipplingSmashCD = mod:NewCDTimer(21, 157592, nil, nil, nil, 3)--If it comes off CD early enough into ThunderingBlows/Grasping Earth, he skips a cast. Else, he'll cast it very soon after. local timerStoneBreathCD = mod:NewCDCountTimer(22, 156852, nil, nil, nil, 2, nil, DBM_CORE_HEALER_ICON) local timerSlamCD = mod:NewCDTimer(23, 156704, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) local timerWarpedArmorCD = mod:NewCDTimer(14, 156766, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) local timerTremblingEarthCD = mod:NewCDTimer(153.5, 173917, nil, nil, nil, 6) -local timerTremblingEarth = mod:NewBuffActiveTimer(25, 173917, nil, nil, nil, 6) +local timerTremblingEarth = mod:NewBuffActiveTimer(25, 173917, nil, nil, nil, 6, nil, nil, nil, 2, 4) local timerCalloftheMountain = mod:NewCastTimer(5, 158217, nil, nil, nil, 2, nil, DBM_CORE_DEADLY_ICON) local berserkTimer = mod:NewBerserkTimer(540) -local countdownThunderingBlows = mod:NewCountdown(12, 157054) -local countdownTremblingEarth = mod:NewCountdownFades("Alt25", 173917) - mod.vb.mountainCast = 0 mod.vb.stoneBreath = 0 mod.vb.tremblingCast = 0 @@ -83,11 +80,9 @@ function mod:SPELL_CAST_START(args) timerStoneBreathCD:Stop() if self:IsLFR() then timerThunderingBlowsCD:Start(20.5) - countdownThunderingBlows:Start(20.5) timerStoneBreathCD:Start(28, self.vb.stoneBreath+1) else timerThunderingBlowsCD:Start() - countdownThunderingBlows:Start() timerStoneBreathCD:Start(31, self.vb.stoneBreath+1)--Verified it happens on mythic, if rune of trembling earth doesn't come first end timerSlamCD:Stop() @@ -176,7 +171,6 @@ function mod:SPELL_AURA_APPLIED(args) self.vb.tremblingCast = self.vb.tremblingCast + 1 specWarnTremblingEarth:Show(self.vb.tremblingCast) timerTremblingEarth:Start() - countdownTremblingEarth:Start() timerSlamCD:Stop() timerRipplingSmashCD:Stop() timerWarpedArmorCD:Stop() diff --git a/DBM-BlackrockFoundry/Oregorger.lua b/DBM-BlackrockFoundry/Oregorger.lua index 7055d38..0d386ce 100644 --- a/DBM-BlackrockFoundry/Oregorger.lua +++ b/DBM-BlackrockFoundry/Oregorger.lua @@ -37,13 +37,11 @@ local specWarnHungerDrive = mod:NewSpecialWarningSpell("ej9964", nil, nil, nil local specWarnHungerDriveEnded = mod:NewSpecialWarningFades("ej9964", nil, nil, nil, 1, 2) local timerBlackrockSpinesCD = mod:NewCDTimer(18.5, 156834, nil, nil, nil, 4, nil, DBM_CORE_INTERRUPT_ICON)--20-23 (cd for barrages themselves too inconsistent and useless. but CD for when he recharges his spines, quite consistent) -local timerAcidTorrentCD = mod:NewCDCountTimer(13, 156240, nil, "Tank|Healer", 2, 5, nil, DBM_CORE_TANK_ICON) +local timerAcidTorrentCD = mod:NewCDCountTimer(13, 156240, nil, "Tank|Healer", 2, 5, nil, DBM_CORE_TANK_ICON, nil 2, 4) local timerExplosiveShardCD = mod:NewCDTimer(12, 156390, nil, "MeleeDps", 3, 3)--Every 12-20 seconds local timerExplosiveShard = mod:NewCastTimer(3.5, 156390, nil, "MeleeDps") local timerRetchedBlackrockCD = mod:NewCDTimer(15.5, 156179, nil, "Ranged", 2, 3) -local countdownAcidTorrent = mod:NewCountdown(13, 156240, "Tank") - mod:AddDropdownOption("InterruptBehavior", {"Smart", "Fixed"}, "Smart", "misc") mod.vb.torrentCount = 0 @@ -72,7 +70,6 @@ function mod:OnCombatStart(delay) timerRetchedBlackrockCD:Start(4.5-delay)--5-7 timerExplosiveShardCD:Start(9.5-delay) timerAcidTorrentCD:Start(11-delay, 1) - countdownAcidTorrent:Start(12-delay) timerBlackrockSpinesCD:Start(13-delay)--13-16 -- berserkTimer:Start(-delay) end @@ -92,7 +89,6 @@ function mod:SPELL_CAST_START(args) warnAcidTorrent:Show(self.vb.torrentCount) end timerAcidTorrentCD:Start(nil, self.vb.torrentCount+1) - countdownAcidTorrent:Start() specWarnAcidTorrent:ScheduleVoice(3, "changemt") elseif spellId == 156179 then self:ScheduleMethod(0.1, "BossTargetScanner", 77182, "RetchedBlackrockTarget", 0.04, 16)--give 0.1 delay before scan start. @@ -108,7 +104,6 @@ function mod:SPELL_AURA_REMOVED(args) timerRetchedBlackrockCD:Start(5) timerExplosiveShardCD:Start(6)--7-9 timerAcidTorrentCD:Start(11, 1)--11-12 - countdownAcidTorrent:Start(11) timerBlackrockSpinesCD:Start(13) elseif spellId == 156834 then local bossPower = UnitPower("boss1") @@ -168,7 +163,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) timerBlackrockSpinesCD:Stop() timerRetchedBlackrockCD:Stop() timerAcidTorrentCD:Stop() - countdownAcidTorrent:Cancel() timerExplosiveShardCD:Stop() specWarnHungerDrive:Show() specWarnHungerDrive:Play("phasechange") diff --git a/DBM-BlackrockFoundry/Thogar.lua b/DBM-BlackrockFoundry/Thogar.lua index 0817f92..f99cbc8 100644 --- a/DBM-BlackrockFoundry/Thogar.lua +++ b/DBM-BlackrockFoundry/Thogar.lua @@ -48,7 +48,7 @@ local specWarnBurning = mod:NewSpecialWarningStack(164380, nil, 2)--Mythic --Operator Thogar local timerProtoGrenadeCD = mod:NewCDTimer(11, 155864, nil, nil, nil, 3) local timerEnkindleCD = mod:NewCDTimer(11.5, 155921, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) -local timerTrainCD = mod:NewNextCountTimer("d15", 176312, nil, nil, nil, 1, nil, DBM_CORE_DEADLY_ICON) +local timerTrainCD = mod:NewNextCountTimer("d15", 176312, nil, nil, nil, 1, nil, DBM_CORE_DEADLY_ICON, nil, 1, 5) --Adds --local timerCauterizingBoltCD = mod:NewNextTimer(30, 160140, nil, nil, nil, 4, nil, DBM_CORE_INTERRUPT_ICON) local timerIronbellowCD = mod:NewCDTimer(8.5, 163753, nil, nil, nil, 2, nil, DBM_CORE_HEALER_ICON) @@ -56,8 +56,6 @@ local timerDelayedSiegeBomb = mod:NewNextCountTimer(6, 159481) local berserkTimer = mod:NewBerserkTimer(492) -local countdownTrain = mod:NewCountdown(4.5, 176312) - mod:AddInfoFrameOption(176312) mod:AddSetIconOption("SetIconOnAdds", "ej9549", false, true) mod:AddHudMapOption("HudMapForTrain", 176312, false) @@ -372,9 +370,9 @@ local function lanePos(self) end local function laneCheck(self) + if self:HasMapRestrictions() then return end local TrainTable = self:IsMythic() and mythicTrains or self:IsLFR() and lfrTrains or otherTrains local train = self.vb.trainCount - if self:HasMapRestrictions() then return end local playerLane = lanePos(self) if TrainTable[train] and TrainTable[train][playerLane] then specWarnTrain:Show() @@ -681,11 +679,9 @@ function mod:CHAT_MSG_MONSTER_YELL(msg, npc, _, _, target) self.vb.trainCount = self.vb.trainCount + 1 showTrainWarning(self) if msg == "Fake" then - countdownTrain:Start(3.0) laneCheck(self) fakeAdjust = 1.5 else - countdownTrain:Start() self:Schedule(1.5, laneCheck, self) end end diff --git a/DBM-Draenor/DBM-Draenor.toc b/DBM-Draenor/DBM-Draenor.toc index b55bef6..e7cd6b5 100644 --- a/DBM-Draenor/DBM-Draenor.toc +++ b/DBM-Draenor/DBM-Draenor.toc @@ -1,4 +1,4 @@ -## Interface: 80100 +## Interface: 80200 ## X-Min-Interface: 80000 ## Title:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Draenor|r ## Title-deDE:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Draenor|r diff --git a/DBM-GarrisonInvasions/DBM-GarrisonInvasions.toc b/DBM-GarrisonInvasions/DBM-GarrisonInvasions.toc index fd6dd76..d18e1df 100644 --- a/DBM-GarrisonInvasions/DBM-GarrisonInvasions.toc +++ b/DBM-GarrisonInvasions/DBM-GarrisonInvasions.toc @@ -1,4 +1,4 @@ -## Interface: 80100 +## Interface: 80200 ## X-Min-Interface: 80000 ## Title:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Garrison Invasions|r ## Title-koKR:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0주둔지 침공|r diff --git a/DBM-HellfireCitadel/Archimonde.lua b/DBM-HellfireCitadel/Archimonde.lua index 2a53b78..62f9b87 100644 --- a/DBM-HellfireCitadel/Archimonde.lua +++ b/DBM-HellfireCitadel/Archimonde.lua @@ -101,21 +101,21 @@ mod:AddTimerLine(SCENARIO_STAGE:format(1)) local timerDoomfireCD = mod:NewCDTimer(41.5, 182826, nil, nil, nil, 1)--182826 cast, 182879 fixate. Doomfire only fixates ranged, but ALL dps switch to it. local timerAllureofFlamesCD = mod:NewCDTimer(47.5, 183254, nil, nil, nil, 2) local timerFelBurstCD = mod:NewCDTimer(52, 183817, nil, nil, 2, 3, nil, DBM_CORE_DEADLY_ICON) -local timerDeathbrandCD = mod:NewCDCountTimer(42.5, 183828, nil, nil, nil, 1)--Everyone, for tanks/healers to know when debuff/big hit, for dps to know add coming +local timerDeathbrandCD = mod:NewCDCountTimer(42.5, 183828, nil, nil, nil, 1, nil, nil, nil, 1, 3)--Everyone, for tanks/healers to know when debuff/big hit, for dps to know add coming local timerDesecrateCD = mod:NewCDTimer(26.3, 185590, nil, nil, 2, 2) local timerLightCD = mod:NewNextTimer(10, 183963, nil, nil, nil, 5) ----Hellfire Deathcaller local timerShadowBlastCD = mod:NewCDTimer(7.3, 183864, nil, "Tank", nil, 5) --Phase 2: Hand of the Legion mod:AddTimerLine(SCENARIO_STAGE:format(2)) -local timerShackledTormentCD = mod:NewCDCountTimer(31.5, 184931, nil, nil, nil, 3) +local timerShackledTormentCD = mod:NewCDCountTimer(31.5, 184931, nil, nil, nil, 3, nil, nil, nil, not mod:IsTank() 3, 3) local timerWroughtChaosCD = mod:NewCDTimer(51.7, 184265, nil, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON) --Phase 2.5 local timerFelborneOverfiendCD = mod:NewNextCountTimer(44.3, "ej11603", nil, nil, nil, 1, 186662) --Phase 3: The Twisting Nether mod:AddTimerLine(SCENARIO_STAGE:format(3)) -local timerDemonicFeedbackCD = mod:NewCDCountTimer(35, 187180, nil, nil, nil, 2) -local timerNetherBanishCD = mod:NewCDCountTimer(61.9, 186961, nil, nil, nil, 5) +local timerDemonicFeedbackCD = mod:NewCDCountTimer(35, 187180, nil, nil, nil, 2, nil, nil, nil, 2, 3) +local timerNetherBanishCD = mod:NewCDCountTimer(61.9, 186961, nil, nil, nil, 5, nil, nil, nil, 1, 3) --Phase 3.5: local timerRainofChaosCD = mod:NewCDCountTimer(62, 182225, 23426, nil, nil, 2) ----The Nether @@ -124,23 +124,12 @@ mod:AddTimerLine(ENCOUNTER_JOURNAL_SECTION_FLAG12) local timerDarkConduitCD = mod:NewNextCountTimer(107, 190394, nil, "-Melee", 2, 3) local timerMarkOfLegionCD = mod:NewNextCountTimer(107, 187050, 28836, nil, nil, 3) local timerInfernalsCD = mod:NewNextCountTimer(107, 187111, 23426, nil, nil, 1, 1122) -local timerSourceofChaosCD = mod:NewNextCountTimer(107, 190703, nil, nil, 2, 1) +local timerSourceofChaosCD = mod:NewNextCountTimer(107, 190703, nil, nil, 2, 1, nil, DBM_CORE_TANK_ICON, nil, 2, 4) local timerTwistedDarknessCD = mod:NewNextCountTimer(107, 190821, 189894, nil, nil, 1) -local timerSeethingCorruptionCD = mod:NewNextCountTimer(107, 190506, 66911, nil, nil, 2, nil, DBM_CORE_DEADLY_ICON) +local timerSeethingCorruptionCD = mod:NewNextCountTimer(107, 190506, 66911, nil, nil, 2, nil, DBM_CORE_DEADLY_ICON, nil, 1, 4) --local berserkTimer = mod:NewBerserkTimer(360) ---countdowns kind of blow with this fights timer variations. ---Everything but overfiend is a CD ---I don't want to use a countdown on something thats 47-56 like allure or 52-70 like felburst -local countdownWroughtChaos = mod:NewCountdownFades("Alt5", 184265, nil, nil, 3) -local countdownNetherBanish = mod:NewCountdown(61.9, 186961, nil, nil, 3) -local countdownDemonicFeedback = mod:NewCountdown("Alt35", 186961, nil, nil, 3) -local countdownDeathBrand = mod:NewCountdown(42, 183828, "Tank", 2, 3) -local countdownShackledTorment = mod:NewCountdown("AltTwo42", 184931, "-Tank", nil, 3) -local countdownSeethingCorruption = mod:NewCountdown(61.9, 190506) -local countdownSourceofChaos = mod:NewCountdown("Alt35", 190703, "Tank") - mod:AddRangeFrameOption("6/8/10") mod:AddSetIconOption("SetIconOnFelBurst", 183634, true) mod:AddSetIconOption("SetIconOnShackledTorment2", 184964, false) @@ -549,7 +538,6 @@ local function sourceOfChaosCheck(self) if cooldown then --Subtrack 5 from next cd, since this check is running 5 seconds late timerSourceofChaosCD:Start(cooldown-5, self.vb.sourceOfChaosCast+1) - countdownSourceofChaos:Start(cooldown-5) --Schedule Late check for 5 seconds AFTER cast self:Schedule(cooldown, sourceOfChaosCheck, self) end @@ -596,8 +584,6 @@ local function updateAllTimers(self, ICD, AllureSpecial) DBM:Debug("timerDeathbrandCD extended by: "..extend, 2) timerDeathbrandCD:Stop() timerDeathbrandCD:Update(elapsed, total+extend, self.vb.deathBrandCount+1) - countdownDeathBrand:Cancel() - countdownDeathBrand:Start(ICD) end if phase == 1.5 then if not AllureSpecial and timerDesecrateCD:GetRemaining() < ICD then @@ -622,8 +608,6 @@ local function updateAllTimers(self, ICD, AllureSpecial) DBM:Debug("timerShackledTormentCD extended by: "..extend, 2) timerShackledTormentCD:Stop() timerShackledTormentCD:Update(elapsed, total+extend, self.vb.tormentCast+1) - countdownShackledTorment:Cancel() - countdownShackledTorment:Start(ICD) end if not self:IsEasy() and timerWroughtChaosCD:GetRemaining() < ICD then local elapsed, total = timerWroughtChaosCD:GetTime() @@ -638,8 +622,6 @@ local function updateAllTimers(self, ICD, AllureSpecial) DBM:Debug("timerDeathbrandCD extended by: "..extend, 2) timerDeathbrandCD:Stop() timerDeathbrandCD:Update(elapsed, total+extend, self.vb.deathBrandCount+1) - countdownDeathBrand:Cancel() - countdownDeathBrand:Start(ICD) end else if timerShackledTormentCD:GetRemaining(self.vb.tormentCast+1) < ICD then @@ -648,8 +630,6 @@ local function updateAllTimers(self, ICD, AllureSpecial) DBM:Debug("timerShackledTormentCD extended by: "..extend, 2) timerShackledTormentCD:Stop() timerShackledTormentCD:Update(elapsed, total+extend, self.vb.tormentCast+1) - countdownShackledTorment:Cancel() - countdownShackledTorment:Start(ICD) end if not self:IsEasy() and timerWroughtChaosCD:GetRemaining() < ICD then local elapsed, total = timerWroughtChaosCD:GetTime() @@ -665,8 +645,6 @@ local function updateAllTimers(self, ICD, AllureSpecial) specWarnDemonicFeedbackSoon:Cancel() timerDemonicFeedbackCD:Stop() timerDemonicFeedbackCD:Update(elapsed, total+extend, self.vb.demonicCount+1) - countdownDemonicFeedback:Cancel() - countdownDemonicFeedback:Start(ICD) end if timerNetherBanishCD:GetRemaining(self.vb.netherBanish2+1) < ICD then local elapsed, total = timerNetherBanishCD:GetTime(self.vb.netherBanish2+1) @@ -674,8 +652,6 @@ local function updateAllTimers(self, ICD, AllureSpecial) DBM:Debug("timerNetherBanishCD extended by: "..extend, 2) timerNetherBanishCD:Stop() timerNetherBanishCD:Update(elapsed, total+extend, self.vb.netherBanish2+1) - countdownNetherBanish:Cancel() - countdownNetherBanish:Start(ICD) end end end @@ -697,7 +673,6 @@ function mod:OnCombatStart(delay) playerBanished = false timerDoomfireCD:Start(5.1-delay) timerDeathbrandCD:Start(15-delay, 1) - countdownDeathBrand:Start(15-delay) timerAllureofFlamesCD:Start(30-delay) warnFelBurstSoon:Schedule(35-delay) timerFelBurstCD:Start(40-delay) @@ -751,8 +726,6 @@ function mod:SPELL_CAST_START(args) specWarnDeathBrand:Show(self.vb.deathBrandCount) timerDeathbrandCD:Stop() timerDeathbrandCD:Start(nil, self.vb.deathBrandCount+1) - countdownDeathBrand:Cancel() - countdownDeathBrand:Start() local tanking, status = UnitDetailedThreatSituation("player", "boss1") if tanking or (status == 3) then specWarnDeathBrand:Play("defensive") @@ -781,7 +754,6 @@ function mod:SPELL_CAST_START(args) local cooldown = seethingCorruptionTimers[self.vb.seethingCorruptionCount+1] if cooldown then timerSeethingCorruptionCD:Start(cooldown, self.vb.seethingCorruptionCount+1) - countdownSeethingCorruption:Start(cooldown) end specWarnSeethingCorruption:Play("watchstep") elseif spellId == 184931 then @@ -789,10 +761,8 @@ function mod:SPELL_CAST_START(args) self.vb.tormentCast = self.vb.tormentCast + 1 if self.vb.phase < 3 then timerShackledTormentCD:Start(36.5, self.vb.tormentCast+1) - countdownShackledTorment:Start(36.5) else timerShackledTormentCD:Start(31, self.vb.tormentCast+1) - countdownShackledTorment:Start(31) end updateAllTimers(self, 7, true) elseif spellId == 187180 then @@ -802,7 +772,6 @@ function mod:SPELL_CAST_START(args) specWarnDemonicFeedback:Play("scatter") end timerDemonicFeedbackCD:Start(nil, self.vb.demonicCount+1) - countdownDemonicFeedback:Start() updateAllTimers(self, 3.5) elseif spellId == 182225 then self.vb.rainOfChaos = self.vb.rainOfChaos + 1 @@ -851,7 +820,6 @@ function mod:SPELL_CAST_START(args) local cooldown = sourceofChaosTimers[self.vb.sourceOfChaosCast+1] if cooldown then timerSourceofChaosCD:Start(cooldown, self.vb.sourceOfChaosCast+1) - countdownSourceofChaos:Start(cooldown) --Schedule Late check for 5 seconds AFTER cast self:Schedule(cooldown+5, sourceOfChaosCheck, self) end @@ -877,8 +845,6 @@ function mod:SPELL_CAST_START(args) timerAllureofFlamesCD:Stop() timerDeathbrandCD:Stop() timerShackledTormentCD:Stop() - countdownShackledTorment:Cancel() - countdownDeathBrand:Cancel() timerWroughtChaosCD:Stop() end end @@ -950,9 +916,6 @@ function mod:SPELL_AURA_APPLIED(args) specWarnWroughtChaos:Show() specWarnWroughtChaos:Play("186123") yellWroughtChaos:Yell() - countdownWroughtChaos:Start() - else - countdownWroughtChaos:Start(6) end end if not playerBanished or not self.Options.FilterOtherPhase then @@ -968,9 +931,6 @@ function mod:SPELL_AURA_APPLIED(args) yellFocusedChaos:Schedule(3, 2) yellFocusedChaos:Schedule(2, 3) yellFocusedChaos:Schedule(1, 4) - countdownWroughtChaos:Start() - else - countdownWroughtChaos:Start(6) end end if not playerBanished or not self.Options.FilterOtherPhase then @@ -1034,7 +994,6 @@ function mod:SPELL_AURA_APPLIED(args) elseif spellId == 186961 then self.vb.netherPortal = true self.vb.TouchOfShadows = 0 - countdownNetherBanish:Start() if args:IsPlayer() then specWarnNetherBanish:Show() specWarnNetherBanish:Play("teleyou") @@ -1240,7 +1199,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) timerAllureofFlamesCD:Stop() timerDeathbrandCD:Stop() timerLightCD:Stop() - countdownDeathBrand:Cancel() --Begin phase 2 warnPhase2:Show() warnPhase2:Play("ptwo") @@ -1248,10 +1206,8 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) timerWroughtChaosCD:Start(5) end timerDeathbrandCD:Start(35, self.vb.deathBrandCount+1)--35-39 - countdownDeathBrand:Start(35) timerAllureofFlamesCD:Start(40)--40-45 timerShackledTormentCD:Start(25, self.vb.tormentCast+1)--17-25 (almost always 25, but sometimes it comes earlier, unsure why) - countdownShackledTorment:Start(25) updateRangeFrame(self) -- "<301.70 23:49:52> [UNIT_SPELLCAST_SUCCEEDED] Archimonde(Omegal) [[boss1:Allow Phase 3 Spells::0:190118]]", -- [8737] -- "<301.70 23:49:52> [CHAT_MSG_MONSTER_YELL] CHAT_MSG_MONSTER_YELL#Lok'tar ogar! They are pushed back! To the portal! Gul'dan is mine!#Grommash Hellscream###Grommash H @@ -1264,25 +1220,18 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) timerAllureofFlamesCD:Stop()--Done for rest of fight timerDeathbrandCD:Stop()--Done for rest of fight timerShackledTormentCD:Stop()--Resets to 55 on non mythic, no longer cast on mythic - countdownShackledTorment:Cancel() - countdownDeathBrand:Cancel() timerNetherBanishCD:Start(10.9, 1) - countdownNetherBanish:Start(10.9) timerDemonicFeedbackCD:Start(29, 1)--29-33 self:Schedule(23.5, setDemonicFeedback, self) - countdownDemonicFeedback:Start(29) timerShackledTormentCD:Start(55, self.vb.tormentCast+1) - countdownShackledTorment:Start(55) else table.wipe(shacklesTargets)--Just to reduce infoframe overhead timerDarkConduitCD:Start(8, 1) setDarkConduit(self) timerMarkOfLegionCD:Start(20, 1) timerInfernalsCD:Start(35, 1) - countdownSourceofChaos:Start(49) timerSourceofChaosCD:Start(49, 1) timerSeethingCorruptionCD:Start(61, 1) - countdownSeethingCorruption:Start(61) timerTwistedDarknessCD:Start(75, 1) if UnitIsGroupLeader("player") then if self.Options.MarkBehavior == "Numbered" then diff --git a/DBM-HellfireCitadel/DBM-HellfireCitadel.toc b/DBM-HellfireCitadel/DBM-HellfireCitadel.toc index c66f14b..1955381 100644 --- a/DBM-HellfireCitadel/DBM-HellfireCitadel.toc +++ b/DBM-HellfireCitadel/DBM-HellfireCitadel.toc @@ -1,4 +1,4 @@ -## Interface: 80100 +## Interface: 80200 ## X-Min-Interface: 80000 ## Title:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Hellfire Citadel|r ## Title-deDE:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Höllenfeuerzitadelle|r diff --git a/DBM-HellfireCitadel/Gorefiend.lua b/DBM-HellfireCitadel/Gorefiend.lua index 2b6bc42..df81b05 100644 --- a/DBM-HellfireCitadel/Gorefiend.lua +++ b/DBM-HellfireCitadel/Gorefiend.lua @@ -55,14 +55,11 @@ local timerSharedFateCD = mod:NewNextCountTimer(29, 179909, nil, "-Tank", 2, local timerCrushingDarknessCD = mod:NewNextTimer(10, 180017, nil, false, 2, 2)--Actually 16, but i delay start by 6 seconds for reduced spam local timerFeastofSouls = mod:NewNextTimer(123.5, 181973, nil, nil, nil, 6)--Probably next timer too, or close to it, depends how consistent energy gains are, may have small variation, like gruul -local timerDigest = mod:NewCastTimer(40, 181295, nil, nil, nil, nil, nil, DBM_CORE_DEADLY_ICON) +local timerDigest = mod:NewCastTimer(40, 181295, nil, nil, nil, nil, nil, DBM_CORE_DEADLY_ICON, nil, 1, 8) local timerCrushingDarkness = mod:NewCastTimer(6, 180017, nil, false) --local berserkTimer = mod:NewBerserkTimer(360) -local countdownShadowofDeath = mod:NewCountdownFades("Alt5", 179864) -local countdownDigest = mod:NewCountdown("Alt40", 181295, nil, nil, 8) - mod:AddSetIconOption("SetIconOnFate", 179909) mod:AddSetIconOption("SetIconOnDoom", 179977, false) mod:AddHudMapOption("HudMapOnSharedFate", 179909)--Smart hud, distinquishes rooted from non rooted by larger dot/font and lines/arrows @@ -213,7 +210,6 @@ function mod:SPELL_AURA_APPLIED(args) warnShadowofDeath:CombinedShow(0.5, self.vb.shadowOfDeathCount, args.destName) if args:IsPlayer() then specWarnShadowofDeath:Show(self.vb.shadowOfDeathCount) - countdownShadowofDeath:Start() specWarnShadowofDeath:Play("teleyou") end --Check if it's a tank (todo, maybe just change it to count == 2 to reduce cpu, the tank is pretty much always 2/6 @@ -272,10 +268,8 @@ function mod:SPELL_AURA_APPLIED(args) if args:IsPlayer() then if self:IsMythic() then timerDigest:Start(35) - countdownDigest:Start(35) else timerDigest:Start() - countdownDigest:Start() end playerDown = true if self.Options.RangeFrame then @@ -325,7 +319,6 @@ function mod:SPELL_AURA_REMOVED(args) elseif spellId == 181295 then if args:IsPlayer() then timerDigest:Stop() - countdownDigest:Cancel() playerDown = false if self.Options.RangeFrame and self:IsInCombat() then DBM.RangeCheck:Show(5) diff --git a/DBM-HellfireCitadel/HellfireAssault.lua b/DBM-HellfireCitadel/HellfireAssault.lua index 31c4fa4..cf42e34 100644 --- a/DBM-HellfireCitadel/HellfireAssault.lua +++ b/DBM-HellfireCitadel/HellfireAssault.lua @@ -15,7 +15,7 @@ mod:RegisterEventsInCombat( "SPELL_CAST_START 184394 181155 185816 183452 181968 180945 190748", "SPELL_AURA_APPLIED 180079 184243 180927 184369 180076", "SPELL_AURA_APPLIED_DOSE 184243", - "SPELL_AURA_REMOVED 184369 184243", + "SPELL_AURA_REMOVED 184369", "SPELL_CAST_SUCCESS 184370", "UNIT_DIED", "CHAT_MSG_MONSTER_YELL", @@ -90,9 +90,6 @@ local timerSiegeVehicleCD = mod:NewTimer(60, "timerSiegeVehicleCD", 160240, ni --local berserkTimer = mod:NewBerserkTimer(360) -local countdownHowlingAxe = mod:NewCountdownFades("Alt7", 184369) -local countdownSlam = mod:NewCountdownFades("Alt11", 184243, false) - local voiceFelfireSiegeVehicles = mod:NewVoice("ej11428")--One option for locations, independant of integration with vehicle announce objects. mod:AddRangeFrameOption(8, 184369) @@ -218,10 +215,6 @@ function mod:SPELL_AURA_APPLIED(args) local amount = args.amount or 1 warnSlam:Show(args.destName, amount) end - if args:IsPlayer() then - countdownSlam:Cancel() - countdownSlam:Start() - end elseif spellId == 180927 then--Vehicle Spawns self.vb.vehicleCount = self.vb.vehicleCount + 1 local Count = self.vb.vehicleCount @@ -305,7 +298,6 @@ function mod:SPELL_AURA_APPLIED(args) if args:IsPlayer() then specWarnHowlingAxe:Show() yellHowlingAxe:Yell() - countdownHowlingAxe:Start() specWarnHowlingAxe:Play("runout") updateRangeFrame(self, true) end @@ -324,8 +316,6 @@ function mod:SPELL_AURA_REMOVED(args) if self.Options.HudMapOnAxe then DBMHudMap:FreeEncounterMarkerByTarget(spellId, args.destName) end - elseif spellId == 184243 and args:IsPlayer() then - countdownSlam:Cancel() end end @@ -373,7 +363,6 @@ function mod:OnSync(msg) if not self:IsInCombat() then return end if msg == "BossLeaving" and self:AntiSpam(20, 5) then timerHowlingAxeCD:Stop() - countdownHowlingAxe:Cancel() timerShockwaveCD:Stop() if self.Options.RangeFrame then DBM.RangeCheck:Hide() diff --git a/DBM-HellfireCitadel/HellfireCouncil.lua b/DBM-HellfireCitadel/HellfireCouncil.lua index 0702009..4ca5dc9 100644 --- a/DBM-HellfireCitadel/HellfireCouncil.lua +++ b/DBM-HellfireCitadel/HellfireCouncil.lua @@ -58,27 +58,24 @@ local specWarnBloodBoil = mod:NewSpecialWarningStack(184355, nil, 3) mod:AddTimerLine(Jubei) --Blademaster Jubei'thos --local timerFelstormCD = mod:NewCDTimer(30.5, 183701, nil, nil, nil, 2) -local timerMirrorImage = mod:NewBuffActiveTimer(51.5, 183885, nil, nil, nil, 6)--About 51.5 +local timerMirrorImage = mod:NewBuffActiveTimer(51.5, 183885, nil, nil, nil, 6, nil, nil, nil, 1, 5)--About 51.5 local timerMirrorImageCD = mod:NewCDTimer(75, 183885, nil, nil, nil, 1) local timerWickedStrikeCD = mod:NewCDTimer(10.5, 186993, nil, nil, nil, 2) mod:AddTimerLine(Dia) --Dia Darkwhisper local timerMarkofNecroCD = mod:NewCDTimer(60, 184449, 28836, "Healer", nil, 5, nil, DBM_CORE_HEALER_ICON) -local timerReapCD = mod:NewCDTimer(54, 184476, nil, nil, nil, 3)--54-71 +local timerReapCD = mod:NewCDTimer(54, 184476, nil, nil, nil, 3, nil, nil, nil, 2, 4)--54-71 local timerNightmareVisageCD = mod:NewCDTimer(30, 184657, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) -local timerDarknessCD = mod:NewCDTimer(75, 184681, nil, nil, nil, 2, nil, DBM_CORE_DEADLY_ICON) +local timerDarknessCD = mod:NewCDTimer(75, 184681, nil, nil, nil, 2, nil, DBM_CORE_DEADLY_ICON, nil, 1, 5) mod:AddTimerLine(Gurtogg) --Gurtogg Bloodboil local timerFelRageCD = mod:NewCDCountTimer(60, 184360, nil, nil, nil, 3)--60-84 (maybe this is HP based, cause this variation is stupid) -local timerDemoLeapCD = mod:NewCDTimer(75, 184366, nil, nil, nil, 2)--Most will never see this ability since he's 3rd in the special rotation and he dies first in most strats +local timerDemoLeapCD = mod:NewCDTimer(75, 184366, nil, nil, nil, 2, nil, nil, nil, 1, 5)--Most will never see this ability since he's 3rd in the special rotation and he dies first in most strats local timerTaintedBloodCD = mod:NewNextCountTimer(15.8, 184357) local timerBloodBoilCD = mod:NewCDTimer(7.3, 184355, nil, false, nil, 3, nil, DBM_CORE_HEROIC_ICON) local berserkTimer = mod:NewBerserkTimer(600) -local countdownSpecial = mod:NewCountdown(75, 184681)--spellid is only one of 3 specials but whatever -local countdownReap = mod:NewCountdownFades("Alt4", 184476) - mod:AddRangeFrameOption(8, 184476) mod.vb.DiaPushed = false @@ -182,7 +179,6 @@ function mod:SPELL_CAST_START(args) if DBM:UnitDebuff("player", markofNecroDebuff) and self:AntiSpam(5, 5) then specWarnReap:Show() yellReap:Yell() - countdownReap:Start() specWarnReap:Play("runout") if self.Options.RangeFrame then DBM.RangeCheck:Show(8) @@ -200,7 +196,6 @@ function mod:SPELL_CAST_SUCCESS(args) if spellId == 183480 and self:AntiSpam(8, 1) then self.vb.jubeiGone = true warnMirrorImage:Show() - countdownSpecial:Start(72.8) timerMirrorImage:Start() if not self.vb.bloodboilDead then--Leap is next if bloodboil not dead timerDemoLeapCD:Start(72.8) @@ -248,7 +243,6 @@ function mod:SPELL_AURA_APPLIED(args) elseif spellId == 184365 and not args:IsDestTypePlayer() then--IsDestTypePlayer because it could be wrong spellid and one applied to players when he lands on them, so to avoid spammy mess, filter specWarnDemolishingLeap:Show() specWarnDemolishingLeap:Play("runaway") - countdownSpecial:Start() if not self.vb.diaDead then--Dia is next in natural order, unless dead timerDarknessCD:Start() elseif not self.vb.jubeiDead then--Jubi if dia is dead. @@ -343,7 +337,6 @@ end function mod:RAID_BOSS_EMOTE(msg, npc) if msg:find("spell:184681") then specWarnDarkness:Show() - countdownSpecial:Start() if not self.vb.jubeiDead then--jubei is next in natural order, unless dead timerMirrorImageCD:Start() elseif not self.vb.bloodboilDead then--Bloodboil wasn't dead but jubei is, leap is next diff --git a/DBM-HellfireCitadel/IronReaver.lua b/DBM-HellfireCitadel/IronReaver.lua index 32bcaa6..c79973b 100644 --- a/DBM-HellfireCitadel/IronReaver.lua +++ b/DBM-HellfireCitadel/IronReaver.lua @@ -24,6 +24,7 @@ mod:RegisterEventsInCombat( --TODO, check falling slam for target scanning. --TODO, see if one of the instance cast spellids are earlier than channeled casts for falling slam +--TODO, add timer with count 2 for artillery fading on player local warnArtillery = mod:NewTargetCountAnnounce(182280, 4) local warnUnstableOrb = mod:NewTargetCountAnnounce(182001, 3, nil, false)--Off by default do to some frequent casts. Boss fires 2 orbs. anyone then hit on landing gets debuff, if ranged properly spread, 2 targets, if numpty, could be 30 targets local warnFuelStreak = mod:NewCountAnnounce(182668, 3) @@ -39,12 +40,12 @@ local specWarnFallingSlam = mod:NewSpecialWarningSpell(182066, nil, nil, nil, local specWarnFirebomb = mod:NewSpecialWarningSwitchCount(181999, "-Healer", nil, nil, 1, 5) --mod:AddTimerLine(ALL)--Uncomment when ground phase and air phase are done, don't want to enable this line now and incorrectly flag everything as "All" -local timerArtilleryCD = mod:NewNextCountTimer(15, 182108, nil, nil, nil, 3) +local timerArtilleryCD = mod:NewNextCountTimer(15, 182108, nil, nil, nil, 3, nil, nil, nil, 3, 4) --mod:AddTimerLine(ALL)--Find translation that works for "Ground Phase" local timerUnstableOrbCD = mod:NewNextCountTimer(24, 182001, nil, "Ranged", 2, 3) local timerPoundingCD = mod:NewNextCountTimer(24, 182020, nil, nil, nil, 2) local timerBlitzCD = mod:NewNextCountTimer(5, 179889, nil, nil, nil, 3) -local timerBarrageCD = mod:NewNextCountTimer(15, 185282, nil, nil, nil, 3) +local timerBarrageCD = mod:NewNextCountTimer(15, 185282, nil, nil, nil, 3, nil, nil, nil, 1, 4) local timerFullChargeCD = mod:NewNextTimer(136, 182055, nil, nil, nil, 6) --mod:AddTimerLine(ENCOUNTER_JOURNAL_SECTION_FLAG12)--Find translation that works for "Air Phase" local timerFallingSlamCD = mod:NewNextTimer(54, 182066, nil, nil, nil, 6) @@ -53,10 +54,6 @@ local timerVolatileBombCD = mod:NewNextCountTimer(15, 182534, nil, nil, nil, 1 local berserkTimer = mod:NewBerserkTimer(514) -local countdownBarrage = mod:NewCountdown(15, 185282) -local countdownArtillery = mod:NewCountdown("AltTwo15", 182108)--Important to have different count from fades, because they are happening at same time most of time -local countdownArtilleryFade = mod:NewCountdownFades("Alt13", 182280)--Duration not in spell tooltip, countdown add when duration discovered from testing - mod:AddRangeFrameOption("8/30") mod:AddSetIconOption("SetIconOnArtillery", 182280, true) mod:AddHudMapOption("HudMapOnArt", 182108) @@ -249,7 +246,6 @@ function mod:SPELL_CAST_START(args) local cooldown = barrageTimers[self.vb.barrageCount+1] if cooldown then timerBarrageCD:Start(cooldown, self.vb.barrageCount+1) - countdownBarrage:Start(cooldown) end specWarnBarrage:Play("185282") elseif spellId == 182055 then @@ -268,7 +264,6 @@ function mod:SPELL_CAST_START(args) specWarnFullCharge:Show() timerFuelLeakCD:Start(9, 1) timerArtilleryCD:Start(9, 1) - countdownArtillery:Start(9) timerFallingSlamCD:Start() specWarnFullCharge:Play("phasechange") elseif spellId == 182668 then @@ -291,12 +286,10 @@ function mod:SPELL_AURA_APPLIED(args) local cooldown = timersTable[self.vb.artilleryCount+1] if cooldown and self:IsTank() then--Only show timer to tanks in phase 1 timerArtilleryCD:Start(cooldown, self.vb.artilleryCount+1) - countdownArtillery:Start(cooldown) end else if self.vb.artilleryCount < 3 then--Only 3 casts in air phase timerArtilleryCD:Start(15, self.vb.artilleryCount+1) - countdownArtillery:Start(15) end end end @@ -310,7 +303,6 @@ function mod:SPELL_AURA_APPLIED(args) yellArtillery:Schedule(7.5, 5) yellArtillery:Schedule(5.5, 7) specWarnArtillery:ScheduleVoice(5, "runout") - countdownArtilleryFade:Start() end if self.Options.SetIconOnArtillery then if self.vb.groundPhase then--1 target, alternating icons because two debuffs will overlap but not cast at same time @@ -351,7 +343,6 @@ function mod:SPELL_AURA_REMOVED(args) self.vb.artilleryActive = self.vb.artilleryActive - 1 if args:IsPlayer() then specWarnArtillery:Cancel() - countdownArtilleryFade:Cancel() yellArtillery:Cancel() end if self.Options.SetIconOnArtillery then @@ -407,9 +398,7 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) --Tiny variation in the firsts, 0.3-0.4, lowest times used. but for example 8.9 could be 9.3 timerUnstableOrbCD:Start(3, 1) timerArtilleryCD:Start(8.9, 1) - countdownArtillery:Start(8.9) timerBarrageCD:Start(11.7, 1) - countdownBarrage:Start(11.7) timerPoundingCD:Start(32.6, 1) timerBlitzCD:Start(63, 1) timerFullChargeCD:Start() diff --git a/DBM-HellfireCitadel/Iskar.lua b/DBM-HellfireCitadel/Iskar.lua index 8f5ee9a..dfc6877 100644 --- a/DBM-HellfireCitadel/Iskar.lua +++ b/DBM-HellfireCitadel/Iskar.lua @@ -69,20 +69,16 @@ local specWarnFelConduit = mod:NewSpecialWarningInterrupt(181827, nil, nil, n local timerFelLaserCD = mod:NewCDTimer(16, 182582, nil, nil, nil, 3)--16-22. Never pauses, used all phases local timerChakramCD = mod:NewCDTimer(33, 182178, nil, nil, nil, 3) -local timerPhantasmalWindsCD = mod:NewCDTimer(35, 181957, nil, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON) +local timerPhantasmalWindsCD = mod:NewCDTimer(35, 181957, nil, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON, nil, 1, 5) local timerPhantasmalWoundsCD = mod:NewCDTimer(30.5, 182325, nil, "Healer", 2, 5)--30.5-32 local timerFocusedBlast = mod:NewCastTimer(11, 181912, nil, nil, nil, 2)--Doesn't realy need a cd timer. he casts it twice back to back, then lands local timerShadowRiposteCD = mod:NewCDTimer(23.5, 185345, nil, nil, nil, 3, nil, DBM_CORE_HEROIC_ICON) --Adds -local timerFelBombCD = mod:NewCDTimer(18.5, 181753, nil, nil, nil, 3, nil, DBM_CORE_MAGIC_ICON) +local timerFelBombCD = mod:NewCDTimer(18.5, 181753, nil, nil, nil, 3, nil, DBM_CORE_MAGIC_ICON, nil, 3, 4) local timerFelConduitCD = mod:NewCDTimer(15, 181827, nil, nil, nil, 4, nil, DBM_CORE_INTERRUPT_ICON) -local timerPhantasmalCorruptionCD = mod:NewCDTimer(14, 181824, 156842, "Tank", nil, 3)--14-18 +local timerPhantasmalCorruptionCD = mod:NewCDTimer(14, 181824, 156842, "Tank", nil, 3, nil, nil, nil, 2, 4)--14-18 local timerDarkBindingsCD = mod:NewCDTimer(34, 185456, nil, nil, nil, 3, nil, DBM_CORE_HEROIC_ICON) -local countdownPhantasmalWinds = mod:NewCountdown(35, 181957) -local countdownFelBomb = mod:NewCountdown("Alt18", 181753) -local countdownCorruption = mod:NewCountdown("AltTwo14", 181824, "Tank") - local berserkTimer = mod:NewBerserkTimer(540) mod:AddRangeFrameOption(15)--Both aoes are 15 yards, ref 187991 and 181748 @@ -179,11 +175,9 @@ function mod:OnCombatStart(delay) if self:IsNormal() then--Normal timers are about 40% slower on pull, 20% slower rest of fight timerFelLaserCD:Start(25) timerPhantasmalWindsCD:Start(30-delay) - countdownPhantasmalWinds:Start(30-delay) timerPhantasmalWoundsCD:Start(44-delay) else timerPhantasmalWindsCD:Start(16.5-delay) - countdownPhantasmalWinds:Start(16.5-delay) timerFelLaserCD:Start(18.5)--Verify it can still be this low, every pull on mythic was 20-22 timerPhantasmalWoundsCD:Start(28-delay) if self:IsMythic() then @@ -261,7 +255,6 @@ function mod:SPELL_CAST_START(args) --Clear. Sure I could just do GetTime+39 and call it a day, but this is prettier timerChakramCD:Stop() timerPhantasmalWindsCD:Stop() - countdownPhantasmalWinds:Cancel() timerPhantasmalWoundsCD:Stop() timerDarkBindingsCD:Stop() timerShadowRiposteCD:Stop() @@ -282,16 +275,13 @@ function mod:SPELL_CAST_SUCCESS(args) elseif spellId == 181956 then if self:IsNormal() then timerPhantasmalWindsCD:Start(46) - countdownPhantasmalWinds:Start(46) else timerPhantasmalWindsCD:Start() - countdownPhantasmalWinds:Start() end elseif spellId == 181912 and self.vb.focusedBlast == 2 then--Air phase over immediately after he finishes casting 2nd blast. --Timers resume with +3-7, sometimes more. Extreme cases I suspect just got delayed by laser or some other channeled spell timerChakramCD:Start(self.vb.savedChakram+3) timerPhantasmalWindsCD:Start(self.vb.savedWinds+5) - --countdownPhantasmalWinds:Start(self.vb.savedWinds+5)--no countdown for this one unless made accurate enough timerPhantasmalWoundsCD:Start(self.vb.savedWounds+5) if self:IsMythic() then timerShadowRiposteCD:Start(self.vb.savedRiposte+5) @@ -364,10 +354,8 @@ function mod:SPELL_AURA_APPLIED(args) warnPhantasmalCorruption:Show(args.destName) if self:IsNormal() then timerPhantasmalCorruptionCD:Start(21, args.sourceGUID) - countdownCorruption:Start(21) else - timerPhantasmalCorruptionCD:Start(args.sourceGUID) - countdownCorruption:Start() + timerPhantasmalCorruptionCD:Start(14, args.sourceGUID) end if args:IsPlayer() then updateRangeFrame(self) @@ -393,10 +381,8 @@ function mod:SPELL_AURA_APPLIED(args) warnFelBomb:Show(args.destName) if self:IsNormal() then timerFelBombCD:Start(23, args.sourceGUID) - countdownFelBomb:Start(23) else timerFelBombCD:Start(args.sourceGUID) - countdownFelBomb:Start() end if args:IsPlayer() then updateRangeFrame(self) @@ -527,12 +513,10 @@ function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT() local cid = self:GetCIDFromGUID(unitGUID) if cid == 91543 then--Corrupted Talonpriest timerFelBombCD:Start(14, unitGUID) - countdownFelBomb:Start(14) elseif cid == 91541 then--Shadowfel Warden timerFelConduitCD:Start(4, unitGUID) elseif cid == 91539 then--Fel Raven timerPhantasmalCorruptionCD:Start(16, unitGUID) - countdownCorruption:Start(16) elseif cid == 93625 then--Phantasmal Resonance timerDarkBindingsCD:Start(23.6, unitGUID) end @@ -544,12 +528,10 @@ function mod:UNIT_DIED(args) local cid = self:GetCIDFromGUID(args.destGUID) if cid == 91543 then--Corrupted Talonpriest timerFelBombCD:Cancel(args.destGUID) - countdownFelBomb:Cancel() elseif cid == 91541 then--Shadowfel Warden timerFelConduitCD:Cancel(args.destGUID) elseif cid == 91539 then--Fel Raven timerPhantasmalCorruptionCD:Cancel(args.destGUID) - countdownCorruption:Cancel() elseif cid == 93625 then--Phantasmal Resonance timerDarkBindingsCD:Cancel(args.destGUID) end diff --git a/DBM-HellfireCitadel/Kilrogg.lua b/DBM-HellfireCitadel/Kilrogg.lua index 583ca41..0512585 100644 --- a/DBM-HellfireCitadel/Kilrogg.lua +++ b/DBM-HellfireCitadel/Kilrogg.lua @@ -15,7 +15,6 @@ mod:RegisterEventsInCombat( "SPELL_CAST_SUCCESS 180410 180413", "SPELL_AURA_APPLIED 180313 180200 188929 181488", "SPELL_AURA_APPLIED_DOSE 180200", - "SPELL_AURA_REMOVED 181488", "INSTANCE_ENCOUNTER_ENGAGE_UNIT", "CHAT_MSG_MONSTER_YELL", "RAID_BOSS_EMOTE", @@ -51,9 +50,9 @@ local specWarnRendingHowl = mod:NewSpecialWarningInterruptCount(183917, "HasIn --CDs used for all of them because of them screwing with eachother. --Coding them perfectly is probably possible but VERY ugly, would require tones of calculating on the overlaps and lots of on fly adjusting. --Adjusting one timer like blackhand no big deal, checking time remaining on THREE other abilities any time one of these are cast, and on fly adjusting, no -local timerShredCD = mod:NewCDTimer(17, 180199, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) +local timerShredCD = mod:NewCDTimer(17, 180199, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON, nil, 2, 4) local timerHeartseekerCD = mod:NewCDTimer(25, 180372, nil, nil, nil, 3) -local timerVisionofDeathCD = mod:NewCDCountTimer(75, 181488, nil, nil, nil, 5, nil, DBM_CORE_DEADLY_ICON) +local timerVisionofDeathCD = mod:NewCDCountTimer(75, 181488, nil, nil, nil, 5, nil, DBM_CORE_DEADLY_ICON, nil, 1, 4) local timerDeathThroesCD = mod:NewCDCountTimer(40, 180224, nil, nil, nil, 2) --Adds local timerBloodthirsterCD = mod:NewCDCountTimer(70.3, "ej11266", nil, nil, nil, 1, 131150, DBM_CORE_DAMAGE_ICON)--55969 is an iffy short name for bloodthirster since "bloodthirst" is all I could find that was close @@ -61,10 +60,6 @@ local timerRendingHowlCD = mod:NewNextTimer(6, 183917, nil, "HasInterrupt", 2, local berserkTimer = mod:NewBerserkTimer(600) -local countdownVisionofDeathCD = mod:NewCountdown(75, 181488, "Tank") -local countdownShred = mod:NewCountdown("Alt17", 180199, "Tank") -local countdownVisionofDeath = mod:NewCountdownFades("Alt60", 181488) - mod:AddInfoFrameOption("ej11280") mod.vb.berserkerCount = 0 @@ -83,11 +78,9 @@ function mod:OnCombatStart(delay) self.vb.visionsCount = 0 timerBloodthirsterCD:Start(6-delay, 1) timerShredCD:Start(10-delay) - countdownShred:Start(10-delay) timerHeartseekerCD:Start(-delay) timerDeathThroesCD:Start(39-delay, 1) timerVisionofDeathCD:Start(61-delay, 1) - countdownVisionofDeathCD:Start(61-delay) berserkTimer:Start(-delay) table.wipe(AddsSeen) if self.Options.InfoFrame then @@ -106,7 +99,6 @@ function mod:SPELL_CAST_START(args) local spellId = args.spellId if spellId == 180199 then timerShredCD:Start() - countdownShred:Start() for i = 1, 5 do--Maybe only 1 needed, but don't know if any adds take boss IDs local bossUnitID = "boss"..i if UnitExists(bossUnitID) and UnitGUID(bossUnitID) == args.sourceGUID and UnitDetailedThreatSituation("player", bossUnitID) then--We are highest threat target @@ -124,7 +116,6 @@ function mod:SPELL_CAST_START(args) self.vb.visionsCount = self.vb.visionsCount + 1 specWarnVisionofDeath:Show(self.vb.visionsCount) timerVisionofDeathCD:Start(nil, self.vb.visionsCount+1) - countdownVisionofDeathCD:Start() elseif spellId == 180163 then timerRendingHowlCD:Start(9.8, args.sourceGUID)--Savage strikes, replaces either 2nd or 3rd Howl. When it does, next howl is always 10 seconds later for i = 1, 5 do--Maybe only 1 needed, but don't know if any adds take boss IDs @@ -185,9 +176,6 @@ function mod:SPELL_AURA_APPLIED(args) end elseif spellId == 181488 then warnVisionofDeath:CombinedShow(0.5, args.destName) - if args:IsPlayer() then - countdownVisionofDeath:Start() - end elseif spellId == 180313 then warnDemonicPossession:CombinedShow(0.5, args.destName) elseif spellId == 180200 then @@ -197,15 +185,6 @@ function mod:SPELL_AURA_APPLIED(args) end mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED -function mod:SPELL_AURA_REMOVED(args) - local spellId = args.spellId - if spellId == 181488 then - if args:IsPlayer() then - countdownVisionofDeath:Cancel() - end - end -end - --Boss always pre yells before the 3 adds jump down --3 adds always jump down rougly about 8 seconds after yell first two jump down together, one in back and one directly into puddle, gaurenteeing at least one hulking always. --Last add tends to wait about 8-12 seconds (variable) before it jumps down in back as well. diff --git a/DBM-HellfireCitadel/Kormrok.lua b/DBM-HellfireCitadel/Kormrok.lua index d5ec820..65cdbd3 100644 --- a/DBM-HellfireCitadel/Kormrok.lua +++ b/DBM-HellfireCitadel/Kormrok.lua @@ -18,7 +18,7 @@ mod:RegisterEventsInCombat( ) --(ability.id = 181292 or ability.id = 181293 or ability.id = 181296 or ability.id = 181297 or ability.id = 181299 or ability.id = 181300 or ability.id = 180244 or ability.id = 181305) and type = "begincast" or ability.id = 181307 and type = "cast" or (ability.id = 181306 or ability.id = 180115 or ability.id = 180116 or ability.id = 180117 or ability.id = 189197 or ability.id = 189198 or ability.id = 189199 or ability.id = 186882 or ability.id = 186879 or ability.id = 186880 or ability.id = 186881) and (type = "applybuff" or type = "applydebuff") ---TODO, other countdowns, other voices, once ability importance is assessed. +--TODO, other voices, once ability importance is assessed. local warnShadowEnergy = mod:NewSpellAnnounce(180115, 2) local warnExplosiveEnergy = mod:NewSpellAnnounce(180116, 3)--This one looks more dangerous than other 2, because it enables the Explosive Runes ability local warnFoulEnergy = mod:NewSpellAnnounce(180117, 2) @@ -45,18 +45,15 @@ local timerLeapCD = mod:NewPhaseTimer(113.5)--Not techincally a leap timer, local timerPoundCD = mod:NewNextCountTimer(42, 180244, nil, nil, nil, 2) local timerFelOutpouringCD = mod:NewNextTimer(107, 181292, nil, nil, nil, 2) local timerExplosiveRunesCD = mod:NewNextTimer(48, 181296, nil, nil, nil, 5) -local timerGraspingHandsCD = mod:NewNextTimer(107, 181299, nil, nil, nil, 1) +local timerGraspingHandsCD = mod:NewNextTimer(107, 181299, nil, nil, nil, 1, nil, DBM_CORE_DAMAGE_ICON, nil, 1, 4) --Tank Debuffs. These are also hard coded, but in different place. mod:AddTimerLine(TANK) -local timerExplosiveBurstCD = mod:NewNextCountTimer(40, 181306, nil, nil, nil, 3)--Everyone needs to know these 2 +local timerExplosiveBurstCD = mod:NewNextCountTimer(40, 181306, nil, nil, nil, 3, nil, nil, nil, 2, 4)--Everyone needs to know these 2 local timerFoulCrushCD = mod:NewNextCountTimer(40, 181307, nil, nil, nil, 1)--Everyone needs to know these 2 local timerSwatCD = mod:NewNextCountTimer(40, 181305, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) --local berserkTimer = mod:NewBerserkTimer(360)--Was 8 min on heroic PTR, but that also might have been a bug so will wait to confirm -local countdownGraspingHands = mod:NewCountdown(40, 181299) -local countdownExplosiveBurst = mod:NewCountdown("Alt10", 181306) - mod:AddRangeFrameOption("4/40") mod.vb.explodingTank = nil @@ -176,7 +173,6 @@ end local function delayedHands(self, time) timerGraspingHandsCD:Start(time) - countdownGraspingHands:Start(time) if not self:IsMythic() then specWarnGraspingHands:CancelVoice() specWarnGraspingHands:ScheduleVoice(time-5, "gather") @@ -204,7 +200,6 @@ function mod:SPELL_AURA_APPLIED(args) if spellId == 181306 then self.vb.explosiveBurst = self.vb.explosiveBurst + 1 self.vb.explodingTank = args.destName - countdownExplosiveBurst:Start() if args:IsPlayer() then specWarnExplosiveBurst:Show(self.vb.explosiveBurst) specWarnExplosiveBurst:Play("targetyou") @@ -233,8 +228,6 @@ function mod:SPELL_AURA_APPLIED(args) self:Unschedule(delayedSwat) self:Unschedule(delayedFowlCrush) self:Unschedule(delayedExplosiveBurst) - countdownGraspingHands:Cancel() - countdownExplosiveBurst:Cancel() if self:IsMythic() and spellId == 186879 then--Mythic AND enraged timerFelOutpouringCD:Start(8) self:Schedule(8, delayedFelOutpouring, self, 65)--73 @@ -245,7 +238,6 @@ function mod:SPELL_AURA_APPLIED(args) self:Schedule(26, delayedPound, self, 30)--57 timerExplosiveRunesCD:Start(39) timerGraspingHandsCD:Start(50) - countdownGraspingHands:Start(50) timerLeapCD:Start(96) elseif (self:IsMythic() and spellId == 180115) or spellId == 186879 then--Mythic regular, or heroic/normal enrage timerFelOutpouringCD:Start(11) @@ -257,7 +249,6 @@ function mod:SPELL_AURA_APPLIED(args) self:Schedule(37, delayedPound, self, 48)--85 timerExplosiveRunesCD:Start(53) timerGraspingHandsCD:Start(69) - countdownGraspingHands:Start(69) timerLeapCD:Start() else timerFelOutpouringCD:Start(13) @@ -271,7 +262,6 @@ function mod:SPELL_AURA_APPLIED(args) specWarnGraspingHands:CancelVoice() specWarnGraspingHands:ScheduleVoice(78, "gather") timerGraspingHandsCD:Start(83) - countdownGraspingHands:Start(83) timerLeapCD:Start(135.5) end --Non LFR phase changes need reworking post mechanics changes. @@ -287,8 +277,6 @@ function mod:SPELL_AURA_APPLIED(args) self:Unschedule(delayedSwat) self:Unschedule(delayedFowlCrush) self:Unschedule(delayedExplosiveBurst) - countdownGraspingHands:Cancel() - countdownExplosiveBurst:Cancel() if (self:IsMythic() and spellId == 186880) then timerExplosiveRunesCD:Start(8) self:Schedule(8, delayedExplosiveRunes, self, 63)--71 @@ -298,7 +286,6 @@ function mod:SPELL_AURA_APPLIED(args) timerPoundCD:Start(19, 1) self:Schedule(19, delayedPound, self, 35)--54 timerGraspingHandsCD:Start(35) - countdownGraspingHands:Start(35) timerFelOutpouringCD:Start(49) timerLeapCD:Start(96) elseif (self:IsMythic() and spellId == 180116) or spellId == 186880 then @@ -310,7 +297,6 @@ function mod:SPELL_AURA_APPLIED(args) timerPoundCD:Start(27, 1) self:Schedule(27, delayedPound, self, 42)--69 timerGraspingHandsCD:Start(43) - countdownGraspingHands:Start(43) timerFelOutpouringCD:Start(59) timerLeapCD:Start() else @@ -324,7 +310,6 @@ function mod:SPELL_AURA_APPLIED(args) specWarnGraspingHands:CancelVoice() specWarnGraspingHands:ScheduleVoice(46, "gather") timerGraspingHandsCD:Start(51) - countdownGraspingHands:Start(51) timerFelOutpouringCD:Start(71) timerLeapCD:Start(135.5) end @@ -339,11 +324,8 @@ function mod:SPELL_AURA_APPLIED(args) self:Unschedule(delayedSwat) self:Unschedule(delayedFowlCrush) self:Unschedule(delayedExplosiveBurst) - countdownGraspingHands:Cancel() - countdownExplosiveBurst:Cancel() if (self:IsMythic() and spellId == 186881) then timerGraspingHandsCD:Start(8) - countdownGraspingHands:Start(8) self:Schedule(8, delayedHands, self, 75)--83 timerFoulCrushCD:Start(15, 1) self:Schedule(15, delayedFowlCrush, self, 31, 2) @@ -355,7 +337,6 @@ function mod:SPELL_AURA_APPLIED(args) timerLeapCD:Start(96) elseif (self:IsMythic() and spellId == 180117) or spellId == 186881 then timerGraspingHandsCD:Start(11) - countdownGraspingHands:Start(11) self:Schedule(11, delayedHands, self, 90)--101 timerFoulCrushCD:Start(21, 1) self:Schedule(21, delayedFowlCrush, self, 42, 2) @@ -369,7 +350,6 @@ function mod:SPELL_AURA_APPLIED(args) specWarnGraspingHands:CancelVoice() specWarnGraspingHands:ScheduleVoice(8, "gather") timerGraspingHandsCD:Start(13) - countdownGraspingHands:Start(13) self:Schedule(13, delayedHands, self, 108)--121 timerFoulCrushCD:Start(25, 1) self:Schedule(25, delayedFowlCrush, self, 50, 2) @@ -409,7 +389,6 @@ function mod:SPELL_AURA_APPLIED(args) timerGraspingHandsCD:Start(10) specWarnGraspingHands:CancelVoice() specWarnGraspingHands:ScheduleVoice(5, "gather") - countdownGraspingHands:Start(10) self:Schedule(10, delayedHands, self, 35)--45 self:Schedule(45, delayedHands, self, 35)--80 timerPoundCD:Start(30, 1) @@ -426,7 +405,6 @@ function mod:SPELL_AURA_REMOVED(args) if spellId == 181306 then self.vb.explodingTank = nil self:Unschedule(trippleBurstCheck) - countdownExplosiveBurst:Cancel() updateRangeCheck(self) elseif spellId == 180244 then self.vb.poundActive = false diff --git a/DBM-HellfireCitadel/Mannoroth.lua b/DBM-HellfireCitadel/Mannoroth.lua index dc973c1..8c2f4fe 100644 --- a/DBM-HellfireCitadel/Mannoroth.lua +++ b/DBM-HellfireCitadel/Mannoroth.lua @@ -74,7 +74,7 @@ local specWarnShadowForce = mod:NewSpecialWarningSpell(181799, nil, nil, nil, mod:AddTimerLine(OTHER) ----Doom Lords local timerCurseofLegionCD = mod:NewNextCountTimer(64.8, 181275, nil, nil, nil, 1, nil, DBM_CORE_HEROIC_ICON)--Maybe see one day, in LFR or something when group is terrible or doesn't kill doom lord portal first -local timerMarkofDoomCD = mod:NewCDTimer(31.5, 181099, nil, "-Tank", nil, 3) +local timerMarkofDoomCD = mod:NewCDTimer(31.5, 181099, nil, "-Tank", nil, 3, nil, nil, nil, 3, 4) --local timerShadowBoltVolleyCD = mod:NewCDTimer(12, 181126, nil, "-Healer", nil, 4) ----Fel Imps local timerFelImplosionCD = mod:NewNextCountTimer(46, 181255, nil, nil, nil, 1, nil, DBM_CORE_DAMAGE_ICON) @@ -84,18 +84,14 @@ local timerInfernoCD = mod:NewNextCountTimer(107, 181180, nil, nil, nil, 1) local timerWrathofGuldanCD = mod:NewNextTimer(107, 186348, 169826, nil, nil, 3, nil, DBM_CORE_HEROIC_ICON) --Mannoroth mod:AddTimerLine(L.name) -local timerGlaiveComboCD = mod:NewCDTimer(30, 181354, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON)--30 seconds unless delayed by something else +local timerGlaiveComboCD = mod:NewCDTimer(30, 181354, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON, nil, 2, 3)--30 seconds unless delayed by something else local timerFelHellfireCD = mod:NewCDTimer(35, 181557, nil, nil, nil, 2)--35, unless delayed by other things. local timerGazeCD = mod:NewCDTimer(47.1, 181597, 134029, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON)--As usual, some variation do to other abilities local timerFelSeekerCD = mod:NewCDTimer(49.5, 181735, nil, nil, nil, 2)--Small sample size, confirm it's not shorter if not delayed by things. -local timerShadowForceCD = mod:NewCDTimer(52.2, 181799, nil, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON) +local timerShadowForceCD = mod:NewCDTimer(52.2, 181799, nil, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON, nil, 1, 4) --local berserkTimer = mod:NewBerserkTimer(360) -local countdownGlaiveCombo = mod:NewCountdown("Alt30", 181354, "Tank", nil, 3) -local countdownMarkOfDoom = mod:NewCountdownFades("AltTwo15", 181099, nil, nil, 3) -local countdownShadowForce = mod:NewCountdown(52, 181799, nil, nil, 3) - mod:AddRangeFrameOption(20, 181099) mod:AddSetIconOption("SetIconOnGaze", 181597, false) mod:AddSetIconOption("SetIconOnDoom2", 181099, true) @@ -325,9 +321,7 @@ local function updateAllTimers(self, delay) local extend = delay - (total-elapsed) DBM:Debug("timerGlaiveComboCD extended by: "..extend, 2) timerGlaiveComboCD:Stop() - countdownGlaiveCombo:Cancel() timerGlaiveComboCD:Update(elapsed, total+extend) - countdownGlaiveCombo:Start(delay) end if timerFelSeekerCD:GetRemaining() < delay then local elapsed, total = timerFelSeekerCD:GetTime() @@ -349,9 +343,7 @@ local function updateAllTimers(self, delay) local extend = delay - (total-elapsed) DBM:Debug("timerShadowForceCD extended by: "..extend, 2) timerShadowForceCD:Stop() - countdownShadowForce:Cancel() timerShadowForceCD:Update(elapsed, total+extend) - countdownShadowForce:Start(delay) end end end @@ -426,7 +418,6 @@ function mod:SPELL_CAST_START(args) elseif spellId == 181799 or spellId == 182084 then timerShadowForceCD:Start() if self:IsTank() and self.vb.phase == 3 then return end--Doesn't target tanks in phase 3, ever. - countdownShadowForce:Start(52.5) specWarnShadowForce:Show() specWarnShadowForce:Play("keepmove") updateAllTimers(self, 8) @@ -525,7 +516,6 @@ function mod:SPELL_AURA_APPLIED(args) end if args:IsPlayer() then specWarnMarkOfDoom:Show(self:IconNumToString(count)) - countdownMarkOfDoom:Start() if self:IsMythic() then specWarnMarkOfDoom:Play("mm"..count) else @@ -619,9 +609,6 @@ function mod:SPELL_AURA_REMOVED(args) local spellId = args.spellId if spellId == 181099 then self.vb.DoomTargetCount = self.vb.DoomTargetCount - 1 - if args:IsPlayer() then - countdownMarkOfDoom:Cancel() - end updateRangeFrame(self) if self.Options.SetIconOnDoom2 and not self:IsLFR() then self:SetIcon(args.destName, 0) @@ -648,7 +635,6 @@ function mod:SPELL_AURA_REMOVED(args) timerFelHellfireCD:Start(28) timerGazeCD:Start(40) timerGlaiveComboCD:Start(42.5) - countdownGlaiveCombo:Start(42.5) timerFelSeekerCD:Start(58) end end @@ -707,19 +693,15 @@ function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg, npc) self.vb.ignoreAdds = true timerFelHellfireCD:Stop() timerShadowForceCD:Stop() - countdownShadowForce:Cancel() timerGlaiveComboCD:Stop() - countdownGlaiveCombo:Cancel() timerGazeCD:Stop() timerFelSeekerCD:Stop() timerFelHellfireCD:Start(27.8) timerShadowForceCD:Start(32.6) - countdownShadowForce:Start(32.6) --BOth gaze and combo seem 44, which you get first is random, and it'll delay other ability --however they are BOTH 44ish, don't let one log fool timerGazeCD:Start(44.5) timerGlaiveComboCD:Start(44.9) - countdownGlaiveCombo:Start(44.9) timerFelSeekerCD:Start(68) warnPhase:Show(DBM_CORE_AUTO_ANNOUNCE_TEXTS.stage:format(self.vb.phase)) warnPhase:Play("pthree") @@ -743,9 +725,7 @@ function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg, npc) self.vb.ignoreAdds = true timerFelHellfireCD:Stop() timerShadowForceCD:Stop() - countdownShadowForce:Cancel() timerGlaiveComboCD:Stop() - countdownGlaiveCombo:Cancel() timerGazeCD:Stop() timerFelSeekerCD:Stop() if timerInfernoCD:GetRemaining(self.vb.infernalCount+1) > 9 then @@ -753,10 +733,8 @@ function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg, npc) end timerFelHellfireCD:Start(16.9) timerGlaiveComboCD:Start(27.8) - countdownGlaiveCombo:Start(27.8) timerGazeCD:Start(35.6) timerShadowForceCD:Start(47.3) - countdownShadowForce:Start(47.3) timerFelSeekerCD:Start(65.6) warnPhase:Show(DBM_CORE_AUTO_ANNOUNCE_TEXTS.stage:format(self.vb.phase)) warnPhase:Play("pfour") @@ -818,7 +796,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) timerCurseofLegionCD:Start(5, 1) timerFelHellfireCD:Start(10.5) timerGlaiveComboCD:Start(25.2) - countdownGlaiveCombo:Start(25.2) timerFelImplosionCD:Start(27.4, 1) timerFelSeekerCD:Start(40.2) timerGazeCD:Start(49.5)--49.5-53 @@ -829,17 +806,13 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) self.vb.ignoreAdds = true timerFelHellfireCD:Stop() timerShadowForceCD:Stop() - countdownShadowForce:Cancel() timerGlaiveComboCD:Stop() - countdownGlaiveCombo:Cancel() timerGazeCD:Stop() timerFelSeekerCD:Stop() timerFelHellfireCD:Start(22.3) timerShadowForceCD:Start(27.1) - countdownShadowForce:Start(27.1) timerGazeCD:Start(39.0) timerGlaiveComboCD:Start(39.4) - countdownGlaiveCombo:Start(39.4) timerFelSeekerCD:Start(62.5) warnPhase:Show(DBM_CORE_AUTO_ANNOUNCE_TEXTS.stage:format(self.vb.phase)) warnPhase:Play("pthree") @@ -864,9 +837,7 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) self.vb.ignoreAdds = true timerFelHellfireCD:Stop() timerShadowForceCD:Stop() - countdownShadowForce:Cancel() timerGlaiveComboCD:Stop() - countdownGlaiveCombo:Cancel() timerGazeCD:Stop() timerFelSeekerCD:Stop() if timerInfernoCD:GetRemaining(self.vb.infernalCount+1) > 3.8 then @@ -874,10 +845,8 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) end timerFelHellfireCD:Start(11.4) timerGlaiveComboCD:Start(22.3) - countdownGlaiveCombo:Start(22.3) timerGazeCD:Start(30.1) timerShadowForceCD:Start(41.8) - countdownShadowForce:Start(45.8) timerFelSeekerCD:Start(60.1) warnPhase:Show(DBM_CORE_AUTO_ANNOUNCE_TEXTS.stage:format(self.vb.phase)) warnPhase:Play("pfour") @@ -896,7 +865,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) elseif spellId == 181354 then--183377 or 185831 also usable with SPELL_CAST_START but i like this way more, cleaner than Antispamming the other spellids specWarnGlaiveCombo:Show() timerGlaiveComboCD:Start() - countdownGlaiveCombo:Start() specWarnGlaiveCombo:Play("defensive") updateAllTimers(self, 4) end diff --git a/DBM-HellfireCitadel/Socrethar.lua b/DBM-HellfireCitadel/Socrethar.lua index 8142d63..847796f 100644 --- a/DBM-HellfireCitadel/Socrethar.lua +++ b/DBM-HellfireCitadel/Socrethar.lua @@ -66,10 +66,10 @@ local specWarnEternalHunger = mod:NewSpecialWarningRun(188666, nil, nil, nil, local yellEternalHunger = mod:NewYell(188666, nil, false) --Soulbound Construct -local timerReverberatingBlowCD = mod:NewCDCountTimer(17, 180008, nil, "Tank|Healer", 2, 5, nil, DBM_CORE_TANK_ICON) +local timerReverberatingBlowCD = mod:NewCDCountTimer(17, 180008, nil, "Tank|Healer", 2, 5, nil, DBM_CORE_TANK_ICON, nil, 2, 4) local timerFelPrisonCD = mod:NewCDTimer(29, 182994, nil, nil, nil, 3)--29-33 local timerVolatileFelOrbCD = mod:NewCDTimer(23, 180221, 186532, nil, nil, 3) -local timerFelChargeCD = mod:NewCDTimer(23, 182051, nil, nil, nil, 3) +local timerFelChargeCD = mod:NewCDTimer(23, 182051, nil, nil, nil, 3, nil, nil, nil, 2, 4) local timerApocalypticFelburstCD = mod:NewCDCountTimer(30, 188693, 206388, nil, nil, 2, nil, DBM_CORE_HEROIC_ICON) --Socrethar local timerTransition = mod:NewPhaseTimer(6.5) @@ -77,17 +77,13 @@ local timerExertDominanceCD = mod:NewCDCountTimer(4.5, 183331, nil, "-Healer", local timerApocalypseCD = mod:NewCDTimer(46, 183329, nil, nil, nil, 2) --Adds local timerSargereiDominatorCD = mod:NewNextCountTimer(60, "ej11456", nil, nil, nil, 1, 184053) -local timerHauntingSoulCD = mod:NewCDCountTimer(29, "ej11462", nil, nil, nil, 1, 182769) +local timerHauntingSoulCD = mod:NewCDCountTimer(29, "ej11462", nil, nil, nil, 1, 182769, nil, nil, 1, 5) local timerGiftofManariCD = mod:NewCDTimer(11, 184124, nil, nil, nil, 3) --Mythic local timerVoraciousSoulstalkerCD = mod:NewCDCountTimer(59.5, "ej11778", 151869, nil, nil, 1, 190776, DBM_CORE_HEROIC_ICON) --local berserkTimer = mod:NewBerserkTimer(360) -local countdownReverberatingBlow = mod:NewCountdown(17, 180008, "Tank", nil, 4)--Every 17 seconds now, so count last 4 -local countdownCharge = mod:NewCountdown("Alt23", 182051) -local countdownSouls = mod:NewCountdown(29, "ej11462") - mod:AddRangeFrameOption(10, 184124) mod:AddHudMapOption("HudMapOnOrb", 180221) mod:AddHudMapOption("HudMapOnCharge", 182051) @@ -180,10 +176,8 @@ function mod:OnCombatStart(delay) playerInConstruct = false table.wipe(soulsSeen) timerReverberatingBlowCD:Start(4.3-delay, 1) - countdownReverberatingBlow:Start(4.3-delay) timerVolatileFelOrbCD:Start(12-delay) timerFelChargeCD:Start(29-delay) - countdownCharge:Start(29-delay) timerFelPrisonCD:Start(51-delay)--Seems drastically changed. 51 in all newer logs if self:IsMythic() then timerVoraciousSoulstalkerCD:Start(20-delay, 1) @@ -216,7 +210,6 @@ function mod:SPELL_CAST_START(args) if spellId == 180008 then self.vb.ReverberatingBlow = self.vb.ReverberatingBlow + 1 timerReverberatingBlowCD:Start(nil, self.vb.ReverberatingBlow+1) - countdownReverberatingBlow:Start() specWarnReverberatingBlow:Show(self.vb.ReverberatingBlow) elseif spellId == 181288 then specWarnFelPrison:Show() @@ -229,10 +222,8 @@ function mod:SPELL_CAST_START(args) elseif spellId == 182051 then if self:IsNormal() then timerFelChargeCD:Start(30) - countdownCharge:Start(30) else timerFelChargeCD:Start() - countdownCharge:Start() end --Must have delay, to avoid same bug as oregorger. Boss has 2 target scans self:ScheduleMethod(0.1, "BossTargetScanner", args.sourceGUID, "ChargeTarget", 0.1, 10, true) @@ -298,7 +289,6 @@ function mod:SPELL_CAST_SUCCESS(args) self.vb.kickCount2 = 0 warnEjectSoul:Show() timerReverberatingBlowCD:Stop() - countdownReverberatingBlow:Cancel() timerFelPrisonCD:Stop() timerVolatileFelOrbCD:Stop() timerFelChargeCD:Stop() @@ -306,7 +296,6 @@ function mod:SPELL_CAST_SUCCESS(args) timerTransition:Start()--Time until boss is attackable timerSargereiDominatorCD:Start(23, 1) timerHauntingSoulCD:Start(30, 1)--30-33 - countdownSouls:Start(30) timerApocalypseCD:Start(53)--53-58 self:RegisterShortTermEvents( "UNIT_TARGETABLE_CHANGED" @@ -337,13 +326,11 @@ function mod:SPELL_AURA_APPLIED(args) timerHauntingSoulCD:Start(40, self.vb.ghostSpawn+1) if playerInConstruct then specWarnSouls:Show(self.vb.ghostSpawn) - countdownSouls:Start(40) end else timerHauntingSoulCD:Start(nil, self.vb.ghostSpawn+1) if playerInConstruct then specWarnSouls:Show(self.vb.ghostSpawn) - countdownSouls:Start(29) end end end @@ -402,10 +389,6 @@ function mod:SPELL_AURA_APPLIED(args) elseif spellId == 190466 then if args.sourceGUID == UnitGUID("player") then playerInConstruct = true - else - --At time this starts, don't know who construct will be - --So started for all, then canceled for all but player who becomes construct - countdownSouls:Cancel() end elseif (spellId == 183017 or spellId == 180415) and self:AntiSpam(5, args.destName) and args:GetDestCreatureID() ~= 91765 then warnFelPrison:CombinedShow(0.3, args.destName) @@ -485,21 +468,17 @@ function mod:UNIT_TARGETABLE_CHANGED(uId) timerExertDominanceCD:Stop() timerSargereiDominatorCD:Stop() timerHauntingSoulCD:Stop() - countdownSouls:Cancel() timerApocalypseCD:Stop() self:UnregisterShortTermEvents() timerVolatileFelOrbCD:Start(13) timerFelChargeCD:Start(30.5) - countdownCharge:Start(30.5) timerFelPrisonCD:Start(50) if self:IsMythic() then timerReverberatingBlowCD:Start(11, 1) - countdownReverberatingBlow:Start(11) timerVoraciousSoulstalkerCD:Start(20, 1) timerApocalypticFelburstCD:Start(nil, 1) else timerReverberatingBlowCD:Start(8, 1) - countdownReverberatingBlow:Start(8) end end end diff --git a/DBM-HellfireCitadel/Velhari.lua b/DBM-HellfireCitadel/Velhari.lua index dc80b06..b054029 100644 --- a/DBM-HellfireCitadel/Velhari.lua +++ b/DBM-HellfireCitadel/Velhari.lua @@ -72,8 +72,8 @@ local timerSealofDecayCD = mod:NewCDTimer(6, 180000, nil, false, nil, 5, nil local timerEdictofCondemnationCD = mod:NewNextCountTimer(60, 182459, 57377, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON)--"condemnation" short name local timerTouchofHarmCD = mod:NewNextCountTimer(45, 180166, nil, "Healer", nil, 3, nil, DBM_CORE_HEALER_ICON) mod:AddTimerLine(SCENARIO_STAGE:format(1))--Stage One: Oppression -local timerAnnihilatingStrikeCD = mod:NewNextCountTimer(10, 180260, 92214, nil, nil, 3)--"Flame Strike" short name -local timerInfernalTempestCD = mod:NewNextCountTimer(10, 180300, nil, nil, nil, 2) +local timerAnnihilatingStrikeCD = mod:NewNextCountTimer(10, 180260, 92214, nil, nil, 3, nil, nil, nil, 1, 3)--"Flame Strike" short name +local timerInfernalTempestCD = mod:NewNextCountTimer(10, 180300, nil, nil, nil, 2, nil, nil, nil, 2, 4) ----Ancient Enforcer local timerEnforcersOnslaughtCD = mod:NewCDTimer(18, 180004, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) mod:AddTimerLine(SCENARIO_STAGE:format(2))--Stage Two: Contempt @@ -82,17 +82,11 @@ local timerFontofCorruptionCD = mod:NewNextTimer(19.6, 180526, 156842, nil, n ----Ancient Harbinger local timerHarbingersMendingCD = mod:NewCDTimer(10.5, 180025, 36968, nil, nil, 4, nil, DBM_CORE_INTERRUPT_ICON) mod:AddTimerLine(SCENARIO_STAGE:format(3))--Stage Three: Malice -local timerBulwarkoftheTyrantCD = mod:NewNextCountTimer(10, 180600, 160533, nil, nil, 3) -local timerGaveloftheTyrantCD = mod:NewNextCountTimer(10, 180608, 148800, nil, nil, 2)--Dat Hammer (alternative, "Hammer" 175798) +local timerBulwarkoftheTyrantCD = mod:NewNextCountTimer(10, 180600, 160533, nil, nil, 3, nil, nil, nil, 1, 3) +local timerGaveloftheTyrantCD = mod:NewNextCountTimer(10, 180608, 148800, nil, nil, 2, nil, nil, nil, 2, 3)--Dat Hammer (alternative, "Hammer" 175798) --local berserkTimer = mod:NewBerserkTimer(360) -local countdownAnnihilatingStrike = mod:NewCountdown(10, 180260, nil, nil, 3)--It's same cd as Infernal tempest so going to use countdown for both. Starting count at 3 to avoid so much spam. every 10 seconds, 5-1 would be bit much. 3-1 important though -local countdownInfernalTempest = mod:NewCountdown("Alt50", 180300) -local countdownFontofCorruption = mod:NewCountdownFades("AltTwo50", 180526) -local countdownBulwarkofTyrant = mod:NewCountdown(10, 180608, nil, nil, 3) -local countdownGavel = mod:NewCountdown("Alt10", 180608, nil, nil, 3) - mod:AddRangeFrameOption("5/4") mod:AddHudMapOption("HudMapOnStrike", 180260) mod:AddHudMapOption("HudMapEdict2", 182459, false) @@ -154,7 +148,6 @@ function mod:OnCombatStart(delay) self.vb.interruptCount = 0 timerSealofDecayCD:Start(3.5-delay) timerAnnihilatingStrikeCD:Start(10-delay, 1) - countdownAnnihilatingStrike:Start(10-delay) timerTouchofHarmCD:Start(16.8-delay, 1) timerEdictofCondemnationCD:Start(57-delay, 1) end @@ -174,10 +167,8 @@ function mod:SPELL_CAST_START(args) self.vb.annihilationCount = self.vb.annihilationCount + 1 if self.vb.annihilationCount == 3 then--Infernal tempest next timerInfernalTempestCD:Start(10, self.vb.infernalTempestCount+1) - countdownInfernalTempest:Start() else timerAnnihilatingStrikeCD:Start(nil, self.vb.annihilationCount+1) - countdownAnnihilatingStrike:Start() end self:BossTargetScanner(90269, "AnnTarget", 0.05, 20, true) elseif spellId == 180004 then @@ -193,14 +184,12 @@ function mod:SPELL_CAST_START(args) specWarnGaveloftheTyrant:Show(self.vb.gavelCount) specWarnGaveloftheTyrant:Play("carefly") timerBulwarkoftheTyrantCD:Start(nil, 1) - countdownBulwarkofTyrant:Start() elseif spellId == 180300 then self.vb.infernalTempestCount = self.vb.infernalTempestCount + 1 specWarnInfernalTempest:Show(self.vb.infernalTempestCount) specWarnInfernalTempest:Play("watchstep") self.vb.annihilationCount = 0 timerAnnihilatingStrikeCD:Start(nil, 1) - countdownAnnihilatingStrike:Start() if self.Options.RangeFrame then DBM.RangeCheck:Show(4) end @@ -217,7 +206,6 @@ function mod:SPELL_CAST_SUCCESS(args) warnAuraofContempt:Show() --Cancel phase 1 abilities timerAnnihilatingStrikeCD:Stop() - countdownAnnihilatingStrike:Cancel() timerInfernalTempestCD:Stop() timerTaintedShadowsCD:Start() timerFontofCorruptionCD:Start(22) @@ -230,7 +218,6 @@ function mod:SPELL_CAST_SUCCESS(args) warnAuraofMalice:Show() timerFontofCorruptionCD:Stop() timerBulwarkoftheTyrantCD:Start(nil, 1) - countdownBulwarkofTyrant:Start() warnAuraofMalice:Play("pthree") if self.Options.RangeFrame then DBM.RangeCheck:Hide() @@ -244,10 +231,8 @@ function mod:SPELL_CAST_SUCCESS(args) warnBulwarkoftheTyrant:Show(self.vb.bulwarkCount, args.destName) if self.vb.bulwarkCount == 3 then timerGaveloftheTyrantCD:Start(nil, self.vb.gavelCount+1) - countdownGavel:Start() else timerBulwarkoftheTyrantCD:Start(nil, self.vb.bulwarkCount+1) - countdownBulwarkofTyrant:Start() end elseif spellId == 180526 then timerFontofCorruptionCD:Start() @@ -292,11 +277,6 @@ function mod:SPELL_AURA_APPLIED(args) elseif spellId == 180526 then warnFontofCorruption:CombinedShow(0.3, args.destName) if args:IsPlayer() then - local _, _, _, _, duration, expires = DBM:UnitDebuff("player", args.spellName)--Find out what our specific seed timer is - if expires then - local remaining = expires-GetTime() - countdownFontofCorruption:Start(remaining) - end specWarnFontofCorruption:Show() yellFontofCorruption:Yell() if self.Options.RangeFrame then @@ -352,7 +332,6 @@ function mod:SPELL_AURA_REMOVED(args) elseif spellId == 180526 then if args:IsPlayer() then specWarnFontofCorruptionOver:Show() - countdownFontofCorruption:Cancel() if self.Options.RangeFrame then DBM.RangeCheck:Show(5, debuffFilter) end diff --git a/DBM-HellfireCitadel/Xhulhorac.lua b/DBM-HellfireCitadel/Xhulhorac.lua index f4f1771..d3ec865 100644 --- a/DBM-HellfireCitadel/Xhulhorac.lua +++ b/DBM-HellfireCitadel/Xhulhorac.lua @@ -74,15 +74,15 @@ local specWarnEmpBlackHole = mod:NewSpecialWarningCount(189779, nil, nil, nil, --Fire Phase ----Boss local timerFelStrikeCD = mod:NewCDTimer(13, 186271, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON)--15.8-17 -local timerFelSurgeCD = mod:NewCDTimer(29, 186407, nil, "-Tank", 2, 3) -local timerImpCD = mod:NewNextTimer(25, "ej11694", nil, nil, nil, 1, 112866) +local timerFelSurgeCD = mod:NewCDTimer(29, 186407, nil, "-Tank", 2, 3, nil, nil, nil, 1, 3) +local timerImpCD = mod:NewNextTimer(25, "ej11694", nil, nil, nil, 1, 112866, nil, nil, 3, 4) ----Big Add local timerFelBlazeFlurryCD = mod:NewCDTimer(12.9, 186453, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) local timerFelChainsCD = mod:NewCDTimer(30, 186490, nil, "-Tank", nil, 3)--30-34. Often 34 but it can and will be 30 sometimes. --Void Phase ----Boss local timerVoidStrikeCD = mod:NewCDTimer(15, 186292, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) -local timerVoidSurgeCD = mod:NewCDTimer(29, 186333, nil, "-Tank", 2, 3) +local timerVoidSurgeCD = mod:NewCDTimer(29, 186333, nil, "-Tank", 2, 3, nil, nil, nil, 2, 3) local timerVoidsCD = mod:NewNextTimer(30, "ej11714", nil, "Ranged", nil, 1, 697) ----Big Add local timerWitheringGazeCD = mod:NewCDTimer(22, 186783, nil, "Tank", 2, 5, nil, DBM_CORE_TANK_ICON) @@ -93,10 +93,6 @@ local timerOverwhelmingChaosCD = mod:NewNextCountTimer(10, 187204, nil, nil, 2, --local berserkTimer = mod:NewBerserkTimer(360) -local countdownFelSurge = mod:NewCountdown(30, 186407, "-Tank", nil, 3) -local countdownVoidSurge = mod:NewCountdown("Alt30", 186333, "Ranged", nil, 3) -local countdownImps = mod:NewCountdown("AltTwo25", "ej11694", "Dps", nil, 4) - --Warning behavior choices for Chains. --Cast only gives original target, not all targets, but does so 3 seconds faster. It allows the person to move early and change other players they affect with chains by pre moving. --Applied gives all targets, this is the easier strat for most users, where they wait until everyone has it, then run in different directions. @@ -151,7 +147,6 @@ local function ImpRepeater(self) warnImps:Show(self.vb.impCount) end timerImpCD:Start(nil, self.vb.impCount+1) - countdownImps:Start() self:Schedule(25, ImpRepeater, self) if self.Options.SetIconOnImps then if self.vb.impActive > 0 then--Last set isn't dead yet, use alternate icons @@ -210,7 +205,6 @@ function mod:OnCombatStart(delay) table.wipe(AddsSeen) timerFelStrikeCD:Start(8-delay) timerFelSurgeCD:Start(21-delay) - countdownFelSurge:Start(21-delay) end function mod:OnCombatEnd() @@ -316,10 +310,8 @@ function mod:SPELL_CAST_SUCCESS(args) local spellId = args.spellId if spellId == 186407 then timerFelSurgeCD:Start() - countdownFelSurge:Start() elseif spellId == 186333 then timerVoidSurgeCD:Start() - countdownVoidSurge:Start() elseif spellId == 186490 then if self.Options.ChainsBehavior == "Applied" then--Start timer here if method is set to only applied timerFelChainsCD:Start() @@ -507,7 +499,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) warnFelPortal:Show() if not self:IsLFR() then timerImpCD:Start(10) - countdownImps:Start(10) self:Schedule(10, ImpRepeater, self) end elseif spellId == 187006 then--Activate Void Portal @@ -515,7 +506,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) warnVoidPortal:Show() timerFelStrikeCD:Stop() timerFelSurgeCD:Stop() - countdownFelSurge:Cancel() if not self:IsLFR() then timerVoidsCD:Start(10.5) self:Schedule(10.5, VoidsRepeater, self) @@ -527,7 +517,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) self.vb.phase = 2 timerVoidStrikeCD:Start(8.5)--TODO, reverify? timerVoidSurgeCD:Start(17.8)--TODO, reverify? - countdownVoidSurge:Start(17.8)--TODO, reverify? elseif spellId == 189047 then--Phase 3 (Shadowfel Phasing) self.vb.phase = 3 warnPhase3:Show() @@ -536,17 +525,13 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) timerVoidStrikeCD:Stop()--Regardless of what was left on timer, he will use it immediately after shadowfel phasing end timerVoidSurgeCD:Stop() - countdownVoidSurge:Cancel() timerFelSurgeCD:Start(7) - countdownFelSurge:Start(7) timerFelStrikeCD:Start(8) timerVoidSurgeCD:Start(16)--Regardless of what was left on timer, this resets to 16 - countdownVoidSurge:Start(16) elseif spellId == 187209 then--Overwhelming Chaos (Activation) self.vb.phase = 4 timerImpCD:Stop() timerVoidsCD:Stop() - countdownImps:Cancel() self:Unschedule(ImpRepeater) self:Unschedule(VoidsRepeater) timerOverwhelmingChaosCD:Start(nil, 1) diff --git a/DBM-HellfireCitadel/Zakuun.lua b/DBM-HellfireCitadel/Zakuun.lua index c72e1a8..70f4115 100644 --- a/DBM-HellfireCitadel/Zakuun.lua +++ b/DBM-HellfireCitadel/Zakuun.lua @@ -36,6 +36,7 @@ local specWarnWakeofDestruction = mod:NewSpecialWarningSpell(181499, nil, nil, --Armed local specWarnDisarmedEnd = mod:NewSpecialWarningEnd(179667) local specWarnSoulCleave = mod:NewSpecialWarningCount(179406, "Melee", nil, nil, 1, 5) +local specWarnDisembodiedYou = mod:NewSpecialWarningYou(179407) local specWarnDisembodied = mod:NewSpecialWarningTaunt(179407) local specWarnBefouled = mod:NewSpecialWarningMoveAway(179711)--Aoe damage was disabled on ptr, bug? local specWarnBefouledOther = mod:NewSpecialWarningTargetCount(179711, false) @@ -51,16 +52,11 @@ local timerBefouledCD = mod:NewNextTimer(38, 179711, nil, nil, nil, 3, nil, local timerSoulCleaveCD = mod:NewNextTimer(40, 179406, nil, nil, nil, 5, nil, DBM_CORE_TANK_ICON) local timerCavitationCD = mod:NewNextTimer(40, 181461, nil, nil, nil, 2) --Disarmed -local timerDisarmCD = mod:NewNextTimer(85.8, 179667, nil, nil, nil, 6) -local timerSeedsofDestructionCD = mod:NewNextCountTimer(14.5, 181508, nil, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON)--14.5-16 +local timerDisarmCD = mod:NewNextTimer(85.8, 179667, nil, nil, nil, 6, nil, nil, nil, 1, 4) +local timerSeedsofDestructionCD = mod:NewNextCountTimer(14.5, 181508, nil, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON, nil, 3, 4)--14.5-16 --local berserkTimer = mod:NewBerserkTimer(360) -local countdownDisarm = mod:NewCountdown(85.8, 179667) -local countdownDisembodied = mod:NewCountdownFades("AltTwo15", 179407, false)--Depends on whether or not you are going down. -local countdownSeedsofDestructionCD = mod:NewCountdown(14.5, 181508)--Seeds cannot be cast while disarm countdown is running, so this is fine. -local countdownSeedsofDestruction = mod:NewCountdownFades("Alt5", 181508)--Alt count for expiring is good. - mod:AddRangeFrameOption(10, 179711) mod:AddInfoFrameOption(182008, false) --Icon options will conflict on mythic or 25-30 players (when you get 5 targets for each debuff). Below that, they can coexist. @@ -200,7 +196,6 @@ function mod:OnCombatStart(delay) timerSoulCleaveCD:Start(25-delay, 1) timerCavitationCD:Start(35-delay, 1) timerDisarmCD:Start(86.7-delay) - countdownDisarm:Start(86.7-delay) if UnitIsGroupLeader("player") and not self:IsLFR() then if self.Options.SeedsBehavior == "Iconed" then self:SendSync("Iconed") @@ -253,10 +248,8 @@ function mod:SPELL_CAST_SUCCESS(args) self.vb.SeedsCount = self.vb.SeedsCount + 1 if self.vb.Enraged then timerSeedsofDestructionCD:Start(40, self.vb.SeedsCount+1) - countdownSeedsofDestructionCD:Start(40) elseif self.vb.SeedsCount < 2 then--Only casts two between phases, unless enraged timerSeedsofDestructionCD:Start(nil, self.vb.SeedsCount+1) - countdownSeedsofDestructionCD:Start(14.5) end elseif spellId == 179582 and self:AntiSpam(5, 4) then self.vb.FissureCount = self.vb.FissureCount + 1 @@ -284,7 +277,6 @@ function mod:SPELL_AURA_APPLIED(args) end if self:AntiSpam(5, 2) then self:Schedule(3.5, warnWake, self) - countdownSeedsofDestruction:Start()--Everyone, because waves occur. end seedsTargets[#seedsTargets+1] = args.destName self:Unschedule(warnSeeds) @@ -309,13 +301,10 @@ function mod:SPELL_AURA_APPLIED(args) self.vb.SeedsCount = 0 specWarnDisarmed:Show() timerSeedsofDestructionCD:Start(8.5, 1)--8.5-10 - countdownSeedsofDestructionCD:Start(8.5) elseif spellId == 179681 then--Enrage (has both armed and disarmed abilities) timerDisarmCD:Stop()--Assumed - countdownDisarm:Cancel() timerCavitationCD:Stop() timerSeedsofDestructionCD:Stop() - countdownSeedsofDestructionCD:Cancel() timerRumblingFissureCD:Stop() timerSoulCleaveCD:Stop() self.vb.Enraged = true @@ -326,7 +315,6 @@ function mod:SPELL_AURA_APPLIED(args) warnEnrage:Play("enrage") timerRumblingFissureCD:Start(6, 1)--Keep an eye on this timerSeedsofDestructionCD:Start(27, 1) - countdownSeedsofDestructionCD:Start(27) timerCavitationCD:Start(35.5, 1) elseif spellId == 189030 or spellId == 189031 or spellId == 189032 then self.vb.befouledTargets = self.vb.befouledTargets + 1 @@ -344,7 +332,7 @@ function mod:SPELL_AURA_APPLIED(args) elseif spellId == 179407 then warnDisembodied:CombinedShow(0.3, self.vb.SoulCleaveCount, args.destName) if args:IsPlayer() then - countdownDisembodied:Start() + specWarnDisembodiedYou:Show() else local uId = DBM:GetRaidUnitId(args.destName) if self:IsTanking(uId, "boss1") then @@ -377,7 +365,6 @@ function mod:SPELL_AURA_REMOVED(args) timerSoulCleaveCD:Start(23, 1) timerCavitationCD:Start(33, 1) timerDisarmCD:Start() - countdownDisarm:Start() elseif spellId == 182008 and self.Options.SetIconOnLatent then self:SetIcon(args.destName, 0) end diff --git a/DBM-Highmaul/Brackenspore.lua b/DBM-Highmaul/Brackenspore.lua index 6b506ee..87280d0 100644 --- a/DBM-Highmaul/Brackenspore.lua +++ b/DBM-Highmaul/Brackenspore.lua @@ -38,12 +38,12 @@ local specWarnSporeShooter = mod:NewSpecialWarningSwitch(163594, "RangedDps", local specWarnFungalFlesheater = mod:NewSpecialWarningSwitch("ej9995", "-Healer", nil, nil, nil, 2) local specWarnMindFungus = mod:NewSpecialWarningSwitch(163141, "Dps", nil, nil, nil, 2) -local timerInfestingSporesCD = mod:NewCDCountTimer(57, 159996, nil, nil, nil, 2)--57-63 variation +local timerInfestingSporesCD = mod:NewCDCountTimer(57, 159996, nil, nil, nil, 2, nil, nil, nil, 1, 4)--57-63 variation local timerRotCD = mod:NewCDTimer(10, 163241, nil, false, nil, 5, nil, DBM_CORE_TANK_ICON)--it's a useful timer, but not mandatory and this fight has A LOT of timers so off by default for clutter reduction local timerNecroticBreathCD = mod:NewCDTimer(32, 159219, nil, "Tank|Healer", nil, 5, nil, DBM_CORE_TANK_ICON) --Adds (all adds are actually NEXT timers however they get dleayed by infesting spores and necrotic breath sometimes so i'm leaving as CD for now) local timerSporeShooterCD = mod:NewCDTimer(57, 163594, nil, "RangedDps", 2, 1, nil, DBM_CORE_DAMAGE_ICON) -local timerFungalFleshEaterCD = mod:NewCDCountTimer(120, "ej9995", nil, "-Healer", nil, 1, 163142) +local timerFungalFleshEaterCD = mod:NewCDCountTimer(120, "ej9995", nil, "-Healer", nil, 1, 163142, nil, nil, 2, 4) local timerDecayCD = mod:NewCDTimer(9.5, 160013, nil, "Melee", nil, 4) local timerMindFungusCD = mod:NewCDTimer(30, 163141, nil, "MeleeDps", nil, 1, nil, DBM_CORE_DAMAGE_ICON) local timerLivingMushroomCD = mod:NewCDCountTimer(55.5, 160022, nil, "Healer", nil, 5) @@ -52,9 +52,6 @@ local berserkTimer = mod:NewBerserkTimer(600) mod:AddTimerLine(ENCOUNTER_JOURNAL_SECTION_FLAG12) local timerSpecialCD = mod:NewCDSpecialTimer(20)--Mythic Specials. Shared cd, which special he uses is random. 20-25 second variation, unless delayed by spores. then 20-25+10 -local countdownInfestingSpores = mod:NewCountdown(57, 159996)--The variation on this annoys me, may move countdown to something more reliable if possible -local countdownFungalFleshEater = mod:NewCountdown("Alt120", "ej9995", "-Healer") - mod:AddRangeFrameOption(8, 160254, false) mod:AddDropdownOption("InterruptCounter", {"Two", "Three", "Four"}, "Two", "misc") @@ -77,9 +74,7 @@ function mod:OnCombatStart(delay) timerSporeShooterCD:Start(20-delay)--20-26 timerNecroticBreathCD:Start(30-delay) timerFungalFleshEaterCD:Start(32-delay, 1) - countdownFungalFleshEater:Start(32-delay) timerInfestingSporesCD:Start(45-delay, 1) - countdownInfestingSpores:Start(45-delay) specWarnInfestingSpores:ScheduleVoice(38.5-delay, "aesoon") timerRejuvMushroomCD:Start(80-delay, 1)--Todo, verify 80 in all modes and not still 75 in mythic berserkTimer:Start(-delay) @@ -101,7 +96,6 @@ function mod:SPELL_CAST_START(args) self.vb.sporesCount = self.vb.sporesCount + 1 specWarnInfestingSpores:Show(self.vb.sporesCount) timerInfestingSporesCD:Start(nil, self.vb.sporesCount+1) - countdownInfestingSpores:Start() specWarnInfestingSpores:ScheduleVoice(50.5, "aesoon") elseif spellId == 160013 then if (self.Options.InterruptCounter == "Two" and self.vb.decayCounter == 2) or (self.Options.InterruptCounter == "Three" and self.vb.decayCounter == 3) or self.vb.decayCounter == 4 then @@ -195,7 +189,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) self.vb.fleshEaterCount = self.vb.fleshEaterCount + 1 specWarnFungalFlesheater:Show(self.vb.fleshEaterCount) timerFungalFleshEaterCD:Start(nil, self.vb.fleshEaterCount+1) - countdownFungalFleshEater:Start() specWarnFungalFlesheater:Play("163142k") elseif spellId == 160022 then self.vb.greenShroom = self.vb.greenShroom + 1 diff --git a/DBM-Highmaul/DBM-Highmaul.toc b/DBM-Highmaul/DBM-Highmaul.toc index 7b245e2..15eba24 100644 --- a/DBM-Highmaul/DBM-Highmaul.toc +++ b/DBM-Highmaul/DBM-Highmaul.toc @@ -1,4 +1,4 @@ -## Interface: 80100 +## Interface: 80200 ## X-Min-Interface: 80000 ## Title:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Highmaul|r ## Title-koKR:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0높은망치|r diff --git a/DBM-Highmaul/KargathBladefist.lua b/DBM-Highmaul/KargathBladefist.lua index 7a089f8..652282e 100644 --- a/DBM-Highmaul/KargathBladefist.lua +++ b/DBM-Highmaul/KargathBladefist.lua @@ -6,7 +6,7 @@ mod:SetCreatureID(78714) mod:SetEncounterID(1721) mod:SetZone() --mod:SetUsedIcons(7) -mod:SetModelSound("sound\\creature\\kargath\\VO_60_HMR_KARGATH_INTRO1.ogg", "sound\\creature\\kargath\\VO_60_HMR_KARGATH_SPELL2.ogg") +--mod:SetModelSound("sound\\creature\\kargath\\VO_60_HMR_KARGATH_INTRO1.ogg", "sound\\creature\\kargath\\VO_60_HMR_KARGATH_SPELL2.ogg") mod:RegisterCombat("combat") @@ -36,17 +36,12 @@ local specWarnFlameJet = mod:NewSpecialWarningMove(159311) local specWarnOnTheHunt = mod:NewSpecialWarningMoveTo(162497, nil, DBM_CORE_AUTO_SPEC_WARN_OPTIONS.run:format(162497), nil, nil, 2)--Does not need yell, tigers don't cleave other targets like berserker rush does. local timerPillarCD = mod:NewNextTimer(20, "ej9394", nil, nil, nil, nil, 159202) -local timerChainHurlCD = mod:NewNextTimer(106, 159947, nil, nil, nil, 6)--177776 -local timerSweeperCD = mod:NewTimer(55, "timerSweeperCD", 177258, nil, nil, 6) +local timerChainHurlCD = mod:NewNextTimer(106, 159947, nil, nil, nil, 6, nil, nil, nil, 1, 5)--177776 +local timerSweeperCD = mod:NewTimer(55, "timerSweeperCD", 177258, nil, nil, 6, nil, nil, nil, 1, 5) local timerBerserkerRushCD = mod:NewCDTimer(45, 158986, nil, nil, nil, 3, nil, DBM_CORE_DEADLY_ICON)--45 to 70 variation. Small indication that you can use a sequence to get it a little more accurate but even then it's variable. Pull1: 48, 60, 46, 70, 45, 51, 46, 70. Pull2: 48, 60, 50, 55, 45. Mythic pull1, 48, 50, 57, 49 -local timerImpaleCD = mod:NewCDTimer(43.5, 159113, nil, "Tank|Healer", nil, 5, nil, DBM_CORE_TANK_ICON)--Highly variable now, seems better adjusted for berserker rush interaction +local timerImpaleCD = mod:NewCDTimer(43.5, 159113, nil, "Tank|Healer", nil, 5, nil, DBM_CORE_TANK_ICON, nil, 2, 4)--Highly variable now, seems better adjusted for berserker rush interaction mod:AddTimerLine(ENCOUNTER_JOURNAL_SECTION_FLAG12) -local timerTigerCD = mod:NewNextTimer(110, "ej9396", nil, "-Tank", nil, 1, 162497, DBM_CORE_HEROIC_ICON) - -local countdownChainHurl = mod:NewCountdown(106, 159947) -local countdownSweeper = mod:NewCountdown(55, 177776, nil, mod.localization.options.countdownSweeper) -local countdownTiger = mod:NewCountdown("Alt110", "ej9396", "-Tank")--Tigers never bother tanks so not tanks probelm -local countdownImpale = mod:NewCountdown("Alt45", 159113, "Tank")--Slightly veriable based on other spells +local timerTigerCD = mod:NewNextTimer(110, "ej9396", nil, "-Tank", nil, 1, 162497, DBM_CORE_HEROIC_ICON, nil, 3, 4) mod:AddRangeFrameOption(4, 159386) @@ -75,16 +70,13 @@ end function mod:OnCombatStart(delay) timerPillarCD:Start(24-delay) timerImpaleCD:Start(35-delay) - countdownImpale:Start(35-delay) timerBerserkerRushCD:Start(48-delay) timerChainHurlCD:Start(91-delay) - countdownChainHurl:Start(91-delay) if self.Options.RangeFrame and not self:IsLFR() then DBM.RangeCheck:Show(4)--For Mauling Brew splash damage. end if self:IsMythic() then timerTigerCD:Start() - countdownTiger:Start() end specWarnChainHurl:ScheduleVoice(84.5-delay, "159947r") --ready for hurl end @@ -103,14 +95,12 @@ function mod:SPELL_CAST_START(args) specWarnImpale:Show() end timerImpaleCD:Start() - countdownImpale:Start() if self:IsHealer() then specWarnImpale:Play("tankheal") end elseif spellId == 159947 then specWarnChainHurl:Show() timerChainHurlCD:Start() - countdownChainHurl:Start() specWarnChainHurl:ScheduleVoice(99.5, "159947r") --ready for hurl elseif spellId == 158986 then timerBerserkerRushCD:Start() @@ -125,7 +115,6 @@ function mod:SPELL_AURA_APPLIED(args) warnChainHurl:CombinedShow(0.5, args.destName) if args:IsPlayer() then timerSweeperCD:Start() - countdownSweeper:Start()--TODO,scan for punted or whatever knockdown is and cancel. specWarnChainHurl:Play("159947y") --you are the target else if self:AntiSpam(2, 2) then @@ -174,7 +163,6 @@ function mod:SPELL_CAST_SUCCESS(args) local spellId = args.spellId if spellId == 181113 then--Encounter Spawn timerTigerCD:Start() - countdownTiger:Start() end end diff --git a/DBM-Highmaul/Koragh.lua b/DBM-Highmaul/Koragh.lua index 7e168fd..da952d5 100644 --- a/DBM-Highmaul/Koragh.lua +++ b/DBM-Highmaul/Koragh.lua @@ -53,21 +53,17 @@ local specWarnExpelMagicFelMove = mod:NewSpecialWarningMove(172917)--Under you local timerVulnerability = mod:NewBuffActiveTimer(23, 160734, nil, nil, nil, 6)--more like 23-24 than 20 local timerTrampleCD = mod:NewCDTimer(16, 163101, nil, nil, nil, 3) -local timerExpelMagicFire = mod:NewBuffFadesTimer(11.5, 162185, nil, false, 2)--Has countdown, and fight has a lot of itmers now, i found this timer HIGHLY distracting when trying to process multiple important ability cds at once. +local timerExpelMagicFire = mod:NewBuffFadesTimer(11.5, 162185, nil, false, 2, 5, nil, nil, nil, 1, 4) local timerExpelMagicFireCD = mod:NewCDTimer(58, 162185, nil, nil, nil, 3)--58-66 Variation local timerExpelMagicFrost = mod:NewBuffActiveTimer(20, 161411, nil, false, 3) local timerExpelMagicFrostCD = mod:NewCDTimer(60, 161411, nil, nil, nil, 2)--60-63 variation local timerExpelMagicShadowCD = mod:NewCDTimer(59, 162184, nil, "Tank|Healer", nil, 5)--60-63 variation local timerExpelMagicArcane = mod:NewTargetTimer(10, 162186, nil, "Tank|Healer") local timerExpelMagicArcaneCD = mod:NewCDTimer(26, 162186, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON)--26-32 -local timerBallsCD = mod:NewNextCountTimer(30, 161612, nil, nil, nil, 5) +local timerBallsCD = mod:NewNextCountTimer(30, 161612, nil, nil, nil, 5, nil, nil, nil, 1, 5) mod:AddTimerLine(ENCOUNTER_JOURNAL_SECTION_FLAG12) local timerExpelMagicFelCD = mod:NewCDTimer(15.5, 172895, nil, "-Tank", 2, 3, nil, DBM_CORE_HEROIC_ICON)--Mythic -local timerExpelMagicFel = mod:NewBuffFadesTimer(12, 172895)--Mythic - -local countdownMagicFire = mod:NewCountdownFades(11.5, 162185) -local countdownBalls = mod:NewCountdown("Alt30", 161612) -local countdownFel = mod:NewCountdownFades("AltTwo11", 172895) +local timerExpelMagicFel = mod:NewBuffFadesTimer(12, 172895, nil, nil, nil, 5, nil, nil, nil, 3, 4)--Mythic mod:AddRangeFrameOption("5") mod:AddSetIconOption("SetIconOnMC", 163472, false) @@ -103,7 +99,6 @@ local function checkBossForgot(self) DBM:Debug("checkBossForgot ran, which means expected balls 10 seconds late, starting 20 second timer for next balls") -- self.vb.ballsCount = self.vb.ballsCount + 1 timerBallsCD:Start(20, self.vb.ballsCount+1) - countdownBalls:Start(20) self:Schedule(13.5, ballsWarning, self) end @@ -129,7 +124,6 @@ function mod:OnCombatStart(delay) timerExpelMagicFireCD:Start(6-delay) timerExpelMagicArcaneCD:Start(30-delay) timerBallsCD:Start(36-delay, 1) - countdownBalls:Start(36-delay) timerExpelMagicFrostCD:Start(40-delay) timerExpelMagicShadowCD:Start(55-delay) self:Schedule(29.5-delay, ballsWarning, self) @@ -179,7 +173,6 @@ function mod:SPELL_CAST_START(args) else timerExpelMagicFireCD:Start() end - countdownMagicFire:Start() specWarnExpelMagicFire:Play("scattersoon") specWarnExpelMagicFire:ScheduleVoice(5, "scatter") self:Schedule(11.5, closeRange, self) @@ -279,7 +272,6 @@ function mod:SPELL_AURA_APPLIED(args) if args:IsPlayer() then specWarnExpelMagicFel:Show() timerExpelMagicFel:Start() - countdownFel:Start() yellExpelMagicFel:Schedule(11)--Yell right before expire, not apply if not self:HasMapRestrictions() then lastX, LastY = UnitPosition("player") @@ -367,9 +359,7 @@ function mod:SPELL_AURA_REMOVED(args) if ballsRemaining > 5 then--If 5 seconds or less on timer, balls are already falling and will not be delayed. If remaining >5 it'll be delayed by 20 seconds (entirety of charge phase) timerBallsCD:Stop() timerBallsCD:Start(ballsRemaining+23, self.vb.ballsCount+1) - countdownBalls:Cancel() specWarnBallsSoon:Cancel() - countdownBalls:Start(ballsRemaining+23) self:Unschedule(ballsWarning) self:Unschedule(checkBossForgot)--Cancel check boss forgot self:Schedule(ballsRemaining+16.5, ballsWarning, self) @@ -415,7 +405,6 @@ function mod:OnSync(msg, targetname) self:Unschedule(ballsWarning) self:Unschedule(checkBossForgot) timerBallsCD:Stop()--Sometimes balls still hit even with > 5-6 seconds, cancel timers an count - countdownBalls:Cancel()--Then code below will just fix it all on it's own local timer if self.vb.shieldCharging then timer = 52 @@ -426,7 +415,6 @@ function mod:OnSync(msg, targetname) end warnBallsHit:Show(self.vb.ballsCount) timerBallsCD:Start(timer, self.vb.ballsCount+1) - countdownBalls:Start(timer) self:Schedule(timer-6.5, ballsWarning, self) self:Schedule(timer+10, checkBossForgot, self)--Fire checkbossForgot 10 seconds after raid should have soaked or taken damage end diff --git a/DBM-Highmaul/Margok.lua b/DBM-Highmaul/Margok.lua index 1679ad2..07195dc 100644 --- a/DBM-Highmaul/Margok.lua +++ b/DBM-Highmaul/Margok.lua @@ -104,33 +104,24 @@ local specWarnDarkStar = mod:NewSpecialWarningSpell(178607, nil, nil, nil, local timerArcaneWrathCD = mod:NewCDTimer(50, 156238, nil, "-Tank", nil, 3)--Pretty much a next timer, HOWEVER can get delayed by other abilities so only reason it's CD timer anyways local timerDestructiveResonanceCD = mod:NewCDTimer(15, 156467, nil, "-Melee", nil, 3)--16-30sec variation noted. I don't like it local timerMarkOfChaos = mod:NewTargetTimer(8, 158605, nil, "Tank") -local timerMarkOfChaosCD = mod:NewCDTimer(50.5, 158605, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) -local timerForceNovaCD = mod:NewCDCountTimer(45, 157349, nil, nil, nil, 2)--45-52 +local timerMarkOfChaosCD = mod:NewCDTimer(50.5, 158605, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON, nil, 2, 5) +local timerForceNovaCD = mod:NewCDCountTimer(45, 157349, nil, nil, nil, 2, nil, nil, nil, 3, 4)--45-52 local timerForceNovaFortification = mod:NewNextTimer(9, 157349, nil, nil, nil, 2)--For repeating nova local timerSummonArcaneAberrationCD = mod:NewCDCountTimer(45, "ej9945", nil, "-Healer", nil, 1, 156471, DBM_CORE_DAMAGE_ICON)--45-52 Variation Noted --Intermission: Lineage of Power mod:AddTimerLine(DBM_CORE_INTERMISSION) -local timerTransition = mod:NewPhaseTimer(74) +local timerTransition = mod:NewPhaseTimer(74, nil, nil, nil, nil, nil, nil, nil, nil, 1, 5) local timerCrushArmorCD = mod:NewNextTimer(6, 158553, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) local timerKickToFaceCD = mod:NewCDTimer(17, 158563, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) --Mythic mod:AddTimerLine(ENCOUNTER_JOURNAL_SECTION_FLAG12) -local timerGaze = mod:NewBuffFadesTimer(15, 165595, nil, nil, nil, 3) +local timerGaze = mod:NewBuffFadesTimer(15, 165595, nil, nil, nil, 3, nil, nil, nil, 2, 4) local timerGlimpseOfMadnessCD = mod:NewNextCountTimer(27, 165243, nil, nil, nil, 1) local timerInfiniteDarknessCD = mod:NewNextTimer(62, 165102, nil, "Healer", 2, 5, nil, DBM_CORE_HEALER_ICON) -local timerEnvelopingNightCD = mod:NewNextCountTimer(63, 165876, nil, nil, nil, 2)--60 seconds plus 3 second cast -local timerDarkStarCD = mod:NewCDTimer(61, 178607, nil, nil, nil, 3)--61-65 Variations noticed +local timerEnvelopingNightCD = mod:NewNextCountTimer(63, 165876, nil, nil, nil, 2, nil, nil, nil, 1, 4)--60 seconds plus 3 second cast +local timerDarkStarCD = mod:NewCDTimer(61, 178607, nil, nil, nil, 3, nil, nil, nil, 3, 4)--61-65 Variations noticed local timerNightTwistedCD = mod:NewTimer(30, "timerNightTwistedCD", 172138, nil, nil, 1) -local countdownArcaneWrath = mod:NewCountdown(50, 156238, false, 2)--Important to the assigned soakers on mythic, but pretty much spam to everyone else -local countdownMarkofChaos = mod:NewCountdown("Alt50", 158605, "Tank") -local countdownForceNova = mod:NewCountdown("AltTwo45", 157349) -local countdownTransition = mod:NewCountdown(74, 157278) ---Mythic -local countdownEnvelopingNight = mod:NewCountdown(63, 165876) -local countdownGaze = mod:NewCountdownFades("Alt10", 165595) -local countdownDarkStar = mod:NewCountdown("AltTwo61", 178607) - mod:AddRangeFrameOption("35/13/5") mod:AddSetIconOption("SetIconOnBrandedDebuff", 156225, false) mod:AddSetIconOption("SetIconOnInfiniteDarkness", 165102, false) @@ -256,16 +247,12 @@ end local function stopP3Timers() timerArcaneWrathCD:Stop() - countdownArcaneWrath:Cancel() timerDestructiveResonanceCD:Stop() timerSummonArcaneAberrationCD:Stop() timerMarkOfChaosCD:Stop() - countdownMarkofChaos:Cancel() timerForceNovaCD:Stop() specWarnForceNova:CancelVoice() - countdownForceNova:Cancel() timerForceNovaFortification:Stop() - countdownForceNova:Cancel() specWarnForceNova:Cancel() end local function NightTwisted(self) @@ -290,13 +277,10 @@ function mod:OnCombatStart(delay) self.vb.envelopingCount = 0 self.vb.mineCount = 0 timerArcaneWrathCD:Start(5.5-delay) - countdownArcaneWrath:Start(5.5-delay) timerDestructiveResonanceCD:Start(15-delay) timerSummonArcaneAberrationCD:Start(25-delay, 1) timerMarkOfChaosCD:Start(33.5-delay) - countdownMarkofChaos:Start(33.5-delay) timerForceNovaCD:Start(-delay, 1) - countdownForceNova:Start(-delay) specWarnForceNova:Schedule(38.5-delay, "157349") --Fix number of bosses reported by status whispers for normal --Assuming this can be changed after mod load without breaking things. @@ -329,7 +313,6 @@ function mod:SPELL_CAST_START(args) local spellId = args.spellId if args:IsSpellID(156238, 163988, 163989, 163990) then timerArcaneWrathCD:Start() - countdownArcaneWrath:Start() ----- --Users complain BW timers more accurate. here is proof BW timers are completely wrong actually --There is no magic timer table for mines. It's a variable cd (a shitty one at that) that cannot be predicted accurately. @@ -369,13 +352,11 @@ function mod:SPELL_CAST_START(args) specWarnForceNova:Show() local novaTime = self.vb.forceCount == 1 and 45 or 50.5--Often 51, but 2x I did see 50.5 so 50.5 is safer timerForceNovaCD:Start(novaTime, self.vb.forceCount+1) - countdownForceNova:Start(novaTime) specWarnForceNova:ScheduleVoice(novaTime-6.5, "157349") elseif spellId == 164232 then self.vb.forceCount = self.vb.forceCount + 1 local novaTime = self.vb.forceCount == 1 and 45 or 50.5 timerForceNovaCD:Start(novaTime, self.vb.forceCount+1) - countdownForceNova:Start(novaTime) specWarnForceNova:ScheduleVoice(novaTime-6.5, "157349") if self:IsMythic() and self.vb.phase == 1 then--Also replication empowered self.vb.RepNovaActive = true @@ -400,13 +381,10 @@ function mod:SPELL_CAST_START(args) specWarnForceNova:Show() local novaTime = self.vb.forceCount == 1 and 45 or 50.5 timerForceNovaCD:Start(novaTime, self.vb.forceCount+1) - countdownForceNova:Start(novaTime) specWarnForceNova:ScheduleVoice(novaTime-6.5, "157349") - --Fortified novas, 3 novas not just 1. Start additional timer/Countdown for novas 2 and 3 + --Fortified novas, 3 novas not just 1. Start additional timer for novas 2 and 3 timerForceNovaFortification:Start() timerForceNovaFortification:Schedule(9) - countdownForceNova:Start(9) - countdownForceNova:Start(18) specWarnForceNova:Schedule(9) specWarnForceNova:Schedule(18) elseif spellId == 164240 then @@ -414,11 +392,9 @@ function mod:SPELL_CAST_START(args) self.vb.RepNovaActive = true if self:IsMythic() then self:Schedule(27, delayedRangeUpdate, self)--Also Fortification empowered - --Fortified novas, 3 novas not just 1. Start additional timer/Countdown for novas 2 and 3 + --Fortified novas, 3 novas not just 1. Start additional timer for novas 2 and 3 timerForceNovaFortification:Start() timerForceNovaFortification:Schedule(9) - countdownForceNova:Start(9) - countdownForceNova:Start(18) specWarnForceNovaRep:Schedule(9) specWarnForceNovaRep:Schedule(18) specWarnForceNova:ScheduleVoice(9, "range5") @@ -439,7 +415,6 @@ function mod:SPELL_CAST_START(args) specWarnForceNovaRep:Show() local novaTime = self.vb.forceCount == 1 and 45 or 50.5 timerForceNovaCD:Start(novaTime, self.vb.forceCount+1) - countdownForceNova:Start(novaTime) specWarnForceNova:ScheduleVoice(novaTime-6.5, "157349") specWarnForceNova:Play("range5") --keep range 5 yards ----- @@ -472,7 +447,6 @@ function mod:SPELL_CAST_START(args) local tanking, status = UnitDetailedThreatSituation("player", "boss1") self.vb.noTaunt = true timerMarkOfChaosCD:Start() - countdownMarkofChaos:Start() if spellId == 158605 then if self.Options.warnMarkOfChaos and targetName then warnMarkOfChaos:Show(targetName) @@ -536,12 +510,10 @@ function mod:SPELL_CAST_START(args) specWarnEnvelopingNight:Show(self.vb.envelopingCount) specWarnEnvelopingNight:Play("aesoon") timerEnvelopingNightCD:Start(nil, self.vb.envelopingCount+1) - countdownEnvelopingNight:Start() elseif spellId == 178607 then warnDarkStar:Show() specWarnDarkStar:Show() timerDarkStarCD:Start() - countdownDarkStar:Start() end end @@ -732,9 +704,7 @@ function mod:SPELL_AURA_APPLIED(args) local amount = args.amount or 1 specWarnGaze:Show(amount) timerGaze:Stop() - countdownGaze:Cancel() timerGaze:Start() - countdownGaze:Start() if self.Options.GazeYellType == "Countdown" then yellGaze:Schedule(14, 1) yellGaze:Schedule(13, 2) @@ -804,7 +774,6 @@ function mod:SPELL_AURA_REMOVED(args) elseif spellId == 165595 then if args:IsPlayer() then timerGaze:Stop() - countdownGaze:Cancel() end updateRangeFrame(self) end @@ -830,19 +799,14 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) if spellId == 164751 or spellId == 164810 then--Teleport to Fortification/Teleport to Replication. self.vb.isTransition = true timerArcaneWrathCD:Stop() - countdownArcaneWrath:Cancel() timerDestructiveResonanceCD:Stop() timerSummonArcaneAberrationCD:Stop() timerMarkOfChaosCD:Stop() - countdownMarkofChaos:Cancel() timerForceNovaCD:Stop() - countdownForceNova:Cancel() specWarnForceNova:CancelVoice() timerForceNovaFortification:Stop() - countdownForceNova:Cancel() specWarnForceNova:Cancel() timerTransition:Start() - countdownTransition:Start() warnPhase:Play("ptran") updateRangeFrame(self) if spellId == 164810 then @@ -860,14 +824,11 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) self.vb.noTaunt = false specWarnTransitionEnd:Show() timerArcaneWrathCD:Start(8.5) - countdownArcaneWrath:Start(8.5) timerDestructiveResonanceCD:Start(18) timerSummonArcaneAberrationCD:Start(28, 1) timerMarkOfChaosCD:Start(36.5) - countdownMarkofChaos:Start(36.5) timerForceNovaCD:Start(48.5, 1) specWarnForceNova:ScheduleVoice(42, "157349") - countdownForceNova:Start(48.5) if spellId == 158012 then if self:IsMythic() then self.vb.phase = 2 @@ -892,10 +853,6 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) end updateRangeFrame(self) elseif spellId == 164336 then--Teleport to Displacement (first phase change that has no transition) - --Cancel countdowns, since timers are altered by this transition - countdownArcaneWrath:Cancel() - countdownMarkofChaos:Cancel() - countdownForceNova:Cancel() specWarnForceNova:CancelVoice() local tr1 = timerArcaneWrathCD:GetRemaining() local tr2 = timerDestructiveResonanceCD:GetRemaining() @@ -907,22 +864,24 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) --but casts can be delayed 3-13 seconds based on how many get backed up in queue :\ local n = 10 -- just extend 10s if left time is below 10s. if tr1 > 0 and tr1 < 10 then - -- countdownArcaneWrath:Start(tr1+n) + timerArcaneWrathCD:Stop() timerArcaneWrathCD:Start(tr1+n) end if tr2 > 0 and tr2 < 10 then + timerDestructiveResonanceCD:Stop() timerDestructiveResonanceCD:Start(tr2+n) end if tr3 > 0 and tr3 < 10 then + timerSummonArcaneAberrationCD:Stop() timerSummonArcaneAberrationCD:Start(tr3+n) end if tr4 > 0 and tr4 < 10 then + timerMarkOfChaosCD:Stop() timerMarkOfChaosCD:Start(tr4+n) - -- countdownMarkofChaos:Start(tr4+n) end if tr5 > 0 and tr5 < 10 then + timerForceNovaCD:Stop() timerForceNovaCD:Start(tr5+n) - -- countdownForceNova:Start(tr5+n) end self.vb.phase = 2 warnPhase:Show(DBM_CORE_AUTO_ANNOUNCE_TEXTS.stage:format(2)) @@ -935,9 +894,7 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) timerInfiniteDarknessCD:Start(9)--First timer 8-12 second variable, almost always 10. I'll make 9 for now so it's semi accurate in both situations timerGlimpseOfMadnessCD:Start(20, 1) timerDarkStarCD:Start(29) - countdownDarkStar:Start(29) timerEnvelopingNightCD:Start(55, 1) - countdownEnvelopingNight:Start(55) self:RegisterShortTermEvents( "SPELL_PERIODIC_DAMAGE 176533", "SPELL_ABSORBED 176533" diff --git a/DBM-Highmaul/Tectus.lua b/DBM-Highmaul/Tectus.lua index 3fa58a4..807555c 100644 --- a/DBM-Highmaul/Tectus.lua +++ b/DBM-Highmaul/Tectus.lua @@ -6,7 +6,7 @@ mod:SetCreatureID(78948, 80557, 80551, 99999)--78948 Tectus, 80557 Mote of Tectu mod:SetEncounterID(1722)--Hopefully win will work fine off this because otherwise tracking shard deaths is crappy mod:SetZone() mod:SetUsedIcons(8, 7, 6, 5, 4, 3, 2, 1) -mod:SetModelSound("sound\\creature\\tectus\\VO_60_HMR_TECTUS_AGGRO_01.ogg", "sound\\creature\\tectus\\vo_60_hmr_tectus_spell_05.ogg") +--mod:SetModelSound("sound\\creature\\tectus\\VO_60_HMR_TECTUS_AGGRO_01.ogg", "sound\\creature\\tectus\\vo_60_hmr_tectus_spell_05.ogg") mod:RegisterCombat("combat") mod.syncThreshold = 4--Rise Mountain can occur pretty often. @@ -49,8 +49,6 @@ local timerCrystalBarrage = mod:NewBuffFadesTimer(15, 162346) local berserkTimer = mod:NewBerserkTimer(600) -local countdownEarthwarper = mod:NewCountdown(41, "ej10061", "Melee") - mod:AddSetIconOption("SetIconOnEarthwarper", "ej10061", true, true) mod:AddSetIconOption("SetIconOnMote", "ej10064", false, true)--Working with both shard and mote. ej10083 description is bad / This more or less assumes the 4 at a time strat. if you unleash 8 it will fail. Although any guild unleashing 8 is probably doing it wrong (minus LFR) mod:AddSetIconOption("SetIconOnCrystal", 162370, false)--icons 1 and 2, no conflict with icon on earthwarper @@ -131,7 +129,6 @@ function mod:OnCombatStart(delay) self.vb.healthPhase = 1 table.wipe(moteH) timerEarthwarperCD:Start(8-delay) - countdownEarthwarper:Start(8-delay) timerBerserkerCD:Start(18-delay) if self:IsMythic() then --Figure out berserk @@ -230,7 +227,6 @@ function mod:SPELL_CAST_SUCCESS(args) timerGiftOfEarthCD:Start(10)--TODO, verify timing on new event timerEarthenFlechettesCD:Start(15)--TODO, verify timing on new event timerEarthwarperCD:Start()--TODO, verify timing on new event - countdownEarthwarper:Start()--TODO, verify timing on new event if self.Options.SetIconOnEarthwarper and self.vb.EarthwarperAlive < 9 and not (self:IsMythic() and self.Options.SetIconOnMote) then--Support for marking up to 8 mobs (you're group is terrible) self:ScanForMobs(80599, 2, 9-self.vb.EarthwarperAlive, 1, 0.2, 13, "SetIconOnEarthwarper") end @@ -244,7 +240,6 @@ function mod:SPELL_CAST_SUCCESS(args) self.vb.healthPhase = 2 if not self:IsMythic() then timerEarthwarperCD:Stop() - countdownEarthwarper:Cancel() timerBerserkerCD:Stop() end elseif cid == 80551 then diff --git a/DBM-Highmaul/TheButcher.lua b/DBM-Highmaul/TheButcher.lua index a485586..82201a2 100644 --- a/DBM-Highmaul/TheButcher.lua +++ b/DBM-Highmaul/TheButcher.lua @@ -5,7 +5,7 @@ mod:SetRevision("@file-date-integer@") mod:SetCreatureID(77404) mod:SetEncounterID(1706) mod:SetZone() -mod:SetModelSound("sound\\creature\\thebutcher\\VO_60_OGRERAID_BUTCHER_AGGRO.ogg", "sound\\creature\\thebutcher\\VO_60_OGRERAID_BUTCHER_SPELL_B.ogg") +--mod:SetModelSound("sound\\creature\\thebutcher\\VO_60_OGRERAID_BUTCHER_AGGRO.ogg", "sound\\creature\\thebutcher\\VO_60_OGRERAID_BUTCHER_SPELL_B.ogg") mod:RegisterCombat("combat") @@ -32,17 +32,14 @@ local specWarnBoundingCleaveEnded = mod:NewSpecialWarningEnd(156160) local specWarnPaleVitriol = mod:NewSpecialWarningMove(163046, nil, nil, nil, nil, 2)--Mythic local timerCleaveCD = mod:NewCDTimer(6, 156157, nil, false, nil, 5) -local timerTenderizerCD = mod:NewCDTimer(15.2, 156151, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) +local timerTenderizerCD = mod:NewCDTimer(15.2, 156151, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON, nil, 2, 4) local timerCleaverCD = mod:NewCDTimer(7.5, 156143, nil, "Tank", nil, 5, nil, DBM_CORE_TANK_ICON) local timerGushingWounds = mod:NewBuffFadesTimer(15, 156152) -local timerBoundingCleaveCD = mod:NewNextCountTimer(60, 156160, nil, nil, nil, 2) +local timerBoundingCleaveCD = mod:NewNextCountTimer(60, 156160, nil, nil, nil, 2, nil, nil, nil, 1, 4) local timerBoundingCleave = mod:NewCastTimer(15, 156160, nil, nil, nil, 2) local berserkTimer = mod:NewBerserkTimer(300) -local countdownTenderizer = mod:NewCountdown("Alt17", 156151, "Tank") -local countdownBoundingCleave = mod:NewCountdown(60, 156160) - mod.vb.cleaveCount = 0 mod.vb.boundingCleave = 0 mod.vb.isFrenzied = false @@ -52,12 +49,10 @@ function mod:OnCombatStart(delay) self.vb.boundingCleave = 0 self.vb.isFrenzied = false timerTenderizerCD:Start(6-delay) - countdownTenderizer:Start(6-delay) timerCleaveCD:Start(10-delay)--Verify this wasn't caused by cleave bug. timerCleaverCD:Start(12-delay) timerBoundingCleaveCD:Start(-delay, 1) specWarnBoundingCleave:ScheduleVoice(53.5-delay, "156160") - countdownBoundingCleave:Start(-delay) if self:IsMythic() then berserkTimer:Start(240-delay) self:RegisterShortTermEvents( @@ -103,7 +98,6 @@ function mod:SPELL_AURA_APPLIED(args) elseif spellId == 156151 then local amount = args.amount or 1 timerTenderizerCD:Start() - countdownTenderizer:Start() if amount >= 2 then if args:IsPlayer() then specWarnTenderizer:Show(amount) @@ -128,11 +122,7 @@ function mod:SPELL_AURA_APPLIED(args) local bossProgress = bossPower * 0.3--Under frenzy he gains energy twice as fast. So about 3.33 energy per seocnd, 30 seconds to full power. local timeRemaining = 30-bossProgress timerBoundingCleaveCD:Update(bossProgress, 30, self.vb.boundingCleave+1)--Will bar update work correctly on a count bar? Looking at code I don't think it will, it doesn't accept/pass on extra args in Update call. - countdownBoundingCleave:Cancel() specWarnBoundingCleave:CancelVoice() - if timeRemaining >= 3 then--Don't start countdown if only 2 seconds left - countdownBoundingCleave:Start(timeRemaining) - end if timeRemaining >= 8.5 then--Prevent a number lower than 2 specWarnBoundingCleave:ScheduleVoice(30-bossProgress-6.5, "156160") end @@ -176,20 +166,16 @@ function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId) self.vb.cleaveCount = 0 self.vb.boundingCleave = self.vb.boundingCleave + 1 timerCleaveCD:Stop() - countdownTenderizer:Cancel() specWarnBoundingCleave:Show(self.vb.boundingCleave) timerTenderizerCD:Start(15) - countdownTenderizer:Start(15) timerCleaverCD:Start(21) if self.vb.isFrenzied then timerBoundingCleave:Start(5) timerBoundingCleaveCD:Start(30, self.vb.boundingCleave+1) - countdownBoundingCleave:Start(30) specWarnBoundingCleave:ScheduleVoice(23.5, "156160") else timerBoundingCleave:Start(9) timerBoundingCleaveCD:Start(nil, self.vb.boundingCleave+1) - countdownBoundingCleave:Start(60) specWarnBoundingCleave:ScheduleVoice(53.5, "156160") end end diff --git a/DBM-Highmaul/TwinOgron.lua b/DBM-Highmaul/TwinOgron.lua index 4dd62bb..fff33ae 100644 --- a/DBM-Highmaul/TwinOgron.lua +++ b/DBM-Highmaul/TwinOgron.lua @@ -40,26 +40,22 @@ local specWarnArcaneCharge = mod:NewSpecialWarningSpell(163336, nil, nil, nil, --Phemos (100-106 second full rotation, 33-34 in between) mod:AddTimerLine((DBM:EJ_GetSectionInfo(9590))) -local timerEnfeeblingRoarCD = mod:NewNextCountTimer(33, 158057, nil, nil, nil, 5) -local timerWhirlwindCD = mod:NewNextCountTimer(33, 157943, nil, nil, nil, 2) -local timerQuakeCD = mod:NewNextCountTimer(34, 158200, nil, nil, nil, 2) +local timerEnfeeblingRoarCD = mod:NewNextCountTimer(33, 158057, nil, nil, nil, 5, nil, nil, nil, 1, 4) +local timerWhirlwindCD = mod:NewNextCountTimer(33, 157943, nil, nil, nil, 2, nil, nil, nil, 1, 4) +local timerQuakeCD = mod:NewNextCountTimer(34, 158200, nil, nil, nil, 2, nil, nil, nil, 1, 4) --Pol (84 seconds full rotation, 28-29 seconds in between) mod:AddTimerLine((DBM:EJ_GetSectionInfo(9595))) -local timerShieldChargeCD = mod:NewNextTimer(28, 158134, nil, nil, nil, 3) -local timerInterruptingShoutCD = mod:NewNextTimer(28, 158093)--No color classificatoin for this, hmm -local timerInterruptingShout = mod:NewCastTimer(3, 158093, nil, "SpellCaster") -local timerPulverizeCD = mod:NewNextTimer(29, 158385, nil, nil, nil, 3)--Aoe vs targeted, difficult classification, it's a bit of both +local timerShieldChargeCD = mod:NewNextTimer(28, 158134, nil, nil, nil, 3, nil, nil, nil, 2, 4) +local timerInterruptingShoutCD = mod:NewNextTimer(28, 158093, nil, nil, nil, 2, nil, nil, nil, 2, 4)--No color classificatoin for this, hmm +local timerInterruptingShout = mod:NewCastTimer(3, 158093, nil, "SpellCaster", nil, 5) +local timerPulverizeCD = mod:NewNextTimer(29, 158385, nil, nil, nil, 3, nil, nil, nil, 2, 4)--Aoe vs targeted, difficult classification, it's a bit of both --^^Even though 6 cd timers, coded smart to only need 2 up at a time, by using the predictability of "next ability" timing. mod:AddTimerLine(ENCOUNTER_JOURNAL_SECTION_FLAG12) local timerArcaneTwistedCD = mod:NewNextTimer(55, 163297, nil, nil, nil, 6) -local timerArcaneVolatilityCD = mod:NewNextTimer(60, 163372, nil, nil, nil, 3)--Only first one acurate now. Now it's a mess, was fine on beta. 60 second cd. but now it's boss power based, off BOTH bosses and is a real mess +local timerArcaneVolatilityCD = mod:NewNextTimer(60, 163372, nil, nil, nil, 3, nil, nil, nil, 3, 4)--Only first one acurate now. Now it's a mess, was fine on beta. 60 second cd. but now it's boss power based, off BOTH bosses and is a real mess mod:AddTimerLine(ALL) local berserkTimer = mod:NewBerserkTimer(420)--As reported in feedback threads -local countdownPhemos = mod:NewCountdown(33, nil, nil, "PhemosSpecial") -local countdownPol = mod:NewCountdown("Alt28", nil, nil, "PolSpecial") -local countdownArcaneVolatility = mod:NewCountdown("AltTwo60", 163372, "-Tank") - local voicePhemos = mod:NewVoice(nil, nil, "PhemosSpecialVoice") local voicePol = mod:NewVoice(nil, nil, "PolSpecialVoice") @@ -179,13 +175,11 @@ function mod:OnCombatStart(delay) self.vb.arcaneDebuff = 0 self.vb.PulverizeRadar = false timerQuakeCD:Start(12-delay, 1) - countdownPhemos:Start(12-delay) if self:IsMythic() then PhemosEnergyRate = 28 polEnergyRate = 23 timerArcaneTwistedCD:Start(33-delay) timerArcaneVolatilityCD:Start(65-delay) - countdownArcaneVolatility:Start(65-delay) berserkTimer:Start(-delay) if self.Options.RangeFrame then DBM.RangeCheck:Show(8, debuffFilter) @@ -198,7 +192,6 @@ function mod:OnCombatStart(delay) polEnergyRate = 28 end timerShieldChargeCD:Start(polEnergyRate+10-delay) - countdownPol:Start(polEnergyRate+10-delay) voicePol:Schedule(polEnergyRate+3.5-delay, "158134") --shield if self.Options.InfoFrame then DBM.InfoFrame:Show(4, "function", updateInfoFrame) @@ -221,25 +214,21 @@ function mod:SPELL_CAST_START(args) specWarnEnfeeblingRoar:Show(self.vb.EnfeebleCount) if not self:IsMythic() and self.vb.QuakeCount == 1 then--On all other difficulties, quake is 1 second longer (only first) timerQuakeCD:Start(PhemosEnergyRate+1, self.vb.QuakeCount+1)--Next Special - countdownPhemos:Start(PhemosEnergyRate+1) voicePhemos:Schedule(PhemosEnergyRate + 1 - 6.5, "158200") else--On mythic, there is no longer ability than other 2, since 84 is more divisible by 3 than 100 is timerQuakeCD:Start(PhemosEnergyRate, self.vb.QuakeCount+1)--Next Special - countdownPhemos:Start(PhemosEnergyRate) voicePhemos:Schedule(PhemosEnergyRate - 6.5, "158200") end elseif spellId == 157943 then self.vb.WWCount = self.vb.WWCount + 1 specWarnWhirlWind:Show(self.vb.WWCount) timerEnfeeblingRoarCD:Start(PhemosEnergyRate, self.vb.EnfeebleCount+1)--Next Special - countdownPhemos:Start(PhemosEnergyRate) voicePhemos:Schedule(PhemosEnergyRate - 6.8, "158057") voicePhemos:Schedule(PhemosEnergyRate - 5.3, "gather")--Stack elseif spellId == 158134 then specWarnShieldCharge:Show() specWarnShieldCharge:Play("chargemove") timerInterruptingShoutCD:Start(polEnergyRate)--Next Special - countdownPol:Start(polEnergyRate) voicePol:Schedule(polEnergyRate - 6.5, "158093") --shot if self:IsSpellCaster() then voicePol:Schedule(polEnergyRate - 0.5, "stopcast") @@ -249,11 +238,9 @@ function mod:SPELL_CAST_START(args) specWarnInterruptingShout:Play("stopcast") if not self:IsMythic() and self.vb.PulverizeCount == 0 then timerPulverizeCD:Start(polEnergyRate+1)--Next Special - countdownPol:Start(polEnergyRate+1) voicePol:Schedule(polEnergyRate + 1 - 6.5, "157952") --pulverize else--On mythic, there is no longer ability than other 2, since 84 is more divisible by 3 than 100 is timerPulverizeCD:Start(polEnergyRate)--Next Special - countdownPol:Start(polEnergyRate) voicePol:Schedule(polEnergyRate - 6.5, "157952") --pulverize end elseif spellId == 158200 then @@ -261,7 +248,6 @@ function mod:SPELL_CAST_START(args) self.vb.QuakeCount = self.vb.QuakeCount + 1 specWarnQuake:Show(self.vb.QuakeCount) timerWhirlwindCD:Start(PhemosEnergyRate, self.vb.WWCount+1) - countdownPhemos:Start(PhemosEnergyRate) voicePhemos:Schedule(PhemosEnergyRate - 6.5, "whirlwind")--Probably get this sound file renamed to "whirlwind" in 7.0 elseif spellId == 157952 then--Pulverize first cast that needs range finder self.vb.PulverizeCount = self.vb.PulverizeCount + 1 @@ -300,7 +286,6 @@ function mod:SPELL_AURA_APPLIED(args) self.vb.arcaneCast = self.vb.arcaneCast + 1 local cooldown = arcaneVTimers[self.vb.arcaneCast] timerArcaneVolatilityCD:Start(cooldown) - countdownArcaneVolatility:Start(cooldown) end if args:IsPlayer() then specWarnArcaneVolatility:Show() @@ -334,7 +319,6 @@ function mod:SPELL_AURA_REFRESH(args) self.vb.arcaneCast = self.vb.arcaneCast + 1 local cooldown = arcaneVTimers[self.vb.arcaneCast] timerArcaneVolatilityCD:Start(cooldown) - countdownArcaneVolatility:Start(cooldown) end if args:IsPlayer() then specWarnArcaneVolatility:Show() @@ -372,7 +356,6 @@ function mod:SPELL_CAST_SUCCESS(args) self.vb.PulverizeCount = 0 specWarnPulverize:Show() timerShieldChargeCD:Start(polEnergyRate)--Next Special - countdownPol:Start(polEnergyRate) voicePol:Play("scatter") voicePol:Schedule(polEnergyRate-6.5, "158134") if self.Options.RangeFrame and not DBM:UnitDebuff("player", arcaneDebuff) then--Show range 3 for everyone, unless have arcane debuff, then you already have range 8 showing everyone that's more important