diff options
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") -> "当前没有可用对话" |
