feature mouseuse and attempt to fix stopattack

This commit is contained in:
Jrc13245
2026-03-06 19:43:36 -05:00
parent 34190ccbd8
commit 17f28dcdfd
3 changed files with 35 additions and 2 deletions
+10 -1
View File
@@ -111,7 +111,16 @@ local StartAttack = function(msg)
end
local StopAttack = function(msg)
if CleveRoids.CurrentSpell.autoAttack and UnitExists("target") then
local isAttacking = CleveRoids.CurrentSpell.autoAttack
if not isAttacking then
-- Fallback: check action bar state via IsCurrentAction
-- (PLAYER_ENTER_COMBAT event may not have fired yet in same frame)
local slot = CleveRoids.GetProxyActionSlot(CleveRoids.Localized.Attack)
if slot and IsCurrentAction(slot) then
isAttacking = true
end
end
if isAttacking and UnitExists("target") then
AttackTarget()
CleveRoids.CurrentSpell.autoAttack = false
end
+24 -1
View File
@@ -2554,6 +2554,22 @@ function CleveRoids.DoWithConditionals(msg, hook, fixEmptyTargetFunc, targetBefo
end
end
-- [mouseuse] modifier: auto-click the AOE targeting circle at cursor position
if conditionals.mouseuse and SpellIsTargeting() then
local wasAttacking = CleveRoids.CurrentSpell.autoAttack
CameraOrSelectOrMoveStart()
CameraOrSelectOrMoveStop()
-- CameraOrSelectOrMoveStart can start auto-attack as a side effect.
-- Stop it immediately if it wasn't active before.
if not wasAttacking then
local slot = CleveRoids.GetProxyActionSlot(CleveRoids.Localized.Attack)
if slot and CleveRoids.Hooks.IsCurrentAction(slot) then
AttackTarget()
CleveRoids.CurrentSpell.autoAttack = false
end
end
end
if needRetarget then
TargetLastTarget()
end
@@ -2930,7 +2946,14 @@ end
-- PERFORMANCE: Module-level actions to avoid closure allocation per call
local function _stopAttackAction()
if CleveRoids.CurrentSpell.autoAttack and UnitExists("target") then
local isAttacking = CleveRoids.CurrentSpell.autoAttack
if not isAttacking then
local slot = CleveRoids.GetProxyActionSlot(CleveRoids.Localized.Attack)
if slot and CleveRoids.Hooks.IsCurrentAction(slot) then
isAttacking = true
end
end
if isAttacking and UnitExists("target") then
AttackTarget()
CleveRoids.CurrentSpell.autoAttack = false
end
+1
View File
@@ -170,6 +170,7 @@ CleveRoids.ignoreKeywords = {
_operators = true, -- Metadata for AND/OR operator tracking
_groups = true, -- Grouped conditional values for AND/OR evaluation
multiscan = true, -- Processed before Keywords loop (target resolution)
mouseuse = true, -- Post-cast modifier: auto-click AOE targeting circle at cursor
}
-- TODO: Localize?