feat: surface open opportunity need on villager field note

This commit is contained in:
2026-08-08 16:18:39 +02:00
parent 8a7e6b12eb
commit 4d2a230c5b
12 changed files with 525 additions and 4 deletions
+19
View File
@@ -984,6 +984,25 @@ resolve the need without adding a dialogue tree, quest acceptance, rewards, a
quest log, reputation, a generic conversation framework, or saved presentation
state in that slice.
The first bounded field-note opportunity surfacing slice is complete:
- `VillagerInspectionResult` now carries an optional read-only
`VillagerOpportunityNote` that is present only when the inspected villager is
the interested party of an open village opportunity;
- `VillagerOpportunityNote.derive` decides the honest help state from the
existing authoritative queries: the derived player-response route wins, then
the capable helper by name, then a real unavailable reason (need already met,
storage has no room, no stocked source in reach, or no storage at all);
- the quiet `VillagerFieldNoteHud` shows a restrained `Need` line for exactly
that note, coexists with the existing `E` prompt and cinematic mode, and
re-derives it from live state without entering saves or drawing RNG;
- a real player finite-resource harvest resolves the same open
`OpportunityStateRecord` through the existing economy/event history, and the
need segment clears on the next refresh;
- unit, runtime, and query-neutrality checks cover the derive branches, the
staged pantry-crisis surfacing, helper naming, ordinary harvest resolution,
and the absence of saved presentation state.
Recently completed:
- `Jajce Villager Field Note 12`: a separate player-facing note selects the