from retail

This commit is contained in:
NoM0Re
2025-01-23 18:30:22 +01:00
parent 8dcb62ec81
commit e1e0744ecf
20 changed files with 433 additions and 81 deletions
+31 -18
View File
@@ -150,7 +150,7 @@ Private.ExecEnv.BossMods.DBM = {
end
end
if self.nextExpire then
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, self.nextExpire - now, self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, self.nextExpire - now, self)
end
end,
@@ -214,11 +214,11 @@ Private.ExecEnv.BossMods.DBM = {
WeakAuras.ScanEvents("BossMod_TimerStart", timerId)
end
if self.nextExpire == nil then
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, expirationTime - now, self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, expirationTime - now, self)
self.nextExpire = expirationTime
elseif expirationTime < self.nextExpire then
timer:CancelTimer(self.recheckTimer)
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, expirationTime - now, self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, expirationTime - now, self)
self.nextExpire = expirationTime
end
elseif event == "DBM_TimerStop" then
@@ -261,11 +261,11 @@ Private.ExecEnv.BossMods.DBM = {
WeakAuras.ScanEvents("BossMod_TimerResume", timerId)
end
if self.nextExpire == nil then
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, bar.expirationTime - GetTime(), self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, bar.expirationTime - GetTime(), self)
self.nextExpire = bar.expirationTime
elseif bar.expirationTime < self.nextExpire then
timer:CancelTimer(self.recheckTimer)
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, bar.expirationTime - GetTime(), self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, bar.expirationTime - GetTime(), self)
self.nextExpire = bar.expirationTime
end
end
@@ -278,11 +278,11 @@ Private.ExecEnv.BossMods.DBM = {
bar.duration = duration
bar.expirationTime = expirationTime
if self.nextExpire == nil then
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, bar.expirationTime - now, self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, bar.expirationTime - now, self)
self.nextExpire = expirationTime
elseif self.nextExpire == nil or expirationTime < self.nextExpire then
timer:CancelTimer(self.recheckTimer)
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, bar.expirationTime - now, self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, bar.expirationTime - now, self)
self.nextExpire = expirationTime
end
end
@@ -290,6 +290,16 @@ Private.ExecEnv.BossMods.DBM = {
if self.isGeneric then
WeakAuras.ScanEvents("BossMod_TimerUpdate", timerId)
end
elseif event == "DBM_TimerUpdateIcon" then
local timerId, icon = ...
local bar = self.bars[timerId]
if bar then
bar.icon = icon
end
WeakAuras.ScanEvents("DBM_TimerUpdateIcon", timerId)
if self.isGeneric then
WeakAuras.ScanEvents("BossMod_TimerUpdateIcon", timerId)
end
elseif event == "DBM_SetStage" or event == "DBM_Pull" or event == "DBM_Wipe" or event == "DBM_Kill" then
WeakAuras.ScanEvents("DBM_SetStage")
if self.isGeneric then
@@ -314,6 +324,7 @@ Private.ExecEnv.BossMods.DBM = {
self:RegisterCallback("DBM_TimerPause")
self:RegisterCallback("DBM_TimerResume")
self:RegisterCallback("DBM_TimerUpdate")
self:RegisterCallback("DBM_TimerUpdateIcon")
end,
RegisterMessage = function(self)
@@ -338,7 +349,7 @@ Private.ExecEnv.BossMods.DBM = {
ScheduleCheck = function(self, fireTime)
if not self.scheduled_scans[fireTime] then
self.scheduled_scans[fireTime] = timer:ScheduleTimer(self.DoScan, fireTime - GetTime(), self, fireTime)
self.scheduled_scans[fireTime] = timer:ScheduleTimerFixed(self.DoScan, fireTime - GetTime(), self, fireTime)
end
end
}
@@ -443,7 +454,8 @@ Private.event_prototypes["DBM Timer"] = {
type = "addons",
events = {},
internal_events = {
"DBM_TimerStart", "DBM_TimerStop", "DBM_TimerUpdate", "DBM_TimerForce", "DBM_TimerResume", "DBM_TimerPause"
"DBM_TimerStart", "DBM_TimerStop", "DBM_TimerUpdate", "DBM_TimerForce", "DBM_TimerResume", "DBM_TimerPause",
"DBM_TimerUpdateIcon"
},
force_events = "DBM_TimerForce",
name = L["DBM Timer"],
@@ -530,7 +542,7 @@ Private.event_prototypes["DBM Timer"] = {
state.changed = true
return true
end
elseif event == "DBM_TimerUpdate" then
elseif event == "DBM_TimerUpdate" or event == "DBM_TimerUpdateIcon" then
local changed
for timerId, bar in pairs(Private.ExecEnv.BossMods.DBM:GetAllTimers()) do
if Private.ExecEnv.BossMods.DBM:TimerMatches(timerId, triggerText, triggerTextOperator, triggerSpellId, counter, triggerId, triggerDbmType) then
@@ -806,7 +818,7 @@ Private.ExecEnv.BossMods.BigWigs = {
end
if self.nextExpire then
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, self.nextExpire - now, self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, self.nextExpire - now, self)
end
end,
@@ -846,11 +858,11 @@ Private.ExecEnv.BossMods.BigWigs = {
WeakAuras.ScanEvents("BossMod_TimerStart", text)
end
if self.nextExpire == nil then
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, expirationTime - now, self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, expirationTime - now, self)
self.nextExpire = expirationTime
elseif expirationTime < self.nextExpire then
timer:CancelTimer(self.recheckTimer)
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, expirationTime - now, self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, expirationTime - now, self)
self.nextExpire = expirationTime
end
elseif event == "BigWigs_StopBar" then
@@ -892,10 +904,10 @@ Private.ExecEnv.BossMods.BigWigs = {
WeakAuras.ScanEvents("BossMod_TimerResume", text)
end
if self.nextExpire == nil then
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, bar.expirationTime - GetTime(), self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, bar.expirationTime - GetTime(), self)
elseif bar.expirationTime < self.nextExpire then
timer:CancelTimer(self.recheckTimer)
self.recheckTimer = timer:ScheduleTimer(self.RecheckTimers, bar.expirationTime - GetTime(), self)
self.recheckTimer = timer:ScheduleTimerFixed(self.RecheckTimers, bar.expirationTime - GetTime(), self)
self.nextExpire = bar.expirationTime
end
end
@@ -982,7 +994,7 @@ Private.ExecEnv.BossMods.BigWigs = {
ScheduleCheck = function(self, fireTime)
if not self.scheduled_scans[fireTime] then
self.scheduled_scans[fireTime] = timer:ScheduleTimer(self.DoScan, fireTime - GetTime(), self, fireTime)
self.scheduled_scans[fireTime] = timer:ScheduleTimerFixed(self.DoScan, fireTime - GetTime(), self, fireTime)
end
end
}
@@ -1478,7 +1490,8 @@ Private.event_prototypes["Boss Mod Timer"] = {
type = "addons",
events = {},
internal_events = {
"BossMod_TimerStart", "BossMod_TimerStop", "BossMod_TimerUpdate", "BossMod_TimerForce", "BossMod_TimerResume", "BossMod_TimerPause"
"BossMod_TimerStart", "BossMod_TimerStop", "BossMod_TimerUpdate", "BossMod_TimerForce", "BossMod_TimerResume",
"BossMod_TimerPause", "BossMod_TimerUpdateIcon"
},
force_events = "BossMod_TimerForce",
name = L["Boss Mod Timer"],
@@ -1566,7 +1579,7 @@ Private.event_prototypes["Boss Mod Timer"] = {
state.changed = true
return true
end
elseif event == "BossMod_TimerUpdate" then
elseif event == "BossMod_TimerUpdate" or event == "BossMod_TimerUpdateIcon" then
local changed
for timerId, bar in pairs(Private.ExecEnv.BossMods.Generic:GetAllTimers()) do
if Private.ExecEnv.BossMods.Generic:TimerMatchesGeneric(timerId, triggerText, triggerTextOperator, triggerSpellId, counter) then