diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-29 06:51:21 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-29 06:51:21 +0800 |
| commit | 2da1cbaf253245c437800e80b9aed9e8e47306b5 (patch) | |
| tree | 29f1c383f0870db743221e08fde2d158f82a40b6 /src/LivingVillage.Desktop/Interaction.fs | |
| parent | a2103b24ae6f78da6c8906cbc49599850dcc49c3 (diff) | |
| download | living-village-2da1cbaf253245c437800e80b9aed9e8e47306b5.tar.gz | |
p65: 职业切片五 货郎打听行情读 World.Rumors(中文行情短答 + 稿证据)
- Kernel Occupation 新增 freshReliableRumors/inquiryRumor/marketInquiryText(纯判定+文案,
对齐 Sim.latestRumorFor 新鲜度/可信度口径,全序命中规则,禁随机;不改 Sim.fs)
- Desktop chooseIntent:货郎 OfferTrade 读对话前谣言池,Status=inquiry|<短答>;statusLabel 透出
- 真字补 17 字(东头西北巷口盐巴米布茶柴涨两文落些)并重出 atlas(340 字/384x528)
- 红先 P65RumorInquiryTests(6 例):命中/幂等/陈旧·微弱·空池/仅货郎/非货郎回归逐字节/
save v2 头不变+v3 round-trip/穷举组合无缺字
- LV_P65_SHOT 钩子 + scripts/analyze-p65.py + docs/evidence/p65-*(PASS)
- Desktop 320/320,Kernel 119/119;digest 953775FA…7F6C ×3 PASS
Diffstat (limited to 'src/LivingVillage.Desktop/Interaction.fs')
| -rw-r--r-- | src/LivingVillage.Desktop/Interaction.fs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/LivingVillage.Desktop/Interaction.fs b/src/LivingVillage.Desktop/Interaction.fs index 75575dd..ba792d1 100644 --- a/src/LivingVillage.Desktop/Interaction.fs +++ b/src/LivingVillage.Desktop/Interaction.fs @@ -318,6 +318,12 @@ module M5Interaction = match view.Task with | Some task -> Occupation.biasResponse (Some task.Profile.Kind) | None -> Sim.responseFor + // P65:货郎打听行情读**对话前**既有谣言池,产出中文行情短答。 + // 非货郎 / 无职业 / 无命中谣言 → None,落回既有 dialogue 文案(旧行为逐字节不变)。 + let inquiry = + match view.Task with + | Some task -> Occupation.marketInquiryText (Some task.Profile.Kind) intent world + | None -> None match Sim.chooseDialogueWith respond menu.Target intent world with | DialogueSucceeded(outcome, next) -> // P-d 剧情线:每次玩家对话至多推进一段,摘要写年鉴(StoryAnnal)。 @@ -352,9 +358,12 @@ module M5Interaction = PromptTargetPos = None Task = advanced Status = - match taskMessage with - | Some message -> "task|" + message - | None -> sprintf "dialogue intent=%A response=%A" outcome.Intent outcome.Response + match inquiry with + | Some text -> "inquiry|" + text + | None -> + match taskMessage with + | Some message -> "task|" + message + | None -> sprintf "dialogue intent=%A response=%A" outcome.Intent outcome.Response StatusTick = Some storyWorld.Tick } | DialogueRejected(failure, next) -> next, @@ -585,6 +594,7 @@ module M5Interaction = | value when value.StartsWith("chronicle") -> "年鉴已打开" | "task panel open" -> "任务面板已打开" | value when value.StartsWith("task|") -> value.Substring("task|".Length) + | value when value.StartsWith("inquiry|") -> value.Substring("inquiry|".Length) | value when value.StartsWith("trade ok|") -> value.Substring("trade ok|".Length) | value when value.StartsWith("trade fail|") -> "交易失败:" + value.Substring("trade fail|".Length) | value when value.StartsWith("no dialogue") -> "当前没有可用对话" |
