Skip to content

Conversation

@kphoenix137
Copy link
Collaborator

Repeat Action is a DevilutionX feature that allows the player to "click and hold" to continuously perform an action without needing to click again. This feature has an unfortunate side effect that causes the player to be able to effectively lock on to a target, regardless of its movement. For example, if the target were on the left side of your screen, and you clicked and held while holding a bow to begin shooting at them, and the target Teleported to the right side of your screen, your character will immediately redirect to the target's new position without any effort.

This PR solves that problem by requiring the tile under the cursor to be within a 3x3 area centered on the target to continue repeating action. This is exclusively for mouse and keyboard, as not to interfere with the touch and gamepad control schemes' behavior.

@julealgon
Copy link
Contributor

Wouldn't it make more sense for certain actions to explicitly "break" tracking, such as teleportation or going invisible (hidden etc)?

Otherwise, this would still affect, say, a warrior locked into an advocate in a short space where the advocate could still teleport inside the 3x3 restriction grid.

@kphoenix137
Copy link
Collaborator Author

kphoenix137 commented Dec 11, 2025

Pretty sure it already does that in InvalidateTarget()

@StephenCWills
Copy link
Member

Pretty sure it already does that in InvalidateTarget()

If so, it seems to invalidate your example.

For example, if the target were on the left side of your screen, and you clicked and held while holding a bow to begin shooting at them, and the target Teleported to the right side of your screen, your character will immediately redirect to the target's new position without any effort.

Do we still need this PR? Maybe you were referring to PvP instead of Advocates?

This PR solves that problem by requiring the tile under the cursor to be within a 3x3 area centered on the target to continue repeating action. This is exclusively for mouse and keyboard, as not to interfere with the touch and gamepad control schemes' behavior.

I assume that by "3x3 area", you mean 3 tiles by 3 tiles. I'm concerned what this means for tall enemies, like Gargoyles.

@kphoenix137
Copy link
Collaborator Author

Pretty sure it already does that in InvalidateTarget()

If so, it seems to invalidate your example.

For example, if the target were on the left side of your screen, and you clicked and held while holding a bow to begin shooting at them, and the target Teleported to the right side of your screen, your character will immediately redirect to the target's new position without any effort.

Do we still need this PR? Maybe you were referring to PvP instead of Advocates?

This PR solves that problem by requiring the tile under the cursor to be within a 3x3 area centered on the target to continue repeating action. This is exclusively for mouse and keyboard, as not to interfere with the touch and gamepad control schemes' behavior.

I assume that by "3x3 area", you mean 3 tiles by 3 tiles. I'm concerned what this means for tall enemies, like Gargoyles.

Pvp

@kphoenix137 kphoenix137 changed the title Rebalance Repeat Action Rebalance Repeat Action (PVP balance) Dec 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants