Skip to content

Commit

Permalink
Week whatever this is Visions update
Browse files Browse the repository at this point in the history
 - Added Gift of the titans announce and tracking timer
 - Added special warning to interrupt tainted polymorph, but if you can't interrupt or interrupt warning is disabled, it shows the general cast announce instead.
 - Added Blight eruption warning and yell, if you are in a group and are affected by Corrupted blight, to run out.
 - Removed the Corrupted blight yell, since that was wrong place for it to be, blight eruption's new stuff handles it now.
 - Removed tainted polymorph and Chains of servitude timers. These are clearly abilities used based on health or other scripting that isn't time based.
 - Improved throttling code for similar warning aggregration in event a group starts pulling some crazy large pulls (or even more crazy, splits up) to reduce chance of spam from similar warning types
 - Added run away special warning to blade flourish
 - Added a general announce for Entropic Missiles
 - Added a general announce for Seek and Destroy
 - Added a general announce to Summon Eye of Chaos
  • Loading branch information
MysticalOS committed Feb 19, 2020
1 parent 2b3a78e commit a0d0904
Show file tree
Hide file tree
Showing 2 changed files with 112 additions and 44 deletions.
31 changes: 26 additions & 5 deletions DBM-Challenges/BfA/NzothVisionOrgrimmar.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ mod.onlyNormal = true

mod:RegisterCombat("scenario", 2212)--2212, 2213 (org, stormwind)

