summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Kernel.Tests/OccupationStoryTests.fs
Commit message (Collapse)AuthorAgeFilesLines
* feat(kernel,desktop): P31 step3 story annals + identity entry + glyph atlasSomhairle H. Marisol12 days1-1/+52
| | | | | | | | | | | | | | | | | | - Sim.AnnalKind gains StoryAnnal (summary lives in the existing Summary field); WorldSave v3 serializes it with the new 'story' token. v1/v2 saves never contain the token and stay byte-identical; v3 save -> load -> save roundtrips byte-for-byte (tested). - Occupation.Story.identitySummaryOf: plain chronicle-style identity line written to the yearbook at game start (design section 3), e.g. yi-da-yu-wei-sheng. - Desktop: story summaries render in the chronicle panel; StartNewGame appends the identity annal; chooseIntent now routes responses through Occupation.biasResponse and advances the storyline (one stage per player dialogue) with the summary appended as a StoryAnnal. - M5View gains Seed (world seed source for the story start-day hash). - Chinese copy synced into requiredUiLabels; cjk-glyphs.txt + CjkGlyphAtlas.characterTable extended 238 -> 307 glyphs (384x480), atlas regenerated with the deterministic script. - 4 new kernel tests (115 -> 119); performance digest unchanged.
* feat(kernel): P31 step2 story stage state machineSomhairle H. Marisol12 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.