胜利终局 Truth Source v1.0
整理时间: 2026-07-02 11:58:51 +08:00 整理人: Codex(长工 truth-source lane) 依据:
docs/design/active/产品需求总览-v1.md§ 8.2 D3docs/plans/active/2026-07-06-5日开发计划-v1.md§ Day 1 / R2docs/handoff/tasks/2026-07-06-victory-endgame-truth-source.mddocs/handoff/tasks/2026-06-29-victory-endgame-placeholder.mddocs/design/completed/systems/endgame-save-load-design.mddocs/design/completed/systems/failure-endgame-design.mddocs/plans/active/week-plan-2026-07-01-tools-entry-and-year1-mainline.md§ Lane 1docs/specs/data/tongfu-data-structure-and-table-spec.mdsrc/data/account/README.mdsrc/data/account/types.tssrc/data/playthroughs/types.ts本文档作用: 只拍板胜利终局的 4 件事边界: 触发条件 / 收束页 / 快照·新周目·继承 / 跟 Year 1 对接。 本版不是实现稿: 不写具体规则数值,不实现 UI,不改src/endgame/**,不改failureEndgame.ts,不改docs/handoff/**。
0. TL;DR
- 胜利成立 =
经营+关系+名声+时间四维 AND 复合判定,不是单维通关。 - Year 1 的唯一第一锚点只认
第 360 天 / 跨年之夜,不再放宽成±7 天游离窗口。 - 收束页只认 4 块:
年度总账/关系快照/名声定格/江湖阅历折算预览。 - 快照 / 新周目 / 继承只承认既有
PlaythroughSaveSlot与GlobalProfile边界;本 v1.0 不批准新增 victory 专用 schema /localStoragekey /GlobalProfile字段。 - 胜利终局与失败终局平行存在;D3 只定胜利 truth source,不改失败链。
1. 胜利触发条件
1.1 固定公式
胜利成立 =
经营成立
AND 关系成立
AND 名声成立
AND 时间命中 Year 1 第一锚点
1.2 四个维度的边界
| 维度 | 本版承认什么 | 数据来源 | 本版明确不承认什么 |
| :--- | :--- | :--- | :--- |
| 经营 | Year 1 收官时客栈仍处于“可收官经营稳态”;只承认第一年闭环已经在运行态里沉淀出的经营面结果 | 当前周目 PlaythroughSummary / 周目运行态汇总 / Year 1 主线闭环验收表 | 不在 D3 新增胜利专用经营字段;不把联机 / 道具 / 第二年压力并入 |
| 关系 | 当前周目核心羁绊网络在岁末形成“没有散伙,能一起过完第一年”的关系收束 | BondStates 与 Year 1 岁末关系快照 | 不把外部 NPC、第二层角色专题、单条恋爱线单刷胜利并入 |
| 名声 | 只承认当前周目的年终名声定格,用于说明“这家客栈值不值得进入胜利收束” | PlaythroughSummary.reputation + Year 1 年终总结口径 | 不在 D3 先拍死新的跨周目名声计数器名;不把 legacyPoints 当名声 |
| 时间 | 只认 Year 1 第 360 天 / 跨年之夜 这一处主线终结节点 | week-plan-2026-07-01-tools-entry-and-year1-mainline.md § Lane 1 + 当前周目 gameTime | 不承认 ±7 天 漂移窗口;不承认第二/第三年锚点 |
1.3 复合判定语义
- 四维关系固定为 AND: 任一维度不成立,胜利都不触发。
第 360 天 / 跨年之夜之前的任何铺垫,只算“接近收官”,不算正式胜利。- 本版只定“算什么”;具体阈值、具体比较符号、提示文案全部留到 v1.1。
2. 收束页结构
2.1 收束页固定为 4 块
| 块 | 承认内容 | 数据来源 | 本版明确不做 |
| :--- | :--- | :--- | :--- |
| [1] 年度总账 | 第一年的经营总账、主线完成度、风险收束摘要 | 当前周目 PlaythroughSummary、Year 1 闭环验收项、周目侧汇总数据 | 不把完整事件回放或整段剧情 replay 塞进账号档 |
| [2] 关系快照 | 岁末核心羁绊定格,说明“这一年最后关系站在什么位置” | BondStates 快照与岁末关系汇总 | 不展开长篇剧情对话回放 |
| [3] 名声定格 | 年终名声值与对应的收官语气/档位 | PlaythroughSummary.reputation 与 Year 1 年终总结口径 | 不在 D3 增加新的跨周目名声结算键 |
| [4] 江湖阅历折算预览 | 本周目可写回的阅历结果预览,以及它将写回到哪里 | GlobalProfile.legacyPoints、GlobalProfile.lastSettlement、现有 settlement bridge 口径 | 不把完整 slot 快照写进 GlobalProfile |
2.2 收束页的边界说明
- 收束页是“看得懂的年终收官页”,不是新的长剧情系统。
- 收束页展示的是摘要,不是完整存档载体。
- 任何不在当前周目 summary 里的明细,都应继续留在 playthrough 侧,不能为了胜利页去扩
GlobalProfile。
3. 快照 / 新周目 / 继承关系
3.1 本版只拍“状态边界”,不拍新 schema
当前周目收官
-> 生成紧凑 settlement 摘要
-> 玩家选择是否开新周目
-> 如开新周目,只把既有 GlobalProfile 字段做跨周目累加
3.2 已拍板的边界
GlobalProfile继续只保存跨周目账户态,不保存 live run、完整 slot payload、完整回放细节。lastSettlement继续只保存 compact settlement summary,不升级成 victory 专用大对象。- 周目本体继续留在
PlaythroughSaveSlot/ playthrough vault 体系,不倒灌进账号档。 - 后续实现必须优先复用既有 slot 生命周期(
active / endgame / settled / archived)与 recovery refs;如果想新增 victory 专用状态,必须另开 truth source。
3.3 继承只承认既有字段
本 v1.0 只承认把结果写回到既有 GlobalProfile 结构:
legacyPointsunlockedAchievementspurchasedLegaciesglobalCounterslastSettlement
3.4 本版明确不批准的命名/做法
- 不批准在 D3 直接拍死
victory-snapshot、victory-snapshot-at、victory_*这类新键名。 - 不批准新增 victory 专用
localStoragekey。 - 不批准把完整收束页、完整 replay、完整 slot 数据直接塞进
GlobalProfile。 - 不批准为了胜利终局新发明一套独立于现有 settlement bridge 的继承写回机制。
4. 跟 Year 1 主线闭环的对接
4.1 唯一第一锚点
- Year 1 的胜利终局只认
第 360 天 / 跨年之夜。 岁末团圆饭 -> 年终总结 -> 跨年之夜是当前已承认的 Year 1 收官链。- 胜利终局是这条收官链的“成功收束口”,不是独立于主线之外的旁路触发。
4.2 对接语义
- 只有当 Year 1 主线已经走到
跨年之夜,才允许检查胜利四维。 - 若当前周目已经落入失败终局链,则不在 D3 里再补“提前转胜利”的旁路。
- 第二年 / 第三年锚点、多周目胜利节奏、失败胜利互斥细则都留到 v1.1。
4.3 跟 placeholder task 的关系
docs/handoff/tasks/2026-06-29-victory-endgame-placeholder.md继续保持pending。- 本文件只提供 v1.0 边界母本,不自动把 placeholder 升成实现 lane。
- 待 v1.1 补完阈值数值、互斥细则和多周目锚点后,再决定是否吸收 placeholder。
5. 主会话待拍板点整理
这一节就是给 P1 用户签字用的最小清单。主会话只需要逐条确认“接受 / 退回调整”。
| # | 待拍板点 | 推荐口径 | 通过后影响 |
| :--: | :--- | :--- | :--- |
| A | 胜利是否坚持四维 AND 复合判定? | 接受 | 阻止“单维爆表就提前通关” |
| B | Year 1 的第一锚点是否只认 第 360 天 / 跨年之夜? | 接受 | 直接删除 ±7 天 漂移解释 |
| C | 关系维度是否按“Year 1 核心羁绊节点集达线”处理,而不是单条人物线单刷? | 接受 | R1 角色属性接线与岁末关系快照能共用同一口径 |
| D | 名声维度在 v1.0 是否只读当前周目年终名声,暂不新拍跨周目名声计数器名? | 接受 | 避免先把不存在的 GlobalProfile 计数器拍成硬依赖 |
| E | 收束页是否只保留 4 块摘要,不在 D3 扩成长篇叙事 / 详细 replay? | 接受 | 收束页继续是 summary 层,不挤占剧情/回放 lane |
| F | 继承是否只承认既有 GlobalProfile 字段与紧凑 lastSettlement,不批准 victory 专用新键? | 接受 | 后续实现必须走现有 bridge 和 schema 边界 |
5.1 主会话签字记录(2026-07-03 14:20 +08:00)
主会话(P1 用户)已对 § 5 的 A-F 全部签字,采纳口径如下:
- A:接受(四维 AND 复合判定)
- B:接受(第 360 天 / 跨年之夜 唯一第一锚点)
- C:接受(Year 1 核心羁绊节点集达线,不单条人物线单刷)
- D:接受(名声只读当前周目年终名声定格)
- E:接受(收束页只 4 块摘要)
- F:接受(继承只承认既有
GlobalProfile字段 + 紧凑lastSettlement,不开新键)
签字时间: 2026-07-03 14:20 +08:00
签字会话: mvs_024c77d9a55549c98e3731c1cc770434(本会话)
对应 task 卡已同步: docs/handoff/tasks/2026-07-06-victory-endgame-truth-source.md(current state 升 verified)
Day 1 R2 主任务解锁,可继续 Phase 1 / Phase 5 等下游 lane。
6. 明确划走的事项
- ❌ 4 个维度的具体数值阈值
- ❌ 胜利 / 失败互斥的细粒度先后规则
- ❌ 第二年、第三年胜利锚点
- ❌ 收束页 UI、动效、音乐、剧情演出
- ❌ 关系网络图具体渲染
- ❌ 新增 victory 专用 schema、slot flag、
localStoragekey - ❌
src/endgame/**任何代码修改 - ❌
failureEndgame.ts任何修改 - ❌
docs/handoff/**任何修改
7. 本文件何时算 D3 准备完成
以下条件同时成立,才算 D3 边界准备完成:
- ✅ 已签字(主会话 2026-07-03 14:20 +08:00,见 § 5.1)。
- 本文件继续作为
docs/design/active/胜利终局-truth-source-v1.md的唯一母本。 docs/handoff/tasks/2026-06-29-victory-endgame-placeholder.md继续保持pending。- 后续若要进入实现面,必须另开 v1.1 补阈值数值 / 互斥规则 / 多周目锚点。
7.1 D3 准备完成状态(2026-07-03 更新)
第 1 条已达成。建议 PM 在合适时机把 task 2026-07-06-victory-endgame-truth-source 升 verified(已在本会话同步完成,2026-07-03 14:20);placeholder 2026-06-29-victory-endgame-placeholder 继续 pending 至 v1.1 拍阈值 / 互斥 / 多周目。
8. 参考入口
| 想看什么 | 去这里 |
| :--- | :--- |
| D3 决策点 | docs/design/active/产品需求总览-v1.md § 8.2 |
| Day 1 / R2 任务 | docs/plans/active/2026-07-06-5日开发计划-v1.md |
| Year 1 第一锚点 | docs/plans/active/week-plan-2026-07-01-tools-entry-and-year1-mainline.md § Lane 1 |
| 胜利 placeholder | docs/handoff/tasks/2026-06-29-victory-endgame-placeholder.md |
| 当前 D3 task card | docs/handoff/tasks/2026-07-06-victory-endgame-truth-source.md |
| 终局存读档边界 | docs/design/completed/systems/endgame-save-load-design.md |
| 失败终局边界 | docs/design/completed/systems/failure-endgame-design.md |
| 账号边界 | src/data/account/README.md |
| 账号 settlement 结构 | src/data/account/types.ts |
| 周目 slot 边界 | src/data/playthroughs/types.ts |