acdream/tests/AcDream.Core.Tests/Physics/Motion
Erik 699669502c fix(#171): sticky deep-overlap back-off sign pin — the runaway-to-center (gate-2 residual)
Gate 2: pack behavior good except "sometimes the monster is in the
character / too close vs retail". The ACDREAM_PROBE_STICKY capture
nailed it frame-by-frame: 1661 deep-overlap AdjustOffset ticks, ALL
steering inward (dist -0.65 -> -0.78 -> ... -> -1.9 at +0.13/tick),
monsters converging to centerDist~0 — while the suppressed-snap lines
show ACE's authoritative positions stayed properly OUTSIDE (drift up to
7.7 m). The radii were correct (tgtR=0.68, ownR=0.59-0.98).

Root cause: ACE's literal decode of StickyManager::adjust_offset
(`if (delta >= |dist|) delta = dist;`) leaves delta POSITIVE when the
overlap exceeds one tick's step — steering TOWARD the target center, a
runaway whose equilibrium is centers-coincident. ACE servers virtually
never reach that branch (quantum >=1/30 -> threshold ~1 m); at
render-rate quanta the threshold is ~0.13 m and pack jostle trips it
constantly. The BN mush (0x00555554-0x00555597) is unreadable on
exactly this compare; the retail oracle (side-by-side on the same ACE:
monsters separate) refutes the ACE-literal reading.

Pin: sign-correct clamp — `else if (dist < 0) delta = -delta` (back off
rate-limited). Identical to ACE-literal in every shallow/outside case.
Register row AP-82 (same commit) with the cdb verification note.
Conformance: StickyManagerTests.AdjustOffset_DeepOverlap_BacksOff_
RateLimited. Full suite 4039 green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 09:51:24 +02:00
..
AnimSequenceNodeTests.cs feat(R1-P0/P1): CSequence research base + verbatim AnimSequenceNode 2026-07-02 19:45:56 +02:00
CMotionTableTests.cs feat(R2-Q2): verbatim CMotionTable — the GetObjectSequence dispatcher 2026-07-02 20:48:26 +02:00
ConstraintManagerTests.cs feat(physics): R5-V1 — port PositionManager/Sticky/Constraint + TargetManager (Core, unwired) 2026-07-03 19:34:49 +02:00
CSequencePhysicsTests.cs feat(R1-P3): verbatim apply_physics + Frame rotate/grotate 2026-07-02 19:53:32 +02:00
CSequenceTests.cs feat(R1-P2): verbatim CSequence container + list surgery 2026-07-02 19:50:19 +02:00
CSequenceUpdateTests.cs feat(R1-P4): verbatim update_internal / update / advance_to_next_animation 2026-07-02 20:05:04 +02:00
InterpretedMotionStateActionFifoTests.cs feat(R3-W1): retail state completion — action FIFOs, MovementParameters, MotionNode, WeenieError renumber (closes J2, J16-codes) 2026-07-02 22:12:33 +02:00
MotionNodeTests.cs feat(R3-W1): retail state completion — action FIFOs, MovementParameters, MotionNode, WeenieError renumber (closes J2, J16-codes) 2026-07-02 22:12:33 +02:00
MotionStateTests.cs feat(R2-Q1): verbatim MotionState (gap H2) 2026-07-02 20:31:16 +02:00
MotionTableDispatchSinkTests.cs feat(R2-Q5): RemoteMotionSink DELETED — funnel dispatches straight into PerformMovement; AP-73 retired 2026-07-02 21:55:13 +02:00
MotionTableManagerTests.cs feat(R2-Q3): verbatim MotionTableManager — the pending-animation queue (closes H3, H15-core) 2026-07-02 21:01:50 +02:00
MovementParametersFromWireTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementParametersGetCommandTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementParametersGetDesiredHeadingTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementParametersTests.cs feat(R3-W1): retail state completion — action FIFOs, MovementParameters, MotionNode, WeenieError renumber (closes J2, J16-codes) 2026-07-02 22:12:33 +02:00
MovementParametersTowardsAndAwayTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementStructWideningTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementTypeWideningTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MoveToManagerArrivalAndProgressTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerAuxTurnTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerBeginMoveForwardTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerCompletionSeamTests.cs feat(R4-V5): LOCAL PLAYER cutover - B.6 auto-walk DELETED; P1 autonomous gate ported; TS-36 bound (closes M1-local, M9, M10, M17; retires TS-36, AD-26; re-anchors AD-27, AP-23) 2026-07-03 13:24:22 +02:00
MoveToManagerEndToEndTableDriveTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerHandleUpdateTargetTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerLifecycleTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerNodePlanTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerStickyAndCancelTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerTestHarness.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerTurnToHeadingTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerUseTimeGateTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToMathCylinderDistanceTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MoveToMathHeadingDiffTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MoveToMathHeadingGreaterTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MoveToMathPositionHeadingTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
PositionManagerFacadeTests.cs fix(#171): R5-V3 — bind sticky melee (StickyManager live) + real arrival radii 2026-07-04 23:46:17 +02:00
R5ManagerHarness.cs feat(physics): R5-V1 — port PositionManager/Sticky/Constraint + TargetManager (Core, unwired) 2026-07-03 19:34:49 +02:00
RawMotionStateActionFifoTests.cs feat(R3-W1): retail state completion — action FIFOs, MovementParameters, MotionNode, WeenieError renumber (closes J2, J16-codes) 2026-07-02 22:12:33 +02:00
RemoteChaseDrainBisectTests.cs fix(#170): armed moveto always ticks UseTime — the SERVERVEL branch starved the chase 2026-07-04 21:59:59 +02:00
RemoteChaseEndToEndHarnessTests.cs fix(#171): R5-V3 — bind sticky melee (StickyManager live) + real arrival radii 2026-07-04 23:46:17 +02:00
StickyManagerTests.cs fix(#171): sticky deep-overlap back-off sign pin — the runaway-to-center (gate-2 residual) 2026-07-05 09:51:24 +02:00
TargetManagerTests.cs feat(physics): R5-V1 — port PositionManager/Sticky/Constraint + TargetManager (Core, unwired) 2026-07-03 19:34:49 +02:00