Commit graph

3006 commits

Author SHA1 Message Date
dam
635ec651f1
Windows IntxLNK marker fuck up 2026-07-18 19:27:06 +03:00
dam
b1231c749f
Lazy ranged path batching, projectile edge case fix, Bork fix 2026-07-18 18:54:42 +03:00
dam
9331e40eb4
Stall thieving regression fix 2026-07-18 18:54:42 +03:00
dam
f2625b1f3d
Static clearQueue() to PacketProcessor 2026-07-18 18:54:42 +03:00
dam
6627efd780
Melee clipping fix 2026-07-18 18:54:41 +03:00
dam
62f60abc9a
Few fixes 2026-07-18 18:54:14 +03:00
dam
b09d82d5cc
Small fixes 2026-07-18 18:54:14 +03:00
dam
5857cba851
Some code reformatting with ktfmt (Kotlinlang) 2026-07-18 18:54:13 +03:00
dam
2caba4e6dd
Overlapping NPC and player fix, diagonal dumb pathing dumbness fix 2026-07-18 18:54:13 +03:00
Damighty
6c01044bdb
Revert "memories for 10 accs, wiki-corpus update"
This reverts commit 1dd31be292b12ed715d23ab3fc21bcfb25d785a9.
2026-07-18 18:54:12 +03:00
dam
1db75ebd62
memories for 10 accs, wiki-corpus update 2026-07-18 18:54:11 +03:00
dam
8274f43f45
Major performance fix 2026-07-18 18:54:10 +03:00
dam
cd74bb46b1
Some ContentAPI usage 2026-07-18 18:54:10 +03:00
dam
189d989a28
Fixed melee attack timeout for unreachable NPCs, clipping window memoization, ranged candidate cap to 16 2026-07-18 18:54:09 +03:00
dam
32b11a9e87
Null safety MR changes 2026-07-18 18:54:09 +03:00
dam
a9d6ce021b
Telepathic interaction fix, ::to puro 2026-07-18 18:54:08 +03:00
dam
cd2f57f1b9
Old dumb pathfinding, some reformatting, various fixes 2026-07-18 18:54:08 +03:00
dam
4328d591f5
NPC wander fix 2026-07-18 18:54:07 +03:00
dam
fad4726760
Dumbed down dumb NPCs, fixed a bunch of regressions, improved ::drawroute
And some new tests
2026-07-18 18:54:07 +03:00
dam
894674a12f
More detailed performance logging, more RSMOD 2026-07-18 18:54:06 +03:00
dam
870534be54
Long combat movement update warning threshold from 30ms to 50ms 2026-07-18 18:54:06 +03:00
dam
d7c03670c6
Scenery object size as it's area 2026-07-18 18:54:06 +03:00
dam
9c5a4c88d5
Use RSMOD LOS in combat movement
- Add reusable RSMOD line-of-sight helpers for projectile checks
- Avoid hot movement prediction list allocations during combat ticks
- Use direct projectile LOS checks for combat movement, swings, and peltables
- Reuse loaded LOS windows during ranged and magic approach filtering
- Extend pathfinder tests for the direct RSMOD LOS helpers
2026-07-18 18:54:06 +03:00
dam
bee7395f3e
Smaller performance improvements 2026-07-18 18:54:05 +03:00
dam
138d9d78a1
Some performance fixes 2026-07-18 18:54:05 +03:00
dam
24fa2e29d0
Do not eat all of GL 2026-07-18 18:54:05 +03:00
dam
e637f5a2b9
CRITICALLY long intent updates self-identify 2026-07-18 18:54:04 +03:00
dam
b4a03da6f1
Enable performance test 2026-07-18 18:54:04 +03:00
dam
b9cef728a6
Death combat state clearing 2026-07-18 18:54:04 +03:00
dam
ae0e3425bd
Talk-to option overrider fix 2026-07-18 18:54:03 +03:00
dam
e85f3a6812
RSMod routefinder 2026-07-18 18:54:03 +03:00
dam
0c196aa9e3
RSMod pathfinder port 2026-07-18 18:54:03 +03:00
dam
dd56c211de
Fixed combat pathing around unreachable targets 2026-07-18 18:54:02 +03:00
dam
c52de9464d
Fixed combat movement pathing past SmartPathfinder limit
Adventure bots could enter combat with NPCs near the edge of the SmartPathfinder truncation window, causing combat movement to try attack tiles at distance 50+ and spam pathfinding exceptions.

