mirror of
https://github.com/brues-code/SuperCleveRoidMacros.git
synced 2026-09-16 03:38:00 +00:00
Delete the Lua Carnage refresh
Carnage refreshes the caster's Rip and Rake when Ferocious Bite procs it, and 1.12 tells an observing caster nothing about it -- no packet carries a debuff's new remaining duration on another unit. So this addon inferred the proc: track every Ferocious Bite cast with its target, watch PLAYER_COMBO_POINTS for combo points failing to drop to 0 within 0.5s, then rewrite the stored Rip and Rake records and push the new durations into pfUI's tables by hand. Roughly 570 lines across three files, and it could only ever be a guess, because the roll that decides whether Carnage procs is server-side. ClassicAPI does it in the DLL (src/turtle/Carnage.cpp), roll-gated, so expirationTime is simply correct and there is nothing to infer. Removed with it: ApplyCarnageRefresh, the Ferocious Bite cast tracking on both the UNIT_CASTEVENT and nampower paths, the avoided-Bite clearing in the miss handler, the Rip/Rake cast snapshots on the UNIT_CASTEVENT and SPELL_GO paths, the Rake landed/failed verification hooks, the proc detector in ComboPointTracker, and lastRipCast / lastRakeCast / RipSpellIDs / RakeSpellIDs, which had no readers left afterwards. carnageDurationOverrides goes too, and it never worked: every reference to it was a write, a clear, or the 30-second sweep in Core.lua's cleanup. Nothing ever read it to change a duration. FerociousBiteSpellIDs stays -- the combo-point snapshot still needs to know a finisher when it sees one.
This commit is contained in:
@@ -4260,20 +4260,6 @@ function CleveRoids.OnUpdate(self)
|
||||
if (time - CR.lastCleanupTime) >= CR.CLEANUP_INTERVAL then
|
||||
CR.lastCleanupTime = time
|
||||
|
||||
-- MEMORY: Clean up carnageDurationOverrides older than 30 seconds
|
||||
-- PERFORMANCE: Use next() directly instead of pairs() to avoid iterator allocation
|
||||
local carnageOverrides = CR.carnageDurationOverrides
|
||||
if carnageOverrides then
|
||||
local spellID, data = next(carnageOverrides)
|
||||
while spellID do
|
||||
local nextID = next(carnageOverrides, spellID)
|
||||
if data.timestamp and (time - data.timestamp) > 30 then
|
||||
carnageOverrides[spellID] = nil
|
||||
end
|
||||
spellID, data = nextID, nextID and carnageOverrides[nextID]
|
||||
end
|
||||
end
|
||||
|
||||
-- MEMORY: Clean up old ComboPointTracking entries (older than 60 seconds)
|
||||
-- PERFORMANCE: Use next() directly instead of pairs() to avoid iterator allocation
|
||||
local comboTracking = CR.ComboPointTracking
|
||||
|
||||
Reference in New Issue
Block a user