| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
新增 P36PromptTests(10 例):距离边界、就近目标切换、离开立即消失、
隔墙不触发、对话层输入隔离、提示对象=按键对象一致、Esc 关闭当前层、
暂停帮助 Esc 回上层、保存成功/失败中文 toast、布局多尺寸不遮 HUD。
|
| |
|
|
|
|
| |
复用 sample 脚本走位/互动序列,在自然状态下抓 4 帧关键帧
(靠近→提示出现→对话层打开且世界交互被隔离→关闭走远提示消失)
并逐帧打印 panel/prompt/home 对照点,第 4 帧后退出。仅证据用,不影响默认玩法。
|
| |
|
|
| |
素材扩展切片独立验收通过,P36 情境提示已派发
|
| |
|
|
|
|
|
|
|
|
|
| |
- cc0-tiles.png 由 4 格扩到 12 格:0-3 仍 Kenney 地面,4-11 为自绘构件
(4 水A/5 水B/6 屋脊/7 屋檐/8 木构墙/9 木格窗/10 栏杆/11 门)
- 自绘 2 相位水面 cc0WaterTileIndexAt=(tick/32+x+2y)%2,单帧覆盖双相位;
河道与水田/水网共用;江南 fallback 不变
- drawWorld 接入:cc0 模式下民居屋顶/墙/窗/门、桥栏杆、水面走真素材,其余道具仍江南
- AssetPackTests 更新图集尺寸(12 格)+整数缩放,新增构件索引与双水相位用例
- docs/素材来源.md 记录自绘清单;同步 assets-and-licenses 与维护说明 P34 小节
- docs/evidence/p34-*.png 昼/夜/2x 特写/水波/对照(check-no-white-blocks 0 命中)
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
真实像素素材样板(地面+角色竖直切片)
- 修复 make-cc0-art.py 地块取样间距:packed sheet 无间距(16px pitch),旧 17px 误采错格
- 重选草地/石板格 (9,8)/(10,8)/(4,8)/(4,9),整数 2x NEAREST 重建 cc0-tiles.png
- VillageArt 暴露 selectedGround/CharacterAtlasRelativePath 纯函数,保留 LV_ASSET_PACK=cc0
开关与程序绘制江南图集 fallback
- 新增 AssetPackTests:图集加载尺寸、整数倍缩放、开关/回退断言
- docs/素材来源.md 记录来源/许可/sha256/构建/开关;同步 assets-and-licenses 与维护说明 P33 小节
- docs/evidence/p33-atlas-*.png 昼/夜/2x 特写/程序绘制对照(check-no-white-blocks 0 命中)
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
- 补拍 P14 修复后夜间真实运行时帧并入 docs/evidence/(被 .gitignore 命中,git add -f)
- 生成器世界 512x384 seed4242 夜/昼整帧 2048x1536 + 桥头河面 2x 特写(灯笼光晕+水面)
- 样例村庄真实运行夜/昼整帧 1280x720 + 特写 2x(民居/水面/炊烟)
- 维护说明新增「证据清单(P32)」小节与复现命令,更新 docs/evidence 入库说明
- check-no-white-blocks.py 7 帧 0 命中
|
| |
|
|
| |
视觉证据单已派发
|
| |
|
|
| |
occupation-system-design 取代)
|
| |
|
|
| |
v3/职业系统 P11-P15 小节/P23-P31 来源 hash)
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
HEAD=0bd0f8d remote=0bd0f8d; Kernel 119/119, Desktop 160/160, digest PASS; no writer, no quota error.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
frames, vision+white-block OK)
|
| |
|
|
| |
(build/tests/determinism green), no dispatch
|
| |
|
|
| |
no dispatch
|
| | |
|
| |
|
|
| |
(build/tests/determinism green), no dispatch
|
| |
|
|
| |
(build/tests/determinism green), no dispatch
|
| |
|
|
| |
regenerated + vision recheck, no dispatch
|
| |
|
|
| |
(source_commit=1b0724d unsigned), P31 evidence recheck; no dispatch
|
| |
|
|
| |
all green), no new dispatch (writer quota unavailable)
|
| | |
|
| |
|
|
| |
profession system P-a..d complete
|
| |\ |
|
| | |
| |
| |
| | |
dispatched, no merge this tick
|
| | |
| |
| |
| | |
P31)
|
| | |
| |
| |
| |
| |
| | |
Change points, evidence commands, frozen gates restated: kernel 119 /
desktop 160 green, digest 953775FAEB2F unchanged, 64x48/256x192 checksums
pinned, M3 files untouched; art/ evidence kept out of the repo.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Task panel (T key): a storyline row per occupation, e.g. ju-qing-xian:
shui-wei-yu-shou-cheng, zou-fang-zhong (line name + stage name); absent
for occupation-free saves.
- Occupation select page: minimal hint line showing the selected
occupation's storyline name.
- Evidence hook LV_STORY_SHOT=1 (+LV_STORY_OCCUPATION, LV_STORY_STAGE):
boots a real world through the standard bootstrap, advances the story
via the real dialogue pipeline (chooseDialogueWith bias + Story.onDialogue
+ StoryAnnal append), opens the task panel and saves one back-buffer
frame, then exits. 4 Xvfb shots (farmer/fisher/peddler/scholar) captured
under art/ (gitignored, not committed).
- 4 new desktop tests (156 -> 160): panel storyline lines, bias + story
advance through M5Interaction, no-occupation path stays story-free.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Sim.AnnalKind gains StoryAnnal (summary lives in the existing Summary
field); WorldSave v3 serializes it with the new 'story' token. v1/v2
saves never contain the token and stay byte-identical; v3 save -> load
-> save roundtrips byte-for-byte (tested).
- Occupation.Story.identitySummaryOf: plain chronicle-style identity line
written to the yearbook at game start (design section 3), e.g. yi-da-yu-wei-sheng.
- Desktop: story summaries render in the chronicle panel; StartNewGame
appends the identity annal; chooseIntent now routes responses through
Occupation.biasResponse and advances the storyline (one stage per
player dialogue) with the summary appended as a StoryAnnal.
- M5View gains Seed (world seed source for the story start-day hash).
- Chinese copy synced into requiredUiLabels; cjk-glyphs.txt +
CjkGlyphAtlas.characterTable extended 238 -> 307 glyphs (384x480),
atlas regenerated with the deterministic script.
- 4 new kernel tests (115 -> 119); performance digest unchanged.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Occupation.Story: three-segment arc per occupation (accept task -> visit
households -> conclude), driven one stage per player dialogue with day
gates derived from the same splitmix pattern as the daily task pool
(start day = hash(seed ^ storySeed, day 0) mod 3 + 2, range [2,4]).
- relationMeanToPlayer: decayed valence mean over acquainted NPCs only
(same decay formula as Sim.relationMatrix); no acquaintances = 0.
- Three endings (warm/plain/distant) chosen by deterministic thresholds
(>=0.3 / >=0.0 / <0); ending text is fixed at the concluding dialogue.
- onDialogue returns (state, summary text option) for the caller to write
into the yearbook; StoryStage itself is unchanged (0..3) and already
roundtrips through the existing v3 occupation segment.
- 14 new kernel tests (101 -> 115); performance digest unchanged.
|
| |/
|
|
|
|
|
|
|
|
|
|
|
| |
- Occupation.biasResponse: deterministic pure remap over Sim.responseFor;
no occupation = byte-identical pass-through (all intents x personalities).
farmer AskHelp Refused->Helpful; fisher SmallTalk Reserved->Friendly;
peddler SmallTalk Reserved->Bargaining; scholar Joke fully overridden to
Reserved (documented total-override semantics, opposite of personality).
- Sim.responseFor made public (same pure function, reused as the base path).
- Sim.chooseDialogueWith: extracted body of chooseDialogue with an injectable
respond function; chooseDialogue keeps identity semantics unchanged.
- Sim.appendAnnal made public for the upcoming story annal writes.
- 9 new kernel tests (92 -> 101); performance digest unchanged.
|
| |
|
|
| |
gate closed
|
| |\
| |
| |
| | |
复验通过 92/156, digest PASS)
|