summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Kernel.Tests/OccupationStoryTests.fs
Commit message (Collapse)AuthorAgeFilesLines
* feat(kernel): P31 step2 story stage state machineSomhairle H. Marisol13 days1-0/+230
- 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.