diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-29 08:56:42 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-29 08:56:42 +0800 |
| commit | a578791b0dd8ca95fba3af6f3c2f39c816bd7e52 (patch) | |
| tree | af71c5a7d69087a59f5f5116134c602f65960ae0 /docs | |
| parent | 8cfdb2aa8b19595f5fa7870c4ad3e6c4c20c421e (diff) | |
| download | living-village-a578791b0dd8ca95fba3af6f3c2f39c816bd7e52.tar.gz | |
p67: 每日任务面板展示目标(TargetNpc/TargetTile 可见化)
- TaskRuntime.targetText/taskLine:帮工→「村民 N」、翻土→「自家地块」,
无目标时与旧任务行文案逐字节一致(不加箭头/目标名)
- Interaction TaskPanel 任务行改用 taskLine(其余面板/文案不动)
- 字形表新增 地 块 →(343 字,图集重生成);ChineseText.requiredUiLabels 增补
- P67TaskTargetUiTests(5 例,红先)+ PrototypeTests 计数同步 340→343
- LV_P67_SHOT 证据钩子(有目标/无目标各一帧)+ scripts/analyze-p67.py
- Desktop 333/333、Kernel 119/119;digest 953775FA…7F6C ×3 PASS;未动 Kernel/Sim
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/evidence/p67-analysis.txt | 21 | ||||
| -rw-r--r-- | docs/evidence/p67-run-log.txt | 11 | ||||
| -rw-r--r-- | docs/evidence/p67-target.png | bin | 0 -> 130090 bytes | |||
| -rw-r--r-- | docs/evidence/p67-verification.txt | 55 | ||||
| -rw-r--r-- | docs/evidence/p67-wildcard.png | bin | 0 -> 129164 bytes |
5 files changed, 87 insertions, 0 deletions
diff --git a/docs/evidence/p67-analysis.txt b/docs/evidence/p67-analysis.txt new file mode 100644 index 0000000..d922fca --- /dev/null +++ b/docs/evidence/p67-analysis.txt @@ -0,0 +1,21 @@ +P67(职业每日任务 UI 目标展示)证据分析 — 真实 Desktop 实跑 xvfb 1280x720 +钩子:LV_P67_SHOT=1 LV_LEGACY_MAP=1(农夫真实开局),2 帧:p67-target / p67-wildcard +路径:Kernel 每日任务纯函数生成 DailyTask → 任务面板展示(有目标 / 无目标各一帧) + +log: p67-shot=p67-target panel=task template=帮工 target=村民 9 line=帮工:进行中 → 村民 9 missing_glyph_slots=0 +log: p67-shot=p67-wildcard panel=task template=帮工 target=<none> line=帮工:进行中 missing_glyph_slots=0 + +target frame: panel=task template=帮工 target='村民 9' line='帮工:进行中 → 村民 9' slots=0 +wildcard frame: panel=task template=帮工 target='<none>' line='帮工:进行中' slots=0 + +atlas glyphs: 地块→ present=True total=343 + +p67-target.png 1280x720 mean=86.4 std=35.6 max_dark_block=0 max_white_block=18 +p67-wildcard.png 1280x720 mean=86.3 std=35.6 max_dark_block=0 max_white_block=18 + +p67-target vs p67-wildcard differing_pixels=358 mean_abs_diff=0.046 +target-line band (x0..400, y620..662) differing_pixels=352 + +缺字空白位 total=0(两帧 missing_glyph_slots=0;P67TaskTargetUiTests 断言字形覆盖) + +verdict: PASS diff --git a/docs/evidence/p67-run-log.txt b/docs/evidence/p67-run-log.txt new file mode 100644 index 0000000..be5c326 --- /dev/null +++ b/docs/evidence/p67-run-log.txt @@ -0,0 +1,11 @@ +world-mode=legacy-64x48 bounds=64x48 +mode=keyboard seed=42 +controls=WASD move E interact 1-6 choose Q observe Tab needs C chronicle L relations P pause F1/F2/F3 speed F6 save F7 load Esc close/exit +fps=61.0 tick=0 pos=(1008,816) +fps=60.0 tick=0 pos=(1008,816) +splash=done frame=150 +menu=occupation-select +new-game=ok seed=42 npcs=30 occupation=农夫 tick=0 +p67-shot=p67-target panel=task template=帮工 target=村民 9 line=帮工:进行中 → 村民 9 missing_glyph_slots=0 +p67-shot=p67-wildcard panel=task template=帮工 target=<none> line=帮工:进行中 missing_glyph_slots=0 +p67-shot=done diff --git a/docs/evidence/p67-target.png b/docs/evidence/p67-target.png Binary files differnew file mode 100644 index 0000000..3feebdf --- /dev/null +++ b/docs/evidence/p67-target.png diff --git a/docs/evidence/p67-verification.txt b/docs/evidence/p67-verification.txt new file mode 100644 index 0000000..c460910 --- /dev/null +++ b/docs/evidence/p67-verification.txt @@ -0,0 +1,55 @@ +P67(职业每日任务 UI 目标展示:design §2.4-3 收口后的可见化)验证记录 +基线:commit f943bf7(P66 验收 push 后的 docs tick)。本单未 push。 + +范围 +- 把 P66 定点的 DailyTask.TargetNpc/TargetTile 在玩家可见的每日任务面板展示出来。 +- 只动 Desktop UI 展示;Kernel/Sim 数值路径零改动(`git diff --name-only` 无 Sim.fs / Kernel 文件)。 +- 文案格式(自定):有目标 → 「<模板>:<状态> → <目标名>」;无目标 → 与旧文案逐字节一致 + (「<模板>:<状态>」,无箭头/目标名)。帮工 → 「村民 N」;翻土 → 「自家地块」(同 P66 语义)。 + +改动文件 +- src/LivingVillage.Desktop/TaskRuntime.fs:新增 `targetText`(HelpWork+TargetNpc→村民 N; + TillSoil+TargetTile→自家地块;其余/无目标→None)与 `taskLine`(有目标追加「 → 目标」)。 +- src/LivingVillage.Desktop/Interaction.fs:TaskPanel 任务行改用 `TaskRuntime.taskLine` + (其余面板/文案不动)。 +- src/LivingVillage.Desktop/CjkGlyphAtlas.fs + Assets/cjk-glyphs.txt + Assets/cjk-glyph-atlas.png: + 新增 3 字形「地 块 →」(343 字,16 列,行 22,384x528);`bash scripts/generate-cjk-glyph-atlas.sh` 重生成。 +- src/LivingVillage.Desktop/ChineseText.fs:requiredUiLabels 增补「自家地块」「→」。 +- src/LivingVillage.Desktop.Tests/P67TaskTargetUiTests.fs(新,5 例)+ .fsproj 挂载; + PrototypeTests 字形表计数 340 → 343(行数/尺寸不变)。 +- src/LivingVillage.Desktop/Game.fs:LV_P67_SHOT 钩子(真实每日任务纯函数生成 DailyTask → + 任务面板,有目标/无目标各拍一帧;打印 template/target/整行/missing_glyph_slots)。 +- scripts/analyze-p67.py(新)+ docs/evidence/p67-{run-log,target,wildcard}.png + p67-analysis.txt。 + +红先 +- 先建 P67TaskTargetUiTests.fs 引用未实现的 TaskRuntime.taskLine/targetText → 暂存 TaskRuntime.fs/Interaction.fs + 后编译红(FS0039 taskLine 未定义),恢复后转绿。首次全量编译又暴露测试两处笔误 + (AreEqual<string> 类型批注、task 参数多传 None),修正后 0 错误。 + +构建/测试 +- dotnet build LivingVillage.sln -c Release → 0 错误,1 警告(P40ArtTests.fs FS0760,既有)。 +- dotnet test src/LivingVillage.Desktop.Tests -c Release --no-build → 333/333(328→+5)。 +- dotnet test src/LivingVillage.Kernel.Tests -c Release --no-build → 119/119。 +- 用例:HelpWork 定点 → 「帮工:进行中 → 村民 9」;TillSoil 定点 → 「翻土:待接受 → 自家地块」; + 无目标(帮工/夜捕/翻土通配)逐字节保持旧文案;panelLines 任务面板含目标行、无目标面板不含「→」; + 目标行/箭头经 PixelText.isRenderable 全可渲染 + CjkGlyphAtlas.contains '→'。 + +真实截图证据(Xvfb 1280x720,LV_P67_SHOT=1 LV_LEGACY_MAP=1) +- p67-target:panel=task template=帮工 target=村民 9 line=帮工:进行中 → 村民 9 slots=0 +- p67-wildcard:panel=task template=帮工 target=<none> line=帮工:进行中 slots=0 +- scripts/analyze-p67.py verdict: PASS + - 两帧 missing_glyph_slots=0;图集含 地块→(total=343)。 + - 两帧 1280x720 非空,无 24x24 纯黑块、无 64x64 纯白块(唯一白块 18px < 4096 阈值)。 + - target vs wildcard differing_pixels=358,其中任务行带(x0..400,y620..662)352px + → 目标文案确实画在面板任务行内。 +- scripts/check-no-white-blocks.py → checked=4 failures=0 OK。 + +确定性 +- dotnet run -c Release --project src/LivingVillage.Headless -- --performance-baseline ×3 + → final_digest 全等 953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C, + performance_determinism=PASS ×3。 + +边界 +- 未改 Kernel/Sim 数值路径、HUD 结构、字号/布局、外部素材;未 push。 +- 逐帧「字形清晰可辨」的 vision 复核由 Hermes 侧完成。 +- 未改任务面板以外的展示位置(目标仅出现在每日任务面板行)。 diff --git a/docs/evidence/p67-wildcard.png b/docs/evidence/p67-wildcard.png Binary files differnew file mode 100644 index 0000000..5ce47e8 --- /dev/null +++ b/docs/evidence/p67-wildcard.png |
