Prevent restock reserves from blocking depot returns - #195
Conversation
adrunkhuman
commented
Sep 17, 2026
- Separate depot travel from later shopping costs. Bot One had 198 gp and a 50 gp return fare, but an 820 gp restock reserve blocked patrol and left him retrying in place. Depot-bound travel now requires only its fare; outbound travel protects the return fare, and supplier travel retains the restock reserve.
- Reuse return-route evidence across complete, same-floor walks without modeled danger. Added danger, transitions, route failures, and changed route inputs require revalidation. A changed return fare also rechecks the complete outbound fare before movement starts.
- Count rejected patrol preflights toward bounded recovery. Keep hunt-exit safety separate from payment policy so ordinary depot returns retain their existing risk fallback.
- Add deterministic coverage for fare budgets, return-route invalidation, and repeated rejection. Update the playerbot capability documentation.
|
Validation limits: the isolated PR snapshot passes the C++ contracts. Runtime checks used the local worktree, which also contains separate, uncommitted equipment/readiness changes excluded from this PR. Ten navigation/hunt scenarios passed; the base corpse scenario passed on rerun. The restored level-17 bot selected a depot and resumed movement. The gameplay suite is not fully green: |
|
Fixed the stale gameplay assertions in 7bf5e1b. Corpse detour now checks safe routing and successful loot instead of the removed event; inaccessible-corpse recovery checks the six-failure bound; depot routing checks safe-route precedence rather than requiring a risky fallback. Deterministic fallback-policy checks remain. All three scenarios passed against an isolated snapshot of this PR plus these test fixes, excluding the unrelated equipment/readiness worktree changes. Navigation assertion regressions also passed. This resolves the three failures and the isolation gap for those scenarios reported above; the full gameplay suite was not rerun. |