№ · 活跃设计 CH.07.03
主页 · 📐 活跃设计 · 胜利终局 Truth Source v1.0

胜利终局 Truth Source v1.0

📅 2026-07-03 · 📦 10.9 KB · 📐 活跃设计 · 📝 MD 文档 🏷️ 真值🏷️ 设计🏷️ Year1🏷️ 时间🏷️ 终局

整理时间: 2026-07-02 11:58:51 +08:00 整理人: Codex(长工 truth-source lane) 依据:

  • docs/design/active/产品需求总览-v1.md § 8.2 D3
  • docs/plans/active/2026-07-06-5日开发计划-v1.md § Day 1 / R2
  • docs/handoff/tasks/2026-07-06-victory-endgame-truth-source.md
  • docs/handoff/tasks/2026-06-29-victory-endgame-placeholder.md
  • docs/design/completed/systems/endgame-save-load-design.md
  • docs/design/completed/systems/failure-endgame-design.md
  • docs/plans/active/week-plan-2026-07-01-tools-entry-and-year1-mainline.md § Lane 1
  • docs/specs/data/tongfu-data-structure-and-table-spec.md
  • src/data/account/README.md
  • src/data/account/types.ts
  • src/data/playthroughs/types.ts 本文档作用: 只拍板胜利终局的 4 件事边界: 触发条件 / 收束页 / 快照·新周目·继承 / 跟 Year 1 对接。 本版不是实现稿: 不写具体规则数值,不实现 UI,不改 src/endgame/**,不改 failureEndgame.ts,不改 docs/handoff/**

0. TL;DR

  • 胜利成立 = 经营 + 关系 + 名声 + 时间 四维 AND 复合判定,不是单维通关。
  • Year 1 的唯一第一锚点只认 第 360 天 / 跨年之夜,不再放宽成 ±7 天 游离窗口。
  • 收束页只认 4 块: 年度总账 / 关系快照 / 名声定格 / 江湖阅历折算预览
  • 快照 / 新周目 / 继承只承认既有 PlaythroughSaveSlotGlobalProfile 边界;本 v1.0 不批准新增 victory 专用 schema / localStorage key / 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.legacyPointsGlobalProfile.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 结构:

  • legacyPoints
  • unlockedAchievements
  • purchasedLegacies
  • globalCounters
  • lastSettlement

3.4 本版明确不批准的命名/做法

  • 不批准在 D3 直接拍死 victory-snapshotvictory-snapshot-atvictory_* 这类新键名。
  • 不批准新增 victory 专用 localStorage key。
  • 不批准把完整收束页、完整 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、localStorage key
  • src/endgame/** 任何代码修改
  • failureEndgame.ts 任何修改
  • docs/handoff/** 任何修改

7. 本文件何时算 D3 准备完成

以下条件同时成立,才算 D3 边界准备完成:

  1. 已签字(主会话 2026-07-03 14:20 +08:00,见 § 5.1)。
  2. 本文件继续作为 docs/design/active/胜利终局-truth-source-v1.md 的唯一母本。
  3. docs/handoff/tasks/2026-06-29-victory-endgame-placeholder.md 继续保持 pending
  4. 后续若要进入实现面,必须另开 v1.1 补阈值数值 / 互斥规则 / 多周目锚点。

7.1 D3 准备完成状态(2026-07-03 更新)

第 1 条已达成。建议 PM 在合适时机把 task 2026-07-06-victory-endgame-truth-sourceverified(已在本会话同步完成,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 |