merge: integrate remote player quest slices
This commit is contained in:
@@ -1048,6 +1048,62 @@ bounded through the existing spatial/population indexes, 5–10 Hz UI/environmen
|
||||
updates, cached combatant order, and navigation retry backoff. High, Balanced,
|
||||
and Low profiles now prove a reversible weak-PC structural budget; real
|
||||
weak-hardware frame-time/GPU/memory measurement remains intentionally open.
|
||||
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.
|
||||
|
||||
The first bounded player-Standing and quest slice is complete:
|
||||
|
||||
- `PlayerStandingRecord` is a versioned, deterministic 0–100 reputation with
|
||||
named tiers (Stranger, Known Hand, Trusted, Village Steward, Voice of Jajce)
|
||||
and per-requester gratitude, persisted through world schema v12;
|
||||
- `PlayerQuestRecord` plus `PlayerQuestSystem` turn real open needs into named
|
||||
player quests: an unassisted pantry or wood shortage (or a hungry,
|
||||
player-feedable animal) generates one quest for its requester, resolved only
|
||||
by a real player supply or feed event through the ordinary economy;
|
||||
- completing a quest grants Standing and raises the requester's gratitude, an
|
||||
NPC who trusts the player personally can ask them directly even when another
|
||||
capable helper exists, and tier advances emit a celebration beat;
|
||||
- a read-only `QuestJournalHud` surfaces the active quest, Standing tier, and
|
||||
gratitude feedback without entering saves or drawing RNG;
|
||||
- headless, runtime, schema-restore, and GUT unit regressions cover generation,
|
||||
completion, invalidation, animal care, personal requests, and tier
|
||||
progression.
|
||||
|
||||
The first embodied-citizen slice is complete:
|
||||
|
||||
- the player now has a body in the world: hunger and energy advance on the
|
||||
deterministic tick (`PlayerStateRecord`), eating at the pantry reduces the
|
||||
player's own hunger, starvation weakens movement, and death by starvation
|
||||
halves Standing and allows a respawn, all persisted through world schema v13;
|
||||
- the player carries a real inventory with capacity: gathering a finite
|
||||
resource fills the hands, depositing at the pantry or woodpile is an explicit
|
||||
transaction that resolves opportunities and quests through the same supply
|
||||
contract used by NPCs;
|
||||
- pressing `E` on a nearby villager opens a personal talk: the villager greets
|
||||
you and surfaces their real need, and you can accept their request (which
|
||||
surfaces the same open quest) or decline it (closing the quest without
|
||||
gratitude);
|
||||
- `PlayerNeedsSystem`, `PlayerNegotiationSystem`, and `SimulationEventRecorder`
|
||||
keep the player-citizen rules out of the manager;
|
||||
- headless, runtime, carry/deposit, talk/negotiation, and schema-restore
|
||||
regressions cover needs, death, respawn, carrying, depositing, quest
|
||||
resolution, and personal request accept/decline.
|
||||
|
||||
Recently completed:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user