From 2da1cbaf253245c437800e80b9aed9e8e47306b5 Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Tue, 29 Sep 2026 06:51:21 +0800 Subject: p65: 职业切片五 货郎打听行情读 World.Rumors(中文行情短答 + 稿证据) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- src/LivingVillage.Desktop/Interaction.fs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/LivingVillage.Desktop/Interaction.fs') 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") -> "当前没有可用对话" -- cgit v1.2.3