v0.1.9: 百年报告 & 发布之窗(报告/迁移/阵型/冬祷/哨兵)

- 百年族史报告:buildReport 纯函数(人口/声望/战力三线、死因榜、突破密度、
  大比战绩、代际长度带)+ 春秋原 SVG 折线视图 + 自动措辞结语
- 存档迁移管线 v2:migrate 链(v1→v2)+ 未来版本拒载(TOO_NEW)+ 导出信封
  带 appId/schemaVersion + 导入全链路迁移校验;saveState 自动写 CURRENT_SCHEMA
- 战斗阵型:锋阵(+10%攻)/雁阵(御5%+溃伤-15%)/蛇阵(溃伤-30%),三处出战接入
  (遣队/大比/劫掠)点将面板下拉 + 战报首行标阵
- 冬至岁祷:每年十一月三选(观星+3声望/祈福全族修为/问卜吉凶)
- 发布准备:scripts/verify-release.mjs 验收哨兵(npm run verify/verify:package)
  + README 全面重写(架构/守护/版本沿革);版本号三处归一
- 测试 861→881(报告四例/迁移五链/阵型六则含胜率统计/冬祷四则);
  金钟罩三指纹零漂移;typecheck/build 通过
This commit is contained in:
2026-08-23 10:11:22 +08:00
parent 3195f67455
commit f5a2c1b68a
18 changed files with 654 additions and 50 deletions
+43 -26
View File
@@ -1,43 +1,60 @@
# 仙途家族志 · Chronicle of the Immortal Clan
修仙 × 家族 × 经营 × 战斗的家族模拟器 0.1.0
## 玩法
修仙 × 家族 × 经营 × 战斗的家族模拟器Electron + React + TypeScript + MetonaSqlark
一座庄园、一家修士、四邻势力,随年月流转:族人修炼突破、建筑产出、探秘寻宝、婚丧嫁娶;
仇家犯境则结阵应战;史书自动记下百年兴衰 —— 玩家扮演「家族意志」,延续香火于仙途
仇家犯境则结阵应战;百年之际,望气定鼎,春秋原上写下一卷族史
## 开发
## 快速开始
```bash
npm install # 依赖(含私有 registrygit.metona.cn
npm run dev # 开发模式(热更新
npm test # 引擎单元测试(vitest
npm run typecheck # 类型检查
npm run build # 构建 out/
npm run package # 打包桌面安装包(electron-builder
npm install # 依赖(含 git.metona.cn 私有 registrytoken 在用户级 ~/.npmrc
npm install-scripts approve electron esbuild # npm12 首装时必须(Electron 二进制
npm run dev # 开发模式(热更新
npm run verify # 发布验收哨兵:vitest + typecheck + build
npm run verify:package # 附打包预览(electron-builder
npm run package # 直接打包(Windows 需在 Windows 侧执行
npm test # 仅测试(861+ 用例)
```
冒烟(主进程渲染 + OPFS 数据库就绪检查):
## 架构一览
```bash
npm run build && SMOKE_TEST=1 npx electron out/main/index.js --no-sandbox
```
src/renderer/game/ 纯 TS 引擎(无 React/DOM,可被 vitest 直测)
core/ rng(RngHub) · clock(GameClock·7相位) · plugin · legacy · report · yearaxis · biography · genealogy
data/ balance 表 + DataPackRegistry(数据包可覆写)
engine/ world · clocks(注册) · pluginManager(∃插件管线) · capabilities(12 能力卡) · api(GameFacade act/query/subscribe/about)
systems/(生产·寿元·修炼·任务·事件·外交·婚育·渡劫·大比·寄读)
storage/ db(MetonaSqlark 单例) · slots(存档槽+快照) · migrate(版本迁移链 v1→v2)
src/renderer/ui/ React + zustandstore 持 GameFacade;面板订阅 revision 刷新)
src/main/ Electron 主进程(app:// 协议 + IPC 存档导出/导入)
```
## 技术栈
设计文档见 `AGENTS.md`(环境坑/架构红线/方言陷阱/金钟罩约定)。
- Electron + electron-vite + React + TypeScript
- 数据库:@metona-team/metona-sqlark 0.7.4aria 引擎 + OPFS),渲染进程内持久化
- 引擎:纯 TypeScript(无 UI 依赖),种子随机数(sfc32),确定性可回放
- 存储:每个存档槽一个 SQLark 库(快照滚动 12 份 + 编年史表),JSON 导出导入
## 守护机制
## 存档位置
- **金钟罩**tests/clock.test.ts 三枚固定 seed × 560 月指纹常驻(0.1.8 基线:9af71ecb/63cede89/ebfec4a4);有意变更时序需受控更新并注明。
- **插件化**:万物皆是插件(系统/数据包/事件池),示例见 tests/helpers/examplePlugin.ts。
- **可回放**:种子随机(sfc32)+ 闰档快照 + 回档时间轴。
OPFS 数据位于 Electron userData 目录下数据库文件(aria 引擎 WAL/SSTable)。
备份与迁移请用游戏内「设置 → 导出/导入」。
## 打包产物
## 已知限制(0.1.0
- `npm run package` → out/(构建)+ release/(安装包
- 图标资源 resources/icon.png|ico —— electron-builder 自动使用
- 注意:WSL/Linux 交叉打 win 包可行但未签名,正规发布请用 Windows 侧重跑
- 单机单窗口;MetonaSqlark aria 引擎的多标签页锁不构成影响
- 战斗为自动结算战报,不做手动回合操作
- 目前仅中文本地化
## 版本沿革(0.1.0 → 0.1.9
| 版本 | 主题 |
|---|---|
| 0.1.0 | 核心循环(修仙/家族/经营/战斗)完备可玩 |
| 0.1.1 | 养成闭环+回档+叙事(指婚/装备/祭祖/战报匣/年度纸笺) |
| 0.1.2 | 宗族气韵(职事/悟道/谱系/碑录/庆典/飞升/合音效) |
| 0.1.3 | 深度审计(旧档兼容/血缘/联姻/远征修复) |
| 0.1.4 | 百年定局(终局/大比/寄读/春秋原) |
| 0.1.5 | 人物志(志向/渡劫/列传/契合/回声) |
| 0.1.6 | 时轮与造化(GameClock/RngHub/时节/年轴/保护) |
| 0.1.7 | 仙门之钥(门面/能力注册表/数据包/开发者面板) |
| 0.1.8 | 万物皆是插件 + 全应用审计(60+ 缺陷歼灭) |
| 0.1.9 | 百年报告 + 存档迁移 v2 + 战斗阵型 + 冬祷 + 发布哨兵 |