diff --git a/ComboPointTracker.lua b/ComboPointTracker.lua index 754ad97..c96afc5 100644 --- a/ComboPointTracker.lua +++ b/ComboPointTracker.lua @@ -206,7 +206,8 @@ function CleveRoids.TrackComboPointCast(spellName) combo_points = comboPoints, duration = duration, cast_time = currentTime, - target = UnitName("target") or "Unknown" + target = UnitName("target") or "Unknown", + confirmed = false -- Will be set to true by SPELLCAST_START } -- Also store in spell_tracking for integration with existing system @@ -414,6 +415,11 @@ function Extension.OnSpellcastStart() local spellName = arg1 if spellName and CleveRoids.IsComboScalingSpell(spellName) then CleveRoids.TrackComboPointCast(spellName) + + -- Mark this tracking as confirmed (actual cast, not just evaluation) + if CleveRoids.ComboPointTracking[spellName] then + CleveRoids.ComboPointTracking[spellName].confirmed = true + end end end @@ -436,7 +442,8 @@ function Extension.OnSpellcastFailed() if spellName and CleveRoids.ComboPointTracking[spellName] then local tracking = CleveRoids.ComboPointTracking[spellName] if tracking and (GetTime() - tracking.cast_time) < 1 then - -- Recent cast failed, clear it + -- Recent cast failed, clear confirmed flag and the tracking + tracking.confirmed = false CleveRoids.ComboPointTracking[spellName] = nil end end diff --git a/Compatibility/pfUI.lua b/Compatibility/pfUI.lua index 0b1fbb2..ef26928 100644 --- a/Compatibility/pfUI.lua +++ b/Compatibility/pfUI.lua @@ -155,14 +155,22 @@ function Extension.HookPfUILibdebuff() -- Use name-based tracking which is populated BEFORE pfUI's AddEffect if CleveRoids.ComboPointTracking and CleveRoids.ComboPointTracking[effect] then local tracking = CleveRoids.ComboPointTracking[effect] - if tracking.duration and (GetTime() - tracking.cast_time) < 0.5 then + -- Only use tracking if it's confirmed (actual cast, not just evaluation) + if tracking.duration and tracking.confirmed and (GetTime() - tracking.cast_time) < 0.5 then duration = tracking.duration + -- Clear confirmed flag after use to prevent reuse + tracking.confirmed = false if CleveRoids.debug then DEFAULT_CHAT_FRAME:AddMessage( - string.format("|cff00ff00[pfUI AddEffect Hook]|r Overriding %s duration to %ds (from name tracking)", + string.format("|cff00ff00[pfUI AddEffect Hook]|r Overriding %s duration to %ds (from confirmed tracking)", effect, duration) ) end + elseif CleveRoids.debug and tracking.duration and not tracking.confirmed then + DEFAULT_CHAT_FRAME:AddMessage( + string.format("|cffaaaa00[pfUI AddEffect Hook]|r Ignoring %s tracking (not confirmed - evaluation only)", + effect) + ) end end end