|
|
- Occupation.Story: three-segment arc per occupation (accept task -> visit
households -> conclude), driven one stage per player dialogue with day
gates derived from the same splitmix pattern as the daily task pool
(start day = hash(seed ^ storySeed, day 0) mod 3 + 2, range [2,4]).
- relationMeanToPlayer: decayed valence mean over acquainted NPCs only
(same decay formula as Sim.relationMatrix); no acquaintances = 0.
- Three endings (warm/plain/distant) chosen by deterministic thresholds
(>=0.3 / >=0.0 / <0); ending text is fixed at the concluding dialogue.
- onDialogue returns (state, summary text option) for the caller to write
into the yearbook; StoryStage itself is unchanged (0..3) and already
roundtrips through the existing v3 occupation segment.
- 14 new kernel tests (101 -> 115); performance digest unchanged.
|