added bypasses for rest of target scans too. all off by default as i do not encourage using these unless you are A, only DBM user in raid on 4.50+ (like maybe what will happen when running it at level 85). or b. your entire raid has higher than 500ms latency (this is unrealistic, if anyone is under 500ms then adjusting latency check should make the sync method work)
@@ -54,6 +54,7 @@
mod:AddBoolOption("EmpoweredFlameIcon", true)
mod:AddBoolOption("ActivePrinceIcon", false)
mod:AddBoolOption("RangeFrame", true)
+mod:AddBoolOption("BypassLatencyCheck", false)--Use old scan method without syncing or latency check (less reliable but not dependant on other DBM users in raid)
local activePrince
local glitteringSparksTargets = {}
@@ -89,6 +90,23 @@
end
end
+function mod:OldShockVortexTarget()
+ local targetname = self:GetBossTarget(37970)
+ if not targetname then return end
+ warnShockVortex:Show(targetname)
+ if targetname == UnitName("player") then
+ specWarnVortex:Show()
+ elseif targetname then
+ local uId = DBM:GetRaidUnitId(targetname)
+ if uId then
+ local inRange = CheckInteractDistance(uId, 2)
+ if inRange then
+ specWarnVortexNear:Show()
+ end
+ end
+ end
+end
+
function mod:HideRange()
DBM.RangeCheck:Hide()
end
@@ -109,8 +127,12 @@
function mod:SPELL_CAST_START(args)
if args:IsSpellID(72037) then -- Shock Vortex
+ timerShockVortex:Start()
+ if self.Options.BypassLatencyCheck then
+ self:ScheduleMethod(0.1, "OldShockVortexTarget")
+ else
self:ScheduleMethod(0.1, "ShockVortexTarget")
- timerShockVortex:Start()
+ end
elseif args:IsSpellID(72039, 73037, 73038, 73039) then -- Empowered Shock Vortex(73037, 73038, 73039 drycoded from wowhead)
warnEmpoweredShockVortex:Show()
specWarnEmpoweredShockV:Show()
@@ -206,6 +228,7 @@
timerKineticBombCD:Start()
end
elseif msg == "ShockVortex" then
+ if not self.Options.BypassLatencyCheck then
warnShockVortex:Show(target)
if target == UnitName("player") then
specWarnVortex:Show()
@@ -220,3 +243,4 @@
end
end
end
+end
@@ -93,7 +93,7 @@
mod:AddBoolOption("AnnounceValkGrabs", false)
--mod:AddBoolOption("DefileArrow")
mod:AddBoolOption("TrapArrow")
-mod:AddBoolOption("BypassLatencyCheck", false)--More so for debugging than anything. To prove the problem isn't scans it's just latency check failing for some raids that simply have no one running good ping
+mod:AddBoolOption("BypassLatencyCheck", false)--Use old scan method without syncing or latency check (less reliable but not dependant on other DBM users in raid)
local phase = 0
local lastPlagueCast = 0
@@ -67,11 +67,10 @@
mod:AddBoolOption("OozeAdhesiveIcon")
mod:AddBoolOption("GaseousBloatIcon")
mod:AddBoolOption("MalleableGooIcon")
-
mod:AddBoolOption("UnboundPlagueIcon") -- icon on the player with active buff
-
mod:AddBoolOption("YellOnMalleableGoo", true, "announce")
mod:AddBoolOption("YellOnUnbound", true, "announce")
+mod:AddBoolOption("BypassLatencyCheck", false)--Use old scan method without syncing or latency check (less reliable but not dependant on other DBM users in raid)
local warned_preP2 = false
local warned_preP3 = false
@@ -92,7 +91,7 @@
end
end
-function mod:MalleableGooTarget()--. Great for 10 man, but only marks/warns 1 of the 2/3 people in 25 man
+function mod:MalleableGooTarget()
local targetname = self:GetBossTarget(36678)
if not targetname then return end
if mod:LatencyCheck() then--Only send sync if you have low latency.
@@ -100,6 +99,28 @@
end
end
+function mod:OldMalleableGooTarget()
+ local targetname = self:GetBossTarget(36678)
+ if not targetname then return end
+ if self.Options.MalleableGooIcon and mod:LatencyCheck() then
+ self:SetIcon(targetname, 6, 10)
+ end
+ if targetname == UnitName("player") then
+ specWarnMalleableGoo:Show()
+ if self.Options.YellOnMalleableGoo and mod:LatencyCheck() then
+ SendChatMessage(L.YellMalleable, "SAY")
+ end
+ elseif targetname then
+ local uId = DBM:GetRaidUnitId(targetname)
+ if uId then
+ local inRange = CheckInteractDistance(uId, 2)
+ if inRange then
+ specWarnMalleableGooNear:Show()
+ end
+ end
+ end
+end
+
function mod:SPELL_CAST_START(args)
if args:IsSpellID(70351, 71966, 71967, 71968) then
warnUnstableExperimentSoon:Cancel()
@@ -182,9 +203,13 @@
else
timerMalleableGooCD:Start()
end
+ if self.Options.BypassLatencyCheck then
+ self:ScheduleMethod(0.1, "OldMalleableGooTarget")
+ else
self:ScheduleMethod(0.1, "MalleableGooTarget")
end
end
+end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(70447, 72836, 72837, 72838) then--Green Slime
@@ -294,6 +319,7 @@
function mod:OnSync(msg, target)
if msg == "GooOn" then
+ if not self.Options.BypassLatencyCheck then
if self.Options.MalleableGooIcon then
self:SetIcon(target, 6, 10)
end
@@ -312,4 +338,5 @@
end
end
end
+ end
end
\ No newline at end of file
@@ -320,6 +320,7 @@
YellOnUnbound = "Yell on $spell:72856",
specWarnUnboundPlague = "Show special warning for $spell:72856 transfer",
specWarnNextPlageSelf = "Show special warning when you are the next $spell:72856 target",
+ BypassLatencyCheck = "Don't use syncing or latency check for $spell:72295\n(only use this if you're having problems otherwise)"
}
L:SetMiscLocalization{
@@ -356,7 +357,8 @@
specWarnVortexNear = "Show special warning for $spell:72037 near you",
EmpoweredFlameIcon = DBM_CORE_AUTO_ICONS_OPTION_TEXT:format(72040),
ActivePrinceIcon = "Set icon on the empowered Prince (skull)",
- RangeFrame = "Show range frame (12 yards)"
+ RangeFrame = "Show range frame (12 yards)",
+ BypassLatencyCheck = "Don't use syncing or latency check for $spell:72037\n(only use this if you're having problems otherwise)"
}
L:SetMiscLocalization{
@@ -38,6 +38,7 @@
mod:AddBoolOption("SetIconOnShadowCrash", true)
mod:AddBoolOption("SetIconOnLifeLeach", true)
mod:AddBoolOption("CrashArrow")
+mod:AddBoolOption("BypassLatencyCheck", false)--Use old scan method without syncing or latency check (less reliable but not dependant on other DBM users in raid)
function mod:OnCombatStart(delay)
@@ -84,9 +85,45 @@
end
end
+function mod:OldShadowCrashTarget()
+ local targetname = self:GetBossTarget()
+ if not targetname then return end
+ if self.Options.SetIconOnShadowCrash and mod:LatencyCheck() then
+ self:SetIcon(targetname, 8, 10)
+ end
+ warnShadowCrash:Show(targetname)
+ if targetname == UnitName("player") then
+ specWarnShadowCrash:Show(targetname)
+ if self.Options.YellOnShadowCrash and mod:LatencyCheck() then
+ SendChatMessage(L.YellCrash, "SAY")
+ end
+ elseif targetname then
+ local uId = DBM:GetRaidUnitId(targetname)
+ if uId then
+ local inRange = CheckInteractDistance(uId, 2)
+ local x, y = GetPlayerMapPosition(uId)
+ if x == 0 and y == 0 then
+ SetMapToCurrentZone()
+ x, y = GetPlayerMapPosition(uId)
+ end
+ if inRange then
+ specWarnShadowCrashNear:Show()
+ if self.Options.CrashArrow then
+ DBM.Arrow:ShowRunAway(x, y, 15, 5)
+ end
+ end
+ end
+ end
+end
+
+
function mod:SPELL_CAST_SUCCESS(args)
if args:IsSpellID(62660) then -- Shadow Crash
+ if self.Options.BypassLatencyCheck then
+ self:ScheduleMethod(0.1, "OldShadowCrashTarget")
+ else
self:ScheduleMethod(0.1, "ShadowCrashTarget")
+ end
elseif args:IsSpellID(63276) then -- Mark of the Faceless
if self.Options.SetIconOnLifeLeach then
self:SetIcon(args.destName, 7, 10)
@@ -118,6 +155,7 @@
function mod:OnSync(msg, target)
if msg == "CrashOn" then
+ if not self.Options.BypassLatencyCheck then
warnShadowCrash:Show(target)
if self.Options.SetIconOnShadowCrash then
self:SetIcon(target, 8, 10)
@@ -145,4 +183,5 @@
end
end
end
+ end
end
\ No newline at end of file
@@ -443,7 +443,8 @@
YellOnLifeLeech = "Yell on $spell:63276",
YellOnShadowCrash = "Yell on $spell:62660",
hardmodeSpawn = "Show timer for Saronite Animus spawn (hard mode)",
- CrashArrow = "Show DBM arrow when $spell:62660 is near you"
+ CrashArrow = "Show DBM arrow when $spell:62660 is near you",
+ BypassLatencyCheck = "Don't use syncing or latency check for $spell:62660\n(only use this if you're having problems otherwise)"
}
L:SetMiscLocalization{