From 4f512323e521bf57dee7b2bd5e060b69b7b6d029 Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Tue, 22 Sep 2026 16:42:26 +0800 Subject: feat(desktop): P31 step4 story progress display + evidence shots - Task panel (T key): a storyline row per occupation, e.g. ju-qing-xian: shui-wei-yu-shou-cheng, zou-fang-zhong (line name + stage name); absent for occupation-free saves. - Occupation select page: minimal hint line showing the selected occupation's storyline name. - Evidence hook LV_STORY_SHOT=1 (+LV_STORY_OCCUPATION, LV_STORY_STAGE): boots a real world through the standard bootstrap, advances the story via the real dialogue pipeline (chooseDialogueWith bias + Story.onDialogue + StoryAnnal append), opens the task panel and saves one back-buffer frame, then exits. 4 Xvfb shots (farmer/fisher/peddler/scholar) captured under art/ (gitignored, not committed). - 4 new desktop tests (156 -> 160): panel storyline lines, bias + story advance through M5Interaction, no-occupation path stays story-free. --- src/LivingVillage.Desktop/Interaction.fs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/LivingVillage.Desktop/Interaction.fs') diff --git a/src/LivingVillage.Desktop/Interaction.fs b/src/LivingVillage.Desktop/Interaction.fs index bfe26c8..9aceff6 100644 --- a/src/LivingVillage.Desktop/Interaction.fs +++ b/src/LivingVillage.Desktop/Interaction.fs @@ -632,4 +632,8 @@ module M5Interaction = | None -> [ "今日暂无任务" ] | Some task -> [ sprintf "%s:%s" (Occupation.taskNameOf task.TemplateId) (taskStateText task.State) ] - Occupation.nameOf occupationState.Profile.Kind :: taskLines @ [ status ] + let storyLine = + sprintf "剧情线:%s,%s" + (Occupation.Story.lineNameOf occupationState.Profile.Kind) + (Occupation.Story.stageNameOf occupationState.StoryStage) + Occupation.nameOf occupationState.Profile.Kind :: taskLines @ [ storyLine ] @ [ status ] -- cgit v1.2.3