Conversation
Problem: When a mob dies while fighting multiple enemies, the soft target system would lock onto the dead mob's corpse, preventing the player from attacking live mobs that were body-pulled during combat. Root Cause: AutoAttack used INTERACTTARGET which respects soft target priority, causing attacks to be directed at the dead soft target instead of the current hard target. Solution: Use STARTATTACK command which bypasses soft target interaction and directly engages the current hard target. ## Addon Changes (v1.9.2 -> v1.9.3) - Add lastDamageDoneTime tracking for time-based stuck detection - Add STARTATTACK key binding (ALT-NUMPADPLUS) - Increment NUMBER_OF_FRAMES to 112 for new data cell ## Core Changes ### Combat System - AutoAttack now uses STARTATTACK instead of INTERACTTARGET - AutoAttack requirement changed from "!SoftTargetDead" to "!MeleeSwinging" - Add IsMeleeSwinging() to PlayerReader using swing timer + network latency - Add LastDamageDoneTime to CombatLog for stuck detection ### CombatGoal Improvements - Add UnstuckDeadSoftTargetLock() with time-based detection - Triggers after 2x main hand speed with no damage dealt - Turns away from dead soft target to clear it - Falls back to strafing if full 360° rotation doesn't clear - Move stuck detection before spell casting loop - FindPossibleThreats now checks DamageTaken for body-pulled mobs ### ReactCastError Improvements - Skip fast interact turn when soft target blocks combat - Fall back to slow 180° turn when interact fails - Fix direction calculation bug (was = -Tau, now -= Tau) ### GoapAgent Fix - Properly call OnExit() when goal becomes empty ### New Infrastructure - Add SoftInteract_CombatBlocker() to AddonBits - Add StrafeLeft/StrafeRight KeyActions for emergency unstuck - Add MeleeSwinging requirement to RequirementFactory - Add STARTATTACK to KeyBindingDefaults Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem:
When a mob dies while fighting multiple enemies, the soft target system would lock onto the dead mob's corpse, preventing the player from attacking live mobs that were body-pulled during combat.
Root Cause:
AutoAttack used
INTERACTTARGETwhich respects soft target priority, causing attacks to be directed at the dead soft target instead of the current hard target.Solution:
Use
STARTATTACKcommand which bypasses soft target interaction and directly engages the current hard target.Addon Changes (
v1.9.2->v1.9.3)lastDamageDoneTimetracking for time-based stuck detectionSTARTATTACKkey binding (ALT-NUMPADPLUS)NUMBER_OF_FRAMESto112for new data cellCore Changes
Combat System
STARTATTACKinstead ofINTERACTTARGET"!SoftTargetDead"to"!MeleeSwinging"IsMeleeSwinging()toPlayerReaderusing swing timer + network latencyLastDamageDoneTimetoCombatLogfor stuck detectionCombatGoal Improvements
UnstuckDeadSoftTargetLock()with time-based detectionFindPossibleThreatsnow checksDamageTakenfor body-pulled mobsReactCastError Improvements
= -Tau, now-= Tau)GoapAgent Fix
OnExit()when goal becomes emptyNew Infrastructure
SoftInteract_CombatBlocker()toAddonBitsStrafeLeft/StrafeRightKeyActionsfor emergency unstuckSTARTATTACKtoKeyBindingDefaultsNew Requirements
MeleeSwingingLastDamageDealtMsExample usage:
Side effects / Known issues:
INTERACTTARGETno longer periodically pressed in combat but in Reaction to the system message bad facing, while the player is approaches the target, it might overshoot and stop over the enemy, then turn around 180* and goes back.