Skip to content

Prevent restock reserves from blocking depot returns - #195

Merged
adrunkhuman merged 2 commits into
masterfrom
fix/playerbot-return-budget
Sep 17, 2026
Merged

adrunkhuman merged 2 commits into
masterfrom
fix/playerbot-return-budget

Conversation

@adrunkhuman

Copy link
Copy Markdown
Owner
  • 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.

@adrunkhuman

Copy link
Copy Markdown
Owner Author

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: corpse_detour expects the removed hostile_detour event; corpse_inaccessible expects 20 seconds while the existing six-failure bound ends work earlier; depot_risk_fallback selects a safe route instead of emitting the expected fallback event. Those contracts are unchanged here.

@adrunkhuman

Copy link
Copy Markdown
Owner Author

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.

@adrunkhuman
adrunkhuman merged commit 63a6570 into master Sep 17, 2026
1 check passed
@adrunkhuman
adrunkhuman deleted the fix/playerbot-return-budget branch September 17, 2026 08:19
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.

1 participant