merge: integrate remote player quest slices

This commit is contained in:
Rijad Zuzo
2026-08-16 16:53:30 +02:00
55 changed files with 3640 additions and 54 deletions
+34
View File
@@ -897,6 +897,40 @@ Next:
by the scaling fixture.
3. Add a market/traveler cadence so the returning player finds something new:
a traveler who shares one rumour or a bounded food-for-wood exchange.
1. Let an inspected villager who owns an open opportunity surface that exact
village need plus the authoritative direct-help route, capable helper, or
honest unavailable state that currently exists. **Complete:** the quiet
`VillagerFieldNoteHud` now shows a restrained `Need` line for exactly that
note, derived from the existing player-response/helper queries and the real
storage state. It names the helper when one is capable, shows the direct
finite-resource-to-storage route when the player response derives it, or
honestly states why help is unavailable, and it re-derives from live facts
after restore without entering saves.
2. Prove that the ordinary finite-resource-to-storage harvest resolves an
available player route and updates the context without dialogue branching,
acceptance state, rewards, a quest log, or saved presentation state.
**Complete:** a runtime scenario stages the real pantry crisis, surfaces the
need for its interested villager, and proves that one ordinary
`harvest_resource_node` extraction resolves the same open opportunity and
clears the need segment on the next refresh.
3. Give the player a reason to keep helping: a persistent **Standing** loop.
**Complete:** resolving real village needs (pantry, wood, hungry animals)
now grants Standing (Stranger → Known Hand → Trusted → Village Steward →
Voice of Jajce) and raises the requester's gratitude. The world's quest
generator turns each open need into a named player quest in a quiet
`QuestJournalHud`, and villagers who personally trust the player start
asking them directly even when another helper could act. All of it flows
through the ordinary finite-resource harvest/feed contracts, survives
save/restore deterministically, and adds no quest-only state.
4. Make the player a citizen with a body. **Complete:** the player now has
hunger and energy that advance on the simulation tick, eats from the real
pantry, weakens when starving, and can die by starvation (halving Standing).
Gathering fills a carried inventory with capacity, and depositing at the
pantry or woodpile is an explicit transaction that resolves the same quests.
Pressing `E` on a villager opens a personal talk where you accept or decline
their real request. The embodied needs, carry, and negotiation rules live in
focused `PlayerNeedsSystem`/`PlayerNegotiationSystem` collaborators and are
covered by headless, runtime, and schema-restore regressions.
Do not start with GIS data, a full city, a large asset pack, or more NPC
mechanics. The next proof is a beautiful stage for the systems that already