summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Desktop/Game.fs
Commit message (Collapse)AuthorAgeFilesLines
* feat(desktop): P30 512 民居增密 + 乡村空区填充 + 主路柔化Somhairle H. Marisol13 days1-1/+126
| | | | | | | | | | | | | | | | | | | - MapGen(仅大图尺寸自适应分支,默认 64x48/256x192 不进入、不消费额外 RNG): ① ExtraRiversideHouses 16 -> 30,组团 2-5 座;含基础岸屋的路段优先布组并为每座孤立 基础民居贴格配对,placeGroup 试排后按「与既有/同组民居足迹间隙 <=2」过滤,孤立单屋不落地。 512 seed4242:组团民居 24 -> 45,规模 [5;4x6;3x2;2x3],0 组 <2 座。 ② 新增 GroundTile.PaddyField=4/VegetablePlot=5(成熟 tile;非水可通行)+ Result.Groves (纯视觉)+ Result.Farmhouses(门贴院落路、计入 BFS);18x14 确定性网格铺田块/树丛/农舍, 离水 >=3 格、避开路网/核心/民居。草地瓦片 96.3% -> 83.9%,水田 11595 + 菜畦 12877 格。 ③ Result.MainRoadCenter 逐列中心线,value noise(scale 130、幅度 ±3)确定性缓弯, 相邻列步长 <=1、遇弯补格保证 4 连通;默认图主街仍笔直。 - VillageArt:水田/菜畦/树丛/农舍渲染(复用成熟 sprite 与同一立面纯函数)、农舍门窗计入夜光、 新增 drawMapRegion 局部真实离屏渲染。 - Game:P30 证据钩子 LV_MAPGEN_P30_SHOT=1(整图 3072x2304 day/night + 田块/主路 512x256@4px)。 - 回归 +5:组团规模/空区填充/田块合规/农舍可达确定性/主路确定性弯曲。 Kernel 92 / Desktop 156 全绿;Release 0 警告 0 错误; final_digest=953775FAEB2F… 3 次一致、performance_determinism=PASS; 64x48=6042052、256x192=1284656962 锁定不变。
* feat(desktop): P29 512 聚落组团 + 夜景灯光径向光晕Somhairle H. Marisol13 days1-23/+27
| | | | | | | | | | | | - MapGen:仅大图新增 ClusterSeed(group seeding)与组团布屋——512 沿横向石板路 (主街+河岸路)成排成组:组内 2-4 座/1 格间隙、组间 4-6 格空档,宽度 2/3/4 分层; 垂柳改为确定性成丛(2-3 株/丛、丛间 3-5 格空档)。独立 clusterRng 不触碰 structureRng,默认图仍不消费 RNG,64x48=6042052 / 256x192=1284656962 锁定不变。 - VillageArt:新增 lanternFalloff(二次 1-(d/r)^2,半径 0 处最大、边缘 0、严格单调无平台); lanternGlowLayers 按该衰减逐环累积 alpha;drawNightGlows 对桥头灯笼+民居门窗画半径 4 tile 的柔和径向光晕,整图取证与实机 DrawWorldView 共用同一套纯函数。 - 回归 +6:组团行/成丛/衰减/光源确定性;Desktop 151、Kernel 92 全绿,Release 0/0, final_digest=953775FAEB2F… 3 次一致。证据帧见 art/p29-*。
* feat(desktop): P28 整图夜景取证(真实 tint + 月光 veil)Somhairle H. Marisol13 days1-9/+26
| | | | | - LV_MAPGEN_NIGHT=1 时整图按 23:30 的 WorldTint 与 golden/moonlight veil 渲染 - RenderMapGen 参数化 tint/veil tick,与 DrawWorldView 共用同一套纯函数
* feat(desktop): P28 整图 2px/tile 真实帧取证钩子Somhairle H. Marisol13 days1-0/+18
| | | | | - LV_MAPGEN_FIT_WIDTH/HEIGHT 额外渲染整图到指定像素目标(1024x768 -> 恰 2px/tile) - 仅取证模式触发,不进入正常游戏循环
* feat(desktop): P26 HUD 常驻元素半透明底色 + 1px ↵Somhairle H. Marisol13 days1-2/+6
| | | | 描边(昼/夜可读)
* feat(desktop): P26 夜晚冷月光 veil(纯渲染层)+ ↵Somhairle H. Marisol13 days1-0/+8
| | | | 灯笼光晕径向无方斑回归
* feat(desktop): LV_RIVERSCAPE_VILLAGE_TOUR ↵Somhairle H. Marisol13 days1-0/+15
| | | | | | | | 村民巡游钩子提升屏内可见村民(P25) - NPC 行动目标固定在 Sim 四活动点(厨房/家/集市/工位),原桥/门/核心巡游大多帧 屏内仅 0-3 人;新钩子改为在这些活动点间环游,150s 采样 >=8 村民占 74%(村庄段 89-91%)。 - 仅 Desktop 取证路径,不动 Kernel/Sim 数值。
* feat(art): 生成器民居改用黛瓦/木墙/门窗部件 + ↵Somhairle H. Marisol13 days1-0/+14
| | | | | | | 村民可见性日志钩子(P24) - drawMapStructures 用 RoofRidge/RoofEave + WallWood/WallWindow + Door 精灵替换原矩形色块。 - LV_NPC_VISIBLE_LOG=1 每秒打印 visible-npcs=K of 30,作为大世界村民渲染证据。
* feat(desktop): LV_RIVERSCAPE_WIDTH/HEIGHT 取证钩子支持 512x384 ↵Somhairle H. Marisol14 days1-2/+11
| | | | | | 生成器世界(P23) - 默认仍是 256x192,不改默认世界;仅让巡游/性能取证可跑 512x384。
* feat(perf): LV_PERF_SOAK_SECONDS 让 64x48/sample ↵Somhairle H. Marisol14 days1-2/+18
| | | | | | | 世界也能长时帧率采样(P22) - sample 脚本跑完一轮后若未到 soak 秒数则回到开头继续,用于与 256x192 巡游做同口径的解锁帧率对比;默认 0 行为不变。
* feat(perf): LV_UNLOCK_FPS 与 LV_PERF_SUMMARY 实机帧率核对钩子(P21)Somhairle H. Marisol14 days1-2/+40
| | | | | | - LV_UNLOCK_FPS=1 关闭 vsync/固定步长以测真实渲染上限; LV_PERF_SUMMARY=1 退出时用 PerformanceSummary 打印 mean/min/max。 - LV_RIVERSCAPE_SECONDS=N 让巡游循环到 N 秒,支撑 60s 稳定采样。
* fix(mapgen): sample 录像流程保持 64x48,仅显式巡游用生成器世界Somhairle H. Marisol14 days1-2/+9
| | | | | LV_AUTOPLAY_SAMPLE(非巡游)仍走旧 64x48 以确保既有录像可复现; LV_RIVERSCAPE_TOUR=1 时才启用 256x192 生成器世界。新增 world-mode 启动日志。
* feat(mapgen): 默认可玩世界接入生成器 + 河景细节(P20 ↵Somhairle H. Marisol14 days1-22/+103
| | | | | | | | | | | | 第三步 B) - Game:默认 256x192 生成器世界(核心可达区站位),LV_LEGACY_MAP=1 / LV_MAP_SCALE>1 / LV_MAP_TOUR=1 回退旧路径;StartNewGame 走同一站位。 - VillageArt.drawWorld 新增 pixel 与 mapGen option:Some 时按生成器瓦片绘地面 并叠加桥面/沿河民居/门,跳过 64x48 样例平面与道具;水波沿用 waterFrameTickAt。 - 新增 bridgeLanternTiles;夜间 LanternGlow 沿用既有预乘同心圆(无过曝白芯), 生成器世界用桥头灯笼。 - 新增 LV_RIVERSCAPE_TOUR 真走位巡游与 LV_RECORD_NAME 录屏前缀(证据用)。
* feat(mapgen): 河道连续性不变量 + 桥/石板路网/沿河民居(P20 ↵p20-map-gen-foundationSomhairle H. Marisol14 days1-20/+30
| | | | | | | | | | | | | 第二步) - 河道改为贯穿全图连续水带(每列一段、宽度 >= RiverWidth),置于核心区上下 两侧且不相交;新增不变量测试:逐列水段数恒定、每段宽度下限、任意水格 >=2 个水邻居(禁止断裂缺口与孤立水点)。 - Result 新增 Rivers/Bridges/Paths/Buildings/BridgeCrossingsOk;每河 2 座桥、 横贯主路 + 垂直连接路 + 远岸路 + 白墙黑瓦民居(门朝路)。 - 公开 isWalkable/floodFill;ReachabilityOk 现覆盖 30 spawn + 所有门 + 所有桥面, BridgeCrossingsOk 保证每桥两岸同连通域。 - 回归:Desktop 115->119、Kernel 90 不变;final_digest 与基线一致。
* feat(mapgen): 参数化确定性生成器与视口裁剪(P20 第一步)Somhairle H. Marisol14 days1-15/+110
| | | | | | | | | | - 新增纯函数 MapGen:尺寸参数化(默认 64x48,可 256x192),splitmix64 随机游走河道 + 2-3 octave value noise + 泊松式布点;核心区整平后以 BFS 校验 5x6=30 个 spawn 全部可达,不可达确定性修整并复验。 - visibleTileRange/visibleTileCount 纯函数,drawWorld 改为调用之(行为不变); drawMapFitted/drawMapViewport 仅证据用。 - 存档沿用 v2/v3 边界字段,补参数化边界 round-trip 测试,未改 Sim 语义。 - 回归:Desktop 109->115、Kernel 89->90;final_digest 与基线一致。
* feat(desktop): P18 黄昏暖色真实渲染(加性暖色 veil + ↵Somhairle H. Marisol14 days1-0/+8
| | | | 双窗口光照 + 时段标签对齐)
* fix(desktop): P17-FIX 起时钩子在 sample/autoplay ↵Somhairle H. Marisol14 days1-11/+15
| | | | 路径生效(resolveStartTick 纯函数 + 回归 + 重拍证据)
* test(desktop): P17 取证钩子(LV_AUTOPLAY_START_HOUR 纯函数起时)+ ↵Somhairle H. Marisol14 days1-1/+14
| | | | 证据与 docs 记录
* feat(desktop): P16-FIX 开始界面截图模式(LV_AUTOPLAY_MENU_SHOT)+ ↵Somhairle H. Marisol14 days1-12/+41
| | | | 真实菜单证据补拍
* feat(desktop): P16 HUD ↵Somhairle H. Marisol14 days1-37/+57
| | | | 顶部窄信息条(时段/时间/倍速/体力/钱币)+ 冬夜冷色 + 面板/提示渐变重绘
* feat(desktop): P16 启动画面淡入(Esc/空格跳过)+ ↵Somhairle H. Marisol14 days1-28/+82
| | | | 开始界面收敛三项(开始/读档/退出)+ CJK 补字 238
* feat(desktop): P15 ↵Somhairle H. Marisol14 days1-5/+33
| | | | | | | | | | | | | 开局职业选择页——新档四选一+暂不选择,接入 v3 存档与当日任务 - MenuState:新增 OccupationSelect 页与 StartNewGameWith 命令;occupationOptions=农夫/渔夫/货郎/书生/暂不选择, 默认高亮「暂不选择」= 不写职业的旧行为;四选一确认后发 StartNewGameWith,ESC 返回主菜单(既有 MainMenu 行为与测试不变)。 - WorldBootstrap.occupationStateFor/refreshOccupationToday:按 seed+职业种子生成/跨日刷新当日 Offered 任务。 - Game:主菜单「开始新游戏」→ 职业选择页;选定后 initialWorldWithOccupation 注入 Money/Energy 与 Today, m5View.Task 随之写入 v3 存档;游玩中按日刷新;autoplay/flow 默认走「暂不选择」保持旧演示行为;DrawMenu 渲染职业页。 - 测试 Desktop 93(新增 6):职业页选项顺序/默认 None/标签、确认命令与返回、bootstrap 四职业 Money/Energy+当日池内 Offered 任务、四职业 v3 round-trip(职业+任务逐字段)、T 面板显示所选职业的模板名与「待接受」、跨日刷新保持同日。
* fix(desktop): 灯笼光晕按自身 alpha ↵Somhairle H. Marisol14 days1-10/+10
| | | | | | | | | | | | | 预乘并改径向层叠,消除夜间纯白方块 - 新增 VillageArt.premultiply:MonoGame SpriteBatch 默认预乘混合,直传 Color(r,g,b,a) 会直接加 rgb 导致多层暖色饱和成 75x75 纯白块 - lanternGlowLayers 用同心圆 pixel run 做径向衰减,逐层预乘,只在 RiverLantern 实体处绘制 - 水面相位改 waterFrameTickAt=(tick/32+x+2y)%3,同一帧相邻砖相位不同 - 炊烟改为 drawWorld 末尾独立一遍,位置 offsetTile 0 -3,画在屋瓦/竹子之上 - 角色脚底对齐 characterFeetOffset=16 并加预乘椭圆接触阴影 - 补全 Interaction.itemName 的 ItemKind 匹配(否则非 Food 交易会崩溃且告警)
* feat(desktop): 接入角色走路/待机动画并参数化录帧Somhairle H. Marisol14 days1-4/+21
| | | | | | | - 新增 avatarMoving(比较前后位置)驱动走路/待机帧切换, 覆盖采样、地图巡游与手动输入三条路径 - 录帧目录与间隔改为环境变量 LV_RECORD_DIR / LV_RECORD_EVERY (默认 /tmp/lv-p5-prompt、25),便于证据落到指定目录
* feat(desktop): P12 中文每日任务面板——T ↵Somhairle H. Marisol14 days1-3/+5
| | | | 键任务页、Offered/Active/Done 三态+职业名,存读档字段级携带职业
* fix(desktop): RiverLantern 模式限定消除TW + 中文维护文档Somhairle H. Marisol2026-09-211-1/+1
| | | | Game.fs 733/741 两条编译警告(FS0049 未限定模式绑 + FS0026 不可达)由 Qualified VillageArt.RenderPropKind.RiverLantern 修复,全仓 0 警告;Leader 所指 Interaction.fs:191 并无编译警告(已记录于验资说明);docs/维护说明.md 首开:模块职责/O 不变量/信息 digest 变化处理/可复制命令。
* feat(desktop): 地图巡游模式自动入场Somhairle H. Marisol2026-09-211-1/+1
| | | | LV_MAP_TOUR 需自动开局(复用 LV_AUTOPLAY 的菜单自动确认路径),更新 autoplay 判定并提交;巡游/周边日志等已在前一单。
* feat(desktop): 512x384 程序生成地图与巡游取证模式Somhairle H. Marisol2026-09-211-1/+42
| | | | ProceduralMap 纯函数生成器:splitmix64 随机游走河道(三条西→东,宽 3,穿核心禁入)、三倍频值噪声草地/泥炭变化、泊松式最小距离布点(800 次尝试),村核矩形(24..38 x 16..34)由生成器不变式保证可通行;VillageArt 于大世界模式下按 terrain code 逐格绘制(可视化范围裁剪,无每帧分配);Game 新增 LV_MAP_SCALE(默认 1,表示规模倍数)与 LV_MAP_TOUR 巡游采样(八个地标位置含角/中心/河带);快照回归断言:同 seed 逐字节一致、异 seed 必然差异、核心矩形无水面。
* fix(desktop): 夜灯光晕径向衰减防过曝Somhairle H. Marisol2026-09-211-4/+8
| | | | 夜晚灯笼光晕由三层高不透明矩形改为四层宽环径向衰减(外圈 alpha 9→渐强),核心亮度压到 34 并去掉全白芯层,灯笼本图块在夜色下保持可读;Xvfb 夜景 hěllo 帧自证:暖色簇 776/745 采样像素、近白过曝核心消失。
* feat(desktop): 标题画面两秒确定性入场动画Somhairle H. Marisol2026-09-211-7/+11
| | | | entranceProgress 纯函数按帧计数(固定 60Hz 步长,禁实时时钟):黛瓦天际线自上 36px 落定、标题自下 24px 升起、水面带 2s 淡入、灯笼/面板同步;快照回归断言进度锚点(0/60/120/超时)与确定性;LV_AUTOPLAY_FLOW 标题停留 60 帧可直接采样入场过程。
* feat(desktop): 确定性昼夜光照过渡与夜灯暖光Somhairle H. Marisol2026-09-211-0/+15
| | | | 新增 lightingBlend 纯函数(黎明明 4:00-6:00、暮色 20:00-22:00 线性过渡,边界与 isNightTick 对齐),天空底色/世界 tint 按混合插值渲染,夜晚灯笼暖光晕强度=LanternGlow(纯叠加矩形、无每帧分配风险);回归测试含锚点/单调斜坡/确定性/光晕开关。
* test(desktop): LV_AUTOPLAY_RECORD 情境提示采帧Somhairle H. Marisol2026-09-211-0/+17
| | | | LV_AUTOPLAY_RECORD=1 且样例模式下每 25 帧经 GetBackBufferData 保存 PNG 到 /tmp/lv-p5-prompt/,用于靠近→提示→交互→关闭→离开片段取证;仅记录模式触发,不影响普通运行路径。
* feat(desktop): 目标上方浮动情境提示Somhairle H. Marisol2026-09-211-0/+13
| | | | 新增 FloatingPrompt 纯布局模块(含 measureWidth 与 PixelText 等宽规则):短提示锚定在唯一目标头顶上方,水平居中并钳制在视口内,避开左下 HUD 带(height-160)与右上状态条带(宽度 248);沿用现有 CJK 图集字体路径,不新造字形;对话/需求面板与菜单打开时不显示(复用 worldInputAllowed 判定与渲染门)。回归测试覆盖 1280x720/1920x1080 五个极限锚点、宽度测量、面板开启时提示为空且禁用世界输入。
* fix(desktop): 键位页面板锚点与行列对齐Somhairle H. Marisol2026-09-211-5/+6
| | | | 键位页内容行与标题改为相对 ControlsPanelY 锚定(标题=面板顶+20、首行=面板顶+60),controlRowRects 同步采用该锚点;实测末行与页脚不再重叠,逐行键名/动作列保持不相交。
* fix(desktop): 键位页键名列统一宽度不叠印Somhairle H. Marisol2026-09-211-1/+5
| | | | Controls 页按键名列独立成列(ControlsKeyX/KeyWidth=120/ActionX),controlRowRects 纯函数返回键名与动作矩形,回归测试断言逐行矩形不相交、全部行键名列 x/宽度一致、列宽容纳最长键名 F1/F2/F3;面板上移至 ControlsPanelY 保证 14 行键位加页脚完整落入视口。
* fix(desktop): 标题菜单光标与文字分列不再叠印Somhairle H. Marisol2026-09-211-7/+11
| | | | 根因:页面标题行(panelY+24)与首行内容(MenuTopY)同为 y=320 造成两串文字叠印。修复:TitleScreen 布局新增 HeadingY/FirstItemY 分层与独立光标列(CursorX/CursorWidth/TextX),selectionRects 纯函数返回光标与文字矩形,回归测试断言逐行矩形不相交且标题行净空≥32px;渲染改为光标、文字分别绘制。
* test(desktop): 自动演示在标题与键位页停留取证Somhairle H. Marisol2026-09-211-1/+17
| | | | LV_AUTOPLAY_FLOW 在主菜单标题画面与操作说明页各停留 60 帧,使 10fps 录屏可稳定采样两页证据帧;其余流程步骤与日志保持不变。
* feat(desktop): P 键暂停帮助页Somhairle H. Marisol2026-09-211-3/+14
| | | | P 键改为打开暂停帮助页(完整键位说明),打开时暂停模拟并保留原控制状态,返回游戏时精确恢复(速度/暂停原状);常驻 HUD 不放全键位清单。MenuState 新增 enterPauseHelp/exitPauseHelp 纯函数与回归测试。
* feat(desktop): 顶部极简状态条Somhairle H. Marisol2026-09-211-0/+13
| | | | 常驻 HUD 新增右上角半透明状态条:天数(world.Tick/ticksPerDay+1)与金钱/精力(直接取自 avatar.Mind.Needs 真实数据,无编造数值源);新增 cornerStatusLines 纯函数与回归测试,UI 文案目录补 天数/金钱/精力(字符表已含,无需重生成图集)。
* feat(desktop): 江南氛围标题画面Somhairle H. Marisol2026-09-211-22/+66
| | | | 新增 TitleScreen 纯布局模块(确定性、可测):五段暮色渐变天幕、黛瓦屋脊/檐口轮廓带(复用图集 8/9 号地块)、水面倒影带(1 号地块)、岸边灯笼光晕、江南水乡四倍大字标题;主菜单改为纵向简洁排布浮于其上,子页面板按内容自适应高度,去除全屏暗色遮罩大黑块。Xvfb 截图像素自查通过。
* feat(desktop): 江南水乡河道横贯与波纹两帧Somhairle H. Marisol2026-09-211-0/+1
| | | | 场景改为沿村蜿蜒水带(北岸凸湾、中段横贯、南段收窄),南北两岸石板路沿河展开,木桥三块纵跨全河连接民居门前石径;水面新增第二张波纹图块,按世界 tick/32 取模确定性交替,绘制无新增每帧分配。
* fix(desktop): 修复 HUD 缺字并统一轻量面板与情境提示Somhairle H. Marisol2026-09-211-15/+34
| | | | 字符表扩充至 197 字(补 间/门/谈/体/屋/返/×/,/:等全部 UI 用字),用 Noto Sans CJK 重新生成图集并逐字校验;新增字符表覆盖全部 UI 文案、瞬态状态 2.5 秒过期、对话完成后回到轻量面板等回归测试;户外与室内统一左下角轻量 HUD,互动日志改为短暂反馈;样例脚本保留 E 交谈 提示与对话菜单停留帧。
* feat(desktop): 增加可选昼光自动演示启动Somhairle H. Marisol2026-09-211-2/+5
| | | | | | | | | | | | | | | | | [变更性质] - 本提交新增可选的 Desktop 启动行为,不改变默认启动行为。 [新增功能] - 设置 LV_AUTOPLAY_DAYLIGHT=1 时,初始世界和 StartNewGame 从黎明 tick 开始。 - 未设置该变量时继续从 tick 0 的夜晚状态开始。 [实现方案] - 在 WorldBootstrap 中集中计算昼光起始 tick 和同步时间。 - 在 Game 中复用同一世界工厂,并增加黎明与默认状态回归测试。 [影响范围] - 仅影响 Desktop 运行时代码和测试;Kernel 保持不变。 - 环境变量为显式 opt-in,不影响现有自动演示和普通启动路径。
* feat(desktop): 固化样例世界与昼光呈现Somhairle H. Marisol2026-09-211-4/+7
| | | | | | | | | | | | | | | | | [变更性质] - this commit adds a deterministic desktop bootstrap for the playable sample world. [新增功能] - this commit places the avatar away from the home doorway and separates villagers from scene footprints. - this commit provides a warm high-contrast daylight tint and exits autoplay after SampleComplete. [实现方案] - this commit isolates desktop spawn policy in WorldBootstrap and routes game startup and sample tests through it. - this commit adds regression coverage for spawn positions, spacing, determinism, and daylight tint. [影响范围] - this commit affects the Desktop application and Desktop tests only. - this commit preserves Kernel behavior and does not include unrelated worktree changes.
* feat(desktop): LV_AUTOPLAY_SAMPLE 情境演示脚本Somhairle H. Marisol2026-09-211-5/+29
| | | | | | | | 新增 SampleScript 状态机:进门→内景驻留→出门→走向 NPC →打开对话→发送意图→关闭面板→走开,超时兜底进 SampleComplete。 Game.fs 读取 LV_AUTOPLAY_SAMPLE=1 切换 sample 模式(2x 模拟、 关闭旧 step 倍率、UpdateMenu 常开、独立 UpdatePlaying 分发)。 SampleTests 覆盖首步行走、进门、完整巡游(42/42 通过)。
* feat(desktop): 江南美术改为真实 PNG 图集Somhairle H. Marisol2026-09-211-3/+6
| | | | | | | | - scripts/make-jiangnan-art.py 生成三张原创透明 PNG:世界 256x32、角色 1024x48、内景 392x96 - VillageArt.fs 移除进程内像素烘焙,改为 BaseDirectory 加载图集并校验尺寸 - 内景渲染改用图集(地板/墙/窗/桌/床/屏/毯/柜),新增玩家专属 StrawHat 变体 - 内景新增地毯与柜子装饰,角色按 FeetPosition 定位 - fsproj 随包复制三张 PNG;m6c-package.sh 校验三张 PNG 进入交付包
* feat(m6c): 完成江南村庄中文交付Somhairle H. Marisol2026-09-211-159/+102
| | | | | | | | | | 完成江南村庄场景、角色表现和中文界面的 M6c 交付范围。 新增 CJK 字形图集、中文文案与运行时加载,补充民居情境交互和确定性村庄美术表现。 更新资源复制与 Linux/macOS 打包校验,加入 188 字符清单、资源许可说明和对应原型测试。 补充江南美术方向与 M6c 交付说明,并保持原有模拟内核和桌面构建入口不变。
* feat(m6b): add playable menu and save flowSomhairle H. Marisol2026-09-201-78/+289
| | | | | | | | | | | | | | | | | [Change Nature] - This commit adds the M6b desktop menu and persistence integration. [New Capability] - Provide new game, continue, settings, controls, load error, save, load, and exit flows. - Provide a bounded autoplay flow covering menu navigation and persistence. [Implementation] - Add pure menu state transitions and focused M6b coverage. - Connect menu commands to simulation controls, WorldSave, view resets, and rendering. [Impact] - Desktop runtime gains the playable M6b front end without changing out-of-scope files. - Release focused and solution test suites remain passing.
* feat(m6a): add save speed and day-night controlsSomhairle H. Marisol2026-09-201-10/+67
|
* feat(m5): 增加可交互对话、需求观察与编年史Somhairle H. Marisol2026-09-201-7/+126
| | | | | | | | | | | | | | | [变更性质] - 本提交新增 M5 用户能力,不是缺陷修复。 [新增功能] - 增加玩家六意图对话、需求面板、可见 NPC 观察、编年史与因果谣言冒烟验收。 [实现方案] - 在 Kernel 中扩展 Avatar Mind、对话结果、观察数据、Annals 和确定性谣言链。 - 在 Desktop 中加入键盘交互、像素文本面板和运行时状态展示,并补充 Headless 与测试覆盖。 [影响范围] - 覆盖 Kernel、Headless、Desktop 及测试工程;保留既有 M3/M4 确定性与交易、关系、谣言行为。