ReviewOS

stacks/the-settlers-iii-remake

Preserve ownership when merging physical goods onto ground piles

#205
Closed chris opened this 8 days ago ·
8 days ago

The shared physical ground-drop helper can merge a recovered tool into another player's pile. This violates per-player conservation while global material quantity stays constant.

Reproduced through public scenario and dismiss commands on source cc702ac: player1 geologist at40,50 carries his actual hammer on player2 territory, where an ordinary scenario pile of3hammers belongs to player2. Initial audit is clean. Player1 dismisses the idle geologist. The command succeeds, player2's pile becomes4, and player1 has no hammer. Audit reports player1 missing1hammer and player2 possessing1unexpected hammer. No world edits or manufactured ledger changes were used.

dropToGround currently tests matching good and capacity without requiring matching owner. Repair that owning helper, not the caller or UI. Version the corrected merge policy so earlier saves/replays retain their exact rules. Same-owner merging should remain supported; foreign piles should keep their original quantity and ownership, with the dropped good placed separately through normal physical ground placement.

Acceptance: public-command foreign-pile regression, same-owner merging control, restored state and conservation, and source lint/types/tests/build/browser checks. The shared correction must also protect the real construction-tool recovery in #204, without grants or transferring another player's stock. No original Gold or native-presentation claim.

Refs #31, #42, #204 and #4. Current published profile0.11 remains frozen; the new engineering profile will make corrected ownership explicit.

8 days ago

Source corrections implemented on codex/settlers-idle-construction-crew, based on cc702ac, not yet published. New engineering profile0.12.0 explicitly enables surplus-idle construction reassignment and same-owner ground-pile merging. Exact0.11 remains frozen with digest f1ce0705bbe9a53bf880e7c1d38036404c56e1d7256517123d3dd1e38aee0e78 and retained save/replay checksum f6debd29.

All329unit tests /23209assertions pass. Focused39tests /3662assertions cover actual ordinary four-site recovery, geologist equipment, busy crew, diggers/other players, full-ground retention and real delivery freeing space, and refusal to start fresh work above the reduced cap while a tool cannot be put down. Ownership tests preserve the foreign3hammers and the player's1returned hammer, same-owner merging, restore and replay. The original2pass4fail red and the blocked-tool assignment red are retained. Lint/types/assets/fidelity/roadmap/build pass; full browser acceptance is running.

Native browser clicks/keys reproduce8builders/0freehammers, lower the cap to2, recover6real hammers, equip1geologist and retain2builders/5hammers/1geologist after save/reload. The guide shows0.12 and explains the controls. Restoring an actual0.11 save shows0.11 and omits the new guidance, preserving its rules. Raster/accessibility evidence is retained locally; original raster media are not uploaded.

One identical bundled headless fixture also matches Bun1.4.4, real Chrome and the verified original Craft0.0.341 executable. Baseline checksum c331a944, crew recovery 3f7112a3, ownership 1b4ce693; each save/restore/replay matches, with no browser errors. This is headless engine proof, not native graphics/HUD qualification. No dependency or framework source changed.

All four freshly sampled ordinary two-policy matches finish with clean accounting and zero command failures: seed1at31801, seed5at73581, seed2at184761, seed3at139741. Continuations use normal policies and clocks. These are sampled AI matches, not an all-seed or human-input victory claim. Keeping both issues open until the new pushed-main CI and its original artifact are verified.

8 days ago

Idle builders and diggers now return their tools when their staffing limits are lowered. Ground drops also keep each player's goods separate. The changes are in this commit.

Local checks passed: 329 unit tests, 385 browser steps, lint, types and the production build. Older saves keep their previous rules. CI is running.

8 days ago

Fixed idle crew recovery and tool ownership in this change. Lowering a staffing limit returns surplus idle workers and their actual tools; busy workers finish their task first. Tools dropped beside a foreign pile stay with their owner.

329 unit tests and 385 browser steps passed, along with lint, types and the production build. CI passed, and the browser diagnostics were checked. A browser playthrough also recovered six hammers, equipped a geologist and restored the result after reload.

Reproduction and validation details. Older saves retain their rules. The separate tutorial-map staffing problem is tracked in #206.

Sign in to comment on this issue.