summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Desktop.Tests/DesktopTests.fs
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-21 10:12:20 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-21 10:12:20 +0800
commit9df2da41289f4d0852f86e86eae81ca7f7e7b598 (patch)
treebca1a071e3369a9e2ebbf5e424da3dd45547f2be /src/LivingVillage.Desktop.Tests/DesktopTests.fs
parentc932969539b00a42937f0aa5ed1e10b4e94932a3 (diff)
downloadliving-village-9df2da41289f4d0852f86e86eae81ca7f7e7b598.tar.gz
fix(desktop): 修复 HUD 缺字并统一轻量面板与情境提示
字符表扩充至 197 字(补 间/门/谈/体/屋/返/×/,/:等全部 UI 用字),用 Noto Sans CJK 重新生成图集并逐字校验;新增字符表覆盖全部 UI 文案、瞬态状态 2.5 秒过期、对话完成后回到轻量面板等回归测试;户外与室内统一左下角轻量 HUD,互动日志改为短暂反馈;样例脚本保留 E 交谈 提示与对话菜单停留帧。
Diffstat (limited to 'src/LivingVillage.Desktop.Tests/DesktopTests.fs')
-rw-r--r--src/LivingVillage.Desktop.Tests/DesktopTests.fs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/LivingVillage.Desktop.Tests/DesktopTests.fs b/src/LivingVillage.Desktop.Tests/DesktopTests.fs
index 667ab69..526d1af 100644
--- a/src/LivingVillage.Desktop.Tests/DesktopTests.fs
+++ b/src/LivingVillage.Desktop.Tests/DesktopTests.fs
@@ -53,6 +53,23 @@ type DesktopTests () =
Assert.IsTrue(observationView.Observations |> List.exists (fun observation -> observation.Id = NpcId 0))
[<TestMethod>]
+ member _.DialogueAndOverlayViewsRejectWorldCommandsUntilClosed () =
+ let world = Sim.initialWorldN 42UL 4 |> Harness.atNpc 0
+ let openedWorld, dialogueView = M5Interaction.apply Interact world M5Interaction.initial
+ let _, afterObserve = M5Interaction.apply Observe openedWorld dialogueView
+ let _, afterNeeds = M5Interaction.apply ToggleNeeds openedWorld dialogueView
+ let _, afterChronicle = M5Interaction.apply ShowChronicle openedWorld dialogueView
+ let _, needsView = M5Interaction.apply ToggleNeeds world M5Interaction.initial
+ let _, interactionAttempt = M5Interaction.apply Interact world needsView
+ let _, closedView = M5Interaction.apply ClosePanel world dialogueView
+
+ Assert.AreEqual<M5View>(dialogueView, afterObserve)
+ Assert.AreEqual<M5View>(dialogueView, afterNeeds)
+ Assert.AreEqual<M5View>(dialogueView, afterChronicle)
+ Assert.AreEqual<M5Panel>(NeedsPanel, interactionAttempt.Panel)
+ Assert.AreEqual<M5Panel>(WorldPanel, closedView.Panel)
+
+ [<TestMethod>]
member _.HeadlessSmokeProvesTheThreeHopCausalChain () =
let result = Program.M5Smoke.run ()