Skip SMART combat movement destinations that SmartPathfinder cannot attempt, and make the pathfinder cutoff follow max_pathfind_dist instead of a hard-coded 50. Added a regression test for the reported coordinate boundary.
2026-07-18 18:54:02 +03:00
dam
1fe520836b
Performance test disabled
Unbelievably unreliable
2026-07-18 18:54:02 +03:00
dam
b1dd6f72d0
Merge conflict with !2354 fix attempt 1 2026-07-18 18:54:01 +03:00
dam
8bb1dc4e30
Nuke docs. Manual local testing just passes 2026-07-18 18:54:01 +03:00
dam
5422d0ba2d
Fixed melee combat pathing for overlapping actors
Treat overlapping occupied tiles as out of melee reach so combat movement must find a real adjacent attack tile. Improve intent resolution to preserve queued steps that already enter attack range and account for same-tick projected movement, preventing reciprocal melee movement loops.

Update dumb NPC overlap movement to consider all valid attack tiles instead of stalling on blocked preferred directions. Add regression coverage for player/NPC overlap cases, blocked-side fallback, and mutual melee movement.
2026-07-18 18:54:01 +03:00
dam
7751971c15
Fixed combat pathing around blocked attack tiles
Filtered combat chase destinations so melee avoids interaction-blocked border tiles, and ranged/magic approach tiles require projectile line of sight before being selected.

This fixes looping when attacking through the opened Lumbridge house door and when autocasting against Lumbridge river ducks from projectile-blocked spell range.
2026-07-18 18:54:00 +03:00
dam
b7d0aa86f7
Fixed combat movement toward hard unreachable NPCs
Players now attempt to path into combat range before rejecting attacks against stationary NPCs on unwalkable tiles, such as Lumbridge river ducks. Ranged and magic attacks can move to valid attack-range land tiles, while melee still fails with "I can't reach that!" only after pathing as close as possible.

Added regression coverage for Lumbridge river duck ranged and melee attacks, and adjusted unreachable-target combat movement tests to expect pathing before failure.
2026-07-18 18:54:00 +03:00
dam
9f8faa3547
Fixed dumb NPC melee safespot pathing
Default melee NPCs now use constrained target-facing combat tiles instead of scanning every border tile, preserving safespots around obstacles.

Diagonal chases may use the two corner-adjacent sides so NPCs can step into range when a direct-ish tile is open, without routing around blocked corners.

Added combat movement regressions for static safespots, one-tile obstacle chases, and diagonal corner cases.
2026-07-18 18:54:00 +03:00
dam
64b6d858a0
Forced run fix 2026-07-18 18:53:59 +03:00
dam
4d50efbddc
Fix combat movement reachability and stale target cleanup
Reject partial pathfinder results for combat approach tiles so unreachable targets stop combat and show "I can't reach that!" instead of endlessly queueing chase movement.

Also clear stale combat state on teleport/cross-map targets, keep combat movement queues to immediate steps, and prevent NPC retaliation from forcing run movement.
2026-07-18 18:53:59 +03:00
dam
0d2f472d96
Silence! 2026-07-18 18:53:59 +03:00
dam
cdf43d01f8
Performance tests 2026-07-18 18:53:58 +03:00
dam
aa5f25fed4
Fixed melee chase timing for running PvP targets
Add a late combat movement pressure pass after world pulses so melee attackers can react to target run paths queued by live walk packets in the same tick. This prevents the attacker from lagging one tile too far behind when a PvP target starts running away.

Also add regressions for melee pressure against running targets, including the live WorldspaceWalk path with run enabled and dragon scimitars, and update the combat movement rewrite notes.
2026-07-18 18:53:58 +03:00
dam
4f0d44db38
Enabled tests in CombatMovementTests.kt 2026-07-18 18:53:58 +03:00
dam
eed4fd4888
Added combat movement intent resolution
Replaced CombatPulse's private MovementPulse pathing with an engine-side CombatMovementIntents queue resolved before normal walking queues. Exposed candidate attack tiles from CombatMovementPlanner so intents can select and reserve deterministic melee approach paths.

Enabled the first pending combat movement scenario using an open wilderness fixture, added intent resolver coverage, and updated the combat movement rewrite living document.
2026-07-18 18:53:58 +03:00
dam
71e8812124
Extract combat reach helpers and document movement rewrite progress
Move shared combat reach checks out of swing handlers and update melee, range, and magic handlers to delegate to the new reach boundary. Add focused combat tests for large-target melee reach and planner behavior, and update the living combat movement rewrite notes with completed progress and next steps.
2026-07-18 18:53:57 +03:00
dam
a816e3378e
Docs, tests 2026-07-18 18:52:58 +03:00