mod:RegisterEvents(
"ZONE_CHANGED_NEW_AREA"
)
--mod:RegisterEvents(
-- "ZONE_CHANGED_NEW_AREA"
--)
mod:RegisterEventsInCombat(
"SPELL_CAST_START 297822 297746 304976 297574 304251 306726 299110 307863 300351 300388 304101 304282 306001 306199 303589 305875 306828 306617 300388 296537 305378 298630 298033 305236",
"SPELL_AURA_APPLIED 311390 315385 316481 311641 299055",
Expand All @@ -18,13 +18,15 @@ mod:RegisterEventsInCombat(
"SPELL_PERIODIC_DAMAGE 303594",
"SPELL_PERIODIC_MISSED 303594",
"UNIT_DIED",
"ENCOUNTER_START"
"ENCOUNTER_START",
"UNIT_AURA player"
)

--TODO, notable trash or affix warnings
--TODO, maybe add https://ptr.wowhead.com/spell=298510/aqiri-mind-toxin
--TODO, improve https://ptr.wowhead.com/spell=306001/explosive-leap warning if can get throw target
--TODO, can https://ptr.wowhead.com/spell=305875/visceral-fluid be dodged? If so upgrade the warning
local warnGiftoftheTitans = mod:NewSpellAnnounce(313698, 1)
local warnScorchedFeet = mod:NewSpellAnnounce(315385, 4)
--Extra Abilities (used by main boss and the area LTs)
local warnCriesoftheVoid = mod:NewCastAnnounce(304976, 4)
Expand Down Expand Up @@ -73,6 +75,8 @@ local specWarnTouchoftheAbyss = mod:NewSpecialWarningInterrupt(298033, "HasInte
local specWarnVenomBolt = mod:NewSpecialWarningInterrupt(305236, "HasInterrupt", nil, nil, 1, 2)
local specWarnShockwave = mod:NewSpecialWarningDodge(298630, nil, nil, nil, 2, 2)

--General
local timerGiftoftheTitan = mod:NewBuffFadesTimer(20, 313698, nil, nil, nil, 5)
--Thrall
local timerSurgingDarknessCD = mod:NewCDTimer(20.6, 297822, nil, nil, nil, 3)
local timerSeismicSlamCD = mod:NewCDTimer(12.1, 297746, nil, nil, nil, 3)
Expand Down Expand Up @@ -279,16 +283,18 @@ function mod:UNIT_DIED(args)
end
end

--[[
function mod:ZONE_CHANGED_NEW_AREA()
local uiMap = C_Map.GetBestMapForUnit("player")
if started and uiMap ~= 1469 then
DBM:EndCombat(self, true)
started = false
elseif not uiMap and uiMap == 1469 then
elseif not started and uiMap == 1469 then
self:StartCombat(self, 0, "LOADING_SCREEN_DISABLED")
started = true
end
end
--]]

function mod:ENCOUNTER_START(encounterID)
if encounterID == 2332 and self:IsInCombat() then
Expand All @@ -303,3 +309,18 @@ function mod:ENCOUNTER_START(encounterID)
--end
end
end

do
--In blizzards infinite wisdom, Gift of the Titans isn't in combat log
local titanWarned = false
function mod:UNIT_AURA(uId)
local hasTitan = DBM:UnitBuff("player", 313698)
if hasTitan and not titanWarned then
warnGiftoftheTitans:Show()
timerGiftoftheTitan:Start()
titanWarned = true
elseif not hasTitan and titanWarned then
titanWarned = false
end
end
end
125 changes: 86 additions & 39 deletions DBM-Challenges/BfA/NzothVisionStormwind.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,34 @@ mod.onlyNormal = true

mod:RegisterCombat("scenario", 2213)--2212, 2213 (org, stormwind)

mod:RegisterEvents(
"ZONE_CHANGED_NEW_AREA"
)
--mod:RegisterEvents(
-- "ZONE_CHANGED_NEW_AREA"
--)
mod:RegisterEventsInCombat(
"SPELL_CAST_START 308278 309819 309648 298691 308669 308366 308406 311456 296911 296537 308481 308575 298033 308375 309882 309671",
"SPELL_CAST_START 308278 309819 309648 298691 308669 308366 308406 311456 296911 296537 308481 308575 298033 308375 309882 309671 308305 311399",
"SPELL_AURA_APPLIED 311390 315385 316481 311641 308380 308366 308265",
"SPELL_AURA_APPLIED_DOSE 311390",
"SPELL_CAST_SUCCESS 309035",
"SPELL_PERIODIC_DAMAGE 312121 296674 308807",
"SPELL_PERIODIC_MISSED 312121 296674 308807",
"UNIT_DIED",
"ENCOUNTER_START",
"UNIT_SPELLCAST_SUCCEEDED"
"UNIT_SPELLCAST_SUCCEEDED",
"UNIT_AURA player"
)

--TODO, detect engaging of end bosses for start timers
--TODO, notable trash or affix warnings
--TODO, detect hard modes on end boss
--TODO, verify Explosive Ordnance cast ID
--TODO, proper place to stop dark gaze timer
--TODO, verify if scenario is appropriate combat tactic for this mod
--TODO, verify all the Affix warnings using correct spellIds/events
--TODO, maybe add https://ptr.wowhead.com/spell=292021/madness-leaden-foot#see-also-other affix? just depends on warning to stop moving can be counter to a stacked affix
--TODO, see if target scanning will work on Entropic Leap
--General
local warnGiftoftheTitans = mod:NewSpellAnnounce(313698, 1)
local warnScorchedFeet = mod:NewSpellAnnounce(315385, 4)
--Extra Abilities (used by main boss and the area LTs)
local warnTaintedPolymorph = mod:NewCastAnnounce(309648, 3)
local warnEntropicMissiles = mod:NewSpellAnnounce(309373, 3)
local warnExplosiveOrdnance = mod:NewSpellAnnounce(305672, 3)
local warnSeekAndDestroy = mod:NewSpellAnnounce(311570, 3)
local warnSummonEyeofChaos = mod:NewSpellAnnounce(308681, 2)
--Other notable abilities by mini bosses/trash
local warnEntropicLeap = mod:NewCastAnnounce(308406, 3)
local warnConvert = mod:NewTargetNoFilterAnnounce(308380, 3)
Expand All @@ -58,30 +57,37 @@ local specWarnVoidEruption = mod:NewSpecialWarningMoveTo(309819, nil, nil, nil,
local specWarnChainsofServitude = mod:NewSpecialWarningRun(298691, nil, nil, nil, 4, 2)
local specWarnDarkGaze = mod:NewSpecialWarningLookAway(308669, false, nil, 2, 2, 2)
local specWarnForgeBreath = mod:NewSpecialWarningDodge(309671, nil, nil, nil, 2, 2)
local specWarnTaintedPolymorph = mod:NewSpecialWarningInterrupt(309648, "HasInterrupt", nil, nil, 1, 2)
--Other notable abilities by mini bosses/trash
local specWarnAgonizingTorment = mod:NewSpecialWarningInterrupt(308366, "HasInterrupt", nil, nil, 1, 2)
local specWarnEntropicMissiles = mod:NewSpecialWarningInterrupt(309035, "HasInterrupt", nil, nil, 1, 2)
local specWarnMentalAssault = mod:NewSpecialWarningInterrupt(296537, "HasInterrupt", nil, nil, 1, 2)
local specWarnShadowShift = mod:NewSpecialWarningInterrupt(308575, "HasInterrupt", nil, nil, 1, 2)
local specWarnTouchoftheAbyss = mod:NewSpecialWarningInterrupt(298033, "HasInterrupt", nil, nil, 1, 2)
local specWarnPsychicScream = mod:NewSpecialWarningInterrupt(308375, "HasInterrupt", nil, nil, 1, 2)
local specWarnBladeFlourish = mod:NewSpecialWarningRun(311399, nil, nil, nil, 4, 2)
local specWarnRoaringBlast = mod:NewSpecialWarningDodge(311456, nil, nil, nil, 2, 2)
local specWarnChaosBreath = mod:NewSpecialWarningDodge(296911, nil, nil, nil, 2, 2)
local specWarnAgonizingTormentD = mod:NewSpecialWarningDispel(308366, "RemoveCurse", nil, nil, 1, 2)
local specWarnCorruptedBlight = mod:NewSpecialWarningDispel(308265, nil, nil, nil, 1, 2)
local yellCorruptedBlight = mod:NewYell(308265)
local specWarnCorruptedBlight = mod:NewSpecialWarningDispel(308265, "RemoveDisease", nil, 2, 1, 2)
local specWarnBlightEruption = mod:NewSpecialWarningMoveAway(308305, nil, nil, nil, 1, 2)
local yellBlightEruption = mod:NewYell(308305)
local specWarnRiftStrike = mod:NewSpecialWarningDodge(308481, nil, nil, nil, 2, 2)

--General
local timerGiftoftheTitan = mod:NewBuffFadesTimer(20, 313698, nil, nil, nil, 5)
--Alleria Windrunner
local timerDarkenedSkyCD = mod:NewCDTimer(13.3, 308278, nil, nil, nil, 3)
local timerVoidEruptionCD = mod:NewCDTimer(27.9, 309819, nil, nil, nil, 2)
--Extra Abilities (used by Alleria and the area LTs)
local timerTaintedPolymorphCD = mod:NewAITimer(21, 309648, nil, nil, nil, 3, nil, DBM_CORE_MAGIC_ICON)
--local timerTaintedPolymorphCD = mod:NewAITimer(21, 309648, nil, nil, nil, 3, nil, DBM_CORE_MAGIC_ICON)
--local timerExplosiveOrdnanceCD = mod:NewCDTimer(20.7, 305672, nil, nil, nil, 3)--20-25 (on alleria anyways, forgot to log other guy)
local timerChainsofServitudeCD = mod:NewCDTimer(32.9, 298691, nil, nil, nil, 2)
--local timerChainsofServitudeCD = mod:NewCDTimer(32.9, 298691, nil, nil, nil, 2)

mod:AddInfoFrameOption(307831, true)

--Antispam 1: Boss throttles, 2: GTFOs, 3: Dodge stuff on ground. 4: Face Away/special action. 5: Dodge Shockwaves

local started = false
local playerName = UnitName("player")
mod.vb.TherumCleared = false
Expand Down Expand Up @@ -117,13 +123,18 @@ function mod:SPELL_CAST_START(args)
specWarnVoidEruption:Play("findshelter")
timerVoidEruptionCD:Start()
elseif spellId == 309648 then
warnTaintedPolymorph:Show()
timerTaintedPolymorphCD:Start()
if self.Options.SpecWarn309648interrupt and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnTaintedPolymorph:Show(args.sourceName)
specWarnTaintedPolymorph:Play("kickcast")
else
warnTaintedPolymorph:Show()
end
--timerTaintedPolymorphCD:Start()
elseif spellId == 298691 then
specWarnChainsofServitude:Show()
specWarnChainsofServitude:Play("justrun")
local cid = args:GetSrcCreatureID()
timerChainsofServitudeCD:Start(cid == 152718 and 32.9 or 20.8)
--local cid = args:GetSrcCreatureID()
--timerChainsofServitudeCD:Start(cid == 152718 and 32.9 or 20.8)
elseif spellId == 308669 and self:AntiSpam(5, 4) then
specWarnDarkGaze:Show(args.sourceName)
specWarnDarkGaze:Play("turnaway")
Expand All @@ -148,20 +159,27 @@ function mod:SPELL_CAST_START(args)
end
elseif spellId == 308406 then
warnEntropicLeap:Show()
elseif spellId == 311456 then
elseif spellId == 311456 and self:AntiSpam(3, 5) then
specWarnRoaringBlast:Show()
specWarnRoaringBlast:Play("shockwave")
elseif spellId == 296911 then
elseif spellId == 296911 and self:AntiSpam(3, 5) then
specWarnChaosBreath:Show()
specWarnChaosBreath:Play("shockwave")
elseif spellId == 309671 then
elseif spellId == 309671 and self:AntiSpam(3, 5) then
specWarnForgeBreath:Show()
specWarnForgeBreath:Play("shockwave")
elseif spellId == 308481 and self:AntiSpam(5, 3) then
specWarnRiftStrike:Show()
specWarnRiftStrike:Play("watchstep")
elseif spellId == 309882 and self:AntiSpam(5, 3) then
warnBrutalSmash:Show()
elseif spellId == 308305 and GetNumGroupMembers() > 1 and DBM:UnitDebuff("player", 308265) then
specWarnBlightEruption:Show()
specWarnBlightEruption:Play("runout")
yellBlightEruption:Yell()
elseif spellId == 311399 then
specWarnBladeFlourish:Show()
specWarnBladeFlourish:Play("justrun")
end
end

Expand Down Expand Up @@ -233,62 +251,91 @@ function mod:UNIT_DIED(args)
if cid == 152718 then--Alleria Windrunner
timerDarkenedSkyCD:Stop()
timerVoidEruptionCD:Stop()
timerTaintedPolymorphCD:Stop()
--timerTaintedPolymorphCD:Stop()
--timerExplosiveOrdnanceCD:Stop()
timerChainsofServitudeCD:Stop()
--timerChainsofServitudeCD:Stop()
DBM:EndCombat(self)
started = false
elseif cid == 156577 then--Therum Deepforge
--timerExplosiveOrdnanceCD:Stop()
self.vb.TherumCleared = true
elseif cid == 153541 then--slavemaster-ulrok
timerChainsofServitudeCD:Stop()
--timerChainsofServitudeCD:Stop()
self.vb.UlrokCleared = true
elseif cid == 158157 then--Overlord Mathias Shaw
self.vb.ShawCleared = true
elseif cid == 158035 then--Magister Umbric
timerTaintedPolymorphCD:Stop()
--timerTaintedPolymorphCD:Stop()
self.vb.UmbricCleared = true
end
end

--[[
function mod:ZONE_CHANGED_NEW_AREA()
local uiMap = C_Map.GetBestMapForUnit("player")
if started and uiMap ~= 1470 then
DBM:EndCombat(self, true)
started = false
elseif not uiMap and uiMap == 1470 then
elseif not started and uiMap == 1470 then
self:StartCombat(self, 0, "LOADING_SCREEN_DISABLED")
started = true
end
end
--]]

function mod:ENCOUNTER_START(encounterID)
if encounterID == 2338 and self:IsInCombat() then
timerDarkenedSkyCD:Start(4.9)
timerVoidEruptionCD:Start(20.5)
if self.vb.TherumCleared then
--if self.vb.TherumCleared then
--timerExplosiveOrdnanceCD:Start(9.7)
end
if self.vb.UlrokCleared then
timerChainsofServitudeCD:Start(11)
end
if self.vb.UmbricCleared then
timerTaintedPolymorphCD:Start(1)
end
--end
--if self.vb.UlrokCleared then
-- timerChainsofServitudeCD:Start(11)
--end
--if self.vb.UmbricCleared then
-- timerTaintedPolymorphCD:Start(27.9)
--end
end
end

--None of these boss abilities are in combat log
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
if (spellId == 305708 or spellId == 312260) and self:AntiSpam(3, 1) then--Explosive Ordnance (not in combat log)
if (spellId == 305708 or spellId == 312260) and self:AntiSpam(2, 1) then
self:SendSync("ExplosiveOrd")
elseif spellId == 309035 and self:AntiSpam(2, 1) then
self:SendSync("EntropicMissiles")
elseif spellId == 311530 and self:AntiSpam(2, 1) then
self:SendSync("SeekandDestroy")
elseif spellId == 308681 and self:AntiSpam(2, 1) then
self:SendSync("SummonEye")
end
end

do
--Gift of the Titans isn't in combat log either
local titanWarned = false
function mod:UNIT_AURA(uId)
local hasTitan = DBM:UnitBuff("player", 313698)
if hasTitan and not titanWarned then
warnGiftoftheTitans:Show()
timerGiftoftheTitan:Start()
titanWarned = true
elseif not hasTitan and titanWarned then
titanWarned = false
end
end
end

function mod:OnSync(msg, cid)
function mod:OnSync(msg)
if not self:IsInCombat() then return end
if cid and msg == "ExplosiveOrd" then
if msg == "ExplosiveOrd" then
warnExplosiveOrdnance:Show()
--timerExplosiveOrdnanceCD:Start(cid == 156577 and 11.3 or 30.5)
elseif msg == "EntropicMissiles" then
warnEntropicMissiles:Show()
elseif msg == "SeekandDestroy" then
warnSeekAndDestroy:Show()
elseif msg == "SummonEye" then
warnSummonEyeofChaos:Show()
end
end

0 comments on commit a0d0904

Please sign in to comment.