Merge branch 'master' into art-standee-20261006
# Conflicts: # design/art/art-bible.md
This commit is contained in:
commit
4a65f9eb6d
428 files changed
+25789
-32790
No files matched your search
@@ -1,8 +1,8 @@
|
||||
# 美术资源依赖清单(Art Assets Checklist)
|
||||
|
||||
> **性质**:表现层升级批与战斗表现批的生产侧清单——把散在战斗表现 / HUD框架 / 关卡节点地图 / 敌人系统里的资产需求收拢成一张可执行的工单视图,**兼资产维度单一登记处**。**规范效力归各 owner 文档**(战斗表现、美术圣经、04-美术音频方向),本文只补「生产视角的需求规格」,冲突时以 owner 文档为准。
|
||||
> **建立**:2026-09-18 场景一(战斗画面呈现)讨论产物。**2026-09-22 GDD 过期账清偿批**:原 asset-checklist.md 并入本文后删除,本文自此为两份清单合并后的唯一清单;同批修正敌人键集/徽章数量/样张状态等过期事实(详见 art-bible 版本历史 v1.3)。**2026-09-22 §5 角色设计落地批**:剪影引用迁 art-bible §5.1、护甲区分方案落 §5.3(清偿两处待设计项)、提示词卡 v2.0 重生成(详见 art-bible 版本历史 v1.6)。**2026-09-23 复用盘点批**:立素材站复用渠道与复用闸(§0);新增 §3.4–3.6 三条此前漏登记的需求(增益状态效果图标 / 营地与元进度件 / 字体);各条目标注来源渠道。**2026-09-23 §5 抽离批**:角色设计内容迁独立文档 `character-design.md`(art-bible §5 自此为引用存根,小节号不变),本文 §5.x 剪影/护甲引用经存根仍可达;主角特征批(直剑→挖掘铲、加旗朱背旗)随批,主角形象锚见 character-design.md §5.4。**2026-09-23 §6–9 补全批**:art-bible 四章成文(§6 环境/§7 UI/§8 资产规范/§9 参考与反参考);本文 §0 交付格式与像素尺寸行、参考图行、§6 依赖链随批改指 §8/§9 现行。
|
||||
> **更新纪律**:各条目「现状」行随批更新(未开始 / 候选已出 / 已裁决 / 已交付);做完不删条目,改状态。与 06-待办清单的联动:本文是资产维度明细,06 只留指路存根。
|
||||
> **建立**:2026-09-18 场景一(战斗画面呈现)讨论产物。**2026-09-22 GDD 过期账清偿批**:原 asset-checklist.md 并入本文后删除,本文自此为两份清单合并后的唯一清单;同批修正敌人键集/徽章数量/样张状态等过期事实(详见 art-bible 版本历史 v1.3)。**2026-09-22 §5 角色设计落地批**:剪影引用迁 art-bible §5.1、护甲区分方案落 §5.3(清偿两处待设计项)、提示词卡 v2.0 重生成(详见 art-bible 版本历史 v1.6)。**2026-09-23 复用盘点批**:立素材站复用渠道与复用闸(§0);新增 §3.4–3.6 三条此前漏登记的需求(增益状态效果图标 / 营地与元进度件 / 字体);各条目标注来源渠道。**2026-09-23 §5 抽离批**:角色设计内容迁独立文档 `character-design.md`(art-bible §5 自此为引用存根,小节号不变),本文 §5.x 剪影/护甲引用经存根仍可达;主角特征批(直剑→挖掘铲、加旗朱背旗)顺带,主角形象锚见 character-design.md §5.4。**2026-09-23 §6–9 补全批**:art-bible 四章成文(§6 环境/§7 UI/§8 资产规范/§9 参考与反参考);本文 §0 交付格式与像素尺寸行、参考图行、§6 依赖链顺带改指 §8/§9 现行。
|
||||
> **更新纪律**:各条目「现状」行顺带更新(未开始 / 候选已出 / 已裁决 / 已交付);做完不删条目,改状态。与 06-待办清单的联动:本文是资产维度明细,06 只留指路存根。
|
||||
|
||||
## 0. 生产渠道、规格与风格宪法
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
| 渠道 | 出什么 | 先例 |
|
||||
|---|---|---|
|
||||
| ♻ **素材站复用(轻改)** | UI 九宫格面板与按钮、字体、通用粒子与光效、通用图标、无缝纹理底噪 | 无(2026-09-23 本批立渠道);来源偏好 CC0(如 Kenney 全站、OpenGameArt 标 CC0 件、itch.io 免费包) |
|
||||
| ✦ **ComfyUI(用户自跑)** | 角色、插画级素材;每个敌种/主角建议出 **2–3 版候选**供裁决,不直接出终稿 | 主角站姿样张(2026-09-16 脚本管线产物,源文件已清理);提示词规格卡 comfyui-prompts.md **v2.0 已重生成**(2026-09-22,美术圣经 §5 落地后正序重生;v1.0 移除决策归台账 125) |
|
||||
| ✦ **ComfyUI(用户自跑)** | 角色、插画级素材;每个敌种/主角建议出 **2–3 版候选**供裁决,不直接出终稿 | 主角站姿样张(2026-09-16 脚本管线产物,源文件已清理);提示词规格卡 comfyui-prompts.md **v2.0 已重生成**(2026-09-22,美术圣经 §5 落地后正序重生;v1.0 移除决策归状态记录 125) |
|
||||
| ⚙ **脚本管线(代理出)** | 图标、格面、样张类精度资产 | 格面占位渲染与程序化徽标(现行) |
|
||||
|
||||
**通用规格纪律**:
|
||||
@@ -26,10 +26,10 @@
|
||||
| 条款 | 对出图的具体要求 |
|
||||
|---|---|
|
||||
| 一句话视觉规则 | 明快的地牢,轻快的扫荡,仔细的推理——**明亮像素幻想,全年龄,非暗黑**,角色 2~3 头身 |
|
||||
| 原则一「预告上格」 | 格内绘制优先级 **数字(含色牌)> 小人 > 旗 > 变异纹带 > 装饰变体 > 底色**;任何元素不得遮挡数字字形区;类型微光为底效泛光层,不入遮挡栈 |
|
||||
| 原则一「预告上格」 | 格内绘制优先级 **数字(含色牌)> 小人 > 旗 > 变异纹带 > 装饰变体 > 底色**;任何元素禁止遮挡数字字形区;类型微光为底效泛光层,不入遮挡栈 |
|
||||
| 原则二「明亮为皮,明度分档为骨」(v3.0) | 暖倾向;数字亮墨直画已开格底(候选亮墨 L≥0.55 / 已开底 L 0.20–0.32,样张 v3 冻结),对比 ≥4.5:1;色牌 `#F5EAD3` 降级为复杂格底后备(牌上深墨 L≤0.027);未开格底 L≥0.30、HSV 饱和 ≤0.55 |
|
||||
| 原则三「一砖一世界」 | 变体优先换色板不加新资产;危险状态必须**形状+颜色双通道**(色弱灰度可辨) |
|
||||
| 类型预读单通道(§4.6.3) | 未开格 = **类型常显微光**(五组色带 §4.2:芥末黄/黄绿/青/紫罗兰/绯红,色相+明度双码,均候选值,避 300°–345° 禁入带,样张批冻结);不呈现极性、不泄雷安〔角嵌形状通道 2026-09-28 退役——用户裁微光格只留微光〕 |
|
||||
| 类型预读单通道(§4.6.3) | 未开格 = **类型常显微光**(五组色带 §4.2:芥末黄/黄绿/青/紫罗兰/绯红,色相+明度双码,均候选值,避 300°–345° 禁入带,样张批冻结);不呈现极性、不泄危险格与安全格〔角嵌形状通道 2026-09-28 退役——用户裁微光格只留微光〕 |
|
||||
| 剪影哲学(§5.1) | **所有角色自带轮廓通道:亮色描边+落影底盘**,识别不依赖背景;四类原型见各条目 |
|
||||
| 语义色规则(§4.2) | 红只说危险(危险红 `#A8321F` 单档——旗朱已退役归封印色〔现行封印黑 `#000000`〕,2026-09-26 封印紫批→2026-09-28 封印黑批)、金只说收益(`#F0A828`)、蓝只说己方(`#2E86DE`)、**紫赤 `#8F2F6A` 为 Boss 独占,HSV 色相 300°–345° 全场禁入带**(微光群伤组绯红为类型先验色带域,例外见 §4.2) |
|
||||
| UI 形状语法(§7.1,§3.3 存方向指导) | 半拟物:面板=石板圆角矩形(与地砖同圆角率),按钮=可按的砖,仪式确认=圆形蜡封;数据区直角细线无纹理 |
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
## 2. P1 —— 角色级(样张通过后开工,ComfyUI)
|
||||
|
||||
> 提示词规格卡 comfyui-prompts.md 已于 2026-09-22 按「圣经 §5 落地后重生成」拍板重写为 **v2.0**(主角三态+八敌种,逐资产自包含完整提示词,整段可直贴);v1.0 移除决策归台账 125 收口登记(production/session-state/active.md)。
|
||||
> 提示词规格卡 comfyui-prompts.md 已于 2026-09-22 按「圣经 §5 落地后重生成」拍板重写为 **v2.0**(主角三态+八敌种,逐资产自包含完整提示词,整段可直贴);v1.0 移除决策归状态记录 125 完成登记(production/session-state/active.md)。
|
||||
|
||||
### 2.1 主角战斗小人
|
||||
|
||||
@@ -112,13 +112,13 @@
|
||||
- **要什么**:四类节点图标(战斗 / 奖励 / 恢复 / Boss)+ 图版行进器形象(棋子)。
|
||||
- **风格/规格**:容器走石板圆角语法;Boss 节点可用紫赤;奖励节点可用奖励金;恢复节点绿=自然生机(零逻辑语义,仅氛围);行进器=小人同族蓝。
|
||||
- **来源**:♻ 素材站复用优先——通用地图/桌游图标(如 Kenney 件)改色量化,过复用闸;⚙ 兜底。行进器与小人同族,宜 ✦/⚙ 与主角同批出。
|
||||
- **联动**:正式节点图 UI 设计未成文(登记待办:排秘宝内容批后与美术批同期待拍板);HUD框架义务清单漏「关卡节点地图」行,随批补。
|
||||
- **联动**:正式节点图 UI 设计未成文(登记待办:排秘宝内容批后与美术批同期待拍板);HUD框架义务清单漏「关卡节点地图」行,顺带补。
|
||||
- **现状**:程序化占位,够试玩。
|
||||
|
||||
### 3.3 雷 / 旗 / 数字格面像素化 ⚙
|
||||
|
||||
- **要什么**:格子样张通过后按冻结参数出全套砖面资产(含图类型换色板组)。
|
||||
- **来源**:⚙ 脚本管线自产——未开/已开/巢穴/变异纹带是扫雷专属语义〔角嵌纹样 2026-09-28 退役〕,素材站没有对的;砖面**纹理底噪**可 ♻ 用 CC0 无缝石/土纹理作脚本管线的纹理输入,量化到色板(混合路线)。
|
||||
- **来源**:⚙ 脚本管线自产——未开/已开/危险格/变异纹带是扫雷专属语义〔角嵌纹样 2026-09-28 退役〕,素材站没有对的;砖面**纹理底噪**可 ♻ 用 CC0 无缝石/土纹理作脚本管线的纹理输入,量化到色板(混合路线)。
|
||||
- **前置**:§1.1 格子样张通过(**未跑**)。
|
||||
- **现状**:程序化绘制,可读性达标(对比硬指标已是现行实现依据),观感待升级。
|
||||
|
||||
@@ -130,8 +130,8 @@
|
||||
|
||||
### 3.5 营地与元进度件(2026-09-23 新登记,此前清单漏登记)
|
||||
|
||||
- **要什么**:钥石顶栏图标、永久强化条目图标(营地三柜台货架件)、柜台场景贴图(属性锻造/道具工坊/奖励格图鉴)。
|
||||
- **来源/规格**:图标类 ♻ 通用钥匙/强化图标改色过闸;柜台场景贴图 ♻ 木石材质件拼装或 ✦ 插画级(烛光黄 `#F6C667` + 木色 `#8A5A34`,art-bible §4.4);排期归 UI 贴图重构批(营地现为程序化占位,台账 121⑧ 口径)。
|
||||
- **要什么**:钥石顶栏图标、永久强化条目图标(营地三柜台货架件)、柜台场景贴图(属性锻造/秘宝匣/奖励格图鉴)。
|
||||
- **来源/规格**:图标类 ♻ 通用钥匙/强化图标改色过闸;柜台场景贴图 ♻ 木石材质件拼装或 ✦ 插画级(烛光黄 `#F6C667` + 木色 `#8A5A34`,art-bible §4.4);排期归 UI 贴图重构批(营地现为程序化占位,状态记录 121⑧ 口径)。
|
||||
- **现状**:全占位。
|
||||
|
||||
### 3.6 字体(数字像素字 + 中文像素字)(2026-09-23 新登记,此前清单漏登记)
|
||||
@@ -157,7 +157,7 @@
|
||||
## 5. 明确不在本清单
|
||||
|
||||
- **音乐音效**:文档定稿「MVP 占位即可,核心循环验证后再定」。
|
||||
- **秘宝图标**:内容归 Alpha 秘宝整体重设计批(台账 112 口径),内容未定不能先做;渠道届时按 ♻/✦ 另评。
|
||||
- **秘宝图标**:内容归 Alpha 秘宝整体重设计批(状态记录 112 口径),内容未定不能先做;渠道届时按 ♻/✦ 另评。
|
||||
- **封面图/宣传图**:Alpha 后另批,不阻塞切片;需项目角色出镜,素材站合成观感差,宜 ✦。
|
||||
- **地形变异专属纹理**:~~变异表为空,纹带种类待地形变异批定夺~~——**六类型已定稿(2026-09-20 地形变异批)**,纹带需求 = 2 纹形(伤害轴刺缺形/信息轴遮蔽形)× 3 图类型色板,**样张批后可排产**;形状通道规则见 art-bible §3.2。
|
||||
- **精英/Boss 护甲类型视觉区分**:~~待设计项~~ **已落 art-bible §5.3**(候选方案:甲面覆盖率×甲材质色三档,样张批冻结)。
|
||||
@@ -169,7 +169,7 @@
|
||||
│
|
||||
战斗一屏样张(1.2) ──> 角色终稿(2.1/2.2) ──> 意图动画三档(2.3) ──> 演出类(P4)
|
||||
│
|
||||
└─> 敌人卡形态裁决 ✅已收口(2026-09-20 拍板全站桩,卡片式退役)
|
||||
└─> 敌人卡形态裁决 ✅已完成(2026-09-20 拍板全站桩,卡片式退役)
|
||||
徽章(3.1)/节点图(3.2)/效果图标(3.4) —— 独立线,可随时插队
|
||||
♻ 复用件(3.2/3.4/3.5/3.6/演出粒子) —— 不依赖样张,可随时插队(入包闸 = §0 复用四道)
|
||||
字体(3.6)接入归表现批;营地件(3.5)归 UI 贴图重构批
|
||||
@@ -184,7 +184,7 @@
|
||||
|
||||
| 素材包 | 授权 | 署名义务 | 结论 |
|
||||
|---|---|---|---|
|
||||
| Kenney 全系(ui-pack/fantasy-ui-borders/game-icons/board-game-icons/kenney-fonts/roguelike 系/tiny-dungeon/tiny-town) | CC0 | 无 | ui-reuse 待审;tiny-dungeon 终局否决(架构不适配);余随批否决 |
|
||||
| Kenney 全系(ui-pack/fantasy-ui-borders/game-icons/board-game-icons/kenney-fonts/roguelike 系/tiny-dungeon/tiny-town) | CC0 | 无 | ui-reuse 待审;tiny-dungeon 终局否决(架构不适配);余顺带否决 |
|
||||
| OGA Pixel UI 750(Kenney 作) / PixUI(CamTatz) / Handpainted stone | CC0 | 无 | ui-reuse 待审 |
|
||||
| DENZI public domain art | CC0 | 无 | 否决 |
|
||||
| beast-cave(OGA) | CC0 | 无 | **已选中入工程**(地砖批;2026-09-26 被 terrain_ 自产全套取代,源包归档) |
|
||||
@@ -197,5 +197,11 @@
|
||||
| Golden UI 系列 | CC-BY-SA | — | **闸④不过,未下载** |
|
||||
| Gemini 生图(用户自跑) | 自产 | 无 | **terrain_ 高墙瓦片材质源(现行定稿)** |
|
||||
|
||||
### 复用四闸(台账 130,现行)
|
||||
### 复用四闸(状态记录 130,现行)
|
||||
色板量化 / 禁入带吸色 / 灰度可辨 / 授权干净(SA 不可、来路不明不可)。
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v0.1 | 2026-10-10 | 补建版本表(本文件此前无版本表)+首笔登记:§3.5 柜台场景贴图括注「道具工坊」改「秘宝匣」(2026-10-10 天赋树设计会话裁) |
|
||||
+122
-86
@@ -1,11 +1,11 @@
|
||||
# 美术圣经(Art Bible)— Dungeon Sweeper
|
||||
|
||||
> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**(§6 环境/§7 UI/§8 资产规范/§9 参考与反参考已于 2026-09-23 v1.8 按 D1/D2/D4/D5 框架成文;D3=§5 角色已于 v1.6 落地、v1.7 抽离独立文档;框架 2026-09-22 用户拍板,原登记于中间产物修订指导,经裁决不入库,明细归台账 125);历次修订明细见文末版本历史(现行为 v3.11)
|
||||
> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**(§6 环境/§7 UI/§8 资产规范/§9 参考与反参考已于 2026-09-23 v1.8 按 D1/D2/D4/D5 框架成文;D3=§5 角色已于 v1.6 落地、v1.7 抽离独立文档;框架 2026-09-22 用户拍板,原登记于中间产物修订指导,经裁决不入库,明细归状态记录 125);历次修订明细见文末版本历史(现行为 v3.11)
|
||||
>
|
||||
> **Art Director Sign-Off (AD-ART-BIBLE)**:历次批均 SKIPPED(v1.8 §6–9 补全亦 SKIPPED)— Lean/Solo mode(非 PHASE-GATE;§6–9 已成文,full 门禁签核时机待用户表态)
|
||||
> 风格基调(2026-09-10 用户定稿):地牢题材但**非暗黑风**——轻快明亮的幻想冒险风,全年龄;像素风;角色 2~3 头身
|
||||
> 参考池(用户审阅选定,三者相融):**Into the Breach**(网格信息分层;雷图棋盘呈现基准 = 其战棋地块质感 × 正俯视角,见 §3.2)× **Moonlighter**(明亮像素地牢质感)× **Peglin**(明快全年龄地牢色彩);参考截图存于 `design/art/references/`(三款×2 张,与点名池一一对应;gungeon 两张经 2026-09-22 裁决退场;正面取/弃与反面条款已成文 §9,反面图证待素材生成后另批增补)
|
||||
> 约束(2026-09-10 用户强调):本圣经是**纯表现层文档**——明亮轻快是美术风格,不是玩法成分。圣经不得引入、暗示或预设任何玩法语义,不改变任何 GDD 已锁机制;凡表现层需要玩法钩子才能表达之处(如完美排雷检测、Boss 预警),一律标注「待 GDD 定夺」,圣经只规定"若有,则如何呈现"。GDD 机制与圣经冲突时,机制语义以 GDD 为准,呈现方案以本圣经为准
|
||||
> 约束(2026-09-10 用户强调):本圣经是**纯表现层文档**——明亮轻快是美术风格,不是玩法成分。圣经禁止引入、暗示或预设任何玩法语义,不改变任何 GDD 已锁机制;凡表现层需要玩法钩子才能表达之处(如完美排雷检测、Boss 预警),一律标注「待 GDD 定夺」,圣经只规定"若有,则如何呈现"。GDD 机制与圣经冲突时,机制语义以 GDD 为准,呈现方案以本圣经为准
|
||||
> **条款验收标注纪律(2026-10-06 P2-4 用户拍板,全文书写规范)**:条款尾部按三档标注验收方式——**`←机检: <断言>`**(脚本可自动判定)/ **`←目检: <判据>`**(机器测不了,但看什么、算过有明确判据)/ **`←方向性`**(气质与方向原则,不承担验收);**新条款一律按此书写**,存量口号型条款分章补标(约 55%,06 挂账「口号型条款机检化批」分章推进、每章交付抽验);数值类条款推荐「**待定现用**」态(现行即执法、修订走登记,释义见 §4.1)
|
||||
|
||||
---
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
**原则一|预告上格**(取自 Into the Breach;锚定 P1 推理的掌控感、P2 规划的延迟兑现)
|
||||
|
||||
继承其格内信息分层与"攻击预告画在目标格上"的范式:一切威胁、伤害与结算预告必须直接绘制在雷图格本体上,禁止只进侧栏或悬浮提示;格内绘制优先级固定:**数字(含色牌) > 小人标记 > 旗 > 变异纹带 > 装饰变体 > 底色**,任何元素不得遮挡数字(格面类型预读 = 类型微光单通道〔色相+明度双码,2026-09-28 角嵌退役〕,色带见 §4.2、键契约见 §4.6;徽章小图标族保留给库存与结算明细;类型微光为底效泛光层,不入遮挡栈、不遮任何元素)。与 ITB 之别:只取其信息骨架,弃其冷暗军事色调。
|
||||
继承其格内信息分层与"攻击预告画在目标格上"的范式:一切威胁、伤害与结算预告必须直接绘制在雷图格本体上,禁止只进侧栏或悬浮提示;格内绘制优先级固定:**数字(含色牌) > 小人标记 > 旗 > 变异纹带 > 装饰变体 > 底色**,任何元素禁止遮挡数字(格面类型预读 = 类型微光单通道〔色相+明度双码,2026-09-28 角嵌退役〕,色带见 §4.2、键契约见 §4.6;徽章小图标族保留给库存与结算明细;类型微光为底效泛光层,不入遮挡栈、不遮任何元素)。与 ITB 之别:只取其信息骨架,弃其冷暗军事色调。
|
||||
|
||||
*范围注(2026-09-10):本原则约束"已存在的信息往哪里画",不新增信息种类;预告类信息以战斗侧 GDD 实际定义的为准(如 P2 已锁的结算来源标注),GDD 未定义的预告不因本条而存在。*
|
||||
|
||||
@@ -36,36 +36,36 @@
|
||||
|
||||
**原则三|一砖一世界**(融合 Moonlighter 地砖观;锚定 P3 风险与收益同源、P4 地牢下探隐喻)
|
||||
|
||||
格子即地牢地砖:未开 = 覆尘完整砖,已开 = 碎裂裸露,雷 = 被惊动的巢穴(格态定义与玩家说法见《排雷玩法》),图类型(board_type)= 同款地砖换色板。图类型与变异格的视觉差异一律先做色板变体,不做新资产;一切危险状态必须"形状 + 颜色"双通道冗余,色弱可辨。像 Moonlighter 之处在砖缝质感与暖色道具,但装饰不得伪装成逻辑差异——玩家须一眼分清"好看"与"有雷"。
|
||||
格子即地牢地砖:未开 = 覆尘完整砖,已开 = 碎裂裸露,雷 = 被惊动的巢穴(格态定义与玩家说法见《排雷玩法》),图类型(board_type)= 同款地砖换色板。图类型与变异格的视觉差异一律先做色板变体,不做新资产;一切危险状态必须"形状 + 颜色"双通道冗余,色弱可辨。像 Moonlighter 之处在砖缝质感与暖色道具,但装饰禁止伪装成逻辑差异——玩家须一眼分清"好看"与"有雷"。
|
||||
|
||||
格子同时是**内容舞台**,格与格的美术表达按格内实态分层多样化(画法细则 §3.2):已开格按当格结果整格表达——产资源格嵌对应家族物件纹样(地图战斗资源九类型,§4.6.3)、纯安全格呈现干净裸土、雷格巢穴更凶;未开格在覆尘完整砖之上叠加**装饰变体**(裂纹/碎石斑/物件级点缀等氛围层;2026-09-29 v3.0 物件级解禁——物件级装饰〔小石块/陶片/骨殖等〕须走**专属装饰形状家族**:形与信息元素〔数字/小人/旗/纹样〕形状语言隔离,灰度下不与任何逻辑元素同形;零信息纪律不变——随机分布、与雷/安/类型零相关、不得构成可读线索、分布每板一次跨轮不复掷;焦点预算约束不变——装饰不构成完整凸形、不抢读,§3.4;数量配额按图类型定,候选 3–5 种,样张 v3 冻结;用途=破除大面积同砖平铺的重复感);未开格的类型预读画为**类型微光单通道**(色相+明度双码;仍只表达类型,不泄雷安——呈现契约见 §4.6.3;概念定义、可见范围与生命周期见《HUD框架》「未开格类型微光」节)。
|
||||
格子同时是**内容舞台**,格与格的美术表达按格内实态分层多样化(画法细则 §3.2):已开格按当格结果整格表达——产资源格嵌对应家族物件纹样(地图战斗资源九类型,§4.6.3)、纯安全格呈现干净裸土、危险格巢穴更凶;未开格在覆尘完整砖之上叠加**装饰变体**(裂纹/碎石斑/物件级点缀等氛围层;2026-09-29 v3.0 物件级解禁——物件级装饰〔小石块/陶片/骨殖等〕须走**专属装饰形状家族**:形与信息元素〔数字/小人/旗/纹样〕形状语言隔离,灰度下不与任何逻辑元素同形;零信息纪律不变——随机分布、与雷/安/类型零相关、禁止构成可读线索、分布每板一次跨轮不复掷;焦点预算约束不变——装饰不构成完整凸形、不抢读,§3.4;数量配额按图类型定,候选 3–5 种,样张 v3 冻结;用途=破除大面积同砖平铺的重复感);未开格的类型预读画为**类型微光单通道**(色相+明度双码;仍只表达类型,不泄危险格与安全格——呈现契约见 §4.6.3;概念定义、可见范围与生命周期见《HUD框架》「未开格类型微光」节)。
|
||||
|
||||
*设计测试:当新图类型或新变异格需要新视觉时,先换色板加形状,再谈新资产;当格子多样化与"好看/有雷"之辨冲突时,砍装饰,不动逻辑通道。*
|
||||
|
||||
### 1.3 修订记录(已迁出)
|
||||
|
||||
早期"对 brainstorm 视觉锚的修订记录"整节并入文末**版本历史**(v1.0/v1.1/v1.2/v1.3 条目承载);本节留号占位,正文只描述现行规则(台账 109 纪律)。
|
||||
早期"对 brainstorm 视觉锚的修订记录"整节并入文末**版本历史**(v1.0/v1.1/v1.2/v1.3 条目承载);本节留号占位,正文只描述现行规则(状态记录 109 纪律)。
|
||||
|
||||
### 1.4 格子样张测试(验收标准,2026-09-13 成文)
|
||||
|
||||
> 立意(自概念期 brainstorm 内联):扫雷数字可读性 × 暗色氛围的冲突 → 由一次格子样张测试定风格;具体形态由样张测试定稿。**样张** = 一张按本圣经参数画成的格子风格试验图,是砖面形态的定稿闸——样张通过前,§3.2/§4.1 的一切参数只是候选,通过后冻结为制作标准。
|
||||
|
||||
**样张内容清单**(一图齐备,缺项即无效):未开格(覆尘完整砖,含至少两种装饰变体)、已开格(碎裂裸露,含 0 格与 1–8 全档数字)、雷格(被惊动的巢穴)、旗、小人两态(独立占格 + 与数字同格——后者须验"边框高亮不覆盖文本")、图类型色板变体组(§4.3 四槽换色,至少两套)、数字呈现组(2026-09-29 v3.0:已开格底亮墨直画组 + 复杂格底色牌后备组——素底/装饰变体底/变异纹带底至少三种格底上各一组数字)、已开格结果表达组(纯安全格 + 至少两类型物件纹样)、**类型微光呈现组**(至少三个类型的微光在纯砖格上呈现——样张为静态定格测试图,非运行时行为承诺,实际可见时机见《HUD框架》「未开格类型微光」节;含两两相邻格微光并列;微光格内零角嵌/箭头/加号类附加图形——2026-09-28 用户裁决)。
|
||||
**样张内容清单**(一图齐备,缺项即无效):未开格(覆尘完整砖,含至少两种装饰变体)、已开格(碎裂裸露,含 0 格与 1–8 全档数字)、危险格(被惊动的巢穴)、旗、小人两态(独立占格 + 与数字同格——后者须验"边框高亮不覆盖文本")、图类型色板变体组(§4.3 四槽换色,至少两套)、数字呈现组(2026-09-29 v3.0:已开格底亮墨直画组 + 复杂格底色牌后备组——素底/装饰变体底/变异纹带底至少三种格底上各一组数字)、已开格结果表达组(纯安全格 + 至少两类型物件纹样)、**类型微光呈现组**(至少三个类型的微光在纯砖格上呈现——样张为静态定格测试图,非运行时行为承诺,实际可见时机见《HUD框架》「未开格类型微光」节;含两两相邻格微光并列;微光格内零角嵌/箭头/加号类附加图形——2026-09-28 用户裁决)。
|
||||
|
||||
**验收项按序判定,第一项不过 = 整张否决(数字可读性定风格,风格服从可读)**:
|
||||
|
||||
1. **第一验收项|数字可读性(硬指标,可测;2026-09-29 v3.0 改格底分档承载)**:1–8 全档数字对其所在**已开格底**直画 WCAG 对比 ≥4.5:1(§4.1 参数域:已开格底走世界底层档,候选 L 0.08–0.14;棋盘数字墨亮族,L≥0.75 候选——均待样张 v3 冻结〔v3.0 原拟 L 0.20–0.32/L≥0.55 经 WCAG 实测不可达 4.5:1,候选带随样张批修正〕);复杂格底(物件纹样/变异纹带/微光叠加致直画对比不足)启用**色牌后备**,牌墨组合 ≥4.5:1(色牌 L≥0.70、牌上数字用深墨族),牌缘灰度可分;0.5× 缩放抽检数字仍可辨;纹带/裂纹/巢穴纹/物件纹样不得侵入数字字形占位区(砖心留白,§3.2)。
|
||||
2. **格态三形可辨(灰度通道)**:未开/已开/雷三态转灰度截图后仍可逐格分类(§3.2 完整度叙事;v3.0 起明度差〔墙亮/空间暗〕为合法分类通道,与碎裂形双通道冗余);装饰变体不得制造新的分类特征——同一格态下带与不带变体的灰度差异不得成为三态分类线索;色弱模拟(去色相)下旗、巢穴纹不与裂纹混淆;**五组类型微光互辨**——色弱玩家的类型主通道 = 微光(色相+明度双码,2026-09-28 角嵌退役后微光以明度梯度承载类型,§2 信息面层内梯度),微光不得侵入数字字形占位区、明度梯度不得压破格底明度档(三态分类不受扰)。
|
||||
1. **第一验收项|数字可读性(硬指标,可测;2026-09-29 v3.0 改格底分档承载)**:1–8 全档数字对其所在**已开格底**直画 WCAG 对比 ≥4.5:1(§4.1 参数域:已开格底走世界底层档,候选 L 0.08–0.14;棋盘数字墨亮族,L≥0.75 候选——均待样张 v3 冻结〔v3.0 原拟 L 0.20–0.32/L≥0.55 经 WCAG 实测不可达 4.5:1,候选带随样张批修正〕);复杂格底(物件纹样/变异纹带/微光叠加致直画对比不足)启用**色牌后备**,牌墨组合 ≥4.5:1(色牌 L≥0.70、牌上数字用深墨族),牌缘灰度可分;0.5× 缩放抽检数字仍可辨;纹带/裂纹/巢穴纹/物件纹样禁止侵入数字字形占位区(砖心留白,§3.2)。
|
||||
2. **格态三形可辨(灰度通道)**:未开/已开/雷三态转灰度截图后仍可逐格分类(§3.2 完整度叙事;v3.0 起明度差〔墙亮/空间暗〕为合法分类通道,与碎裂形双通道冗余);装饰变体禁止制造新的分类特征——同一格态下带与不带变体的灰度差异禁止成为三态分类线索;色弱模拟(去色相)下旗、巢穴纹不与裂纹混淆;**五组类型微光互辨**——色弱玩家的类型主通道 = 微光(色相+明度双码,2026-09-28 角嵌退役后微光以明度梯度承载分组(组内不细分),§2 信息面层内梯度),微光禁止侵入数字字形占位区、明度梯度禁止压破格底明度档(三态分类不受扰)。
|
||||
3. **焦点预算成立(§3.4)**:任意一格至多一个完整凸形;数字所在格无第二焦点。
|
||||
4. **图类型换皮抽测(§4.3)**:变体组中数字墨亮族三档、封印黑、危险红、奖励金、小人蓝、数字色牌(后备件)、类型微光五组恒定不动;变体格底仍过第 1、2 项指标。
|
||||
|
||||
**判定与回退**:第 1 项不过 → 按原则二设计测试回退——先调格底明度档,复杂格底垫色牌兜底,禁止缩字号换字形逃避;第 2–4 项不过 → 修形不修数。样张通过 = 砖面形态与色板冻结;新增图类型/变异色板须重跑本测试(§4.3)。执行时机:正式砖面资产开工前;《HUD框架》以本节为引用依据(2026-09-07 门禁:样张测试并入 art-bible 执行)。
|
||||
|
||||
**整屏样张闸(2026-09-29 v3.0 新增)**:格子样张验"格",整屏样张验"屏"——战斗屏/关卡屏/菜单屏/营地屏各出一张整屏样张,验收四项:①全部文字(含菜单/说明/tooltip/按钮)对其直接背景 ≥4.5:1(WCAG AA;大字〔≥18px 或加粗档〕底线 3:1、目标 4.5:1);②明度分层三档带成立(信息面层 > 世界中层 > 世界底层,层间灰度可分);③整屏焦点预算(§3.4:首焦唯一——数字区/立绘/主按钮,无第二焦点竞争;负空间服务焦点,不属空窗);④文字禁直接压纹理底(垫容器或罩层)。闸形 = **方向稿目检先行**(防"机检过闸但气质否决"式返工),目检过后机检冻结。执行时机 = 屏级视觉落码开工前;过闸前一切屏级视觉为占位临时态(§7.1 收口条款)。现行 §1.4 格子样张机检断言集中涉色牌/明度档条目随样张 v3 重跑同步改造(登记 06-待办清单)。
|
||||
**整屏样张闸(2026-09-29 v3.0 新增)**:格子样张验"格",整屏样张验"屏"——战斗屏/关卡屏/菜单屏/营地屏各出一张整屏样张,验收四项:①全部文字(含菜单/说明/tooltip/按钮)对其直接背景 ≥4.5:1(WCAG AA;大字〔≥18px 或加粗档〕底线 3:1、目标 4.5:1);②明度分层三档带成立(信息面层 > 世界中层 > 世界底层,层间灰度可分);③整屏焦点预算(§3.4:首焦唯一——数字区/立绘/主按钮,无第二焦点竞争;负空间服务焦点,不属空窗);④文字禁直接压纹理底(垫容器或罩层)。闸形 = **方向稿目检先行**(防"机检过闸但气质否决"式返工),目检过后机检冻结。执行时机 = 屏级视觉落码开工前;过闸前一切屏级视觉为占位临时态(§7.1 完成条款)。现行 §1.4 格子样张机检断言集中涉色牌/明度档条目随样张 v3 重跑同步改造(登记 06-待办清单)。
|
||||
|
||||
> **样张 v2 记录(2026-09-28,四冻结生效)**:机检 16/16 全绿(扩展断言集:A3 图底分离 Δ≥55/F6 墙格顶面立面双明度带 Δ≥18/F7 整板悬崖 DEPTH_PX 与游戏渲染常量同源/A6 观感密度梯度均值 ≥4.70=v1 实测 4.09×1.15)。**四冻结**——①砖面形态:方案甲 21 瓦片+高墙感 D 投影档+整板悬崖(§3.2 高墙瓦片体系条定稿参数);②色板:小人蓝 #2E86DE/接触带微光 #D6ECFF/类型微光五组定稿(§4.1/§4.2);③动画方案:§8.4 帧数档冻结;④数字形制:色牌形制定稿(#F5EAD3 素色直角小牌+Fusion Pixel+字号 max(18, ceil(格边×0.5))+墨三档,§7.4)。产物=`artwork/mockups/sample-batch-v2-2026-09-28.png`,机检报告=git 提交 f9b0765;气质终审=批末用户目检(闸形 A,2026-09-27 拍板)。**(v3.0 注:四冻结之①砖面形态的数字承载面与④数字形制随色牌降级解冻,待样张 v3 重冻;②色板③动画维持冻结不变)**
|
||||
|
||||
> **样张 v3 冻结记录(2026-09-30,迭代 9 T1 批 A——四冻结①④重冻生效,圣经升 v3.1)**:机检 17/17 全绿,断言定值两件落锁——A3b 图底分离**定值 Δ≥30**(方向稿实测 38;v2 阈值 55 系色牌制地板 L0.036 时代校定,与格底分档带数学冲突退役)/A4 尺寸基线**硬等冻结**(立绘 46×48+棋盘小人源 32×32;资产升档批换代须显式解冻重校);F6 沿用 v3.4 双明度带口径 Δ≥18。**重冻两件**——①砖面形态:E 格高墙 30% 承接词表扩展(南邻墙地面格南部 30% 承接墙面、墙顶纹理**原亮度**直贴零暗档零阴影、(b)-(c) 连接处无边框〔渲染格线跳段〕、连续墙体内侧不出立面;南向厚度面+v3.4 暗档 D 投影保留)+**格底明度分档**(已开格底=世界底层档 L≈0.10,候选带 0.08–0.14;落码程序归一,地板素材重产归资产批)+装饰物件级解禁(专属形状家族,零信息纪律不变)/④数字形制:**亮墨三档直画**(1–3 冷亮 #D8ECF0/4–5 暖白 #F0E2C8/6–8 金亮 #F8E3A8,直画已开格底,实测对比 6.0–6.3:1)+**色牌后备**(#F5EAD3 仅复杂格底——物件纹样/装饰变体格——垫牌兜底,牌上深墨族 12:1)。②色板③动画维持 v2 冻结不变。产物=`artwork/mockups/sample-batch-v3-final-2026-09-30.png`,机检报告=git 提交 7a847c7【冻结】;气质终审=2026-09-29 用户验收豁免(新 v3.5 方向稿验收通过,台账 281)。
|
||||
> **样张 v3 冻结记录(2026-09-30,迭代 9 T1 批 A——四冻结①④重冻生效,圣经升 v3.1)**:机检 17/17 全绿,断言定值两件落锁——A3b 图底分离**定值 Δ≥30**(方向稿实测 38;v2 阈值 55 系色牌制地板 L0.036 时代校定,与格底分档带数学冲突退役)/A4 尺寸基线**硬等冻结**(立绘 46×48+棋盘小人源 32×32;资产升档批换代须显式解冻重校);F6 沿用 v3.4 双明度带口径 Δ≥18。**重冻两件**——①砖面形态:E 格高墙 30% 承接词表扩展(南邻墙地面格南部 30% 承接墙面、墙顶纹理**原亮度**直贴零暗档零阴影、(b)-(c) 连接处无边框〔渲染格线跳段〕、连续墙体内侧不出立面;南向厚度面+v3.4 暗档 D 投影保留)+**格底明度分档**(已开格底=世界底层档 L≈0.10,候选带 0.08–0.14;落码程序归一,地板素材重产归资产批)+装饰物件级解禁(专属形状家族,零信息纪律不变)/④数字形制:**亮墨三档直画**(1–3 冷亮 #D8ECF0/4–5 暖白 #F0E2C8/6–8 金亮 #F8E3A8,直画已开格底,实测对比 6.0–6.3:1)+**色牌后备**(#F5EAD3 仅复杂格底——物件纹样/装饰变体格——垫牌兜底,牌上深墨族 12:1)。②色板③动画维持 v2 冻结不变。产物=`artwork/mockups/sample-batch-v3-final-2026-09-30.png`,机检报告=git 提交 7a847c7【冻结】;气质终审=2026-09-29 用户验收豁免(新 v3.5 方向稿验收通过,状态记录 281)。
|
||||
|
||||
---
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
- **色彩性格**:全作最暖:烛光黄与木色,中等饱和,无棋盘式高对比
|
||||
- **氛围形容词**:温暖、笃实、归属
|
||||
- **能量**:3/10
|
||||
- **承载元素**:营地三柜台(属性锻造/道具工坊/奖励格图鉴)在烛光下一字排开——场景构成、柜台亮光与钥石呈现位连同系统语义边界一并见 §6.2
|
||||
- **承载元素**:营地三柜台(属性锻造/秘宝匣/奖励格图鉴)在烛光下一字排开——场景构成、柜台亮光与钥石呈现位连同系统语义边界一并见 §6.2
|
||||
|
||||
### 状态间区分度自检
|
||||
|
||||
@@ -162,15 +162,15 @@
|
||||
### 3.2 环境几何
|
||||
|
||||
- **雷图棋盘呈现基准**:战棋地块质感 × 正俯视角——取 ITB 参考图(`references/itb_1.jpg`)的地表质感骨架:地块纹理多样、起伏体块感、岛缘/砖缘厚度、格上装饰小立牌;但相机一律正上方垂直向下,格线屏轴对齐,**禁等距/斜视角与菱形格**;形状语言仍守总纲圆角方形。砖缘厚度与岛缘立体面属形体塑造,不属状态/情绪表达,不受 §2 情绪明暗禁令约束(2026-09-29 v3.0:本例外上升为 §2 明度分层允许域通则;顶面格底仍守 §4.1 参数域);装饰小立牌属 ITB 参考的观感元素,本作不采用——装饰变体走氛围层纪律(纹理级/物件级形状家族,见下方装饰变体条),零信息纪律不变。←原二;原三;§2
|
||||
- **地砖**:一切环境体由同一圆角方形衍生:未开=完整凸砖,已开=同形缺角碎裂,雷=碎裂加巢穴纹(雷格玩家说法见《排雷玩法》);只以"完整度"叙事,不为状态新造形。←原三;P4
|
||||
- **装饰变体(未开格氛围层)**:覆尘完整砖之上叠加裂纹/碎石斑/物件级点缀等装饰;2026-09-29 v3.0 物件级解禁——物件级装饰(小石块/陶片/骨殖等)须走**专属装饰形状家族**(与信息元素形状语言隔离、灰度下不与任何逻辑元素同形),数量配额按图类型定(候选 3–5 种,样张 v3 冻结),一律残缺、内凹、低对比而自然后退(§3.4);零信息纪律(分布随机、与雷/安/类型零相关、灰度下不得制造新分类特征、分布每板一次跨轮不复掷)以原则三为准,此处不赘。←原三
|
||||
- **结果整格表达(已开格)**:已开格按当格结果整格表达(结果清单见原则三);画法——产资源格的家族物件纹样用 §3.1 道具点剪影语言(直线几何体)角嵌于砖缘,砖心与数字字形占位区留白(已开格仍承载数字);雷格巢穴纹较已开格更凶一档,形状+颜色双通道不变。←原三;P3
|
||||
- **未开格预读通道(微光单通道)**:类型预读 = 类型微光单通道(色相+明度双码,色带 §4.2);色弱类型主通道 = 微光明度梯度(§2 微光明度例外);格内零角嵌/箭头/加号类附加形(2026-09-28 用户裁「微光格只留微光」,退役史见版本历史 v2.12)。←原一;原三
|
||||
- **旗(封印印记)**:插旗动作的叙事呈现 = **封印**(玩家可见专名,术语定义见 registry terminology「封印」条;插旗动作面见《排雷玩法》)——旗 = 封印印记;封印色(§4.1,现行封印黑)与格内优先级栈位(§1.2)不变。封印特效(施印瞬间 + 印记常显形态)资产归清单 §4 演出类;旗印记纹理已落位、字形占位退役(迭代 9 卡⑬兑现;原 06 债务条目已收口移除)。←原一;P2;术语批 2026-09-25;封印紫批 2026-09-26;封印黑批 2026-09-28
|
||||
- **地砖**:一切环境体由同一圆角方形衍生:未开=完整凸砖,已开=同形缺角碎裂,雷=碎裂加巢穴纹(危险格玩家说法见《排雷玩法》);只以"完整度"叙事,不为状态新造形。←原三;P4
|
||||
- **装饰变体(未开格氛围层)**:覆尘完整砖之上叠加裂纹/碎石斑/物件级点缀等装饰;2026-09-29 v3.0 物件级解禁——物件级装饰(小石块/陶片/骨殖等)须走**专属装饰形状家族**(与信息元素形状语言隔离、灰度下不与任何逻辑元素同形),数量配额按图类型定(候选 3–5 种,样张 v3 冻结),一律残缺、内凹、低对比而自然后退(§3.4);零信息纪律(分布随机、与雷/安/类型零相关、灰度下禁止制造新分类特征、分布每板一次跨轮不复掷)以原则三为准,此处不赘。←原三
|
||||
- **结果整格表达(已开格)**:已开格按当格结果整格表达(结果清单见原则三);画法——产资源格的家族物件纹样用 §3.1 道具点剪影语言(直线几何体)角嵌于砖缘,砖心与数字字形占位区留白(已开格仍承载数字);危险格巢穴纹较已开格更凶一档,形状+颜色双通道不变。←原三;P3
|
||||
- **未开格预读通道(微光单通道)**:类型预读 = 类型微光单通道(色相+明度双码,色带 §4.2);色弱类型主通道 = 微光明度梯度(组粒度——组间互辨;§2 微光明度例外);格内零角嵌/箭头/加号类附加形(2026-09-28 用户裁「微光格只留微光」,退役史见版本历史 v2.12)。←原一;原三
|
||||
- **旗(封印印记)**:插旗动作的叙事呈现 = **封印**(玩家可见专名,术语定义见 registry terminology「封印」条;插旗动作面见《排雷玩法》)——旗 = 封印印记;封印色(§4.1,现行封印黑)与格内优先级栈位(§1.2)不变。封印特效(施印瞬间 + 印记常显形态)资产归清单 §4 演出类;旗印记纹理已落位、字形占位退役(迭代 9 卡⑬兑现;原 06 债务条目已完成移除)。←原一;P2;术语批 2026-09-25;封印紫批 2026-09-26;封印黑批 2026-09-28
|
||||
- **可挖域接触带微光(交互反馈层,2026-09-25 用户拍板)**:挖掘期,英雄格周界与可挖域(概念见《排雷玩法》动作合法性节;呈现义务见《HUD框架》可挖域指示)的接触面画呼吸微光——正交邻墙=该侧整条边,斜向邻墙=共享角点+向两侧各延伸半条边;光只画英雄格(空间)一侧、不进墙格(与装饰变体零冲突,数字砖心不涉);微光=空间的灯光边界(画法口径)。色相=蓝族浅一档(§4.2 蓝条;与主角蓝框的分层归样张批);呼吸=§2.1 挖掘期唯一在动元素,减动效停格。角点为斜墙与正交墙共享、不逐格归因,逐格指认=悬停金框(呈现交互归《HUD框架》悬停指示域)。←§2.1;§4.2;P1
|
||||
- **墙体**:圆角砌块堆叠,禁尖刺装饰——尖刺专属危险语义,装饰不得伪装逻辑差异。←原三
|
||||
- **高墙瓦片体系(2026-09-26 定稿,样张批追认)**:未挖格=**一整块 32×32 自含凸起岩体**(方案甲核心定义);素材语义名——未开格素材=**墙瓦片**,已开格素材=**地面瓦片**(术语 2026-09-26 用户立)。**边界=墨线纪律**:墙瓦片与相邻格分界一律 1px 深墨线、直线贴格边、零锯齿;墨线职责=分隔,不追求与地面融合(Tiny Dungeon 样图实证调研后否决出局——TD 拼块套不进方案甲自含岩体定义,2026-09-25 终局维持方案甲;记录=git 提交 70d2320)。**光照=单一北受光**:北缘=墨线内侧 1px 微亮棱(就地取色提亮,禁宽亮带);西/东缘=墨线后直进纹理、不加修饰;南缘=墨线+立面窄暗条(约 1/3 格高,横层理叠石、禁竖条纹栅栏感)。**凹角**:角点单像素落线;南立面侧凹角加 1px 立面收头——带身与转角竖线同列收尾,禁悬空、禁突出(v9.1/v9.2 两版返工实证)。现行定稿=`game/assets/art/board/terrain_*`(16 唯一墙瓦片+5 地面瓦片变体;词表与查表逻辑见 `design/research/board-tile-vocab-plan-a-2026-09-26.md`)。**高墙感 D 投影档+整板悬崖(样张 v2 定稿 2026-09-28,用户 2026-09-27 四变体挑档)**:南临空墙格=立面口沿高光 2px `Color8(196,172,132)`+双段暗带(0.16/0.25 格边,黑罩 α0.60/0.82);北邻墙地面格=三段渐隐投影(顶带 0.22 格边,α0.28 起);整板悬崖=板底/右侧 `DEPTH_PX 8px` 暗面+列分隔竖缝+岩层横纹+口沿高光+接触 AO+底线收边+悬浮影(游戏 `board_world.gd` 同款结构件,样张脚本与游戏渲染常量同源——机检 F7 承载)。←原三;台账 164;样张 v2 批 2026-09-28
|
||||
- **变异格形状通道**(双通道之"形",与色无关):底砖圆角外轮廓不变,砖面内缘绘一圈定宽专属几何纹带(纹带形全作不与他类共用),砖心留白予数字与旗;验收标准=**灰度截图下仍可分类**。种类清单 = 地形变异六类型已定稿(地形变异 GDD;荆棘丛/藤蔓缠绕/岩浆/烬覆/落石/矿尘):**纹带形按轴只分两种**——伤害轴(荆棘丛/岩浆/落石)= 刺/缺排斥形,信息轴(藤蔓缠绕/烬覆/矿尘)= 遮蔽/缠绕形;同轴跨图类型只做色板变体(§4.3 `variant_tint` 槽),不做新纹形。样张批增查:岩浆纹带橙红须与危险红互辨(变异格不是雷,色相邻近混淆风险);信息轴遮蔽呈现不得侵入数字字形占位区(§1.4 验收 1 延伸)。←原一(纹理位次第 4,让位于数字/小人/旗);原三
|
||||
- **墙体**:圆角砌块堆叠,禁尖刺装饰——尖刺专属危险语义,装饰禁止伪装逻辑差异。←原三
|
||||
- **高墙瓦片体系(2026-09-26 定稿,样张批追认)**:未挖格=**一整块 32×32 自含凸起岩体**(方案甲核心定义);素材语义名——未开格素材=**墙瓦片**,已开格素材=**地面瓦片**(术语 2026-09-26 用户立)。**边界=墨线纪律**:墙瓦片与相邻格分界一律 1px 深墨线、直线贴格边、零锯齿;墨线职责=分隔,不追求与地面融合(Tiny Dungeon 样图实证调研后否决出局——TD 拼块套不进方案甲自含岩体定义,2026-09-25 终局维持方案甲;记录=git 提交 70d2320)。**光照=单一北受光**:北缘=墨线内侧 1px 微亮棱(就地取色提亮,禁宽亮带);西/东缘=墨线后直进纹理、不加修饰;南缘=墨线+立面窄暗条(约 1/3 格高,横层理叠石、禁竖条纹栅栏感)。**凹角**:角点单像素落线;南立面侧凹角加 1px 立面收头——带身与转角竖线同列收尾,禁悬空、禁突出(v9.1/v9.2 两版返工实证)。现行定稿=`game/assets/art/board/terrain_*`(16 唯一墙瓦片+5 地面瓦片变体;词表与查表逻辑见 `高墙瓦片词表(已落码 board_world.gd 查表,文件已退役)`)。**高墙感 D 投影档+整板悬崖(样张 v2 定稿 2026-09-28,用户 2026-09-27 四变体挑档)**:南临空墙格=立面口沿高光 2px `Color8(196,172,132)`+双段暗带(0.16/0.25 格边,黑罩 α0.60/0.82);北邻墙地面格=三段渐隐投影(顶带 0.22 格边,α0.28 起);整板悬崖=板底/右侧 `DEPTH_PX 8px` 暗面+列分隔竖缝+岩层横纹+口沿高光+接触 AO+底线收边+悬浮影(游戏 `board_world.gd` 同款结构件,样张脚本与游戏渲染常量同源——机检 F7 承载)。←原三;状态记录 164;样张 v2 批 2026-09-28
|
||||
- **变异格形状通道**(双通道之"形",与色无关):底砖圆角外轮廓不变,砖面内缘绘一圈定宽专属几何纹带(纹带形全作不与他类共用),砖心留白予数字与旗;验收标准=**灰度截图下仍可分类**。种类清单 = 地形变异六类型已定稿(地形变异 GDD;荆棘丛/藤蔓缠绕/岩浆/烬覆/落石/矿尘):**纹带形按轴只分两种**——伤害轴(荆棘丛/岩浆/落石)= 刺/缺排斥形,信息轴(藤蔓缠绕/烬覆/矿尘)= 遮蔽/缠绕形;同轴跨图类型只做色板变体(§4.3 `variant_tint` 槽),不做新纹形。样张批增查:岩浆纹带橙红须与危险红互辨(变异格不是雷,色相邻近混淆风险);信息轴遮蔽呈现禁止侵入数字字形占位区(§1.4 验收 1 延伸)。←原一(纹理位次第 4,让位于数字/小人/旗);原三
|
||||
|
||||
### 3.3 UI 形状语法(方向指导,细则迁 §7.1)
|
||||
|
||||
@@ -198,21 +198,24 @@
|
||||
- **奖励金 `#F0A828`**|已兑现的收益:金币/宝箱/蜡封,全作唯一亮金。←P2;§2.3/2.4
|
||||
- **小人蓝 `#2E86DE`**|小人主色:棋盘唯一"己方",与光标准线同族(样张 v2 定稿 2026-09-28)。←P1;§2.1
|
||||
- **数字色牌 `#F5EAD3`**|数字底具,2026-09-29 v3.0 降级为**后备手段**:素色暖纸白直角小牌,仅复杂格底(物件纹样/变异纹带/微光叠加致直画对比不足)垫于数字正下方;素面无纹理、不随图类型/装饰变体变。←原二
|
||||
- **收益金亮档 `#E0B860`(GOLD_BRIGHT)**|UI 徽标可读性亮档 token(2026-10-14 迭代 26 反哺③登记转正):敌顺位徽标①②③与重甲徽标对舞台底 6.47:1(旧 GOLD_DEEP 3.26:1 越 §7.2 带);金族亮档,与奖励金 #F0A828 同族不同岗——奖励金=已兑现收益语义(§4.2 金条),本 token 只承载徽标可读性、不占收益语义。语义岗冲撞已裁:GOLD_DEEP/HERO_BLUE 常量本尊不动(standee 意图判据等语义岗在役)
|
||||
- **小人蓝亮档 `#7EBAF0`(HERO_BLUE_BRIGHT)**|魔法护甲徽标对舞台底 5.88:1(旧 HERO_BLUE 3.23:1 越带);蓝族亮档,与小人蓝 #2E86DE 同族不同岗——本 token 只承载徽标可读性,「蓝只说己方」语义不变
|
||||
- **图标槽柔和档 `#806A4E`(SLOT_BACKDROP_SOFT)**|BCard 图标槽底(2026-10-14 迭代 26 T5):对米色卡面 PANEL_DATA 3.69:1(旧深档 SLOT_BACKDROP #3E362C 8.53:1——过强像硬贴补丁),槽内白图标 5.14:1 ≥3:1 图形参考线硬约束;仅 BCard 图标槽换档,B 区状态槽仍用深档 SLOT_BACKDROP
|
||||
|
||||
**对比硬指标(可测;2026-09-29 v3.0 改写)**:数字可读性由**格底明度分档**承载——棋盘数字亮墨 **L≥0.55**(候选)对**已开格底 L 0.20–0.32**(候选)⇒ 直画对比 **≥4.5:1 恒成立**(WCAG AA,样张 v3 逐组合抽测冻结);**色牌后备**:色牌素色恒定 **L≥0.70**、牌上数字深墨 **L≤0.027** ⇒ 任意牌墨组合 ≥4.5:1(实测样例:#33261B/#F5EAD3 = 12.3:1)。未开格底槽(含全部图类型)相对亮度 **L≥0.30**(墙顶面受光档)、HSV 饱和 **≤0.55**、避 Boss 禁入色相带;已开格底走世界底层档(上见)。物件识别不依赖格底(§5.1 轮廓通道),旗面、金色不作识别依赖。←原二;地形变异 AC-9
|
||||
|
||||
**色板增量纪律(2026-10-06 P2 对账批新增;数值状态 = **待定现用**)**:全作色板硬上限 **48 色**(现行 ≈42,余量 6——审计"色板逼近失控线"的封口条款);新色入板须同时过两道门:①§4.2 语义检查(不占语义色段/禁入带);②**与既有任一色的 RGB 三通道差 ≥8/255**——反例即审计实证:#3A2E22 ↔ #362B20 三通道差均 <5,肉眼不可辨,同板共存只增噪。不过门即触发「换色合并」(把意图色并进最近既有色),**禁加色绕行**;加色义务随批登记于本表修订。**「待定现用」态释义(2026-10-06 用户立第三态)**:数值**现行即执法**(色板检查器按此拦,§8.3)——非候选(不存在"等冻结"空窗)、非死规(后续需求引入时可变);调整走本节修订并登记,改值 = 修订不是违约。
|
||||
**色板增量纪律(2026-10-06 P2 对账批新增;数值状态 = **待定现用**)**:全作色板硬上限 **48 色**(现行 ≈45,余量 3——2026-10-14 迭代 26 新入 GOLD_BRIGHT/HERO_BLUE_BRIGHT/SLOT_BACKDROP_SOFT 三枚 UI 亮档/柔和档 token,均已过 §4.2 语义检查〔不占语义色段〕与 RGB 三通道差 ≥8/255 两道门;审计"色板逼近失控线"的封口条款);新色入板须同时过两道门:①§4.2 语义检查(不占语义色段/禁入带);②**与既有任一色的 RGB 三通道差 ≥8/255**——反例即审计实证:#3A2E22 ↔ #362B20 三通道差均 <5,肉眼不可辨,同板共存只增噪。不过门即触发「换色合并」(把意图色并进最近既有色),**禁加色绕行**;加色义务顺带登记于本表修订。**「待定现用」态释义(2026-10-06 用户立第三态)**:数值**现行即执法**(色板检查器按此拦,§8.3)——非候选(不存在"等冻结"空窗)、非死规(后续需求引入时可变);调整走本节修订并登记,改值 = 修订不是违约。
|
||||
|
||||
### 4.2 语义色彩规则
|
||||
|
||||
> **适用域(2026-09-29 v3.0 立)**:本节「X 只说 Y」约束**信息层**(格内信息/UI 数据/预告/语义标识)与**语义物件**(金币=收益金、血条=危险红等);**纯环境氛围**(背景/装饰变体/远景/非语义物件)不受色相独占约束,改受 §3.4 焦点预算与低饱和后退约束(不抢读即可用色)。禁入带 300°–345°:信息层与语义物件禁入不变;环境层可入但限低饱和(高饱和紫赤仍 Boss 独占,§2.6)。
|
||||
|
||||
- **红只说危险**:危险红=兑现档(旗朱预告档随封印紫批退役,红族单档)。禁(信息层域):红不得用于奖励、装饰性标识与常规 UI(微光群伤组除外——见「类型微光色带」条,其色相刻意错开语义红)。←原三;P2;§2.1;封印紫批 2026-09-26
|
||||
- **金只说收益与兑现**(奖励、结算、胜利)。禁(信息层与语义物件域):金不得作危险障碍色、不上格底、不作日常 UI 强调(防通胀;微光通用增益组的芥末黄属「类型微光色带」条色带,非收益语义金)。←P2;P3;§2.2–2.4
|
||||
- **蓝只说己方与冷静信息**(小人、光标、工具信息——含可挖域接触带呼吸微光,蓝族浅一档 `#D6ECFF`〔样张 v2 定稿 2026-09-28〕,2026-09-25 拍板)。禁(信息层域):蓝不得表示敌方危险;暮蓝 `#5A6C8C` 为失败独占(§2.5),只作全屏氛围,不作物件色。←P1;§2.5
|
||||
- **紫赤只说 Boss 与精英** `#8F2F6A`(色相 323°):郑重来自色相独占,不来自压暗。禁:**HSV 色相 300°–345° 为信息层与语义物件禁入带**——UI、粒子、类型微光、语义物件及图类型色板信息面不得落入;环境层(背景/装饰)可入但限低饱和,高饱和紫赤仍 Boss 独占(2026-09-29 v3.0 域限定)。←§2.6;原三
|
||||
- **绿只说自然生机**(环境植被;恢复类状态若有则用绿——待增益状态定夺)。**例外:类型微光治疗组**(见下条「类型微光色带」)。禁(信息层域):绿不得承载逻辑状态(微光色带除外),不得与红构成唯一区分对。←原三;T1 裁决 2026-09-22
|
||||
- **类型微光色带 = 格面类型先验专用逻辑色带**(未开格类型预读的色彩通道;概念定义、可见范围与生命周期见《HUD框架》「未开格类型微光」节):未开格类型微光的信息色彩按以下五组执行——**通用增益组**(attack/defense/weaken/action/gp 五族)芥末黄 `#D6C13A`(≈52°)、**治疗组**(heal)黄绿 `#5CB83A`(≈104°)、**穿刺组**(pierce)青 `#2E9E9E`(≈180°)、**魔法组**(magic)紫罗兰 `#7B5BD6`(≈256°)、**群伤组**(blast)绯红 `#FF2D55`(≈349°,刻意避开危险红色相段与 300°–345° 禁入带)——**样张 v2 定稿(2026-09-28)**,组间互辨抽检随机检报告;v2 呈现参数=内缘带状泛光 α170/带宽 cell÷8(亮度不压格底明度档,§2 微光例外)。分域纪律:微光色相只承载类型先验,不迁移复用为物件/阵营/UI 语义色;微光 = **色相+明度双码**(2026-09-28 角嵌退役批起明度梯度承载类型——§2 微光明度例外:梯度不得压破格底明度档/三态分类);色弱玩家的类型主通道 = 微光双码。←T1 裁决 2026-09-22;角嵌退役批 2026-09-28;§4.6.3
|
||||
- **红只说危险**:危险红=兑现档(旗朱预告档随封印紫批退役,红族单档)。禁(信息层域):红禁止用于奖励、装饰性标识与常规 UI(微光群伤组除外——见「类型微光色带」条,其色相刻意错开语义红)。←原三;P2;§2.1;封印紫批 2026-09-26
|
||||
- **金只说收益与兑现**(奖励、结算、胜利)。禁(信息层与语义物件域):金禁止作危险障碍色、不上格底、不作日常 UI 强调(防通胀;微光通用增益组的芥末黄属「类型微光色带」条色带,非收益语义金)。←P2;P3;§2.2–2.4
|
||||
- **蓝只说己方与冷静信息**(小人、光标、工具信息——含可挖域接触带呼吸微光,蓝族浅一档 `#D6ECFF`〔样张 v2 定稿 2026-09-28〕,2026-09-25 拍板)。禁(信息层域):蓝禁止表示敌方危险;暮蓝 `#5A6C8C` 为失败独占(§2.5),只作全屏氛围,不作物件色。←P1;§2.5
|
||||
- **紫赤只说 Boss 与精英** `#8F2F6A`(色相 323°):郑重来自色相独占,不来自压暗。禁:**HSV 色相 300°–345° 为信息层与语义物件禁入带**——UI、粒子、类型微光、语义物件及图类型色板信息面禁止落入;环境层(背景/装饰)可入但限低饱和,高饱和紫赤仍 Boss 独占(2026-09-29 v3.0 域限定)。←§2.6;原三
|
||||
- **绿只说自然生机**(环境植被;恢复类状态若有则用绿——待增益状态定夺)。**例外:类型微光治疗组**(见下条「类型微光色带」)。禁(信息层域):绿禁止承载逻辑状态(微光色带除外),禁止与红构成唯一区分对。←原三;T1 裁决 2026-09-22
|
||||
- **类型微光色带 = 格面类型先验专用逻辑色带**(未开格类型预读的色彩通道;概念定义、可见范围与生命周期见《HUD框架》「未开格类型微光」节):未开格类型微光的信息色彩按以下五组执行——**通用增益组**(attack/defense/weaken/action/gp 五族)芥末黄 `#D6C13A`(≈52°)、**治疗组**(heal)黄绿 `#5CB83A`(≈104°)、**穿刺组**(pierce)青 `#2E9E9E`(≈180°)、**魔法组**(magic)紫罗兰 `#7B5BD6`(≈256°)、**群伤组**(blast)绯红 `#FF2D55`(≈349°,刻意避开危险红色相段与 300°–345° 禁入带)——**样张 v2 定稿(2026-09-28)**,组间互辨抽检随机检报告;v2 呈现参数=内缘带状泛光 α170/带宽 cell÷8(亮度不压格底明度档,§2 微光例外)。分域纪律:微光色相只承载类型先验,不迁移复用为物件/阵营/UI 语义色;微光 = **色相+明度双码**(2026-09-28 角嵌退役批起明度梯度承载分组(组间五色相、组内不细分——通用增益组五族同色相、不再承诺组内分型;§2 微光明度例外:梯度禁止压破格底明度档/三态分类);色弱玩家的类型主通道 = 微光双码(组粒度:组间五色相 + 各组一档明度互辨)。←T1 裁决 2026-09-22;角嵌退役批 2026-09-28;§4.6.3
|
||||
- **金/红兼作极性色相槽(§4.6)**:极性(概念定义与符号矩阵见《地图战斗资源》极性提案)的视觉取色只在这两族间——有利兑付 = 金族,有害兑付 = 红族,不新增语义色。←§4.6;原二
|
||||
|
||||
### 4.3 图类型色板换皮规则(board_type)
|
||||
@@ -236,11 +239,11 @@
|
||||
|
||||
1. 已开 vs 未开:§3.2 完整/碎裂形承载,无需另加
|
||||
2. 已开 vs 变异格:纹带形状通道,灰度截图可辨,无需另加
|
||||
3. 旗 vs 巢穴(雷格):旗形物件对砖面巢穴纹,无需另加
|
||||
3. 旗 vs 巢穴(危险格):旗形物件对砖面巢穴纹,无需另加
|
||||
4. 奖励金 vs 危险红(色弱下皆偏褐):§3.1 道具点两类剪影 + §3.4 满圆对刺缺 + 金粒运动,无需另加
|
||||
5. Boss 紫赤 vs 其他敌:§5.1 形状独占,无需另加
|
||||
6. 小人蓝 vs 青墨数字:明度悬殊 + 小人轮廓与底盘,无需另加
|
||||
7. **UI 红/金强调对:纹带不管面板——需补图标+文案冗余,且破坏性确认不得与常规确认同位(位置通道)** ←原三
|
||||
7. **UI 红/金强调对:纹带不管面板——需补图标+文案冗余,且破坏性确认禁止与常规确认同位(位置通道)** ←原三
|
||||
8. 失败暮蓝 vs 小人蓝:状态互斥,不承载区分,无需冗余
|
||||
9. 图标键族(§4.6):图标身份全靠纹样形状通道(一键一纹样,色相不承载身份);未开格类型预读 = **类型微光单通道**(五组色带,§4.2;2026-09-28 角嵌退役批起色相+明度双码——明度档间互辨承载色弱场景);极性金/红对由框形满/缺冗余——色相全失效时图标仍可逐一辨认与定极性。←原三;增益状态×4②;T1 裁决 2026-09-22
|
||||
|
||||
@@ -254,7 +257,7 @@
|
||||
|
||||
- **身份 = 形状纹样键**:一键一纹样,全作不复用;**色相不承载身份**(七效果不七色——防色相爆炸,亦防色弱失效)。
|
||||
- **极性 = 色相槽 + 框形**:有利兑付 = 金族(§4.2"金只说收益"),有害兑付 = 红族("红只说危险")——零新增语义色;框形冗余:满框对缺框(§3.4"收益用满与圆,危险用刺与缺")。极性判定的数据源 = 战斗结算 SettlementTable 效果语义(非 magnitude 符号——增益状态×4③),本契约只锁视觉通道、不锁数据映射。
|
||||
- **格面身份预读 = 类型微光;徽章 = 附属小图标**:格面的类型身份预读画在格上——类型走类型微光(§3.2/§4.2,底效泛光不入遮挡栈),不得构成格内第二焦点(§3.4);徽章小图标族用于库存条与结算明细。〔角嵌位随 2026-09-28 退役批消失〕
|
||||
- **格面身份预读 = 类型微光;徽章 = 附属小图标**:格面的类型身份预读画在格上——类型走类型微光(§3.2/§4.2,底效泛光不入遮挡栈),禁止构成格内第二焦点(§3.4);徽章小图标族用于库存条与结算明细。〔角嵌位随 2026-09-28 退役批消失〕
|
||||
- **未开格预读 = 类型微光单通道**(色相+明度双码;2026-09-22 T1 裁决立双通道→2026-09-28 角嵌退役批改单通道):微光五组色带见 §4.2「类型微光色带」。只表达类型、不呈现极性、不泄雷/安(信息口径见《HUD框架》「未开格类型微光」节;约束出处见《地图战斗资源》极性提案 R3);兑付面与库存徽章可用语义族色,终稿归样张批。
|
||||
|
||||
#### 4.6.1 效果图标键(九行 = 增益状态现行实态,2026-09-24 纹样系统定稿;键集事实源归增益状态 GDD 与 `status_effects.tres`,本表键名随其修订自动跟随)
|
||||
@@ -262,7 +265,7 @@
|
||||
| 键(effect_id) | display_name | 纹样描述(2026-09-24 用户定稿) | 极性 |
|
||||
|---|---|---|---|
|
||||
| attack_up | 增伤 | 白色长剑为主体(大,斜向、剑尖朝右上),右下角一枚小绿色向上箭头 | 有利 |
|
||||
| ac_up | 护甲强化 | 正面白色盾牌为主体(大),右下角一枚小绿色向上箭头 | 有利 |
|
||||
| ac_up | 盾牌加护 | 正面白色盾牌为主体(大),右下角一枚小绿色向上箭头 | 有利 |
|
||||
| alert | 警觉 | 一只白色眼睛 | 有害 |
|
||||
| weaken | 削弱 | 同 attack_up 白剑主体,右下角一枚小红色向下箭头 | 有利 |
|
||||
| enrage | 暴走 | 与 attack_up 完全同图(同为攻击提升族:攻击提升一档) | 有害 |
|
||||
@@ -281,7 +284,7 @@
|
||||
|---|---|---|---|
|
||||
| attack_up | attack 正向 | 增伤增益(与 §4.6.1 同语义域共族、键分立) | 金族满框 |
|
||||
| enrage | attack 负向 | 敌方增伤 | 红族缺框 |
|
||||
| ac_up | defense 正向 | 护甲强化 | 金族满框 |
|
||||
| ac_up | defense 正向 | 盾牌加护 | 金族满框 |
|
||||
| off_guard | defense 负向 | 主角失衡(与 §4.6.1 共族、键分立) | 红族缺框 |
|
||||
| heal_minor | heal 正向 | 小额回复 | 金族满框 |
|
||||
| heal_backlash | heal 负向 | 恢复倒扣(直伤) | 红族缺框 |
|
||||
@@ -297,13 +300,13 @@
|
||||
| ap_drain | action 负向 | 迟滞——沙漏倒置 | 红族缺框 |
|
||||
| gp_coin | gp 正向 | 金币袋——钱币/财货 | 金族满框 |
|
||||
| gp_lose | gp 负向 | 破财 | 红族缺框 |
|
||||
| clear_blast | 清图槽 | 清图群伤——blast 族、板级作用域 | 按正向视觉 |
|
||||
| clear_blast | 清图槽 | 清图群伤——blast 族、整图作用域 | 按正向视觉 |
|
||||
|
||||
- 负向徽标用于踩雷反噬的结算呈现;权重与摇号语义见《地图战斗资源》。
|
||||
- 库存常读条义务与兑付/库存语义见《地图战斗资源》。
|
||||
- 格面预读按**家族类型**微光呈现(§4.6.3;呈现粒度决策见《地图战斗资源》极性提案 R1)。
|
||||
- **2026-09-22 勘误**:修订指导底稿曾记 gp 组键名为 gp_gain/gp_loss,以 `reward.tres` 实际键 **gp_coin/gp_lose** 为准(配置是事实源)。
|
||||
- **资产契约(2026-10-06 P1-2 批——审计「19 枚格面徽章 0 张」缺口收口;状态图标 §4.6.1 模式复刻「键→文件名→尺寸」;尺寸候选,样张批冻结)**:19 枚 = `ui/icons/reward_<reward_id>.png`(键 = 本表 reward_id,正向/负向/清图槽同模式),源 40×40、显示 20px(格面小记号级)/40px(明细面)双档候选;极性视觉按本表「极性视觉」列(金族满框/红族缺框 = 形状+色彩双通道纪律)。**契约立前此族 0 张为已知缺口**(审计 P1-2),程序化占位在役;出图工单归 art-assets-checklist/PRD,交付后 art-status-checklist 随批 ✅。
|
||||
- **资产契约(2026-10-06 P1-2 批——审计「19 枚格面徽章 0 张」缺口完成;状态图标 §4.6.1 模式复刻「键→文件名→尺寸」;尺寸候选,样张批冻结)**:19 枚 = `ui/icons/reward_<reward_id>.png`(键 = 本表 reward_id,正向/负向/清图槽同模式),源 40×40、显示 20px(格面小记号级)/40px(明细面)双档候选;极性视觉按本表「极性视觉」列(金族满框/红族缺框 = 形状+色彩双通道纪律)。**契约立前此族 0 张为已知缺口**(审计 P1-2),程序化占位在役;出图工单归 art-assets-checklist/PRD,交付后 art-status-checklist 顺带 ✅。
|
||||
|
||||
#### 4.6.3 格面类型图标键(九类——地图战斗资源现行实态;键契约冻结,终稿归样张批)
|
||||
|
||||
@@ -319,10 +322,10 @@
|
||||
| action | 行动族 | 行动点/疾步 |
|
||||
| gp | 金币族 | 钱币/财货 |
|
||||
|
||||
- **呈现约束(2026-09-28 角嵌退役批更新)**:未开格呈现**类型微光单通道**(五组色带,§4.2「类型微光色带」,色相+明度双码;样张 v2 定稿 2026-09-28;可见范围与时机见《HUD框架》「未开格类型微光」节);不呈现极性、不呈现雷/安(信息口径见该正主节);样张批微光组间互辨抽测含明度档互辨(误读率指标出处见《地图战斗资源》极性提案)。
|
||||
- **呈现约束(2026-09-28 角嵌退役批更新)**:未开格呈现**类型微光单通道**(五组色带,§4.2「类型微光色带」,色相+明度双码;样张 v2 定稿 2026-09-28;可见范围与时机见《HUD框架》「未开格类型微光」节);不呈现极性、不呈现雷/安(信息口径见该权威定义节);样张批微光组间互辨抽测含明度档互辨(误读率指标出处见《地图战斗资源》极性提案)。
|
||||
- **状态声明**:键集九值封闭(attack/defense/heal/blast/weaken/pierce/magic/action/gp,与 RewardTable 现行 cell_type 词表一致),扩键走本节修订。
|
||||
- 与 §4.6.1 的关系:同语义域的键(attack↔attack_up 等)可共族设计,键分立、纹样须可区分(格面小记号级对槽内图标级)。
|
||||
- **资产契约(2026-10-06 P1-2 批——审计「6 类地形变异纹带 0 张」缺口收口;尺寸候选,样张批冻结)**:纹带族 = `board/band_<variant_id>.png`(键 = 变异类型 id,键集事实源 = [地形变异](../gdd/systems/排雷循环/地形变异.md)「变异框架与类型清单」region 六行〔荆棘丛/藤蔓缠绕/岩浆/烬覆/落石/矿尘〕+ registry `variant_pool_gate`;通配 global 型〔贫矿脉〕无格子布置域、**不在纹带族**),源 64×64 四边无缝(叠于已开格底)、显示 1× = 格边长。呈现锚 = 「变异格未开时无预告呈现(遭遇式)」——纹带是**已开变异格**的标识层(地形变异 GDD「视觉标识归表现层升级批」的素材承载),半透明叠加、不得侵入数字字形占位区(§4.1 砖心留白同理)。程序化纹带在役 = 占位(◐);出图工单归 PRD,交付后 art-status-checklist 随批 ✅。
|
||||
- **资产契约(2026-10-06 P1-2 批——审计「6 类地形变异纹带 0 张」缺口完成;尺寸候选,样张批冻结)**:纹带族 = `board/band_<variant_id>.png`(键 = 变异类型 id,键集事实源 = [地形变异](../gdd/systems/排雷循环/地形变异.md)「变异框架与类型清单」region 六行〔荆棘丛/藤蔓缠绕/岩浆/烬覆/落石/矿尘〕+ registry `variant_pool_gate`;通配 global 型〔贫矿脉〕无格子布置域、**不在纹带族**),源 64×64 四边无缝(叠于已开格底)、显示 1× = 格边长。呈现锚 = 「变异格未开时无预告呈现(遭遇式)」——纹带是**已开变异格**的标识层(地形变异 GDD「视觉标识归表现层升级批」的素材承载),半透明叠加、禁止侵入数字字形占位区(§4.1 砖心留白同理)。程序化纹带在役 = 占位(◐);出图工单归 PRD,交付后 art-status-checklist 顺带 ✅。
|
||||
|
||||
#### 4.6.4 敌种线索键(映射键 = enemy_id;键集事实源归敌人系统 GDD 与 registry/enemy 表,2026-09-22 核)
|
||||
|
||||
@@ -334,9 +337,9 @@
|
||||
| 恒定义务 | enemy_id 键映射跨 run 恒定、禁重掷;图像不报数——精确数值的明细承载见《战斗结算》 |
|
||||
|
||||
- **敌种键集 = 八敌种**(registry enemy mvp_content,2026-09-25 核):goblin 地精(light)/ bugbear 熊地精(light;**L2 熊地精 = bugbear 复用**,第二关三行显示名熊地精系,同剪影换色板,非独立键)/ ogre_chief 食人魔酋长(light,第一关关底 Boss)/ giant_spider 巨蜘蛛(light,群行 [2,3])/ drider 蛛化卓尔精灵(ward,第二关 Boss)/ duergar 灰矮人(heavy)/ hook_horror 钩爪恐魔(light,群行)/ duergar_king 灰矮人石君王(heavy,第三关 Boss)。键数据与甲档实态见《敌人系统》与 `enemy.tres`。
|
||||
- **资产需求下限三类**(敌人系统登记,呈现归 HUD框架/战斗表现):受击反馈(可共用一组)/ 死亡表现(**灰化+碎裂退场,不得直接消失**)/ 顺位标记(敌多时可读)。
|
||||
- **资产需求下限三类**(敌人系统登记,呈现归 HUD框架/战斗表现):受击反馈(可共用一组)/ 死亡表现(**灰化+碎裂退场,禁止直接消失**)/ 顺位标记(敌多时可读)。
|
||||
- Boss 表现约束:§2.6 紫赤色相独占 + §5.1 Boss 形状独占双通道;键集扩容随内容批入本表。
|
||||
- 剪影通用性:剪影不得借特定格底色成立(§5.1)——棋盘/结算/任一战斗舞台同一套。
|
||||
- 剪影通用性:剪影禁止借特定格底色成立(§5.1)——棋盘/结算/任一战斗舞台同一套。
|
||||
|
||||
---
|
||||
|
||||
@@ -354,17 +357,17 @@
|
||||
|
||||
### 6.1 战斗舞台背景(B 区环境)
|
||||
|
||||
- **双舞台常驻下的 B 区环境**:战斗画面区(站桩立绘所在)的背景 = 明亮地窟,与 §1 风格基调同源——暖倾向、无压抑;背景整体**低对比自然后退**(§3.4 焦点预算延伸):背景不得构成完整凸形、不得抢 B 区立绘与 D 区数字的焦点,识别层级恒为 立绘 > 背景。
|
||||
- **舞台正面目标(2026-09-29 v3.0 新增——原条只有负面约束,病根 6)**:B 区 = **地窟看台**——立绘脚下地台/落影承载(世界中层),背景环境层低饱和后退、明度走世界底层档,允许光源氛围(洞顶光柱/暖光晕候选);角色不得直接贴平色底。规格与终值归整屏样张闸(§1.4)冻结。
|
||||
- **明度分层适用(2026-09-29 v3.0 改条)**:背景氛围的情绪表达仍不得以压暗/渐晕实现(§2 禁令);空间纵深与洞穴感走明度分层允许域——世界底层档、光照氛围、色相饱和与形体承载(§3.2 同款逻辑)。
|
||||
- **双舞台常驻下的 B 区环境**:战斗画面区(站桩立绘所在)的背景 = 明亮地窟,与 §1 风格基调同源——暖倾向、无压抑;背景整体**低对比自然后退**(§3.4 焦点预算延伸):背景禁止构成完整凸形、禁止抢 B 区立绘与 D 区数字的焦点,识别层级恒为 立绘 > 背景。
|
||||
- **舞台正面目标(2026-09-29 v3.0 新增——原条只有负面约束,病根 6)**:B 区 = **地窟看台**——立绘脚下地台/落影承载(世界中层),背景环境层低饱和后退、明度走世界底层档,允许光源氛围(洞顶光柱/暖光晕候选);角色禁止直接贴平色底。规格与终值归整屏样张闸(§1.4)冻结。
|
||||
- **明度分层适用(2026-09-29 v3.0 改条)**:背景氛围的情绪表达仍禁止以压暗/渐晕实现(§2 禁令);空间纵深与洞穴感走明度分层允许域——世界底层档、光照氛围、色相饱和与形体承载(§3.2 同款逻辑)。
|
||||
- **图类型联动**:背景 tint 走 §4.3 `wall_ambient` 槽,随三关换挡(方向候选见 §6.3);紫赤仅 Boss 战允许短暂进入背景氛围纹样(§2.6 色相独占的舞台侧延伸,高饱和独占不变),非 Boss 战高饱和紫赤禁入。
|
||||
- **资产渠道**:✦ 插画级(演出类场景贴图,清单 §4 联动登记);战斗一屏样张(§1.4 清单 1.2)含背景出样。**资产契约(2026-10-06 P1-2 批——审计「B 区舞台背景插画 0 张」缺口收口;尺寸候选,样张批冻结)**:基准一张 = `stage/stage_bg.png`(源 1280×270,B 区全高含明细带底;三关换挡走 §4.3 `wall_ambient` tint 槽,不按板出三张——换皮成本复用棋盘同款逻辑),显示 1×;呈现约束按本节各条(低对比后退/明度世界底层档/光柱氛围保留)。程序化平色+光柱在役 = 占位(◐);插画工单归 PRD,交付后 art-status-checklist 随批 ✅。
|
||||
- **资产渠道**:✦ 插画级(演出类场景贴图,清单 §4 联动登记);战斗一屏样张(§1.4 清单 1.2)含背景出样。**资产契约(2026-10-06 P1-2 批——审计「B 区舞台背景插画 0 张」缺口完成;尺寸候选,样张批冻结)**:基准一张 = `stage/stage_bg.png`(源 1280×270,B 区全高含明细带底;三关换挡走 §4.3 `wall_ambient` tint 槽,不按板出三张——换皮成本复用棋盘同款逻辑),显示 1×;呈现约束按本节各条(低对比后退/明度世界底层档/光柱氛围保留)。程序化平色+光柱在役 = 占位(◐);插画工单归 PRD,交付后 art-status-checklist 顺带 ✅。
|
||||
|
||||
### 6.2 营地场景
|
||||
|
||||
- **情绪与色域**:承载 §2.8——全作最暖:烛光黄 `#F6C667` × 木色 `#8A5A34`(§7.2),中等饱和,无棋盘式高对比。
|
||||
- **场景构成**:营地三柜台(属性锻造/道具工坊/奖励格图鉴)在烛光下一字排开,钥石余额常驻顶栏;柜台 = 石板圆角容器(§7.1)+ 木石材质贴图;每购得一件永久强化,对应柜台亮起一格暖光——亮起只走饱和/色相手段,不动明度(§2)。
|
||||
- **事实源边界**:柜台与钥石的系统语义(解锁条件/价格/存档写入)归元进度 GDD 与 `MetaProgression`,本节只定画法;贴图与图标资产归清单 §3.5;现行以程序化占位承载(占位收口条款见 §7.1)。
|
||||
- **场景构成**:营地三柜台(属性锻造/秘宝匣/奖励格图鉴)在烛光下一字排开,钥石余额常驻顶栏;柜台 = 石板圆角容器(§7.1)+ 木石材质贴图;每购得一件永久强化,对应柜台亮起一格暖光——亮起只走饱和/色相手段,不动明度(§2)。
|
||||
- **事实源边界**:柜台与钥石的系统语义(解锁条件/价格/存档写入)归元进度 GDD 与 `MetaProgression`,本节只定画法;贴图与图标资产归清单 §3.5;现行以程序化占位承载(占位完成条款见 §7.1)。
|
||||
|
||||
### 6.3 三关图类型色板候选(board_type 换挡方向)
|
||||
|
||||
@@ -382,30 +385,30 @@
|
||||
|
||||
### 6.5 视野迷雾与黑暗区域渲染(棋盘灯光区,2026-10-03 立节)
|
||||
|
||||
> **白话**:战斗棋盘不再整板可见——只有以角色为中心的菱形灯光区看得清,区外没开过的格子沉入全黑,开过的格子留下灰阶的「记忆」。像在洞穴里举灯探索。机制口径(可见性/生命周期/纯呈现纪律)的正主 =《HUD框架》「视野迷雾:菱形灯光区与黑暗边界」节(全项目唯一正主,引用只指路),该节点名「黑暗区域渲染规格(暗淡态明度、迷雾过渡)归 art-bible」,本节即其承载——只管"怎么画",不复述机制。纯呈现层:格态、数字真值、清图判定零影响;零素材新增(全部程序化遮罩/调制);类型微光语义零改动。
|
||||
> **白话**:战斗棋盘不再整板可见——只有以角色为中心的菱形灯光区看得清,区外没开过的格子沉入全黑,开过的格子留下灰阶的「记忆」。像在洞穴里举灯探索。机制口径(可见性/生命周期/纯呈现纪律)的现行事实源 =《HUD框架》「视野迷雾:菱形灯光区与黑暗边界」节(全项目唯一事实源,引用只指路),该节点名「黑暗区域渲染规格(暗淡态明度、迷雾过渡)归 art-bible」,本节即其承载——只管"怎么画",不复述机制。纯呈现层:格态、数字真值、清图判定零影响;零素材新增(全部程序化遮罩/调制);类型微光语义零改动。
|
||||
|
||||
- **菱形灯光区(遮罩几何)**:灯光区 = 以角色所在格为中心、**曼哈顿距离 ≤ LIGHT_RADIUS** 的格集,区内照常渲染。LIGHT_RADIUS 走表值/常量参数化,**基准 8**——正主「灯光区起步半径=微光环 8 格」的落码口径(半径数值沿微光「周围 8 格」的 8 起步,实测后可调)。**两圈分立注**:类型微光作用圈 = 英雄贴身 8 邻格(与可挖域同圈,正主《HUD框架》「未开格类型微光」节),**不随灯光区扩**(正主配套拍板④)——灯光区只裁可见性,微光锚仍是可挖域,两圈几何分立、半径参数互不读写。提灯插值位:LIGHT_RADIUS_LANTERN_BONUS = **+2**(flat 整数档,正主配套拍板),**预留不接效果**(接线归 Alpha 信息件批)。边界随角色格位逐格重算,无半径插值动画。←正主;§2 光照氛围允许域
|
||||
- **区外未开格:全黑不渲染(不透明档,照抄正主)**:正主原文「区外**未开格=全黑不渲染**」——不透明纯黑(L=0),**非高遮蔽半透档**。理由注记(为何不用高遮蔽档):①三档信息阶梯干净——未开格不可见=零信息、记忆格=弱信息、活格=全信息,叠读不打架;②高遮蔽档下砖面纹理隐约残留,与「类型微光=未开格唯一信息通道」(§4.2/§4.6.3)冲突——纹理残影泄格面观感;③正主验收线「区外未开格不可见」须二值态才能逐格断言。←正主;§4.2
|
||||
- **区外已开格:暗淡记忆态(灰显可读档,2026-10-06 UI 设计对齐批 P10 乙换装)**:画法 = **地板纹理原样 + 灰罩压顶**(demo 口径换装——原「程序化素色记忆板平涂」退役;纹理直画后 `FOG_MEMORY_PLATE #3A3A3A` α0.66 灰罩盖顶,素材零改动)+ 格内元素灰阶随罩隐现:**记忆墨 #C4C4C4(中性灰 L≈0.55)**;数字对合成底实测 **≈6.7:1 ≥4.5:1**(WCAG 硬指标;地板纹理均值 #453020 与灰罩合成后 #3E3731 复算,迭代 16 T0)。双峰板色牌格在记忆态**退牌归板**——牌面并入记忆态、数字以记忆墨直画。可辨性自查判据(三通道,落码后随样张/实机自检):①对全黑未开格——合成底 #3E3731(L≈0.036)对 L0,实机目检常光档可分(暗房档一并抽检);②对灯光区内活态已开格——主判据=数字墨灰度差(记忆墨 L0.55 对亮墨三档 L≥0.75 / 色牌 #F5EAD3 L≈0.83,灰度 ΔL≥0.20)+ 色相通道(记忆态近中性灰,对活态暖底暖墨);格底明度差为辅助通道;③格态三形在记忆态保持灰度可辨——形通道经纹理+灰罩形态不变,沿 §1.4 验收 2 同源判据。**旗不在记忆态面**:旗只插在未开格,区外未开格全黑——旗印记随格隐没、灯光区移回复显(纯呈现,旗数据零影响,正主口径的显式推论)。←HUD框架 可访问性基线;§4.1;§1.4;§3.2
|
||||
- **迷雾过渡边:硬边(逐格二值)**:灯光区边界 = **整格二值切换**(区内全渲染 / 区外全黑或记忆态),**不做渐变过渡带、不做半透明晕边**。理由:①边界是信息边界不是氛围晕——渐变中间态 =「看得见但看不清」,破数字可读硬指标与记忆态明度档;②正主验收断言(边界格呈态、两态逐位一致)须格级二值可判;③与砖面整格表达(§3.2 高墙瓦片体系)、ITB 格内信息分层气质同轴。无动画,减动效无涉。←正主;§1.2 原则一;§3.2
|
||||
- **与结算期去饱和的叠加共存**:结算期去饱和偏移(settlement_fx_view,同族先例)与迷雾调制叠加口径 = **记忆态为终态档**——区外已开格在结算期保持记忆态档、**不再叠加**结算去饱和(灰显已含去饱和语义,二次调制无信息增量且明度不可控);灯光区内格照常吃结算去饱和;全黑格两态无差。叠加态随实施批共存校验 + 探针断言(provisional,实机目检可代拍)。←任务书 T3/T4
|
||||
- **菱形灯光区(遮罩几何)**:灯光区 = 以角色所在格为中心、**曼哈顿距离 ≤ LIGHT_RADIUS** 的格集,区内照常渲染。LIGHT_RADIUS 走表值/常量参数化,**基准 8**——现行事实源「灯光区起步半径=微光环 8 格」的落码口径(半径数值沿微光「周围 8 格」的 8 起步,实测后可调)。**两圈分立注**:类型微光作用圈 = 英雄贴身 8 邻格(与可挖域同圈,现行事实源《HUD框架》「未开格类型微光」节),**不随灯光区扩**(权威文档配套拍板④)——灯光区只裁可见性,微光锚仍是可挖域,两圈几何分立、半径参数互不读写。提灯插值位:FOG_LANTERN_BONUS = **+2**(flat 整数档,权威文档配套拍板;落码常量名 `board_view.gd FOG_LANTERN_BONUS`——本条旧记 LIGHT_RADIUS_LANTERN_BONUS 系文档侧拟名,随迭代 19 卡④入库对齐实名),**已接效果入库**(2026-10-08 迭代 19 卡④:载体=秘宝·同调位 fog_lantern「魔法提灯」行,组合根每战装配链显式重算接线;呈现画法零改动——本节只管"怎么画",机制现行事实源仍归《HUD框架》)。边界随角色格位逐格重算,无半径插值动画。←现行事实源;§2 光照氛围允许域
|
||||
- **区外未开格:全黑不渲染(不透明档,照抄现行事实源)**:现行事实源原文「区外**未开格=全黑不渲染**」——不透明纯黑(L=0),**非高遮蔽半透档**。理由注记(为何不用高遮蔽档):①三档信息阶梯干净——未开格不可见=零信息、记忆格=弱信息、活格=全信息,叠读不打架;②高遮蔽档下砖面纹理隐约残留,与「类型微光=未开格唯一信息通道」(§4.2/§4.6.3)冲突——纹理残影泄格面观感;③现行事实源验收线「区外未开格不可见」须二值态才能逐格断言。←现行事实源;§4.2
|
||||
- **区外已开格:暗淡记忆态(灰显可读档,2026-10-06 UI 设计对齐批 P10 乙换装)**:画法 = **地板纹理原样 + 灰罩压顶**(demo 口径换装——原「程序化素色记忆板平涂」退役;纹理直画后 `FOG_MEMORY_PLATE #3A3A3A` α0.66 灰罩盖顶,素材零改动)+ 格内元素灰阶随罩隐现:**记忆墨 #C4C4C4(中性灰 L≈0.55)**;数字对合成底实测 **≈6.7:1 ≥4.5:1**(WCAG 硬指标;地板纹理均值 #453020 与灰罩合成后 #3E3731 复算,迭代 16 T0)。双峰板色牌格在记忆态**退牌归板**——牌面并入记忆态、数字以记忆墨直画。可辨性自查判据(三通道,落码后随样张/实机自检):①对全黑未开格——合成底 #3E3731(L≈0.036)对 L0,实机目检常光档可分(暗房档一并抽检);②对灯光区内活态已开格——主判据=数字墨灰度差(记忆墨 L0.55 对亮墨三档 L≥0.75 / 色牌 #F5EAD3 L≈0.83,灰度 ΔL≥0.20)+ 色相通道(记忆态近中性灰,对活态暖底暖墨);格底明度差为辅助通道;③格态三形在记忆态保持灰度可辨——形通道经纹理+灰罩形态不变,沿 §1.4 验收 2 同源判据。**旗不在记忆态面**:旗只插在未开格,区外未开格全黑——旗印记随格隐没、灯光区移回复显(纯呈现,旗数据零影响,现行事实源口径的显式推论)。←HUD框架 可访问性基线;§4.1;§1.4;§3.2
|
||||
- **迷雾过渡边:硬边(逐格二值)**:灯光区边界 = **整格二值切换**(区内全渲染 / 区外全黑或记忆态),**不做渐变过渡带、不做半透明晕边**。理由:①边界是信息边界不是氛围晕——渐变中间态 =「看得见但看不清」,破数字可读硬指标与记忆态明度档;②现行事实源验收断言(边界格呈态、两态逐位一致)须格级二值可判;③与砖面整格表达(§3.2 高墙瓦片体系)、ITB 格内信息分层气质同轴。无动画,减动效无涉。←现行事实源;§1.2 原则一;§3.2
|
||||
- **与结算期去饱和的叠加共存**:结算期去饱和偏移(settlement_fx_view,同族先例)与迷雾调制叠加口径 = **记忆态为终态档**——区外已开格在结算期保持记忆态档、**不再叠加**结算去饱和(灰显已含去饱和语义,二次调制无信息增量且明度不可控);灯光区内格照常吃结算去饱和;全黑格两态无差。叠加态随实施批共存校验 + 探针断言(provisional,实机目检可代拍)。←需求卡片 T3/T4
|
||||
- **§2 明度禁令自查**:迷雾遮蔽与记忆态灰显属 §2 明度分层**光照氛围允许域**(洞穴举灯的空间光照呈现,与 Moonlighter 取列「亮地板/暗深渊/发光体」光照层次同族),非情绪压暗(§9.2 Darkest 反面条款不触——那禁的是情绪表达)、非状态明暗编码(格态语义仍由形+色相承载,灰度下三态可辨不受扰)。←§2;§9.1;§9.2
|
||||
|
||||
---
|
||||
|
||||
## 7. UI 设计(UI Design)
|
||||
|
||||
> **白话**:这一章管 UI 长什么样式,UI 的具体选择都在本章定义。布局落在哪里、占多少像素,屏级权威在 battle.md、系统契约在 HUD框架;本章节内容——形状语法与色板细则(自 §3.3/§4.4 迁入)、布局栅格、字体字号、营地界面画法。
|
||||
> **白话**:这一章管 UI 长什么样式,UI 的具体选择都在本章定义。布局落在哪里、占多少像素,屏级权威在 battle.md、系统契约在 HUD框架;本章节内容——形状语法与色板细则(自 §3.3/§4.4 迁入)、布局栅格、字体字号、营地界面画法、引擎原生控件与按钮状态规格。
|
||||
|
||||
### 7.1 形状语法细则(自 §3.3 迁入)
|
||||
|
||||
**半拟物:容器穿戏服,数据素面。**面板=石板圆角矩形(与地砖同圆角率,全 UI 恒定),按钮=凸圆角的"可按的砖"(按压态=下沉一档,运动手段 §2),仪式性确认(胜利等)=圆形蜡封(呼应 §2.4);数字框、准线、进度条一律直角细线、无纹理;**数字色牌 = 直角小素牌**(2026-09-29 v3.0 后备件)——宽随数字位、无纹理无装饰,仅复杂格底兜底时垫于数字正下方一层(色值 §4.1),属"须精确的信息"侧、走直角律。判据:圆角=可触摸的物件,直角=须精确的信息。与参考分界:取 ITB 的信息分层,弃其冷硬斜切 HUD;取 Moonlighter 的木石亲和,不做全拟物。
|
||||
|
||||
- **极性强调冗余**(§4.5⑦):UI 红/金强调对必须补图标+文案冗余;破坏性确认与常规确认不得同位(位置通道)。
|
||||
- **极性强调冗余**(§4.5⑦):UI 红/金强调对必须补图标+文案冗余;破坏性确认与常规确认禁止同位(位置通道)。
|
||||
- **圆角率单点注记(2026-10-06 UI 设计对齐批 P5 甲)**:容器/按钮圆角值收敛为全站唯一 `RADIUS_OBJECT = 5`(ui_kit 单点;与主/危按钮原 5px 同值,面板与按钮同圆角率即满足本节「全 UI 恒定圆角率」);数据框/数字牌/AP 点阵/准线/血条维持 0 直角;**例外三件保留**=标题屏底座椭圆 17/结算金印 200(圆形蜡封)/状态脉冲环 100(圆形)。收敛前实测 0/2/3/4/5/6/8/17/100/200 十档并存。
|
||||
- **九宫格切片注记(2026-10-06 UI 设计对齐批 P4 乙+Q1 丙)**:panel 石皮 `PANEL_SLICE = 16`(原 8→16,与原型 .plate9 slice16 对齐;button 维持 8、仪式框维持 12——素材 panel_stone/button_stone 均 48×48 不动);`panel_skinned` 工厂内 **content margin clamp**=低于切片的分量自动抬到切片(石框纹理不吃内容;工厂单点,调用点零改)。本节原无切片条款,此为新增注记。
|
||||
- **资产渠道**:♻ 九宫格面板/按钮改色过复用闸优先(清单 §0),⚙ 兜底;样式终稿随 §1.4 样张闸后定稿。
|
||||
- **占位收口条款(2026-09-29 v3.0 新增,病根 8)**:程序化占位 = **临时态**,任何屏的终稿闸 = §1.4 整屏样张过闸;占位态不得跨里程碑。
|
||||
- **占位完成条款(2026-09-29 v3.0 新增,病根 8)**:程序化占位 = **临时态**,任何屏的终稿闸 = §1.4 整屏样张过闸;占位态禁止跨里程碑。
|
||||
- **实现侧边界**:样式收敛 ui_kit;ui_kit 的工程契约归《HUD框架》,本节不重述。
|
||||
|
||||
### 7.2 UI 色板细则(自 §4.4 迁入)
|
||||
@@ -415,7 +418,7 @@
|
||||
**数据素面的墨来自世界的墨**:UI 数字、进度、准线一律主墨 `#33261B` 系——棋盘与面板读同一种墨;容器穿木石材质色,数据只穿墨。**营地与棋盘**:菜单容器背景用全作最暖的烛光黄 `#F6C667` 与木色 `#8A5A34`(§2.8;场景构成 §6.2);战斗容器转中性石色,防暖色渗入棋盘分走数字对比预算——氛围色向可读色让路。UI 不新增语义色,一切强调沿用 §4.2。**暗底呈现态双色墨制**(关卡画面样张 v1 冻结 2026-09-28):暗底系(已过/未来/候选/Boss 方块、暗数据框)图标与读数一律暖白 `#F0E2C8`(WARM)、亮底(当前金 `#F0A828`)转深墨 `#181410`(INK_ROUTE)——各态对比 ≥4.5:1;已过节点暗金冻结 `GOLD_DONE #68562C`(专用呈现态值,旧 GOLD_DIM `#8C743C` 对双色墨均不达标退役出该呈现位);Boss 描边 = 紫赤 2px + 外缘 1px 深墨环(灰度冗余通道——§4.2 色相独占本色不变,§4.5 灰度可分类承载)。
|
||||
|
||||
- **琥珀双岗注记(2026-10-04 UI 落码批 M0)**:主操作色与收益金分轨——主按钮/候选节点/钥石徽章底用烛光黄 `#F6C667`(CANDLE,独立 token),奖励数字/钥石读数/地图「当前位置」仍独占 §4.1 奖励金 `#F0A828`。烛光黄族身兼「主操作 + 收益邻近氛围」双岗系主动取舍(原型评审 C 组留痕),非疏忽,防回改。底色三件套同步换代:BG_ROOT `#3A2E22`/BG_OVERLAY `#362B20`/新增 BG_BRIGHT `#453723`(配色总纲「提暖提亮禁近黑」);暖米族 WARM_SOFT `#E8D5A8`/WARM_FAINT `#CDB88C`(「米色去灰」)。
|
||||
- **色板五件对齐注记(2026-10-06 UI 设计对齐批 P7 乙——demo=唯一来源)**:数据板 `PANEL_DATA #E9D9B8`/板线 `PANEL_BORDER #786E58`/状态槽底 `SLOT_BACKDROP #3E362C`/血条深底 `HP_BAR_BACK #282220`/营地头带 `CAMP_HEADER_BAND #6E4526` 五 token 取值换代向原型 v2.1 对齐(Δ≤6/255 目视不可辨;代码与文档同批双侧落文)。色板唯一来源 = ui_kit 单点不变;原型文件只读不改(artwork 红线)。
|
||||
- **色板五件对齐注记(2026-10-06 UI 设计对齐批 P7 乙——demo=唯一来源)**:数据板 `PANEL_DATA #E9D9B8`/板线 `PANEL_BORDER #786E58`/状态槽底 `SLOT_BACKDROP #3E362C`/血条深底 `HP_BAR_BACK #282220`/营地头带 `CAMP_HEADER_BAND #6E4526` 五 token 取值换代向原型 v2.1 对齐(Δ≤6/255 目视不可辨;代码与文档同批双侧写入文档)。色板唯一来源 = ui_kit 单点不变;原型文件只读不改(artwork 红线)。
|
||||
|
||||
### 7.3 布局栅格
|
||||
|
||||
@@ -432,7 +435,36 @@
|
||||
|
||||
### 7.5 营地界面
|
||||
|
||||
- 三柜台界面画法 = §6.2 场景构成 + §7.2 最暖色域;柜台货架件 = 永久强化条目图标 + 价格(图标归清单 §3.5);钥石余额常驻顶栏(呈现位与系统语义边界见 §6.2);界面视觉终稿以表现层样张过审为前置(§1.4 整屏样张闸),现行以程序化占位承载(占位收口条款见 §7.1)。
|
||||
- 三柜台界面画法 = §6.2 场景构成 + §7.2 最暖色域;柜台货架件 = 永久强化条目图标 + 价格(图标归清单 §3.5);钥石余额常驻顶栏(呈现位与系统语义边界见 §6.2);界面视觉终稿以表现层样张过审为前置(§1.4 整屏样张闸),现行以程序化占位承载(占位完成条款见 §7.1)。
|
||||
|
||||
### 7.6 引擎原生控件与按钮状态规格(2026-10-14 迭代 25/26 反哺写入——原无条款,两批实现=临时权威,本批按呈报转正)
|
||||
|
||||
> **来源与边界**:迭代 25(UI 全局主题批)立引擎原生控件皮肤、迭代 26(UI 交互与观感批)立按钮五态矩阵与全局纹理过滤——此前 §7 无相应条款,两批实现系临时权威,用户 2026-10-14 裁「全部按呈报写入文档」转正为本节。**定值单点纪律(§8 头注)遵守**:本节只锁形态/尺寸档/对比度底线等规则,色值一律指路——主题色值事实源 = `game/assets/theme/README.md` 溯源表(与 ui_kit 常量双源,见本节末注),本节不复述色值。
|
||||
|
||||
**(一)按钮五态矩阵(迭代 26 T1;冒烟 V1/V2 35 断言在闸)**
|
||||
|
||||
- **五态齐全**:全站按钮(普通/主/危险三厂)必须五态非空——常态 / 悬停 / 按下 / 禁用 / 键盘焦点;任一态缺档即违本条(旧态:悬停填常态图=无反馈、禁用错配按压图、焦点全站空白)。
|
||||
- **悬停 = 常态图 + modulate 提亮**(乙案):提亮档 `Color(1.06,1.06,1.06)`,零素材;主钮承 `CANDLE.lightened(0.06)` 同纪律。
|
||||
- **按下 = 本族下沉**:石纹钮 `button_stone_pressed` 九宫格;危险钮补本族 pressed 深档(深红 `darkened(0.18)`——旧承石纹按压图错配退役)。
|
||||
- **禁用 = 本族底 + α0.45 幽灵化**(甲案):flat 两厂 bg+border 同 α 全幽灵化,取代旧「disabled=按压图」错配;文字禁用色同档。
|
||||
- **键盘焦点 = INK 2px 内缩 1px 环**(甲案):负 expand margin 实现内缩;引擎 focus 样式盒叠加绘制、不遮钮底(「三类钮底可辨性实比」设计语言成立);逐实例 override、**主题层零新增词条**(冒烟双红线在闸)。
|
||||
- 新增按钮位须同批过五态清单;验收 = §1.4 样张 + 冒烟五态断言。
|
||||
|
||||
**(二)引擎原生控件组件规格(迭代 25 T0;15 类型词条全覆盖,预盖件零实役)**
|
||||
|
||||
- **滚动条**:V/HScrollBar 的 scroll 槽(直角)+ grabber 三态;**引擎事实 = grabber 走 StyleBox 非 Icon**(4.7.2 源码实证),滚动条无位图、无箭头按钮(increment/decrement 默认主题未定义);粗细 = content margin 4(8px)、柄最小 8px。
|
||||
- **滑轨**:HSlider/VSlider 的 slider(槽轨)+ grabber_area(填充段)两段必须**一眼可辨**(§7.2 可读性硬条款的滑轨侧落法——判据 = 拖到中点两段可辨,机检对 ≥4.5:1 文字位不覆盖该面,归样张目检);抓子三态位图;H/V 边距为旋转换位。
|
||||
- **悬停气泡(Tooltip)**:TooltipPanel/TooltipLabel 深底 + 边 + 暖字,标题屏观感承旧值原样迁入;字号走 §7.4 既有档(tooltip 14)。
|
||||
- **输入件**:LineEdit(数据框惯例:牌色底 + 板线 + `RADIUS_OBJECT` 圆角 + 占位色)、SpinBox(updown 合并箭头位图 + 箭头底 hover/pressed 覆盖)、H/VSeparator(单线 1px,默认灰 #808080 实证在位须接管)。
|
||||
- **预盖件**(零实役,备案待启用时复查):CheckBox/CheckButton 共用一套 `checked`/`unchecked`(+_disabled) 四态图标(**引擎事实 = 4.7 无 on/off 词条,两类同名同套——否则预盖静默空转**)、OptionButton(button_stone 九宫格 + 箭头位图)、PopupMenu(panel + hover 高亮 + 字色字号)。
|
||||
- **字体防御**:主题 `default_font` 显式指向全局像素字(与 project.godot `theme/custom_font` 同文件),冒烟双断言(主题非空 + Label 实取非空);`default_font_size` 不设——全站字号走 §7.4 `UiKit.FS_*` 逐实例 override。
|
||||
- **组件新增位**:新引擎控件入 UI 须同批在本节登记规格(尺寸档/圆角/对比度底线),禁裸用引擎默认灰圆角现代风(迭代 25 全屏巡检即此判据)。
|
||||
|
||||
**(三)氛围层平滑件与抖动派并存(迭代 26 反哺④——Q5 已裁保平滑)**
|
||||
|
||||
- vignette / gradient_base / beams 三件程序化平滑渐变件**保平滑连续 alpha**(2026-10-13 grilling Q5 裁),与卡顶类型色带 DitherBand 的 Bayer 有序抖动派**并存不一致**——两派统一裁决留**整屏样张批**(§1.4;战斗一屏样张 P0 未开工,06 在册),本节只登记并存事实与裁决去向,不提前统一。
|
||||
|
||||
> **主题色值双源注记(迭代 25 反哺④)**:主题色值现存两处——`main_theme.tres` 字面量与 ui_kit 常量(卡片立项时已知代价,README 溯源表缓解)。长期收敛候选 = 程序化 Theme 生成回代码单点,属重构面、未排期;新增色值仍按现状双落并同批登 README 溯源表。
|
||||
|
||||
---
|
||||
|
||||
@@ -445,26 +477,27 @@
|
||||
### 8.1 分辨率档位与格边长口径
|
||||
|
||||
- **两档定案**:1280×800(基座)+ 1920×1080,窗口不可调;后续调整走修订。
|
||||
- **格边长口径**:按档位与板形计算——固定档位下格子量增加则格边长相应变小;现行 1280×800 基座锚点值 = 45px(10×10 板)/36px(12×12 板),扩板(13×13/14×14)换算值未定稿(1920 档已裁决全局等比缩放——迭代 9 卡⑮落码;原 06 分辨率债务条目已收口移除);装板可行性校验规则见《HUD框架》。
|
||||
- **格边长口径**:按档位与板形计算——固定档位下格子量增加则格边长相应变小;现行 1280×800 基座锚点值 = 45px(10×10 板)/36px(12×12 板),扩板(13×13/14×14)换算值未定稿(1920 档已裁决全局等比缩放——迭代 9 卡⑮落码;原 06 分辨率债务条目已完成移除);装板可行性校验规则见《HUD框架》。
|
||||
|
||||
### 8.2 像素基准与画布
|
||||
|
||||
- **缩放纪律(硬规则,2026-09-30 v3.1 起按资产两类分级——2026-09-26 用户裁「更改规则,不做个案豁免」)**:
|
||||
- **甲类·文本与语义件**(数字、图标、旗、砖面 tile、格面纹样):维持严格整数倍缩放硬规则——可读性与语义精确性优先,**禁非整数缩放不变**。
|
||||
- **全局纹理过滤与平滑渐变件例外(2026-10-14 迭代 26 反哺②写入文档)**:`project.godot` `default_texture_filter=0`(Nearest)全局——像素风 UI 皮(九宫格/主题石纹样式盒/滑轨抓子/勾选/箭头图标)翻 Nearest=意图面;**显式 LINEAR 豁免清单(有意例外,与状态图标抗锯齿例外同族先例)= vignette / gradient_base / beams 三件程序化平滑渐变件**——保平滑连续 alpha 的程序化氛围件,Q5 已裁(§7.6 三);新增平滑件须同批入册本清单,禁静默挂 LINEAR。翻转面枚举与冒烟断言(6 条)在闸。
|
||||
- **显示档登记例外(2026-10-06 UI 设计对齐批 P6 甲——64 源 0.5×,待素材批消除)**:柜台四枚 `icon_forge/workshop/atlas/keystone`(64×64 源)显示档统一 **32px = 0.5×**;状态九枚(32×32 源)mini(站桩)档 **16px = 0.5×**。两处均系「显示尺寸侧唯一可调、素材一字节禁改」红线下的人工检整数半倍档,登记为**待消除例外**——素材批出 32px 源后回归 1×。常规档显示一律 1×(状态九枚 32px、手绘十枚 20px/40px 双档、BCard 图标槽 40px=2×)。
|
||||
- **乙类·角色与单位精灵**(有机形体、非文字):允许运行时非整数倍缩放(NEAREST 过滤不变),容忍轻度像素宽窄不均;判据 = 实机目检,可感不适即回整数档。乙类今后免逐案豁免(豁免蔓延断根)。
|
||||
- **站桩立绘槽位=高定宽随(2026-10-04 原型审计教训落规)**:立绘/精灵槽位只定「高度的整数倍档」,宽度随源图宽高比自适应——**禁止把全部立绘塞进统一方框强拉**(纵横倍率必须恒等)。实例=UI 原型 88×92 方框把 23×48 地精源横拉 3.83×/纵拉 1.92×、26×48 熊地精 3.38×/1.92× 压扁发花,46×48 主角近方恰等比故独活——方框是按主角比例定的,窄条生物(细长本体裁掉透明边)进主角的框必变形。乙类的非整数豁免只覆盖**等比**缩放,不含纵横异倍变形。
|
||||
- **1920×1080 档策略(2026-09-30 三裁决案甲落定——三案呈报见 design/qa/m3-iter9-t8-rulings-2026-09-30.md)**:全局等比(stretch=canvas_items+aspect **keep**)——16:10 设计在 16:9 窗口=等比 1.35×+左右黑边各 ~96px,构图与 1280×800 基准档完全一致(逻辑布局 1920/1280 逐键一致实测);甲类 1.35 非整数缩放例外注记:轻度宽窄不均系本档位接受代价(像素游戏 shipped 常态),实机目检可感不适→回乙案(1920 独立 2× 基准)重议;乙类同前款。
|
||||
- **画布基准(2026-09-23 用户暂定值)**:
|
||||
- **主角人设原图 = 48×72**(1× 基准,暂定;与站姿降采样可读性验证一致);
|
||||
- **主角战斗状态图(含 B 区站桩侧向)= 48×72**(同上暂定;v1.9 待决注记「主角立绘档空缺」由此收口);
|
||||
- **主角战斗状态图(含 B 区站桩侧向)= 48×72**(同上暂定;v1.9 待决注记「主角立绘档空缺」由此完成);
|
||||
- **棋盘小人 = 32×32 二头身派生版(暂定,允许更小)**——独立资产,自人设定稿压缩派生(人物设计档 §5.4),不吞数字位、占位 ≤ 0.75× 格边长;36px 板 × 32px 源的占比摩擦(v1.9 待决注记①)沿「独立小源档」路线随格边长终值在样张批定终值;
|
||||
- **站桩立绘源档 = 八敌逐键定档(2026-10-06 定档批,用户确认定档总图;原三档 48/64/96 候选与 v3.0 档位上调方向候选一并收口)**:主角 48 不变;八敌源档高 = goblin 36 / giant_spider 38 / duergar 46 / hook_horror 58 / bugbear 62 / ogre_chief 74 / drider 90 / duergar_king 94,显示一律 **×2 整数档(NEAREST)** = 72–188。定档依据 = 生物体型三约束(用户拍板:钩爪恐魔>灰矮人、灰矮人<熊地精、食人魔>熊地精——体量=物种体型,非强度线性映射,人物设计档 §5.2 随批修订);可读性实测门槛 = 源高 ≥32(24 糊/32 可读/48 清楚/64 细节完整),全阶梯 36–94 达标;派生管线 = pixel-1.png 紧裁 → 等比缩至档高 → dom_block_resize 块内众数降采样(tools/pixelize_candidates.py `STANDEE_TIER_H`,`SIZES` 降格为管线上游中间分辨率表);存在感问题(v3.0 病根 6)经方案二整屏对比(B 区 270/立绘显示上限 188)解决。
|
||||
- **站桩立绘源档 = 八敌逐键定档(2026-10-06 定档批,用户确认定档总图;原三档 48/64/96 候选与 v3.0 档位上调方向候选一并完成)**:主角 48 不变;八敌源档高 = goblin 36 / giant_spider 38 / duergar 46 / hook_horror 58 / bugbear 62 / ogre_chief 74 / drider 90 / duergar_king 94,显示一律 **×2 整数档(NEAREST)** = 72–188。定档依据 = 生物体型三约束(用户拍板:钩爪恐魔>灰矮人、灰矮人<熊地精、食人魔>熊地精——体量=物种体型,非强度线性映射,人物设计档 §5.2 顺带修订);可读性实测门槛 = 源高 ≥32(24 糊/32 可读/48 清楚/64 细节完整),全阶梯 36–94 达标;派生管线 = pixel-1.png 紧裁 → 等比缩至档高 → dom_block_resize 块内众数降采样(tools/pixelize_candidates.py `STANDEE_TIER_H`,`SIZES` 降格为管线上游中间分辨率表);存在感问题(v3.0 病根 6)经方案二整屏对比(B 区 270/立绘显示上限 188)解决。
|
||||
- **站桩立绘排版 = 方案二(2026-10-06 用户拍板)**:① 区高 B 区 270(≈1/3)/C 区 530(≈2/3),**扫雷盘 438×438 原尺寸不缩、格子不变**(区高事实源 battle.md 区表;压缩由 C 区面板空档吸收);② 站桩内部重排——立绘双脚落石台上缘(弃盒内居中)、**血条+状态/名字行落底排**(立绘→血条→状态 顺序,全场血条对齐一线;血条嵌石板位、台缘线留作地面线、落影保留接地感),状态空时该行退化为名字行;③ 大体档(显示 >150px 级:drider/duergar_king)**允许向上溢出盒顶 N px**(2026-10-07 用户裁甲案;N 由实装批 C0 按实测尺寸算定,**与背景/光柱无关**——现行溢出区恰为临时光柱氛围层〔§6.1 方向稿四柱,x 基准 110/900/1055/1210@1280,`battle_stage_view.gd:55-63`〕,正式舞台背景插画 `stage/stage_bg.png` 到位后该层退役/吸收进背景绘制,**溢出判定不随之变更**;横向不得压到顶部中央轮次·阶段指示,溢出上限由 C0 用真图复算 x 区间定),血条仍落底(落底排的第二个收益=头部探顶不带出血条);意图徽标悬浮头顶上方(探顶档压胸);④ 原「血条悬浮头顶+立绘盒内居中」排式退役——盒顶固定 y 与盒内居中在高盒下拉开血条-立绘空洞(2026-10-06 用户点名否决)。
|
||||
|
||||
### 8.3 导出格式与命名规范
|
||||
|
||||
- **归档纪律(2026-10-06 P0-1 用户口径落文)**:图片素材**不入 git 版本管理**——仓库只保留运行时引用资产(game/assets);生成链路原始产物(AI 原图/中间产物/候选版本)归档至 `archive/` 并择机上对象存储备份;主文档(圣经/GDD/清单)**禁引用 artwork/ 散文件路径**——定稿成图以 game/assets 为唯一事实源,过程稿引用一律用归档包路径或描述性出处。
|
||||
- **归档纪律(2026-10-06 P0-1 用户口径写入文档)**:图片素材**不入 git 版本管理**——仓库只保留运行时引用资产(game/assets);生成链路原始产物(AI 原图/中间产物/候选版本)归档至 `archive/` 并择机上对象存储备份;主文档(圣经/GDD/清单)**禁引用 artwork/ 散文件路径**——定稿成图以 game/assets 为唯一事实源,过程稿引用一律用归档包路径或描述性出处。
|
||||
- **入包与对账检查器(2026-10-06 P2 固化挂点——本批只立挂点,实现随 PRD 工具批)**:①**色板检查器**——扫描新素材色板,报新增色/近色告警/超 §4.1 上限(48)拦截,挂素材流入包步(asset-path-map §2 第 3 步);②**路径核对器**——扫描 asset-path-map 声明的全部路径,悬空/退役未清即报,随大批与审计例行跑(2026-10-06 三处悬空即此类失守);③**standee_asset_check 硬闸升级规格**(审计 §07-2/3)——按 §8.2 逐键定档校验体量与档高(现「宽 1–75」虚设区间退役)、像素域色数 ≤32、无非整数倍缩放痕迹、描边亮度达标(亮描边明度档,§8.2 描边层级);把 v3.6「高定宽随」教训变成代码闸而非文字。
|
||||
- **交付格式**:PNG 透明底;动画 = 序列帧或引擎精灵表(SpriteFrames),帧尺寸恒定、横向等宽排列(候选)。
|
||||
- **命名规范(候选草案)**:`<域>_<对象键>_<状态|变体>[_<序号>].png`,全小写 snake_case;**对象键 = 数据表主键**(effect_id/reward_id/cell_type/enemy_id——图标键契约 §4.6 的文件侧延伸:资产文件名键 = 图标键,全局恒定禁运行时换图);图类型变体后缀 = board_type 键(`_dungeon`/`_underdark`/`_deep_underdark`);候选评审件与终稿分目录(`candidates/` 承载评审件)。
|
||||
@@ -487,7 +520,7 @@
|
||||
|
||||
## 9. 参考与反参考(References & Anti-References)
|
||||
|
||||
> **白话**:正面参考 = 向谁抄什么;反面参考 = 避什么。两者同等效力——方案违反反面条款时,不得以「参考了某游戏」辩护。参考图库存于 `design/art/references/`(点名池三款×2 张,与头注点名池一一对应)。
|
||||
> **白话**:正面参考 = 向谁抄什么;反面参考 = 避什么。两者同等效力——方案违反反面条款时,禁止以「参考了某游戏」辩护。参考图库存于 `design/art/references/`(点名池三款×2 张,与头注点名池一一对应)。
|
||||
|
||||
### 9.1 正面参考(点名池,用户审阅选定)
|
||||
|
||||
@@ -505,7 +538,7 @@
|
||||
|---|---|---|
|
||||
| **Darkest Dungeon** 式压暗 | §2 情绪明暗禁令(明度分层下仍禁) | 状态与情绪只走色相/饱和/运动/元素四手段,不以变暗表达情绪(失败重开,世界无光暗记忆) |
|
||||
| **传统扫雷白牌/贴纸式数字承载**(2026-09-29 v3.0 新增) | §1.2 原则二(明度分档为骨) | 数字由格底明度分档承载、直画入世界;色牌仅复杂格底后备——满屏白牌=电子表格观感,非游戏画面 |
|
||||
| **Enter the Gungeon** 式粒子与色相爆炸 | §3.4 焦点预算;§4.2 色相纪律 | 信息层不得被特效与杂色吞没,特效入画先过焦点预算 |
|
||||
| **Enter the Gungeon** 式粒子与色相爆炸 | §3.4 焦点预算;§4.2 色相纪律 | 信息层禁止被特效与杂色吞没,特效入画先过焦点预算 |
|
||||
| **Hades** 式特效密度 | §2.2 兑现爽感的上限 | 爽感靠逐行因果归因,不靠满屏特效;承载元素以 §2.2 清单为界 |
|
||||
| **传统扫雷 1–8 八色分色** | §4.1 数字墨三档 | 八色必撞红/金/蓝/紫赤语义色段;数字只走墨族三档色温,字形为唯一数值载体 |
|
||||
|
||||
@@ -513,43 +546,46 @@
|
||||
|
||||
## 版本历史
|
||||
|
||||
- **v3.14(2026-10-14)迭代 24/25/26 反哺写入批(用户裁「全部按呈报写入文档」——qa 收尾批)**:①**§4.1 新入三 token**(GOLD_BRIGHT #E0B860 收益金亮档 / HERO_BLUE_BRIGHT #7EBAF0 小人蓝亮档 / SLOT_BACKDROP_SOFT #806A4E 图标槽柔和档——迭代 26 反哺③语义岗登记转正,色板计数 42→45);②**§7.6 新增「引擎原生控件与按钮状态规格」节**(迭代 25 反哺①+迭代 26 反哺①④——原无条款,两批实现临时权威转正:按钮五态矩阵〔悬停 modulate 1.06/按下本族下沉/禁用 α0.45 幽灵化/焦点 INK 2px 内缩 1px 环〕+原生控件组件规格〔滚动条 StyleBox 柄/滑轨两段可辨/气泡/输入件/预盖件/字体防御〕+氛围层平滑件与抖动派并存留样张批+主题色值双源注记〔迭代 25 反哺④〕);③**§8.2 增全局纹理过滤与平滑渐变件例外条款**(迭代 26 反哺②——Nearest 全局+三件 LINEAR 豁免清单);④连带 = §7 白话章节清单补 §7.6。色值遵守定值单点纪律指路 theme README 溯源表,零复述
|
||||
- **v3.13(2026-10-10)营地柜台名扫改(2026-10-10 天赋树设计会话裁「道具工坊」改名「秘宝匣」)**:§2.8 承载元素与 §6.2 场景构成两处三柜台括注改名。零素材新增
|
||||
- **v3.12(2026-10-07)类型微光组粒度批(用户裁——道具三层重设计·地图层顺带)**:§4.2 类型微光色带「组内明度梯度分型」降为「组间五色相+组内不细分」——逐型明度映射从未定义、cell÷8 泛光上五级明度物理不可读;色弱通道随迁组粒度(§2 验收2/§4.5⑨ 同批措辞同步);gp 不拆独立色相(用户裁:攻击三类+治疗+通用=五色已达玩家记忆上限);五组色相本身不动(样张 v2 冻结维持)
|
||||
- **v3.11(2026-10-06)文档层三小活收尾(审计 §07 吸收对账后剩余项)**:①**§8 头注新增「定值单点纪律」**(审计 §07-1 落规——数字定值只落 §4.1 主色板 + §8.2 两张表,其余章节指路禁复述;character-design §5.5 数值指路 §8.2);②**§8.3 检查器挂点补 standee_asset_check 硬闸升级规格**(审计 §07-2/3——按 §8.2 逐键定档校验/色数 ≤32/无非整数缩放痕迹/描边亮度达标,现「宽 1–75」虚设区间退役,实现归 PRD 工具批);③连带 = art-status-checklist 状态图标行悬空路径(candidates/status-icons-2026-09-23/)按归档纪律改描述性出处;审计 §07-3 体量分区数字表建议**改判作废**(已被「生物体型+逐键定档」语义取代)。
|
||||
- **v3.10(2026-10-06)两拍板落文批(P2 收尾)**:①**§4.1 色板数值改「待定现用」态**(用户立第三态,非候选非死规——现行即执法、需求引入时走修订并登记;释义随条);②**头注新增「条款验收标注纪律」**——全文条款尾部三档标注(←机检/←目检/←方向性,用户拍板「符合工作流程」),新条款按此书写,存量口号型分章补标(06 挂账批执行);③连带 = 06「口号型条款机检化批」状态补格式已拍板注记。
|
||||
- **v3.9(2026-10-06)P2 清理项文档处置批(审计 04 节四项;零素材新增)**:①**§4.1 新增色板增量纪律**——硬上限 48 色(现行 ≈42)+新色双门(§4.2 语义检查 / 与既有色 RGB 三通道差 ≥8/255,反例 #3A2E22↔#362B20 差 <5),不过门走「换色合并」禁加色绕行;数值候选待样张批冻结。②asset-path-map.md 三处悬空/过时更正——candidates 目录注「按需创建非作废」、废路径 production/mockups/** 改 `artwork/mockups/**`(实存)、board/ 现役改 terrain_floor_<board_type>_<n> + flag_seal(旧 board_floor/wall 退役)。③P2-1 草稿整理批(3349 个)与 P2-4 口号型条款机检化批登记 06 待办(前者执行须 dry-run 先行)。④待决项 A/B/C 前批已全部收口,本批零遗留。
|
||||
- **v3.10(2026-10-06)两拍板写入文档批(P2 收尾)**:①**§4.1 色板数值改「待定现用」态**(用户立第三态,非候选非死规——现行即执法、需求引入时走修订并登记;释义随条);②**头注新增「条款验收标注纪律」**——全文条款尾部三档标注(←机检/←目检/←方向性,用户拍板「符合工作流程」),新条款按此书写,存量口号型分章补标(06 挂账批执行);③连带 = 06「口号型条款机检化批」状态补格式已拍板注记。
|
||||
- **v3.9(2026-10-06)P2 清理项文档处置批(审计 04 节四项;零素材新增)**:①**§4.1 新增色板增量纪律**——硬上限 48 色(现行 ≈42)+新色双门(§4.2 语义检查 / 与既有色 RGB 三通道差 ≥8/255,反例 #3A2E22↔#362B20 差 <5),不过门走「换色合并」禁加色绕行;数值候选待样张批冻结。②asset-path-map.md 三处悬空/过时更正——candidates 目录注「按需创建非作废」、废路径 production/mockups/** 改 `artwork/mockups/**`(实存)、board/ 现役改 terrain_floor_<board_type>_<n> + flag_seal(旧 board_floor/wall 退役)。③P2-1 草稿整理批(3349 个)与 P2-4 口号型条款机检化批登记 06 待办(前者执行须 dry-run 先行)。④待决项 A/B/C 前批已全部完成,本批零遗留。
|
||||
- **v3.8(2026-10-06)零定义资产族契约批(P1-2,用户拍板「写进圣经、不另立文件」)**:零素材新增,纯契约登记——①§4.6.2 奖励徽章 19 枚资产契约(`ui/icons/reward_<reward_id>.png`,源 40×40,显示 20/40 双档候选);②§4.6.3 新增地形变异纹带族资产契约(`board/band_<variant_id>.png`,键集事实源 = 地形变异 GDD region 六行,源 64×64 无缝,已开变异格标识层);③§6.1 舞台背景插画资产契约(`stage/stage_bg.png` 基准一张 1280×270,三关换挡走 wall_ambient tint 槽不出三张)。三族照抄状态图标「键→文件名→尺寸」模式(§4.6.1 全链唯一完全合规族,审计点名可复制);程序化占位在役,出图工单归 PRD;art-status-checklist 看板随交付 ✅。
|
||||
- **v3.7(2026-10-06)立绘八敌定档批+方案二排版落文+归档纪律(P0 收口讨论批;工作流程铁律 = 讨论期只动文档,代码实装另批走 PRD→迭代)**:①**§8.2 画布基准——站桩立绘源档八敌逐键定档**(goblin 36/giant_spider 38/duergar 46/hook_horror 58/bugbear 62/ogre_chief 74/drider 90/duergar_king 94,×2 整数显示;原三档 48/64/96 候选与 v3.0 档位上调方向候选一并收口;依据 = 用户三体型约束+定档总图确认;可读性门槛源高 ≥32 实测;派生管线 = pixel-1→紧裁→dom_block_resize);②**§8.2 缩放纪律——站桩立绘排版 = 方案二**(B 区 270 ≈1/3/C 区 530 ≈2/3/扫雷盘 438 不缩;立绘底锚落台+血条状态落底排全场对齐+大体档探顶;原「血条悬浮头顶」退役——高盒空洞用户点名否决);③**§8.3 归档纪律**(P0-1 用户口径:图片不入 git/归档+对象存储/主文档禁引用 artwork 散路径);④连带 = character-design.md §5.2 体量语义修订(强度先验→生物体型)+§5.5 源档注记+钩爪恐魔宽≥高豁免登记、battle.md 区表/组件/线框/空态/修订记录随批。
|
||||
- **v3.7(2026-10-06)立绘八敌定档批+方案二排版写入文档+归档纪律(P0 完成讨论批;工作流程铁律 = 讨论期只动文档,代码实装另批走 PRD→迭代)**:①**§8.2 画布基准——站桩立绘源档八敌逐键定档**(goblin 36/giant_spider 38/duergar 46/hook_horror 58/bugbear 62/ogre_chief 74/drider 90/duergar_king 94,×2 整数显示;原三档 48/64/96 候选与 v3.0 档位上调方向候选一并完成;依据 = 用户三体型约束+定档总图确认;可读性门槛源高 ≥32 实测;派生管线 = pixel-1→紧裁→dom_block_resize);②**§8.2 缩放纪律——站桩立绘排版 = 方案二**(B 区 270 ≈1/3/C 区 530 ≈2/3/扫雷盘 438 不缩;立绘底锚落台+血条状态落底排全场对齐+大体档探顶;原「血条悬浮头顶」退役——高盒空洞用户点名否决);③**§8.3 归档纪律**(P0-1 用户口径:图片不入 git/归档+对象存储/主文档禁引用 artwork 散路径);④连带 = character-design.md §5.2 体量语义修订(强度先验→生物体型)+§5.5 源档注记+钩爪恐魔宽≥高豁免登记、battle.md 区表/组件/线框/空态/修订记录顺带。
|
||||
- **v3.6(2026-10-04)站桩槽「高定宽随」条款落规(UI 重设计原型审计教训)**:§8.2 缩放纪律新增**站桩立绘槽位=高定宽随**条——槽位只定高度的整数倍档、宽度随源图宽高比自适应,禁统一方框强拉(纵横倍率恒等;实例=原型 88×92 方框把 23×48 地精横拉 3.83×/纵拉 1.92×、26×48 熊地精 3.38×/1.92× 压扁,46×48 主角近方恰等比独活;三层成因=窄条源图/方框一刀切/非整数倍 pixelated 发花);**乙类非整数豁免口径收窄注记=只覆盖等比缩放,不含纵横异倍变形**。同批原型侧修复=站槽 height:96 width:auto(48px 源 2×)+开始屏背景怪/大立绘/庆祝像/旗/图标显示尺寸整数倍对齐。文档核查=battle.md/HUD框架 均无强制方框条文(缺口是规则本身缺位,本批补)
|
||||
- **v3.5(2026-10-03)视野迷雾黑暗区域渲染规格批(迭代 11 第④批实施批 T1;上位裁决=《HUD框架》「视野迷雾」节 v0.13,正主已定论照抄)**:新增 §6.5——菱形灯光区=曼哈顿距离 ≤LIGHT_RADIUS(基准 8,表值/常量参数化;两圈分立注=类型微光仍贴身 8 邻格不随灯光区扩;提灯 +2 插值位预留不接效果);区外未开格全黑不渲染(照抄正主「全黑不渲染」,非高遮蔽档,三档信息阶梯理由在节内);区外已开格暗淡记忆态(记忆板 #3A3A3A/记忆墨 #C4C4C4 provisional,数字 ≥4.5:1,三通道可辨判据在案,色牌格退牌归板,旗印记随未开格全黑隐没);过渡边=硬边逐格二值(禁渐变晕边);结算期去饱和叠加互斥口径(记忆态为终态档);§2 光照氛围允许域自查注记在节内;§6 开篇枚举行补「棋盘视野迷雾遮蔽」一词。纯呈现层零素材新增(程序化遮罩/调制),微光语义零改动,明度值 provisional(样张/实机自检锚,代拍板白名单内)
|
||||
- **v3.5(2026-10-03)视野迷雾黑暗区域渲染规格批(迭代 11 第④批实施批 T1;上位裁决=《HUD框架》「视野迷雾」节 v0.13,现行事实源已定论照抄)**:新增 §6.5——菱形灯光区=曼哈顿距离 ≤LIGHT_RADIUS(基准 8,表值/常量参数化;两圈分立注=类型微光仍贴身 8 邻格不随灯光区扩;提灯 +2 插值位预留不接效果);区外未开格全黑不渲染(照抄现行事实源「全黑不渲染」,非高遮蔽档,三档信息阶梯理由在节内);区外已开格暗淡记忆态(记忆板 #3A3A3A/记忆墨 #C4C4C4 provisional,数字 ≥4.5:1,三通道可辨判据在案,色牌格退牌归板,旗印记随未开格全黑隐没);过渡边=硬边逐格二值(禁渐变晕边);结算期去饱和叠加互斥口径(记忆态为终态档);§2 光照氛围允许域自查注记在节内;§6 开篇枚举行补「棋盘视野迷雾遮蔽」一词。纯呈现层零素材新增(程序化遮罩/调制),微光语义零改动,明度值 provisional(样张/实机自检锚,代拍板白名单内)
|
||||
- **v3.4(2026-10-01)数字呈现三态修订(甲案深墨族方案渲染帧取证证伪后改版)**:v3.3 的「L2/L3 切深墨族直画」经 board_shot_probe 渲染帧取证证伪——underdark 系地板双峰纹理(近黑斑 p10 0.011+近白筋 p90 0.40+)上深墨直画融黑斑隐形(用户实机复测「还是看不清」实证),任何墨族直画不可救;改**三态**:dungeon 亮族直画(门 p90≥4.5/均值≥2.5)/中暗板深墨直画(门 p90≥4.5/均值≥3.0)/双峰板**色牌垫底**(素牌+深墨 12:1,v2 色牌形制复役);机检三关呈现模式断言 19/19;目视验证面=board_shot_probe 渲染帧取证入流程(机检≠看得清)。§1.4 样张闸第四验收项判读随三态口径件注记。
|
||||
- **v3.3(2026-10-01)数字墨按板自适应修订(L2/L3 亮瓦融字缺陷修复,用户裁甲案「墨色按关自适应+补三关对比断言」)**:§4.1 数字墨双色制①改**按板自适应双族**——暗纹理板维持亮族三档(样张 v3 冻结原样),亮筋纹板(underdark/deep_underdark)切深墨族三档(青墨/赭墨/锈墨复役);选族判据=所选族对归一后地板 p90 亮斑 ≥4.5:1 且对均值 ≥2.0:1,落码单点 `board_view._digit_ink_mode`,机检=`terrain_tile_sets_test` 三关对比断言 21/21;缺盘平色回退默认深墨族。§4.1 其余条款(字形唯一载体/三档色温/垫牌后备)不变。
|
||||
- **v3.1(2026-09-30)越权清理批(用户指令:按域内审查修订案修改,概念定义归还 GDD 正主)**:①**微光口径四处改指路**——§1.2 原则三/§1.4 样张清单去「常显」、§4.2 色带条去「常显」、§4.6.3 去「全部未开格」,统一指路《HUD框架》「未开格类型微光」节(2026-09-30 收口批落位的唯一正主,他文只许指路);②**概念越权剥离**——雷格叙事属名与换轴史、封印插旗语义(→registry「封印」条+《排雷玩法》玩家说法)、极性定义(→《地图战斗资源》极性提案)、完美排雷定义与兑付结构(→同)、敌意图预告语义与「待机即预示」(→《敌人系统》意图线索节)、奖励 weight 与兑付/库存语义(→《地图战斗资源》)、键名沿革史(empower/fortify 来源=敌方技能施放、alert 2026-09-20 八型批换装、ac_up 2026-09-16 换装——自 §4.6.1 移除留痕)、甲档 armor 数据实态(L1 全轻甲/L2 除 drider 外全轻甲/L3 duergar·duergar_king 重甲)与旧键集史({grub, ambusher} 随 DND 更名退役——自 §4.6.4 移除留痕)、「敌不占格」断言、「类型分布即先验」机制 rationale、「分布属初始化随机」归属断言(改画法口径「分布每板一次跨轮不复掷」);③**实装状态与排期注记移本历史留痕**——游戏 UiKit.HERO_BLUE 已同步 #2E6E8E→#2E86DE、UiKit.CONTACT_GLOW 同值 #D6ECFF、旧可挖域绿相 DIG_EDGE 已随接触带方案退役、死亡表现切片实装=程序化 tween(灰化罩+碎块弹飞 5 块 0.45s,挂 unit_died)、封印特效「待表现批」、§6.1 背景插画「排期归表现层升级批」、panel_stone/button_stone 接线归最近表现批、§7.2 对比度违例「修复归表现批」、§7.5「占位不空窗」注记;④**角嵌退役条改写**为现行「未开格预读通道(微光单通道)」条(退役史见 v2.12);⑤**残留矛盾清除**——§3.2 呈现基准条「装饰变体一律纹理级」旧措辞随 v3.0 物件级解禁同步;⑥§2.8 营地承载元素/§7.5 钥石呈现位改指 §6.2(事实源边界在该节);⑦**补漏五处(同批完工审计发现,同类剥离留痕)**——§4.1 危险红「机关红」更名史、§6.2 营地贴图「排期归 UI 贴图重构批」与「占位不空窗」注记、§7.4 字体「接入归表现批」注记、§8.1 扩板与 1920 档换算值「归表现层升级批成文」(改债务指路 06「分辨率档位与棋盘格边长口径」条)、§8.3 「终稿目录归表现批定」注记、§1.4 整屏样张闸「表现层落码批开工前」改屏级落码开工前、§7.1 「样式终稿归样张后表现批」改随样张闸后定稿。**零美术信息损失**:全部色值/机检断言/纹样描述/画法参数不动,样张 v2 四冻结之②③维持
|
||||
- **v3.2(2026-09-30)样张 v3 冻结批+缩放分级修订+案甲落定(迭代 9 T1/T2/T9;任务书已退役(git 710f9b7 出口批))**:①§1.4 补**样张 v3 冻结记录**——机检 17/17 全绿,断言定值两件(A3b 图底分离定值 Δ≥30〔实测 38〕/A4 尺寸基线硬等冻结 立绘 46×48+小人源 32×32),F6 沿用 v3.4;**四冻结①④重冻**——①砖面形态=E 格高墙 30% 词表扩展+格底明度分档(世界底层档 L≈0.10)+装饰物件级解禁/④数字形制=亮墨三档直画+色牌后备;②色板③动画维持冻结。产物 `artwork/mockups/sample-batch-v3-final-2026-09-30.png`+机检报告【冻结】;气质终审=2026-09-29 用户验收豁免(台账 281)。②**§8.2 缩放纪律分级修订**(2026-09-26 用户裁「改规则不豁免」落文,修订窗口=v3.0 落籍):甲类文本语义件(数字/图标/旗/砖面/纹样)维持严格整数倍;乙类角色精灵允许运行时非整数倍(NEAREST 不变,判据=实机目检可感不适即回整数档);1920 档策略经三裁决**案甲落定**(全局等比 stretch keep——v3.2 当日 T9 落文,详见 §8.2)。头注「现行为」随批 v3.2。
|
||||
- **v3.0(2026-09-29)中修批(案 B,用户拍板;审视报告=git fbaadb8(已退役),六病根+三案呈报)**:①**§2 明度恒定→明度分层**——三档明度带(信息面层/世界中层/世界底层),情绪与状态明暗禁令保留(状态区分仍只走色相/饱和/运动/元素),空间纵深/光照/形体塑造开允许域;§2.1/2.2/2.3/2.5/2.7 各状态条措辞随改,§2.7 增「明度带随深度微移」候选。②**原则二色牌降级**——「明亮为皮,色牌为骨」改「明度分档为骨」:已开格走世界底层档(候选 L 0.20–0.32),棋盘数字墨亮族直画(候选 L≥0.75,冷亮/暖白/金亮三档色温承袭密度语义),色牌仅复杂格底后备(垫牌场景用深墨族,12.3:1 实测保留);§1.4 验收 1/2/4 与判定回退口径同步,样张 v2 四冻结之①④(砖面形态之数字承载面/数字形制)**解冻待样张 v3 重冻**(②③冻结〔色板/动画〕不受影响)。③**语义色适用域限定**——§4.2 各条「X 只说 Y」约束信息层与语义物件,纯环境氛围解禁(焦点预算与低饱和后退接管防抢焦);紫赤禁入带环境层低饱和可入、高饱和独占不变;§4.3 换皮槽与不变槽口径随改。④**装饰变体物件级解禁**——专属装饰形状家族+零信息纪律不变+焦点预算约束,配额候选 3–5 种(原则三/§3.2)。⑤**§6.1 舞台正面目标**——B 区=地窟看台(地台/落影/光源氛围候选),补原条只有负面约束之缺。⑥**§1.4 整屏样张闸新增**——战斗/关卡/菜单/营地四屏,验收四项(全局文字 ≥4.5:1/明度三档带/整屏焦点预算/文字禁压纹理),闸形=方向稿目检先行→机检冻结。⑦**§7 三件**——7.1 占位收口条款(占位=临时态,终稿闸=整屏样张)/7.2 全局文字可读性硬指标/7.4 字号下限 16/14px 对齐 ux-designer PC 规范+层级手段解禁(字号档差+墨色+字重)。⑧**§8.2 档位上调方向候选**(主角 64×96/敌 64/96/128 评估,归整屏样张闸,本批不重产资产)。⑨**§9 参考表**——Moonlighter 取列增光照层次、§9.2 DD 条款改名+新增「传统扫雷白牌」反面行。⑩**§3.4 焦点双机制**(完整度+明度带)。**连带文档同步**:character-design.md(提灯点亮解禁候选)/interaction-patterns.md/level-map.md/art-assets-checklist.md/battle.md/04-美术音频方向.md 引用口径随批。**挂账(06 登记)**:样张 v3 重跑批(断言改造+新参数冻结)/ui_kit 与棋盘渲染落码批(明度分层/格底分档/亮墨/UI 对比度修复)/资产升档重产批/mockup v3 方向稿(按 v3.0 重出)。**代拍板三项 2026-09-29 当日已追认**(闸形两段式/色牌后备范围/升档只立方向)。
|
||||
- **v3.1(2026-09-30)越权清理批(用户指令:按域内审查修订案修改,概念定义归还 GDD 权威文档)**:①**微光口径四处改指路**——§1.2 原则三/§1.4 样张清单去「常显」、§4.2 色带条去「常显」、§4.6.3 去「全部未开格」,统一指路《HUD框架》「未开格类型微光」节(2026-09-30 完成批落位的唯一事实源,他文只许指路);②**概念越权剥离**——危险格叙事属名与换轴史、封印插旗语义(→registry「封印」条+《排雷玩法》玩家说法)、极性定义(→《地图战斗资源》极性提案)、完美排雷定义与兑付结构(→同)、敌意图预告语义与「待机即预示」(→《敌人系统》意图线索节)、奖励 weight 与兑付/库存语义(→《地图战斗资源》)、键名沿革史(empower/fortify 来源=敌方技能施放、alert 2026-09-20 八型批换装、ac_up 2026-09-16 换装——自 §4.6.1 移除留痕)、甲档 armor 数据实态(L1 全轻甲/L2 除 drider 外全轻甲/L3 duergar·duergar_king 重甲)与旧键集史({grub, ambusher} 随 DND 更名退役——自 §4.6.4 移除留痕)、「敌不占格」断言、「类型分布即先验」机制 rationale、「分布属初始化随机」归属断言(改画法口径「分布每板一次跨轮不复掷」);③**实装状态与排期注记移本历史留痕**——游戏 UiKit.HERO_BLUE 已同步 #2E6E8E→#2E86DE、UiKit.CONTACT_GLOW 同值 #D6ECFF、旧可挖域绿相 DIG_EDGE 已随接触带方案退役、死亡表现切片实装=程序化 tween(灰化罩+碎块弹飞 5 块 0.45s,挂 unit_died)、封印特效「待表现批」、§6.1 背景插画「排期归表现层升级批」、panel_stone/button_stone 接线归最近表现批、§7.2 对比度违例「修复归表现批」、§7.5「占位不空窗」注记;④**角嵌退役条改写**为现行「未开格预读通道(微光单通道)」条(退役史见 v2.12);⑤**残留矛盾清除**——§3.2 呈现基准条「装饰变体一律纹理级」旧措辞随 v3.0 物件级解禁同步;⑥§2.8 营地承载元素/§7.5 钥石呈现位改指 §6.2(事实源边界在该节);⑦**补漏五处(同批完工审计发现,同类剥离留痕)**——§4.1 危险红「机关红」更名史、§6.2 营地贴图「排期归 UI 贴图重构批」与「占位不空窗」注记、§7.4 字体「接入归表现批」注记、§8.1 扩板与 1920 档换算值「归表现层升级批成文」(改债务指路 06「分辨率档位与棋盘格边长口径」条)、§8.3 「终稿目录归表现批定」注记、§1.4 整屏样张闸「表现层落码批开工前」改屏级落码开工前、§7.1 「样式终稿归样张后表现批」改随样张闸后定稿。**零美术信息损失**:全部色值/机检断言/纹样描述/画法参数不动,样张 v2 四冻结之②③维持
|
||||
- **v3.2(2026-09-30)样张 v3 冻结批+缩放分级修订+案甲落定(迭代 9 T1/T2/T9;需求卡片已退役(git 710f9b7 出口批))**:①§1.4 补**样张 v3 冻结记录**——机检 17/17 全绿,断言定值两件(A3b 图底分离定值 Δ≥30〔实测 38〕/A4 尺寸基线硬等冻结 立绘 46×48+小人源 32×32),F6 沿用 v3.4;**四冻结①④重冻**——①砖面形态=E 格高墙 30% 词表扩展+格底明度分档(世界底层档 L≈0.10)+装饰物件级解禁/④数字形制=亮墨三档直画+色牌后备;②色板③动画维持冻结。产物 `artwork/mockups/sample-batch-v3-final-2026-09-30.png`+机检报告【冻结】;气质终审=2026-09-29 用户验收豁免(状态记录 281)。②**§8.2 缩放纪律分级修订**(2026-09-26 用户裁「改规则不豁免」写入文档,修订窗口=v3.0 已入库):甲类文本语义件(数字/图标/旗/砖面/纹样)维持严格整数倍;乙类角色精灵允许运行时非整数倍(NEAREST 不变,判据=实机目检可感不适即回整数档);1920 档策略经三裁决**案甲落定**(全局等比 stretch keep——v3.2 当日 T9 写入文档,详见 §8.2)。头注「现行为」顺带 v3.2。
|
||||
- **v3.0(2026-09-29)中修批(案 B,用户拍板;审视报告=git fbaadb8(已退役),六病根+三案呈报)**:①**§2 明度恒定→明度分层**——三档明度带(信息面层/世界中层/世界底层),情绪与状态明暗禁令保留(状态区分仍只走色相/饱和/运动/元素),空间纵深/光照/形体塑造开允许域;§2.1/2.2/2.3/2.5/2.7 各状态条措辞随改,§2.7 增「明度带随深度微移」候选。②**原则二色牌降级**——「明亮为皮,色牌为骨」改「明度分档为骨」:已开格走世界底层档(候选 L 0.20–0.32),棋盘数字墨亮族直画(候选 L≥0.75,冷亮/暖白/金亮三档色温承袭密度语义),色牌仅复杂格底后备(垫牌场景用深墨族,12.3:1 实测保留);§1.4 验收 1/2/4 与判定回退口径同步,样张 v2 四冻结之①④(砖面形态之数字承载面/数字形制)**解冻待样张 v3 重冻**(②③冻结〔色板/动画〕不受影响)。③**语义色适用域限定**——§4.2 各条「X 只说 Y」约束信息层与语义物件,纯环境氛围解禁(焦点预算与低饱和后退接管防抢焦);紫赤禁入带环境层低饱和可入、高饱和独占不变;§4.3 换皮槽与不变槽口径随改。④**装饰变体物件级解禁**——专属装饰形状家族+零信息纪律不变+焦点预算约束,配额候选 3–5 种(原则三/§3.2)。⑤**§6.1 舞台正面目标**——B 区=地窟看台(地台/落影/光源氛围候选),补原条只有负面约束之缺。⑥**§1.4 整屏样张闸新增**——战斗/关卡/菜单/营地四屏,验收四项(全局文字 ≥4.5:1/明度三档带/整屏焦点预算/文字禁压纹理),闸形=方向稿目检先行→机检冻结。⑦**§7 三件**——7.1 占位完成条款(占位=临时态,终稿闸=整屏样张)/7.2 全局文字可读性硬指标/7.4 字号下限 16/14px 对齐 ux-designer PC 规范+层级手段解禁(字号档差+墨色+字重)。⑧**§8.2 档位上调方向候选**(主角 64×96/敌 64/96/128 评估,归整屏样张闸,本批不重产资产)。⑨**§9 参考表**——Moonlighter 取列增光照层次、§9.2 DD 条款改名+新增「传统扫雷白牌」反面行。⑩**§3.4 焦点双机制**(完整度+明度带)。**连带文档同步**:character-design.md(提灯点亮解禁候选)/interaction-patterns.md/level-map.md/art-assets-checklist.md/battle.md/04-美术音频方向.md 引用口径顺带。**挂账(06 登记)**:样张 v3 重跑批(断言改造+新参数冻结)/ui_kit 与棋盘渲染落码批(明度分层/格底分档/亮墨/UI 对比度修复)/资产升档重产批/mockup v3 方向稿(按 v3.0 重出)。**代拍板三项 2026-09-29 当日已追认**(闸形两段式/色牌后备范围/升档只立方向)。
|
||||
- **v2.15(2026-09-28)人设旗脱钩批(用户拍板)**:§5.4 速览背包旗改旗朱红矩形旗+§4.1 封印黑条红族口径限定棋盘侧;封印黑仍为棋盘封印专属色不变;人设侧详见 character-design 对应版本行(v1.7)
|
||||
- **v2.14(2026-09-28)关卡画面样张 v1 冻结批(M-2 迭代 4 T1–T4,机检闸形 A——11/11 全绿即冻结)**:§7.2 增「暗底呈现态双色墨制」条(暗底系图标/读数=暖白 #F0E2C8、当前金底转深墨 #181410,各态 ≥4.5:1;已过节点暗金冻结 **GOLD_DONE #68562C** 专用呈现态值——旧 GOLD_DIM #8C743C 对双色墨均不达标;Boss 描边=紫赤 2px+外缘 1px 深墨环灰度冗余通道——§4.2 色相独占本色不变);冻结面=节点图标形制(♻ kenney-board-game-icons 五键 bow/award/campfire/crown_b/pouch,20px 烘焙 1:1 消费,WARM 单色,复用闸①②③④)+通道质感(折线 2/3/4px 直角肘形)+画布公式(70+层×122+34/52+槽×58+26+8 下限 620×240——routebug 83c11a1 根修件同源)+底栏样式(暗数据框 WARM/WARM_SOFT 双墨)+屏底(BG_ROOT+backdrop_stone);换层色板渐变挂点落码(§2.7 切片档——level_index→tint 表候选值随 §6.3 方向,明度带归一,终值归色板样张批)。规格承载=level-map.md(修订记录同日行);产物=`artwork/mockups/level-map-sheet-v1-2026-09-28.png`,机检报告=git 提交 9a79927;气质终审=M-2 出口闸真人目检
|
||||
- **v2.9(2026-09-26)高墙瓦片体系定稿批**(高墙批全程收官,用户拍板;台账 163/164):§3.2 新增「高墙瓦片体系」条——未挖格=一整块 32×32 自含凸起岩体(方案甲核心定义)+术语(墙瓦片/地面瓦片)+墨线边界纪律(1px 深墨线直线零锯齿,职责=分隔不融合)+单一北受光(北缘 1px 微亮棱/南缘立面窄暗条/凹角角点+立面侧 1px 齐平收头),定稿=`game/assets/art/board/terrain_*` 21 枚;§8.5 增「生产分工」条——材质归模型(AI 只出无缝填充纹理)、结构归程序(autotile 拼接约束超 2D 生图能力,实证在案)+镜像规则(只许 flip_h 禁旋转)。条口径=样张批追认(与 §8.4 方向集先例同)。词表与查表逻辑、搜包评估记录归 design/research 两档;过程文档随批清退(中间产物不入库先例,台账 127)。
|
||||
- **v2.10(2026-09-26)封印紫批**(用户拍板:插旗色 旗朱 #C63D22 → **封印紫 #7C3AA8**,色相 ≈267°):§4.1 旗朱条改写为封印紫条(候选值样张批冻结;禁入带合规+与魔法微光/妨害紫间距登记)、§4.2 红只说危险改单档(旗朱预告档退役)、§3.2 旗条/§1.4 验收 4/§4.3 不变槽/§3.2 变异互辨/§5.4 速览随批。**语义面**——封印自术语批(2026-09-25)获专属色相,红族收敛为危险红单档;攻击预告/弹道/拒绝等非封印红统一归危险红族(RED_MINE)。**连带**——character-design §5.4 背旗、battle.md 三处、关卡节点地图 Boss 描边、清单封印特效行随批;comfyui-prompts 生图卡颜色词随样张 v2 重生成。
|
||||
- **v2.11(2026-09-28)封印黑批**(用户拍板:封印色 封印紫 #7C3AA8 → **封印黑 #000000**——紫色与微光蓝族色相冲突,黑色无色相天然合规):§4.1 封印紫条改写封印黑条、§3.2 旗条/§1.4 不变槽/§4.3/§5.4 速览随批;代码 UiKit.SEAL_PURPLE→SEAL_BLACK 改名迁移+board_view/board_fx_view 换色+样张脚本同步;胜利彩带装饰紫位改亮金(紫赤系 Boss 独占不入装饰);远程生图单主角旗 purple→black 十六进制锁色重锁。历史行(v2.10 等)按 ADR 纪律留痕不改
|
||||
- **v2.9(2026-09-26)高墙瓦片体系定稿批**(高墙批全程收官,用户拍板;状态记录 163/164):§3.2 新增「高墙瓦片体系」条——未挖格=一整块 32×32 自含凸起岩体(方案甲核心定义)+术语(墙瓦片/地面瓦片)+墨线边界纪律(1px 深墨线直线零锯齿,职责=分隔不融合)+单一北受光(北缘 1px 微亮棱/南缘立面窄暗条/凹角角点+立面侧 1px 齐平收头),定稿=`game/assets/art/board/terrain_*` 21 枚;§8.5 增「生产分工」条——材质归模型(AI 只出无缝填充纹理)、结构归程序(autotile 拼接约束超 2D 生图能力,实证在案)+镜像规则(只许 flip_h 禁旋转)。条口径=样张批追认(与 §8.4 方向集先例同)。词表与查表逻辑、搜包评估记录归 design/research 两档;过程文档顺带清退(中间产物不入库先例,状态记录 127)。
|
||||
- **v2.10(2026-09-26)封印紫批**(用户拍板:插旗色 旗朱 #C63D22 → **封印紫 #7C3AA8**,色相 ≈267°):§4.1 旗朱条改写为封印紫条(候选值样张批冻结;禁入带合规+与魔法微光/妨害紫间距登记)、§4.2 红只说危险改单档(旗朱预告档退役)、§3.2 旗条/§1.4 验收 4/§4.3 不变槽/§3.2 变异互辨/§5.4 速览顺带。**语义面**——封印自术语批(2026-09-25)获专属色相,红族收敛为危险红单档;攻击预告/弹道/拒绝等非封印红统一归危险红族(RED_MINE)。**连带**——character-design §5.4 背旗、battle.md 三处、关卡节点地图 Boss 描边、清单封印特效行顺带;comfyui-prompts 生图卡颜色词随样张 v2 重生成。
|
||||
- **v2.11(2026-09-28)封印黑批**(用户拍板:封印色 封印紫 #7C3AA8 → **封印黑 #000000**——紫色与微光蓝族色相冲突,黑色无色相天然合规):§4.1 封印紫条改写封印黑条、§3.2 旗条/§1.4 不变槽/§4.3/§5.4 速览顺带;代码 UiKit.SEAL_PURPLE→SEAL_BLACK 改名迁移+board_view/board_fx_view 换色+样张脚本同步;胜利彩带装饰紫位改亮金(紫赤系 Boss 独占不入装饰);远程生图单主角旗 purple→black 十六进制锁色重锁。历史行(v2.10 等)按文档纪律留痕不改
|
||||
- **v2.12(2026-09-28)角嵌退役批**(用户裁「微光的展示只有微光,不要加额外的箭头或者加号在格子里面」——样张 v1 否决原因之一):未开格类型角嵌纹样**彻底退役**——类型预读改类型微光单通道(色相+明度双码),§2 微光明度恒定开例外(明度梯度承载类型,梯度不压格底明度档/三态分类),色弱类型主通道=微光双码;§1.2 优先级栈/§1.4 样张清单与验收 2/§3.2 角嵌条(标退役)/§3.4/§4.2 色带条/§4.5⑨/§4.6.3 呈现约束同步;已开格物件纹样(角嵌于砖缘画法动词)不在退役面;机检新增「微光格零墨色附加像素」断言;角嵌误读率指标转微光误读率 |
|
||||
- **v2.13(2026-09-28)样张 v2 冻结批(M-1 迭代 2 T1,机检闸形 A——全过即冻结)**:§1.4 增样张 v2 记录(机检 16/16:现行 13 条+A3 上调 Δ≥55/F6 顶面立面双明度带 Δ≥18/F7 悬崖 DEPTH_PX 同源/A6 观感密度梯度 ≥4.70=v1 实测 4.09×1.15——v1 四否决原因断言化收官);**四冻结落文**——①砖面形态:§3.2 高墙瓦片体系条增「D 投影档+整板悬崖」定稿参数(口沿高光 2px Color8(196,172,132)/立面双段暗带 0.16+0.25 格边 α0.60·0.82/地面投影 0.22 格边三段渐隐 α0.28/悬崖 DEPTH_PX 8px board_world 同款);②色板:§4.1 小人蓝候选→定稿 #2E86DE(UiKit 同步)+§4.2 接触带微光色值 #D6ECFF 定稿+类型微光五组候选→定稿(v2 呈现 α170/带宽 cell÷8);③动画方案:§8.4 帧数规格候选档→冻结(待机 4/攻击 6/受击 2/死亡=灰化+程序化碎块弹飞 5 块 0.45s,序列帧归缺料清单);④数字形制:色牌形制定稿(#F5EAD3 直角小牌+Fusion Pixel+字号 max(18,ceil(格边×0.5))+墨三档)。产物命名带 v2(v1 被覆盖欠账清偿),报告迁 `design/research/`;连带=图例旗色封印黑漏网修正(#C63D22→#000000) |
|
||||
- **v2.8(2026-09-25)可挖域接触带微光定稿批**(用户两拍板:①画法=接触带·空间侧——光画英雄格周界,正交邻墙=整边、斜向邻墙=角点+两半边;②色相=蓝族浅一档,顺路清偿旧 DIG_EDGE 绿相违 §4.2 绿禁则):§3.2 新增「可挖域接触带微光」条(画法/光只住空间一侧/角点不逐格归因、指认=悬停金框/呼吸与减动效守 §2.1/实现切换归表现批);§2.1 承载元素、§4.2 蓝条随批;battle.md 注记随批。背景=用户世界观口径「未开格=墙、已开格=挖出的空间」,微光=空间的灯光边界。
|
||||
- **v2.7(2026-09-25)封印术语批**(用户拍板:Node2D 实现后「插旗」动作等价为**封印**——玩家对未开格插旗即对该格巢穴实施封印,旗 = 封印印记;机制键与规则全不变):§3.2 新增「旗(封印印记)」条——呈现语义/旗朱与栈位不变/封印特效(施印瞬间+印记常显形态)待表现批/现行占位 = 旗朱「旗」字形;§2.5 失败承载元素措辞随批(插过的旗 = 封印印记)。**登记面**——registry terminology 新增「封印」词条、00-游戏概念 术语层级专名表随收;连带同步:battle.md 呈现注记、art-assets-checklist §4 演出类新增封印特效两件(施印特效+印记常显)、art-status-checklist P3 行、character-design.md §5.4 插旗条注记(主角即插旗者)。**关联面**——可挖域接触带微光方案(用户同日提出:微光画英雄格周界接触面,正交整边/斜向角点+两半边)评估可行,实现归表现批,未入本批。
|
||||
- **v2.6(2026-09-25)世界观对齐扫描批(甲档回填 + 完美排雷钩子收口 + 引用锚内联;用户三拍板)**:①**§4.6.4 敌种甲档回填数据实态**——bugbear(ward→light)/ ogre_chief(heavy→light)/ drider(heavy→ward),并注记甲档事实源 = `enemy.tres` armor_type(2026-09-18 甲重配批后 L1 全轻甲、L2 除 drider 外全轻甲、L3 duergar/duergar_king 重甲);连带修订 character-design.md §5.5(熊地精轻甲化/食人魔弃金属甲板改裸身皮条/卓尔改魔法甲符纹)与 comfyui-prompts.md v2.8(熊地精/食人魔/卓尔三卡提示词随改)——食人魔视觉重设计经用户拍板「按最新设定,裸身+魔法甲符纹」。②**§2.2 完美排雷钩子收口**——「若…落实…待 GDD 定夺」改现行事实(零误标且至少标中一面旗→追加第二份清图兑付+结算高光行,地图战斗资源 GDD 已定稿)。③**引用锚内联**——§3/§4 尾注 P1–P4 支柱语义内联(概念期 brainstorm 编号,现行 GDD 树不单列),§1.4 两处 game-concept 编号引用改语义内联。扫描背景=用户发起的圣经×关卡/世界观对齐审计;变异六类型/格面九类/状态九键/奖励 19 键/敌种八键/三柜台钥石/三关色板方向经核对全部一致,零其余不符。
|
||||
- **v2.13(2026-09-28)样张 v2 冻结批(M-1 迭代 2 T1,机检闸形 A——全过即冻结)**:§1.4 增样张 v2 记录(机检 16/16:现行 13 条+A3 上调 Δ≥55/F6 顶面立面双明度带 Δ≥18/F7 悬崖 DEPTH_PX 同源/A6 观感密度梯度 ≥4.70=v1 实测 4.09×1.15——v1 四否决原因断言化收官);**四冻结写入文档**——①砖面形态:§3.2 高墙瓦片体系条增「D 投影档+整板悬崖」定稿参数(口沿高光 2px Color8(196,172,132)/立面双段暗带 0.16+0.25 格边 α0.60·0.82/地面投影 0.22 格边三段渐隐 α0.28/悬崖 DEPTH_PX 8px board_world 同款);②色板:§4.1 小人蓝候选→定稿 #2E86DE(UiKit 同步)+§4.2 接触带微光色值 #D6ECFF 定稿+类型微光五组候选→定稿(v2 呈现 α170/带宽 cell÷8);③动画方案:§8.4 帧数规格候选档→冻结(待机 4/攻击 6/受击 2/死亡=灰化+程序化碎块弹飞 5 块 0.45s,序列帧归缺料清单);④数字形制:色牌形制定稿(#F5EAD3 直角小牌+Fusion Pixel+字号 max(18,ceil(格边×0.5))+墨三档)。产物命名带 v2(v1 被覆盖欠账清偿),报告迁 `design/research/`;连带=图例旗色封印黑漏网修正(#C63D22→#000000) |
|
||||
- **v2.8(2026-09-25)可挖域接触带微光定稿批**(用户两拍板:①画法=接触带·空间侧——光画英雄格周界,正交邻墙=整边、斜向邻墙=角点+两半边;②色相=蓝族浅一档,顺路清偿旧 DIG_EDGE 绿相违 §4.2 绿禁则):§3.2 新增「可挖域接触带微光」条(画法/光只住空间一侧/角点不逐格归因、指认=悬停金框/呼吸与减动效守 §2.1/实现切换归表现批);§2.1 承载元素、§4.2 蓝条顺带;battle.md 注记顺带。背景=用户世界观口径「未开格=墙、已开格=挖出的空间」,微光=空间的灯光边界。
|
||||
- **v2.7(2026-09-25)封印术语批**(用户拍板:Node2D 实现后「插旗」动作等价为**封印**——玩家对未开格插旗即对该格巢穴实施封印,旗 = 封印印记;机制键与规则全不变):§3.2 新增「旗(封印印记)」条——呈现语义/旗朱与栈位不变/封印特效(施印瞬间+印记常显形态)待表现批/现行占位 = 旗朱「旗」字形;§2.5 失败承载元素措辞顺带(插过的旗 = 封印印记)。**登记面**——registry terminology 新增「封印」词条、00-游戏概念 术语层级专名表随收;连带同步:battle.md 呈现注记、art-assets-checklist §4 演出类新增封印特效两件(施印特效+印记常显)、art-status-checklist P3 行、character-design.md §5.4 插旗条注记(主角即插旗者)。**关联面**——可挖域接触带微光方案(用户同日提出:微光画英雄格周界接触面,正交整边/斜向角点+两半边)评估可行,实现归表现批,未入本批。
|
||||
- **v2.6(2026-09-25)世界观对齐扫描批(甲档回填 + 完美排雷钩子完成 + 引用锚内联;用户三拍板)**:①**§4.6.4 敌种甲档回填数据实态**——bugbear(ward→light)/ ogre_chief(heavy→light)/ drider(heavy→ward),并注记甲档事实源 = `enemy.tres` armor_type(2026-09-18 甲重配批后 L1 全轻甲、L2 除 drider 外全轻甲、L3 duergar/duergar_king 重甲);连带修订 character-design.md §5.5(熊地精轻甲化/食人魔弃金属甲板改裸身皮条/卓尔改魔法甲符纹)与 comfyui-prompts.md v2.8(熊地精/食人魔/卓尔三卡提示词随改)——食人魔视觉重设计经用户拍板「按最新设定,裸身+魔法甲符纹」。②**§2.2 完美排雷钩子完成**——「若…落实…待 GDD 定夺」改现行事实(零误标且至少标中一面旗→追加第二份清图兑付+结算高光行,地图战斗资源 GDD 已定稿)。③**引用锚内联**——§3/§4 尾注 P1–P4 支柱语义内联(概念期 brainstorm 编号,现行 GDD 树不单列),§1.4 两处 game-concept 编号引用改语义内联。扫描背景=用户发起的圣经×关卡/世界观对齐审计;变异六类型/格面九类/状态九键/奖励 19 键/敌种八键/三柜台钥石/三关色板方向经核对全部一致,零其余不符。
|
||||
|
||||
- **v2.5(2026-09-25)装饰变体纹理级修订批**(地形高墙瓦片批复审发现,见 `candidates/terrain-walls-2026-09-25/0-需求规格与验收闸.md` §八;用户裁定):§1.2 原则三与 §3.2 装饰变体条——例子「苔藓/裂纹/碎屑」改「裂纹/碎石斑等纹理级氛围层」(苔藓在三个现行关卡 dungeon/underdark/灰矮人矿城设定中不存在);新增约束——装饰变体一律为纹理级、禁物件级(巨石/小石堆等读作"格子里有个东西"的元素与"格子=内容舞台"冲突,会跟奖励/旗子抢读),数量保持最少(约 2 种),用途仅为破除大面积同砖平铺的重复感;随机分布/与雷安类型零相关/不得构成可读线索等既有约束不动。§3.2 雷图棋盘呈现基准连带同步——「装饰小立牌=装饰变体的立体档」改「本作不采用立体小立牌档」。§1.4 样张清单「至少两种装饰变体」与约束一致,不动。
|
||||
- **v2.5(2026-09-25)装饰变体纹理级修订批**(地形高墙瓦片批复审发现,见 `candidates/terrain-walls-2026-09-25/0-需求规格与验收闸.md` §八;用户裁定):§1.2 原则三与 §3.2 装饰变体条——例子「苔藓/裂纹/碎屑」改「裂纹/碎石斑等纹理级氛围层」(苔藓在三个现行关卡 dungeon/underdark/灰矮人矿城设定中不存在);新增约束——装饰变体一律为纹理级、禁物件级(巨石/小石堆等读作"格子里有个东西"的元素与"格子=内容舞台"冲突,会跟奖励/旗子抢读),数量保持最少(约 2 种),用途仅为破除大面积同砖平铺的重复感;随机分布/与危险格与安全格类型零相关/禁止构成可读线索等既有约束不动。§3.2 雷图棋盘呈现基准连带同步——「装饰小立牌=装饰变体的立体档」改「本作不采用立体小立牌档」。§1.4 样张清单「至少两种装饰变体」与约束一致,不动。
|
||||
- **v2.4(2026-09-24)结构件完整性与参考核验纪律批**:新增 §8.5——①格面立体结构(顶面/缘件/角件/周界轮廓)必须来自素材本体绘制的结构件拼装,禁以调色/渐变/滤镜/跨格投影伪造缺失结构,样稿暴露缺件即停报「换素材/自产缺件」由用户裁决;②宣称「参考 X 游戏」前必须取得并像素级查看 X 截图证据并存档,仅凭文字/印象的断言无效;③图底分离由素材选型承载。立规动因=beast-cave 高墙批 G(渐变)/I(阴影)两稿以调色伪造结构、且参考 Necesse 未看截图,被用户两次纠偏返工。
|
||||
- **v2.3(2026-09-24)棋盘小人方向集批**:§8.4 增方向集条款——4 向(下/上/侧,侧向左右镜像共用画稿)+斜向移动/挖掘按主导轴吸附最近正交向,不出 45° 斜向帧(用户拍板;镜像豁免「旗恒画右」纪律为代拟口径、样张批追认)。
|
||||
- **v2.2(2026-09-24)效果图标纹样系统定稿批**:§4.6.1 九行纹样描述由用户逐键口述定稿(主体三轴白剑/白盾/白眼+右下角箭头语言绿↑红↓双绿↑,同族键共用同图);旧语义锚文字退役。
|
||||
- **v2.1(2026-09-23)停点前移批连带同步(批内代拍板②引用,worktree stoppoint-shift-20260923,台账 142)**:§6 开篇与 §7.2 结构行「双舞台四区」改「双舞台三区(B/C/D,字母保持不重编)」、扫雷图区锚点 1036×476→1036×504——战斗屏 A 区进度条随停点前移批退役(战后返回关卡画面,节点链进度由关卡画面选路覆盖层节点态承载),28px 纵向空间归 C/D 底行;裁决权与事实源归属 battle.md/HUD框架 不变,历次版本历史行不动。
|
||||
- **v2.0(2026-09-23)UI 章迁入批 + 画布定档 + 色板方向裁定(用户对 v1.8 代拍板四项逐条表态+五缺口给口径;worktree art-ch69-amend-20260923,台账 138)**:①**§3.3/§4.4 物理迁入 §7**(用户拍板:UI 具体选择须在 UI 章定义,三/四章只留简单定义与方向指导——v1.8 代拍板①「按引用整合」据此推翻):§3.3/§4.4 降为方向指导节(各留一段+指路),细则全文迁 **§7.1 形状语法细则/§7.2 UI 色板细则**;§7 重排号 7.1–7.5(原 7.4 组件库语义并入 7.1,零内容损失);§6.2/§7.3/§7.5 与清单引用随改。②**§8.2 画布基准暂定值**(用户缺口一裁定):主角人设原图=48×72、主角战斗状态图(侧向)=48×72〔v1.9 待决注记「主角立绘档空缺」收口〕、棋盘小人=32×32 二头身独立派生资产(允许更小;36px 板占比摩擦沿「独立小源档」路线样张批定终值)、敌种立绘三档 48/64/96=普通怪(小)/精英(中)/Boss(大)对应关系经确认保留候选;旧「像素基准 32px」通用候选退役;1920 档缩放策略与帧数规格维持待裁决,登记 06-待办清单(表现与支撑/HUD框架节新条目),样张批时提醒。③**§6.3 三关色板方向**(用户裁定):underdark 幽暗地域=**冷调幽暗**(灰白蓝主调+少量紫黑点缀,紫系取紫罗兰域 ≈256° 候选、禁入带 300°–345° 不变)、deep_underdark 灰矮人矿城=**灰黑主调+矿脉金属色点缀**(金属质感族冷银/铜灰候选,奖励金亮金禁上格底 §4.2 不变)——替换 v1.8 苔绿/冷灰岩方向草案。④**§9.1 扩池候选否决**(Forager/杀戮尖塔不入池且撤登记——用户裁定美术参考意义不足;代拍板④收口)。⑤命名规范草案获确认(代拍板②收口)。清单 §0 像素行与风格宪法表指向随批。
|
||||
- **v1.9(2026-09-23)§8.2 待决注记批**(侧会话用户指令「你在这里直接把这件事给做了吧」;worktree art-s82-note-20260923,台账 137):§8.2 增两条待决注记——①**36px 板 × 32px 源摩擦**:32px 源在 45px 格 1× 占 ≈71% 合规、在 36px 格 1× 占 ≈89% 超「≤0.75 格边」红线且禁非整数缩放回退,出路二选一(棋盘小人独立更小源档如 24px 级 vs 两种板各出一版),样张批随格边长终值一并裁决,裁决前棋盘小人源图不排产;②**主角立绘档空缺**:主角 B 区站桩立绘未单独立档(现行 48/64/96px 阶梯按敌种 archetype 写),随战斗一屏样张锁「角色剪影方向/战斗空间」时一并定。头注「现行为」随批 v1.9。
|
||||
- **v1.8(2026-09-23)§6–9 四章补全批(D 框架 D1/D2/D4/D5 落地,圣经全章成文;worktree art-ch6-9-20260923,台账 136)**:**§6 环境与场景**——6.1 战斗舞台背景(明亮地窟/低对比自然后退/明度恒定适用/`wall_ambient` 联动/紫赤仅 Boss 战)、6.2 营地场景(烛光黄×木色/三柜台一字排开/亮起走饱和不动明度/系统语义归元进度 GDD)、6.3 三关图类型色板候选(dungeon 暖石棕基准档/underdark 苔绿偏灰/deep_underdark 冷灰岩,方向候选归样张批重跑 §1.4 冻结,增「与五组微光互辨」抽测)、6.4 下探过渡(渐变取下一关槽值,只动色相饱和);**§7 UI 设计**——7.1 视觉基准(§3.3/§4.4 上位法**按引用整合**,D5 框架「迁入」不物理迁移——保持形状/色彩两章完整性,物理迁移待用户另有裁决)、7.2 布局栅格(四区结构事实源归 battle.md+4px 步进档候选)、7.3 字体字号(Kenney CC0/Fusion Pixel OFL 候选+整数倍缩放+下限 18/14/13 事实源 HUD框架+禁字重区分)、7.4 组件库三类容器语义+极性冗余、7.5 营地界面;**§8 资产与技术规范**——8.1 两档定案+格边长口径(锚点 45/36px 事实源 battle.md,扩板与 1920 档换算归表现批)、8.2 像素基准 32px 候选(active.md 58 条挂账清偿入章)+整数倍缩放纪律+1920 档适配策略候选+画布档位候选、8.3 导出 PNG/SpriteFrames+命名规范候选草案(对象键=数据表主键,图标键契约的文件侧延伸)、8.4 帧数规格候选档;**§9 参考与反参考**——9.1 正面三款取/弃表+扩池候选(Forager/杀戮尖塔)仅登记不入池、9.2 反面四条绑条款(Darkest Dungeon 压暗/Gungeon 粒子色相爆炸/Hades 特效密度/传统扫雷八色),反面图证待素材生成。**同步面**——头注状态行/Sign-Off 注记/参考池行、art-assets-checklist §0 像素尺寸行与参考图行及 §6 依赖链、04-美术音频方向.md 参考指引随批。**代拍板四项待追认**——①D5「迁入」按引用整合不物理迁移;②命名规范候选草案;③栅格/画布/帧数候选值系起草非裁决;④扩池候选两款不入池仅登记。
|
||||
- **v2.1(2026-09-23)停点前移批连带同步(批内代拍板②引用,worktree stoppoint-shift-20260923,状态记录 142)**:§6 开篇与 §7.2 结构行「双舞台四区」改「双舞台三区(B/C/D,字母保持不重编)」、扫雷图区锚点 1036×476→1036×504——战斗屏 A 区进度条随停点前移批退役(战后返回关卡画面,节点链进度由关卡画面选路覆盖层节点态承载),28px 纵向空间归 C/D 底行;裁决权与事实源归属 battle.md/HUD框架 不变,历次版本历史行不动。
|
||||
- **v2.0(2026-09-23)UI 章迁入批 + 画布定档 + 色板方向裁定(用户对 v1.8 代拍板四项逐条表态+五缺口给口径;worktree art-ch69-amend-20260923,状态记录 138)**:①**§3.3/§4.4 物理迁入 §7**(用户拍板:UI 具体选择须在 UI 章定义,三/四章只留简单定义与方向指导——v1.8 代拍板①「按引用整合」据此推翻):§3.3/§4.4 降为方向指导节(各留一段+指路),细则全文迁 **§7.1 形状语法细则/§7.2 UI 色板细则**;§7 重排号 7.1–7.5(原 7.4 组件库语义并入 7.1,零内容损失);§6.2/§7.3/§7.5 与清单引用随改。②**§8.2 画布基准暂定值**(用户缺口一裁定):主角人设原图=48×72、主角战斗状态图(侧向)=48×72〔v1.9 待决注记「主角立绘档空缺」完成〕、棋盘小人=32×32 二头身独立派生资产(允许更小;36px 板占比摩擦沿「独立小源档」路线样张批定终值)、敌种立绘三档 48/64/96=普通怪(小)/精英(中)/Boss(大)对应关系经确认保留候选;旧「像素基准 32px」通用候选退役;1920 档缩放策略与帧数规格维持待裁决,登记 06-待办清单(表现与支撑/HUD框架节新条目),样张批时提醒。③**§6.3 三关色板方向**(用户裁定):underdark 幽暗地域=**冷调幽暗**(灰白蓝主调+少量紫黑点缀,紫系取紫罗兰域 ≈256° 候选、禁入带 300°–345° 不变)、deep_underdark 灰矮人矿城=**灰黑主调+矿脉金属色点缀**(金属质感族冷银/铜灰候选,奖励金亮金禁上格底 §4.2 不变)——替换 v1.8 苔绿/冷灰岩方向草案。④**§9.1 扩池候选否决**(Forager/杀戮尖塔不入池且撤登记——用户裁定美术参考意义不足;代拍板④完成)。⑤命名规范草案获确认(代拍板②完成)。清单 §0 像素行与风格宪法表指向顺带。
|
||||
- **v1.9(2026-09-23)§8.2 待决注记批**(侧会话用户指令「你在这里直接把这件事给做了吧」;worktree art-s82-note-20260923,状态记录 137):§8.2 增两条待决注记——①**36px 板 × 32px 源摩擦**:32px 源在 45px 格 1× 占 ≈71% 合规、在 36px 格 1× 占 ≈89% 超「≤0.75 格边」红线且禁非整数缩放回退,出路二选一(棋盘小人独立更小源档如 24px 级 vs 两种板各出一版),样张批随格边长终值一并裁决,裁决前棋盘小人源图不排产;②**主角立绘档空缺**:主角 B 区站桩立绘未单独立档(现行 48/64/96px 阶梯按敌种 archetype 写),随战斗一屏样张锁「角色剪影方向/战斗空间」时一并定。头注「现行为」顺带 v1.9。
|
||||
- **v1.8(2026-09-23)§6–9 四章补全批(D 框架 D1/D2/D4/D5 落地,圣经全章成文;worktree art-ch6-9-20260923,状态记录 136)**:**§6 环境与场景**——6.1 战斗舞台背景(明亮地窟/低对比自然后退/明度恒定适用/`wall_ambient` 联动/紫赤仅 Boss 战)、6.2 营地场景(烛光黄×木色/三柜台一字排开/亮起走饱和不动明度/系统语义归元进度 GDD)、6.3 三关图类型色板候选(dungeon 暖石棕基准档/underdark 苔绿偏灰/deep_underdark 冷灰岩,方向候选归样张批重跑 §1.4 冻结,增「与五组微光互辨」抽测)、6.4 下探过渡(渐变取下一关槽值,只动色相饱和);**§7 UI 设计**——7.1 视觉基准(§3.3/§4.4 上位法**按引用整合**,D5 框架「迁入」不物理迁移——保持形状/色彩两章完整性,物理迁移待用户另有裁决)、7.2 布局栅格(四区结构事实源归 battle.md+4px 步进档候选)、7.3 字体字号(Kenney CC0/Fusion Pixel OFL 候选+整数倍缩放+下限 18/14/13 事实源 HUD框架+禁字重区分)、7.4 组件库三类容器语义+极性冗余、7.5 营地界面;**§8 资产与技术规范**——8.1 两档定案+格边长口径(锚点 45/36px 事实源 battle.md,扩板与 1920 档换算归表现批)、8.2 像素基准 32px 候选(active.md 58 条挂账清偿入章)+整数倍缩放纪律+1920 档适配策略候选+画布档位候选、8.3 导出 PNG/SpriteFrames+命名规范候选草案(对象键=数据表主键,图标键契约的文件侧延伸)、8.4 帧数规格候选档;**§9 参考与反参考**——9.1 正面三款取/弃表+扩池候选(Forager/杀戮尖塔)仅登记不入池、9.2 反面四条绑条款(Darkest Dungeon 压暗/Gungeon 粒子色相爆炸/Hades 特效密度/传统扫雷八色),反面图证待素材生成。**同步面**——头注状态行/Sign-Off 注记/参考池行、art-assets-checklist §0 像素尺寸行与参考图行及 §6 依赖链、04-美术音频方向.md 参考指引顺带。**代拍板四项待追认**——①D5「迁入」按引用整合不物理迁移;②命名规范候选草案;③栅格/画布/帧数候选值系起草非裁决;④扩池候选两款不入池仅登记。
|
||||
- **v1.7(2026-09-23)§5 抽离批 + 主角特征批**(用户两拍板:①角色设计自圣经 §5 抽离成独立文档 `character-design.md`,圣经 §5 改引用存根,小节号 §5.1–§5.6 不变、既有 §5.x 引用经存根可达;②主角特征改动——背后加扫雷联动旗、直剑换挖掘铲):§3.1 迁移注改指人物设计文档;主角两特征与三态措辞修订明细归 character-design.md 版本历史 v1.0,提示词执行侧归 comfyui-prompts.md v2.1。
|
||||
- **v1.6(2026-09-22)§5 角色设计落地批(D 框架 D3)+ 提示词卡重生成**(用户拍板走正序:先补 §5 角色章,再重生成 comfyui-prompts.md;worktree art-char-s5-20260922):**新增 §5 角色设计**——§5.1 角色剪影与轮廓通道(自 §3.1 迁入:角色四类 archetype + 轮廓通道硬规则,「禁黑描边」随批固化;道具点剪影留在 §3.1 并改题「道具点剪影」);§5.2 头身比与体量档位(2~3 头身两档、体量单调递增、像素画布归 §8 另批);§5.3 护甲类型视觉区分(候选方案待样张批冻结:通道 = 甲面覆盖率×甲材质色——轻甲裸、魔法护甲符纹饰带、重甲冷灰金属甲板;天然甲壳不计甲档;灰度按覆盖率三档可辨;清偿 §4.6.4 强度档位行挂起的待设计项);§5.4 主角三态规格(形象锚站姿样张/三态约束/小人蓝同族明暗/蓝族敌方禁入);§5.5 八敌种逐卡(键集随 registry,主色域物种本色豁免语义禁则、禁入带与蓝族两例外;兄弟精换色板不换形);§5.6 意图准备动画三档规格承载(自 2026-09-18 拍板与清单 §2.3 收编)。**引用随迁**——§4.5⑤/§4.6.4 两处 §3.1 改指 §5.1,§4.6.4 强度档位行改指 §5.3;art-assets-checklist §0/§2.2 引用与待设计项表述、战斗表现 §3.1 引用两处随批。**comfyui-prompts.md 重生成 v2.0**(主角三态+八敌种逐资产自包含完整提示词——正向底座/主体/动作已拼妥、负向底座/增补已并妥,整段可直贴;继承 seed 纪律/禁入带/#F2F2F2 生成底色;主角蓝族随 v1.1 换装 #2E86DE;新增 duergar/hook_horror/duergar_king 三卡;护甲视觉短语按 §5.3 注入各卡;bugbear 主体改敦实圆肩守 §5.1 普通怪宽≥高;兄弟精变体配色弃冷蓝灰改灰褐战纹,避与小人蓝同屏混淆)。§6–9(D4/D5/D1/D2)仍待后续批。
|
||||
- **v1.6(2026-09-22)§5 角色设计落地批(D 框架 D3)+ 提示词卡重生成**(用户拍板走正序:先补 §5 角色章,再重生成 comfyui-prompts.md;worktree art-char-s5-20260922):**新增 §5 角色设计**——§5.1 角色剪影与轮廓通道(自 §3.1 迁入:角色四类 archetype + 轮廓通道硬规则,「禁黑描边」顺带固化;道具点剪影留在 §3.1 并改题「道具点剪影」);§5.2 头身比与体量档位(2~3 头身两档、体量单调递增、像素画布归 §8 另批);§5.3 护甲类型视觉区分(候选方案待样张批冻结:通道 = 甲面覆盖率×甲材质色——轻甲裸、魔法护甲符纹饰带、重甲冷灰金属甲板;天然甲壳不计甲档;灰度按覆盖率三档可辨;清偿 §4.6.4 强度档位行挂起的待设计项);§5.4 主角三态规格(形象锚站姿样张/三态约束/小人蓝同族明暗/蓝族敌方禁入);§5.5 八敌种逐卡(键集随 registry,主色域物种本色豁免语义禁则、禁入带与蓝族两例外;兄弟精换色板不换形);§5.6 意图准备动画三档规格承载(自 2026-09-18 拍板与清单 §2.3 收编)。**引用随迁**——§4.5⑤/§4.6.4 两处 §3.1 改指 §5.1,§4.6.4 强度档位行改指 §5.3;art-assets-checklist §0/§2.2 引用与待设计项表述、战斗表现 §3.1 引用两处顺带。**comfyui-prompts.md 重生成 v2.0**(主角三态+八敌种逐资产自包含完整提示词——正向底座/主体/动作已拼妥、负向底座/增补已并妥,整段可直贴;继承 seed 纪律/禁入带/#F2F2F2 生成底色;主角蓝族随 v1.1 换装 #2E86DE;新增 duergar/hook_horror/duergar_king 三卡;护甲视觉短语按 §5.3 注入各卡;bugbear 主体改敦实圆肩守 §5.1 普通怪宽≥高;兄弟精变体配色弃冷蓝灰改灰褐战纹,避与小人蓝同屏混淆)。§6–9(D4/D5/D1/D2)仍待后续批。
|
||||
|
||||
- **v1.5(2026-09-22)中间产物引用解挂批**(用户裁决:修订指导与审计报告系中间产物不入库,工作区未跟踪留存;worktree midprod-unref-20260922):头注 D1–D5 框架引用改内联编号映射(明细归台账 125);本历史 v1.3 条目中的修订指导路径引用自此不再可达(历史文本如实保留);art-assets-checklist 两处「交接要点存审计报告」改指路台账 125。
|
||||
- **v1.5(2026-09-22)中间产物引用解挂批**(用户裁决:修订指导与审计报告系中间产物不入库,工作区未跟踪留存;worktree midprod-unref-20260922):头注 D1–D5 框架引用改内联编号映射(明细归状态记录 125);本历史 v1.3 条目中的修订指导路径引用自此不再可达(历史文本如实保留);art-assets-checklist 两处「交接要点存审计报告」改指路状态记录 125。
|
||||
- **v1.4(2026-09-22)gungeon 退场批**(用户拍板:gungeon 两张移出即可,暂不设反面案例——反面参考待素材生成后另批增补;worktree gungeon-exit-20260922):`references/gungeon_1/2.jpg` 删除;头注参考池行定稿三款×2 张,目录自此与点名池一一对应。
|
||||
- **v1.3(2026-09-22)GDD 过期账清偿批 + 类型微光裁决**(用户四拍板:①未开格类型预读采纳彩色常显微光;②分辨率档位已定案两档 1280×800+1920×1080〔清单侧承载〕;③§5–9 按 D1–D5 框架分批补全,框架登记于 `art-docs-revision-guide-2026-09-22.md` 第 6 节;④两份美术清单合并以 art-assets-checklist 为底〔清单侧承载〕;worktree art-docs-settlement-20260922):**§4.6 契约表对齐数据实态**——§4.6.1 效果键七行→九行(ac_up/alert/empower/fortify 入表,defense_up/ambush 死键清除,sapped「待实施」旧注删除);§4.6.2 奖励徽章键整表重写为九型字典正负 18 行+清图槽 clear_blast(旧可选类三键/attack_up_basic/defense_up_basic/clear_knife 清除,「群伤 40」数值删除归配置事实源;gp 组键名按 reward.tres 勘误为 gp_coin/gp_lose);§4.6.4 敌种线索键整节重写(键集 {grub,ambusher}→八敌种现行键集,意图姿态改 2026-09-18 动画三档,Rule 8/伏击池/OQ7 退役表述清除);**微光改向**——§4.6.3 呈现约束由「墨族单色」单一通道改「角嵌纹样(形状)+类型常显微光(色彩)」双通道(R3 不泄雷安约束不变),§4.2 增「类型微光色带」分域条款与五组候选色相(芥末黄/黄绿/青/紫罗兰/绯红,避 300°–345° 禁入带与既有语义色段,样张批冻结),红/绿/紫赤/金条款加微光分域例外,§4.5⑨/§3.2 角嵌纹样条/§1.2 原则一/§1.4 样张清单与验收 2·4/§3.4 同步;**过期挂点清偿**——§3.2/§4.3 变异挂点落地(六类型定稿,纹带形按轴两分:伤害轴刺缺形/信息轴遮蔽形,同轴只做色板变体;样张批增岩浆橙红与危险红/旗朱互辨、信息轴遮蔽不入色牌占位区两项检查);§2.8 营地改三柜台+钥石(「天赋树」退役);**更名**——biome/board_biome/biome_tag 正文全量更名图类型(board_type),§4.3 标题随批(键名事实源 = 棋盘生成 GDD 与 board_gen.tres);**结构收敛**——§1.3「对 brainstorm 视觉锚的修订记录」整节并入本版本历史(正文留号占位,台账 109 正文零历史纪律),头注压缩(状态行与 Sign-Off 并行),原则三与 §3.2 重复条款收敛(零信息纪律/结果清单单点成文)。gungeon 两张参考图去留待表态(T2)。
|
||||
- **v1.2(2026-09-22)雷图棋盘呈现基准批**(用户拍板:雷图要有 ITB 参考图的战棋棋盘质感,但 45° 摆正成正俯视角——「摆正视角方格」读法):§3.2 增「雷图棋盘呈现基准」条——ITB 地表质感骨架(纹理多样/起伏体块/岛缘砖缘厚度/格上装饰立牌)× 相机正上方垂直向下、格线屏轴对齐、禁等距斜视与菱形格;砖缘厚度/岛缘立体面显式划为形体塑造、不触 §2 明度恒定(该规则禁的是状态/情绪明暗表达),顶面格底仍守 §4.1 参数域;装饰立牌 = 装饰变体立体档、零信息纪律不变;头部参考池行与资产清单样张要求随批。**勘误**——v1.1 台账所记「参考池资产失配」判断有误:references/ 中 itb/moonlighter/peglin(点名池)+gungeon(未点名)四款×2 张一直在库,删除的十张系额外五款(CatQuest3/Dicey/Roundguard/Tangledeep/WonderBoy)退场,参考池本身无失配;gungeon 两张点名与否待用户表态。
|
||||
- **v1.1(2026-09-22)视觉自由度修订批**(用户三拍板:①原则二改数字色牌方案;②已开后表达+零信息装饰变体;③只换主角蓝微调其余):原则二更名「明亮为皮,色牌为骨」——数字可读性改由数字色牌(素色直角小牌)承载,格底压素让路条款退役、饱和上限 0.40→0.55(候选),§1.2 优先级栈/§1.4 验收 1·2·4/§3.3/§3.4/§4.1 硬指标/§4.3 同步改查牌;原则三增格子多样化——已开格按当格结果整格表达(九类型物件纹样/纯安全格裸土/雷格巢穴更凶),未开格加零信息装饰变体(随机分布、禁逐轮重掷),未开格类型预读由小徽章升级为角嵌纹样(R3 不泄雷安约束不变),§3.2/§4.5⑨/§4.6 同步;主色板——小人蓝 `#2E6E8E`→`#2E86DE`、新增数字色牌 `#F5EAD3`(均候选值,样张批冻结终值),格面类型表五类→九类对齐(pierce/magic/action/gp)。§2 氛围层与明度恒定硬规则未动;§4.6 其余键表(效果 §4.6.1/奖励 §4.6.2/敌种 §4.6.4)数据过期账未清,另批处理;执行侧 ui_kit `HERO_BLUE` 等色值同步义务已登记,归样张批冻结后的表现批。
|
||||
- **v1.0**(2026-09-10 初稿;2026-09-13 增补批——徽章栈位/雷格隐喻换轴/格子样张验收成文/图标键契约冻结;2026-09-15 去雾批)。
|
||||
- **v1.3(2026-09-22)GDD 过期账清偿批 + 类型微光裁决**(用户四拍板:①未开格类型预读采纳彩色常显微光;②分辨率档位已定案两档 1280×800+1920×1080〔清单侧承载〕;③§5–9 按 D1–D5 框架分批补全,框架登记于 `art-docs-revision-guide-2026-09-22.md` 第 6 节;④两份美术清单合并以 art-assets-checklist 为底〔清单侧承载〕;worktree art-docs-settlement-20260922):**§4.6 契约表对齐数据实态**——§4.6.1 效果键七行→九行(ac_up/alert/empower/fortify 入表,defense_up/ambush 死键清除,sapped「待实施」旧注删除);§4.6.2 奖励徽章键整表重写为九型字典正负 18 行+清图槽 clear_blast(旧可选类三键/attack_up_basic/defense_up_basic/clear_knife 清除,「群伤 40」数值删除归配置事实源;gp 组键名按 reward.tres 勘误为 gp_coin/gp_lose);§4.6.4 敌种线索键整节重写(键集 {grub,ambusher}→八敌种现行键集,意图姿态改 2026-09-18 动画三档,Rule 8/伏击池/OQ7 退役表述清除);**微光改向**——§4.6.3 呈现约束由「墨族单色」单一通道改「角嵌纹样(形状)+类型常显微光(色彩)」双通道(R3 不泄危险格与安全格约束不变),§4.2 增「类型微光色带」分域条款与五组候选色相(芥末黄/黄绿/青/紫罗兰/绯红,避 300°–345° 禁入带与既有语义色段,样张批冻结),红/绿/紫赤/金条款加微光分域例外,§4.5⑨/§3.2 角嵌纹样条/§1.2 原则一/§1.4 样张清单与验收 2·4/§3.4 同步;**过期挂点清偿**——§3.2/§4.3 变异挂点落地(六类型定稿,纹带形按轴两分:伤害轴刺缺形/信息轴遮蔽形,同轴只做色板变体;样张批增岩浆橙红与危险红/旗朱互辨、信息轴遮蔽不入色牌占位区两项检查);§2.8 营地改三柜台+钥石(「天赋树」退役);**更名**——biome/board_biome/biome_tag 正文全量更名图类型(board_type),§4.3 标题顺带(键名事实源 = 棋盘生成 GDD 与 board_gen.tres);**结构收敛**——§1.3「对 brainstorm 视觉锚的修订记录」整节并入本版本历史(正文留号占位,状态记录 109 正文零历史纪律),头注压缩(状态行与 Sign-Off 并行),原则三与 §3.2 重复条款收敛(零信息纪律/结果清单单点成文)。gungeon 两张参考图去留待表态(T2)。
|
||||
- **v1.2(2026-09-22)雷图棋盘呈现基准批**(用户拍板:雷图要有 ITB 参考图的战棋棋盘质感,但 45° 摆正成正俯视角——「摆正视角方格」读法):§3.2 增「雷图棋盘呈现基准」条——ITB 地表质感骨架(纹理多样/起伏体块/岛缘砖缘厚度/格上装饰立牌)× 相机正上方垂直向下、格线屏轴对齐、禁等距斜视与菱形格;砖缘厚度/岛缘立体面显式划为形体塑造、不触 §2 明度恒定(该规则禁的是状态/情绪明暗表达),顶面格底仍守 §4.1 参数域;装饰立牌 = 装饰变体立体档、零信息纪律不变;头部参考池行与资产清单样张要求顺带。**勘误**——v1.1 状态记录所记「参考池资产失配」判断有误:references/ 中 itb/moonlighter/peglin(点名池)+gungeon(未点名)四款×2 张一直在库,删除的十张系额外五款(CatQuest3/Dicey/Roundguard/Tangledeep/WonderBoy)退场,参考池本身无失配;gungeon 两张点名与否待用户表态。
|
||||
- **v1.1(2026-09-22)视觉自由度修订批**(用户三拍板:①原则二改数字色牌方案;②已开后表达+零信息装饰变体;③只换主角蓝微调其余):原则二更名「明亮为皮,色牌为骨」——数字可读性改由数字色牌(素色直角小牌)承载,格底压素让路条款退役、饱和上限 0.40→0.55(候选),§1.2 优先级栈/§1.4 验收 1·2·4/§3.3/§3.4/§4.1 硬指标/§4.3 同步改查牌;原则三增格子多样化——已开格按当格结果整格表达(九类型物件纹样/纯安全格裸土/危险格巢穴更凶),未开格加零信息装饰变体(随机分布、禁逐轮重掷),未开格类型预读由小徽章升级为角嵌纹样(R3 不泄危险格与安全格约束不变),§3.2/§4.5⑨/§4.6 同步;主色板——小人蓝 `#2E6E8E`→`#2E86DE`、新增数字色牌 `#F5EAD3`(均候选值,样张批冻结终值),格面类型表五类→九类对齐(pierce/magic/action/gp)。§2 氛围层与明度恒定硬规则未动;§4.6 其余键表(效果 §4.6.1/奖励 §4.6.2/敌种 §4.6.4)数据过期账未清,另批处理;执行侧 ui_kit `HERO_BLUE` 等色值同步义务已登记,归样张批冻结后的表现批。
|
||||
- **v1.0**(2026-09-10 初稿;2026-09-13 增补批——徽章栈位/危险格隐喻换轴/格子样张验收成文/图标键契约冻结;2026-09-15 去雾批)。
|
||||
@@ -1,7 +1,7 @@
|
||||
# 美术素材状态清单(Art Status Checklist)
|
||||
|
||||
> **性质**:纯看板——每条素材只记三件事:**素材名 × 是否完成 × 需求文档指针**。要什么、怎么做、验收标准一概不记:需求规格归 [art-assets-checklist.md](art-assets-checklist.md),风格/规范定义处归各 owner 文档(第三列)。
|
||||
> **更新纪律**:随批只改「状态」列;做完不删行,改 ✅。条目编号与 art-assets-checklist.md 的 P0–P3 一一对应。
|
||||
> **更新纪律**:顺带只改「状态」列;做完不删行,改 ✅。条目编号与 art-assets-checklist.md 的 P0–P3 一一对应。
|
||||
> **建档**:2026-09-24,状态列为当日快照。**2026-10-06 P1-3 对账批**:按实机在役状态与圣经 v3.7 冻结记录全量复核更新(审计发现看板反超条目已对齐;对账后 = ✅ 4 / ◐ 8 / ⬜ 3,共 15 条)。
|
||||
|
||||
**状态图例**:⬜ 未开始 | ◐ 占位在役(程序化占位,够试玩不达标) | ◑ 候选已出待审 | ✅ 已交付
|
||||
@@ -28,7 +28,7 @@
|
||||
| 格面资源徽章 19 枚 | ◐ | [art-bible](art-bible.md) §4.6 |
|
||||
| 关卡节点图图标组 | ◐ | [art-assets-checklist](art-assets-checklist.md) §3.2(正式 UI 设计未成文) |
|
||||
| 雷/旗/数字砖面全套 | ◐ | [art-bible](art-bible.md) §1.4/§3.2(前置:格子样张) |
|
||||
| 增益状态效果图标 9 枚 | ✅ 已接入(2026-09-24 台账 156) | [art-bible](art-bible.md) §4.6.1(候选原稿:状态图标批 2026-09-23 远程出图,归 candidates 档——路径描述性引用,归档纪律见 art-bible §8.3) |
|
||||
| 增益状态效果图标 9 枚 | ✅ 已接入(2026-09-24 状态记录 156) | [art-bible](art-bible.md) §4.6.1(候选原稿:状态图标批 2026-09-23 远程出图,归 candidates 档——路径描述性引用,归档纪律见 art-bible §8.3) |
|
||||
| 营地与元进度件 | ◐ | [art-bible](art-bible.md) §4.4 |
|
||||
| 字体(数字像素字 + 中文像素字) | ◐ | [art-bible](art-bible.md) §4.4 |
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 素材路径分工约定(asset-path-map)
|
||||
|
||||
- 定立:2026-09-26(用户立约指令「把哪些路径、哪些位置是干什么的确定好」——台账 161)
|
||||
- 定立:2026-09-26(用户立约指令「把哪些路径、哪些位置是干什么的确定好」——状态记录 161)
|
||||
- 效力:全仓素材批的路径判据单点;新素材批开工前对照,违例=实施缺陷
|
||||
|
||||
## 1. 目录分工总表
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
## 5.1 角色剪影与轮廓通道(自圣经 §3.1 迁入)
|
||||
|
||||
硬规则:**所有角色自带轮廓通道**——亮色描边(暖白族,禁黑描边)+落影底盘,识别不依赖所在背景。敌人不占格,剪影不得借格底色成立;同一套剪影因此在棋盘、结算画面与任一战斗舞台通用,不为战斗表现未决的舞台问题付重画成本。←已锁事实;「禁黑描边」= 2026-09-20 提示词卡实践随批固化
|
||||
硬规则:**所有角色自带轮廓通道**——亮色描边(暖白族,禁黑描边)+落影底盘,识别不依赖所在背景。敌人不占格,剪影禁止借格底色成立;同一套剪影因此在棋盘、结算画面与任一战斗舞台通用,不为战斗表现未决的舞台问题付重画成本。←已锁事实;「禁黑描边」= 2026-09-20 提示词卡实践顺带固化
|
||||
|
||||
**主角描边例外(2026-10-06 待决项 B 用户拍板——显式例外,非漂移)**:主角四态硬描边 = **深褐 `(40,19,13)`**,不入暖白族——深描边在浅砖面格底上对比更高、主角更突出;暖白达标率 0–28% 属例外内允许(敌人仍暖白族,实测达标 27–69%,不变)。素材不随本条修改;样张批(圣经 §1.4)终审复核例外成立性,复核义务登记 06 待办。
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
- **三态**:① 待机 = 窄、直立、对称(§5.1 小人原型,含背包、旗与提灯记账);② 攻击 = 允许破对称,整体仍窄、不超格宽;③ 受击 = 无血红、无伤害数字(伤害数字归 HUD 层,不进精灵图)。
|
||||
- **随身件 = 秘宝形象候选池(2026-09-23 用户提案登记)**:铲、旗、背包、提灯四件随身件是未来秘宝批的**形象候选池**——道具实装可借用主角身上已有的同款(彩蛋闭环:玩家在道具栏认出主角身上的物件);具体道具语义/数值归秘宝批 GDD,人设侧义务 = 四件画得出来、认得出。
|
||||
- **配色修订(2026-09-23 用户拍板:弃全蓝,蓝只在明显处)**:**小人蓝 `#2E86DE` 只保留在兜帽**(披肩状态仍可辨,与棋盘小人/光标识别一致,"全作唯一蓝色"语义不变);上衣改**暖米白 `#EFE3C8`**(数字色牌同族暖纸白)、长裤改**深棕工装 `#6B4A2E`**(木色族深化)——与掩尘棋盘同域协调、靠明度差保持身份识别;皮革件木色族 `#8A5A34`;眼部用数字墨 `#33261B` 族。(色值均候选,样张批圣经 §1.4 冻结终稿)←圣经 §4.1
|
||||
- **语义约束**:蓝只说己方(圣经 §4.2)——主角是全作唯一蓝色角色,敌方与物件主色不得入蓝族;禁入带 300°–345° 对全角色生效(Boss 独占例外,§5.5)。
|
||||
- **语义约束**:蓝只说己方(圣经 §4.2)——主角是全作唯一蓝色角色,敌方与物件主色禁止入蓝族;禁入带 300°–345° 对全角色生效(Boss 独占例外,§5.5)。
|
||||
- **生成顺序口径(2026-09-23 用户确认)**:先人设定稿(本档 §5.4 + 提示词卡待机态),定稿后再逐状态出图——战斗画面的**侧身面向怪物**形象属状态图,随表现层批次另行生成;状态图需侧/背身时,该卡负向提示词中的 `side view / back view` 条目按卡摘除(人设立绘卡仍保留禁侧背)。
|
||||
- **棋盘小人(2026-09-23 用户拍板,原开放项定案)**:棋盘格上的主角小人 = **主角人设图压缩至二头身后的简化版像素小人**——随人设定稿派生(同款装备剪影:铲/背包/旗可辨),二头身在 §5.2 两档内;派生工艺(最近邻降采样+手修简化)归一屏样张批与脚本管线定。
|
||||
|
||||
@@ -83,13 +83,13 @@
|
||||
|
||||
## 版本历史
|
||||
|
||||
- **v1.9(2026-10-06)主角描边例外条款批(审计报告待决项 B 用户拍板)**:§5.1 新增**主角描边例外**条——主角四态硬描边 = 深褐 `(40,19,13)` 显式例外(浅砖面对比更高/主角更突出),敌人维持暖白族;系描边不一致的定性收口(不一致源自早期生成素材,按用户口径以约束条款认可为有意设计,素材不改);样张批终审复核义务登记 06 待办。
|
||||
- **v1.8(2026-10-06)体量语义修订+立绘源档定档批(P0 收口讨论批;工作流程铁律 = 只动文档,代码实装另批走 PRD→迭代)**:①**§5.2 体量档位改「生物体型通道」**——原「强度先验·普通 < 精英 < Boss 单调递增」读法退役,依据 = 用户三体型约束(钩爪恐魔>灰矮人/灰矮人<熊地精/食人魔>熊地精,小体型精英与大体型普通怪并存);强度先验读法改由意图徽标(§5.6)与甲档(§5.3)承担;②**§5.5 新增立绘源档高注记**(八敌 36–94 定档、主角 48 不变、显示 ×2 整数档;圣经 §8.2 v3.7 同批)+**钩爪恐魔「宽≥高」豁免登记**(58 高窄条束状剪影,待样张批终审)。
|
||||
- **v1.7(2026-09-28)人设旗脱钩批**(用户三拍板:①背包旗与棋盘封印色脱钩——封印色沿革〔旗朱 #C63D22→封印紫 2026-09-26→封印黑 2026-09-28〕仅作用于棋盘格封印旗,封印黑仅棋盘格,人设旗回归旗朱红 `#C63D22`;②旗形三角→矩形,以 normal/hit 定稿成图为基准;③兜帽=披肩式披于颈肩非垂背):§5.4 形象锚/背包旗条随批。
|
||||
- **v1.6(2026-09-25)甲档核对回填批**(圣经×关卡/世界观对齐扫描发现;用户拍板「按最新设定」:食人魔裸身、卓尔魔法甲符纹):§5.5 三行甲档回填 `enemy.tres` 数据实态(2026-09-18 甲重配批后未回填的过期账)——bugbear 魔法护甲→轻甲(粗陋皮条无甲板无符纹)、ogre_chief 重甲→轻甲(弃冷灰金属甲板,改甲面覆盖率≈0 的裸身皮条/骨饰)、drider 重甲→魔法护甲(加符纹饰带);§5.5 头注事实源措辞随改;提示词卡 v2.8 熊地精/食人魔/卓尔三卡随批。giant_spider/hook_horror 的几丁质天然甲壳纪律不变(不计甲档,§5.3)。同日封印术语批:§5.4 插旗条附「插旗动作呈现名 = 封印」注记(详见 art-bible v2.7)。
|
||||
- **v1.5(2026-09-23)配装修订批**(用户四拍板:①弃全蓝配色——蓝只保留在兜帽等明显处,上衣改暖米白、长裤改深棕工装,与掩尘棋盘协调;②兜帽不戴头上、取下披于肩上,露棕色短发与脸;③待机姿势改"铲插立地上、一手扶铲柄";④旗子加大到比头大、插在背包一侧,可被头部分遮挡):§5.4 形象锚/配色条/铲条/背包旗条/护目镜条随批;提示词卡 v2.6 三卡随批。线上 API 试生成渠道由用户自跑(本地 ComfyUI 通道同日停用)。
|
||||
- **v1.4(2026-09-23)肤色+定案批**(用户四拍板:①肤色**白皙**(fair skin,弃小麦色);②LoRA 触发词 `Pixel art style.` 加入——执行侧提示词卡 v2.5 全卡正向以触发词开头;③提灯腰挂定案不手持(备选撤销);④棋盘小人定案 = 主角人设图压缩至二头身的简化版像素小人,随人设派生、同款装备剪影):§5.4 形象锚/腰灯条/棋盘小人条随批。
|
||||
- **v1.3(2026-09-23)衣着细节批**(用户拍板:半指手套 + 卷裤脚皮护膝):§5.4 形象锚随批,新增衣着细节条(棕色半指手套/裤脚卷起+棕皮护膝,皮革木色族,不占剪影预算);提示词卡 v2.4 三卡随批。
|
||||
- **v1.2(2026-09-23)背包具形批 + 装备彩蛋池**(用户三拍板:①背包措辞与体量——弃"鼓胀掳获袋",改结构式帆布冒险背包(翻盖+皮扣带),宽 ≈1.5× 体宽两侧各露一点,正面参照合金弹头双主角大背包/奇诺比奥队长、反面禁特里式 3× 超宽;②头部饰品唯一化——护目镜推额前,头灯退役,灯改**小号铜色提灯挂腰间**(不点亮,备选另手持);③随身件=魔法道具形象候选池登记——铲/旗/背包/提灯四件,道具语义归魔法道具批):§5.4 形象锚/身份件条/三态①随批,新增护目镜与腰灯条、候选池条。
|
||||
- **v1.1(2026-09-23)掳获包裹批**(用户拍板:背旗改"背负大号鼓胀布包裹、旗杆插于包裹顶"——"地牢扫荡者满载而归"的角色化;包裹帆布暖卡其色+绳索捆扎):§5.4 形象锚/身份件条/三态①记账随批,旗朱三条纪律不变(破例组改按"包裹+旗"整组)。
|
||||
- **v1.0(2026-09-23)§5 抽离批 + 主角特征批**(用户两拍板:①人物设计自圣经 §5 抽离成独立文档、圣经留引用存根——人设高频改动免动圣经;②主角两特征改动——背后加扫雷联动旗帜、直剑换挖掘铲):§5.1–§5.3/§5.5/§5.6 自 art-bible v1.6 原文迁移(圣经内部节引用改注"圣经 §x"前缀,小节号不变);**§5.4 重写**——形象锚"直剑"改"圆头挖掘铲"(挖安全格动作语义角色化,攻击表现即挥铲),新增"旗朱背旗"(与棋盘插旗同物同色 `#C63D22`,主角唯一破对称件、旗面恒定画右、凹凸预算 +1),三态②"刀光"措辞改"铲击光效";新增生成顺序口径(先人设后状态图,侧背身状态卡按卡摘负向禁侧背条)与棋盘小人同旗开放项(归样张批)。执行侧 comfyui-prompts.md 主角三卡随批更新(v2.1)。
|
||||
- **v1.9(2026-10-06)主角描边例外条款批(审计报告待决项 B 用户拍板)**:§5.1 新增**主角描边例外**条——主角四态硬描边 = 深褐 `(40,19,13)` 显式例外(浅砖面对比更高/主角更突出),敌人维持暖白族;系描边不一致的定性完成(不一致源自早期生成素材,按用户口径以约束条款认可为有意设计,素材不改);样张批终审复核义务登记 06 待办。
|
||||
- **v1.8(2026-10-06)体量语义修订+立绘源档定档批(P0 完成讨论批;工作流程铁律 = 只动文档,代码实装另批走 PRD→迭代)**:①**§5.2 体量档位改「生物体型通道」**——原「强度先验·普通 < 精英 < Boss 单调递增」读法退役,依据 = 用户三体型约束(钩爪恐魔>灰矮人/灰矮人<熊地精/食人魔>熊地精,小体型精英与大体型普通怪并存);强度先验读法改由意图徽标(§5.6)与甲档(§5.3)承担;②**§5.5 新增立绘源档高注记**(八敌 36–94 定档、主角 48 不变、显示 ×2 整数档;圣经 §8.2 v3.7 同批)+**钩爪恐魔「宽≥高」豁免登记**(58 高窄条束状剪影,待样张批终审)。
|
||||
- **v1.7(2026-09-28)人设旗脱钩批**(用户三拍板:①背包旗与棋盘封印色脱钩——封印色沿革〔旗朱 #C63D22→封印紫 2026-09-26→封印黑 2026-09-28〕仅作用于棋盘格封印旗,封印黑仅棋盘格,人设旗回归旗朱红 `#C63D22`;②旗形三角→矩形,以 normal/hit 定稿成图为基准;③兜帽=披肩式披于颈肩非垂背):§5.4 形象锚/背包旗条顺带。
|
||||
- **v1.6(2026-09-25)甲档核对回填批**(圣经×关卡/世界观对齐扫描发现;用户拍板「按最新设定」:食人魔裸身、卓尔魔法甲符纹):§5.5 三行甲档回填 `enemy.tres` 数据实态(2026-09-18 甲重配批后未回填的过期账)——bugbear 魔法护甲→轻甲(粗陋皮条无甲板无符纹)、ogre_chief 重甲→轻甲(弃冷灰金属甲板,改甲面覆盖率≈0 的裸身皮条/骨饰)、drider 重甲→魔法护甲(加符纹饰带);§5.5 头注事实源措辞随改;提示词卡 v2.8 熊地精/食人魔/卓尔三卡顺带。giant_spider/hook_horror 的几丁质天然甲壳纪律不变(不计甲档,§5.3)。同日封印术语批:§5.4 插旗条附「插旗动作呈现名 = 封印」注记(详见 art-bible v2.7)。
|
||||
- **v1.5(2026-09-23)配装修订批**(用户四拍板:①弃全蓝配色——蓝只保留在兜帽等明显处,上衣改暖米白、长裤改深棕工装,与掩尘棋盘协调;②兜帽不戴头上、取下披于肩上,露棕色短发与脸;③待机姿势改"铲插立地上、一手扶铲柄";④旗子加大到比头大、插在背包一侧,可被头部分遮挡):§5.4 形象锚/配色条/铲条/背包旗条/护目镜条顺带;提示词卡 v2.6 三卡顺带。线上 API 试生成渠道由用户自跑(本地 ComfyUI 通道同日停用)。
|
||||
- **v1.4(2026-09-23)肤色+定案批**(用户四拍板:①肤色**白皙**(fair skin,弃小麦色);②LoRA 触发词 `Pixel art style.` 加入——执行侧提示词卡 v2.5 全卡正向以触发词开头;③提灯腰挂定案不手持(备选撤销);④棋盘小人定案 = 主角人设图压缩至二头身的简化版像素小人,随人设派生、同款装备剪影):§5.4 形象锚/腰灯条/棋盘小人条顺带。
|
||||
- **v1.3(2026-09-23)衣着细节批**(用户拍板:半指手套 + 卷裤脚皮护膝):§5.4 形象锚顺带,新增衣着细节条(棕色半指手套/裤脚卷起+棕皮护膝,皮革木色族,不占剪影预算);提示词卡 v2.4 三卡顺带。
|
||||
- **v1.2(2026-09-23)背包具形批 + 装备彩蛋池**(用户三拍板:①背包措辞与体量——弃"鼓胀掳获袋",改结构式帆布冒险背包(翻盖+皮扣带),宽 ≈1.5× 体宽两侧各露一点,正面参照合金弹头双主角大背包/奇诺比奥队长、反面禁特里式 3× 超宽;②头部饰品唯一化——护目镜推额前,头灯退役,灯改**小号铜色提灯挂腰间**(不点亮,备选另手持);③随身件=魔法道具形象候选池登记——铲/旗/背包/提灯四件,道具语义归魔法道具批):§5.4 形象锚/身份件条/三态①顺带,新增护目镜与腰灯条、候选池条。
|
||||
- **v1.1(2026-09-23)掳获包裹批**(用户拍板:背旗改"背负大号鼓胀布包裹、旗杆插于包裹顶"——"地牢扫荡者满载而归"的角色化;包裹帆布暖卡其色+绳索捆扎):§5.4 形象锚/身份件条/三态①记账顺带,旗朱三条纪律不变(破例组改按"包裹+旗"整组)。
|
||||
- **v1.0(2026-09-23)§5 抽离批 + 主角特征批**(用户两拍板:①人物设计自圣经 §5 抽离成独立文档、圣经留引用存根——人设高频改动免动圣经;②主角两特征改动——背后加扫雷联动旗帜、直剑换挖掘铲):§5.1–§5.3/§5.5/§5.6 自 art-bible v1.6 原文迁移(圣经内部节引用改注"圣经 §x"前缀,小节号不变);**§5.4 重写**——形象锚"直剑"改"圆头挖掘铲"(挖安全格动作语义角色化,攻击表现即挥铲),新增"旗朱背旗"(与棋盘插旗同物同色 `#C63D22`,主角唯一破对称件、旗面恒定画右、凹凸预算 +1),三态②"刀光"措辞改"铲击光效";新增生成顺序口径(先人设后状态图,侧背身状态卡按卡摘负向禁侧背条)与棋盘小人同旗开放项(归样张批)。执行侧 comfyui-prompts.md 主角三卡顺带更新(v2.1)。
|
||||
@@ -259,7 +259,7 @@ Pixel art style. true pixel art game sprite drawn on a tiny 48x72 pixel canvas,
|
||||
**对话式生图控制纪律(2026-09-25/26 实证)**:
|
||||
1. 同对话续写=对上一张图的**编辑模式**——变体必须各开新对话;同一对话里"same as X but ..."会被当成对最近一张的增量编辑。
|
||||
2. 英文 prompt 服从度明显高于中文(Gemini/Nano Banana 语料结构使然),提示词一律英文。
|
||||
3. **地形瓦片出图制式 = 拼表制正主(2026-10-06 用户拍板,操作单见 remote-gen-prompts §3)**——一张整图容纳全部瓦片变体,后处理裁切取用:风格统一、一张管住全族。画框风险的缓解 = ①出图贴程序占位样图作参考(模型有具体锚定就不乱画框)②裁切时每格内缩 2–3% 切掉边框③统一降采样(结构归程序)。**分张(一张一跑)降为回退路径**:仅当拼表连续画框失败时改用。〔实证教训保留:2026-09-25/26 裸拼表(无参考图)必诱画框——教训归因于缺参考锚定,非拼表制本身〕
|
||||
3. **地形瓦片出图制式 = 拼表制主选(2026-10-06 用户拍板,操作单见 remote-gen-prompts §3)**——一张整图容纳全部瓦片变体,后处理裁切取用:风格统一、一张管住全族。画框风险的缓解 = ①出图贴程序占位样图作参考(模型有具体锚定就不乱画框)②裁切时每格内缩 2–3% 切掉边框③统一降采样(结构归程序)。**分张(一张一跑)降为回退路径**:仅当拼表连续画框失败时改用。〔实证教训保留:2026-09-25/26 裸拼表(无参考图)必诱画框——教训归因于缺参考锚定,非拼表制本身〕
|
||||
4. 差异特征写第一句并给否定约束(如碎石斑变体须写明 `no cracks, no dark lines`);尺寸不写死(模型自定,原图越大裁切余量越足,后处理统一降采样)。
|
||||
|
||||
**①墙顶基面(无缝岩石)**:
|
||||
@@ -292,19 +292,19 @@ Seamless tileable pixel art texture of dry dirt ground, top-down, for a dungeon
|
||||
|
||||
## 版本历史
|
||||
|
||||
- **v3.1(2026-10-06)渠道定位+拼表制正主批(用户拍板)**:①**渠道定位更正——远程对话式生图为主、本地 ComfyUI 为备选**(v2.7「彻底关闭」为当时口径,现行更正为备选;§0 使用流程随改);②**§4bis 纪律 3 改制**——地形瓦片出图 = 拼表制正主(三步流程:程序占位样图参考 → 整图生成 → 裁切+统一降采样;操作单 remote-gen-prompts §3),分张降为回退路径(裸拼表画框实证教训归因于缺参考锚定,非拼表制本身);③与 remote-gen-prompts 分工写明:本文件 = 词库正文、remote-gen = 对话操作单,正文不双处维护。
|
||||
- **v3.0(2026-10-06)地形色值对齐批(审计 P1-1,用户拍板色值正主 = 圣经 §4.1)**:§4bis 四张地形卡色值漂移修正——岩石系 `#8B755B`→**`#C9AF83`(掩尘/未开格)**、地面系 `#564232`→**`#B39A78`(裸土/已开格)**;remote-gen-prompts.md 2×2 拼图卡同批对齐。提示词侧色值自此以圣经 §4.1 为唯一正主。
|
||||
- **v3.1(2026-10-06)渠道定位+拼表制主选批(用户拍板)**:①**渠道定位更正——远程对话式生图为主、本地 ComfyUI 为备选**(v2.7「彻底关闭」为当时口径,现行更正为备选;§0 使用流程随改);②**§4bis 纪律 3 改制**——地形瓦片出图 = 拼表制主选(三步流程:程序占位样图参考 → 整图生成 → 裁切+统一降采样;操作单 remote-gen-prompts §3),分张降为回退路径(裸拼表画框实证教训归因于缺参考锚定,非拼表制本身);③与 remote-gen-prompts 分工写明:本文件 = 词库正文、remote-gen = 对话操作单,正文不双处维护。
|
||||
- **v3.0(2026-10-06)地形色值对齐批(审计 P1-1,用户拍板色值现行事实源 = 圣经 §4.1)**:§4bis 四张地形卡色值漂移修正——岩石系 `#8B755B`→**`#C9AF83`(掩尘/未开格)**、地面系 `#564232`→**`#B39A78`(裸土/已开格)**;remote-gen-prompts.md 2×2 拼图卡同批对齐。提示词侧色值自此以圣经 §4.1 为唯一事实源。
|
||||
|
||||
- **v2.9(2026-09-26)地形填充纹理节批**(高墙批收官,用户拍板):新增 §4bis——地形类首张卡(墙顶基面/裂纹/碎石斑/地面四张自包含英文卡)+对话式生图控制纪律四条(编辑模式/英文优先/分张跑/否定约束);分工纪律转写 art-bible §8.5「生产分工」(模型只出无缝填充纹理,结构件程序化)。
|
||||
|
||||
- **v2.8(2026-09-25)敌种甲档回填批**(圣经×关卡/世界观对齐扫描发现,规格上游 character-design.md v1.6 同批;用户拍板「按最新设定」):三卡随 `enemy.tres` 甲档实态修订——①熊地精 3.2 两版(A/B)正向:魔法甲「暖白符纹饰带」措辞退役,改轻甲「粗陋皮条+裸蓬毛无甲板」;②食人魔酋长 3.3:标题重甲→轻甲,正向「冷灰金属肩胸甲板」改「皮条骨饰+裸厚皮无甲板」,规格注随改;③蛛化卓尔精灵 3.5:标题重甲→魔法护甲,正向加「卓尔上体暖白秘法符纹饰带」(蛛腹几丁质保留、属天然甲壳),规格注随改。duergar/duergar_king 重甲卡与数据一致不动。
|
||||
|
||||
- **v2.7(2026-09-23)真像素硬化 + 本地通道清退批**(用户拍板:本地 ComfyUI 生图路线彻底关闭,生图一律线上 API 自跑;gg1 风格诊断后硬化方案随批写入):①全部 13 张正向卡触发词后插入真像素约束段——`true pixel art game sprite / tiny 48x72 pixel canvas / chunky square pixels / strict pixel grid alignment / hard edges / no anti-aliasing / no gradients / limited 16-color palette / aseprite style`;②各卡负向底座并入平滑系禁词——`smooth lines / anti-aliasing / gradient shading / painterly / glossy / high detail / vector illustration`;③§0「现行管线」句(Z-Image-Turbo GGUF + 像素 LoRA + 母版工作流 `art-t2i-master.json`,成因见 v2.1/v2.5)改写为线上 API 口径,自然语言类模型改写指引随批;④「ComfyUI 通道」措辞改「生图通道」(文件名沿用不改)。同日 repo 侧清退:`production/comfy/` 已删、comfy-mcp 注册已移除。
|
||||
- **v2.7(2026-09-23)真像素硬化 + 本地通道清退批**(用户拍板:本地 ComfyUI 生图路线彻底关闭,生图一律线上 API 自跑;gg1 风格诊断后硬化方案顺带写入):①全部 13 张正向卡触发词后插入真像素约束段——`true pixel art game sprite / tiny 48x72 pixel canvas / chunky square pixels / strict pixel grid alignment / hard edges / no anti-aliasing / no gradients / limited 16-color palette / aseprite style`;②各卡负向底座并入平滑系禁词——`smooth lines / anti-aliasing / gradient shading / painterly / glossy / high detail / vector illustration`;③§0「现行管线」句(Z-Image-Turbo GGUF + 像素 LoRA + 母版工作流 `art-t2i-master.json`,成因见 v2.1/v2.5)改写为线上 API 口径,自然语言类模型改写指引顺带;④「ComfyUI 通道」措辞改「生图通道」(文件名沿用不改)。同日 repo 侧清退:`production/comfy/` 已删、comfy-mcp 注册已移除。
|
||||
- **v2.6(2026-09-23)配装修订批**(用户四拍板:①弃全蓝——蓝只在兜帽,上衣暖米白、长裤深棕工装,与掩尘棋盘协调;②兜帽取下披肩、露棕色短发;③待机姿势改"铲插地+扶柄";④旗加大到比头大、插背包一侧、可被头部分遮挡):主角三卡正向提示词整体重写(形象锚措辞随改,2.2"斗篷飘动"改"兜帽布料飘动");线上 API 试生成由用户自跑,规格上游 character-design.md 同批升 v1.5。
|
||||
- **v2.5(2026-09-23)触发词+肤色批**(用户三拍板:①LoRA 触发词 `Pixel art style.` **加入**——全部正向提示词(主角三卡+八敌种各卡)一律以触发词开头;②肤色改**白皙**(fair skin,弃小麦色),主角三卡随改;③提灯腰挂定案、棋盘小人定案归 character-design.md 同批 v1.4):§0 模型适配注由"待拍板"改"已加入";版本历史承接 v2.4。
|
||||
- **v2.4(2026-09-23)衣着细节批**(用户拍板:半指手套 + 卷裤脚皮护膝):主角三卡正向提示词随批插入 `brown fingerless gloves` 与 `leather knee pads with trouser legs rolled up above them`(皮革族小件,不占剪影预算);§2 形象锚随改;规格上游 character-design.md §5.4 同批升 v1.3。
|
||||
- **v2.3(2026-09-23)背包具形批 + 装备彩蛋池**(用户三拍板:①背包措辞与体量——弃"鼓胀掳获袋"改结构式帆布冒险背包,宽 ≈1.5× 体宽,正面参照合金弹头双主角大背包/奇诺比奥队长、反面禁特里式 3× 超宽;②护目镜推额前、头灯退役、灯改小号铜色提灯挂腰间(不点亮);③随身件=魔法道具形象候选池——铲/旗/背包/提灯,道具语义归魔法道具批):主角三卡正向提示词随批更新(背包短语+护目镜+腰灯);§2 形象锚随改;规格上游 character-design.md §5.4 同批升 v1.2。
|
||||
- **v2.2(2026-09-23)掳获包裹批**(用户拍板:背旗改"背负大号鼓胀布包裹、旗杆插于包裹顶"——"地牢扫荡者满载而归"的角色化):主角三卡正向提示词随批更新(包裹短语 `large bulging tan canvas loot sack tied with rope on his back` + 旗改插于包裹顶);§2 形象锚随改(包裹、旗与铲三态恒在);规格上游 character-design.md §5.4 同批升 v1.1。
|
||||
- **v2.1(2026-09-23)主角特征批**(用户两拍板:直剑→圆头挖掘铲——挖安全格动作语义角色化,攻击表现即挥铲;背后加旗朱三角旗——与棋盘插旗同物同色 `#C63D22`):主角三卡正向提示词随批更新(铲+背旗短语,三态同旗同形象,背旗为主角唯一破对称件);§2 形象锚与 2.1/2.2 规格措辞随改(2.2"刀光"改"铲击光效");规格上游改指 character-design.md §5.4(人物设计自圣经 §5 抽离成独立文档,圣经 §5 为存根);§0 模型适配注补现行管线(Z-Image-Turbo GGUF + 像素 LoRA 已挂母版工作流,触发词 `Pixel art style.` 入正向待拍板)。
|
||||
- **v2.0(2026-09-22)重生成批**(用户拍板正序:美术圣经 §5 角色设计落地(v1.6)后重写本卡;v1.0 于同日经裁决移除,台账 125):六敌种→**八敌种**(新增灰矮人/钩爪恐魔/灰矮人石君王三卡);**逐资产提示词改自包含完整串**(正向底座+主体+动作拼妥、负向底座+增补并妥,整段可直贴,零拼装);主角蓝族随 art-bible v1.1 换装(`#2E86DE`,同族候选 `#5FA8E8`/`#1C5CA4`);护甲视觉短语按 §5.3 注入各卡(轻甲无甲板/魔法护甲暖白符纹/重甲冷灰甲板,天然甲壳不计甲档);bugbear 主体由「高瘦」改「敦实圆肩」守 §5.1 普通怪宽≥高;兄弟精备选配色弃冷蓝灰(蓝族禁入敌方)改灰褐战纹;验收速查五关→六关(增甲档);引用基线改 art-assets-checklist 单清单(asset-checklist 已随合并批删除)。
|
||||
- **v2.4(2026-09-23)衣着细节批**(用户拍板:半指手套 + 卷裤脚皮护膝):主角三卡正向提示词顺带插入 `brown fingerless gloves` 与 `leather knee pads with trouser legs rolled up above them`(皮革族小件,不占剪影预算);§2 形象锚随改;规格上游 character-design.md §5.4 同批升 v1.3。
|
||||
- **v2.3(2026-09-23)背包具形批 + 装备彩蛋池**(用户三拍板:①背包措辞与体量——弃"鼓胀掳获袋"改结构式帆布冒险背包,宽 ≈1.5× 体宽,正面参照合金弹头双主角大背包/奇诺比奥队长、反面禁特里式 3× 超宽;②护目镜推额前、头灯退役、灯改小号铜色提灯挂腰间(不点亮);③随身件=魔法道具形象候选池——铲/旗/背包/提灯,道具语义归魔法道具批):主角三卡正向提示词顺带更新(背包短语+护目镜+腰灯);§2 形象锚随改;规格上游 character-design.md §5.4 同批升 v1.2。
|
||||
- **v2.2(2026-09-23)掳获包裹批**(用户拍板:背旗改"背负大号鼓胀布包裹、旗杆插于包裹顶"——"地牢扫荡者满载而归"的角色化):主角三卡正向提示词顺带更新(包裹短语 `large bulging tan canvas loot sack tied with rope on his back` + 旗改插于包裹顶);§2 形象锚随改(包裹、旗与铲三态恒在);规格上游 character-design.md §5.4 同批升 v1.1。
|
||||
- **v2.1(2026-09-23)主角特征批**(用户两拍板:直剑→圆头挖掘铲——挖安全格动作语义角色化,攻击表现即挥铲;背后加旗朱三角旗——与棋盘插旗同物同色 `#C63D22`):主角三卡正向提示词顺带更新(铲+背旗短语,三态同旗同形象,背旗为主角唯一破对称件);§2 形象锚与 2.1/2.2 规格措辞随改(2.2"刀光"改"铲击光效");规格上游改指 character-design.md §5.4(人物设计自圣经 §5 抽离成独立文档,圣经 §5 为存根);§0 模型适配注补现行管线(Z-Image-Turbo GGUF + 像素 LoRA 已挂母版工作流,触发词 `Pixel art style.` 入正向待拍板)。
|
||||
- **v2.0(2026-09-22)重生成批**(用户拍板正序:美术圣经 §5 角色设计落地(v1.6)后重写本卡;v1.0 于同日经裁决移除,状态记录 125):六敌种→**八敌种**(新增灰矮人/钩爪恐魔/灰矮人石君王三卡);**逐资产提示词改自包含完整串**(正向底座+主体+动作拼妥、负向底座+增补并妥,整段可直贴,零拼装);主角蓝族随 art-bible v1.1 换装(`#2E86DE`,同族候选 `#5FA8E8`/`#1C5CA4`);护甲视觉短语按 §5.3 注入各卡(轻甲无甲板/魔法护甲暖白符纹/重甲冷灰甲板,天然甲壳不计甲档);bugbear 主体由「高瘦」改「敦实圆肩」守 §5.1 普通怪宽≥高;兄弟精备选配色弃冷蓝灰(蓝族禁入敌方)改灰褐战纹;验收速查五关→六关(增甲档);引用基线改 art-assets-checklist 单清单(asset-checklist 已随合并批删除)。
|
||||
- v1.0(2026-09-20):首版。主角三态 + 六敌种提示词卡成文;兄弟精改荐脚本换色通道;候选入库/后处理/转正五步流程成文。(2026-09-22 移除,本版为重生成。)
|
||||
@@ -78,10 +78,10 @@ Pixel art style. true pixel art game sprite drawn on a tiny 48x72 pixel canvas,
|
||||
|
||||
## 3. 瓦片纹理
|
||||
|
||||
**制式 = 拼表制正主(2026-10-06 用户拍板)——三步流程**:
|
||||
**制式 = 拼表制主选(2026-10-06 用户拍板)——三步流程**:
|
||||
1. **程序占位出样图**:现行程序化格面(占位在役)截一张作参考样图;
|
||||
2. **整图生成**:开新对话,贴样图 + 发下方整段,一张 2×2 出全部瓦片变体(风格统一、一张管全族);
|
||||
3. **裁切取用**:按 50% 坐标切图、每格内缩 2–3% 切掉可能的边框 → 统一降采样 → 成片瓦片 21 枚由程序从切出的材质合成(词表:design/research/board-tile-vocab-plan-a-2026-09-26.md)。
|
||||
3. **裁切取用**:按 50% 坐标切图、每格内缩 2–3% 切掉可能的边框 → 统一降采样 → 成片瓦片 21 枚由程序从切出的材质合成(词表:高墙瓦片词表(已落码 board_world.gd 查表,文件已退役))。
|
||||
|
||||
```
|
||||
Seamless tileable pixel art texture sheet for a dungeon board game, arranged as a clean 2x2 grid of four equal square quadrants filling the entire image edge to edge, with no gaps, no dividing lines, no borders, no frames, no grid lines, no labels and no text. Top-left quadrant: warm tan rock surface with subtle darker seams between stone patches and small lighter facets. Top-right quadrant: the same warm tan rock surface but with a few thin darker crack lines scattered across it. Bottom-left quadrant: the same warm tan rock surface but with a few tiny lighter stone speckles sparsely scattered. Bottom-right quadrant: dry dirt ground in a dark warm brown palette around #B39A78, clearly darker than the tan rock, with a few thin cracks and tiny pebble speckles, sparse. Every quadrant is a flat 2D top-down texture — not an object, no perspective — and each quadrant must wrap seamlessly at its own four edges. Uniform directionless lighting across all four quadrants, no vignette, no cast shadow, no bevel, no edge highlight anywhere. Warm tan-brown palette around #C9AF83 for the three rock quadrants. Clean retro pixel art look, limited palette, no gradients, no text, square image.
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>视觉与美术审计 - 2026-10-14</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg: #f8f9fb; --fg: #1c2128; --muted: #5c6675; --border: #d9dee5;
|
||||
--card: #ffffff; --card-hd: #f1f3f6; --th-bg: #eef1f5; --stripe: #f6f8fa;
|
||||
--warn-fg: #92400e; --warn-bg: #fffbeb; --warn-bd: #f59e0b;
|
||||
--danger-fg: #991b1b; --danger-bg: #fef2f2; --danger-bd: #ef4444;
|
||||
--info-fg: #1e40af; --info-bg: #eff6ff; --info-bd: #3b82f6;
|
||||
--seg-done: #10b981; --seg-hold: #f59e0b; --seg-none: #9ca3af;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--bg: #14181e; --fg: #e6e9ee; --muted: #9aa4b2; --border: #2c3440;
|
||||
--card: #1b2029; --card-hd: #222935; --th-bg: #20262f; --stripe: rgba(255,255,255,.03);
|
||||
--warn-fg: #fbbf24; --warn-bg: rgba(245,158,11,.10); --warn-bd: #d97706;
|
||||
--danger-fg: #f87171; --danger-bg: rgba(239,68,68,.10); --danger-bd: #dc2626;
|
||||
--info-fg: #93c5fd; --info-bg: rgba(59,130,246,.10); --info-bd: #2563eb;
|
||||
--seg-done: #34d399; --seg-hold: #fbbf24; --seg-none: #6b7280;
|
||||
}
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
body {
|
||||
margin: 0; background: var(--bg); color: var(--fg);
|
||||
font-family: "Segoe UI", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
|
||||
line-height: 1.75; font-size: 16px;
|
||||
}
|
||||
main { max-width: 1040px; margin: 0 auto; padding: 40px 22px 60px; }
|
||||
.stack { display: flex; flex-direction: column; gap: 24px; }
|
||||
.stack-8 { display: flex; flex-direction: column; gap: 8px; }
|
||||
.stack-10 { display: flex; flex-direction: column; gap: 10px; }
|
||||
h1 { font-size: 1.7rem; margin: 0; }
|
||||
h2 { font-size: 1.28rem; margin: 0; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
|
||||
h3 { font-size: 1.08rem; margin: 0; }
|
||||
p { margin: 0; }
|
||||
.secondary { color: var(--muted); }
|
||||
.small { font-size: .88rem; color: var(--muted); }
|
||||
code { background: var(--card-hd); border: 1px solid var(--border); border-radius: 4px; padding: 0 5px; font-size: .9em; }
|
||||
hr.divider { border: 0; border-top: 1px solid var(--border); margin: 4px 0; }
|
||||
|
||||
.callout { border: 1px solid var(--border); border-left: 4px solid var(--muted); border-radius: 8px; padding: 14px 18px; }
|
||||
.callout .title { font-weight: 700; margin-bottom: 6px; }
|
||||
.callout.warning { background: var(--warn-bg); border-color: var(--warn-bd); color: var(--warn-fg); }
|
||||
.callout.info { background: var(--info-bg); border-color: var(--info-bd); color: var(--info-fg); }
|
||||
|
||||
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
|
||||
.stat { border: 1px solid var(--border); border-radius: 8px; padding: 12px 16px; background: var(--card); }
|
||||
.stat .value { font-size: 1.45rem; font-weight: 700; }
|
||||
.stat .label { color: var(--muted); font-size: .9rem; }
|
||||
.stat.tone-warning .value { color: var(--warn-fg); }
|
||||
.stat.tone-danger .value { color: var(--danger-fg); }
|
||||
|
||||
.usage-top { display: flex; justify-content: space-between; font-size: .88rem; color: var(--muted); margin-bottom: 6px; }
|
||||
.bar { display: flex; height: 14px; border-radius: 7px; overflow: hidden; background: var(--border); }
|
||||
.bar .seg-done { width: 26.67%; background: var(--seg-done); }
|
||||
.bar .seg-hold { width: 53.33%; background: var(--seg-hold); }
|
||||
.bar .seg-none { width: 20%; background: var(--seg-none); }
|
||||
|
||||
.cards2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
|
||||
.card { border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: var(--card); }
|
||||
.card .hd { font-weight: 700; padding: 10px 16px; border-bottom: 1px solid var(--border); background: var(--card-hd); }
|
||||
.card .bd { padding: 12px 16px; }
|
||||
|
||||
table { width: 100%; border-collapse: collapse; font-size: .95rem; }
|
||||
th, td { border: 1px solid var(--border); padding: 9px 12px; text-align: left; vertical-align: top; }
|
||||
thead th { background: var(--th-bg); font-weight: 700; white-space: nowrap; }
|
||||
tbody tr:nth-child(even) { background: var(--stripe); }
|
||||
tr.tone-warning td:first-child { box-shadow: inset 4px 0 0 var(--warn-bd); }
|
||||
tr.tone-danger td:first-child { box-shadow: inset 4px 0 0 var(--danger-bd); }
|
||||
tr.tone-info td:first-child { box-shadow: inset 4px 0 0 var(--info-bd); }
|
||||
|
||||
footer { max-width: 1040px; margin: 0 auto; padding: 0 22px 40px; font-size: .82rem; color: var(--muted); }
|
||||
@media (max-width: 760px) {
|
||||
.stats { grid-template-columns: 1fr 1fr; }
|
||||
.cards2 { grid-template-columns: 1fr; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main class="stack">
|
||||
|
||||
<div class="stack-8">
|
||||
<h1>视觉与美术审计</h1>
|
||||
<p class="secondary">对照现行美术圣经、素材状态清单、实机入包图与已登记待办。日期 2026-10-14。未跑游戏测试,结论来自静态读图与文档。</p>
|
||||
</div>
|
||||
|
||||
<div class="callout warning">
|
||||
<div class="title">总判</div>
|
||||
<p>丑的主因不是「没有风格」,而是「圣经写的是手绘明快像素地牢,实机交付的是 AI 降采样角色 + 平涂 UI 皮 + 高噪棋盘」。立绘已裁为精细手绘像素(不是插画、不是两者折中)。参考游戏只取像素绘制语言,不取对方的砖、怪、色板当素材。整屏方向稿与地面 / 立绘密度同批锁。</p>
|
||||
</div>
|
||||
|
||||
<div class="stats">
|
||||
<div class="stat"><div class="value">4 / 15</div><div class="label">素材已交付</div></div>
|
||||
<div class="stat tone-warning"><div class="value">8 / 15</div><div class="label">占位在役</div></div>
|
||||
<div class="stat tone-danger"><div class="value">3 / 15</div><div class="label">未开始</div></div>
|
||||
<div class="stat tone-warning"><div class="value">已冻格 / 未冻屏</div><div class="label">样张闸</div></div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="usage-top"><span>十五件看板资产</span><span>已交付 4 · 占位 8 · 未开始 3</span></div>
|
||||
<div class="bar"><div class="seg-done"></div><div class="seg-hold"></div><div class="seg-none"></div></div>
|
||||
<p class="small" style="margin-top:8px">来源:美术素材状态清单 2026-10-06 对账。已交付 = 格子样张、主角三态、八敌站桩、状态图标。未开始 = 战斗一屏样张、连锁坍塌、封印特效。</p>
|
||||
</div>
|
||||
|
||||
<h2>四条根因</h2>
|
||||
<div class="cards2">
|
||||
<div class="card">
|
||||
<div class="hd">1. 生产方法与风格目标拧着</div>
|
||||
<div class="bd"><p>现行角色是 ComfyUI 出图再块降采样,边缘脏、明暗糊成一团;主角棋盘小人还是插值糊图。用户要的是精细手绘像素:放大能数清像素簇,但脸和装备认得出。不是插画、也不是「半像素半高清」。</p></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="hd">2. 第二 / 三关地板在跟数字抢读</div>
|
||||
<div class="bd"><p>第一关地面是均匀暖石噪,还能直画亮墨。幽暗与矿城地面是近黑斑加亮筋的双峰纹理——圣经自己写过「任何墨族直画不可救」,才上了色牌垫底。色牌能过对比机检,过不了「盯十分钟不累」。这是素材轴问题,不是再叠一层 UI。</p></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="hd">3. UI 皮太薄,半拟物没穿上戏服</div>
|
||||
<div class="bd"><p>圣经要「容器穿石木戏服、数据素面」。实装是 48×48 米色点边面板、几乎同款按钮、空心仪式框。铺大之后接缝可见,全屏同一材质,标题又只有单字重——结果既不像物件,也不像干净 HUD。</p></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="hd">4. 屏级没有北向图</div>
|
||||
<div class="bd"><p>格子样张冻过砖,战斗 / 菜单 / 营地整屏样张没出。占位条款写着不得跨里程碑,看板却把战斗一屏样张标成未开始。没有目标图,迭代只能修局部瑕疵(按钮五态、光柱、邻近采样),修不成气质。</p></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>逐项对照</h2>
|
||||
<table>
|
||||
<thead><tr><th>面</th><th>性质</th><th>现状(实机)</th><th>建议</th></tr></thead>
|
||||
<tbody>
|
||||
<tr class="tone-warning"><td>立绘与棋盘小人</td><td>已裁:精细手绘像素</td><td>现行是 AI 降采样的假像素,颗粒过粗且糊</td><td>仍是像素风:手绘像素簇 + 更高源密度;不是插画、也不是 HD-2D</td></tr>
|
||||
<tr class="tone-danger"><td>第二 / 三关棋盘</td><td>可读性</td><td>地板纹理双峰:近黑斑 + 近白筋,数字怎么换墨都累</td><td>重出幽暗 / 矿城地面:降局部对比,禁双峰</td></tr>
|
||||
<tr class="tone-warning"><td>UI 石皮九宫格</td><td>观感廉价</td><td>48×48 近乎平涂,铺到四百像素宽必出接缝</td><td>重出 96 或 128 源 + 对齐切片;先修仪式框与石板面板</td></tr>
|
||||
<tr class="tone-info"><td>战斗舞台背景</td><td>占位</td><td>平色 + 光柱,圣经已写 stage_bg.png 仍未产</td><td>一张 1280×270 地窟看台插画,三关只换色</td></tr>
|
||||
<tr class="tone-info"><td>营地柜台</td><td>占位</td><td>程序化木石块,与「全作最暖的营地」差一整档</td><td>贴图重构:烛光黄 × 木色,CC0 改色即可起步</td></tr>
|
||||
<tr class="tone-info"><td>字体层级</td><td>规格未兑现</td><td>全局单字重 Fusion Pixel,标题压不住正文</td><td>补第二字重,或标题用拉丁像素字专件</td></tr>
|
||||
<tr><td>格面徽章 / 意图 / 封印特效</td><td>占位</td><td>十九枚奖励徽、意图姿态、封印特效仍是符号或空</td><td>徽章与封印旗优先;意图先做蓄力一态即可</td></tr>
|
||||
<tr class="tone-warning"><td>整屏样张闸</td><td>缺尺子</td><td>格子样张已冻,战斗一屏样张未开工</td><td>先出战斗 / 营地 / 菜单方向稿,再动终稿资产</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="small">已做过、不再当新债:全局邻近采样、按钮五态、标题屏光柱过渡、商店居中、营地四栏等高、诊断钮移出玩家画面、八敌显示体型分档。</p>
|
||||
|
||||
<h2>建议施工顺序</h2>
|
||||
<p>先锁方向和尺子,再动会改变「第一眼」的三件终稿,最后才铺图标与演出。不要平行开动画大工程。</p>
|
||||
|
||||
<h3>第一刀 · 两周内能改观感</h3>
|
||||
<table>
|
||||
<thead><tr><th>项</th><th>做什么</th><th>验收</th></tr></thead>
|
||||
<tbody>
|
||||
<tr class="tone-danger"><td>立绘口径(已裁)</td><td>精细手绘像素:邻近采样、可数的像素簇、限色;源密度高于现行 36–48 档;禁 AI 降采样当终稿</td><td>写入角色设计 + 圣经 §8.2;终值随整屏方向稿冻结</td></tr>
|
||||
<tr class="tone-warning"><td>战斗整屏方向稿(含地面)</td><td>一张静帧同时锁:站桩密度、三关地面、舞台、C 区、棋盘数字。地面与立绘不拆批</td><td>目检过气质再机检对比;这张图成为后续一切素材的北向</td></tr>
|
||||
<tr class="tone-danger"><td>UI 九宫格升源</td><td>panel / border / button 出 96 或 128 带真实石纹与圆角结构的切片</td><td>四百像素宽面板无错位小方块;按钮按压是结构下沉不是换一张平涂</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>第二刀 · 把占位换成物件</h3>
|
||||
<table>
|
||||
<thead><tr><th>项</th><th>做什么</th><th>渠道</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>舞台背景</td><td>一张 1280×270 地窟看台,三关 tint 换皮</td><td>插画一张即可</td></tr>
|
||||
<tr><td>营地柜台</td><td>木石柜台 + 钥石 / 三柜台图标终稿</td><td>CC0 改色过复用闸优先</td></tr>
|
||||
<tr><td>标题字重</td><td>第二字重或拉丁像素字专件</td><td>开源字体,不新生图</td></tr>
|
||||
<tr><td>奖励徽章十九枚</td><td>金满框 / 红缺框双通道小图标</td><td>脚本或手绘,勿再纯文字徽</td></tr>
|
||||
<tr><td>主角棋盘小人</td><td>从定稿立绘派生 32 源,邻近缩放,禁插值糊图</td><td>派生管线,已有审计旧账</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>第三刀 · 可晚、不要用它救丑</h3>
|
||||
<p>站桩帧动画、连锁坍塌、意图三档表演、提灯点亮,都是锦上添花。静止形象难看时,补帧只会让同一张糊图在动。动画维持 Alpha 定版前完成即可,不插队。</p>
|
||||
|
||||
<hr class="divider">
|
||||
|
||||
<h2>圣经本身建议动的三处</h2>
|
||||
<div class="stack-10">
|
||||
<p>风格宣言「明快的地牢,轻快的扫荡,仔细的推理」可以保留。要改的是会把成品往脏、累、平里推的执行条款。</p>
|
||||
<p>一,角色允许双分辨率:棋盘与砖面严守像素整数倍;B 区站桩允许较高清插画或更高像素源。这与「高定宽随」兼容,也能结束「改回高清」和「像素风已定档」的假对立。</p>
|
||||
<p>二,第二 / 三关「更深更险」改走色相与材质,不走地板内部的黑白双峰。明度分层已经允许空间更暗,但暗要均匀,不能在格子里打斑马纹。</p>
|
||||
<p>三,口号型条款(约一半正文)先不要扩写新禁令。色相禁入带、蓝只说己方、红只说危险,对信息游戏有用;再加禁令只会让 UI 更褐、更平。缺的是整屏样张,不是新规则。</p>
|
||||
</div>
|
||||
|
||||
<h2>明确不要做的</h2>
|
||||
<div class="cards2">
|
||||
<div class="card">
|
||||
<div class="hd">会浪费一轮的</div>
|
||||
<div class="bd"><p>先改战斗三区几何;先上满屏粒子;继续用同一套 AI 图再降一次采样当「升档」;把第二 / 三关问题当成叠暗角或换数字颜色就能解决。</p></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="hd">已经做过的</div>
|
||||
<div class="bd"><p>邻近采样、按钮悬停 / 焦点、光柱软边、商店与营地留白、八敌体型分档、第一关高墙砖结构。这些该留,不是丑的主因。</p></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="callout info">
|
||||
<div class="title">参考池纠偏(待落圣经)</div>
|
||||
<p>Moonlighter / Peglin 只作像素画风示例,不规定暖砖、胖怪、洞穴色。Into the Breach 的「信息画在格子上」是玩法呈现,与「抄它的地块贴图」要拆开——后者是否同样降级,待用户确认。</p>
|
||||
</div>
|
||||
|
||||
<p class="small">实机抽查过的入包图:主角立绘与棋盘待机、地精 / 熊地精 / 蛛化卓尔、三关地面各一、石板面板 / 石砖按钮 / 仪式框、锻造图标、攻击状态图标。冻结样张磁盘路径 <code>artwork/mockups/sample-batch-v3-final-2026-09-30.png</code> 本机未读到(旧审计 P0-1 死指涉仍在)。</p>
|
||||
|
||||
</main>
|
||||
<footer>本页由 Cursor Canvas 组件页 <code>visual-art-audit.canvas.tsx</code>(会话「Game UI and art optimization」,2026-10-14)静态转换而来,内容与 canvas 终版逐字对应;行首色条对应原页 rowTone(红=最急、黄=警告、蓝=信息)。会话全文见 <code>design/art/美术审计-cursor会话存档-2026-10-14.md</code>。</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,496 @@
|
||||
# 美术审计 Cursor 会话存档 - 2026-10-14
|
||||
|
||||
## 存档说明
|
||||
|
||||
本文档是 Cursor 会话 **「Game UI and art optimization」**(会话 ID `3d4735ce-c1b5-4c7e-acff-141a51d12a1d`)的完整存档,含两部分:
|
||||
|
||||
1. **第一部分**:会话中产出的美术审计页(Cursor Canvas 格式,`visual-art-audit.canvas.tsx`,在 Cursor 内渲染为网页式对照页——即用户所称「美术审计 html」)。
|
||||
2. **第二部分**:完整会话记录(两轮用户提问与助手回答全文、工具活动摘要、中断原因)。
|
||||
|
||||
事实源与时间线:
|
||||
|
||||
- 会话起止:2026-10-14 17:09 ~ 18:07(UTC+8),共两轮。
|
||||
- 审计页经初版(17:3x 写入)+ 第二轮 5 次修订(17:46 完成)后定稿,本文第一部分为**修订后终版**。
|
||||
- 会话在第二轮回答输出后因 **Cursor 周额度用尽**中断(18:07)。末条回答正文已完整生成,但未必在 Cursor 界面渲染成功,本文已从会话数据库补齐(见 §2.4)。
|
||||
- 本会话引用过的旧审计:`design/art/美术资产链路审计报告-2026-10-06.html`(仓库内已有,未随本会话改动)。
|
||||
- 原始件路径(Cursor 侧):
|
||||
- 审计页:`C:\Users\DK\.cursor\projects\d-code-g-plan2\canvases\visual-art-audit.canvas.tsx`
|
||||
- 转写:`C:\Users\DK\.cursor\projects\d-code-g-plan2\agent-transcripts\3d4735ce-c1b5-4c7e-acff-141a51d12a1d\3d4735ce-c1b5-4c7e-acff-141a51d12a1d.jsonl`
|
||||
|
||||
---
|
||||
|
||||
## 第一部分:美术审计页(Canvas 终版全文)
|
||||
|
||||
> 格式说明:Cursor Canvas 组件格式(TSX),在 Cursor 内打开渲染为排版页面。下列组件语义:`Callout`=提示框、`Card`=卡片、`Table`=表格、`Stat`=数字看板、`UsageBar`=占比条、`Grid/Stack`=布局容器。
|
||||
|
||||
```tsx
|
||||
import {
|
||||
Callout,
|
||||
Card,
|
||||
CardBody,
|
||||
CardHeader,
|
||||
Divider,
|
||||
Grid,
|
||||
H1,
|
||||
H2,
|
||||
H3,
|
||||
Stack,
|
||||
Stat,
|
||||
Table,
|
||||
Text,
|
||||
UsageBar,
|
||||
useHostTheme,
|
||||
} from "cursor/canvas";
|
||||
|
||||
const FINDINGS = [
|
||||
[
|
||||
"立绘与棋盘小人",
|
||||
"已裁:精细手绘像素",
|
||||
"现行是 AI 降采样的假像素,颗粒过粗且糊",
|
||||
"仍是像素风:手绘像素簇 + 更高源密度;不是插画、也不是 HD-2D",
|
||||
],
|
||||
[
|
||||
"第二 / 三关棋盘",
|
||||
"可读性",
|
||||
"地板纹理双峰:近黑斑 + 近白筋,数字怎么换墨都累",
|
||||
"重出幽暗 / 矿城地面:降局部对比,禁双峰",
|
||||
],
|
||||
[
|
||||
"UI 石皮九宫格",
|
||||
"观感廉价",
|
||||
"48×48 近乎平涂,铺到四百像素宽必出接缝",
|
||||
"重出 96 或 128 源 + 对齐切片;先修仪式框与石板面板",
|
||||
],
|
||||
[
|
||||
"战斗舞台背景",
|
||||
"占位",
|
||||
"平色 + 光柱,圣经已写 stage_bg.png 仍未产",
|
||||
"一张 1280×270 地窟看台插画,三关只换色",
|
||||
],
|
||||
[
|
||||
"营地柜台",
|
||||
"占位",
|
||||
"程序化木石块,与「全作最暖的营地」差一整档",
|
||||
"贴图重构:烛光黄 × 木色,CC0 改色即可起步",
|
||||
],
|
||||
[
|
||||
"字体层级",
|
||||
"规格未兑现",
|
||||
"全局单字重 Fusion Pixel,标题压不住正文",
|
||||
"补第二字重,或标题用拉丁像素字专件",
|
||||
],
|
||||
[
|
||||
"格面徽章 / 意图 / 封印特效",
|
||||
"占位",
|
||||
"十九枚奖励徽、意图姿态、封印特效仍是符号或空",
|
||||
"徽章与封印旗优先;意图先做蓄力一态即可",
|
||||
],
|
||||
[
|
||||
"整屏样张闸",
|
||||
"缺尺子",
|
||||
"格子样张已冻,战斗一屏样张未开工",
|
||||
"先出战斗 / 营地 / 菜单方向稿,再动终稿资产",
|
||||
],
|
||||
];
|
||||
|
||||
export default function VisualArtAudit() {
|
||||
const theme = useHostTheme();
|
||||
|
||||
return (
|
||||
<Stack gap={24}>
|
||||
<Stack gap={8}>
|
||||
<H1>视觉与美术审计</H1>
|
||||
<Text tone="secondary">
|
||||
对照现行美术圣经、素材状态清单、实机入包图与已登记待办。日期
|
||||
2026-10-14。未跑游戏测试,结论来自静态读图与文档。
|
||||
</Text>
|
||||
</Stack>
|
||||
|
||||
<Callout tone="warning" title="总判">
|
||||
丑的主因不是「没有风格」,而是「圣经写的是手绘明快像素地牢,实机交付的是
|
||||
AI 降采样角色 + 平涂 UI 皮 + 高噪棋盘」。立绘已裁为精细手绘像素(不是插画、不是两者折中)。参考游戏只取像素绘制语言,不取对方的砖、怪、色板当素材。整屏方向稿与地面 / 立绘密度同批锁。
|
||||
</Callout>
|
||||
|
||||
<Grid columns={4} gap={16}>
|
||||
<Stat value="4 / 15" label="素材已交付" />
|
||||
<Stat value="8 / 15" label="占位在役" tone="warning" />
|
||||
<Stat value="3 / 15" label="未开始" tone="danger" />
|
||||
<Stat value="已冻格 / 未冻屏" label="样张闸" tone="warning" />
|
||||
</Grid>
|
||||
|
||||
<UsageBar
|
||||
total={15}
|
||||
segments={[
|
||||
{ id: "done", value: 4 },
|
||||
{ id: "placeholder", value: 8 },
|
||||
{ id: "none", value: 3 },
|
||||
]}
|
||||
topLeftLabel="十五件看板资产"
|
||||
topRightLabel="已交付 4 · 占位 8 · 未开始 3"
|
||||
/>
|
||||
<Text size="small" tone="tertiary">
|
||||
来源:美术素材状态清单 2026-10-06 对账。已交付 =
|
||||
格子样张、主角三态、八敌站桩、状态图标。未开始 =
|
||||
战斗一屏样张、连锁坍塌、封印特效。
|
||||
</Text>
|
||||
|
||||
<H2>四条根因</H2>
|
||||
<Grid columns={2} gap={16}>
|
||||
<Card>
|
||||
<CardHeader>1. 生产方法与风格目标拧着</CardHeader>
|
||||
<CardBody>
|
||||
<Text>
|
||||
现行角色是 ComfyUI 出图再块降采样,边缘脏、明暗糊成一团;主角棋盘小人还是插值糊图。用户要的是精细手绘像素:放大能数清像素簇,但脸和装备认得出。不是插画、也不是「半像素半高清」。
|
||||
</Text>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card>
|
||||
<CardHeader>2. 第二 / 三关地板在跟数字抢读</CardHeader>
|
||||
<CardBody>
|
||||
<Text>
|
||||
第一关地面是均匀暖石噪,还能直画亮墨。幽暗与矿城地面是近黑斑加亮筋的双峰纹理——圣经自己写过「任何墨族直画不可救」,才上了色牌垫底。色牌能过对比机检,过不了「盯十分钟不累」。这是素材轴问题,不是再叠一层 UI。
|
||||
</Text>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card>
|
||||
<CardHeader>3. UI 皮太薄,半拟物没穿上戏服</CardHeader>
|
||||
<CardBody>
|
||||
<Text>
|
||||
圣经要「容器穿石木戏服、数据素面」。实装是 48×48
|
||||
米色点边面板、几乎同款按钮、空心仪式框。铺大之后接缝可见,全屏同一材质,标题又只有单字重——结果既不像物件,也不像干净 HUD。
|
||||
</Text>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card>
|
||||
<CardHeader>4. 屏级没有北向图</CardHeader>
|
||||
<CardBody>
|
||||
<Text>
|
||||
格子样张冻过砖,战斗 / 菜单 / 营地整屏样张没出。占位条款写着不得跨里程碑,看板却把战斗一屏样张标成未开始。没有目标图,迭代只能修局部瑕疵(按钮五态、光柱、邻近采样),修不成气质。
|
||||
</Text>
|
||||
</CardBody>
|
||||
</Card>
|
||||
</Grid>
|
||||
|
||||
<H2>逐项对照</H2>
|
||||
<Table
|
||||
headers={["面", "性质", "现状(实机)", "建议"]}
|
||||
rows={FINDINGS}
|
||||
rowTone={[
|
||||
"warning",
|
||||
"danger",
|
||||
"warning",
|
||||
"info",
|
||||
"info",
|
||||
"info",
|
||||
"neutral",
|
||||
"warning",
|
||||
]}
|
||||
striped
|
||||
stickyHeader
|
||||
/>
|
||||
<Text size="small" tone="tertiary">
|
||||
已做过、不再当新债:全局邻近采样、按钮五态、标题屏光柱过渡、商店居中、营地四栏等高、诊断钮移出玩家画面、八敌显示体型分档。
|
||||
</Text>
|
||||
|
||||
<H2>建议施工顺序</H2>
|
||||
<Text>
|
||||
先锁方向和尺子,再动会改变「第一眼」的三件终稿,最后才铺图标与演出。不要平行开动画大工程。
|
||||
</Text>
|
||||
|
||||
<H3>第一刀 · 两周内能改观感</H3>
|
||||
<Table
|
||||
headers={["项", "做什么", "验收"]}
|
||||
rows={[
|
||||
[
|
||||
"立绘口径(已裁)",
|
||||
"精细手绘像素:邻近采样、可数的像素簇、限色;源密度高于现行 36–48 档;禁 AI 降采样当终稿",
|
||||
"写入角色设计 + 圣经 §8.2;终值随整屏方向稿冻结",
|
||||
],
|
||||
[
|
||||
"战斗整屏方向稿(含地面)",
|
||||
"一张静帧同时锁:站桩密度、三关地面、舞台、C 区、棋盘数字。地面与立绘不拆批",
|
||||
"目检过气质再机检对比;这张图成为后续一切素材的北向",
|
||||
],
|
||||
[
|
||||
"UI 九宫格升源",
|
||||
"panel / border / button 出 96 或 128 带真实石纹与圆角结构的切片",
|
||||
"四百像素宽面板无错位小方块;按钮按压是结构下沉不是换一张平涂",
|
||||
],
|
||||
]}
|
||||
rowTone={["danger", "warning", "danger", "warning"]}
|
||||
/>
|
||||
|
||||
<H3>第二刀 · 把占位换成物件</H3>
|
||||
<Table
|
||||
headers={["项", "做什么", "渠道"]}
|
||||
rows={[
|
||||
["舞台背景", "一张 1280×270 地窟看台,三关 tint 换皮", "插画一张即可"],
|
||||
["营地柜台", "木石柜台 + 钥石 / 三柜台图标终稿", "CC0 改色过复用闸优先"],
|
||||
["标题字重", "第二字重或拉丁像素字专件", "开源字体,不新生图"],
|
||||
["奖励徽章十九枚", "金满框 / 红缺框双通道小图标", "脚本或手绘,勿再纯文字徽"],
|
||||
["主角棋盘小人", "从定稿立绘派生 32 源,邻近缩放,禁插值糊图", "派生管线,已有审计旧账"],
|
||||
]}
|
||||
/>
|
||||
|
||||
<H3>第三刀 · 可晚、不要用它救丑</H3>
|
||||
<Text>
|
||||
站桩帧动画、连锁坍塌、意图三档表演、提灯点亮,都是锦上添花。静止形象难看时,补帧只会让同一张糊图在动。动画维持 Alpha
|
||||
定版前完成即可,不插队。
|
||||
</Text>
|
||||
|
||||
<Divider />
|
||||
|
||||
<H2>圣经本身建议动的三处</H2>
|
||||
<Stack gap={10}>
|
||||
<Text>
|
||||
风格宣言「明快的地牢,轻快的扫荡,仔细的推理」可以保留。要改的是会把成品往脏、累、平里推的执行条款。
|
||||
</Text>
|
||||
<Text>
|
||||
一,角色允许双分辨率:棋盘与砖面严守像素整数倍;B
|
||||
区站桩允许较高清插画或更高像素源。这与「高定宽随」兼容,也能结束「改回高清」和「像素风已定档」的假对立。
|
||||
</Text>
|
||||
<Text>
|
||||
二,第二 / 三关「更深更险」改走色相与材质,不走地板内部的黑白双峰。明度分层已经允许空间更暗,但暗要均匀,不能在格子里打斑马纹。
|
||||
</Text>
|
||||
<Text>
|
||||
三,口号型条款(约一半正文)先不要扩写新禁令。色相禁入带、蓝只说己方、红只说危险,对信息游戏有用;再加禁令只会让 UI
|
||||
更褐、更平。缺的是整屏样张,不是新规则。
|
||||
</Text>
|
||||
</Stack>
|
||||
|
||||
<H2>明确不要做的</H2>
|
||||
<Grid columns={2} gap={16}>
|
||||
<Card>
|
||||
<CardHeader>会浪费一轮的</CardHeader>
|
||||
<CardBody>
|
||||
<Text>
|
||||
先改战斗三区几何;先上满屏粒子;继续用同一套 AI
|
||||
图再降一次采样当「升档」;把第二 / 三关问题当成叠暗角或换数字颜色就能解决。
|
||||
</Text>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card>
|
||||
<CardHeader>已经做过的</CardHeader>
|
||||
<CardBody>
|
||||
<Text>
|
||||
邻近采样、按钮悬停 / 焦点、光柱软边、商店与营地留白、八敌体型分档、第一关高墙砖结构。这些该留,不是丑的主因。
|
||||
</Text>
|
||||
</CardBody>
|
||||
</Card>
|
||||
</Grid>
|
||||
|
||||
<Callout tone="info" title="参考池纠偏(待落圣经)">
|
||||
Moonlighter / Peglin 只作像素画风示例,不规定暖砖、胖怪、洞穴色。Into the
|
||||
Breach 的「信息画在格子上」是玩法呈现,与「抄它的地块贴图」要拆开——后者是否同样降级,待用户确认。
|
||||
</Callout>
|
||||
|
||||
<Text size="small" tone="tertiary">
|
||||
实机抽查过的入包图:主角立绘与棋盘待机、地精 / 熊地精 / 蛛化卓尔、三关地面各一、石板面板
|
||||
/ 石砖按钮 / 仪式框、锻造图标、攻击状态图标。冻结样张磁盘路径
|
||||
artwork/mockups/sample-batch-v3-final-2026-09-30.png 本机未读到(旧审计 P0-1
|
||||
死指涉仍在)。
|
||||
</Text>
|
||||
</Stack>
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 第二部分:会话记录
|
||||
|
||||
### 2.1 第一轮(17:09)——审计请求与交付
|
||||
|
||||
**用户:**
|
||||
|
||||
> 当前这个游戏的 UI 和美术素材都让我觉得太丑了.你针对视觉表现和美术素材方面有什么优化的建议吗?你可以从现在使用的素材,UI 的编排和 Art Bible 等多个角度来进行审计,然后给出你的建议
|
||||
|
||||
**助手**(研究阶段说明,两次):
|
||||
|
||||
> 先从现有 Art Bible、UI 规格和实际素材入手,对照实机画面再给建议。我会先查权威文档和资产现状,避免把已拍板的视觉方向当成新问题重提。
|
||||
>
|
||||
> 继续核对实机素材、整屏样张和现有 UI 诊断,确认"丑"主要出在哪一层。
|
||||
>
|
||||
> 已对照实机立绘、棋盘瓦片和 UI 皮。接下来把审计收成一份可并排打开的对照表,并按优先级给出建议。
|
||||
|
||||
**工具活动摘要**:读取了 art-bible.md、art-status-checklist.md、art-assets-checklist.md、asset-path-map.md、character-design.md、ux/battle.md、06-待办清单.md、playnote.md、旧审计 `美术资产链路审计报告-2026-10-06.html` 等文档;实机抽查入包图:主角立绘与棋盘待机、地精/熊地精/蛛化卓尔、三关地面各一、石板面板/石砖按钮/仪式框、锻造图标、攻击状态图标;尝试读取冻结样张 `artwork/mockups/sample-batch-v3-final-2026-09-30.png` **未读到**(旧审计 P0-1 死指涉仍在)。随后写入审计页 `visual-art-audit.canvas.tsx`(初版)。
|
||||
|
||||
**助手交付(第一轮完整回答):**
|
||||
|
||||
> **观感差的主因不是「没定风格」,而是成品和风格目标拧着:圣经要的是手绘、明快、可读的像素地牢;实机大量是 AI 降采样立绘、平涂 UI 皮、第二 / 三关高噪地板。** 呈现层最近几批(邻近采样、按钮反馈、光柱、留白)修的是交互和机检,几乎没碰到第一眼那一层。
|
||||
>
|
||||
> 对照表在这边,可在聊天旁打开:[视觉与美术审计](C:\Users\DK\.cursor\projects\d-code-g-plan2\canvases\visual-art-audit.canvas.tsx)。Canvas 是一份可并排查看的活页,用来把分层结论摊开,避免在对话里堆长表。
|
||||
>
|
||||
> ---
|
||||
>
|
||||
> ### ① 现状与差异
|
||||
>
|
||||
> 风格目标是清楚的:地牢题材、非暗黑、轻快幻想、像素、2~3 头身;参考 Into the Breach 的格上信息、Moonlighter 的暖砖、Peglin 的明快怪。布局也已经定过:战斗屏上站桩、左数据、下扫雷盘,这个骨架不用推翻。
|
||||
>
|
||||
> 实机抽查入包图后,差距集中在四层:
|
||||
>
|
||||
> - **角色**:主角、地精、熊地精是典型「AI 再压成像素」——轮廓脏、明暗糊、身份件(铲 / 旗 / 背包)挤成一团。蛛化卓尔相对清楚,说明问题不在「像素」本身,而在源图工艺。棋盘上的主角小人仍是插值糊图。你试玩里写的「立绘太丑、粒度太低、想改回高清」,和这层对得上。
|
||||
> - **棋盘**:第一关暖石噪还过得去。第二 / 三关地面是近黑斑加亮筋的双峰纹理——数字无论亮墨还是垫牌,盯久了都会累。这不是再叠一层界面能救的。
|
||||
> - **UI 皮**:石板面板、按钮几乎是 48×48 米色点边;仪式框是细空心框。铺到大面板就会接缝错位。全屏同一石米色,标题又只有单字重,所以既不像「可按的砖」,也不像干净数据框。
|
||||
> - **占位面还很大**:十五件看板里完成四件、占位八件、未开始三件。战斗一屏样张(用来判定整屏算不算过关的那张图)还没开工。舞台背景、营地柜台、十九枚奖励徽、意图姿态、封印特效,都还是程序块或符号。
|
||||
>
|
||||
> 已做过、不必当新债:邻近采样、按钮五态、光柱软边、商店居中、营地四栏、诊断钮移出玩家画面、八敌显示体型分档。
|
||||
>
|
||||
> ### ② 为什么值得改(不做的代价)
|
||||
>
|
||||
> 玩法已经能跑,丑会直接折掉「明快冒险」的承诺:扫雷盘看起来费劲,站桩看起来廉价,营地不像归来的地方。继续只改 `ui_kit` 参数,机检可以更绿,第一眼不会变好看。
|
||||
>
|
||||
> ### ③ 怎么改(按顺序,不平行开大动画)
|
||||
>
|
||||
> **第一刀(改观感最快)**
|
||||
>
|
||||
> 1. **先裁立绘路线**(下面⑥)。甲:B 区站桩改较高清插画,棋盘小人仍像素。乙:维持像素,但手绘或手修源,禁止再把 AI 图降采样当终稿。两种都能成立;现在这套「又像素又糊」是最差一档。
|
||||
> 2. **先出一张战斗整屏方向稿**(舞台 + 站桩 + 棋盘 + 左侧数据同框)。没有这张图,后面出的砖和皮会对不齐。
|
||||
> 3. **重出第二 / 三关地面**:结构可留,局部对比压到第一关那种均匀石噪。色牌只留给真正复杂的格子,不要当整板救命。
|
||||
> 4. **重出 UI 九宫格源**(96 或 128,带真实石纹和圆角结构),专门消灭大面板接缝。
|
||||
>
|
||||
> **第二刀(把占位换成物件)**
|
||||
> 一张 1280×270 地窟看台背景(三关只换色);营地木石柜台;标题第二字重或拉丁像素字;十九枚奖励徽;从定稿立绘派生干净的棋盘小人。
|
||||
>
|
||||
> **第三刀(别用它救丑)**
|
||||
> 站桩逐帧、连锁坍塌、意图三档表演、提灯点亮——静止形象难看时,补帧只是让同一张糊图在动。这些维持「Alpha 定版前做完」即可。
|
||||
>
|
||||
> **圣经建议动三处,不是重写风格**:角色允许「棋盘严像素 / 站桩可更高清」;第二 / 三关用色相和材质表达更深,禁止地板内部黑白斑马;先不要再加新的用色禁令,缺的是整屏样张不是新规则。
|
||||
>
|
||||
> 明确不要:改战斗三区几何、上满屏粒子、用同一套 AI 图再升一档采样、把第二 / 三关当成换数字颜色或加暗角。
|
||||
>
|
||||
> ### ④ 影响面
|
||||
>
|
||||
> - 素材:`game/assets/art/` 角色、三关地面、`ui/` 九宫格与营地件。
|
||||
> - 文档:美术圣经 §6~8、角色设计(立绘分辨率例外)、素材状态清单;营地「三柜台」文案和现已四栏的实装还要对一次。
|
||||
> - 代码:主要是换皮和切片参数;棋盘数字墨模式可随新地面简化。不碰玩法数值。
|
||||
> - 已登记待办里,第二 / 三关棋盘观感、立绘清晰度、UI 贴图重构、字体补完、战斗一屏样张、九宫格接缝,都可以收进上面这条队列,不必另起一套诊断。
|
||||
>
|
||||
> ### ⑤ 怎样算改对了
|
||||
>
|
||||
> - 战斗整屏方向稿你目检过关:第一眼是「明亮地牢游戏」而不是「褐底程序界面」。
|
||||
> - 第二 / 三关不垫牌也能盯着挖,不再觉得地板在闪。
|
||||
> - 大面板无切片错位;标题明显重于正文。
|
||||
> - 站桩剪影三米外可辨(头、武器、物种),不再靠名字才认得出是谁。
|
||||
> - 机检对比仍过(文字 ≥4.5:1),但气质以方向稿为准,不以机检代替好看。
|
||||
>
|
||||
> ### ⑥ 需要你裁的两件事
|
||||
>
|
||||
> 1. **立绘:较高清站桩,还是手绘像素站桩?** 我更推荐甲(站桩较高清、棋盘仍像素)——这和「高定宽随」、和参考里 Moonlighter「人比砖细」都兼容,也能结束和现行像素定档的假对立。若你更在意全屏统一颗粒,走乙,但必须换手绘源。
|
||||
> 2. **第二 / 三关地面是立刻重出,还是等战斗整屏方向稿一起冻?** 若你现在最烦的是「挖着累」,地面可以先动;若你更烦「整体像 demo」,先出方向稿更划算。
|
||||
>
|
||||
> 其余可以排队,不阻塞现在的工程债迭代。你拍这两点之后,再写需求卡片也不迟。
|
||||
|
||||
### 2.2 第二轮(17:45)——用户立绘裁定 + 参考来源质疑
|
||||
|
||||
**用户:**
|
||||
|
||||
> 立绘: 还是像素风格立绘, 但是不需要像现在太过于像素; 你觉得这种类型是否是介于两者之间? 又或者是手绘像素风格?
|
||||
> 整屏方向稿一起改
|
||||
> ---
|
||||
> 然后有一个根本性的错误就是"Moonlighter 的暖砖、Peglin 的明快怪" 这两种描述都没有确切的素材来源,我担心这是否会造成误会;
|
||||
> 我的目的其实只是想要他的像素画风,而不是说要按照他们的画面素材来设计;
|
||||
> 所以我们是否还需要对art Bible最根本性的定义进行修改
|
||||
|
||||
**助手**(开始工作说明):
|
||||
|
||||
> 你的两点会直接改掉上次建议的立绘口径,也会改美术圣经里「参考谁、抄什么」的写法。我先核对圣经里 Moonlighter / Peglin 被写成了什么,再判断是「介于两者」还是「更细的手绘像素」,以及根本定义要不要动。
|
||||
|
||||
**工具活动摘要**:重读 art-bible.md 头部定义与 §3.2 呈现基准(448-512 行段)、grep 全库 Moonlighter/Peglin/Into the Breach 引用、读 04-美术音频方向.md;随后对审计页 canvas 执行 **5 次修订**(17:46 完成,终版见第一部分):
|
||||
|
||||
1. 「逐项对照」立绘行 → 状态改「已裁:精细手绘像素」(不是插画、不是 HD-2D);
|
||||
2. 「总判」callout → 追加立绘已裁、参考游戏只取像素绘制语言、整屏方向稿与地面/立绘密度同批锁;
|
||||
3. 「根因 1」→ 改写为「用户要的是精细手绘像素:放大能数清像素簇,但脸和装备认得出」;
|
||||
4. 「第一刀」表 → 立绘行改「立绘口径(已裁)」;「战斗一屏方向稿」与「幽暗/矿城地面重出」两行合并为「战斗整屏方向稿(含地面)」;
|
||||
5. 新增「参考池纠偏(待落圣经)」callout(Moonlighter/Peglin 只作画风示例;ITB 地块贴图是否同样降级待用户确认)。
|
||||
|
||||
### 2.3 中断记录
|
||||
|
||||
第二轮修订完成后、回答输出完毕时,Cursor 连续报错(18:07 前后):
|
||||
|
||||
- `Weekly usage limit reached. It resets in 7 days.`
|
||||
- `Named models unavailable Free plans can only use Auto. Switch to Auto or upgrade plans to continue.`
|
||||
|
||||
会话就此中断,后续未再进行。
|
||||
|
||||
### 2.4 第二轮完整回答(已完整生成,存档补齐)
|
||||
|
||||
> **这不是两者折中,就是手绘像素里偏细的那一档。** 整屏方向稿和地面、立绘密度一起锁。参考游戏那件事,确实已经写进圣经最上面的定义里了,需要改——但改的是「参考到底取什么」,不是把「像素、明亮、非暗黑」整段推倒。
|
||||
>
|
||||
> 对照页已按这次口径改过:[视觉与美术审计](C:\Users\DK\.cursor\projects\d-code-g-plan2\canvases\visual-art-audit.canvas.tsx)。
|
||||
>
|
||||
> ---
|
||||
>
|
||||
> ### 立绘:不是中间态
|
||||
>
|
||||
> 上次两个备选是:
|
||||
>
|
||||
> - 插画站桩(画的是连续笔触,只是显示时可能邻近采样)
|
||||
> - 手绘像素(一笔一像素,放大能数清色块)
|
||||
>
|
||||
> 你要的是第二条,只是**不要现在这么粗、这么糊**。「太过于像素」在观感上通常等于:源图太小(很多怪只有三十多像素高)+ AI 整图压下来的假像素(明暗是照片式的,边缘是脏点不是刻意排的像素簇)。
|
||||
>
|
||||
> 精细手绘像素的判据可以写成三句:
|
||||
>
|
||||
> 1. 放大四倍,轮廓和衣服是成组的像素,不是降采样噪点。
|
||||
> 2. 脸、铲、旗、物种在站桩尺寸下能认出来,不必先读名字。
|
||||
> 3. 显示仍用邻近采样,不出现插画那种平滑渐变。
|
||||
>
|
||||
> 这和「半像素半高清」(例如用立体模型再套像素滤镜)不是一类。源密度会比现在高,具体高到哪一档——随整屏方向稿一起冻,不要现在另定一个数字。
|
||||
>
|
||||
> 生产上等于:**终稿必须是手绘或手修的像素,禁止再把 AI 原图降采样当立绘。** AI 最多当草稿。
|
||||
>
|
||||
> ---
|
||||
>
|
||||
> ### 整屏方向稿:和地面、立绘一起改
|
||||
>
|
||||
> 按你的令:一张战斗整屏静帧同时锁站桩颗粒、三关地面、舞台、左侧数据框。第二 / 三关地面不单开。方向稿过目检,再谈重产。
|
||||
>
|
||||
> ---
|
||||
>
|
||||
> ### 参考游戏:误会已经写进根本定义了
|
||||
>
|
||||
> 你的担心成立。圣经头注把三款写成「三者相融」,然后把**画风参考**写成了**画面素材处方**:
|
||||
>
|
||||
> - Moonlighter →「暖质地砖、砖缝、木石道具、洞穴亮暗分层」
|
||||
> - Peglin →「明快洞穴色彩、胖体量亲和怪」
|
||||
> - Into the Breach 里还有一条同类越界:「战棋地块质感骨架」(纹理多样、岛缘厚度……)——这条是 2026-09-22 另一次拍板写进去的
|
||||
>
|
||||
> 这些不是有一张可执行的「素材来源表」,而是把别人游戏里的砖和怪,当成了本作必须长成那样。后续原则二 / 原则三、角色「近圆墩形」、提示词里的「Peglin 式胖体量」,都是从这里长出来的。
|
||||
>
|
||||
> 你的本意更干净:**只借像素这种画法(硬边、限色、邻近采样、可读),地牢长什么样由本作自己定。**
|
||||
>
|
||||
> 所以要改圣经,但**不是改掉风格身份**。下面这几句仍是你 2026-09-10 的定稿,建议保留:地牢题材、非暗黑、轻快明亮、全年龄、像素风、角色 2~3 头身、一句话「明快的地牢,轻快的扫荡,仔细的推理」。
|
||||
>
|
||||
> 要改的是「参考」怎么用:
|
||||
>
|
||||
> | 留 | 降级或删 |
|
||||
> |---|---|
|
||||
> | 像素绘制语言(硬边、像素簇、限色、邻近采样) | 「按 Moonlighter 的砖 / Peglin 的怪 / 某款的色板来画」 |
|
||||
> | Into the Breach:**信息画在格子上**(这是玩法呈现,不是抄贴图) | Into the Breach 的地块贴图、岛缘、装饰立牌——若你同样只想要像素画风,这条应降级,不再当砖面处方 |
|
||||
> | 本作自己的规则:数字可读、非暗黑、格子是地牢砖的隐喻 | 原则二 / 三里「取自 Moonlighter / Peglin」的归因 |
|
||||
>
|
||||
> 原则二「明亮、明度分档」可以留下,改成本作自己的可读性规则,不必再挂那两款的名字。原则三「格子即地砖、装饰不伪装成有雷」也可以留下,同样去掉「像 Moonlighter 的砖缝」。普通怪要不要「又圆又胖」,改由角色设计自己决定,不要再写 Peglin。
|
||||
>
|
||||
> `04-美术音频方向.md` 里同一段「三者相融」要跟着改,否则两份根本定义会继续打架。
|
||||
>
|
||||
> ---
|
||||
>
|
||||
> ### 还需要你点一句
|
||||
>
|
||||
> Into the Breach 的「预告画在格上」要不要继续当战斗屏的呈现原则?我建议**留**——那是扫雷盘怎么读,不是抄它的地砖。
|
||||
>
|
||||
> 它的「战棋地块质感」要不要和 Moonlighter 暖砖一样降级成「只作像素画风示例、不规定砖长什么样」?如果你点头,圣经 §3.2 那条呈现基准会一起改;方向稿里的砖就按本作地牢自己画,不再对着 ITB 截图抄起伏和岛缘。
|
||||
>
|
||||
> 你确认「参考只取画风」以及 ITB 地块那条是否降级之后,我再动美术圣经(设计段落文,不自动开工做图)。整屏方向稿等圣经这层写清再画,避免又画成「某款的暖砖 + 某款的胖怪」。
|
||||
|
||||
---
|
||||
|
||||
## 会话遗留的开放点(中断时未回全)
|
||||
|
||||
按会话末轮状态,等待用户裁决的共两点:
|
||||
|
||||
1. **ITB「信息画在格上」是否继续当战斗屏呈现原则**——助手建议留。
|
||||
2. **ITB「战棋地块质感」是否与 Moonlighter 暖砖同批降级为「只作像素画风示例」**——待用户点头后统一改圣经(含 §3.2 与 `04-美术音频方向.md`「三者相融」段)。
|
||||
|
||||
已定部分:立绘=精细手绘像素(非插画非折中);整屏方向稿与三关地面、立绘密度同批锁。
|
||||
@@ -1,129 +0,0 @@
|
||||
# ADR-0001: 事件总线与编排载体(Event Bus & Orchestration Carrier)
|
||||
|
||||
## Status
|
||||
Accepted(2026-09-12,solo 模式用户授权代决;用户迭代期可随时推翻重议——推翻时须走本 ADR 修订 + 下游 AC 连锁复核)
|
||||
|
||||
## Date
|
||||
2026-09-12
|
||||
|
||||
## Engine Compatibility
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Engine** | Godot 4.7.2-stable |
|
||||
| **Domain** | Core / Scripting(Signal/Callable/生命周期) |
|
||||
| **Knowledge Risk** | LOW(4.x 基线稳定;4.5–4.7 变更清单零命中,godot-specialist 校验通过) |
|
||||
| **References Consulted** | `docs/engine-reference/godot/`(VERSION / breaking-changes / deprecated-apis / current-best-practices);godotengine/godot#6360 |
|
||||
| **Post-Cutoff APIs Used** | None |
|
||||
| **Verification Required** | None(切片 88/88 冒烟已实证:双源 round_end 汇聚、可回放步骤流) |
|
||||
|
||||
## ADR Dependencies
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Depends On** | None |
|
||||
| **Enables** | ADR-0003(场景结构引用本 ADR 的接线纪律);A2/B1 全部事件序类 AC 从纸面契约转为可执行 |
|
||||
| **Blocks** | 正式工程骨架搭建(架构文档 Required ADRs 条件) |
|
||||
| **Ordering Note** | 与 ADR-0008(切片机制正式化)并行无冲突;B1 结算触发语义以本 ADR 载体承载 |
|
||||
|
||||
## Context
|
||||
|
||||
### Problem Statement
|
||||
A2(三事件外发)、A3(stopped 直发 round_end,双发射源)、B1(结算触发 = Waiting 相位编排点、不依赖事件到达序)之间的信号载体需要一个落地形态——GDD 层只定行为契约(A2 OQ2 / B1 OQ1 均登记为"实现期 ADR 确认项")。
|
||||
|
||||
### Constraints
|
||||
- 单线程回合制(D2 EC13);Core 层零 UI 依赖、headless 可跑(D2 Rule 7)
|
||||
- 结算可回放是硬承诺(B1 Core Rule 15:禁 await、零随机)
|
||||
- 事件序契约:`flag_judged` < `round_end` 全路径统一,但到达序不承载语义
|
||||
- RefCounted 纯逻辑类无场景表示,无法在 .tscn 编辑器里对接信号
|
||||
|
||||
### Requirements
|
||||
- 支持 A2 三事件面 + A3 stopped 直发的双发射源汇聚
|
||||
- 支持多订阅者(B1 facts 缓冲;呈现层只订 B1/runner)
|
||||
- 测试可捕获事件序列(A2/B1 AC 的事件捕获断言面)
|
||||
- 生命周期确定(无悬挂连接、无循环引用)
|
||||
|
||||
## Decision
|
||||
|
||||
**组合根直连 signal 接线 + B1 Waiting 相位触发;否决 autoload 全局事件总线。**
|
||||
|
||||
1. **信号载体**:A2(RefCounted)声明并发射 GDD 三事件——`cell_revealed` / `flag_judged` / `round_end_board`(GDD 概念名 `round_end` 棋盘路径的实现实名);A3 停手路径发射 `round_end_stopped`(payload 与棋盘路径同构)。回发 `next_round_mode` / `battle_over` 同为 A3/B1 侧 signal。
|
||||
2. **接线位置**:全部 signal.connect 发生在**组合根**(主场景 Node 的装配代码)——core↔core 无静态耦合,依赖单向由接线拓扑保证。RefCounted 无 .tscn 编辑器对接能力,组合根是唯一自然落点。
|
||||
3. **B1 触发**:订阅 A3 相位变更(→Waiting)触发结算事务;触发判定只读 A3 相位观测量与 `last_round_end`,**不消费事件到达序**(同步发射 + 双发射源的正确防御—— specialist 确认信号为同步发射、多订阅者投递序 = 连接序 FIFO)。
|
||||
4. **订阅纪律**:呈现层**永不直接订阅 A2/A3**——只订 B1 步骤流 / runner(切片现状固化,防呈现层绕过编排读核心生命周期状态——切片缺陷②教训)。
|
||||
|
||||
### Architecture Diagram
|
||||
|
||||
```
|
||||
[A2 minesweeper_rules]──cell_revealed/flag_judged/round_end_board──┐
|
||||
[A3 action_economy]────round_end_stopped / phase→Waiting──────────┤
|
||||
▼
|
||||
[组合根 main 装配接线]→[B1 battle_orchestrator]
|
||||
│ 步骤流行协议
|
||||
▼
|
||||
[D1 视图单元(只订 B1/runner)]
|
||||
```
|
||||
|
||||
### Key Interfaces
|
||||
|
||||
- 信号均为 **方法 Callable 连接**(见禁令);信号参数带类型标注仅作文档,无运行时检查——payload 校验由消费侧断言承载(A2 AC 前言口径)。
|
||||
- A2 事件捕获测试 API:冒烟经 signal connect 到捕获数组(AC 前言"事件捕获断言面"的落地形态)。
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
### Alternative 1: autoload 全局事件总线
|
||||
- **Description**: 中心 autoload 单例持有全部具名信号,系统经总线收发。
|
||||
- **Pros**: 解耦发射者/订阅者;全局可发现。
|
||||
- **Cons**: 全局耦合(任何系统可达任何信号——与"依赖单向"原则冲突);单线程回合制无此需求;事件溯源变难。
|
||||
- **Rejection Reason**: 过度设计;切片直连形态已验证且更简单。
|
||||
|
||||
### Alternative 2: 轮询(B1 每帧查 A3 相位)
|
||||
- **Description**: B1 在 process 中轮询 A3 相位观测量。
|
||||
- **Cons**: 延迟(帧粒度)+ 空转;与"回合制无逐帧玩法逻辑"原则冲突。
|
||||
- **Rejection Reason**: 无收益;信号已同步即时。
|
||||
|
||||
### Alternative 3: 回调注册表(A2 持有 handler 列表)
|
||||
- **Description**: A2 暴露 register(handler) API,非 signal。
|
||||
- **Cons**: 非 GDScript 惯用;多订阅者接线繁琐;丢掉引擎信号工具链(.tscn 对接、调试器可视)。
|
||||
- **Rejection Reason**: signal 即本用途的引擎原生方案。
|
||||
|
||||
## Consequences
|
||||
|
||||
### Positive
|
||||
- 事件生命周期**确定性优于 Node 方案**:RefCounted 引用计数归零即双向自动断连,无 queue_free 帧末窗口(specialist 核实)——不存在"向半死对象发射"
|
||||
- 组合根接线使依赖方向可视化、可审计;切片 88/88 已验证
|
||||
|
||||
### Negative
|
||||
- 组合根承担全部接线职责——视图单元增多时接线代码线性增长(切片 main.gd 433 行已容纳;演进为装配器函数分组即可)
|
||||
- 信号同步发射的再入语义需实现者理解(本 ADR 的"不依赖到达序"即防御)
|
||||
|
||||
### Risks
|
||||
- **lambda 捕获 self 的循环引用**:GDScript lambda 捕获持强引用——短命 RefCounted 以捕获 self 的 lambda 连到长命发射者会延长生命周期乃至成环,自动断连永不触发 → **缓解(固化为本 ADR 静态规则)**:core↔core 信号连接只许方法 Callable;发射者禁止持有对订阅者的反向引用
|
||||
- 信号参数无运行时类型检查 → 缓解:消费侧断言(既有 AC 口径)+ 呈现载荷 schema 成文义务(code-conventions)
|
||||
|
||||
## GDD Requirements Addressed
|
||||
|
||||
| GDD System | Requirement | How This ADR Addresses It |
|
||||
|------------|-------------|--------------------------|
|
||||
| a2-minesweeper-rules.md | Core Rule 2 三事件回边契约(发射面封闭);OQ2 事件外发载体 | signal 载体 + 实名映射(round_end→round_end_board)+ 组合根接线;捕获 API 承载 AC 断言面 |
|
||||
| b1-settlement.md | Core Rule 2 结算触发 = Waiting 相位编排点;OQ1 事件总线载体 | 订阅 A3 相位触发、只读 last_round_end、不依赖到达序 |
|
||||
| a3-action-economy.md | Rule 9 round_end 双发射源(stopped 直发、payload 同构) | round_end_stopped 独立信号,同构 payload 由组包纪律保证 |
|
||||
| systems-index.md | 唯一回边裁决(A2 只外发、B4/B1 订阅) | 组合根接线拓扑 = 裁决的落地形态 |
|
||||
|
||||
## Performance Implications
|
||||
- **CPU**: 信号发射 = 同步调用链,回合制下每事务个位数次发射——可忽略
|
||||
- **Memory**: 方法 Callable 弱引用目标、不延长生命周期;lambda 禁令消除成环风险
|
||||
- **Load Time**: 无
|
||||
- **Network**: 不适用
|
||||
|
||||
## Migration Plan
|
||||
切片即本决策的实现(`core/minesweeper_rules.gd` 三信号、`action_economy.gd` round_end_stopped、`battle_orchestrator.gd` 双源汇聚)——无迁移,正式化 = 把接线纪律与静态规则写入扫描域(ADR-0004)。
|
||||
|
||||
## Validation Criteria
|
||||
- A2/B1 冒烟事件捕获断言面全绿(既有 88 条覆盖)
|
||||
- 静态扫描:core↔core 连接零 lambda;发射者零反向引用(ADR-0004 扫描域承载)
|
||||
- 回放确定性:同种子同输入步骤流逐行相同(B1 AC-33 先例,切片已证)
|
||||
|
||||
## Related Decisions
|
||||
- ADR-0003(场景结构与组合根)、ADR-0004(测试载体与静态扫描域)
|
||||
- docs/architecture/architecture.md(Data Flow §2 事件路径)
|
||||
@@ -1,119 +0,0 @@
|
||||
# ADR-0002: 渲染器与窗口配置(Renderer & Window Config)
|
||||
|
||||
## Status
|
||||
Accepted(2026-09-12,solo 模式用户授权代决;迭代期可推翻重议)
|
||||
|
||||
## Date
|
||||
2026-09-12
|
||||
|
||||
## Engine Compatibility
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Engine** | Godot 4.7.2-stable |
|
||||
| **Domain** | Rendering |
|
||||
| **Knowledge Risk** | MEDIUM(渲染域为 4.5–4.7 变更集中地——本 ADR 相关项已逐条核实,godot-specialist 校验通过) |
|
||||
| **References Consulted** | `docs/engine-reference/godot/`(四文件);Godot 4.3 release notes(Compatibility 特性补齐);Godot Docs Environment and post-processing |
|
||||
| **Post-Cutoff APIs Used** | None |
|
||||
| **Verification Required** | 首次正式导出时核对 gl_compatibility 在目标硬件清单上的实际表现(首次 release 导出 checklist 既有项) |
|
||||
|
||||
## ADR Dependencies
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Depends On** | None |
|
||||
| **Enables** | ADR-0003(工程骨架的 project.godot 基线);D1 正式化 |
|
||||
| **Blocks** | 正式工程骨架搭建 |
|
||||
| **Ordering Note** | B5 战斗表现若需 HDR 2D 届时复议(见 Risks) |
|
||||
|
||||
## Context
|
||||
|
||||
### Problem Statement
|
||||
technical-preferences 将渲染器选择(Forward+ vs gl_compatibility)登记为实现期 ADR;project.godot 的窗口/stretch 基线需要显式定稿——4.7 新项目默认值与训练数据不同(stretch mode canvas_items / aspect expand / Windows 驱动 D3D12),必须显式落盘防漂移。
|
||||
|
||||
### Constraints
|
||||
- 2D 回合制;draw calls < 200 预算;无 3D、无移动端
|
||||
- headless 测试链路不初始化渲染器(dummy DisplayServer)——测试与渲染器解耦
|
||||
- 引擎知识 MEDIUM 风险:渲染域选型必须基于已核实清单
|
||||
|
||||
### Requirements
|
||||
- 满足视觉锚(数字可读性、双通道、绘制优先级)所需的渲染能力
|
||||
- PC(Steam)硬件门槛尽量低
|
||||
- project.godot 各键显式写入(防未来 config_version 升级漂移)
|
||||
|
||||
## Decision
|
||||
|
||||
**渲染器 = gl_compatibility;窗口基座 1280×800(切片已验证值)、stretch mode = canvas_items、aspect = expand;全部键显式写入 project.godot。**
|
||||
|
||||
```ini
|
||||
rendering/renderer/rendering_method="gl_compatibility"
|
||||
rendering/renderer/rendering_method.mobile="gl_compatibility" ; PC 无关,显式对齐防混淆
|
||||
display/window/size/viewport_width=1280
|
||||
display/window/size/viewport_height=800
|
||||
display/window/stretch/mode="canvas_items"
|
||||
display/window/stretch/aspect="expand"
|
||||
; display/window/dpi/allow_hidpi —— 4.x 默认 true,无需写入(勿关闭)
|
||||
```
|
||||
|
||||
- **否决 Forward+**:2D 重 UI 无收益;4.6 起 Windows 新项目 D3D12 默认只作用于 Vulkan 系(Forward+/Mobile)——选 gl_compatibility(OpenGL 3.3)**完全绕开 D3D12 新驱动线**,这是 MEDIUM 风险域里的降险选择;GPU 门槛最低。
|
||||
- **stretch/aspect 与 4.7 新项目默认一致**(canvas_items/expand)——仍显式落盘,防引擎默认未来变化。
|
||||
- **基座 1280×800** = 切片验证值(非引擎默认 1152×648,亦非本 ADR 初稿设想的 1920×1080);expand 使 16:9 全屏显示正常适配,D1 正式化时如需调整走本 ADR 修订。
|
||||
|
||||
### Architecture Diagram
|
||||
(不适用——配置决策;headless dummy DisplayServer 与本决策完全解耦,冒烟链路不受影响)
|
||||
|
||||
### Key Interfaces
|
||||
- project.godot 键集如上(显式全落盘);渲染器相关代码面 = CanvasItem/Control 绘制(三渲染器共用管线,重 UI 场景 Compatibility 开销最低——specialist 核实)。
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
### Alternative 1: Forward+(Vulkan/D3D12)
|
||||
- **Description**: 4.7 新项目默认渲染器。
|
||||
- **Pros**: HDR 2D、高级后处理全量可用。
|
||||
- **Cons**: 2D 回合制无收益;D3D12 为 4.6 起新默认驱动线(成熟度风险敞口);GPU 门槛更高。
|
||||
- **Rejection Reason**: 零收益 + 增加风险敞口;B5 若需 HDR 2D 届时复议。
|
||||
|
||||
### Alternative 2: 沿用引擎新项目默认不显式配置
|
||||
- **Cons**: 渲染方法默认 forward_plus;基座默认 1152×648 与切片验证值不符;未来 config_version 升级可能漂移。
|
||||
- **Rejection Reason**: 违背"显式落盘防漂移"要求。
|
||||
|
||||
## Consequences
|
||||
|
||||
### Positive
|
||||
- 绕开 D3D12 驱动线与 Vulkan 门槛——MEDIUM 风险域降险
|
||||
- headless 测试与渲染器解耦(已核实),CI 零 GPU 依赖
|
||||
- **B5 复议空间存在**:Compatibility 自 4.3 起已支持 2D 灯光+阴影与 glow/bloom——多数 2D 表现需求无需离开本渲染器
|
||||
|
||||
### Negative
|
||||
- 无 HDR 2D(Forward+/Mobile 专属);glow 实现不同且部分属性隐藏——B5 视觉上限受此约束
|
||||
- Compatibility 已知渲染问题两条登记(GH-110670 HDR2D+tonemap glow 压暗 / GH-90259 开阴影灯光变亮)——B5 采用相关特性时核对
|
||||
|
||||
### Risks
|
||||
- B5 需要超出现有能力的表现 → 缓解:复议通道 = 本 ADR 修订(迁移成本 2D 项目可控)
|
||||
- OpenGL 3.3 在极旧硬件的覆盖 → 缓解:目标平台 PC Steam 主流硬件;首次导出 checklist 核对
|
||||
|
||||
## GDD Requirements Addressed
|
||||
|
||||
| GDD System | Requirement | How This ADR Addresses It |
|
||||
|------------|-------------|--------------------------|
|
||||
| technical-preferences.md | Renderer 选择留实现期 ADR;draw calls < 200 | gl_compatibility + 自绘/控件混合渲染在此预算内宽裕 |
|
||||
| game-concept.md | 视觉锚三条硬约束 | canvas_items stretch 保证数字缩放清晰;Compatibility 2D 管线满足绘制优先级栈 |
|
||||
| d2-data-config.md | Rule 7 headless 工程债 | dummy DisplayServer 与渲染器解耦(已核实) |
|
||||
|
||||
## Performance Implications
|
||||
- **CPU**: Compatibility 2D 管线开销最低(重 UI 场景——specialist 核实)
|
||||
- **Memory**: 三渲染器中最低
|
||||
- **Load Time**: 无差异
|
||||
- **Network**: 不适用
|
||||
|
||||
## Migration Plan
|
||||
切片 project.godot 已写 gl_compatibility——正式工程直接继承;补齐基座尺寸与 stretch 键显式落盘。
|
||||
|
||||
## Validation Criteria
|
||||
- draw calls 实测 < 200(D1 集成时用编辑器 profiler 核对)
|
||||
- 16:9 全屏 / 窗口两种形态下数字可读性目检(视觉锚 1)
|
||||
- headless 冒烟不受渲染器影响(88/88 维持)
|
||||
|
||||
## Related Decisions
|
||||
- ADR-0003(场景结构——project.godot 同批落盘)、ADR-0010(B5 战斗舞台,未立项)
|
||||
- docs/engine-reference/godot/current-best-practices.md §1(新项目默认值差异)
|
||||
@@ -1,139 +0,0 @@
|
||||
# ADR-0003: 场景结构与棋盘渲染(Scene Structure & Board Rendering)
|
||||
|
||||
## Status
|
||||
Accepted(2026-09-12,solo 模式用户授权代决;迭代期可推翻重议)
|
||||
**部分修订(2026-09-23)**:Decision 3 棋盘渲染形态条款由 [ADR-0006](adr-0006-board-node2d-rendering.md) 部分取代——棋盘本体定向迁 Node2D 渲染(D 区 Phase A 先行,B 区舞台后续批),「禁盲目迁移」条款解除,其登记的探针耦合成本转为迁移批义务(实证收敛为 `_cells` 键面 + `click_cell` + `cell_size` 三点,公共面契约保持即可零改造)。Alternative 2(逐格 Node2D)的否决理由「无必要」因表现层升级需求不再成立;autoload 清单、类形态、CJK 字体前置等其余条款不变。
|
||||
|
||||
## Date
|
||||
2026-09-12
|
||||
|
||||
## Engine Compatibility
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Engine** | Godot 4.7.2-stable |
|
||||
| **Domain** | Core / Scripting + UI |
|
||||
| **Knowledge Risk** | LOW-MEDIUM(结构决策 LOW;渲染呈现项 MEDIUM——CanvasItem 线条 AA 羽化移除已核实,godot-specialist 校验含 2 项实质修正后通过) |
|
||||
| **References Consulted** | `docs/engine-reference/godot/`(四文件);godotengine/godot#6360(--script 无 autoload) |
|
||||
| **Post-Cutoff APIs Used** | None |
|
||||
| **Verification Required** | CJK 字体随包发行的显示核对(首次正式导出 checklist 增补项);D1 正式化时若执行 _draw 迁移则另核命中测试/无障碍 |
|
||||
|
||||
## ADR Dependencies
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Depends On** | ADR-0001(组合根接线纪律)、ADR-0002(project.godot 基线同批落盘) |
|
||||
| **Enables** | 正式工程骨架搭建;D1 正式化 |
|
||||
| **Blocks** | ADR-0004 扫描域(引用本 ADR 的 core 隔离规则) |
|
||||
| **Ordering Note** | 棋盘渲染形态裁决(本 ADR §Decision 3)与 ADR-0004 探针耦合——见 Decision 3 的迁移工作项 |
|
||||
|
||||
## Context
|
||||
|
||||
### Problem Statement
|
||||
正式工程骨架需要定稿:autoload 清单、core/presentation 的类形态与目录结构、棋盘渲染的实现路径。切片已验证一套形态,但初稿 ADR 把"自绘 _draw()"当作切片事实——godot-specialist 校验发现切片 BoardView 实为 **GridContainer + 逐格常驻控件**,本 ADR 按校验修正。
|
||||
|
||||
### Constraints
|
||||
- Core 层零 UI 依赖、headless 可跑(D2 Rule 7);--script 模式下 core 禁裸引用 autoload 全局标识符(编译期即炸——见 ADR-0004)
|
||||
- 同屏 draw calls < 200;棋盘 ≤12×12(MVP 量级)+数字/小人/旗/变异多层叠加(视觉锚绘制优先级栈)
|
||||
- 领域命名规范(docs/code-conventions.md:禁 ID 前缀、头注溯源)
|
||||
|
||||
### Requirements
|
||||
- 切片验证过的结构不推倒(用户拍板"按常规老路子")
|
||||
- 呈现层与核心的写边界:核心写调用唯一发生在组合根
|
||||
- 中文文案可显示(运行时默认字体无 CJK 字形——specialist 核实)
|
||||
|
||||
## Decision
|
||||
|
||||
**1. autoload 清单 = {ConfigDB, RngService}(定名锁定),仅此两个。**
|
||||
战斗编排器等核心类为普通类、由组合根按局实例化——非 autoload、非场景节点。
|
||||
|
||||
**2. 类形态与目录结构:core/ 纯逻辑类 = RefCounted;ConfigDB/RngService = autoload Node 单例(引擎约束:autoload 脚本必须 extends Node);presentation/ = Control 派生视图单元。**
|
||||
|
||||
```
|
||||
res://
|
||||
├── core/ # RefCounted 纯逻辑(board_generator / minesweeper_rules /
|
||||
│ # action_economy / battle_orchestrator / unit_container /
|
||||
│ # status_container / reward_economy / level_runner / 数据类)
|
||||
│ # —— 零 Control 引用、零 .tscn preload、零 autoload 全局标识符裸引用
|
||||
├── data/
|
||||
│ ├── schemas/ # D2 schema 类(Resource 派生——D2 体系,非本 ADR 变更项)
|
||||
│ └── tables/ # .tres 数值表(单一事实源)
|
||||
├── presentation/
|
||||
│ ├── views/ # 九单元:BoardView / HUDView / BattleLogView / ItemWindowOverlay /
|
||||
│ │ # NodeOverlay / LevelStripView / TunePanel / UiKit
|
||||
│ ├── hud_presenter.gd
|
||||
│ └── main.tscn + main.gd # 组合根:模式流转 + 信号接线 + 核心写调用唯一落点
|
||||
├── smoke/ # 冒烟脚本 + 探针场景(ADR-0004)
|
||||
└── docs/architecture/
|
||||
```
|
||||
|
||||
**3. 棋盘渲染形态:MVP 沿用切片已验证形态——GridContainer + 逐格常驻控件(BoardView 持 `_cells`,refresh 内逐格更新);自绘 `_draw()` 迁移登记为 D1 正式化候选工作项(非本 ADR 承诺)。**
|
||||
|
||||
- specialist 校验事实:切片 BoardView = GridContainer + 逐格 Button(`_paint_cell` 逐格更新),三探针与该形态耦合(ui_probe 断言 `_cells` 非空、click_probe 依赖 `click_cell` 入口)。初稿"_draw 是切片形态的正式化"**不成立**,按事实修正。
|
||||
- 形态对比留档:逐格控件(现状)= 命中测试/悬停/焦点由引擎承担、探针兼容;代价 = 控件树随格数增长(12×12=144 控件,实测无压力)。`_draw()` = 单 draw call、绘制优先级栈完全可控;代价 = 自建命中测试/悬停 + **三个探针改造**(`_cells` 断言与 `click_cell` 入口失效)+ 无障碍面缺失 + 需补 `Viewport.push_input` 端到端输入探针。
|
||||
- 裁决:D1 正式化 GDD 评审时按当时视觉需求(biome 色板、雾纹理、动效复杂度)二选一;在此之前禁盲目迁移(探针改造是隐藏成本)。任一形态下 CanvasItem 线条 AA 羽化移除(4.7)需注意——格边框用填充 `draw_rect` 不受影响。
|
||||
|
||||
**4. CJK 字体前置(specialist 补登,两种形态都受影响)**:Godot 运行时默认字体不含 CJK 字形——全部中文文案(按钮/标签/结算明细)必须**随包发行 CJK 字体并设为 theme 默认字体**。登记为 D1 正式化硬性前置项 + 首次导出 checklist 项。
|
||||
|
||||
### Architecture Diagram
|
||||
见 `docs/architecture/architecture.md` System Layer Map + Module Ownership(本 ADR 是其工程形态落点)。
|
||||
|
||||
### Key Interfaces
|
||||
- 组合根 = 唯一核心写调用落点(settle_batch / submit_window_selection / runner 推进)——切片纪律转正
|
||||
- 视图单元 = 信号外发 + setter 只读注入(BoardView 只读 A2、动作信号外发不碰核心写)
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
### Alternative 1: 战斗编排器设为 autoload
|
||||
- **Cons**: 编排器持有跨局状态却永生——生命周期与战斗域契约冲突(Uninit/BattleOver 状态机要求按局重建);与"autoload = 全局基础设施"边界冲突。
|
||||
- **Rejection Reason**: 切片形态(按局实例化)已验证且语义正确。
|
||||
|
||||
### Alternative 2: 棋盘 = 每格一个 Node2D
|
||||
- **Pros**: 独立节点动画/模组方便。
|
||||
- **Cons**: 每节点处理开销与 Control/Node2D 混管复杂度;无必要(specialist 指出 2D 同材质有批处理,draw call 论据最弱,但节点开销与混管论据成立)。
|
||||
- **Rejection Reason**: 逐格控件已覆盖需求且已验证。
|
||||
|
||||
### Alternative 3: TileMapLayer 承载棋盘
|
||||
- **Cons**: 4.5 物理分块默认变更(纯视觉不踩,但物理用途即触);瓦片语义与"变体标记/数字/旗多层叠加"不匹配。
|
||||
- **Rejection Reason**: 语义不匹配是硬伤;现形态无此问题。
|
||||
|
||||
## Consequences
|
||||
|
||||
### Positive
|
||||
- 结构与切片零迁移成本;core 隔离规则可静态扫描(ADR-0004)
|
||||
- 棋盘形态留有 D1 期复议空间且复议成本已如实登记
|
||||
|
||||
### Negative
|
||||
- 逐格控件形态在 D1 需要高表现力时可能仍需迁移 _draw(成本已登记:探针改造 + 命中测试自建 + push_input 端到端探针)
|
||||
- CJK 字体为新增资产义务(发行体积 +)
|
||||
|
||||
### Risks
|
||||
- D1 正式化时遗漏"探针与形态耦合"约束 → 缓解:本 ADR Decision 3 + ADR-0004 探针节双登记
|
||||
- core 类被随手加 autoload 裸引用 → 缓解:ADR-0004 静态扫描(parse 期即炸的事实使该风险自暴露)
|
||||
|
||||
## GDD Requirements Addressed
|
||||
|
||||
| GDD System | Requirement | How This ADR Addresses It |
|
||||
|------------|-------------|--------------------------|
|
||||
| d2-data-config.md | Rule 7 零 UI 依赖;Rule 2 单点访问 | core 隔离规则 + autoload 清单固化(ConfigDB/RngService 定名) |
|
||||
| game-concept.md | 视觉锚(绘制优先级栈、双通道) | 棋盘形态两案对比留档,D1 正式化按锚需求裁决 |
|
||||
| b1-settlement.md | Core Rule 1 编排器按局生命周期 | 编排器非 autoload、组合根按局实例化 |
|
||||
| docs/code-conventions.md | 领域命名 / 组合根纪律 | 目录结构与 Key Interfaces 转正 |
|
||||
|
||||
## Performance Implications
|
||||
- **CPU**: 144 常驻控件逐格更新——切片实测无压力;_draw 迁移后更优(单 draw call)
|
||||
- **Memory**: 可忽略
|
||||
- **Load Time**: CJK 字体载入一次性成本
|
||||
- **Network**: 不适用
|
||||
|
||||
## Migration Plan
|
||||
切片即目标形态(结构零迁移);CJK 字体接入与 _draw 复议归 D1 正式化批次。
|
||||
|
||||
## Validation Criteria
|
||||
- 冒烟 88/88 + 三探针在正式工程维持全绿
|
||||
- 静态扫描:core/ 零 Control extends / 零 .tscn preload / 零 autoload 全局标识符裸引用(ADR-0004 域)
|
||||
- 中文文案在导出包内显示正常(导出 checklist)
|
||||
|
||||
## Related Decisions
|
||||
- ADR-0001(接线纪律)、ADR-0002(渲染器与窗口键)、ADR-0004(扫描域与探针)
|
||||
- docs/architecture/architecture.md(Module Ownership / Required ADRs——本 ADR 落定后其 §Required ADRs 第 3 项闭合)
|
||||
@@ -1,132 +0,0 @@
|
||||
# ADR-0004: 测试载体与 CI(Test Carrier & CI)
|
||||
|
||||
## Status
|
||||
Accepted(2026-09-12,solo 模式用户授权代决;迭代期可推翻重议)
|
||||
|
||||
## Date
|
||||
2026-09-12
|
||||
|
||||
## Engine Compatibility
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Engine** | Godot 4.7.2-stable |
|
||||
| **Domain** | Core / Scripting(测试与工具链) |
|
||||
| **Knowledge Risk** | LOW(--script/探针模式为 4.x 基线;godot-specialist 校验通过,含两条规则升格) |
|
||||
| **References Consulted** | `docs/engine-reference/godot/`(四文件);godotengine/godot#6360(--script 模式不加载 autoload + 不注册全局标识符——官方立场) |
|
||||
| **Post-Cutoff APIs Used** | None |
|
||||
| **Verification Required** | None(切片 88/88 + 三探针已实证;CI 外部超时在正式 CI 接入时核对) |
|
||||
|
||||
## ADR Dependencies
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Depends On** | ADR-0003(core 隔离规则是扫描域的输入) |
|
||||
| **Enables** | 全部 GDD AC 的可执行化;正式 CI 接入 |
|
||||
| **Blocks** | `/gate-check` 前置项之一(`/test-setup` 以本 ADR 为基线) |
|
||||
| **Ordering Note** | gdUnit4 复议登记为 D2 OQ1 的关闭形态(推迟,非否决) |
|
||||
|
||||
## Context
|
||||
|
||||
### Problem Statement
|
||||
D2 GDD 定下 `--headless --script` 冒烟载体(脚本 extends SceneTree、autoload 显式实例化),D2 OQ1 留下"gdUnit4 是否引入"待决;切片新增了场景级 UI 探针形态;项目级静态扫描域散落在各 GDD AC(AC-9/17/21/22/43 等)需要一处统一登记。
|
||||
|
||||
### Constraints
|
||||
- headless 全套 < 30s 预算(technical-preferences)
|
||||
- 致命类用例独立进程协议("调用 → 期望退出码" runner manifest,D2 AC-2b 起)
|
||||
- 呈现层测试必须有承载(切片教训:已定稿 AC 全覆盖 core、呈现层零测试承载 → 缺陷 ①②④⑤ 漏网)
|
||||
|
||||
### Requirements
|
||||
- 双模式边界明确:逻辑冒烟(无 autoload)vs 场景探针(完整项目引导)
|
||||
- 静态扫描规则统一载体,覆盖 D2/A1–B4 各 AC 登记的扫描项
|
||||
- CI 可接入且防挂死
|
||||
|
||||
## Decision
|
||||
|
||||
**双载体 + 统一静态扫描域;gdUnit4 推迟到正式 CI 期。**
|
||||
|
||||
**1. 逻辑冒烟(`--headless --script`)**:脚本 extends SceneTree 以获得 `quit(code)`;ConfigDB/RngService 由脚本显式实例化(引擎事实:--script 模式**不加载 autoload 且不注册全局标识符**——裸引用 = parse error 编译期即炸,GH #6360 官方确认)。Windows 用 console 版 exe 取 stdout。承载:D2/A1–B4 全部纯逻辑 AC + 致命类独立进程 manifest。
|
||||
|
||||
**2. 场景探针(headless 跑 .tscn 探针场景)**:以探针场景为运行目标(`godot --headless --path . res://smoke/<probe>.tscn`)走正常项目引导——autoload 在位、真实 SceneTree、`await process_frame` 有效。承载:呈现层场景级测试(切片三探针 ui_probe / ui_click_probe / ui_tune_probe 为先例)。
|
||||
- **口径修正(specialist 校验)**:click_probe 走 `BoardView.click_cell` 是"真实翻译出口",**绕过 Viewport GUI 管线**(无命中测试/悬停/焦点)。表述定为"合成输入走真实翻译出口";真正的端到端输入测试 = `Input.parse_input_event()` / `Viewport.push_input` 带坐标——若 ADR-0003 的 _draw 迁移执行(Button 命中测试消失),push_input 探针从加分项变为**必需项**(登记入迁移工作项)。
|
||||
|
||||
**3. 项目级静态扫描域(统一登记,CI 与冒烟前置双跑)**:
|
||||
|
||||
| # | 规则 | 来源/动机 |
|
||||
|---|---|---|
|
||||
| S1 | 玩法代码禁 `randomize()`、自建 `RandomNumberGenerator` | D2 Rule 5(既有) |
|
||||
| S2 | **禁全局随机函数 `randi()` / `randf()` / `randf_range()`**(全局 RNG 绕开 RngService——specialist 补登漏洞) | D2 Rule 5 补全 |
|
||||
| S3 | core/ 禁 ConfigDB 外 data 表加载(`load(` / `preload(` / `ResourceLoader.load`;schema class_name 直引豁免) | D2 Rule 2(既有) |
|
||||
| S4 | core/ 禁 `extends Control/Node2D`、禁 `.tscn` preload | D2 Rule 7(既有) |
|
||||
| S5 | **core/ 禁裸引用 autoload 全局标识符**(`ConfigDB` / `RngService` 直接写 = script 模式 parse error)——构造注入 only | specialist 升格(切片已合规,规则防复发) |
|
||||
| S6 | core↔core 信号连接只许方法 Callable(禁 lambda 捕获 self);发射者禁持有订阅者反向引用 | ADR-0001(防循环引用/生命周期延长) |
|
||||
| S7 | B1 编排唯一性:B2/B3/B4 API 符号命中文件 ⊆ B1 文件集;A2/B3/B4 零相互直调 | B1 AC-43(既有) |
|
||||
| S8 | 结算路径 `await` 零命中(B1 结算/编排文件集);字面量扫描 = warning 级 + 人工三要素复核(D2 AC-14 口径) | B1(既有) |
|
||||
|
||||
**4. CI 防挂死**:任何探针/冒烟调用旁必须配**外部 wall-clock 超时**(命令行 timeout)——引擎自身无死锁探测;探针内 30 帧停滞检测(click_probe 先例)是第一道、外部超时是最后防线。headless 全套 < 30s 预算不变。
|
||||
|
||||
**5. gdUnit4:推迟到正式 CI 期再议**(D2 OQ1 以"deferred"关闭)。它运行在项目模式(autoload 在位),与 SceneTree 冒烟机制正交,引入不废弃既有用例。
|
||||
|
||||
### Architecture Diagram
|
||||
|
||||
```
|
||||
提交 → [静态扫描 S1–S8(秒级)] → [逻辑冒烟 --script(独立进程 manifest,<30s)]
|
||||
→ [场景探针 ×N(headless + 外部超时)] → 全绿放行
|
||||
```
|
||||
|
||||
### Key Interfaces
|
||||
- 冒烟 runner manifest:条目 = "调用 → 期望退出码"(独立进程、游戏通道)——D2 AC-2b 协议延续
|
||||
- 探针退出码:0 = PASS;非 0 = 失败类别;停滞 quit(2)
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
### Alternative 1: 立即引入 gdUnit4 并迁移全部冒烟用例
|
||||
- **Pros**: 标准 assertions/参数化/报告;编辑器面板。
|
||||
- **Cons**: 88 条用例迁移成本即刻发生;切片框架已验证且快(~3s);MVP 期无 CI 基建需求。
|
||||
- **Rejection Reason**: 收益在 CI 期才兑现——推迟(非否决),D2 OQ1 关闭形态。
|
||||
|
||||
### Alternative 2: 仅保留逻辑冒烟、UI 靠人工
|
||||
- **Cons**: 切片缺陷 ①②④⑤ 全部漏过既有 AC 的教训直接否定——呈现层无承载 = 呈现层缺陷零防线。
|
||||
- **Rejection Reason**: 呈现层契约测试是 code-conventions 硬性要求。
|
||||
|
||||
## Consequences
|
||||
|
||||
### Positive
|
||||
- 双模式边界以引擎事实固化(parse 期炸 vs 完整引导),不再靠约定俗成
|
||||
- S2/S5/S6 三条 specialist 补登规则堵住静默翻车路径(全局随机绕开、裸引用编译炸、lambda 成环)
|
||||
- 呈现层探针形态沉淀为项目标配(code-conventions 承载)
|
||||
|
||||
### Negative
|
||||
- 静态扫描规则 8 条的维护成本(新规则须挂真实反面案例——code-conventions 纪律)
|
||||
- "真实 UI 路径"表述收窄后,端到端输入覆盖存在已知缺口(_draw 迁移前可接受)
|
||||
|
||||
### Risks
|
||||
- 未被停滞检测覆盖的死锁挂死 CI → 缓解:外部 wall-clock 超时为硬性要求
|
||||
- 扫描规则漏报(启发式)→ 缓解:行为级硬证据并行(可回放断言、headless 实跑合成判定——D2 AC-9/10 模式)
|
||||
|
||||
## GDD Requirements Addressed
|
||||
|
||||
| GDD System | Requirement | How This ADR Addresses It |
|
||||
|------------|-------------|--------------------------|
|
||||
| d2-data-config.md | Rule 6 校验双通道;AC-2b 独立进程协议;OQ1 gdUnit4 | 冒烟框架定稿;manifest 延续;OQ1 关闭为 deferred |
|
||||
| a1–b1 各 GDD | 各自静态扫描 AC(AC-9/17/18/19/21/22/43 模式) | S1–S8 统一登记为项目级域,各 AC 引用本 ADR |
|
||||
| docs/code-conventions.md | 场景探针标配 / 提交前全量 | 双载体 + CI 链路承载 |
|
||||
| b1-settlement.md | AC-43 编排唯一性单向扫描 | S7 载体 |
|
||||
|
||||
## Performance Implications
|
||||
- **CPU**: 全套冒烟 ~3s(切片实测),预算 <30s 富余
|
||||
- **Memory**: headless dummy server 极低
|
||||
- **Load Time**: 探针场景引导一次性
|
||||
- **Network**: 不适用
|
||||
|
||||
## Migration Plan
|
||||
切片 smoke/ 目录即载体(零迁移);正式 CI 接入时补外部超时包装与 S1–S8 脚本化;`/test-setup` 以本 ADR 为基线脚手架。
|
||||
|
||||
## Validation Criteria
|
||||
- 冒烟 + 探针全绿为提交门(code-conventions"提交前全量")
|
||||
- 扫描域脚本化后:新增违规案例必须先补扫描规则再修码(缺陷-规范对照表纪律)
|
||||
- `<30s` 预算在 CI 环境复核
|
||||
|
||||
## Related Decisions
|
||||
- ADR-0001(S6 规则来源)、ADR-0003(S4/S5 规则来源、探针形态耦合)
|
||||
- docs/code-conventions.md(缺陷-规范对照表)、各 GDD AC 前言(规范源)
|
||||
@@ -1,104 +0,0 @@
|
||||
# ADR-0005: 存档契约与版本化(Save Contract & Schema Versioning)
|
||||
|
||||
## Status
|
||||
Accepted(2026-09-12,solo 模式用户授权代决;轻量契约 ADR——实现归 D3 Alpha,本 ADR 只锁契约使 Foundation 层 TR 覆盖闭合)
|
||||
|
||||
## Date
|
||||
2026-09-12
|
||||
|
||||
## Engine Compatibility
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Engine** | Godot 4.7.2-stable |
|
||||
| **Domain** | Core(数据/序列化契约) |
|
||||
| **Knowledge Risk** | LOW(契约层; FileAccess/JSON 基线稳定) |
|
||||
| **References Consulted** | `docs/engine-reference/godot/`(四文件);D2 GDD Rule 8 / EC9 / RNG 生命周期 |
|
||||
| **Post-Cutoff APIs Used** | None |
|
||||
| **Verification Required** | None(D3 实现期按契约验证) |
|
||||
|
||||
## ADR Dependencies
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Depends On** | None |
|
||||
| **Enables** | D3 存档序列化(Alpha)——契约先行,实现期免重议 |
|
||||
| **Blocks** | None |
|
||||
| **Ordering Note** | 清零 Foundation 层 TR 覆盖缺口(requirements-traceability.md 的最后两条 pending) |
|
||||
|
||||
## Context
|
||||
|
||||
### Problem Statement
|
||||
Technical Setup → Pre-Production 门要求"Foundation 层需求 ADR 覆盖零缺口"。63 条 TR 基线中 Foundation 层尚有两条无 ADR 承载:TR-d2-010(SCHEMA_VERSION 版本化)与 TR-gc-002(RNG 快照存续契约)。两者的契约在 D2 GDD 已定但散落,未 ADR 化——本 ADR 收拢,D3 Alpha 实现时照契约执行。
|
||||
|
||||
### Constraints
|
||||
- MVP 无元进度存档(C4/D3 归 Alpha)——本 ADR 不引入任何 MVP 实现
|
||||
- RNG 快照语义已被 D2 GDD(RNG 生命周期)与 B1 GDD(回放切点)锁定——本 ADR 只做契约归集,不改语义
|
||||
|
||||
### Requirements
|
||||
- 版本不匹配拒绝读取(高版本拒读,D2 EC9)
|
||||
- 续玩/复盘可从快照精确恢复随机序列
|
||||
- 快照切点与在飞流实例的互斥有明确归属
|
||||
|
||||
## Decision
|
||||
|
||||
**1. 版本化契约**:`SCHEMA_VERSION` 常量归 D2(既定);存档文件携带该版本号;**比较逻辑归 D3**(D2 EC9 既有分工)——存档版本 > 当前 SCHEMA_VERSION → 拒绝读取 + 明确错误信息;低版本存档的迁移策略归 D3 Alpha 设计时定(候选:拒读 / 迁移器——届时另议,非本 ADR 范围)。
|
||||
|
||||
**2. RNG 快照契约(从 D2/B1 GDD 收拢为 ADR 登记)**:
|
||||
- 快照内容 = `master_seed` + 各封闭流 scope 计数器 + 意图序列 + 窗口选择序列
|
||||
- **切点规则**:快照切出必须发生在 scope 事件边界之外(无在飞 `open_stream` 实例时);运行期 scope 事件边界 = board install(A1 取号 / B4 取号)——B1 编排保证无在飞实例跨界(消费侧遵守义务,B1 GDD 回放切点条款)
|
||||
- 违反后果:续玩/复盘与实况分叉(D2 AC-15 语义失效)——该前提由 D3 消费侧遵守,B1 侧编排义务已在位
|
||||
|
||||
**3. 存档内容归属预告(D3 Alpha 实现的输入清单,非本 ADR 决策)**:冒险结构(C2 域)、关卡进度(C1 域)、HP/库存(B1/B4 关卡域)、钥石/天赋(C4 MetaTable)、RAP 不持久(战斗域清零)。D3 GDD 立项时按此清单展开。
|
||||
|
||||
### Architecture Diagram
|
||||
(不适用——契约 ADR;数据流见 architecture.md §Data Flow 3)
|
||||
|
||||
### Key Interfaces
|
||||
- D3 → D2:读取 `SCHEMA_VERSION`(比较方向:存档版本 ≤ 当前才可读)
|
||||
- D3 → RngService:只读计数器接口(D2 已暴露)+ `set_master_seed`(仅 C2 调用——D3 只读快照、恢复时经 C2 重放接线)
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
### Alternative 1: 不立 ADR,依赖 D2/D3 GDD 散落条款
|
||||
- **Cons**: gate 的 Foundation 零缺口检查失败;契约散落三处(D2 EC9 / D2 RNG 生命周期 / B1 回放切点),D3 实现时需跨三文档拼装。
|
||||
- **Rejection Reason**: 收拢成本一次会话内,收益是门检查全绿 + D3 立项输入就绪。
|
||||
|
||||
### Alternative 2: 现在就设计存档格式(JSON vs 二进制 vs Resource)
|
||||
- **Cons**: C4/D3 未设计,过早——MVP 无存档需求牵引。
|
||||
- **Rejection Reason**: 违背"schema 先行、数值回填"的项目节奏;格式决策留给 D3 GDD。
|
||||
|
||||
## Consequences
|
||||
|
||||
### Positive
|
||||
- Foundation 层 TR 覆盖零缺口(门检查全绿)
|
||||
- D3 立项时的硬输入就绪(版本比较方向、快照内容、切点规则、内容归属清单)
|
||||
|
||||
### Negative
|
||||
- 无(纯收拢,零新约束)
|
||||
|
||||
### Risks
|
||||
- D3 Alpha 实现时偏离切点规则 → 缓解:本 ADR + D2 AC-15 / B1 AC-34 双侧断言承载
|
||||
|
||||
## GDD Requirements Addressed
|
||||
|
||||
| GDD System | Requirement | How This ADR Addresses It |
|
||||
|------------|-------------|--------------------------|
|
||||
| d2-data-config.md | Rule 8 版本化;EC9 高版本拒读;RNG 快照生命周期 | 契约收拢 + 版本比较归属(D3)成文 |
|
||||
| b1-settlement.md | 回放切点契约(快照语义 = seed + 计数器 + 两类输入序列) | 切点规则 ADR 化(无在飞实例时切出,scope 边界 = board install) |
|
||||
| game-concept.md | 存档/冒险/关卡术语层级(C4/D3 Alpha 范围) | 存档内容归属预告清单 |
|
||||
|
||||
## Performance Implications
|
||||
- **CPU / Memory / Load Time / Network**: 无(MVP 零实现;Alpha 期存档体积预期 < 1MB 量级)
|
||||
|
||||
## Migration Plan
|
||||
无迁移(MVP 零实现)。D3 GDD 立项(Alpha 期)以本 ADR 为硬输入。
|
||||
|
||||
## Validation Criteria
|
||||
- D3 实现后:同快照恢复 → 随机序列逐位一致(D2 AC-15 / B1 AC-34 形态)
|
||||
- 版本不匹配路径拒绝读取且错误信息含两侧版本号
|
||||
- tests/integration/ 收录存档往返测试(D3 落地时)
|
||||
|
||||
## Related Decisions
|
||||
- ADR-0001(回放输入序列的载体)、ADR-0004(集成测试载体)
|
||||
- docs/architecture/requirements-traceability.md(TR-d2-010 / TR-gc-002 覆盖闭合)
|
||||
@@ -1,141 +0,0 @@
|
||||
# ADR-0006: 战斗棋盘 Node2D 渲染迁移(Board Node2D Rendering Migration)
|
||||
|
||||
## Status
|
||||
Accepted(2026-09-23 用户拍板方向;本 ADR 落文。Phase A 棋盘实施另批执行;B 区舞台迁移为后续批,本 ADR 只定分工不排期)
|
||||
部分取代 ADR-0003 Decision 3(形态条款定向 Node2D,「禁盲目迁移」解除;autoload 清单 / 类形态 / CJK 字体前置等其余条款不变)
|
||||
|
||||
## Date
|
||||
2026-09-23
|
||||
|
||||
## Engine Compatibility
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Engine** | Godot 4.7.2-stable |
|
||||
| **Domain** | UI / 棋盘渲染 |
|
||||
| **Knowledge Risk** | MEDIUM(SubViewport 内 theme 传播与像素缩放纹路两项待实施批实证;其余为已验证引擎面) |
|
||||
| **References Consulted** | `docs/engine-reference/godot/`;ADR-0003 Decision 3 形态对比留档;art-bible §8.2 画布暂定档 |
|
||||
| **Post-Cutoff APIs Used** | None |
|
||||
| **Verification Required** | SubViewport 内 CJK 字体显式注入核对(实施批);分辨率两档装板校验(实施批) |
|
||||
|
||||
## ADR Dependencies
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| **Depends On** | ADR-0001(组合根接线纪律)、ADR-0002(渲染器与窗口键)、ADR-0003(场景结构与渲染形态——本 ADR 修订其 Decision 3) |
|
||||
| **Enables** | 表现层升级(B 区站桩 / 意图三档动画 / P3 演出需要 Node2D 载体);美术终稿资产 1:1 换入的槽位体系 |
|
||||
| **Blocks** | 无(B 区舞台迁移为本 ADR 分工内的后续批,不阻塞他批) |
|
||||
| **Amends** | ADR-0003 Decision 3(逐格控件形态维持条款)与 Alternative 2(逐格 Node2D 否决——否决理由「无必要」因表现层升级需求不再成立,节点开销论据维持有效) |
|
||||
|
||||
## Context
|
||||
|
||||
### Problem Statement
|
||||
ADR-0003 Decision 3 将棋盘渲染冻结为「GridContainer + 逐格常驻控件」,并登记 _draw/自绘迁移为 D1 正式化候选、迁移前禁盲目动手(探针耦合是登记成本)。2026-09-23 用户拍板:表现层走 Node2D 重构,**只迁战斗棋盘**,开始菜单(ui_assembler build_start_overlay)与各覆盖层保持 Control——分工不是替换。原「禁盲目迁移」条款与现行裁决冲突,需要新 ADR 定向解禁并落分工边界。
|
||||
|
||||
### Constraints
|
||||
- 战斗屏四区布局与分区尺寸是 HUD框架 结构冻结项——本迁移只换渲染技术,四区结构、双舞台常驻、尺寸表零改动(战斗屏进度条退场与四区→三区重排由停点前移批按文档修订流程另行落地,与本批解耦)
|
||||
- 组合根纪律(ADR-0001):核心写调用唯一落点不变;BoardView 信号外发 + 只读注入模式不变
|
||||
- 性能预算(HUD框架 引用值):同屏 draw calls < 200;进入战斗屏 500ms 内首格可点
|
||||
- 美术终稿资产全部缺位(样张批未跑)——迁移必须以程序化占位服役为前提,不新增素材前置
|
||||
- core/ 零 UI 依赖(D2 Rule 7)——本迁移全部发生在 presentation/,逻辑层零接触
|
||||
|
||||
### Requirements
|
||||
- B 区战斗画面(站桩立绘、意图三档动画、受击/死亡演出)的后续迁移不被本批堵死——骨架同构可复制
|
||||
- 分辨率两档(1280×800 / 1920×1080,2026-09-22 定案)与「格边长按分辨率档位计算」口径(2026-09-18 拍板,推翻两档定值冻结)继续成立
|
||||
- 三探针(ui_probe / ui_click_probe / ui_layout_probe)与冒烟全量基线不破
|
||||
|
||||
## Decision
|
||||
|
||||
**1. D 区棋盘本体迁 Node2D 渲染,BoardView 类名与公共面契约保持不变。**
|
||||
|
||||
BoardView(`presentation/views/board_view.gd`,现 extends Control + 内部 GridContainer)重构为:Control 壳参与屏幕栅格布局不变,壳内经 **SubViewportContainer + SubViewport + Node2D 世界**(BoardWorld)渲染棋盘。对外契约逐项保持:
|
||||
|
||||
| 契约面 | 消费方 | 保持方式 |
|
||||
|---|---|---|
|
||||
| 类名 `BoardView` / extends Control | ui_assembler 组装、屏幕栅格布局 | 不变 |
|
||||
| 信号 `action_requested` / `hover_forbidden` / `chord_attempted` | 组合根动作通道 | 不变 |
|
||||
| `click_cell(cell, button)` 公共入口 | ui_click_probe 直调路径(ui_click_probe.gd:257–277) | 不变 |
|
||||
| `_cells` 字典(Vector2i → 格单元) | ui_probe `_cells.is_empty()/.size()` 断言(ui_probe.gd:73/187)、ui_click_probe.gd:97 | 键面不变,值 Button → 格单元 Node2D |
|
||||
| `board()` / `set_desaturated()` / `set_identity_resolver()` / `set_variant_mask_resolver()` / `set_cell_area()` / `rebuild()` / `refresh()` | 组合根与探针 | 不变 |
|
||||
| `cell_size` 只读属性 | ui_layout_probe `get("cell_size")`(现返回 null——`_cell` 为私有名) | 增补只读属性,顺手修正 |
|
||||
|
||||
**2. 渲染技术分工表(本 ADR 核心裁决——「三块模型」)。**
|
||||
|
||||
战斗屏渲染技术按内容形态切分,与屏幕布局正交。**战斗屏目标形态 = B/C/D 三区**(2026-09-23 用户裁定:战斗画面不再保留关卡进度条——战斗结束后返回关卡画面,节点链进度只留关卡画面):
|
||||
|
||||
| 内容 | 渲染技术 | 批次 |
|
||||
|---|---|---|
|
||||
| D 区棋盘本体(格面/数字/旗/徽章/变异纹带/高亮/微光) | **Node2D**(本 ADR) | Phase A(本批立项) |
|
||||
| B 区战斗舞台(主角/敌人站桩、意图三档动画、受击/死亡演出、FX) | **Node2D** | Phase B(后续批,本 ADR 只定分工) |
|
||||
| A 区关卡进度条 | Control | **战斗屏退场且代码退役**(裁定见下;退场落地随停点前移批——流程未倒置前 A 区仍是战斗中唯一节点链可视面,先删致盲,本批不动其现状) |
|
||||
| C 区角色信息(数据框/状态槽/立绘) | Control | 不动 |
|
||||
| D 区 AP 条、按钮组、toast 槽 | Control | 不动 |
|
||||
| B 区结算明细带、回合阶段指示、战斗日志 | Control(文本件) | 不动(Phase B 时留 B 区 Control 半区) |
|
||||
| 全部弹层(选路/节点/结算/图例/营地/开始菜单) | Control | 不动(2026-09-23 用户拍板) |
|
||||
|
||||
**A 区退场形态(2026-09-23 追问裁定)**:LevelStripView **退役,不迁移**;关卡画面**不重新实现**——由 RouteOverlay(整幅节点图选路层,节点态色板语义与压缩条同族、候选按钮与放弃入口在役)升级为常驻页面承接。压缩条唯一存在理由(战斗屏无整图时的常显替代面)随零进度裁定消亡,无独有资产流失;唯一继承面 = 逻辑层节点数据面(runner 只读出口零改动)。退役删除面清单见迁移方案 §1。
|
||||
|
||||
**3. 命中测试 = 板级公式换算单点,非逐格 Area2D。**
|
||||
|
||||
鼠标输入经 BoardView 壳层 `_gui_input` 接收(Control 已有的矩形命中),格坐标 = `floor(local_pos / 格边长)` 单点公式换算——悬停/点选/双击 chord/长按全部复用现有逻辑入口。不为 144 格建 Area2D(节点开销无必要,Alternative 2 论据沿用);ADR-0003 登记的「自建命中测试」成本由此收敛为一个公式函数。无障碍面缺失为接受后果(沿 ADR-0003 Decision 3 已登记口径,键盘寻格体系延后)。
|
||||
|
||||
**4. 素材槽位按圣经 §8.2 暂定档预留,程序化占位继续服役。**
|
||||
|
||||
格单元内部为固定叠层序的精灵槽位(砖面 < 变异纹带 < 数字/徽章 < 旗 < 焦点高亮),本批全部槽位由程序化绘制填充(现行占位等价平移);终稿纹理(格面 32×32 暂定档)到位后 1:1 换入,零结构返工。**美术缺口不阻塞本迁移**——样张批终值(格边长×格源占比摩擦,v1.9 待决注记①路线)只换 `set_cell_area` 单点数值,不动架构。
|
||||
|
||||
**5. SubViewport 模式为两舞台统一骨架,Phase B 复制不返工。**
|
||||
|
||||
Phase B 届时将 BattleStageView 同构改造(PanelContainer → Control 壳 + SubViewport 舞台 + 结算明细带 Control 半区)。本批在 ui_assembler 组装侧不引入「单舞台」写死假设,SubViewport 内 theme/字体注入做成可复用挂点(两舞台共用)。
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
### Alternative 1: 维持逐格控件形态(ADR-0003 现行)
|
||||
- **Cons**: 表现层升级(站桩动画/演出/FX)在 Control 树内无载体,最终仍需二次迁移;两次改造总成本高于一次定向。
|
||||
- **Rejection Reason**: 2026-09-23 用户已定向 Node2D;本 ADR 职责是把方向落为工程边界。
|
||||
|
||||
### Alternative 2: 直挂 Node2D(Control 壳内手挂 Node2D,无 SubViewport)
|
||||
- **Cons**: 屏幕坐标↔棋盘坐标换算、缩放纪律、两档分辨率适配全部自建;布局联动手工维护。
|
||||
- **Rejection Reason**: SubViewportContainer 是 Control——容器栅格布局引擎原生参与,鼠标坐标引擎换算,内部分辨率固定使像素缩放纪律有单点可管。
|
||||
|
||||
### Alternative 3: 逐格 Area2D 承载命中
|
||||
- **Cons**: 144 个 Area2D 节点开销与信号接线量;命中语义(相邻约束/chord/长按)仍要自建。
|
||||
- **Rejection Reason**: 板级公式换算单点已覆盖全部交互语义,物理命中是纯开销。
|
||||
|
||||
### Alternative 4: TileMapLayer 承载棋盘
|
||||
- **Rejection Reason**: ADR-0003 已否(瓦片语义与变体标记/数字/旗多层叠加不匹配),维持。
|
||||
|
||||
### Alternative 5: B 区与棋盘同批迁移
|
||||
- **Cons**: B 区站桩形态绑美术样张批(剪影/动画方案未冻结),混批互卡。
|
||||
- **Rejection Reason**: 2026-09-23 用户拍板分批——先只迁棋盘,战斗画面 Node 后续完成。
|
||||
|
||||
## Consequences
|
||||
|
||||
### Positive
|
||||
- 表现层升级获得渲染载体;棋盘先行验证 SubViewport 骨架,B 区复制模式即可
|
||||
- BoardView 公共面契约保持——三探针与组合根零改造(实证耦合面仅 `_cells` 键面/`click_cell`/`cell_size`,全部保留)
|
||||
- 素材终稿 1:1 换入,样张批与渲染批解耦,互不阻塞
|
||||
- 逻辑层(core/)零接触——MC/模拟试玩/verifier 读数面零影响
|
||||
|
||||
### Negative
|
||||
- Node2D 世界内 theme 不自动继承主场景 Control 主题——CJK 字体与 ui_kit 样式需显式注入(实施批义务,ADR-0003 Decision 4 关联)
|
||||
- 键盘寻格/无障碍面缺失口径延续(已登记接受)
|
||||
- 非整数缩放的像素纹路风险(45/36px 锚点 × 32px 格源非整倍)——沿 §8.2 路线归样张批定终值,架构只保证 `set_cell_area` 单点可调
|
||||
|
||||
### Risks
|
||||
- SubViewport 渲染目标在低端机的显存/带宽开销 → 缓解:棋盘区逻辑分辨率小(≤ 12×12×36px 量级),实施批实测帧预算
|
||||
- 输入路径改 `_gui_input` 后现探针全走 `click_cell` 直调,公式换算无自动化覆盖 → 缓解:实施批增补 push_input 端到端输入探针(ADR-0003 已登记项,本批转义务)
|
||||
|
||||
## Migration Plan
|
||||
Phase A(棋盘,实施另批):BoardView 内部重构 + 探针增补 + 冒烟全量回归 + 文档随批(HUD框架渲染注记/battle.md 实现注记/architecture.md 模块归属行)。Phase B(B 区舞台,后续批):同构复制 + 站桩精灵迁移 + 意图动画承载;开工前置 = 样张批冻结剪影与动画方案。战斗屏进度条退场的 GDD 修订面(HUD框架 四区表、关卡节点地图 节点链常显条款、battle.md 像素布局表与 28px 纵向空间再分配)随停点前移批(关卡画面成为常驻枢纽)落地,不随本批。工程细节见同目录 `board-node2d-migration-plan.md`。
|
||||
|
||||
## Validation Criteria
|
||||
- 冒烟全量绿(现行基线不破);三探针(ui / ui_click / ui_layout)绿
|
||||
- 新增 push_input 端到端输入探针绿(悬停/左键/右键/chord 各一case)
|
||||
- 功能等价清单:数字/旗/徽章/危险红/变异纹带/呼吸微光/悬停/路径预览/灰化(set_desaturated)/出生展开区 R₀ 豁免,逐项可点可验
|
||||
- 性能预算:同屏 draw calls < 200;进入战斗屏 500ms 内首格可点
|
||||
- 分辨率两档(1280×800 / 1920×1080)装板校验通过(12×12 与 10×10 板各验)
|
||||
|
||||
## Related Decisions
|
||||
- ADR-0003(本 ADR 部分取代其 Decision 3;Alternative 2 否决理由更新)
|
||||
- ADR-0001(组合根纪律——BoardView 信号外发模式沿袭)
|
||||
- art-bible §8.2(画布暂定档与缩放纪律)、HUD框架(四区结构冻结与性能预算引用值)、battle.md(格尺寸公式锚点)
|
||||
@@ -1,80 +0,0 @@
|
||||
# ADR-0007: 全游戏随机流统一评估(RNG Single Stream Evaluation)
|
||||
|
||||
## Status
|
||||
|
||||
**已裁决:方案丙(并流 + 全事件日志)——2026-09-27 用户裁决,随批落地**。推荐案甲未被采纳,评估书正文保留原样作决策记录;丙的实施 = 统一随机流批(rng_service.gd 重写 + 七消费点迁移 + 单盐黄金向量重登记 + 事件日志会话制),验证与工单清单见文末「落地记录」。
|
||||
|
||||
背景:2026-09-27 用户在[关卡节点图生成](../../gdd/systems/冒险循环/关卡节点图生成.md)拍板点②两轮复裁终选「随机数统一用一个流」(全面执行),并拍板执行路径 = **先出本评估书再动手**、节点图特性实施排队其后。本评估书按用户要求如实给出:现行机制事实、统一流的真实改动面、三个备选与推荐。裁决本 ADR 后按裁决执行。
|
||||
|
||||
## Date
|
||||
|
||||
2026-09-27
|
||||
|
||||
## Context
|
||||
|
||||
### 用户动因(如实记录)
|
||||
|
||||
用户质疑链全程:①问「增流是什么、文档没说明」→ ②质疑「借流复现口径变含糊」论断:「如果所有的随机数获取都是有完整记录的,那不是都可以一一复现吗?我觉得你的理论不对」→ ③收到机制澄清(复现=主种子+计数器按位重推导、非日志回放)与两条代价说明后,仍两轮终裁「统一用一个流」。动因解读:用户重视**单一随机源的心智简洁**,对"七条流"的分栏结构存疑(直觉=繁琐),并认为完整记录即可复现一切。
|
||||
|
||||
### 现行机制事实(全部带代码锚)
|
||||
|
||||
| 事实 | 锚点 |
|
||||
|---|---|
|
||||
| 唯一主种子:冒险开始恰一次注入,禁中途重播种(全零断言) | `game/core/rng_service.gd:80-105` |
|
||||
| 唯一派生公式族:derive(stream, scope) = mix64(SALT_s XOR (master + scope×GOLDEN)) | `game/core/rng_service.gd:61-77` |
|
||||
| 七条流 = 七个盐值常量(同一公式、同一主种子) | `game/core/rng_service.gd:14-24` |
|
||||
| 零旁路随机:randomize()/自建 RNG 硬性红线 | CLAUDE.md 硬性红线;`rng_service.gd:4` |
|
||||
| 每流独立计数器;快照观测面 counter() | `rng_service.gd:36,140-142` |
|
||||
| 复现 = 按(流,号位)重新推导,非日志回放 | registry `rng_service`/`stream_seed_derivation` 条目 |
|
||||
| 计数器实际持久化:**现行存档未写各流计数器**(adventure_runner 摘要只落 master_seed) | `game/core/adventure_runner.gd:59,83,217` |
|
||||
| 黄金向量断言(R3 8 常量) | `game/smoke/smoke_all.gd:34-36,3121+` |
|
||||
| MC 逐局独立种子 | `game/smoke/adventure_monte_carlo.gd:15,52` |
|
||||
|
||||
**核心发现**:字面目标「全游戏随机数派生自同一个源、可逐位复现、没有多套随机」——**现行架构已经满足**。七条流不是七个随机源,是同一主种子的七个盐值分栏(分栏只改派生种子,不改源)。真正剩下的唯一改动 = **把七条分栏计数器并为一个全局计数器**(物理并流)。
|
||||
|
||||
### 七流消费点清单(并流迁移面)
|
||||
|
||||
| 流 | 消费点 | 取号时机 |
|
||||
|---|---|---|
|
||||
| board_gen | `board_generator.gd:16`、`battle_orchestrator.gd:141` | 每张棋盘 |
|
||||
| reward_roll | `reward_economy.gd:61` | 每次装板批 |
|
||||
| encounter | `battle_orchestrator.gd:116` | 每次战斗实例化(数量骰) |
|
||||
| armor_roll | `damage_controller.gd:286`(流名走配置 `db.settlement.armor_roll_stream`) | 每次命中掷点 |
|
||||
| behavior_roll | 战斗结算开轮摇号(SkillLottery;子流 scope = spawn_index×1000000+序) | 每敌每轮 |
|
||||
| variant_place | `battle_orchestrator.gd:198` | 每板变异布置 |
|
||||
| gp_drop | `battle_orchestrator.gd:737` | 每战末掉落掷定 |
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
### 方案甲:字面达成·维持分栏(node_map 作第八栏)
|
||||
|
||||
承认字面目标已满足(核心发现);节点图抽签按既有增流纪律接入第八栏。零迁移、位置语义(号位=第 N 次某类事件)完整保留、黄金向量与对拍口径不动。
|
||||
|
||||
### 方案乙:物理并流(用户终裁方向,如实评估)
|
||||
|
||||
单盐单全局计数器:derive(scope) = mix64(SALT_0 XOR (master + scope×GOLDEN)),scope = 全局顺序号。三个后果(均已向用户两轮呈报,此处落档):
|
||||
|
||||
1. **号位失去事件语义**——第 N 号只回答"全局第 N 次取数",不再回答"第 N 次什么"。玩家换条路(战斗次数变化)后,同一 N 号对应的事件种类漂移。
|
||||
2. **路线依赖**——任何一处随机事件数量/顺序变化平移其后全部骰子;对拍工具"行数恒等纯次序位移"性质失效;"这局 Boss 为什么没中"类单点归因需全序重放。
|
||||
3. **连带改动面**——七消费点迁移(上表 6 文件);armor_roll 流名配置语义失效(`db.settlement.armor_roll_stream` 并流后无意义);behavior_roll 子流位(spawn_index×STRIDE)重设计;快照契约登记面变更(7 计数器→1,实际存档未持久化计数器故代码迁移面小);R3 黄金向量 8 常量全量重生成;MC/对拍读数与旧基线断档(全部历史基线作废重测)。
|
||||
|
||||
### 方案丙:并流 + 全事件日志(用户的「完整记录」模型落地)
|
||||
|
||||
乙 + 每次取数落盘(流名/号位/用途/返回值),以此恢复单点定位能力。代价 = 乙全部代价 + 每次取数的写盘开销与日志体积;且日志回放与按位重推导并存 = 两套复现机制并存。
|
||||
|
||||
## Recommendation
|
||||
|
||||
**推荐甲**:用户的核心诉求(单一随机源、完整可复现、无多套随机)现行架构字面满足;乙/丙是为一个已满足的目标支付真实的分析能力与一次性迁移成本。本 ADR 按用户裁决路径交付评估,**若用户裁决维持乙,上表「连带改动面」即实施批工单,按乙执行,本特性排队其后**——两个方向都已备好,裁决即动。
|
||||
|
||||
## Consequences
|
||||
|
||||
- 裁决甲:节点图生成实施批按第八栏增流推进(改代码+金向量+冒烟断言三件套),本评估书归档为架构记录。
|
||||
- 裁决乙:先开 rng 架构批(迁移工单如上),全量回归后节点图生成实施批接续;历史 MC 基线全部作废重测归曲线调参批。
|
||||
- 裁决丙:同乙,另加日志面设计与写盘性能验收。
|
||||
|
||||
## 落地记录(统一随机流批 2026-09-27)
|
||||
|
||||
- 代码:rng_service.gd 重写(单盐 SINGLE_SALT=原 board_gen 盐 / 全局计数器 / 用途标签 open_stream(purpose) / derive_at(scope) 单参 / open_scope 与 BEHAVIOR_SUBSTREAM_STRIDE 退役 / 事件日志会话制 user://logs/rng_log_<主种子>.jsonl);消费点七处迁移(board_generator/reward_economy/battle_orchestrator×4/damage_probe/skill_rhythm_probe/smoke_all 向量与计数断言);behavior_roll 子流派生向量退役(逐敌顺序取号替代,单敌轨迹独立复放面随之退役——冒烟 ③ 测试同批退役,同种子全战斗对拍由 ② 承载)。
|
||||
- 向量:统一流 8 常量重登记(scope 0-3 与旧 board_gen 向量逐位连续——单盐沿用其盐);registry stream_seed_derivation 全量改版。
|
||||
- 测试:冒烟 557/0 三闸全过(nat20/极性路由/L2 max 三处种子硬编码测试改行为面扫描——并流后随机值面漂移的测试面重锚);四场景探针全绿(ui_input_probe 加「移位扩边」前置——板面种子漂移下前沿不足两格时沿已开区点击移位);MC 20 局逐局独立跑通,事件日志逐冒险落盘实证。
|
||||
- 行为面基线:并流后全部历史 MC/verifier 基线作废,重测归曲线调参批(测量对账条款既有口径)。
|
||||
@@ -1,127 +1,135 @@
|
||||
# Dungeon Sweeper — Master Architecture
|
||||
# Dungeon Sweeper — 总体架构文档
|
||||
|
||||
## Document Status
|
||||
## 文档状态
|
||||
|
||||
- Version: 1.3
|
||||
- Last Updated: 2026-09-26(战斗舞台 Node2D 迁移 Phase B:D1 层表 BattleStageView 形态注记——引 ADR-0006;Phase A 注记 2026-09-23)
|
||||
- Engine: Godot 4.7.2-stable(GDScript 单语言;2026-09-07 锁定)
|
||||
- Review Mode: solo(`production/review-mode.txt`,2026-09-12 用户拍板——TD/LP 门禁按 solo 跳过,用户授权架构产出自主推进、迭代期回调)
|
||||
- GDDs Covered: game-concept · game-pillars · systems-index · d2-data-config · a3-action-economy · a4-terrain-variation · b3-status-effect · a1-board-generation · a2-minesweeper-rules · b2-enemy-system · b4-reward-item-economy · b1-settlement(12 份;A5/C1–C4/B5/D3–D6 未设计,按 systems-index 依赖分层预留)
|
||||
- ADRs Referenced: 无(0 份现存)——本文档 Phase 5/6 列出的实现期裁决项即为首批 ADR 候选
|
||||
- Implementation Evidence: 垂直切片 `game/`(2026-09-10 起,冒烟 88/88、三 UI 探针 PASS)——本文档的分层/所有权/数据流均经切片实现验证,非纯纸面设计
|
||||
- Technical Director Sign-Off: 2026-09-12 — APPROVED WITH CONDITIONS(条件:Required ADRs 于正式工程骨架搭建前定稿;`.claude/docs/director-gates.md` 缺失已登记技术债)
|
||||
- Lead Programmer Feasibility: SKIPPED — Solo mode
|
||||
- 版本:1.8
|
||||
- 最近更新:2026-10-17(迭代 27/28 GDD 反哺点写入——新增「呈现层装配与会话生命周期」节(视觉层装配合同/三屏壳/RunScope 生命周期与存活性矩阵/ModalFlow tags 协议)、战斗域现状补结算五段与 RunLedger 四账、初始化顺序补启动后置条件六条,均 2026-10-17 用户裁按推荐案写入;实现实证行读数换代)
|
||||
- 引擎:Godot 4.7.2-stable(GDScript 单语言;2026-09-07 锁定)
|
||||
- 评审模式:solo(`review-mode.txt`,2026-09-12 用户拍板——TD/LP 门禁按 solo 跳过,用户授权架构产出自主推进、迭代期回调)
|
||||
- 覆盖 GDD:现行全集——`design/gdd/` 顶层 00–08 共 9 件 + `systems/` 五域 25 件(排雷循环 4 / 战斗循环 5 / 冒险循环 5 / 跨局循环 5 / 表现与支撑 6)+ `ux/` 8 件;原英文命名 12 份系统 GDD 已全部迁入中文域目录,原「未设计」预留(A5 扫雷秘宝 / C1–C4 / B5 / D3–D6)均已立项成文
|
||||
- 事实源地位:本文是架构事实的唯一来源——分层/所有权/数据流/API 边界/测试与质量域均以本文为准;历史决策沿革查 git commit log,不另设决策文档体系
|
||||
- 实现实证:`game/`(2026-09-10 起开发,**现为完整游戏开发版本,已非垂直切片**;迭代 29 已入库合并——冒烟 1127/0、单元 33 套(含 1 集成)、重闸按改动域分跑在役)——本文档的分层/所有权/数据流均经实现验证,非纯纸面设计
|
||||
- 技术总监签核:2026-09-12 — 有条件通过(原条件「决策记录须于正式工程骨架前定稿」已满足:骨架已成、沿革在 git 历史可查;`.claude/docs/director-gates.md` 缺失已登记技术债)
|
||||
- 主程序可行性:跳过 — solo 模式
|
||||
|
||||
---
|
||||
|
||||
## Engine Knowledge Gap Summary
|
||||
## 引擎知识缺口摘要
|
||||
|
||||
- **风险等级:MEDIUM**(2026-09-12 `/setup-engine refresh` 后由 HIGH 降级)。4.5→4.7 官方迁移指南已逐条核实并入 `docs/engine-reference/godot/breaking-changes.md` 与 `deprecated-apis.md`;**结论:无一条破坏 GDD 已锁架构契约**(autoload 体系 / .tres 单一事实源 / Callable 信号 / int64 二补数 / headless SceneTree 协议均不受影响)。
|
||||
- **风险等级:MEDIUM**(2026-09-12 `/setup-engine refresh` 后由 HIGH 降级)。4.5→4.7 官方迁移指南已逐条核实并入 `design/dev/engine-reference/godot/breaking-changes.md` 与 `deprecated-apis.md`;**结论:无一条破坏 GDD 已锁架构契约**(autoload 体系 / .tres 单一事实源 / Callable 信号 / int64 二补数 / headless SceneTree 协议均不受影响)。
|
||||
- 写码纪律不变:不确定的 API 一律查 `docs.godotengine.org/en/4.7/` 核实后再用;4.8(dev 阶段)稳定版发布后跑 `/setup-engine refresh`。
|
||||
- 三类必须入编码纪律的引擎事实(详见 `docs/engine-reference/godot/current-best-practices.md`):
|
||||
- 三类必须入编码纪律的引擎事实(详见 `design/dev/engine-reference/godot/current-best-practices.md`):
|
||||
1. **GDScript 4.7 两条语义变化**:打包数组元素赋值不再触发属性 setter;类型化返回的方法覆盖必须显式 `return`。
|
||||
2. **新项目默认值已变**:stretch mode `canvas_items` / aspect `expand`(4.7);Windows 渲染驱动 D3D12(4.6,仅 Forward+ 线)——创建 project.godot 后逐项核对。
|
||||
3. `Resource.duplicate(true)` 深复制不再覆盖外部子资源——D2 表资源复制语义注意。
|
||||
- 残余风险敞口:modules/ 分域参考未建(按实现期需要建,非阻塞);UI/渲染域(D1/B5)为 MEDIUM 风险集中地,随 ADR-0002/0003 裁决时对照引擎文档核实。
|
||||
- 残余风险敞口:modules/ 分域参考未建(按实现期需要建,非阻塞);UI/渲染域(D1/B5)为 MEDIUM 风险集中地——渲染器与窗口基座已定(gl_compatibility + 1280×800,2026-09-12),采纳引擎增量前对照文档核实。
|
||||
|
||||
---
|
||||
|
||||
## System Layer Map
|
||||
## 系统分层图
|
||||
|
||||
20 系统按 systems-index 依赖分层表(systems-design 门禁已评审)映射到标准五层。切片实现已验证该分层(core/ 纯逻辑零 UI 依赖 headless 可跑、presentation/ 组合根模式)。
|
||||
20 系统按 `design/gdd/02-系统清单.md` 依赖分层表映射到标准五层。实现已验证该分层(core/ 纯逻辑零 UI 依赖 headless 可跑、presentation/ 组合根模式)。
|
||||
|
||||
```
|
||||
┌────────────────────────────────────────────────────────────┐
|
||||
│ PRESENTATION LAYER │
|
||||
│ D1 HUD 与界面框架 (MVP) · B5 战斗表现 (切片后) │
|
||||
│ D4 音频 (Alpha) · D5 教学引导 (Alpha) │
|
||||
│ 呈现层 │
|
||||
│ D1 HUD 与界面框架 (MVP) · B5 战斗表现 │
|
||||
│ D4 音频 (Beta) · D5 教学引导 (Beta) │
|
||||
├────────────────────────────────────────────────────────────┤
|
||||
│ FEATURE LAYER │
|
||||
│ B1 战斗结算编排 (MVP) · C1 关卡节点地图 (切片已含 lite) │
|
||||
│ 功能层 │
|
||||
│ B1 战斗结算编排 (MVP) · C1 关卡节点地图 (lite 已实装) │
|
||||
│ C2 冒险结构 · C3 难度曲线 · C4 元进度 (Alpha) │
|
||||
├────────────────────────────────────────────────────────────┤
|
||||
│ CORE LAYER │
|
||||
│ 核心层 │
|
||||
│ A1 扫雷棋盘生成 · A2 排雷玩法规则 · B2 敌人系统 │
|
||||
│ B4 地图战斗资源 · A5 扫雷秘宝 (垂直切片) │
|
||||
│ B4 地图战斗资源 · A5 扫雷秘宝 │
|
||||
├────────────────────────────────────────────────────────────┤
|
||||
│ FOUNDATION LAYER │
|
||||
│ 基础层 │
|
||||
│ D2 数据配置与数值表 · A3 行动经济 · A4 地形变异 │
|
||||
│ B3 增益/状态系统 · D3 存档序列化 (Alpha) · D6 设置/本地化│
|
||||
├────────────────────────────────────────────────────────────┤
|
||||
│ PLATFORM LAYER │
|
||||
│ 平台层 │
|
||||
│ Godot 4.7.2 引擎 API 面(GDScript / Resource / │
|
||||
│ SceneTree / Control / InputEvent)——无游戏系统 │
|
||||
└────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
> 层名对照:基础层=Foundation、核心层=Core、功能层=Feature、呈现层=Presentation、平台层=Platform——本文一律用中文名;跨文档与代码目录仍见英文名(`game/core/`、`game/presentation/` 等目录名不改)。
|
||||
|
||||
| 系统 | 层 | 里程碑 | headless 约束 | 引擎风险域 |
|
||||
|---|---|---|---|---|
|
||||
| D2 数据配置 | Foundation | MVP | ✅ 完整可跑 | LOW(Resource/.tres 基线稳定) |
|
||||
| A3 行动经济 | Foundation | MVP | ✅ 完整可跑 | LOW(纯逻辑) |
|
||||
| A4 地形变异 | Foundation | MVP | ✅ 完整可跑 | LOW(纯逻辑) |
|
||||
| B3 状态系统 | Foundation | MVP | ✅ 完整可跑 | LOW(RefCounted 纯逻辑) |
|
||||
| A1 棋盘生成 | Core | MVP | ✅ 完整可跑 | LOW(纯逻辑;性能姿态归 ADR-0005) |
|
||||
| A2 排雷规则 | Core | MVP | ✅ 完整可跑 | LOW(零表读取零 UI) |
|
||||
| B2 敌人系统 | Core | MVP | ✅ 完整可跑 | LOW(纯逻辑) |
|
||||
| B4 地图战斗资源 | Core | MVP | ✅ 完整可跑 | LOW(纯逻辑) |
|
||||
| B1 战斗结算编排 | Feature | MVP | ✅ 完整可跑(禁 await) | LOW(纯逻辑;事件载体归 ADR-0001) |
|
||||
| C1 关卡节点地图 | Feature | 垂直切片(lite 已入切片) | ✅(切片 level_runner 先例) | LOW |
|
||||
| C2 冒险结构 | Feature | 垂直切片 | ✅ | LOW |
|
||||
| C3 难度曲线 | Feature | 垂直切片 | ✅ | LOW |
|
||||
| C4 元进度 | Feature | Alpha | ✅ | LOW |
|
||||
| D1 HUD | Presentation | MVP | ❌(UI 层——场景级探针测试承载) | **MEDIUM**(Control/Input/文本域) |
|
||||
| B5 战斗表现 | Presentation | 垂直切片 | ❌ | **MEDIUM**(Animation/Tween/渲染) |
|
||||
| D4 音频 / D5 教学 | Presentation | Alpha | 部分 | LOW-MEDIUM |
|
||||
| D3 存档序列化 | Foundation | Alpha | ✅ | LOW |
|
||||
| D6 设置/本地化 | Foundation | 完整愿景 | ✅ | LOW |
|
||||
| D2 数据配置 | 基础层 | MVP | ✅ 完整可跑 | LOW(Resource/.tres 基线稳定) |
|
||||
| A3 行动经济 | 基础层 | MVP | ✅ 完整可跑 | LOW(纯逻辑) |
|
||||
| A4 地形变异 | 基础层 | MVP | ✅ 完整可跑 | LOW(纯逻辑) |
|
||||
| B3 状态系统 | 基础层 | MVP | ✅ 完整可跑 | LOW(RefCounted 纯逻辑) |
|
||||
| A1 棋盘生成 | 核心层 | MVP | ✅ 完整可跑 | LOW(纯逻辑) |
|
||||
| A2 排雷规则 | 核心层 | MVP | ✅ 完整可跑 | LOW(零表读取零 UI) |
|
||||
| B2 敌人系统 | 核心层 | MVP | ✅ 完整可跑 | LOW(纯逻辑) |
|
||||
| B4 地图战斗资源 | 核心层 | MVP | ✅ 完整可跑 | LOW(纯逻辑) |
|
||||
| B1 战斗结算编排 | 功能层 | MVP | ✅ 完整可跑(禁 await) | LOW(纯逻辑) |
|
||||
| C1 关卡节点地图 | 功能层 | MVP(切片期实装) | ✅(切片 level_runner 先例) | LOW |
|
||||
| C2 冒险结构 | 功能层 | MVP(切片期实装) | ✅ | LOW |
|
||||
| C3 难度曲线 | 功能层 | MVP(切片期实装) | ✅ | LOW |
|
||||
| C4 元进度 | 功能层 | Alpha | ✅ | LOW |
|
||||
| D1 HUD | 呈现层 | MVP | ❌(UI 层——场景级探针测试承载) | **MEDIUM**(Control/Input/文本域) |
|
||||
| B5 战斗表现 | 呈现层 | 切片后立项(未实装,前置战斗表现美术测试) | ❌ | **MEDIUM**(Animation/Tween/渲染) |
|
||||
| D4 音频 / D5 教学 | 呈现层 | Beta(2026-10-13 Alpha 版本标准裁:与游戏内容无关者一律排 Beta) | 部分 | LOW-MEDIUM |
|
||||
| D3 存档序列化 | 基础层 | Alpha | ✅ | LOW |
|
||||
| D6 设置/本地化 | 基础层 | 完整愿景 | ✅ | LOW |
|
||||
|
||||
**MVP 关键路径**(切片已验证):D2 → A3/A4/B3 → A1 → A2 → B2/B4 → B1 → D1-lite。
|
||||
**MVP 关键路径**(实现已验证):D2 → A3/A4/B3 → A1 → A2 → B2/B4 → B1 → D1-lite。
|
||||
**依赖分层与唯一回边**:A2 只外发三事件(cell_revealed / flag_judged / round_end),B4/B1 订阅后回调——A2 不依赖任何下游(TD-SYSTEM-BOUNDARY 裁决,全项目唯一允许回边)。
|
||||
|
||||
---
|
||||
|
||||
## Module Ownership
|
||||
## 模块归属
|
||||
|
||||
> 命名遵循 `docs/code-conventions.md`:领域命名、禁 ID 前缀、头注溯源行(实现 GDD:design/gdd/…)。切片已按此规范完成领域命名批。
|
||||
> 命名遵循 `design/dev/code-conventions.md`:领域命名、禁 ID 前缀(文件头注不写文档链接——「实现 GDD:xxx」一类已废止,代码↔设计追溯由 GDD 文档与 registry 承担)。切片已按此规范完成领域命名批。
|
||||
|
||||
### Foundation 层
|
||||
### 基础层
|
||||
|
||||
| 模块 | Owns(独占) | Exposes | Consumes | 引擎 API |
|
||||
| 模块 | 独占职责 | 对外暴露 | 消费依赖 | 引擎 API |
|
||||
|---|---|---|---|---|
|
||||
| **ConfigDB**(autoload,D2) | 全部玩法数值表(`data/tables/*.tres` + `data/schemas/*.gd`);SCHEMA_VERSION;加载/校验/override/诊断状态机 | 类型化属性读取;`load_tables(root, collect_only)`;`resolve()`(R1 floor);debug override;`set_reload_gate()`;诊断收集器 | 无(Foundation 顶点) | Resource/.tres 加载、autoload 生命周期——LOW |
|
||||
| **ConfigDB**(autoload,D2) | 全部玩法数值表(`data/tables/*.tres` + `data/schemas/*.gd`);SCHEMA_VERSION;加载/校验/override/诊断状态机 | 类型化属性读取;`load_tables(root, collect_only)`;`resolve()`(R1 floor);debug override;`set_reload_gate()`;诊断收集器 | 无(基础层顶点) | Resource/.tres 加载、autoload 生命周期——LOW |
|
||||
| **RngService**(autoload,D2) | master_seed、各流 scope 计数器(封闭流:board_gen / reward_roll;增流走 P1 评审) | `set_master_seed()`(唯一调用方 C2);`open_stream(stream)` 有状态门面;`derive_at(stream, scope)` 纯函数;只读计数器 | ConfigDB(无) | 无——纯逻辑 |
|
||||
| **action_economy**(A3) | AP/RAP 账本、last_round_end、轮次相位机 {Idle, Active, Waiting}、结束仲裁 | 8 API 全布尔面:notify_round_start / request_dig / request_flag_place / request_flag_pull / request_stop / request_refresh / notify_settlement_done / notify_combat_end;ap/rap/phase 只读 | ConfigDB(ActionEconomyTable);B1 回发 next_round_mode/battle_over | 无 |
|
||||
| **variation 定义**(A4) | VariationTable schema(现行 7 行:六 region + skewed_veins 一 global——全局作用域变异首发批 2026-10-04)与 F1 候选池门控谓词 | `variant_pool(level_index, board_type, node_type="")`(门控三维:unlock+board_types+节点身份——global 行仅 boss/elite 入池,缺省跳过零扰动);`global_variant_row(level_index, board_type, node_type)`(全局型单行决议访问器) | ConfigDB(VariationTable) | 无 |
|
||||
| **variation 定义**(A4) | VariationTable schema(现行 6 行:六 region——贫矿脉 global 行 2026-10-16 用户令屏蔽删行,global 型机制代码保留)与 F1 候选池门控谓词 | `variant_pool(level_index, board_type, node_type="")`(门控三维:unlock+board_types+节点身份——global 行仅 boss/elite 入池,缺省跳过零扰动);`global_variant_row(level_index, board_type, node_type)`(全局型单行决议访问器) | ConfigDB(VariationTable) | 无 |
|
||||
| **status_container**(B3) | 状态实例容器(战斗域生命周期、跨轮跨图延续) | 5 API:notify_battle_start / apply_effect / query_active / decay_round / notify_battle_end | ConfigDB(StatusEffectTable) | 无(RefCounted) |
|
||||
| **save_system**(D3,Alpha) | 存档格式与版本比较 | (未设计——契约锚:SCHEMA_VERSION + master_seed + 各流 scope 计数器快照,须在无在飞 open_stream 实例时切出) | ConfigDB、RngService 只读计数器 | FileAccess——LOW |
|
||||
| **settings/localization**(D6,愿景) | 设置项、翻译数据 | (未设计) | ConfigDB | 无 |
|
||||
| **save_system**(D3,Alpha;iter27 已升格 autoload「SaveManager」) | 存档格式与版本比较 | (契约规范源:`../../gdd/systems/表现与支撑/存档序列化.md`——契约锚:SCHEMA_VERSION + master_seed + 各流 scope 计数器快照,须在无正在执行中的 open_stream 实例时切出) | ConfigDB、RngService 只读计数器 | FileAccess——LOW |
|
||||
| **settings/localization**(D6,愿景) | 设置项、翻译数据 | (契约规范源:`../../gdd/systems/表现与支撑/设置与本地化.md`) | ConfigDB | 无 |
|
||||
|
||||
### Core 层
|
||||
### 核心层
|
||||
|
||||
| 模块 | Owns | Exposes | Consumes | 引擎 API |
|
||||
| 模块 | 独占职责 | 对外暴露 | 消费依赖 | 引擎 API |
|
||||
|---|---|---|---|---|
|
||||
| **board_generator**(A1) | 生成算法(五阶段管线)、BoardGenTable 回填、生成期指标集、合法性谓词(clearable / R₀≠S / min_safe)、可推理率度量(metric_version) | `generate(L, D, rng) -> Board`;度量独立入口×3(推理器 / F3 度量 / 合法性谓词——独立纯函数、同一实现) | ConfigDB(BoardGenTable/VariationTable);board_gen 流(一次 open_stream = 一张图);dig_ap_cost 只读 | 无 |
|
||||
| **board_generator**(A1) | 生成算法(五阶段管线)、BoardGenTable 回填、生成期指标集、合法性谓词(clearable / R₀≠S / min_safe)、可推理率度量(metric_version);生成姿态 = MVP 同步生成 + 加载幕(切片实证 10×10/12×12 同步可接受,WorkerThread 留扩展) | `generate(L, D, rng) -> Board`;度量独立入口×3(推理器 / F3 度量 / 合法性谓词——独立纯函数、同一实现) | ConfigDB(BoardGenTable/VariationTable);board_gen 流(一次 open_stream = 一张图);dig_ap_cost 只读 | 无 |
|
||||
| **minesweeper_rules**(A2) | 棋盘状态(已开集 O / 旗集 G / 小人位)、三事件面、批次仲裁、install 四不变式 | `install_board(board)`;`settle_batch(intents)`(唯一提交入口);try_dig / try_flag_place / try_flag_pull / try_move(便捷形);`compute_move_path(cell)` 只读;`retire_board()`;三源拒绝(board_face / resource_face / phase)+ sub_reason 封闭枚举 | A1 产物(Board class_name 数据契约);A3 try_spend / last_round_end / 相位 | 无(零表读取、零 UI——切片实证) |
|
||||
| **unit_container**(B2) | hero/enemy 单位实例(hp/atk/实例池:池快照+冷却+摇定动作+保底计数)、行值快照 | spawn / query_alive / rollable_skills / special_skills / set_pending_action / pending_action / basic_streak / commit_action / tick_cooldowns / apply_damage / heal / default_target / ambush_grant_plan / despawn_all(2026-09-16 敌人技能池批:query_beat/query_attack/advance 随行为环退役——architecture.md 旧口径残留归 API 面 ADR 批整表复核) | ConfigDB(EnemyTable/SkillTable/HeroTable) | 无 |
|
||||
| **unit_container**(B2) | hero/enemy 单位实例(hp/atk/实例池:池快照+冷却+摇定动作+保底计数)、行值快照 | spawn / query_alive / rollable_skills / special_skills / set_pending_action / pending_action / basic_streak / commit_action / tick_cooldowns / apply_damage / heal / default_target / ambush_grant_plan / despawn_all(2026-09-16 敌人技能池批:query_beat/query_attack/advance 随行为环退役) | ConfigDB(EnemyTable/SkillTable/HeroTable) | 无 |
|
||||
| **reward_economy**(B4) | 格面资源身份映射(install 期预分配、Ready 只读、换图映射消亡)、极性路由字典面((类型, 极性)→ 字典行查询;路由执行归 B1 授予段)、F6 当量供给投影 | 封闭 API:roll_board / query_identity / query_full_snapshot / grant / grant_clear / retire_mapping / polarity_row / equivalence_supply / phase / weighted_pick;另有 is_mapped 静默布尔投影(批量工具用) | ConfigDB(RewardTable);reward_roll 流(scope = 每次 install 批) | 无 |
|
||||
| **helper_items**(A5,垂直切片) | HelperItemTable、探测显影语义 | (未设计——桥接位:A2 查询接口 + A4 counter_item_ids) | A2 / A4 / B4 | 无 |
|
||||
| **helper_items**(A5,切片已实装秘宝域) | HelperItemTable、探测显影语义 | (契约规范源:`../../gdd/systems/跨局循环/秘宝.md`——桥接位:A2 查询接口 + A4 counter_item_ids) | A2 / A4 / B4 | 无 |
|
||||
|
||||
### Feature 层
|
||||
### 功能层
|
||||
|
||||
| 模块 | Owns | Exposes | Consumes | 引擎 API |
|
||||
| 模块 | 独占职责 | 对外暴露 | 消费依赖 | 引擎 API |
|
||||
|---|---|---|---|---|
|
||||
| **battle_orchestrator**(B1) | 段序骨架(七段结构冻结)、轮 facts 缓冲、可回放步骤流、[明细行协议](../../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)(15 类行 + 字段分层)、条款③⑤闭合对账、**战斗域全部跨系统调用权** | `begin_battle(encounter)`;窗口/刷新意图提交面(扮演 D1);`level_clear()`;步骤流(输出契约) | B2/B3/B4 全调用面(**唯一调用方**);A3 request_refresh 代理 + 回发;A2 install/retire + 三事件订阅;A1 generate(attempt 非 scope 事件);D2 SettlementTable + set_reload_gate | 无(零随机、禁 await——切片 88 冒烟实证可回放) |
|
||||
| **battle_orchestrator**(B1) | 段序骨架(七段结构冻结)、轮 facts 缓冲、可回放步骤流、[明细行协议](../../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)(15 类行 + 字段分层)、条款③⑤闭合对账、**战斗域全部跨系统调用权**、效果引擎宿主(每战 rebuild/战末 adventure 计数器导出回写)+ 树规则挂点施加面(posture 窗/sense 限次/守侧 flag_missed 发射/聚乘算入账前) | `begin_battle(encounter)`;窗口/刷新意图提交面(扮演 D1);`level_clear()`;步骤流(输出契约) | B2/B3/B4 全调用面(**唯一调用方**);A3 request_refresh 代理 + 回发;A2 install/retire + 三事件订阅;A1 generate(attempt 非 scope 事件);D2 SettlementTable + set_reload_gate | 无(零随机、禁 await——切片 88 冒烟实证可回放) |
|
||||
| **effect_engine**(核心层——内容数据驱动扩展批 iter17 建域) | 事件/事实/效果类型/算子四词表封闭(迭代 21 T3 扩签:EVENTS 18→19 +flag_missed 标错判定、FACTS +battle_index 关卡域战斗序)+ 树规则合成订阅六键(posture 每关首轮窗/sense 两组限次 counter 闸·domain=adventure 跨战斗持久) | rebuild(每战重建)/dispatch/validate_trigger_row/counters_export·counters_seed | ConfigDB(feats/treasure 行集) | 无(零随机全确定) |
|
||||
| **level_runner**(C1-lite,切片已建) | 关卡域生命周期(节点链推进、共享 B4 + HP 携带、关卡末 level_clear) | 节点推进接口;LevelTable(`level.tres`——节点 enum {battle,reward,rest,boss}、末节点必须 Boss、ConfigDB 跨表校验⑧) | B1 begin_battle、B4 grant_node_active、ConfigDB LevelTable | 无 |
|
||||
| **run_structure**(C2) | 冒险/关卡序列、失败重开、**master_seed 唯一接线方** | (未设计) | RngService.set_master_seed、C3/D2 | 无 |
|
||||
| **run_structure**(C2) | 冒险/关卡序列、失败重开、**master_seed 唯一接线方** | (契约规范源:`../../gdd/systems/冒险循环/冒险结构.md`) | RngService.set_master_seed、C3/D2 | 无 |
|
||||
| **difficulty**(C3) | DifficultyTable 回填、全部曲线数值调参所有权、战斗期望表(切片 monte_carlo 为工具原型) | 调参输出(经 D2 R1 解析/编排器传递,禁反向调用生成) | ConfigDB、B1 对账输出(调参约束清单)、A1 报告 C | 无 |
|
||||
| **meta_progression**(C4,Alpha) | MetaTable、钥石/天赋 | (未设计) | D3、C2、ConfigDB | 无 |
|
||||
| **meta_progression**(C4,Alpha) | MetaTable、钥石账本、天赋树域(MetaTreeTable 12 节点 v0.8——Fork 一节点双态/row 字段退役/RULE_KEYS 六键/彩蛋特化觉醒,迭代 21 T1 换代)+ 同调位槽位判定(树点亮数单源——T4 槽位收编) | tree_can_buy/tree_buy/tree_buy_fork/tree_toggle_fork(写口唯一)、hero_override 注入(树淬炼 flat+锻造路线加值位预留 0)、tree_rule_keys | D3、C2、ConfigDB | 无 |
|
||||
|
||||
### Presentation 层
|
||||
### 战斗域装配现状(迭代 27——2026-10-17 用户裁写入)
|
||||
|
||||
| 模块 | Owns | Exposes | Consumes | 引擎 API |
|
||||
- **结算五段**:B1 编排器的每轮结算序列拆为 `game/core/settlement/` 五个段类——GrantSegment(①授予段,含旗判与 counter/grant 助手单点)→ AuraSegment(②增益/减益段)→ CombatSegment(③战斗段)→ DecaySegment(④衰减段)→ VerdictSegment(⑤判定段,返回裁定,终局早退语义留 B1)。段序骨架冻结于 `SettlementTable.segment_order` 语义,B1 退为段序编排+接线;段类可直接 `new()` 单测(`settle_segments_test` 在役)。
|
||||
- **RunLedger 四账**:`game/core/run_ledger.gd` 单类持四本共享账——同调充能账/真视使用计数/冒险域计数器/统一冒险加算区。所有权:AdventureRunner 开局构造、全程唯一宿主;LevelRunner 经 `set_run_ledger` 下传装配 encounter;战斗侧(B1)经 `encounter["ledger"]` 拿引用、只走 read/append 原语族。审计 P1-4「共享可变字典跨三层三处可写」由「函数签名上不可见的共享引用」换成签名可见的显式类,时点语义(战末导出/开局回灌)逐字不变。
|
||||
|
||||
### 呈现层
|
||||
|
||||
| 模块 | 独占职责 | 对外暴露 | 消费依赖 | 引擎 API |
|
||||
|---|---|---|---|---|
|
||||
| **D1 HUD**(切片 lite 已拆 9 单元:BoardView / HUDView / HudPresenter / BattleLogView / ItemWindowOverlay / NodeOverlay / LevelStripView / TunePanel / UiKit + 组合根 main.gd) | 全部 Control/CanvasLayer(例外:BoardView 棋盘本体与 BattleStageView 站桩本体 = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界〔BoardWorld/CellUnit;StageWorld/StandeeBody——B 区 slot_row 伴随件留壳层〕,探针契约面不变——ADR-0006 棋盘 Node2D 迁移批 Phase A 2026-09-23 / 战斗舞台 Phase B 2026-09-26)、输入→意图翻译(**唯一提交路径 = settle_batch,不直调 A3**)、呈现义务台账(A2×6 / B2×4 / B3×4 / B4×5 / B1×3) | 视图单元接口(信号外发、setter 只读注入) | A2 compute_move_path / ActionOutcome;A3 ap/rap;B1 步骤流行协议(数据源);ConfigDB display_name | **MEDIUM**:Control / CanvasLayer / draw_* / InputEvent / RichTextLabel——对照 breaking-changes.md 4.5–4.7 条目(CanvasItem 线条无抗锯齿羽化、设备 ID 常量、RichTextLabel 图片参数两轮变化) |
|
||||
| **battle_presentation**(B5,垂直切片后) | 结算动画 / 伤害数字 / 战斗舞台 | (未设计——前置"战斗表现美术测试"锁双舞台陷阱) | B1 步骤流(回放脚本源)、D1 | **MEDIUM**:AnimationPlayer(String→StringName 变更)/ Tween |
|
||||
| **D1 HUD**(呈现面拆分持续换代:组合根 main.gd + 三屏壳(MenuScreen/CampScreen/AdventureScreen)+ views/ 视图单元(现行承载面见「呈现层装配与会话生命周期」节;早期 9 单元清单与 LevelStripView 已随场景换代退役);营地覆盖层=四柜台并排〔树淬炼主界面/锻造工坊·秘宝匣钥匙门/图鉴常开——迭代 21 T6 程序占位重排〕) | 全部 Control/CanvasLayer(例外:BoardView 棋盘本体与 BattleStageView 站桩本体 = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界〔BoardWorld/CellUnit;StageWorld/StandeeBody——B 区 slot_row 伴随件留壳层〕,探针契约面不变——棋盘 Node2D 迁移批 Phase A 2026-09-23 / 战斗舞台 Phase B 2026-09-26)、输入→意图翻译(**唯一提交路径 = settle_batch,不直调 A3**)、呈现义务状态记录(A2×6 / B2×4 / B3×4 / B4×5 / B1×3) | 视图单元接口(信号外发、setter 只读注入) | A2 compute_move_path / ActionOutcome;A3 ap/rap;B1 步骤流行协议(数据源);ConfigDB display_name | **MEDIUM**:Control / CanvasLayer / draw_* / InputEvent / RichTextLabel——对照 breaking-changes.md 4.5–4.7 条目(CanvasItem 线条无抗锯齿羽化、设备 ID 常量、RichTextLabel 图片参数两轮变化) |
|
||||
| **battle_presentation**(B5,垂直切片后) | 结算动画 / 伤害数字 / 战斗舞台 | (契约规范源:`../../gdd/systems/战斗循环/战斗表现.md`——前置「战斗表现美术测试」锁双舞台陷阱) | B1 步骤流(回放脚本源)、D1 | **MEDIUM**:AnimationPlayer(String→StringName 变更)/ Tween |
|
||||
| **audio**(D4,Alpha) | 音频挂点 | (挂点 = B1 明细行类型流;负反馈聚合——单结算至多一次) | B1 流水 | AudioStreamPlayer(4.7 area_mask 默认 1→0 注意) |
|
||||
| **tutorial**(D5,Alpha) | 教学条目 | (口径来源:A2/A3/B3/B1 各教学条目) | 各上游 | 无 |
|
||||
|
||||
@@ -129,7 +137,127 @@
|
||||
|
||||
---
|
||||
|
||||
## Data Flow
|
||||
## 呈现层装配与会话生命周期(迭代 27/28 完成反哺——2026-10-17 用户裁按推荐案写入)
|
||||
|
||||
### 三屏壳与组合根句柄面
|
||||
|
||||
- 呈现场景拆为三屏壳:MenuScreen(开始菜单屏)/CampScreen(营地屏)/AdventureScreen(冒险屏——内含关卡地图与战斗两容器)。
|
||||
- 屏成员经组合根 main.gd 一级句柄暴露(探针挂载假设 `main.X` 路径零迁移);局态一律住 RunScope 节点,禁在屏/视图侧持有局态引用。
|
||||
|
||||
### 视觉层装配合同
|
||||
|
||||
- **树序 = 登记序 = z 序**,同源派生;层序唯一事实源 = `main.gd` 的 `LAYER_CONTRACT` 常量表(现行 17 项,kind 五类:shell=屏壳〔成员随壳不占独立树位〕/modal=模态层〔入登记册,tags 随登记〕/state=全屏态/node=非视觉节点/float=不注册 ModalStack 的最顶浮层〔任何 UI 打开都不遮挡它〕)。
|
||||
- 全仓唯一落位口 = `_apply_layer_contract()`(装配尾统一排序+登记);散落 `move_child` 由冒烟 V1d 源码断言判红;**改层序只改合同表**。
|
||||
- 具体层清单不复制进本文(双写失同步禁令)——查现行 17 项直接读 `main.gd`。
|
||||
|
||||
### 会话生命周期(RunScope)
|
||||
|
||||
- `run_scope.gd` = 纯状态承载 Node:零信号连接、零视图构建、零核心写调用(连接只在组合根,组合根经 `run_scope.X` 读写)。
|
||||
- 会话更替机制:`_begin_session()` 新建会话节点挂树、旧会话节点**整节点 `queue_free()`**——无独立收束函数,跨局字段清理靠节点释放机制(原手工复位清单随其消亡,新增跨局字段零新增泄漏点);`_ready` 即建闲时会话,`run_scope` 永非 null。
|
||||
- **存活性矩阵**(九阶段 × 五引用面,2026-10-17 用户裁认账阶段划分;执行判据=冒烟 V3a–V3i。计划书原十阶段中「开局停点」与「地图选路」在现行流程同为关卡画面停点态、无可观测中间态,合并为一处断言):
|
||||
|
||||
| 阶段 | run_scope | adventure | runner | settlement |
|
||||
|---|---|---|---|---|
|
||||
| ① 闲时 | 在树(闲时会话) | null | null | null |
|
||||
| ② 开局停点 | 在树 | alive | alive | null |
|
||||
| ③ 战斗中 | 在树 | alive | alive | alive |
|
||||
| ④ 结算后(胜利停点)/⑤ 选路页 | 在树 | alive | alive | both |
|
||||
| ⑥ 终局面 | 在树 | alive | alive | null |
|
||||
| ⑦ 回菜单收束 | 新闲时会话即刻在树(旧会话已释放——无真空窗) | null | null | null |
|
||||
| ⑧ 各模态开合后(设置/生涯/营地/调试) | 闲时会话零扰动 | null | null | null |
|
||||
| ⑨ 两连局+续玩断点 | 换全新会话在树 | alive | both | both |
|
||||
|
||||
- 三态记号沿用冒烟参数:**alive**=应有实例、**null**=必须缺位(实测非空判红)、**both**=按分支可空可活(如胜停点后走向选路或直接终局)。对象有值但已失效一律判「悬挂」红。
|
||||
- 第五引用面=四持句柄件(`_treasure_ui`/`_bonus`/`_camp_pres`/`_modal_flow`,另有 `_row_pacer`):其会话取值 Callable 与 `run_scope` 成员**逐面同源比对**(回调悬挂=两值不等即红),会话更替零残留由矩阵每阶段顺带铁证。
|
||||
|
||||
### 模态编排(ModalFlow/ModalStack)
|
||||
|
||||
- `modal_flow.gd` = 模态编排纯逻辑类(依赖仅 ModalStack + 查询 Callable,可直接 `new()` 单测):开合编排(遮挡记账单口 + T17 演播后排窗挂起)/棋盘输入锁谓词/角标置灰谓词三职责。
|
||||
- 互斥排除语义随层登记(`register(node, tags)`):`debug_overlay=["non_locking"]`、`level_screen=["screen_state"]`,其余层零标签——原调用点排除式条件拼装已消亡。
|
||||
|
||||
---
|
||||
|
||||
## 测试与质量域
|
||||
|
||||
> 定位:本节为测试域(本地闸、探针、静态扫描等横切关注点)的**事实源**。仓库无远端、无 CI——本地闸是唯一验收门禁,判定严密性即全仓质量下限。
|
||||
|
||||
### 模块归属
|
||||
|
||||
| 模块 | 载体 | 独占职责 | 对外暴露 | 判定口径 |
|
||||
|---|---|---|---|---|
|
||||
| **run_smoke**(系统级断言面) | `tools/run_smoke.py` | 冒烟总入口与判定权:headless 跑 `res://smoke/smoke_all.gd` 全量(轻闸首项,迭代 28 后在册 1125 项检查)+ 三闸判定 | 进程退出码(0=PASS / 1=FAIL) | 三闸齐备、判定无洞:①退出码 = 0;②摘要行「冒烟完成:N 项检查,0 项失败」在案且失败数为 0;③输出扫 `SCRIPT ERROR` / `Parse Error` 标记行。外部 wall-clock 超时在位(超时 = FAIL) |
|
||||
| **run_all**(单元套件+L2 集成) | `game/tests/run_all.gd` | 33 套统一入口(32 单元/集成 + 见下):套件 manifest 逐条「套件 → 期望退出码」,致命类 expect=1 独立子进程实跑;`negative` 字段标负面套件(仅豁免错误扫描一闸) | 逐套件结果 + 汇总退出码(任一套件失败 quit(1)) | 套件级退出码协议在位;三硬闸齐备(入口内扫子套件输出 + 编排层扫 `unit.log`;`Kit.finish` 零断言返回专用码 2)。子进程输出须经系统命令解释器重定向落盘再读——`OS.execute` 的输出管道在本机恒空 |
|
||||
| **probe_gate**(场景探针) | `tools/probe_gate.sh` | headless 场景探针段编排:默认段 ui_input_probe / ui_struct_probe / layout_probe / ui_contrast_probe / **screen_flow_probe**(L3 屏壳切换),`--click` 加跑 ui_click_probe,`--full` 加跑 ui_probe / ui_tune_probe / t17_defer_probe / fx_probe;孤儿 Godot 预清 + 批末残留清点(必须 0) | 段级 FAIL 输出 + 汇总退出码 | 每段 timeout 守卫在位(挂死 124/137 = FAIL,不静默);判定统一走 `verdict` 函数——退出码为唯一权威判据,PASS 串降级为附加判据,逐段跑 `tools/error_scan.py` |
|
||||
| **render_gate**(视觉 golden) | `tools/render_gate.sh` | 窗口化渲染闸:①shot_probe 七屏截图 → shot_checker A-D 语义断言;②fx_shot_probe / board_shot_probe 取证(超时/零字节/文件缺失任一 = FAIL);③棋盘 golden 逐像素容差比对(差 ≤16 / changed ≤2%,provisional)+ 菜单 golden;④批末孤儿残留清零 | 段级 FAIL 输出 + 汇总退出码 | 查退出码在位(每段 timeout 守卫 + 退出码/取证文件双检);**SCRIPT ERROR 扫描缺失**;断言数下限不适用(判定主体 = golden 容差与取证文件存在性,非断言计数) |
|
||||
| **static_scan**(静态扫描域) | `game/tests/static_scan.sh` | 静态扫描域 S1–S10 可执行载体(grep 规则 + `tools/audit_type_hints.py`〔S9〕+ `tools/audit_file_headers.py`〔S10〕) | fail 聚合退出码(任一硬失败规则命中即 exit 1) | 查退出码在位;SCRIPT ERROR 扫描与断言数下限不适用(逐规则命中即红,无运行时错误面与断言计数);S3 现为 warning 级、不参与 fail 判定(见下表) |
|
||||
|
||||
### 改动域划分(2026-10-17 用户裁「代码批只跑代码闸、文档批只跑文档闸」)
|
||||
|
||||
| 域 | 闸 | 本批改动落在这些路径即属该域 |
|
||||
|---|---|---|
|
||||
| **代码域** | run_smoke、run_all、probe_gate `--click`、probe_gate `--full`、render_gate、static_scan、回放确定性对拍(条件件) | `game/`、`tools/`、`artwork/` |
|
||||
| **文档域** | gdd_lint、doc_link_audit、doc_term_audit、active.md 体量闸 | `design/`、`active.md`、`roadmap.md`、`CLAUDE.md` |
|
||||
| **两域都含** | repo_structure_audit(熵增闸:顶层目录/根文件/图像白名单/退役路径/design 子目录五查——文档批新增或挪动 `.md` 同样会绊它;纯文本扫描秒级) | — |
|
||||
|
||||
口径三条:**域划分的唯一出处是 `tools/run_all_gates.sh`**(`--code`/`--docs`/不带参数=全量),本表是它的现状登记、不是第二份清单;改闸件本身或一次改动跨两域 → 跑全量档(§6.2 共享件例外);合回闸按 merge diff 路径推出应验的域,再校验回执的 `domain` 字段与新增红。代码域跑前先过**素材齐盘预检**——`game/assets/art/**` 与一切 `*.import` 边车都不入 git(2026-09-29 裁定),worktree 冷检出必空盘,空盘态冒烟 V1 成片假红、渲染闸更是一段 golden 都不比。
|
||||
|
||||
### 三条判定硬闸现行状态
|
||||
|
||||
| 硬闸 | run_smoke | run_all | probe_gate | render_gate | static_scan |
|
||||
|---|---|---|---|---|---|
|
||||
| **退出码优先** | 已落实(闸①) | 已落实(套件 manifest expect 协议) | 已落实(`verdict` 函数逐段判退出码,PASS 串不作判据) | 已落实(段级退出码 + 取证双检) | 已落实(fail 聚合退出) |
|
||||
| **SCRIPT ERROR 扫描** | 已落实(闸③,外部扫描——GDScript 无脚本错误陷阱 API,闸设在外部包装) | 已落实(入口内扫子套件输出;子进程的 stdout/stderr 须先落盘——`OS.execute` 管道在本机恒空) | 已落实(逐探针段 `tools/error_scan.py`,标记与 run_smoke 同源) | **缺失**(本批未收——判定主体是 golden 容差与取证存在性;登记 06) | 不适用(静态域无运行时错误面) |
|
||||
| **断言数下限** | 无独立下限(闸②摘要行必须在案,防「跑一半仍 PASS」;脚本错误吞断言路径由闸③兜住) | 已落实(`Kit.finish` 零断言返回专用退出码 2——与「断言失败=1」区分,防致命类套件的 expect 协议放过) | 已落实(退出码 0 但无该探针签名标记亦判红——防静默退出) | 不适用(golden 容差 + 取证存在性判定) | 不适用(逐规则命中判定;另有扫描面为空即判红的零命中自检) |
|
||||
|
||||
背景事实(run_smoke 头注在案):GDScript 运行时脚本错误不改进程退出码、不计入冒烟失败数、且静默中断所在函数剩余断言——2026-09-19 状态记录 83 实证「309 项 0 失败」实为断言未跑全。这是 SCRIPT ERROR 扫描必须存在于判定层的原因。
|
||||
|
||||
### 静态扫描域 S1–S8 承接清单
|
||||
|
||||
静态扫描域规则(2026-09-12 立,沿革见 git commit log;下表为现行事实登记):
|
||||
|
||||
| # | 规则 | 状态 |
|
||||
|---|---|---|
|
||||
| S1 | 玩法代码禁 `randomize()`、自建 `RandomNumberGenerator`(D2 Rule 5) | **在位**(硬失败;扫描面 game/core + game/presentation) |
|
||||
| S2 | 禁全局随机函数 `randi()` / `randf()` / `randf_range()`——全局 RNG 绕开 RngService(specialist 补登) | **在位**(与 S1 同段硬失败;实例方法 `.randi()` 排除、`rng-seed-exempt` 豁免注记在案) |
|
||||
| S3 | core/ 禁 ConfigDB 外 data 表加载(`load(` / `preload(` / `ResourceLoader.load`;schema class_name 直引豁免)(D2 Rule 2) | **在位**(warning 级——class_name 直引误报需人工复核;路径已由裸 `core` 修正为 `game/core`,此前恒零命中静默空转;豁免 config_db.gd 自身=数值单一事实源的正主) |
|
||||
| S4 | core/ 禁 `extends Control/Node2D`、禁 `.tscn` preload(D2 Rule 7) | **在位**(硬失败) |
|
||||
| S5 | core/ 禁裸引用 autoload 全局标识符(`ConfigDB` / `RngService` 直接写 = --script 模式 parse error)——构造注入 only(specialist 升格) | **在位**(硬失败;形态=标识符后紧跟 `.` 的成员访问,排除注释行与字符串字面量) |
|
||||
| S6 | core↔core 信号连接只许方法 Callable(禁 lambda 捕获 self);发射者禁持有订阅者反向引用 | **未落地**(脚本 TODO 注记在案) |
|
||||
| S7 | B1 编排唯一性:B2/B3/B4 API 符号命中文件 ⊆ B1 文件集;A2/B3/B4 零相互直调(B1 AC-43) | **未落地**(脚本 TODO 注记在案) |
|
||||
| S8 | 结算路径 `await` 零命中(B1 结算/编排文件集);字面量扫描 = warning 级 + 人工三要素复核(D2 AC-14 口径) | **未落地**(脚本 TODO 注记在案) |
|
||||
|
||||
域外扩充两件(均硬失败在位):**S9** 类型闸(`tools/audit_type_hints.py`,迭代 27 T5——产品码无类型容器/有值返回缺类型/参数缺类型);**S10** 文件头闸(`tools/audit_file_headers.py`——头注 ≤8 行 + 日期/变更叙事黑名单)。
|
||||
|
||||
### 三层承载与判定原则
|
||||
|
||||
测试分三层,各有在册承载与入闸方式(细目见 `game/tests/README.md`):
|
||||
|
||||
| 层 | 判什么 | 承载 | 入闸 |
|
||||
|---|---|---|---|
|
||||
| L1 单元 | 最单元的逻辑代码对不对 | `game/tests/unit/` | `run_all.gd`(闸 02) |
|
||||
| L2 集成 | 跨系统闭环对不对 | `game/tests/integration/` | 同上(同一入口同一协议) |
|
||||
| L3 系统/场景 | 跑起来之后 UI 与场景切换对不对 | `game/smoke/*.tscn` 探针 | `probe_gate.sh`(闸 03/04) |
|
||||
|
||||
**判定原则**:验收不能只是「跑一遍没崩」。三硬闸(退出码/脚本错误扫描/断言数下限)是判定的底线,
|
||||
缺一即判定有洞;「日志里写着 PASS」不作判据。另有两类静默失效必须机制性防范——规则扫描面为空
|
||||
(路径写错即恒零命中恒绿)与子进程输出丢失(本机 `OS.execute` 管道恒空),两者都以显式自检拦住。
|
||||
|
||||
### 依赖约束
|
||||
|
||||
测试域禁止反向依赖呈现层具体实现。五闸及其调用的探针场景、审计脚本只允许依赖两类边界:
|
||||
|
||||
1. **autoload 边界**——ConfigDB / RngService 的公开面(--script 模式不加载 autoload 且不注册全局标识符,测试文件自带显式实例化夹具);
|
||||
2. **场景契约**——探针场景的信号外发面与视图单元接口(信号外发、setter 只读注入),禁直引呈现层实现内部(如 UiKit 工厂内部状态、BoardView 绘制细节)。
|
||||
|
||||
测试域是所有层的消费方,进入方式限于上述两类边界;除此之外的依赖方向一律与「模块归属」节依赖单向性同规。
|
||||
|
||||
### 事实源声明
|
||||
|
||||
本节为测试域(测试载体、判定口径、静态扫描域)的事实源。新增违规案例仍须先补 static_scan 规则再修码(code-conventions 缺陷-规范对照表纪律)。
|
||||
|
||||
---
|
||||
|
||||
## 数据流
|
||||
|
||||
### 1. 帧更新路径(2D 回合制:无逐帧玩法逻辑)
|
||||
|
||||
@@ -141,7 +269,7 @@ Input(鼠标)→ D1 输入翻译 → 意图对象 → A2.settle_batch(唯
|
||||
```
|
||||
|
||||
- 回合制下每帧只做:输入采样、呈现刷新、动效推进——**玩法状态只在意图事务内变更**(单意图帧输入收集:stop 点击终结当帧)。
|
||||
- 无跨线程玩法数据流(Godot 主线程假设,D2 EC13);A1 生成若引入 WorkerThread 须走 ADR-0005 裁决(join 先于任何快照切出)。
|
||||
- 无跨线程玩法数据流(Godot 主线程假设,D2 EC13);A1 生成若引入 WorkerThread,join 必须先于任何快照切出(既定约束)。
|
||||
|
||||
### 2. 事件/信号路径(系统间通信,无紧耦合)
|
||||
|
||||
@@ -154,12 +282,12 @@ B1 ──install_board / retire_board──▶ A2 B1 ──generate(L,D)─
|
||||
D1 ◀──呈现数据源:A2 事件流 / B1 步骤流 / A3 ap-rap / ConfigDB display_name
|
||||
```
|
||||
|
||||
- **载体裁决待 ADR-0001**:切片事实 = 组合根直连信号接线 + B1 Waiting 相位触发(不依赖事件到达序);推荐沿用(单线程回合制,KISS),autoload 全局事件总线为否决倾向。
|
||||
- **事件载体(已定)**:组合根直连信号接线 + B1 Waiting 相位触发(不依赖事件到达序);autoload 全局事件总线已否决(2026-09-12,沿革见 git 历史)——单线程回合制沿用组合根直连(KISS)。
|
||||
- 事件规范序:A2 发射序 = 触发格 BFS、8 邻行主序;事件序契约 `flag_judged` < `round_end` 全路径统一。
|
||||
|
||||
### 3. 存档/读档路径(MVP 无存档;契约已锁)
|
||||
|
||||
- MVP 无元进度持久化(C4/D3 归 Alpha)。**已锁契约**:续玩/复盘快照 = master_seed + 各流 scope 计数器 + 意图序列 + 窗口选择序列;快照切出须发生在无在飞 `open_stream` 实例时(scope 事件边界外——B1 编排保证:切点 = board install 边界)。
|
||||
- MVP 无元进度持久化(C4/D3 归 Alpha)。**已锁契约**:续玩/复盘快照 = master_seed + 各流 scope 计数器 + 意图序列 + 窗口选择序列;快照切出须发生在无正在执行中的 `open_stream` 实例时(scope 事件边界外——B1 编排保证:切点 = board install 边界)。
|
||||
- 可回放性已实证:切片冒烟同种子双跑步骤流逐行相同(B1 AC-33 前身)。
|
||||
- D3 Alpha 期按此契约设计格式;SCHEMA_VERSION 高版本拒读。
|
||||
|
||||
@@ -167,7 +295,7 @@ D1 ◀──呈现数据源:A2 事件流 / B1 步骤流 / A3 ap-rap / ConfigDB
|
||||
|
||||
```
|
||||
进程启动
|
||||
→ autoload 实例化:ConfigDB → RngService(顺序固定;战斗编排器为普通类、由组合根按局实例化——切片形态)
|
||||
→ autoload 实例化:ConfigDB → RngService → SaveManager → MetaProgression(顺序固定;战斗编排器等核心类为普通类、由组合根按局实例化)
|
||||
→ ConfigDB._ready():load_tables 加载 + 校验(致命通道;失败 = 构建中止 + 错误清单)
|
||||
→ 主场景(D1 组合根)装配视图单元 + 信号接线
|
||||
→ C2 begin_run:RngService.set_master_seed()(唯一接线方;两流计数器全零前提)
|
||||
@@ -176,9 +304,18 @@ D1 ◀──呈现数据源:A2 事件流 / B1 步骤流 / A3 ap-rap / ConfigDB
|
||||
→ 关卡末:通关结算(钥石/GP/专长 level_clear 渠道——现行语义归 冒险结构 GDD;原 clear_inventory 随库存轴下线退役 2026-09-15)
|
||||
```
|
||||
|
||||
**启动后置条件**(2026-10-17 用户裁入册——迭代 28 以冒烟 V2a–V2f 共 11 条断言把「启动完成后玩家该看到什么」成文;执行判据事实源在 `game/smoke/smoke_all.gd`):
|
||||
|
||||
1. ConfigDB 就绪且表已载(`is_ready` + hero 表在座)。
|
||||
2. 系统设置已落引擎态——Master 音量 mute/volume_db = settings_store 现值;减动效开关 = `UiKit.motion_scale`。
|
||||
3. 启动态菜单可见(boot 后自树顶向下第一个可见内容层 = 开始层——菜单被冒险屏盖住即红)。
|
||||
4. 续玩钮可见态恒等于断点在档态(双向:无断点隐藏/有断点可见/清断点回隐;boot 路径与刷新单口同源)。
|
||||
5. 闲时会话已在树(`run_scope` 非空、非冒险会话、在树——永非 null 契约的启动侧证明)。
|
||||
6. 调试浮窗 boot 不自动开(菜单优先,2026-10-16 用户令)+ 调试入口全局浮层角标 boot 可见。
|
||||
|
||||
---
|
||||
|
||||
## API Boundaries
|
||||
## API 边界
|
||||
|
||||
> 完整 API 面(含封闭枚举负空间、布尔受理口径、输入×相位矩阵)以各 GDD AC 前言为**规范源**——本节列边界契约与不变式,实现须与 GDD 逐字一致;冲突时以 GDD 为准并走接口漂移修订。
|
||||
|
||||
@@ -195,81 +332,13 @@ D1 ◀──呈现数据源:A2 事件流 / B1 步骤流 / A3 ap-rap / ConfigDB
|
||||
| B4 → B3 | buff 类经 B1 调 apply_effect(B4 零跨系统读、零直接接口) | 满层拒绝 = 零兑付 + 明细行(无折算) | 授予时数值快照(抗热重载) |
|
||||
| B1 → D1 | [步骤流行协议](../../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)(15 类封闭枚举 + 公共字段 type/source_class/origin_cell/round_index/display_name/value/highlight? + 特有字段 target/effect_id/pool_value) | 无来源行 = 断言失败;呈现侧禁按行序重演 B2 状态机 | 可回放步骤流(同种子逐行相同) |
|
||||
|
||||
**引擎类型核验注记**:接口使用的引擎类型 = Resource / .tres(D2 全表)、RefCounted(容器类)、Signal/Callable(事件载体,ADR-0001)、Control/CanvasLayer/Drawing(D1)、SceneTree headless 协议(测试)——均属 4.x 基线稳定面;4.7 Control 域增量(offset_transform_* 等)已在 breaking-changes.md 登记,D1 采纳前对照核实。
|
||||
**引擎类型核验注记**:接口使用的引擎类型 = Resource / .tres(D2 全表)、RefCounted(容器类)、Signal/Callable(事件载体)、Control/CanvasLayer/Drawing(D1)、SceneTree headless 协议(测试)——均属 4.x 基线稳定面;4.7 Control 域增量(offset_transform_* 等)已在 breaking-changes.md 登记,D1 采纳前对照核实。
|
||||
|
||||
---
|
||||
|
||||
## ADR Audit
|
||||
## 架构原则
|
||||
|
||||
**现存 ADR:0 份**(`docs/architecture/` 本文档为首个产物;此前架构约束由 GDD 门禁评审 + CLAUDE.md + code-conventions 事实承载)。
|
||||
|
||||
### 已锁决策盘点(GDD 层已定稿,不重复立项 ADR)
|
||||
|
||||
| 决策 | 锁定来源 |
|
||||
|---|---|
|
||||
| GDScript 单语言;autoload = ConfigDB + RngService(定名勿改) | technical-preferences + D2 GDD |
|
||||
| 全部玩法数值 .tres 单一事实源;零字面量;R1 floor 解析;fail-fast 双通道 | D2 Core Rules 1–8 |
|
||||
| RNG 封闭流 + scope 派生(R2 黄金向量);可回放 = 硬承诺 | D2 R2 + B1 Core Rule 15 |
|
||||
| A2 纯规则引擎(零随机/零表读取/零 UI)+ 三事件面封闭 | A2 Core Rule 1/2 |
|
||||
| B1 编排唯一性 + 七段段序骨架 + 明细行协议 | B1 Core Rule 1/4/14 |
|
||||
| 多敌 side-wide / 出招确定性(技能池批改型:零随机纪律保持、开轮摇号走 behavior_roll 封闭流)/ 固定顺位 / 伏击 cap=4 | B2(2026-09-09 用户拍板;2026-09-16 技能池批改型) |
|
||||
| 奖励五值两类交付轴 / install 预分配 / 关卡域库存 / 窗口单件制 | B4(2026-09-11 用户裁决批) |
|
||||
| weaken 锚 F0 瞬时当量 / 条款①③⑤闭合对账 owner = B1 | B1 F0–F5 |
|
||||
| 领域命名禁 ID 前缀 / 组合根模式 / 呈现层契约成文 | CLAUDE.md + docs/code-conventions.md(切片教训批) |
|
||||
|
||||
### GDD 登记的"实现期 ADR 裁决项"汇总(= Required ADRs 的来源)
|
||||
|
||||
A2 OQ2(事件外发载体)· B1 OQ1(事件总线载体,与 A2 OQ2 同一裁决)· A1 OQ2/OQ3(生成性能姿态 + 度量独立入口)· B2 OQ1(query_attack/ambush_grant_plan 两 face 归属)· B2 OQ5(HeroTable 单行校验落点)· B2 OQ9(零伤害死局跨字段护栏落点)· D2 OQ1(gdUnit4 取舍)· technical-preferences(渲染器选择)· 切片新增正式化批(轮内刷新方案 A / RewardSupplyController / LevelTable / grant_node_active / clear_blast——GDD+registry 修订义务在切片 README)。
|
||||
|
||||
### Traceability Coverage Check
|
||||
|
||||
Technical Requirements Baseline 63 条 → ADR 覆盖 0 条(无 ADR 存在);按覆盖载体分层:
|
||||
|
||||
| 覆盖载体 | TR 数 | 说明 |
|
||||
|---|---|---|
|
||||
| ✅ 本架构文档(分层/所有权/数据流/API 边界)+ GDD 契约 | 46 | 数据/RNG/核心行为/编排协议类——已锁且切片实证,无需 ADR |
|
||||
| 🔶 待 ADR 裁决 | 12 | 引擎/测试/实现形态类:TR-gc-008(渲染器)、TR-a1-011/012(生成姿态)、TR-d2-014/016(测试载体)、TR-a3-004+TR-b1-001/002(事件载体)、TR-b2-005/006(face 归属)、TR-d2-010+TR-gc-002(D3 契约正式化) |
|
||||
| ⏳ 未设计系统预留 | 5 | A5/C1–C4/D3 关联 TR(随各系统 GDD 立项) |
|
||||
|
||||
**结论:0 条孤儿需求**——46 条由本文档+GDD 承载、12 条待 ADR(见下)、5 条随未设计系统。**2026-09-12 更新:ADR-0001~0004(Foundation 四项)已落定 → 正式工程骨架解冻**;ADR-0005~0008 随对应系统开工前裁决(切片代码可作为参考实现,生产化迁移待 ADR-0008 正式化批)。
|
||||
|
||||
---
|
||||
|
||||
## Required ADRs
|
||||
|
||||
### 必须在正式编码开始前(Foundation 裁决)——✅ 已全部落定(2026-09-12,solo 授权代决,godot-specialist 校验通过)
|
||||
|
||||
1. **✅ ADR-0001 `event-bus-and-orchestration-carrier`**(`adr-0001-event-bus-and-orchestration-carrier.md`):组合根直连 signal 接线 + B1 Waiting 相位触发;autoload 全局事件总线否决。specialist 增补两条静态规则(方法 Callable only / 发射者禁反向引用)。
|
||||
2. **✅ ADR-0002 `renderer-and-window-config`**(`adr-0002-renderer-and-window-config.md`):gl_compatibility(绕开 D3D12 新驱动线);基座 1280×800 + canvas_items + expand 显式落盘。
|
||||
3. **✅ ADR-0003 `scene-structure-and-board-rendering`**(`adr-0003-scene-structure-and-board-rendering.md`):autoload 仅 {ConfigDB, RngService};core RefCounted / presentation 九单元组合根;**棋盘渲染 MVP 沿用切片逐格控件形态**(specialist 纠正:切片并非自绘 _draw——迁移登记为 D1 候选工作项含探针改造);CJK 字体随包为硬性前置。
|
||||
4. **✅ ADR-0004 `test-carrier-and-ci`**(`adr-0004-test-carrier-and-ci.md`):双载体 + 静态扫描域 S1–S8(specialist 增补 S2 全局 rand* 禁令 / S5 core 禁裸引用 autoload 标识符)+ CI 外部超时;gdUnit4 deferred(D2 OQ1 关闭形态)。
|
||||
|
||||
实现级立场已登记 `docs/registry/architecture.yaml`。
|
||||
|
||||
### 相关系统开工前应有
|
||||
|
||||
5. `/architecture-decision "board-generation-performance"` → ADR-0006:A1 生成性能与异步化(F2c 常数 C 定稿;切片证据 = 10×10/12×12 同步生成可接受——推荐 MVP 同步+加载幕,WorkerThread 留扩展);度量独立入口确认(切片已实现三入口)。
|
||||
6. `/architecture-decision "unit-api-face-ownership"` → ADR-0007:B2/B1 两 face 归属(query_attack / ambush_grant_plan)+ HeroTable 单行校验落点。
|
||||
7. `/architecture-decision "zero-damage-guard-locus"` → ADR-0008:零伤害死局跨字段/跨表护栏落点(推荐落 D2 跨表校验——切片 LevelTable 校验⑧先例)。
|
||||
8. `/architecture-decision "slice-mechanism-formalization"` → ADR-0009:切片新增机制正式化批(轮内刷新方案 A / RewardSupplyController / LevelTable / grant_node_active / clear_blast)——GDD+registry 接口漂移修订的 ADR 化登记。
|
||||
|
||||
### 已落定(2026-09-12 追加)
|
||||
|
||||
0. **✅ ADR-0005 `save-contract-and-schema-versioning`**(`adr-0005-save-contract-and-schema-versioning.md`):Foundation 层收口——SCHEMA_VERSION 比较归属 + RNG 快照切点契约 ADR 化(TR-d2-010 / TR-gc-002),Foundation 零缺口闭合。
|
||||
|
||||
### 可推迟
|
||||
|
||||
- ADR-0010 A1 EC5 运行期熔断(连续降级确定性回退已知好种子)
|
||||
- ADR-0011 B5 战斗舞台(棋盘上 vs 独立场景)——"战斗表现美术测试"后裁决
|
||||
- ADR-0012 A5 探测显影接口
|
||||
- ADR-0013 D3 存档格式(RNG 快照契约已由 ADR-0005 锁定,格式归 Alpha)
|
||||
- C2/C3/C4 结构性决策随各系统 GDD 立项
|
||||
|
||||
---
|
||||
|
||||
## Architecture Principles
|
||||
|
||||
1. **Core 纯逻辑、headless 完整可跑**——Core/Feature 玩法逻辑零 Control/场景引用、零 UI 依赖;`--headless --script` 可跑完整战斗(D2 Rule 7 工程债;切片 88 冒烟实证)。输入是意图对象、输出是事件流/步骤流,D1 与输入设备皆可替换。
|
||||
1. **核心层纯逻辑、headless 完整可跑**——核心层/功能层玩法逻辑零 Control/场景引用、零 UI 依赖;`--headless --script` 可跑完整战斗(D2 Rule 7 工程债;切片 88 冒烟实证)。输入是意图对象、输出是事件流/步骤流,D1 与输入设备皆可替换。
|
||||
2. **单一事实源与零字面量**——玩法数值只存在于 `data/tables/*.tres`,经 ConfigDB 类型化单点读取;代码零玩法数值字面量;参数禁止跨系统复制(D2 Rule 1/2)。
|
||||
3. **封闭 RNG 与可回放**——玩法代码零随机;一切随机经 RngService 具名封闭流(增流走 P1 评审);同种子 + 同输入序列 ⇒ 事件流/步骤流逐位相同(结算禁 await,B1 承重约束)。
|
||||
4. **编排唯一性与事件面封闭**——战斗域跨系统调用权集中 B1(静态扫描承载);A2 三事件面封闭即负空间;每格受理、每雷转化、每次推进、每次衰减各恰一次。
|
||||
@@ -279,17 +348,21 @@ Technical Requirements Baseline 63 条 → ADR 覆盖 0 条(无 ADR 存在)
|
||||
|
||||
---
|
||||
|
||||
## Open Questions
|
||||
## 未决问题
|
||||
|
||||
| ID | Summary | Priority | Resolution Path |
|
||||
|----|---------|----------|-----------------|
|
||||
| QQ-01 | 渲染器选择(Forward+ vs gl_compatibility)与项目窗口基线 | High | ADR-0002(正式骨架前) |
|
||||
| QQ-02 | 事件总线载体与 A2 事件捕获测试 API | High | ADR-0001(正式骨架前) |
|
||||
| QQ-03 | gdUnit4 是否引入并迁移冒烟用例 | Medium | ADR-0004(可推迟到正式 CI 期;D2 OQ1) |
|
||||
| QQ-04 | 轮内刷新数值连锁(清图支配性条款⑤ / 真人刷图行为获取期望)重算 | Medium | playtest 实测 + ADR-0008 正式化批 |
|
||||
| QQ-01 | 渲染器选择(Forward+ vs gl_compatibility)与项目窗口基线 | High | **已落定**(2026-09-12):gl_compatibility + 1280×800 基座(canvas_items + expand);沿革见 git 历史 |
|
||||
| QQ-02 | 事件总线载体与 A2 事件捕获测试 API | High | **已落定**(2026-09-12):组合根直连 signal + Waiting 相位触发;autoload 全局总线否决 |
|
||||
| QQ-03 | gdUnit4 是否引入并迁移冒烟用例 | Medium | **已落定**:deferred(现行双载体承载;D2 OQ1 关闭) |
|
||||
| QQ-04 | 轮内刷新数值连锁(清图支配性条款⑤ / 真人刷图行为获取期望)重算 | Medium | playtest 实测 |
|
||||
| QQ-05 | 战斗末可选类"j==0 补发 1 件"兜底是否采纳(切片遗留待办) | Medium | playtest + B4 GDD 修订批 |
|
||||
| QQ-06 | 可选类退出格子池后 buff 频率被动上升(44%→59%)的难度对冲杠杆(敌 HP / 权重 / 幅度) | High | C3 调参 + 切片数据复测 |
|
||||
| QQ-07 | 标错惩罚(A2 OQ1:候选敌方伏击+1;hit=false 无去重的不对称裁决) | Medium | 原型小补丁实测会话(可与 v3 终验合并) |
|
||||
| QQ-08 | B5 双舞台陷阱(战斗发生在棋盘上还是独立场景) | Low(B5 前) | 战斗表现美术测试 → ADR-0010 |
|
||||
| QQ-09 | C3 消费 B1 对账输出的事实依赖回写 systems-index | Low | C3 GDD 定稿时 |
|
||||
| QQ-08 | B5 双舞台陷阱(战斗发生在棋盘上还是独立场景) | Low(B5 前) | 战斗表现美术测试后裁决 |
|
||||
| QQ-09 | C3 消费 B1 对账输出的事实依赖回写 `design/gdd/02-系统清单.md` | Low | C3 GDD 定稿时 |
|
||||
| QQ-10 | `.claude/docs/director-gates.md` 缺失(TD-ARCHITECTURE/LP-FEASIBILITY 判据无载体) | Low | 补建 gate 定义文件或维持 solo/lean 模式约定 |
|
||||
| QQ-11 | A1 生成性能姿态(F2c 常数 C 定稿;切片实证 10×10/12×12 同步生成可接受,WorkerThread 留扩展) | Medium | A1 GDD 修订批 |
|
||||
| QQ-12 | 零伤害死局跨字段/跨表护栏落点(B2 OQ9;推荐 D2 跨表校验——切片 LevelTable 校验⑧先例) | Medium | D2 校验设计批 |
|
||||
| QQ-13 | A1 EC5 运行期熔断(连续降级确定性回退已知好种子) | Low | A1 GDD 修订批 |
|
||||
| QQ-14 | A5 探测显影接口 / D3 存档格式(RNG 快照契约已在案,格式归 Alpha) | Low | 秘宝域正式化 / D3 Alpha 设计批 |
|
||||
@@ -1,102 +0,0 @@
|
||||
# 战斗棋盘 Node2D 渲染迁移方案(Phase A:仅棋盘)
|
||||
|
||||
> 状态:**草稿待审**(2026-09-23 起草,board-node2d-plan-20260923 worktree)。
|
||||
> 上位裁决:ADR-0006(分工与形态)、用户 2026-09-23 拍板「Node2D 重构只迁战斗棋盘,开始菜单/各覆盖层保持 Control;战斗画面 Node 后续批完成」。
|
||||
> 本文档是 Phase A 实施批的工程方案;批准后实施批从本文开工,不再另起炉灶。
|
||||
|
||||
## 0. 一句话
|
||||
|
||||
把 D 区棋盘本体从「GridContainer + 逐格 Button」换成「Control 壳 + SubViewport + Node2D 世界」,BoardView 类名与公共面契约逐项保持——探针与组合根零改造,素材终稿到位后 1:1 换图零返工。
|
||||
|
||||
## 1. 目标形态(已与用户确认的三块模型)
|
||||
|
||||
战斗屏 = 两块 Node2D 舞台 + 一层 Control 面板。术语校准:Godot 没有「Canvas」节点——面板层是 Control 树(常驻顶层与弹层经 CanvasLayer,现状已如此);Node2D 不参与 Control 容器布局,所以每块舞台包一个 Control 壳(SubViewportContainer)参与屏幕栅格布局,壳内才是 Node2D 世界。
|
||||
|
||||
```
|
||||
BattleScreen(Control 栅格;目标形态 = B/C/D 三区——进度条退场裁定见下)
|
||||
├── B 战斗画面(Phase B 改造,本批不动)
|
||||
│ ├── Node2D 舞台壳:主角/敌人站桩、意图动画、演出(后续批)
|
||||
│ └── Control 半区:结算明细带、回合指示、战斗日志(永久 Control)
|
||||
├── C 角色信息 .................. Control(不动)
|
||||
└── D 扫雷图
|
||||
├── AP 条、按钮组、toast .... Control(不动)
|
||||
└── BoardView(本批改造对象)
|
||||
└── SubViewportContainer(Control 壳,参与布局)
|
||||
└── SubViewport(逻辑分辨率 = 格边长 × 板尺寸)
|
||||
└── BoardWorld(Node2D)
|
||||
└── CellUnit × N(Node2D,每格一个)
|
||||
```
|
||||
|
||||
**进度条退场裁定(2026-09-23 用户)**:战斗画面不再有关卡进度条——战斗结束后返回关卡画面,节点链进度只留关卡画面。
|
||||
|
||||
**A 区代码命运(2026-09-23 追问裁定):退役,不迁移。关卡画面不重新实现。**
|
||||
|
||||
- **关卡画面 = RouteOverlay 升级**:现役选路覆盖层已是整幅节点图 + 全套节点态语义(暗金已过/金当前/暗未达/亮金候选通道/紫赤 Boss 边(旗朱→紫赤 2026-09-26 封印紫批),与压缩条同一组 UiKit token)+ 候选按钮 + 放弃入口。停点前移批只改开合时机(关卡开始即开、战后返回即开)与流程接线(选路确认不再经兑付停点绕行),渲染本体零重写。
|
||||
- **LevelStripView 不迁移的理由**:它唯一的存在理由 = 战斗屏上看不到整图时的 28px 压缩常显替代面。地图页上压缩条冗余(整图即进度),战斗屏又已裁定零进度显示——迁过去没有消费者。其语义无独有资产(色板/节点态与 RouteOverlay 同族),单链退化渲染(全链横条)被整图布局天然取代。
|
||||
- **唯一继承面 = 逻辑层数据面**:runner 只读出口(`nodes()` / `visited_ids()` / 节点编号空间 / `next_candidates()`)零改动——压缩条与整图本来就消费同一份数据,这正是"退役不迁移"成立的根据。
|
||||
|
||||
排程事实与修订面:
|
||||
|
||||
1. **A 区现状代码继续服役**:当前流程尚未倒置(冒险开局直进战斗,节点图是战后弹层),A 区顶栏是战斗过程中唯一的节点链可视面——先删会致盲。退场落地 = 停点前移批,届时四区→三区。
|
||||
2. **停点前移批的删除面清单**(退役随该批执行):`LevelStripView` 类、ui_assembler 组装行(:28)、main.gd `strip_view` 引用(:52 等)、ui_probe 两处断言(:77–78 节点条构建检查、:188 报告行)、battle.md A 区条款。
|
||||
3. **该批的 GDD 修订面**:HUD框架.md 四区结构表(含 B/C/D 是否重新编字母)、关卡节点地图.md 节点链常显条款(常显载体随进度条退役,由关卡画面本体承接)、battle.md 像素布局表(28px 纵向空间再分配)。
|
||||
|
||||
## 2. Phase A 范围(本批做)
|
||||
|
||||
1. **BoardView 内部重构**(`presentation/views/board_view.gd`):
|
||||
- 根仍是 Control(类名/extends 不变),子结构 GridContainer → SubViewportContainer + SubViewport + BoardWorld。
|
||||
- `_cells`:Vector2i → CellUnit(Node2D)字典,键面与现 Dict 同构(探针断言面,见 §4)。
|
||||
- CellUnit 内部固定叠层序:砖面底 < 变异纹带 < 数字/徽章 < 旗 < 焦点高亮——本批全程序化绘制(`_draw`),等价平移现行视觉;每个叠层留 `texture` 槽位(§8.2 暂定档 32×32),终稿纹理换入即用。
|
||||
- 现有行为逐项平移:呼吸微光(StyleBoxFlat 边框 → `_draw` 边框)、悬停反白、路径预览、危险红、双击 chord 检测、`set_desaturated`(ShaderMaterial 挂 BoardWorld 材质)。
|
||||
2. **输入换板**:BoardView 壳层 `_gui_input` 接鼠标 → 格坐标单点公式 `floor(local_pos / cell_edge)` → 复用现有 hover/click/chord/长按逻辑;`action_requested` 信号链不变。
|
||||
3. **`cell_size` 只读属性增补**:现私有名 `_cell`,ui_layout_probe `get("cell_size")` 读到 null——补只读属性,顺手修正。
|
||||
4. **push_input 端到端输入探针**(新增,ADR-0003 登记项转义务):合成鼠标事件经真实输入路径打 SubViewportContainer,验悬停/左键/右键/chord 四 case——现探针全走 `click_cell` 直调,公式换算无覆盖,这是唯一新增自动化面。
|
||||
5. **冒烟全量回归 + 文档随批**:HUD框架.md 渲染技术注记(v0.x 版本行)、battle.md 实现注记(格尺寸公式锚点不动)、architecture.md BoardView 形态行、ui_kit 同步面清点。
|
||||
|
||||
**不做**(明确出批):B 区舞台任何改动;素材终稿接入;格边长数值调整(归样张批);键盘寻格/无障碍(沿 ADR-0003 已接受口径)。
|
||||
|
||||
## 3. Phase B(2026-09-26 已落地——战斗舞台 Node2D 迁移批,台账 170-173)
|
||||
|
||||
- BattleStageView 同构改造**已实施**:PanelContainer → Control 壳(类名/252px/树内位置不变)+ Node2D 舞台半区(SubViewportContainer/SubViewport/StageWorld)+ Control 文本半区(round_label/stage_center/log_view 三件保留);站桩 StandeeView(Control)退役删除,本体 = StandeeBody(Node2D 世界精灵,行为面 17 方法契约保持);slot_row+悬停 tooltip 保留 Control 载体挂壳层(伴随件容器 = enemy_box 语义改写)。
|
||||
- Phase A 交付的两挂点已被 Phase B 复用:set_world_font 字体显式注入(C6 判据=注入非空+has_char+宽度>0)与坐标空间分界纪律(世界=局部排布,壳层换算单点 world_to_shell)。
|
||||
- **样张硬前置改判(用户 2026-09-26 裁决①)**:样张批冻结只卡换皮/演出批(循环 2 前置),不卡结构迁移——本节原「Phase B 开工硬前置 = 样张批冻结」条款据此作废;ADR-0006「只卡换皮不卡开工」原则的落文位。
|
||||
|
||||
## 4. 探针与测量面(实证清单)
|
||||
|
||||
| 探针/工具 | 耦合点(实证) | Phase A 处置 |
|
||||
|---|---|---|
|
||||
| ui_probe | `board_view._cells.is_empty()`(:73)、`_cells.size()` 对板宽高(:187)、`board()`/`set_desaturated()` | `_cells` 键面同构即绿,零改 |
|
||||
| ui_click_probe | `click_cell(cell, button)` 直调(:257–277)、`_cells.is_empty()`(:97);**无合成鼠标事件**(grep parse_input_event/push_input 零命中) | 公共方法保留即绿,零改 |
|
||||
| ui_layout_probe | `get("cell_size")`(:39,现读 null)、`board()` | 增补只读属性(§2.3) |
|
||||
| smoke 行协议同步闸 | 战斗日志 9 类行格式化(smoke_all.gd:3325+)——**是日志行不是棋盘** | 零影响,全量回归覆盖 |
|
||||
| MC / 模拟试玩 / verifier | core/ 逻辑层 | 零接触零影响 |
|
||||
|
||||
## 5. 性能与预算
|
||||
|
||||
- draw calls:CellUnit 同材质 `_draw` 走 2D 批处理,144 格占位态预计个位数批次;预算 < 200 维持(HUD框架 引用值),实施批用 RenderingServer 实测数回填。
|
||||
- 进入战斗屏 500ms 可交互:SubViewport 创建在 `_ready` 一次完成,无逐帧重建;`set_cell_area`/`rebuild` 只重排子节点。
|
||||
- SubViewport 逻辑分辨率 = 格边长 × 板尺寸(≤ 36px × 14 格量级),渲染目标显存占用可忽略;低端机帧预算实施批实测。
|
||||
|
||||
## 6. 风险与对策
|
||||
|
||||
| 风险 | 对策 |
|
||||
|---|---|
|
||||
| SubViewport 内 Label 不继承主场景主题(数字/中文渲染空白或字体错) | 实施批第一小步先做 theme/字体显式注入挂点并用 CJK 冒烟验证——ADR-0006 Verification Required 项 |
|
||||
| 45/36px 锚点 × 32px 格源非整倍缩放出现像素纹路 | 架构只保证 `set_cell_area` 单点可调;数值归样张批(圣经 §8.2 v1.9 注记①路线),本批不裁决 |
|
||||
| `_gui_input` 与 toast/AP 条控件输入抢占 | D 区内部布局不变(Control 兄弟件照旧),棋盘壳是叶节点,抢占面与现 GridContainer 相同;探针四 case 覆盖 |
|
||||
| 改造期行为漂移(呼吸微光/chord 时序等隐性手感) | 功能等价清单(ADR-0006 Validation)逐项人工核对 + 探针自动化面 |
|
||||
|
||||
## 7. 排期与依赖
|
||||
|
||||
| 项 | 估时 | 依赖 |
|
||||
|---|---|---|
|
||||
| 本起草批(ADR-0006 + 本方案 + ADR-0003 注记) | 已完成,待审 | 无 |
|
||||
| Phase A 实施批 | 1–2 天(含探针增补 + 冒烟回归 + 文档随批) | 本方案批准 |
|
||||
| 样张批(素材侧,另线) | 未排 | 主角候选表态 + 复用批审阅 |
|
||||
| Phase B 实施批 | 未排(同构复制,估时随 Phase A 实测修正) | Phase A 落地 + 样张批冻结 |
|
||||
|
||||
与在飞批的关系:曲线调参双刀扫描(worktree hp-bonus-scan-20260923)与本批文件集零交集;UI 复用候选审阅是素材侧独立线,互不阻塞。
|
||||
|
||||
## 8. 验收(实施批完成定义)
|
||||
|
||||
ADR-0006 Validation Criteria 全项:冒烟全量绿 + 三探针绿 + 新增 push_input 探针绿 + 功能等价清单逐项可验 + draw calls < 200 实测回填 + 两档分辨率装板校验(12×12 与 10×10 各验)。
|
||||
@@ -1,132 +0,0 @@
|
||||
# 代码架构审查报告 — 代码组织与封装
|
||||
|
||||
> 日期:2026-09-13
|
||||
> 载体:`game/`(9707 行 GDScript:core 12 文件 / data 11 / presentation 28 / smoke 10)
|
||||
> 基线:`docs/architecture/architecture.md` v1.0 + ADR-0001~0005 + `docs/code-conventions.md`
|
||||
> 触发:用户在 code-review 之后要求补充「代码组织问题 + 封装问题」专项审查
|
||||
> 审查方式:core/presentation 关键文件全读 + S1–S8 静态规则逐条 grep 验证 + 跨层引用面扫描
|
||||
>
|
||||
> **Verdict: CONCERNS** — 分层纪律实测扎实(S1–S7 零违例、仅 2 处已登记例外),但封装收口存在
|
||||
> 一条系统性欠账:核心模块内部状态以公有字段暴露,呈现层已形成链式穿透的既成事实。
|
||||
> 原型期无害;是 ADR-0009「切片机制正式化批」应收口的主题。
|
||||
|
||||
---
|
||||
|
||||
## 1. 正面观察(实测合规项)
|
||||
|
||||
| 规则 | 结论 | 证据 |
|
||||
|---|---|---|
|
||||
| S1/S2 零随机 | ✅ | core 内唯一 `RandomNumberGenerator.new` 在 rng_service.gd:76(所有者本体);`stream.randf()`(reward_supply_controller.gd:32)取号经 B4 注入封闭流 |
|
||||
| S3 零表加载 | ✅ | core 内唯一 `load()` 在 config_db.gd:81(单点本体) |
|
||||
| S4 core 零 UI | ✅ | core/ 无 Control/Node2D/.tscn 引用(grep 命中均为 `RewardSupplyController` 类名误报与注释) |
|
||||
| S5 零裸引用 autoload | ✅ | core/ 内 ConfigDB/RngService 命中均为日志前缀字符串 |
|
||||
| S6 core↔core 方法 Callable | ✅ | level_runner.gd:130-134 全部方法转发;lambda 仅用于 sort_custom(不捕获 self) |
|
||||
| S7 编排唯一性 | ✅ | B2/B3/B4 调用面 core 内收口于 battle_orchestrator.gd;仅 level_runner.gd:112(grant_node_active,已登记接口漂移)与 :168(in_stock_count 只读)两处例外 |
|
||||
| 呈现层零核心引用 | ✅ | 28 个视图/装配器文件中仅 main.gd(组合根)与 hud_presenter.gd(授权翻译点)触 core |
|
||||
| 封装典范 | — | status_container / reward_supply_controller / b4.query_inventory():私有状态 + 投影查询 + 授予时快照;battle_orchestrator.diagnostic_snapshot()(:660)为「成文只读出口」正确先例 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 封装问题(按根因 → 表征排序)
|
||||
|
||||
### E1(根因)编排器协作对象全公开,呈现层链式穿透已成既成事实 — P1
|
||||
|
||||
- **位置**:core/battle_orchestrator.gd:20-27(`var a1/a2/a3/b2/b3/b4` 全公有)
|
||||
- **表征**:`b1.a2.board`、`b1.b2.hero.hp`、`b1.a3.phase` 式层层下钻——main.gd 18 处、hud_presenter.gd 15 处。
|
||||
- **影响**:组合根与 presenter 是授权翻译点,但访问形态是「恰好字段公开」而非「B1 提供成文读取面」。
|
||||
S7 只能做文件级扫描(防另写调用方),防不了呈现层意外调用写 API,也防不了读取路径随重构漂移。
|
||||
- **建议**:B1 补聚合呈现快照/查询面(`hud_state()` 一类,先例 = `diagnostic_snapshot()`);
|
||||
a2–b4 下划线化后经命名代理暴露只读操作。
|
||||
|
||||
### E2(表征)视图绕过 A2 查询面直读原始状态字典 — P1
|
||||
|
||||
- **位置**:core/minesweeper_rules.gd:18-20(`board/revealed/flags` 公开可变);
|
||||
presentation/views/board_view.gd:278、:303 直接 `_a2.revealed.get(c, {})`
|
||||
- **矛盾点**:board_view.gd:7 头注自称「只读 A2 查询面」——直读 `.revealed` 恰是绕过查询面。
|
||||
B1 自身亦直读(battle_orchestrator.gd:565-569 `a2.board.width/height`)。
|
||||
- **建议**:`revealed/flags` 私有化;补 `reveal_record(c) -> Dictionary`、`board_dimensions()` 查询面。
|
||||
调用点仅 B1 + board_view + main 三处,成本很低。
|
||||
|
||||
### E3(表征)B2 裸字典句柄跨模块传递,API 缺「含死亡残位」查询面 — P2
|
||||
|
||||
- **位置**:core/unit_container.gd:13-14(`hero/enemies` 公开;句柄 = Dictionary 本体,任何持有者可
|
||||
`u.hp = 999` 绕过 apply_damage)
|
||||
- **现症**:hud_presenter.gd:78-79 为渲染死亡残位直读 `b1.b2.enemies` 原始数组——
|
||||
B2 的 `query_alive` 不含死亡单位,API 缺口迫使呈现层越界(B2 头注已登记此痛点)。
|
||||
- **建议**:短期补 `query_all_units()` 投影面把 presenter 需求收进 API;
|
||||
正式化(ADR-0007 两 face 归属裁决时)再决定是否升级 Unit 类型。
|
||||
|
||||
### E4 `db.hero` 表值运行时改写——测试覆盖通道用共享可变单例传参 — P2
|
||||
|
||||
- **位置**:presentation/main.gd:327-329、core/level_runner.gd:60-61,75-76 直接写 `db.hero.atk/max_hp`;
|
||||
B2.spawn 经读表间接获得加成值
|
||||
- **前科**:双写叠加 6→18→54 教训、双基线同步义务(main.gd:187-189 注释)——纪律已成文但机制脆弱。
|
||||
- **建议**:切片保留;将「运行时表可变」登记进 ADR-0009 候选;正式化改参数传递(`spawn(atk_override=...)`)。
|
||||
|
||||
### E5 「只读」字段仅靠纪律,无机制约束 — P2
|
||||
|
||||
- **位置**:core/action_economy.gd:17-20(`phase/ap/rap/last_round_end` 架构文档定义为只读,实际公开可变);
|
||||
core/rng_service.gd:19(`master_seed` 可绕过 set_master_seed 的计数器全零断言)
|
||||
- **现状**:当前调用方全部合规(A2 经 try_spend/request_dig,B1 经 notify_*,呈现层只读)。
|
||||
- **建议**:下划线化 + 查询方法(`phase()/ap()/rap()`),趁调用方少时收口,成本极低。
|
||||
|
||||
### E6 小项 — P3
|
||||
|
||||
| 项 | 位置 | 说明 |
|
||||
|---|---|---|
|
||||
| 返回类型多态 | core/reward_economy.gd(grant/stock/use 失败返 `false`,query_* 返 `null`) | B1 消费处被迫 `if not (snap is Dictionary)`;统一 `null` 更符合 GDScript 惯例 |
|
||||
| 泄漏原始表行 | core/reward_economy.gd:256-265 `equivalence_supply` 返回 `db.reward.rows` 行引用(可变) | 工具观测面,建议 `duplicate()` |
|
||||
| BoardData 全公开 | core/board_data.gd:8-18「生成后不可变」仅靠注释;视图持板即可读全部雷位(当前未作弊) | 正式化时 duplicate 冻结或下划线化 + 访问器 |
|
||||
| 成员声明位置 | core/action_economy.gd:121 `var _next_round_mode` 声明在中部、使用在前 | 集中到顶部 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 代码组织问题
|
||||
|
||||
### O1 main.gd 回涨至 667 行,再越 ~400 行审视线(规范 1.1)— P1
|
||||
|
||||
- **位置**:presentation/main.gd(667 行);ui_assembler.gd:3 自记「回涨 761 行触发审视线——拆出」历史
|
||||
- **增长主因**:调试模式(`_start_single/_start_debug_levels/_start_battle/_on_battle_finished` 的
|
||||
`_level_mode` 分支约 100+ 行)糊在组合根。
|
||||
- **建议**:照 tune_sim_controller.gd 先例把调试模式抽成独立控制器,组合根回到纯接线。
|
||||
|
||||
### O2 调试模式与 LevelRunner 平行实现,语义漂移风险 — P1
|
||||
|
||||
- **位置**:「库存跨战斗延续 + HP 携带 + 层级推进」存在两份实现——core/level_runner.gd(正式)与
|
||||
main.gd 调试分支(历史入口);`level_clear()` 调用时点已各有细节(main.gd:367,376 vs level_runner.gd:167)。
|
||||
- **建议**:调试两层模式直接复用 LevelRunner(其设计目标即此),或抽 `DebugBattleSession`。
|
||||
|
||||
### O3 B1 体量与纯函数沉淀 — P2
|
||||
|
||||
- **位置**:core/battle_orchestrator.gd 718 行(审视线超 300+);
|
||||
伤害公式族 `_resolve_damage/_charge_damage_component/_armor_effectiveness/_clamped_pool`
|
||||
(约 80 行)为零状态纯算术。
|
||||
- **建议**:按规范 1.2 抽 `DamageMath` 静态宿主类;段序骨架不动、可回放承诺无风险。
|
||||
- **顺带**:core/board_generator.gd:50-55 对同一张合法板调用两次 `measure_inferability`
|
||||
(全库最贵求解器)——合并为一次。
|
||||
|
||||
### O4 呈现层反向依赖 smoke 工具域 — P2
|
||||
|
||||
- **位置**:presentation/tune_sim_controller.gd:23 `load("res://smoke/level_autoplay.gd")`——
|
||||
UI 控制器依赖测试工具目录。
|
||||
- **建议**:「关卡自动模拟循环」上移为共享组件(core 或 lib),smoke 与 tune_sim 共同消费。
|
||||
- **顺带**:main.gd:106,188 与 tune_sim_controller.gd:23 用运行时字符串 `load()`,
|
||||
与 main.gd:16-19 的 `preload` 常量风格混用——统一 `preload`(编译期路径校验)。
|
||||
|
||||
### O5 头注溯源缺失(规范 1.4)— P3
|
||||
|
||||
core/ 12 文件中 4 个缺标准 `# 实现 GDD:...` 行:
|
||||
`board_data.gd`(有 A1 描述但非标准格式)、`config_db.gd`、`rng_service.gd`、`reward_supply_controller.gd`。
|
||||
|
||||
---
|
||||
|
||||
## 4. 建议行动顺序
|
||||
|
||||
1. **P1 三连(合计约 2 天)**:
|
||||
E2(A2 状态私有化 + 查询面)→ E1(B1 呈现快照面)→ O1+O2(调试模式抽离/复用 runner)。
|
||||
完成后 board_view / hud_presenter / main 与 core 的接触面全部变为命名 API,封装收口完成。
|
||||
2. **P2 项并入 ADR-0009「切片机制正式化批」裁决**:E4 表值改写参数化、E3 单位句柄形态、
|
||||
O3 DamageMath 拆分、O4 模拟循环上移。
|
||||
3. **P3 顺手清**(头注补齐、返回值统一、声明位置、preload 统一)。
|
||||
|
||||
> 复审触发:P1 三连落地后重跑本审查核对接触面收口;ADR-0009 落定后正式工程骨架迁移前复核 E3/E4 裁决结果。
|
||||
+469
-234
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="generator" content="archify 2.17.0-dev.1">
|
||||
<title>Dungeon Sweeper game/ 架构(系统级)</title>
|
||||
<title>游戏代码实现架构(Godot 场景·脚本·运行时树)</title>
|
||||
<script>
|
||||
// Resolve the theme before first paint so light-preference users don't
|
||||
// see a dark flash. The toolbar script below re-applies with UI state.
|
||||
@@ -5081,11 +5081,11 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
data-preset-badge-blueprint="蓝图 / 修订 01"
|
||||
data-preset-badge-editorial="编辑风格 / 现场笔记">
|
||||
<div class="pulse-dot"></div>
|
||||
<h1>Dungeon Sweeper game/ 架构(系统级)</h1>
|
||||
<h1>游戏代码实现架构(Godot 场景·脚本·运行时树)</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script id="archify-guided-views-data" type="application/json">[{"id":"main-loop","label":"主循环路径","focus":["main-root","adventure-loop","battle-domain","board-mines"],"note":"组合根装配冒险循环,AdventureRunner 逐关推进,关卡内开战进入战斗枢纽与棋盘扫雷。"},{"id":"battle-hub","label":"战斗枢纽","focus":["battle-domain","board-mines","reward-econ","item-domain","rng-service"],"note":"battle_orchestrator 是边最多的域:棋盘生成、扫雷判定、伤害结算、奖励抽取、道具消费、随机掷点。"},{"id":"data-path","label":"数据通路","focus":["config-db","data-tables","meta-save","adventure-loop"],"note":"ConfigDB autoload 单点加载 18 组数值表;组合根注入 db,元进度与存档经同一条配置通路。"}]</script>
|
||||
<script id="archify-guided-views-data" type="application/json">[]</script>
|
||||
|
||||
<script id="archify-i18n-data" type="application/json">{"locale":"zh-CN","messages":{"viewer.kind.frontend":"前端","viewer.kind.backend":"后端","viewer.kind.database":"数据库","viewer.kind.cloud":"云服务","viewer.kind.security":"安全","viewer.kind.messagebus":"消息总线","viewer.kind.external":"外部系统","viewer.kind.neutral":"中性","viewer.kind.node":"节点","viewer.kind.start":"开始","viewer.kind.active":"活动","viewer.kind.waiting":"等待","viewer.kind.decision":"决策","viewer.kind.success":"成功","viewer.kind.failure":"失败","viewer.toolbar.actions":"图表操作","viewer.theme.toggle.title":"切换主题(T)","viewer.theme.toggle":"切换颜色主题","viewer.theme.dark":"深色","viewer.theme.light":"浅色","viewer.preset.choose.title":"选择视觉风格(S 循环切换)","viewer.preset.choose":"选择视觉风格","viewer.preset.style":"风格","viewer.preset.menu":"视觉风格","viewer.preset.identity":"视觉表达","viewer.preset.cycles":"S 循环切换","viewer.preset.classic":"经典","viewer.preset.classic.short":"经典","viewer.preset.classic.hint":"稳定的技术默认风格","viewer.preset.flow":"信号流","viewer.preset.flow.short":"流动","viewer.preset.flow.hint":"突出动态流向","viewer.preset.blueprint":"蓝图","viewer.preset.blueprint.hint":"工程评审","viewer.preset.editorial":"编辑风格","viewer.preset.editorial.hint":"适合发布与上线说明","viewer.preset.badge.signalFlow":"信号流","viewer.preset.badge.blueprint":"蓝图 / 修订 01","viewer.preset.badge.editorial":"编辑风格 / 现场笔记","viewer.preset.badge.editorialPlate":"ARCHIFY / 图版 04","viewer.preset.current":"当前视觉风格:{style}。选择视觉风格","viewer.motion.live":"动态","viewer.motion.still":"静态","viewer.motion.pause":"暂停动效","viewer.motion.resume":"恢复动效","viewer.motion.reduced":"已根据减少动态效果偏好暂停动效","viewer.motion.hidden":"页面不可见时已暂停动效","viewer.motion.yielding":"暂停动效;当前让位于{owner}","viewer.motion.yielding.title":"动态预览已启用 · 正在让位于{owner}","viewer.owner.story":"引导故事","viewer.owner.chapter":"当前章节","viewer.owner.chapterPreview":"章节差异预览","viewer.owner.handoff":"章节交接","viewer.owner.route":"路径探测","viewer.owner.lens":"语义透镜","viewer.owner.relationship":"关系预览","viewer.owner.intent":"意图追踪","viewer.owner.focus":"语义聚焦","viewer.owner.legend":"图例预览","viewer.owner.reader":"读者交互","viewer.present.enter":"进入演示模式","viewer.present.enter.title":"演示模式(F)","viewer.present.exit":"退出演示模式","viewer.present.exit.title":"退出演示模式(F 或 Escape)","viewer.present.present":"演示","viewer.present.exit.label":"退出","viewer.export.button":"导出","viewer.export.button.title":"导出图表(E)","viewer.export.diagram":"导出图表","viewer.export.menu":"导出","viewer.export.subtitle":"便携、整洁的输出","viewer.export.share":"分享","viewer.export.shareCard":"分享卡片","viewer.export.routeShareCard":"路径分享卡片","viewer.export.reachShareCard":"可达范围分享卡片","viewer.export.copyShareCard":"复制分享卡片","viewer.export.copyDiagram":"复制图表","viewer.export.clipboardPng":"复制 PNG 到剪贴板","viewer.export.raster":"位图","viewer.export.image":"图像","viewer.export.lossless":"无损图像","viewer.export.compact":"紧凑图像","viewer.export.modern":"现代图像格式","viewer.export.vectorMotion":"矢量与动效","viewer.export.vectorMotion.heading":"矢量与动效","viewer.export.editable":"可编辑矢量图","viewer.export.motion6s":"6 秒动效","viewer.export.unsupported":"当前浏览器不支持","viewer.export.clipboardUnsupported":"当前浏览器不支持写入图片剪贴板","viewer.export.clipboardUnsupported.period":"当前浏览器不支持写入图片剪贴板。","viewer.export.clipboardUnsupported.short":"此浏览器不支持写入图片剪贴板。","viewer.export.motionUnavailable":"当前浏览器无法录制动效","viewer.export.webmUnavailable":"当前浏览器不支持 WebM","viewer.export.failed":"导出失败:{message}","viewer.export.unknownVariant":"未知的分享卡片类型:{variant}","viewer.export.routeRequired":"请先追踪路径,再导出路径分享卡片","viewer.export.reachRequired":"请先追踪编写可达范围,再导出可达范围分享卡片","viewer.export.unknown":"未知错误","viewer.export.routeFailed":"路径分享卡片导出失败:{message}","viewer.export.reachFailed":"可达范围分享卡片导出失败:{message}","viewer.export.copyFailed":"复制失败:{message}","viewer.export.copiedPng":"已将 PNG 复制到剪贴板","viewer.export.copiedShare":"已复制分享卡片","viewer.export.downloadedShare":"已下载分享卡片","viewer.export.downloadedRoute":"已下载路径分享Line truncated
|
||||
<div class="guided-views no-print" id="guided-views" hidden aria-label="图表引导视图">
|
||||
@@ -5130,8 +5130,8 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
<!-- Main Diagram -->
|
||||
<div class="diagram-container" data-detail-level="read"
|
||||
data-preset-badge-editorial-plate="ARCHIFY / 图版 04">
|
||||
<svg viewBox="0 0 1130 650" role="img" lang="zh-CN" aria-labelledby="archify-diagram-title archify-diagram-description" data-preset="classic" data-quality-profile="showcase">
|
||||
<title id="archify-diagram-title">Dungeon Sweeper game/ 架构(系统级)</title>
|
||||
<svg viewBox="0 0 1320 760" role="img" lang="zh-CN" aria-labelledby="archify-diagram-title archify-diagram-description" data-preset="classic" data-quality-profile="showcase">
|
||||
<title id="archify-diagram-title">游戏代码实现架构(Godot 场景·脚本·运行时树)</title>
|
||||
<desc id="archify-diagram-description">由 Archify 生成的架构图。</desc>
|
||||
<!-- Definitions -->
|
||||
<defs>
|
||||
@@ -5156,278 +5156,513 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
<rect width="100%" height="100%" fill="url(#grid)" />
|
||||
|
||||
<!-- Boundaries (behind everything) -->
|
||||
<rect data-graph-role="structural-frame" data-composition-frame-kind="region" data-composition-frame-id="0" data-composition-frame-label="presentation/ 呈现层" x="0" y="40" width="1120" height="160" rx="12" class="c-region" stroke-width="1"/>
|
||||
<rect data-graph-role="structural-frame" data-composition-frame-kind="region" data-composition-frame-id="0" data-composition-frame-label="战斗主界面(UiAssembler 拼装)" x="10" y="230" width="1108" height="138" rx="12" class="c-region" stroke-width="1"/>
|
||||
|
||||
<rect data-graph-role="structural-frame" data-composition-frame-kind="region" data-composition-frame-id="1" data-composition-frame-label="core/ 全局服务(autoload)" x="0" y="235" width="970" height="170" rx="12" class="c-region" stroke-width="1"/>
|
||||
<rect data-graph-role="structural-frame" data-composition-frame-kind="region" data-composition-frame-id="1" data-composition-frame-label="浮层与对话框(组合根挂载)" x="90" y="390" width="1060" height="106" rx="12" class="c-region" stroke-width="1"/>
|
||||
|
||||
<rect data-graph-role="structural-frame" data-composition-frame-kind="region" data-composition-frame-id="2" data-composition-frame-label="core/ 玩法域" x="230" y="225" width="900" height="425" rx="12" class="c-region" stroke-width="1"/>
|
||||
|
||||
<rect data-graph-role="structural-frame" data-composition-frame-kind="region" data-composition-frame-id="3" data-composition-frame-label="data/ 数据层" x="0" y="470" width="250" height="160" rx="12" class="c-region" stroke-width="1"/>
|
||||
<rect data-graph-role="structural-frame" data-composition-frame-kind="region" data-composition-frame-id="2" data-composition-frame-label="逻辑层 core/(21 件·名称清单)" x="66" y="524" width="1226" height="222" rx="12" class="c-region" stroke-width="1"/>
|
||||
|
||||
<!-- Connection paths (before components for correct z-order) -->
|
||||
<path data-edge-from="main-root" data-edge-to="presenters" data-edge-label="装配" data-edge-key="0" data-edge-id="main-to-presenters" data-composition-points="210,118;250,118" d="M 210 118 L 250 118" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="presenters" data-edge-to="views-board" data-edge-key="1" data-edge-id="presenters-to-views-board" data-composition-points="430,125;470,125" d="M 430 125 L 470 125" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="presenters" data-edge-to="views-screen" data-edge-key="2" data-edge-id="presenters-to-views-screen" data-composition-points="340,70;340,46;780,46;780,70" d="M 340 70 L 340 54 Q 340 46 348 46 L 772 46 Q 780 46 780 54 L 780 70" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="main-root" data-edge-to="adventure-loop" data-edge-label="冒险编排 · 注入 db/rng" data-edge-key="3" data-edge-id="main-to-adventure" data-composition-points="210,132;235,132;235,318;260,318" d="M 210 132 L 227 132 Q 235 132 235 140 L 235 310 Q 235 318 243 318 L 260 318" class="a-emphasis" stroke-width="1.8" marker-end="url(#arrowhead-emphasis)"/>
|
||||
<path data-edge-from="main-root" data-edge-to="config-db" data-edge-label="组合根引用" data-edge-key="4" data-edge-id="main-to-configdb" data-composition-points="120,180;120,204;141,204;141,241;125,241;125,265" d="M 120 180 L 120 196 Q 120 204 128 204 L 133 204 Q 141 204 141 212 L 141 233 Q 141 241 133 241 L 133 241 Q 125 241 125 249 L 125 265" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="adventure-loop" data-edge-to="config-db" data-edge-label="读表" data-edge-key="5" data-edge-id="adventure-to-configdb" data-composition-points="260,332;220,332" d="M 260 332 L 220 332" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="adventure-loop" data-edge-to="battle-domain" data-edge-label="开战" data-edge-key="6" data-edge-id="adventure-to-battle" data-composition-points="440,323;490,323" d="M 440 323 L 490 323" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="battle-domain" data-edge-to="rng-service" data-edge-label="掷点" data-edge-key="7" data-edge-id="battle-to-rng" data-composition-points="700,330;760,330" d="M 700 330 L 760 330" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="battle-domain" data-edge-to="board-mines" data-edge-label="棋盘 · 扫雷" data-edge-key="8" data-edge-id="battle-to-mines" data-composition-points="588,405;588,447.5;795,447.5;795,490" d="M 588 405 L 588 439.5 Q 588 447.5 596 447.5 L 787 447.5 Q 795 447.5 795 455.5 L 795 490" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="battle-domain" data-edge-to="item-domain" data-edge-label="伤害 / 掉落" data-edge-key="9" data-edge-id="battle-to-items" data-composition-points="490,337;465,337;465,553;440,553" d="M 490 337 L 473 337 Q 465 337 465 345 L 465 545 Q 465 553 457 553 L 440 553" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="battle-domain" data-edge-to="reward-econ" data-edge-label="结算 · 奖励抽取" data-edge-key="10" data-edge-id="battle-to-reward" data-composition-points="602,405;602,452.5;1015,452.5;1015,500" d="M 602 405 L 602 444.5 Q 602 452.5 610 452.5 L 1007 452.5 Q 1015 452.5 1015 460.5 L 1015 500" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="adventure-loop" data-edge-to="item-domain" data-edge-label="奇物 / 同调" data-edge-key="11" data-edge-id="adventure-to-items" data-composition-points="350,395;350,490" d="M 350 395 L 350 490" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="item-domain" data-edge-to="meta-save" data-edge-label="落档" data-edge-key="12" data-edge-id="items-to-meta" data-composition-points="440,567;470,567" d="M 440 567 L 470 567" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="config-db" data-edge-to="data-tables" data-edge-label="加载 .tres" data-edge-key="13" data-edge-id="configdb-to-tables" data-composition-points="125,385;125,500" d="M 125 385 L 125 500" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="main" data-edge-to="stage" data-edge-key="0" data-edge-id="main-stage" data-composition-points="566,132;566,196;125,196;125,260" d="M 566 132 L 566 188 Q 566 196 558 196 L 133 196 Q 125 196 125 204 L 125 260" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="main" data-edge-to="hero" data-edge-key="1" data-edge-id="main-hero" data-composition-points="580,132;580,196;335,196;335,260" d="M 580 132 L 580 188 Q 580 196 572 196 L 343 196 Q 335 196 335 204 L 335 260" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="board" data-edge-to="main" data-edge-label="翻开·插旗·和弦" data-edge-key="2" data-edge-id="board-main" data-composition-points="594,260;594,132" d="M 594 260 L 594 132" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="hero" data-edge-to="board" data-edge-label="秘宝两步交互" data-edge-key="3" data-edge-id="hero-board" data-composition-points="420,304;510,304" d="M 420 304 L 510 304" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="main" data-edge-to="save" data-edge-label="存档读写" data-edge-key="4" data-edge-id="main-save" data-composition-points="480,96;28,96;28,512;161,512;161,554" d="M 480 96 L 36 96 Q 28 96 28 104 L 28 504 Q 28 512 36 512 L 153 512 Q 161 512 161 520 L 161 554" class="a-dashed" stroke-width="1.5" marker-end="url(#arrowhead-dashed)"/>
|
||||
<path data-edge-from="orch" data-edge-to="stage" data-edge-label="结算回流" data-edge-key="5" data-edge-id="orch-stage" data-composition-points="448,554;448,376;125,376;125,348" d="M 448 554 L 448 384 Q 448 376 440 376 L 133 376 Q 125 376 125 368 L 125 348" class="a-emphasis" stroke-width="1.8" marker-end="url(#arrowhead-emphasis)"/>
|
||||
<path data-edge-from="main" data-edge-to="level_map" data-edge-label="挂载" data-edge-key="6" data-edge-id="main-levelmap" data-composition-points="680,96;704,96;704,112;1036,112;1036,95;1060,95" d="M 680 96 L 696 96 Q 704 96 704 104 L 704 104 Q 704 112 712 112 L 1028 112 Q 1036 112 1036 104 L 1036 103 Q 1036 95 1044 95 L 1060 95" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
|
||||
<!-- Components -->
|
||||
<g id="node-main-root" data-node-id="main-root" data-node-label="组合根 main.tscn" tabindex="0" role="button" aria-label="聚焦组合根 main.tscn,main.gd — 装配·分派·转发, presentation/ 呈现层" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="main.gd — 装配·分派·转发" data-node-tag="入口场景" data-node-context="presentation/ 呈现层">
|
||||
<title>组合根 main.tscn · main.gd — 装配·分派·转发 · presentation/ 呈现层 · 入口场景</title>
|
||||
<rect x="30" y="70" width="180" height="110" rx="6" class="c-mask"/>
|
||||
<rect x="30" y="70" width="180" height="110" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(36 76) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="120" y="123" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">组合根 main.tscn</text>
|
||||
<text data-detail="context" x="120" y="139" class="t-muted" font-size="9" text-anchor="middle">main.gd — 装配·分派·转发</text>
|
||||
<text data-detail="fine" x="120" y="172" class="t-frontend" font-size="7" text-anchor="middle">入口场景</text>
|
||||
</g>
|
||||
|
||||
<g id="node-presenters" data-node-id="presenters" data-node-label="呈现器簇" tabindex="0" role="button" aria-label="聚焦呈现器簇,hud_presenter 等 11 件, presentation/ 呈现层" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="hud_presenter 等 11 件" data-node-context="presentation/ 呈现层">
|
||||
<title>呈现器簇 · hud_presenter 等 11 件 · presentation/ 呈现层</title>
|
||||
<rect x="250" y="70" width="180" height="110" rx="6" class="c-mask"/>
|
||||
<rect x="250" y="70" width="180" height="110" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(256 76) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="340" y="123" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">呈现器簇</text>
|
||||
<text data-detail="context" x="340" y="139" class="t-muted" font-size="9" text-anchor="middle">hud_presenter 等 11 件</text>
|
||||
</g>
|
||||
|
||||
<g id="node-views-board" data-node-id="views-board" data-node-label="棋盘 · 舞台视图" tabindex="0" role="button" aria-label="聚焦棋盘 · 舞台视图,board_view 等 9 件, presentation/ 呈现层" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="board_view 等 9 件" data-node-context="presentation/ 呈现层">
|
||||
<title>棋盘 · 舞台视图 · board_view 等 9 件 · presentation/ 呈现层</title>
|
||||
<rect x="470" y="70" width="180" height="110" rx="6" class="c-mask"/>
|
||||
<rect x="470" y="70" width="180" height="110" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(476 76) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="560" y="123" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">棋盘 · 舞台视图</text>
|
||||
<text data-detail="context" x="560" y="139" class="t-muted" font-size="9" text-anchor="middle">board_view 等 9 件</text>
|
||||
</g>
|
||||
|
||||
<g id="node-views-screen" data-node-id="views-screen" data-node-label="屏幕 · 弹窗 · HUD" tabindex="0" role="button" aria-label="聚焦屏幕 · 弹窗 · HUD,level_map_screen 等 17 件, presentation/ 呈现层" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="level_map_screen 等 17 件" data-node-context="presentation/ 呈现层">
|
||||
<title>屏幕 · 弹窗 · HUD · level_map_screen 等 17 件 · presentation/ 呈现层</title>
|
||||
<rect x="690" y="70" width="180" height="110" rx="6" class="c-mask"/>
|
||||
<rect x="690" y="70" width="180" height="110" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(696 76) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="780" y="123" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">屏幕 · 弹窗 · HUD</text>
|
||||
<text data-detail="context" x="780" y="139" class="t-muted" font-size="9" text-anchor="middle">level_map_screen 等 17 件</text>
|
||||
</g>
|
||||
|
||||
<g id="node-debug-cluster" data-node-id="debug-cluster" data-node-label="调试 · 模拟簇" tabindex="0" role="button" aria-label="聚焦调试 · 模拟簇,debug_session 等 4 件, presentation/ 呈现层" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="debug_session 等 4 件" data-node-tag="DS_DEBUG 门控" data-node-context="presentation/ 呈现层">
|
||||
<title>调试 · 模拟簇 · debug_session 等 4 件 · presentation/ 呈现层 · DS_DEBUG 门控</title>
|
||||
<rect x="910" y="70" width="180" height="110" rx="6" class="c-mask"/>
|
||||
<rect x="910" y="70" width="180" height="110" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(916 76) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="1000" y="123" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">调试 · 模拟簇</text>
|
||||
<text data-detail="context" x="1000" y="139" class="t-muted" font-size="9" text-anchor="middle">debug_session 等 4 件</text>
|
||||
<text data-detail="fine" x="1000" y="172" class="t-frontend" font-size="7" text-anchor="middle">DS_DEBUG 门控</text>
|
||||
</g>
|
||||
|
||||
<g id="node-config-db" data-node-id="config-db" data-node-label="配置服务 ConfigDB" tabindex="0" role="button" aria-label="聚焦配置服务 ConfigDB,config_db — 表单点入口, core/ 全局服务(autoload)" aria-pressed="false" data-node-kind="database" data-node-sublabel="config_db — 表单点入口" data-node-tag="autoload" data-node-context="core/ 全局服务(autoload)">
|
||||
<title>配置服务 ConfigDB · config_db — 表单点入口 · core/ 全局服务(autoload) · autoload</title>
|
||||
<rect x="30" y="265" width="190" height="120" rx="6" class="c-mask"/>
|
||||
<rect x="30" y="265" width="190" height="120" rx="6" class="c-database" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="database" class="semantic-sigil s-database" transform="translate(36 271) scale(0.6875)">
|
||||
<g id="node-config_db" data-node-id="config_db" data-node-label="ConfigDB 配置库" tabindex="0" role="button" aria-label="聚焦ConfigDB 配置库,core/config_db.gd, 架构组件" aria-pressed="false" data-node-kind="database" data-node-sublabel="core/config_db.gd" data-node-context="架构组件">
|
||||
<title>ConfigDB 配置库 · core/config_db.gd · 架构组件</title>
|
||||
<rect x="1140" y="168" width="140" height="44" rx="6" class="c-mask"/>
|
||||
<rect x="1140" y="168" width="140" height="44" rx="6" class="c-database" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="database" class="semantic-sigil s-database" transform="translate(1146 174) scale(0.6875)">
|
||||
<ellipse cx="8" cy="4" rx="5" ry="2"/>
|
||||
<path d="M3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="125" y="323" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">配置服务 ConfigDB</text>
|
||||
<text data-detail="context" x="125" y="339" class="t-muted" font-size="9" text-anchor="middle">config_db — 表单点入口</text>
|
||||
<text data-detail="fine" x="125" y="377" class="t-database" font-size="7" text-anchor="middle">autoload</text>
|
||||
<text data-node-label="" data-detail-anchor="" x="1210" y="188" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">ConfigDB 配置库</text>
|
||||
<text data-detail="context" x="1210" y="204" class="t-muted" font-size="9" text-anchor="middle">core/config_db.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-adventure-loop" data-node-id="adventure-loop" data-node-label="冒险循环域" tabindex="0" role="button" aria-label="聚焦冒险循环域,adventure_runner 等 3 件, core/ 玩法域" aria-pressed="false" data-node-kind="backend" data-node-sublabel="adventure_runner 等 3 件" data-node-context="core/ 玩法域">
|
||||
<title>冒险循环域 · adventure_runner 等 3 件 · core/ 玩法域</title>
|
||||
<rect x="260" y="255" width="180" height="140" rx="6" class="c-mask"/>
|
||||
<rect x="260" y="255" width="180" height="140" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(266 261) scale(0.6875)">
|
||||
<g id="node-rng_service" data-node-id="rng_service" data-node-label="RngService 随机流" tabindex="0" role="button" aria-label="聚焦RngService 随机流,core/rng_service.gd, 架构组件" aria-pressed="false" data-node-kind="backend" data-node-sublabel="core/rng_service.gd" data-node-context="架构组件">
|
||||
<title>RngService 随机流 · core/rng_service.gd · 架构组件</title>
|
||||
<rect x="1140" y="222" width="140" height="44" rx="6" class="c-mask"/>
|
||||
<rect x="1140" y="222" width="140" height="44" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(1146 228) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="350" y="323" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">冒险循环域</text>
|
||||
<text data-detail="context" x="350" y="339" class="t-muted" font-size="9" text-anchor="middle">adventure_runner 等 3 件</text>
|
||||
<text data-node-label="" data-detail-anchor="" x="1210" y="242" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">RngService 随机流</text>
|
||||
<text data-detail="context" x="1210" y="258" class="t-muted" font-size="9" text-anchor="middle">core/rng_service.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-battle-domain" data-node-id="battle-domain" data-node-label="战斗域" tabindex="0" role="button" aria-label="聚焦战斗域,battle_orchestrator 等 5 件, core/ 玩法域" aria-pressed="false" data-node-kind="backend" data-node-sublabel="battle_orchestrator 等 5 件" data-node-tag="边最多枢纽" data-node-context="core/ 玩法域">
|
||||
<title>战斗域 · battle_orchestrator 等 5 件 · core/ 玩法域 · 边最多枢纽</title>
|
||||
<rect x="490" y="255" width="210" height="150" rx="6" class="c-mask"/>
|
||||
<rect x="490" y="255" width="210" height="150" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(496 261) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
<g id="node-main" data-node-id="main" data-node-label="组合根 Main" tabindex="0" role="button" aria-label="聚焦组合根 Main,main.gd · 运行时建树, 架构组件" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="main.gd · 运行时建树" data-node-tag="main.tscn" data-node-context="架构组件">
|
||||
<title>组合根 Main · main.gd · 运行时建树 · 架构组件 · main.tscn</title>
|
||||
<rect x="480" y="60" width="200" height="72" rx="6" class="c-mask"/>
|
||||
<rect x="480" y="60" width="200" height="72" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(486 66) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="595" y="328" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">战斗域</text>
|
||||
<text data-detail="context" x="595" y="344" class="t-muted" font-size="9" text-anchor="middle">battle_orchestrator 等 5 件</text>
|
||||
<text data-detail="fine" x="595" y="397" class="t-backend" font-size="7" text-anchor="middle">边最多枢纽</text>
|
||||
<text data-node-label="" data-detail-anchor="" x="580" y="94" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">组合根 Main</text>
|
||||
<text data-detail="context" x="580" y="110" class="t-muted" font-size="9" text-anchor="middle">main.gd · 运行时建树</text>
|
||||
<text data-detail="fine" x="580" y="124" class="t-frontend" font-size="7" text-anchor="middle">main.tscn</text>
|
||||
</g>
|
||||
|
||||
<g id="node-rng-service" data-node-id="rng-service" data-node-label="随机服务 RngService" tabindex="0" role="button" aria-label="聚焦随机服务 RngService,rng_service — 全局随机, core/ 全局服务(autoload)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="rng_service — 全局随机" data-node-tag="autoload" data-node-context="core/ 全局服务(autoload)">
|
||||
<title>随机服务 RngService · rng_service — 全局随机 · core/ 全局服务(autoload) · autoload</title>
|
||||
<rect x="760" y="275" width="180" height="100" rx="6" class="c-mask"/>
|
||||
<rect x="760" y="275" width="180" height="100" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(766 281) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
<g id="node-level_map" data-node-id="level_map" data-node-label="关卡地图屏" tabindex="0" role="button" aria-label="聚焦关卡地图屏,三停点选路, 架构组件" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="三停点选路" data-node-tag="level_map_screen.gd" data-node-context="架构组件">
|
||||
<title>关卡地图屏 · 三停点选路 · 架构组件 · level_map_screen.gd</title>
|
||||
<rect x="1060" y="60" width="180" height="70" rx="6" class="c-mask"/>
|
||||
<rect x="1060" y="60" width="180" height="70" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(1066 66) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="850" y="323" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">随机服务 RngService</text>
|
||||
<text data-detail="context" x="850" y="339" class="t-muted" font-size="9" text-anchor="middle">rng_service — 全局随机</text>
|
||||
<text data-detail="fine" x="850" y="367" class="t-backend" font-size="7" text-anchor="middle">autoload</text>
|
||||
<text data-node-label="" data-detail-anchor="" x="1150" y="93" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">关卡地图屏</text>
|
||||
<text data-detail="context" x="1150" y="109" class="t-muted" font-size="9" text-anchor="middle">三停点选路</text>
|
||||
<text data-detail="fine" x="1150" y="122" class="t-frontend" font-size="7" text-anchor="middle">level_map_screen.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-data-tables" data-node-id="data-tables" data-node-label="数值表层" tabindex="0" role="button" aria-label="聚焦数值表层,schemas ×18 · .tres ×18, data/ 数据层" aria-pressed="false" data-node-kind="database" data-node-sublabel="schemas ×18 · .tres ×18" data-node-context="data/ 数据层">
|
||||
<title>数值表层 · schemas ×18 · .tres ×18 · data/ 数据层</title>
|
||||
<rect x="30" y="500" width="190" height="110" rx="6" class="c-mask"/>
|
||||
<rect x="30" y="500" width="190" height="110" rx="6" class="c-database" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="database" class="semantic-sigil s-database" transform="translate(36 506) scale(0.6875)">
|
||||
<g id="node-stage" data-node-id="stage" data-node-label="战斗展示区" tabindex="0" role="button" aria-label="聚焦战斗展示区,站桩·回合·战斗日志, 战斗主界面(UiAssembler 拼装)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="站桩·回合·战斗日志" data-node-tag="battle_stage_view.gd" data-node-context="战斗主界面(UiAssembler 拼装)">
|
||||
<title>战斗展示区 · 站桩·回合·战斗日志 · 战斗主界面(UiAssembler 拼装) · battle_stage_view.gd</title>
|
||||
<rect x="40" y="260" width="170" height="88" rx="6" class="c-mask"/>
|
||||
<rect x="40" y="260" width="170" height="88" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(46 266) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="125" y="302" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">战斗展示区</text>
|
||||
<text data-detail="context" x="125" y="318" class="t-muted" font-size="9" text-anchor="middle">站桩·回合·战斗日志</text>
|
||||
<text data-detail="fine" x="125" y="340" class="t-frontend" font-size="7" text-anchor="middle">battle_stage_view.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-hero" data-node-id="hero" data-node-label="角色信息区" tabindex="0" role="button" aria-label="聚焦角色信息区,攻防·秘宝槽·特性, 战斗主界面(UiAssembler 拼装)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="攻防·秘宝槽·特性" data-node-tag="hero_info_panel_view.gd" data-node-context="战斗主界面(UiAssembler 拼装)">
|
||||
<title>角色信息区 · 攻防·秘宝槽·特性 · 战斗主界面(UiAssembler 拼装) · hero_info_panel_view.gd</title>
|
||||
<rect x="250" y="260" width="170" height="88" rx="6" class="c-mask"/>
|
||||
<rect x="250" y="260" width="170" height="88" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(256 266) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="335" y="302" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">角色信息区</text>
|
||||
<text data-detail="context" x="335" y="318" class="t-muted" font-size="9" text-anchor="middle">攻防·秘宝槽·特性</text>
|
||||
<text data-detail="fine" x="335" y="340" class="t-frontend" font-size="7" text-anchor="middle">hero_info_panel_view.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-board" data-node-id="board" data-node-label="棋盘区" tabindex="0" role="button" aria-label="聚焦棋盘区,棋盘·AP条·气泡·特效, 战斗主界面(UiAssembler 拼装)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="棋盘·AP条·气泡·特效" data-node-tag="board_zone_view.gd" data-node-context="战斗主界面(UiAssembler 拼装)">
|
||||
<title>棋盘区 · 棋盘·AP条·气泡·特效 · 战斗主界面(UiAssembler 拼装) · board_zone_view.gd</title>
|
||||
<rect x="510" y="260" width="170" height="88" rx="6" class="c-mask"/>
|
||||
<rect x="510" y="260" width="170" height="88" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(516 266) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="595" y="302" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">棋盘区</text>
|
||||
<text data-detail="context" x="595" y="318" class="t-muted" font-size="9" text-anchor="middle">棋盘·AP条·气泡·特效</text>
|
||||
<text data-detail="fine" x="595" y="340" class="t-frontend" font-size="7" text-anchor="middle">board_zone_view.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-shop_camp" data-node-id="shop_camp" data-node-label="商店·营地浮层" tabindex="0" role="button" aria-label="聚焦商店·营地浮层,商品卡·三柜台, 战斗主界面(UiAssembler 拼装)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="商品卡·三柜台" data-node-tag="ui_assembler.gd 拼装" data-node-context="战斗主界面(UiAssembler 拼装)">
|
||||
<title>商店·营地浮层 · 商品卡·三柜台 · 战斗主界面(UiAssembler 拼装) · ui_assembler.gd 拼装</title>
|
||||
<rect x="730" y="260" width="170" height="88" rx="6" class="c-mask"/>
|
||||
<rect x="730" y="260" width="170" height="88" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(736 266) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="815" y="302" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">商店·营地浮层</text>
|
||||
<text data-detail="context" x="815" y="318" class="t-muted" font-size="9" text-anchor="middle">商品卡·三柜台</text>
|
||||
<text data-detail="fine" x="815" y="340" class="t-frontend" font-size="7" text-anchor="middle">ui_assembler.gd 拼装</text>
|
||||
</g>
|
||||
|
||||
<g id="node-settle" data-node-id="settle" data-node-label="结算特效" tabindex="0" role="button" aria-label="聚焦结算特效,跨区飞行演出, 战斗主界面(UiAssembler 拼装)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="跨区飞行演出" data-node-tag="settlement_fx_view.gd" data-node-context="战斗主界面(UiAssembler 拼装)">
|
||||
<title>结算特效 · 跨区飞行演出 · 战斗主界面(UiAssembler 拼装) · settlement_fx_view.gd</title>
|
||||
<rect x="918" y="260" width="170" height="88" rx="6" class="c-mask"/>
|
||||
<rect x="918" y="260" width="170" height="88" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(924 266) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="1003" y="302" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">结算特效</text>
|
||||
<text data-detail="context" x="1003" y="318" class="t-muted" font-size="9" text-anchor="middle">跨区飞行演出</text>
|
||||
<text data-detail="fine" x="1003" y="340" class="t-frontend" font-size="7" text-anchor="middle">settlement_fx_view.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-pause" data-node-id="pause" data-node-label="状态面板" tabindex="0" role="button" aria-label="聚焦状态面板,只读入口, 浮层与对话框(组合根挂载)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="只读入口" data-node-tag="status_panel.gd" data-node-context="浮层与对话框(组合根挂载)">
|
||||
<title>状态面板 · 只读入口 · 浮层与对话框(组合根挂载) · status_panel.gd</title>
|
||||
<rect x="120" y="420" width="152" height="56" rx="6" class="c-mask"/>
|
||||
<rect x="120" y="420" width="152" height="56" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(126 426) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="196" y="446" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">状态面板</text>
|
||||
<text data-detail="context" x="196" y="462" class="t-muted" font-size="9" text-anchor="middle">只读入口</text>
|
||||
<text data-detail="fine" x="196" y="468" class="t-frontend" font-size="7" text-anchor="middle">status_panel.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-settings" data-node-id="settings" data-node-label="设置浮层" tabindex="0" role="button" aria-label="聚焦设置浮层,音量·全屏·减动效, 浮层与对话框(组合根挂载)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="音量·全屏·减动效" data-node-tag="settings_overlay.gd" data-node-context="浮层与对话框(组合根挂载)">
|
||||
<title>设置浮层 · 音量·全屏·减动效 · 浮层与对话框(组合根挂载) · settings_overlay.gd</title>
|
||||
<rect x="288" y="420" width="152" height="56" rx="6" class="c-mask"/>
|
||||
<rect x="288" y="420" width="152" height="56" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(294 426) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="364" y="446" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">设置浮层</text>
|
||||
<text data-detail="context" x="364" y="462" class="t-muted" font-size="9" text-anchor="middle">音量·全屏·减动效</text>
|
||||
<text data-detail="fine" x="364" y="468" class="t-frontend" font-size="7" text-anchor="middle">settings_overlay.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-career" data-node-id="career" data-node-label="生涯浮层" tabindex="0" role="button" aria-label="聚焦生涯浮层,六类九项汇总, 浮层与对话框(组合根挂载)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="六类九项汇总" data-node-tag="career_overlay.gd" data-node-context="浮层与对话框(组合根挂载)">
|
||||
<title>生涯浮层 · 六类九项汇总 · 浮层与对话框(组合根挂载) · career_overlay.gd</title>
|
||||
<rect x="464" y="420" width="152" height="56" rx="6" class="c-mask"/>
|
||||
<rect x="464" y="420" width="152" height="56" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(470 426) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="540" y="446" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">生涯浮层</text>
|
||||
<text data-detail="context" x="540" y="462" class="t-muted" font-size="9" text-anchor="middle">六类九项汇总</text>
|
||||
<text data-detail="fine" x="540" y="468" class="t-frontend" font-size="7" text-anchor="middle">career_overlay.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-curio" data-node-id="curio" data-node-label="三选一浮层" tabindex="0" role="button" aria-label="聚焦三选一浮层,通关停点·三卡点选, 浮层与对话框(组合根挂载)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="通关停点·三卡点选" data-node-tag="curio_pick_overlay.gd" data-node-context="浮层与对话框(组合根挂载)">
|
||||
<title>三选一浮层 · 通关停点·三卡点选 · 浮层与对话框(组合根挂载) · curio_pick_overlay.gd</title>
|
||||
<rect x="632" y="420" width="152" height="56" rx="6" class="c-mask"/>
|
||||
<rect x="632" y="420" width="152" height="56" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(638 426) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="708" y="446" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">三选一浮层</text>
|
||||
<text data-detail="context" x="708" y="462" class="t-muted" font-size="9" text-anchor="middle">通关停点·三卡点选</text>
|
||||
<text data-detail="fine" x="708" y="468" class="t-frontend" font-size="7" text-anchor="middle">curio_pick_overlay.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-confirm" data-node-id="confirm" data-node-label="确认对话框" tabindex="0" role="button" aria-label="聚焦确认对话框,通用确认弹窗, 浮层与对话框(组合根挂载)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="通用确认弹窗" data-node-tag="confirm_dialog.gd" data-node-context="浮层与对话框(组合根挂载)">
|
||||
<title>确认对话框 · 通用确认弹窗 · 浮层与对话框(组合根挂载) · confirm_dialog.gd</title>
|
||||
<rect x="800" y="420" width="152" height="56" rx="6" class="c-mask"/>
|
||||
<rect x="800" y="420" width="152" height="56" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(806 426) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="876" y="446" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">确认对话框</text>
|
||||
<text data-detail="context" x="876" y="462" class="t-muted" font-size="9" text-anchor="middle">通用确认弹窗</text>
|
||||
<text data-detail="fine" x="876" y="468" class="t-frontend" font-size="7" text-anchor="middle">confirm_dialog.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-debug" data-node-id="debug" data-node-label="调试浮窗" tabindex="0" role="button" aria-label="聚焦调试浮窗,DS_DEBUG 门控, 浮层与对话框(组合根挂载)" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="DS_DEBUG 门控" data-node-tag="debug_overlay.gd" data-node-context="浮层与对话框(组合根挂载)">
|
||||
<title>调试浮窗 · DS_DEBUG 门控 · 浮层与对话框(组合根挂载) · debug_overlay.gd</title>
|
||||
<rect x="968" y="420" width="152" height="56" rx="6" class="c-mask"/>
|
||||
<rect x="968" y="420" width="152" height="56" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(974 426) scale(0.6875)">
|
||||
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
||||
<path d="M2 6.5h12"/>
|
||||
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="1044" y="446" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">调试浮窗</text>
|
||||
<text data-detail="context" x="1044" y="462" class="t-muted" font-size="9" text-anchor="middle">DS_DEBUG 门控</text>
|
||||
<text data-detail="fine" x="1044" y="468" class="t-frontend" font-size="7" text-anchor="middle">debug_overlay.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-save" data-node-id="save" data-node-label="存档管理" tabindex="0" role="button" aria-label="聚焦存档管理,save_manager.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="database" data-node-sublabel="save_manager.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>存档管理 · save_manager.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="96" y="554" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="96" y="554" width="130" height="48" rx="6" class="c-database" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="database" class="semantic-sigil s-database" transform="translate(102 560) scale(0.6875)">
|
||||
<ellipse cx="8" cy="4" rx="5" ry="2"/>
|
||||
<path d="M3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="125" y="553" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">数值表层</text>
|
||||
<text data-detail="context" x="125" y="569" class="t-muted" font-size="9" text-anchor="middle">schemas ×18 · .tres ×18</text>
|
||||
<text data-node-label="" data-detail-anchor="" x="161" y="576" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">存档管理</text>
|
||||
<text data-detail="context" x="161" y="592" class="t-muted" font-size="9" text-anchor="middle">save_manager.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-item-domain" data-node-id="item-domain" data-node-label="道具 · 奇物 · 同调域" tabindex="0" role="button" aria-label="聚焦道具 · 奇物 · 同调域,relics_engine 等 3 件, core/ 玩法域" aria-pressed="false" data-node-kind="backend" data-node-sublabel="relics_engine 等 3 件" data-node-context="core/ 玩法域">
|
||||
<title>道具 · 奇物 · 同调域 · relics_engine 等 3 件 · core/ 玩法域</title>
|
||||
<rect x="260" y="490" width="180" height="140" rx="6" class="c-mask"/>
|
||||
<rect x="260" y="490" width="180" height="140" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(266 496) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
<g id="node-meta" data-node-id="meta" data-node-label="元进度" tabindex="0" role="button" aria-label="聚焦元进度,meta_progression.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="database" data-node-sublabel="meta_progression.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>元进度 · meta_progression.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="244" y="554" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="244" y="554" width="130" height="48" rx="6" class="c-database" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="database" class="semantic-sigil s-database" transform="translate(250 560) scale(0.6875)">
|
||||
<ellipse cx="8" cy="4" rx="5" ry="2"/>
|
||||
<path d="M3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="350" y="558" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">道具 · 奇物 · 同调域</text>
|
||||
<text data-detail="context" x="350" y="574" class="t-muted" font-size="9" text-anchor="middle">relics_engine 等 3 件</text>
|
||||
<text data-node-label="" data-detail-anchor="" x="309" y="576" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">元进度</text>
|
||||
<text data-detail="context" x="309" y="592" class="t-muted" font-size="9" text-anchor="middle">meta_progression.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-meta-save" data-node-id="meta-save" data-node-label="元进度 · 存档域" tabindex="0" role="button" aria-label="聚焦元进度 · 存档域,meta_progression · save_manager, core/ 玩法域" aria-pressed="false" data-node-kind="backend" data-node-sublabel="meta_progression · save_manager" data-node-context="core/ 玩法域">
|
||||
<title>元进度 · 存档域 · meta_progression · save_manager · core/ 玩法域</title>
|
||||
<rect x="470" y="490" width="200" height="140" rx="6" class="c-mask"/>
|
||||
<rect x="470" y="490" width="200" height="140" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(476 496) scale(0.6875)">
|
||||
<g id="node-orch" data-node-id="orch" data-node-label="战斗编排器" tabindex="0" role="button" aria-label="聚焦战斗编排器,battle_orchestrator.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="battle_orchestrator.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>战斗编排器 · battle_orchestrator.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="383" y="554" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="383" y="554" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(389 560) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="570" y="558" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">元进度 · 存档域</text>
|
||||
<text data-detail="context" x="570" y="574" class="t-muted" font-size="9" text-anchor="middle">meta_progression · save_manager</text>
|
||||
<text data-node-label="" data-detail-anchor="" x="448" y="576" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">战斗编排器</text>
|
||||
<text data-detail="context" x="448" y="592" class="t-muted" font-size="9" text-anchor="middle">battle_orchestrator.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-board-mines" data-node-id="board-mines" data-node-label="棋盘 · 扫雷域" tabindex="0" role="button" aria-label="聚焦棋盘 · 扫雷域,board_data 等 3 件, core/ 玩法域" aria-pressed="false" data-node-kind="backend" data-node-sublabel="board_data 等 3 件" data-node-context="core/ 玩法域">
|
||||
<title>棋盘 · 扫雷域 · board_data 等 3 件 · core/ 玩法域</title>
|
||||
<rect x="700" y="490" width="190" height="140" rx="6" class="c-mask"/>
|
||||
<rect x="700" y="490" width="190" height="140" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(706 496) scale(0.6875)">
|
||||
<g id="node-rules" data-node-id="rules" data-node-label="扫雷规则" tabindex="0" role="button" aria-label="聚焦扫雷规则,minesweeper_rules.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="minesweeper_rules.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>扫雷规则 · minesweeper_rules.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="540" y="554" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="540" y="554" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(546 560) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="795" y="558" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">棋盘 · 扫雷域</text>
|
||||
<text data-detail="context" x="795" y="574" class="t-muted" font-size="9" text-anchor="middle">board_data 等 3 件</text>
|
||||
<text data-node-label="" data-detail-anchor="" x="605" y="576" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">扫雷规则</text>
|
||||
<text data-detail="context" x="605" y="592" class="t-muted" font-size="9" text-anchor="middle">minesweeper_rules.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-reward-econ" data-node-id="reward-econ" data-node-label="奖励经济域" tabindex="0" role="button" aria-label="聚焦奖励经济域,reward_economy 等 2 件, core/ 玩法域" aria-pressed="false" data-node-kind="backend" data-node-sublabel="reward_economy 等 2 件" data-node-context="core/ 玩法域">
|
||||
<title>奖励经济域 · reward_economy 等 2 件 · core/ 玩法域</title>
|
||||
<rect x="930" y="500" width="170" height="130" rx="6" class="c-mask"/>
|
||||
<rect x="930" y="500" width="170" height="130" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(936 506) scale(0.6875)">
|
||||
<g id="node-boardgen" data-node-id="boardgen" data-node-label="棋盘生成" tabindex="0" role="button" aria-label="聚焦棋盘生成,board_generator.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="board_generator.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>棋盘生成 · board_generator.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="688" y="554" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="688" y="554" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(694 560) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="1015" y="563" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">奖励经济域</text>
|
||||
<text data-detail="context" x="1015" y="579" class="t-muted" font-size="9" text-anchor="middle">reward_economy 等 2 件</text>
|
||||
<text data-node-label="" data-detail-anchor="" x="753" y="576" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">棋盘生成</text>
|
||||
<text data-detail="context" x="753" y="592" class="t-muted" font-size="9" text-anchor="middle">board_generator.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-boarddata" data-node-id="boarddata" data-node-label="棋盘数据" tabindex="0" role="button" aria-label="聚焦棋盘数据,board_data.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="database" data-node-sublabel="board_data.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>棋盘数据 · board_data.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="836" y="554" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="836" y="554" width="130" height="48" rx="6" class="c-database" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="database" class="semantic-sigil s-database" transform="translate(842 560) scale(0.6875)">
|
||||
<ellipse cx="8" cy="4" rx="5" ry="2"/>
|
||||
<path d="M3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="901" y="576" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">棋盘数据</text>
|
||||
<text data-detail="context" x="901" y="592" class="t-muted" font-size="9" text-anchor="middle">board_data.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-effects" data-node-id="effects" data-node-label="效果引擎" tabindex="0" role="button" aria-label="聚焦效果引擎,effect_engine.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="effect_engine.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>效果引擎 · effect_engine.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="984" y="554" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="984" y="554" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(990 560) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="1049" y="576" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">效果引擎</text>
|
||||
<text data-detail="context" x="1049" y="592" class="t-muted" font-size="9" text-anchor="middle">effect_engine.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-adventure" data-node-id="adventure" data-node-label="冒险运行器" tabindex="0" role="button" aria-label="聚焦冒险运行器,adventure_runner.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="adventure_runner.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>冒险运行器 · adventure_runner.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="1132" y="554" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="1132" y="554" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(1138 560) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="1197" y="576" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">冒险运行器</text>
|
||||
<text data-detail="context" x="1197" y="592" class="t-muted" font-size="9" text-anchor="middle">adventure_runner.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-levelrun" data-node-id="levelrun" data-node-label="关卡运行器" tabindex="0" role="button" aria-label="聚焦关卡运行器,level_runner.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="level_runner.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>关卡运行器 · level_runner.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="96" y="616" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="96" y="616" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(102 622) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="161" y="638" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">关卡运行器</text>
|
||||
<text data-detail="context" x="161" y="654" class="t-muted" font-size="9" text-anchor="middle">level_runner.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-dmgctl" data-node-id="dmgctl" data-node-label="伤害控制" tabindex="0" role="button" aria-label="聚焦伤害控制,damage_controller.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="damage_controller.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>伤害控制 · damage_controller.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="244" y="616" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="244" y="616" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(250 622) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="309" y="638" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">伤害控制</text>
|
||||
<text data-detail="context" x="309" y="654" class="t-muted" font-size="9" text-anchor="middle">damage_controller.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-dgmath" data-node-id="dgmath" data-node-label="伤害公式" tabindex="0" role="button" aria-label="聚焦伤害公式,damage_math.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="damage_math.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>伤害公式 · damage_math.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="392" y="616" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="392" y="616" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(398 622) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="457" y="638" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">伤害公式</text>
|
||||
<text data-detail="context" x="457" y="654" class="t-muted" font-size="9" text-anchor="middle">damage_math.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-reward" data-node-id="reward" data-node-label="奖励经济" tabindex="0" role="button" aria-label="聚焦奖励经济,reward_economy.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="reward_economy.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>奖励经济 · reward_economy.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="540" y="616" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="540" y="616" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(546 622) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="605" y="638" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">奖励经济</text>
|
||||
<text data-detail="context" x="605" y="654" class="t-muted" font-size="9" text-anchor="middle">reward_economy.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-lottery" data-node-id="lottery" data-node-label="技能抽奖" tabindex="0" role="button" aria-label="聚焦技能抽奖,skill_lottery.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="skill_lottery.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>技能抽奖 · skill_lottery.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="688" y="616" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="688" y="616" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(694 622) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="753" y="638" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">技能抽奖</text>
|
||||
<text data-detail="context" x="753" y="654" class="t-muted" font-size="9" text-anchor="middle">skill_lottery.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-attune" data-node-id="attune" data-node-label="同调" tabindex="0" role="button" aria-label="聚焦同调,attunement.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="attunement.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>同调 · attunement.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="836" y="616" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="836" y="616" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(842 622) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="901" y="638" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">同调</text>
|
||||
<text data-detail="context" x="901" y="654" class="t-muted" font-size="9" text-anchor="middle">attunement.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-action" data-node-id="action" data-node-label="行动经济" tabindex="0" role="button" aria-label="聚焦行动经济,action_economy.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="action_economy.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>行动经济 · action_economy.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="984" y="616" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="984" y="616" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(990 622) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="1049" y="638" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">行动经济</text>
|
||||
<text data-detail="context" x="1049" y="654" class="t-muted" font-size="9" text-anchor="middle">action_economy.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-feats" data-node-id="feats" data-node-label="特长引擎" tabindex="0" role="button" aria-label="聚焦特长引擎,feats_engine.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="feats_engine.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>特长引擎 · feats_engine.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="1132" y="616" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="1132" y="616" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(1138 622) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="1197" y="638" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">特长引擎</text>
|
||||
<text data-detail="context" x="1197" y="654" class="t-muted" font-size="9" text-anchor="middle">feats_engine.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-status" data-node-id="status" data-node-label="状态容器" tabindex="0" role="button" aria-label="聚焦状态容器,status_container.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="status_container.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>状态容器 · status_container.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="96" y="678" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="96" y="678" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(102 684) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="161" y="700" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">状态容器</text>
|
||||
<text data-detail="context" x="161" y="716" class="t-muted" font-size="9" text-anchor="middle">status_container.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-units" data-node-id="units" data-node-label="单位容器" tabindex="0" role="button" aria-label="聚焦单位容器,unit_container.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="unit_container.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>单位容器 · unit_container.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="244" y="678" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="244" y="678" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(250 684) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="309" y="700" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">单位容器</text>
|
||||
<text data-detail="context" x="309" y="716" class="t-muted" font-size="9" text-anchor="middle">unit_container.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-treasure" data-node-id="treasure" data-node-label="秘宝数据" tabindex="0" role="button" aria-label="聚焦秘宝数据,treasure_items.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="database" data-node-sublabel="treasure_items.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>秘宝数据 · treasure_items.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="392" y="678" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="392" y="678" width="130" height="48" rx="6" class="c-database" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="database" class="semantic-sigil s-database" transform="translate(398 684) scale(0.6875)">
|
||||
<ellipse cx="8" cy="4" rx="5" ry="2"/>
|
||||
<path d="M3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="457" y="700" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">秘宝数据</text>
|
||||
<text data-detail="context" x="457" y="716" class="t-muted" font-size="9" text-anchor="middle">treasure_items.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-resolver" data-node-id="resolver" data-node-label="配置解析" tabindex="0" role="button" aria-label="聚焦配置解析,config_db_resolver.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="config_db_resolver.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>配置解析 · config_db_resolver.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="540" y="678" width="130" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="540" y="678" width="130" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(546 684) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="605" y="700" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">配置解析</text>
|
||||
<text data-detail="context" x="605" y="716" class="t-muted" font-size="9" text-anchor="middle">config_db_resolver.gd</text>
|
||||
</g>
|
||||
|
||||
<g id="node-xvalid" data-node-id="xvalid" data-node-label="配置交叉校验" tabindex="0" role="button" aria-label="聚焦配置交叉校验,config_db_cross_validator.gd, 逻辑层 core/(21 件·名称清单)" aria-pressed="false" data-node-kind="backend" data-node-sublabel="config_db_cross_validator.gd" data-node-context="逻辑层 core/(21 件·名称清单)">
|
||||
<title>配置交叉校验 · config_db_cross_validator.gd · 逻辑层 core/(21 件·名称清单)</title>
|
||||
<rect x="688" y="678" width="170" height="48" rx="6" class="c-mask"/>
|
||||
<rect x="688" y="678" width="170" height="48" rx="6" class="c-backend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(694 684) scale(0.6875)">
|
||||
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="773" y="700" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">配置交叉校验</text>
|
||||
<text data-detail="context" x="773" y="716" class="t-muted" font-size="9" text-anchor="middle">config_db_cross_validator.gd</text>
|
||||
</g>
|
||||
|
||||
<!-- Connection labels -->
|
||||
<g data-detail="context" data-edge-from="main-root" data-edge-to="presenters" data-edge-label="装配" data-edge-key="0" data-edge-id="main-to-presenters">
|
||||
<rect x="215" y="98" width="30" height="14" rx="3" class="c-mask"/>
|
||||
<text x="230" y="108" class="t-muted" font-size="8" text-anchor="middle">装配</text>
|
||||
</g>
|
||||
|
||||
|
||||
<g data-detail="context" data-edge-from="main-root" data-edge-to="adventure-loop" data-edge-label="冒险编排 · 注入 db/rng" data-edge-key="3" data-edge-id="main-to-adventure">
|
||||
<rect x="177.2" y="185" width="115.6" height="14" rx="3" class="c-mask"/>
|
||||
<text x="235" y="195" class="t-backend" font-size="8" text-anchor="middle">冒险编排 · 注入 db/rng</text>
|
||||
<g data-detail="context" data-edge-from="board" data-edge-to="main" data-edge-label="翻开·插旗·和弦" data-edge-key="2" data-edge-id="board-main">
|
||||
<rect x="555.4" y="240" width="77.2" height="14" rx="3" class="c-mask"/>
|
||||
<text x="594" y="250" class="t-muted" font-size="8" text-anchor="middle">翻开·插旗·和弦</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="main-root" data-edge-to="config-db" data-edge-label="组合根引用" data-edge-key="4" data-edge-id="main-to-configdb">
|
||||
<rect x="101.5" y="208" width="58" height="14" rx="3" class="c-mask"/>
|
||||
<text x="130.5" y="218" class="t-muted" font-size="8" text-anchor="middle">组合根引用</text>
|
||||
<g data-detail="context" data-edge-from="hero" data-edge-to="board" data-edge-label="秘宝两步交互" data-edge-key="3" data-edge-id="hero-board">
|
||||
<rect x="431.2" y="284" width="67.6" height="14" rx="3" class="c-mask"/>
|
||||
<text x="465" y="294" class="t-muted" font-size="8" text-anchor="middle">秘宝两步交互</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="adventure-loop" data-edge-to="config-db" data-edge-label="读表" data-edge-key="5" data-edge-id="adventure-to-configdb">
|
||||
<rect x="225" y="338" width="30" height="14" rx="3" class="c-mask"/>
|
||||
<text x="240" y="348" class="t-muted" font-size="8" text-anchor="middle">读表</text>
|
||||
<g data-detail="context" data-edge-from="main" data-edge-to="save" data-edge-label="存档读写" data-edge-key="4" data-edge-id="main-save">
|
||||
<rect x="229.8" y="76" width="48.4" height="14" rx="3" class="c-mask"/>
|
||||
<text x="254" y="86" class="t-messagebus" font-size="8" text-anchor="middle">存档读写</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="adventure-loop" data-edge-to="battle-domain" data-edge-label="开战" data-edge-key="6" data-edge-id="adventure-to-battle">
|
||||
<rect x="450" y="303" width="30" height="14" rx="3" class="c-mask"/>
|
||||
<text x="465" y="313" class="t-muted" font-size="8" text-anchor="middle">开战</text>
|
||||
<g data-detail="context" data-edge-from="orch" data-edge-to="stage" data-edge-label="结算回流" data-edge-key="5" data-edge-id="orch-stage">
|
||||
<rect x="262.3" y="356" width="48.4" height="14" rx="3" class="c-mask"/>
|
||||
<text x="286.5" y="366" class="t-backend" font-size="8" text-anchor="middle">结算回流</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="battle-domain" data-edge-to="rng-service" data-edge-label="掷点" data-edge-key="7" data-edge-id="battle-to-rng">
|
||||
<rect x="715" y="310" width="30" height="14" rx="3" class="c-mask"/>
|
||||
<text x="730" y="320" class="t-muted" font-size="8" text-anchor="middle">掷点</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="battle-domain" data-edge-to="board-mines" data-edge-label="棋盘 · 扫雷" data-edge-key="8" data-edge-id="battle-to-mines">
|
||||
<rect x="660.1" y="427.5" width="62.8" height="14" rx="3" class="c-mask"/>
|
||||
<text x="691.5" y="437.5" class="t-muted" font-size="8" text-anchor="middle">棋盘 · 扫雷</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="battle-domain" data-edge-to="item-domain" data-edge-label="伤害 / 掉落" data-edge-key="9" data-edge-id="battle-to-items">
|
||||
<rect x="433.6" y="425" width="62.8" height="14" rx="3" class="c-mask"/>
|
||||
<text x="465" y="435" class="t-muted" font-size="8" text-anchor="middle">伤害 / 掉落</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="battle-domain" data-edge-to="reward-econ" data-edge-label="结算 · 奖励抽取" data-edge-key="10" data-edge-id="battle-to-reward">
|
||||
<rect x="657.5" y="418.5" width="82" height="14" rx="3" class="c-mask"/>
|
||||
<text x="698.5" y="428.5" class="t-muted" font-size="8" text-anchor="middle">结算 · 奖励抽取</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="adventure-loop" data-edge-to="item-domain" data-edge-label="奇物 / 同调" data-edge-key="11" data-edge-id="adventure-to-items">
|
||||
<rect x="318.6" y="405" width="62.8" height="14" rx="3" class="c-mask"/>
|
||||
<text x="350" y="415" class="t-muted" font-size="8" text-anchor="middle">奇物 / 同调</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="item-domain" data-edge-to="meta-save" data-edge-label="落档" data-edge-key="12" data-edge-id="items-to-meta">
|
||||
<rect x="440" y="571" width="30" height="14" rx="3" class="c-mask"/>
|
||||
<text x="455" y="581" class="t-muted" font-size="8" text-anchor="middle">落档</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="config-db" data-edge-to="data-tables" data-edge-label="加载 .tres" data-edge-key="13" data-edge-id="configdb-to-tables">
|
||||
<rect x="96" y="395" width="58" height="14" rx="3" class="c-mask"/>
|
||||
<text x="125" y="405" class="t-muted" font-size="8" text-anchor="middle">加载 .tres</text>
|
||||
<g data-detail="context" data-edge-from="main" data-edge-to="level_map" data-edge-label="挂载" data-edge-key="6" data-edge-id="main-levelmap">
|
||||
<rect x="689" y="84" width="30" height="14" rx="3" class="c-mask"/>
|
||||
<text x="704" y="94" class="t-muted" font-size="8" text-anchor="middle">挂载</text>
|
||||
</g>
|
||||
|
||||
<!-- Boundary labels (foreground masks keep routes out of titles) -->
|
||||
<g data-graph-role="structural-frame-label" data-composition-frame-id="0" data-composition-frame-kind="region" data-composition-frame-label="presentation/ 呈现层">
|
||||
<rect data-graph-role="structural-frame-label-mask" x="4" y="50" width="118" height="16" rx="3" class="c-mask"/>
|
||||
<text data-boundary-label="" x="8" y="63" class="t-cloud" font-size="9" font-weight="600">presentation/ 呈现层</text>
|
||||
<g data-graph-role="structural-frame-label" data-composition-frame-id="0" data-composition-frame-kind="region" data-composition-frame-label="战斗主界面(UiAssembler 拼装)">
|
||||
<rect data-graph-role="structural-frame-label-mask" x="14" y="240" width="172" height="16" rx="3" class="c-mask"/>
|
||||
<text data-boundary-label="" x="18" y="253" class="t-cloud" font-size="9" font-weight="600">战斗主界面(UiAssembler 拼装)</text>
|
||||
</g>
|
||||
|
||||
<g data-graph-role="structural-frame-label" data-composition-frame-id="1" data-composition-frame-kind="region" data-composition-frame-label="core/ 全局服务(autoload)">
|
||||
<rect data-graph-role="structural-frame-label-mask" x="4" y="245" width="150.4" height="16" rx="3" class="c-mask"/>
|
||||
<text data-boundary-label="" x="8" y="258" class="t-cloud" font-size="9" font-weight="600">core/ 全局服务(autoload)</text>
|
||||
<g data-graph-role="structural-frame-label" data-composition-frame-id="1" data-composition-frame-kind="region" data-composition-frame-label="浮层与对话框(组合根挂载)">
|
||||
<rect data-graph-role="structural-frame-label-mask" x="94" y="400" width="150.4" height="16" rx="3" class="c-mask"/>
|
||||
<text data-boundary-label="" x="98" y="413" class="t-cloud" font-size="9" font-weight="600">浮层与对话框(组合根挂载)</text>
|
||||
</g>
|
||||
|
||||
<g data-graph-role="structural-frame-label" data-composition-frame-id="2" data-composition-frame-kind="region" data-composition-frame-label="core/ 玩法域">
|
||||
<rect data-graph-role="structural-frame-label-mask" x="234" y="235" width="74.8" height="16" rx="3" class="c-mask"/>
|
||||
<text data-boundary-label="" x="238" y="248" class="t-cloud" font-size="9" font-weight="600">core/ 玩法域</text>
|
||||
</g>
|
||||
|
||||
<g data-graph-role="structural-frame-label" data-composition-frame-id="3" data-composition-frame-kind="region" data-composition-frame-label="data/ 数据层">
|
||||
<rect data-graph-role="structural-frame-label-mask" x="4" y="480" width="74.8" height="16" rx="3" class="c-mask"/>
|
||||
<text data-boundary-label="" x="8" y="493" class="t-cloud" font-size="9" font-weight="600">data/ 数据层</text>
|
||||
<g data-graph-role="structural-frame-label" data-composition-frame-id="2" data-composition-frame-kind="region" data-composition-frame-label="逻辑层 core/(21 件·名称清单)">
|
||||
<rect data-graph-role="structural-frame-label-mask" x="70" y="534" width="172" height="16" rx="3" class="c-mask"/>
|
||||
<text data-boundary-label="" x="74" y="547" class="t-cloud" font-size="9" font-weight="600">逻辑层 core/(21 件·名称清单)</text>
|
||||
</g>
|
||||
|
||||
<!-- Legend -->
|
||||
@@ -5621,36 +5856,36 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-dot cyan"></div>
|
||||
<h3>呈现层 presentation/</h3>
|
||||
<h3>组合根与建树</h3>
|
||||
</div>
|
||||
<ul>
|
||||
<li>• 组合根装配呈现器并转发信号</li>
|
||||
<li>• ui_assembler 落地 26 件视图</li>
|
||||
<li>• 调试簇挂 DS_DEBUG 门控接线</li>
|
||||
<li>• main.tscn 全场景仅 1 个节点,整棵界面树由 main.gd 运行时搭建(1392 行)</li>
|
||||
<li>• 战斗界面由 UiAssembler 拼装;商店/营地浮层即拼装于战斗根内</li>
|
||||
<li>• 元进度账本与存档同由组合根持有(main.gd preload)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-dot emerald"></div>
|
||||
<h3>规则引擎 core/</h3>
|
||||
<h3>战斗动作链</h3>
|
||||
</div>
|
||||
<ul>
|
||||
<li>• 冒险循环是唯一试玩入口</li>
|
||||
<li>• 战斗域边最多,向四域出边</li>
|
||||
<li>• 道具域三侧消费,同调落存档</li>
|
||||
<li>• 棋盘区 翻开/插旗/和弦 → 组合根 → 战斗编排器规则判定</li>
|
||||
<li>• 结算回流:血量攻防→角色信息区 · 受击演出→展示区 · AP 扣减与提示→棋盘区</li>
|
||||
<li>• 秘宝槽点击走两步交互:角色信息区 → 棋盘区/即刻生效</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-dot rose"></div>
|
||||
<h3>数据与全局服务</h3>
|
||||
<h3>逻辑层与边界</h3>
|
||||
</div>
|
||||
<ul>
|
||||
<li>• ConfigDB autoload 表单点入口</li>
|
||||
<li>• 组合根统一注入 db 与 RngService</li>
|
||||
<li>• 依赖走构造器注入,禁绕过单点</li>
|
||||
<li>• core/ 21 件仅列名称,源码出处见各节点 sources 指针</li>
|
||||
<li>• ConfigDB/RngService 两单例经 project.godot autoload 全局供给</li>
|
||||
<li>• smoke/ 下 13 个测试探针场景属测试基建,不入架构主干</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,698 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"diagram_type": "architecture",
|
||||
"meta": {
|
||||
"title": "游戏代码实现架构(Godot 场景·脚本·运行时树)",
|
||||
"output": "code-architecture.html",
|
||||
"quality_profile": "showcase",
|
||||
"locale": "zh-CN",
|
||||
"viewBox": [
|
||||
1320,
|
||||
760
|
||||
]
|
||||
},
|
||||
"components": [
|
||||
{
|
||||
"id": "config_db",
|
||||
"type": "database",
|
||||
"label": "ConfigDB 配置库",
|
||||
"sublabel": "core/config_db.gd",
|
||||
"pos": [
|
||||
1140,
|
||||
168
|
||||
],
|
||||
"size": [
|
||||
140,
|
||||
44
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "rng_service",
|
||||
"type": "backend",
|
||||
"label": "RngService 随机流",
|
||||
"sublabel": "core/rng_service.gd",
|
||||
"pos": [
|
||||
1140,
|
||||
222
|
||||
],
|
||||
"size": [
|
||||
140,
|
||||
44
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "main",
|
||||
"type": "frontend",
|
||||
"label": "组合根 Main",
|
||||
"sublabel": "main.gd · 运行时建树",
|
||||
"tag": "main.tscn",
|
||||
"pos": [
|
||||
480,
|
||||
60
|
||||
],
|
||||
"size": [
|
||||
200,
|
||||
72
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "level_map",
|
||||
"type": "frontend",
|
||||
"label": "关卡地图屏",
|
||||
"sublabel": "三停点选路",
|
||||
"pos": [
|
||||
1060,
|
||||
60
|
||||
],
|
||||
"size": [
|
||||
180,
|
||||
70
|
||||
],
|
||||
"tag": "level_map_screen.gd"
|
||||
},
|
||||
{
|
||||
"id": "stage",
|
||||
"type": "frontend",
|
||||
"label": "战斗展示区",
|
||||
"sublabel": "站桩·回合·战斗日志",
|
||||
"pos": [
|
||||
40,
|
||||
260
|
||||
],
|
||||
"size": [
|
||||
170,
|
||||
88
|
||||
],
|
||||
"tag": "battle_stage_view.gd"
|
||||
},
|
||||
{
|
||||
"id": "hero",
|
||||
"type": "frontend",
|
||||
"label": "角色信息区",
|
||||
"sublabel": "攻防·秘宝槽·特性",
|
||||
"pos": [
|
||||
250,
|
||||
260
|
||||
],
|
||||
"size": [
|
||||
170,
|
||||
88
|
||||
],
|
||||
"tag": "hero_info_panel_view.gd"
|
||||
},
|
||||
{
|
||||
"id": "board",
|
||||
"type": "frontend",
|
||||
"label": "棋盘区",
|
||||
"sublabel": "棋盘·AP条·气泡·特效",
|
||||
"pos": [
|
||||
510,
|
||||
260
|
||||
],
|
||||
"size": [
|
||||
170,
|
||||
88
|
||||
],
|
||||
"tag": "board_zone_view.gd"
|
||||
},
|
||||
{
|
||||
"id": "shop_camp",
|
||||
"type": "frontend",
|
||||
"label": "商店·营地浮层",
|
||||
"sublabel": "商品卡·三柜台",
|
||||
"pos": [
|
||||
730,
|
||||
260
|
||||
],
|
||||
"size": [
|
||||
170,
|
||||
88
|
||||
],
|
||||
"tag": "ui_assembler.gd 拼装"
|
||||
},
|
||||
{
|
||||
"id": "settle",
|
||||
"type": "frontend",
|
||||
"label": "结算特效",
|
||||
"sublabel": "跨区飞行演出",
|
||||
"pos": [
|
||||
918,
|
||||
260
|
||||
],
|
||||
"size": [
|
||||
170,
|
||||
88
|
||||
],
|
||||
"tag": "settlement_fx_view.gd"
|
||||
},
|
||||
{
|
||||
"id": "pause",
|
||||
"type": "frontend",
|
||||
"label": "状态面板",
|
||||
"sublabel": "只读入口",
|
||||
"pos": [
|
||||
120,
|
||||
420
|
||||
],
|
||||
"size": [
|
||||
152,
|
||||
56
|
||||
],
|
||||
"tag": "status_panel.gd"
|
||||
},
|
||||
{
|
||||
"id": "settings",
|
||||
"type": "frontend",
|
||||
"label": "设置浮层",
|
||||
"sublabel": "音量·全屏·减动效",
|
||||
"pos": [
|
||||
288,
|
||||
420
|
||||
],
|
||||
"size": [
|
||||
152,
|
||||
56
|
||||
],
|
||||
"tag": "settings_overlay.gd"
|
||||
},
|
||||
{
|
||||
"id": "career",
|
||||
"type": "frontend",
|
||||
"label": "生涯浮层",
|
||||
"sublabel": "六类九项汇总",
|
||||
"pos": [
|
||||
464,
|
||||
420
|
||||
],
|
||||
"size": [
|
||||
152,
|
||||
56
|
||||
],
|
||||
"tag": "career_overlay.gd"
|
||||
},
|
||||
{
|
||||
"id": "curio",
|
||||
"type": "frontend",
|
||||
"label": "三选一浮层",
|
||||
"sublabel": "通关停点·三卡点选",
|
||||
"pos": [
|
||||
632,
|
||||
420
|
||||
],
|
||||
"size": [
|
||||
152,
|
||||
56
|
||||
],
|
||||
"tag": "curio_pick_overlay.gd"
|
||||
},
|
||||
{
|
||||
"id": "confirm",
|
||||
"type": "frontend",
|
||||
"label": "确认对话框",
|
||||
"sublabel": "通用确认弹窗",
|
||||
"pos": [
|
||||
800,
|
||||
420
|
||||
],
|
||||
"size": [
|
||||
152,
|
||||
56
|
||||
],
|
||||
"tag": "confirm_dialog.gd"
|
||||
},
|
||||
{
|
||||
"id": "debug",
|
||||
"type": "frontend",
|
||||
"label": "调试浮窗",
|
||||
"sublabel": "DS_DEBUG 门控",
|
||||
"pos": [
|
||||
968,
|
||||
420
|
||||
],
|
||||
"size": [
|
||||
152,
|
||||
56
|
||||
],
|
||||
"tag": "debug_overlay.gd"
|
||||
},
|
||||
{
|
||||
"id": "save",
|
||||
"type": "database",
|
||||
"label": "存档管理",
|
||||
"pos": [
|
||||
96,
|
||||
554
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "save_manager.gd"
|
||||
},
|
||||
{
|
||||
"id": "meta",
|
||||
"type": "database",
|
||||
"label": "元进度",
|
||||
"pos": [
|
||||
244,
|
||||
554
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "meta_progression.gd"
|
||||
},
|
||||
{
|
||||
"id": "orch",
|
||||
"type": "backend",
|
||||
"label": "战斗编排器",
|
||||
"pos": [
|
||||
383,
|
||||
554
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "battle_orchestrator.gd"
|
||||
},
|
||||
{
|
||||
"id": "rules",
|
||||
"type": "backend",
|
||||
"label": "扫雷规则",
|
||||
"pos": [
|
||||
540,
|
||||
554
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "minesweeper_rules.gd"
|
||||
},
|
||||
{
|
||||
"id": "boardgen",
|
||||
"type": "backend",
|
||||
"label": "棋盘生成",
|
||||
"pos": [
|
||||
688,
|
||||
554
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "board_generator.gd"
|
||||
},
|
||||
{
|
||||
"id": "boarddata",
|
||||
"type": "database",
|
||||
"label": "棋盘数据",
|
||||
"pos": [
|
||||
836,
|
||||
554
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "board_data.gd"
|
||||
},
|
||||
{
|
||||
"id": "effects",
|
||||
"type": "backend",
|
||||
"label": "效果引擎",
|
||||
"pos": [
|
||||
984,
|
||||
554
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "effect_engine.gd"
|
||||
},
|
||||
{
|
||||
"id": "adventure",
|
||||
"type": "backend",
|
||||
"label": "冒险运行器",
|
||||
"pos": [
|
||||
1132,
|
||||
554
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "adventure_runner.gd"
|
||||
},
|
||||
{
|
||||
"id": "levelrun",
|
||||
"type": "backend",
|
||||
"label": "关卡运行器",
|
||||
"pos": [
|
||||
96,
|
||||
616
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "level_runner.gd"
|
||||
},
|
||||
{
|
||||
"id": "dmgctl",
|
||||
"type": "backend",
|
||||
"label": "伤害控制",
|
||||
"pos": [
|
||||
244,
|
||||
616
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "damage_controller.gd"
|
||||
},
|
||||
{
|
||||
"id": "dgmath",
|
||||
"type": "backend",
|
||||
"label": "伤害公式",
|
||||
"pos": [
|
||||
392,
|
||||
616
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "damage_math.gd"
|
||||
},
|
||||
{
|
||||
"id": "reward",
|
||||
"type": "backend",
|
||||
"label": "奖励经济",
|
||||
"pos": [
|
||||
540,
|
||||
616
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "reward_economy.gd"
|
||||
},
|
||||
{
|
||||
"id": "lottery",
|
||||
"type": "backend",
|
||||
"label": "技能抽奖",
|
||||
"pos": [
|
||||
688,
|
||||
616
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "skill_lottery.gd"
|
||||
},
|
||||
{
|
||||
"id": "attune",
|
||||
"type": "backend",
|
||||
"label": "同调",
|
||||
"pos": [
|
||||
836,
|
||||
616
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "attunement.gd"
|
||||
},
|
||||
{
|
||||
"id": "action",
|
||||
"type": "backend",
|
||||
"label": "行动经济",
|
||||
"pos": [
|
||||
984,
|
||||
616
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "action_economy.gd"
|
||||
},
|
||||
{
|
||||
"id": "feats",
|
||||
"type": "backend",
|
||||
"label": "特长引擎",
|
||||
"pos": [
|
||||
1132,
|
||||
616
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "feats_engine.gd"
|
||||
},
|
||||
{
|
||||
"id": "status",
|
||||
"type": "backend",
|
||||
"label": "状态容器",
|
||||
"pos": [
|
||||
96,
|
||||
678
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "status_container.gd"
|
||||
},
|
||||
{
|
||||
"id": "units",
|
||||
"type": "backend",
|
||||
"label": "单位容器",
|
||||
"pos": [
|
||||
244,
|
||||
678
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "unit_container.gd"
|
||||
},
|
||||
{
|
||||
"id": "treasure",
|
||||
"type": "database",
|
||||
"label": "秘宝数据",
|
||||
"pos": [
|
||||
392,
|
||||
678
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "treasure_items.gd"
|
||||
},
|
||||
{
|
||||
"id": "resolver",
|
||||
"type": "backend",
|
||||
"label": "配置解析",
|
||||
"pos": [
|
||||
540,
|
||||
678
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
48
|
||||
],
|
||||
"sublabel": "config_db_resolver.gd"
|
||||
},
|
||||
{
|
||||
"id": "xvalid",
|
||||
"type": "backend",
|
||||
"label": "配置交叉校验",
|
||||
"pos": [
|
||||
688,
|
||||
678
|
||||
],
|
||||
"size": [
|
||||
170,
|
||||
48
|
||||
],
|
||||
"sublabel": "config_db_cross_validator.gd"
|
||||
}
|
||||
],
|
||||
"boundaries": [
|
||||
{
|
||||
"kind": "region",
|
||||
"label": "战斗主界面(UiAssembler 拼装)",
|
||||
"wraps": [
|
||||
"stage",
|
||||
"hero",
|
||||
"board",
|
||||
"shop_camp",
|
||||
"settle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "region",
|
||||
"label": "浮层与对话框(组合根挂载)",
|
||||
"wraps": [
|
||||
"pause",
|
||||
"settings",
|
||||
"career",
|
||||
"curio",
|
||||
"confirm",
|
||||
"debug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "region",
|
||||
"label": "逻辑层 core/(21 件·名称清单)",
|
||||
"wraps": [
|
||||
"save",
|
||||
"meta",
|
||||
"orch",
|
||||
"rules",
|
||||
"boardgen",
|
||||
"boarddata",
|
||||
"effects",
|
||||
"adventure",
|
||||
"levelrun",
|
||||
"dmgctl",
|
||||
"dgmath",
|
||||
"reward",
|
||||
"lottery",
|
||||
"attune",
|
||||
"action",
|
||||
"feats",
|
||||
"status",
|
||||
"units",
|
||||
"treasure",
|
||||
"resolver",
|
||||
"xvalid"
|
||||
]
|
||||
}
|
||||
],
|
||||
"connections": [
|
||||
{
|
||||
"id": "main-stage",
|
||||
"from": "main",
|
||||
"to": "stage",
|
||||
"fromSide": "bottom",
|
||||
"toSide": "top"
|
||||
},
|
||||
{
|
||||
"id": "main-hero",
|
||||
"from": "main",
|
||||
"to": "hero",
|
||||
"fromSide": "bottom",
|
||||
"toSide": "top"
|
||||
},
|
||||
{
|
||||
"id": "board-main",
|
||||
"from": "board",
|
||||
"to": "main",
|
||||
"label": "翻开·插旗·和弦",
|
||||
"fromSide": "top",
|
||||
"toSide": "bottom"
|
||||
},
|
||||
{
|
||||
"id": "hero-board",
|
||||
"from": "hero",
|
||||
"to": "board",
|
||||
"label": "秘宝两步交互",
|
||||
"fromSide": "right",
|
||||
"toSide": "left"
|
||||
},
|
||||
{
|
||||
"id": "main-save",
|
||||
"from": "main",
|
||||
"to": "save",
|
||||
"label": "存档读写",
|
||||
"variant": "dashed",
|
||||
"fromSide": "left",
|
||||
"toSide": "top",
|
||||
"via": [
|
||||
[
|
||||
28,
|
||||
96
|
||||
],
|
||||
[
|
||||
28,
|
||||
512
|
||||
],
|
||||
[
|
||||
161,
|
||||
512
|
||||
]
|
||||
],
|
||||
"labelSegment": 0
|
||||
},
|
||||
{
|
||||
"id": "orch-stage",
|
||||
"from": "orch",
|
||||
"to": "stage",
|
||||
"label": "结算回流",
|
||||
"variant": "emphasis",
|
||||
"fromSide": "top",
|
||||
"toSide": "bottom",
|
||||
"via": [
|
||||
[
|
||||
448,
|
||||
376
|
||||
],
|
||||
[
|
||||
125,
|
||||
376
|
||||
]
|
||||
],
|
||||
"labelSegment": 1
|
||||
},
|
||||
{
|
||||
"id": "main-levelmap",
|
||||
"from": "main",
|
||||
"to": "level_map",
|
||||
"label": "挂载",
|
||||
"fromSide": "right",
|
||||
"toSide": "left"
|
||||
}
|
||||
],
|
||||
"cards": [
|
||||
{
|
||||
"dot": "cyan",
|
||||
"title": "组合根与建树",
|
||||
"items": [
|
||||
"main.tscn 全场景仅 1 个节点,整棵界面树由 main.gd 运行时搭建(1392 行)",
|
||||
"战斗界面由 UiAssembler 拼装;商店/营地浮层即拼装于战斗根内",
|
||||
"元进度账本与存档同由组合根持有(main.gd preload)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dot": "emerald",
|
||||
"title": "战斗动作链",
|
||||
"items": [
|
||||
"棋盘区 翻开/插旗/和弦 → 组合根 → 战斗编排器规则判定",
|
||||
"结算回流:血量攻防→角色信息区 · 受击演出→展示区 · AP 扣减与提示→棋盘区",
|
||||
"秘宝槽点击走两步交互:角色信息区 → 棋盘区/即刻生效"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dot": "rose",
|
||||
"title": "逻辑层与边界",
|
||||
"items": [
|
||||
"core/ 21 件仅列名称,源码出处见各节点 sources 指针",
|
||||
"ConfigDB/RngService 两单例经 project.godot autoload 全局供给",
|
||||
"smoke/ 下 13 个测试探针场景属测试基建,不入架构主干"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
File renamed without changes.
+1
-1
@@ -3,7 +3,7 @@
|
||||
"diagram_type": "architecture",
|
||||
"meta": {
|
||||
"title": "Dungeon Sweeper 系统架构总图",
|
||||
"output": "design/diagrams/gdd-architecture.html",
|
||||
"output": "design/dev/architecture/gdd-architecture.html",
|
||||
"quality_profile": "showcase",
|
||||
"locale": "zh-CN"
|
||||
},
|
||||
@@ -1,413 +0,0 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"diagram_type": "architecture",
|
||||
"meta": {
|
||||
"title": "Dungeon Sweeper · GDD 概念结构图",
|
||||
"output": "docs/architecture/gdd-concept-map.html",
|
||||
"quality_profile": "showcase",
|
||||
"locale": "zh-CN",
|
||||
"viewBox": [
|
||||
1364,
|
||||
660
|
||||
],
|
||||
"views": [
|
||||
{
|
||||
"id": "core-loop",
|
||||
"label": "核心循环主链",
|
||||
"focus": [
|
||||
"board-gen",
|
||||
"minesweeper",
|
||||
"action-economy",
|
||||
"settlement",
|
||||
"adventure",
|
||||
"difficulty"
|
||||
],
|
||||
"note": "主路径:新雷图 → 挖掘计费 → 轮末结算 → 关卡推进 → 难度抬升。"
|
||||
},
|
||||
{
|
||||
"id": "settlement-hub",
|
||||
"label": "结算枢纽与红线",
|
||||
"focus": [
|
||||
"settlement",
|
||||
"enemy",
|
||||
"status",
|
||||
"rewards",
|
||||
"hud"
|
||||
],
|
||||
"note": "战斗结算是战斗域唯一调用方;呈现层只订阅结算步骤流。"
|
||||
},
|
||||
{
|
||||
"id": "foundation",
|
||||
"label": "支撑底座",
|
||||
"focus": [
|
||||
"data-config",
|
||||
"board-gen",
|
||||
"settlement",
|
||||
"hud"
|
||||
],
|
||||
"note": "ConfigDB 单点 + RngService 四流,被全部系统取用。"
|
||||
}
|
||||
]
|
||||
},
|
||||
"components": [
|
||||
{
|
||||
"id": "board-gen",
|
||||
"type": "backend",
|
||||
"label": "棋盘生成",
|
||||
"sublabel": "可推理·可通关",
|
||||
"pos": [
|
||||
50,
|
||||
300
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "minesweeper",
|
||||
"type": "backend",
|
||||
"label": "排雷玩法",
|
||||
"sublabel": "挖格·插旗·连锁",
|
||||
"pos": [
|
||||
240,
|
||||
300
|
||||
],
|
||||
"size": [
|
||||
136,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "action-economy",
|
||||
"type": "backend",
|
||||
"label": "行动经济",
|
||||
"sublabel": "AP 账本·停手/刷新",
|
||||
"pos": [
|
||||
436,
|
||||
300
|
||||
],
|
||||
"size": [
|
||||
140,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "settlement",
|
||||
"type": "backend",
|
||||
"label": "战斗结算",
|
||||
"sublabel": "轮末编排·逐行兑现",
|
||||
"pos": [
|
||||
648,
|
||||
300
|
||||
],
|
||||
"size": [
|
||||
156,
|
||||
72
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "adventure",
|
||||
"type": "backend",
|
||||
"label": "冒险结构",
|
||||
"sublabel": "关卡序列·大奖励",
|
||||
"pos": [
|
||||
952,
|
||||
300
|
||||
],
|
||||
"size": [
|
||||
136,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "difficulty",
|
||||
"type": "backend",
|
||||
"label": "难度曲线与Boss",
|
||||
"sublabel": "期望值带·Dmax",
|
||||
"pos": [
|
||||
1152,
|
||||
300
|
||||
],
|
||||
"size": [
|
||||
150,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "aux-items",
|
||||
"type": "backend",
|
||||
"label": "魔法道具",
|
||||
"sublabel": "显影·探测类",
|
||||
"pos": [
|
||||
240,
|
||||
140
|
||||
],
|
||||
"size": [
|
||||
136,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "enemy",
|
||||
"type": "backend",
|
||||
"label": "敌人系统",
|
||||
"sublabel": "敌人数据·意图",
|
||||
"pos": [
|
||||
651,
|
||||
140
|
||||
],
|
||||
"size": [
|
||||
150,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hud",
|
||||
"type": "frontend",
|
||||
"label": "HUD框架",
|
||||
"sublabel": "呈现契约·布局",
|
||||
"pos": [
|
||||
244,
|
||||
470
|
||||
],
|
||||
"size": [
|
||||
136,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "data-config",
|
||||
"type": "database",
|
||||
"label": "数据配置",
|
||||
"sublabel": "ConfigDB·RngService",
|
||||
"pos": [
|
||||
37,
|
||||
470
|
||||
],
|
||||
"size": [
|
||||
156,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "status",
|
||||
"type": "backend",
|
||||
"label": "增益状态",
|
||||
"sublabel": "容器·叠层·衰减",
|
||||
"pos": [
|
||||
614,
|
||||
470
|
||||
],
|
||||
"size": [
|
||||
130,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "rewards",
|
||||
"type": "backend",
|
||||
"label": "地图战斗资源",
|
||||
"sublabel": "格面资源·清图奖励",
|
||||
"pos": [
|
||||
776,
|
||||
470
|
||||
],
|
||||
"size": [
|
||||
136,
|
||||
64
|
||||
]
|
||||
}
|
||||
],
|
||||
"boundaries": [
|
||||
{
|
||||
"kind": "region",
|
||||
"label": "排雷循环",
|
||||
"wraps": [
|
||||
"board-gen",
|
||||
"minesweeper",
|
||||
"action-economy",
|
||||
"aux-items"
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "region",
|
||||
"label": "战斗循环",
|
||||
"wraps": [
|
||||
"settlement",
|
||||
"enemy",
|
||||
"status",
|
||||
"rewards"
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "region",
|
||||
"label": "冒险循环",
|
||||
"wraps": [
|
||||
"adventure",
|
||||
"difficulty"
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "region",
|
||||
"label": "表现与支撑",
|
||||
"wraps": [
|
||||
"data-config",
|
||||
"hud"
|
||||
]
|
||||
}
|
||||
],
|
||||
"connections": [
|
||||
{
|
||||
"id": "gen-to-mines",
|
||||
"from": "board-gen",
|
||||
"to": "minesweeper",
|
||||
"label": "生成雷图",
|
||||
"variant": "emphasis"
|
||||
},
|
||||
{
|
||||
"id": "mines-to-ap",
|
||||
"from": "minesweeper",
|
||||
"to": "action-economy",
|
||||
"label": "挖掘花费 AP",
|
||||
"variant": "emphasis"
|
||||
},
|
||||
{
|
||||
"id": "ap-to-settle",
|
||||
"from": "action-economy",
|
||||
"to": "settlement",
|
||||
"label": "round_end",
|
||||
"variant": "emphasis"
|
||||
},
|
||||
{
|
||||
"id": "settle-to-enemy",
|
||||
"from": "settlement",
|
||||
"to": "enemy",
|
||||
"label": "兑现敌人行动"
|
||||
},
|
||||
{
|
||||
"id": "settle-to-status",
|
||||
"from": "settlement",
|
||||
"to": "status",
|
||||
"label": "兑现增益减益",
|
||||
"fromSide": "bottom",
|
||||
"toSide": "top",
|
||||
"labelAt": [
|
||||
679,
|
||||
447
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "settle-to-rewards",
|
||||
"from": "settlement",
|
||||
"to": "rewards",
|
||||
"label": "兑现格面奖励",
|
||||
"fromSide": "bottom",
|
||||
"toSide": "top"
|
||||
},
|
||||
{
|
||||
"id": "settle-to-adv",
|
||||
"from": "settlement",
|
||||
"to": "adventure",
|
||||
"label": "结果推进关卡",
|
||||
"variant": "emphasis"
|
||||
},
|
||||
{
|
||||
"id": "adv-to-diff",
|
||||
"from": "adventure",
|
||||
"to": "difficulty",
|
||||
"label": "关卡定级",
|
||||
"variant": "emphasis",
|
||||
"labelDy": 14
|
||||
},
|
||||
{
|
||||
"id": "diff-to-enemy",
|
||||
"from": "difficulty",
|
||||
"to": "enemy",
|
||||
"label": "数值与 Boss Dmax"
|
||||
},
|
||||
{
|
||||
"id": "mines-to-aux",
|
||||
"from": "minesweeper",
|
||||
"to": "aux-items",
|
||||
"label": "挖掘期使用"
|
||||
},
|
||||
{
|
||||
"id": "base-to-gen",
|
||||
"from": "data-config",
|
||||
"to": "board-gen",
|
||||
"label": "种子与表值",
|
||||
"labelAt": [
|
||||
115,
|
||||
395
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "base-to-settle",
|
||||
"from": "data-config",
|
||||
"to": "settlement",
|
||||
"label": "RNG 流·表值",
|
||||
"fromSide": "top",
|
||||
"toSide": "bottom"
|
||||
},
|
||||
{
|
||||
"id": "settle-to-hud",
|
||||
"from": "settlement",
|
||||
"to": "hud",
|
||||
"label": "结算步骤流",
|
||||
"variant": "dashed",
|
||||
"fromSide": "left",
|
||||
"toSide": "top"
|
||||
},
|
||||
{
|
||||
"id": "adv-to-gen",
|
||||
"from": "adventure",
|
||||
"to": "board-gen",
|
||||
"label": "推进下一关",
|
||||
"variant": "dashed",
|
||||
"fromSide": "bottom",
|
||||
"toSide": "left",
|
||||
"via": [
|
||||
[
|
||||
1020,
|
||||
618
|
||||
],
|
||||
[
|
||||
15,
|
||||
618
|
||||
],
|
||||
[
|
||||
15,
|
||||
332
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"cards": [
|
||||
{
|
||||
"dot": "cyan",
|
||||
"title": "核心循环",
|
||||
"items": [
|
||||
"主路径:棋盘生成 → 挖掘计费 → 轮末结算 → 关卡推进 → 难度抬升",
|
||||
"难度参数流入下一关雷图,虚线「推进下一关」闭合整局循环"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dot": "emerald",
|
||||
"title": "结算枢纽与架构红线",
|
||||
"items": [
|
||||
"战斗结算是敌人系统、增益状态、地图战斗资源的唯一调用方",
|
||||
"呈现层只订阅战斗结算步骤流,不直订排雷玩法事件"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dot": "amber",
|
||||
"title": "支撑底座与未上图",
|
||||
"items": [
|
||||
"数据配置(ConfigDB + RngService 四流)被全部系统引用,图中只画主干两笔",
|
||||
"未上图(已定稿):地形变异、存档序列化、战斗表现、音频、教学引导、设置与本地化",
|
||||
"范围草案:关卡节点地图、元进度"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
Binary file not shown.
|
Before Width: | Height: | Size: 136 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 146 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 171 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 182 KiB |
@@ -1,32 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>Archify automated browser evidence · gdd-concept-map.html</title>
|
||||
<style>
|
||||
*{box-sizing:border-box}body{margin:0;padding:24px;background:#e9eef5;color:#172033;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}header{max-width:1500px;margin:0 auto 18px}h1{margin:0 0 6px;font-size:20px}p{margin:0;color:#526176}.grid{max-width:1500px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}figure{margin:0;padding:10px;background:white;border:1px solid #c9d4e3;border-radius:12px;box-shadow:0 10px 30px rgba(15,23,42,.08)}img{display:block;width:100%;height:auto;border:1px solid #e2e8f0}figcaption{padding:9px 4px 2px;color:#526176}@media(max-width:900px){.grid{grid-template-columns:1fr}}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header><h1>Automated browser evidence</h1><p>gdd-concept-map.html · visual-check containment pass · perceptual visual review pending</p></header>
|
||||
<main class="grid">
|
||||
<figure>
|
||||
<img src="gdd-concept-map.visual-check.1440x900.light.png" alt="light 1440 by 900">
|
||||
<figcaption><strong>LIGHT</strong> · 1440×900 · containment pass</figcaption>
|
||||
</figure>
|
||||
<figure>
|
||||
<img src="gdd-concept-map.visual-check.1440x900.dark.png" alt="dark 1440 by 900">
|
||||
<figcaption><strong>DARK</strong> · 1440×900 · containment pass</figcaption>
|
||||
</figure>
|
||||
<figure>
|
||||
<img src="gdd-concept-map.visual-check.2048x1320.light.png" alt="light 2048 by 1320">
|
||||
<figcaption><strong>LIGHT</strong> · 2048×1320 · containment pass</figcaption>
|
||||
</figure>
|
||||
<figure>
|
||||
<img src="gdd-concept-map.visual-check.2048x1320.dark.png" alt="dark 2048 by 1320">
|
||||
<figcaption><strong>DARK</strong> · 2048×1320 · containment pass</figcaption>
|
||||
</figure>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,548 +0,0 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"ok": true,
|
||||
"command": "visual-check",
|
||||
"evidenceKind": "automated-browser",
|
||||
"status": "pass",
|
||||
"visualReview": "pending",
|
||||
"artifact": {
|
||||
"path": "D:\\code\\g-plan2\\docs\\architecture\\gdd-concept-map.html",
|
||||
"sha256": "aa7ea12deda2e43cc4d95e8550057f0e4e4d9dc617a968410cd55a0f454dc295",
|
||||
"bytes": 817914
|
||||
},
|
||||
"state": {
|
||||
"detail": "read",
|
||||
"motion": "still"
|
||||
},
|
||||
"chrome": {
|
||||
"status": "available",
|
||||
"executable": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"
|
||||
},
|
||||
"diagnostics": [],
|
||||
"containment": {
|
||||
"status": "pass",
|
||||
"viewports": [
|
||||
{
|
||||
"width": 1440,
|
||||
"height": 900,
|
||||
"theme": "light",
|
||||
"innerWidth": 1440,
|
||||
"innerHeight": 900,
|
||||
"scrollWidth": 1440,
|
||||
"scrollHeight": 900,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1117,
|
||||
"diagramWidth": 1087,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 7.172287390029325,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
},
|
||||
{
|
||||
"width": 1600,
|
||||
"height": 1000,
|
||||
"theme": "light",
|
||||
"innerWidth": 1600,
|
||||
"innerHeight": 1000,
|
||||
"scrollWidth": 1600,
|
||||
"scrollHeight": 1000,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1154,
|
||||
"diagramWidth": 1124,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 7.41642228739003,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
},
|
||||
{
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"theme": "light",
|
||||
"innerWidth": 1920,
|
||||
"innerHeight": 1080,
|
||||
"scrollWidth": 1920,
|
||||
"scrollHeight": 1080,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1320,
|
||||
"diagramWidth": 1290,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 8.511730205278592,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
},
|
||||
{
|
||||
"width": 2048,
|
||||
"height": 1320,
|
||||
"theme": "light",
|
||||
"innerWidth": 2048,
|
||||
"innerHeight": 1320,
|
||||
"scrollWidth": 2048,
|
||||
"scrollHeight": 1320,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1819,
|
||||
"diagramWidth": 1769,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 9,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 41,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
}
|
||||
]
|
||||
},
|
||||
"readability": {
|
||||
"status": "pass",
|
||||
"minimumProjectedNodeTextPx": 6,
|
||||
"viewports": [
|
||||
{
|
||||
"width": 1440,
|
||||
"height": 900,
|
||||
"theme": "light",
|
||||
"innerWidth": 1440,
|
||||
"innerHeight": 900,
|
||||
"scrollWidth": 1440,
|
||||
"scrollHeight": 900,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1117,
|
||||
"diagramWidth": 1087,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 7.172287390029325,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
},
|
||||
{
|
||||
"width": 1600,
|
||||
"height": 1000,
|
||||
"theme": "light",
|
||||
"innerWidth": 1600,
|
||||
"innerHeight": 1000,
|
||||
"scrollWidth": 1600,
|
||||
"scrollHeight": 1000,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1154,
|
||||
"diagramWidth": 1124,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 7.41642228739003,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
},
|
||||
{
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"theme": "light",
|
||||
"innerWidth": 1920,
|
||||
"innerHeight": 1080,
|
||||
"scrollWidth": 1920,
|
||||
"scrollHeight": 1080,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1320,
|
||||
"diagramWidth": 1290,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 8.511730205278592,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
},
|
||||
{
|
||||
"width": 2048,
|
||||
"height": 1320,
|
||||
"theme": "light",
|
||||
"innerWidth": 2048,
|
||||
"innerHeight": 1320,
|
||||
"scrollWidth": 2048,
|
||||
"scrollHeight": 1320,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1819,
|
||||
"diagramWidth": 1769,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 9,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 41,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
}
|
||||
]
|
||||
},
|
||||
"viewerChrome": {
|
||||
"status": "pass",
|
||||
"viewports": [
|
||||
{
|
||||
"width": 1440,
|
||||
"height": 900,
|
||||
"theme": "light",
|
||||
"innerWidth": 1440,
|
||||
"innerHeight": 900,
|
||||
"scrollWidth": 1440,
|
||||
"scrollHeight": 900,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1117,
|
||||
"diagramWidth": 1087,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 7.172287390029325,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
},
|
||||
{
|
||||
"width": 1600,
|
||||
"height": 1000,
|
||||
"theme": "light",
|
||||
"innerWidth": 1600,
|
||||
"innerHeight": 1000,
|
||||
"scrollWidth": 1600,
|
||||
"scrollHeight": 1000,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1154,
|
||||
"diagramWidth": 1124,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 7.41642228739003,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
},
|
||||
{
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"theme": "light",
|
||||
"innerWidth": 1920,
|
||||
"innerHeight": 1080,
|
||||
"scrollWidth": 1920,
|
||||
"scrollHeight": 1080,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1320,
|
||||
"diagramWidth": 1290,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 8.511730205278592,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
},
|
||||
{
|
||||
"width": 2048,
|
||||
"height": 1320,
|
||||
"theme": "light",
|
||||
"innerWidth": 2048,
|
||||
"innerHeight": 1320,
|
||||
"scrollWidth": 2048,
|
||||
"scrollHeight": 1320,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1819,
|
||||
"diagramWidth": 1769,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 9,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 41,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light"
|
||||
}
|
||||
]
|
||||
},
|
||||
"captures": {
|
||||
"status": "pass",
|
||||
"screenshots": [
|
||||
{
|
||||
"width": 1440,
|
||||
"height": 900,
|
||||
"theme": "light",
|
||||
"innerWidth": 1440,
|
||||
"innerHeight": 900,
|
||||
"scrollWidth": 1440,
|
||||
"scrollHeight": 900,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1117,
|
||||
"diagramWidth": 1087,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 7.172287390029325,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light",
|
||||
"file": "gdd-concept-map.visual-check.1440x900.light.png"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"height": 900,
|
||||
"theme": "dark",
|
||||
"innerWidth": 1440,
|
||||
"innerHeight": 900,
|
||||
"scrollWidth": 1440,
|
||||
"scrollHeight": 900,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1117,
|
||||
"diagramWidth": 1087,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 7.172287390029325,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 51,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "dark",
|
||||
"file": "gdd-concept-map.visual-check.1440x900.dark.png"
|
||||
},
|
||||
{
|
||||
"width": 2048,
|
||||
"height": 1320,
|
||||
"theme": "light",
|
||||
"innerWidth": 2048,
|
||||
"innerHeight": 1320,
|
||||
"scrollWidth": 2048,
|
||||
"scrollHeight": 1320,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1819,
|
||||
"diagramWidth": 1769,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 9,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 41,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "light",
|
||||
"file": "gdd-concept-map.visual-check.2048x1320.light.png"
|
||||
},
|
||||
{
|
||||
"width": 2048,
|
||||
"height": 1320,
|
||||
"theme": "dark",
|
||||
"innerWidth": 2048,
|
||||
"innerHeight": 1320,
|
||||
"scrollWidth": 2048,
|
||||
"scrollHeight": 1320,
|
||||
"overflowX": false,
|
||||
"overflowY": false,
|
||||
"ok": true,
|
||||
"readerWidth": 1819,
|
||||
"diagramWidth": 1769,
|
||||
"viewBoxWidth": 1364,
|
||||
"minimumProjectedNodeTextPx": 9,
|
||||
"minimumProjectedNodeText": "可推理·可通关",
|
||||
"minimumProjectedNodeTextDetail": "context",
|
||||
"minimumRequiredNodeTextPx": 6,
|
||||
"readabilityOk": true,
|
||||
"hasLegend": false,
|
||||
"hasNavigationDock": true,
|
||||
"legendDockIntersectionArea": 0,
|
||||
"dockStageIntersectionArea": 0,
|
||||
"dockStageGap": 10.21875,
|
||||
"requiredDockStageGap": 10,
|
||||
"viewerChromeStageOk": true,
|
||||
"viewerChromeReserve": 41,
|
||||
"viewerChromeActive": true,
|
||||
"viewerChromeOk": true,
|
||||
"resolvedTheme": "dark",
|
||||
"file": "gdd-concept-map.visual-check.2048x1320.dark.png"
|
||||
}
|
||||
],
|
||||
"contactSheet": "gdd-concept-map.visual-check.html"
|
||||
},
|
||||
"sidecars": {
|
||||
"receipt": "gdd-concept-map.visual-check.json",
|
||||
"contactSheet": "gdd-concept-map.visual-check.html"
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
# Requirements Traceability Matrix — Dungeon Sweeper
|
||||
|
||||
> 生成:2026-09-12 · 源:`docs/architecture/architecture.md` §Technical Requirements Baseline(63 条)+ ADR-0001~0005 · 2026-09-15 雾格移除清理(a4-001/002 需求文本与载体同步现行文档)
|
||||
> 门检查口径:**Foundation 层零缺口** = 每条 Foundation TR 都有明确裁决载体(专项 ADR,或经 design-review 门禁的 Approved GDD 契约 + 本架构文档章节),无未决项。
|
||||
> 状态图例:✅ 已覆盖 · 🔶 待 ADR(非 Foundation,随对应系统开工前裁决)· ⏳ 随未设计系统
|
||||
|
||||
## 覆盖总览
|
||||
|
||||
| 层 | TR 数 | 专项 ADR 覆盖 | GDD 契约 + 架构文档覆盖 | 待裁决 |
|
||||
|---|---|---|---|---|
|
||||
| Foundation | 36 | ADR-0001(a3-004)· ADR-0004(d2-014/016)· ADR-0005(d2-010/gc-002) | 32 条(D2/A3/A4/B3 GDD 均 Approved + 架构文档所有权/API 节) | **0** ✅ |
|
||||
| Core | 21 | ADR-0001(b1-001/002)· ADR-0002(—) | 19 条 | 2(a1-011/012 → ADR-0006) |
|
||||
| Feature | 2 | — | b1 对账协议等 | 0(b1-010 文档承载) |
|
||||
| Presentation / Platform | 4 | ADR-0002(gc-008) | gc-006/007 文档 | 2(gc-004/005 随 D1/B5) |
|
||||
|
||||
## Foundation 层逐条(36 条——零缺口核验)
|
||||
|
||||
| TR | 需求 | 裁决载体 |
|
||||
|---|---|---|
|
||||
| d2-001~003 | 单一事实源 / ConfigDB 单点 / schema 先行 10 表 | D2 GDD(Approved)+ architecture.md §Module Ownership |
|
||||
| d2-004 | 进度键 + R1 floor 解析 | D2 GDD R1 + architecture.md §API Boundaries |
|
||||
| d2-005/006 | RngService 封闭流 / R2 派生与黄金向量 | D2 GDD R2 + architecture.md 原则 3 |
|
||||
| d2-007 | 校验双通道 + 夹具注入 | D2 GDD + ADR-0004(载体) |
|
||||
| d2-008 | 加载期/运行期致命 | D2 GDD Rule 6 |
|
||||
| d2-009 | D2 零 UI 依赖 | D2 GDD Rule 7 + ADR-0003(core 隔离)+ architecture.md 原则 1 |
|
||||
| **d2-010** | SCHEMA_VERSION 版本化 | **ADR-0005** |
|
||||
| d2-011 | debug override 链 | D2 GDD R3 |
|
||||
| d2-012 | 热重载状态机 + reload gate | D2 GDD + B1 GDD(唯一调用方) |
|
||||
| d2-013 | 诊断收集器 | D2 GDD 校验双通道节 |
|
||||
| **d2-014** | 冒烟框架协议 | **ADR-0004** |
|
||||
| **d2-015** | RNG 快照 = seed + 计数器 | **ADR-0005** |
|
||||
| **d2-016** | 项目级静态扫描域 | **ADR-0004**(S1–S8) |
|
||||
| a3-001~003/005~008 | AP/RAP 账本、仲裁、相位机、refresh、表承载、last_round_end | A3 GDD(Approved)+ architecture.md |
|
||||
| **a3-004** | round_end 双发射源 | **ADR-0001**(round_end_board / round_end_stopped) |
|
||||
| a4-001/002 | 变异框架(原雾行跨字段校验已随雾格移除) | A4 GDD(Approved)+ 现行《地形变异》 |
|
||||
| a4-003/004 | 生成期布置执行归 A1 / 零特判 | A4 GDD + A1/A2 GDD |
|
||||
| b3-001~006 | 统一容器 / 时限量纲 / 五 API / 三分支 / 快照 / 不 clamp | B3 GDD(Approved) |
|
||||
|
||||
## Core / Feature / Presentation 层(27 条)
|
||||
|
||||
| TR | 需求 | 载体 | 状态 |
|
||||
|---|---|---|---|
|
||||
| a1-001~010, a2-001~010, b2-001~004/006, b4-001~009, b1-003~009/011 | 各系统行为契约(详见 architecture.md §TR Baseline) | 各 GDD(Approved)+ architecture.md §Module Ownership / §API Boundaries;事件类(a2-002/003、b1-001/002)由 **ADR-0001** 承载 | ✅ |
|
||||
| **a1-011** | 度量独立入口三函数 | 🔶 待 **ADR-0006**(生成性能与异步化——A1 OQ2/OQ3) | 🔶 |
|
||||
| **a1-012** | F2c 成本闸 / 生成性能姿态 | 🔶 待 **ADR-0006**(Core 层,A1 开工前裁决;切片证据已背书同步方案) | 🔶 |
|
||||
| **b2-005**(注:face 归属实为 b2 OQ1 项) | query_attack/ambush_grant_plan 两 face | 🔶 待 **ADR-0007**(单位 API face 归属——B2 OQ1/OQ5) | 🔶 |
|
||||
| **gc-004** | 双舞台资产管线 | ⏳ B5 前美术测试 → ADR-0011 | ⏳ |
|
||||
| **gc-005** | 视觉锚三硬约束 | 🔶 D1 GDD(未写——MVP 层最后一块;切片教训四条为其硬输入) | 🔶 |
|
||||
| gc-006/007 | 性能预算 / 平台输入 | technical-preferences + ADR-0002(窗口基座) | ✅ |
|
||||
| **gc-008** | 渲染器选择 | **ADR-0002** | ✅ |
|
||||
|
||||
## 待裁决 ADR 队列(全部非 Foundation)
|
||||
|
||||
| ADR | 议题 | 触发时机 |
|
||||
|---|---|---|
|
||||
| ADR-0006 | 生成性能与异步化(A1 OQ2/OQ3 + 度量独立入口确认) | A1 生产实现前 |
|
||||
| ADR-0007 | B2/B1 两 face 归属 + HeroTable 单行校验落点 | B2 生产实现前 |
|
||||
| ADR-0008 | 零伤害死局跨字段护栏落点 | D2 生产化前 |
|
||||
| ADR-0009 | 切片机制正式化(轮内刷新 / RewardSupplyController / LevelTable / grant_node_active / clear_blast) | 正式化批 |
|
||||
| ADR-0010~0013 | A1 熔断 / B5 舞台 / A5 显影 / D3 存档格式(契约已由 ADR-0005 锁定) | 各系统 GDD 立项时 |
|
||||
@@ -0,0 +1,55 @@
|
||||
# 代码规范反面案例库(code-conventions 配套)
|
||||
|
||||
> 本文件是 `code-conventions.md` 各条规则对应的真实反例,说明每条规则针对什么缺陷;规则本体以规约为准,规约与本文冲突时以规约为准。不随规约常驻加载——写码前不必通读,对某条规则的适用有疑义时再查。
|
||||
|
||||
## 1.1 上帝对象
|
||||
|
||||
main.gd 曾长到 ~1100 行——棋盘渲染、HUD、结算日志格式化、四种模态覆盖层、调整板、模拟器、关卡流程全部内联;后拆分为 9 个单一职责单元(views/ + hud_presenter),main 回到 ~430 行组合根。
|
||||
|
||||
## 1.2 裸函数堆
|
||||
|
||||
供给控制器曾以裸函数伪代码呈现被否;正式实现按私有组合件 RewardSupplyController 封装。
|
||||
|
||||
## 1.4 ID 前缀命名
|
||||
|
||||
ID 前缀是跟随 GDD 文档名的事实约定,从未成文;`config_db`/`rng_service` 无前缀与 A/B/C 系列并存——两套命名并行即规范缺失。
|
||||
|
||||
## 1.4.1 文件头失守
|
||||
|
||||
main.gd 头注曾累积 42 行——历次提交各自追加「本批做了什么」而全部闸静默放行;删掉叙事后仍剩 31 行,约 2/3 是对 code-conventions §1.3 与架构文档的整段复制、场景结构/生命周期机制描述(对规约与代码零新信息)。
|
||||
|
||||
## 2.1 信号契约缺失(软锁)
|
||||
|
||||
旗动作花完末点 AP 后相位翻 Waiting 但不发 round_end,结算点依赖该事件 → 整局软锁;自动玩家不用旗,冒烟路径覆盖不全没抓住。
|
||||
|
||||
## 2.2 标识符语义错位
|
||||
|
||||
窗口选择契约 = 窗口条目位置,UI 却传库存数组句柄——未消耗时二者巧合相等;消耗一件后错位 → 选中件不消耗、邻件被误耗。
|
||||
|
||||
## 2.3 覆盖层不可达
|
||||
|
||||
数值调整板已实现,但打开时被不透明的开始覆盖层完全遮住 = "点击无反应"。功能存在 ≠ 功能可达。
|
||||
|
||||
## 2.4 状态字段语义隐式
|
||||
|
||||
spawn 把 hero 的 max_hp 设为入参 hero_hp——跨战斗携带 HP 时上限被压扁,恢复点/治疗包的满血守卫全部失效。
|
||||
|
||||
## 5.3 单尺度校准的关卡灾难
|
||||
|
||||
可选类 25% 格子配比在单战斗尺度校准(击杀需求 18/54),×"库存关内延续"× 5 张板复合后 = 每关 24.8 件、刀总伤 180 > Boss 130 HP——单尺度合理的参数在关卡尺度坐实灾难。
|
||||
|
||||
## 5.4 拍板范围外自行发挥
|
||||
|
||||
清图奖励被自行设计成入库刀,用户纠正为"一次性高额伤害不入库"。
|
||||
|
||||
## 缺陷-规范对照表
|
||||
|
||||
| 缺陷 | 现象 | 对应规则 |
|
||||
|---|---|---|
|
||||
| UI 抖动 / "第3轮"消失 | 悬停文案换行推挤侧栏,末行被挤出视口 | 1.1 拆分 + 视图定长槽 |
|
||||
| Boss 战 AP 用完不结算(软锁) | 插旗耗尽末点 AP 后整局冻结 | 2.1 事件发射完整性 |
|
||||
| 道具使用后不消失 | 选用件留存、邻件被误耗 | 2.2 标识符语义单一 |
|
||||
| 调整板点击无反应 | 面板已实现但被开始层遮挡 | 2.3 层级规则 + test-conventions §2 |
|
||||
| 上帝对象 | main.gd ~1100 行 | 1.1–1.3 |
|
||||
| ID 前缀命名 | 两套命名并存 | 1.4–1.5 |
|
||||
| 可选类每关 24.8 件 | 速杀退化、囤刀秒 Boss | 5.3 跨尺度推演 |
|
||||
@@ -1,9 +1,7 @@
|
||||
# 代码规范(Dungeon Sweeper)
|
||||
|
||||
> 生效:2026-09-11 · 来源:用户在垂直切片评审中逐一指出的真实陋习与缺陷,全部成文。
|
||||
> 每条规则附本项目真实反面案例(标注缺陷编号/日期)——规则不是抽象美德,是踩过的坑。
|
||||
> 约束范围:`game/`(原 prototypes/ 垂直切片,2026-09-24 转正)代码同尺度;与 CLAUDE.md「硬性红线」节既有硬约束
|
||||
> (数值表单点 / RNG 封闭流 / Core 零 UI / fail-fast / spec-AC 一致性)并行生效,冲突以用户裁决为准。
|
||||
> 约束范围:`game/` 代码同尺度;与 CLAUDE.md「硬性红线」节硬约束(数值表单点 / RNG 封闭流 / Core 零 UI / fail-fast / spec-AC 一致性)并行生效,冲突以用户裁决为准。
|
||||
> 分工:本文管结构 / 契约 / 语言 / 数值 / 流程五类;测试的编写与验收见 `design/dev/test-conventions.md`;真实反例库见同目录 `code-conventions-cases.md`(不常驻加载,对规则适用有疑义时查)。
|
||||
|
||||
**写任何代码前必须通读本文件。**
|
||||
|
||||
@@ -12,144 +10,91 @@
|
||||
## 1. 结构纪律——高内聚、低耦合
|
||||
|
||||
### 1.1 禁止上帝对象
|
||||
一个类只承载一个职责。场景主脚本(main)= **组合根**:模式流转、信号接线、核心写调用的唯一出口;
|
||||
渲染、文案拼装、状态装配一律拆分为独立视图/装配器类。单文件超过 ~400 行即触发审视。
|
||||
|
||||
> **反面案例(2026-09-11,用户:"一个工程师看了想吐")**:main.gd 随功能追加长到 ~1100 行——棋盘渲染、
|
||||
> HUD、结算日志格式化、四种模态覆盖层、调整板、蒙特卡洛模拟器、关卡流程全部糊在一个类里。
|
||||
> 已拆分为 9 个单一职责单元(views/ + hud_presenter),main 降到 433 行组合根。
|
||||
一个类只承载一个职责。场景主脚本(main)= **组合根**:模式流转、信号接线、核心写调用的唯一出口;渲染、文案拼装、状态装配一律拆分为独立视图/装配器类。单文件超过 ~400 行即触发审视。
|
||||
|
||||
### 1.2 一切功能以类封装,禁止裸函数堆
|
||||
设计稿与实现同尺度:功能 = 类(状态 + 行为 + 信号),类是封装的最小交付单位。
|
||||
工具性纯函数只允许挂在明确的宿主类下(静态装配器/工厂),不允许无主散落。
|
||||
设计稿与实现同尺度:功能 = 类(状态 + 行为 + 信号),类是封装的最小交付单位。工具性纯函数只允许挂在明确的宿主类下(静态装配器/工厂),不允许无主散落。
|
||||
|
||||
> **反面案例(2026-09-11,用户:"我看你都是函数的方式……没有对象封装吧")**:供给控制器的伪代码
|
||||
> 以裸函数呈现被否;正式实现按"B4 私有组合件 RewardSupplyController"封装。
|
||||
|
||||
### 1.3 依赖单向,核心写调用收口
|
||||
依赖方向唯一:`views →(信号)→ 组合根 →(写调用)→ core`。
|
||||
视图零核心写调用(纯 setter / 信号外发优先);"读核心状态 → 拼展示文案"集中于装配器(presenter);
|
||||
核心写接口(settle_batch / submit_window_selection / runner 推进)只允许在组合根出现。
|
||||
### 1.3 依赖单向,核心写调用完成
|
||||
依赖方向唯一:`views →(信号)→ 组合根 →(写调用)→ core`。视图零核心写调用(纯 setter / 信号外发优先);"读核心状态 → 拼展示文案"集中于装配器(presenter);核心写接口(settle_batch / submit_window_selection / runner 推进)只允许在组合根出现。
|
||||
|
||||
### 1.4 命名 = 领域命名,禁止系统 ID 前缀
|
||||
文件名与类名禁止 `a1_`/`b1_`/`c1_` 等系统 ID 前缀(`a1_board_generator.gd` → `board_generator.gd`)。
|
||||
设计追溯不靠前缀:每个核心实现文件头注必须带一行
|
||||
`# 实现 GDD:design/archive/gdd-2026-09-14/<id>-<slug>.md(系统 ID Xn)`(2026-09-14 起旧 GDD 体系封存于归档,头注指归档路径;对应新 systems 文档定稿后再改指 `design/gdd/systems/` 新文档);系统 ID 只作为文档与 registry 的追溯锚。
|
||||
豁免:D2 schema 类与 autoload(本就领域命名);文档/夹具登记名(如 b4_golden)属文档层。
|
||||
文件名与类名禁止 `a1_`/`b1_`/`c1_` 等系统 ID 前缀(`a1_board_generator.gd` → `board_generator.gd`)。设计追溯不靠前缀:代码↔设计的追溯由 GDD 文档与 registry 侧承担,系统 ID 只作为文档与 registry 的追溯锚;文件头注不承担追溯职责,不写任何文档链接(§1.4.1)。豁免:D2 schema 类与 autoload;文档/夹具登记名(如 b4_golden)属文档层。
|
||||
|
||||
> **反面案例(2026-09-11,用户:"是没有代码规范吗")**:ID 前缀是跟随 GDD 文档名的事实约定,
|
||||
> 从未成文;同目录 `config_db`/`rng_service` 无前缀与 A/B/C 系列并存——两套命名即规范缺失的铁证。
|
||||
### 1.4.1 文件头 = `##` 文档注释,介绍本模块,≤8 行,两类白名单制
|
||||
|
||||
头注的存在性与内容范围以 Python 规范为权威(GDScript 语法近 Python,官方风格指南对文件头零条款,不自造标准):Google Python Style Guide §3.8.2 明文要求——"Files should start with a docstring describing the contents and usage of the module"(文件应以描述模块内容与用法的 docstring 开头);PEP 257——模块一般都应有 docstring,摘要压一行。
|
||||
|
||||
载体与上限:只用 `##` 文档注释(Godot 官方载体,进编辑器 F1 帮助),总行数 ≤8(不含空行,从文件首个非空行到首个非注释代码行)。
|
||||
|
||||
白名单(只许两类):①职责摘要——这是什么,一句话;项目语境(垂直切片状态/验证目标)以括号并入本行。②使用约束——使用本文件前必须知道的禁令与边界,每条一行。
|
||||
|
||||
黑名单(出现即违规):日期与变更叙事——改动史查 `git log`/`git blame`,变更背景读迭代实现报告;与其他文档或其他文件头重复的内容——零新信息不写(pyguide §3.8.2.1);场景结构、生命周期等代码机制描述——"Never describe the code"(pyguide §3.8.5);一切文档反向链接——「实现 GDD:xxx」「指路:架构见 xxx」一类全部废止,代码↔设计追溯由 GDD 文档与 registry 侧承担。
|
||||
|
||||
机器闸:`tools/audit_file_headers.py`(static_scan S10:行数上限+黑名单机械可判子集)。存量头注按白名单清偿(约 90 文件,清偿批进行中);清偿落地后闸增补「头注必须 `##` 开头」锁死载体;此间新增/改动的文件头必须即合规。
|
||||
|
||||
### 1.5 禁止事实约定
|
||||
任何"大家默认这么做"的惯例必须成文进本文件(或 CLAUDE.md)才算存在。
|
||||
写代码时发现未成文但必须遵守的约定 → 当场补条文,不许靠惯性延续。
|
||||
任何"大家默认这么做"的惯例必须成文进本文件(或 CLAUDE.md)才算存在。写代码时发现未成文但必须遵守的约定 → 当场补条文,不许靠惯性延续。
|
||||
|
||||
---
|
||||
|
||||
## 2. 契约纪律——跨层/跨类调用的语义
|
||||
|
||||
### 2.1 信号与事件契约成文
|
||||
每个跨类信号:参数语义、发送时点、消费方依赖,必须在发送方头注成文(参照 A2 三事件面先例)。
|
||||
状态机的每次迁移路径都必须发出对应事件——**缺一条路径的事件 = 消费方永久等待 = 软锁**。
|
||||
|
||||
> **反面案例(playtest 缺陷②)**:A2 旗动作花完末点 AP 后相位翻 Waiting 但不发 round_end,
|
||||
> B1 结算点依赖该事件 → 整局软锁。v1 冒烟没抓到是因为自动玩家不用旗——路径覆盖不全的代价。
|
||||
每个跨类信号:参数语义、发送时点、消费方依赖,必须在发送方 `##` 文档注释成文,每信号一行;计入 §1.4.1 的 8 行上限,装不下时迁契约文档。状态机的每次迁移路径都必须发出对应事件——**缺一条路径的事件 = 消费方永久等待 = 软锁**。
|
||||
|
||||
### 2.2 跨层标识符语义单一且成文
|
||||
位置(index)/ 句柄(handle)/ 键(key)是三种不同的东西。跨类传递标识符时,
|
||||
传递方的语义必须与接收方契约逐字一致,禁止凭"当前恰好相等"传值。
|
||||
|
||||
> **反面案例(playtest 缺陷④)**:窗口选择契约 = 窗口条目位置,UI 却传库存数组句柄——
|
||||
> 未消耗时二者巧合相等;消耗一件后错位 → 选中件不消耗、邻件被误耗。
|
||||
位置(index)/ 句柄(handle)/ 键(key)是三种不同的东西。跨类传递标识符时,传递方的语义必须与接收方契约逐字一致,禁止凭"当前恰好相等"传值。
|
||||
|
||||
### 2.3 模态覆盖层层级规则
|
||||
覆盖层遮挡关系由场景树加入顺序决定。打开任何模态覆盖层时,必须显式隐藏会遮挡它的全屏层;
|
||||
新增覆盖层必须登记其在 z 序中的位置,并提供"打开可见性"的场景断言。
|
||||
|
||||
> **反面案例(playtest 缺陷⑤)**:数值调整板已实现,但打开时被不透明的开始覆盖层完全遮住
|
||||
> = "点击无反应"。功能存在 ≠ 功能可达。
|
||||
覆盖层遮挡关系由场景树加入顺序决定。打开任何模态覆盖层时,必须显式隐藏会遮挡它的全屏层;新增覆盖层必须登记其在 z 序中的位置,并提供"打开可见性"的场景断言。
|
||||
|
||||
### 2.4 状态字段语义显式
|
||||
跨战斗/跨场景携带或恢复的状态字段,其语义来源必须显式(表值 / 明确入参),禁止用入参隐式定义。
|
||||
|
||||
> **反面案例**:B2 spawn 把 hero 的 max_hp 设为入参 hero_hp——跨战斗携带 HP 时上限被压扁,
|
||||
> 恢复点/治疗包的满血守卫全部失效。
|
||||
|
||||
---
|
||||
|
||||
## 3. 测试纪律——"存在"必须证明"可达且正确"
|
||||
## 3. 测试纪律
|
||||
|
||||
### 3.1 场景级探针标配
|
||||
每新增一个可交互 UI 区域(视图/覆盖层/面板),必须配套场景级 headless 探针:
|
||||
真实实例化场景 → 驱动真实输入路径 → 断言可见性与状态。**只有 core 层 AC 通过不算有测试**
|
||||
(GDScript 编译不查字典字段与时序,呈现层错误只在运行时暴露)。
|
||||
|
||||
### 3.2 覆盖层/面板必测"打开后可见"
|
||||
凡模态覆盖层,探针必须断言:打开后自身 visible 且遮挡物已隐藏(缺陷⑤回归断言)。
|
||||
|
||||
### 3.3 缺陷修复必须沉淀回归断言
|
||||
每个缺陷修复必须在探针或冒烟中留下能抓住该缺陷的断言(旗动作耗尽 AP → 必须进入第 2 轮;
|
||||
选用道具 → 库存态必须变 Used)。没有回归断言的修复视为未完成。
|
||||
|
||||
### 3.4 提交前全量验证
|
||||
交付前必须全绿:`smoke_all.gd` + 全部场景探针(ui_probe / ui_click_probe / ui_tune_probe)。
|
||||
行为探针使用随机化玩家行为(旗/停手/刷新/无效点击)——自动玩家不做的动作就是测试盲区。
|
||||
已独立成文:`design/dev/test-conventions.md`(探针标配 / 回归断言 / 提交前全量验证 / 验收清单落码规范 / 变异验证)。
|
||||
|
||||
---
|
||||
|
||||
## 4. 语言纪律——GDScript 4.x 实战坑(本项目踩实)
|
||||
|
||||
1. **多行 lambda 内禁止嵌套 match / 复杂控制流**(解析不可靠,报"Expected expression for match
|
||||
pattern")——信号处理体一律抽成命名方法 + `bind` 传状态。
|
||||
1. **多行 lambda 内禁止嵌套 match / 复杂控制流**(解析不可靠)——信号处理体一律抽成命名方法 + `bind` 传状态。
|
||||
2. **Dictionary 取值返回 Variant,无类型推断**——参与算术或传参前显式声明类型(`var x: float = ...`)。
|
||||
3. **RichTextLabel:`append_text()` 不回写 `text` 属性**——读可见文本用 `get_parsed_text()`。
|
||||
4. **lambda 捕获循环变量按创建时值**——循环内先落地局部变量再捕获,或用 `bind`。
|
||||
5. **重命名脚本必须同步 `.uid` 文件**(资源身份稳定);新增 `class_name` 后必须跑一次编辑器扫描
|
||||
刷新全局类缓存,否则 `--headless --script` 模式解析失败。
|
||||
6. **`print` 格式占位符与实参类型必须匹配**(`%d` 配 String = 静默输出字面量)——工具输出错
|
||||
等于没有输出。
|
||||
5. **重命名脚本必须同步 `.uid` 文件**;新增 `class_name` 后必须跑一次编辑器扫描刷新全局类缓存,否则 `--headless --script` 模式解析失败。
|
||||
6. **`print` 格式占位符与实参类型必须匹配**(`%d` 配 String = 静默输出字面量)。
|
||||
7. **语言纪律已机器化为 S9 类型闸**(迭代 27——2026-10-17 用户裁写入)——`tools/audit_type_hints.py`,执行载体=静态扫描域 S9(`game/tests/static_scan.sh`),退出码 0=归零。扫描面=产品码(`game/core`+`game/data`+`game/presentation`;smoke/tests 豁免——测量面容器直构是既有惯例)。三规则:R1 无类型容器(显式非参数化 `Dictionary`/`Array` 注解)/R2 有值返回缺返回类型(纯副作用缺 `-> void` 属写法面不入闸)/R3 参数缺类型(`_init` 豁免——构造注入面形态自由)。
|
||||
8. **`:= {}` 推断形态不算债**——`var x := {}` 类赋值推断属类型推断合法面,不入 R1 扫描;只有显式写的非参数化容器注解才算无类型容器。
|
||||
9. **行级白名单通道 `# type-hint: ignore`**——豁免该行不入 S9;豁免理由必须随行注明(现行例:`board_generator` 四函数的 db 参鸭子型——typed 参拒冒烟夹具 `_BoardRowStub` 注入)。
|
||||
10. **`# rng-seed-exempt` 标记豁免通道**——S1/S2 随机函数扫描对该行豁免;限定用途=非玩法 RNG 消费面的引擎熵(现行例:组合根种子编辑框空态取 `randi()`——建种子不进玩法封闭流)。
|
||||
11. **`--script` 模式禁裸 autoload 标识符**——`ConfigDB`/`RngService` 等 autoload 名在 `--headless --script` 模式编译器不解析(parse error);产品码与测试夹具一律经节点路径取用(`get_node("/root/…")`/`AUTOLOAD_PATH_*` 常量);静态扫描域 S5 硬失败承载在位。
|
||||
12. **Variant 参数化现行口径**——账本类字典/数组标注 `Dictionary[Variant, Variant]`/`Array[Variant]` 即合格(满足 R1);元素类型精化列后续事项、不入硬纪律,口径变更须用户裁决后续批次另行写入。
|
||||
|
||||
---
|
||||
|
||||
## 5. 数值与汇报纪律
|
||||
|
||||
### 5.1 数值口径必须显式标注尺度
|
||||
任何期望值/均值汇报必须写明口径:**每格 / 每板 / 每战 / 每关**。混用口径 = 误导
|
||||
("可选类 3.32"不加"每板",会被读成每格期望 >1)。
|
||||
任何期望值/均值汇报必须写明口径:**每格 / 每板 / 每战 / 每关**。混用口径 = 误导。
|
||||
|
||||
### 5.2 调参先测量,改后复测
|
||||
改任何玩法数值前,先用扫描工具产出基线(通关率/难度类读数走 `balance_verifier.py` 冒险段——单关直入口口径已退役,机制类读数走 `reward_expectation.gd` 等);
|
||||
改完必须复测回填数据。禁止拍脑袋调参。
|
||||
改任何玩法数值前,先用扫描工具产出基线(通关率/难度类读数走 `balance_verifier.py` 冒险段,机制类读数走 `reward_expectation.gd` 等);改完必须复测回填数据。禁止拍脑袋调参。
|
||||
|
||||
### 5.3 数值设计必须跨尺度推演
|
||||
在单一尺度校准的数值,必须推演其在更大尺度的复合结果(每战合理 × 关内囤积 = 关卡灾难)。
|
||||
|
||||
> **反面案例(2026-09-11)**:可选类 25% 格子配比在单战斗尺度校准(击杀需求 18/54),
|
||||
> ×"库存关内延续"× 5 张板复合后 = 每关 24.8 件、刀总伤 180 > Boss 130 HP——预警⑥在关卡尺度坐实。
|
||||
在单一尺度校准的数值,必须推演其在更大尺度的复合结果(每战合理 × 关内囤积 = 关卡灾难;反例见 code-conventions-cases.md §5.3)。
|
||||
|
||||
### 5.4 用户拍板的实现零发挥
|
||||
拍板范围外的细节一律不自行补全——以"待办问题"清单列出等裁决。
|
||||
(反面案例:清图奖励被自行设计成入库刀,用户纠正为"一次性高额伤害不入库"。)
|
||||
|
||||
---
|
||||
|
||||
## 6. 流程纪律
|
||||
|
||||
1. **大改动三段走**:设计稿/伪代码 → 用户审阅 → 实现 → 修改记录(README + session-state)。实现不得先于审阅。
|
||||
2. **实现批收尾双登记**:切片 README 修改记录 + `production/session-state/active.md` 条目,缺一不可。
|
||||
3. **规范变更必须成文进本文件**——发现未成文约定、或用户裁决产生新规则,当场补条文。
|
||||
4. **呈现层缺陷的教训回写 D1 GDD 设计输入**(信号载荷 schema / 场景级测试 / 时点状态可见性)。
|
||||
|
||||
---
|
||||
|
||||
## 附:缺陷-规范对照表(本项目真实案例,2026-09-11)
|
||||
|
||||
| 缺陷 | 现象 | 根因 | 对应规则 |
|
||||
|---|---|---|---|
|
||||
| ① UI 抖动/"第3轮"消失 | 悬停文案换行推挤侧栏,末行被挤出视口 | 动态内容参与布局回流 | 1.1 拆分 + 视图定长槽(HUDView) |
|
||||
| ② Boss 战 AP 用完不结算(软锁) | 插旗耗尽末点 AP 后整局冻结 | 旗动作路径缺轮末事件 | 2.1 事件发射完整性 |
|
||||
| ④ 道具使用后不消失 | 选用件留存、邻件被误耗 | 窗口位置 vs 库存句柄错位 | 2.2 标识符语义单一 |
|
||||
| ⑤ 调整板点击无反应 | 面板已实现但被开始层遮挡 | 模态打开未隐藏遮挡物 | 2.3 层级规则 + 3.2 |
|
||||
| 上帝对象 | main.gd ~1100 行 | 职责无边界持续堆积 | 1.1–1.3 |
|
||||
| ID 前缀命名 | a1_/b1_ 与领域命名并存 | 事实约定未成文 | 1.4–1.5 |
|
||||
| 可选类每关 24.8 件 | 速杀退化、囤刀秒 Boss | 单尺度校准未做跨尺度推演 | 5.3 |
|
||||
1. **大改动三段走**:设计稿/伪代码 → 用户审阅 → 实现;实现禁止先于审阅。修改记录落切片 README。
|
||||
2. **实现批收尾双登记**:切片 README 修改记录 + 根目录 `active.md` 条目(会话状态唯一状态源),缺一不可。
|
||||
3. **呈现层缺陷的教训回写 D1 GDD 设计输入**(信号载荷 schema / 场景级测试 / 时点状态可见性)。
|
||||
@@ -0,0 +1,54 @@
|
||||
# 概念与引用规范(Dungeon Sweeper)
|
||||
|
||||
> 约束范围:设计文档的概念建模与跨文档引用。写作层(句子、结构、骨架)归 `design/dev/doc-conventions.md`;本文管概念怎么切、文档怎么互链。
|
||||
> 概念对象登记 `design/registry/entities.yaml`(owner 与 referenced_by 由此机械维护);文档里概念怎么切,registry 就怎么登记,代码里的对象划分与之同构。
|
||||
|
||||
**写设计文档前必须通读本文。**
|
||||
|
||||
---
|
||||
|
||||
## 1. 概念封装纪律(概念对象化建模)
|
||||
|
||||
动笔之前先做概念建模:像写代码划分对象那样,把设计切成分界清晰的概念——每个概念有自己的规范名、自己的属性、自己的规则,概念之间靠显式关系(包含、挂载、引用)连接,而不是把所有内容揉进一个概念里。概念没有边界,删除修改就得全仓翻找。
|
||||
|
||||
| 规则 | 内容 |
|
||||
|---|---|
|
||||
| 概念即对象 | 核心概念各自独立成体,有规范名、有属性、有规则边界;下笔前先能用一句"它是谁、它管什么"说清,说不清就是还没想完 |
|
||||
| 属性归属唯一 | 每个属性只归一个概念——离开 A 就没有意义的属性写在 A 名下,禁止上提给容器、也不下压给成员 |
|
||||
| 包含关系显式写 | 容器与成员的关系明文写出谁是容器、谁是成员、一对几(例:棋盘包含多个格);禁止让读者从散文里反推结构 |
|
||||
| 概念状态用枚举 | 概念的类型与状态写成封闭枚举并列全成员(例:格的类型 = 安全格 / 危险格,格的状态 = 未开 / 已开);禁止用散文形容词零散罗列状态 |
|
||||
| 附加物独立成对象 | 挂在概念上的附加内容若自己有一组属性或规则要写(例:格上的奖励/惩罚 = 格面资源),就是独立对象——父概念只保留挂载位(如"有无资源资格"),禁止把附加物摊平成父概念的一堆属性字段 |
|
||||
| 关系不吸内容 | 概念间关系只写"有没有关系、是什么关系";对方的属性与规则留在对方名下——与第 2 节"引用不转述"同源 |
|
||||
| 落位五要素 | 概念的权威文档必须写全五要素:**定义**(它是什么)/ **作用对象与范围**(作用在谁、什么范围内有效)/ **生命周期**(何时出现、何时变化、何时消失、怎么重置)/ **关联**(与谁衔接、边界归谁、哪些指路别处)/ **状态**(已定稿/待实施/已退役)。缺任何一项都是半成品概念,如同对象缺了构造函数 |
|
||||
|
||||
**切分正例**(现行排雷循环即按此切分):棋盘是地图级对象,包含多个格;格是成员对象,危险格/安全格是它的枚举属性;格上可能挂的奖励或惩罚(格面资源)是独立对象,本体与规则归地图战斗资源与战斗结算,格只保留"有无资源资格"一个挂载位。反面基准:把奖励的类型、数值、极性全摊开写成格子的属性字段——奖励规则一改,棋盘文档就得跟着改,这便是没封装。
|
||||
|
||||
**无权威文档,不下定义**:一个概念还没有权威文档时,任何其他文档都禁止替它下定义——只能引用概念名,并在 `design/gdd/06-待办清单.md` 登记「待落位」;谁先立权威文档,谁拿走全部定义权。(反例:某概念长期无权威文档,art-bible 复述、06 登记、需求卡片摘要三处各自给出口径,范围限定词在层层复述中丢失,最终放大成「全板常显」的错误事实。)
|
||||
|
||||
**与引用纪律的关系**:第 1 节管单个概念的边界与归属(概念级封装),第 2 节管概念之间、文档之间的引用(跨文档解耦)——先有封装,第 2 节的单点定义、反向边与删除 SOP 才有干净的作用对象。
|
||||
|
||||
## 2. 引用纪律(跨文档高内聚低耦合)
|
||||
|
||||
目标:修改或删除一个概念时,只改它的 owner 文档;引用方最多删掉一个链接。反例模式:同一概念多名并存、机制被织进多份文档的规则正文——删除时全仓几十处文字修改与大量事后一致性复查。
|
||||
|
||||
| 规则 | 内容 |
|
||||
|---|---|
|
||||
| 单点定义 | 每个概念只在 owner 文档里定义一次,registry 术语条目登记其规范名 |
|
||||
| 规范名唯一 | 正文只准用规范名,禁止别名散开——否则删除时 grep 搜不全 |
|
||||
| 引用不转述 | 跨文档引用 = 规范名 + 链接,禁止复述对方的规则细节、公式、数值与口径;确需携带口径时,作用对象/范围/生命周期必须随句写全或显式指路——禁止只复述形容词,「常显」「恒亮」这类词不带范围就是半句话;若发现自己需要一条规则,那是自己的概念,先立权威文档再定义 |
|
||||
| 引用落到对外承诺 | 跨文档链接只锚到对方文档明示的对外内容(事件、接口、规则条目),不锚其内部细节 |
|
||||
| 依赖逐条列出 | 系统文档的「依赖与输出」节逐条列出本系统依赖的他人概念(规范名 + 链接)——这份清单就是删除概念时的影响面清单 |
|
||||
| 引用必登记反向边 | 引用他系统概念时,在被引方的 registry 条目 `referenced_by` 里登记——影响面靠它机械列出,不靠全仓搜 |
|
||||
| 链接断了也好读 | 引用处的句子在链接失效后仍通顺完整(写"变异规则见《地形变异》",不把半截语义挂在链接里) |
|
||||
| 待办单点登记 | 全项目待办事项单点登记于 `design/gdd/06-待办清单.md`:系统文档的「待办」节只留指路存根,禁止自建条目表;新增待办条目直接登记清单,裁决后改「状态」列留痕、不删条目 |
|
||||
|
||||
**引用格式**:一律 Markdown 相对链接,指向文件、必要时带节锚点(例:`[地形变异 · 变异类型](systems/排雷循环/地形变异.md#变异类型)`)——机械可查,死链可被工具检出。
|
||||
|
||||
**删除概念 SOP**:① 查 registry 该条目的 `referenced_by`,得到影响面清单 → ② owner 文档删除概念 → ③ 纯引用方删链接即完事;机制被织入对方规则的,按清单逐处修订 → ④ 收尾跑一遍死链检查,全绿即干净。
|
||||
|
||||
**诚实边界**:机制耦合无法靠删链接消灭——别人的规则真的因你的概念而改变时,改内容不可避免。引用纪律保证的是:这类修改有一份现成清单(反向边 + 依赖节),不用事后全仓搜索。
|
||||
|
||||
## 3. 归档与事实源
|
||||
|
||||
- 旧文档里的概念写进现行文档时,必须翻译成现行术语与现行决策口径(例:已退役机制禁止作为现行机制引用)。
|
||||
- registry 中 owner 仍指向旧 GDD 路径的条目,在对应新系统文档定稿后逐条改指新路径。
|
||||
+60
-139
@@ -1,83 +1,79 @@
|
||||
# 文档写作规范(写文档前必读)
|
||||
|
||||
> **地位**:本文是本项目文档写作的规范权威,与 `design/dev/code-conventions.md`(代码规范)对等——写代码前必读代码规范,写文档前必读本文。CLAUDE.md 只保留导航指针,细则以本文为准。
|
||||
> **适用范围**:`design/` 下一切现行文档(顶层文档、`systems/` 系统文档、`design/ux/`、`design/art/`、`design/research/`)、根目录 `active.md` 会话记录与 `roadmap.md`。
|
||||
> **成文**:2026-09-14。整合来源:用语纪律(2026-09-09 评审确立)· 文档形态纪律(2026-09-13 评审确立)· 两件套与树形文档体系纪律(2026-09-14 用户拍板)· 新骨架过渡口径(2026-09-14 用户拍板)· 可读性纪律(2026-09-14 用户提出)· 引用纪律(2026-09-14 用户提出)· 概念封装纪律(2026-09-15 用户提出)。
|
||||
> **地位**:本文是文档写作的规范权威,与 `design/dev/code-conventions.md`(代码规范)对等;CLAUDE.md 只留导航指针,细则以本文为准。
|
||||
> **适用范围**:`design/` 下一切现行文档、根目录 `active.md` 与 `roadmap.md`;概念建模与跨文档引用见 `design/dev/concept-conventions.md`。
|
||||
|
||||
## 0. 总纲
|
||||
|
||||
文档是写给人看的:先让人读懂,再谈结构整齐。默认读者没有读过项目历史——可能是半年后的你自己,也可能是未来的协作者。下面所有规则都为这个读者服务。
|
||||
默认读者没读过项目历史——可能是半年后的你自己。先让人读懂,再谈结构整齐。
|
||||
|
||||
## 1. 可读性第一(最高纪律)
|
||||
|
||||
**读者测试是每个小节的验收标准**:只读这一节,回答三个问题——
|
||||
**读者测试是每个小节的验收标准**:只读这一节,回答三个问题——这节管的是谁/什么?在什么情况下?会发生什么?答不出来,就重写这一节,而不是给看不懂的地方补注释。
|
||||
|
||||
1. 这节管的是谁/什么?
|
||||
2. 在什么情况下?
|
||||
3. 会发生什么?
|
||||
|
||||
答不出来,就重写这一节,而不是给看不懂的地方补注释。
|
||||
|
||||
**与旧体系门禁的关系**:旧体系的 lean 格式六条硬规则与 `tools/gdd_lint.py` 门禁已随 2026-09-14 归档停用(PostToolUse 钩子同批停用,工具本体留 `tools/` 备查),此后仅用于解读 `design/archive/` 里的旧文档(解读时注意其表格占比口径为 30%,2026-09-14 由 60% 放宽)。现行文档不跑 lint;可读性是唯一的内容质量门。旧模板文件留档 `.claude/docs/templates/` 备查。
|
||||
旧体系 lean 格式六条硬规则已停用,仅用于解读 `design/archive/` 旧文档(其表格占比口径为 30%)。`tools/gdd_lint.py` 现为现行文档机检三闸之一(gdd_lint / doc_link_audit / doc_term_audit,分级周期口径见 CLAUDE.md);可读性仍是第一内容质量门,lint 是格式机检面,两者并行。旧模板留档 `.claude/docs/templates/`。
|
||||
|
||||
## 2. 白话写作规则
|
||||
|
||||
写文档像向朋友当面解释你的游戏。具体做法:
|
||||
写文档像向朋友当面解释你的游戏:
|
||||
|
||||
1. **完整句子优先**:用完整的句子把话说完;一段只说一件事,长句拆短句。
|
||||
2. **禁止碎片笔记体**:正文不得写压缩碎片,不得把 `A→B→C` 箭头链当叙述(流程交给字符画,见第 3 节),不得使用只有作者自己懂的缩略语。
|
||||
3. **每节人话开头**:每个小节的第一段先用白话说清"这是什么、为什么需要它",然后再展开细节。做到只读各节第一段,就能看懂整篇文档的故事线。
|
||||
4. **术语首现即解释**:专业术语或项目概念第一次出现时,用一句话(可以用括号)解释它是什么,之后才允许直接使用。玩家会看到的专属名词(如"显影尘")同样要说清。
|
||||
5. **叙述优先于引用**:AC-x、F-x 等编号引用不进正文叙述,只出现在验收标准与附录;正文用直白语言把规则本身说出来。
|
||||
6. **反面基准**:数据库条目、会议纪要、只有评审工具能"读懂"的表格堆——都不是我们要的文档。
|
||||
1. **完整句子优先**:一段只说一件事,长句拆短句。
|
||||
2. **禁止碎片笔记体**:不写压缩碎片,不把 `A→B→C` 箭头链当叙述(流程交给字符画,见第 3 节),不用只有作者自己懂的缩略语。
|
||||
3. **每节人话开头**:每小节第一段先用白话说清"这是什么、为什么需要它";只读各节第一段就能看懂全文故事线。
|
||||
4. **术语首现即解释**:专业术语或项目概念首次出现用一句话解释;玩家可见专属名词(如"显影尘")同样要说清。
|
||||
5. **叙述优先于引用**:AC-x、F-x 等编号引用不进正文叙述,只出现在验收标准与附录。
|
||||
6. **反面基准**:数据库条目、会议纪要、只有评审工具能"读懂"的表格堆。
|
||||
|
||||
## 3. 表达分工:散文、表格、字符画、公式
|
||||
|
||||
不同内容用不同载体,各司其职:
|
||||
|
||||
| 内容 | 载体 | 纪律 |
|
||||
|---|---|---|
|
||||
| 规则的来龙去脉、行为逻辑 | 散文段 | 每段 ≤240 字,一段一件事 |
|
||||
| 枚举、数值、边界、依赖 | 表格 | 表格只放可列举的事实;禁止把需要解释的内容塞进单元格让读者自己拼 |
|
||||
| 流程、状态流转 | 字符画(代码块) | 禁止用散文逐步描述流程 |
|
||||
| 公式 | 结论先行 | 先一行加粗结论,再放公式代码块、变量表与验算表;公式本体必须保留 |
|
||||
| 体验锚点 | 关键词表 | 支柱/关键词/机制承诺 三列表,禁止长篇情绪描述 |
|
||||
| 枚举、数值、边界、依赖 | 表格 | 表格只放可列举的事实;禁把需要解释的内容塞进单元格让读者自己拼 |
|
||||
| 流程、状态流转 | 字符画(代码块) | 禁用散文逐步描述流程 |
|
||||
| 公式 | 结论先行 | 先一行加粗结论,再放公式代码块、变量表与验算表 |
|
||||
| 体验锚点 | 关键词表 | 支柱/关键词/机制承诺 三列表,禁长篇情绪描述 |
|
||||
|
||||
节点内顺序:先人话,再表格枚举,再字符流程图,最后公式举证。
|
||||
节点内顺序:先人话,再表格枚举,再字符流程图,最后公式举证。**规则两段式**:先写"人话阶段"(作用于哪个系统、什么情况下、谁触发、触发后发生什么),再写"举证阶段"(逐效果给出计算方法;纯流程规则明写"无计算")。规则名禁止纯名词短语(反面例:"获取路由")。
|
||||
|
||||
**规则两段式**:核心规则先写"人话阶段"(作用于哪个系统、什么情况下、谁触发、触发后发生什么),再写"举证阶段"(逐效果给出计算方法或公式;纯流程规则明写"无计算")。规则名禁止纯名词短语(反面例:"获取路由")。
|
||||
## 4. 用语纪律(见名知意 · 所见即所得 · 禁自造黑话)
|
||||
|
||||
## 4. 用语纪律(禁自造黑话)
|
||||
**正面总则**:见名知意——每个名字(概念名、术语、文档与目录名)本身就说清所指,起不出这样的名字多半是概念还没想清;所见即所得——字面意思就是规则的完整意思,有隐含前提就写进句子。两句管语义透明,不与第 8 节指路存根冲突。
|
||||
|
||||
文档、评审输出、日志与一切沟通中**禁止自造黑话**——比喻性生造词、只有作者自己懂的缩略语(历史反例:"非雾腿""双闸")。
|
||||
文档、评审输出、日志与一切沟通中**禁止自造黑话**——比喻性生造词、只有作者自己懂的缩略语:
|
||||
|
||||
- 只能使用:(a)人人可懂的直白语言,或(b)游戏行业通用术语(如 flood fill、战争迷雾、连锁展开、结算、增益/减伤)。
|
||||
- 需要指代新概念时,用直白的描述性短语(正例:"实测可推理率"——限定语与规范名绑定)。
|
||||
- 确需给新概念命名时:首次出现处必须附一句白话定义,并登记 `design/registry` 术语条目——不得让读者猜测比喻含义。
|
||||
- 唯一例外:玩家在游戏里也会看到的专属名词(道具名、界面用语,如"显影尘""探巢摆钟")。文档内部的机制概念不得造词。
|
||||
- 指代新概念用直白描述性短语(正例:"实测可推理率");确需命名时:首现处附一句白话定义,并登记 `design/registry` 术语条目。
|
||||
- 唯一例外:玩家在游戏里也会看到的专属名词(道具名、界面用语)。文档内部的机制概念不得造词。
|
||||
|
||||
**自造词的三种固定形态(2026-10-04 黑话审计后补成,全部禁止)**:审计发现本仓自造词几乎都长成下面三种样子,写的时候照着规避,读的时候见到即展开改写:
|
||||
**自造词的三种固定形态(全部禁止)**:
|
||||
|
||||
| 形态 | 反例(本仓真实案例) | 正确写法 |
|
||||
| 形态 | 反例 | 正确写法 |
|
||||
|---|---|---|
|
||||
| 给工作包起代号 | "样张批""八型批""资产升档重产批" | 叙述名 = 日期 + 做什么,如"2026-10-01 按新分辨率规格重做素材" |
|
||||
| 给机制、检查、基线、区域造名词 | "熵增闸""形象锚""判读口径""暗淡记忆态""变异纹带" | 用行业通用词;确实要长期复用的概念走上面的登记通道(正常名字 + 首现白话定义 + registry 登记) |
|
||||
| 给流程步骤造动词 | "收口""落籍""在飞""随批""对拍""销账""正主""台账" | 用日常动词:完成 / 合并进 master / 执行中 / 顺带 / 与基线数据逐项比对 / 注销 / 定义所属的那份文档 / 工作日志 |
|
||||
| 给工作包起代号 | "样张批""八型批" | 叙述名 = 日期 + 做什么 |
|
||||
| 给机制、检查、基线、区域造名词 | "形象锚""判读口径""变异纹带" | 用行业通用词;长期复用的概念走登记通道(正常名字+白话定义+registry 登记) |
|
||||
| 给流程步骤造动词 | "收口""落籍""在飞""随批""对拍""销账""正主""台账" | 用日常动词:完成 / 合并进 master / 执行中 / 顺带 / 与基线数据逐项比对 / 注销 / 定义所属的那份文档 / 状态记录 |
|
||||
|
||||
**通行检验标准**:读者是业内人士,但没读过本项目的历史。一个词如果需要作者另外解释才能懂,这个词就不合格,包含它的句子必须重写成完整的白话句——换一个新名词不算改,展开才算改。
|
||||
|
||||
**写后自查**:每写完一条工作日志、一篇文档,重读一遍——凡是自己都要停顿一下才能想起意思的词,一律展开成完整句子。
|
||||
**通行检验标准**:读者是业内人但没读过项目历史——需要作者解释才懂的词不合格,必须展开成完整白话句(换新名词不算改,展开才算改)。**写后自查**:凡自己都要停顿才能想起意思的词,一律展开。
|
||||
|
||||
## 5. 结构纪律
|
||||
|
||||
| 规则 | 内容 |
|
||||
|---|---|
|
||||
| 树形文档体系 | 全部设计文档构成一棵树;文档增删必须同步根索引 `design/gdd/02-系统清单.md` |
|
||||
| 一页纸节点 | 一节、一条规则的内容控制在一页纸内(约 ≤80 行);装不下就拆节,禁止铺开 |
|
||||
| 一系统一文档 | 每个子系统一份设计文档,不建 analysis 推演件;两三句能说清的"为什么"直接写进设计目的或规则正文 |
|
||||
| 正文只写现行规则 | 禁止删除线、"(作废)"、"(日期+拍板)"式注记;修订只进文末「版本历史」表;义务台账、拍板记录等审计信息入 `design/registry` 或附录,不入正文 |
|
||||
| 后置 ≠ 删除 | P1/P2 后置的内容逐条列出;复活后置项 = 修订文档,禁止静默加回 |
|
||||
| 数值纪律 | 正文定规则、取值域、单位;平衡值进 `data/tables/`,provisional 必须标注;已锁数值事实源 = `data/tables/` 与 `design/registry/entities.yaml`。**强制收口条款(2026-09-17 数值压缩批后补成)**:① **双写失同步禁止**——任何数值变更(压缩 / 换装 / 投值 / 区间平移 / 增减行)必须同时同步所有引用该数值的 GDD 表格正文、registry `entities.yaml` 的 `mvp_content` / `value_status`、相关待办清单现状——三类之一未更新即视为该变更**未完成**(先例:2026-09-17 整体数值压缩批只动了 `.tres` 与切片代码,未同步 `地图战斗资源.md` / `增益状态.md` 正文表格、`entities.yaml` mvp_content、`06-待办清单.md` 的 `heal 负向直伤` 条目,造成文档滞后);② **调参表锁数后删现行值列**——数值已锁定的调参表必须删除「现行值」列(敌人系统 v0.6 先例),仅保留 schema 模板与取值域,指路存根指向 `data/tables/<file>.tres` 与 `registry/entities.yaml` 对应条目;③ **覆盖范围** = 奖励 / 状态 / 敌人 / 技能 / 充能 / 护甲等级 / 区间掷点 / 难度曲线 / D_ref 等所有数值字段;④ **维护通道** = 走「设计批 → 同步批」两段式——数值表改完不等于修订完成,须同步收口后方可记入版本历史;⑤ **压缩/换装批** = 一律走「`.tres` 落批 + 切片 smoke 跑通 + GDD 表格指路化 + registry mvp_content 指路化 + 待办清单现状刷新」五步全收才记版本号,缺步则版本号不增 |
|
||||
| 架构事实唯一源 | `design/dev/architecture/architecture.md` 是架构事实的唯一权威(分层/模块归属/数据流/API 边界/测试与质量域);禁建第二份架构文档;历史决策记录只进 git commit log |
|
||||
| 一页纸节点 | 一节、一条规则 ≤一页纸(约 ≤80 行);装不下就拆节 |
|
||||
| 一系统一文档 | 不建 analysis 推演件;两三句能说清的"为什么"直接写进设计目的或规则正文 |
|
||||
| 正文只写现行规则 | 禁删除线、"(作废)"、"(日期+拍板)"式注记;审计信息入 `design/registry` 或附录 |
|
||||
| 后置 ≠ 删除 | P1/P2 后置内容逐条列出;复活后置项 = 修订文档,禁静默加回 |
|
||||
|
||||
**数值纪律**:正文定规则、取值域、单位;平衡值进 `data/tables/`,provisional 必须标注;已锁数值事实源 = `data/tables/` 与 `design/registry/entities.yaml`。强制收口条款:
|
||||
|
||||
1. **双写失同步禁止**——任何数值变更必须同时同步引用该数值的 GDD 表格正文、registry `mvp_content`/`value_status`、相关待办清单现状——三类之一未更新即视为变更未完成。
|
||||
2. **调参表锁数后删现行值列**——仅留 schema 模板与取值域,指路存根指向 `.tres` 与 `entities.yaml` 对应条目。
|
||||
3. **覆盖范围** = 奖励/状态/敌人/技能/充能/护甲等级/区间掷点/难度曲线/D_ref 等所有数值字段。
|
||||
4. **维护通道** = 「设计批 → 同步批」两段式;数值表改完不等于修订完成。
|
||||
5. **压缩/换装批** = 「`.tres` 落批 + 切片 smoke 跑通 + GDD 表格指路化 + registry 指路化 + 待办清单刷新」五步全收才记版本号。
|
||||
|
||||
## 6. 文档类型与骨架
|
||||
|
||||
@@ -91,110 +87,35 @@
|
||||
| `03-内容规模.md` | 几个关卡、几种敌人、几种道具——做多少砍多少 |
|
||||
| `04-美术音频方向.md` | 参考图、参考游戏、风格关键词 |
|
||||
| `05-不做清单.md` | 明确写:这些我不要 |
|
||||
| `06-待办清单.md` | 全项目待办事项的唯一登记处;各系统文档的「待办」节只留指路存根 |
|
||||
| `06-待办清单.md` | 全项目待办唯一登记处;各系统文档「待办」节只留指路存根 |
|
||||
|
||||
**系统文档骨架**(`systems/` 下统一采用):
|
||||
**系统文档骨架**(`systems/` 下统一采用):文首引言(一句话定位+状态+旧版链接)/设计目的(2-4 句白话)/系统范围(负责/不负责两表)/在核心循环中的位置(字符画一行+两句白话)/核心规则(领域章节 ×2–6,每节一页纸)/依赖与输出(表格;引用纪律见 concept-conventions)/P0 最小闭环与 P1·P2 后置/调参表(取值域+provisional 标注)/验收标准(可验证判据)/待办(指路存根)/版本历史(表格)。
|
||||
|
||||
| 章节 | 要求 |
|
||||
|---|---|
|
||||
| 文首引言 | 一句话定位 + 状态(已定稿/范围草案/待设计)+ 旧版参考链接 |
|
||||
| 设计目的 | 2-4 句白话,为什么需要这个系统 |
|
||||
| 系统范围 | 负责/不负责两张表;表前一段白话说明边界 |
|
||||
| 在核心循环中的位置 | 处于哪一段、上下游是谁(字符画一行 + 两句白话) |
|
||||
| 核心规则 | 领域章节 ×2–6,每节一页纸 |
|
||||
| 依赖与输出 | 上游/下游/对外事件与接口(表格;引用纪律见第 8 节) |
|
||||
| P0 最小闭环 / P1·P2 后置 | MVP 最小集合与后置清单 |
|
||||
| 调参表 | 参数名/取值域/现行值,provisional 标注 |
|
||||
| 验收标准 | 可验证的判据 |
|
||||
| 待办(可选) | 指路存根:条目单点登记 `06-待办清单.md`(见第 8 节「待办单点登记」),本节不再逐条登记 |
|
||||
| 版本历史 | 表格 |
|
||||
**命名**:中文、见名知意;禁 a1_/b1_ 编号前缀;不留纯空目录。正文指代子系统一律用中文规范名;英文代号对照表见 `02-系统清单.md`,旧代号(a1–d6)仅限解读归档。
|
||||
|
||||
**命名**:中文、见名知意(如"游戏概念""棋盘生成");禁止 a1_/b1_ 编号前缀;不留纯空目录。正文中指代子系统一律用中文规范名;英文代号(供代码标识符与工具链)对照表见 `design/gdd/02-系统清单.md`,旧代号(a1–d6)仅限解读归档时使用,不得写进现行文档。
|
||||
|
||||
## 7. 概念封装纪律(概念对象化建模)
|
||||
|
||||
动笔之前先做概念建模:像写代码划分对象那样,把设计切成分界清晰的概念——每个概念有自己的规范名、自己的属性、自己的规则,概念之间靠显式关系(包含、挂载、引用)连接,而不是把所有内容揉进一个概念里。揉团的代价雾格事故已经付过一次(见第 8 节反例对照):概念没有边界,删除修改就得全仓翻找。
|
||||
|
||||
| 规则 | 内容 |
|
||||
|---|---|
|
||||
| 概念即对象 | 核心概念各自独立成体,有规范名、有属性、有规则边界;下笔前先能用一句"它是谁、它管什么"说清,说不清就是还没想完 |
|
||||
| 属性归属唯一 | 每个属性只归一个概念——离开 A 就没有意义的属性写在 A 名下,禁止上提给容器、也不下压给成员 |
|
||||
| 包含关系显式写 | 容器与成员的关系明文写出谁是容器、谁是成员、一对几(例:棋盘包含多个格);禁止让读者从散文里反推结构 |
|
||||
| 概念状态用枚举 | 概念的类型与状态写成封闭枚举并列全成员(例:格的类型 = 安全格 / 雷格,格的状态 = 未开 / 已开);禁止用散文形容词零散罗列状态 |
|
||||
| 附加物独立成对象 | 挂在概念上的附加内容若自己有一组属性或规则要写(例:格上的奖励/惩罚 = 格面资源),就是独立对象——父概念只保留挂载位(如"有无资源资格"),禁止把附加物摊平成父概念的一堆属性字段 |
|
||||
| 关系不吸内容 | 概念间关系只写"有没有关系、是什么关系";对方的属性与规则留在对方名下——与第 8 节"引用不转述"同源 |
|
||||
| 落位五要素 | 概念的正主文档必须写全五要素:**定义**(它是什么)/ **作用对象与范围**(作用在谁、什么范围内有效)/ **生命周期**(何时出现、何时变化、何时消失、怎么重置)/ **关联**(与谁衔接、边界归谁、哪些指路别处)/ **状态**(已定稿/待实施/已退役)。缺任何一项都是半成品概念,如同对象缺了构造函数(2026-09-30 微光口径事故后补成) |
|
||||
|
||||
**切分正例**(现行排雷循环即按此切分):棋盘是地图级对象,包含多个格;格是成员对象,雷格/安全格是它的枚举属性;格上可能挂的奖励或惩罚(格面资源)是独立对象,本体与规则归地图战斗资源与战斗结算,格只保留"有无资源资格"一个挂载位。反面基准:把奖励的类型、数值、极性全摊开写成格子的属性字段——奖励规则一改,棋盘文档就得跟着改,这便是没封装。
|
||||
|
||||
**无正主,不下定义**:一个概念还没有正主文档时,任何其他文档都不得替它下定义——只能引用概念名,并在 06-待办清单登记「待落位」;谁先立正主,谁拿走全部定义权。(2026-09-30 微光事故:类型微光长期无正主文档,art-bible 复述、06 登记、任务书摘要三处各自给出口径,范围限定词在层层复述中丢失,最终放大成「全板常显」的错误事实。)
|
||||
|
||||
**落盘载体**:概念对象登记 `design/registry/entities.yaml`(owner 与 referenced_by 由此机械维护);文档里概念怎么切,registry 就怎么登记,代码里的对象划分与之同构。
|
||||
|
||||
**与引用纪律的关系**:本节管单个概念的边界与归属(概念级封装),第 8 节管概念之间、文档之间的引用(跨文档解耦)——先有封装,第 8 节的单点定义、反向边与删除 SOP 才有干净的作用对象。
|
||||
|
||||
## 8. 引用纪律(跨文档高内聚低耦合)
|
||||
|
||||
目标:修改或删除一个概念时,只改它的 owner 文档;引用方最多删掉一个链接。反例对照 = 2026-09-14 雾格删除事故——雾格/迷雾/fog 三名并存、雾机制被织进多份文档的规则正文,导致全仓几十处文字修改与大量事后一致性复查。
|
||||
|
||||
| 规则 | 内容 |
|
||||
|---|---|
|
||||
| 单点定义 | 每个概念只在 owner 文档里定义一次,registry 术语条目登记其规范名 |
|
||||
| 规范名唯一 | 正文只准用规范名,禁止别名散开——否则删除时 grep 搜不全 |
|
||||
| 引用不转述 | 跨文档引用 = 规范名 + 链接,禁止复述对方的规则细节、公式、数值与口径;确需携带口径时,作用对象/范围/生命周期必须随句写全或显式指路——禁止只复述形容词,「常显」「恒亮」这类词不带范围就是半句话(2026-09-30 微光口径事故的直接形态);若发现自己需要一条规则,那是自己的概念,先立正主再定义 |
|
||||
| 引用落到对外承诺 | 跨文档链接只锚到对方文档明示的对外内容(事件、接口、规则条目),不锚其内部细节 |
|
||||
| 依赖逐条列出 | 系统文档的「依赖与输出」节逐条列出本系统依赖的他人概念(规范名 + 链接)——这份清单就是删除概念时的影响面清单 |
|
||||
| 引用必登记反向边 | 引用他系统概念时,在被引方的 registry 条目 `referenced_by` 里登记——影响面靠它机械列出,不靠全仓搜 |
|
||||
| 链接断了也好读 | 引用处的句子在链接失效后仍通顺完整(写"变异规则见《地形变异》",不把半截语义挂在链接里) |
|
||||
| 待办单点登记 | 全项目待办事项单点登记于 `design/gdd/06-待办清单.md`:系统文档的「待办」节只留指路存根,不得自建条目表;新增待办条目直接登记清单,裁决后改「状态」列留痕、不删条目 |
|
||||
|
||||
**引用格式**:一律 Markdown 相对链接,指向文件、必要时带节锚点(例:`[地形变异 · 变异类型](systems/排雷循环/地形变异.md#变异类型)`)——机械可查,死链可被工具检出。
|
||||
|
||||
**删除概念 SOP**:① 查 registry 该条目的 `referenced_by`,得到影响面清单 → ② owner 文档删除概念 → ③ 纯引用方删链接即完事;机制被织入对方规则的,按清单逐处修订 → ④ 收尾跑一遍死链检查,全绿即干净。
|
||||
|
||||
**诚实边界**:机制耦合无法靠删链接消灭——别人的规则真的因你的概念而改变时,改内容不可避免。引用纪律保证的是:这类修改有一份现成清单(反向边 + 依赖节),不用事后全仓搜索。
|
||||
|
||||
## 9. 归档与事实源
|
||||
|
||||
- `design/archive/gdd-2026-09-14/` 是旧版 GDD 体系的只读归档:不维护、不修改,**禁止作为事实引用**。
|
||||
- 旧文档里的概念写进现行文档时,必须翻译成现行术语与现行决策口径(例:雾格已从设计中移除,不得作为现行机制引用)。
|
||||
- registry 中 owner 仍指向旧 GDD 路径的条目,在对应新系统文档定稿后逐条改指新路径。
|
||||
## 7–9. 概念封装 / 引用纪律 / 归档与事实源——已独立成文 `design/dev/concept-conventions.md`
|
||||
|
||||
## 10. 会话记录纪律
|
||||
|
||||
根目录 `active.md`(会话快照+批次台账)每条进度用完整的白话句子写清结论本身;条目写多长以读者能看懂为准,不设行数上限(2026-10-04 用户立规:能看懂比字数少更重要,原「每条 ≤3 行」约束废除——该约束曾迫使台账压缩成只有作者自己懂的自造缩略语,是文档黑话的繁殖地)。仍然禁止的只有两件:把定稿摘要、义务清单整段搬进条目(详情归各正主文档,台账只记结论);以及自造黑话——第 4 节用语纪律对台账同等生效。台账条目记裁决结论本身,不记中间文档文件指针(见第 11 节)。
|
||||
**active.md 定性:状态文件——状态记录,不是工作日志。** 根目录 `active.md` 是会话状态的唯一状态源,**每一行当下为真**;历史归 git 提交史。只许写三类:①当前状态快照(≤10 条滚动窗口);②未决面(进行中批次/待人闸/待裁点指针);③当前迭代滚动工作条目。禁止写入:已完结批次的历史叙述、待办裁决事项(归 06)、跨会话教训(归记忆库);并行会话禁止整体复原/回退本文件。退役规则:**用户确认任务完成时清除当前会话写过的状态条目——状态清除即任务完成的证明**;条目完结判据=批次已入库+结论已进快照+未决面无条目指向;迭代收口兜底删除已完结条目,超过 30 条必须清。**机械闸**=`tools/audit_active_state.py`,判四条可机械测的膨胀签名(条目数上限、快照行数上限、条目编号重复、指向中间文档的死指针),随 `tools/run_all_gates.sh` 全量档跑并由合回闸强制——收口漏删旧条目,合回时会被拦下。
|
||||
|
||||
## 11. 文档生命周期:吸收即死(2026-10-01 用户立规)
|
||||
条目用完整白话句子写清结论本身,长度服从可读性(能看懂比字数少重要);禁把定稿摘要、义务清单整段搬进条目(详情归权威文档);第 4 节用语纪律对状态记录同等生效;条目记裁决结论本身,不记中间文档文件指针(见第 11 节)。
|
||||
|
||||
文档分两类。**活文档**是唯一事实源,长期维护:GDD 树、art-bible 等定稿规范、registry、本规范、`design/gdd/06-待办清单.md`、`roadmap.md`。**中间文档**是脚手架,寿命=迭代寿命,不是项目寿命:批任务书、机检/验收过程报告、调研/审计报告、模拟读数、迭代计划书、目检清单。
|
||||
## 11. 文档生命周期:吸收即死
|
||||
|
||||
**为什么**:了解游戏看 GDD,了解变更过程看 git 变更记录(commit message 与规范文档的版本历史节)。若每次变更都另存一份增量中间文档,版本管理就没有意义;带种子的模拟逐位可复现,原始数据 dump 是化石不是证据;没有人会读开发中的中间文档来了解游戏。"已归档留底追溯"不成立。
|
||||
**活文档**=唯一事实源长期维护:GDD 树、art-bible 等定稿规范、registry、架构文档(`design/dev/architecture/architecture.md`)、本规范、06-待办清单、roadmap。**中间文档**=脚手架,寿命=迭代寿命:批需求卡片、机检/验收过程报告、调研/审计报告、模拟读数、迭代计划书、目检清单。为什么:了解游戏看 GDD,了解变更看 git;增量中间文档让版本管理失去意义,原始数据 dump 是化石不是证据。
|
||||
|
||||
| 规则 | 内容 |
|
||||
|---|---|
|
||||
| 吸收即死 | 中间文档的结论写进正主文档(GDD 对应节/art-bible/registry)的那一刻,文件即删 |
|
||||
| 未决先迁再死 | "还没完成/还有未决项"不是留的理由:未决内容先迁正主(`06-待办清单.md`/roadmap 卡/GDD 对应节),然后文档即死 |
|
||||
| 永不入库 | 迭代出口(总结归档)后,本迭代中间产物一律删除,且不允许提交进 git;迭代进行中可暂存工作区(未跟踪或 gitignored),出口批一并清 |
|
||||
| 引用面口径 | 活文档(`design/gdd`+`design/art`+`design/dev`+`design/registry`+`roadmap.md`+`tools/`)对中间文档的指路阻塞删除:先把指路句改写为结论内联或 git 提交号,再删文件;根 `active.md` 台账引用不阻塞(台账=历史变更记录) |
|
||||
| 台账记结论 | 台账条目记裁决结论本身,不记中间文档文件指针;中间文档删除后不留死链指针 |
|
||||
| sim-data 白名单 | `sim-data/` 只保留 README、日志、分析工具 .py、现行 MC 对拍锚(显式清单)、设计文档 md;可再生原始数据(runsum/raw jsonl/逐局 CSV/report txt/样例输出)不入库 |
|
||||
| 出口清理项 | 每迭代出口检查单必含清理项:本迭代中间产物逐份核对(结论已吸收、未决已迁移)后删除 |
|
||||
| 暂存地非档案库 | `design/research/` 与 `design/qa/` 是中间文档的暂存地,不是永久档案库;入此两处的文件默认按本节规则到期即死 |
|
||||
| 吸收即死 | 中间文档结论写进权威文档(GDD 对应节/art-bible/registry)那一刻,文件即删 |
|
||||
| 未决先迁再死 | 未决内容先迁现行事实源(06/roadmap 卡/GDD 对应节),然后文档即死 |
|
||||
| 永不入库 | 迭代出口后中间产物一律删除且不许提交;迭代进行中可暂存工作区,出口批一并清 |
|
||||
| 引用面口径 | 活文档对中间文档的指路阻塞删除:先改写指路句为结论内联或 git 提交号再删;active.md 状态记录引用不阻塞 |
|
||||
| 状态记录记结论 | 条目记裁决结论本身不记中间文档指针;中间文档删除后不留死链指针 |
|
||||
| sim-data 白名单 | 只留 README、日志、分析工具 .py、现行 MC 对拍锚、设计文档 md;可再生原始数据不入库 |
|
||||
| 出口清理项 | 每迭代出口检查单必含:本迭代中间产物逐份核对(结论已吸收、未决已迁移)后删除 |
|
||||
| 暂存地非档案库 | `design/research/` 与 `design/qa/` 是中间文档暂存地,入内文件默认到期即死 |
|
||||
| 迭代实现报告 | 实现批收口的迭代级报告(各卡状态/代拍板追认单/GDD 反哺点清单),属中间文档,**落 `reports/` 不落 `design/`**(2026-10-17 用户裁:实现批禁写 `design/`,`reports/` 是其唯一可写目录):反哺点裁决落文吸收后按「证据只留最新」退役 |
|
||||
| 证据只留最新 | 测试证据只保留最新一次迭代或最新一轮同类审计版本;新证据落位后同批删上一份;待人清单过人闸后同规退役 |
|
||||
|
||||
**删除方式**:按第 8 节删除概念 SOP 的口径执行——先查引用面(grep 文件名于上表阻塞域),改写或删除指路句,再删文件,收尾跑死链检查全绿。
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 说明 |
|
||||
|---|---|---|
|
||||
| v1 | 2026-09-14 | 首版成文:整合用语纪律、文档形态纪律、两件套与树形文档体系、新骨架过渡口径,新增可读性第一纪律与系统文档骨架 |
|
||||
| v2 | 2026-09-14 | 新增第 7 节引用纪律(跨文档高内聚低耦合:单点定义 / 规范名唯一 / 引用不转述 / 反向边登记 / 删除概念 SOP),原 7/8 节顺延为 8/9 |
|
||||
| v3 | 2026-09-15 | 命名纪律补充:现行文档代号清偿完毕,子系统统一以中文规范名指代;英文代号对照表落盘 `design/gdd/02-系统清单.md`,旧代号仅限解读归档 |
|
||||
| v4 | 2026-09-15 | 用语纪律正例去雾:第 4 节正例"剔除雾格后的可推理率"改为现行指标"实测可推理率"(原指标随雾格移除已删);规则文字与历史反例"非雾腿"、第 8 节雾格移除去向说明均不动 |
|
||||
| v5 | 2026-09-15 | 新增第 7 节概念封装纪律(概念对象化建模:概念即对象 / 属性归属唯一 / 包含关系显式写 / 概念状态用枚举 / 附加物独立成对象 / 关系不吸内容),原 7/8/9 节顺延为 8/9/10,第 6 节骨架表与 CLAUDE.md 摘要的章节指针同步改指 |
|
||||
| v6 | 2026-09-16 | 待拍板收编批:第 8 节引用纪律新增「待拍板单点登记」(待拍板事项单点登记 `design/gdd/06-待拍板清单.md`,系统文档只留指路存根,新增条目直接登记清单);第 6 节顶层文档表补入 `06-待拍板清单.md`,骨架表「待拍板」行改为指路存根口径 |
|
||||
| v7 | 2026-09-16 | 06 清单改版(用户拍板):「待拍板」术语全仓改「待办」,清单更名 `design/gdd/06-待办清单.md`;清单内格式由四列表格改为「循环 → 系统 → 条目(四级标题)+ 粗体属性段(现状 / 归属 / 状态)」,条目解决后状态改"已解决(日期)"留痕;第 6 节顶层文档表与骨架表、第 8 节「待办单点登记」同步改指 |
|
||||
| v8 | 2026-09-30 | **概念落位与口径携带条款(微光口径事故后补成,用户拍板)**:第 7 节概念封装纪律增「落位五要素」行(定义/作用对象与范围/生命周期/关联/状态缺一不立)与「无正主,不下定义」段(概念未落正主前,任何文档不得替它下定义,只许 06 登记「待落位」);第 8 节「引用不转述」行扩口径携带纪律(作用对象/范围/生命周期随句写全或显式指路,禁裸形容词复述) |
|
||||
| v9 | 2026-10-02 | **文档生命周期条款(2026-10-01 用户立规「吸收即死」落文)**:新增第 11 节——中间文档寿命=迭代寿命,结论吸收进正主即删、未决先迁再死、永不入库、引用面口径、台账记结论不记指针、sim-data 白名单、迭代出口清理项、design/research 与 design/qa 为暂存地非档案库;第 10 节补台账记结论口径;文首地位/适用范围两处过期路径修正(`docs/`→`design/dev/`、`production/` 会话记录→根 `active.md`) |
|
||||
| v10 | 2026-10-04 | **台账去压缩条款(用户立规)**:第 10 节废除「每条 ≤3 行」——能看懂比字数少更重要;条目改用完整白话句子写结论,长度服从可读性;第 4 节黑话禁令对台账同等生效。起因:2026-10-04 黑话审计证实 ≤3 行压缩压力迫使台账条目使用自造缩略语(收口/落籍/在飞等约 15 个流程动词、530 条自造短语),并渗入正式文档;CLAUDE.md 规范导航表「会话进度记录」行同步改写 |
|
||||
| v11 | 2026-10-04 | **第 4 节补强:自造词三形态禁令(用户令,黑话审计后)**:新增自造词三种固定形态禁令表(工作包代号 / 机制造词 / 流程造词,各带本仓真实反例与正确写法)+ 通行检验标准(读者 = 业内人但没读过项目历史,需要作者解释的词即不合格,展开才算改)+ 写后自查动作;同批 CLAUDE.md 硬性红线新增「用语红线」一行。起因:原第 4 节禁令过于抽象、执行失效(全仓 530 条自造短语),且未明确覆盖对话输出与工作日志命名 |
|
||||
**删除方式**:按 `design/dev/concept-conventions.md` 第 2 节删除概念 SOP 口径——先查引用面(grep 文件名于阻塞域),改写或删除指路句,再删文件,收尾跑死链检查全绿。
|
||||
@@ -56,7 +56,7 @@
|
||||
- **TSCN 格式**:`load_steps` 不再写入、节点唯一 ID 入文件——双向兼容,但 VCS diff 变大(可 Project > Tools > Upgrade Project Files 预升级)—— 🔵
|
||||
- **Glow 默认值大改**(blend mode Soft Light → Screen、intensity 0.8 → 0.3、各 level 重排);Mobile 渲染器 glow 重写 —— 🔵 D1/B5 用 2D Glow 时注意视觉基底已变
|
||||
- AStar2D/AStar3D/AStarGrid2D:`from_id` 被禁用/固体时返回空路径 —— ⚪(自研 BFS)
|
||||
- **新项目默认值**:Windows 渲染驱动 D3D12;3D 物理引擎 Jolt —— 🔵 创建 project.godot 时须知(本项目 2D、无 3D 物理,渲染驱动选择归实现期 ADR)
|
||||
- **新项目默认值**:Windows 渲染驱动 D3D12;3D 物理引擎 Jolt —— 🔵 创建 project.godot 时须知(本项目 2D、无 3D 物理;渲染驱动已定 = gl_compatibility,2026-09-12)
|
||||
|
||||
## 4.7(2026-06;4.7.2 = 本项目锁定版本)
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
| `rendering/rendering_device/driver.windows` | Vulkan(Forward+) | D3D12 | 4.6(新项目) |
|
||||
| `physics/3d/physics_engine` | GodotPhysics3D | Jolt | 4.6(新项目;本项目 2D、无 3D 物理,无关) |
|
||||
|
||||
本项目为 2D 棋盘 UI:stretch mode / aspect 的最终选择归渲染器实现期 ADR,但须知道**引擎新项目默认值已不是训练数据里的那个**——新建工程后检查这三项。
|
||||
本项目为 2D 棋盘 UI:stretch mode / aspect 已定(canvas_items + expand,2026-09-12),但须知道**引擎新项目默认值已不是训练数据里的那个**——新建工程后检查这三项。
|
||||
|
||||
## 2. GDScript 4.7 两条语义变化(建议入编码规范)
|
||||
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
# 流程规范(Dungeon Sweeper)
|
||||
|
||||
> 约束范围:一切批次的流程纪律——分支与 worktree、三段开发流程、批次工作流、测试执行细则、像素件工作纪律。
|
||||
> 分工:硬性红线的一句话索引在 CLAUDE.md「硬性红线」;本文承载其操作细则;批次开工前通读本文。
|
||||
|
||||
**开工任何批次前必须通读本文。**
|
||||
|
||||
## 1. 分支纪律(worktree 铁律)
|
||||
|
||||
主工作区(master 检出)只作合并落点与共享状态载体,一切开发/设计改动禁止直接发生在主工作区:
|
||||
|
||||
1. **开工**:每批次先建独立 worktree:`git worktree add ../g-plan2-<任务名> -b <任务分支>`;所有改动与验证都在 worktree 内进行(未跟踪文件不会出现在新 worktree,需手工搬运)
|
||||
2. **收尾**:迭代 loop 批次验证全绿(冒烟+场景探针)后在主工作区 `git merge --no-ff <任务分支>`,再 `git worktree remove`+删分支;合并前先看 active.md 尾部状态记录,防并行会话撞号/漏捎带;完成按 doc-conventions 第 10 节退役规则删除已完结条目。非 loop 批次默认完成不跑闸(两入口铁规),用户点名或当场问
|
||||
3. **豁免面**:仅根目录 `active.md`(会话完成)、`.zcode/`(钩子与配置,入库)与 `.qoder/`(本机 harness 配置,gitignored 不入 git,走 worktree 反而带不进去)允许主工作区直改;其余一律走 worktree,主工作区 git commit 被钩子拦截
|
||||
4. 本铁律由 PreToolUse 钩子 `.zcode/hooks/worktree-guard.sh` 强制兜底;钩子只约束 agent,用户手工改动不受限
|
||||
|
||||
## 2. 三段开发流程
|
||||
|
||||
一切要做的东西按三段走:设计 → 写需求卡片 → 实现。段间不自动流转,每段转进由用户发令。
|
||||
|
||||
| 段 | 产出 | 出入口铁律 |
|
||||
|---|---|---|
|
||||
| 一·设计 | GDD 文档或 art-bible | 用户提起或从 `06-待办清单` 取出;会话内进行、用户主导、禁无监管自跑;经用户点头确认心智一致才许写入文档档;完成判据=待裁点清零,带未裁点的是讨论稿;不自动进写卡段,写卡须用户另行发令 |
|
||||
| 二·写需求卡片 | 需求卡片(写作规范见用户级技能 req-card) | 设计定稿后用户发令;例外=缺陷修复/工程债/测试基建/重构凭 bug 证据或 06 条目直接进入;新玩法/新系统/新内容必须有设计定稿前置;卡片必经 grilling 多轮复核、零待裁点才成立;入库必在 06 登记一条(防遗忘);编入后续未完成迭代(roadmap 迭代行),无空位与用户确认开新一轮 |
|
||||
| 三·实现 | 代码与配置,可运行的游戏 | 需求卡片永不单独施工,统一由用户指定迭代号触发(=U0 开工令),按 /iter 技能与本文 §3 执行;**本段是代码实现批:禁写 `design/` 与根规则文件,产出物只落 `reports/`(见 §3 第 13 条)**;设计权威文档(GDD/art-bible)批内一律不更新;完成人闸=实机目检清单+代拍板追认单登记交用户即完成批内义务 |
|
||||
|
||||
## 3. 批次工作流标准清单
|
||||
|
||||
每个批次按以下链路执行(本清单是总索引,细则散见各规约;冲突以细则为准,发现清单过时须同批修订):
|
||||
|
||||
**开工前**
|
||||
1. **先检索后提问**——先查在册记忆与权威文档,禁把已裁决事项当新问题重问或重踩在册坑
|
||||
2. **需求卡片全列备选案**——每个待拍板点列全部备选方案与代价交用户裁决,禁卡片内自行定夺
|
||||
3. **用户发开工令才动手**——需求卡片经用户批准(U0)后方开工
|
||||
|
||||
**环境与基线**
|
||||
4. **独立 worktree+拷导入缓存**——按 §1 建 worktree;先拷主区 `.godot/` 目录与字体 `.import` 边车再跑测试,否则全量重导入资源近似卡死
|
||||
5. **改码前定基线三查**——记录冒烟全绿数目、单元测试套数、现行模拟基线读数;改完同口径逐项比对,红绿才能归因到本批
|
||||
6. **涉数值改动先采改前读数**——与改后同随机种子配对比较并写明逐项比对口径;无数值改动禁跑模拟
|
||||
|
||||
**实施**
|
||||
7. **新功能必配新测试**——新增玩法/机制必须配套新测试套件进 `tests/run_all`;没有对应测试的变更不许合并
|
||||
8. **验收改动先行声明**——验收变化(基线换代/探针增改/旧断言改判)预先写进需求卡片,禁事后补
|
||||
9. **验收函数变异验证**——新增/改写的验收函数(冒烟断言/探针自检/闸机判据)必须配一次变异验证:故意把被测件改坏成该类缺陷形态 → 跑最窄那道闸确认变红 → `git checkout` 精确还原;变异点/跑的闸/红输出摘要/还原结论四件记入实现报告变异验证记录表;**无变异红记录的断言不写「已验收」,只写「已实现,拦截能力未证」**(细则见 test-conventions §6)
|
||||
|
||||
**完成**
|
||||
10. **批末按域验收才合并**——在任务 worktree 内跑 `tools/run_all_gates.sh`,**按本批改动域选档**:只碰 `game/`、`tools/`、`artwork/` → `--code`;只碰 `design/`、`active.md`、`roadmap.md`、`CLAUDE.md` → `--docs`;同时跨两域、或改的是全部闸共用的壳(闸脚本本身/探针包装器)→ 全量档不带参数。所选域全绿才合回 master。该脚本是全部验证闸的**唯一入口、唯一清单与唯一域划分**,闸件增减、分域调整都只改它;**本文与其他文档禁另列闸件清单**(清单散落多处正是 iter27 漏跑 `probe_gate --full` 的成因)。跑完写回执 `game/tests/.gates/receipt.json`(含 `domain` 字段),合回时由 worktree-guard 按 diff 路径推域强制校验
|
||||
11. **合并后主区全量复跑**——合并可能引入冲突或环境差异,落回 master 后再跑全套
|
||||
12. **会话完成落记**——active.md 快照与状态记录更新(含删除已完结旧条目,doc-conventions 第 10 节);跨会话教训写入记忆库;漏删旧条目由 `tools/audit_active_state.py` 在全量档抓(合回闸强制,脚本即清单)。**例外**:active.md 是会话状态唯一源、不是文档产出物,实现批照写(合回闸钩子本就对它放行);`design/` 与根规则文件(`CLAUDE.md`/`roadmap.md`)实现批禁写,见 §13
|
||||
13. **文档同步闸(2026-10-17 改口径:实现批禁写文档)**——实现批**禁写 `design/` 整个目录与根规则文件**,要往外交代的东西一律落 `reports/`:实现报告 `reports/iter<N>-实现报告-<日期>.md`(各卡状态+实机目检总清单+遗留读数义务)、代拍板追认单 `reports/iter<N>-代拍板-<日期>.md`、GDD 反哺点清单 `reports/iter<N>-反哺点-<日期>.md`(每条写清哪个文件哪一节、改成什么、依据是什么)。设计权威文档(GDD/art-bible)**任何批都不直改**:用户在会话中逐点裁决后,由非迭代批(工具/规则/文档批)写入 `design/`,并把反哺条目从 `reports/` 清掉(吸收即死)。机械面文档(roadmap 行/registry/README 工具注)同样归非迭代批在合并前更新。反哺点未落地期间相关 GDD 节视为待反哺,读前先查 `reports/` 与 06;需求卡片必列「关联文档同步面」按两层标注
|
||||
14. **实机目检归用户,只登记不阻塞**——真人检测项登记进实现报告目检总清单与 07-体验验证清单即完成批内义务;禁把等目检当停工理由或完成前置
|
||||
15. **中间产物吸收即死**——细则见 CLAUDE.md 硬性红线与 doc-conventions 第 11 节
|
||||
|
||||
## 4. 测试执行两入口铁规(细则)
|
||||
|
||||
测试类执行——冒烟、单元测试(tests/run_all)、模拟验证(MC/verifier/调参批量工具)、场景探针等一切跑游戏的验证——只有两个触发入口:①**迭代 loop 开发**(冒烟挂迭代出口/入库闸,loop 内过程性验证属开发工作本身);②**用户主动点名**。其余会话(问答/调研/文档/审查/零散小改)一律零测试;确需测试支撑结论时先请示,以静态阅读/推理作答并注明未跑测。
|
||||
|
||||
**MC/verifier 触发细则**:仅在数值验证场景触发(改数值前后取证);normal 档为主、perfect 按需;**无数值改动的会话禁跑 MC**;结构位移类「存档锚」须先向用户请示定性再跑;需求卡片预设步骤的前提消失时(如「带值裁定后重锚」实际未投值)停问勿照字面执行。
|
||||
|
||||
**分级周期口径**:全部验证闸收编在 `tools/run_all_gates.sh` 一个入口下(**脚本即清单,且即域划分的唯一出处**),分三档——`--code`/`--docs` 按本批改动域只跑该域闸(代码域=冒烟/单元/探针两档/渲染闸/静态扫描/回放对拍;文档域=gdd_lint/doc_link/doc_term/active.md 体量;熵增闸两域都含);`--quick` 是全量档的中段自检形态(跳过渲染闸与静态扫描);**不带参数=两域全量**,用于改闸件本身或一次改动跨两域。完成出库按所选域全绿,回执由合回闸按 diff 推域强制校验。真人实机目检归用户不进自动闸。
|
||||
|
||||
## 5. MC 采集档位细则
|
||||
|
||||
四档硬闸(全表与统计精度见 `sim-data/README.md`「MC 采集档位表」):
|
||||
|
||||
| 档 | 用途 | 上限 | 触发权 |
|
||||
|---|---|---|---|
|
||||
| 一档·调研 | 调研/数值分析 | 总量 >40 | **只能由用户发起**——需求卡片/计划书/agent 均无权授权 |
|
||||
| 二档·数值修改验证 | 改数值前后取证 | 总量 ≤40、每档 ≤20 | 数值验证场景 |
|
||||
| 三档·小调 | 只测不判 | 总量 ≤20、每档 ≤10 | 数值验证场景 |
|
||||
| 四档·微量 | sanity 门,零统计判读 | 总量 ≤5 | 数值验证场景 |
|
||||
|
||||
配套纪律:超档=停机呈报,窗口不足如实挂起,禁在二/三/四档下带值结论;改前/改后锚同 seed0 配对、改前锚留盘禁补跑;逐项比对断言零新跑(复验用锚内子集 ≤20);读数缺陷(零 gameplay/RNG 触碰)禁整套重跑、走事件流重构补算;≥60 局采集先 N=5 pilot 校验字段;二/三/四档会话累计 ≤20 分钟;零数值改动=零 MC;四档仅承接数值验证场景,两入口铁规不变。
|
||||
|
||||
## 6. 闸机轮次纪律
|
||||
|
||||
1. **孤立验证先行**——新代码/新工具/新断言进全套闸之前,先走通最小可运行路径的 standalone 验证(30 秒级:新断言=单独驱动函数直跑;新工具=最小参数全路径试车含产出落盘;新探针=单 .tscn 直跑);禁以全套闸首跑充当新码首验
|
||||
2. **调试期最窄确认**——出红→修复→确认只跑出红的最小单元(单探针/单套件/单函数);全套闸每个里程碑步(波/T 段)出口最多一次,红灯补跑只跑红件;修的是全部探针/套件共用的共享件(冒烟包装器、闸机脚本本身)时全套即最小充分单元,注记说明即可
|
||||
3. **长批试车**——≥2 分钟的跑批(逐位逐项比对冻结/MC 批/批量模拟)发起前,先用最小参数把工具完整路径(含解析/落盘/写锚全链)跑通一遍再放长批
|
||||
4. **开工坑册扫描**——每波/T 段开工前,按要触碰的面扫一遍在册坑(worktree 缓存三件套、--script 模式无 autoload、守卫文本匹配等)
|
||||
|
||||
## 7. 像素结构件工作纪律
|
||||
|
||||
1. **先抄后造**——画像素结构件前,先从参考素材裁同类结构放大逐像素描述,再实现同款;禁凭印象/第一性原理发明像素结构(art-bible §8.5 参考核验的执行口径)
|
||||
2. **验完成径写成像素级视觉判据**——开工前把合格标准写成"X 与 Y 同列收尾/无悬空/无突出"式句子;自检放大最差交界处逐行核像素,不只看整板观感
|
||||
3. **±1px 一律坐标推导**——单像素级结构先写坐标推导(哪条线在哪列、谁与谁齐平)留档再写码;禁蒙数试错
|
||||
4. **修复默认附前后对比图+像素审计**,不等用户索要
|
||||
@@ -0,0 +1,86 @@
|
||||
# 测试规范(Dungeon Sweeper)
|
||||
|
||||
> 约束范围:`game/smoke/`、`game/tests/` 与一切场景探针的编写与验收。
|
||||
> 分工:测试**执行许可**(什么时候允许跑测试)归 CLAUDE.md「硬性红线·测试执行两入口铁规」;**跑什么闸、什么顺序**归 `tools/run_all_gates.sh`(脚本即清单,本文与 CLAUDE.md 均不另列);本文管测试怎么写、怎么算合格。
|
||||
|
||||
**写任何测试前必须通读本文。**
|
||||
|
||||
---
|
||||
|
||||
## 1. 测试总纲——"存在"必须证明"可达且正确"
|
||||
|
||||
核心层验收标准通过不算有测试:GDScript 编译不查字典字段与时序,呈现层错误只在运行时暴露。
|
||||
测试必须证明功能可达(用户真的能用到)且行为正确(结果符合验收标准)。
|
||||
|
||||
## 2. 场景级探针标配
|
||||
|
||||
每新增一个可交互 UI 区域(视图/覆盖层/面板),必须配套场景级 headless 探针:
|
||||
真实实例化场景 → 驱动真实输入路径 → 断言可见性与状态。
|
||||
|
||||
凡模态覆盖层,探针必须断言:打开后自身 visible 且遮挡物已隐藏(模态被遮挡 = 功能存在但不可达)。
|
||||
|
||||
## 3. 缺陷修复必须沉淀回归断言
|
||||
|
||||
每个缺陷修复必须在探针或冒烟中留下能抓住该缺陷的断言(例:旗动作耗尽 AP → 必须进入第 2 轮;
|
||||
选用道具 → 库存态必须变 Used)。没有回归断言的修复视为未完成。
|
||||
|
||||
## 4. 提交前全量验证
|
||||
|
||||
交付前跑 `tools/run_all_gates.sh`(不带 `--quick`)全绿——该脚本是全部验证闸的唯一入口与唯一清单,本文禁另列闸件清单。闸件增减只改脚本。
|
||||
行为探针使用随机化玩家行为(旗/停手/刷新/无效点击)——自动玩家不做的动作就是测试盲区。
|
||||
|
||||
## 5. 测试函数怎么写——验收清单条目的落码规范
|
||||
|
||||
需求卡片 §7「逐需求点验收清单」每一条都要落成可执行的验证;本文定统一写法,卡里定每批的具体内容(测什么/注入哪里)。写卡期查不出执行载体的条目=不可测,当场呈报,禁拖到实现期。
|
||||
|
||||
1. **执行载体五选一,逐条声明**:单元测试(`tests/run_all`)/冒烟断言(`smoke_all.gd` 对应场景段)/场景探针(`smoke/` 下 `*_probe`)/MC 同种子逐项比对/人工核对(仅限无法自动化的纪律类需求点,如命名锁定、数值占位)。行为类条目以自动化载体为主。
|
||||
2. **粒度与对应关系**:每条清单条目至少一个自动断言;多条条目可合用一个测试函数。断言失败消息末尾带编号尾缀〔卡短名 Vn〕(如〔秘宝批 V3〕)——断言与卡片清单可互相 grep 查找。
|
||||
3. **断言词汇按验证对象五选一**:
|
||||
|
||||
| 词汇 | 适用场景 |
|
||||
|---|---|
|
||||
| 逐位相等 | 同种子下确定性公式与结算的精确逐项比对 |
|
||||
| 区间/差值带 | 概率与平衡读数(MC 同种子配对比较,出带即红) |
|
||||
| 快照比对 | 存档域结构、配置表行结构 |
|
||||
| 重放 | 同种子断点回放、改前改后配对 |
|
||||
| 状态/计数器断言 | 条件解锁、限次、充能——置数据→走路径→断计数值 |
|
||||
|
||||
4. **调试注入两层(能力测试与流程体验两分法的落码面)**:自动化测试=测试代码直调核心层写口构造状态(直改数据表行/计数器/存档域,不经 UI、不走正常资源积累流程——冒烟现役做法);人工体验=DebugOverlay/DS_DEBUG 调试面,服务用户目检。清单条目的「怎么测」必须写到数据面粒度:改哪张表哪行、置哪个计数、调哪个核心写口。
|
||||
5. **换代批旧验证约束同生死**:删除旧数据行/旧实现代码的批次,必须同批摘除只验证旧实现的断言与护栏校验,由新断言替代——旧件断言残留=冒烟假绿来源;合并后冒烟全绿且全仓无旧件残留引用为证。
|
||||
|
||||
## 6. 变异验证——验收函数的拦截能力自证
|
||||
|
||||
测试绿只证明「当前代码没犯这个错」,不证明「犯了这个错会被抓住」。新增或改写的验收函数(冒烟断言/探针自检/闸机判据)必须配一次变异验证,把拦截能力自证一遍。**无变异红记录的断言不写「已验收」,只写「已实现,拦截能力未证」。**
|
||||
|
||||
**操作四步(逐条落实现报告变异验证记录表)**:
|
||||
|
||||
1. **注入**——把被测件改坏成该类缺陷的最小形态(翻装配序、注释一行 `add_child`、把状态源取反、把层 `visible` 置 false)。一次只注入一处;可直接改源码,不必留长期开关。
|
||||
2. **跑最窄的那一道闸**——只跑能覆盖该断言的最小单元(单冒烟脚本/单探针/单比对命令),禁跑全套闸(见 process-conventions §6 闸机轮次纪律)。判据:注入后该断言**必须变红**;红在别处而目标断言仍绿=判据没打在缺陷上,按第 4 条处理。
|
||||
3. **精确还原**——`git checkout -- <文件>`(不用 `git stash`、不手工回改,防残留)。还原后复跑同一道闸确认回绿,才算本轮闭环。
|
||||
4. **记录**——变异点(文件:行)、跑的闸、红输出摘要、还原结论,逐条进实现报告记录表。
|
||||
|
||||
**变异不红怎么办(二选一,不许含糊带过)**:
|
||||
|
||||
- **改判据**——把断言打到真正的缺陷面上(例:断言「菜单标题可见」只查截图墨色占比时,把菜单层藏起来仍不红——底层棋盘透过标题框照样给出高反差像素;改查 `is_visible_in_tree` 或加 golden 逐像素比对才红)。
|
||||
- **如实标注拦截边界**——判据本身只覆盖弱面的(如「只证伪整框空白/整框糊,不证明框里是何内容」),在断言注释与报告里写明边界,并说明强判据由哪一件承担。
|
||||
|
||||
**判据强弱分层**:同一缺陷面往往需要多件配合——**可见性/状态源类**缺陷由 `is_visible_in_tree`、树序、状态源取值的**运行期断言**抓;**内容/观感类**缺陷由 **golden 逐像素比对**抓;**占比/统计类**判据(墨色占比、纹理幅度)只能兜「整框空白/整框糊/压 busy 纹理」,是补充不是主力。写卡时按此分层配齐,别指望一条断言包打。
|
||||
|
||||
## 7. 判定三硬闸——闸承载的构造义务(迭代 29 三硬闸 2026-10-17 用户裁升格为纪律)
|
||||
|
||||
任何**新增或改写的闸承载**(闸脚本/批跑编排/探针入口)必须三闸齐备;现行各闸状态登记归架构文档「测试与质量域」节(本文不另列闸件清单):
|
||||
|
||||
1. **退出码为唯一权威判据**——输出里的 PASS 串只作附加判据不作判据主体;打印 PASS 后 `quit(1)` 必须判红。
|
||||
2. **SCRIPT ERROR / Parse Error 扫描面在位**——GDScript 脚本错误不改进程退出码、不计失败数(机制事实见 §8),错误标记必须扫输出,且判据必须覆盖「跑了但半途脚本错误」态——退出码 0 但输出缺预期签名同样判红(防静默退出)。
|
||||
3. **断言数下限**——零断言的正常返回与断言失败必须区分开(现行做法:`Kit.finish` 零断言返回专用退出码 2,不与「断言失败=1」混用,否则致命类套件的期望码协议会放过空跑)。
|
||||
- 负面套件(测试目标就是产生错误输出)仅可豁免第 2 闸,且须在 manifest 显式标记,其余两闸照判。
|
||||
- 子进程输出须经系统命令解释器重定向落盘再读——`OS.execute` 的输出管道在本机恒空。
|
||||
|
||||
**新写测试件全类型标注**(2026-10-17 用户裁写法纪律)——新写的测试件(冒烟断言/探针/单测)参数、返回值、容器一律带类型标注,与 S9 对产品码的要求同型;存量不强制清扫,被批次触碰时顺带换代。暂不机器闸(S9 扫描面=产品码,smoke/tests 豁免是测量面直构惯例的既有裁量)。
|
||||
|
||||
## 8. 判定可靠性优先于覆盖率(迭代 29 核心命题 2026-10-17 用户裁成节)
|
||||
|
||||
- 「跑一遍没崩=通过」无效:测试绿只证明**当前代码没犯这个错**,不证明**犯了这个错会被抓住**;断言存在不等于断言执行。
|
||||
- **脚本错误会静默中断所在函数的剩余断言,而套件仍报全绿**(机制事实):GDScript 无脚本错误陷阱 API,错误不改进程退出码、不计失败数。三处实证:①2026-09-19「309 项 0 失败」实为断言未跑全(状态记录 83);②敌人表行集纪律 10 条断言因定型数组赋值错误从未执行(迭代 29 修复后两条正向见红=夹具本缺锚行);③`Callable` 形参类型写错致解析函数返回 null、后续断言整段蒸发。
|
||||
- 由此产生两条义务:**写闸件**按 §7 配三硬闸;**写验收函数**必须自证断言全数执行——变异验证(§6)为主证,反例实证(构造缺陷态改前判绿/改后判红)与零命中自检(扫描面为空即判红)为辅证。
|
||||
- **覆盖率不是目标**:行覆盖率度量缺失(Godot 无内建,第三方属新基建,是否引入 06 在册待裁);现行补洞=零指名单测清单+人工判定,判定可靠性靠上列自证手段,不靠覆盖率数字。
|
||||
@@ -21,26 +21,26 @@
|
||||
|
||||
**产品名:Dungeon Sweeper。** 取 minesweeper → dungeon sweeper 的双关:玩家不只是"扫雷者",更是"清扫地牢的人"——逐层肃清巢穴侵染、夺回地牢的清巢者。"扫雷 × 自动战斗 闯关 Roguelike"保留为品类描述,用作各文档副标题。
|
||||
|
||||
**背景一句话**:玩家操纵一名地牢探险者,逐层下探一座被怪物巢穴侵染的古代地牢;每一层就是一张雷图——惩罚格密布的古老地砖阵,探险者凭数字提示感知惩罚格方位,控制巢穴、搜刮前人遗落物,才能安全下探更深的层。
|
||||
**背景一句话**:玩家操纵一名地牢探险者,逐层下探一座被怪物巢穴侵染的古代地牢;每一层就是一张雷图——危险格密布的古老地砖阵,探险者凭数字提示感知危险格方位,控制巢穴、搜刮前人遗落物,才能安全下探更深的层。
|
||||
|
||||
**巢穴隐喻轴**(表现层/命名层定稿,不改变任何机制语义;左列为对内文档与协议称呼,保持不变):
|
||||
|
||||
| 机制元素(对内称呼) | 玩家可见叙事 |
|
||||
|---|---|
|
||||
| 扫雷图 | 被巢穴侵染的地牢厅室;清图 = 肃清本间厅室,下探更深 |
|
||||
| 雷 / 雷格 | **惩罚格**(对外属名),下辖类型;首发类型 = 怪物巢穴——惊动则怪物倾巢而出占得先机,巢已空、残址可通行 |
|
||||
| 雷 / 危险格 | **危险格**(对外属名)——惊动则怪物倾巢而出占得先机,巢已空、残址可通行(机制文档统一称危险格,2026-10-11 用户裁无类型划分) |
|
||||
| 旗 / 插旗 | **控制**(玩家可见动词,类型无关)——标中 = 巢穴废置、巢主失庇护(怪物被削弱);"封印/镇/反制"降级为类型风味词 |
|
||||
| 连锁展开 | **坍塌显形**——挖穿薄壳,整片松动地面塌陷露出 |
|
||||
| 标错 | **控制失败的失控反噬**——机制上的随机读作"失控",反噬流向不可控 |
|
||||
| 道具 / 奖励 | 前人探险者的遗落物(氛围背景句,登记不锁;宝箱呈现只绑定可使用道具类奖励) |
|
||||
|
||||
**存疑项**(历史登记,此处只留痕不展开):惩罚格未来类型(陷阱/岩浆/冰冻等)——2026-09-20 首批四类型已定稿落地(荆棘丛/藤蔓缠绕/岩浆/烬覆,见[地形变异](systems/排雷循环/地形变异.md)),其余未来类型仍只登记名字;标错反噬的具体机制落点(流向谁、一次还是每轮)未定,本文只承诺叙事壳;两类增伤分量的叙事称呼("地利/暴露")仍是候选措辞,未拍板。
|
||||
**存疑项**(历史登记,此处只留痕不展开):危险格未来类型(陷阱/岩浆/冰冻等)——2026-09-20 首批四类型已定稿落地(荆棘丛/藤蔓缠绕/岩浆/烬覆,见[地形变异](systems/排雷循环/地形变异.md)),其余未来类型仍只登记名字;标错反噬的具体机制落点(流向谁、一次还是每轮)未定,本文只承诺叙事壳;两类增伤分量的叙事称呼("地利/暴露")仍是候选措辞,未拍板。
|
||||
|
||||
## 术语层级
|
||||
|
||||
本项目用语分两层,纪律如下:
|
||||
|
||||
1. **玩家可见专属名词**——道具名、界面用语、敌种名、层名。允许起专名,以 `design/registry/entities.yaml` 登记为准。界面用语"惩罚格 / 控制 / 坍塌显形"同属本层,见上节。
|
||||
1. **玩家可见专属名词**——道具名、界面用语、敌种名、层名。允许起专名,以 `design/registry/entities.yaml` 登记为准。界面用语"危险格 / 控制 / 坍塌显形"同属本层,见上节。
|
||||
2. **文档内部机制概念**——一律直白描述,禁止造词(比喻性生造词、只有作者懂的缩略语均在禁列)。确需命名时,首次出现处附一句白话定义并登记 registry 术语条目。
|
||||
|
||||
当前已登记的玩家可见专名(名称值均为 provisional,出处为 registry 对应条目):
|
||||
@@ -57,12 +57,10 @@
|
||||
| 第一层 · 地精洞窟 | 首关层名 | level_table |
|
||||
| 封印 | 插旗动作的呈现名——对未开格(巢穴)插旗即实施封印,旗 = 封印印记 | terminology |
|
||||
|
||||
注意:部分秘宝的现行效果定义绑定已被移除的地形变异类型,其效果定位待后续内容批重定;名称暂按登记保留,重定时随批修订。
|
||||
注意:上表六件秘宝为旧目录,已全数退役、只作素材库(新现行事实源=[秘宝](systems/跨局循环/秘宝.md)「目录(重设计 v1)」节——新目录 15 件为代号制、正式命名归用户);registry 登记行随实装批迁移后本表同步。
|
||||
|
||||
另:元进度资源定名**钥石**——每一层关底 Boss 看守他那块区域的钥石,击杀即取走,用于在存档内解锁永久提升(属性 / 怪物遭遇 / 道具池)。2026-09-14 用户拍板,registry 术语登记随元进度设计批补登。
|
||||
|
||||
> 旧版参考:../archive/gdd-2026-09-14/game-concept.md
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
@@ -70,3 +68,4 @@
|
||||
| v1.0 | 2026-09-14 | 初版随 GDD 骨架建立:一句话概念、目标受众、世界观命名、术语层级 |
|
||||
| v1.1 | 2026-09-25 | 术语「封印」定稿(用户拍板):插旗动作呈现名落术语表,出处条目 terminology |
|
||||
| v1.2 | 2026-10-03 | R3 清账批(gdd_lint 分域随批):术语表日期批注括注迁出至本表 v1.1 行;语义零变更 |
|
||||
| v1.3 | 2026-10-09 | 文档正确性审查批:专名表下「部分秘宝效果待重定」注过期——六件旧目录秘宝已随目录重设计全数退役、只作素材库,注改写为退役指路(新现行事实源=秘宝.md「目录(重设计 v1)」节,registry 登记行随实装批迁移);表格登记事实本体不动 |
|
||||
+116
-4
@@ -2,20 +2,32 @@
|
||||
|
||||
一句话:下洞 → 扫雷攒筹码 → 自动战斗兑现 → 变强再下洞;死了,从头再来。
|
||||
|
||||
## 一场战斗:扫雷的因,战斗的果
|
||||
## 一场战斗的流程
|
||||
|
||||
每场战斗都在一张雷图上打。战斗本身不用手操——你能做的全部决策,都在它的"准备期"里:
|
||||
|
||||
1. 开局一张新雷图,每轮发给你若干行动点。
|
||||
1. 开局一张新雷图,每轮发给你行动点,每轮预算见[行动经济](systems/排雷循环/行动经济.md)。
|
||||
2. 用行动点做排雷决策:挖开安全格,拿增益和道具;控制(插旗)巢穴,削弱里面的怪物;点错惊动巢穴,怪物反而变强。
|
||||
3. 行动点用尽——或者你主动停手——这一轮结束,轮末自动结算:你这一轮扫雷攒下的因,逐行兑现成战斗的果。你拿的增益打了出去,你控制的巢穴变成怪物的虚弱,你惊动的巢穴变成怪物的警觉(护甲变硬、伤害账轮末才落)。
|
||||
4. 敌人没死光、你还活着,就进下一轮,同一张图接着挖;图开完了,发清图奖励,换一张新图接着打。
|
||||
|
||||
```
|
||||
开局:装一张新雷图 + 发本轮行动点
|
||||
→ 用行动点做排雷决策(挖安全格拿增益/道具 · 插旗控制巢穴 · 点错惊动巢穴)
|
||||
→ 行动点用尽 或 主动停手 → 轮末自动结算:本轮攒的因逐行兑现成战斗的果
|
||||
→ 判定(先判你,再判敌人)
|
||||
你倒下 → 战斗失败 → 冒险结束(见「死了之后」)
|
||||
敌人死光 → 战斗胜利 → 回关卡节点链推进
|
||||
两边都还有活的 → 进下一轮:
|
||||
本图已开完 → 发清图奖励 → 换一张新图接着挖
|
||||
本图未开完 → 同一张图接着挖
|
||||
```
|
||||
|
||||
所以自动战斗不是过场,是阅卷:每一行结算都能指回你刚才的哪一步棋。
|
||||
|
||||
### 数值语言
|
||||
|
||||
- 游戏内伤害与成长数值一律**整数加减**(小整数加法核——模板 C 骨架 + 模板 A 成长语言):克制修正、奖励、商店与永久强化的属性提升都走"+1/−1 点"式整数;数字小而可读是设计价值,不是待放大的占位。
|
||||
- 游戏内伤害与成长数值一律**整数加减**:克制修正、奖励、商店与永久强化的属性提升都走"+1/−1 点"式整数;数字小而可读是设计价值,不是待放大的占位。
|
||||
- **百分比仅保留三处既有粗档修正**(增益池乘区、护甲等级掷点折扣档、暴击倍率)与开发侧测量工具(难度杠杆扫描、通关率带平移);此后新增数值系统默认整数加法,引入百分比须显式修订本条款。
|
||||
- 全局向下取整(round_direction = floor)不变;整数刻度下的档位粒度以"1 点"为单位设计,避免名义百分比与实际取整值脱钩。
|
||||
|
||||
@@ -46,7 +58,100 @@
|
||||
|
||||
循环到此闭合:进入一局 → 在棋盘上推理 → 看推理兑现成胜负 → 带着变强(或更痛)的记忆和一个更厚的存档,想进下一个节点、下一张图、下一层、下一局。
|
||||
|
||||
> 旧版参考:../archive/gdd-2026-09-14/gdd.md
|
||||
死亡与重开走成一个环:
|
||||
|
||||
```
|
||||
冒险倒下
|
||||
→ 结算:本局已取走的钥石已攒进存档,不随倒下丢失
|
||||
→ 营地:用钥石解锁永久提升——角色属性更强、怪物遭遇更丰富、道具池更厚
|
||||
→ 再开一局:新种子、新雷图、新奖励落点,存档比上一局更有料
|
||||
→ 下洞(回到「一场冒险」)
|
||||
```
|
||||
|
||||
## 生命周期轴(五档)
|
||||
|
||||
全项目道具与效果的生命周期框架。五档由大到小:**存档级 → 冒险级 → 关卡级 → 节点级 → 回合级**。
|
||||
|
||||
```
|
||||
存档级(钥石·永久强化)
|
||||
└ 冒险级(秘宝生效期·奇物·生命账·GP 钱包·刷新存量)
|
||||
└ 关卡级(预留档——现役零成员,保留扩展位)
|
||||
└ 节点级(敌方生命·增益容器·蓄力层·商店付费刷新计数)
|
||||
└ 回合级(当前 AP 池·结算动作时点)
|
||||
```
|
||||
|
||||
| 档 | 含义 | 现役成员(举例) |
|
||||
|---|---|---|
|
||||
| 存档级 | 跨多个冒险,最大生命周期 | 元进度(钥石/永久强化)、同调位数量、秘宝工坊解锁 |
|
||||
| 冒险级 | 一段冒险(一轮闯关) | 秘宝生效期、奇物、主角生命账、GP 钱包、刷新存量账 |
|
||||
| 关卡级 | 一关之内 | **预留档,现役零成员**(保留扩展位——「每关首次」类口径的归宿) |
|
||||
| 节点级 | 一次停点(进入→离开,不按节点类型分档) | 敌方生命、增益状态容器、蓄力层、商店付费刷新计数(每停点清零) |
|
||||
| 回合级 | 一轮之内 | 当前 AP 池(每轮灌满、归零收轮)、结算动作发生的时点 |
|
||||
|
||||
节点级前提:节点链是有向无环图(DAG)——只向前走、无回头路、无环,节点只进一次,故「一次停点」=「这个节点的寿命」(参照哈迪斯/以撒的房间:多数房间有战斗,少数没有)。回合级**不存在跨轮效果**:跨轮的都是写入战斗级对象的一次性结算——增益活在增益状态容器(容器寿命=一场战斗=节点级),duration 是增益自身的属性;下轮 AP 写入战斗级 AP 队列([行动经济](systems/排雷循环/行动经济.md))。
|
||||
|
||||
### 结算模型:一次性结算与持续态
|
||||
|
||||
- **一次性结算**:兑付动作瞬时完成,只有目标账本继续存在。登记两点=结算发生时点、写入哪本账(账是哪个档)。跨层关系是「转换」不是「横跨」:奇物高价值物→GP、格面资源→GP,都是一次性转换写入长寿命的账(类A→类C、类B→类C)。
|
||||
- **持续态**:效果自己有一段寿命(增益、秘宝被动、专长持有),标寿命档位。
|
||||
- 五档轴量三样:持续态的寿命、一次性结算的时点、结算目标的档位。
|
||||
|
||||
### 结算目标分两类:总线与抽屉
|
||||
|
||||
- **总线**:为多源叠加设计的目标(伤害加法区/乘法区、增益池、护甲阈值轴)。多层共写是本体(组合叠加=构筑爽点),不设归属规则。
|
||||
- **抽屉**:单计数器+专属重置语义的账户。新成员写入前必须对齐其重置语义,不兼容则另立新账。
|
||||
|
||||
**道具定义卡必答(3+1 句)**:什么时候获得的;结算在什么时点发生;写进哪个目标。若目标是抽屉式账户,加答一句「它的重置语义与我的存入兼容吗」。
|
||||
|
||||
### 两条独立资源
|
||||
|
||||
**GP**(冒险级账)与**钥石**(存档级账)是平行独立资源,不立统一上位概念,按生命周期各归各档文档:GP 归[冒险结构](systems/冒险循环/冒险结构.md)「GP 冒险账本」节,钥石归[元进度](systems/跨局循环/元进度.md)。
|
||||
|
||||
### 各域现行事实源指针
|
||||
|
||||
- AP 两账(上限=冒险级属性/当前=回合级池):[行动经济](systems/排雷循环/行动经济.md)「每轮预算与价目」节
|
||||
- 刷新两账(存量 Y/当次临时 X,X 挂「三选一呈现」):[秘宝](systems/跨局循环/秘宝.md)「三选一刷新双源」节
|
||||
- 增益容器(寿命=一场战斗):[增益状态](systems/战斗循环/增益状态.md)
|
||||
|
||||
## 道具三层职责与分界
|
||||
|
||||
道具按「获取坐标 × 生效寿命」分三层(生命周期档见上节),一句话职责各归其位:
|
||||
|
||||
| 层 | 一句话职责 | 获取 → 生效 |
|
||||
|---|---|---|
|
||||
| 秘宝 | 开局前在营地从目录自主装配、整局冒险生效的**角色机能件**——「这局我想怎么玩」的事先宣言 | 存档级(营地)→ 冒险级 |
|
||||
| 奇物 | 冒险途中经渠道获得、当局清零的增益——「这一局我捞到了什么」的过程性成长 | 冒险级 → 冒险级清零 |
|
||||
| 地图战斗资源 | 格子上装板摇号预分配、回合内挖格/标旗获取并结算的一次性兑付——「挖这一格得到什么」的收益语言 | 回合级获取 → 回合级结算(写入各档账);身份生成=装板期(节点内,随换图重摇) |
|
||||
|
||||
### 机能与机制的判定尺
|
||||
|
||||
- **属性值**:角色面板上的数(生命/护甲/攻击/伤害)——改的是大小。
|
||||
- **角色机能**:角色的操作包络——能看多远(视野)、能动几下(AP 上限/行动次数)、能刷几回(刷新次数)、能挖多远(挖掘距离)、能带几件(槽位)。不改任何结算规则,只扩大既有规则内能做的事的范围与次数。
|
||||
- **战斗机制**:结算时会发生什么——新触发、新转换、新伤害行。改的是规则本身。
|
||||
|
||||
判定尺一句话:**不改结算规则、只扩大操作包络的是机能件;让结算产生原本不存在的新行的是机制件。**
|
||||
|
||||
### 分层准入约束(新建道具必检)
|
||||
|
||||
- **秘宝=营地装配的机能件**:不出角色战斗属性值(属性提升归奇物;经济与操作参数——视野/距离/行动点/刷新/转存率——属操作包络不在此限,2026-10-10 用户澄清「属性值=角色战斗属性值,不含经济相关属性」)、不改战斗结算机制(机制件归专长)。新建秘宝先过这两条。
|
||||
- **专长=局中随机的机制件**:战斗机制的改写只走这一门。
|
||||
- 同类资源多层可出、各写各账(见上节总线/抽屉纪律)。
|
||||
|
||||
参照系:哈迪斯2 的塔罗牌(局前自选装配、件数上限、整局生效、机能向)与祝福(局中随机三选一、改写战斗方式)之分,与本分界同构。
|
||||
|
||||
### 档位与获取规则
|
||||
|
||||
道具跨层统一稀有度四级:**普通 / 优秀 / 稀有 / 传说**(对外级别 ≤4——玩家记忆纪律)。级别对外统一,档位的语义按层定义:
|
||||
|
||||
| 层 | 档位语义 | 落地口 |
|
||||
|---|---|---|
|
||||
| 秘宝 | 档位越高,解锁条件越苛刻(通关数/Boss 击杀/生涯里程碑谓词);装配面同调位分档(槽位可装 ≤ 槽位档位的件,向下兼容) | `unlock_requires` 字段 + 工坊柜台 + 里程碑分档发槽 |
|
||||
| 奇物 | 档位越高,出现概率越低(配额与权重) | 令牌池配额;专长 rarity 接 Boss 三选一按档配比/加权(约束见下) |
|
||||
| 地图战斗资源 | 档位=概率位 + 保底上限(T1-T4 四档池) | [地图战斗资源](systems/战斗循环/地图战斗资源.md)「四档概率结构与保底」节 |
|
||||
|
||||
**获取概率提升**是元进度/营地的合法提升轴(可提升=奇物高档位出现率/秘宝解锁进度/地图 T3/T4 权重),但**不动保底**——保底是承诺不是概率,禁止任何概率件改变 T3「每板必有回复」类承诺。
|
||||
|
||||
**专长 rarity 语义约束**:Boss 三选一候选按档配比或加权抽取,使罕见度对出现率生效(字段双脱钩修复——此前 rarity 不影响抽选也不稳代表幅度);具体配比归调参批。
|
||||
|
||||
## 版本历史
|
||||
|
||||
@@ -55,3 +160,10 @@
|
||||
| v1.0 | 2026-09-14 | 初版随 GDD 骨架建立:一场战斗 / 一场冒险 / 死了之后三节 |
|
||||
| v1.1 | 2026-09-18 | 「数值语言」节定稿(用户拍板:整数加减核、百分比仅三处既有粗档、全局 floor) |
|
||||
| v1.2 | 2026-10-03 | R3 清账批(gdd_lint 分域随批):节标题日期批注迁出至本表 v1.1 行;语义零变更 |
|
||||
| v1.3 | 2026-10-07 | **生命周期轴(五档)节新立(道具重设计框架讨论用户裁决落文)**:五档定义(存档/冒险/关卡=预留档/节点=一次停点不按类型分档/回合)、节点链 DAG 前提(只向前·无环·只进一次)、一次性结算与持续态结算模型(跨层=转换非横跨,类A→类C)、总线与抽屉两类结算目标、道具定义卡 3+1 句、GP 与钥石两条平行独立资源;AP 两账/刷新两账/增益容器各归域内现行事实源(行动经济/秘宝/冒险结构/元进度同批落文) |
|
||||
| v1.4 | 2026-10-07 | **道具三层职责与分界定稿(用户裁决——哈迪斯2 塔罗牌/祝福同构分界)**:新节落三句职责(秘宝=营地装配的角色机能件/奇物=冒险途中当局清零的增益/地图战斗资源=回合内获取并结算的格面兑付,地图层坐标经用户纠正——装板期生成、回合内获取与结算)+ 机能/机制/属性值判定尺 + 分层准入约束(新建秘宝必检:不出裸属性值、不改战斗结算机制;战斗机制改写只走专长);现行秘宝目录机制向三件(淬毒刃纹/标中殉爆/惊巢反制)经用户点名与本约束不符,归留秘宝层重设计批处置,冻结期内维持现状 |
|
||||
| v1.5 | 2026-10-07 | **跨层档位框架落文(用户裁——道具三层重设计)**:分界节新增「档位与获取规则」分节——稀有度四级统一=**普通/优秀/稀有/传说**(「优秀」=用户认可的「非普通」优化:无双否定、WoW 绿装先例、正面积木递进;DND 六级梯子中取四、跳档表意头奖级);分层语义=秘宝档位越高解锁越苛刻/奇物越高概率越低/地图=概率位+保底上限;获取概率提升=元进度/营地合法轴但**不动保底**(保底=承诺非概率);专长 rarity 语义约束=Boss 三选一按档配比或加权(字段双脱钩的文档面修复,配比归调参批) |
|
||||
| v1.6 | 2026-10-07 | **同调位分档批(用户裁——道具三层重设计·秘宝层)**:档位与获取规则节秘宝行扩装配面——同调位分三档(普通格/优秀格/稀有格),槽位可装 ≤ 槽位档位的件(向下兼容不惩罚早解锁);里程碑分档发槽(m1 普通格/m2 优秀格/m3 稀有格);费用制落选留档(槽位仅 3 组合太小);现行事实源落点=[秘宝](systems/跨局循环/秘宝.md)速览节同批 |
|
||||
| v1.7 | 2026-10-10 | 分界尺措辞精确化(2026-10-10 用户澄清):秘宝行「不出裸属性值」精确为「不出角色战斗属性值」+操作包络正向列举(经济与操作参数不在此限)——「属性值」定义行(生命/护甲/攻击/伤害)不变;机制零改动 |
|
||||
| v1.8 | 2026-10-11 | 文档一致性修复批(定时检查呈报项):「生命周期轴(五档)」节补五档嵌套字符画(R5 实指——lint 报错因工具 prev/cur 错位误记到「死了之后」节名下,工具已同批修正);「死了之后」节顺带补死亡与重开循环字符画(内容补强);版本历史同号冲突顺延——2026-10-10 分界尺措辞行 v1.5→v1.7(R10);v1.6 行秘宝链接改指跨局循环新位(死链修复) |
|
||||
| v1.9 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 6 处——「若干行动点」改指路行动经济/删「模板 C 骨架+模板 A 成长语言」无出处括注/DAG 首现补全称有向无环图/buff 换代增益 3 处/「不得改变」改「禁止」/「对标哈迪斯」改「参照」;版本历史行序修复(v1.7 行归位 v1.6 后)。句式句长不动(STC 文体豁免) |
|
||||
+33
-16
@@ -12,8 +12,10 @@
|
||||
| `03-内容规模.md` | 几个关卡、几种敌人、几种道具——做多少砍多少 |
|
||||
| `04-美术音频方向.md` | 参考图、参考游戏、风格关键词 |
|
||||
| `05-不做清单.md` | 明确写:这些我不要 |
|
||||
| `术语表.md` | 全库专用术语的唯一对照表——危险格/安全格/同调位/RAP/GP/真视等定义+退役词对照(2026-10-11 建立,v1.0) |
|
||||
| `06-待办清单.md` | 全项目待办事项的唯一登记处;各系统文档的「待办」节只留指路存根 |
|
||||
| `07-体验验证清单.md` | 需要真人试玩观测的验证项登记处(与 06 分工:06 是"要拍板的事",本篇是"要玩过才知道的事");每条注明结论回流路径 |
|
||||
| `08-Alpha版本标准.md` | Alpha 版本包含哪些东西的清单——里程碑 M3 的完成标准;只列条目不写内容,定义一律指路各权威文档(**已定稿 v1.4**,2026-10-13) |
|
||||
|
||||
## systems/ 五个循环
|
||||
|
||||
@@ -25,7 +27,6 @@
|
||||
| `排雷玩法.md` | 挖格、插旗、连锁展开等扫雷规则本体 | 已定稿·自旧体系迁移 |
|
||||
| `行动经济.md` | 每轮行动点怎么花、停手与刷新的代价 | 已定稿·自旧体系迁移 |
|
||||
| `地形变异.md` | 格子的非雾变异(首批四类型:荆棘丛/藤蔓缠绕/岩浆/烬覆) | 已定稿·首批类型落地 |
|
||||
| `秘宝.md` | 扫雷侧秘宝(显影、探测类) | 已定稿·自旧体系迁移 |
|
||||
|
||||
### 战斗循环(`systems/战斗循环/`)
|
||||
|
||||
@@ -42,17 +43,20 @@
|
||||
| 文件 | 一句话概要 | 状态 |
|
||||
|---|---|---|
|
||||
| `关卡节点地图.md` | 单关内的节点图选路与推进 | 已定稿 |
|
||||
| `关卡节点图生成.md` | 单关节点图的逐局随机来源:图模板池、抽签与实例化(实施排队 ADR-0007 裁决后) | 设计草案·拍板点全落文 |
|
||||
| `关卡节点图生成.md` | 单关节点图的逐局随机来源:图模板池、抽签与实例化(实施排队统一流裁决后) | 设计草案·拍板点全部已写入 |
|
||||
| `冒险结构.md` | 整局冒险的关卡序列、失败与大奖励 | 已定稿·自旧体系迁移 |
|
||||
| `难度曲线与Boss.md` | 难度曲线、期望值带与 Boss 设计 | 已定稿·自旧体系迁移 |
|
||||
| `奇物.md` | 一次冒险内各渠道给予玩家的增益总称(三个分类:专长 / 属性值提升 / 资源 × 三条渠道:奖励节点 / 商店 / 关底 Boss 击败) | 已实现·2026-10-05 新立定义·v2.0 改名并重构为两根轴 |
|
||||
| `奇物.md` | 一次冒险内各渠道给予玩家的增益总称(专长=触发器句式的机制件 / 属性值提升 / 资源=转换源凭证 × 三条渠道:奖励节点 / 商店 / 关底 Boss 击败) | 已实现·迭代 20 专长实装批落地(29 行=基础 27+迁入 2,流派机制退役;池结构案D 四级 104,通关兑付=专长三选一按档配比加权) |
|
||||
|
||||
### 跨局循环(`systems/跨局循环/`)
|
||||
|
||||
| 文件 | 一句话概要 | 状态 |
|
||||
|---|---|---|
|
||||
| `元进度.md` | 跨局成长(旧体系未单独成文) | 已定稿·已实现 |
|
||||
| `天赋树.md` | 跨局成长的树形承载(**结构/节点/数值/效果一律以该文档为唯一事实源——本表不复制其内容,只作指路**) | v0.8 换代定稿待实装(迭代 21 天赋树实装批,2026-10-11 用户令编入,开工门=U0 发令;需求卡片 v1.7) |
|
||||
| `生涯.md` | 主菜单一级的局外只读界面——跨局汇总、历史冒险回看、图鉴承接(冒险中数据回看的唯一承接处,P-C7 裁决) | 范围草案·待评审 |
|
||||
| `锻造工坊.md` | 营地武器与护甲成长——武器锻造区(长剑/长枪/法杖)与护甲锻造区(轻甲/重甲/魔法护甲)各三条独立等级路线,钥石几何定价,一次冒险各选一件,满级特效留扩展位本期不做 | v0.5·**设计定案待实装(17 裁点已清零**——2026-10-12 B 组逐裁:1 丙/1a 一冒险一件武器+一件甲/2a 伪裁点消解/3b 敌方攻击缺省普通·克制反向当下生效/6 满级特效本期不做/8a 两区定名;2c·5a 于 v0.4 结案);开工门=17 裁点清零+用户发令,裁点门已满足——现状见 06-待办清单 |
|
||||
| `秘宝.md` | 营地装配、整局冒险生效的角色机能件——操作包络加强(视野/行动点/刷新/挖掘距离等),不出角色战斗属性值、不改战斗结算机制 | 已定稿·跨局件(2026-10-10 自排雷循环迁入——解锁/装配/存档持久全在跨局侧) |
|
||||
|
||||
### 表现与支撑(`systems/表现与支撑/`)
|
||||
|
||||
@@ -69,18 +73,18 @@
|
||||
|
||||
| 文件 | 一句话概要 | 状态 |
|
||||
|---|---|---|
|
||||
| `battle.md` | 战斗屏 UX spec:三区布局、信息归属、交互映射、动效、上游义务对照 | Complete·随批修订 |
|
||||
| `battle.md` | 战斗屏 UX spec:三区布局、信息归属、交互映射、动效、上游义务对照 | Complete·顺带修订 |
|
||||
| `interaction-patterns.md` | 交互 pattern 库:核心 8 成文 + 目录 20 条 | Complete |
|
||||
| `level-clear.md` | 关卡结算屏 UX spec:大奖励三件套兑付与钥石/GP 结算呈现 | 义务锁定版·视觉终稿后置 |
|
||||
| `level-map.md` | 关卡画面 UX spec:选路枢纽三停点布局、GP 常驻徽章、交互映射与拍板点 | 占位升格版·视觉终稿后置 |
|
||||
| `node-reward.md` | 节点奖励屏 UX spec:奖励节点三选一构筑点、可用池与池空直通(切片期过渡形态,随同调实施批退役改写) | v1.0(2026-09-29 本行 2026-09-30 补登) |
|
||||
| `settlement-summary.md` | 结算总结 UX spec:战斗总结结算(战斗胜利面)与冒险总结结算(冒险终结面)——两面分节的纯呈现轻量 spec | v1.0·纯呈现已实装面成文 |
|
||||
| `camp.md` | 营地覆盖层 UX spec:三柜台呈现、钥石余额、退役/封存件状态语义(存档级/局外呈现面) | v1.0 |
|
||||
| `shop.md` | 商店覆盖层 UX spec:三商品卡全陈列、GP 余额、购买/离开(中循环节点兑付呈现面) | v1.0 |
|
||||
| `level-map.md` | 关卡画面 UX spec:选路枢纽独立屏三停点布局、GP 常驻徽章、底栏状态栏 | 定稿版·独立屏+视觉终稿已冻结 |
|
||||
| `node-reward.md` | 节点奖励屏 UX spec:奖励节点提升三选一选择面、六种令牌池与刷新双源(与商店货架同库;通关三选一候选=纯专长,见 level-clear) | v2.5·令牌池在役 |
|
||||
| `settlement-summary.md` | 结算总结 UX spec:战斗总结结算(战斗胜利面)与冒险总结结算(冒险终结面)——两面分节的纯呈现轻量 spec | v1.2·纯呈现已实装面成文 |
|
||||
| `camp.md` | 营地覆盖层 UX spec:三柜台呈现、钥石余额、退役/封存件状态语义(存档级/局外呈现面) | v1.1 |
|
||||
| `shop.md` | 商店覆盖层 UX spec:令牌级货架(与三选一同池)、GP 余额与付费刷新、购买/离开(中循环节点兑付呈现面) | v1.1 |
|
||||
|
||||
## 子系统命名对照表(中文规范名 ↔ 英文代号)
|
||||
|
||||
现行文档、评审与沟通一律使用中文规范名;英文代号(大写)供代码标识符、工具链与提交信息使用,语义与中文名一一对应;「旧代号」仅用于解读 `design/archive/gdd-2026-09-14/` 只读归档与 2026-09-14 之前的历史记录,禁止在新文档中作为系统名称使用。
|
||||
现行文档、评审与沟通一律使用中文规范名;英文代号(大写)供代码标识符、工具链与提交信息使用,语义与中文名一一对应;「旧代号」仅用于解读 2026-09-14 之前的历史记录,禁止在新文档中作为系统名称使用。
|
||||
|
||||
| 循环 | 中文规范名 | 英文代号 | 旧代号 |
|
||||
|---|---|---|---|
|
||||
@@ -88,7 +92,7 @@
|
||||
| 排雷循环 | 排雷玩法 | `MINESWEEPER_RULES` | a2 |
|
||||
| 排雷循环 | 行动经济 | `ACTION_ECONOMY` | a3 |
|
||||
| 排雷循环 | 地形变异 | `TERRAIN_VARIATION` | a4 |
|
||||
| 排雷循环 | 秘宝 | `AUXILIARY_ITEMS` | a5 |
|
||||
| 跨局循环 | 秘宝 | `AUXILIARY_ITEMS` | a5 |
|
||||
| 战斗循环 | 战斗结算 | `COMBAT_RESOLUTION` | b1 |
|
||||
| 战斗循环 | 敌人系统 | `ENEMY_SYSTEM` | b2 |
|
||||
| 战斗循环 | 增益状态 | `STATUS_EFFECT` | b3 |
|
||||
@@ -101,6 +105,7 @@
|
||||
| 冒险循环 | 奇物 | `ADVENTURE_CURIO` | `ADVENTURE_FEATURE`(v1.0)→ `ADVENTURE_REWARD`(v2.0,v2.4 退役) |
|
||||
| 跨局循环 | 元进度 | `META_PROGRESS` | c4 |
|
||||
| 跨局循环 | 生涯 | `CAREER` | —(新立无旧代号,无代码实现面) |
|
||||
| 跨局循环 | 锻造工坊 | —(设计定案待实装,无代码实现面,代号随实装批对齐;2026-10-11 自「武器锻造」更名) | — |
|
||||
| 表现与支撑 | HUD框架 | `HUD_FRAMEWORK` | d1 |
|
||||
| 表现与支撑 | 数据配置 | `DATA_CONFIG` | d2 |
|
||||
| 表现与支撑 | 存档序列化 | `SAVE_SERIALIZATION` | d3 |
|
||||
@@ -110,12 +115,10 @@
|
||||
|
||||
> 2026-09-16 更名批注记:英文代号 `REWARD_ITEM_ECONOMY`(地图战斗资源)与 `AUXILIARY_ITEMS`(秘宝)暂沿用更名前名称(代码标识符与工具链口径),与中文名的对齐另批执行。
|
||||
|
||||
> 2026-10-05 消歧更名批注记(用户拍板):`AUXILIARY_ITEMS` 的中文规范名「魔法道具」→「**秘宝**」(理由与代码不同步的欠债登记见[秘宝](systems/排雷循环/秘宝.md) v0.9 版本行)。英文代号**继续沿用 `AUXILIARY_ITEMS` 不变**——代码标识符与工具链口径不动,对齐另批。
|
||||
> 2026-10-05 消歧更名批注记(用户拍板):`AUXILIARY_ITEMS` 的中文规范名「魔法道具」→「**秘宝**」(理由与代码不同步的欠债登记见[秘宝](systems/跨局循环/秘宝.md) v0.9 版本行)。英文代号**继续沿用 `AUXILIARY_ITEMS` 不变**——代码标识符与工具链口径不动,对齐另批。
|
||||
|
||||
> 四个循环本身的英文代号为 `MINESWEEPER_CYCLE`(排雷循环)、`COMBAT_CYCLE`(战斗循环)、`ADVENTURE_CYCLE`(冒险循环)、`PRESENTATION_SUPPORT`(表现与支撑)。
|
||||
|
||||
> 旧版参考:旧骨架系统索引 systems-index.md(gdd-2026-09-14 快照,已封存;封存归档目录待归位——2026-09-20 链接审计发现 design/archive 目录缺失,不再作路径引用)
|
||||
|
||||
## 版本历史
|
||||
|
||||
| v0.1 | 2026-09-15 | 根索引随新骨架建立:循环 × 子系统总表 + 子系统命名对照表 |
|
||||
@@ -130,13 +133,27 @@
|
||||
| v1.0 | 2026-09-27 | 节点图生成立项批(用户拍板立项——06 条目「关卡内结构随机生成」随批改状态):`systems/冒险循环/` 新建 `关卡节点图生成.md` 设计草案 v0.1(图模板/模板池/抽签三概念、三级台阶路线、MC 测量对账条款、五拍板点);文档树补行 + 命名对照表补 `NODE_MAP_GENERATION` 行 |
|
||||
| v1.1 | 2026-09-27 | 关卡画面 UX spec 建档(关卡画面 UX 批):`ux/` 表补 `level-map.md` 行——选路枢纽三停点布局、GP 常驻徽章、交互映射与 AC 成文,三项设计提案挂 06 待拍板 |
|
||||
| v1.2 | 2026-10-03 | R3 清账批(gdd_lint 分域随批):四处状态单元格日期批注迁出——敌人系统行事件见敌人系统.md 版本历史 v0.5(技能池批);元进度行见本表 v0.8;camp/shop 行=两文 v1.0 落文(2026-09-30 三裁决执行批);语义零变更 |
|
||||
| v1.3 | 2026-10-05 | **消歧更名批(用户拍板 2026-10-05)**:a5 行中文规范名「魔法道具」→「**秘宝**」,文档树文件名同步(systems/排雷循环/魔法道具.md → 秘宝.md);英文代号 `AUXILIARY_ITEMS` 沿用不变(代码标识符不同步属已知欠债,另批);旧代号列不变(a5 仍指 2026-09-14 归档快照)。更名理由为「魔法」一词已被本作征用为敌方侧伤害/护甲语汇(`魔法矢`/`魔法族`/`魔法护甲`),详见[秘宝](systems/排雷循环/秘宝.md) v0.9。历史定稿文档(research/qa/archive)原样保留 |
|
||||
| v1.3 | 2026-10-05 | **消歧更名批(用户拍板 2026-10-05)**:a5 行中文规范名「魔法道具」→「**秘宝**」,文档树文件名同步(systems/排雷循环/魔法道具.md → 秘宝.md);英文代号 `AUXILIARY_ITEMS` 沿用不变(代码标识符不同步属已知欠债,另批);旧代号列不变(a5 仍指 2026-09-14 归档快照)。更名理由为「魔法」一词已被本作征用为敌方侧伤害/护甲语汇(`魔法矢`/`魔法族`/`魔法护甲`),详见[秘宝](systems/跨局循环/秘宝.md) v0.9。历史定稿文档(research/qa/archive)原样保留 |
|
||||
| v1.4 | 2026-10-05 | 立《特性》:一次冒险内角色自身得到的提升——此前按内部分类被叫成三个名字(规则类称"流派件"、属性类称"数值件"、界面称"本关强化"),现收敛为一个对象的两种形态枚举;文档树冒险循环补行 + 命名对照表补 `ADVENTURE_FEATURE` 行 |
|
||||
| v1.5 | 2026-10-05 | 《特性》v1.1 分类重构:两类由"规则改写型 / 属性加成型"改为"属性提升(ASI)/ 专长(Feat)",属性提升内部再分纯属性组与特殊组;获取途径由两口共用池改为三条分工渠道(专长走特定节点、属性提升走奖励节点与商店)+罕见旁路"专长获取" |
|
||||
| v1.6 | 2026-10-05 | 《特性》改名为《奖励》并升 v2.0:顶层概念改为"一次冒险内各渠道给予玩家的增益总称",边界判据由"自身提升 vs 持有物"改为生命周期(当局清零的是奖励,跨局带走的是魔法道具);分类由两类扩为三个枚举(专长 / 属性值提升 / 资源与机会类),并新增分类 × 渠道交叉开关表——两根轴互不决定。文档树冒险循环行改名 + 命名对照表 `ADVENTURE_FEATURE` → `ADVENTURE_REWARD` |
|
||||
| v1.7 | 2026-10-05 | 《奖励》v2.1 交叉表收口:Boss 渠道只出专长(终局 Boss 不给),另两类在此不出现;新增「计价物不自售」规则处理金币不进商店——不拆第四个分类、不开特例,而是两轴交叉处的一条约束 |
|
||||
| v1.8 | 2026-10-05 | 《奖励》v2.2:专长在非 Boss 渠道改为「专长获取」门票形式(不直接给专长);渠道约束重构为三层(分类白名单/可计算谓词/显式例外清单),并承认「计价物不自售」形式上是白名单外的一道过滤、与死特判的区别在可计算;立默认原则——除已登记规则外分类内的都要在池子里,据此回复应在商店内(现行货架缺它,须补) |
|
||||
| v1.8 | 2026-10-05 | 《奖励》v2.2:专长在非 Boss 渠道改为「专长获取」凭证形式(不直接给专长);渠道约束重构为三层(分类白名单/可计算谓词/显式例外清单),并承认「计价物不自售」形式上是白名单外的一道过滤、与死特判的区别在可计算;立默认原则——除已登记规则外分类内的都要在池子里,据此回复应在商店内(现行货架缺它,须补) |
|
||||
| v1.9 | 2026-10-05 | 《奖励》改名为《奇物》并升 v2.4:顶层定名 Wondrous Item(DND 魔法物品九分类中的兜底杂类,官方中文译名「奇物」)。文档树冒险循环行改名;命名对照表 `ADVENTURE_REWARD` → `ADVENTURE_CURIO`(**不用 `reward_*`**——`reward_pick` 流 / `reward_node` context / `reward_preview` kind 已占用该词族) |
|
||||
| v1.10 | 2026-10-05 | 《奇物》v2.5:第三类定名「资源」(资源偏泛,故在命名出处节写死判据句——给的是可消耗或可重掷的余量,不是属性永久抬升);回复归属定案留在本类不拆第四类;修复 1.5 段末与渠道轴标题粘连 |
|
||||
| v1.11 | 2026-10-05 | 《奇物》v2.7 三个子节点正式定名:专长(Feat)/ 属性值提升(ASI)/ 资源——去「类」字后缀,此前是描述式叫法不是专名;新增 1.6 节「三层结构与命名」,定玩家可见的三层(奇物 / 三个分类 / 具体单件),并明确命名与呈现是两件事 |
|
||||
| v1.12 | 2026-10-06 | 生涯设计立项批(迭代 17 卡④,纯文档):新建 `systems/跨局循环/生涯.md` 设计提纲 v0.1(信息架构 / 承载内容清单 / 与既有界面关系 / 分期实装建议 / 待裁点五节;状态=范围草案待评审——P0-P5 已裁结论落文,新发现待裁点 P6 营地最近冒险条带去留)。文档树跨局循环补行 + 命名对照表补 `CAREER` 行(无代码实现面,代号随实装批对齐) |
|
||||
| v1.13 | 2026-10-07 | 道具三层职责分界批随批(用户裁——规则现行事实源=[核心循环](01-核心循环.md)「道具三层职责与分界」节 v1.4):秘宝行概要由「扫雷侧秘宝(显影、探测类)」(同调形态起已滞后)换代为「营地装配、整局冒险生效的角色机能件」;状态列随去迁移注记 |
|
||||
| v1.14 | 2026-10-07 | 奇物层重设计落地随批(现行事实源=[奇物](systems/冒险循环/奇物.md)版本历史 v2.9-v3.4——专长体系推倒重建+资源转换源+池结构案D+跨层档位框架):奇物行概要与状态同步——概要补「专长=触发器句式的机制件/资源=转换源凭证」,状态改「已实现·2026-10-07 专长体系重设计落地(18 件基础框架+池结构案D)」 |
|
||||
| v1.15 | 2026-10-09 | 旧档引用摘除批(用户令——旧版 GDD 归档 design/archive/gdd-2026-09-14/ 已删,全部指涉摘除):「旧代号」句不再指涉归档路径(仅解读 2026-09-14 之前历史记录);旧骨架索引参考行整行摘除。语义零变更 |
|
||||
| v1.16 | 2026-10-09 | 文档正确性审查批(ux 表五行在役态对齐):node-reward 行「v1.0·切片期过渡形态随同调实施批退役改写」过期——退役改写已兑现,改 v2.5 令牌池在役口径;level-map 行「占位升格版·视觉终稿后置」过期——改定稿版(独立屏+样张 v1 冻结);shop 行「三商品卡全陈列」过期——pool 模式在役,改令牌级货架+v1.1;camp/settlement-summary 行版本号顺延 v1.1/v1.2。文件清单一轮只读核对零死链 |
|
||||
| v1.17 | 2026-10-09 | B1 裁决落文(用户令——天赋树独立成文):跨局循环区补 `天赋树.md` 行(系统随迭代 12 实装在役,文档 v0.1 补写——机制以代码实态与迭代 12 落地裁决为据);命名对照表本批不动(代码标识符面 meta_tree 在役,代号登记另批) |
|
||||
| v1.19 | 2026-10-10 | **系统目录归位批(用户发现结构问题)**:`秘宝.md` 自排雷循环区迁入跨局循环区——生命周期裁定=解锁(秘宝匣+解锁条件表)/装配(营地柜台)/存档持久全在跨局侧,排雷循环仅生效现场;成因=前身「辅助道具」系切片期掉落形态故旧置排雷循环,同调换代未随迁。文档树两区换行+系统总表行移区+命名对照表不动(代号 AUXILIARY_ITEMS/旧代号 a5 不变);全仓引用路径 33 处随批同步(版本历史与注记行内的历史路径按纪律保留) | 武器锻造成文批(用户令「完成文档编写、代码不实现、记录待办」):跨局循环区补 `武器锻造.md` 行(v0.1 设计定案待实装——按 2026-10-07 提案推荐案落文,17 裁点开放在册待逐点裁决);系统总表补行(无代码实现面,代号随实装批对齐) |
|
||||
| v1.20 | 2026-10-11 | **术语表建立+全库术语统一批(用户令「专用术语表查表阅读」+危险格/整图/专长凭证三更名)**:顶层文档表补 `术语表.md` 行(v1.0——四节术语+退役词对照);同批全库更名=雷格/惩罚格→危险格、板级→整图、门票→专长凭证(清扫 7 文件约 270 处;排雷玩法定义句换代、秘宝.md v2.5 可读性批随批) |
|
||||
| v1.21 | 2026-10-11 | 文档一致性修复批(定时检查呈报项):顶层文档表术语表行多余版本列摘除(R6 列数一致);奇物/天赋树/武器锻造三行状态格修订注记改写为现行事实白话句并换代版本号(天赋树 v0.4 换代定稿 29 节点、武器锻造 v0.2),日期批注归本表版本历史承载(R3) |
|
||||
| v1.24 | 2026-10-12 | **迭代 20 反哺落文批·奇物行换代(用户裁④确认)**:奇物行状态格「基础框架 27 件,自爆流与生存件扩容后」→「迭代 20 专长实装批落地(29 行=基础 27+迁入 2,流派机制退役;池结构案D 四级 104,通关兑付=专长三选一按档配比加权)」 |
|
||||
| v1.22 | 2026-10-11 | 锻造工坊更名批随迁:`武器锻造.md` 改名 `锻造工坊.md`(系统更名,用户令),顶层文档表行与系统总表行随名换代并顺延版本注(v0.3);版本历史行内旧名按历史记载保留 |
|
||||
| v1.23 | 2026-10-11 | 锻造工坊 A 组定案随迁:锻造工坊行版本注换代 v0.4(A 组三裁+攻防所有权切分〔树脊柱砍攻/护两线,树侧 29→21 归天赋树会话交接批〕+钥匙无前置+2c/5a 结案) |
|
||||
| v1.25 | 2026-10-12 | **锻造工坊 B 组定案随迁(用户逐点裁决)**:锻造工坊行版本注换代 v0.5、描述格随裁换代——两区定名(武器锻造区/护甲锻造区)、三甲型统一命名「魔法护甲」、一次冒险各选一件、**满级特效本期不做留扩展位**;**17 裁点清零**(推翻推荐案四行 2a/3b/6/8a,撤回呈报子问 4a-1),开工门裁点侧已满足、仅剩用户发令;设计文档「裁决结果清单」+「工作间内容清单」两节为实装批需求卡片输入 |
|
||||
| v1.26 | 2026-10-13 | **Alpha 版本标准立文(用户令「先定里程碑内容」)**:顶层文档表补 `08-Alpha版本标准.md` 行——Alpha 版本包含哪些东西的清单,即里程碑 M3 的完成标准;只列条目不写内容,定义一律指路各权威文档。本文只管「有什么」,系统与内容的定义权仍归各自权威文档,本表不复制其内容 |
|
||||
| v1.27 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 2 处(关卡节点图生成行「拍板点全落文」→「拍板点全部已写入」;battle.md 行「Complete·随批修订」→「Complete·顺带修订」)+失同步修复 1 处(顶层文档表 08 行「已定稿 v1.0」→「已定稿 v1.4」,对齐 08 篇现行定稿版本) |
|
||||
@@ -36,9 +36,9 @@ MVP 不加新敌种,也不做同深度多敌种混搭;敌种扩容走数据
|
||||
|
||||
## 扫雷秘宝
|
||||
|
||||
registry 登记 **一套封闭清单**(数据表未建,属待落地内容):显影尘、工兵令、探宝罗盘、探巢摆钟、地穴全图卷、爆破工兵包——四个常规单功能加两个稀有组合。件数与登记现状以 `design/registry/entities.yaml` 为准。MVP 不新增。
|
||||
目录(重设计 v1)已定稿 **12 件**(普通 7 / 优秀 3 / 稀有 2——代号制,正式命名归用户;数值全 provisional 归调参批),现行事实源=[秘宝](systems/跨局循环/秘宝.md)「目录(重设计 v1)」节。数据行随实装批落表(同调件数据表 = `data/tables/treasure_items.tres`),MVP 不新增。
|
||||
|
||||
待定一句:显影尘与地穴全图卷的原效果绑定已从设计中移除的地形变异类型(见[不做清单](05-不做清单.md));显影尘与地穴全图卷的效果定位均随秘宝整体重设计归 Alpha;其余四件定义有效。
|
||||
旧目录(registry aux_items 六行:显影尘/工兵令/探宝罗盘/探巢摆钟/地穴全图卷/爆破工兵包,及过渡形态诸件)已全数退役、只作素材库(design/research/道具退役素材库.md);旧行删除与 registry 迁移归实装批。
|
||||
|
||||
## 增益与状态
|
||||
|
||||
@@ -54,7 +54,7 @@ MVP 不加新状态;扩容走 status_effects.tres 加行 + registry 登记。
|
||||
|
||||
## 元进度
|
||||
|
||||
**一套元进度配置**(`data/tables/meta.tres`,现行行数读表为准):属性锻造商品三行(生命上限 / 基础攻击 / 护甲等级的 flat 档与几何定价参数)、Boss 钥石两档三行(首杀 / 重复杀)、道具工坊阈值六行、区间平移换算率三行(数值占位 0 = 未标定合法态)。
|
||||
**一套元进度配置**(`data/tables/meta.tres`,现行行数读表为准):属性锻造商品三行(生命上限 / 基础攻击 / 护甲等级的 flat 档与几何定价参数)、Boss 钥石两档三行(首杀 / 重复杀)、秘宝匣阈值六行、区间平移换算率三行(数值占位 0 = 未标定合法态)。
|
||||
|
||||
数值全部 provisional(骨架先行、数值后置)——机制归[元进度](systems/跨局循环/元进度.md),数值标定随元进度设计批配读数。扩柜台或改定价结构走 meta.tres 加行 + registry 登记。
|
||||
|
||||
@@ -70,8 +70,6 @@ MVP 不加新状态;扩容走 status_effects.tres 加行 + registry 登记。
|
||||
- 新敌种、新棋盘档位、更高密度、同深度多敌种混搭
|
||||
- 秘宝清单之外的新件、状态表之外的新状态
|
||||
|
||||
> 旧版参考:../archive/gdd-2026-09-14/gdd.md
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
@@ -86,3 +84,6 @@ MVP 不加新状态;扩容走 status_effects.tres 加行 + registry 登记。
|
||||
| v0.8 | 2026-09-21 | **冒险结构实现批(与切片代码 / registry / 冒险结构 同批)**:层名表 L2/L3 状态行改「正式序列已生效」——首页「开始冒险」三关连探落地(AdventureRunner 编排;测试直入口保留);「更多关卡」行同步;正文零历史叙述纪律下仅状态口径更新,结构框架零改动 |
|
||||
| v0.9 | 2026-09-21 | **元进度实现批(与切片代码 / registry / 元进度 / 02 / 05 同批)**:「暂不做」节移除「元进度与跨局成长」行——跨局成长首批落地(营地三柜台 / 钥石账本 / 跨局注入,数值 provisional 归元进度设计批标定);新增「一套元进度配置」小节(meta.tres 四行族读表纪律,数值 provisional 归设计批) |
|
||||
| v1.0 | 2026-10-03 | R3 清账批(gdd_lint 分域随批):五处日期批注括注迁出——体例说明=本表 v0.3 事件;十八格=本表 v0.7 事件;正式序列=本表 v0.8 事件;三处用户拍板事件随行入账:显影尘/地穴全图卷效果定位归 Alpha 且原 06 待办条目移除(2026-09-20 拍板)、单关测试直入口退役且唯一试玩入口=完整冒险(2026-09-23 拍板)、反制道具与全局作用域排 Alpha(2026-09-20 拍板);语义零变更 |
|
||||
| v1.1 | 2026-10-09 | 文档正确性审查批:扫雷秘宝节过期订正——「registry 登记六件封闭清单(数据表未建)、其余四件定义有效」滞后于秘宝目录重设计(旧目录已全数退役、只作素材库),改写为目录(重设计 v1)15 件代号制+旧行删除归实装批;同调件数据表 treasure_items.tres 在役补记 |
|
||||
| v1.2 | 2026-10-10 | 元进度配置段柜台名扫改(2026-10-10 天赋树设计会话裁「道具工坊」改名「秘宝匣」):「道具工坊阈值六行」改「秘宝匣阈值六行」。体量数字零改动 |
|
||||
| v1.3 | 2026-10-11 | 文档一致性修复批(定时检查呈报项):扫雷秘宝节目录计数换代 15 件→12 件(普通 7/优秀 3/稀有 2——回能器删除、换装券撤消、第四只手删除三轮修正在本文件的漏网面,秘宝.md v2.7-v2.9 已载);该段超长拆两段(R1) |
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
- **数字可读性第一**:一切视觉让位给雷图数字的辨识——已开格底明度降档、亮墨数字直画,对比 ≥4.5:1 是硬指标(v3.0;复杂格底垫色牌兜底)。
|
||||
- **明亮为皮,明度分档为骨**:全局暖倾向、无压抑;格底明度分档承载数字可读,格面美术放开做花样(v3.0 替代「色牌为骨」)。
|
||||
- **格子即地牢地砖**:未开是覆尘完整砖,已开是碎裂裸露,惩罚格是被惊动的怪物巢穴;已开格按产出做整格表达,未开格加不携带信息的装饰变体;新关卡环境优先换色板,不加新资产。
|
||||
- **格子即地牢地砖**:未开是覆尘完整砖,已开是碎裂裸露,危险格是被惊动的怪物巢穴;已开格按产出做整格表达,未开格加不携带信息的装饰变体;新关卡环境优先换色板,不加新资产。
|
||||
|
||||
参考游戏三者相融(参考截图存于 `design/art/references/`):**Into the Breach** 取网格信息分层与"预告画在目标格上",雷图棋盘呈现基准取其战棋地块质感、但摆正为正俯视方格(禁等距斜视角,见美术圣经 §3.2);**Moonlighter** 取明亮像素地牢的暖砖质感;**Peglin** 取明快全年龄的地牢色彩。
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
|
||||
美术细则(色板、形状语言、图标契约、验收标准)见 `design/art/art-bible.md`(含参考与反参考,见其 §9)。
|
||||
|
||||
> 旧版参考:../archive/gdd-2026-09-14/game-concept.md
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
- **chord(经典扫雷的双击快开)**:本作每一格的兑现都要花行动点,chord 一键开一片会让行动点预算失去意义。
|
||||
- **抽象货币 / 中间资源折算**:扫雷收益全部直接兑成战斗效果,中间隔一层货币会稀释"排雷的因 = 战斗的果"这条因果可见的底线。**显式例外:格面金币(GP,显示名「金币」)**——金币有定名、明码定价与余额常驻呈现,因果链 = 排雷 → 战斗 → 金币 → 属性提升,每一段玩家都看得见,可见性底线不破;金币之外不再引入任何"扫雷收益折算成货币再兑换效果"的夹层。
|
||||
- **旗做成背包道具或限量**:旗只是棋盘上的标记,想用多少用多少;它的稀缺性由行动点价目承载,不做第二重限制。
|
||||
- **未开格显示奖励身份**:推雷是本作的本征玩法,预读会拆掉推理。允许"恢复推理原料"类道具(显影/预读窄域),不允许替代推理。
|
||||
- **未开格预读危险格与安全格**:扫雷是本作的本征玩法,预读「这格是不是雷」会拆掉推理。允许"恢复推理原料"类道具(显影/预读窄域),不允许替代推理。**类型身份不在本条禁止之列**——类型微光只读「这格兑什么」、不读危险格与安全格,推理本体不受蚀(呈现现行事实源归 [HUD框架](systems/表现与支撑/HUD框架.md)「未开格类型微光」节)。
|
||||
- **第二套随机惩罚**:所有风险都从雷和未知格派生,不再引入平行的随机惩罚源——惩罚多了,玩家就没法归因了。
|
||||
|
||||
## 现阶段不做(裁下来的,以后再说)
|
||||
@@ -24,8 +24,6 @@
|
||||
- **正式音频、教学引导、战斗动画演出、设置与本地化**:MVP 内的打磨项,一律排后。先验证核心循环,再谈好听好看。
|
||||
- **连刷 / 换图资金跨战斗携带**:现行规则是每场战斗清零,防滚雪球。是否解禁连刷策略,等实测数据说话。
|
||||
|
||||
> 旧版参考:../archive/gdd-2026-09-14/gdd.md
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
@@ -33,4 +31,5 @@
|
||||
| v1.0 | 2026-09-14 | 初版随 GDD 骨架建立:确定不做 / 现阶段不做两节 |
|
||||
| v1.1 | 2026-09-21 | 元进度实现批:元进度行注首批已落地(营地三柜台 / 钥石账本 / 跨局注入),数值 provisional 归设计批标定 |
|
||||
| v1.2 | 2026-10-03 | R3 清账批(gdd_lint 分域随批):元进度行日期批注迁出至本表 v1.1 行;语义零变更 |
|
||||
| v1.3 | 2026-10-03 | 道具替代推理边界锚复核(迭代 11 第①批同调实施批——任务书 §十连带):「允许恢复推理原料,不允许道具替代推理」边界锚**原样保留即通过**——同调目录九件逐件对表:真视/预读类=信息给付(探巢摆钟 3×3 窄域护栏承重),六被动=机制修正(禁裸 flat schema 强制),无一替代推理判定本体;复核零改动 |
|
||||
| v1.3 | 2026-10-03 | 道具替代推理边界锚复核(迭代 11 第①批同调实施批——需求卡片 §十连带):「允许恢复推理原料,不允许道具替代推理」边界锚**原样保留即通过**——同调目录九件逐件对表:真视/预读类=信息给付(探巢摆钟 3×3 窄域护栏承重),六被动=机制修正(禁裸 flat schema 强制),无一替代推理判定本体;复核零改动 |
|
||||
| v1.4 | 2026-10-07 | 道具三层重设计·地图层身份裁决(案甲,用户裁):第 14 条收窄——「未开格显示奖励身份」改「未开格预读危险格与安全格」,未开格类型微光(读类型不读危险格与安全格)移出禁止面;呈现现行事实源=HUD框架「未开格类型微光」节(定义与色带已定稿),实施归微光批;推理本体保护不变 |
|
||||
+467
-180
@@ -1,40 +1,111 @@
|
||||
# 06-待办清单
|
||||
|
||||
本清单是全项目待办事项的**唯一登记处**:各系统文档不再自建「待办」条目节,只留一行指路存根;新增待办事项一律直接登记本清单。条目按四个循环分组,组内按系统分节;每条事项一个四级标题,其下用粗体属性名成段——**现状**(现状与失义原因,自各系统文档原样搬运、措辞不改;跨文档重复条目合并为一条,登记在建议归属主责方名下,其余来源在现状中注明出处;相关但不同面的条目各自保留,现状末尾互相指认;搬运时仅将原文中的「本文 / 本系统」替换为对应系统名,并把相对链接改写为本文件位置可用的路径)、**归属**、**状态**。事项解决后**从本清单移除**(2026-09-18 用户拍板改口径,原"改状态留痕"废止):去向与依据登记当批台账与 active.md 快照,git 历史即留痕。
|
||||
本清单是全项目待办事项的**唯一登记处**:各系统文档不再自建「待办」条目节,只留一行指路存根;新增待办事项一律直接登记本清单。条目按四个循环分组,组内按系统分节;每条事项一个四级标题,其下用粗体属性名成段——**现状**(现状与失义原因,自各系统文档原样搬运、措辞不改;跨文档重复条目合并为一条,登记在建议归属主责方名下,其余来源在现状中注明出处;相关但不同面的条目各自保留,现状末尾互相指认;搬运时仅将原文中的「本文 / 本系统」替换为对应系统名,并把相对链接改写为本文件位置可用的路径)、**归属**、**状态**。事项解决后**从本清单移除**(2026-09-18 用户拍板改口径,原"改状态留痕"废止):去向与依据登记当批状态记录与 active.md 快照,git 历史即留痕。
|
||||
|
||||
#### UI 按钮状态矩阵缺档——悬停没有反馈、危险钮按下没有反馈、键盘焦点全站空白(2026-10-13 登记,UI 美化三层诊断 · 第一层)
|
||||
|
||||
**现状**:按钮至少应当具备常态 / 悬停 / 按下 / 禁用 / 键盘焦点五种状态,目前全站五种状态的覆盖数量很不齐(`ui_kit.gd` 里常态四处、悬停四处、按下三处、禁用一处、**键盘焦点零处**),具体三处缺档:①普通按钮的贴皮函数(第 541 到 555 行)把悬停态填的是**常态那张图**,等于鼠标移上去外观纹丝不动,同时它把悬停文字色也填成了同常态一样的墨色,两个通道一起失效;②危险钮(第 591 行起)只填了常态与悬停,**没有按下态也没有禁用态**,按下去没有下沉反馈;③全站没有任何键盘焦点样式,走的是引擎默认的灰色描边——这一点正好卡在本清单「棋盘战斗键盘/手柄输入」那条 Beta 待办的连带裁决点③(弹层界面的焦点导航要不要同批做)前面,**焦点态是它的前置件**。**影响**:这些不是纸面问题,玩家在实机上会直接感觉到"点了没反应"。
|
||||
|
||||
**归属**:呈现层表现批(纯工程;素材已有按钮常态与按下两张图)
|
||||
|
||||
**状态**:**已完成(2026-10-14,迭代 26 T1「UI 交互与观感批」完成)**——五态矩阵补齐:普通钮悬停=常态图+modulate 1.06 提亮(乙案落地,代拍板1)、禁用=本族底+α0.45 幽灵化(甲案,代拍板2,取代旧「disabled=按压图」错配)、焦点=INK 2px 内缩 1px 环(甲案,代拍板3,逐实例 override、主题层零新增)、危险钮补本族 pressed(深红 darkened(0.18) 深档)+disabled+focus;冒烟 V1/V2 断言 35 条在闸(四工厂逐只五态非空/hover≠normal/disabled≠pressed/危险钮非石纹/焦点环参数锚定+主题双红线维持)。原待拍板点(悬停甲/乙)已由 grilling 第一轮②裁乙案。键盘导航批量面归「棋盘战斗键盘/手柄输入」Beta 条连带裁决点③(本批焦点态是其前置件,已交付)
|
||||
|
||||
#### 全局纹理过滤未设为邻近采样——像素资源非整数倍缩放会发糊(2026-10-13 登记,UI 美化三层诊断 · 第一层)
|
||||
|
||||
**现状**:`game/project.godot` 里没有设置全局的画布纹理过滤方式,引擎默认是线性插值(会把像素图的硬边算成模糊过渡)。像素美术的游戏应当全局设为邻近采样。现行做法是逐个位置手工写死——`ui_kit.gd` 的石纹底噪与图标容器、以及 `standee_body.gd` 第 222 行的站桩立绘都各自手写了邻近采样,其余位置则没有。这种"想起来才设一个"的写法容易漏,凡是漏掉的像素图在非整数倍缩放下都会糊。
|
||||
|
||||
**归属**:呈现层表现批(一行渲染设置)
|
||||
|
||||
**状态**:**已完成(2026-10-14,迭代 26 T2 完成)**——`project.godot` `[rendering]` 增 `textures/canvas_textures/default_texture_filter=0`(Nearest);T0 翻转面全枚举闭合:无显式 filter 的纹理节点仅 3 处(ui_kit vignette/beams/gradient_base)已挂显式 LINEAR 白名单,九宫格 UI 皮与主题石纹样式盒翻 Nearest=意图面,.tscn 零纹理节点;冒烟 V3 断言 6 条在闸。原风险提示(改前须确认无资源依赖线性插值)已由枚举+白名单+实机目检项(07 ㉕)覆盖
|
||||
|
||||
#### UI 贴图重构批——营地与元进度件仍是程序化占位(原登记在美术侧,2026-10-13 由 UI 美化三层诊断转立本清单专条)
|
||||
|
||||
**现状**:营地的柜台场景贴图目前是程序化画出来的临时形态,没有上贴图。这条债原先只写在美术侧的资产清单里([美术资产清单](../art/art-assets-checklist.md) 第 134 行与第 175 行,原文注明"营地现为程序化占位,状态记录 121⑧ 口径,排期归 UI 贴图重构批"),规格其实已经定了——烛光黄 `#F6C667` 配木色 `#8A5A34`(见 [美术圣经](../art/art-bible.md) §4.4),素材来源允许走"通用图标改色复用"这条低成本渠道。
|
||||
|
||||
**归属**:UI 贴图重构批(美术线;须先裁决是自己画还是找 CC0 素材改色,两条备选见 [美术资产清单](../art/art-assets-checklist.md) §0 的复用渠道闸)
|
||||
|
||||
**状态**:待办(**Alpha 阶段需完成**)——本条自美术资产清单转立,是为了避免在两处各写一份内容;**素材的状态视图仍以 [美术素材状态清单](../art/art-status-checklist.md) 为准,本条只承载排期决定**。
|
||||
|
||||
#### UI 字体补完——缺拉丁像素字专件、且全局只有一个字重(2026-10-13 登记,UI 美化三层诊断 · 第二层)
|
||||
|
||||
**现状**:现在全局只有一套字(`ui_font_fusion_pixel_zh_hans.ttf`,缝合像素字体,中文覆盖好、授权干净,2026-09-27 用户拍板)。但 [美术圣经](../art/art-bible.md) §7.4 定的口径其实是**两套搭配**:拉丁用 Kenney 的像素字、中文用 Fusion Pixel。更要紧的是字重纪律——该条款允许"字号档差 + 墨色深浅 + 字重两档"三个手段一起做信息层级,现在只有单字重,等于层级只能靠字号档差这一个手段,这就是实机上"屏标题看起来不够重、标题跟正文拉不开"的根因([美术素材状态清单](../art/art-status-checklist.md) 把字体标为占位在役,也是这个意思)。
|
||||
|
||||
**归属**:呈现层表现批 + 美术线(须先裁决:补不补拉丁专件、要不要上第二个字重)
|
||||
|
||||
**状态**:待办(**Alpha 阶段需完成**)
|
||||
|
||||
#### 战斗一屏样张 P0 未开工——界面成品是否过审的那把尺子还没建(2026-10-13 登记,UI 美化三层诊断 · 第二层)
|
||||
|
||||
**现状**:[美术圣经](../art/art-bible.md) §7.1 明文写着"程序化占位=临时态,任何屏的终稿闸=§1.4 整屏样张过闸;占位态禁止跨里程碑"。而 [美术素材状态清单](../art/art-status-checklist.md) 把「战斗一屏样张」这件最高优先级的素材标的是**未开始**——也就是说,**判定界面美术算不算过关的那把尺子到现在还没造出来**。看板总账十五件:已完成四件、占位在役八件、未开始三件。
|
||||
|
||||
**归属**:美术线(战斗一屏样张的验收标准归 [战斗表现](systems/战斗循环/战斗表现.md) 与 [美术圣经](../art/art-bible.md) §5.1 共裁)
|
||||
|
||||
**状态**:待办(**Alpha 阶段需完成**)——**意义提示**:按圣经条款,占位态禁止跨里程碑,本条只要不做,界面美术就始终处于未定稿状态,上面所有呈现层改动做完也缺少验收依据。**2026-10-16 用户令编入迭代 30**(UI 呈现三卡批序位②,需求卡片=[战斗一屏样张批](../research/需求卡片-战斗一屏样张批-2026-10-16.md) v1.2 裁点已留痕;开工门=U0 `/iter` 发令)。
|
||||
|
||||
#### UI 氛围层与九宫格切片观感修——光柱硬边与面板切片错位(2026-10-13 登记,UI 美化三层诊断 · 第三层)
|
||||
|
||||
**现状**:两处画法在实机上能直接看出瑕疵,成因同属"图表与参数没调到位",此前未在任何登记处在册:①背景斜光带的做法是生成一张 560×560 的贴片(`ui_kit.gd` 第 263 行起),贴片里只有一条宽 100 像素、**边缘没有任何过渡**的斜向亮带,透明度整条一样是 0.05,再平铺满全屏——铺开后就是等距的三块硬边梯形,看着像"屏幕上贴了三块白色补丁"而不是光。正常的光带应当横向有渐变、纵向有上亮下暗的衰减。②结算屏与图例屏的面板边缘能看到错位的小方块,这是九宫格切片参数与素材尺寸不匹配造成的拉伸接缝——仪式石框(258 字节的小图)按 12 像素切片、石板亮面板(314 字节)按 16 像素切片,铺到四百多像素宽的面板上时中段就会被拉出可见错位。
|
||||
|
||||
**归属**:呈现层表现批(光柱纯改代码;九宫格切片需连带核对素材尺寸能否撑住新切片值,可能要重出素材,属美术线连带面)
|
||||
|
||||
**状态**:**半完成(2026-10-14,迭代 26 T4 完成)**——①光柱硬边**已修**:带内 alpha 0→0.05→0 三角过渡+纵向衰减上亮下暗(连续 alpha 方案,grilling Q7 裁;纹理 filter 挂 LINEAR 白名单);冒烟 T4 结构断言 3 条在闸。②九宫格切片错位**存续**(未动)——须先核素材尺寸能否撑住新切片值(border_stone 48×48 按 12 切片、panel_stone 48×48 按 16 切片,铺到四百多像素宽面板的拉伸接缝),可能要重出素材=美术线连带面,归后续贴图批次
|
||||
|
||||
#### UI 元素细节修——滑轨填充不可辨、图标垫深块、留白失衡、开发件外泄(2026-10-13 登记,UI 美化三层诊断 · 第三层)
|
||||
|
||||
**现状**:四处细节都是实机上的可见问题,均已核查确认未在任何登记处在册:①设置面的音量滑轨,"已填的那一段"和"没填的那一段"是同一个深棕色,玩家看不出当前值在哪——这条其实触犯了 [美术圣经](../art/art-bible.md) §7.2 的可读性硬条款;②商店与三选一的卡片上,图标一律垫一块颜色很深的方形底色块,在米色卡面上像硬贴上去的一块补丁;③留白失衡——商店三张卡片只占屏幕上半部分、下面近一半空着,三选一同款,营地三栏不等高(第一栏比旁边两栏矮一截);④主菜单及各屏左下角常驻一个"诊断转储"按钮(开发调试件),玩家看得见——2026-09-29 那轮界面重设计的对比报告里就已经把它列成"开发占位外泄、应从玩家画面移除",至今未处理。
|
||||
|
||||
> **⚠ 措辞订正(2026-10-14,迭代 25 反哺②落文——用户裁「全部按呈报落文」)**:本条①原诊断描述「两段是同一个深棕色」与代码面不符——实为暖石 #B8A582 / 深棕 #7A5232(2.84:1,低于 3:1 图形参考线)。「偏难辨」成立、「同色」不成立;修复按「两段对比不足」定性走(迭代 25 滑轨词条重配两段对比度,已销号)。
|
||||
|
||||
**归属**:呈现层表现批
|
||||
|
||||
**状态**:**已完成(2026-10-14,迭代 26 T5/T5b 完成)**——②③④全部落地:②图标垫深块(明度差降档:BCard 图标槽换 SLOT_BACKDROP_SOFT #806A4E 柔和档,对米色卡面 3.69:1〔旧 8.53:1〕,白图标 5.14:1 ≥3:1 硬约束;范围按实查订正=仅三选一 BCard,商店卡实为纯文字行卡无图标);③留白失衡(商店卡片区 ALIGNMENT_CENTER 垂直居中;营地四栏等高=三 holder 统一 min 高 336+四面板纵向 FILL+锁文居中;范围按实查订正=仅商店+营地,三选一已居中);④诊断转储钮退出玩家画面(迁调试浮窗,grilling Q8 裁甲,dump_diagnosis 卡死取证保留)。①滑轨填充已随迭代 25 注销。本条四项全部完成,整条注销
|
||||
|
||||
#### 需求卡片:UI 交互与观感批(2026-10-13 成文,待裁)
|
||||
|
||||
**内容**:UI 美化三层诊断剩余可纯工程落地部分的完成批,六项——①按钮五态矩阵补齐(普通钮悬停态甲/乙待裁、禁用态错配修正、危险钮本族按下态、三工厂焦点样式盒);②全局纹理过滤设邻近采样(project.godot 一行+显式 LINEAR 白名单+翻转面枚举);③三处 <4.5:1 文字位换墨(站桩护甲徽标两处+敌顺位徽标+RAP 反馈行,机检断言锚定);④光柱硬边修(带内 alpha 渐变+纵向衰减);⑤元素细节余②③(BCard 图标槽明度差降档、商店卡片区垂直居中、营地四栏等高);⑥诊断转储钮移入调试浮窗。**范围按代码实查订正**( iter25 滑轨条同款订正先例):②垫块仅三选一 BCard 一处(商店卡实为纯文字行卡无图标);③仅商店+营地(三选一卡片区实查已居中);危险钮「无按下态」订正为「按下态在但皮肤错配(红钮承石纹按压图)」。任务卡 T0-T6 共 ≈2–2.5d,验证闸 V1-V7,代拍板白名单八项,反哺点三条。
|
||||
|
||||
**指针**:`design/research/需求卡片-UI交互与观感批-2026-10-13.md`
|
||||
|
||||
**状态**:**已完成(2026-10-14,迭代 26 总完成——单会话 /goal+iter U0 全量交付)**——六项全落地(T0 基线+枚举/T1 五态/T2 Nearest+白名单/T3 换墨/T4 光柱/T5 细节/T5b 诊断钮),冒烟 987→1055/0(+68 断言)+run_all 25 套+probe click/full+render_gate golden 处置在册+doc 三闸/熵增对基线零新增;MC 零跑(零数值零行为=纯呈现)。上方第一层第二/三条、第三层四条(<4.5:1/氛围层光柱半/元素细节余项)按卡片 §5 同步面已注销或改写;实现报告已退役(git 历史可考);反哺点四条见下条,已于 2026-10-14 用户裁决写入
|
||||
|
||||
#### 迭代 26 UI 交互与观感批——GDD 反哺点四条(2026-10-14 顺带登记,待用户逐点裁决另批写入文档)
|
||||
|
||||
**来源**:迭代 26 实现报告 §五(已退役,git 历史可考)——实现与 [美术圣经](../art/art-bible.md) 的差异/缺口,按 2026-10-10 文档同步闸 v2 立规:设计权威文档不顺带直改,逐点待用户裁决后另批写入文档。
|
||||
|
||||
- **反哺点①(§7 按钮五态/焦点态规格缺项)**:art-bible §7 无按钮五态(悬停/按下/禁用/键盘焦点)与焦点环的规格条款,本批实现(modulate 1.06 提亮/α0.45 幽灵化/INK 2px 内缩 1px 环)目前是**临时权威**——是否立条款、值是否冻结待裁。
|
||||
- **反哺点②(§7/§8.2 平滑渐变件白名单无例外条款)**:全局 Nearest 下 vignette/gradient_base/beams 三件程序化平滑渐变挂显式 LINEAR,属对「像素风全局邻近」的有意豁免;art-bible 无相应例外条款(§8.2 已有状态图标抗锯齿例外先例可援)——豁免清单是否入册待裁。
|
||||
- **反哺点③(§4.1 新色 token 语义岗登记)**:本批新立三 token——GOLD_BRIGHT #E0B860(金族亮档)/HERO_BLUE_BRIGHT #7EBAF0(小人蓝亮档)/SLOT_BACKDROP_SOFT #806A4E(图标槽柔和档),§4.1 语义岗未登记——语义命名与值是否转正待裁。
|
||||
- **反哺点④(氛围层风格一致性)**:vignette/gradient_base/beams 保平滑连续 alpha,与卡顶类型色带 DitherBand 的 Bayer 有序抖动派并存——grilling Q5 已裁「保平滑」,两派不一致性留整屏样张批统一裁决(样张批未开工,06 在册)。
|
||||
|
||||
**归属**:[美术圣经](../art/art-bible.md) §7/§4.1/§8.2(裁决后另批写入文档)
|
||||
|
||||
**状态**:✅ **已写入(2026-10-14,用户裁「全部按呈报写入文档」——qa 收尾批同批)**——①③④落**art-bible.md v3.14**(①=§7.6(一) 按钮五态矩阵转正〔悬停 modulate 1.06/禁用 α0.45 幽灵化/焦点 INK 2px 内缩 1px 环〕;③=§4.1 三枚新 token 语义岗登记+色板计数 42→45;④=§7.6(三) 氛围层两派并存留整屏样张批统一裁决);②落**art-bible.md v3.14 §8.2**(全局 Nearest+三件程序化平滑渐变 LINEAR 豁免清单入册)。报告 §五已逐条标注落点
|
||||
|
||||
#### 状态面板瘦身——局内面板去跨关解锁内容、只留本局信息(2026-10-16 playnote 用户反馈,同日令写进 08 与 06)
|
||||
|
||||
**现状**:来源 = playnote 用户反馈「关卡界面中的"状态"界面不需要有具体的解锁内容……只显示跟当前冒险有关的内容,不需要有跨关的这种解锁信息;比如带的秘宝、获取的专长、当前的属性、现有的 GP、总共的钥石」。现行实态(status_panel.gd 实查)=局内状态面板(2026-10-13 由「暂停层」改名)现为跨局进度镜像:钥石余额徽+「道具工坊 · 解锁态」段(实为秘宝匣 12 行解锁态概览,迭代 22 T2 换代,解锁文案与营地柜台同口径)+「天赋树 · 已购概览」段——恰为用户要去掉的跨关解锁内容。
|
||||
|
||||
**范围(用户原话五件套,零待裁点)**:面板只留本局信息——带的秘宝 / 已获专长 / 当前属性 / 现有 GP / 钥石总量;秘宝匣解锁态 12 行概览与天赋树已购概览两段退役(跨局解锁概览由营地 / 生涯承载,局内不再镜像);面板标题与提示行文案随新定位换代(现行「查看本局钥石与永久强化进度」语义失效)。
|
||||
|
||||
**归属**:status_panel.gd(呈现层承载)+ [元进度](systems/跨局循环/元进度.md)「解锁双入口框架」节与 [camp](ux/camp.md) 双入口框架句(局内只读入口语义随瘦身穿改——设计权威文档反哺点,待用户裁决另批)+ [08-Alpha版本标准](08-Alpha版本标准.md)「三 · 界面」状态面板行(v1.8 起部分在役)
|
||||
|
||||
**状态**:待办(**Alpha 阶段需完成**)——零待裁点(五件套为用户原话清单;2026-10-16 用户令「不需要讨论的写进 08 并同步 06」);未排期,开工 = 用户发令或随 UI 批编入。
|
||||
|
||||
#### 旧行为 MC 行为锚全数作废——重锚归数值批(2026-10-06 登记)
|
||||
|
||||
**现状**:案C 地图伤害账殿后批(git 7ef18ac,台账 371)改变每轮结算行为序——授予段不再兑付任何伤害(伤害形态单据暂存至战斗段末,段内序=主角先手→逐敌还手→地图账),主角死亡短路语义随之换代(「授予段伤害致死短路先手」路径消失)。既有全部 MC 行为锚与对拍锚所锚行为已不存在,**全数作废**;新段内序断言已入冒烟闸。按 sim-data MC 缓存层规则(无数值调整禁重跑),重锚不在改动批执行。
|
||||
**现状**:案C 地图伤害账殿后批(git 7ef18ac,状态记录 371)改变每轮结算行为序——授予段不再兑付任何伤害(伤害形态单据暂存至战斗段末,段内序=主角先手→逐敌还手→地图账),主角死亡短路语义随之换代(「授予段伤害致死短路先手」路径消失)。既有全部 MC 行为锚与基线逐项比对锚所锚行为已不存在,**全数作废**;新段内序断言已入冒烟闸。按 sim-data MC 缓存层规则(无数值调整禁重跑),重锚不在改动批执行。
|
||||
|
||||
**归属**:M-4 数值批(用户 2026-10-06 确认此为影响数值难度的重要变量)。
|
||||
|
||||
**状态**:待数值批触发时重采;重锚前一切 MC 旧读数只作历史存档,不得与新行为对拍。——**已增补进 roadmap 迭代 18 M4 数值批〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 在飞开发〕任务书 v1.1(2026-10-06:T0 推算稿第五件+T6 四带复算按案C 新行为首采;design/research/任务书-M4数值批-2026-10-05.md)**
|
||||
**状态**:待数值批触发时重采;重锚前一切 MC 旧读数只作历史存档,禁止与新行为逐项比对。——**已增补进 Alpha 收官 M4 数值批〔未排期,2026-10-07 用户令移出迭代 18 暂不启动〕〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 正在执行中的开发〕需求卡片 v1.1(2026-10-06:T0 推算稿第五件+T6 四带复算按案C 新行为首采;design/research/需求卡片-M4数值批-2026-10-05.md)**
|
||||
|
||||
#### 内容数据驱动扩展批——已立项迭代 17 头卡(2026-10-06 登记,同日全裁)
|
||||
#### 双层 BD 延期与备选内容总登记(2026-10-03 立项——需求卡片退役保险)
|
||||
|
||||
**现状**:调研报告落籍 master(=[研究-内容数据驱动扩展架构-2026-10-06](../research/研究-内容数据驱动扩展架构-2026-10-06.md))——用户两问结论:①改已有物品数值/名字/稀有度/投放渠道=**纯配置成立**(全内容族 `.tres` 数据表+schema 加载校验+悬空引用致命);②换全新效果行为/加带新效果的新物品/加机制类新专长=**现状必改代码**(专长 23 挂点封闭枚举 `feat_table.gd:36-67`+求值段逐个 match 展开 `battle_orchestrator.gd:101-179`+消费点约 24 处散布;秘宝被动件按 id 硬编码六件;效果文案硬编码三处)。项目内已有完全数据驱动范本=技能池(`skills.tres` 加行+`enemy.tres` pool 引用零代码)。mod 成熟游戏四共性(Minecraft 数据包/Factorio 原型/RimWorld Defs,前两者官方文档核对):内容=数据+机制=通用解释器、语义事件时机+内容订阅、条件通用词汇复用、加载期注册校验闸。
|
||||
|
||||
**裁决实录(2026-10-06 用户盘问轮逐条裁定,全落任务书 §二)**:案乙当选;架构=发布订阅同步 emit(事件=`.on("xxx")` 的 topic;订阅后逻辑=效果类型;叠加=组合规则,禁自造词);仅一个改写窗口不做拦截器链;一事件多订阅常态、冲突由 5 条组合规则封死;旧 23 挂点枚举删除(2 个退化条件行);**范围判据=现有实现全改造(含 luck_coin 经 reward_roll 迁移+文案表值化),06 在册待办只登记不实施**(curio_roll/shop_purchase/gp_settle 三事件登记暂不做);框架先行发射点全埋;一个迭代四模块垂直切一次合并;词汇表定稿=实施 17 事件+效果类型 16+组合规则 5。
|
||||
|
||||
**归属**:迭代 17 卡⓪(头卡,用户令插队——①-④卡顺延);任务书=[任务书-内容数据驱动扩展批-2026-10-06](../research/任务书-内容数据驱动扩展批-2026-10-06.md)(T0-T7≈4.5d,零待裁点)
|
||||
|
||||
**状态**:**已实施完成(2026-10-06 当日立项当日落地——worktree iter17-dd 分支待合并)**:T1 框架(效果引擎+16 发射点,commit 7d157b3)→T2 词汇落码(225765f)→T3 专长 27 行迁移+旧挂点枚举消亡(e28a6cb)→T4/T5 秘宝六件+掘进蓄能受理闸+令牌兑付收敛(a33ddaf)→T6 回归闸全绿(冒烟 800 项 0 失败、单元 17 套、探针闸含 click、MC 二档对拍 40 局同种子**逐位一致**——post 锚 `sim-data/runsum_iter17dd_post_{off,formed}_n20_20261006.jsonl` 留盘);出口报告=[iter17-datadrive-exit-report-2026-10-06](../qa/iter17-datadrive-exit-report-2026-10-06.md)。遗留人闸两项随报告呈报(dig_charge 积点模判定留编排器侧=词汇表边界;主动件 kind 词族全量 rename 不随批)
|
||||
|
||||
#### 菜单开局未传同调装配与局外树规则——疑似缺陷待复验(2026-10-06 登记)
|
||||
|
||||
**现状**:`main.gd:475` `_start_adventure` 参数面只传 `hero_override`/`first_script`/`treasure_unlocked`/`shop_mode` 四键,未传 `attunement`/`attune_refresh_y`/`tree_rules`;runner 受理面存在(`adventure_runner.gd:128-137`,缺省空数组=白板开局);营地装配持久化于 `save.attunement_equipped`(`meta_progression.gd:354-366`)但呈现层开局无传参调用——**主菜单开新局时,营地装配的同调件与局外天赋树规则键疑似不生效**。冒烟未拦系 smoke_all 直呼 runner 参数面(`smoke_all.gd:4304` 有传参)跳过了呈现层。2026-10-06 数据驱动架构调研顺带发现,本人已复核传参面代码,未实机复验。
|
||||
|
||||
**归属**:缺陷修复 mini-loop(复验+修复待用户令)
|
||||
|
||||
**状态**:待办(疑似缺陷,未实机复验)
|
||||
|
||||
#### 双层 BD 延期与备选内容总登记(2026-10-03 立项——任务书退役保险)
|
||||
|
||||
**目的**:任务书/整合定稿系中间文档,落地完成后按吸收即死退役——用户令「只删除已完成落地的内容」,本条自承载全部**未落地**内容防丢失(每项自包含,不依赖指针)。
|
||||
**目的**:需求卡片/整合定稿系中间文档,落地完成后按吸收即死退役——用户令「只删除已完成落地的内容」,本条自承载全部**未落地**内容防丢失(每项自包含,不依赖指针)。
|
||||
|
||||
**二期件组**(触发=迭代 12 出口读数+用户点名立项;各件机制形态已定,数值 provisional):
|
||||
- **战斗→扫雷跨阶段回流**(穿刺流):击杀轻甲敌人返还 1 AP——战斗收益反哺开格动机;AP 经济新管道,谨慎件(威胁红线③边缘,立项须专项论证)
|
||||
- **穿甲锥**(穿刺×标旗协同桥):对被控制巢穴的敌人穿刺伤害再提升
|
||||
- **穿甲锥**(穿刺×标旗协同桥):对被控制危险格的敌人穿刺伤害再提升
|
||||
- **孤注一掷**(普攻流二期锚点件):每轮攻击次数减至 1、该次伤害大幅倍增——攻击频率规则改写
|
||||
- **悬浮魔法球**(魔法流二期):轮末召唤物环绕,每轮自动对最强敌人造成魔法伤害——需战斗单位系统新增实体类型(召唤物/持续伤害源)
|
||||
- **商店置换服务「符文重铸」**:攻击类型族后期流派转换(花 GP 重掷攻击类型相关件)——商店新交互
|
||||
@@ -45,98 +116,95 @@
|
||||
|
||||
**R4 乙备选案(2026-10-03 用户裁甲=信息型永不对冲,本组冻结)**:
|
||||
- 信息型清除工具件族(「除尘风箱」类:限价限量清除藤蔓/烬覆/矿尘遮蔽、恢复数字)
|
||||
- 深挖钻头原案(开出深层资源、代价=「雷位信息 −1」主动吃信息税——现行已改设计为非信息税形态:代价候选=额外 ~1 AP 或踩雷惩罚加重)
|
||||
- 深挖钻头原案(开出深层资源、代价=「危险格位置信息 −1」主动吃信息税——现行已改设计为非信息税形态:代价候选=额外 ~1 AP 或踩雷惩罚加重)
|
||||
- 「概率收窄」类派生动词(花 AP 把某格是雷的概率收窄,非确定信息)
|
||||
- **重启条件=R4 复查闸读数支持(信息型挫败信号,T10 呈报)+用户显式放宽红线①边界**——本组重启属红线变更,须用户发起
|
||||
|
||||
**设计知识存续口径**:七流派完整件表/逐项反例条件表/天赋树后备语言(哈迪斯 2 预算制扩容/邻接树改型/GP 价格通胀防线)存整合定稿,随实施批文档吸收迁入各 GDD 正主(元进度/node-reward/战斗结算/地形变异/行动经济/秘宝边界句/商店 spec)——**吸收完成前定稿不删**;喂雷流待办见上条遗留登记。
|
||||
**设计知识存续口径**:七流派完整件表/逐项反例条件表/天赋树后备语言(哈迪斯 2 预算制扩容/邻接树改型/GP 价格通胀防线)存整合定稿,随实施批文档吸收迁入各 GDD 权威文档(元进度/node-reward/战斗结算/地形变异/行动经济/秘宝边界句/商店 spec)——**吸收完成前定稿不删**;喂雷流待办见上条遗留登记。
|
||||
|
||||
#### 冒险 BD 各分类获取同渠道、纯概率差——渠道分工目标态(2026-10-04 提问登记;2026-10-05 用户定分工)
|
||||
#### 关卡节点图重构——可选节点太少(2026-10-13 用户定性为重构,须先做文档设计)
|
||||
|
||||
**现状**:BD 分层口径(用户定):基础 BD(账号级,局外天赋树+同调装配)与冒险 BD(局内一次冒险的构筑)两层;冒险 BD 的加强物 = **奇物**(2026-10-05 定名,v2.4 由「奖励」改名、v2.0 由「特性」改名,定义见 [奇物](systems/冒险循环/奇物.md)),下分**三个枚举分类**:**专长**(专长——改规则、带流派标签与档位激活,构筑核心)、**属性值提升**(生命/AC/攻击三轴,写统一加算区;账本实为冒险域、关间不清零)、**资源**(行动点上限·刷新次数·金币·回复——给"可用的量",命名待定)。旧称「流派件 / 数值件 / 本关强化」一律作废;v1.0 的「规则改写型 / 属性加成型」与 v1.1 的两分类亦作废。现行三个分类**共用同一获取渠道**:三选一(奖励节点+通关)+ 商店货架 + 格面令牌同属 98 张固定配额池(普通 70/稀有 25/罕见 3),专长只占稀有/罕见档(与属性大件混编),商店仅「货架零专长挤掉一张普通卡」保底——获取途径与条件完全相同、仅概率不同,构筑核心的获取节奏纯看脸。
|
||||
**现状**:来源 = playnote 用户试玩记录「关卡节点图展示得有问题,希望可以优化一下。可以参考哥布林弹珠的那种方式去移动」。2026-10-13 用户明确定性:**这是当前关卡节点图的重构,不是呈现优化**——理由是**现在的可选节点太少**(用户原话),所以不是换一种画法或移动方式就能解决的事。
|
||||
|
||||
**用户定案(2026-10-05,v2.1 收口)**:分类 × 渠道交叉开关表——
|
||||
**现行实态**(`level.tres` 实查,三关各 5 张模板):**第一关五张模板全是单链排列变体**——7 个节点 = 战斗 ×4 + 奖励 + 休整 + Boss,战斗深度序单调保难度坡,**变化面只有奖励与休整两位的先后次序**,全链零分叉,玩家在选路上**没有任何选择**;第二 / 三关是网状图(10 节点,带 `next` 分支,最大层宽 4–5),有分叉,但用户仍判选择量不足。参考方向 = Peglin(哥布林弹珠)的节点图移动与选路方式。
|
||||
|
||||
| 分类 \ 渠道 | 奖励节点 | 商店 | 关底 Boss 击败=通过这一关(末关不给) |
|
||||
|---|---|---|---|
|
||||
| 专长 | **门票形式** | **门票形式** | **直接给**(唯一直接渠道) |
|
||||
| 属性值提升 | 出 | 出(训练) | 不出现 |
|
||||
| 资源 | 出 | 出(金币除外;**回复在内**) | 不出现 |
|
||||
**范围(重构面,非呈现面)**:节点数量、分叉度、选路自由度。连带三面——① [关卡节点图生成](systems/冒险循环/关卡节点图生成.md)(模板池与抽签机制,现行 15 张骨架 = 3 关 × 5 需重生成);② [level-map](ux/level-map.md)(选路枢纽三停点布局定稿版,图结构改则屏面随之改);③ [敌人系统](systems/战斗循环/敌人系统.md)(遭遇表按 `enemy.tres` 的 (level_index, node_depth) 坐标索引,节点数与编号一改,行集坐标与首遇教学位断言面全部随动)。
|
||||
|
||||
**Boss 渠道是专长的独占渠道,也是唯一直接给专长的渠道**——另两类都不走这里;奖励节点与商店不直接给专长,而是给一个**「专长获取」道具(门票)**,拿到后开专长三选一。形状是"一块独占 + 两块并行",不是三块平分。**末关的 Boss 击败后不给**(打赢时冒险已结束,无后续关卡可消费),兑付只发生在还有下一关可去的那些关底 Boss 身上。用户原话:"我在获取特性的时候,可以有些比较罕见的道具,让我立马得到一个专长,就给它一点不确定性,一点随机性"。**确定性优先**:专长不因没 roll 到就构筑不起来。用户同时明确:先定大意念再分小类,渠道与分类是两根互不决定的轴。
|
||||
**兑付频率(2026-10-05 用户纠错后写死)**:这条渠道的触发点是**关底 Boss 被击败**,而按 [冒险结构](systems/冒险循环/冒险结构.md) 的定义,**打掉关底 Boss 恰好就等于"通过这一关"**——两者是同一个时刻,不是一条链上的两步。**奇物不是打一场战斗给一份**:关内普通战斗节点打完了什么也不给,一关之内奇物只兑付一次。(此前《奇物》文档的"核心循环位置"图把"战斗结算 → 通关 → 得到一份奇物"画成一条链,读起来像每场战斗通关都给一份——已于 v2.6 修正为分支图并加此口径,勿再改回链式。)
|
||||
**量化要求补登(2026-10-16 playnote 用户补写)**:「需要统计一下第 123 关 path 的路径长度,路径长度需要递增,并且后续关卡的节点数增幅应该更大」(第 123 关=第 1/2/3 关)——重构设计讨论的验收方向两条:先实测三关路径长度基线,再定递增曲线与后续关增幅尺度。
|
||||
|
||||
**门票归专长,不归资源**:它给的不是"余量"而是"一件你以前不会的事",只是把选择推迟到一次三选一。**为什么只给门票**:若商店能直接买到指定专长,玩家就能用金币把构筑买出来,Boss 渠道"打赢才拿到"就失去意义;门票保留惊喜(开出的是三选一不是指定),但不让钱定点购买。
|
||||
**前置(用户 2026-10-13 裁)**:**须先做文档设计讨论,不可直接开发**——方案与参考调研先行、过人闸后才可开卡。与下方「奇物呈现优化探讨备忘两孤儿点」(f)「关卡节点图展示改版先出参考调研+方案人闸」同源,两处互相指认,不重复立项。
|
||||
|
||||
**门票机制四条(用户 2026-10-05 定)**:① **拿到即开、不可囤积**——不进持有集,选中或买下同一时刻就开专长三选一(可囤积会让玩家把关键决策无限推迟,且把持有物语义从后门放回来;"道具"只是卡面表现)。② **罕见只在概率,不在价格**——货架价与其他商品相当,不靠高价劝退。③ **一局限购一次**(现行口径)。④ **计步保底**——连续 5 次三选一展示未出现门票,第 6 次展示必定出现;计数对象=**展示次数**(刷新后的重新展示计入,用户明定含刷新),计数范围=奖励节点与商店**共享**,触发后清零,**限购用满后保底不再触发**。
|
||||
**归属**:[关卡节点地图](systems/冒险循环/关卡节点地图.md)(图结构与节点语义,主责)+ [关卡节点图生成](systems/冒险循环/关卡节点图生成.md)(模板池与抽签)+ [level-map](ux/level-map.md)(选路呈现)+ [敌人系统](systems/战斗循环/敌人系统.md)(遭遇行集坐标连带);版本标准侧已登记为 Alpha 待做项,见 [08-Alpha版本标准](08-Alpha版本标准.md)「一 · 系统 · 冒险循环」
|
||||
|
||||
**渠道定位 vs 默认原则(两句,别混)**:**渠道出哪些分类,是渠道轴自己的定位决定,不是例外**——Boss 渠道只出专长,另两类"不出现"是它的同义表述,不需另外找理由(v2.2 曾把它误当成缺理由的缺格,v2.3 修正)。**默认原则只管分类内部**:一个渠道一旦确定要出某个分类,该分类的成员就都要在它的池子里,缺席须有已登记的规则。
|
||||
|
||||
原四备选(① 专长专属三选一 ② 行为条件投放 ③ 计步保底 ④ 双池分离)已被上述定案覆盖——定案≈备选①的确定性路线,余三备选不再单独推进。**节点类型不扩类**:专长挂在 Boss 节点兑付面上(击败后追加一次专长三选一),[关卡节点地图](systems/冒险循环/关卡节点地图.md) 的节点类型仍为封闭枚举五种——此前的"是否新增节点类型"悬案由此收口。
|
||||
|
||||
**gp/heal 已安置,不再走迁移**:v2.0 把它们放进资源(用户 2026-10-05 选"暂不处置"=不做结构性迁移、不动配额),并在该类内显式登记异质性——**金币与回复是即时兑付,不进持有集、不持续生效**,与行动点上限/刷新次数(进持有账本、当局持续有效)生命周期不同。这条异质性必须留在文档里,防止后续把它们当持续生效的东西去结算。
|
||||
|
||||
**渠道约束分三层(v2.2,用户质疑后重构)**:用户问"计价物不自售不就是特判吗"。**诚实结论:形式上是的**——它确实是在分类白名单之外加的一道过滤,不是从分类推出来的。但和死特判有实质区别:
|
||||
|
||||
| 层 | 是什么 | 新增渠道/奇物时 |
|
||||
|---|---|---|
|
||||
| 一层 分类白名单 | 分类轴决定渠道 | 新分类按判据归类,自动继承 |
|
||||
| 二层 **可计算谓词** | 渠道与奇物的**结构性**关系 | **自动判定,不用改表** |
|
||||
| 三层 显式例外清单 | 人为设计选择,无内在理由 | **只能逐条加,每条须写理由** |
|
||||
|
||||
死特判="GP 不进商店"(一条记录,每多一个例外加一条,靠记忆维护);谓词="X 是渠道 C 的计价物 → X 不进 C"(一个函数,自动判定)。**它没有消除"在白名单外加过滤",只是把它从枚举例变成了计算谓词。** 判据:结构性原因(计价物/即时兑付/先决条件)可写成谓词;设计性原因只能进三层清单。**要害不是有没有例外,而是例外能不能被算出来。**
|
||||
|
||||
三方案代价并列(不藏折中):甲=GP 单独立第四个分类(例外 0,但用渠道轴切分类轴、两轴缠回、一项一类失衡);**乙=可计算谓词(现行,1 条谓词)**;丙=死特判清单(1 条记录,靠记忆维护)。
|
||||
|
||||
**在册约束就两条**:① 金币不进商店(二层·谓词,理由=计价物不自售);② 专长在非 Boss 渠道只给门票(一层·分类自身形态,理由=防用钱定点买构筑)。
|
||||
|
||||
**回复应在商店内**(用户 2026-10-05 定):回复不是计价物,套不上「计价物不自售」,按默认原则它应当在商店出现。现行 `shop.tres` 货架只有 attack / max_hp / armor / ap 四项,**现状与表格不对齐,须在实施批补上**。
|
||||
|
||||
**待拍板/待观察两项**:① ~~资源的命名~~ 与 ~~回复是否属该类~~ **已定(v2.5)=资源,回复留在其中不拆第四类**(它与金币同为即时兑付、判据同源;拆出去第四类只剩两项)。② **专长门票尚未入表**:出现概率 / 配额 / 全局限量三个参数都没有事实源,入池同样受档位结构锚约束。③ **专长总量与档位阈值的匹配——延后复裁**(用户 2026-10-05 定"先不调整"):终局 Boss 不给已定,一局确定性专长次数=终局前 Boss 个数;**三关结构下是两次,加门票最多三次**,而档位阈值是同标签 ≥2 档一 / ≥4 档二——**档二(完全体)在三关结构下几乎不可达**。用户决定不动,理由是**后续会有第四关**,且届时可能另做获取侧调整。**复裁触发:第四关内容批落地后实测,配合仍太少再调。** 先不调≠不成问题,登记于此防忘。
|
||||
④ **charge 标签件数不足(数据缺陷,独立登记,勿被上条盖掉)**:档二要求同标签 ≥4 件,而 `relics.tres` 里 charge 标签**只有 3 件**——即使获取次数无限,charge 流派也永远达不到档二。这与渠道结构无关,是数据层缺陷。**编入注(2026-10-06 用户令)**:补件设计编入 roadmap 迭代 18 卡①奇物内容补全批·文档先行(落地=纯 .tres 数据行,新件限现有效果 hook 则零代码)
|
||||
⑤ ~~顶层命名待定~~ **已定(v2.4)=「奇物」Wondrous Item**:DND 魔法物品九分类中的兜底杂类,官方中文译名即「奇物」,专装"不好归类但有奇效之物"——正好对应三个互不相干的分类。落选:Treasure(偏财物,装不下专长)、Relic(品类惯例,用户否决「遗物」)、全部自造词(进益/造化/机缘/遇获)。**代码词族随之定为 `curio_*` / `ADVENTURE_CURIO`**——原计划的 `feature_* → reward_*` 对齐**作废**:`reward_pick` 流 / `reward_node` context / `reward_preview` kind 已占用 reward 词族,照做会撞车。
|
||||
|
||||
**归属**:[奇物](systems/冒险循环/奇物.md)(定义与交叉开关表)+ [node-reward](ux/node-reward.md)(令牌池与奖励面)+ [冒险结构](systems/冒险循环/冒险结构.md)(商店货架保底与货架过滤)+ [关卡节点地图](systems/冒险循环/关卡节点地图.md)(节点类型词表);与上条「双层 BD 延期与备选内容总登记」二期件组相关但不同面。
|
||||
|
||||
**状态**:分工已定,**实施待排批**;两项待拍板/待观察(2026-10-05 v2.1 更新)
|
||||
|
||||
#### 资源两个新种类入池——刷新次数、专长获取(2026-10-05 立)
|
||||
|
||||
**现状**:[奇物](systems/冒险循环/奇物.md) v2.0 立了资源四项,其中**行动点上限**已在池(罕见档)、**金币与回复**已在池,**刷新次数与专长获取两项尚未入表**。注意与既有「商店独立刷新机制」条分清:那条是进店后的免费次数 + GP 刷新(商店自身的服务),本条指的是**作为奖励授予的**重抽次数,两者不是一回事,入池前须先划清边界。
|
||||
|
||||
**连带约束**:`FEATURE_KINDS` 词表封闭(断点附随件与牌库剔除态依赖它),扩种类须走 `adventure_table.gd` + registry 同步修订;档位配额是**结构锚**(普通 70 / 稀有 25 / 罕见 3 = 98 张,入 schema validate 硬断言),新种类入池要占配额——**改总量须重裁而非调参**。专长获取须带全局限量(一局内可获得次数上限)。
|
||||
|
||||
**归属**:[奇物](systems/冒险循环/奇物.md) 调参表 + [冒险结构](systems/冒险循环/冒险结构.md) 共享池账本节;数值所有权归 [难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)
|
||||
|
||||
**状态**:待排批——须在可跑冒烟的迭代批次内完成——**实查更新+收窄+编入(2026-10-06)**:两项实已随迭代 15②/三选一刷新批入池(刷新次数=treasure_items.tres「三选一刷新件」行;专长获取=shop.tres+adventure_table.gd 门票行),本条收窄为边界核对与条目收口,**已编入 roadmap 迭代 18 卡①奇物内容补全批·文档先行〔2026-10-06 用户令:先文档后落地,数值只设计不调终值归⑥M4 收官批〕**
|
||||
**状态**:待办(**Alpha 阶段需完成**)——**设计讨论先行**:2026-10-13 用户裁:此事复杂,须先走文档设计讨论,不是可以直接开发的批次;未排期、不开卡,重启 = 用户发令。版本标准侧已列为 Alpha 待做项,见 [08-Alpha版本标准](08-Alpha版本标准.md)「一 · 系统 · 冒险循环」
|
||||
|
||||
#### 武器锻造系统——攻击/护甲成长差异化提案(2026-10-06 playnote 用户提案,同日令入迭代 18)
|
||||
|
||||
**现状**:用户提案(playnote 2026-10-06):攻击力提升改造为「武器锻造」系统——① 剑(普通攻击):锻造升级增加攻击力,最高等级附带额外效果;② 长枪/法杖:后续新增武器,攻击类型分别变为穿刺/魔法,同样满级带特殊效果——实现武器间差异化;③ 护甲同理:初始只有轻甲(升级只提 AC),最高等级后可解锁重甲/魔法甲——基础 AC 各不相同、可继续升级、各带不同额外效果。
|
||||
**现状**:用户提案(playnote 2026-10-06):攻击力提升改造为「武器锻造」系统——① 剑(普通攻击):锻造升级增加攻击力,最高等级附带额外效果;② 长枪/法杖:后续新增武器,攻击类型分别变为穿刺/魔法,同样满级带特殊效果——实现武器间差异化;③ 护甲同理:初始只有轻甲(升级只提 AC),最高等级后可解锁重甲/魔法护甲——基础 AC 各不相同、可继续升级、各带不同额外效果。
|
||||
|
||||
**归属**:待提案批定(候选=[奇物](systems/冒险循环/奇物.md) 属性值提升分类修订 + [战斗结算](systems/战斗循环/战斗结算.md) 攻击类型轴 + [元进度](systems/跨局循环/元进度.md) 营地柜台锻造经济)
|
||||
**归属**:[锻造工坊](systems/跨局循环/锻造工坊.md)(设计权威文档,v0.1〔时名「武器锻造」〕起自本专条独立成文;2026-10-11 用户令系统更名锻造工坊)
|
||||
|
||||
**状态**:已立项设计提案批=roadmap 迭代 18 卡③(2026-10-06 用户令;纯文档零代码,裁点呈用户裁决,实装批另行立项;数值框架 provisional 终值归迭代 18 卡⑥ M4 收官批统一调整)
|
||||
**状态**:**17 裁点全部拍板、本条设计面完成(2026-10-12 锻造工坊裁决会话续,用户逐点裁决)**——设计文档 design/gdd/systems/跨局循环/锻造工坊.md〔成文时名「武器锻造.md」,2026-10-11 随系统更名〕**v0.5** 写入文档:A 组(v0.4,四柜台承载/生命归树脊柱/攻防所有权切分/钥匙无前置/2c·5a 结案)+ B 组 15 点(1 丙/1a 一次冒险一件武器+一件甲/1b 营地可换·冒险内锁死/1c 免费/2a 伪裁点消解/2b 随 3a 消解/3a 魔法护甲统一命名/3b 敌方攻击缺省普通·克制反向当下生效/3c 每型独立路线/4a 前缓后陡/4b 自闭环/4b-1 并联双通道/5b 纯钥石/5c 零材料/6 **满级特效本期不做留扩展位**/8a 工作间两区定名)。**推翻推荐案四行(2a/3b/6/8a)+ 呈报方撤回一条(4a-1)**,全表见该文档「裁决结果清单」节;「工作间内容清单」节为实装批需求卡片输入。数值 provisional 终值归 Alpha 收官 M4 数值批〔未排期〕。实装待办见下条。
|
||||
|
||||
#### 内部分类禁写入玩家可见面——奇物呈现三处违规待改(2026-10-04 用户立意登记)
|
||||
#### 锻造工坊实装批 — 待办(冻结:迭代规划冻结中,重启=用户发令)(2026-10-09 随成文批登记,时名「武器锻造系统实装批」;2026-10-11 随系统更名换代)
|
||||
|
||||
**现状**:用户立意(方向已明确):形态(规则改写型/属性加成型)等内部分类**不得写进玩家可见的名称、介绍词或界面**——玩家可根据效果自行推断类别,游戏不得直接点破。查证实态:26 项专长奖励的 display_name 全风味名(奥术余烬/贯穿射击/矿工的执拗等,合规,符合 2026-09-29 playnote 既有批评);**违规三处**(均系迭代 12 呈现补齐批所落,承载用户「局内奖励选了什么看不到」反馈——缺口承载需求仍成立,撤的只是分类字样):① 三选一+商店特性卡面第二行印流派名(`battle_narrator.gd` relic_card_text,「奥术余烬 · 魔法」式);② 战斗屏 C 区列表标题(现为「特性」)+逐流派聚合行「魔法 ×2 · 档一」(`hero_info_panel_view.gd` + `hud_presenter.gd` relic_holdings_lines);③ 关卡选择页复用同一聚合文案(`level_map_screen.gd`)。**边界**:效果摘要行(「普攻附加必中伤害」)保留——那是件本身在做什么,是玩家推断归类的依据。
|
||||
**内容**:按 [锻造工坊](systems/跨局循环/锻造工坊.md) **v0.6** 定案口径实装(需求卡片输入=其「裁决结果清单」+「工作间内容清单」两节)——迁移面八项:① **新建锻造路线行族**(forge_products 已随迭代 21 T5 整体退役、无改造对象——v0.6 事实订正:行族/访问器/购买面三处退役登记在册,本批新建而非改造;落位=新表 forge.tres〔ForgeTable〕,钥石定价历史考古 20/150%、provisional 投值归 M4 终值);② **两根类型轴所有权移交**(默认值归锻造工坊配置常驻持有、hero.tres 静态表两轴删除、选中态写存档域 forge_routes+冒险开始参数面注入;一次冒险一个武器类型+一个甲型,营地免费切换、冒险开始后锁死);③ `feats.tres` magic_vs_magic 死条件行——复活案作废(2026-10-11 核结:所属件魔网织者在素材库表二 27 件退役删除名单),随专长退役删行批消解,本批零触碰;④ 存档域新增三武器+三甲型等级与当前选中标记(**不设特效域**——2026-10-12 裁 6;开发阶段无迁移——旧档缺键补齐=初始持有态,v6→v7 空迁移;存档序列化文档与 registry 顺带登记);⑤ **满级特效本期不实装**(2026-10-12 裁 6:不开三条新参数位、不加效果类型词,扩展位留空,启用需另立项);⑥ **敌方攻击类型轴填值(3b 裁连带,跨系统汇合点)**——敌方攻击单据 `attack_type` 按「未设置=默认 normal」填值使其参与克制矩阵查表(现役为 `""` 恒不查矩阵;`enemy.tres:527` 轴未开、全部 normal 档):**执行面归敌人系统/战斗结算侧**,本批只登记需求与数值影响(全局平移主角受伤点数:穿重甲 −1、穿魔法护甲 +1,须进⑧配对读数验证);敌方 attack_type 为敌方定义数据(与敌种名字/血量同批同时读写、无独立时序),填值归敌人系统/战斗结算侧自然推进;本批只按 3b 裁落结构面(矩阵查表现役已支持)(2026-10-12 订正:原「两批排期协商(可同批做,也可先行)」句删除——用户裁:时序问题不存在)**(✅ 已完成 2026-10-13 迭代 24 卡① N3:20 行全填 normal+schema 枚举校验+单位快照+开单第 9 参传值+敌方结算克制消费点;全局平移穿重甲 −1/魔法护甲 +1/轻甲 0 经同种子三甲型配对实测在案——矩阵数值零触碰)**;⑦ 术语登记——三型甲统一命名(轻甲/重甲/魔法护甲;**「魔法甲」系笔误不登记别名**)+ 工作间两区定名(武器锻造区/护甲锻造区)登记 registry entities.yaml;⑧ 数值验证义务=改前/改后同随机种子配对读数验证难度影响,统一调整归 M4 数值批。**解锁通道**:四条待解锁路线(长枪/法杖/重甲/魔法护甲)均走并联双通道(练满前一档 OR 一次性解锁价,互不影响、玩家自选),不设串联门槛。**前置**:17 裁点用户逐点裁决——**已清零(2026-10-12 B 组 15 点逐裁写入文档 v0.5;2c/5a 于 v0.4 结案)**。**关联(2026-10-11 换代)**:锻造工坊钥匙节点改无前置直接可点亮(2026-10-11 用户裁,原等级阈值前置作废);树脊柱砍攻/护两线(攻防所有权切分——攻击唯一入口=武器路线、AC 唯一入口=甲路线,树侧写入文档归天赋树会话交接批)后本批=攻防数值唯一实装面;树结构换代(33→12)已随迭代 21 入库——本批④存档域 forge_routes 独立成域(已预登记存档序列化.md v7 计划行),无共域冲突(2026-10-12 订正:原「排期两批合并评估」语境随树批入库消失——用户裁:非裁点)。**前置信息(2026-10-12 用户裁定:不在本批考虑)**:3b 后现行数据三型成纯序(重甲正向 > 轻甲中性 > 魔法护甲负向,敌方现行无魔法攻击故暂无优势窗口)——系**后续开发改造的前置事实**,敌方攻击类型差异化与魔法护甲的正当性归后续批次(含 M4 在基础 AC / 解锁价上的取值);本批只按统一伤害轴落结构与字段。
|
||||
|
||||
**连带裁点**:档位激活(同标签 2 件档一/4 件档二)若完全不呈现,玩家只能靠悟——三路待裁:甲=纯隐藏、机制照跑(以撒套装式,最贴用户「流派是玩家挖掘出来的」原则);乙=档位达成那一刻给一次性风味反馈、不点破流派名;丙=连档位机制一起退役。
|
||||
**归属**:[锻造工坊](systems/跨局循环/锻造工坊.md) 实装(跨 meta/hero/feats/存档/战斗开场参数五面)
|
||||
|
||||
**归属**:[battle.md](ux/battle.md) C 区 + [level-map.md](ux/level-map.md) 底栏 + [node-reward](ux/node-reward.md) 卡面文案;RelicsEngine 求值与档位机制零改动(纯呈现面)。
|
||||
**状态**:✅ **已入库(2026-10-12,/goal+iter U0 开工单会话交付——T1 行族/T2 两轴移交/T3 写口族/T5 存档 v7〔序调先行:写口硬依赖〕/T4 注入链/T6 工作间 UI/T7 完成七提交;冒烟 938/0+run_all 24 套+重闸全绿+MC 同种子配对零漂移;实现报告已退役,git 历史可考;残留人闸=实机目检工作间形态与购买交互〔07 ㉒,2026-10-14 已核销〕)。**收尾(2026-10-13)**:代拍板追认单九项用户逐项追认通过(无修改意见);GDD 反哺点三条已写入(锻造工坊.md v0.7=Q1 等级语义正文衔接+效果类型闭集 31 订正+实装边界 1 实态回填;元进度.md v1.18=effective_ac 第一层终态句+钥石入口族三写口登记;术语表.md v1.9=路线 id/存档域键名词条)——本条义务全清。**
|
||||
|
||||
**状态**:方向已明确(禁写类别),违规改法与档位呈现三路待讨论(2026-10-04 登记,后续展开)——**违规三处清除+档位呈现已编入 roadmap 迭代 18 卡②呈现优化批(2026-10-06 用户令;档位三路仍待裁,随任务书呈报)**
|
||||
#### 玩家向显示名改名小批(局内三轴 + 临时 AC 状态)——跨循环名称冲突清偿(2026-10-12 用户逐裁,锻造工坊裁决会话续 8a 连带)
|
||||
|
||||
#### 奇物命名统一后续——代码标识符与文件名的对齐(2026-10-05 立)
|
||||
**背景**:锻造工坊 v0.5 8a 命名讨论中用户指出——局内商店货架标着"攻击锻升 / 生命锻升 / 护甲锻升"的三行,实为奇物「属性值提升」三轴(攻击 / 生命上限 / AC)的**货架前台标签**(`shop.tres` pool_shelf 的 `kind_id` 指向 `adventure.tres` CURIO_KINDS),进冒险加算区、冒险结束清零,**既不是武器也不是护甲**。它与营地锻造(账号层永久)唯一的联系是名字里那个"锻"字——这是两 Loop 混读的唯一来源(结构层从未冲突)。用户裁决:按「属性 + 后缀」改名,后缀 = **祝福**;并顺带裁定临时叠层状态不该叫"护甲"。
|
||||
|
||||
**现状**:概念已统一为「奇物」(2026-10-05 v2.4 由「奖励」改名、v2.0 由「特性」改名,定义见 [奇物](systems/冒险循环/奇物.md))。已完成三件——① 定义文档落位(`design/gdd/systems/冒险循环/奇物.md`);② 称谓统一(代码注释与玩家可见文案,94 处+design/ 侧随改名批同步);③ 数据层标识符统一(`adventure_table.gd` / `adventure.tres` 的常量与字段整体换到 `feature_*` 词族,112 处,值零变更)。
|
||||
**内容(全部 = 纯字符串替换,零逻辑改动)**:
|
||||
|
||||
**未完四件**:⓪ **`feature_*` 词族随顶层改名再换到 `curio_*`**(2026-10-05 v2.0 新增、v2.4 改目标词族)——`FEATURE_KINDS` → `CURIO_KINDS` / `feature_quota()` → `curio_quota()` / `feature_value()` → `curio_value()` / `feature_candidate_count` → `curio_candidate_count` / `feature_quota_*` / `feature_value_*`,涉及 `adventure_table.gd` + `adventure.tres` 键名 + registry。**注意两点**:其一,**目标词族是 `curio_*` 不是 `reward_*`**——`reward_pick`(rng 封闭流 scope)/ `reward_node`(`grant_aux_item` context)/ `reward_preview`(道具 kind)已占用 reward 词族,照 `reward_*` 对齐会撞车;其二,`adventure.tres` 的键名是存档外的表数据,换名只动键不减值,但 `FEATURE_KINDS` 是封闭词表、断点附随件与牌库剔除态依赖它,须走本表 + registry 同步修订。① 专长那套的 relic 词族(RelicTable / relics.tres / relic_id / _relics)与统一词族对齐——文件名与 class_name 改名须同步 Godot `.uid` 与 `.tscn` 引用,非文本层可自证;② 运行层标识符(`_bonus_deck` / `bonus` 加算区 / `_bonus_taken` / `pick_bonus` / BonusInteractController / BonusPickOverlay)换名;③ 断点与存档键(`bonus_deck` / `bonus_taken` / `bonus_pending` / `bonus_result` / `bonus_aux_carry`)为存档兼容沿用历史名,是否随存档版本迁移一并换名待定。
|
||||
【C】局内商店货架三行(现役行族 + 遗留行族同名,两处都改)
|
||||
| 位置 | 旧 | 新 |
|
||||
|---|---|---|
|
||||
| `game/data/tables/shop.tres:70`(pool_shelf 现役) | 攻击锻升 | **攻击祝福** |
|
||||
| `game/data/tables/shop.tres:74`(pool_shelf 现役) | 生命锻升 | **生命祝福** |
|
||||
| `game/data/tables/shop.tres:78`(pool_shelf 现役) | 护甲锻升 | **护甲祝福** |
|
||||
| `game/data/tables/shop.tres:38`(products 遗留行族,只在对照模式承载) | 攻击锻升 | **攻击祝福** |
|
||||
| `game/data/tables/shop.tres:45` | 生命锻升 | **生命祝福** |
|
||||
| `game/data/tables/shop.tres:52` | 护甲锻升 | **护甲祝福** |
|
||||
> C 侧**零代码零测试连带**:全库 `锻升` 命中恰为上述 6 行,`display_name` 非查找键(货架以 `kind_id` 为键,`config_db.gd:328`);唯一 UI 断言 `smoke_all.gd:4415` 是"标签文本 == 表值"的自洽式断言,改表自动跟随。
|
||||
> **【C 已执行(2026-10-12)】**——六行全部替换完毕,全库"锻升"命中归零,`shop.tres` 行数与括号结构零变化。**执行路径**:worktree 分支 `rename-blessing-20261012`(用户令"实现类改动走 worktree 分支")→ 冒烟 864 项检查 0 项失败 → 合入 master `0c93a71`。C 侧本身零代码零测试连带(`display_name` 非查找键,货架以 `kind_id` 为键),但与 D 同批执行——D 需改 `.gd` 断言,用户追加授权("可以简单地修改,你这次一并改完吧。但是注意我们的合入规则,避免合入失败了")。
|
||||
|
||||
**次序建议**:⓪ 与 ① 同为"词族对不齐",可同批;② 涉及运行层最广,单批;③ 须与存档版本迁移一起裁。**顶层已改名而代码仍是 `feature_*`,属"文档与代码分开"的临时态**,应在下一个可跑冒烟的批次内收口。
|
||||
【D】临时 AC 状态 / 棋盘格 defense 正向行(同一 effects 的两端,两处同名同改)
|
||||
| 位置 | 旧 | 新 |
|
||||
|---|---|---|
|
||||
| `game/data/tables/reward.tres:22` | 护甲强化 | **盾牌加护** |
|
||||
| `game/data/tables/status_effects.tres:18` | 护甲强化 | **盾牌加护** |
|
||||
| `game/smoke/smoke_all.gd:1199` | `== "护甲强化"` 硬编码断言 | **`== "盾牌加护"`(必须同步改,否则冒烟红)** |
|
||||
**残留肃清(2026-10-12 同批追加)**:`reward.tres:219`、`status_effects.tres:99` 两处 2026-09-16 护甲等级掷点批历史注记 + `game/smoke/defense_scan.gd:24/:35` 打印标题与注释内的旧名「护甲强化」——主改名批合入后全库复扫发现(`display_name` 主改名未覆盖注记段),走 worktree 小批 `blessing-residue-sweep-20261012` 更新为现名「盾牌加护」并括注"2026-10-12 由'护甲强化'改名"(历史动作部分保留)→ 冒烟 864/0 → 合入 master `0144f60`。**game/ 全库现役旧名归零**——仅存的两处"护甲强化"为有意的改名留痕括注;`defense_scan.gd` 系独立手动扫描脚本(不在冒烟主链、标题无断言依赖)。
|
||||
> 附带约定(用户提案沿用):**「加护」= AC 判定层,「护盾」= 保险丝那样的吸收层(`grant shield` 效果类型),两者禁止混用**——`feats.tres:411` 保险丝给的是护盾层,与本状态是两种东西。
|
||||
> **【D 已执行(2026-10-12)】**——解阻过程:本会话初判"C/D 均零连带"有误,`game/smoke/smoke_all.gd:1199` 硬编码 `== "护甲强化"` 实为代码断言,只改配置会判红;如实呈报后用户追加授权("可以简单地修改,你这次一并改完吧。但是注意我们的合入规则,避免合入失败了")。三行同批替换 → worktree 冒烟 864 项 0 失败 → 合入 master `0c93a71`。(若只改 `status_effects.tres` 会造成格子与状态两处不同名,该方案未采纳。)
|
||||
|
||||
**状态**:待实施——须在可跑冒烟的迭代批次内完成(本会话按测试执行两入口铁规零测试,改名无法自证)
|
||||
**配套文档面**:① `奇物.md` §1.2「属性值提升」**保留为机制分类名**(它与 `adventure.tres` 分类绑定),只在玩家向文案挂新层次名;② registry entities.yaml 登记"祝福"条目、旧名"X锻升"退役;③ 已占用的近义词登记**石肤**(现有奇物件,效果即 AC +1),新名勿与之撞。——**②③已执行(2026-10-13 迭代 23 反哺写入批补登)**:terminology 新增「攻击祝福/生命祝福/护甲祝福」词条(旧名保留检索别名)与「石肤(近义词占用)」备忘词条。
|
||||
|
||||
**归属**:独立改名小批(2026-10-12 已执行完毕并合入 master);跨 [奇物](systems/冒险循环/奇物.md)(值提升三轴的机制 owner)/ [地图战斗资源](systems/战斗循环/地图战斗资源.md)(D 的格面侧)/ [增益状态](systems/战斗循环/增益状态.md)(D 的状态侧)/ [锻造工坊](systems/跨局循环/锻造工坊.md)(冲突提出方)/ HUD 呈现面
|
||||
|
||||
**状态**:**已完成(2026-10-12)**——C/D 全部替换 + `smoke_all.gd:1199` 断言同步 + 残留肃清,均已在 worktree 分支执行并合入 master(`0c93a71` 改名主批 + `0144f60` 残留肃清批;冒烟两跑均 864 项检查 0 项失败,FAIL 仅存量 fx_reveal 脚本错误——迭代20 T1 a57489e9 遗留、iter21 在册,与本批无关)。**配套文档面**:① 地图战斗资源.md 版本表补 v0.23 跟随登记;② art-bible.md §4.6.1/§4.6.2 两表 display_name 列跟随(契约句"键名随其修订自动跟随");③ 07 体验验证清单⑫目检行跟随;④ **registry entities.yaml 登记"祝福"条目、旧名"X锻升"退役未执行**——归锻造工坊实装批术语登记面(迁移面八项⑦同域)一并做。
|
||||
|
||||
#### 天赋树实装批登记欠账三条——AP 上限 clamp / 三选一刷新软上限 / Y 不入断点存档(2026-10-12 顺带入册自实现报告迁立专条;2026-10-13 原批条目随入库注销拆出)
|
||||
|
||||
**现状**:迭代 21 天赋树实装批已全量入库(2026-10-12,worktree g-plan2-iter21-tree,T1-T6 代码批+T7 文档同步批;实现报告已退役,git 历史可考),批内登记欠账三条「本批不做、顺带入册」;原批条目注销后由本专条承接。2026-10-13 代码复核:①③实态与登记一致仍在案;②原「另立待办」从未成条,本条即其落位。
|
||||
|
||||
- **① AP 上限 clamp 缺位(缺陷)**:树「开局姿态」(每关首轮 AP+1)、AP 件、时沙同走 `action_economy.gd:239 _pending_ap_delta` 排队,轮始兑现仅下限钳制(`:254 maxi(0, …)`,无上限)——旧单源时代缺陷不可观测,新叠加源使其可观测化。**已裁(2026-10-13 用户):暂不设上限**——provisional 天花板亦不投,随 Alpha 收官 M4 数值批一并调整(届时连同全部 AP 数值统一标定)。
|
||||
- **② 三选一刷新软上限(设计问)**:停点内 GP 付费刷新倍率增长(×1.8/次曲线)×停点间基础价随进度递增,全程无软上限——是否设上限归调参批裁决。**已裁(2026-10-13 用户):维持现状**——定性确认=设计问非缺陷,归 M4 数值批调参窗口处理,不提前单开讨论。
|
||||
- **③ Y(_attune_refresh_y)不入断点存档(可利用漏洞)**:断点快照存 `_refresh_stock`(adventure_runner.gd:236 回填)与 Y 升级档(账号级 attune_refresh_level),不存当局 Y 余量;续玩路径自参数面重新整额注入(:225)——用完 Y 退菜单再续玩即满血复活。V15 仅验账本一致性,未覆盖该面;刷新链路可用性不受影响。**已裁(2026-10-13 用户):须修**,但不单独开工——用户令「所有都确定完了之后再一起修」,归确认工作收官后的集中修批执行;修法届时零待裁点(断点扩列一行+续玩优先读断点,`_snapshot_breakpoint` 内六个同款先例〔refresh_stock/battery_pending/feat_ticket_pity 等,扩列向后兼容〕)。**✅ 已修复(2026-10-13 同日用户令提前单独开修——「C类先不做,把还没修的 bug 修了,按正常流程走」)**:断点快照扩列 `attune_refresh_y`(`_snapshot_breakpoint`)+ 续玩 `resume_adventure` 优先读断点(缺键回退参数面=旧档行为零变化)+ 单测⑥段两断言(余量随断点还原/旧档回退);批末冒烟 938/0+单测 24 套全绿。本件注销。
|
||||
|
||||
**归属**:① [行动经济](systems/排雷循环/行动经济.md);② 行动经济+三选一/商店刷新经济(数值归 Alpha 收官 M4 数值批);③ [存档序列化](systems/表现与支撑/存档序列化.md)(断点域)+ [冒险结构](systems/冒险循环/冒险结构.md)(续玩参数面)——三件均系缺陷修批/调参批输入,未排批
|
||||
|
||||
**状态**:**三件终态(2026-10-13)**:① 暂不设上限随 M4 数值批/② 维持现状归 M4 数值批(两件批内零动作,数值统一标定归 M4);③ ✅ 同日缺陷修批已修复注销(用户令提前单独开修)——本条转为记账条,无待裁点
|
||||
|
||||
#### 现役 UI/文案两处自相冲突(2026-10-09 登记——审查批呈报 B5,用户裁「记录待办、后续迭代解决」)
|
||||
|
||||
**现状**:①battle_narrator.gd:160 文案「与通关三选一同池同权重同上限」与现役实现不符——通关渠道自迭代15② 起=纯专长,该句系落码前旧话(玩家可见错话);②hero_info_panel_view.gd _curio_section 与 _feat_section 两段同标「特性」——现役界面文案重复。两处均系「现役码 vs 现役码」冲突,非新设计未实装的预期偏差。
|
||||
|
||||
**状态**:待办(随后续迭代安排修复;体量均小)
|
||||
|
||||
#### 棋盘战斗键盘/手柄输入(2026-10-04 用户提问登记,排期 Beta)
|
||||
|
||||
@@ -146,25 +214,6 @@
|
||||
|
||||
**状态**:待办——排期 **Beta 阶段**(2026-10-04 登记;可行性已核毕,立项时按 roadmap 开卡)。**2026-10-06 增补登记**:暂停层 Esc 快捷通道并入本条随键盘批统一实施(迭代 17 卡③暂停层批 P1 裁决=常驻角标本批落码、Esc 键不单独开通道;批出全屏弹层后本条③「弹层界面现行全鼠标」清单 +1 项=暂停层)
|
||||
|
||||
#### 挖掘风险不等式对账破线
|
||||
|
||||
**现状**:归档记录现行值链(防御增益时长 1、行值 −30、现行难度曲线)(2026-09-17 注:defense_up −30 行已随 2026-09-16 AC 换装批退役,此值链为历史基线口径)下两参考板形首版验算破线,多敌满配深度破线;破线已升格为曲线级约束,相关参数处禁独立调参联动网络;对账须在难度曲线调参批重跑
|
||||
|
||||
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)提案,战斗结算闭合共裁
|
||||
|
||||
**状态**:对账复跑出讫(2026-09-29 迭代 8 卡⑧——投值后风险端当量 ×1.9,破线缓解未闭合;全量复算见 git 提交 d70f6c3 §二;结构性修订维持 Alpha 批归属)。**2026-10-04 判读收官+修订立项**:结构性修订已全裁(用户两轮「按推荐的来」+grill 七问——甲+丙先行/形态(a)兑付溢价 δ=1.25/β 带 [1.2,2.5]/条件二落文登记已知破·机制小批转绿,裁决回执=方案报告 §九(已退役,git 1da9a41));**判式换代批编入 roadmap 迭代 14(②号卡)**,任务书=`.zcode/plans/mine-inequality-revision-miniloop-plan-2026-10-04.md`(T0-T5≈2.5d,待 U0)——**原「Alpha 批归属」作废**(M-3 已关闭)。**本条正式收口(2026-10-05 判式换代批 T3 落文=兑现条件)**:判式三层已重立落文(行动经济 F1 条款3 v0.8——聚合健康式只留下限 0 / 旗边际引理 / 条件二旗溢价 δ=0.25 provisional 形态 a,登记已知破·本批 T4 机制闭合)、β 带 [1.2,2.5] 判读制度化(u=3 β=1.17 微破下限=登记态)、registry `clause3_inequality` 重立条+改前静态锚+P7 两点修正注记落位、runsum 五字段(η 读数面)落码。**残留转登记面**:①u=3 微破下限与条件二等号压线不强制回滚(方案 §九 点名);②δ 敏感度判读(≥5pp 判据)随本批出口报告;③后续调参按 β 带逐 u 检算(难度曲线与Boss 调参联动表 +6 行)——不再立独立重跑批
|
||||
|
||||
|
||||
|
||||
#### 同深度第二敌种与精英 / Boss 编码位
|
||||
|
||||
**现状**:现键结构(关卡序号 × 节点深度 × 敌种)无编码位。
|
||||
|
||||
**归属**:随[关卡节点地图](systems/冒险循环/关卡节点地图.md)定稿改键一并裁决
|
||||
|
||||
**状态**:部分收口(2026-09-17)——同层多遭遇问题已由关卡节点地图 v1.0 的**节点编号升级**消解(`node_depth` 语义 = 关卡内唯一节点编号,同层不同节点各查各行,键结构零改动);**不设精英 / Boss 编码位**(Boss = 最大编号节点,精英 P2 内容承载)。剩余面继续待办并改归属:同场多敌种(同一编号行集多行)的行集校验放开 ——归属**敌人表行集多行批(战斗侧,排技能池实施批落地后)**(混编伏击上限取值口径面已随 2026-09-20 单轮上限删除消解)。**已编入 roadmap 迭代 17 卡①(2026-10-05——任务书已成文待 U0:design/research/任务书-敌人表行集多行批-2026-10-05.md;前置「技能池实施批落地」已于 2026-10-05 满足〔d3fa887〕,开工门已解,4 项裁点已全裁并经 2026-10-06 联审二裁修订:P1甲〔Q8/Q9 补全=每行一骰·RNG 扩签先报批·实例总数≤4〕/P2甲/P3丙〔改裁撤投放——首混编行连同 Boss 多行归后续内容批,投时 MC 取证先报批+难度带读数义务随批登记 07〕/P4乙 Boss 行亦放开·零内容投放不变)**
|
||||
|
||||
|
||||
#### 技能池情境条件触发器
|
||||
|
||||
**现状**:低血触发防御、玩家停手时的偷袭技等情境出招——载体 = 技能行触发条件字段(P1 字段位已预留);启用是敌人系统修订,不是调参
|
||||
@@ -195,7 +244,7 @@
|
||||
|
||||
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)(P1)
|
||||
|
||||
**状态**:待办
|
||||
**状态**:**已完成(2026-10-13,迭代 24 卡① N2)**——`skills.tres` 12→14 行:`venom_spit` 毒吐 ×1.6/CD2 挂 (2,5)/(2,6)/(2,7) 巨蜘蛛族、`shield_bash` 盾击 ×1.7/CD3 挂 (3,0)/(3,5)/(3,7) 灰矮人族(均无 rider、池权重 2;首遇教学位 (2,4) 池不动);「独占技随关错峰只做在 Boss 侧」缺口补齐为两轨。`expect_pools` 六键契约同步、冒烟 949/0;难度带位移=改前改后同种子配对读数(perfect L2 通关 8→13/20 · 全通 6→10/20,方向符合预期、量级低于二档配对判读带,详见迭代 24 实现报告);倍率 provisional 归 M4 数值批
|
||||
|
||||
#### 敌方技能图鉴 / 学习呈现
|
||||
|
||||
@@ -205,39 +254,102 @@
|
||||
|
||||
**状态**:待办
|
||||
|
||||
#### 第一关遭遇表数值异常——难度曲线倒挂与敌种疑似填错(2026-10-13 实查登记,Alpha 阶段需完成)
|
||||
|
||||
**现状**:来源 = playnote 用户试玩记录「第一关的第二个节点数值有问题」。2026-10-13 实查 `enemy.tres`(按 `(level_index, node_depth)` 索引),第一关五行如下:
|
||||
|
||||
| 坐标 | 敌种 | hp | atk | 数量 |
|
||||
|---|---|---|---|---|
|
||||
| (1,0) | 地精 | 8 | 1 | 1–2 |
|
||||
| (1,1) | 地精一伙 | 4 | 1 | 2–3 |
|
||||
| (1,2) | 熊地精 | 50 | 1 | 1 |
|
||||
| (1,3) | 大地精 | 14 | 1 | 2–3 |
|
||||
| (1,4) | 食人魔酋长(关底 Boss) | 72 | 1 | 1 |
|
||||
|
||||
三处异常:① **难度倒挂**——(1,1) 血量 4 低于前一节点 (1,0) 的 8;② **曲线不单调**——(1,2) 熊地精血量 50,是前一节点的 12.5 倍、下一节点大地精(14)的 3.6 倍、逼近关底 Boss(72)的七成,而 (1,3) 又跌回 14;③ **敌种疑似填错**——熊地精的正式位置是第二关的 (2,5) 混编遭遇行,出现在第一关第三个节点不合常理。
|
||||
|
||||
**与 M4 数值批的区别(用户 2026-10-13 就此提问)**:M4 是「形状对、调大小」的全局数值统一标定;本条是**形状本身不对**,属配置错误级别,不是标定问题。等 M4 一并处理会让第一关的崩坏长期挂在 Alpha 里——玩家第一局就会撞上。
|
||||
|
||||
**归属**:[敌人系统](systems/战斗循环/敌人系统.md)(遭遇表行值与敌种归属)+ [难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)(难度曲线单调性)
|
||||
|
||||
**状态**:**已完成(2026-10-13,迭代 24 卡① N1)**——按需求卡片 Q1-Q3 裁定执行:取 **(1,2)**(实查确证的客观崩坏=总量 10→50 的 5 倍墙;「第二个节点」字面指向 (1,1) 的偏差按上文注记处置,(1,1) 不动)、定性换代为「2026-09-24 阶名化解方案实机未达预期,按 2026-10-13 体验反馈重裁」(非配置错误)、修法=**保留 bugbear 只降档** hp 50→22 · armor_class 3→2(其余字段零动;hobgoblin 无立绘故改敌种案否决)。曲线 12/10/22/35/72 相邻比最大 2.2(护栏断言入冒烟 V1,≤2.5);修复方式甲(即时修,不依赖 M4)已兑现——其余行高低归 M4 数值批
|
||||
|
||||
**⚠ 措辞更正(2026-10-13 grilling 复核查证,随需求卡片成立一并订正,实现批执行)**:本条现状的**三处异常**中两处须改——①「敌种疑似填错」**定性作废**:`enemy.tres:594-600` 注释载明 (1,2) 的 bugbear 50 血是 **2026-09-24 用户裁决**保留的设计(当时解法=把 (1,3) 改名低一阶的「大地精」,用 DND 阶名化解同族血量倒挂的观感),不是配置错误,本批定性改为「该阶名化解方案在 2026-10-13 实机验证下未达预期,按体验反馈重裁」;②「难度倒挂」一条**撤回**:(1,1) 地精一伙 hp4 按总量算(4×2.5=10)与 (1,0)(8×1.5=12)持平,属群怪「单只薄、数量补」的正常设计。③「第二个节点」字面指向的登记偏差:[playnote](../research/playnote.md):9 原文「第一关的第二个节点数值有问题」,而 `level.tres` 注释明载 L1 前三位恒为纯战斗,按字面计数第二个战斗节点 = **(1,1)** 而非本条登记的 (1,2);本条按实查确证的客观崩坏取 (1,2)(总量 10→50 的 5 倍墙),(1,1) 不动——若原意确为 (1,1) 需重裁。
|
||||
|
||||
#### 敌人表内容修批(三关)—— 需求卡片登记(2026-10-13,防遗忘)
|
||||
|
||||
**卡片名**:敌人表内容修批(三关);**文件指针**:[需求卡片-敌人表内容修批-2026-10-13](../research/需求卡片-敌人表内容修批-2026-10-13.md)(v1.1,Q1–Q9 已全裁,零待裁点,开工门=U0)
|
||||
|
||||
**内容**:三件事合一——① **N1** (1,2) 降档(hp 50→22、ac 3→2,**敌种 bugbear 不动**);② **N2** 第二/三关普通敌技能投放(`skills.tres` 新增 `venom_spit` 毒吐 / `shield_bash` 盾击 两行,挂 6 个池,首遇位 (2,4) 不动);③ **N3** 敌方 `attack_type` 加列并全填 normal(挂敌种行,不做差异化)。
|
||||
|
||||
**完成去向**:本卡入库后,上条「第一关遭遇表数值异常」、「第二关技能池与投放」、锻造工坊条迁移面⑥「敌方攻击类型轴填值」**三条一并注销**。
|
||||
|
||||
**归属**:[敌人系统](systems/战斗循环/敌人系统.md) + [难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)
|
||||
|
||||
**状态**:**已入库完成(2026-10-13,迭代 24 卡① 单会话交付)**——N1 降档/N2 两新行六池/N3 attack_type 轴全落地(master 三提交:26d669f N1+N2 / ab3ba4f N3 / 完成批);冒烟 949/0(基线 938+N1 两断言+N2 五断言+N3 四断言)+run_all 25 套+探针全绿;MC 同种子配对 40 局×both(seed0=9000)位移在册实现报告;完成去向三条(「第一关遭遇表数值异常」「第二关技能池与投放」、锻造工坊条迁移面⑥)已顺带注销;残留=实机目检三件(07 ㉓)+GDD 反哺点五条(下条,待用户裁决另批写入文档)
|
||||
|
||||
|
||||
#### 迭代 24 敌人表内容修批——GDD 反哺点五条(2026-10-13 顺带登记,待用户逐点裁决另批写入文档)
|
||||
|
||||
**来源**:迭代 24 实现报告 §六(已退役,git 历史可考;设计权威文档零触碰——2026-10-10 立规:文档更新必须经用户同意)。
|
||||
|
||||
| # | 文档 | 反哺点 |
|
||||
|---|---|---|
|
||||
| ① | [敌人系统](systems/战斗循环/敌人系统.md) | 调参表敌人表字段集需增 `attack_type`(枚举域 {normal, pierce, magic}/缺省 normal/消费面=敌方技兑付查矩阵) |
|
||||
| ② | [敌人系统](systems/战斗循环/敌人系统.md) | 技能池节「三代错峰」口径需扩为「Boss 独占技 + 普通敌错峰」两轨(N2 已补齐普通敌轨) |
|
||||
| ③ | [敌人系统](systems/战斗循环/敌人系统.md) | 敌种表技能池构成列随 N2 变动(巨蜘蛛族+毒吐、灰矮人族+盾击) |
|
||||
| ④ | [敌人系统](systems/战斗循环/敌人系统.md) | 「八敌种」表缺 `hobgoblin`(有数据行 (1,3)、无立绘、不在敌种表——登记在案已知缺口,本批未动) |
|
||||
| ⑤ | [难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md) | N2 投放后 L2/L3 难度带位移(perfect 配对 +20~25pp 在案)+N3 全局平移(重甲 −1/魔法甲 +1/轻甲 0)——数值终值归 M4 |
|
||||
|
||||
**状态**:✅ **已写入(2026-10-14,用户裁「全部按呈报写入文档」——qa 收尾批)**——①-④落**敌人系统.md v0.18**(attack_type 字段行+矩阵消费面双向在役注记/技能错峰两轨/敌种表两行池构成/hobgoblin 缺口登记);⑤落**难度曲线与Boss.md v0.29**(只测不判读数登记,数值终值归 M4)。报告 §六已逐条标注落点
|
||||
|
||||
#### 迭代 25 UI 全局主题批——GDD 反哺点(2026-10-14 补登——前序批次漏登;iter24/26 同款专条模式,待用户逐点裁决另批写入文档)
|
||||
|
||||
**来源**:迭代 25 实现报告 §五(已退役,git 历史可考;设计权威文档不顺带改,逐点待用户裁)。
|
||||
|
||||
- **反哺点①(art-bible §7 组件规格缺项)**:滚动条/滑轨/悬停气泡/输入件的组件规格条款(尺寸档、圆角、对比度底线)目前无条款,本批色值与微观值=**临时权威**——是否立条款入 §7、值是否冻结待裁。
|
||||
- **反哺点②(第三层①诊断描述与代码面不符)**:UI 美化三层诊断称音量滑轨两段「同一个深棕色」,实为 #B8A582/#7A5232(2.84:1,低于 3:1 图形参考线)——「偏难辨」成立、「同色」不成立;已在 06「UI 元素细节修」条状态注记呈报,是否需回改诊断源文待裁。
|
||||
- **反哺点③(需求卡片 v1.2 注③事实订正)**:CheckButton 与 CheckBox 同套 `checked`/`unchecked`(+_disabled) 图标名(Godot 4.7.2 源码实证,「on/off」不存在)——卡片已退役归档不修订,订正只随实现报告留痕,**无写入文档动作**。
|
||||
- **反哺点④(主题色值双处存在)**:`.tres` 字面量与 ui_kit 常量双源(卡片立项时已知代价,README 溯源表缓解)——长期是否将主题色值收敛回代码单点(程序化 Theme 生成)待裁。
|
||||
- 〔附〕反哺点⑤=专项观察点二(滑轨柄 CANDLE 抢焦点/滚动条槽可见性)归用户目检,已登记 07 ㉔,非写入文档项。
|
||||
|
||||
**归属**:[美术圣经](../art/art-bible.md) §7/§8.2 + 诊断源文(裁决后另批写入文档)
|
||||
|
||||
**状态**:✅ **已落文(2026-10-14,用户裁「全部按呈报落文」——qa 收尾批)**——①落**art-bible.md v3.14 §7.6(二)**(引擎原生控件组件规格转正,色值遵守定值单点纪律指路 theme README 溯源表);②落**本清单「UI 元素细节修」条现状①措辞订正**(「同一个深棕色」不符代码面,实为 #B8A582/#7A5232 2.84:1——「偏难辨」成立、「同色」不成立);④落**art-bible.md v3.14 §7.6 末注**(主题色值双源事实+收敛候选未排期)。③无落文动作(卡片已退役归档);⑤归 07 ㉔ 目检(已核销)
|
||||
|
||||
#### 削弱档位的最终数值
|
||||
|
||||
**现状**:削弱取值域 [60,85] 与投值 −65 来自旧体系裁决;"标中旗必须比随便挖一格更值"的当量终值由[战斗结算](systems/战斗循环/战斗结算.md)与[地图战斗资源](systems/战斗循环/地图战斗资源.md)共裁,尚未闭合。**语义侧已定案(2026-09-18 盘问会话,结构修复批落地)**:削弱叠层改续时——同名重复授予只刷新剩余结算数、层数恒 1(结构性消饱和,×2 叠满池触底 ×0 的免伤轮从根杜绝);现行表值为临时值(provisional),duration 终值与当量锚复算归状态层重设计批
|
||||
|
||||
**归属**:战斗结算与地图战斗资源共裁(数值终值归状态层重设计批)
|
||||
|
||||
**状态**:待办(语义已定案,数值未闭合)——**已编入 roadmap 迭代 18 M4 数值批〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 在飞开发〕(2026-10-05——裁点已全裁并经同日联审二裁修订:P1甲〔带内落定随出口追认〕/P2甲/P3甲〔转正顺延至重扫读数到账且带内〕/P4甲〕待 U0:design/research/任务书-M4数值批-2026-10-05.md〔v1.2〕;duration 终值与当量锚复算 = 件①,跑批发起前须用户批准)**
|
||||
**状态**:待办(语义已定案,数值未闭合)——**已编入 Alpha 收官 M4 数值批〔未排期,2026-10-07 用户令移出迭代 18 暂不启动〕〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 正在执行中的开发〕(2026-10-05——裁点已全裁并经同日联审二裁修订:P1甲〔带内落定随出口追认〕/P2甲/P3甲〔转正顺延至重扫读数到账且带内〕/P4甲〕待 U0:design/research/需求卡片-M4数值批-2026-10-05.md〔v1.2〕;duration 终值与当量锚复算 = 件①,跑批发起前须用户批准)**
|
||||
|
||||
#### 单体寻址的接口扩展位
|
||||
|
||||
**现状**:对敌效果现行一律全体存活敌人共享一份层数;将来若要"只削弱其中一个",需要给实例加目标寻址字段——扩展位已预留,首个单体效果上线时补列,并随之裁决归集与呈现语义
|
||||
|
||||
**归属**:增益状态(首个单体效果上线时随批)
|
||||
**归属**:增益状态(首个单体效果上线时顺带)
|
||||
|
||||
**状态**:待办
|
||||
|
||||
#### 空刷新的可见性
|
||||
|
||||
**现状**:刷新类策略在剩余次数已满时再授予是合法空操作(返回成功、无任何变化),与"溢出不静默吞"的诚实原则存在张力;MVP 无刷新类内容行,首批刷新行上线时随批裁决
|
||||
**现状**:刷新类策略在剩余次数已满时再授予是合法空操作(返回成功、无任何变化),与"溢出不静默吞"的诚实原则存在张力;MVP 无刷新类内容行,首批刷新行上线时顺带裁决
|
||||
|
||||
**归属**:增益状态(首批刷新行上线时随批)
|
||||
**归属**:增益状态(首批刷新行上线时顺带)
|
||||
|
||||
**状态**:待办
|
||||
|
||||
#### 冒险前资源配比预设(构筑提案)
|
||||
|
||||
**现状**:2026-09-18 用户提案,方向评估通过,登记在案。核心想法 = 玩家在**开始冒险前**预设地图战斗资源的类型配比——预设的是**分布**(八型在格面上的权重占比),不是落位:装板摇号仍按专属随机流摇出各格类型身份,玩家定分布、摇号定落位,无固定出招剧本(与既定随机性立场相容)。两分法:① **基础资源配比**——玩家对九型格面池(attack 增伤 / defense 护甲 / heal 回血 / blast 群伤 / weaken 削弱 / pierce 穿刺 / magic 魔法 / action 行动点 / gp 金币——2026-10-04 立项裁决批口径收口:原登记时 gp 型未入池写八型,现行九型正向权重合计 77)的正向行权重做配比,经覆盖值通道在开局注入,摇号按覆盖后的分布落位;② **关卡特殊资源**——不同关卡(board_biome 图主题)的地图携带配比池之外的特殊资源与差异化分布。设计红利:雷安同池 + 极性矩阵使配比自带代价轴——调高某型权重,安全格正向与雷格负向同步变多,配比 =「赌自己挖掘少失误 + 赌关卡敌人构成怕什么」的双重下注,不是免费午餐,无需另发明平衡机制。架构红利:① 的注入通道 = [元进度](systems/跨局循环/元进度.md) v1.0 刚定稿的「冒险开始参数面 + 覆盖值通道」(追加/替换集合操作已登记),零新机制;② 正是[棋盘生成](systems/排雷循环/棋盘生成.md) board_biome 上下文与[地图战斗资源](systems/战斗循环/地图战斗资源.md)`clear_<图类型>` 差异化插槽、P1 功能道具渠道等预留位的启用场景。
|
||||
**现状**:2026-09-18 用户提案,方向评估通过,登记在案。核心想法 = 玩家在**开始冒险前**预设地图战斗资源的类型配比——预设的是**分布**(八型在格面上的权重占比),不是落位:装板摇号仍按专属随机流摇出各格类型身份,玩家定分布、摇号定落位,无固定出招剧本(与既定随机性立场相容)。两分法:① **基础资源配比**——玩家对九型格面池(attack 增伤 / defense 护甲 / heal 回血 / blast 群伤 / weaken 削弱 / pierce 穿刺 / magic 魔法 / action 行动点 / gp 金币——2026-10-04 立项裁决批口径完成:原登记时 gp 型未入池写八型,现行九型正向权重合计 77)的正向行权重做配比,经覆盖值通道在开局注入,摇号按覆盖后的分布落位;② **关卡特殊资源**——不同关卡(board_biome 图主题)的地图携带配比池之外的特殊资源与差异化分布。设计红利:危险格与安全格同池 + 极性矩阵使配比自带代价轴——调高某型权重,安全格正向与危险格负向同步变多,配比 =「赌自己挖掘少失误 + 赌关卡敌人构成怕什么」的双重下注,不是免费午餐,无需另发明平衡机制。架构红利:① 的注入通道 = [元进度](systems/跨局循环/元进度.md) v1.0 刚定稿的「冒险开始参数面 + 覆盖值通道」(追加/替换集合操作已登记),零新机制;② 正是[棋盘生成](systems/排雷循环/棋盘生成.md) board_biome 上下文与[地图战斗资源](systems/战斗循环/地图战斗资源.md)`clear_<图类型>` 差异化插槽、P1 功能道具渠道等预留位的启用场景。
|
||||
|
||||
**影响面(按循环)**:
|
||||
- 排雷循环:[行动经济](systems/排雷循环/行动经济.md)——经济契约对账以资源行值为原材料,类型频次构成随配比漂移,对账窗口须按配比包络复算;[棋盘生成](systems/排雷循环/棋盘生成.md)——生成管线零改动(资源身份摇号不在其域),board_biome 词表定稿是关卡特殊资源的前置;[排雷玩法](systems/排雷循环/排雷玩法.md)——挖掘/标旗动作决定极性、承载配比的风险轴,机制零改动;[秘宝](systems/排雷循环/秘宝.md)——相邻:预读类道具读取身份查询面,配比改变分布先验后「资源预读与推理的边界」读感联动,不做机制耦合。
|
||||
- 战斗循环:[地图战斗资源](systems/战斗循环/地图战斗资源.md)——主战场:候选集合权重来源从纯表值扩为「表值 × 玩家覆盖」;基础配比是整体平移分布,「雷安同池」(同池同分布)语义不破,不动结构冻结;[战斗结算](systems/战斗循环/战斗结算.md)——唯一调用方:摇号入口需受理开局注入的权重覆盖,兑付编排零改动;[增益状态](systems/战斗循环/增益状态.md)——零改动(percent 行效果引用不变,配比只改触发频率不改状态语义);[敌人系统](systems/战斗循环/敌人系统.md)——间接:各关敌种构成是配比预测的对象,混编遭遇行集的走向影响配比博弈读数。
|
||||
- 排雷循环:[行动经济](systems/排雷循环/行动经济.md)——经济契约对账以资源行值为原材料,类型频次构成随配比漂移,对账窗口须按配比包络复算;[棋盘生成](systems/排雷循环/棋盘生成.md)——生成管线零改动(资源身份摇号不在其域),board_biome 词表定稿是关卡特殊资源的前置;[排雷玩法](systems/排雷循环/排雷玩法.md)——挖掘/标旗动作决定极性、承载配比的风险轴,机制零改动;[秘宝](systems/跨局循环/秘宝.md)——相邻:预读类道具读取身份查询面,配比改变分布先验后「资源预读与推理的边界」读感联动,不做机制耦合。
|
||||
- 战斗循环:[地图战斗资源](systems/战斗循环/地图战斗资源.md)——主战场:候选集合权重来源从纯表值扩为「表值 × 玩家覆盖」;基础配比是整体平移分布,「危险格与安全格同池」(同池同分布)语义不破,不动结构冻结;[战斗结算](systems/战斗循环/战斗结算.md)——唯一调用方:摇号入口需受理开局注入的权重覆盖,兑付编排零改动;[增益状态](systems/战斗循环/增益状态.md)——零改动(percent 行效果引用不变,配比只改触发频率不改状态语义);[敌人系统](systems/战斗循环/敌人系统.md)——间接:各关敌种构成是配比预测的对象,混编遭遇行集的走向影响配比博弈读数。
|
||||
- 冒险循环:[元进度](systems/跨局循环/元进度.md)——配比能力的家:可用类型 / 预算点数 / 预设槽位走营地柜台解锁,配比预设 = 覆盖值通道的又一生产者;[冒险结构](systems/冒险循环/冒险结构.md)——冒险开始参数面扩容,配比覆盖域的字段语义待裁;[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)——杠杆主权转移:设计者从「定权重」改为「定预算包络、玩家在包络内分配」,通关率验收带随配比漂移,切片与验收期必须锁默认权重;[关卡节点地图](systems/冒险循环/关卡节点地图.md)——关卡特殊资源与节点奖励(功能道具渠道)的分工须一次说清:特殊资源走图内格面池差异化,功能道具走节点奖励,两渠道不混。
|
||||
- 表现与支撑:[HUD 框架](systems/表现与支撑/HUD框架.md)——新增构筑界面(冒险前的配比设置面)与配比效果的局内可读呈现;[教学引导](systems/表现与支撑/教学引导.md)——新增「读敌配比」教学口径;[数据配置](systems/表现与支撑/数据配置.md)——配比预设存档域与预算参数表建账,registry 新条目;[存档序列化](systems/表现与支撑/存档序列化.md)——预设档契约域随批登记(与元进度存档四件同批)。
|
||||
- 表现与支撑:[HUD 框架](systems/表现与支撑/HUD框架.md)——新增构筑界面(冒险前的配比设置面)与配比效果的局内可读呈现;[教学引导](systems/表现与支撑/教学引导.md)——新增「读敌配比」教学口径;[数据配置](systems/表现与支撑/数据配置.md)——配比预设存档域与预算参数表建账,registry 新条目;[存档序列化](systems/表现与支撑/存档序列化.md)——预设档契约域顺带登记(与元进度存档四件同批)。
|
||||
|
||||
**依赖(本提案依赖谁)**:① 冒险开始参数面 + 覆盖值通道([元进度](systems/跨局循环/元进度.md) v1.0 已定稿口径,现成);② 八型候选集合与权重语义([地图战斗资源](systems/战斗循环/地图战斗资源.md) v0.14 现行结构);③ board_biome 词表定稿([棋盘生成](systems/排雷循环/棋盘生成.md),关卡特殊资源的前置);④ 数据配置表承载与存档域(预设持久化);⑤ 元进度解锁状态(可用配比容量)。
|
||||
|
||||
@@ -247,33 +359,77 @@
|
||||
|
||||
**前置**:① 验收批读数重测与真人试玩先跑——配比博弈的核心未知数(玩家配比是否收敛到唯一解、分布先验怎么被利用)只有真人数据能回答;② 当前批序列走完:本批审批 → 验收重测 → 曲线调参 → 秘宝内容批。〔原前置③「立项时与差异化批合并评估——同一冻结面一批做省一次修订流程」随差异化批否决退役(2026-10-04)——配比预设转独立立项评估〕
|
||||
|
||||
**归属**:[地图战斗资源](systems/战斗循环/地图战斗资源.md)修订批(基础配比的权重覆盖语义 + GDD 修订)与[元进度](systems/跨局循环/元进度.md)(解锁容量与注入生产者)共裁;呈现面归[HUD 框架](systems/表现与支撑/HUD框架.md)与[教学引导](systems/表现与支撑/教学引导.md)随批。
|
||||
**归属**:[地图战斗资源](systems/战斗循环/地图战斗资源.md)修订批(基础配比的权重覆盖语义 + GDD 修订)与[元进度](systems/跨局循环/元进度.md)(解锁容量与注入生产者)共裁;呈现面归[HUD 框架](systems/表现与支撑/HUD框架.md)与[教学引导](systems/表现与支撑/教学引导.md)顺带。
|
||||
|
||||
**状态**:已裁待实施(2026-10-04 立项提案五拍板点全按推荐落定〔用户令「拍板点全部使用推荐」〕——①预算机制 = 组合制:总量挪点为骨架〔九型正向权重总和恒 77,拉高某型必以压低别型为代价,全押穿刺+魔法算术不可达〕+每型上下限包络+容量随营地解锁渐进〔三子裁随裁:gp 首发不可调〔包络 (2,2) 恒定〕/预设档位 3 套/下限 >0〕;②主权切分 = 设计者定包络与默认、玩家包络内分配,验收 = 默认分布锚〔现行四带正主读数不动〕+新增极端构筑护栏带;③容量柜台 = 奖励格图鉴承接〔随 A3 否决空置的柜台得正业〕;④注入语义 = 差值向量〔存相对默认偏移 ΣΔ=0,与偏运硬币同一摇号前权重合成层,关态逐位零扰动〕,集合操作保留在解锁层〔可调型集扩容〕作辅语义;⑤渠道边界 = 清图槽差异化先行 + 三句不混池口径〔板图分工/配比域封闭/格型无差——不按雷格安全格分的 A3 红线沿用〕。全案与淘汰依据 = design/research/提案-冒险前资源配比预设-2026-10-04.md §八备选全列 + §九裁决记录 + §十盘问轮四裁。盘问轮四裁随落(2026-10-04 全按推荐:合成序 = 表值→玩家配比差值→包络钳制→图级变异偏斜→同调硬币偏置〔包络只管玩家差值,提案 §6.3 原草图废止〕/图鉴柜台逐型商品/冒险开始锁档〔关间换档后置评估〕/包络宽度随容量分级放宽)。**已编入 roadmap 迭代 14 ⑥号卡(2026-10-04 用户令)**,任务书=design/research/任务书-冒险前资源配比预设批-2026-10-04.md(T0-T8≈6.0d 两段切分;开工门=②③号卡出口;零新拍板点,provisional 归出口追认)——序位在②③后(合成序扩参与包络数值锚依赖②判式换代与③变异投影,三者共用摇号投影点);包络数值 provisional 起步,待真人读数与②号新当量账双锚校准;任务书待起草(估时随任务书)。原「实施窗口 = Alpha」随编卡改迭代 14。原「与差异化批合并立项」随差异化批否决退役〔2026-10-04〕)。**挂起(2026-10-05 用户令)**:移出 roadmap 迭代 14(⑥号卡撤销)——暂不做,本条目在 06 保留为挂起待办;八项裁决与任务书全部冻结保留(任务书=design/research/任务书-冒险前资源配比预设批-2026-10-04.md,文件头已挂冻结横幅);原开工门「②③号卡出口」随挂起冻结——重启须用户另行发令,届时若②判式换代与③全局变异已落籍 master 则开工门自然解(合成序与包络数值锚仍依赖两者的摇号投影点)
|
||||
**状态**:已裁待实施(2026-10-04 立项提案五拍板点全按推荐落定〔用户令「拍板点全部使用推荐」〕——①预算机制 = 组合制:总量挪点为骨架〔九型正向权重总和恒 77,拉高某型必以压低别型为代价,全押穿刺+魔法算术不可达〕+每型上下限包络+容量随营地解锁渐进〔三子裁随裁:gp 首发不可调〔包络 (2,2) 恒定〕/预设档位 3 套/下限 >0〕;②主权切分 = 设计者定包络与默认、玩家包络内分配,验收 = 默认分布锚〔现行四带权威读数不动〕+新增极端构筑护栏带;③容量柜台 = 奖励格图鉴承接〔随 A3 否决空置的柜台得正业〕;④注入语义 = 差值向量〔存相对默认偏移 ΣΔ=0,与偏运硬币同一摇号前权重合成层,关态逐位零扰动〕,集合操作保留在解锁层〔可调型集扩容〕作辅语义;⑤渠道边界 = 清图槽差异化先行 + 三句不混池口径〔板图分工/配比域封闭/格型无差——不按危险格安全格分的 A3 红线沿用〕。全案与淘汰依据 = design/research/提案-冒险前资源配比预设-2026-10-04.md §八备选全列 + §九裁决记录 + §十盘问轮四裁。盘问轮四裁随落(2026-10-04 全按推荐:合成序 = 表值→玩家配比差值→包络钳制→图级变异偏斜→同调硬币偏置〔包络只管玩家差值,提案 §6.3 原草图废止〕/图鉴柜台逐型商品/冒险开始锁档〔关间换档后置评估〕/包络宽度随容量分级放宽)。**已编入 roadmap 迭代 14 ⑥号卡(2026-10-04 用户令)**,需求卡片=design/research/需求卡片-冒险前资源配比预设批-2026-10-04.md(T0-T8≈6.0d 两段切分;开工门=②③号卡出口;零新拍板点,provisional 归出口追认)——序位在②③后(合成序扩参与包络数值锚依赖②判式换代与③变异投影,三者共用摇号投影点);包络数值 provisional 起步,待真人读数与②号新当量账双锚校准;需求卡片待起草(估时随需求卡片)。原「实施窗口 = Alpha」随编卡改迭代 14。原「与差异化批合并立项」随差异化批否决退役〔2026-10-04〕)。**挂起(2026-10-05 用户令)**:移出 roadmap 迭代 14(⑥号卡撤销)——暂不做,本条目在 06 保留为挂起待办;八项裁决与需求卡片全部冻结保留(需求卡片=design/research/需求卡片-冒险前资源配比预设批-2026-10-04.md,文件头已挂冻结横幅);原开工门「②③号卡出口」随挂起冻结——重启须用户另行发令,届时若②判式换代与③全局变异已合并进 master 则开工门自然解(合成序与包络数值锚仍依赖两者的摇号投影点)
|
||||
|
||||
#### GP 经济换算失衡——GP 袋面值与商店价格的换算关系复查(2026-10-07 登记)
|
||||
|
||||
**现状**:道具三层审查的换算发现——小 GP 袋 20 ≈ 商店两三次首购(首购基价 4-5、A 链爬升前)≈ +2~4 点属性,而小攻击件只值 +1——「拿钱」在三选一面里经常比「拿数值」划算,且 GP 袋是池内最大户(23/98 张)进一步放大倾向。用户判「太离谱」。复查范围 = GP 袋面值(20/50)× 商店基价(4/4/4/5)× 价格曲线(A=1.8 / b=1.1)× 战斗 GP 掉落(普通 3 / 精英 5 / Boss 8,关级加值 0/1/2)四处联动;目标 = 钱与属性件的换算效率回到设计意图(拿钱 vs 拿数值的取舍成立;GP 袋最大户地位要么有理由要么让位)。连带前提:L1 无商店节点使 GP 在第一关无消费口(「L1 商店编排」不另立条目、归本条〔GP 经济换算失衡〕复查范围)——复查时按 L1 是否补商店分两种情形各算一遍。
|
||||
|
||||
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)调参批(M4 数值批)+ 奇物池结构顺带
|
||||
|
||||
**状态**:待办(随 M4 数值批一并裁决;「L1 商店编排」不另立条目、其情形复查并入本条〔GP 经济换算失衡〕,无外部前置)
|
||||
|
||||
#### 迭代 10 奖励重构联动欠账(2026-10-01 登记)
|
||||
|
||||
**现状**:迭代 10 奖励重构批(worktree 分支 m3-iter10-20261001,不合入 master、渲染层验证冻结,待用户批准合并)落地面产生三条后续义务——①钥石产出重标:渠道改「Boss/精英击杀掉落」(大奖励 keystone_per_level 退役、boss_keystone 重锚首杀 3/复杀 2 provisional),现行元进度产出结构作废,标定义务重开;②通关率带重扫:通关回血 20%(血回满→部分回血,难度上压方向)+ 三选一件值/权重/次数上限 knob(AP 件 = 每场战斗首轮 +1 AP 强度敏感轴)——难度曲线与Boss P1 行已登记;③同调位读数源切换:本批挂过渡键 transitional_sync_slots(provisional 1),同调实施批落地后切换为 attunement_growth.tres 谓词表实时求值,切换注记随该批。〔③已清偿(2026-10-03 迭代 11 第①批 T7:过渡键表/schema/断言三处退役,读取点归零,呈现与求值正主=Attunement.slots 谓词表实时求值);①②仍开放〕
|
||||
**现状**:迭代 10 奖励重构批(worktree 分支 m3-iter10-20261001,不合入 master、渲染层验证冻结,待用户批准合并)落地面产生三条后续义务——①钥石产出重标:渠道改「Boss/精英击杀掉落」(大奖励 keystone_per_level 退役、boss_keystone 重锚首杀 3/复杀 2 provisional),现行元进度产出结构作废,标定义务重开;②通关率带重扫:通关回血 20%(血回满→部分回血,难度上压方向)+ 三选一件值/权重/次数上限 knob(AP 件 = 每场战斗首轮 +1 AP 强度敏感轴)——难度曲线与Boss P1 行已登记;③同调位读数源切换:本批挂过渡键 transitional_sync_slots(provisional 1),同调实施批落地后切换为 attunement_growth.tres 谓词表实时求值,切换注记随该批。〔③已清偿(2026-10-03 迭代 11 第①批 T7:过渡键表/schema/断言三处退役,读取点归零,呈现与求值现行事实源=Attunement.slots 谓词表实时求值);①②仍开放〕
|
||||
|
||||
**归属**:①元进度设计批 + 曲线调参批 ②曲线调参批(现行窗) ③~~秘宝同调实施批~~(已清偿 2026-10-03)
|
||||
|
||||
**状态**:已登记(2026-10-01,迭代 10 批随批)——**①②已编入 roadmap 迭代 18 M4 数值批〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 在飞开发〕(2026-10-05——裁点已全裁〔2026-10-06 用户令:P1甲/P2甲/P3甲/P4甲〕待 U0:design/research/任务书-M4数值批-2026-10-05.md;钥石产出重标 + 通关率带重扫 = 件③,跑批发起前须用户批准)**
|
||||
**状态**:已登记(2026-10-01,迭代 10 批顺带)——**①②已编入 Alpha 收官 M4 数值批〔未排期,2026-10-07 用户令移出迭代 18 暂不启动〕〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 正在执行中的开发〕(2026-10-05——裁点已全裁〔2026-10-06 用户令:P1甲/P2甲/P3甲/P4甲〕待 U0:design/research/需求卡片-M4数值批-2026-10-05.md;钥石产出重标 + 通关率带重扫 = 件③,跑批发起前须用户批准)**
|
||||
|
||||
#### 调参批数值点评登记(八型批随批登记)
|
||||
#### 调参批数值点评登记(八型批顺带登记)
|
||||
|
||||
**现状**:格面资源八型批后随批登记的数值点评——① 增伤型奖励/惩罚幅度 50/25 不对称是否有意;② 削弱型 65/25 同问(且 percent 套个位数取整偏粗——主角攻击 2 点时 ±25% 常取整无感);③ 回血奖励过薄(值 1、权重全池最低 2);④ 警觉/行动点修正两新词数值全部 provisional;⑤ 行动经济"满停一轮 = 一刷"节拍在 AP±1 修正下的对账。
|
||||
**现状**:格面资源八型批后顺带登记的数值点评——① 增伤型奖励/惩罚幅度 50/25 不对称是否有意;② 削弱型 65/25 同问(且 percent 套个位数取整偏粗——主角攻击 2 点时 ±25% 常取整无感);③ 回血奖励过薄(值 1、权重全池最低 2);④ 警觉/行动点修正两新词数值全部 provisional;⑤ 行动经济"满停一轮 = 一刷"节拍在 AP±1 修正下的对账;⑥ **格面资源正负兑付倍率差回调(2026-10-07 用户裁)**——2026-10-01「踩雷必须痛」抬档(heal +2/−6、pierce/magic +2/−8 等,负向 3-4 倍于正向)系错误的加难杠杆:难度提升应走怪物性能路线而非抬地图惩罚,回调归 M4 数值批(2026-10-09 里程碑立规:M4=Beta 阶段、M3 未由用户明令关闭前不排期——原「下一迭代数值批」表述作废);标错/开雷同档同罚维持不动(同批裁)。
|
||||
|
||||
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)难度曲线调参批
|
||||
|
||||
**状态**:待办(随调参批一并裁决)——**已编入 roadmap 迭代 18 M4 数值批〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 在飞开发〕(2026-10-05——裁点已全裁〔2026-10-06 用户令:P1甲/P2甲/P3甲/P4甲〕待 U0:design/research/任务书-M4数值批-2026-10-05.md;五条点评逐条裁决 = 件②)**
|
||||
**状态**:待办(随调参批一并裁决)——**已编入 Alpha 收官 M4 数值批〔未排期,2026-10-07 用户令移出迭代 18 暂不启动〕〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 正在执行中的开发〕(2026-10-05——裁点已全裁〔2026-10-06 用户令:P1甲/P2甲/P3甲/P4甲〕待 U0:design/research/需求卡片-M4数值批-2026-10-05.md;六条点评逐条裁决 = 件②)**
|
||||
|
||||
#### 成长系数与关卡怪物难度提升的节奏(2026-10-16 playnote 登记;同日用户定性=数值校准类)
|
||||
|
||||
**现状**:来源 = playnote 用户反馈「一开始不能让角色的成长系数太高。比如在没经过升级之前,你的成长系数是跟不上关卡怪物难度提升的;但是后续能力解锁之后,成长系数才能匹配得上」。语义两读,去向不同:**读法甲=节奏缺陷呈报**——前期成长跟不上怪物难度提升=要修的数值节奏问题,归属 [难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md) +元进度解锁节奏的数值面,M4 数值批已废后并入数值欠账组重新归属待裁;**读法乙=设计哲学陈述**——前期成长刻意克制、后期靠能力解锁追平=既定设计,应反哺难度曲线与 Boss 的设计语义,无需数值批。
|
||||
|
||||
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md) + [元进度](systems/跨局循环/元进度.md)(成长系数语义面)
|
||||
|
||||
**状态**:已定性(2026-10-16 用户口径:与数值欠账同类任务)——并入数值欠账组随组重新归属(按里程碑立规属 Beta 阶段面,Alpha 不排期);甲 / 乙两读随定性消解(无论现行节奏好坏,调它都是数值校准面的事),不进 [08-Alpha版本标准](08-Alpha版本标准.md)——数值调优义务 2026-10-16 v1.6 起不入版本标准
|
||||
|
||||
#### 「封锁-蓄力」combo 设计素材(2026-10-07 用户想法登记)
|
||||
|
||||
**现状**:用户想法(暂不立件,素材登记)——两件套:件一=抬高刷新雷图代价(储备池 RAP 成本飙高)+ 刷新时解锁所有格子(全板开);件二=本回合留着 AP 没有刷新 → 获得减伤。联动 = 抬价逼留 AP、留 AP 给减伤、憋够一发全板解锁。我方补充登记五点:①形态骨架=「封锁-蓄力」combo 结构(抬高某动作代价封路 + 不做给补偿 + 憋到后的爆发);②件一=风险契约句式的扫雷侧版——碰撞点待裁:刷新开全板与清图判定/清图奖励/连锁展开的关系(算不算清图、发不发清图奖励);③件二词表可承载(on round_end when 本轮未刷新且余 AP≥X → 减伤/护盾),「本轮未刷新」事实=扩签候选;④归层按判定尺逐件裁(两件偏机制改写→专长域;但「刷新代价」是扫雷侧经济参数→秘宝域亦可);⑤防躺赢注记:憋的收益须小于正常挖格期望(否则最优解=永远不挖,玩法塌缩)。
|
||||
|
||||
**归属**:专长重设计扩充批 / 秘宝内容批(归层顺带裁)
|
||||
|
||||
**状态**:待办(设计素材登记,不立项)
|
||||
|
||||
#### 袋装摇号(格面资源池结构备选——保底型增多后的重构方向)(2026-10-07 登记)
|
||||
|
||||
**现状**:地图战斗资源池保底结构(四档概率 + 按型保底 + 档位保底上限,现行事实源=[地图战斗资源](systems/战斗循环/地图战斗资源.md)候选集合节)以「摇完整板校验补签」的补丁式实现起步——简单够用。备选正规形态 = **袋装摇号**:装板时按各档配额数好牌再洗开发放,保底天然成立、分布精确;代价 = 摇号结构重写 + 偏运硬币/board_skew 两路权重投影须改为袋面投影。启用条件 = 保底登记型增多、补签逻辑复杂化时。来源 = 2026-10-07 地图层题四讨论,用户裁「先挂在 06」。
|
||||
|
||||
**归属**:[地图战斗资源](systems/战斗循环/地图战斗资源.md)(重评归该层内容批或数值批窗口)
|
||||
|
||||
**状态**:待办(挂号备查,未排期)
|
||||
|
||||
#### 战斗节点地图类型差异化(更多地图主题)——排 Beta(2026-10-13 用户裁定)
|
||||
|
||||
**现状**:来源 = playnote 用户试玩记录「修改地图的奖励类型:战斗节点增加不同的地图类型,比如有些图踩雷受到更多的伤害,有些图标雷可以造成更多的伤害,有些图伤害会减半需要凑更多清图奖励(这些都是暂时的设定)」。
|
||||
|
||||
**已实装的部分**:首发形态整图变异「贫矿脉」(回复与护甲资源减少、攻击资源增多)**已于 2026-10-16 用户令屏蔽删行**(Boss 图回落 region 变异,原 07 ⑪ 目检项随之转记失效)——本条剩余面不变:在此之上再做**更多地图主题**(踩雷伤害更高 / 标雷伤害更高 / 伤害减半需凑更多清图奖励)。
|
||||
|
||||
**2026-10-13 用户裁定**:**排 Beta 版本,Alpha 不做**——已移入 [08-Alpha版本标准](08-Alpha版本标准.md)「六 · Alpha 不含」节。
|
||||
|
||||
**归属**:[棋盘生成](systems/排雷循环/棋盘生成.md)(board_biome 图主题词表)+ [地图战斗资源](systems/战斗循环/地图战斗资源.md)(图主题差异化插槽)+ [地形变异](systems/排雷循环/地形变异.md)(整图变异承载面)
|
||||
|
||||
**状态**:待办(**Beta 阶段**,Alpha 不做)——重启 = Beta 立项时按本条原始想法重新评估(用户标注「这些都是暂时的设定」,到时需重订而非照抄)
|
||||
|
||||
#### 基线通关率越带,加难杠杆扫描未执行
|
||||
|
||||
**现状**:现行扫描读数 60%,越 [30%, 50%] 上界(2026-09-18 注:目标带已随 2026-09-17 数值纪律收口批改为 [10%, 25%]〔用户拍板〕,旧读数 60% 系压缩批前口径、已失效——本条现状文本按新带校正:新带下加难紧迫性待验收批重测后重判)。三类杠杆候选已登记:血量锚走廊 r_boss [1.1, 1.35](Boss 生命 180–207)(2026-09-17 注:数值压缩批后 Boss 生命已 ÷3 缩水,180–207 为压缩前基线锚,复算随调参批)、群战上探、注入衰减 0.5 → 0.6;扫描步未执行。落带前全部现行行值维持 provisional-pending-scan。**2026-09-20 地形变异首批类型定稿批注记(台账 96)**:变异已天然加难一大步——R3+unique 基线格读数(atk+0%/hp+0%,对无变异基线):普通档 L1 83%→43% / L2 87%→60%、完美档 L1 87%→70% / L2 87%→60%,加难扫描的紧迫性与剩余缺口随本批重判;**新增调参杠杆位 = 变异 effect_value(荆棘丛 1 / 岩浆 2)与 percent_of_cells(5%)/ per_level_bonus(+2/关)**,扫描时与既有三类杠杆合并比较(行值全部 provisional 归本批)。**2026-09-20 重投基线批注记(台账 105〔登记时撞并行会话 103 号,顺延让号〕)**:主角增益续时+伏击退役/警觉+行动点第八型三批行为变更后全量重投(N=300/画像/关,production/qa/mc-reinvest-baseline-2026-09-20.md)——普通档 L1 47% / L2 34%;同日基线通关率带随用户拍板分带修正为 L1 [35,55] / L2 [25,45](旧 [10,25] 失锚作废)——**新带下普通档双关落带,加难紧迫性解除**;完美档 56%/40% 亦落带(完美档带 [35,65] 不变);本条剩余面 = 调参批的行值 provisional→正式扫描义务(门 = 真人批 k 系数)
|
||||
**现状**:现行扫描读数 60%,越 [30%, 50%] 上界(2026-09-18 注:目标带已随 2026-09-17 数值纪律完成批改为 [10%, 25%]〔用户拍板〕,旧读数 60% 系压缩批前口径、已失效——本条现状文本按新带校正:新带下加难紧迫性待验收批重测后重判)。三类杠杆候选已登记:血量锚走廊 r_boss [1.1, 1.35](Boss 生命 180–207)(2026-09-17 注:数值压缩批后 Boss 生命已 ÷3 缩水,180–207 为压缩前基线锚,复算随调参批)、群战上探、注入衰减 0.5 → 0.6;扫描步未执行。落带前全部现行行值维持 provisional-pending-scan。**2026-09-20 地形变异首批类型定稿批注记(状态记录 96)**:变异已天然加难一大步——R3+unique 基线格读数(atk+0%/hp+0%,对无变异基线):普通档 L1 83%→43% / L2 87%→60%、完美档 L1 87%→70% / L2 87%→60%,加难扫描的紧迫性与剩余缺口随本批重判;**新增调参杠杆位 = 变异 effect_value(荆棘丛 1 / 岩浆 2)与 percent_of_cells(5%)/ per_level_bonus(+2/关)**,扫描时与既有三类杠杆合并比较(行值全部 provisional 归本批)。**2026-09-20 重投基线批注记(状态记录 105〔登记时撞并行会话 103 号,顺延让号〕)**:主角增益续时+伏击退役/警觉+行动点第八型三批行为变更后全量重投(N=300/画像/关,production/qa/mc-reinvest-baseline-2026-09-20.md)——普通档 L1 47% / L2 34%;同日基线通关率带随用户拍板分带修正为 L1 [35,55] / L2 [25,45](旧 [10,25] 失锚作废)——**新带下普通档双关落带,加难紧迫性解除**;完美档 56%/40% 亦落带(完美档带 [35,65] 不变);本条剩余面 = 调参批的行值 provisional→正式扫描义务(门 = 真人批 k 系数)
|
||||
|
||||
**归属**:难度曲线与Boss调参批,扫描执行与[棋盘生成](systems/排雷循环/棋盘生成.md)工具交付联动
|
||||
|
||||
**状态**:**C1 终态已落表(返工批 2026-09-29)**——占比回退 5+plb 0+岩浆 1;U2 裁决记录(2026-09-29:b 项推翻 C3 四件组合裁 **C1 两刀**〔岩浆 effect_value 2→1+逐层变异基数 2→0;变异占比维持 5%、卓尔血维持 130〕——已落表的占比 4→5、卓尔 100→130 两行回退;a 项推翻丙裁 **甲=新杠杆授权**〔完美 L1 89% 挂账废止,见新条目「完美 L1 新杠杆授权」〕)。C1+v1 AC 组合双窗读数已到账;r_boss 复算 ≈0.33 仍低于域〔挂账维持〕;L3 密度 5%+0(介于 9% 与 4% 间)带外观察态;完美 L1 越带收敛已归难度曲线与Boss.md 带换代节承接(全局难度批、M-4 排序;原「完美 L1 新杠杆授权」「战斗阶段数值问题」两 06 条目 2026-10-03 收口移除)。原扫描记录见 design/qa/m3-iter5-lever-scan-2026-09-28.md,U2 裁断全录见 git 提交 f9c1a8a
|
||||
**状态**:**C1 终态已落表(返工批 2026-09-29)**——占比回退 5+plb 0+岩浆 1;U2 裁决记录(2026-09-29:b 项推翻 C3 四件组合裁 **C1 两刀**〔岩浆 effect_value 2→1+逐层变异基数 2→0;变异占比维持 5%、卓尔血维持 130〕——已落表的占比 4→5、卓尔 100→130 两行回退;a 项推翻丙裁 **甲=新杠杆授权**〔完美 L1 89% 挂账废止,见新条目「完美 L1 新杠杆授权」〕)。C1+v1 AC 组合双窗读数已到账;r_boss 复算 ≈0.33 仍低于域〔挂账维持〕;L3 密度 5%+0(介于 9% 与 4% 间)带外观察态;完美 L1 越带收敛已归难度曲线与Boss.md 带换代节承接(全局难度批、M-4 排序;原「完美 L1 新杠杆授权」「战斗阶段数值问题」两 06 条目 2026-10-03 完成移除)。原扫描记录见 迭代5杠杆扫描报告(已退役,git 历史可查),U2 裁断全录见 git 提交 f9c1a8a
|
||||
|
||||
#### 三方向各自的解锁清单与定价
|
||||
|
||||
@@ -281,78 +437,70 @@
|
||||
|
||||
**归属**:元进度设计批
|
||||
|
||||
**状态**:部分收口(2026-09-21 元进度实现批再收窄;2026-09-23 换算率标定批再收窄)——**三柜台结构与 provisional 定价已落地**(属性锻造三档血+3/攻+1/甲+1、base 10 公比 150;Boss 两档 L1 5/1·L2 8/2·L3 12/3;工坊六件阈值 1/1/2/2/3/3 按总通关次数——全部读 `data/tables/meta.tres`);换算率三行已投值 6/9/1(同批,冒险条件口径实测,护甲行强条目重测履行);剩余面 = 定价数字与 Boss 两档——**已编入 roadmap 迭代 18 M4 数值批〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 在飞开发〕(2026-10-05——裁点已全裁〔2026-10-06 用户令:P1甲/P2甲/P3甲/P4甲〕待 U0:design/research/任务书-M4数值批-2026-10-05.md;定价数字与 Boss 两档终值 = 件④。注:本条「base 10 公比 150」文本滞后——meta.tres 现行 forge base_price=20(2026-09-22 数值设计批对齿 10→20),随件④收口时刷新)**
|
||||
**状态**:部分完成(2026-09-21 元进度实现批再收窄;2026-09-23 换算率标定批再收窄)——**三柜台结构与 provisional 定价已落地**(属性锻造三档血+3/攻+1/甲+1、base 10 公比 150;Boss 两档 L1 5/1·L2 8/2·L3 12/3;工坊六件阈值 1/1/2/2/3/3 按总通关次数——全部读 `data/tables/meta.tres`);换算率三行已投值 6/9/1(同批,冒险条件口径实测,护甲行强条目重测履行);剩余面 = 定价数字与 Boss 两档——**已编入 Alpha 收官 M4 数值批〔未排期,2026-10-07 用户令移出迭代 18 暂不启动〕〔2026-10-06 用户令自迭代 17 卡②移出——不影响 17 正在执行中的开发〕(2026-10-05——裁点已全裁〔2026-10-06 用户令:P1甲/P2甲/P3甲/P4甲〕待 U0:design/research/需求卡片-M4数值批-2026-10-05.md;定价数字与 Boss 两档终值 = 件④。注:本条「base 10 公比 150」文本滞后——meta.tres 现行 forge base_price=20(2026-09-22 数值设计批对齿 10→20),随件④完成时刷新)**
|
||||
|
||||
#### 解锁界面与钥石呈现的交互形态(残余:暂停层只读入口)
|
||||
#### 解锁界面与钥石呈现的交互形态(残余:状态面板〔原暂停层〕只读入口)
|
||||
|
||||
**现状**:视觉终稿半已兑现——营地界面视觉终稿随 M-3 迭代 9 卡⑭落码(石纹全屏底+顶栏铭牌/钥石徽+三柜台列,前置样张闸过审);功能界面(营地入口/CampOverlay 三柜台/A 区顶栏钥石余额常驻/结算屏入账明细)2026-09-21 已落地。**剩余面=局内暂停层只读入口**:现行无暂停层,局内无可暂停查看钥石与解锁态的入口。
|
||||
**现状**:视觉终稿半已兑现——营地界面视觉终稿随 M-3 迭代 9 卡⑭落码(石纹全屏底+顶栏铭牌/钥石徽+三柜台列,前置样张闸过审);功能界面(营地入口/CampOverlay 三柜台/A 区顶栏钥石余额常驻/结算屏入账明细)2026-09-21 已落地。**剩余面=局内状态面板只读入口(已随改名批换代——2026-10-13 用户令「暂停层/暂停角标」更名「状态面板/状态角标」,全标识符与文案换代、行为零变化)**:局内可只读查看钥石与解锁态的入口已交付,待实机目检。
|
||||
|
||||
**归属**:HUD 批(M-4,批未立项)——已随迭代 17 卡③实施
|
||||
|
||||
**状态**:✅ 代码面已交付待实机目检(2026-10-06,迭代 17 卡③暂停层只读入口批——worktree g-plan2-iter17-pause 分支 iter17-pause-20261006,提交 c08a901/fc9eb1e/d44fdd5+收口笔;P1丁常驻角标/P2甲设置层同档 dim 遮罩/P3甲余额+三柜台进度/P4甲零动效直开直关全落;badge 已按 Q10 甲工厂化入 ui_kit 并同步迁营地钥石徽;机检=冒烟 788/0+run_all 17 套+四探针全绿〔含输入锁 case⑯/只读巡检/零动效契约/钥石徽对比度对〕+doc 三闸零新增;**人闸=用户实机目检** design/qa/iter17-pause-human-gate-checklist-2026-10-06.md——过闸后本条销号;Esc 快捷通道维持本清单键盘/手柄条登记随键盘批办理)
|
||||
#### 第一关亮墨数字直画观感优化(2026-10-01 T17 目检体感登记)
|
||||
|
||||
**现状**:迭代 9 T4 数字承载切换后第一关=亮墨三档直画(白亮字直接印棕色地板、无色牌垫底),机制可读性过闸(用户实机确认三档冷暖可分、凑近与离屏均可读);同日 T17 目检体感「表现和描述一样,但非常难看」——直画字与地板的组合观感待优化。第二/三关米色小牌形态未获同类反馈。
|
||||
|
||||
**归属**:呈现优化批(与高墙墙底阴线观感同批裁量;排 M-4 后排,不卡迭代 9 出口)
|
||||
|
||||
**状态**:待办(2026-10-01 登记;机制/可读轴零触碰,纯观感轴)。**2026-10-05 注**:迭代 16「UI 设计对齐批」任务书已起草(`design/research/任务书-UI设计对齐批-2026-10-05.md`)——棋盘数字墨三档与色牌垫底属本批 §3-N1 对比度收项面(实查 `board_cell_unit.gd:238/262` 字号公式已合规、`:229-234` 垫牌在位),裁点裁决后随批一并呈报。本条维持待办。**2026-10-06 编入注**:已编入 roadmap 迭代 18 卡②呈现优化批(观感重设计,机制/可读轴零触碰)。
|
||||
|
||||
#### 高墙墙底细阴线观感优化(2026-10-01 T17 目检体感登记)
|
||||
|
||||
**现状**:迭代 9 T3 棋盘渲染落码后高墙承接机制过闸(墙顶原亮度直贴/交界无边框/墙底一条细阴线压格线);2026-10-01 用户 T17 目检实机体感「有,但是现在放个黑线很难看」——墙底阴线的颜色/粗细/有无待优化。
|
||||
|
||||
**归属**:呈现优化批(与数字直画观感同批;排 M-4 后排,不卡迭代 9 出口)
|
||||
|
||||
**状态**:待办(2026-10-01 登记;机制轴零触碰,纯观感轴)。**2026-10-05 注**:墙脚阴线色 `E_FACADE_FOOT_COL #342A20` 已列为迭代 16「UI 设计对齐批」§3-N4a 五处漏网裸色之一(`board_cell_unit.gd:79`),收进 `ui_kit.gd` 时原值搬运、零观感变化;任务书=`design/research/任务书-UI设计对齐批-2026-10-05.md`。本条维持待办。**2026-10-06 编入注**:已编入 roadmap 迭代 18 卡②呈现优化批(阴线形制改版;token 单点已就位)。
|
||||
|
||||
**状态**:✅ 代码面已交付待实机目检(2026-10-06,迭代 17 卡③暂停层只读入口批〔时名——2026-10-13 改名状态面板〕——worktree g-plan2-iter17-pause 分支 iter17-pause-20261006,提交 c08a901/fc9eb1e/d44fdd5+完成笔;P1丁常驻角标/P2甲设置层同档 dim 遮罩/P3甲余额+三柜台进度/P4甲零动效直开直关全落;badge 已按 Q10 甲工厂化入 ui_kit 并同步迁营地钥石徽;机检=冒烟 788/0+run_all 17 套+四探针全绿〔含输入锁 case⑯/只读巡检/零动效契约/钥石徽对比度对〕+doc 三闸零新增;改名批机检=冒烟 938/0+run_all 24 套+probe --click/--full+render_gate 全绿;**人闸=用户实机目检** 迭代17人闸清单(已退役,git 历史可查)——过闸后本条注销;Esc 快捷通道维持本清单键盘/手柄条登记随键盘批办理)
|
||||
#### 未开格类型徽章呈现时机(2026-09-18 方向已拍板,待实施批)
|
||||
|
||||
**现状**:2026-09-18 用户拍板方向——未开格常显奖励类型微光(周围 8 格泛光:魔法=紫 / 穿刺=蓝 / 群伤=红 / 治疗=绿 / 其他增益=黄),让玩家能针对敌人护甲类型规划优先开哪些格。设计依据:护甲克制轴已落地(穿刺弹/魔法矢),玩家需要类型先验才能兑现克制博弈。**2026-09-22 美术圣经审阅批更新(T1 裁决:采纳彩色常显微光)**:原五色与圣经语义色条款三方冲突(紫落 300°–345° 禁入带/治疗绿违反绿零逻辑/穿刺蓝违反蓝只说己方),经用户裁决采纳微光后五组色相已重选候选——芥末黄(通用增益)/黄绿(治疗)/青(穿刺)/紫罗兰(魔法)/绯红(群伤),见 [art-bible](../art/art-bible.md) §4.2「类型微光色带」(候选值,样张批冻结);圣经 §4.6.3 呈现约束已同步为「角嵌纹样(形状)+常显微光(色彩)」双通道,类型预读呈现方案在美术侧已成文。连带裁决面:① 本方向修订[不做清单](05-不做清单.md)「未开格不显示奖励身份」裁定(owner 修订,合法);② ~~与 art-bible §4.6.3 家族类型徽章口径对齐归美术批~~——已完成(2026-09-22 美术文档修订批);③ 探宝罗盘(预读 3×3)价值被清空,效果重定归魔法道具内容批;④ ~~色板与既有格面徽标/UI 用色冲突检查归样张批~~——冲突面已在色相重选时规避,样张批保留组间互辨抽测义务;⑤ 原「资源预读与推理的边界」条目并入口径(2026-09-19 用户拍板:预读边界按本条微光方案定——类型级常显;探宝罗盘重定两方案另立条目评估);⑥ 实施窗口 = 表现层升级批(会改推理信息面,切片期默认不开、保护验收读数基线)。**2026-09-30 口径校正(用户裁决)**:微光正确口径=**英雄周围 8 格内的未开格显示类型微光**(非全板常显)——本条历史文本中的「常显」为无范围复述、「魔法=紫/穿刺=蓝…」为 2026-09-18 原案旧色(已被 T1 重选五组取代,现行见 art-bible §4.2);概念正主已落 [HUD框架](systems/表现与支撑/HUD框架.md)「未开格类型微光」节(2026-09-30 收口批落位),本条此后只承载实施状态、不再承载定义。
|
||||
**现状**:2026-09-18 用户拍板方向——未开格常显奖励类型微光(周围 8 格泛光:魔法=紫 / 穿刺=蓝 / 群伤=红 / 治疗=绿 / 其他增益=黄),让玩家能针对敌人护甲类型规划优先开哪些格。设计依据:护甲克制轴已落地(穿刺弹/魔法矢),玩家需要类型先验才能兑现克制博弈。**2026-09-22 美术圣经审阅批更新(T1 裁决:采纳彩色常显微光)**:原五色与圣经语义色条款三方冲突(紫落 300°–345° 禁入带/治疗绿违反绿零逻辑/穿刺蓝违反蓝只说己方),经用户裁决采纳微光后五组色相已重选候选——芥末黄(通用增益)/黄绿(治疗)/青(穿刺)/紫罗兰(魔法)/绯红(群伤),见 [art-bible](../art/art-bible.md) §4.2「类型微光色带」(候选值,样张批冻结);圣经 §4.6.3 呈现约束已同步为「角嵌纹样(形状)+常显微光(色彩)」双通道,类型预读呈现方案在美术侧已成文。连带裁决面:① 本方向修订[不做清单](05-不做清单.md)「未开格不显示奖励身份」裁定(owner 修订,合法);② ~~与 art-bible §4.6.3 家族类型徽章口径对齐归美术批~~——已完成(2026-09-22 美术文档修订批);③ 探宝罗盘(预读 3×3)价值被清空,效果重定归秘宝内容批;④ ~~色板与既有格面徽标/UI 用色冲突检查归样张批~~——冲突面已在色相重选时规避,样张批保留组间互辨抽测义务;⑤ 原「资源预读与推理的边界」条目并入口径(2026-09-19 用户拍板:预读边界按本条微光方案定——类型级常显;探宝罗盘重定两方案另立条目评估);⑥ 实施窗口 = 表现层升级批(会改推理信息面,切片期默认不开、保护验收读数基线)。**2026-09-30 口径校正(用户裁决)**:微光正确口径=**英雄周围 8 格内的未开格显示类型微光**(非全板常显)——本条历史文本中的「常显」为无范围复述、「魔法=紫/穿刺=蓝…」为 2026-09-18 原案旧色(已被 T1 重选五组取代,现行见 art-bible §4.2);概念权威定义已落 [HUD框架](systems/表现与支撑/HUD框架.md)「未开格类型微光」节(2026-09-30 完成批落位),本条此后只承载实施状态、不再承载定义。
|
||||
|
||||
**归属**:[地图战斗资源](systems/战斗循环/地图战斗资源.md)极性提案实施批与HUD框架共裁
|
||||
|
||||
**状态**:待办。**2026-10-05 注**:类型色五族已由迭代 16「UI 设计对齐批」§3-N4c 立项 `TG_*` 常量(实查 `ui_kit.gd` 现无 tg 常量,五族以裸 `Color8` 内联于 `bonus_pick_overlay.gd:96-102` / `shop_overlay_view.gd:189`,且缺第五族 aoe `#E25676`);本条(**格面**未开格类型徽章)与卡顶色带同族不同落点,**不并入本批**,维持待办。
|
||||
**状态**:待办(**Alpha 阶段需完成**——2026-10-13 用户令随「UI 美化三层诊断」登记:本条属第三层「观感提升」)。**2026-10-05 注**:类型色五族已由迭代 16「UI 设计对齐批」§3-N4c 立项 `TG_*` 常量(实查 `ui_kit.gd` 现无 tg 常量,五族以裸 `Color8` 内联于 `bonus_pick_overlay.gd:96-102` / `shop_overlay_view.gd:189`,且缺第五族 aoe `#E25676`);本条(**格面**未开格类型徽章)与卡顶色带同族不同落点,**不并入本批**,维持待办。**2026-10-07 注**:呈现规格简化为组粒度——组间五色相、组内不细分(通用增益组五族不再承诺组内分型;art-bible v3.12);实施批按组粒度执行。**2026-10-16 用户令编入迭代 30**(UI 呈现三卡批序位①,需求卡片=[未开格类型徽章批](../research/需求卡片-未开格类型徽章批-2026-10-16.md) v1.2 裁点已留痕;本行 2026-10-05 实查读数系过期值,批内刷新义务随卡片同步面;开工门=U0 `/iter` 发令)。
|
||||
|
||||
#### 呈现层残余 <4.5:1 文字位(迭代 16 批外邻接发现,2026-10-06 登记)
|
||||
|
||||
**现状**:迭代 16「UI 设计对齐批」T0 实机复算中,七点测点范围外的邻接文字位实测对直背景 <4.5:1(§7.2 无区域例外)——①B 区站桩名行/护甲徽标四墨(WARM_FAINT≈6.2 过/HERO_BLUE 3.23/GOLD_DEEP 3.26/WARM 过,直背=舞台底 `STAGE_BG #3E342A`);②敌顺位徽标 ①②③ `GOLD_DEEP` 13px;③RAP 反馈行 `STONE_FAINT` 对 PANEL_DATA(2.73)。均系批前既有呈现、非迭代 16 引入;迭代 16 七点修法面已收口(站桩血数/意图徽标四色/C区槽两态/RAP 主标签),本条为其漏出范围,未动。来源=`design/qa/iter16-ui-exit-report-2026-10-06.md` §T0。
|
||||
**现状**:迭代 16「UI 设计对齐批」T0 实机复算中,七点测点范围外的邻接文字位实测对直背景 <4.5:1(§7.2 无区域例外)——①B 区站桩名行/护甲徽标四墨(WARM_FAINT≈6.2 过/HERO_BLUE 3.23/GOLD_DEEP 3.26/WARM 过,直背=舞台底 `STAGE_BG #3E342A`);②敌顺位徽标 ①②③ `GOLD_DEEP` 13px;③RAP 反馈行 `STONE_FAINT` 对 PANEL_DATA(2.73)。均系批前既有呈现、非迭代 16 引入;迭代 16 七点修法面已完成(站桩血数/意图徽标四色/C区槽两态/RAP 主标签),本条为其漏出范围,未动。来源=`迭代16出口报告(已退役,git 历史可查)` §T0。
|
||||
|
||||
**归属**:呈现优化后续批(或 UI 设计对齐批第二轮);开工 = 用户点名——**已编入 roadmap 迭代 18 卡②呈现优化批(2026-10-06 用户令)**
|
||||
**归属**:呈现优化后续批(或 UI 设计对齐批第二轮);开工 = 用户点名
|
||||
|
||||
**状态**:已编入迭代 18 卡②(待任务书)
|
||||
**状态**:**已完成(2026-10-14,迭代 26 T3 完成)**——三处全部换墨达标:敌顺位徽标①②③与重甲徽标换 GOLD_BRIGHT #E0B860(对舞台底 6.47:1)、魔法护甲徽标换 HERO_BLUE_BRIGHT #7EBAF0(5.88:1)、RAP 反馈行换 STONE_DEEP(对 PANEL_DATA 5.98:1);GOLD_DEEP/HERO_BLUE 常量本尊不动(语义岗在役),新 token 三枚落 ui_kit 单点;冒烟 V4 断言 9 条机检锚定(≥4.5:1+消费点原位+旧墨清零)。站桩名行与轻甲档原已过,不动
|
||||
|
||||
#### 第二 / 三关棋盘观感——亮度与对比度(2026-10-13 用户裁定,Alpha 阶段需完成)
|
||||
|
||||
**现状**:来源 = playnote 用户试玩记录「UI 优化,第二第三关的棋盘看着太累了;不知道是因为亮度还是对比度的原因,看着非常费劲,非常不舒服」。2026-10-13 用户裁定:**这是需要做的**,且本就属版本标准的覆盖范围——[08-Alpha版本标准](08-Alpha版本标准.md)「五 · 表现」已新增「棋盘观感(第二 / 三关亮度与对比度)」行,标待做(此前是隐式覆盖,现显式化,免得被当成已完成)。
|
||||
|
||||
**开工前须先定性(沿用既有裁决)**:是**素材轴**问题(棋盘瓦片与格面图标本身的明度与色相),还是 **UI 轴**问题(舞台底色与叠加层的对比关系)——两轴修法完全不同,定性错了等于白改一轮。该定性要求原登记于下方「奇物呈现优化探讨备忘两孤儿点」(e),本条承接并转为正式待办。
|
||||
|
||||
**与相邻条目的分工**:① 本条管**棋盘区域整体的观感**(亮度 / 对比度 / 费劲感),是体感问题;② 上方「呈现层残余 <4.5:1 文字位」管**具体文字位的对比度读数不达标**(B 区站桩名行 / 敌顺位徽标 / RAP 反馈行三处),是机检可判的硬指标。两条不同面,不互相替代,各自保留。
|
||||
|
||||
**归属**:[HUD框架](systems/表现与支撑/HUD框架.md)(UI 轴:舞台底与叠加层)+ [美术圣经](../art/art-bible.md)(素材轴:瓦片与格面图标的明度色相)——定性前两方共裁
|
||||
|
||||
**状态**:待办(**Alpha 阶段需完成**)——开工前先过「素材轴 / UI 轴」定性人闸。**2026-10-16 用户令编入迭代 30**(UI 呈现三卡批序位③,需求卡片=[二三关棋盘观感批](../research/需求卡片-二三关棋盘观感批-2026-10-16.md) v1.2;素材轴甲/乙案裁点挂 T1 出口呈报;开工门=U0 `/iter` 发令)。
|
||||
|
||||
#### 棋盘格边长三方取值不一致——待扩板定档处置(2026-10-06 登记)
|
||||
|
||||
**现状**:迭代 16「UI 设计对齐批」P2 已裁「棋盘格边长零改动」(本次不动棋盘游戏画面),由此三方取值不一致作为**已知偏差**登记:①代码 = `board_view.gd:251` 动态公式 `clampi(cell, 26, 46)` + `:114` 默认 46.0;②art-bible §8.1(:433) 冻结锚点 = 45px(10×10)/ 36px(12×12);③demo 原型 = 44px(`src/ui-prototype.html:288`);另有 HUD框架:72 装板校验区间 [30,45]。**当前未被任何断言触发**(属潜在不一致,不是缺陷)。按任务书契约 R7「禁单侧改完留漂移」,本批**代码与文档均不改**;处置时机 = 扩板(13×13/14×14)定档时随格边长专项一并处理(§8.1 亦注明扩板换算值未定稿)。来源=`design/research/任务书-UI设计对齐批-2026-10-05.md` §2.1「已知偏差」行。
|
||||
**现状**:迭代 16「UI 设计对齐批」P2 已裁「棋盘格边长零改动」(本次不动棋盘游戏画面),由此三方取值不一致作为**已知偏差**登记:①代码 = `board_view.gd:251` 动态公式 `clampi(cell, 26, 46)` + `:114` 默认 46.0;②art-bible §8.1(:433) 冻结锚点 = 45px(10×10)/ 36px(12×12);③demo 原型 = 44px(`src/ui-prototype.html:288`);另有 HUD框架:72 装板校验区间 [30,45]。**当前未被任何断言触发**(属潜在不一致,不是缺陷)。按需求卡片契约 R7「禁单侧改完留漂移」,本批**代码与文档均不改**;处置时机 = 扩板(13×13/14×14)定档时随格边长专项一并处理(§8.1 亦注明扩板换算值未定稿)。来源=`UI对齐批需求卡片(已退役,git 历史可查)` §2.1「已知偏差」行。
|
||||
|
||||
**归属**:格边长专项(或 UI 设计对齐批后续专项);开工 = 用户点名
|
||||
|
||||
**状态**:待办
|
||||
|
||||
#### UI 原型 demo 结构级差异三项——待立项(2026-10-06 登记)
|
||||
|
||||
**现状**:迭代 16「UI 设计对齐批」按「以 demo 为视觉方向标准」逐项核对后,三条 demo 与实机的**结构级**差异判定**不入本批**(风险与估时量级远高于样式对齐,另立专项或独立呈现批):①**卡片尺寸**——demo `232×352`(`artwork/ui-redesign-2026-10-04/src/ui-prototype.html:204`;UI 重设计原型 v2 落码计划 §7.2 勘误已记此为 demo 现行值),实机 `ui_kit.gd:404` `custom_minimum_size = Vector2(216, 300)`;②**商店屏形态**——demo = bg-bright 全屏底 + 56px 顶栏(v2 差异表 5.2 🔴「可裁:保持模态但换卡面」,**未裁**),实机 `shop_overlay_view.gd:32` 仍 `modal_shell` dim 0.6 模态;③**关卡地图底栏**——demo = 合并单条 88px 亮条(头像+HP 轨+属性+本关加成+道具槽+放弃;差异表 4.4 🔴),实机 `level_map_screen.gd:141/151/160` 仍 `life_box`/`attr_box`/`bonus_box` 三个独立框(**M5 底栏重构未落**)。来源=`design/research/任务书-UI设计对齐批-2026-10-05.md` §8.3-E。
|
||||
|
||||
**归属**:UI 设计对齐批后续专项(或独立呈现批);开工 = 用户点名
|
||||
|
||||
**状态**:**已全部落地(2026-10-06 /goal UI 对齐批,merge 2ca6288 链)**——①卡片 232×352=ui_kit BCard(D1,图标槽 76/60 随批)②商店全屏页=UiKit.page_shell(D2,56px 通栏顶条+爬价规则行+底注;三选一同壳)③地图底栏=85px 定高单条(放弃 90 小钮+特性行限宽截断+深墨)。用户令(/goal)立项即发令,无须另批。
|
||||
|
||||
#### 全屏 UI 审计差距清单(实机×demo 逐屏对比,2026-10-06 登记)
|
||||
|
||||
**现状**:用户令全屏截图对比审计落籍(报告=[ui-audit-vs-demo-2026-10-06](../qa/ui-audit-vs-demo-2026-10-06.md),并排图=design/qa/ui-audit-2026-10-06/pairs/ 九组)——①**关卡地图底栏**:demo 85px 单条+放弃小钮 vs 实机特性行无限换行爆栏(130px+)+放弃 216 红砖+特性组暖白淡墨对亮板 §7.2 违例;重设计草案(定高 88px/放弃小钮/特性行限宽省略+深墨)在报告待裁;②**E5 证据更新**:demo「工兵爆破」卡=紫带(magic 族),T4a 的 blast→TG_AOE 判定与 demo 相反,建议回滚;③标题屏主操作语义反转(demo 继续上局=主黄钮);④结算仪式感(demo 全屏 dim+石皮框板+两列对齐账目);⑤背景全局差距(demo 暖渐变聚焦 vs 实机全屏铺石纹);⑥D1/D2(商店全屏化/卡片 232×352)截图坐实(原条目在册不重复)。审计截图与探针=game/smoke/ui_audit_probe.gd(窗口化十二屏)。
|
||||
|
||||
**归属**:UI 设计对齐批后续轮(或独立呈现批);开工 = 用户逐项裁决
|
||||
|
||||
**状态**:**六项已闭环(2026-10-06 /goal UI 对齐批)**——①底栏重设计全落(85px 定高+放弃 90 小钮+特性行限宽截断+深墨)②E5 已回滚(blast→TG_MAGIC,TG_AOE 只接 aoe 键)③主操作语义已反转(有档=继续上局主黄钮)④结算仪式感已落(DIM_NIGHT 0.62 压暗+两列账行+紧凑钮)⑤背景全局已落(石纹 0.14 弱质感+暗角+地图渐变+标题光带,UiKit 氛围层单点)⑥D1/D2 已落(见上条)。**遗留(已判定并留档)**:营地面板明度/行密度与关闭钮位(camp ⑦)、战斗棋盘底板融景(battle ⑤①)、道具槽段位(台账 352 功能欠账)、立绘比例(资产升档批在册)——归各自在册条目,不在 UI 对齐轮再开。复判记录=design/qa/ui-audit-vs-demo-2026-10-06.md 批末判定节。
|
||||
|
||||
#### 资产升档重产批(art-bible v3.0 中修挂账③,2026-09-29 登记)
|
||||
|
||||
**现状**:v3.0 §8.2 档位上调方向候选——主角立绘 48×72→64×96 档、敌立绘三档 48/64/96→64/96/128 档评估;返工面 = 主角三态 + 八敌种(fixer 像素化管线已实战)。**v3.0 代拍板③:本批只立方向不重产资产**(**2026-09-29 已追认**);评估与终值归整屏样张闸。连带:character-design.md 提灯点亮解禁候选(v3.0 明度分层允许空间光照)同归本批重议。
|
||||
|
||||
**归属**:[art-bible](../art/art-bible.md) §8.2 · 资产管线批
|
||||
|
||||
**状态**:**已裁决案乙(2026-09-30 迭代 9 三裁决,用户「按推荐来」)**——本迭代不升档,先收 Alpha 真人读数再定(B 区舞台落影已改善存在感;T10 黄金图基准本迭代内建成不被作废);升档批=M-4 候选位,届时提灯点亮解禁候选一并重议;A4 尺寸基线冻结(立绘 46×48/小人源 32×32)维持有效。**2026-10-04 用户令:暂不做、先忽略**(真人读数虽已收,用户裁不编入当前迭代表、挂起不讨论;重启=用户点名)。**2026-10-06 用户令:优先级再降**(维持挂起;同日 playnote 立绘批评〔像素粒度过低看不清 / 怪物大小比例不合理〕留 playnote 在案,重启时并入设计输入——**该批评实已由同日「立绘逐键定档批」承接兑现**:①像素粒度过低 → 派生管线改「pixel-1 紧裁 → 等比缩至各自档高 → dom_block_resize」,八敌源档 36–94 全过可读门槛(实测 24 糊 / 32 可读 / 48 清楚);②怪物大小比例不合理 → 体量语义改**生物体型**(character-design §5.2,弃强度线性映射)+ 八敌逐键定档〔art-bible §8.2〕)。**2026-10-06 方案二批收口注记**:v3.0 的「档位上调方向候选」已被 art-bible v3.7 八敌逐键定档(源档 36–94、显示 ×2 整数)**实质收口**——存在感问题改经方案二(B 区 270 / 立绘显示上限 188 / 血条状态落底排)解决,不再走 64/96/128 升档路线;本条剩余挂起项 = 提灯点亮解禁候选(重启=用户点名或 M-4 升档批)。
|
||||
**状态**:**已裁决案乙(2026-09-30 迭代 9 三裁决,用户「按推荐来」)**——本迭代不升档,先收 Alpha 真人读数再定(B 区舞台落影已改善存在感;T10 黄金图基准本迭代内建成不被作废);升档批=M-4 候选位,届时提灯点亮解禁候选一并重议;A4 尺寸基线冻结(立绘 46×48/小人源 32×32)维持有效。**2026-10-04 用户令:暂不做、先忽略**(真人读数虽已收,用户裁不编入当前迭代表、挂起不讨论;重启=用户点名)。**2026-10-06 用户令:优先级再降**(维持挂起;同日 playnote 立绘批评〔像素粒度过低看不清 / 怪物大小比例不合理〕留 playnote 在案,重启时并入设计输入——**该批评实已由同日「立绘逐键定档批」承接兑现**:①像素粒度过低 → 派生管线改「pixel-1 紧裁 → 等比缩至各自档高 → dom_block_resize」,八敌源档 36–94 全过可读门槛(实测 24 糊 / 32 可读 / 48 清楚);②怪物大小比例不合理 → 体量语义改**生物体型**(character-design §5.2,弃强度线性映射)+ 八敌逐键定档〔art-bible §8.2〕)。**2026-10-06 方案二批完成注记**:v3.0 的「档位上调方向候选」已被 art-bible v3.7 八敌逐键定档(源档 36–94、显示 ×2 整数)**实质完成**——存在感问题改经方案二(B 区 270 / 立绘显示上限 188 / 血条状态落底排)解决,不再走 64/96/128 升档路线;本条剩余挂起项 = 提灯点亮解禁候选(重启=用户点名或 M-4 升档批)。
|
||||
|
||||
#### 立绘清晰度回退评估——是否改用高清图(2026-10-13 用户裁定归美术线,Alpha 阶段需完成)
|
||||
|
||||
**现状**:来源 = playnote 用户试玩记录「现在的立绘太丑了,像素化的粒度太低了,导致根本看不清立绘;看是否可以改回用较为高清的图片?还有一个问题是大小的问题……现在地精的图片看起来比熊地精还要大,这并不合理」。2026-10-13 用户裁定:与「第二 / 三关棋盘观感」同属**美术线更新**。
|
||||
|
||||
**两个子问题现状不同,勿混为一谈**:
|
||||
- **子问题一 = 怪物大小比例不合理**:**已兑现**——体量语义改生物体型(character-design §5.2,弃强度线性映射)+ 八敌逐键定档(art-bible §8.2)。剩余面 = 用户是否复核验收。
|
||||
- **子问题二 = 像素粒度过低看不清 / 是否改回高清图**:**方向已裁(2026-10-14 用户裁)**——「还是像素风格立绘,但是不需要像现在太过于像素」,定性为**精细手绘像素**(不是插画、不是 HD-2D、不回退高清图),整屏方向稿与地面/立绘密度同批锁(裁决录=[美术审计-cursor会话存档](../art/美术审计-cursor会话存档-2026-10-14.md) §2.2;权威面 art-bible/character-design 口径节反哺另批)。粒度问题已改派生管线(八敌源档 36–94 全过可读门槛:24 糊 / 32 可读 / 48 清楚)。
|
||||
|
||||
**归属**:[角色设计](../art/character-design.md)(立绘规格与体量语义)+ [美术圣经](../art/art-bible.md)(像素管线与档位)
|
||||
|
||||
**状态**:待办(**Alpha 阶段需完成**)——**方向已裁(2026-10-14 用户裁:维持像素风、升级精细手绘像素,不回退高清图**,裁决录见上);[08-Alpha版本标准](08-Alpha版本标准.md) 未决项已随裁删除(2026-10-16 状态刷新批);余=立绘按新口径重产(美术线,与战斗一屏样张/整屏方向稿同批锁密度)+子问题一(大小比例)待用户复核验收
|
||||
|
||||
#### 站桩帧动画——Alpha 定版闸前完成(2026-10-06 P0-3 延后登记,用户拍板)
|
||||
|
||||
@@ -364,7 +512,7 @@
|
||||
|
||||
#### 主角描边素材侧复核(2026-10-06 待决项 B 登记注记)
|
||||
|
||||
**现状**:待决项 B 已按用户拍板走**文档例外条款**(character-design.md §5.1 v1.9:主角四态硬描边 = 深褐 `(40,19,13)` 显式例外,浅砖面对比更高;**素材不随批修改**)。本条仅为复核钩子:样张批(圣经 §1.4)终审时若发现深描边例外不成立(对比优势不实/与敌方同屏割裂感可感),素材侧修订(描边统一暖白族)**须先经本条重启**再开工,不得直接动图。
|
||||
**现状**:待决项 B 已按用户拍板走**文档例外条款**(character-design.md §5.1 v1.9:主角四态硬描边 = 深褐 `(40,19,13)` 显式例外,浅砖面对比更高;**素材不顺带修改**)。本条仅为复核钩子:样张批(圣经 §1.4)终审时若发现深描边例外不成立(对比优势不实/与敌方同屏割裂感可感),素材侧修订(描边统一暖白族)**须先经本条重启**再开工,禁止直接动图。
|
||||
|
||||
**归属**:[character-design](../art/character-design.md) §5.1 · 样张批
|
||||
|
||||
@@ -374,7 +522,7 @@
|
||||
|
||||
**现状**:审计 P2-1——`artwork/ui-reuse-2026-09-23/` 独占 3043 个草稿(91%),vN 命名率 0%,冗余 41 文件,残留非素材文件(.url ×8 / .ogg ×6 / .ai ×2 / .swf ×1);根因 = 脚本链覆盖「生成→验证」但**缺「草稿整理」段**。整理涉及**批量文件移动/删除**,按用户惯例须先 dry-run 呈报清单、经确认再分批执行。
|
||||
|
||||
**归属**:[art-bible](../art/art-bible.md) §8.3 归档纪律(原则已落文)· 资产管线批(工具+文件操作)
|
||||
**归属**:[art-bible](../art/art-bible.md) §8.3 归档纪律(原则已写入)· 资产管线批(工具+文件操作)
|
||||
|
||||
**状态**:待办(执行窗口随实现批;开工 = 用户点名,先 dry-run)
|
||||
|
||||
@@ -396,7 +544,7 @@
|
||||
|
||||
### 教学引导
|
||||
|
||||
> **节头注记(2026-10-04 用户拍板)**:教学引导定稿批整体改排 **Beta 阶段**——当前 Alpha 版不做教学相关工作,本节五条全部随之改排(2026-09-19 的 Alpha 排期拍板被本拍板取代)。同日五问讨论已形成初裁与设计提案,提案已归档 `../../archive/提案-教学引导定稿-2026-10-04.md`(Beta 批立项底稿,引用以其「归档状态与初裁记录」节为准)。初裁摘要:①教学形态=丙1 混合(首次冒险编排式首遇提示〔挂 first_script 锚、不锁操作〕+其余全程情景触发);②「因果教学顺序」问题**注销**——只教扫雷操作,结算读法不设教学(用户裁:结算只是表达、展现、演出,无策略内容;展示层每行带来源标注已自带归因;教学引导.md 旧前提〔设计目的句/P0 候选归因提示/验收第 2 条〕随 Beta 批文档定稿清除);③图例面板按循环段落分组、无结算段;④不做「再教一次」——改走独立「帮助」手册面(全部内容放一个文档);⑤教学文案内容权归设置与本地化(两文档负责表对齐随 Beta 批)。**未裁三疑点**(Beta 立项时先裁):增益叠层节奏条目去留/帮助入口位置(设置面为推荐)/图例面板与帮助手册的内容分工。
|
||||
> **节头注记(2026-10-04 用户拍板)**:教学引导定稿批整体改排 **Beta 阶段**——当前 Alpha 版不做教学相关工作,本节五条全部随之改排(2026-09-19 的 Alpha 排期拍板被本拍板取代)。同日五问讨论已形成初裁与设计提案,提案已归档 `archive/` 目录(磁盘留存、不入 git,Beta 批立项底稿,引用以其「归档状态与初裁记录」节为准)。初裁摘要:①教学形态=丙1 混合(首次冒险编排式首遇提示〔挂 first_script 锚、不锁操作〕+其余全程情景触发);②「因果教学顺序」问题**注销**——只教扫雷操作,结算读法不设教学(用户裁:结算只是表达、展现、演出,无策略内容;展示层每行带来源标注已自带归因;教学引导.md 旧前提〔设计目的句/P0 候选归因提示/验收第 2 条〕随 Beta 批文档定稿清除);③图例面板按循环段落分组、无结算段;④不做「再教一次」——改走独立「帮助」手册面(全部内容放一个文档);⑤教学文案内容权归设置与本地化(两文档负责表对齐随 Beta 批)。**未裁三疑点**(Beta 立项时先裁):增益叠层节奏条目去留/帮助入口位置(设置面为推荐)/图例面板与帮助手册的内容分工。
|
||||
|
||||
#### 教学形态未定
|
||||
|
||||
@@ -438,25 +586,164 @@
|
||||
|
||||
**状态**:待办(**Beta 阶段**——2026-10-04 用户拍板改排:当前 Alpha 版不做教学相关工作,见本节头注记)
|
||||
|
||||
### 设置与本地化
|
||||
|
||||
|
||||
### 生涯(跨局汇总与历史回看承接面)
|
||||
|
||||
#### 「生涯」界面——冒险中数据回看的唯一承接处
|
||||
|
||||
**现状**:2026-10-04 用户裁决(UI 落码计划 P-C7)——冒险中不给数据回看:settlement_review_overlay(结算明细回看)与结算框「明细回看」钮在冒险中退役,战报带只留单行「上轮」;历史战报/结算明细的查看去向=新「生涯」界面(跨局汇总/历史冒险回看/图鉴承接),**尚未设计未实装**。来源=UI 重设计原型 v2 落码计划裁决记录(design/research/UI重设计原型v2落码-差异对照与改动计划-2026-10-04.md §七)
|
||||
**现状**:2026-10-04 用户裁决(UI 落码计划 P-C7)——冒险中不给数据回看:settlement_review_overlay(结算明细回看)与结算框「明细回看」钮在冒险中退役,战报带只留单行「上轮」;历史战报/结算明细的查看去向=新「生涯」界面(跨局汇总/历史冒险回看/图鉴承接),**尚未设计未实装**。来源=UI 重设计原型 v2 落码计划裁决记录(UI落码差异对照(已退役,git 历史可查) §七)
|
||||
|
||||
**归属**:新界面立项(用户发令后排批);退役落码随 UI 落码批 M8/M9
|
||||
|
||||
**状态**:待办(生涯未做前,冒险中无任何历史回看入口——已知代价,用户知情裁决)——**设计提纲已成文待评审**(2026-10-06 迭代 17 卡④设计批完成:提纲 = [systems/跨局循环/生涯.md](systems/跨局循环/生涯.md) v0.1 范围草案,五节成文〔信息架构/承载内容清单/与既有界面关系/分期实装建议/待裁点〕,现状描述经代码级复核;P0-P5 六裁点已全裁落文〔P0甲 提纲落正主 / P1甲 主菜单一级入口 / P2甲 每局一行摘要+cap 扩容 N+补用时埋点 / P3甲 敌人图鉴优先 / P4甲 局内不放入口+生涯零跳转 / P5甲 settlement_review 复活承接〕,新发现待裁点 P6 营地最近冒险条带去留随评审一并裁。**人闸 = 用户评审提纲**;实装批另行立项,期一/二/三均未预占排期)——**实装批已编入 roadmap 迭代 18 卡④生涯界面实装批(2026-10-06 用户令;门=本提纲用户评审+设计定稿)**
|
||||
**状态**:待办(生涯未做前,冒险中无任何历史回看入口——已知代价,用户知情裁决)——**设计提纲已成文待评审**(2026-10-06 迭代 17 卡④设计批完成:提纲 = [systems/跨局循环/生涯.md](systems/跨局循环/生涯.md) v0.1 范围草案,五节成文〔信息架构/承载内容清单/与既有界面关系/分期实装建议/待裁点〕,现状描述经代码级复核;P0-P5 六裁点已全裁并写入文档〔P0甲 提纲落现行事实源 / P1甲 主菜单一级入口 / P2甲 每局一行摘要+cap 扩容 N+补用时埋点 / P3甲 敌人图鉴优先 / P4甲 局内不放入口+生涯零跳转 / P5甲 settlement_review 复活承接〕,新发现待裁点 P6 营地最近冒险条带去留随评审一并裁。**人闸 = 用户评审提纲**;实装批另行立项,期一/二/三均未预占排期)——**实装批已编入 roadmap 迭代 18 卡④生涯界面实装批(2026-10-06 用户令;门=本提纲用户评审+设计定稿)**——**期一已落地(2026-10-07 迭代 18 卡④实装批:生涯页六类九项+主菜单入口+终身计数域存档 v6,批末重闸全绿;实机人闸挂账待用户——目检项=07⑲;出口报告 design/qa/iter18-career-exit-report-2026-10-07.md)**;剩余面=期二(历史回看/图鉴)与期三实装+P6 营地最近冒险条带去留
|
||||
|
||||
**迭代 19 卡②遗留件登记(2026-10-08)**:settlement_review_overlay.gd 现态考证=未接线遗留件(全仓零引用,M9 结算框改版「明细回看」钮退役后遗留——迭代 19 卡②需求卡片普查表「出批归退役处置另议」落位本条)。处置两途:①随生涯实装批按 P5 甲复活承接(重接线入生涯);②确认不再需要则正式退役删除文件。二选一归生涯实装批/用户裁;卡②批红线(旧屏零 diff)该文件零触碰。
|
||||
|
||||
### GP 经济
|
||||
|
||||
#### 商店独立刷新机制——两参数待调参 + 机制文档回写
|
||||
|
||||
**现状**:2026-10-04 用户裁决(P-C2+Q2 二次裁)推翻关卡节点地图 v1.5「无独立刷新、重抽绑购买」口径,定案=**基础免费 0 次 + GP 刷新(ceil(20×1.8^已付费刷) provisional)+ 池源同源(共享池,与三选一同一账本)**;**天赋/营地侧「刷新次数」增益=用户既有意向(口头裁决,曾因未落文丢失——Q2 追认),后续由用户调整添加,实现面预留 free_count=天赋增益位**。未定:天赋增益的具体形态与数值。**机制已落码(SR-1 随 UI 落码批收官,2026-10-04/05)**。**三选一同款付费刷新(2026-10-06 用户令——「三选一对齐商店,得有刷新」)已落码**:免费双源(刷新件 X/冒险池 Y)用尽后 GP 付费刷新,同旋钮同曲线同钱包,钮常驻选择态、两源皆穷=禁用;机制登记归[秘宝](systems/排雷循环/秘宝.md)「三选一刷新双源」节。剩余待办=①调参(shop_refresh_free/曲线两参数 provisional);②天赋增益形态与数值;③机制文档回写(冒险结构共享池账本节/关卡节点地图商店行 v1.6 已记,本条收口时核对三处同步)。来源=同上 §七
|
||||
**现状**:2026-10-04 用户裁决(P-C2+Q2 二次裁)推翻关卡节点地图 v1.5「无独立刷新、重抽绑购买」口径,定案=**基础免费 0 次 + GP 刷新(ceil(20×1.8^已付费刷) provisional)+ 池源同源(共享池,与三选一同一账本)**;**天赋/营地侧「刷新次数」增益=用户既有意向(口头裁决,曾因未写入文档丢失——Q2 追认),后续由用户调整添加,实现面预留 free_count=天赋增益位**。未定:天赋增益的具体形态与数值。**机制已落码(SR-1 随 UI 落码批收官,2026-10-04/05)**。**三选一同款付费刷新(2026-10-06 用户令——「三选一对齐商店,得有刷新」)已落码**:免费双源(刷新件 X/冒险池 Y)用尽后 GP 付费刷新,同旋钮同曲线同钱包,钮常驻选择态、两源皆穷=禁用;机制登记归[秘宝](systems/跨局循环/秘宝.md)「三选一刷新双源」节。剩余待办=①调参(shop_refresh_free/曲线两参数 provisional);②天赋增益形态与数值;③机制文档回写(冒险结构共享池账本节/关卡节点地图商店行 v1.6 已记,本条完成时核对三处同步)。来源=同上 §七
|
||||
|
||||
**归属**:M4 数值批(调参两参数随批);天赋增益随天赋侧内容批
|
||||
**归属**:M4 数值批(调参两参数顺带);天赋增益随天赋侧内容批
|
||||
|
||||
**状态**:待办(机制已落码;调参、天赋增益与文档回写未落)
|
||||
|
||||
### 文档与结构
|
||||
|
||||
#### 闸按改动域分跑批的两处代拍板 + 旧实现报告迁位欠账(2026-10-17 登记,闸分域批)
|
||||
|
||||
**现状**:用户裁定「改代码的批只跑代码闸、改文档的批只跑文档闸」与「迭代批禁写 `design/`」两条,落地时撞上一处既有规则没覆盖的缝隙,本批按推荐方案先做并登记待追认:① **active.md 记账例外**——§3.12 要求每批更新 active.md 快照与状态记录,而合回闸钩子本就对 active.md 放行(它被定为「会话状态唯一源」而非文档产出物);本批把禁写面落在 `design/` 与根规则文件(`CLAUDE.md`/`roadmap.md`),**active.md 实现批照写**,读法若不符请推翻。② **`reports/` 新顶层目录**——熵增闸「新增顶层目录须同批改 CLAUDE.md Project Layout + 脚本白名单两处」,本批已同批改齐(`repo_structure_audit.py` TOP_DIRS + CLAUDE.md 第 36 行 + `reports/README.md` 立目)。③ **旧实现报告未迁位**——`reports/iter27-实现报告-2026-10-14.md`、`iter28-实现报告-2026-10-15.md` 两份现行报告仍在 `design/qa/`,且 active.md 第 32 行待追认指针指向该路径;新口径要求实现批产出物归 `reports/`。本批未搬(搬动会改动两份历史报告的落位与引用面,属文档动作,不属闸改造)。
|
||||
|
||||
**归属**:①②已追认(2026-10-17 用户令「追认单的所有我都是同意的」,本批已生效);③归下一次文档批
|
||||
|
||||
**状态**:待办——①②已追认清零;③**已清(2026-10-17 文档批:三份 iter27/28/29 实现报告已 `git mv` 往 `reports/`,全库引用同批改指新路径,死链检查复验零死链;active.md 待追认行指针就地同步)**
|
||||
|
||||
#### 文档/结构闸存量欠账(2026-10-08 迭代 19 总完成批登记)
|
||||
|
||||
新重闸口径首次全闸套跑翻出;经 T0 基点 9160942 复测确认为存量/外部批旧债,非本迭代新增。
|
||||
- gdd_lint 表格占比 3 件:01-核心循环(35%)/06-待办清单(0%)/07-体验验证清单(6%)——T0 基点已 2 件存量在案,第 3 件疑外部道具批 80 行散文写入稀释占比
|
||||
- doc_link 死链 2 件:奇物.md:245 → ../ux/battle.md 与 ../ux/node-reward.md(奇物 v2.7 b6b43eb 旧债)——**已清偿(2026-10-09 独立复核批:路径层级 ../ux/→../../ux/ 修正,doc_link 复验零死链)**
|
||||
- doc_term 退役术语旗 1 件:06「拔旗回收返 AP」备选条目文字引用(该条目自身裁决时顺手处置)
|
||||
|
||||
**归属**:文档体检批/对应来源批
|
||||
|
||||
**状态**:待办(已呈报登记;处置不阻塞迭代 19 完成)
|
||||
#### qa/ 实现报告收尾·孤儿遗留七项(2026-10-14 补登——用户裁「全部补登 06」)
|
||||
|
||||
**来源**:qa 收尾批核查 iter19 系列出口报告遗留移交项时发现**不在 06 在册**的七项(acceptance-package §三.2/card0 §5.3/followup §七.3/uibackfill §6.2-4/verify §6.1/3/7)。已结案的(tree_rules 受理闭环、X/Y 双源、S1 七项违例修复、提灯目检项、tests.yml 休眠等)已在各报告标注结案证据,不入本条。
|
||||
|
||||
1. **design/diagrams 越界**(熵增闸存量红,archify 架构图批 00712d5 旧债):脚本自文「新分类先过用户拍板再改两处白名单」。修案二选一——甲=用户拍板 `design/diagrams` 入 DESIGN_SUBDIRS 白名单(archify 总图批产物归位);乙=迁出 design/ 归位合法区。**归属**:熵增闸白名单(CLAUDE.md Project Layout+脚本白名单两处)
|
||||
2. **开场行后缀认加算区**(iter19 卡⓪遗留):现口径=「局外加成存在才带」后缀(需求卡片字面执行);局内有加算区 flat 但无局外加成时,开场行数字含加成却不带注记——是否扩展认加算区归设计批裁定。**归属**:冒险结构/战斗开场参数面
|
||||
3. **camp STONE 文字位外溢**(iter19 尾裁微批遗留):camp_overlay_view.gd:116/:403/:414 等既有 STONE 文字位对现役牌色实测 3.59-4.02:1 区间(非在册违例、机检不拦);全站收敛 STONE→STONE_DEEP 另立裁点。**归属**:呈现优化批(对比度残余位)
|
||||
4. **迷雾对三关扩对**(iter19 卡②遗留):素材不入 git 致三关逐关 floor avg 实查受限,ui_contrast 迷雾测点现按在册单值 #453020;素材入库或授权读素材后,以 tools 脚本算三关逐关 avg→最亮者核合成(最坏情况判据契约 7 完整化)。**归属**:对比度探针面(前置=素材可读授权)
|
||||
5. **字面量墨收测前置**(iter19 卡②遗留):bcard 属性描述/类型脚注/✓章/primary_button 字四处内联 Color8 无常量形态,收测需先在 ui_kit 立常量(呈现批顺路件,改 ui_kit 越当批面)。**归属**:呈现优化批(ui_kit 常量面)
|
||||
6. **TG_* 装饰带非文字判据**(iter19 卡②遗留):卡顶类型色带为 8px Bayer 抖动装饰带(DitherBand),非文字;如需机检化(WCAG 1.4.11 非文字 3:1)另立探针段裁决。**归属**:对比度探针扩展段
|
||||
7. **数据配置.md:223 历史行死指 + 商店房截图纳屏**(iter19 卡①遗留):前者=v0.4 版本史行 backtick 指已退役探针(doc_link advisory 级不 FAIL,历史行不改写原则下留观,如需清零可下批 prose 化+补退役行);后者=商店房截图纳屏留后续呈现批(考证结论在 shot_probe 头注)。**归属**:文档卫生批/呈现批
|
||||
|
||||
**状态**:待办(登记不阻塞——七项均为挂号备查/顺路件,无排期承诺;①须用户拍板后才动白名单)
|
||||
|
||||
#### 美术资产链路审计两项 P0 — 待用户裁决(2026-10-09 自 active.md 413 号条目迁入)
|
||||
|
||||
**P0①**:`design/art/art-bible.md` 第 68/527 行与 art-status-checklist 第 13 行至今仍引用已丢失的冻结样张 sample-batch-v3-final-2026-09-30.png(磁盘实测零命中),死指涉待修复。**P0②**:主角棋盘小人未走像素管线(插值糊图),重产事项未在任何登记处在册。审计报告唯一留档=design/art/美术资产链路审计报告-2026-10-06.html(无人指路)。裁=修复死指涉+登记重产,或判过期随旧管线退役。
|
||||
|
||||
**归属**:art(art-bible/美术管线)
|
||||
|
||||
**状态**:待办(待用户裁决;**Alpha 阶段需完成**——2026-10-13 用户令随「UI 美化三层诊断」登记:本条属第三层「观感提升」)
|
||||
|
||||
---
|
||||
|
||||
#### 奇物呈现优化探讨备忘两孤儿点 — 低置信防遗忘(2026-10-09 自 active.md 381 号条目迁入)
|
||||
|
||||
迭代 18 卡②(呈现优化六件)2026-10-07 经用户令整体撤回探讨阶段,六件中四件已登记或删除,唯两点全仓仅 active.md 381 号条目有载:(e) L2L3 棋盘观感开工前先定性素材轴 vs UI 轴;(f) 关卡节点图展示改版先出参考调研+方案人闸。整卡系用户主动撤回,本条仅防遗忘,不构成排期承诺;呈现优化批若重启再议。
|
||||
|
||||
**归属**:探讨备忘(奇物呈现)
|
||||
|
||||
**状态**:备忘(不阻塞,不排期)
|
||||
|
||||
|
||||
---
|
||||
|
||||
#### 技术债观察登记——长函数余量与 lambda 连接防回归(2026-10-15 迭代 27 卡片义务补登)
|
||||
|
||||
**现状**:迭代 27 需求卡片两项「登记 06 观察」义务批内漏登,卡片核对时补登——①**长函数 17 个**中非结算段的装配/校验函数(`level_map_screen.gd` 选路装配 155 行/`camp_overlay_view.gd` 152 行/`debug_overlay.gd` 114 行/`treasure_item_table.gd` schema 校验群等;`main._build_ui` 已随场景拆分自然解体、`_settle`/`_resolve_hero_attack` 已随波二拆段=17 中 3 件已消解,余 14 件);②**lambda 连接 76 处**(presentation 6/smoke 62/tests 8——实读无泄漏,登记防回归)。
|
||||
|
||||
**归属**:工程债观察备忘(不阻塞,不排期;新增此类代码沿现役规范评审盯)
|
||||
|
||||
**状态**:备忘(长函数拆分无独立需求驱动不动;lambda 连接数若有审计工具化需求归类型闸后续)
|
||||
|
||||
#### 迭代 27 代码架构技术债修复批——GDD 反哺点两条(2026-10-14 顺带登记;2026-10-17 用户逐点裁决,已写入)
|
||||
|
||||
**现状**:五波全量入库(单会话交付;逐位一致逐项比对三变体五跑全同;实现报告=reports/iter27-实现报告-2026-10-14.md)。实现与设计权威文档的差异/缺口如下,经裁决后另批写入文档——**机械面已顺带改动的只有本条与 07/roadmap**。
|
||||
|
||||
**归属**:工程债/重构批完成反哺(不阻塞,不排期)
|
||||
|
||||
| # | 文档 | 反哺点 |
|
||||
|---|---|---|
|
||||
| 1 | design/dev/architecture/architecture.md | 场景分层(三屏壳+组合根句柄面)/会话生命周期(RunScope 物化)/结算五段 Segment(core/settlement/)/RunLedger 四账所有权/ModalFlow 模态编排层与互斥域 tags 协议——现行陈述滞后于实态 |
|
||||
| 2 | design/dev/code-conventions.md | §4 语言纪律机器化(S9+audit_type_hints.py 三规则);`:= {}` 推断形态豁免口径;`# type-hint: ignore` 行级白名单与 `# rng-seed-exempt` S1/S2 标记豁免通道;--script 模式禁裸 autoload 标识符纪律(新);Variant 参数化口径与元素精化后续 |
|
||||
|
||||
**状态**:✅ **已写入(2026-10-17,用户逐点裁按推荐案)——①入 architecture.md v1.8:新增「战斗域装配现状」(结算五段/RunLedger 四账)与「呈现层装配与会话生命周期」(三屏壳/装配合同/RunScope 九阶段×五引用面矩阵/ModalFlow tags)两节,呈现层 D1 行同步换代;②入 code-conventions.md §4 第 7–12 条(S9 三规则/`:= {}` 不算债/两豁免通道/禁裸 autoload/Variant 口径)。登记时「16 层」为现行 17 项(2026-10-16 追加 float 类)、「无收束函数」以 `_begin_session` 换会话实态为准。代拍板追认单十五项已追认(2026-10-17 用户令);残留人闸=07 ㉖ 五件登记不阻塞**
|
||||
|
||||
---
|
||||
|
||||
#### 启动装配与生命周期验收补全批——需求卡片登记(2026-10-15 编入迭代 28)
|
||||
|
||||
**现状**:启动装配与生命周期三件坏事实代码级实查在案——①`game/presentation/main.gd:207-210` 装配顺序错(菜单屏先挂垫底、冒险屏后挂顶层盖死菜单,F5 见战斗界面);②`game/smoke/smoke_all.gd:176-177` V2 断言把错误顺序 `menu@0 adventure@1` 写成期望值(测试在保护 bug);③`game/smoke/shot_probe.gd`+`tools/shot_checker.py` 菜单截图无内容断言(被埋菜单坐标处亮光柱过对比度线即放行)。需求卡片=design/research/需求卡片-启动装配与生命周期验收补全批-2026-10-15.md(v1.0,六任务:T1 装配语义合同+顺序修复+V2 断言重写/T2 boot 链路时序后置条件/T3 生命周期存活性矩阵/T4 渲染面内容断言/T5 变异验证横切/T6 规范写入文档+完成)。
|
||||
|
||||
**归属**:测试基建/工程债批(迭代 28;零玩法行为变更,装配顺序修复除外)
|
||||
|
||||
**状态**:✅ **已入库完成(2026-10-15,迭代 28 单会话交付——用户预批连做全批;T1 装配合同 `LAYER_CONTRACT` 单点化+顺序修复+V1a-d 断言重写/T2 `_smoke_boot_chain` 十断言/T3 `_smoke_lifecycle_matrix` 九阶段×五引用面/T4 渲染面三件(探针两自检+墨色判据+启动态菜单 golden)/T5 变异验证六次注入全见红并精确还原/T6 规范三处写入文档;冒烟 1086→1125/0〔+39=新增 42−退役裸下标断言 3〕;run_all 全套+probe_gate --click/--full+render_gate 四闸全绿;MC 零跑〔零数值零行为变更〕;实现报告=reports/iter28-实现报告-2026-10-15.md;残留人闸=实机目检启动态菜单〔07 ㉗〕)**。本批立新硬规则「验收函数无变异红记录不算验收成立」,已落 CLAUDE.md 第 9 条+code-conventions.md §3.6(该内容现已独立成文于 test-conventions.md §6)+req-card 技能 §7 三处;GDD 反哺点三条见下条,2026-10-17 用户逐点裁决已写入
|
||||
|
||||
---
|
||||
|
||||
#### 迭代 28 启动装配与生命周期验收补全批——GDD 反哺点三条(2026-10-15 顺带登记;2026-10-17 用户逐点裁决,已写入)
|
||||
|
||||
**现状**:六任务全量入库(单会话交付;变异验证六次注入全见红并精确还原;实现报告=reports/iter28-实现报告-2026-10-15.md)。实现与设计权威文档的差异/缺口如下,经裁决后另批写入文档——**机械面已顺带改动的有 roadmap/本条/07/active.md/CLAUDE.md/code-conventions.md/req-card 技能(仓外)**。**与迭代 27 反哺点①的关系**:迭代 27 只登记了「场景分层/会话生命周期陈述滞后于实态」的方向性缺口,本批把其中「层序=谁说了算」「boot 后置条件是什么」「会话引用面何时活何时死」三件做成了代码级事实与可执行断言,本条是其**具体化承接**——写入文档时可合并处理。
|
||||
|
||||
**归属**:工程债/测试基建批完成反哺(不阻塞,不排期)
|
||||
|
||||
| # | 文档 | 反哺点 |
|
||||
|---|---|---|
|
||||
| 1 | design/dev/architecture/architecture.md | **视觉层装配合同**=`main.gd` 的 `LAYER_CONTRACT` 常量(16 层:屏壳/模态/全屏态/非视觉节点,含 host 宿住层与 shell 屏壳占树位两类特例),树序=登记序=z 序同源派生,全仓唯一落位口 `_apply_layer_contract`(散落 `move_child` 由冒烟 V1d 源码断言判红);现行架构文档无此条款(仅在 :124 提「组合根 main.gd」、:173 提「主场景装配视图单元」)——是否立条款、合同表是否随架构文档同步摘录待裁 |
|
||||
| 2 | design/dev/architecture/architecture.md | **boot 链路后置条件**:本批以 `_smoke_boot_chain` 十断言把「启动后玩家该看到什么」成文(ConfigDB 就绪且表已载/系统设置已落引擎态/菜单层可见/续玩钮态=断点在档态/闲时会话已在树/调试浮窗态=DS_DEBUG 门控);架构文档启动流程(:173)只有装配动作无后置条件——是否入册待裁 |
|
||||
| 3 | design/dev/architecture/architecture.md | **RunScope 生命周期存活性矩阵**:九阶段(闲时/开局停点/战斗中/结算后/选路页/终局面/回菜单收束/各模态开合后/两连局+续玩)× 五引用面(run_scope 在树/adventure/runner/settlement/四处回调句柄同源)的活死表;架构文档 :124 只登记了 RunScope 的存在——矩阵是否入册、阶段划分是否认账待裁 |
|
||||
|
||||
**状态**:✅ **已写入(2026-10-17,用户逐点裁按推荐案)——三条合并入 architecture.md v1.8「呈现层装配与会话生命周期」节:①装配合同立条款、合同表不摘录(唯一事实源=`main.gd` `LAYER_CONTRACT`,登记时 16 层现为 17 项含 float 类);②启动后置条件六条入「初始化顺序」节(登记时「十断言」现为六组 11 条——2026-10-16 角标令 V2f 拆两条);③九阶段×五引用面存活性矩阵认账入册。代拍板追认单十三项已追认(第 14 项 req-card 双副本取齐仍待裁);残留人闸=07 ㉗ 启动态菜单目检,登记不阻塞**
|
||||
|
||||
---
|
||||
|
||||
#### 迭代 29 测试分层与门禁语义修正批——GDD 反哺点三条+一条建议(该批漏登本清单,2026-10-17 文档批补登记并已裁决写入)
|
||||
|
||||
**现状**:反哺三条与一条建议原只载于 `reports/iter29-实现报告-2026-10-16.md` §六第 2/4 项(该批未在 06 登记专条——属漏登)。2026-10-17 用户逐条裁决(全按推荐案)后写入——
|
||||
|
||||
| # | 文档 | 裁决结果与落点 |
|
||||
|---|---|---|
|
||||
| 1 | design/dev/test-conventions.md | 「三硬闸」与「新写测试件全类型标注」升格为纪律——写入新增 §7(闸承载三闸齐备义务+负面套件仅豁免错误扫描一闸+类型标注写法纪律,暂不机器闸) |
|
||||
| 2 | design/dev/test-conventions.md | 「判定可靠性优先于覆盖率」独立成节——写入新增 §8(绿≠能抓住;自证手段=变异验证/反例实证/零命中自检;覆盖率度量是否引入仍 06 在册待裁) |
|
||||
| 3 | design/gdd/07-体验验证清单.md | ㉖① 全流程走查**保留不注销**——屏壳切换正确性半由 `screen_flow_probe` 机检承接(入轻闸必跑段),节首加机检承接注记,版本历史加 v1.4 行 |
|
||||
| + | design/dev/test-conventions.md | §六第 4 项建议(脚本错误静默中断所在函数剩余断言而套件仍报全绿,三处实证)——写入 §8 机制事实+两条义务 |
|
||||
|
||||
**归属**:工程债/测试基建批完成反哺(不阻塞,不排期)
|
||||
|
||||
**状态**:✅ **已写入(2026-10-17,用户逐点裁按推荐案)——落点 test-conventions.md §7–§8、07 v1.4;本条为补登记,随本批留档不再待裁**
|
||||
|
||||
---
|
||||
|
||||
|
||||
#### 测试域遗留(2026-10-16 迭代 29 测试分层与门禁语义修正批登记)
|
||||
|
||||
**现状**:迭代 29 把验收语义从「跑一遍没崩=通过」扭到「三层完备+判定可靠」,三硬闸(退出码/脚本错误扫描/断言数下限)已落地,L2/L3 从零建起承载。本批未收的余量集中登记在此,均不阻塞、不排期。
|
||||
|
||||
| # | 事项 | 归属与要点 |
|
||||
|---|---|---|
|
||||
| 1 | **余下 3 个 core 模块仍零指名单测**:`board_data`/`reward_economy`/`skill_lottery` | 测试基建批。本批补了 minesweeper_rules/board_generator/config_db_resolver/config_db_cross_validator 四件;余三件按同一手法补(判据=能否在 `--script` 模式不加载 autoload 验完) |
|
||||
| 2 | **render_gate 的 SCRIPT ERROR 扫描仍缺失** | 测试基建批。判定主体是 golden 容差与取证文件存在性,脚本错误不改退出码时无扫描面;本批只把矩阵状态如实记为「缺失」,收它的写法待裁 |
|
||||
| 3 | **静态扫描域 S7/S8 仍未落地** | 工程债批。S7=B1 编排唯一性(B2/B3/B4 API 符号命中文件 ⊆ B1 文件集);S8=结算路径 `await` 零命中。本批补的是 S3 路径与 S5,S6 亦仍在 TODO |
|
||||
| 4 | **E 级卫生件**(test_kit static var 串台风险、4 套件自建断言出口、157 处 untyped 容器、76 处 lambda) | 工程债批。本批只统一了**新写**断言的出口,存量未动;test_kit 的 static var 是「并发跑批」的前置障碍(并发分层方案的前提) |
|
||||
| 5 | **行覆盖率度量缺失** | 基建评估项。Godot 无内建、第三方属新基建;现行补洞靠「零指名清单 + 人工判定」,是否引入度量待裁 |
|
||||
| 6 | **`smoke_all.gd` 拆分**(单文件承载 1127 项检查) | 工程债批。本批按契约只做入闸与改名裁点,不拆不重构;拆分登记在册 |
|
||||
| 7 | **parity 逐位一致比对的触面判定为粗粒度路径匹配** | 测试基建批。触面表含 `battle_orchestrator.gd`,改该文件即要求批准发起 MC;若嫌过重可精化到「是否改动取数/结算数值」的语义面 |
|
||||
|
||||
**归属**:测试基建批/工程债批(不阻塞,不排期)
|
||||
|
||||
**状态**:**在册待裁**(七条均为本批未收的余量;迭代 29 已交付的部分见实现报告与 architecture.md 测试与质量域节)
|
||||
+172
-36
@@ -1,11 +1,22 @@
|
||||
# 07-体验验证清单
|
||||
|
||||
本文登记**需要真人体验/观测才能下结论**的验证项,与 [06-待办清单](06-待办清单.md) 分工:06 登记"要拍板的事",本文登记"要玩过才知道的事"。每条注明**结论回流**路径——体验感受不满不等于当场改数:数值终值归其登记的归属批,体验反馈是该批的输入。
|
||||
本文登记**需要真人体验/观测才能下结论**的验证项,与 [06-待办清单](06-待办清单.md) 分工:06 登记"要拍板的事",本文登记"要玩过才知道的事"。每条注明**结论回流**路径——体验感受不满不等于当场改数:数值终值归其登记的归属批,体验反馈是该批的输入。**登记不阻塞(2026-10-12 用户立规)**:真人检测项登记进本清单后,实现批照常合并进 master、后续迭代照常开工,验收时间由用户自行安排,结论按各条回流路径回流。
|
||||
|
||||
状态词汇设计权威=增益状态 状态词表节(原提案 v1.0 已按生命周期条款退役,git 提交 7f24b64 可考)
|
||||
|
||||
## 行为变化速览(体验前先读)
|
||||
|
||||
### 专长实装批追加(2026-10-11 迭代 20——实机目检项,登记面)
|
||||
|
||||
> **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)——下五项同批核销。
|
||||
|
||||
- **Boss 专长三选一呈现**:非末关通关停点候选=全专长新 29 件(按档配比加权——普通打底/稀有稀缺);旧「提升三选一」属性件不再出现于通关渠道;回血读数照旧随载荷。
|
||||
- **曝光槽三卡观感**:奖励节点/商店三选一=2 格全池+1 格优秀档以上子池(子池空回退全池);新凭证四件(储备金袋/同调电池/时沙/完美保险)稀有档投放观感。
|
||||
- **卡面文案与稀有度档位显示**:新 29 件专长 display_name/desc 直读行字段(封印/陷阱风味系命名);四级档位(普通/优秀/稀有/传说)在卡面档位显示位是否正确渲染。
|
||||
- **同调电池选件面**:拾取同调电池后的充能分配交互(choose_battery_target 核心面已落,呈现层选件窗=本批登记观测——若呈现缺窗,登记缺陷回反哺点)。
|
||||
- **HUD 特性段逐件行**〔2026-10-12 呈现修复批换代——僵尸呈现已修:聚合行退役改逐件行「件名 ×N」、卡面摘族名〕:验修复后 C 区/关卡页逐件行可读、卡面=件名+效果摘要无任何分类字样(原「前对照取证」使命已完成,git 史 33d65ce 留痕)。
|
||||
|
||||
|
||||
| 改动 | 旧行为 | 新行为 | 直接体感 |
|
||||
|---|---|---|---|
|
||||
| 硬化(敌方技) | 主角打硬化目标**翻倍**(符号 bug) | 主角攻击**折半** | Boss 战显著变长变难(预期内) |
|
||||
@@ -14,7 +25,7 @@
|
||||
| 乏力(踩雷负向) | 无感(乘区没接线,死效果) | 输出合计 −25% | 踩雷后攻击真的变弱了 |
|
||||
| 失衡(标错旗) | 承伤加深 +25% | 护甲等级 −1(现行表值 magnitude −1 ac,更易被命中) | 惩罚变隐性——挨打概率上升而非每刀固定加深 |
|
||||
| 卓尔 Boss 新招(新效应词汇批 09-19) | 毒爆 = 纯倍率伤害;Boss 无妨害手段 | 毒爆追加**必中毒分量** 1–3 点(不吃护甲骰不出暴击);新妨害技**蛛网束缚**:施放 → 挂失衡(护甲等级 −1)持续 1 个有效结算 | Boss 战更难更花——堆护甲被毒绕开、被网住后每刀都更容易吃全额 |
|
||||
| 插旗不可逆(09-19 真人试玩反馈批) | 挖旗格被拒("须先拔旗");旗可右键拔除重插 | 旗格**左键直接挖开**=旗消失:安全格零奖励、雷格只吃挖雷惩罚;右键拔旗退役、插旗=一次性承诺 | 误旗不能零成本反悔——标中/标空照常、直挖按四情况改判,插旗前想清楚 |
|
||||
| 插旗不可逆(09-19 真人试玩反馈批) | 挖旗格被拒("须先拔旗");旗可右键拔除重插 | 旗格**左键直接挖开**=旗消失:安全格零奖励、危险格只吃挖雷惩罚;右键拔旗退役、插旗=一次性承诺 | 误旗不能零成本反悔——标中/标空照常、直挖按四情况改判,插旗前想清楚 |
|
||||
| 数值修复批(10-01,用户已验收难度) | 血池 20 / 直伤雷 4-5-5 / L1 杂兵 atk 2 | 血池 26 / 直伤雷 6-8-8 / L1 杂兵 atk 1 | 踩雷明显肉疼;前期杂兵不再磨血;容错略升——整体难度经用户验收 |
|
||||
|
||||
## 试玩观测项(按优先级)
|
||||
@@ -24,52 +35,52 @@
|
||||
- **观测什么**:第二关 Boss(蛛化卓尔精灵)战的轮数、承伤、"打不打得动"的体感。硬化此前只挂 Boss 池,旧读数全部泡在翻倍行为里。
|
||||
- **预期**:明显比以前难——硬化期主角输出减半是纠正后的正确语义,不是 bug。
|
||||
- **红灯信号**:硬化覆盖期间完全打不动、战斗拖过约 10 轮、或恢复点耗尽仍过不去。
|
||||
- **结论回流**:体感数据 → T19 真人标定局(读数与 k 系数,验收读数重测批已于 2026-09-19 履行);难度杠杆归难度修正批(计划书草案待 U0,成文后在此挂路径)——**不在试玩现场改数**。
|
||||
- **结论回流**:体感数据 → T19 真人标定局(读数与 k 系数,验收读数重测批已于 2026-09-19 履行);难度杠杆归数值批(Beta 阶段,未排期)(计划书草案待 U0,成文后在此挂路径)——**不在试玩现场改数**。
|
||||
|
||||
### ② 削弱续时后的承伤压力
|
||||
|
||||
- **观测什么**:普通场每轮承伤是否压得住;插旗的意愿变化(削弱不再能堆出免伤轮)。
|
||||
- **预期**:承伤比以前高——旧"连标两层 → 敌方打不出伤害"的节奏消失了,这是消饱和的代价,属预期。
|
||||
- **红灯信号**:普通场(非 Boss)连续掉血无法规划、恢复点不够用。
|
||||
- **结论回流**:承伤带读数 → T19 真人标定局;削弱时长终值(现行 2 次结算)调整归难度修正批计划书(待 U0)。
|
||||
- **结论回流**:承伤带读数 → T19 真人标定局;削弱时长终值(现行 2 次结算)调整归数值批(Beta 阶段,未排期)计划书(待 U0)。
|
||||
|
||||
### ③ 增伤全段覆盖的数值手感
|
||||
|
||||
- **观测什么**:持有增伤时边挖边打,伤害是否"明显变高但不爆炸"(乘区作用于全部输出;2026-09-19 充能退役后主角输出 = 单分量)。
|
||||
- **预期**:挖得越顺伤害滚得越快(正反馈增强)。
|
||||
- **红灯信号**:普通敌一拍秒杀常态化、增益格子变成"无脑必抢"没有决策。
|
||||
- **结论回流**:增伤幅度为 percent 族冻结轴现行值(+50%)——调整须显式解冻,归难度修正批计划书(待 U0)。
|
||||
- **结论回流**:增伤幅度为 percent 族冻结轴现行值(+50%)——调整须显式解冻,归数值批(Beta 阶段,未排期)计划书(待 U0)。
|
||||
|
||||
### ④ 乏力的可感知性
|
||||
|
||||
- **观测什么**:踩雷吃乏力后,接下来一轮的输出下降是否感觉得到。
|
||||
- **预期**:可感知但不致命(−25% 输出)。
|
||||
- **红灯信号**:完全无感(等于白踩)或过痛(一轮输出报废后必然崩线)。
|
||||
- **结论回流**:乏力幅度为 percent 族冻结轴现行值(−25%)——调整归难度修正批计划书(待 U0);"乏力死效果"期的格面资源调研读数已随接线作废留档。
|
||||
- **结论回流**:乏力幅度为 percent 族冻结轴现行值(−25%)——调整归数值批(Beta 阶段,未排期)计划书(待 U0);"乏力死效果"期的格面资源调研读数已随接线作废留档。
|
||||
|
||||
### ⑤ 失衡换轴的归因可读性(P2 关注)
|
||||
|
||||
- **观测什么**:标错旗吃失衡后,玩家能否读懂"为什么这几刀特别容易挨打"(护甲等级 −1 → 命中更难被闪开)。
|
||||
- **预期**:惩罚变隐性是换轴的已知代价——承伤加深是"每刀固定变疼",AC 降低是"挨打概率与档位变差",后者更难直觉归因。
|
||||
- **红灯信号**:试玩者完全无法把"挨打变疼"与标错旗关联起来。
|
||||
- **结论回流**:归因呈现面已随迭代 6/8 落地(状态图标九枚+明细行文案);失衡幅度现行 AC −1,调整归难度修正批计划书(待 U0)。
|
||||
- **结论回流**:归因呈现面已随迭代 6/8 落地(状态图标九枚+明细行文案);失衡幅度现行 AC −1,调整归数值批(Beta 阶段,未排期)计划书(待 U0)。
|
||||
|
||||
### ⑥ 速杀退化预警(监控口径,2026-09-18 定案)
|
||||
|
||||
纯日志侧预警、不影响玩家体验:读数 = "战斗结束未开资格格占比"(战斗结束时玩家尚未开过的奖励资格格 ÷ 全部资格格)——占比过高说明玩家在跳过棋盘互动直接速杀。预警阈值 provisional = **>40% 报警**(基线已随 2026-09-19 判读报告采集;重校准归 T19 标定局或难度修正批计划书。高加成档速杀低难度行本身是合法形态,预警只进日志不做玩法修复)。
|
||||
纯日志侧预警、不影响玩家体验:读数 = "战斗结束未开资格格占比"(战斗结束时玩家尚未开过的奖励资格格 ÷ 全部资格格)——占比过高说明玩家在跳过棋盘互动直接速杀。预警阈值 provisional = **>40% 报警**(基线已随 2026-09-19 判读报告采集;重校准归 T19 标定局或数值批(Beta 阶段,未排期)计划书。高加成档速杀低难度行本身是合法形态,预警只进日志不做玩法修复)。
|
||||
|
||||
### ⑦ 刷新经济监控(日志先行,阈值等基线)
|
||||
|
||||
弃图率 / 每轮刷新率随试玩日志采集;预警阈值须有基线读数才能定(2026-09-18 拍板:现在定是拍脑袋)——基线已采(见下条),阈值数字归后续调参(难度修正批计划书备选面)联动复核。挖掘期当场刷新无结算发生,两读数均不影响对账。
|
||||
弃图率 / 每轮刷新率随试玩日志采集;预警阈值须有基线读数才能定(2026-09-18 拍板:现在定是拍脑袋)——基线已采(见下条),阈值数字归后续调参(数值批(Beta 阶段,未排期)计划书备选面)联动复核。挖掘期当场刷新无结算发生,两读数均不影响对账。
|
||||
|
||||
**基线已采(2026-09-19 验收重测批——读数已内联本节)**:MC 完美档弃图 ~0.1 次/局量级(L1 基线格 0.23 / L2 0.03)、normal 档零弃图(模拟画像不主动刷新);每轮刷新率 ≤0.6%。阈值数字归后续调参(难度修正批计划书备选面,待 U0)。两读数已固化进 `log_analysis.py` 关卡级统计列(分析器随批升级)。
|
||||
**基线已采(2026-09-19 验收重测批——读数已内联本节)**:MC 完美档弃图 ~0.1 次/局量级(L1 基线格 0.23 / L2 0.03)、normal 档零弃图(模拟画像不主动刷新);每轮刷新率 ≤0.6%。阈值数字归后续调参(数值批(Beta 阶段,未排期)计划书备选面,待 U0)。两读数已固化进 `log_analysis.py` 关卡级统计列(分析器顺带升级)。
|
||||
|
||||
|
||||
### ⑧ 旗行为基线监控(插旗不可逆批 2026-09-19 落地后的行为监控;原「提案评估前置采集」使命随提案转正终结)
|
||||
2026-09-19 上午拍板):本项为插旗不可逆提案的 Alpha 评估前置采集——同日用户在真人试玩中确认"不能挖旗格"违背设定,**提案全套提前落地**(禁拔旗 + 挖旗格兑付改判,战斗结算 v0.18 四情况表;登记原文见 2026-09-18 台账 72 与 git 历史 06 清单条目)。评估使命终结,本项转为一律机制的真人行为监控(与 ⑥⑦ 同形状,纯日志侧采集零新增埋点)。
|
||||
2026-09-19 上午拍板):本项为插旗不可逆提案的 Alpha 评估前置采集——同日用户在真人试玩中确认"不能挖旗格"违背设定,**提案全套提前落地**(禁拔旗 + 挖旗格兑付改判,战斗结算 v0.18 四情况表;登记原文见 2026-09-18 状态记录 72 与 git 历史 06 清单条目)。评估使命终结,本项转为一律机制的真人行为监控(与 ⑥⑦ 同形状,纯日志侧采集零新增埋点)。
|
||||
|
||||
- **观测什么**(读数全部可由现役 JSONL 日志推导——动作行含 flag_place/被拒 dig、结算步流含 flag_hit/flag_miss 判定行〔带格坐标〕与 reward_ineffective 作废行;flag_pull 动作行与同轮插撤、拔旗次数两读数随拔旗退役作废删除):① 误旗率 = flag_miss 判定行 ÷ flag_place 动作行(判定时点口径细节随首批读数钉死);② 挖旗格直挖率 = 插旗格直接挖开数 ÷ flag_place 动作行(原「被拒后路径分布」三路径随挖旗格放行消失);③ 四情况触发分布(①标中留判 / ②雷格直挖 / ③标空留判 / ④安全格直挖零奖励——④占比是核心读数)。
|
||||
- **语义锚(2026-09-19 落地实测锁定,smoke_all `_smoke_flag_irreversible_quadrants` 断言在案)**:插旗安全格直挖 = 零惩罚零奖励(正向兑付作废、作废归因行恰一次、标空不判);插旗雷格直挖 = 只受挖雷一层惩罚(mine_hit 照常)、标中不发;不挖留判 = 标中/标空照常;flag_pull 出目录拒绝、重复插旗 flag_present 拒绝。
|
||||
- **观测什么**(读数全部可由现役 JSONL 日志推导——动作行含 flag_place/被拒 dig、结算步流含 flag_hit/flag_miss 判定行〔带格坐标〕与 reward_ineffective 作废行;flag_pull 动作行与同轮插撤、拔旗次数两读数随拔旗退役作废删除):① 误旗率 = flag_miss 判定行 ÷ flag_place 动作行(判定时点口径细节随首批读数钉死);② 挖旗格直挖率 = 插旗格直接挖开数 ÷ flag_place 动作行(原「被拒后路径分布」三路径随挖旗格放行消失);③ 四情况触发分布(①标中留判 / ②危险格直挖 / ③标空留判 / ④安全格直挖零奖励——④占比是核心读数)。
|
||||
- **语义锚(2026-09-19 落地实测锁定,smoke_all `_smoke_flag_irreversible_quadrants` 断言在案)**:插旗安全格直挖 = 零惩罚零奖励(正向兑付作废、作废归因行恰一次、标空不判);插旗危险格直挖 = 只受挖雷一层惩罚(mine_hit 照常)、标中不发;不挖留判 = 标中/标空照常;flag_pull 出目录拒绝、重复插旗 flag_present 拒绝。
|
||||
- **预期**:无基线,首跑即基线——随真人试玩批次 2 起采(模拟画像不拔旗,此面只有真人数据有效)。
|
||||
- **红灯信号**:误旗后放弃纠错占比异常高(直挖免费但④零奖励仍可能劝退纠错——玩家改绕路不挖)或④触发后局部推进明显迟滞(零奖励力度过狠的体验证据)——红灯仅作曲线调参批输入,**不在试玩现场改机制**。
|
||||
- **结论回流**:读数 → 曲线调参批复核情况④零奖励力度与旗价目;提案已转正,无后续评估义务。
|
||||
@@ -91,21 +102,23 @@
|
||||
|
||||
**结果回流**:日志取数 → 真人修正系数 k(真人整关承伤中位 ÷ 模拟完美档中位;**正常预期 k>0.5、预警线 k<0.3**——2026-10-03 用户裁)并入 T19 标定报告(落 design/qa/,换代 2026-09-19 判读报告为现行锚);①–⑤ 体感按各条目的回流位分流。
|
||||
|
||||
**2026-10-01 数值修复批后试玩注记**(master 4b4a011 起的正式标定局):本批已落 hero 血池 20→26 / 直伤雷三行 4/5/5→6/8/8 / L1 系敌 atk 2→1(轨迹与读数见 [numfix 报告](../qa/numfix-newruler-readings-2026-10-01.md))。试玩时对号新增两点:
|
||||
**2026-10-01 数值修复批后试玩注记**(master 4b4a011 起的正式标定局):本批已落 hero 血池 20→26 / 直伤雷三行 4/5/5→6/8/8 / L1 系敌 atk 2→1(轨迹与读数见 numfix 报告(已退役,git 历史可查))。试玩时对号新增两点:
|
||||
1. **踩雷疼痛感**(本批主刀):「踩很多雷还是轻松活」应是过去式——单雷 6-8 直伤、两三连雷应明显肉疼;若仍无痛感=回调信号,记一句话即可;
|
||||
2. **整体难度印象**:用户 2026-10-01 已阶段性验收「令人稍微满意」——本批试玩读数作正式标定(真人通关率+k 系数),若体感偏难/偏易也照实记,不因单局顺逆回调。
|
||||
模拟侧对照读数(普通档画像 L1 13%/战役 0%;完美档 78.5%)见同报告 §四。
|
||||
|
||||
### ⑩ 迭代 10 奖励重构体验项(2026-10-01 随批登记——实机目检一轮已过 1/3/4/5/6/9/14,余项人工参与)
|
||||
### ⑩ 迭代 10 奖励重构体验项(2026-10-01 顺带登记——实机目检一轮已过 1/3/4/5/6/9/14,余项人工参与)
|
||||
|
||||
- **逐行结算演出复验**:完全退出游戏后重启(减动效开关在启动时加载——首轮目检「零动画」系该开关遗留开启,已翻回),战斗停手看轮末结算是否一行一行滚出(弹道/受击闪白/伤害数字逐行)。机制系迭代 8 已落地(排播队列 0.3/0.22s),非迭代 10 事项;若重启后仍无演出再报 bug 批。
|
||||
- **道具件卡片直显复验**:三选一抽到秘宝件时,卡片应直显「秘宝 / 探巢摆钟 · 真视 3×3」式具体道具(掷定前置已实装,node-reward.md v2.1)——不再是「随机获得一件」盲选。
|
||||
- **通关节奏体感**:血回满→20% 部分回血 + 三选一选件后,L2/L3 的紧张度与「这局能走多远」驱动是否成立(读数带内:普通 L1 41.8%/L2 10.2%——体感不满不当场改数,归曲线调参批)。
|
||||
- **钥石节奏体感**:Boss 逐杀掉落(首杀 3/复杀 2/2/3)后营地积累速度明显变慢——元进度产出重标(均值 1.38/3.01)归元进度设计批,体感反馈是其输入。
|
||||
|
||||
### ⑪ Boss 图整图变异(贫矿脉)目检项(2026-10-04 全局作用域变异首发批随批登记——**目检改排:随 UI 优化批之后统一验证**,用户 2026-10-04 裁「先做完 UI 优化再一起验证」)
|
||||
### ⑪ Boss 图整图变异(贫矿脉)目检项(2026-10-04 全局作用域变异首发批顺带登记——**目检改排:随 UI 优化批之后统一验证**,用户 2026-10-04 裁「先做完 UI 优化再一起验证」)
|
||||
|
||||
> **改排状态注记(2026-10-05 ui-struct-probe 批)**:UI 优化批(UI 落码 11 卡+SR-1)已全落籍;期间实机目检抓到标题屏双列叠放缺陷,已随 ui-struct-probe 批修复,并新增全 UI 屏结构探针入轻闸(按钮互压/等宽/出屏/零尺寸——机械可判项自此探针代管,见 §⑯)。本条统一验证窗口仍开,等用户实机目检时点;下列六项均为体感/呈现面,保留人闸。
|
||||
> **✅ 转记(2026-10-16 用户令屏蔽——前提失效,无需验)**:贫矿脉行已从 `variation.tres` 删除(用户裁「地形变异特异关卡后续重新做设计,先屏蔽」;Boss/精英图全局池空→region 布置兜底,玩家面零横幅零角标零资源偏斜)。下列六项判据全部失效,不验;重建设计立项时随新需求卡重立目检项。改动面=shielddebug-20261016 批(variation.tres 删行+冒烟断言换代)。
|
||||
|
||||
> **改排状态注记(2026-10-05 ui-struct-probe 批)**:UI 优化批(UI 落码 11 卡+SR-1)已全入库;期间实机目检抓到标题屏双列叠放缺陷,已随 ui-struct-probe 批修复,并新增全 UI 屏结构探针入轻闸(按钮互压/等宽/出屏/零尺寸——机械可判项自此探针代管,见 §⑯)。本条统一验证窗口仍开,等用户实机目检时点;下列六项均为体感/呈现面,保留人闸。
|
||||
|
||||
**怎么玩**:打一局正常打到第 2 关的 Boss 图(想快可以在开始界面开调试入口直接进第 2 关);顺手的话再看一眼第 1 关 Boss 和任意普通战斗图,前后共约十分钟。本条目在 UI 优化批落地后执行——届时以改完后的最终界面为准,下述文案若随 UI 批调整以当批登记为准。
|
||||
|
||||
@@ -121,54 +134,177 @@
|
||||
|
||||
**局后随手记**(一句话):Boss 图这层"攻击多、回血少"的体感成不成立;有没有觉得 Boss 图突然变难/变容易。读数核对归模拟批(off/on 双档,只测不判),你的体感只做方向参考——不会当场改数值。
|
||||
|
||||
### ⑫ 旗溢价兑付与标旗激励(2026-10-05 挖掘风险不等式判式换代批随批登记——迭代14②号卡)
|
||||
### ⑫ 旗溢价兑付与标旗激励(2026-10-05 挖掘风险不等式判式换代批顺带登记——迭代14②号卡)
|
||||
|
||||
- **机制一句**:标中旗的正向兑付现在按同型正向 ×1.25 兑付(`settlement.tres` flag_hit_premium=125 provisional——条款3 条件二旗溢价形态 a),标空与挖格兑付不变;雷安同池结构零触碰。
|
||||
- **看什么(实机目检,约 5 分钟)**:①插旗标中一面旗,结算明细的兑付数值应比改前同类行略大(增伤 50→63 / 削弱 65→81 / 急救 2→3 / 金币袋 3→4;护甲强化与行动点 1 点量纲不变=整数粒度地板);②挖安全格与标空惩罚行数值应与改前逐位相同;③战斗结算帮助文案如有旗相关行,无自造词。
|
||||
- **行为读数(改前改后 MC 锚已采,判读随批出口报告)**:η=标中÷插旗 与 标旗率 位移 ≥5pp 判「有感」;行为无效 δ 仍保留+登记「行为无感」(判式诚实性不依赖行为弹性——2026-10-04 grill Q4 裁)。
|
||||
- **机制一句**:标中旗的正向兑付现在按同型正向 ×1.25 兑付(`settlement.tres` flag_hit_premium=125 provisional——条款3 条件二旗溢价形态 a),标空与挖格兑付不变;危险格与安全格同池结构零触碰。
|
||||
- **看什么(实机目检,约 5 分钟)**:①插旗标中一面旗,结算明细的兑付数值应比改前同类行略大(增伤 50→63 / 削弱 65→81 / 急救 2→3 / 金币袋 3→4;盾牌加护与行动点 1 点量纲不变=整数粒度地板);②挖安全格与标空惩罚行数值应与改前逐位相同;③战斗结算帮助文案如有旗相关行,无自造词。
|
||||
- **行为读数(改前改后 MC 锚已采,判读随出口报告顺带交付)**:η=标中÷插旗 与 标旗率 位移 ≥5pp 判「有感」;行为无效 δ 仍保留+登记「行为无感」(判式诚实性不依赖行为弹性——2026-10-04 grill Q4 裁)。
|
||||
- **红灯信号**:标旗 rush 复发(首轮全标旗不挖——δ 与完美排雷 ×2 叠加通胀是既有联动面:旗溢价三件套 δ↔p_perfect↔ap_per_round 同窗检算,难度曲线与Boss 调参联动表在册)。
|
||||
- **结论回流**:体感 → 本条目记录;数值终值(δ 值与 ×1.5 档留后手)归调参批,不在试玩现场改数。**判式换代文本(行动经济 F1 条款3/战斗结算 验收标准/难度曲线与Boss 联动表三处修订稿)随批呈用户人闸**——追认单随出口报告。
|
||||
- **结论回流**:体感 → 本条目记录;数值终值(δ 值与 ×1.5 档留后手)归调参批,不在试玩现场改数。**判式换代文本(行动经济 F1 条款3/战斗结算 验收标准/难度曲线与Boss 联动表三处修订稿)顺带呈用户人闸**——追认单随出口报告。
|
||||
|
||||
### ⑬ 初始展开收窄体感(2026-10-05 初始展开收窄批随批登记——迭代14①号卡;任务书 §T8 四信号组)
|
||||
### ⑬ 初始展开收窄体感(2026-10-05 初始展开收窄批顺带登记——迭代14①号卡;需求卡片 §T8 四信号组)
|
||||
|
||||
- **机制一句**:开局免费展开(R₀)从「一口气开掉约 2/3 板」收窄——剃雷域从全域 flood 缩到出生 5×5(shave_ring_radius=1),另加生成期 R₀≤cap 重掷闸封顶(10×10≤45 / 12×12≤43 / 13×13≤51 / 14×14≤59)。实测开局免费展开均值:10×10 68.6→39.7 格、12×12 83.2→37.9 格。
|
||||
- **对症信号(「开一大片」体感)**:开局第一挖还会不会「唰一下开掉大半张图」?预期=开场仍是出生区连锁、但明显比以前克制;「开了片面积」的失控感是否消退。
|
||||
- **节奏信号(单板停留时长)**:单块雷图的挖掘轮数/停留时长变化(免费信息变少 → 每板要多挖几格才有全图视野)——是变紧凑了还是变拖沓。
|
||||
- **策略信号(连锁与微光预读)**:玩家是否更依赖读数字推雷/类型微光预读(免费视野少了,推理工具的使用率应上升)。
|
||||
- **迷雾联动信号(记忆态使用率)**:视野外扩道具(魔法提灯 +2)与记忆态(暗淡已见格)的使用频率变化。
|
||||
- **迷雾联动信号(记忆态使用率)**:视野外扩道具(魔法提灯 +2——已裁退役 2026-10-09,拆线批入库后本信号面失效)与记忆态(暗淡已见格)的使用频率变化。
|
||||
- **红灯信号**:开局连续多板几乎无免费展开(R₀ 常年 ≈9-15,体感「开局一片黑」);或可推理率体感骤降(数字不够推)。前者=剃雷半径 r 回调面(P1 旋钮 [0,2]),后者归 S1 相变警戒复测。
|
||||
- **结论回流**:体感 → 本条目记录;参数终值(r 0/1/2、cap 收紧路径 45→40 等)归 P1-P3 拍板面(读数后置,MC 四带复算挂 07 现行义务),不在试玩现场改数。
|
||||
|
||||
### ⑭ Boss 半血解锁呈现目检(2026-10-05 技能池执行批随批登记——迭代14④号卡;D8 呈现面)
|
||||
### ⑭ Boss 半血解锁呈现目检(2026-10-05 技能池执行批顺带登记——迭代14④号卡;D8 呈现面)
|
||||
|
||||
- **机制一句**:三 Boss(食人魔酋长/蛛化卓尔精灵/灰矮人石君王)血量降至一半时,各解锁一行新独占伤害技(震地怒击 ×2.5/CD4 · 遏毒 ×2.0/CD3 · 岩崩 ×2.5/CD4——provisional 归调参)入池参与摇号;解锁瞬间出一次归因明细行「XX 解锁了 YY」(金框行)+ 技能名 toast 一次性提示。
|
||||
- **看什么(实机目检约 5 分钟)**:①把任一 Boss 打到半血以下,下一轮开始应看到「XX 解锁了 YY」金框明细行 + 右上技能名 toast(只报名不报数值);②同一场战斗继续打,解锁行与 toast 不复弹(单向闩);③解锁后 Boss 会实际使出该技(伤害明显更重);④普通小怪全程无解锁行。
|
||||
- **红灯信号**:解锁行反复弹(闩失效);toast 带数值/权重(池不公开纪律破);满血即解锁(门谓词错)。
|
||||
- **结论回流**:体感 → 本条目记录;技能强度体感归 T7 节奏重测读数(跑批待用户批准,过涝越带 S2 回调呈报禁自动调)。
|
||||
|
||||
### ⑮ 秘宝词族换词全 UI 面目检 + 渲染像素闸补跑(2026-10-05 秘宝代码词族对齐批随批登记——迭代15③号卡)
|
||||
### ⑮ 秘宝词族换词全 UI 面目检 + 渲染像素闸补跑(2026-10-05 秘宝代码词族对齐批顺带登记——迭代15③号卡)
|
||||
|
||||
- **实机目检(「秘宝」字样全 UI 面,约 3 分钟)**:①C 区槽位标题应显示「秘宝」(原「魔法道具」,hero_info_panel_view 槽位组);②空槽悬停提示应显示「秘宝槽(空)」;③战斗总结三选一叙述行应显示「秘宝 / …」或「秘宝 / 随机获得一件」(原「魔法道具」开头);④换关 toast 应显示「上关剩余 N 件秘宝已随关卡结束清空」。**红灯信号**:任何界面残留「魔法道具」字样。
|
||||
- **渲染像素类闸补跑挂账**:本批屏蔽五件(golden_compare / shot_probe / fx_probe / ui_layout_probe / board_shot——组 A 文案变更使像素断言合法失效,按 goal 令弃断);**补跑时点=迭代 14 全落籍后的表现批周期闸一次性补跑**,与本批无独立补跑义务;届时若 golden 基线因文案换代失效,按换代流程重锚而非当缺陷修。**分工注记(2026-10-05 ui-struct-probe 批)**:结构类断言(互压/等宽/出屏)已由 `ui_struct_probe` 入轻闸默认必跑段(tools/probe_gate.sh),与像素五闸互补不替代——五闸补跑义务不变。
|
||||
- **实机目检(「秘宝」字样全 UI 面,约 3 分钟)**:①C 区槽位标题应显示「秘宝」(原「魔法道具」,hero_info_panel_view 槽位组);②空槽悬停提示应显示「秘宝槽(空)」;③战斗总结三选一叙述行应显示「秘宝 / …」或「秘宝 / 随机获得一件」(原「魔法道具」开头);④换关 toast 应显示「上关剩余 N 件秘宝已随关卡结束清空」。**红灯信号**:任何界面残留「魔法道具」字样。〔**✅ 真人目检半已核销(2026-10-14)**:用户实机目检回报完成,未呈报残留(qa 收尾批)〕
|
||||
- **渲染像素类闸补跑挂账**:本批屏蔽五件(golden_compare / shot_probe / fx_probe / ui_layout_probe / board_shot——组 A 文案变更使像素断言合法失效,按 goal 令弃断);**补跑时点=迭代 14 全入库后的表现批周期闸一次性补跑**,与本批无独立补跑义务;届时若 golden 基线因文案换代失效,按换代流程重锚而非当缺陷修。**分工注记(2026-10-05 ui-struct-probe 批)**:结构类断言(互压/等宽/出屏)已由 `ui_struct_probe` 入轻闸默认必跑段(tools/probe_gate.sh),与像素五闸互补不替代——五闸补跑义务不变。**核销注记(2026-10-08 迭代 19 卡①自动化验收补齐批——机器补跑半顺带核销)**:五件机器半全部归宿已入库并实测绿——shot_probe(扩屏七屏+shot_checker A-D 断言)/board_shot(L1-L3 取证+golden 逐像素 0.00%×3)/golden_compare 三件入 render_gate(窗口化自动闸),fx_probe 入 probe_gate --full(headless 逻辑层断言),ui_layout_probe 补 1280/1920 两档最小断言(首跑 PASS);五闸归宿对账见需求卡片-自动化验收补齐批 §一。**真人目检半(上方「秘宝」字样全 UI 面 3 分钟)仍归用户,不注销**。
|
||||
|
||||
### ⑯ UI 结构批复验(2026-10-05 ui-struct-probe mini-loop 随批登记——标题屏双列修复+按钮宽度纪律,约 2 分钟)
|
||||
### ⑯ UI 结构批复验(2026-10-05 ui-struct-probe mini-loop 顺带登记——标题屏双列修复+按钮宽度纪律,约 2 分钟)
|
||||
|
||||
- **背景**:实机目检抓到标题屏立绘/帮助牌叠压操作行牌(M2 双列接线缺陷,ui_assembler.gd 右列误挂 MarginContainer)+全站按钮宽度无纪律(UiKit 工厂无宽度约束)。已修复:右列挂回 HBox 第二列;UiKit.button 全站最小宽度基准 216+SIZE_FILL(行板/角标/图标钮 9 处豁免);全 UI 屏结构探针入轻闸。
|
||||
- **看什么(实机目检约 2 分钟)**:①标题屏应为左右双列——左操作列(冒险/营地与系统两组)与右立绘看台+玩法速览牌并排,互不遮挡,「退出游戏」按钮完整可见;②同组按钮等宽(菜单列/确认弹窗),按钮不再宽窄参差;③营地屏三柜台+底栏不出屏、不重叠。
|
||||
- **红灯信号**:任何屏出现控件叠压/按钮宽窄不一回潮/内容超出屏幕——结构探针已拦机检面,红灯=探针盲区,报批补断言。
|
||||
|
||||
### ⑰ 奇物渠道分离与门票目检(2026-10-05 奇物词族对齐与渠道分离批随批登记——迭代15②号卡)
|
||||
### ⑰ 奇物渠道分离与凭证目检(2026-10-05 奇物词族对齐与渠道分离批顺带登记——迭代15②号卡)
|
||||
|
||||
- **专长兑付时点(单列检查项——契约①核心)**:关底 Boss 被击败那一刻应弹出通关三选一(候选应全为专长件=卡面只写单件名与效果);**战斗结算面不应出现任何奇物授予**;普通战斗节点打完不给任何奇物。
|
||||
- **门票目检**:奖励节点/商店偶见「奇物门票」卡(价与其他商品相当);选中/买下同一时刻应**直接开出一次奇物三选一**(不进持有集、无库存残留);同局第二次买到应正常(限购 1——第三次起不再出现)。
|
||||
- **凭证目检**:奖励节点/商店偶见「奇物凭证」卡(价与其他商品相当);选中/买下同一时刻应**直接开出一次奇物三选一**(不进持有集、无库存残留);同局第二次买到应正常(限购 1——第三次起不再出现)。
|
||||
- **商店货架目检**:货架应偶见「应急回复」行(T6 补回复);原吞噬流件「零特性挤卡保底」已随渠道分离退役——货架不再出现替卡行为。
|
||||
- **红灯信号**:战斗结算后弹奇物;门票进持有集;货架出现专长单件(非门票形态);refresh 件写进角色加成区。
|
||||
- **结论回流**:呈现面违规改法+档位呈现三路=C1 待裁(呈现批);强度体感归 M-4 带判读(本批 MC 只测不判)。
|
||||
- **红灯信号**:战斗结算后弹奇物;凭证进持有集;货架出现专长单件(非凭证形态);refresh 件写进角色加成区。
|
||||
- **结论回流**:呈现面违规改法+档位呈现三路=C1 待裁(呈现批);强度体感归 Beta 阶段(未排期)带判读(本批 MC 只测不判)。
|
||||
|
||||
### ⑱ 首批混编遭遇目检与读数义务(迭代 18 卡⑤投放顺带登记——首个混编遭遇落表)
|
||||
|
||||
- **投放内容**:(2,5) 双行行集 = 熊地精重击手(既有行零变更)+ 巨蜘蛛巢群(新行,行值整行复制 (2,6) 巢群行——零数值新增);行序 = 重击手在前(默认目标)·巢群在后(R6 行序契约:文件序 = 声明序 = 生成序)。
|
||||
- **实机目检三项**(混编遭遇至少触发一次——L2 节点 5):同场两敌种呈现(重击手与蜘蛛同屏);行序与表一致(默认目标 = 重击手,蜘蛛随后);实例总数 ≤4 目视(3-4 只 = 重击手 1 + 蜘蛛 2-3)。
|
||||
- **难度带读数义务**:L2 含混编后的难度带位移——随 Alpha 收官 M4 数值批统一执行,届时另报批(本批 MC 零跑)。
|
||||
- **首遇教学位与断言面复核(本批已履行)**:巨蜘蛛首遇位 (2,4)「固定 2 不加骰」零触碰、钩爪恐魔 (3,0)/(3,1) 固定数量零触碰;expect_pools 三元键池模板 + (2,5) 行集构成/行序/静态最坏骰和 ≤4 断言顺带入冒烟全绿。
|
||||
- **红灯信号**:(2,5) 只出一种敌种;敌人数 5 只以上(越 spawn 守卫应不可能——出现即报缺陷);首遇位 (2,4) 数量出现掷骰波动(应恒 2)。
|
||||
- **Boss 多行(第二批投放)六面读数清单维持**:Boss 名取首行显示 / Boss 遭遇骰逐行区间骰(每行各掷自己区间——卡① Q8 逐行骰换代口径)/ 半血解锁 / 独占技 / 难度带 / 首遇教学位复核——逐项过,随第二批需求卡片执行。
|
||||
|
||||
### ⑲ 生涯页目检(迭代 18 卡④生涯界面实装批·期一顺带登记——主菜单新增一级只读页+存档 v6)
|
||||
|
||||
- **入口与开合**:主菜单「营地与系统」组出现「生涯」钮(营地钮与设置钮之间);点击开全屏页、点「返回」回主菜单(继续上局钮可见性随开合正确恢复)。
|
||||
- **页呈现两类六项**:组一·冒险战绩(冒险总局数 / 通关局数〔括注「三关全通」〕 / 各关通关次数〔一行三关,关名带层号〕 / Boss 首杀〔X/3 关〕 / Boss 总击杀);组二·资源(钥石余额徽)——数值与存档实况一致(对照:玩几局后总局数含放弃与失败、三关全通才计通关)。〔原「属性锻造已购合计」「天赋树已购概览」两观测项随生涯页三投影删除摘除——2026-10-12 用户裁⑧,天赋树实装批顺带〕
|
||||
- **旧档载入**:v5 现役档(升级前存档)载入后生涯页正常显示,总局数/通关局数从 0 起计(终身计数域 v6 新增,缺省补零),钥石等既有进度原样。
|
||||
- **零跳转与局内零入口**:页内除「返回」外无任何前往他处的按钮;冒险进行中(战斗屏/关卡地图屏/状态面板)无生涯入口。
|
||||
- **对比度与零动效**:页文字亮墨族在深棕底上可读(机检 3 对已入 ui_contrast 闸);开页/关页无过渡动画。
|
||||
- **红灯信号**:计数与实玩局数对不上(收束入账重复或漏计);旧档载入返回错误或计数域显示异常;页内出现购买/跳转入口;入口在局内可点。
|
||||
- **结论回流**:呈现问题归生涯批后续修正(本批需求卡片 v1.2 在案);「通关局数」口径如与体感冲突=P1 甲裁决复核(三关全通才计 1,用户已裁);期二内容(历史回看/图鉴)缺位属分期计划非缺陷。
|
||||
|
||||
### ⑳ 营地统一四柜台目检(迭代 21 天赋树实装批顺带登记——V22 人闸;2026-10-12)
|
||||
|
||||
- **四柜台并排**:树淬炼柜台=主界面(脊柱两行一线一节点行板+Fork 三行双态切换钮+脉分组头);锻造工坊柜台未点亮=锁定态、点亮=展开零交互占位面板;秘宝匣柜台未点亮=锁定态、点亮=展开(工坊六行+同调装配段+Y 升级行);图鉴常开独立位;宽度不足横向滚动。
|
||||
- **树购买交互**:余额不足购买钮态、行门槛/前置拦截 toast、购买后行板即时刷新(Lv/钮禁用态)。
|
||||
- **刷新双入口**:树上「刷新升级」行与秘宝匣装配段 Y 升级行都能买、同账累计(树上 Lv 读数随买走)。
|
||||
- **连带面**:状态面板属性锻造段已消失(钥石+工坊+天赋树概览);生涯页两类六项(三柜台概览行已删);局内六键体感(先手首战首轮 +1AP/锋踩雷减半/守标错下轮 +AP/聚结算框 GP 即实得/散货架八折标价)。
|
||||
- 验证方式:用户实机目检(本批自动闸外唯一人闸)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
### ㉑ 秘宝解锁-装配正常流程体验(迭代 22 秘宝体系实现重构落地批顺带登记——2026-10-12)
|
||||
|
||||
- **解锁面**:攒钥石→秘宝匣柜台钥石购买(余额不足钮禁用、购买后行板即时刷新为已解锁);条件件进度呈现(远程镐=通关 1 次/刷新执照=Boss 击杀 3 次/天眼=通关 3 且 Boss 4/信标网络=真视使用 10——达标未解锁时开营地/冒险收束即自动入账)。
|
||||
- **装配面**:槽位=树同调位点亮数(未点亮树=0 槽不能装配);件档≤格档(普通/优秀/稀有递增向下兼容——稀有件装普通格被拒);未解锁件装配钮禁用;满位禁选。
|
||||
- **生效面抽查**:晨操令/双管装填首轮 AP、阔视野带视野 8→12、巢穴预告开局报雷数 toast、线香单格真视(战斗级一次)、天眼 3×3 安全格直开(关卡级一次)、试炼镐每开 8 安全格自动 AP+1(自动兑付——C 区秘宝槽悬停浮窗看进度 N/8;AP 恰归零时兑付优先、轮不结束)、储备罐停手转存变厚、远程镐距 2 可挖、信标网络任意格插旗、刷新练习/刷新执照加仓。(原「HUD 兑换钮积点滑耗」观测点随 2026-10-12 反哺批⑤自动兑付裁决换代)
|
||||
- **装配不可变**:冒险中无任何换装入口(三选一/奖励节点/战斗内零替换交互——旧替换子交互已拆)。
|
||||
- 验证方式:用户实机目检(本批自动闸外唯一人闸;能力验证半已由自动化闸覆盖=V1-V19)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
### ㉒ 锻造工坊工作间形态与购买交互(迭代 23 锻造工坊实装批顺带登记——2026-10-12)
|
||||
|
||||
- **门与形态**:树上「锻造工坊」钥匙未点亮=锁定态(纯文案、无任何可交互购买路径);点亮后工作间展开=武器锻造区/护甲锻造区两区并列,六路线行板(行名=件名+锻造:长剑锻造/长枪锻造/法杖锻造/轻甲锻造/重甲锻造/魔法护甲锻造;每行件名+Lv+解锁态+钮组)。
|
||||
- **购买面**:已解锁路线「锻造 N 钥石」钮(几何价 20/30/45/67/101 逐级涨);余额不足钮禁用;买后等级+1、行板即时刷新、钥石余额扣减。
|
||||
- **解锁面**:待解锁路线双通道呈现——「练满长剑锻造 或 200 钥石直购」:长剑练满→长枪/法杖解锁钮消失可直接锻造(零收费);或 200 钥石直购开;两通道互不影响(未练满可直购、直购后练满不重复收)。
|
||||
- **选中面**:已解锁路线「选中」钮免费切换(当前路线=「当前」禁用态);一次冒险只带一个武器类型+一个甲型;冒险开始后无切换入口(锁死)。
|
||||
- **注入抽查**:营地选长枪→开局攻击类型=穿刺(对敌护甲查克制矩阵生效);选重甲→入战 AC=12+路线加值;旧路线练度保留(换回即生效)。
|
||||
- 验证方式:用户实机目检(本批自动闸外唯一人闸;能力验证半已由自动化闸覆盖=V1-V14)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
### ㉓ 敌人表内容修批三观测(迭代 24 敌人表内容修批顺带登记——2026-10-13)
|
||||
|
||||
- **新招可见性**:第二关与第三关的普通战斗(非 Boss)是否真的见到「第一关没见过」的招式——巨蜘蛛族毒吐((2,5) 起投,首遇位 (2,4) 不投)、灰矮人族盾击((3,0)/(3,5)/(3,7));不是只有 Boss 变花。
|
||||
- **甲型体感**:营地选重甲进战斗,挨打是否比选轻甲**可感知地**轻一点(敌方攻击查矩阵 −1);选魔法护甲是否更疼(+1)。
|
||||
- **第一关节奏**:第一关第三个节点(熊地精 22 血)不再是「打不动的一堵墙」,推进节奏顺畅。
|
||||
- 验证方式:用户实机目检(登记不阻塞——2026-10-12 真人检测立规;能力验证半已由自动化闸覆盖=V1-V7)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
### ㉔ UI 全局主题批全屏巡检(迭代 25 UI 全局主题批顺带登记——2026-10-13)
|
||||
|
||||
- **引擎默认灰清零巡检**:营地三处滚动容器(含右侧竖滚条)、战斗日志/结算回看的自动滚动条、设置面音量滑轨、各屏悬停气泡(含标题屏深底气泡承旧观感)、调试浮窗种子输入框/批量模拟数/输出区、全屏 15 处分隔线——逐屏看过,应无引擎默认灰色圆角现代风残留。
|
||||
- **音量滑轨两段可辨**:把主音量拖到中点,已填充段(深棕)与未填充段(暖石)是否一眼可辨(本批注销 06 第三层①的实机判据)。
|
||||
- **专项观察点 1·滑轨柄是否抢焦点**:设置屏上滑轨柄(烛光黄方柄)是否比「关闭」按钮还抢眼——若是,走 L2 微调(候选降档 STONE 灰石系;色值已冻结,目检前不改)。
|
||||
- **专项观察点 2·滚动条槽是否看得见**:滚得动的内容里,能否一眼看出滚动条在哪(槽=BG_OVERLAY α0.35)——若否,走 L2 微调(候选提不透明度或改取 SLOT_BACKDROP)。
|
||||
- **预盖件无实役(登记注记)**:CheckBox / CheckButton / OptionButton 及其弹层 PopupMenu 游戏零使用,本批仅预盖(冒烟 V3 已有运行时证词)——无需目检,备案待未来批次启用时复查。
|
||||
- 验证方式:用户实机目检(登记不阻塞——2026-10-12 真人检测立规;能力验证半已由自动化闸覆盖=冒烟 V1-V6)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
### ㉕ UI 交互与观感批逐屏巡检(迭代 26 UI 交互与观感批顺带登记——2026-10-14)
|
||||
|
||||
- **按钮五态反馈**:标题屏/营地/商店/设置/三选一逐屏——鼠标悬停(石纹钮应有可感提亮;主钮/危险钮承现行提亮档)、按下(本族下沉:石纹按压图/烛光黄深档/深红深档)、禁用(余额不足的商店购买钮=本族底幽灵化,非旧「灰头灰脑按不下去」观感)三种反馈均应可感。
|
||||
- **键盘焦点环**:Tab 遍历各屏按钮,焦点环(INK 2px 内缩 1px)应可见不糊、不遮钮底字;三类钮底(石纹/烛光黄/深红)上环的可辨性实比。
|
||||
- **全局 Nearest 巡检**:立绘/瓦片/格面/图标/九宫格 UI 皮无新增糊感(应更 crisp);暗角与地图渐变无像素块(LINEAR 白名单生效判据);标题屏斜光带无硬边梯形、有横向过渡与上亮下暗衰减。
|
||||
- **布局均衡**:商店卡片区不堆上半(垂直居中);营地四栏视觉等高(含锻造/秘宝匣锁定态与图鉴栏)。
|
||||
- **诊断钮清零**:玩家画面(主菜单及各屏左下角)无「诊断转储」钮;转储入口仅在调试浮窗内可达。
|
||||
- 验证方式:用户实机目检(登记不阻塞——2026-10-12 真人检测立规;能力验证半已由自动化闸覆盖=冒烟 V1-V6+T4 结构断言)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
## 验收读数重测义务(履行留痕 + 现行义务)
|
||||
|
||||
**已履行**(按序换代,旧读数各随其批作废留痕不入本单):①验收读数重测批(2026-09-19——Boss 单独出列/承伤带/通关率基线全量重测,硬化翻倍期·乏力死效果期·充能期旧读数作废);②迭代 5 基线重测(统一随机流后 MC+verifier 双窗);③**数值修复批新尺重测(2026-10-01)**——模拟档位重构后全量重测,新锚 `sim-data/runsum_numfix_final_n200_20261001.jsonl`,全旧带作废只测不判([numfix 报告](../qa/numfix-newruler-readings-2026-10-01.md));④**迭代 10 奖励重构批重锚(2026-10-01)**——四代锚 77000/78000/79000/80000(改前/重构后/共享池后/掷定前置后,各 400 局),普通 L1 41.8%/L2 10.2% 带内([读数报告](../qa/m3-iter10-clear-rate-readings-2026-10-01.md));⑤**T19 真人标定局收口(2026-10-03 用户裁)**——有效局 2(1 通关 1 死于 L3 首战,[读数报告](../qa/t19-real-playtest-readings-2026-10-02.md)),用户裁定**佐证级收口不再补局**;k 预期带同日立(**正常 >0.5、预警 <0.3**),字段随 81000 重锚入库后补算终值。
|
||||
**已履行**(按序换代,旧读数各随其批作废留痕不入本单):①验收读数重测批(2026-09-19——Boss 单独出列/承伤带/通关率基线全量重测,硬化翻倍期·乏力死效果期·充能期旧读数作废);②迭代 5 基线重测(统一随机流后 MC+verifier 双窗);③**数值修复批新尺重测(2026-10-01)**——模拟档位重构后全量重测,新锚 `sim-data/runsum_numfix_final_n200_20261001.jsonl`,全旧带作废只测不判(numfix 报告(已退役,git 历史可查));④**迭代 10 奖励重构批重锚(2026-10-01)**——四代锚 77000/78000/79000/80000(改前/重构后/共享池后/掷定前置后,各 400 局),普通 L1 41.8%/L2 10.2% 带内(迭代10通关率读数(已退役,git 历史可查));⑤**T19 真人标定局完成(2026-10-03 用户裁)**——有效局 2(1 通关 1 死于 L3 首战,T19真人试玩读数(已退役,git 历史可查)),用户裁定**佐证级完成不再补局**;k 预期带同日立(**正常 >0.5、预警 <0.3**),字段随 81000 重锚入库后补算终值。
|
||||
|
||||
**现行义务**:**T7 技能池节奏重测(2026-10-05 技能池执行批挂单)**——≥50 distinct seeds 节奏重测(过涝判读带=Boss 半血后特殊技密度上探;跑批须用户批准;S2 过涝越带→解锁技权重/倍率回调呈报禁自动调;**2026-10-06 联审批注:判读带立单于案C 行为换代前,执行前须按案C 新行为复核「半血后」窗口与密度分母是否仍有效,失权即停机呈报重立带**)→ ~~T19 真人标定局~~(⑤已收口)→ 真人侧读数换 81000 锚补算 k 终值(随迭代 9 出口重锚批出,模拟锚 2026-09-19 判读报告的现行锚地位由 81000 锚+真人两局承接)。工具面:`analyze_playtest.py` / `balance_verifier.py` 冒险段 / JSONL 日志现役。
|
||||
**现行义务**:**T7 技能池节奏重测(2026-10-05 技能池执行批挂单)**——≥50 distinct seeds 节奏重测(过涝判读带=Boss 半血后特殊技密度上探;跑批须用户批准;S2 过涝越带→解锁技权重/倍率回调呈报禁自动调;**2026-10-06 联审批注:判读带立单于案C 行为换代前,执行前须按案C 新行为复核「半血后」窗口与密度分母是否仍有效,失权即停机呈报重立带**)→ ~~T19 真人标定局~~(⑤已完成)→ 真人侧读数换 81000 锚补算 k 终值(随迭代 9 出口重锚批出,模拟锚 2026-09-19 判读报告的现行锚地位由 81000 锚+真人两局承接)。工具面:`analyze_playtest.py` / `balance_verifier.py` 冒险段 / JSONL 日志现役。
|
||||
|
||||
**后续内容批义务(2026-10-06 敌人表行集多行批 P3 丙二裁挂单)**:首个混编遭遇行投放(连同 Boss 多行内容,敌种候选与坐标由内容批裁)——投时 MC 取证先报批(数值验证场景二档起)、难度带读数义务随投登记、首遇教学位纪律与 expect_pools 断言面逐项复核(巨蜘蛛首遇位「固定 2 不加骰」等表注释为准)、Boss 多行投放时 Boss 名取首行显示/Boss 遭遇骰读首行区间/半血解锁/独占技/难度带六面读数逐项过。——**已编入 roadmap 迭代 18 卡⑤混编遭遇首批投放批(2026-10-06 用户令;读数义务维持随批登记,MC 取证跑批顺延迭代 18 卡⑥ M4 收官批统一执行〔数值统一调整殿后〕)**
|
||||
**后续内容批义务(2026-10-06 敌人表行集多行批 P3 丙二裁挂单)**:首个混编遭遇行投放(连同 Boss 多行内容,敌种候选与坐标由内容批裁)——投时 MC 取证先报批(数值验证场景二档起)、难度带读数义务随投登记、首遇教学位纪律与 expect_pools 断言面逐项复核(巨蜘蛛首遇位「固定 2 不加骰」等表注释为准)、Boss 多行投放时 Boss 名取首行显示/Boss 遭遇骰逐行区间骰〔每行各掷自己区间——2026-10-07 卡① Q8 逐行骰换代,旧「读首行区间」口径消解〕/半血解锁/独占技/难度带六面读数逐项过。——**已编入 roadmap 迭代 18 卡⑤混编遭遇首批投放批(2026-10-06 用户令;读数义务维持顺带登记,MC 取证跑批顺延 Alpha 收官 M4 数值批统一执行〔未排期,届时另令——数值统一调整殿后〕)。进展:首批已于 2026-10-07 落表((2,5) 双行,目检与读数义务见 ⑱);剩余面 = Boss 多行第二批(六面读数随投逐项过)**
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v0.1 | 2026-10-09 | 补登:文档正确性审查批改动①——⑬节「迷雾联动信号」行魔法提灯观测点加退役注(「魔法提灯 +2——已裁退役 2026-10-09,拆线批入库后本信号面失效」);本文件当时无版本表,本行系卫生批补登 |
|
||||
| v0.2 | 2026-10-09 | 补登:文档正确性审查批改动②——⑰节「结论回流」行裸「M-4」改「Beta 阶段(未排期)」(强度体感归 Beta 阶段带判读);同上系卫生批补登 |
|
||||
| v0.3 | 2026-10-09 | 版本历史表补建——本文件此前无版本表(2026-10-09 审查批呈报在案),本卫生批补建本表并补登上两行 |
|
||||
| v0.4 | 2026-10-09 | **文档正确性审查批·独立复核(worktree docaudit-2026-10-09)**:①三处「链接语法但目标非路径」伪死链去链接改纯文本(numfix 报告/迭代10通关率读数/T19真人试玩读数——三份读数均已退役,git 历史可查口径不变);②「难度修正批」批次名全替「数值批(Beta 阶段,未排期)」——与 06 现行归属称呼对齐(同批=M4 数值批需求卡片,未排期态不变) |
|
||||
| v0.5 | 2026-10-10 | 生涯页呈现行柜台名扫改(2026-10-10 天赋树设计会话裁「道具工坊」改名「秘宝匣」):「道具工坊已解锁 X/6 件」改「秘宝匣已解锁 X/6 件」;计数语义(旧六件→新目录)随实装批换代,见 06「天赋树结构重构批」改名连带面 |
|
||||
| v0.6 | 2026-10-12 | 新增 ㉒ 锻造工坊工作间形态与购买交互目检节(迭代 23 锻造工坊实装批随批登记——V13 人闸观测项:门与形态/购买/解锁双通道/选中与锁死/注入抽查) |
|
||||
| v0.7 | 2026-10-13 | 新增 ㉓ 敌人表内容修批三观测目检节(迭代 24 卡①随批登记:新招可见性/甲型体感/第一关节奏——登记不阻塞按 2026-10-12 真人检测立规) |
|
||||
| v0.8 | 2026-10-13 | 新增 ㉔ UI 全局主题批全屏巡检目检节(迭代 25 卡①随批登记:引擎默认灰清零巡检/音量滑轨两段可辨/专项观察点二(滑轨柄抢焦点·滚动条槽可见性)/预盖件无实役注记——登记不阻塞;能力验证半=冒烟 V1-V6) |
|
||||
| v0.9 | 2026-10-14 | 新增 ㉕ UI 交互与观感批逐屏巡检目检节(迭代 26 卡①随批登记:按钮五态反馈/键盘焦点环/全局 Nearest 巡检(含暗角与渐变白名单判据)/布局均衡(商店居中+营地四栏等高)/诊断钮清零——登记不阻塞;能力验证半=冒烟 V1-V6+T4 结构断言) |
|
||||
| v1.0 | 2026-10-14 | **qa 收尾批·人闸核销(用户 2026-10-14 回报实机目检全部完成)**:⑮真人半、⑳、㉑、㉒、㉓、㉔、㉕ 七节逐节加「✅ 已核销(2026-10-14)」注记——用户目检回报完成、未呈报问题;iter19 acceptance-package 存活八项与 iter20 五件(行为变化速览节)同批核销;迭代 18 清单 18 项同批核销。注:⑯⑰⑱⑲ 等早期人闸节此前已随各批核销或归 07 独立跟踪,本条不涉及 |
|
||||
| v1.1 | 2026-10-14 | 新增 ㉖ 代码架构技术债修复批全流程走查目检节(迭代 27 卡①随批登记:全流程观感零变化走查/续玩断点恢复/调试浮窗对局中可开不锁棋盘〔:407-408 事故回归〕/刷新余量显示一致/DS_DEBUG 启动浮窗+两屏角标——登记不阻塞;能力验证半=冒烟 V1-V9+parity 三变体逐位一致对拍五跑全同) |
|
||||
| v1.2 | 2026-10-15 | **冲突标记清理解(迭代 28 随批)**——本文件 v1.0/v1.1 两行处残留 `<<<<<<<`/`=======`/`>>>>>>>` 合并冲突标记(迭代 27 分支 iter27-techdebt-20261014 合并进 master 时漏解,两侧均有效故全留:qa 收尾批人闸核销行 + ㉖ 目检节登记行与正文节);清理后两行内容照旧,仅版本号顺延。同批新增 ㉗ 启动态菜单目检节(迭代 28 卡①随批登记) |
|
||||
| v1.3 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 35 处(随批→顺带 25、收口→完成/合并进 master 5、台账→状态记录 1、销号→注销 2、报错→返回错误 1、对拍→与基线数据逐项比对 1;均系正文现役文本,版本历史既有行按豁免不动)+失同步修复 0 处 |
|
||||
| v1.4 | 2026-10-17 | ㉖① 机检承接注记(迭代 29 GDD 反哺点经用户逐条裁决写入):屏壳切换正确性已由 `screen_flow_probe` 机检承接(入轻闸必跑段);该项**保留不注销**——承载机器抓不到的观感半(演出时序/文案/布局逐屏零漂移) |
|
||||
|
||||
|
||||
## ㉖ 代码架构技术债修复批——全流程走查(迭代 27 卡①顺带登记;能力验证半=冒烟 V1-V9+parity 三变体逐位一致、与基线数据逐项比对五跑全同)
|
||||
|
||||
> 场景拆分+会话物化+战斗域重构+账本完成+模态协议内聚后,玩家可见面唯一验收=观感零变化。登记不阻塞(2026-10-12 真人检测立规)。
|
||||
>
|
||||
> **机检承接注记(2026-10-17 用户裁,迭代 29 反哺点③)**:屏壳切换正确性半(六步主流程+两条回退+屏级互斥)已转机检 `screen_flow_probe` 入轻闸必跑段;第 1 项保留——其承载的是机检抓不到的观感半(逐屏演出时序/文案/布局零漂移)。
|
||||
|
||||
| # | 目检项 | 判据 |
|
||||
|---|---|---|
|
||||
| 1 | 全流程走查 | 开始菜单→营地四柜台→开新冒险→选路→战斗(挖/旗/刷新/停手)→三选一→商店→Boss→终局——逐屏观感与重构前一致(演出时序/文案/布局零漂移) |
|
||||
| 2 | 续玩断点恢复 | 停点退出→「继续上局」文案与恢复落点正确(run-scope 物化后断点链回归) |
|
||||
| 3 | 调试浮窗对局中可开不锁棋盘 | 对局中开浮窗→棋盘可继续操作(:407-408 永久锁死事故回归——互斥域 tags 化后钉面) |
|
||||
| 4 | 刷新余量显示 | 刷新受理后 HUD 余量递减且与受理次数一致(双账删副本后 HUD 单源读快照) |
|
||||
| 5 | DS_DEBUG=1 启动 | 浮窗启动即开+两屏角标点亮可点(同步面随 ModalFlow 迁移后行为钉面) |
|
||||
|
||||
---
|
||||
|
||||
## ㉗ 启动装配与生命周期验收补全批——启动态菜单目检(迭代 28 卡①顺带登记;能力验证半=冒烟 V1a-d/V2a-f/V3a-i+启动态菜单 golden 逐像素)
|
||||
|
||||
> 装配顺序修复(冒险屏先挂、菜单屏后挂)后,**启动即见的那一屏**是本批唯一玩家可见行为变更。自动化闸只能证明「顶层是谁」与「逐像素未变」,真机上「看着对不对、点不点得动」仍需人眼。登记不阻塞(2026-10-12 真人检测立规)。
|
||||
|
||||
| # | 目检项 | 判据 |
|
||||
|---|---|---|
|
||||
| 1 | 启动即见主菜单 | F5 启动后第一屏是主菜单(标题「Dungeon Sweeper」+开始/继续上局/营地/生涯/设置/退出六钮),**不再**是战斗界面/棋盘背景 |
|
||||
| 2 | 菜单按钮可点 | 六钮逐个点:鼠标悬停有反馈、点击有响应(继续上局在无断点时不显示——有断点时显示且文案带关卡号) |
|
||||
| 3 | 菜单与战斗互不遮挡 | 开新冒险后菜单让位、战斗界面完整可见;回菜单后战斗内容不再透出(模态互斥观感与改前一致) |
|
||||
| 4 | 各覆盖层开合层级正确 | 图鉴/关卡地图/奇物/终局/商店/营地/设置/状态/生涯/确认框/调试浮窗逐个开合——浮层都在内容之上,调试浮窗浮于菜单之上且不吃下层点击 |
|
||||
| 5 | 音量与减动效启动即生效 | 改设置退出重进:音量/减动效保持上次值(boot 链路后置条件的人眼侧) |
|
||||
@@ -0,0 +1,228 @@
|
||||
# Alpha 版本标准
|
||||
|
||||
> **一句话定位**:本文定义这个项目的 **Alpha 版本包含哪些东西**——它是里程碑 M3 的完成标准,也是判断"还差什么"的对照表。
|
||||
> **本文只列条目,不写内容**:每样东西是什么、规则怎么走,一律归各自的权威文档,本文只给指路链接。想知道某样东西的定义,请点链接,不要在本文里找解释。
|
||||
> **状态**:**已定稿(v1.8)**——2026-10-13 用户令定稿(v1.0),同日升版 v1.1(界面美化八条)与 v1.2(敌种池行注摘除);v1.3/v1.4 为迭代 25/26 完成回填;v1.5 简明技术中文用语规范批;v1.6 状态刷新批(锻造工坊在役回填 + 数值统一标定按 2026-10-09 里程碑立规结案归 Beta);v1.7 状态刷新批(立绘方向随 2026-10-14 用户裁结案 + 样张/棋盘观感编入迭代 30 注记 + 贫矿脉屏蔽注记);v1.8 playnote 二轮对照批(状态面板行名随改名批换代 + 瘦身义务入册〔2026-10-16 用户令〕)。Alpha 的内容范围自此冻结:增删条目一律须经用户裁决,并记入文末版本历史。
|
||||
> **成文**:2026-10-13。
|
||||
|
||||
## 本文怎么用
|
||||
|
||||
- 想知道 Alpha 该有什么 → 读下面各节的表。
|
||||
- 想知道还差什么 → 看每个表的「现状」列。
|
||||
- 想知道哪些还没定 → 读最后一节「未决项」。
|
||||
- **Alpha 完成的判据**:本文所有条目的现状都是「在役」,且「未决项」一节为空。
|
||||
|
||||
现状一列的取值只有四种:**在役**(已实装可玩)、**部分在役**(条目拆半:已实装部分与未结部分在同一格并注,注内写明两半)、**待做**(已定要进 Alpha、尚未实装)、**待裁**(要不要进 Alpha 还没定,见「未决项」)。
|
||||
|
||||
---
|
||||
|
||||
## 一、系统
|
||||
|
||||
四个循环下的全部子系统。分界与职责见 [02-系统清单](02-系统清单.md),本文不重复。
|
||||
|
||||
### 排雷循环
|
||||
|
||||
| 条目 | 事实源 | 现状 |
|
||||
|---|---|---|
|
||||
| 棋盘生成 | [棋盘生成](systems/排雷循环/棋盘生成.md) | 在役 |
|
||||
| 排雷玩法 | [排雷玩法](systems/排雷循环/排雷玩法.md) | 在役 |
|
||||
| 行动经济 | [行动经济](systems/排雷循环/行动经济.md) | 在役 |
|
||||
| 地形变异(六类型) | [地形变异](systems/排雷循环/地形变异.md) | 在役(2026-10-16 贫矿脉整图型屏蔽删行,variation.tres 回 region 六行;机制代码保留,重建设计加行即恢复;设计语义面反哺待裁) |
|
||||
|
||||
### 战斗循环
|
||||
|
||||
| 条目 | 事实源 | 现状 |
|
||||
|---|---|---|
|
||||
| 战斗结算 | [战斗结算](systems/战斗循环/战斗结算.md) | 在役 |
|
||||
| 敌人系统 | [敌人系统](systems/战斗循环/敌人系统.md) | 在役 |
|
||||
| 增益状态 | [增益状态](systems/战斗循环/增益状态.md) | 在役 |
|
||||
| 地图战斗资源(格面资源) | [地图战斗资源](systems/战斗循环/地图战斗资源.md) | 在役 |
|
||||
| 战斗表现(动画与演出) | [战斗表现](systems/战斗循环/战斗表现.md) | 待裁 |
|
||||
|
||||
### 冒险循环
|
||||
|
||||
| 条目 | 事实源 | 现状 |
|
||||
|---|---|---|
|
||||
| 冒险结构 | [冒险结构](systems/冒险循环/冒险结构.md) | 在役 |
|
||||
| 关卡节点地图 | [关卡节点地图](systems/冒险循环/关卡节点地图.md) | 在役(待重构,见下一条) |
|
||||
| 关卡节点图重构(增加可选节点) | [关卡节点地图](systems/冒险循环/关卡节点地图.md) | 待做(须先做文档设计,不可直接开发) |
|
||||
| 关卡节点图生成 | [关卡节点图生成](systems/冒险循环/关卡节点图生成.md) | 在役 |
|
||||
| 难度曲线与 Boss | [难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md) | 在役 |
|
||||
| 奇物 | [奇物](systems/冒险循环/奇物.md) | 在役 |
|
||||
|
||||
### 跨局循环
|
||||
|
||||
| 条目 | 事实源 | 现状 |
|
||||
|---|---|---|
|
||||
| 元进度 | [元进度](systems/跨局循环/元进度.md) | 在役 |
|
||||
| 天赋树 | [天赋树](systems/跨局循环/天赋树.md) | 在役 |
|
||||
| 秘宝 | [秘宝](systems/跨局循环/秘宝.md) | 在役 |
|
||||
| 锻造工坊 | [锻造工坊](systems/跨局循环/锻造工坊.md) | 在役(实装批 2026-10-12 入库;满级特效按 2026-10-12 裁 6 留扩展位、本期不做,不碍在役判定) |
|
||||
| 生涯 | [生涯](systems/跨局循环/生涯.md) | 在役(期一;期二、期三待裁) |
|
||||
|
||||
### 表现与支撑
|
||||
|
||||
| 条目 | 事实源 | 现状 |
|
||||
|---|---|---|
|
||||
| HUD 框架 | [HUD框架](systems/表现与支撑/HUD框架.md) | 在役 |
|
||||
| 数据配置 | [数据配置](systems/表现与支撑/数据配置.md) | 在役 |
|
||||
| 存档序列化 | [存档序列化](systems/表现与支撑/存档序列化.md) | 在役 |
|
||||
| 设置 | [设置与本地化](systems/表现与支撑/设置与本地化.md) | 在役(最小设置面) |
|
||||
|
||||
---
|
||||
|
||||
## 二、内容量
|
||||
|
||||
具体种数、行数与面值一律不在此抄录,以数据表与 registry 为准(体例见 [03-内容规模](03-内容规模.md))。
|
||||
|
||||
| 条目 | 事实源 | 现状 |
|
||||
|---|---|---|
|
||||
| 三关(地精洞窟 / 幽暗地域 / 灰矮人矿城) | `level.tres` | 在役 |
|
||||
| 敌种池(含三个 Boss) | `enemy.tres` | 在役 |
|
||||
| 敌人技能池 | `skills.tres` | 在役 |
|
||||
| 棋盘按关配置尺寸 | `board_gen.tres` | 在役 |
|
||||
| 地形变异六类型 | `variation.tres` | 在役(2026-10-16 贫矿脉屏蔽删行后表为 region 六行) |
|
||||
| 格面资源九型 × 正负 | `reward.tres` | 在役 |
|
||||
| 状态表 | `status_effects.tres` | 在役 |
|
||||
| 奇物池(专长 / 属性值提升 / 资源) | `feats.tres`、`adventure.tres` | 在役 |
|
||||
| 秘宝目录 | `treasure_items.tres` | 在役 |
|
||||
| 商店配置 | `shop.tres` | 在役 |
|
||||
| 元进度配置 | `meta.tres` | 在役 |
|
||||
| 天赋树节点集 | `meta_tree.tres` | 在役 |
|
||||
| 锻造工坊路线行族 | `forge.tres` | 在役(定价 provisional 归 M4;表名订正与入库依据见版本历史 v1.6) |
|
||||
| 混编遭遇行集 | `enemy.tres` | 在役(首批;第二批待做) |
|
||||
| 第四关 | —— | 待裁 |
|
||||
|
||||
---
|
||||
|
||||
## 三、界面
|
||||
|
||||
| 条目 | 事实源 | 现状 |
|
||||
|---|---|---|
|
||||
| 主菜单 | —— | 在役 |
|
||||
| 开始覆盖层 | —— | 在役 |
|
||||
| 营地(天赋树 / 锻造工坊 / 秘宝匣 / 图鉴) | [camp](ux/camp.md) | 在役(锻造柜台占位面板注已解除,见版本历史 v1.6;柜台贴图占位归「五 · 表现」UI 贴图重构批行) |
|
||||
| 生涯页 | [生涯](systems/跨局循环/生涯.md) | 在役(期一) |
|
||||
| 关卡地图屏 | [level-map](ux/level-map.md) | 在役 |
|
||||
| 战斗屏 | [battle](ux/battle.md) | 在役 |
|
||||
| 战斗结算总结框 | [settlement-summary](ux/settlement-summary.md) | 在役 |
|
||||
| 关卡结算屏 | [level-clear](ux/level-clear.md) | 在役 |
|
||||
| 三选一(奖励节点 / 通关) | [node-reward](ux/node-reward.md) | 在役 |
|
||||
| 商店 | [shop](ux/shop.md) | 在役 |
|
||||
| 状态面板(局内) | [06-待办清单](06-待办清单.md) | 部分在役(在役半=面板本体——迭代 17 卡③实装、2026-10-13 由「暂停层」改名;未结半=2026-10-16 用户令瘦身——去跨关解锁内容〔秘宝匣解锁态 12 行概览 / 天赋树已购概览〕、只留本局五件〔带的秘宝 / 已获专长 / 当前属性 / 现有 GP / 钥石总量〕;登记面=06「状态面板瘦身」专条) |
|
||||
| 冒险终局面板 | —— | 在役 |
|
||||
| 图例面板 | —— | 在役 |
|
||||
| 设置面 | [设置与本地化](systems/表现与支撑/设置与本地化.md) | 在役 |
|
||||
| 调试浮窗 | —— | 在役 |
|
||||
| UI 全局主题资源(引擎原生控件接管皮肤) | —— | 在役(迭代 25 · 2026-10-13 入库:game/assets/theme/main_theme.tres 挂 gui/theme/custom) |
|
||||
| UI 按钮状态矩阵(悬停 / 按下 / 禁用 / 键盘焦点补齐) | [06-待办清单](06-待办清单.md) | 在役(迭代 26 入库:五态矩阵逐实例 override 补齐——悬停 modulate 提亮/禁用 α0.45 幽灵化/焦点 INK 2px 内缩 1px 环/危险钮本族按压态;键盘导航批量面归 Beta「棋盘战斗键盘/手柄输入」条连带点③) |
|
||||
|
||||
---
|
||||
|
||||
## 四、工程与质量
|
||||
|
||||
| 条目 | 事实源 | 现状 |
|
||||
|---|---|---|
|
||||
| 存档与版本迁移 | [存档序列化](systems/表现与支撑/存档序列化.md) | 在役 |
|
||||
| 冒险中断续玩断点 | [存档序列化](systems/表现与支撑/存档序列化.md) | 在役 |
|
||||
| 冒烟套件 | `game/tests/` | 在役 |
|
||||
| 单元测试套件 | `game/tests/` | 在役 |
|
||||
| 界面探针 | `tools/probe_gate.sh` | 在役 |
|
||||
| 渲染闸(截图与黄金图比对) | `tools/render_gate.sh` | 在役 |
|
||||
| 机器可读的呈现断言(对比度 / 结构) | `game/tests/` | 在役 |
|
||||
| 分辨率两档(1280×800 / 1920×1080) | [HUD框架](systems/表现与支撑/HUD框架.md) | 在役 |
|
||||
| 绘制调用数达标 | —— | 在役 |
|
||||
| 真人试玩轮次 | [07-体验验证清单](07-体验验证清单.md) | 在役(义务维持;当前轮次未清) |
|
||||
|
||||
---
|
||||
|
||||
## 五、表现
|
||||
|
||||
| 条目 | 事实源 | 现状 |
|
||||
|---|---|---|
|
||||
| 像素美术风格与色板 | [美术圣经](../art/art-bible.md) | 在役 |
|
||||
| 棋盘瓦片与格面资源图标 | [美术圣经](../art/art-bible.md) | 在役 |
|
||||
| 棋盘观感(第二 / 三关亮度与对比度) | [06-待办清单](06-待办清单.md) | 待做(2026-10-16 用户令编入迭代 30,序位③) |
|
||||
| 立绘清晰度回退评估(是否改用高清图) | [角色设计](../art/character-design.md) | 待做(评估已结——2026-10-14 用户裁维持像素风、升级精细手绘像素、不回退高清图,裁决录=[美术审计-cursor会话存档](../art/美术审计-cursor会话存档-2026-10-14.md) §2.2;余=立绘按新口径重产+大小比例子题用户复核) |
|
||||
| 敌人立绘(全敌种) | [角色设计](../art/character-design.md) | 在役 |
|
||||
| 主角立绘三态 | [角色设计](../art/character-design.md) | 在役 |
|
||||
| 状态图标 | [美术圣经](../art/art-bible.md) | 在役 |
|
||||
| 战斗演出链(弹道 / 受击 / 血条 / 灰化) | [战斗表现](systems/战斗循环/战斗表现.md) | 在役 |
|
||||
| 逐行结算排播 | [settlement-summary](ux/settlement-summary.md) | 在役 |
|
||||
| 减动效开关 | [设置与本地化](systems/表现与支撑/设置与本地化.md) | 在役 |
|
||||
| 站桩帧动画 | [06-待办清单](06-待办清单.md) | 待裁 |
|
||||
| 素材升档重产 | [06-待办清单](06-待办清单.md) | 待裁 |
|
||||
| 全局纹理过滤设为邻近采样 | [06-待办清单](06-待办清单.md) | 在役(迭代 26 · 2026-10-14 入库:default_texture_filter=0+平滑渐变件三处显式 LINEAR 白名单,翻转面全枚举闭合) |
|
||||
| UI 贴图重构批(营地与元进度件出终稿) | [美术资产清单](../art/art-assets-checklist.md) | 待做 |
|
||||
| UI 字体补完(拉丁像素字专件 + 字重两档) | [美术圣经](../art/art-bible.md) §7.4 | 待做 |
|
||||
| 战斗一屏样张(界面美术的终稿闸) | [美术圣经](../art/art-bible.md) §1.4 | 待做(2026-10-16 用户令编入迭代 30,序位②) |
|
||||
| UI 氛围层与九宫格切片观感修 | [06-待办清单](06-待办清单.md) | 部分在役(迭代 26 · 2026-10-14:光柱硬边半已修=连续 alpha 渐变;九宫格切片错位半未结——待素材尺寸核对,属美术线连带面) |
|
||||
| UI 元素细节修(滑轨填充 / 图标垫块 / 留白 / 开发件外泄) | [06-待办清单](06-待办清单.md) | 在役(迭代 26 · 2026-10-14 入库:①滑轨填充随迭代 25 注销;余②图标垫块明度差降档/③商店+营地布局修/④诊断钮迁调试浮窗 全落地) |
|
||||
|
||||
---
|
||||
|
||||
## 六、Alpha 不含
|
||||
|
||||
下面这些明确不进 Alpha,写在这里防止回潮。逐条的理由见 [05-不做清单](05-不做清单.md) 与 [06-待办清单](06-待办清单.md)。
|
||||
|
||||
**与游戏内容无关的三项**(2026-10-13 用户裁:一律排 Beta)——它们不影响核心循环是否成立,缺了照样能联调、能通关,属打磨层:
|
||||
|
||||
| 条目 | 理由出处 |
|
||||
|---|---|
|
||||
| 音频(音乐与音效) | 排 Beta(用户 2026-10-13 裁:与游戏内容无关);现行零音频资源、零播放代码 |
|
||||
| 教学引导(含教学引导面) | 排 Beta([06-待办清单](06-待办清单.md) 教学引导节,2026-10-04 用户裁改排 Beta;2026-10-13 再确认) |
|
||||
| 多语言本地化 | 排 Beta(用户 2026-10-13 裁:与游戏内容无关);Alpha 只做最小设置面,不做多语言 |
|
||||
|
||||
**其余不进 Alpha 项**:
|
||||
|
||||
| 条目 | 理由出处 |
|
||||
|---|---|
|
||||
| 雾格 / 战争迷雾类机制 | [05-不做清单](05-不做清单.md) |
|
||||
| 多人 / 在线要素 | [05-不做清单](05-不做清单.md) |
|
||||
| 重叙事(长篇文本与剧情演出) | [05-不做清单](05-不做清单.md) |
|
||||
| 即时操作玩法 | [05-不做清单](05-不做清单.md) |
|
||||
| chord(双击快开) | [05-不做清单](05-不做清单.md) |
|
||||
| 旗做成背包道具或限量 | [05-不做清单](05-不做清单.md) |
|
||||
| 抽象货币 / 中间资源折算 | [05-不做清单](05-不做清单.md) |
|
||||
| 多波战斗 | [05-不做清单](05-不做清单.md) |
|
||||
| 遗物式构筑协同 | [05-不做清单](05-不做清单.md) |
|
||||
| 战后自动回复 | [05-不做清单](05-不做清单.md) |
|
||||
| 反雪球机制 | [05-不做清单](05-不做清单.md) |
|
||||
| 键盘 / 手柄输入 | [06-待办清单](06-待办清单.md)(排期归 Beta) |
|
||||
| 数值统一标定(M4 数值批) | 2026-10-09 里程碑立规:M4 = Beta 阶段、M3 未由用户明令关闭前不排期(用户 2026-10-07 令移出迭代 18;2026-10-16 确认此裁长期有效)——06 各条「已编入 Alpha 收官 M4」措辞系旧口径残留 |
|
||||
| 连刷 / 换图资金跨战斗携带 | [05-不做清单](05-不做清单.md) |
|
||||
| 战斗节点地图类型差异化(更多地图主题) | 排 Beta 版本([playnote](../research/playnote.md),2026-10-13 裁) |
|
||||
|
||||
---
|
||||
|
||||
## 七、未决项
|
||||
|
||||
下面这些**要不要进 Alpha 还没定**,按上面的表逐条对应。每一项都需要用户裁定「进 / 不进 / 换成什么」,裁定后填回对应表格的现状列,本节的该行随即删除。
|
||||
|
||||
| # | 未决项 | 出现在 |
|
||||
|---|---|---|
|
||||
| 1 | 战斗表现(动画与演出)算不算已经达标 | 一 · 战斗循环 |
|
||||
| 2 | 生涯页期二(历史冒险回看)与期三(图鉴承接)进不进 Alpha | 一 · 跨局循环 |
|
||||
| 3 | 第四关进不进 Alpha | 二 · 内容量 |
|
||||
| 4 | 混编遭遇第二批(Boss 多行)进不进 Alpha | 二 · 内容量 |
|
||||
| 5 | 站桩帧动画进不进 Alpha | 五 · 表现 |
|
||||
| 6 | 素材升档重产进不进 Alpha | 五 · 表现 |
|
||||
|
||||
---
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v0.1 | 2026-10-13 | 首版成文:立 Alpha 版本的内容清单(系统 / 内容量 / 界面 / 工程与质量 / 表现五节 + 不含清单 + 未决项十项)。本文只列条目不写内容,定义一律指路各权威文档 |
|
||||
| v0.2 | 2026-10-13 | **playnote 五条想法的归属裁定随批**(用户逐条裁):①「关卡节点图展示优化」经用户定性为**重构**(可选节点太少)→ 冒险循环表新增「关卡节点图重构(增加可选节点)」行,标**待做(须先做文档设计,不可直接开发)**,同步登记 06 待办;②「第二 / 三关棋盘亮度对比度」→ 表现表新增「棋盘观感」行,标待做(用户确认标准里已覆盖,此行是把它显式化);③「立绘改回高清图」→ 表现表新增「立绘清晰度回退评估」行,标待裁(与现行像素风定档存在方向冲突,入未决项);④「战斗节点地图类型差异化(更多地图主题)」→ 用户裁**排 Beta**,移入「六 · Alpha 不含」节。未决项十项增为十一项 |
|
||||
| v0.3 | 2026-10-13 | **五条全部登记 06 待办并标注阶段归属(用户令)**:P1 关卡节点图重构标「Alpha 阶段需完成 · 设计讨论先行」;P2 棋盘观感标「Alpha 阶段需完成 · 开工前过素材轴/UI 轴定性人闸」;P3 第一关遭遇表数值异常标「Alpha 阶段需完成 · 修复方式待裁(甲即时修/乙归 M4/丙先排查)」,本表敌种池行随带待修注;P4 立绘清晰度回退评估标「Alpha 阶段需完成 · 方向待裁」,拆出已兑现的大小比例子问题与未决的回退高清子问题;P5 战斗节点地图类型差异化标「Beta 阶段,Alpha 不做」 |
|
||||
| v1.0 | 2026-10-13 | **定稿(用户令)**:① **与游戏内容无关的三项移出 Alpha**——音频 / 教学引导(含教学引导面)/ 多语言本地化一律排 Beta,自「一 · 表现与支撑」「三 · 界面」「五 · 表现」三表摘除,移入「六 · Alpha 不含」并单列为一组;判据 = 缺了照样能联调、能通关,属打磨层;② 未决项十一项减为**八项**(删音频 / 教学引导 / 本地化三条,余项重编号);③ 文首加状态行 = **已定稿**,Alpha 内容范围自此冻结,增删须经用户裁决并记版本历史 |
|
||||
| v1.1 | 2026-10-13 | **界面美化三层诊断入 Alpha 标准(用户令)**:用户同日提出界面美化需求并要求先作现状分析,随后下令「把分析出的三层全部作为独立待办事项登记、且一律列为 Alpha 阶段必须完成」。据此新增八行——「三 · 界面」表两行(UI 全局主题资源、UI 按钮状态矩阵),「五 · 表现」表六行(全局纹理过滤、UI 贴图重构批、UI 字体补完、战斗一屏样张、UI 氛围层与九宫格切片观感修、UI 元素细节修)。八行的登记事实源统一为 [06-待办清单](06-待办清单.md) 同批新增的八条专条;其中「UI 贴图重构批」「UI 字体补完」「战斗一屏样张」三条原先只登记在美术侧的资产清单与素材状态清单里,本次转立本清单以免两处各写一份内容。用户同时指定**先动第一层**,即主题资源 / 按钮状态矩阵 / 全局纹理过滤三项(均属纯工程补齐、不依赖美术素材)。本次改动未触碰既有的未决项八项与「六 · Alpha 不含」清单 |
|
||||
| v1.2 | 2026-10-13 | **敌种池行注摘除(迭代 24 卡①机械面随批)**:「二 · 内容量」敌种池行的「第一关遭遇表数值待修」注摘除——该异常已随迭代 24 N1 修复((1,2) 降档 hp 22/ac 2,06 对应条已销号),本行回归「在役」净态;条目集合零增删,未决项与「六 · Alpha 不含」零触碰 |
|
||||
| v1.3 | 2026-10-13 | **UI 全局主题批收口回填(迭代 25 卡①机械面随批)**:「三 · 界面」表「UI 全局主题资源(引擎原生控件接管皮肤)」行 待做→在役(主题资源已入库:game/assets/theme/main_theme.tres 挂 project.godot gui/theme/custom,06 对应条销号);「五 · 表现」表「UI 元素细节修」行状态注记①销号(滑轨两段难辨已随主题批重配=已填充段 BG_ROOT 对暖石 ≈5.5:1,余②③④保留)。「五 · 表现」表余零改动——逐行核对六条 06 指向行中仅「UI 元素细节修」事实变化,其余(棋盘观感/站桩帧动画/素材升档重产/全局纹理过滤/UI 氛围层)本批零触碰;条目集合零增删,未决项与「六 · Alpha 不含」零触碰 |
|
||||
| v1.4 | 2026-10-14 | **UI 交互与观感批收口回填(迭代 26 卡①机械面随批)**:「三 · 界面」表「UI 按钮状态矩阵」行 待做→在役(五态矩阵补齐);「五 · 表现」表三行——「全局纹理过滤设为邻近采样」待做→在役、「UI 氛围层与九宫格切片观感修」待做→部分在役(光柱半已修,九宫格半未结注明)、「UI 元素细节修」待做(余②③④)→在役(②③④全落地);06 对应四条销号或改写+反哺点四条新条登记(待用户裁决另批落文);条目集合零增删,未决项与「六 · Alpha 不含」零触碰 |
|
||||
| v1.5 | 2026-10-15 | 简明技术中文用语规范(用户令):文头状态行换代 v1.2→v1.4(v1.3/v1.4 两批漏更);「现状」取值枚举三种改四种(补「部分在役」定义,与「五 · 表现」九宫格切片行既有状态对齐)。条目集合零增删,未决项与「六 · Alpha 不含」零触碰 |
|
||||
| v1.6 | 2026-10-16 | **状态刷新批(用户令)**:① 「一 · 跨局循环」锻造工坊行 待做→在役(实装批 2026-10-12 入库,06 载明;满级特效按裁 6 留扩展位不影响判定);② 「二 · 内容量」锻造路线行族事实源订正 `meta_forge.tres`→`forge.tres` 并转在役;③ 「三 · 界面」营地行锻造柜台注 占位面板→工作间实形态(目检 07 ㉒ 已核销;柜台贴图占位归表现表贴图批行)——以上三行为 v1.0 定稿时失实残留;④ 「四 · 工程与质量」数值统一标定行撤销(待裁→归「六 · Alpha 不含」,依据=2026-10-09 里程碑立规 M4=Beta 且用户 2026-10-16 重申),未决项八项减为七项重编号;⑤ 文头状态行 v1.4→v1.6(v1.5 漏更)。除④外条目集合零增删 |
|
||||
| v1.7 | 2026-10-16 | **状态刷新批(用户令)**:① 「五 · 表现」立绘清晰度回退评估行 待裁→待做(方向已裁——2026-10-14 用户裁维持像素风、升级精细手绘像素、不回退高清图,裁决录=美术审计-cursor会话存档 §2.2;余下义务=立绘按新口径重产与大小比例人闸复核),「七 · 未决项」七项减为六项重编号;② 「五 · 表现」战斗一屏样张、棋盘观感两行加编入注记(2026-10-16 用户令编入迭代 30 序位②③,状态维持待做);③ 「一 · 排雷循环」「二 · 内容量」地形变异两行加屏蔽注记(2026-10-16 贫矿脉整图型屏蔽删行,variation.tres 回 region 六行;机制代码保留,重建设计加行即恢复)。除未决项销项外条目集合零增删;连带 06 立绘条子问题二与状态行随裁换代(方向已裁+08 指路改注,权威面 art-bible/character-design 反哺另批) |
|
||||
| v1.8 | 2026-10-16 | **playnote 二轮对照批(用户令立框架:不需要讨论的写进 08 并同步 06、需要讨论的挂 06 待裁)**:① 「三 · 界面」「暂停层」行改名「状态面板(局内)」(随 2026-10-13 暂停层改名批换代——08 行名漏扫)并在役→部分在役(瘦身义务入册:去跨关解锁内容〔秘宝匣解锁态 12 行概览 / 天赋树已购概览〕、只留本局五件〔带的秘宝 / 已获专长 / 当前属性 / 现有 GP / 钥石总量〕——来源=playnote「状态界面不需要有具体的解锁内容」条;同步登记 06「状态面板瘦身」专条);② playnote 余下增量两条不进本表:成长系数节奏语义两读待澄清→06 专条待裁(数值调优义务 v1.6 起不入版本标准);路径长度统计与递增增幅=关卡节点图重构的设计输入→补进 06 既有专条。条目集合零增删(改名不算增删),未决项与「六 · Alpha 不含」零触碰 |
|
||||
@@ -1,8 +1,8 @@
|
||||
# 关卡节点图生成
|
||||
|
||||
> 一句话:单关节点图怎么从固定配置变成逐局随机——图模板池、抽签与实例化
|
||||
> 状态:**v0.5 台阶一已实施**(M-3 迭代 5 T5,2026-09-28 落 master 前挂 worktree m3-iter5-20260928——15 张骨架+node_map 扩签+首次冒险固定脚本+池内全模板校验+MC 分层出数,冒烟 576/0;文档本节规则与实现一致性以本批落地为准,台阶二/三仍后置)
|
||||
> 旧版参考:无(旧体系未单独成文;事项自 2026-09-20 立项,池重生成已落地〔2026-09-29 返工批,二轮目检 15/15 过〕,原 06 条目已收口移除)
|
||||
> 状态:**v0.5 台阶一已实施**(迭代 5 T5,2026-09-28 落 master 前挂 worktree m3-iter5-20260928——15 张骨架+node_map 扩签+首次冒险固定脚本+池内全模板校验+MC 分层出数,冒烟 576/0;文档本节规则与实现一致性以本批落地为准,台阶二/三仍后置)
|
||||
> 旧版参考:无(旧体系未单独成文;事项自 2026-09-20 立项,池重生成已落地〔2026-09-29 返工批,二轮目检 15/15 过〕,原 06 条目已完成移除)
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
模板池挂在关卡表逐关行上:行集从"单一节点集合"扩为"模板池"。**N=1 的池里只有现行那张图,逐局抽签退化回固定图**——这是**回滚档**(本文含义:任何一关把池缩回一张模板,该关行为就与今日固定配置逐位等价的保险形态)。整个设计因此可增量落地:先全关 N=1,再逐关扩池。
|
||||
|
||||
抽签消费主种子派生的统一随机流,走扩签通道新立用途标签 `node_map`(统一流口径已定——[ADR-0007](../../../dev/architecture/adr-0007-rng-single-stream.md) 裁丙落地;标签不参与派生、只进事件日志)。
|
||||
抽签消费主种子派生的统一随机流,走扩签通道新立用途标签 `node_map`(统一流口径已定——2026-09-27 两轮复裁落地;标签不参与派生、只进事件日志)。
|
||||
|
||||
**出度上限与层宽(2026-10-01 用户拍板 T17 目检)**:单节点出边数(出度)**最大为 2**——加载校验第七检(`fanout_violation` 加载致命)。规则连带(数学约束):出度 ≤2 + 入口唯一下,BFS 层宽上限 = **4**(层宽序列上限 1,2,4;2026-09-29 旧规则「层宽上限 5」与出度约束不相容,随本拍板废止)。现行池 = `tools/t17_fanout2_rebuild.py` 按两规则重建(五骨架:宽廊双干〔现行〕/三干中廊/宽廊斜岔/三干宽门/窄廊短支——层宽序列 1-2-4-1-1 / 1-2-3-2-1 / 1-2-2-2-1,最大层宽 4 应用足)。
|
||||
|
||||
@@ -75,11 +75,11 @@
|
||||
→ 关卡节点地图加载行集 → 呈现选路停点(现行流程原样续跑)
|
||||
```
|
||||
|
||||
可复现域沿用既有口径:主种子 + 全局取数计数器(ADR-0007 裁丙统一流;旧表述系并流前口径)(语义权威归[冒险结构](冒险结构.md)「失败重开与主种子」节,本文不复述)。抽签每次消费恰一个带编号的 scope,计数器随既有快照契约入档——[存档序列化](../表现与支撑/存档序列化.md)零新增域。同主种子同操作序列的两局,逐位同一张图。
|
||||
可复现域沿用既有口径:主种子 + 全局取数计数器(2026-09-27 统一流;旧表述系并流前口径)(语义权威归[冒险结构](冒险结构.md)「失败重开与主种子」节,本文不复述)。抽签每次消费恰一个带编号的 scope,计数器随既有快照契约入档——[存档序列化](../表现与支撑/存档序列化.md)零新增域。同主种子同操作序列的两局,逐位同一张图。
|
||||
|
||||
教学位随骨架走:各骨架的"第一场战斗节点"沿用教学位纪律(首遇位固定数量不加骰)——教学位属性是骨架的内容标注,不跟节点编号走(拍板点①裁决后第一关也参与抽签,例外见下节)。
|
||||
|
||||
### 首次冒险的固定脚本(拍板点①裁决落文)
|
||||
### 首次冒险的固定脚本(拍板点①裁决写入文档)
|
||||
|
||||
**人话阶段**:教学关不该第一局就随机——玩家第一次玩,地图必须是设计好的那一张。拍板点①裁决(2026-09-27):**全部关卡都参与抽签,唯独玩家的第一次冒险全程走固定脚本**。这也是参照游戏的通用做法(首次冒险特殊脚本)。
|
||||
|
||||
@@ -101,8 +101,8 @@
|
||||
| 台阶 | 内容 | 前置条件 |
|
||||
|---|---|---|
|
||||
| 一:图模板抽签 | 每关模板池 N≥1,逐局从池中抽一张手工模板实例化 | 测量对账条款先行(见下节);每张新模板按内容纪律配齐数值行 |
|
||||
| 二:骨架固定+属性随机 | 模板拓扑定型,节点类型在**候选槽位**(本文含义:模板给某个可变位列出的允许节点类型集合,实例化时从集合内均匀掷一个——例:某槽位允许{奖励,恢复},掷中哪个就是哪个)内掷定 | 台阶一收口;商店房所在位排除出候选槽位(保必经位) |
|
||||
| 三:全程序生成 | 读参数(深度、分支密度、节点类型配比)直接构造图,构造失败重掷(重掷预算同棋盘生成 max_gen_attempts 纪律) | 台阶二收口;图合法性校验作最终守门 |
|
||||
| 二:骨架固定+属性随机 | 模板拓扑定型,节点类型在**候选槽位**(本文含义:模板给某个可变位列出的允许节点类型集合,实例化时从集合内均匀掷一个——例:某槽位允许{奖励,恢复},掷中哪个就是哪个)内掷定 | 台阶一完成;商店房所在位排除出候选槽位(保必经位) |
|
||||
| 三:全程序生成 | 读参数(深度、分支密度、节点类型配比)直接构造图,构造失败重掷(重掷预算同棋盘生成 max_gen_attempts 纪律) | 台阶二完成;图合法性校验作最终守门 |
|
||||
|
||||
台阶二的随机量入账:候选槽位掷定消费同一条图模板抽签流的后续 scope,计数器域照旧覆盖,可复现性零损失。台阶三的参数取值域届时随本文修订登记,本草案不预设。
|
||||
|
||||
@@ -113,17 +113,17 @@
|
||||
**人话阶段**:2026-09-21 呈报暂缓的三理由之一是"污染 MC 读数"——模拟试玩与数值验证的通关率是按固定图测的,图一随机,读数波动就混进了布局差异。本节是消解条款,三条:
|
||||
|
||||
1. **分层出数**:模拟试玩与数值验证工具的读数按「关卡 × 图模板」分层记录;混合池的整体通关率 = 各模板条件通关率的加权平均(权重 = 抽中概率,均匀池即算术平均)。
|
||||
2. **基线可比**:基线批(对拍、重投)跑固定模板口径——把池临时缩到 N=1(回滚档)或固定抽签 scope,保证新旧基线在同一张图上对话。
|
||||
3. **实施门**:随机量(扩池)上线排在[难度曲线与Boss](难度曲线与Boss.md)曲线调参批收口之后——现行行值 provisional 收带前叠加布局随机,归因会失真;抽签机制本身可先行落地(池保持 N=1 行为零变化,见拍板点③选项 C)。
|
||||
2. **基线可比**:基线批(与基线数据逐项比对、重投)跑固定模板口径——把池临时缩到 N=1(回滚档)或固定抽签 scope,保证新旧基线在同一张图上对话。
|
||||
3. **实施门**:随机量(扩池)上线排在[难度曲线与Boss](难度曲线与Boss.md)曲线调参批完成之后——现行行值 provisional 收带前叠加布局随机,归因会失真;抽签机制本身可先行落地(池保持 N=1 行为零变化,见拍板点③选项 C)。
|
||||
|
||||
另两条暂缓理由随批消解:**类型集未稳**——五类节点封闭枚举已随商店房批定稿,扩类走文档修订的既有通道对模板同样适用(模板 schema 跟随枚举走);**内容量不足**——台阶一的模板就是内容批,按内容批节奏逐张走,不设批量生产目标。
|
||||
另两条暂缓理由顺带消解:**类型集未稳**——五类节点封闭枚举已随商店房批定稿,扩类走文档修订的既有通道对模板同样适用(模板 schema 跟随枚举走);**内容量不足**——台阶一的模板就是内容批,按内容批节奏逐张走,不设批量生产目标。
|
||||
|
||||
## 拍板点(登记 [06-待办清单](../../06-待办清单.md),随批更新条目)
|
||||
## 拍板点(登记 [06-待办清单](../../06-待办清单.md),顺带更新条目)
|
||||
|
||||
| # | 拍板点 | 状态 |
|
||||
|---|---|---|
|
||||
| ① | 第一关(教学关)是否参与抽签 | **已裁决(2026-09-27)**:参与——仅首次冒险走固定脚本,见「首次冒险的固定脚本」节 |
|
||||
| ② | `node_map` 随机流增流 | **已裁决(2026-09-27 两轮复裁)**:统一用一个流——全游戏 rng 架构批先行(评估书 [ADR-0007](../../../dev/architecture/adr-0007-rng-single-stream.md)),本特性实施排队其后 |
|
||||
| ② | `node_map` 随机流增流 | **已裁决(2026-09-27 两轮复裁)**:统一用一个流——全游戏 rng 架构批先行(评估书已交付,2026-09-27),本特性实施排队其后 |
|
||||
| ③ | 台阶一实施时点 | **已裁决(2026-09-27)**:机制先行骨架随后——特性内先落抽签机制(池暂 N=1 行为零变化)、骨架内容批随后扩池;整体仍排在架构批落地之后 |
|
||||
| ④ | 首版池规模 | **已裁决(2026-09-27)**:每关 5 张起步(调参表已投值) |
|
||||
| ⑤ | 抽签时点 = 关卡开始逐关抽 | **已裁决(2026-09-27)**:确认 |
|
||||
@@ -139,7 +139,7 @@
|
||||
| A 增流(原荐) | 清单加 `node_map` 栏,抽签独立记账 | 三件套成本;图的抽签可独立复现,与其它系统零耦合 |
|
||||
| B 借现有流 | 从某条现有流取号 | 省三件套;但这笔账和那个系统的账搅在一起——重放对方系统的随机序列会被抽签挤位,复现口径变含糊,不推荐 |
|
||||
|
||||
**裁决注记(2026-09-27)**:用户两轮复裁后终选「统一用一个流」(全面执行),执行路径 = 全游戏 rng 架构批先行、本特性排队其后。评估书已交付:[ADR-0007](../../../dev/architecture/adr-0007-rng-single-stream.md)——核心发现:字面目标「单一随机源、逐位可复现」现行架构已满足(七条流系同一主种子的七个盐值分栏而非七个随机源);待裁决项 = 是否进一步并掉分栏计数器(方案甲维持分栏 / 乙物理并流 / 丙并流+全事件日志)。
|
||||
**裁决注记(2026-09-27)**:用户两轮复裁后终选「统一用一个流」(全面执行),执行路径 = 全游戏 rng 架构批先行、本特性排队其后。评估书已交付(2026-09-27,git 历史可查)——核心发现:字面目标「单一随机源、逐位可复现」现行架构已满足(七条流系同一主种子的七个盐值分栏而非七个随机源);待裁决项 = 是否进一步并掉分栏计数器(方案甲维持分栏 / 乙物理并流 / 丙并流+全事件日志)。
|
||||
|
||||
#### 证据面 B:台阶一详解与实施时点(拍板点③的背景)
|
||||
|
||||
@@ -154,8 +154,8 @@
|
||||
|
||||
| 选项 | 内容 | 后果 |
|
||||
|---|---|---|
|
||||
| A 机制+骨架立即全上 | 现在做完整内容批(含扩池到 5 张) | 曲线调参批未收口,数值基线在动;地图一随机,模拟读数的波动归因变难(数值动了还是图动了分不清) |
|
||||
| B 全部等调参批收口(v0.1 原荐) | 机制与内容都排在曲线调参批后 | 读数对账最干净;机制落地要等 |
|
||||
| A 机制+骨架立即全上 | 现在做完整内容批(含扩池到 5 张) | 曲线调参批未完成,数值基线在动;地图一随机,模拟读数的波动归因变难(数值动了还是图动了分不清) |
|
||||
| B 全部等调参批完成(v0.1 原荐) | 机制与内容都排在曲线调参批后 | 读数对账最干净;机制落地要等 |
|
||||
| C 机制先行、骨架随后(原荐) | 先落抽签机制但每关池暂放 1 张现行图(行为零变化),骨架内容批画好后一次扩到 5 张——扩池时点守测量对账实施门 | 机制与内容解耦:扩池前读数零污染,扩池后分层出数条款接管;不用等调参批 |
|
||||
|
||||
## 依赖与输出
|
||||
@@ -166,14 +166,14 @@
|
||||
|---|---|---|
|
||||
| 上游 | [冒险结构](冒险结构.md) | 开始关卡流程是抽签时点的宿主;主种子与派生流的语义权威;行集内容责任方(模板内容归它) |
|
||||
| 上游 | [数据配置](../表现与支撑/数据配置.md) | 关卡表模板池列的承载与统一读取;node_map 统一流用途标签(扩签已落地 v0.5)与流种子派生公式的基础设施 |
|
||||
| 上游 | [难度曲线与Boss](难度曲线与Boss.md) | 模板内遭遇数值的所有权;曲线调参批收口是台阶一的实施门 |
|
||||
| 上游 | [难度曲线与Boss](难度曲线与Boss.md) | 模板内遭遇数值的所有权;曲线调参批完成是台阶一的实施门 |
|
||||
| 下游 | [关卡节点地图](关卡节点地图.md) | 实例化行集的供给方;其图合法性校验与全部行进规则零改动 |
|
||||
| 下游 | [存档序列化](../表现与支撑/存档序列化.md) | 抽签 scope 计数器入既有快照契约(主种子 + 流计数器),零新增域;「首次冒险已进行」布尔位为唯一新增存档字段(实施批落 schema) |
|
||||
| 下游 | [HUD框架](../表现与支撑/HUD框架.md) | 零新语义——节点态照旧读图,模板差异对呈现层透明 |
|
||||
|
||||
## P0 最小闭环(台阶一实施批)——✅ 已落地(v0.5,2026-09-28)
|
||||
|
||||
> 实施前置已解除:统一随机流批已落地([ADR-0007](../../../dev/architecture/adr-0007-rng-single-stream.md) 裁丙——统一流+全事件日志,2026-09-27);抽签接入形态 = 统一流扩签新用途标签 `node_map`(扩签通道 = 改代码 + 评审)。
|
||||
> 实施前置已解除:统一随机流批已落地(2026-09-27 两轮复裁——统一流+全事件日志);抽签接入形态 = 统一流扩签新用途标签 `node_map`(扩签通道 = 改代码 + 评审)。
|
||||
|
||||
1. 关卡表逐关行扩模板池结构(承载归数据配置,schema 细节随实施批定)。
|
||||
2. 池内全部模板加载期预校验(违规致命,fail-fast 不变)。
|
||||
@@ -186,8 +186,8 @@
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 台阶二:骨架固定+属性随机(候选槽位掷定) | 台阶一收口后另批立项;商店必经位的槽位排除规则随批成文 |
|
||||
| P2 | 台阶三:全程序生成(参数化构造) | 台阶二收口后另批立项;参数取值域与重掷预算随批修订本文 |
|
||||
| P1 | 台阶二:骨架固定+属性随机(候选槽位掷定) | 台阶一完成后另批立项;商店必经位的槽位排除规则顺带成文 |
|
||||
| P2 | 台阶三:全程序生成(参数化构造) | 台阶二完成后另批立项;参数取值域与重掷预算顺带修订本文 |
|
||||
|
||||
## 调参表
|
||||
|
||||
@@ -195,10 +195,10 @@
|
||||
|
||||
| 参数 | 域 | 现行值 | 说明 |
|
||||
|---|---|---|---|
|
||||
| 模板池大小 N | int [1,+∞),关卡表逐关行 | 每关 5(2026-09-27 拍板点④;内容批落地前现行 1 张,provisional) | N=1 = 回滚档;扩池 = 内容批 |
|
||||
| 模板池大小 N | int [1,+∞),关卡表逐关行 | 每关 5(2026-09-27 拍板点④;2026-09-28 台阶一实施批落地,3 关 × 5) | N=1 = 回滚档;扩池 = 内容批 |
|
||||
| 重掷预算(台阶三) | 未立项不设值 | — | 台阶三立项时随本文修订登记 |
|
||||
|
||||
## 验收标准(草案——随拍板点裁决收口,实施批落地时按本节验收)
|
||||
## 验收标准(草案——随拍板点裁决完成,实施批落地时按本节验收)
|
||||
|
||||
- 池内全模板加载期通过图合法性校验,违规致命(校验面不只抽中的那张)。
|
||||
- 抽签确定性:同主种子同操作序列逐位同一张图;抽签 scope 可独立回放。
|
||||
@@ -219,7 +219,9 @@
|
||||
|---|---|---|
|
||||
| v0.1 | 2026-09-27 | **设计草案成文(立项批,用户拍板立项——06 条目「关卡内结构随机生成」随批改状态)**:概念三件套(图模板/模板池/图模板抽签,N=1 回滚档)、抽签时机(开始关卡内逐关抽、主种子派生 `node_map` 流提案)、三级台阶路线(抽签→属性随机→全程序)、MC 测量对账三条款(分层出数/基线可比/实施门=曲线调参批后)、五拍板点、依赖表与验收草案。实施未开工;术语入 registry 词汇表随定稿批执行 |
|
||||
| v0.2 | 2026-09-27 | **首轮裁决落文批(用户拍板①④⑤+路线确认)**:①第一关参与抽签、仅首次冒险走固定脚本——新增「首次冒险的固定脚本」节(存档域布尔标志「首次冒险已进行」、收束点置位、边界与测量口径,P0/验收/依赖表同步);④首版池规模=每关 5 张(调参表投值);⑤抽签时点确认;用户并裁「骨架不完全固定、多份随机调取」= 台阶一路线确认(台阶节补白话块+教学位随骨架走注记)。②③补证据面待复裁——新增「拍板点证据面」节:A=随机流/增流白话释义+两选项;B=台阶一详解(玩家看到什么/做三件/不做两件/内容形态 15 骨架/遭遇表按编号共用约束)+实施时点三选项(A 立即全上/B 等调参批/C 机制先行骨架随后,荐 C);测量对账实施门条款同步改"随机量扩池守门、机制可先行"口径 |
|
||||
| v0.3 | 2026-09-27 | **②③终裁落文批(用户两轮复裁)**:②统一用一个流·全面执行——全游戏 rng 架构批先行([ADR-0007](../../../dev/architecture/adr-0007-rng-single-stream.md) 评估书交付:核心发现=七流系同一主种子的盐值分栏、字面目标现行已满足;待裁决=甲维持分栏/乙物理并流/丙并流+全事件日志),本特性实施排队其后(P0 补前置行、抽签节流形态改随 ADR 结论);③特性内机制先行骨架随后(池暂 N=1、骨架内容批扩池);证据面 A 补裁决注记。06 新立「全游戏随机流统一架构批」条目(数据配置节) |
|
||||
| v0.4 | 2026-09-27 | **实施前置解除批(统一随机流批随批——rng 架构批已按 ADR-0007 裁丙落地)**:状态行改实施解锁;抽签节流形态定稿 = 统一流扩签新用途标签 `node_map`(标签不参与派生、只进事件日志——并流后派生隔离概念退役);P0 闭环前置行改解除口径。本批只记架构依赖解除,特性实施仍未开工 |
|
||||
| v0.6 | 2026-10-01 | **出度上限拍板批(T17 目检用户裁决「节点出度最大为 2」)**:① 加载校验第七检 `fanout_violation`(出度 >2 加载致命);② 规则连带——层宽上限随出度约束调整为 4(2026-09-29「层宽上限 5」废止,数学不相容);③ L2/L3 十张模板全池重建(tools/t17_fanout2_rebuild.py——出度 ≤2/层宽 ≤4/类型序列保持/可达自校验,五骨架换名宽廊双干〔现行〕等);④ 钉固断言 5 处随新图更新(min/max 路径/入口候选/奖励后候选)。**连带义务:MC 读数基线随图结构变化漂移——全旧 MC 锚作废,重锚归下一测量批**(当前只测不判) |
|
||||
| v0.3 | 2026-09-27 | **②③终裁落文批(用户两轮复裁)**:②统一用一个流·全面执行——全游戏 rng 架构批先行(评估书 2026-09-27 交付:核心发现=七流系同一主种子的盐值分栏、字面目标现行已满足;待裁决=甲维持分栏/乙物理并流/丙并流+全事件日志),本特性实施排队其后(P0 补前置行、抽签节流形态改随统一流结论);③特性内机制先行骨架随后(池暂 N=1、骨架内容批扩池);证据面 A 补裁决注记。06 新立「全游戏随机流统一架构批」条目(数据配置节) |
|
||||
| v0.4 | 2026-09-27 | **实施前置解除批(统一随机流批随批——rng 架构批已按 2026-09-27 裁决落地)**:状态行改实施解锁;抽签节流形态定稿 = 统一流扩签新用途标签 `node_map`(标签不参与派生、只进事件日志——并流后派生隔离概念退役);P0 闭环前置行改解除口径。本批只记架构依赖解除,特性实施仍未开工 |
|
||||
| v0.5 | 2026-09-28 | **台阶一实施落地批(M-3 迭代 5 T5)**:P0 六项全落地——①关卡表逐关行 templates 池(3 关 × 5,模板 0 = 现行图回滚档;L1 单链排列变体〔图形态 Boss 最大编号 vs 遭遇深度 4 两不可全〕/L2L3 网状变体〔战斗编号恒 ∈ 遭遇表行集、商店必经位承袭〕)②node_map 扩签(标签不参与派生只进事件日志,黄金向量零改动)③首次冒险固定脚本(存档唯一新增布尔位「首次冒险已进行」、老档迁移=true、收束点置位幂等、测量夹具恒抽签)④池内全模板加载校验(validate 抽出 + config_db 跨表校验模板感知)⑤抽签确定性/零 scope 强制/N=1 等价/首冒分支 冒烟断言(558→576)⑥MC 分层出数(RUNSUM level_templates)。内容批生成器 = tools/t5_build_templates.py(生成前自校验)。遗留:台阶二/三后置不变;正式侧生存链/带面影响随读数批 |
|
||||
| v0.6 | 2026-10-01 | **出度上限拍板批(T17 目检用户裁决「节点出度最大为 2」)**:① 加载校验第七检 `fanout_violation`(出度 >2 加载致命);② 规则连带——层宽上限随出度约束调整为 4(2026-09-29「层宽上限 5」废止,数学不相容);③ L2/L3 十张模板全池重建(tools/t17_fanout2_rebuild.py——出度 ≤2/层宽 ≤4/类型序列保持/可达自校验,五骨架换名宽廊双干〔现行〕等);④ 钉固断言 5 处随新图更新(min/max 路径/入口候选/奖励后候选)。**连带义务:MC 读数基线随图结构变化漂移——全旧 MC 锚作废,重锚归下一测量批**(当前只测不判) |
|
||||
| v0.7 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①状态行里程碑前缀按 2026-10-09 里程碑口径删「M-3」只留「迭代 5」(worktree 名为历史产物名不动);②调参表模板池大小行「内容批落地前现行 1 张」过期表述替换——2026-09-28 台阶一实施批已落地 3 关 × 5。注:版本表内 v0.6(2026-10-01)行排在 v0.5(2026-09-28)行前的既有乱序不动,另行列呈报。 |
|
||||
| v0.8 | 2026-10-15 | **简明技术中文用语规范批(用户令):词面修正 10 处**——「收口」→「完成」9 处(三级台阶表前置两处 / 测量对账实施门句 / 实施时点选项 A、B 两处 / 依赖表难度曲线与Boss行 / P1、P2 后置表两处 / 验收标准节题)+「对拍」→「与基线数据逐项比对」1 处(测量对账·基线可比条)。机制与数值零改动;文头「原 06 条目已收口移除」系原条目处置记载(对照性文本)按豁免保留 |
|
||||
@@ -2,11 +2,10 @@
|
||||
|
||||
> 一句话:单关内的节点图选路与推进
|
||||
> 状态:已定稿
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/systems-index.md(旧体系未单独成文,散见于归档索引)
|
||||
|
||||
## 设计目的
|
||||
|
||||
一关不是一场战斗,而是若干**节点**(本文含义:关卡内移动的步进单位,画在图上就是一个格)连成的一张**节点图**。玩家从一个入口出发,在每个路口看着几条路选一条走——这条路上有要打的仗、有开奖励的房间、有能歇脚的篝火——最后所有路线汇到关底 Boss。关卡节点地图管的就是这张图上的"走":怎么选路、走到每种节点上发生什么、Boss 分出胜负后怎么把这一关的结局交回去。
|
||||
一关不是一场战斗,而是由关卡表配置的一组**节点**(本文含义:关卡内移动的步进单位,画在图上就是一个格)连成的一张**节点图**。玩家从一个入口出发,在每个路口看着几条路选一条走——这条路上有要打的仗、有开奖励的房间、有能歇脚的篝火——最后所有路线汇到关底 Boss。关卡节点地图管的就是这张图上的"走":怎么选路、走到每种节点上发生什么、Boss 分出胜负后怎么把这一关的结局交回去。
|
||||
|
||||
用循环的层次说:冒险是外层骨架,关卡是**中循环**,战斗是**小循环**。本文管中循环——图怎么编排、怎么走、每类节点到达时触发什么;一场战斗内部发生什么全部归小循环(战斗结算与敌人系统),本文把控制流移交给它之后就不再看里面。它是[冒险结构](冒险结构.md)(序列、大奖励、重开)与战斗循环(结算与敌人)之间的行进层。
|
||||
|
||||
@@ -32,7 +31,7 @@
|
||||
| 关卡大奖励、跨战斗生命账本、失败重开 | [冒险结构](冒险结构.md) |
|
||||
| 战斗内部的一切:敌人配置、数量、技能池、踩雷负向 | [敌人系统](../战斗循环/敌人系统.md)与[战斗结算](../战斗循环/战斗结算.md) |
|
||||
| 同场多敌种(同一节点配多种敌人)的表结构与取值口径 | 敌人系统(战斗侧改键批) |
|
||||
| 节点奖励的道具内容、持有与使用语义 | [秘宝](../排雷循环/秘宝.md)(内容重定批) |
|
||||
| 节点奖励件的分类与凭证定义 | [奇物](奇物.md)(提升池构成与账本归[冒险结构](冒险结构.md)) |
|
||||
| 敌我数值曲线与遭遇投放节奏 | [难度曲线与Boss](难度曲线与Boss.md) |
|
||||
| 节点图的画面呈现、方块地牢观感 | [HUD 框架](../表现与支撑/HUD框架.md) |
|
||||
|
||||
@@ -62,7 +61,7 @@
|
||||
|
||||
商店房的编排规则(2026-09-20 用户拍板):每关**恰 1 个**商店房,位置 = **关底 Boss 前一位**——哈迪斯式的"决战前最后一个补给点":买到的属性还有整段战斗可消费,错过的成长也没有第二家店可补。Boss 前一位同时是**必经位**:图拓扑收束使所有入口→Boss 的路径都穿过它,成长保底成为图结构事实而非玩家自觉。这条位置约束不由加载校验承载——图合法性六检零新增,商店房的"每关恰 1 + 必经"由冒烟断言把关。
|
||||
|
||||
每个节点在关卡内领一个**节点编号**(本文含义:关卡内不重复的序号,用来当战斗的定位地址;数据键沿用切片字段 `node_depth`)。Boss 的编号恒为全图最大——"最深处的房间是关底"这条直感由此保留。单链特例:一张每步只有一条连线的图就是一条链,此时节点编号等于它前面走过的战斗场数。第一关行集就是单链特例,切片代码零改动运行;分支图行集随第二关内容批落地(见 P1)。
|
||||
每个节点在关卡内领一个**节点编号**(本文含义:关卡内不重复的序号,用来当战斗的定位地址;数据键沿用切片字段 `node_depth`)。Boss 的编号恒为全图最大——"最深处的房间是关底"这条直感由此保留。单链特例:一张每步只有一条连线的图就是一条链,此时节点编号等于它前面走过的战斗场数。第一关行集就是单链特例,切片代码零改动运行;分支图行集已落地(v1.0.1 起;模板池见[关卡节点图生成](关卡节点图生成.md))。
|
||||
|
||||
呈现侧口径(2026-09-17 用户拍板):节点图的画面表达走**方块地牢观感**——节点画成地牢房间的方块、连线画成通道——但逻辑拓扑就是本文的节点图,不产生任何额外选路或探索语义。关卡画面本体即节点链进度的呈现载体(选路覆盖层的常驻形态,节点态直接读图:已过暗金 / 当前金 / 候选下一跳通道亮金 / Boss 封印黑描边(旗朱→封印紫→封印黑 #000000,2026-09-28 用户拍板现行)),不另设进度条组件;视觉规格归 [HUD 框架](../表现与支撑/HUD框架.md)。
|
||||
|
||||
@@ -98,7 +97,7 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
|---|---|
|
||||
| 战斗 / Boss | 组装定位信息(关卡序号 + 节点编号),移交[战斗结算](../战斗循环/战斗结算.md)开战;战斗结果(胜负与战后生命)经战斗结果上报回流冒险结构(契约语义归[冒险结构](冒险结构.md),本文不复述) |
|
||||
| 恢复 | 向冒险结构发治疗封顶回报(载荷 = 该关恢复比例,读本关配置行);按比例回血并封顶的执行归冒险结构 |
|
||||
| 奖励 | 触发节点奖励兑付:提升三选一(与通关三选一共享同池——六种加权抽 3 点选一件,同次数上限;见下节) |
|
||||
| 奖励 | 触发节点奖励兑付:提升三选一(与通关三选一共享同一令牌库——七种令牌洗牌不放回抽 3 点选一件,池耗即上限;见下节) |
|
||||
| 商店 | 打开商店覆盖层(pool 模式:进店抽 3〔shop_draw 封闭流恰一 scope〕+买 1 全重抽;legacy 对照模式:商品陈列读商店表);购买即时生效、经共享池账本写统一冒险加算区(与关卡大奖励同一本账——账本语义归[冒险结构](冒险结构.md),本文不复述);离开覆盖层即兑付确认。商店房不携带战斗行:零敌人、零棋盘、零战斗初始化 |
|
||||
|
||||
**遭遇构成的编排面**——本文对"放什么敌人"的全部职责只有三条:
|
||||
@@ -109,7 +108,7 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
|
||||
第二关的"新内容 = 既有池新技能"(技能池构成已定稿入[敌人系统](../战斗循环/敌人系统.md)技能池节)投放时,改的是战斗侧行里引用的技能池内容——节点图结构原样不动,本文无需为投放留任何新结构位。
|
||||
|
||||
**节点奖励 = 提升三选一(迭代 10 追加批——用户 2026-10-01 拍板:与通关三选一共享同池)**:奖励节点到达即开三选一(呈现 = 提升三选一覆盖层共用面,spec:[node-reward.md](../../ux/node-reward.md) v2.0)——从提升池六种(攻击/生命上限/护甲/GP 袋/秘宝/行动点件)按同一加权洗牌抽 3(同权重、同全冒险次数上限、同 reward_pick 封闭流),玩家点选一件兑付;道具件满位触发替换子交互(与通关三选一同构)。件获取次数计数与牌库剔除态为冒险级单例——两渠道合计判上限。原「秘宝投放渠道三选一」(迭代 7 拍板②丙过渡形态)随批退役;终局=秘宝局外同调件的改写义务仍归同调实施批(原提案 §9,git 57da58c 已退役)。「池空直通」合法态随共享池退役——池含无上限 GP/道具件,牌库恒非空。
|
||||
**节点奖励 = 提升三选一(迭代 10 追加批——用户 2026-10-01 拍板:与通关三选一共享同池)**:奖励节点到达即开三选一(呈现 = 提升三选一覆盖层共用面,spec:[node-reward.md](../../ux/node-reward.md) v2.0)——从提升池七种(攻击/生命上限/护甲/GP 袋/行动点件/恢复件/刷新件)按同一令牌库洗牌不放回抽 3(同 kind 去重、同 reward_pick 封闭流),玩家点选一件兑付(选中踢池、未选回池;秘宝件已随迭代 11 第①批出池,满位替换子交互随之不再触发)。件获取次数计数与令牌库为冒险级单例——两渠道同一令牌库合计消耗。原「秘宝投放渠道三选一」(迭代 7 拍板②丙过渡形态)顺带退役;秘宝局外同调件形态已随同调实施批落地(迭代 11 第①批;原提案 §9,git 57da58c 已退役)。「池空直通」为合法态——池耗即枯竭,空库 = 零候选合法态直通(见[冒险结构](冒险结构.md)令牌池节)。
|
||||
|
||||
### 关卡收束点:先清库、后宣布
|
||||
|
||||
@@ -130,7 +129,7 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
| 方向 | 系统 / 文档 | 接口要点 |
|
||||
|---|---|---|
|
||||
| 上游 / 下游 | [冒险结构](冒险结构.md) | 接口契约四件套(开始关卡 / 战斗结果上报 / 治疗封顶回报 / 关卡结束)+ 收束点次序语义:向下接开始关卡,向上报战斗结果、恢复请求与关卡结束 |
|
||||
| 上游 | [秘宝](../排雷循环/秘宝.md) | 节点奖励的道具内容、持有域与使用窗口语义(内容重定批交付;切片期直通空态) |
|
||||
| 上游 | [奇物](奇物.md) | 节点奖励件的分类、凭证与持有语义(提升池构成与共享池账本归[冒险结构](冒险结构.md)) |
|
||||
| 上游 | [敌人系统](../战斗循环/敌人系统.md) | 定位信息的消费方:本文递出关卡序号 + 节点编号,按编号生成单位归它 |
|
||||
| 上游 | [难度曲线与Boss](难度曲线与Boss.md) | 敌我数值曲线与遭遇投放节奏的调参所有权;本文零数值 |
|
||||
| 上游 | [数据配置](../表现与支撑/数据配置.md) | 商店表(商品行 / GP 掉落参数 / 价格参数)的承载与统一读取;商店覆盖层的商品与定价数据源 |
|
||||
@@ -142,9 +141,9 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
1. 从冒险结构接收开始关卡(关卡序号、当前生命、生效上限),加载本关节点图并呈现选路停点(关卡画面),玩家在图上选出第一跳,行进自所选节点开始(入口节点不自动进入)。
|
||||
2. 每节点兑付完成并确认后返回关卡画面,玩家再选路前进;岔路选一条、单链点继续;零自动推进。
|
||||
3. 战斗 / Boss 节点:组装关卡序号 + 节点编号,移交战斗结算开战;战斗结束向冒险结构上报战斗结果。
|
||||
4. 奖励节点:触发节点奖励兑付(切片期 = 直通合法空态);恢复节点:向冒险结构发治疗封顶回报;商店节点:打开商店覆盖层,购买即时生效,离开后兑付确认。
|
||||
4. 奖励节点:触发节点奖励兑付 = 提升三选一(与通关三选一共享令牌库);恢复节点:向冒险结构发治疗封顶回报;商店节点:打开商店覆盖层,购买即时生效,离开后兑付确认。
|
||||
5. Boss 战胜利或任意战斗倒下 = 关卡收束点:先调战斗结算的关卡收束清库,再宣布关卡结束。
|
||||
6. 第一关行集 = 单链特例(图的最简形态),切片按单链运行零改动;分支图行集与图版实现随第二关内容批(P1)。
|
||||
6. 第一关行集 = 单链特例(图的最简形态),切片按单链运行零改动;分支图行集与图版实现已落地(v1.0.1 起)。
|
||||
|
||||
## P1 / P2 后置
|
||||
|
||||
@@ -152,7 +151,6 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 分支节点图内容与实现批 | 图结构行集(节点+连线)、切片行进代码的图版实现、跨文档"节点深度/节点链"措辞对齐——随第二关内容批同批落;落地前单链特例运行(合法态) |
|
||||
| P2 | 精英节点与精英遭遇 | 不设编码位——精英以内容方式承载(某编号节点配强敌行集);与难度曲线、战斗侧批联动设计。精英怪设定已登记预留(迭代 10 奖励重构批:同立绘+附加特征标记+数值更强、钥石掉 1 个预留——实装随怪物批,本文件行集零改动) |
|
||||
| P2 | 事件类节点候选 | 商店房已随 2026-09-20 GP+商店房批落地(v1.1),"商人类撞抽象货币红线"的旧注记由[不做清单](../../05-不做清单.md)的现行条款替代;事件类节点仍无内容系统承载;扩类一律走文档修订 |
|
||||
|
||||
@@ -167,7 +165,7 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
- 兑付移交:每场开战调用携带(关卡序号 + 节点编号),与节点图上该节点位置一致;每场战斗结束恰一次战斗结果上报。
|
||||
- 兑付后确认:战斗节点的继续确认挂战斗总结结算(settlement-summary.md),奖励/恢复挂兑付反馈覆盖层;到达与兑付之间无确认步。
|
||||
- 恢复兑付:治疗封顶回报载荷 = 该关恢复比例(读关卡配置行);满血回复 0 是合法状态(执行语义归冒险结构)。
|
||||
- 奖励兑付:奖励节点兑付恰触发一次;池空直通空态合法,现行 = 三选一取一件入关卡域库存(node-reward.md v1.0;切片期过渡形态,随同调实施批退役改写)。
|
||||
- 奖励兑付:奖励节点兑付恰触发一次;池空直通空态合法,现行 = 提升三选一(与通关三选一共享令牌库)取一件按件类兑付(spec:node-reward.md v2.x;兑付路由归[冒险结构](冒险结构.md)提升池节)。
|
||||
- 商店房编排:每关恰 1 个商店房、Boss 前一位必经位(所有入口→Boss 路径都穿过它)——由冒烟断言把关,图合法性校验零新增检查;商店房不携带战斗行;行进至此打开商店覆盖层、离开后兑付确认回选路。
|
||||
- 收束有序且唯一:关卡清库发生在关卡结束宣布之前;每关恰宣布一次关卡结束;Boss 胜 = 通关、倒下 = 失败。
|
||||
- 四件接口全款:与冒险结构登记的开始关卡、战斗结果上报、治疗封顶回报、关卡结束逐件对上,不另起平行通道。
|
||||
@@ -187,7 +185,10 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
| v1.0 | 2026-09-17 | **定稿**(逐问题拍板,全用户裁决):① 形态重开——用户拍板重开[05-不做清单](../../05-不做清单.md)「路径分支地图后置」裁定,定稿为**分支节点图**(分层节点图,杀戮尖塔 / 哥布林弹珠同构;方块地牢美术观感、逻辑为节点图),P0 图定稿 + 单链特例先行;② 节点类型定稿四类封闭枚举不扩类;③ 行进交互定稿全节点确认 + 兑付后确认、零自动推进;④ 遭遇构成收窄为编排面三条(战斗内部初始化全归战斗小循环),寻址定稿节点编号升级(`node_depth` 语义升级为关卡内唯一节点编号,表键与字段名零改动,单链零漂移);⑤ 节点奖励拍板为功能道具的正式渠道(内容归秘宝内容重定批,切片期直通为合法空态);⑥ 「精英与 Boss 编码位」(同层多遭遇由节点编号消解,不设编码位)与「多敌数量的消费面」(关卡层零消费)两悬案收口,同场多敌种面拆归战斗侧;⑦ 切片行进代码对照的接口漂移清单登记 06 |
|
||||
| v1.0.1 | 2026-09-17 | **P1 分支节点图内容与实现批落地**(用户拍板任务批——切片代码 / 难度曲线与Boss v0.7 / registry / 06 待办同批):首张分支图 = 切片关卡 2「第二层 · 幽暗地域」行集落地(9 节点网状图:入口 0 → 中间三层 2/3/2 → Boss 8,真实岔路 4 处,奖励点 + 恢复点各 1,战斗节点 6 + Boss);行进器图版推进(`choices_presented` 选路态 + `pick_next_node`——零自动推进,战斗胜利不再自动推进、`continue_after_node` 泛化为兑付确认,06 接口漂移清单 ④⑤⑧ 清偿);图合法性校验落地 `LevelTable.validate`(单链与图同一套算法,L1 零迁移过校验,违规加载致命);节点图选路 UI(选路覆盖层整图自绘——房间方块 + 通道连线 + 当前/候选高亮,占位图形质量;顶栏图形态渲染行进序列 + 候选);首页"关卡 2 试玩"直入口(测试模式,≠ 两关序列生效)。本版本号只记实现批状态,图规则口径零改动 |
|
||||
| v1.1 | 2026-09-20 | **商店房扩类(GP+商店房批,用户拍板——与冒险结构 / 战斗结算 / 地图战斗资源 / 难度曲线与Boss / registry / 切片同批)**:① 节点封闭枚举四类→五类(+商店房);② 编排规则定稿——每关恰 1、关底 Boss 前一位必经位(哈迪斯式"决战前最后一个补给点"定位);必经位由冒烟断言承载、图合法性六检零新增;③ 兑付定稿——打开商店覆盖层、购买即时生效写统一冒险加算区(与关卡大奖励同账,归冒险结构)、离开后兑付确认;商店房不携带战斗行;④ 节点兑付表 / 纪律表 / 依赖表 / P0 闭环 / 验收标准 / P2「事件类节点候选」注记同步 |
|
||||
| v1.2 | 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 `../../../dev/architecture/adr-0006-board-node2d-rendering.md` 与 `../../../dev/architecture/board-node2d-migration-plan.md` §1,代码实装另批并行)**:① 行进循环改停点前移口径——关卡开始即呈现节点图选路停点(关卡画面 = 选路覆盖层常驻化,入口节点不自动进入,第一次选路就是"出发"),选路确认进节点,兑付确认后返回关卡画面再选路(战后回图);兑付后确认、零自动推进两条纪律语义不变,只改承载位;② 呈现侧口径补进度承载条款——关卡画面本体即节点链进度呈现载体(节点态直接读图:已过暗金 / 当前金 / 候选下一跳通道亮金 / Boss 旗朱描边),不另设进度条组件(战斗屏 A 区进度条随批退役);③ P0 闭环两条、依赖表 HUD 框架行、验收标准「行进自主」条同步。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编;② 28px 纵向空间划归 C/D 底行;③ 关卡画面进度呈现由选路覆盖层节点态承载(登记面见 HUD框架 v0.8) |
|
||||
| v1.2 | 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 = 棋盘/战斗舞台 Node2D 迁移批(已执行完毕,git 历史可查),代码实装另批并行)**:① 行进循环改停点前移口径——关卡开始即呈现节点图选路停点(关卡画面 = 选路覆盖层常驻化,入口节点不自动进入,第一次选路就是"出发"),选路确认进节点,兑付确认后返回关卡画面再选路(战后回图);兑付后确认、零自动推进两条纪律语义不变,只改承载位;② 呈现侧口径补进度承载条款——关卡画面本体即节点链进度呈现载体(节点态直接读图:已过暗金 / 当前金 / 候选下一跳通道亮金 / Boss 旗朱描边),不另设进度条组件(战斗屏 A 区进度条随批退役);③ P0 闭环两条、依赖表 HUD 框架行、验收标准「行进自主」条同步。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编;② 28px 纵向空间划归 C/D 底行;③ 关卡画面进度呈现由选路覆盖层节点态承载(登记面见 HUD框架 v0.8) |
|
||||
| v1.3 | 2026-10-01 | **图合法性第七检(T17 目检用户拍板「节点出度最大为 2」)**:`validate` 新增 `fanout_violation`(单节点出边 >2 加载致命);规则连带层宽上限 4(原 5 与出度约束不相容,废止)——生成侧规则与模板池重建归[关卡节点图生成](关卡节点图生成.md) v0.6 同批 |
|
||||
| v1.4 | 2026-10-03 | **奖励节点道具渠道退役注记(迭代 11 第①批同调实施批——与 node-reward.md v2.2 / registry 同批)**:奖励节点的秘宝件渠道随停点渠道退役拆除(BONUS_IDS 词表除名 aux_item,池五种;三选一刷新件面新增见 node-reward.md v2.2)——奖励节点兑付面=提升三选一(属性/GP/AP 五种)+刷新,零结构改动(节点类型词表/图合法性六检零新增) |
|
||||
| v1.5 | 2026-10-03 | **商店房兑付换代注记(迭代 11 第②批 GP 商店房重构批——任务书 v1.3 全裁;冒险结构 v0.13 / registry / 难度曲线与Boss 同批)**:商店节点类型词表与编排规则零改动(每关恰 1/Boss 前一位必经位/图合法性六检零新增);兑付面换代 = pool 模式进店抽 3(shop_draw 封闭流)+买 1 全重抽+重抽绑购买+空架合法态,货架候选与库存账本归冒险结构共享池账本节;覆盖层呈现面=货架三选一同构卡(legacy 固定三件面随对照模式保留注记) |
|
||||
| v1.5 | 2026-10-03 | **商店房兑付换代注记(迭代 11 第②批 GP 商店房重构批——需求卡片 v1.3 全裁;冒险结构 v0.13 / registry / 难度曲线与Boss 同批)**:商店节点类型词表与编排规则零改动(每关恰 1/Boss 前一位必经位/图合法性六检零新增);兑付面换代 = pool 模式进店抽 3(shop_draw 封闭流)+买 1 全重抽+重抽绑购买+空架合法态,货架候选与库存账本归冒险结构共享池账本节;覆盖层呈现面=货架三选一同构卡(legacy 固定三件面随对照模式保留注记) |
|
||||
| v1.7 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①奖励节点兑付口径全节订正——「池六种含秘宝、加权洗牌、全冒险次数上限」改现行令牌池口径(七种、洗牌不放回抽 3、池耗即上限、未选回池);「道具件满位替换子交互」随秘宝件出池不再触发;「池空直通随共享池退役、牌库恒非空」反转订正——TP0 后池耗即枯竭、空库直通为合法态;「终局=秘宝局外同调件的改写义务仍归同调实施批」订正为已落地(迭代 11 第①批);②P0 闭环与验收「切片期直通合法空态 / 取一件入关卡域库存(随同调实施批退役改写)」过期表述替换为提升三选一共享令牌库口径;③P1 后置「分支节点图内容与实现批」已随 v1.0.1 落地——行移除,正文两处「随第二关内容批(见 P1)」改「已落地」;④不负责表与依赖表「节点奖励的道具内容→秘宝(内容重定批)」改指奇物(提升池构成与账本归冒险结构)。注:版本号 v1.6 系正文商店行已有标签(MC-1 独立刷新批 2026-10-04)的表内让号,该批版本行缺失另行列呈报。 |
|
||||
| —— | 2026-10-09 | 缺号注记:v1.6 未登记(对应批次=MC-1 商店独立刷新批〔2026-10-04,git ac3cee7 明记「关卡节点地图v1.6换代」〕,登记见正文商店行 v1.6 标签与 v1.7 行让号注记),卫生批仅注记不补写 |
|
||||
| v1.8 | 2026-10-15 | **简明技术中文用语规范批(用户令):词面修正 1 处**——设计目的首句「若干节点」改「由关卡表配置的一组节点」(「若干」→写明数值出处:节点构成与数量读关卡表行集)。机制与数值零改动 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:整局冒险的关卡序列、失败与大奖励
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/c2-adventure-structure.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -22,7 +21,7 @@
|
||||
| 关卡序列 | 关卡表(逐关一行的配置表)行集内容的责任方;推进规则:线性、无跳关 |
|
||||
| 生命账本 | 跨战斗生命持久性的冒险侧账本:每战交出、战后收回、两个恢复口 |
|
||||
| GP 冒险账本 | 战斗掉落货币的局内账本(显示名「金币」):战斗完成统一入账、商店购买出账、冒险收束清零;统一冒险加算区(商店购买与大奖励同账) |
|
||||
| 关卡大奖励 | 非末关通关的两层兑付:提升三选一(选择型)+ 部分回血(固定型);钥石退役出大奖励,改 Boss/精英击杀战斗掉落 |
|
||||
| 关卡大奖励 | 非末关通关的两层兑付:专长三选一(选择型,按档配比加权抽取——迭代 20 换代)+ 部分回血(固定型);钥石退役出大奖励,改 Boss/精英击杀战斗掉落 |
|
||||
| 失败重开与放弃 | 倒下即冒险终;重开等于全新一轮;放弃与失败同型结算 |
|
||||
| 主种子接线 | 一场冒险一个主种子,冒险内一切随机数派生自它 |
|
||||
|
||||
@@ -33,10 +32,10 @@
|
||||
| 单关内节点行进与兑付触发 | [关卡节点地图](关卡节点地图.md) |
|
||||
| 商店房节点的开闭交互与商品陈列 | [关卡节点地图](关卡节点地图.md) |
|
||||
| 轮末结算编排与关卡清库接口 | [战斗结算](../战斗循环/战斗结算.md) |
|
||||
| 节点奖励内容与库存语义 | [地图战斗资源](../战斗循环/地图战斗资源.md) |
|
||||
| 节点奖励件的分类与凭证定义、池结构与抽取机制(案D——共享池库存账本仍归本文) | [奇物](奇物.md) |
|
||||
| 通关率带、敌我数值与 Boss 设计 | [难度曲线与Boss](难度曲线与Boss.md) |
|
||||
| 钥石与跨局成长 | [元进度](../跨局循环/元进度.md) |
|
||||
| 冒险总结结算(呈现摘要五件事;呈现 spec:design/gdd/ux/settlement-summary.md——旧称「摘要结算画面」随 spec 命名收口退役)与关卡推进指示 | [HUD框架](../表现与支撑/HUD框架.md) |
|
||||
| 冒险总结结算(呈现摘要五件事;呈现 spec:design/gdd/ux/settlement-summary.md——旧称「摘要结算画面」随 spec 命名完成退役)与关卡推进指示 | [HUD框架](../表现与支撑/HUD框架.md) |
|
||||
|
||||
## 在核心循环中的位置
|
||||
|
||||
@@ -50,11 +49,11 @@
|
||||
|
||||
### 冒险的一生:开始、推进与三种结局
|
||||
|
||||
"冒险"在本文是一个计量单位:玩家从开始新冒险到出局结算的一段完整游玩,由若干关卡串成,全程只有一条命。冒险任何时刻恰处三种状态之一:待机(还没开始,或上一局已结算完毕)、进行中(某一关正在推进)、结算中(一关刚宣布结束,正在算通关兑付与结局)。
|
||||
"冒险"在本文是一个计量单位:玩家从开始新冒险到出局结算的一段完整游玩,由三关串成(关数读关卡表),全程只有一条命。冒险任何时刻恰处三种状态之一:待机(还没开始,或上一局已结算完毕)、进行中(某一关正在推进)、结算中(一关刚宣布结束,正在算通关兑付与结局)。
|
||||
|
||||
```
|
||||
待机 ──(开始新冒险:注入主种子、生命回满、进第 1 关)──▶ 进行中
|
||||
进行中 ──(非末关通关)──▶ 部分回血 + 提升三选一停点 ──(玩家点选兑付)──▶ 进下一关(仍在进行中)
|
||||
进行中 ──(非末关通关)──▶ 部分回血 + 专长三选一停点 ──(玩家点选兑付)──▶ 进下一关(仍在进行中)
|
||||
进行中 ──(末关通关 / 任意战斗倒下 / 玩家放弃)──▶ 结算中 ──(产出冒险摘要)──▶ 待机
|
||||
```
|
||||
|
||||
@@ -76,9 +75,9 @@
|
||||
|
||||
MVP 的序列是三关线性:地精洞窟→幽暗地域→灰矮人矿城(2026-09-21 生效)。通关一关(该关关底 Boss 被击杀)自动进下一关;冒险通关 = 最后一关的关底 Boss 被击杀。没有跳关、没有回头路;关卡行进走[关卡节点地图](关卡节点地图.md)的分支节点图(切片第一关为单链特例)。
|
||||
|
||||
第二关的生效有前提:要等[难度曲线与Boss](难度曲线与Boss.md)的第二关深度轴行值填充批落地。未落地前,冒险以单关运行——单关冒险是合法状态,不是缺陷。
|
||||
三关序列均已生效(2026-09-21 冒险结构实现批起;L2 行值随分支节点图批、L3 随第三关内容批落地,见[难度曲线与Boss](难度曲线与Boss.md))。
|
||||
|
||||
加关纪律:加一关等于一个内容批——节点链行、敌我数值、新元素必须同批落,禁止只加序列不加内容。行集里每个战斗与关底节点都必须在敌人、棋盘生成的数值表里有精确行,冒烟期校验;越界关卡按内容生产缺口拦截。运行期对越界的开始关卡请求与缺失的关卡行一律报错停机——那是配置违约,不是玩家能碰到的状态,不做兜底吞掉。
|
||||
加关纪律:加一关等于一个内容批——节点链行、敌我数值、新元素必须同批落,禁止只加序列不加内容。行集里每个战斗与关底节点都必须在敌人、棋盘生成的数值表里有精确行,冒烟期校验;越界关卡按内容生产缺口拦截。运行期对越界的开始关卡请求与缺失的关卡行一律返回错误并停机——那是配置违约,不是玩家能碰到的状态,不做兜底吞掉。
|
||||
|
||||
序列的难度排布消费难度曲线与Boss的逐关通关率带。整局难度由长度叠加:
|
||||
|
||||
@@ -137,9 +136,11 @@ MVP 的序列是三关线性:地精洞窟→幽暗地域→灰矮人矿城(2
|
||||
|
||||
GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗胜利掉落、商店房消费、冒险结束清零。它与钥石记账完全分离——钥石跨局持久、入存档;GP 局内有效、不入存档、不入冒险摘要五件事清单。账本语义归本文,商店房的开闭交互归[关卡节点地图](关卡节点地图.md)。
|
||||
|
||||
钱包只有三个收口:
|
||||
**独立资源口径**(框架见[核心循环](../../01-核心循环.md)「生命周期轴」节):GP 与钥石是两条平行独立资源,不立统一上位概念——GP=冒险级独立资源账(本节),钥石=存档级账(归[元进度](../跨局循环/元进度.md))。各层对 GP 的兑付都是**一次性转换入账**:转换源(奇物 GP 袋、格面 gp 型等)结算即消尽,只有钱包长存——这是「类A→类C」的转换关系,不是「奖励横跨多层」。
|
||||
|
||||
| 收口 | 方向 | 规则 |
|
||||
钱包只有三个收支口:
|
||||
|
||||
| 收支口 | 方向 | 规则 |
|
||||
|---|---|---|
|
||||
| 战斗完成 | 入 | 每完成一场战斗统一到账一次:金额 = 掉落掷定 + 关级掉落加值 + 本战战斗内缓冲,随战斗结束信号携带的 gp_dropped 一笔入账 |
|
||||
| 商店购买 | 出 | 商店房购买按现行价扣减钱包,余额不足拒绝。价格公式(**v0.13 换代——pool 模式现行**):ceil(基价 × b^(关序−1) × A^(本次进店已购次数)),A=店内递增/b=跨关递增表因子(provisional 1.8/1.1),ceil 向上单一取整(玩家不利向,杜绝「差 1 GP 反复钓」套利角);legacy 固定三件模式(shop=off 对照承载)沿用旧式 = 基价 + 关级价格加成 + 步长 × 已购档数 |
|
||||
@@ -147,42 +148,29 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
|
||||
**战斗内缓冲隔离**:战斗进行中从格面兑付拿到的 GP(金币袋正向、破财负向——字典归[地图战斗资源](../战斗循环/地图战斗资源.md))不直接进钱包,而是记入战斗域的中间态缓冲;战斗完成时缓冲随掉落掷定与关级加值一并折进 gp_dropped 统一到账。钱包只在战斗边界变动,战斗域自身零钱包状态——这条隔离让战斗结算保持"折算归我、账本归冒险结构"的既有边界。
|
||||
|
||||
**统一冒险加算区**:商店购买的属性提升与提升三选一的属性件记**同一本账**——加算区四轴 {攻击, 生命上限, 护甲等级, 行动点},入战参数 = 基础表值 + 加算区累加,经战斗开始入参的覆盖值通道生效(与生命账本的上参同一条通道)。购买生命上限时:pool 模式(v0.13——货架件=奖励件本体)只加上限不回当前生命(与三选一件同语义);legacy 模式当前生命与上限同步 +Δ(生命账本的连带写入口)。属性轴累加源 = 商店购买与三选一属性件两类;行动点轴累加源 = 三选一 AP 件与商店 AP 件两类(每场战斗开始的首轮行动点基线 +1,语义细节归[行动经济](../排雷循环/行动经济.md)跨冒险加成轴节;~~全冒险获取次数上限最紧 provisional 2 次~~——v0.14 次数上限退役,池消耗即上限,pool 模式下商店购买与三选一共用令牌库,见下)。
|
||||
**统一冒险加算区**:商店购买的属性提升与奖励节点三选一的属性件记**同一本账**——加算区四轴 {攻击, 生命上限, 护甲等级, 行动点},入战参数 = 基础表值 + 加算区累加,经战斗开始入参的覆盖值通道生效(与生命账本的上参同一条通道)。购买生命上限时:pool 模式(v0.13——货架件=奖励件本体)只加上限不回当前生命(与三选一件同语义);legacy 模式当前生命与上限同步 +Δ(生命账本的连带写入口)。属性轴累加源 = 商店购买与奖励节点三选一属性件两类;行动点轴累加源 = 奖励节点三选一 AP 件与商店 AP 件两类(每场战斗开始的首轮行动点基线 +1,语义细节归[行动经济](../排雷循环/行动经济.md)跨冒险加成轴节;~~全冒险获取次数上限最紧 provisional 2 次~~——v0.14 次数上限退役,池消耗即上限,pool 模式下商店购买与三选一共用令牌库,见下)。
|
||||
|
||||
掉落掷定消费 gp_drop 封闭随机流(主种子派生、可回放)。**商店货架抽签消费 shop_draw 封闭随机流**(v0.13 扩签——每次抽 3〔进店+每次买后重抽〕恰一 scope,与 reward_pick 分签防取数序互扰)。掉落与价格的现行行值读商店表(registry 为准),数值所有权归[难度曲线与Boss](难度曲线与Boss.md)曲线调参批——本批骨架先行,全部数值 provisional。
|
||||
|
||||
**共享池账本(v0.13 P1 共享池单点;v0.14 令牌库换代)**:商店货架与提升三选一是**同一个池**——货架候选 = 池∖{GP 袋}(用钱买钱恒负交易)= {攻击, 生命上限, 护甲, 行动点} 四种(秘宝件已随同调批出池);**库存 = 剩余令牌数**(TP0——「池消耗即上限」,种类次数上限退役,与奖励兑付摘牌同一令牌库承载,全冒险一次性跨关卡不补给):商店买一件,奖励面就少一枚;「无限购买」收敛为**钱尽或池空为止**(池空=硬闸、A 链爬价=软闸),空货架合法态。货架 = **令牌级抽签**(同 kind 去重每 kind 至多一卡,价格公式 tier-blind 维持批②裁定,购买消费在架令牌本体 kind+tier)。两渠道不得各自私记库存——消费走同一入口写同一令牌库(实现=AdventureRunner._bonus_deck 单点,冒险结构 owner;kind 维度派生计数 _bonus_taken 承载断点附随件与读数)。**货架独立刷新(v0.15 MC-1 2026-10-04——P-C2+Q2 裁)**:进店免费刷新次数(基础 0,天赋/营地侧增益位预留)用尽后 GP 付费刷新(ceil(20×1.8^已付费刷) provisional——调参表旋钮 shop_refresh_*);重抽=同 pool_draw 共享池抽签(shop_draw 恰一新 scope),池空=不可刷新合法态;进店/离开双向清零付费刷计数。**三选一同款付费档(v0.16 2026-10-06 用户令——刷新对齐商店)**:提升三选一免费双源(刷新件 X/冒险池 Y,机制正主=[秘宝](../排雷循环/秘宝.md)三选一刷新双源节)用尽后 GP 付费刷新——读同 shop_refresh_* 两旋钮(单点调参)、扣同一 GP 冒险账本(LevelRunner.spend_gp 单口)、重抽同 reward_pick 共享池抽签;付费刷计数每停点清零(与进店清零同构);钮常驻选择态、免费与付费两源皆穷=禁用。
|
||||
**共享池账本(v0.13 P1 共享池单点;v0.14 令牌库换代;迭代 20 案D 四级 104 张——池机制事实源=[奇物](奇物.md)「池结构与抽取」节)**:商店货架与奖励节点三选一是**同一个池**——货架候选 = 池∖{GP 袋, 刷新件}∪{凭证} = {攻击, 生命上限, 护甲, 行动点, 回复, 凭证} 六种(GP 袋计价物不自售切边、刷新件不上货架、秘宝件已随同调批出池;凭证与回复随迭代15② 入架——shop.tres pool_shelf 六行);**库存 = 剩余令牌数**(TP0——「池消耗即上限」,种类次数上限退役,与奖励兑付摘牌同一令牌库承载,全冒险一次性跨关卡不补给):商店买一件,奖励面就少一枚;「无限购买」收敛为**钱尽或池空为止**(池空=硬闸、A 链爬价=软闸),空货架合法态。货架 = **令牌级抽签**(同 kind 去重每 kind 至多一卡,价格公式 tier-blind 维持批②裁定,购买消费在架令牌本体 kind+tier)。禁止两渠道各自私记库存——消费走同一入口写同一令牌库(实现=AdventureRunner._bonus_deck 单点,冒险结构 owner;kind 维度派生计数 _bonus_taken 承载断点附随件与读数)。**货架独立刷新(v0.15 MC-1 2026-10-04——P-C2+Q2 裁)**:进店免费刷新次数(基础 0,天赋/营地侧增益位预留)用尽后 GP 付费刷新(ceil(20×1.8^已付费刷) provisional——调参表旋钮 shop_refresh_*);重抽=同 pool_draw 共享池抽签(shop_draw 恰一新 scope),池空=不可刷新合法态;进店/离开双向清零付费刷计数。**三选一同款付费档(v0.16 2026-10-06 用户令——刷新对齐商店)**:三选一免费双源(刷新件 X/冒险池 Y,机制现行事实源=[秘宝](../跨局循环/秘宝.md)三选一刷新双源节)用尽后 GP 付费刷新——读同 shop_refresh_* 两旋钮(单点调参)、扣同一 GP 冒险账本(LevelRunner.spend_gp 单口)、重抽同 reward_pick 共享池抽签;付费刷计数每停点清零(与进店清零同构);钮常驻选择态、免费与付费两源皆穷=禁用。
|
||||
|
||||
### 关卡大奖励:通关回血 + 提升三选一(钥石退役出大奖励)
|
||||
### 关卡大奖励:通关回血 + 专长三选一(钥石退役出大奖励)
|
||||
|
||||
关卡大奖励(本文含义:非末关通关时的固定+选择兑付)自 2026-09-30 用户拍板重构——原「固定发三件」(上限提升/血回满/钥石入账)退役,改两层兑付;钥石挪为 Boss/精英击杀的战斗掉落。兑付时点固定:关卡节点地图先调战斗结算的关卡收束接口清空关卡域库存,再向本文宣布关卡结束——大奖励在这之后、下一关开始之前兑付,顺序不可换。非末关每关各兑付一次(现行三关下至多两次,末关不兑付)。
|
||||
关卡大奖励(本文含义:非末关通关时的固定+选择兑付)自 2026-09-30 用户拍板重构——原「固定发三件」(上限提升/血回满/钥石入账)退役,改两层兑付;钥石挪为 Boss/精英击杀的战斗掉落。**2026-10-11 迭代 20 换代(用户裁 Q1):选择层由提升三选一换代为专长三选一——通关渠道是专长的独占渠道兼唯一直接渠道,候选按档配比加权抽取(机制事实源=[奇物](奇物.md)渠道轴交叉表与「池结构与抽取」节)。** 兑付时点固定:关卡节点地图先调战斗结算的关卡收束接口清空关卡域库存,再向本文宣布关卡结束——大奖励在这之后、下一关开始之前兑付,顺序不可换。非末关每关各兑付一次(现行三关下至多两次,末关不兑付)。
|
||||
|
||||
**三层奖励框架**:
|
||||
|
||||
| 层 | 触发时刻 | 类型 | 内容 |
|
||||
|---|---|---|---|
|
||||
| 提升三选一 | 关卡通关(非末关) | 玩家选择型 | 从提升池加权抽 3 个选项呈现,玩家点选 1 件兑付,另 2 件丢弃不可反悔 |
|
||||
| 专长三选一 | 关卡通关(非末关) | 玩家选择型 | 候选=专长按档配比加权抽取 3 件呈现(迭代 20 换代),玩家点选 1 件兑付,未选候选不落袋、本次选择不可反悔 |
|
||||
| 钥石掉落 | Boss / 精英怪击杀 | 战斗掉落型 | Boss 掉 2–3 个钥石(首杀/复杀两档读表)、精英怪掉 1 个(精英怪未实装,设定登记预留) |
|
||||
| 部分回血 | 关卡通关(非末关) | 固定兑付型 | 回复生效上限 × 回血比例(provisional 20%,参考恢复节点量级),封顶上限、不回满;满血回 0 合法 |
|
||||
|
||||
兑付次序:部分回血先行(按当刻账本与上限结算),随后呈现三选一**选择停点**——零自动推进,必须玩家点选才兑付,重复兑付被拒(结算受理只算一次语义同族)。选择停点可中断:断点附随件扩「奖励选择态 + 件获取次数计数」,续玩已选件不静默丢失;**候选逐位一致系停点快照承载的实现现状、非验收义务**(不一致不影响玩法——2026-10-01 用户裁决,见「冒险断点」节)。
|
||||
|
||||
**提升池六种×档位(v0.14——TP0 令牌池换代;配额/数值对全读冒险表,provisional 归[难度曲线与Boss](难度曲线与Boss.md)曲线调参批)**:
|
||||
**奖励节点三选一池(结构层——池机制事实源=[奇物](奇物.md)「池结构与抽取」节,2026-10-11 迭代 20 案D 换代)**:池 = 四级令牌库 70/25/9/0=104 张(案D——普通打底/优秀·稀有做翼/传说惊喜位空集;曝光槽 = 三选一 2 格全池 + 1 格优秀档以上子池,令牌 = 出现次数上限、概率与已拿上限解耦;构成数字与抽取细节全读[奇物](奇物.md)与 `adventure.tres`,provisional 归[难度曲线与Boss](难度曲线与Boss.md)曲线调参批,本节零复制)。**池为冒险级单例**(迭代 10 追加批):关卡内奖励节点的三选一与商店货架共享同一令牌库(同库同摘牌),库存 = 剩余令牌数;消费 reward_pick 封闭随机流(主种子派生、[数据配置](../表现与支撑/数据配置.md)口径),同种子同操作序列同三选项可复放;**MC 策略 316-f**:autoplay 1 级优先度=最稀有(rarest>rare>common)、2 级=最左。断点附随件承载池余库逐枚还原;兑付语义归[关卡节点地图](关卡节点地图.md)。
|
||||
|
||||
| 件 | 兑付 | 生效方式 | 档位构成(配额) | 件值(小/大) |
|
||||
|---|---|---|---|---|
|
||||
| 攻击力提升(flat) | 加算区攻击轴累加 | 覆盖值通道,对后续每战生效 | 普通 18 / 稀有 5 | +1 / +2 |
|
||||
| 生命上限提升(flat) | 加算区生命上限轴累加 | 覆盖值通道(不连带当前生命) | 普通 17 / 稀有 5 | +5 / +10 |
|
||||
| 护甲等级提升(flat) | 加算区护甲轴累加 | 覆盖值通道 | 普通 17 / 稀有 5 | +1 / +2 |
|
||||
| GP 袋(定额入钱包) | GP 冒险账本入账 | 钱包收口扩「奖励入账」入口 | 普通 18 / 稀有 5 | 20 / 50 |
|
||||
| 恢复件(v2.2 新入池种类) | 当即回血(封顶生效上限) | 生命账本直改 | 稀有 5 | +6 |
|
||||
| 行动点件(AP +1/战) | 加算区行动点轴累加 | 每场战斗开始首轮行动点基线 +1 | 罕见 3 | +1 |
|
||||
|
||||
~~秘宝件~~(池种退役——迭代 11 第①批 T7 出池;罕见档原列「道具件 2」席位随之收窄,池总量 100→98——TP0 台账自决披露项)。
|
||||
|
||||
**抽取机制 = 令牌池洗牌不放回(v0.14 追认 b 实施形态,取代 E-S 加权洗牌)**:池 = 固定配额令牌库(普通 70/稀有 25/罕见 3=98 张,kind×tier 多重集);洗牌 = Fisher-Yates 不放回抽 3(**同 kind 去重每 kind 至多一枚**——「三选一=三种不同选项」体验延续;kind 出现率∝剩余令牌数,档位配额即分布、无独立权重 knob);**选中踢池、未选回池**(抽签不摘牌、兑付才摘牌);**池耗即枯竭**(余库不足出齐剩余,空库=零候选合法态直通);**种类次数上限退役**(池消耗即上限)。消费 reward_pick 封闭随机流(主种子派生、[数据配置](../表现与支撑/数据配置.md)口径),同种子同操作序列同三选项可复放。**MC 策略 316-f**:autoplay 1 级优先度=最稀有(rarest>rare>common)、2 级=最左。**提升池为冒险级单例**(迭代 10 追加批):关卡内奖励节点的三选一与通关三选一共享同一令牌库(同库同摘牌),兑付语义归[关卡节点地图](关卡节点地图.md)。
|
||||
|
||||
**秘宝件受同调位约束**:道具持有上限 = 同调位数。本批挂过渡读数源 transitional_sync_slots(provisional 初始 1——首次冒险即可持 1 件道具,L1 通关大奖励即可体验道具件);正主 = 同调位里程碑谓词表(原提案八拍板(git 57da58c 已退役):0 起步、硬上限 3、增长 = 通关次数 + Boss 击杀数走 attunement_growth.tres),同调实施批落地后切换读数源为谓词表实时求值。获取渠道约束形态(迭代 10 过渡承载):三选一道具件超位触发**替换交互**(现有件与新件 N+1 选 N——丢任一原有件腾位收新,或放弃新件不获取;终态恒 ≤ 同调位);奖励节点与战斗内渠道超位**不授予**(候选拒绝 + 掉落沉没,逐行归因留痕)——停点渠道全覆盖的替换交互随同调实施批统一收口(06 在册)。
|
||||
**秘宝件受同调位约束**(2026-10-09 注:道具件已随迭代 11 第①批 T7 出池——三选一/奖励节点/战斗内渠道现行零道具件投放,下述渠道约束与替换交互无现役触发面,保留作渠道恢复时的契约口径;同调位读数现行事实源=attunement_growth.tres 谓词表实时求值):道具持有上限 = 同调位数。读数源 = 同调位里程碑谓词表 attunement_growth.tres 实时求值(0 起步、硬上限 3、增长 = 通关次数 + Boss 击杀数——同调实施批 2026-10-03 落地,过渡读数源 transitional_sync_slots 已顺带退役;原提案八拍板 git 57da58c 已退役)。获取渠道约束形态(迭代 10 过渡承载):三选一道具件超位触发**替换交互**(现有件与新件 N+1 选 N——丢任一原有件腾位收新,或放弃新件不获取;终态恒 ≤ 同调位);奖励节点与战斗内渠道超位**不授予**(候选拒绝 + 掉落沉没,逐行归因留痕)——停点渠道全覆盖的替换交互随同调实施批统一完成(原 06 条目已随完成移除)。
|
||||
|
||||
最后一关通关不发三选一与部分回血:没有下一战可受益——只做冒险完成结算,末关 Boss 钥石照常入账。设计意图:清库之后才兑付、末关不兑付,都是从「奖励只朝下一战生效」这一条推出来的。
|
||||
|
||||
@@ -194,19 +182,19 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
|
||||
重开 = 全新一轮冒险:注入新主种子、从第一关、满血、空手——不是"重打刚才那一关"。上一局清零的是生命账本、库存与种子;唯一保留面是冒险摘要,它给每次死亡一个可对照的坐标("这局到第二层"),重开因此是新局面而不是复读。
|
||||
|
||||
主动放弃按与失败同型结算:已兑付的三选一件与回血不追回、已到手的保留,摘要标记未打穿。放弃请求只在非战斗期受理,战斗进行中一律拒绝(战斗域单事务在飞)。放弃的界面入口挂在[关卡节点地图](关卡节点地图.md)的选路覆盖层上——选路停点天然是非战斗期,按钮只在冒险模式开放(选路覆盖层只在冒险模式出现);战斗进行中没有选路停点,入口因此天然不可达,拒绝分支仅作防御兜底。
|
||||
主动放弃按与失败同型结算:已兑付的三选一件与回血不追回、已到手的保留,摘要标记未打穿。放弃请求只在非战斗期受理,战斗进行中一律拒绝(战斗域单事务执行期间)。放弃的界面入口挂在[关卡节点地图](关卡节点地图.md)的选路覆盖层上——选路停点天然是非战斗期,按钮只在冒险模式开放(选路覆盖层只在冒险模式出现);战斗进行中没有选路停点,入口因此天然不可达,拒绝分支仅作防御兜底。
|
||||
|
||||
主种子(本文含义:冒险开始时注入的一个随机种子,本局全部随机性都派生自它)在冒险开始时注入恰一次。冒险内的雷图生成、奖励抽取、遭遇掷骰与 GP 掉落掷定(消费 gp_drop 封闭流)全部派生自它,冒险内不重置、不逐关播种——早期切片"每关开局各自播种"是没有冒险层时的历史简化,已改写为全冒险单一种子。冒险的可复现域 = 主种子 + 全局取数计数器(统一随机流口径——ADR-0007 裁丙 2026-09-27 七流并一,语义权威归[数据配置](../表现与支撑/数据配置.md)),供复盘与快照(见[存档序列化](../表现与支撑/存档序列化.md))。重开抽到的种子与上一局相同是允许的(随机源范围小,撞种子不算错误),但生成新种子不得复用玩法里的随机数。
|
||||
主种子(本文含义:冒险开始时注入的一个随机种子,本局全部随机性都派生自它)在冒险开始时注入恰一次。冒险内的雷图生成、奖励抽取、遭遇掷骰与 GP 掉落掷定(消费 gp_drop 封闭流)全部派生自它,冒险内不重置、不逐关播种——早期切片"每关开局各自播种"是没有冒险层时的历史简化,已改写为全冒险单一种子。冒险的可复现域 = 主种子 + 全局取数计数器(统一随机流口径——2026-09-27 七流并一,语义权威归[数据配置](../表现与支撑/数据配置.md)),供复盘与快照(见[存档序列化](../表现与支撑/存档序列化.md))。重开抽到的种子与上一局相同是允许的(随机源范围小,撞种子不算错误),但生成新种子禁止复用玩法里的随机数。
|
||||
|
||||
### 冒险断点:中断可续玩的停点快照(迭代 8 卡①③)
|
||||
|
||||
冒险进行中随时关游戏走人(**中断**),下次启动可从最近停点继续——承载 = 存档 `breakpoint` 域(格式归[存档序列化](../表现与支撑/存档序列化.md),内容口径归本文)。
|
||||
|
||||
- **停点粒度**:快照只挂选路停点(入口呈现/战斗胜利后/兑付确认后的选路态)——这是唯一可恢复停点形态。战斗进行中不写快照:中断恢复后**当场战斗从头打**,棋盘中局不入档。
|
||||
- **七字段拍板面**:关卡序号 / 节点位 / 生命 / 本关加成区 / GP 钱包 / 商店已购档 / 已抽模板。附随件(续玩正确性必需,随批登记):主种子 + 取数计数器(rng 快照契约回填——续玩从断点号位精确续接原随机时间线,已抽模板零重抽)、钥石累计(Boss 掉落逐杀入账的中途值,终局摘要不失真)、已到节点序(关卡画面图条重建)、秘宝库存(奖励节点已选件防静默丢失)、秘宝库存(奖励节点已选件防静默丢失)、**奖励选择态**(三选一停点中断:已选件 / 同调位替换在途——续玩已选不丢失;候选一致性=快照现状非强求 feature,2026-10-01 用户裁决)、**件获取次数计数**(kind 维度派生账本——断点附随件与读数承载)、**令牌池余库**(bonus_deck 逐枚还原——TP0 扩列,池消耗即上限的续玩正确性承载;旧版断点缺键=满库重建防御口径,单版本周期)、**商店货架态**(当前货架三件 + 本次进店已购次数——P2 甲扩列随迭代 11 第②批;离开店=空架合法态,货架续玩由确定性重放承载:重进店同种子同货架逐位)。
|
||||
- **七字段拍板面**:关卡序号 / 节点位 / 生命 / 本关加成区 / GP 钱包 / 商店已购档 / 已抽模板。附随件(续玩正确性必需,顺带登记):主种子 + 取数计数器(rng 快照契约回填——续玩从断点号位精确续接原随机时间线,已抽模板零重抽)、钥石累计(Boss 掉落逐杀入账的中途值,终局摘要不失真)、已到节点序(关卡画面图条重建)、秘宝库存(奖励节点已选件防静默丢失)、**奖励选择态**(三选一停点中断:已选件 / 同调位替换在途——续玩已选不丢失;候选一致性=快照现状非强求 feature,2026-10-01 用户裁决)、**件获取次数计数**(kind 维度派生账本——断点附随件与读数承载)、**令牌池余库**(bonus_deck 逐枚还原——TP0 扩列,池消耗即上限的续玩正确性承载;旧版断点缺键=满库重建防御口径,单版本周期)、**商店货架态**(当前货架三件 + 本次进店已购次数——P2 甲扩列随迭代 11 第②批;离开店=空架合法态,货架续玩由确定性重放承载:重进店同种子同货架逐位)、**Y 刷新池余量**(attune_refresh_y——冒险周期池消耗余量随断点:续玩优先读断点、不自参数面整额重注入,堵「用完 Y 退菜单再续玩满血复活」可利用漏洞;旧断点缺键回退参数面=旧档行为零变化。2026-10-13 缺陷修批)。
|
||||
- **中断与退出两口径分离**(2026-09-29 用户裁决):中断(关游戏)= 留断点可续;**退出冒险**(放弃流程)= 失败同型结算 + **清除断点**——退出后「继续上局」不再出现。
|
||||
- **续玩**:自断点重建到最近停点(账面逐字段回填 + 随机流回填),停点处玩家重新选路。三结局(通关/失败/放弃)一律清断点——断点只活在一个进行中的冒险上。
|
||||
- 与测量面的关系:断点面只在注入存档承载的正式冒险路径生效;模拟/冒烟不注入 = 整面静默,MC 对拍零扰动。
|
||||
- 与测量面的关系:断点面只在注入存档承载的正式冒险路径生效;模拟/冒烟不注入 = 整面静默,MC 逐项比对零扰动。
|
||||
|
||||
### 与关卡节点地图的边界:收束点与接口四件套
|
||||
|
||||
@@ -218,7 +206,7 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
关卡收束点(关底 Boss 被击杀,或主角倒下)
|
||||
├─ 第一步:关卡节点地图调[战斗结算](../战斗循环/战斗结算.md)的关卡收束接口——清空关卡域库存,返回清空前计数
|
||||
└─ 第二步:关卡节点地图向冒险结构宣布关卡结束(通关 / 倒下)
|
||||
├─ 通关且非末关 → 部分回血 + 提升三选一停点 →(玩家点选兑付)开始下一关
|
||||
├─ 通关且非末关 → 部分回血 + 专长三选一停点 →(玩家点选兑付)开始下一关
|
||||
├─ 通关且是末关 → 冒险完成结算
|
||||
└─ 倒下 → 冒险失败结算
|
||||
```
|
||||
@@ -257,7 +245,7 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
3. 每场战斗结束:战斗结果上报到达,账本回写生命终值;上报为 0(倒下)直接走失败结算。
|
||||
4. 恢复点节点:治疗封顶回报到达,按比例回血并封顶。
|
||||
5. 关底 Boss 被击杀 = 收束点:关卡节点地图先调战斗结算清库,再向本文宣布关卡结束(通关)。
|
||||
6. 非末关通关:部分回血兑付 + 呈现提升三选一停点(玩家点选兑付恰一件),随后开始下一关;末关通关:只做冒险完成结算(Boss 钥石照常逐杀入账)。
|
||||
6. 非末关通关:部分回血兑付 + 呈现专长三选一停点(玩家点选兑付恰一件),随后开始下一关;末关通关:只做冒险完成结算(Boss 钥石照常逐杀入账)。
|
||||
7. 冒险结算(完成 / 失败 / 放弃)产出冒险摘要,回到待机;重开即全新一轮,回到第 1 步。
|
||||
|
||||
## P1 / P2 后置
|
||||
@@ -265,7 +253,7 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P2 | 冒险开始参数面消费 | 预留给未来跨局加成注入(MVP 空参数,结构同覆盖值通道);归元进度 |
|
||||
| P2 | 冒险长度扩展(多于三关) | MVP 两关对比愿景单局 20–40 分钟;扩关 = 内容批,节奏按真人单关时长数据定 |
|
||||
| P2 | 冒险长度扩展(多于三关) | 现行三关对比愿景单局 20–40 分钟;扩关 = 内容批,节奏按真人单关时长数据定 |
|
||||
|
||||
## 调参表
|
||||
|
||||
@@ -273,20 +261,20 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
|
||||
| 参数 | 域 | 现行值 | 说明 |
|
||||
|---|---|---|---|
|
||||
| 关卡行集(关数与节点链模板) | 关卡表逐关行 | 第一关现行,第二关随扩展批 | 加关 = 内容批(链行 + 敌我数值 + 新元素同批);MVP 链模板 = 两战 → 奖励 → 两战 → 恢复 → 关底 Boss(7 节点,战斗深度 5) |
|
||||
| 关卡行集(关数与节点链模板) | 关卡表逐关行 | 三关现行(逐关 templates 池 3 关 × 5,模板 0 = 回滚档——见[关卡节点图生成](关卡节点图生成.md)) | 加关 = 内容批(链行 + 敌我数值 + 新元素同批);L1 回滚档模板 = 两战 → 奖励 → 两战 → 恢复 → 关底 Boss(7 节点,战斗深度 5) |
|
||||
| 恢复比例 | int [0,100],逐关行 | 见 level.tres rest_heal_pct(provisional) | 恢复点回复生效上限的百分比;随上限加成同步放大;100 = 恢复点变全满泉,0 = 死节点 |
|
||||
| 上限提升 | int [0,999],冒险表逐件列 | adventure_table bonus_attack_flat / bonus_max_hp_flat / bonus_armor_flat(provisional) | 三选一属性件各自兑付值;值锚与上调约束归难度曲线与Boss |
|
||||
| 三选一件值(其余) | int [0,999],冒险表逐件列 | adventure_table bonus_gp_amount / bonus_ap_flat / bonus_aux_item_count(provisional) | GP 袋定额 / AP 件每战增量 / 道具件授予件数 |
|
||||
| 三选一权重 | int [1,99],冒险表逐件键 | adventure_table bonus_weight_attack / _max_hp / _armor / _gp(各 3)/ bonus_weight_aux / _ap(各 1)(provisional) | 加权洗牌不放回抽样权重(E-S weight-key) |
|
||||
| 件次数上限 | ~~int [0,99],冒险表逐件键~~(v0.14 退役——池消耗即上限) | adventure_table token_* 配额列族(TP0 令牌池——kind×tier 配额) | 达上限件先剔出牌库永不再现 → 池耗即枯竭;GP/道具件无次数上限 → 同池共耗 |
|
||||
| 三选一件值(其余) | int [0,999],冒险表 kind×tier 列族 | adventure_table curio_value_*(GP 袋 / AP 件 / 恢复 / 刷新,provisional) | 令牌件值读表;道具件授予件数随秘宝件出池退役 |
|
||||
| ~~三选一权重~~(v0.14 退役——令牌池档位配额即分布、无独立权重 knob) | — | — | E-S 加权洗牌不放回抽样权重随 TP0 令牌池换代退役 |
|
||||
| 件次数上限 | ~~int [0,99],冒险表逐件键~~(v0.14 退役——池消耗即上限) | adventure_table token_* 配额列族(TP0 令牌池——kind×tier 配额) | 达上限件先剔出牌库永不再现 → 池耗即枯竭 |
|
||||
| 通关回血比例 | int [0,100],冒险表单行全局 | adventure_table clear_heal_pct(provisional 20) | 通关部分回血回复生效上限的百分比;封顶上限不回满 |
|
||||
| 同调位过渡键 | int [0,9],冒险表单行全局 | adventure_table transitional_sync_slots(provisional 1) | 道具持有上限过渡读数源;正主 = 同调位里程碑谓词表(同调实施批,切换义务在册) |
|
||||
| ~~同调位过渡键~~(已退役——迭代 11 第①批 T7,过渡键随表退役) | — | 同调位读数源 = attunement_growth.tres 谓词表实时求值(slot_cap 3) | 切换义务已随 2026-10-03 同调实施批清偿 |
|
||||
| Boss 钥石掉落 | int [0,999],meta 表逐关行 | meta.tres boss_keystone 首杀 3 / 复杀 2(provisional) | 逐杀实时入账;精英怪掉 1 预留;消费方归元进度 |
|
||||
| GP 经济参数 | 商店表逐行 | 见 shop.tres gp_drops / level_gp_bonus / pool_shelf / price_a / price_b(provisional,registry 为准;legacy products / price_level_bonus 随对照模式保留) | 掉落均值与区间(普通/精英/Boss)、关级掉落加值、货架基价、A/b 价格因子;公式语义归本文,数值所有权归难度曲线与Boss曲线调参批 |
|
||||
|
||||
结构冻结(非调参项):序列线性无跳关、关底 Boss 恒为末节点、倒下即冒险终、大奖励构成 = 通关部分回血 + 提升三选一(钥石退役出大奖励,改 Boss/精英击杀掉落——2026-09-30 拍板重构)、一冒险一主种子、收束点先清库后宣布的次序。
|
||||
结构冻结(非调参项):序列线性无跳关、关底 Boss 恒为末节点、倒下即冒险终、大奖励构成 = 通关部分回血 + 专长三选一(按档配比加权抽取——2026-10-11 迭代 20 换代;钥石退役出大奖励,改 Boss/精英击杀掉落——2026-09-30 拍板重构)、一冒险一主种子、收束点先清库后宣布的次序。
|
||||
|
||||
参数联动:恢复比例与通关回血比例越厚通关越有余量(对冲杠杆语义归难度曲线与Boss);三选一属性件/AP 件抬高后续战斗强度,件值/权重/上限改值须按难度曲线与Boss的口径重扫通关率带(回血比例自「血回满」改 20% 系难度上压方向,带判定随批呈报)。
|
||||
参数联动:恢复比例与通关回血比例越厚通关越有余量(对冲杠杆语义归难度曲线与Boss);三选一属性件/AP 件抬高后续战斗强度,件值/权重/上限改值须按难度曲线与Boss的口径重扫通关率带(回血比例自「血回满」改 20% 系难度上压方向,带判定顺带呈报)。
|
||||
|
||||
## 验收标准
|
||||
|
||||
@@ -298,17 +286,17 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
- 生命一致性:每战开始的上参 = 账本当前生命与生效上限;战后账本 = 上报终值;三处写入口均封顶在 [0, 生效上限]。
|
||||
- 恢复点:回复 = floor(生效上限 × 恢复比例 ÷ 100) 后封顶;满血腿回复 0 合法。
|
||||
- 大奖励覆盖:三选一兑付后首战的入参 = 基础表值 + 加算区累加含选中件(覆盖值通道);AP 件兑付后每场战斗开始首轮行动点基线 +1。
|
||||
- 抽签封闭:三选一掷 3 消费 reward_pick 封闭流,同种子同操作序列同三选项;单次零重复;达上限件(AP 用尽 2 次 / 属性件达 3 次)先剔牌库不出现在候选。
|
||||
- 同调位约束:道具终态持有恒 ≤ 同调位过渡键;超位时停点渠道触发替换交互(丢旧收新 / 放弃新件两路),战斗内渠道沉没不入;奖励节点渠道同受约束。
|
||||
- 抽签封闭:三选一掷 3 消费 reward_pick 封闭流,同种子同操作序列同三选项;单次零重复;令牌耗尽快即枯竭、不再出现在候选(池消耗即上限)。
|
||||
- 同调位约束:道具终态持有恒 ≤ 同调位(谓词表实时求值);超位时停点渠道触发替换交互(丢旧收新 / 放弃新件两路),战斗内渠道沉没不入;奖励节点渠道同受约束。(现行零道具件投放——约束保留作契约,见「秘宝件受同调位约束」节注。)
|
||||
- 钥石逐杀:Boss 击杀后钥石累计增量 = boss_keystone 行值(首杀/复杀两档);大奖励面钥石入账零残留。
|
||||
- 收束次序:通关宣布到达时库存已被关卡节点地图先行清空;重复的关卡结束宣布被拒绝,账本与摘要零变化。
|
||||
- 覆盖义务:冒烟断言——行集内每个战斗与关底节点(关、深)在敌人与棋盘生成的数值表中有精确行;序列关数 = 行集关数。
|
||||
- 生效前提未兑现(第二关行缺行):以单关冒险运行(合法态),越界关断言显式跳过而非失败。
|
||||
- 放弃:战斗中的放弃请求被拒绝;非战斗期放弃按失败同型结算,已获大奖励不追回;放弃入口仅在选路停点呈现且只在冒险模式开放。
|
||||
- 种子域:冒险内零随机流自开,一切随机派生自主种子(含 GP 掉落掷定的 gp_drop 封闭流);同种子同操作序列两局逐位可复现。
|
||||
- GP 账本封闭:钱包只有三个收口——战斗完成入账恰一次(掉落掷定 + 关级加值 + 战斗内缓冲合计)、商店购买出账、冒险收束清零;战斗内缓冲与钱包隔离,战斗进行中钱包零变动。
|
||||
- GP 账本封闭:钱包只有三个收支口——战斗完成入账恰一次(掉落掷定 + 关级加值 + 战斗内缓冲合计)、商店购买出账、冒险收束清零;战斗内缓冲与钱包隔离,战斗进行中钱包零变动。
|
||||
- GP 不留痕:GP 不入 meta 永久进度域、不入冒险摘要;重开后钱包从零开始(唯一豁免 = 断点域瞬态快照,见「冒险断点」节)。
|
||||
- 加算区同账:商店购买与三选一属性件读同一本统一冒险加算区(四轴);购买生命上限后当前生命与上限同步增加等量;入战参数 = 基础表值 + 加算区累加(覆盖值通道)。
|
||||
- 加算区同账:商店购买与三选一属性件读同一本统一冒险加算区(四轴);pool 模式购买生命上限只加上限不回当前生命(与三选一件同语义;legacy 对照模式当前生命与上限同步 +Δ);入战参数 = 基础表值 + 加算区累加(覆盖值通道)。
|
||||
|
||||
## 待办
|
||||
|
||||
@@ -325,11 +313,18 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
| v0.5 | 2026-09-20 | **GP+商店房批(用户拍板——与关卡节点地图 v1.1 / 战斗结算 v0.23 / 地图战斗资源 v0.15 / 难度曲线与Boss v0.18 / registry / 切片同批)**:① 新增「GP 冒险账本」节——钱包三收口(战斗完成统一入账 / 商店购买出账 / 冒险收束清零)+ 战斗内缓冲隔离语义(格面兑付入缓冲、战斗完成统一到账、战斗域零钱包状态);② 统一冒险加算区成文——商店购买与关卡大奖励上限提升同一本账(三轴 {攻击, 生命上限, 护甲等级},经覆盖值通道生效;购血 = 上限与当前生命同步 +Δ);③ GP 掉落掷定消费 gp_drop 封闭随机流(主种子派生)登记进主种子节与调参表;④ GP 不入存档、不入冒险摘要;范围表 / 大奖励表 / 依赖表 / 验收标准同步。数值全 provisional-pending-曲线调参批,行值读 shop.tres |
|
||||
| v0.6 | 2026-09-21 | **冒险结构实现批落地登记(切片 AdventureRunner + LevelRunner 账本外置 + AdventureTable 建表——与切片代码 / registry / 03 / 06 / roadmap 同批)**:本批只记实现批状态,正文规则口径零改动。落地面 = 三关正式序列生效(首页「开始冒险」)、接口契约四件套正式侧承载(开始关卡 start_level_external / 战斗结果上报共享账本直写 / 治疗封顶回报 apply_rest / 关卡结束 level_finished)、生命账本与 GP 冒险账本上交冒险结构层、大奖励非末关恰兑付一次(末关钥石照记)、冒险摘要五件事产出、主种子恰一次注入(registry rng_service new_adventure 调用权同批登记)、结算受理只算一次;06 待办「两关序列未生效」「切片行进代码与定稿的接口漂移」「冒险表未建表」三条随批解决移除。**规划书冲突按代码为准登记两处**:①大奖励 `_pending_next_level` 置位先于 emit(信号同步派发——处理器内立即确认需标记已就位);②放弃受理补 state=running 守卫(契约 7 结算受理只算一次的 abandoned 侧对齐) |
|
||||
| v0.7 | 2026-09-21 | **放弃入口界面呈现批(用户拍板「放弃接口也要有」——台账 119,推翻本文原「MVP 无界面入口、呈现后置」条款)**:① 放弃入口挂[关卡节点地图](关卡节点地图.md)选路覆盖层(选路停点 = 天然非战斗期;战斗中拒绝转为防御兜底分支——入口在战斗期不可达);② 入口只在冒险模式开放,单关测试直入口没有可放弃的冒险对象;③ 正文改现行口径(放弃节 / 验收标准放弃条),P1 后置表「放弃入口的界面呈现」随落地移除(同表「两关序列生效」系 v0.6 已落地漏收口,顺手同口径移除);④ 验收闸 = ui_probe 三断言(默认隐藏 / 冒险模式可见 / 首战中按下被拒 state 保持 running)+ 冒烟既有放弃两态 API 断言 |
|
||||
| v0.8 | 2026-09-23 | **单关测试直入口退役(用户拍板——唯一试玩入口 = 完整三关冒险)**:正文改现行口径两处(放弃节「按钮只在冒险模式开放」的理由从「单关直入口无冒险对象」改为「选路覆盖层只在冒险模式出现」;验收标准放弃条同步去单关直入口从句)——放弃语义对象(整局冒险)与拒绝分支零改动。版本历史行(v0.7)按 ADR 纪律不回改 |
|
||||
| v0.9 | 2026-09-23 | **停点前移批流程口径对齐(用户 2026-09-23 拍板冒险入口流程倒置修复——与 HUD框架 / 关卡节点地图 / battle.md / `../../../dev/architecture/adr-0006-board-node2d-rendering.md` 同批)**:P0 闭环「开始关卡」条改新流程口径——关卡节点地图加载节点图后停在入口选路停点(关卡画面,选路覆盖层常驻形态),行进自玩家首次选路开始;通读复核其余章节——「通关自动进下一关」属关卡序列层语义(进入下一关后仍出图选路,零矛盾)、接口契约四件套、收束点先清库后宣布、放弃入口(选路停点 = 天然非战斗期)等既有裁决零改动。**批内代拍板三项已追认(2026-09-24 用户确认)**(字母不重编 / 28px 归 C/D 底行 / 进度呈现由选路覆盖层节点态承载)不落本文修订面,登记见 HUD框架 v0.8 |
|
||||
| v0.10 | 2026-09-27 | **统一随机流批口径对齐(ADR-0007 裁丙——rng 架构批随批)**:主种子节「可复现域 = 主种子 + 各随机流计数器」改「主种子 + 全局取数计数器」(语义权威指数据配置);本文规则面零改动——主种子恰一次注入、重开即全新一轮、摘要五件事均不变。代码实证与七消费点迁移见数据配置 v0.5 |
|
||||
| v0.8 | 2026-09-23 | **单关测试直入口退役(用户拍板——唯一试玩入口 = 完整三关冒险)**:正文改现行口径两处(放弃节「按钮只在冒险模式开放」的理由从「单关直入口无冒险对象」改为「选路覆盖层只在冒险模式出现」;验收标准放弃条同步去单关直入口从句)——放弃语义对象(整局冒险)与拒绝分支零改动。版本历史行(v0.7)按文档纪律不回改 |
|
||||
| v0.9 | 2026-09-23 | **停点前移批流程口径对齐(用户 2026-09-23 拍板冒险入口流程倒置修复——与 HUD框架 / 关卡节点地图 / battle.md 同批;上位裁决 = 棋盘/战斗舞台 Node2D 迁移批)**:P0 闭环「开始关卡」条改新流程口径——关卡节点地图加载节点图后停在入口选路停点(关卡画面,选路覆盖层常驻形态),行进自玩家首次选路开始;通读复核其余章节——「通关自动进下一关」属关卡序列层语义(进入下一关后仍出图选路,零矛盾)、接口契约四件套、收束点先清库后宣布、放弃入口(选路停点 = 天然非战斗期)等既有裁决零改动。**批内代拍板三项已追认(2026-09-24 用户确认)**(字母不重编 / 28px 归 C/D 底行 / 进度呈现由选路覆盖层节点态承载)不落本文修订面,登记见 HUD框架 v0.8 |
|
||||
| v0.10 | 2026-09-27 | **统一随机流批口径对齐(2026-09-27 裁决——rng 架构批随批)**:主种子节「可复现域 = 主种子 + 各随机流计数器」改「主种子 + 全局取数计数器」(语义权威指数据配置);本文规则面零改动——主种子恰一次注入、重开即全新一轮、摘要五件事均不变。代码实证与七消费点迁移见数据配置 v0.5 |
|
||||
| v0.11 | 2026-09-29 | **冒险断点批(迭代 8 卡①③——中断可续玩/退出即结算两口径分离)**:核心规则新增「冒险断点」节(停点粒度/七字段拍板面+附随件/中断退出两口径/续玩语义/测量面静默);依赖表存档序列化行补断点域 owner 登记;验收标准 GP 不留痕条补断点域豁免口径。实现落点 = AdventureRunner 快照/清除/续玩 + SaveManager breakpoint 域 + rng restore_adventure |
|
||||
| v0.12 | 2026-10-01 | **关卡大奖励重构批(迭代 10——用户 2026-09-30 拍板案丙 + P-A~P-E 全裁毕;冒险表扩列 / meta.tres 重锚 / registry / 行动经济 / 元进度 / 01-核心循环 / 03-内容规模 / 难度曲线与Boss / 关卡节点地图 / 06 同批落文)**:①大奖励「固定三件套」退役改两层兑付——非末关通关 = 部分回血(clear_heal_pct 20 provisional)+ 提升三选一(池六种:攻击/生命上限/护甲/GP 袋/秘宝/行动点件;加权洗牌不放回 E-S weight-key 消费 reward_pick 封闭流;属性件上限各 3、AP 件上限 2,达上限先剔牌库);②统一冒险加算区三轴扩四轴 +行动点(AP 件 = 每场战斗开始首轮基线 +1);③钥石退役出大奖励改 Boss/精英击杀逐杀掉落(boss_keystone 重锚首杀 3/复杀 2,末关照常入账,精英掉 1 预留);④秘宝件受同调位约束(过渡键 transitional_sync_slots=1 provisional,正主 = 同调实施批谓词表;超位替换交互 N+1 选 N、战斗内渠道沉没不入);⑤断点附随件扩奖励选择态 + 件获取次数计数;⑥选择停点零自动推进/可中断。渲染层验证冻结(用户 2026-10-01 提前开工拍板——不合入 master、目检待批),目检清单随批交付 |
|
||||
| v0.13 | 2026-10-03 | **GP 商店房重构批(迭代 11 第②批——任务书 v1.3 全裁 P1 共享池/P1-a/P1-b 双甲/P2 甲/P3 甲/P4 ceil/P5 甲;06「GP 商店房重构」条 2026-10-02 用户裁决取代 09-20 无刷新裁决)**:①GP 冒险账本节商店购买行换代——价格公式 = ceil(基价 × b^(关序−1) × A^(本次进店已购次数))(A/b provisional 1.8/1.1;legacy 旧式随对照模式保留注记);②新增「共享池账本」段——商店货架 = 池∖{GP 袋}∖{秘宝件} 四种,库存=上限即库存全冒险一次性,两渠道同一账本(买一件=奖励面少一件),池空硬闸+空架合法态;③shop_draw 扩签登记;④统一冒险加算区段——pool 模式买上限不回血(池件=奖励件本体)、AP 件累加源并商店;⑤断点附随件扩商店货架态(shop_shelf/shop_visit_buys,P2 甲;确定性重放承载注记);⑥调参表 GP 经济参数行随表换代。实现=AdventureRunner/LevelRunner 池模式(缺省 legacy 对照承载,真实入口投 pool) |
|
||||
| v0.12 | 2026-10-01 | **关卡大奖励重构批(迭代 10——用户 2026-09-30 拍板案丙 + P-A~P-E 全裁毕;冒险表扩列 / meta.tres 重锚 / registry / 行动经济 / 元进度 / 01-核心循环 / 03-内容规模 / 难度曲线与Boss / 关卡节点地图 / 06 同批落文)**:①大奖励「固定三件套」退役改两层兑付——非末关通关 = 部分回血(clear_heal_pct 20 provisional)+ 提升三选一(池六种:攻击/生命上限/护甲/GP 袋/秘宝/行动点件;加权洗牌不放回 E-S weight-key 消费 reward_pick 封闭流;属性件上限各 3、AP 件上限 2,达上限先剔牌库);②统一冒险加算区三轴扩四轴 +行动点(AP 件 = 每场战斗开始首轮基线 +1);③钥石退役出大奖励改 Boss/精英击杀逐杀掉落(boss_keystone 重锚首杀 3/复杀 2,末关照常入账,精英掉 1 预留);④秘宝件受同调位约束(过渡键 transitional_sync_slots=1 provisional,现行事实源 = 同调实施批谓词表;超位替换交互 N+1 选 N、战斗内渠道沉没不入);⑤断点附随件扩奖励选择态 + 件获取次数计数;⑥选择停点零自动推进/可中断。渲染层验证冻结(用户 2026-10-01 提前开工拍板——不合入 master、目检待批),目检清单随批交付 |
|
||||
| v0.13 | 2026-10-03 | **GP 商店房重构批(迭代 11 第②批——需求卡片 v1.3 全裁 P1 共享池/P1-a/P1-b 双甲/P2 甲/P3 甲/P4 ceil/P5 甲;06「GP 商店房重构」条 2026-10-02 用户裁决取代 09-20 无刷新裁决)**:①GP 冒险账本节商店购买行换代——价格公式 = ceil(基价 × b^(关序−1) × A^(本次进店已购次数))(A/b provisional 1.8/1.1;legacy 旧式随对照模式保留注记);②新增「共享池账本」段——商店货架 = 池∖{GP 袋}∖{秘宝件} 四种,库存=上限即库存全冒险一次性,两渠道同一账本(买一件=奖励面少一件),池空硬闸+空架合法态;③shop_draw 扩签登记;④统一冒险加算区段——pool 模式买上限不回血(池件=奖励件本体)、AP 件累加源并商店;⑤断点附随件扩商店货架态(shop_shelf/shop_visit_buys,P2 甲;确定性重放承载注记);⑥调参表 GP 经济参数行随表换代。实现=AdventureRunner/LevelRunner 池模式(缺省 legacy 对照承载,真实入口投 pool) |
|
||||
| v0.14 | 2026-10-03 | **令牌池落地批(迭代 12 TP0——node-reward v2.2 追认 b 实施批)**:①提升池改**固定配额令牌池**——普通 70/稀有 25/罕见 3=98 张〔罕见档原列「道具件 2」随 aux_item 池种退役〔迭代 11 第①批 T7,落地晚于追认 b〕收窄,池总量 100→98——台账自决披露项〕;②抽取机制换代——Fisher-Yates 不放回抽 3 同 kind 去重每 kind 至多一枚(取代 E-S 加权洗牌),选中踢池未选回池、池耗即枯竭、**种类次数上限退役**;③恢复件新入池(rare 档 +6 当即回血封顶生效上限)+ 数值对(小GP 20/大GP 50 等);④MC 策略 316-f 落地(autoplay 1 级最稀有/2 级最左);⑤共享池账本段换代——库存=剩余令牌数,货架=令牌级抽签(价格公式 tier-blind 维持批②裁定),消费=AdventureRunner._bonus_deck 单点;⑥断点附随件扩令牌池余库(bonus_deck 逐枚还原;旧断点缺键=满库重建防御口径单版本周期);⑦现行基线锚换代=runsum_m4iter12_tp0_n20_20261003(normal 档配对读数同带 0/5/0) |
|
||||
| v0.16 | 2026-10-06 | **三选一刷新对齐商店批(用户令——「三选一对齐商店,得有刷新」;机制正主=秘宝.md 三选一刷新双源节同批落文)**:免费双源(刷新件 X/冒险池 Y)用尽后 GP 付费刷新——同 shop_refresh_* 两旋钮(curio_refresh_gp_cost 单点调参)、扣同一 GP 冒险账本(LevelRunner.spend_gp 新单口)、重抽同 reward_pick 共享池抽签;付费刷计数每停点清零;呈现=CurioPickOverlay.set_refresh_display 与商店 set_refresh_display 同构(钮常驻选择态、两源皆穷禁用不隐藏、角标=免费余量、价签行示 GP 价);通关停点刷新重发载荷带 refreshed 标直落选择面(不再重开胜利总结面)。店内门票专长三选一暂不挂刷新面(维持现状)。单测=tests/unit/core/curio_refresh_paid_test.gd |
|
||||
| v0.16 | 2026-10-06 | **三选一刷新对齐商店批(用户令——「三选一对齐商店,得有刷新」;机制现行事实源=秘宝.md 三选一刷新双源节同批落文)**:免费双源(刷新件 X/冒险池 Y)用尽后 GP 付费刷新——同 shop_refresh_* 两旋钮(curio_refresh_gp_cost 单点调参)、扣同一 GP 冒险账本(LevelRunner.spend_gp 新单口)、重抽同 reward_pick 共享池抽签;付费刷计数每停点清零;呈现=CurioPickOverlay.set_refresh_display 与商店 set_refresh_display 同构(钮常驻选择态、两源皆穷禁用不隐藏、角标=免费余量、价签行示 GP 价);通关停点刷新重发载荷带 refreshed 标直落选择面(不再重开胜利总结面)。店内凭证专长三选一暂不挂刷新面(维持现状)。单测=tests/unit/core/curio_refresh_paid_test.gd |
|
||||
| v0.17 | 2026-10-07 | **生命周期轴裁决随批(框架现行事实源=核心循环「生命周期轴」节同批落文)**:GP 冒险账本节补独立资源口径——GP 与钥石=两条平行独立资源不立统一上位概念(钥石归元进度同批落文);各层对 GP 的兑付=一次性转换入账(转换源结算即消尽、钱包长存,类A→类C 转换关系非横跨多层);既有账本语义零改动 |
|
||||
| v0.18 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①关卡序列节「第二关生效有前提、未落地前单关运行」过期句替换——三关序列 2026-09-21 起均已生效;②共享池账本货架候选订正——pool_shelf 六行 = 池∖{GP 袋, 刷新件}∪{凭证}(凭证与回复随迭代15② 入架),「∖{GP 袋} 四种」过期;③大奖励表提升三选一「加权抽 3、另 2 件丢弃」改令牌池口径(洗牌不放回抽 3、未选回池);④提升池表六种→七种——恢复件配额 稀有 5→3、补刷新件行(稀有 2/+1,迭代15② 入池);⑤秘宝件同调位读数源改谓词表实时求值(transitional_sync_slots 已退役、切换义务清偿,调参表过渡键行同改);⑥断点附随件「秘宝库存」重复短语去重;⑦P2 冒险长度扩展行「MVP 两关」改「现行三关」;⑧调参表关卡行集行「第一关现行、第二关随扩展批」改「三关现行(templates 池 3×5)」、三选一件值(其余)行 bonus_* 旧键改 curio_value_* 列族、三选一权重行整体标退役(E-S 随 TP0 换代)、件次数上限行删「GP/道具件无次数上限」残句;⑨验收三条订正——抽签封闭条「AP 用尽 2 次/属性件达 3 次先剔」改「令牌耗尽快即枯竭」、同调位条「过渡键」改「谓词表实时求值」、加算区同账条购买生命上限改 pool 模式语义(只加上限不回当前生命);⑩不负责表「节点奖励内容与库存语义→地图战斗资源」改「节点奖励件的分类与凭证定义→奇物」(提升池构成与库存归本文——两文档互指矛盾收口)。 |
|
||||
| —— | 2026-10-09 | 缺号注记:v0.15 未登记(对应批次=MC-1 商店独立刷新机制批〔2026-10-04,git ac3cee7 提交信息明记「冒险结构v0.15回写」、版本行未入表〕,登记见正文「共享池账本」节 v0.15 标签),卫生批仅注记不补写 |
|
||||
| v0.19 | 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):「秘宝件受同调位约束」段与验收「同调位约束」条补现状注——道具件已随迭代 11 第①批 T7 出池,三渠道零投放、替换交互无现役触发面(与关卡节点地图 v1.7「满位替换子交互随之不再触发」口径对齐),约束保留作渠道恢复契约;段内「(06 在册)」悬空指针改「原 06 条目已随收口移除」 |
|
||||
| v0.20 | 2026-10-12 | **迭代 20 反哺落文批·关卡大奖励换代(用户裁②——通关兑付=专长三选一按档配比加权抽取+回血,2026-10-11 迭代 20 Q1 已裁形态对齐)**:①章节标题/概览行/三层奖励框架表「提升三选一」→「专长三选一」(通关渠道=专长独占兼唯一直接渠道,未选候选不落袋);②提升池七种×档位表与洗牌抽取段整体退役——池机制事实源移交[奇物]「池结构与抽取」节(案D 四级 104/曝光槽 2+1/令牌语义/概率与 cap 解耦),本节压缩为结构层段(共享池冒险级单例/库存=剩余令牌数/reward_pick 封闭流/MC 策略 316-f/断点余库还原);③本文件「提升三选一」指通关兑付处换代「专长三选一」、指奖励节点选择处换代「奖励节点三选一」(生命周期图/加算区同账段/共享池账本段/关卡序列图/验收步骤 6/结构冻结——版本历史行引述豁免);④不负责表换代(池结构与抽取机制→奇物;共享池库存账本留本文);⑤~~秘宝件~~出池删除线行随提升池表退役(渠道恢复契约口径由「秘宝件受同调位约束」段承载不变);⑥刷新句「提升三选一免费双源」中性化「三选一免费双源」 |
|
||||
| v0.21 | 2026-10-13 | **Y 断点随存缺陷修批(06「天赋树实装批登记欠账三条」③——用户令单独开修)**:「冒险断点」节附随件清单扩 **Y 刷新池余量**(attune_refresh_y——续玩优先读断点、不自参数面整额重注入,堵「用完 Y 退菜单再续玩满血复活」可利用漏洞;旧断点缺键回退参数面=旧档行为零变化);快照时点不变(停点整体覆写已覆盖 Y 消耗后状态)。断点域登记与版本口径归[存档序列化](../表现与支撑/存档序列化.md) v1.8(v7 域后扩列不升版) |
|
||||
| v0.22 | 2026-10-15 | **简明技术中文用语规范批(用户令):词面修正 9 处**——「若干」→「三关(关数读关卡表)」1 处(冒险计量单位定义句);「报错」→「返回错误」1 处(加关纪律运行期拦截句);「收口」→「收支口」3 处(GP 冒险账本钱包句、表头、验收 GP 账本封闭条——名词义,对齐本文件生命账本「收支口」既有用词)+→「完成」1 处(同调位约束段「统一收口」);「不得」→「禁止」2 处(共享池账本两渠道句、主种子节生成新种子句);「在飞」→「执行期间」1 处(放弃受理句·战斗域单事务括注)。机制与数值零改动;不负责表 HUD 行「随 spec 命名收口退役」与同调位段「原 06 条目已随收口移除」系更名/条目处置记载(对照性文本)按豁免保留 |
|
||||
+227
-88
@@ -15,13 +15,144 @@
|
||||
>
|
||||
> 数值纪律:本文件只写概念、取值域与指路;每件给多少、效果是什么一律不进正文,事实源是 `game/data/tables/feats.tres` 与 `game/data/tables/adventure.tres`。
|
||||
|
||||
## 专长(重设计·基础框架 v1)
|
||||
|
||||
> 本节是专长分类的现行事实源(2026-10-07 用户终审认同写入文档)。件表为设计声明——数值全 provisional 归调参批;命名全为代号,正式命名归用户。**新框架已随迭代 20 专长实装批落地(2026-10-11):`feats.tres` 29 行=基础 27+迁入 2,行为与数据行 1:1。**
|
||||
|
||||
### 设计原则
|
||||
|
||||
1. **触发器句式**:每件专长的效果声明为「当 X 时 Y」(on / when / do 三字段,词表=效果引擎封闭集)。件的性格来自它挂在哪个事件上;combo 靠事件共享自然涌现——不设流派标签、不设档位机制。
|
||||
2. **事件族组织**(设计侧分组工具,不上卡面):开格系 / 插旗系 / 踩雷系 / 节奏系 / 战斗系五族。族名禁上玩家可见面(命名铁律)。
|
||||
3. **准入校验**:代价与收益须同账可核算——「纯代价件」禁止出生;契约件的代价必须一句话讲得清(契约不可怕,糊涂账才可怕)。
|
||||
4. **信息红线**:禁止任何效果让数字说谎(信息规则不豁免);揭示类效果只揭真格。
|
||||
5. **防兑换环**:互相转换的通道必须有损耗或每轮上限;单向通道优先。
|
||||
|
||||
> **落行注记(迭代 20 反哺写入,2026-10-12 追认⑤)**:「每第 N 次 / 积满触发」的数据行条件写 **N−1**——效果引擎 dispatch 时 when 先于 do 读计数器现值(预评估),故「满 N 触发」落行写 N−1(例:地质学家「满 4 种」写 eq 3、封印匠「每第 3 次」写 mod_eq ref 2、双管镐「每第 2 次」写 mod_eq ref 1)。行为仍为每第 N 次准点触发,单元测试钉住;新件落行照此口径。
|
||||
|
||||
### 基础件表(27 件,五族 + 跨族桥 + 契约尖点)
|
||||
|
||||
**开格系(6)**
|
||||
|
||||
| 代号 | on / when / do(声明要点) | 账 |
|
||||
|---|---|---|
|
||||
| 双管镐 | on 付费挖格:每第 2 次返 1 AP | 挖格效率体感 +25%;要持续挖才赚 |
|
||||
| 地质学家 | on 开格:每首开一种新类型资源格集 1 点,满 4 种→揭示 1 格 | 鼓励均衡开格路线;收益=真信息(扩签:类型集合计数器) |
|
||||
| 安全帽 | on 开安全格:攒 1 层;on 踩雷:耗层,每层减 1 伤害 | 开格↔踩雷的桥;攒层一次清零,自爆流友好 |
|
||||
| 跳格采掘 | on 挖开空白 0 格(连锁展开):攒 1 点,3 点→任意揭示 1 格 | 奖励连锁;收益=真信息(扩签:空白连锁判定) |
|
||||
| 爆破会计 | on 轮末:本轮挖格花费 AP ≥5 → +1 GP | 勤奋奖,账透明(扩签:本轮挖格花费) |
|
||||
| 边陲矿工 | on 挖开棋盘边缘格:产出 +1 | 微光时代可规划的路线选择(扩签:边缘格判定) |
|
||||
|
||||
**插旗系(4)**
|
||||
|
||||
| 代号 | on / when / do(声明要点) | 账 |
|
||||
|---|---|---|
|
||||
| 封印回响 | on 标中:计数;on 轮末:计数 ≥2 → 返 1 AP(下轮) | 推理压力换 AP 增量,不占既有兑付位 |
|
||||
| 示警烟火 | on 标中:揭示该雷周围 3×3 的资源类型(不揭危险格与安全格) | 标中换信息;信息红线安全(类型≠危险格与安全格) |
|
||||
| 封印匠 | on 标中:每第 3 次 → 该危险格中立移除 | 三次标中换一次排雷;频率闸死 |
|
||||
| 封印桩 | on 标中:本轮 AC +N | 生存奖励挂正确推理;与封印回响共享事件零新增挂点 |
|
||||
|
||||
**踩雷/受伤系(9)**
|
||||
|
||||
| 代号 | on / when / do(声明要点) | 账 |
|
||||
|---|---|---|
|
||||
| 疼痛记忆 | on 踩雷:攒 1 层;下一次攻击附加层值伤害,用后清零 | 雷罚转延迟输出;自爆流骨架(「下场战斗」系笔误,2026-10-12 追认⑥改定) |
|
||||
| 保险丝 | on 受伤:单次 ≥5 攒 1 点,2 点→护盾 1 层 | 大额伤害缓冲(扩签:单次伤害量) |
|
||||
| 见血开窍 | on 踩雷:揭示 1 格 | 错误资源化;零新增代价 |
|
||||
| 陷阱本能 | on 踩雷:本轮攻击 +N(当轮即效、不结转,走攻击面板乘区) | 踩雷当场变火力;与战斗系同乘区互相喂(2026-10-11 用户裁走面板) |
|
||||
| 连环陷阱 | on 同轮第 2 颗及以后的踩雷:每颗额外 +1 层(疼痛记忆同账) | 纯加成件、本身零收益——与疼痛记忆 combo 涌现(扩签:本轮踩雷数计数器) |
|
||||
| 陷阱爆发 | on 踩雷:全体存活敌受 雷伤×倍率 直伤 | 角色与怪物互相吃伤害;倍率 >1 系结构锚(引爆有代价、回报须更高),数值归调参批(扩签:雷罚伤害量) |
|
||||
| 血蜜 | on 踩雷:回复 N 生命 | 引爆仍然净亏血、只是亏得慢;比值 <1 系结构锚,N 归调参批 |
|
||||
| 石肤 | on 受伤:AC +1(本场累计,上限 M) | 受击成长型护甲——越挨打越硬;恒定减伤形态被否(用户裁「太硬霸」),M 归调参批 |
|
||||
| 背水 | when 生命 ≤50%:受伤额外 −N | 风险联动减伤——低血不再是纯劣势;自爆流刀口舔血兜底(扩签:生命比例〔条件事实——实现前置需求,06 在册〕) |
|
||||
|
||||
**踩雷转化对账锚(自爆流 kill-switch,2026-10-11 用户裁顺带登记)**:踩雷的净血账期望必须为负——雷伤 > 血蜜回复 + 其余转化件的血当量;对账归调参批,两轮数值迭代压不住则砍血蜜。防「见雷就踩」退化(喂雷流 R5 甲教训同源);主动/误踩不判定(用户裁:不预判玩家意图,拿件自选收益最高的操作)。
|
||||
|
||||
**跨族桥(插旗系 × 踩雷系)(1)**
|
||||
|
||||
| 代号 | on / when / do(声明要点) | 账 |
|
||||
|---|---|---|
|
||||
| 破封一击 | on 挖开有旗的危险格:额外 +1 层(疼痛记忆同账) | 旗=标定引信、挖=引爆——推理定位的显式回报;挂棋盘事实(挖开格当时有旗)非玩家意图判定(扩签:被挖格当时有旗) |
|
||||
|
||||
**节奏系(3)**
|
||||
|
||||
| 代号 | on / when / do(声明要点) | 账 |
|
||||
|---|---|---|
|
||||
| 弃图兑换 | on 停手:剩余 AP ≥3 → 剩余 AP 1:1 折为停手后首次攻击附加伤害(全额、用后清零;多攻击不拆分) | 资源转换件;单向无环(扩签:停手挂点)(落法 2026-10-12 追认⑧回写——停手后紧跟战斗段序,「下轮」前移为首战首攻) |
|
||||
| 一滴不剩 | on 轮始:上轮 AP 耗尽 → +1 AP | 奖励节奏打满;憋 AP 没份 |
|
||||
| 收盘 | on 轮末:本轮开格 ≥8 → +1 GP | 勤奋奖(扩签:本轮开格数) |
|
||||
|
||||
**战斗系(3)**
|
||||
|
||||
| 代号 | on / when / do(声明要点) | 账 |
|
||||
|---|---|---|
|
||||
| 斩首学者 | on 击杀:揭示 1 格 | 战斗反哺扫雷的桥;收益=真信息 |
|
||||
| 处刑台 | on 敌血量阈值 ≤30%:主角对其伤害 +N | 处刑线;数值归调参批 |
|
||||
| 战地包扎 | on 战斗胜利:回复 N 生命 | 战后通用恢复,不绑踩雷——非自爆流玩家的恢复答案 |
|
||||
|
||||
**契约尖点(1)**
|
||||
|
||||
| 代号 | 契约 | 账 |
|
||||
|---|---|---|
|
||||
| 血税 | 本局:踩雷 −2 最大生命;标中 +1 攻击(**均下一战起生效**——战末汇入冒险加算区) | 双向都痛都爽,一句话讲得清;双向同账、本局累积、冒险收束清零。max_hp/攻击系战界重建属性,即时改会被重建冲掉,故滞后一战兑付(2026-10-12 追认⑨回写;卡面 desc 同步补「下一战起生效」) |
|
||||
|
||||
### 迁入登记(秘宝域迁出件;实装批落地后并入件表)
|
||||
|
||||
| 代号沿用 | 目标族 | on / when / do 要点 | 备注 |
|
||||
|---|---|---|---|
|
||||
| 淬毒刃纹 | 战斗系(克制向) | on attack_commit;when 克制(advantageous);do 追加 +N | 数值归调参批 |
|
||||
| 封印爆裂 | 插旗系 | on flag_hit;do 全体存活敌 N 群伤 | 插旗系补第 4 件;数值归调参批 |
|
||||
|
||||
惊巢反制=退役进素材库(不迁入)。
|
||||
|
||||
### 扩签登记(迭代 20 实装已承载——2026-10-12 追认④写入文档换代)
|
||||
|
||||
- **落地结果**:事实候选 10 条中 6 条落 FACTS 词位(边缘格判定/空白连锁判定/单次伤害量/被挖格当时有旗/雷罚伤害量/生命比例),4 条改道 adventure 域计数器(类型集合计数器/本轮挖格花费/本轮开格数/本轮踩雷数计数器——跨事件累积量走计数器+value_event 比较,不占 fact 词位,T0 定架构);停手事件已落(dig_stop);实现随裁补位=battle_won 事件(战地包扎所需,登记未列)、mod_eq 算子(周期触发)、hp_ratio(百分比 int 口径)等 3 项事实、新效果类型 7 项。
|
||||
- **连带**:净化工兵退役,rewrite_board 效果类型自引擎除名(扩签「暂缓:清图事件」不受影响,继续挂起)。
|
||||
- **暂缓**:清图事件(随清图奖励题)。
|
||||
|
||||
### 老 27 件处置
|
||||
|
||||
老 27 件已全数退役,名单见[道具退役素材库](../../../research/道具退役素材库.md)表二;`feats.tres` 在役行随重设计实装批删除替换。任何一件要进新体系须重新过准入校验、分界尺与定义卡三关,不默认继承。
|
||||
|
||||
## 资源(重设计·基础框架 v1)
|
||||
|
||||
> 本节是资源分类的现行事实源(2026-10-07 五件新凭证用户裁准写入文档)。资源成员 = **转换源**:不是资源本身,是「到手即结算成独立资源或系统数值的凭证」——凭证加完消尽,被写入的账各有自己的寿命档位。判据句与归类方法见 §1.3/§1.4。**新凭证已随迭代 20 专长实装批落表(2026-10-11,新 5+留任 2)。**
|
||||
|
||||
### 凭证件表(新 5 + 留任 2;代号制命名归用户;稀有度档、配额与面值数值归调参批)
|
||||
|
||||
| 代号 | 写进哪本账(寿命档) | 一句话 | 备注 |
|
||||
|---|---|---|---|
|
||||
| 刷新券 | 刷新存量账(冒险级) | 存量刷新次数 +1 | 语义=存量加仓(已裁);实现依赖刷新件写错账修复(同批) |
|
||||
| 储备金袋 | 储备池 RAP(节点级) | 储备池 +N | 给停手/刷新雷图经济加燃料;战斗结束清零系既有语义,兼容 |
|
||||
| 同调电池 | 秘宝充能账(冒险级) | 一件已装配主动秘宝使用次数 +1(本次冒险,玩家选哪件) | 跨层写秘宝抽屉;充能冒险开始重置,兼容 |
|
||||
| 时沙 | 下一战首轮 AP 队列(拾取挂账,兑付即消尽) | 下一战首轮 AP +2 | 一次性节奏件;与「AP 上限+1」(属性轴)不撞——一个改池子、一个改上限(落法=hero_ap_bonus 既有通道,2026-10-12 追认⑦回写;拾取时战斗在途同样等下一战首轮) |
|
||||
| 完美保险 | 完美排雷资格(节点级) | 本战下一次标错不破坏完美资格 | 资格保护凭证 |
|
||||
| 小金币袋 | GP 钱包(冒险级) | (留任)+20 / +50 | 计价物不自售维持(不进商店) |
|
||||
| 应急口粮 | 生命账(冒险级) | (留任)回复 +6 | 在商店内(默认原则) |
|
||||
|
||||
- **上架原则**:新凭证按默认原则全渠道可出(分类成员都在池子里);稀有度档、配额与面值数值归调参批。
|
||||
- **池子档位形态与三选一抽取规则**:见「池结构与抽取(重设计 v1)」节(2026-10-07 用户裁案D——归档打底做翼+曝光槽)。
|
||||
|
||||
## 池结构与抽取(重设计 v1)
|
||||
|
||||
> 令牌牌库(奖励节点与商店共用)的组织与三选一抽取规则(2026-10-07 用户裁案D——归档打底做翼 + 曝光槽)。
|
||||
|
||||
- **令牌=出现次数上限**:每个成员在牌库里有 N 张令牌——拿了消耗、**没拿回池**(刷新重抽同样不消耗),所以「最多被拿 N 次」= 池里放 N 张,天然成立,不另设计数器;「只刷出、没拿」不计次数(现行 TP0 语义沿用)。
|
||||
- **概率与上限解耦**(设计约束,新内容必检):每个成员标注**两个独立属性**——概率位(档+权重/令牌数)与已拿上限(cap;拿了才计、刷出不计)。概率不决定上限、上限不影响概率。
|
||||
- **已知耦合问题(实装批选型注意)**:现行令牌模型里「N 张令牌」同时承担概率与上限两个职责,无法独立设定(例:档概率需 3 张 vs 单件限拿 2 次——3 张压不住上限、2 张保不住概率)。实现路径候选三案:①抽象权重表+独立已拿计数器(解耦彻底;代价=推翻 TP0 实体牌库模型、「池耗即上限」语义改写)②令牌池+提前退役计数器(保留模型;代价=名义概率与有效概率两层、对账复杂化)③维持耦合(设计自我设限——用户已否)。选型归实装批;影响面=MC 对账模型与断点存档(已拿计数器须进断点附随件)。
|
||||
- **内容归档(打底+做翼)**:普通档=属性件+小额钱(每拿都有底的面粉);优秀/稀有档=功能凭证与改手感件(期待位);传说档=惊喜位。归档按决策影响力、不按数值大小;面值数值归调参批。
|
||||
- **曝光槽**:每次三选一呈现 = **2 格按全池抽 + 1 格按「优秀档以上」子池抽**;高档子池空 → 该格回退按全池抽(池空直通同族兜底)。格数与档配比归调参批。
|
||||
- **凭证边界**:凭证(专长获取)维持独立计数体系(概率/配额/限购/计步保底),不进曝光槽子池——避免两套保底互相干扰。
|
||||
- **配额纪律**:新凭证入池的令牌数与档配额改动按 TP0 纪律须用户重裁(schema 结构锚,非调参项)。
|
||||
- **联动注记**:曝光槽提高高档件被拿速度,高档子池更快耗尽后回退全池(预期行为非异常);MC「最稀有优先」策略的读数影响随实装复核。
|
||||
|
||||
## 设计目的
|
||||
|
||||
一次冒险要走三关,如果走完时角色和开局毫无区别,中途的每一次取舍就都不算数了。奇物就是那个把"这一局玩成了什么样"落下来的东西:让玩家在冒险过程中不断变强,且每一局变强的方向不同。
|
||||
|
||||
它同时要和跨冒险的成长隔开:永久保留的东西是[魔法道具](../排雷循环/秘宝.md)(带在身上的物品)与[元进度](../跨局循环/元进度.md)(账号级的树),奇物只在当局存在,冒险收束即清零——它不是"你的存档变强了",而是"这一次下矿的你变强了"。
|
||||
它同时要和跨冒险的成长隔开:永久保留的东西是[秘宝](../跨局循环/秘宝.md)(带在身上的物品)与[元进度](../跨局循环/元进度.md)(账号级的树),奇物只在当局存在,冒险收束即清零——它不是"你的存档变强了",而是"这一次下矿的你变强了"。
|
||||
|
||||
**边界判据(一句话)**:**一次冒险内获得、冒险收束即清零的,是奇物;跨冒险跟着你走的,是魔法道具。**
|
||||
**边界判据(一句话)**:**一次冒险内获得、冒险收束即清零的,是奇物;跨冒险跟着你走的,是秘宝。**
|
||||
|
||||
这条判据走的是生命周期,不走"是不是物品"。原因:奇物这个筐里既装"角色自身的变化",也装金币这类一次性兑付物——用"拿在手里 vs 带在身上"去切,切不开它们,但用"当局清零 vs 跨局保留"能一刀切开,且对筐里所有东西都成立。
|
||||
|
||||
@@ -31,18 +162,18 @@
|
||||
|---|---|
|
||||
| 奇物的定义、三个分类、以及分类与渠道的交叉开关 | 每件效果怎么接入结算——归订阅事件所属文档([战斗结算](../战斗循环/战斗结算.md)、[行动经济](../排雷循环/行动经济.md)、[地形变异](../排雷循环/地形变异.md)) |
|
||||
| 生命周期边界:何时出现、何时生效、何时清零 | 卡面排版与界面呈现细则——见 [HUD框架](../表现与支撑/HUD框架.md) |
|
||||
| 获取渠道的口径与约束 | 魔法道具与元进度——归上表两份文档 |
|
||||
| 获取渠道的口径与约束 | 秘宝与元进度——归上表两份文档 |
|
||||
| 与相邻概念的边界 | 格面资源、关卡节点、商店本身的规则——归各自所属文档 |
|
||||
|
||||
## 在核心循环中的位置
|
||||
|
||||
```
|
||||
一次冒险 = 若干关卡串联,每关 = 一条节点链 + 一个关底 Boss
|
||||
一次冒险 = 三关串联,每关 = 一条节点链 + 一个关底 Boss
|
||||
|
||||
关内普通战斗节点 ──▶ 打完不给奇物,继续往下走
|
||||
│
|
||||
├─ 奖励节点 ──▶ 一次三选一(属性值提升 / 资源,罕见门票)
|
||||
├─ 商店 ──▶ 花钱买(属性值提升 / 资源,罕见门票)
|
||||
├─ 奖励节点 ──▶ 一次三选一(属性值提升 / 资源,专长凭证)
|
||||
├─ 商店 ──▶ 花钱买(属性值提升 / 资源,专长凭证)
|
||||
│
|
||||
关底 Boss 击败 ═══╗ ← 打掉关底 Boss 就是「通过这一关」,同一件事
|
||||
╰──────────╬──▶ 一次专长三选一(专长)
|
||||
@@ -61,7 +192,7 @@
|
||||
|
||||
| 分类 | 它给的是什么 | 落点 | 事实源 |
|
||||
|---|---|---|---|
|
||||
| **专长**(Feat) | 给规则。订阅结算管线的某个事件(订阅哪个事件 / 什么条件 / 什么效果三字段声明);同一标签的持有件数达阈值时质变 | 各结算段事件发射点;标签与档位由求值服务统一算 | `feats.tres`(逐项定义) |
|
||||
| **专长**(Feat) | 给规则。订阅结算管线的某个事件(订阅哪个事件 / 什么条件 / 什么效果三字段声明) | 各结算段事件发射点 | `feats.tres`(逐项定义) |
|
||||
| **属性值提升**(ASI) | 给数字。抬高角色某项战斗属性的基础值 | 冒险加算区的生命上限 / AC / 攻击三轴 | `adventure.tres`(种类配额与值) |
|
||||
| **资源** | 给"可用的量"。不抬高战斗属性,也不改规则,而是扩充你能调动的余量与机会 | 行动经济、三选一界面、局内钱包;**不进加算区、多数不进持有集** | `adventure.tres`(种类配额与值) |
|
||||
|
||||
@@ -71,9 +202,9 @@
|
||||
|
||||
专长改的是规则而不是数字——它给自己加一条"在某种条件下,本来不会发生的事现在会发生"的规则。它不是任何一条属性轴的延伸,玩家也无法用"加了多少"来衡量它。
|
||||
|
||||
专长带流派标签,同一标签的持有件数达到阈值时发生质变(档位机制归 [战斗结算](../战斗循环/战斗结算.md),本文件不展开)。这是它和另两类最直观的体感差别:属性提升是"我更耐打了",专长是"我现在会一件以前不会的事"。
|
||||
专长的现行体系以本文「专长(重设计·基础框架 v1)」节为现行事实源:触发器句式(on/when/do)+ 事件族组织,不设流派标签、不设集件档位。它和另两类最直观的体感差别:属性提升是"我更耐打了",专长是"我现在会一件以前不会的事"。
|
||||
|
||||
**专长门票也归专长**:非 Boss 渠道不直接给专长,而是给一张名为「专长获取」的门票——拿到后立刻开一次专长 N 选一。它给的是"一件你以前不会的事"(只是把选择推迟到一次三选一),按 1.4 的判据归专长,不归资源。详见 2.2。
|
||||
**专长凭证也归专长**:非 Boss 渠道不直接给专长,而是给一张名为「专长获取」的凭证——拿到后立刻开一次专长 N 选一。它给的是"一件你以前不会的事"(只是把选择推迟到一次三选一),按 1.4 的判据归专长,不归资源。详见 2.2。
|
||||
|
||||
#### 1.2 属性值提升:纯属性三项
|
||||
|
||||
@@ -85,24 +216,17 @@
|
||||
| AC(护甲) | 抬高角色的护甲 |
|
||||
| 攻击 | 抬高角色的攻击 |
|
||||
|
||||
三项都直接进冒险加算区,跨关携带且关间不清零。这一类是封闭的:只有这三项,多一项就要走文档修订。
|
||||
三项都直接进冒险加算区,跨关携带且关间不清零。这一类是封闭的:成员增减走文档修订。**行动点上限**自资源分类迁入本轴(2026-10-09 用户令)即一例,随实装批落表;落地前现役代码按三项运行。
|
||||
|
||||
#### 1.3 资源:四项
|
||||
#### 1.3 资源:转换源凭证
|
||||
|
||||
资源这一类装的是"不抬高战斗属性、也不改规则,但让你更有余地"的东西:
|
||||
资源这一类装的是"不抬高战斗属性、也不改规则,但让你更有余地"的东西。成员现行事实源=本文件「资源(重设计·基础框架 v1)」节的**凭证件表(新 5+留任 2)**;旧枚举四项的去向:行动点上限归属性值提升轴(见 1.2)、刷新次数由刷新券替代、金币与回复留任为小金币袋/应急口粮。
|
||||
|
||||
| 项 | 给什么 | 备注 |
|
||||
|---|---|---|
|
||||
| 行动点上限 | 每场战斗首轮可用的行动点更多 | 罕见档 |
|
||||
| 刷新次数 | 三选一界面可重抽的次数更多 | **作用对象是选择界面,不是角色**——见第 3 节的例外登记;奖励节点与商店两个渠道都可出现 |
|
||||
| 金币(GP) | 局内钱包进账 | 进钱包即花掉,不进持有集、不持续生效;**不进商店**(计价物不自售,见 2.4) |
|
||||
| 回复 | 当即回血 | 即时兑付,不进持有集、不持续生效;**在商店内**(见 2.4 的默认原则) |
|
||||
**资源为什么单独成一类**:它的成员不满足"抬高战斗属性"(那归属性值提升),也不满足"改写规则"(那归专长),但玩家拿到时的感受是一致的——"我能做的事变多了"。把它们跟属性提升混在一起,会让"加了多少攻击"这种可度量的提升和"多一次重抽"这种不可度量的余地摆在同一张候选卡上,玩家没法比。即时兑付的金币与回复同留本类、不独立成第四类(2026-10-05 用户定)——判据与资源完全同源,拆出去只会让读者多查一张表。
|
||||
|
||||
**资源为什么单独成一类**:它的成员不满足"抬高战斗属性"(那归属性值提升),也不满足"改写规则"(那归专长),但玩家拿到时的感受是一致的——"我能做的事变多了"。把它们跟属性提升混在一起,会让"加了多少攻击"这种可度量的提升和"多一次重抽"这种不可度量的余地摆在同一张候选卡上,玩家没法比。
|
||||
**判据句("资源"这个词太泛,这句是唯一的界定凭据)**:资源成员是**转换源**——不是资源本身,而是「到手即结算成独立资源或系统数值的**凭证**」,凭证加完消尽;被写入的账(GP 钱包/刷新存量/储备池/充能/时沙挂账/资格)各有自己的寿命档位。拿不准一项该归哪类时问三句:它进不进角色自己的属性数值(进→属性值提升);它改不改规则(改→专长);都不是、而是某本系统账上多出来的一笔一次性加仓的,归资源。
|
||||
|
||||
**判据句("资源"这个词太泛,这句是唯一的收口凭据)**:资源给的是**可以调动、可以花掉的余量**,不是角色基础属性的永久抬升。"资源"是常用词,能力资源、财富资源都叫资源——所以判据必须写死:拿不准一项该归哪类时,问它**会不会进角色自己的属性数值**。会进的归属性值提升,不会进、而是变成你手里多出来的次数或多出来的钱的,归资源。
|
||||
|
||||
**资源类内部的异质性(要诚实登记)**:金币与回复是**即时兑付**——拿到就消失,不进持有集,也没有"持有→生效→清零"的过程;行动点上限与刷新次数则进持有账本、当局持续有效。它们被归在同一类是因为"给的是余量"这个共同性质,不是因为生命周期相同。这条异质性在此显式登记,防止后续把金币当成会持续生效的东西去结算。
|
||||
**资源类内部的异质性(统一表述)**:凭证全部即时消尽——不存在「持有凭证」这种状态;异质性不在凭证上,而在**被写入的账的寿命**上:GP 钱包 / 生命账 / 刷新存量 / 秘宝充能 = 冒险级,储备池 / 完美资格 = 节点级,时沙挂账 = 至下一战首轮兑付(账清单对齐「凭证件表(新 5+留任 2)」节;「AP 上限」已归属性值提升轴,见 1.2)。登记此节防止把凭证当成会持续生效的东西去结算。
|
||||
|
||||
#### 1.4 分类判据
|
||||
|
||||
@@ -112,7 +236,7 @@
|
||||
|
||||
#### 1.5 命名出处
|
||||
|
||||
专长与属性值提升都取自 DND 规则书的既有名词:专长对应 Feat,属性值提升对应 Ability Score Improvement(ASI)。**顶层「奇物」取自 DND 魔法物品的九分类之一 Wondrous Item——官方中文译名就是「奇物」,是那个专门装不好归类但有奇效的东西的兜底杂类。** 用它做顶层名的理由:地下城里挖到的、商店里能买到的、能把你变强的、又确实贵重的东西,在 DND 里没有别的总称,只有 Treasure 和 Wondrous Item 两个候选,而 Treasure 偏向财物,装不下专长这种你会了件以前不会的事。奇物天生是杂类兜底,正好对应本概念下三个互不相干的分类(专长改规则 / 属性值提升改数字 / 资源给余量)——它们本来就没有共同点,能拢在一起的只有一个不好归类但有用的名字。**资源取"资源"这个常用词**(用户 2026-10-05 定)——行动点上限、刷新次数、金币、回复都是可以调动、可以花掉的余量。它确实偏泛(能力资源、财富资源都叫资源),所以这一类的判据句必须写死:**给的是可消耗或可重掷的余量,不是角色基础属性的永久抬升**——这一句是把"资源"从泛用词收回到本类定义里的唯一凭据,不能省。**三个分类的专名在 v2.7 去掉了「类」字后缀**——此前写作「机制类 / 属性提升类 / 资源类」,那是描述不是专名;去掉后缀后三个词各自都能独立成词、与 DND 官方中文一致,理由与逐条依据见 1.6 节。玩家可见文案只写效果,不出现任何分类名。
|
||||
专长与属性值提升都取自 DND 规则书的既有名词:专长对应 Feat,属性值提升对应 Ability Score Improvement(ASI)。**顶层「奇物」取自 DND 魔法物品的九分类之一 Wondrous Item——官方中文译名就是「奇物」,是那个专门装不好归类但有奇效的东西的兜底杂类。** 用它做顶层名的理由:地下城里挖到的、商店里能买到的、能把你变强的、又确实贵重的东西,在 DND 里没有别的总称,只有 Treasure 和 Wondrous Item 两个候选,而 Treasure 偏向财物,装不下专长这种你会了件以前不会的事。奇物天生是杂类兜底,正好对应本概念下三个互不相干的分类(专长改规则 / 属性值提升改数字 / 资源给余量)——它们本来就没有共同点,能拢在一起的只有一个不好归类但有用的名字。**资源取"资源"这个常用词**(用户 2026-10-05 定)——刷新券、储备金袋、时沙这类凭证与小金币袋、应急口粮都是可以调动、可以花掉的余量。它确实偏泛(能力资源、财富资源都叫资源),所以这一类的判据句必须写死:**给的是可消耗或可重掷的余量,不是角色基础属性的永久抬升**——这一句是把"资源"从泛用词收回到本类定义里的唯一凭据,不能省。**三个分类的专名在 v2.7 去掉了「类」字后缀**——此前写作「机制类 / 属性提升类 / 资源类」,那是描述不是专名;去掉后缀后三个词各自都能独立成词、与 DND 官方中文一致,理由与逐条依据见 1.6 节。玩家可见文案只写效果,不出现任何分类名。
|
||||
|
||||
### 1.6 三层结构与命名(本概念的完整层级)
|
||||
|
||||
@@ -122,16 +246,16 @@
|
||||
|---|---|---|---|
|
||||
| 一层 总称 | **奇物**(Wondrous Item) | 「这一局你捞到的全部奇物」 | 全部玩家可见面 |
|
||||
| 二层 分类 | **专长** / **属性值提升** / **资源** | 「这四件是属性值提升」 | 帮百科与成就页可见;卡面与详情页**不出现** |
|
||||
| 三层 单件 | 具体那一件的名称 | 奥术余烬、贯穿射击、小幅提升生命上限 | 全部玩家可见面 |
|
||||
| 三层 单件 | 具体那一件的名称 | 双管镐、疼痛记忆、生命上限 +1 | 全部玩家可见面 |
|
||||
|
||||
**两层是两件事,别混**:
|
||||
|
||||
- **命名是本节的规矩**——三个分类各有一个专名,文档、代码词族、帮百科一律用它。指代某个分类时直接说「专长」,不说「机制类」「专长那一类」。
|
||||
- **呈现是另一件事**(归 [battle](../ux/battle.md) 与 [node-reward](../ux/node-reward.md),本节不裁决):玩家看到某件奇物时,卡面只写**这件东西的名字与效果**,不附带它的分类。玩家可以从效果反推它属于哪一类,但界面不替他说破。
|
||||
- **呈现是另一件事**(归 [battle](../../ux/battle.md) 与 [node-reward](../../ux/node-reward.md),本节不裁决):玩家看到某件奇物时,卡面只写**这件东西的名字与效果**,不附带它的分类。玩家可以从效果反推它属于哪一类,但界面不替他说破。
|
||||
|
||||
**为什么两层都要有**:分类名在卡面上不出现,不等于玩家对它没有概念——帮助手册、百科条目、成就名称三处一定会用到它(「首次集齐 4 件专长」「三件属性值提升」),效果描述里出现指代时也需要名字(「本项属专长,同标签达到 4 件时质变」)。所以它必须是一个**玩家读得懂、读一遍就懂**的正式名词,不能是内部描述或自造词。
|
||||
**为什么两层都要有**:分类名在卡面上不出现,不等于玩家对它没有概念——帮助手册、百科条目、成就名称三处一定会用到它(「首次集齐 4 件专长」「三件属性值提升」),效果描述里出现指代时也需要名字(如「本项属专长」类归类指代)。所以它必须是一个**玩家读得懂、读一遍就懂**的正式名词,不能是内部描述或自造词。
|
||||
|
||||
**代码侧词族对应**(本批只做命名对齐,代码改动见任务书):顶层 `curio_*`(奇物总称)/ 专长 `feat_*` / 属性值提升 `asi_*` / 资源 `res_*`。`reward_*` 已被既有标识符占用(`reward_pick` / `reward_node` / `reward_preview`),**不得使用**。
|
||||
**代码侧词族对应**(本批只做命名对齐,代码改动见需求卡片):顶层 `curio_*`(奇物总称)/ 专长 `feat_*` / 属性值提升 `asi_*` / 资源 `res_*`。`reward_*` 已被既有标识符占用(`reward_pick` / `reward_node` / `reward_preview`),**禁止使用**。
|
||||
|
||||
### 2. 渠道轴:与分类的交叉
|
||||
|
||||
@@ -139,11 +263,11 @@
|
||||
|
||||
| 分类 \ 渠道 | 奖励节点 | 商店 | 关底 Boss 击败=通过这一关(见 2.1) |
|
||||
|---|---|---|---|
|
||||
| **专长**(专长) | 门票形式(见 2.2) | 门票形式(见 2.2) | **直接给**(唯一的直接渠道) |
|
||||
| **专长** | 凭证形式(见 2.2) | 凭证形式(见 2.2) | **直接给**(唯一的直接渠道) |
|
||||
| **属性值提升** | 出 | 出(口径「训练」) | 不出现 |
|
||||
| **资源** | 出 | 出(**金币除外**,见 2.4) | 不出现 |
|
||||
|
||||
**这张表的形状**:Boss 渠道是**专长的独占渠道**,也是唯一**直接**给专长的渠道;奖励节点与商店不直接给专长,但会出现通往专长的**门票**。另两类不走 Boss 渠道,只在奖励节点与商店两个并行出口出现。三条渠道的分工因此是"一块独占 + 两块并行",不是三块平分。这条形状本身要记住:它意味着专长的获取节奏与其他奇物的获取节奏**由完全不同的机制决定**——前者靠打赢,后者靠抽取与购买。
|
||||
**这张表的形状**:Boss 渠道是**专长的独占渠道**,也是唯一**直接**给专长的渠道;奖励节点与商店不直接给专长,但会出现通往专长的**凭证**。另两类不走 Boss 渠道,只在奖励节点与商店两个并行出口出现。三条渠道的分工因此是"一块独占 + 两块并行",不是三块平分。这条形状本身要记住:它意味着专长的获取节奏与其他奇物的获取节奏**由完全不同的机制决定**——前者靠打赢,后者靠抽取与购买。
|
||||
|
||||
**渠道定位 vs 默认原则(两句,别混)**:
|
||||
|
||||
@@ -160,34 +284,34 @@
|
||||
|
||||
**终局那关的 Boss 击败后不给**:兑付只发生在**还有下一关可去**的那些关底 Boss 身上——打赢最终 Boss 时冒险已经结束,没有后续关卡可消费,给了也无处生效。三关结构下,一局的确定性专长兑付次数由此确定(每个终局前 Boss 一次)。
|
||||
|
||||
**不新增节点类型**:专长挂在 Boss 节点的兑付面上(击败后追加一次专长三选一),[关卡节点地图](关卡节点地图.md) 的节点类型仍是封闭枚举五种(战斗 / Boss / 奖励 / 恢复 / 商店),词表零扩类。此前"要不要为专长新设一类节点"的悬案由此收口。
|
||||
**不新增节点类型**:专长挂在 Boss 节点的兑付面上(击败后追加一次专长三选一),[关卡节点地图](关卡节点地图.md) 的节点类型仍是封闭枚举五种(战斗 / Boss / 奖励 / 恢复 / 商店),词表零扩类。此前"要不要为专长新设一类节点"的悬案由此完成裁决。
|
||||
|
||||
#### 2.2 专长门票:非 Boss 渠道怎么给专长
|
||||
#### 2.2 专长凭证:非 Boss 渠道怎么给专长
|
||||
|
||||
奖励节点与商店**不直接给专长**——它们给的是一张**门票**:一个名为「专长获取」的奇物项,选中或买下之后,**立刻**开一次专长 N 选一(N 与 Boss 渠道的候选数同源)。
|
||||
奖励节点与商店**不直接给专长**——它们给的是一张**凭证**:一个名为「专长获取」的奇物项,选中或买下之后,**立刻**开一次专长 N 选一(N 与 Boss 渠道的候选数同源)。
|
||||
|
||||
**它归专长,不归资源**:它给的不是"余量",而是"一件你以前不会的事"——只是把选择推迟到一次三选一。按 1.4 的分类判据(去掉它之后角色少了什么),它属于专长。所以在交叉表上,专长在非 Boss 渠道的表现是**只以门票形式出现**,不是"不出现"。
|
||||
**它归专长,不归资源**:它给的不是"余量",而是"一件你以前不会的事"——只是把选择推迟到一次三选一。按 1.4 的分类判据(去掉它之后角色少了什么),它属于专长。所以在交叉表上,专长在非 Boss 渠道的表现是**只以凭证形式出现**,不是"不出现"。
|
||||
|
||||
**为什么非 Boss 渠道只给门票**:如果商店也能直接买到一个指定的专长,玩家就能用金币把构筑买出来,Boss 渠道的"打赢才拿到"就失去意义了。门票保留了惊喜(开出来的还是三选一,不是指定),但不让玩家用钱直接定点购买。
|
||||
**为什么非 Boss 渠道只给凭证**:如果商店也能直接买到一个指定的专长,玩家就能用金币把构筑买出来,Boss 渠道的"打赢才拿到"就失去意义了。凭证保留了惊喜(开出来的还是三选一,不是指定),但不让玩家用钱直接定点购买。
|
||||
|
||||
##### 门票的三个性质
|
||||
##### 凭证的三个性质
|
||||
|
||||
- **拿到即开,不可囤积**(用户 2026-10-05 定):门票不进持有集,选中或买下的同一时刻就开专长三选一。玩家不能攒几张一次连开——可囤积会让玩家把关键决策无限推迟到最优时机,破坏 Boss 渠道的节奏感;而且"攥着一张票"就是把持有物语义从后门放回来了。它叫"道具"只是卡面表现,不是持有物。
|
||||
- **不推翻确定性**:专长的主渠道仍然是 Boss 击败后,玩家不会因为没抽到门票就构筑不起来。
|
||||
- **罕见只在概率,不在价格**:门票的"罕见"**只体现在它出现的概率上**——它在货架上的价格与其他商品相当,不靠高价劝退。一局内**限购一次**(现行口径)。
|
||||
- **拿到即开,不可囤积**(用户 2026-10-05 定):凭证不进持有集,选中或买下的同一时刻就开专长三选一。玩家不能攒几张一次连开——可囤积会让玩家把关键决策无限推迟到最优时机,破坏 Boss 渠道的节奏感;而且"攥着一张票"就是把持有物语义从后门放回来了。它叫"道具"只是卡面表现,不是持有物。
|
||||
- **不推翻确定性**:专长的主渠道仍然是 Boss 击败后,玩家不会因为没抽到凭证就构筑不起来。
|
||||
- **稀有只在概率,不在价格**:凭证的"稀有"**只体现在它出现的概率上**——它在货架上的价格与其他商品相当,不靠高价劝退。一局内**限购一次**(现行口径)。
|
||||
|
||||
##### 保底:第 6 次必出
|
||||
|
||||
光靠概率,运气差的玩家可能整局都见不到门票——那就等于这个机制对他不存在。所以门票带一条**计步保底**:
|
||||
光靠概率,运气差的玩家可能整局都见不到凭证——那就等于这个机制对他不存在。所以凭证带一条**计步保底**:
|
||||
|
||||
> 连续 5 次三选一展示中没有出现门票,**第 6 次展示必定出现**。
|
||||
> 连续 5 次三选一展示中没有出现凭证,**第 6 次展示必定出现**。
|
||||
|
||||
| 项 | 口径 |
|
||||
|---|---|
|
||||
| 计数对象 | 三选一的**展示次数**,不是"节点次数"——**刷新后的重新展示计入次数**(用户 2026-10-05 明定含刷新) |
|
||||
| 计数范围 | 奖励节点与商店**共享同一计数**,不各算各的 |
|
||||
| 触发后 | 计数清零,重新累计 |
|
||||
| 与限购的关系 | 一局限购一次;**已经买过(限购用满)之后,保底不再触发**——门票已经用掉了,没有再给的理由 |
|
||||
| 与限购的关系 | 一局限购一次;**已经买过(限购用满)之后,保底不再触发**——凭证已经用掉了,没有再给的理由 |
|
||||
|
||||
**为什么是"展示次数"而不是"节点次数"**:保底要保的是"玩家看到的脸",刷新本来就是让玩家多一次看脸的机会,若刷新不计入,保底与刷新两套机制会打架——玩家可以用刷新绕开保底的计数语义。
|
||||
|
||||
@@ -197,14 +321,14 @@
|
||||
|
||||
商店这一侧走的叙事是「**训练**」——花代价向某位师父学习、借某种卷轴修炼、或把战斗攒下的钱换成一身本领。它不是买一个东西回来,而是把钱换成自己的本领,所以落到命名空间上和奖励节点那一侧完全相同:都是往同一个持有集里加一项奇物。
|
||||
|
||||
#### 2.4 渠道约束分三层:白名单 / 可计算谓词 / 显式例外
|
||||
#### 2.4 渠道约束分三层:白名单 / 可计算条件 / 显式例外
|
||||
|
||||
一个"某分类在某渠道出不出现"的判断,实际由三层叠起来决定:
|
||||
|
||||
| 层 | 是什么 | 判据来源 | 新增渠道或奇物时 |
|
||||
|---|---|---|---|
|
||||
| **一层 分类白名单** | 分类轴决定渠道——专长走 Boss、另两类走奖励节点与商店 | 分类本身 | 新分类按 1.4 判据归类,自动继承该类的渠道 |
|
||||
| **二层 可计算谓词** | 渠道与奇物之间的**结构性**关系,能算出来 | 对象与渠道的内在关系 | **自动适用,不用改表** |
|
||||
| **二层 可计算条件** | 渠道与奇物之间的**结构性**关系,能算出来 | 对象与渠道的内在关系 | **自动适用,不用改表** |
|
||||
| **三层 显式例外清单** | 人为的设计选择,没有内在理由可推 | 设计决定 | **只能逐条加,每条必须写理由** |
|
||||
|
||||
**先诚实回答"计价物不自售不就是特判吗"**:**形式上是的**——它确实是在分类白名单之外又加了一道过滤,不是从分类推出来的。但它和三层那种"死特判"有实质区别:
|
||||
@@ -212,41 +336,43 @@
|
||||
| | 写法 | 新增渠道/奇物时 | 维护方式 |
|
||||
|---|---|---|---|
|
||||
| 死特判 | "GP 不进商店"(一条记录) | 每多一个例外加一条记录 | 靠人记住,容易漏 |
|
||||
| **可计算谓词** | "X 是渠道 C 的计价物 → X 不进 C"(一个函数) | **自动判定,不用改表** | 判据在对象属性上,不会漏 |
|
||||
| **可计算条件** | "X 是渠道 C 的计价物 → X 不进 C"(一个函数) | **自动判定,不用改表** | 判据在对象属性上,不会漏 |
|
||||
|
||||
所以准确的说法是:**它没有消除"在白名单外加过滤"这件事,但把过滤从"枚举例外"变成了"计算谓词"**。以后新增渠道或奇物,只要"不出现"的原因是**结构性**的——来自奇物与渠道的内在关系(计价物、即时兑付、需要先决条件等)——就能写成谓词自动算;如果原因是**设计性**的("我就是想让它在这一关不出"),那就只能进三层清单。
|
||||
所以准确的说法是:**它没有消除"在白名单外加过滤"这件事,但把过滤从"枚举例外"变成了"计算条件"**。以后新增渠道或奇物,只要"不出现"的原因是**结构性**的——来自奇物与渠道的内在关系(计价物、即时兑付、需要先决条件等)——就能写成条件自动判定;如果原因是**设计性**的("我就是想让它在这一关不出"),那就只能进三层清单。
|
||||
|
||||
**所以要害不是"有没有例外",而是"例外能不能被算出来"**。三层清单不是不能用,但每一条都必须写出理由;一条写不出理由的例外,就是坏味道,应该回头质疑分类是不是分错了。
|
||||
|
||||
**为什么不干脆拆成第四个分类(零例外的那条路)**:分类轴回答的是"给的是什么",金币给的是余量,和行动点上限、刷新次数同类。按"能不能进商店"去反推分类,等于**用渠道轴的性质去切分类轴**,两根轴又缠回一起了——这是本文件 v2.0 专门拆开的东西,不能为了消灭一条例外再缠回去。而且为一个只有一项的分类立枚举,读者会以为它和另三类是同一重量级的划分,实际它只是某一项恰好踩到了一条经济规则。
|
||||
**为什么不干脆拆成第四个分类(零例外的那条路)**:分类轴回答的是"给的是什么",金币给的是余量,和刷新券、储备金袋同类。按"能不能进商店"去反推分类,等于**用渠道轴的性质去切分类轴**,两根轴又缠回一起了——这是本文件 v2.0 专门拆开的东西,不能为了消灭一条例外再缠回去。而且为一个只有一项的分类立枚举,读者会以为它和另三类是同一重量级的划分,实际它只是某一项恰好踩到了一条经济规则。
|
||||
|
||||
三个方案的真实代价,摆出来不藏:
|
||||
|
||||
| 方案 | 例外数 | 代价 |
|
||||
|---|---|---|
|
||||
| 甲:GP 单独立第四个分类 | 0 | 用渠道轴切分类轴,两轴缠回;一项一类,分类失衡 |
|
||||
| **乙:可计算谓词(现行)** | **1 条谓词** | **分类干净,但"白名单外加过滤"这件事没消失,只是自动化了** |
|
||||
| **乙:可计算条件(现行)** | **1 条条件** | **分类干净,但"白名单外加过滤"这件事没消失,只是自动化了** |
|
||||
| 丙:死特判清单 | 1 条记录 | 每加一个例外加一条,靠记忆维护 |
|
||||
|
||||
**回复在商店内**(用户 2026-10-05 定):回复不是计价物,套不上「计价物不自售」,按默认原则(除登记的特殊规则外,分类内的都要在池子里)**它应当在商店中出现**。现行 `shop.tres` 的货架只有攻击 / 生命上限 / 护甲 / 行动点四项,回复不在其中——这是**现状与表格不对齐**,须在实施批补上,登记在 [06-待办清单](../../06-待办清单.md)。
|
||||
**回复在商店内**(用户 2026-10-05 定):回复不是计价物,套不上「计价物不自售」,按默认原则(除登记的特殊规则外,分类内的都要在池子里)**它应当在商店中出现**。现行 `shop.tres` 货架(pool_shelf 六行)已含回复——迭代15② 商店补回复批已按默认原则对齐落地(凭证行同批入架,见调参表)。
|
||||
|
||||
**当前在册的约束清单**(就这么两条,都要有理由):
|
||||
|
||||
| 约束 | 层 | 理由 |
|
||||
|---|---|---|
|
||||
| 金币不进商店 | 二层·谓词 | 计价物不自售——商店的计价物是 GP |
|
||||
| 专长在非 Boss 渠道只给门票 | 一层·分类自身的形态 | 见 2.2——防止用钱定点买构筑 |
|
||||
| 金币不进商店 | 二层·可计算条件 | 计价物不自售——商店的计价物是 GP |
|
||||
| 专长在非 Boss 渠道只给凭证 | 一层·分类自身的形态 | 见 2.2——防止用钱定点买构筑 |
|
||||
| 属性值提升与资源不出现在 Boss 渠道 | **不是约束** | 见 2.1——这是渠道轴的定位(Boss 是专长独占渠道),不属默认原则管辖 |
|
||||
|
||||
#### 2.5 在册事项
|
||||
|
||||
现行实现里**三条渠道完全共用同一个候选池**,三个分类出现条件一样、只有出现概率不同——上表的渠道分工是**目标状态,尚未实施**。相关的实施批次登记在 [06-待办清单](../../06-待办清单.md) 的 BD 分层条目下,本文件不复制。
|
||||
现行实现里**三条渠道共用同一个候选池**(商店货架按 2.4 可计算条件切边去掉计价物),三个分类出现条件一样、只有出现概率不同——上表渠道分工中的**凭证形式(非 Boss 渠道给凭证 + 保底限购)已随迭代15② 入表实装**(见 2.2 与调参表);**Boss 渠道直接给专长已裁随专长实装批本批落地**(2026-10-11 用户裁,不再分期)。相关的实施批次登记在 [06-待办清单](../../06-待办清单.md) 的 BD 分层条目下,本文件不复制。
|
||||
|
||||
**池结构选型澄清(2026-10-11)**:池结构正主=案 D(v3.3 写入文档,用户定夺在案);「概率与上限解耦」的实现路径(v3.4 在册三案)系**实装侧自选项,非用户裁定项**——按「实现设计不定于现在」的原裁定,实装批内依代码事实自选,不再上问。
|
||||
|
||||
### 3. 作用对象与范围
|
||||
|
||||
- **作用对象**:角色本人,以及角色参与的结算过程。奇物不改敌人、不改棋盘生成、不改关卡内容。
|
||||
- **刷新次数的例外**:它作用在三选一界面上,改的是"这一局里你能重选几次",而不是角色身上的任何数字。它是资源里唯一一条作用对象不是角色的项——留在这里是因为它满足另外三条:当局获得、当局有效、进同一份持有账本。这条例外在此显式登记,避免后续把它当成角色属性去结算。
|
||||
- **时间范围**:整局冒险。专长与属性值提升自获得起对本局剩余所有关卡生效,跨关携带且关间不清零;资源里的金币与回复是即时兑付,拿到即消费完。
|
||||
- **刷新券的例外**:凭证不进持有集——到手即结算进刷新存量账(冒险级)、加完消尽。它作用在三选一界面上,改的是"这一局里你能重抽几次",而不是角色身上的任何数字。它是资源里唯一一条作用对象不是角色的项——留在这里是因为它满足另外两条:当局获得、当局有效。
|
||||
- **时间范围**:整局冒险。专长与属性值提升自获得起对本局剩余所有关卡生效,跨关携带且关间不清零;即时兑付凭证(小金币袋 / 应急口粮)拿到即结算消尽。
|
||||
- **归属范围**:不进账号永久进度,不带到下一次冒险。
|
||||
|
||||
### 4. 生命周期
|
||||
@@ -260,9 +386,9 @@
|
||||
| 阶段 | 说明 |
|
||||
|---|---|
|
||||
| 候选池构建 | 冒险开局时一次建成。三个分类的候选**现同处一个令牌池**:属性值提升与资源按配额铺开,专长按定义表的有效行铺开。 |
|
||||
| 出现 | 玩家在渠道上看到若干候选(三选一的形式),看不到整个池。 |
|
||||
| 选定 | 玩家选定一项后,它从池中剔除,此后任何渠道都不会再见。选到「专长获取」时,立刻再开一次专长 N 选一——这次选择走专长的渠道语义,不占用原本的渠道。 |
|
||||
| 持有与兑付 | 专长与属性值提升进入持有集后立即生效,跨关携带;专长按同一标签的持有项数决定处于哪一档。金币与回复即时兑付,不入持有集。 |
|
||||
| 出现 | 玩家在渠道上看到 3 个候选(三选一的形式),看不到整个池。 |
|
||||
| 选定 | 玩家选定一项后消耗该成员的一张令牌(拿了才计、只刷出〔含刷新重展〕不计);该成员令牌耗尽后不再出现于任何渠道。选到「专长获取」时,立刻再开一次专长 N 选一——这次选择走专长的渠道语义,不占用原本的渠道。 |
|
||||
| 持有与兑付 | 专长与属性值提升进入持有集后立即生效,跨关携带。凭证即时结算入各自的账,不入持有集。 |
|
||||
| 清零 | 冒险以任一结局收束时整集清空;下次开局重建。 |
|
||||
| 断点恢复 | 进行中的冒险把持有集与剩余候选池一并写入断点,续玩后恢复到同一状态(断点里的键名沿用历史形态,不随本次改名变动)。 |
|
||||
|
||||
@@ -270,7 +396,7 @@
|
||||
|
||||
| 相邻概念 | 关系(只写关系,不写对方的规则) |
|
||||
|---|---|
|
||||
| [魔法道具](../排雷循环/秘宝.md) | 最需要分清的一对,判据是生命周期:**奇物当局清零,魔法道具跨冒险保留**。两者互不相通——奇物永不进同调位,魔法道具永不进当局随机渠道。 |
|
||||
| [秘宝](../跨局循环/秘宝.md) | 最需要分清的一对,判据是生命周期:**奇物当局清零,秘宝跨冒险保留**。两者互不相通——奇物永不进同调位,秘宝永不进当局随机渠道。 |
|
||||
| [元进度](../跨局循环/元进度.md)(树) | 树管账号永久的规则与容量,奇物管当局构筑,两层互不代替。 |
|
||||
| [战斗结算](../战斗循环/战斗结算.md) | 专长订阅的事件发射点位于结算管线的各段;事件词汇与发射时机归结算文档。 |
|
||||
| [行动经济](../排雷循环/行动经济.md)、[地形变异](../排雷循环/地形变异.md) | 部分事件(付费开掘 / 地形受伤)落在行动点收对价与地形处理上,语义归各自文档。 |
|
||||
@@ -283,15 +409,15 @@
|
||||
| 类型 | 内容 |
|
||||
|---|---|
|
||||
| 依赖(概念) | 角色、结算管线、行动点、地形、关卡节点地图、局内金币钱包、三选一界面 |
|
||||
| 依赖(数据) | `relics.tres`(专长定义行)、`adventure.tres`(属性值提升与资源的种类配额与值)、`shop.tres`(货架取舍) |
|
||||
| 输出(对外) | 持有集、生效中的分类投影、剩余候选池、档位求值结果、可用重抽次数 |
|
||||
| 依赖(数据) | `feats.tres`(专长定义行)、`adventure.tres`(属性值提升与资源的种类配额与值)、`shop.tres`(货架取舍) |
|
||||
| 输出(对外) | 持有集、生效中的分类投影、剩余候选池、可用重抽次数 |
|
||||
| 明确边界 | 不写账号进度、不改敌人与关卡内容、不承载具体数值 |
|
||||
|
||||
## P0 最小闭环 / P1・P2 后置
|
||||
|
||||
- **P0(已实现)**:三个分类可定义 → 进入候选池 → 在渠道上被选中 → 当局生效 → 收束清零。
|
||||
- **P1 后置**:三条渠道按第 2 节分工;刷新次数与专长获取两项入池;两项合成高阶项;同一标签收集到四项以上的后期表达。
|
||||
- **P2 后置**:商店里的攻击类型转换服务;喂雷流派是否保留(尚未拍板,登记在 [06-待办清单](../../06-待办清单.md))。
|
||||
- **P1 后置**:三条渠道按第 2 节分工——凭证形式(非 Boss 渠道给凭证+保底限购)已随迭代15② 入表实装(见调参表),其余分工(Boss 渠道直接给专长等)待实施。
|
||||
- **P2 后置**:商店里的攻击类型转换服务;喂雷玩法是否保留(尚未拍板,登记在 [06-待办清单](../../06-待办清单.md))。
|
||||
|
||||
## 调参表
|
||||
|
||||
@@ -299,11 +425,11 @@
|
||||
|
||||
| 参数 | 取值域 | 事实源 |
|
||||
|---|---|---|
|
||||
| 专长定义行(标识 / 显示名 / 稀有度 / 标签 / 效果说明 / 订阅行〔订阅哪个事件 on / 什么条件 when / 什么效果 do〕) | 各字段封闭枚举,行键白名单封闭;事件 / 效果类型 / 条件事实 / 算子四词表封闭(效果引擎单一事实源) | `game/data/tables/feats.tres` |
|
||||
| 专长门票(出现概率 / 配额 / 全局限量) | 整数 | **尚未入表**,见待办 |
|
||||
| 专长定义行(标识 / 显示名 / 稀有度 / 效果说明 / 订阅行〔订阅哪个事件 on / 什么条件 when / 什么效果 do〕) | 各字段封闭枚举,行键白名单封闭;事件 / 效果类型 / 条件事实 / 算子四词表封闭(效果引擎单一事实源);稀有度档=新四级(普通/优秀/稀有/传说),schema 字段双脱钩(字段在、设计面按档配比加权) | `game/data/tables/feats.tres` |
|
||||
| 专长凭证(出现概率 / 配额 / 限购次数 / 保底计数阈值) | 整数,四参数全 provisional | 已入表(迭代15② 凭证行——`shop.tres` + `adventure_table.gd`) |
|
||||
| 属性值提升种类 | 封闭三项:生命上限 / AC / 攻击,扩项走文档修订 | `game/data/schemas/adventure_table.gd` |
|
||||
| 资源种类 | 行动点上限 / 金币 / 回复(**刷新次数与专长获取两项尚未入表**,见待办) | 同上 |
|
||||
| 稀有度档位 | 封闭三档(普通 / 稀有 / 罕见);三档配额是结构锚,改总量须重新拍板而非调参 | 同上 |
|
||||
| 资源种类 | 种类现行事实源=「凭证件表(新 5+留任 2)」节;凭证已入表(迭代15②) | 同上 |
|
||||
| 稀有度档位 | 封闭四级(普通 / 优秀 / 稀有 / 传说);配额是结构锚,改总量须重新拍板而非调参 | 同上 |
|
||||
| 各分类种类 × 档位的配额与值 | 整数 | `game/data/tables/adventure.tres` |
|
||||
| 专长获取的全局限量 | 整数(一局内可获得的次数上限) | 同上 |
|
||||
| 一次三选一的候选展示数 | [1,6] | 同上 |
|
||||
@@ -312,28 +438,23 @@
|
||||
|
||||
1. 三个分类走同一套获取流程,代码里只有一个表示"已持有奇物"的集合。
|
||||
2. 一次冒险内获得的奇物在之后任何关卡都生效;开新冒险后持有集为空。
|
||||
3. 一项被选定的奇物不再出现在任何后续渠道。
|
||||
4. 每个流派标签至少有一项挂在排雷侧的结算触发点上(防止专长沦为纯战斗数值)。
|
||||
3. 一个成员被拿走后消耗其一张令牌;令牌数=该成员出现次数上限,拿了才计、只刷出(含刷新重展)不计;令牌耗尽后该成员不再出现。
|
||||
4. 专长件的收益必须挂在声明的条件上——把 when 去掉后收益仍然成立的无条件数值件不是专长,归属性值提升。
|
||||
5. 玩家可见的文案不出现分类名与内部分组标签——只写效果,归类让玩家自己推断。
|
||||
6. 文档与代码里提到它时只有"奇物"这一个名字;需要区分时用"专长/属性值提升/资源"描述,不得另造称呼。
|
||||
7. 刷新次数不进角色加算区——它只改三选一界面的可用重抽次数。
|
||||
8. 金币与回复不进持有集——它们是即时兑付,拿到即消费完。
|
||||
9. 金币不出现在商店货架上——这是「计价物不自售」谓词算出来的结果,不是给金币单独立的一个分类;它确实是在分类白名单之外加的一道过滤,只是这道过滤可自动计算而非靠枚举。
|
||||
6. 文档与代码里提到它时只有"奇物"这一个名字;需要区分时用"专长/属性值提升/资源"描述,禁止另造称呼。
|
||||
7. 刷新凭证不进角色加算区、不进持有集——刷新券到手即结算进刷新存量账,只改三选一界面的可用重抽次数。
|
||||
8. 即时兑付凭证(小金币袋/应急口粮)不进持有集——到手即结算消尽。
|
||||
9. 金币不出现在商店货架上——这是「计价物不自售」可计算条件自动判定的结果,不是给金币单独立的一个分类;它确实是在分类白名单之外加的一道过滤,只是这道过滤可自动计算而非靠枚举。
|
||||
10. 一个渠道一旦确定要出某个分类,该分类的成员就都在它的池子里——"渠道出哪些分类"不受这条约束,那是渠道轴的定位。
|
||||
11. 门票拿到即开,不进持有集,玩家无法囤积——选中或买下的同一时刻就开专长三选一。
|
||||
12. 门票带有计步保底:连续 5 次三选一展示未出现则第 6 次必出;计数跨奖励节点与商店共享,刷新后的重新展示计入次数,限购用满后保底不再触发。
|
||||
11. 凭证拿到即开,不进持有集,玩家无法囤积——选中或买下的同一时刻就开专长三选一。
|
||||
12. 凭证带有计步保底:连续 5 次三选一展示未出现则第 6 次必出;计数跨奖励节点与商店共享,刷新后的重新展示计入次数,限购用满后保底不再触发。
|
||||
|
||||
> 实装批落地前,现役代码按旧 27 件专长目录与旧资源成员在同框架下运行;新成员口径(27 件基础件表 / 凭证件表)自实装批起验。
|
||||
|
||||
## 待办
|
||||
|
||||
全部待办单点登记于 [06-待办清单](../../06-待办清单.md)(BD 分层条目、命名统一后续条目),本节不复制。
|
||||
|
||||
本节只点出四条由本版新立、尚未登记的判断来源:
|
||||
|
||||
- **回复归属已定(v2.5)**:留在资源,不独立成第四类。理由是它与金币同为**即时兑付**、都给的是可花掉的余量,拆出去之后第四类只有两项、且与资源的判据完全同源——分类的价值在于判据能一刀切得开,拆一个判据同源的类只会让读者多查一张表。
|
||||
- **专长门票尚未入表**:出现概率、配额、限购次数、保底计数阈值四个参数都没有事实源;入池时同样受档位结构锚约束(改总量须重裁而非调参)。
|
||||
- **专长总量与档位阈值的匹配——延后复裁(用户 2026-10-05 定"先不调整")**:终局 Boss 不给已定,一局确定性专长次数=终局前 Boss 的个数。三关结构下是两次,加上门票最多三次,而档位阈值是同标签 ≥2 档一 / ≥4 档二——**档二(完全体)在三关结构下几乎不可达**。用户决定不动,理由是后续会有第四关,且届时可能另做获取侧的调整。**复裁触发条件:第四关内容批落地后实测,若配合仍太少再调**。登记于此防止它被忘掉。
|
||||
- **charge 标签件数不足(数据缺陷,独立登记)**:档二要求同标签 ≥4 件,而 `relics.tres` 里 charge 标签**只有 3 件**——即使获取次数无限,charge 流派也永远达不到档二。这与渠道结构无关,是数据层缺陷,随上一条一并延后,但不要被上一条盖掉。
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 变更 |
|
||||
@@ -343,12 +464,30 @@
|
||||
| v1.2 | 2026-10-05 | 专长渠道落定:关底 Boss 击败后兑付,不新增节点类型;罕见旁路明确为"普通奖励里的专长 N 选一"。 |
|
||||
| **v2.0** | 2026-10-05 | **顶层改名为「奖励」并重构为两根轴**。改名动因:筐里既装"角色自身的变化"也装金币这类一次性兑付物,用"自身提升 vs 持有物"已切不开,边界判据改由生命周期承担——**当局清零的是奖励,跨局带走的是魔法道具**。分类由两类改为**三个枚举**(当时的写法是「机制类 / 属性提升类 / 资源与机会类」,v2.7 才定名为专长 / 属性值提升 / 资源):专长 / 属性值提升(生命·AC·攻击)/ 资源(行动点上限·刷新次数·金币·回复)。新增第 2 节分类 × 渠道交叉开关表,明确两根轴互不决定;金币与回复不再被当作"该移出去的脏东西",而是安置在资源里,同时把它们的即时兑付性质显式登记为类内异质性。 |
|
||||
| v2.1 | 2026-10-05 | **交叉表收口(用户拍板)**:Boss 渠道**只出专长**,属性值提升与资源在此均不出现——三条渠道的形状定为"一块独占 + 两块并行",专长靠打赢、其余靠抽取与购买。Boss 兑付明确为**终局前**的 Boss,终局 Boss 不给(无后续关卡可消费)。新增 2.4 节**「计价物不自售」规则**:金币不进商店既不拆分类也不开特例,而是写成两轴交叉处的一条约束——商店的计价物是金币,故金币不进商店;按"能不能进商店"反推分类等于用渠道轴去切分类轴,两根轴会缠回去。 |
|
||||
| v2.2 | 2026-10-05 | **门票形态 + 约束分层 + 默认原则**。① 用户明确:奖励节点与商店不直接给专长,而是给一个**「专长获取」道具**,拿到后开专长三选一——交叉表专长在两渠道由"不出现"改为"**门票形式**";门票归专长(给的是一件以前不会的事,只是把选择推迟),理由是防止用钱定点买构筑。② 用户质疑「计价物不自售」本质是特判——**承认成立**:它确实是在分类白名单之外加的一道过滤,与死特判的区别在于把"枚举例外"变成"**可计算谓词**"(新渠道/新奖励自动判定)。2.4 改写为**三层约束**(分类白名单 / 可计算谓词 / 显式例外清单),并给出判断标准:结构性原因可写成谓词,设计性原因只能进清单且每条须写理由;三个方案(单独分类 / 谓词 / 死特判)的代价并列摆出,不藏折中。③ 用户定**默认原则**:除已登记的特殊规则外,分类内的东西都要在池子里——据此**回复应在商店内**,现行 shop.tres 货架缺它是"现状与表格不对齐",须在实施批补上。 |
|
||||
| v2.3 | 2026-10-05 | **门票机制细化 + 默认原则表述修正**。① 门票**拿到即开、不可囤积**(用户定)——不进持有集,防止玩家把关键决策无限推迟,也防持有物语义从后门回来。② 门票的"罕见"**只在概率不在价格**,一局限购一次,并加**计步保底**:连续 5 次三选一展示未出现则第 6 次必出;计数跨奖励节点与商店共享、**刷新后的重新展示计入**(用户明定含刷新),限购用满后保底不再触发。③ **修正 v2.2 的误读**:把"分类在某渠道不出现"当成需要理由的缺格是错的——渠道出哪些分类是渠道轴的定位(Boss 只出专长),不是例外;默认原则只管**分类内部**的成员齐不齐。④ 专长总量与档位阈值的匹配按用户决定**延后**(待第四关内容批后实测复裁),另单独登记 charge 标签仅 3 件、永远达不到档二的数据缺陷。 |
|
||||
| **v2.8** | 2026-10-06 | **效果行为数据驱动换代(内容数据驱动扩展批)**:专长的效果声明从「挂点+效果字典」换为「订阅行」——每件声明**订阅哪个事件(on)/ 什么条件(when)/ 什么效果(do)**,由效果引擎统一解释执行;旧挂点枚举消亡(事件名+效果类型取代)。配套事实:效果引擎 `game/core/effect_engine.gd`(事件 16 / 效果类型 24 / 条件事实 9 / 算子封闭词表);专长行 `feats.tres` 27 件全量迁移,秘宝被动六件同批订阅化;行为与迁移前逐位一致(MC 同种子 40 局逐位对拍实证)。
|
||||
| **v2.7** | 2026-10-05 | **三个子节点正式定名(用户拍板:去「类」字后缀)**。此前三个分类只有带后缀的描述(机制类 / 属性提升类 / 资源类),是文档层临时叫法,既非专名也非玩家可读的词。现定专名:**专长**(Feat)/ **属性值提升**(ASI)/ **资源**。定名依据:前两个是 DND 规则书官方中文,且与用户 v1.1 原话一致(当时原话就是「属性提升(ASI)」与「专长」,v1.1 落文时被加了「类」字后缀而退化成描述)。「机制类」这个叫法本身还有硬伤——它的 28 个成员里没有一件是"机制",实际是"在结算挂点上改一条规则",读者看到会误解为游戏机制。
|
||||
**新增 1.6 节「三层结构与命名」**(用户 2026-10-05 拍板做玩家可见的三层):奇物(总称)/三个分类/具体单件。明确**命名是本节规矩、呈现是另一件事**——分类名在卡面不出现(归 battle.md / node-reward.md 裁决),但帮百科、成就名、效果描述的指代三处都要用,所以它必须是玩家读一遍就懂的正式名词。连带:修掉批量替换撞出的五处「专长(专长)」类自撞、v2.0 历史行内的自撞并标注当时的旧称、registry 的「资源(命名待定)」过期标注。
|
||||
| **v2.6** | 2026-10-05 | **修正核心循环位置图:奇物不是打一场战斗给一份**(用户纠错)。原图把"关内 排雷推理 → 战斗结算 → 通关 → 得到一份奇物"画成一条链,读起来就是每场战斗通关都给一份——**错在把关内普通战斗的通关与关底 Boss 的通关混为一谈**。按 [冒险结构](冒险结构.md) 的定义,**通关一关 = 该关关底 Boss 被击杀**,所以"击败 Boss"与"通过这一关"是同一个时刻、不是一条链上的两步。改法:① 图改为分支结构(普通战斗节点→不给、往下走;关底 Boss 击败→专长三选一+通关回血);② **一关只兑付一次**写成显式口径;③ 2.1 节渠道名由"终局前 Boss 击败后"改为"关底 Boss 击败(即通过这一关)",并写明触发点就是关卡推进本身那一刻;④ 文首引言加"兑付频率"条,交叉表渠道名与 registry 同步;⑤ 连带修掉一处污染——节点类型封闭枚举五种里的"奖励"曾被 v2.4 批量替换误伤成"奇物"(节点类型里没有奇物这一类),已复原。 |
|
||||
|
||||
| **v2.5** | 2026-10-05 | **第三类定名「资源」**(用户拍板,父节点定为「奇物」后解锁)。定名依据:行动点上限 / 刷新次数 / 金币 / 回复都是可以调动、可以花掉的余量。「资源」偏泛(能力资源、财富资源都叫资源),因此在 1.5 写死判据句——**给的是可消耗或可重掷的余量,不是角色基础属性的永久抬升**,这一句是把泛用词收回本类定义的唯一凭据。**回复归属同时定案:留在资源,不独立成第四类**——它与金币同为即时兑付、判据同源,拆出去第四类只剩两项且与本类判据重合。附带修复:1.5 段末与「### 2. 渠道轴」标题粘连(缺换行)。 |
|
||||
| v2.2 | 2026-10-05 | **凭证形态 + 约束分层 + 默认原则**。① 用户明确:奖励节点与商店不直接给专长,而是给一个**「专长获取」道具**,拿到后开专长三选一——交叉表专长在两渠道由"不出现"改为"**凭证形式**";凭证归专长(给的是一件以前不会的事,只是把选择推迟),理由是防止用钱定点买构筑。② 用户质疑「计价物不自售」本质是特判——**承认成立**:它确实是在分类白名单之外加的一道过滤,与死特判的区别在于把"枚举例外"变成"**可计算谓词**"(新渠道/新奖励自动判定)。2.4 改写为**三层约束**(分类白名单 / 可计算谓词 / 显式例外清单),并给出判断标准:结构性原因可写成谓词,设计性原因只能进清单且每条须写理由;三个方案(单独分类 / 谓词 / 死特判)的代价并列摆出,不藏折中。③ 用户定**默认原则**:除已登记的特殊规则外,分类内的东西都要在池子里——据此**回复应在商店内**,现行 shop.tres 货架缺它是"现状与表格不对齐",须在实施批补上。 |
|
||||
| v2.3 | 2026-10-05 | **凭证机制细化 + 默认原则表述修正**。① 凭证**拿到即开、不可囤积**(用户定)——不进持有集,防止玩家把关键决策无限推迟,也防持有物语义从后门回来。② 凭证的"罕见"**只在概率不在价格**,一局限购一次,并加**计步保底**:连续 5 次三选一展示未出现则第 6 次必出;计数跨奖励节点与商店共享、**刷新后的重新展示计入**(用户明定含刷新),限购用满后保底不再触发。③ **修正 v2.2 的误读**:把"分类在某渠道不出现"当成需要理由的缺格是错的——渠道出哪些分类是渠道轴的定位(Boss 只出专长),不是例外;默认原则只管**分类内部**的成员齐不齐。④ 专长总量与档位阈值的匹配按用户决定**延后**(待第四关内容批后实测复裁),另单独登记 charge 标签仅 3 件、永远达不到档二的数据缺陷。 |
|
||||
| **v2.4** | 2026-10-05 | **顶层由「奖励」改名为「奇物」(Wondrous Item)**。用户否决了「奖励」「收益」与全部自造词(进益/造化/机缘/遇获),要求回到 DND/西幻既有名词。定名依据:DMG 魔法物品九分类中的 Wondrous Item,官方中文译名即「奇物」,是专装不好归类但有奇效之物的兜底杂类——正好对应本概念下三个互不相干的分类。此前考虑过的 Treasure(宝物)因偏财物、装不下专长而落选;roguelike 品类惯例 Relic 因用户否决遗物落选。**代码词族定为 `curio_*`、`ADVENTURE_CURIO`**(`reward_*` 已被 `reward_pick` / `reward_node` / `reward_preview` 占用,不能对齐)。 |
|
||||
| **v2.5** | 2026-10-05 | **第三类定名「资源」**(用户拍板,父节点定为「奇物」后解锁)。定名依据:行动点上限 / 刷新次数 / 金币 / 回复都是可以调动、可以花掉的余量。「资源」偏泛(能力资源、财富资源都叫资源),因此在 1.5 写死判据句——**给的是可消耗或可重掷的余量,不是角色基础属性的永久抬升**,这一句是把泛用词收回本类定义的唯一凭据。**回复归属同时定案:留在资源,不独立成第四类**——它与金币同为即时兑付、判据同源,拆出去第四类只剩两项且与本类判据重合。附带修复:1.5 段末与「### 2. 渠道轴」标题粘连(缺换行)。 |
|
||||
| **v2.6** | 2026-10-05 | **修正核心循环位置图:奇物不是打一场战斗给一份**(用户纠错)。原图把"关内 排雷推理 → 战斗结算 → 通关 → 得到一份奇物"画成一条链,读起来就是每场战斗通关都给一份——**错在把关内普通战斗的通关与关底 Boss 的通关混为一谈**。按 [冒险结构](冒险结构.md) 的定义,**通关一关 = 该关关底 Boss 被击杀**,所以"击败 Boss"与"通过这一关"是同一个时刻、不是一条链上的两步。改法:① 图改为分支结构(普通战斗节点→不给、往下走;关底 Boss 击败→专长三选一+通关回血);② **一关只兑付一次**写成显式口径;③ 2.1 节渠道名由"终局前 Boss 击败后"改为"关底 Boss 击败(即通过这一关)",并写明触发点就是关卡推进本身那一刻;④ 文首引言加"兑付频率"条,交叉表渠道名与 registry 同步;⑤ 连带修掉一处污染——节点类型封闭枚举五种里的"奖励"曾被 v2.4 批量替换误伤成"奇物"(节点类型里没有奇物这一类),已复原。 |
|
||||
| **v2.7** | 2026-10-05 | **三个子节点正式定名(用户拍板:去「类」字后缀)**。此前三个分类只有带后缀的描述(机制类 / 属性提升类 / 资源类),是文档层临时叫法,既非专名也非玩家可读的词。现定专名:**专长**(Feat)/ **属性值提升**(ASI)/ **资源**。定名依据:前两个是 DND 规则书官方中文,且与用户 v1.1 原话一致(当时原话就是「属性提升(ASI)」与「专长」,v1.1 写入文档时被加了「类」字后缀而退化成描述)。「机制类」这个叫法本身还有硬伤——它的 28 个成员里没有一件是"机制",实际是"在结算挂点上改一条规则",读者看到会误解为游戏机制。
|
||||
| **新增 1.6 节「三层结构与命名」**(用户 2026-10-05 拍板做玩家可见的三层):奇物(总称)/三个分类/具体单件。明确**命名是本节规矩、呈现是另一件事**——分类名在卡面不出现(归 battle.md / node-reward.md 裁决),但帮百科、成就名、效果描述的指代三处都要用,所以它必须是玩家读一遍就懂的正式名词。连带:修掉批量替换撞出的五处「专长(专长)」类自撞、v2.0 历史行内的自撞并标注当时的旧称、registry 的「资源(命名待定)」过期标注。
|
||||
| **v2.8** | 2026-10-06 | **效果行为数据驱动换代(内容数据驱动扩展批)**:专长的效果声明从「挂点+效果字典」换为「订阅行」——每件声明**订阅哪个事件(on)/ 什么条件(when)/ 什么效果(do)**,由效果引擎统一解释执行;旧挂点枚举消亡(事件名+效果类型取代)。配套事实:效果引擎 `game/core/effect_engine.gd`(事件 16 / 效果类型 24 / 条件事实 9 / 算子封闭词表);专长行 `feats.tres` 27 件全量迁移,秘宝被动六件同批订阅化;行为与迁移前逐位一致(MC 同种子 40 局逐位逐项比对实证)。
|
||||
| **v2.9** | 2026-10-07 | **专长体系推倒重设计裁(用户裁——道具三层重设计·奇物层)**:专长分类的**流派标签(archetype)与档位机制(集件质变)框架级作废**——用户判流派式设计「烂到极点」,且流派标签从未被认可为呈现面概念(命名铁律:流派名禁上玩家可见面,06「内部分类禁写入玩家可见面」条升格);现行 27 件全数待重设,重设计主权归用户,灵感原材料归调研批(design/research 两份 2026-10-07 调研);审查「六流派档位兑付位立项」方向随档位作废注销。专长=机制改写件的分类定位、凭证/渠道机制、属性值提升与资源两分类不受影响。新增准入校验(重设计适用):**代价与收益须同账可核算**——「纯代价件」禁止出生(深挖钻头/整备军备教训);头部加冻结遗留态横幅。 |
|
||||
| **v3.0** | 2026-10-07 | **专长基础框架落地批(用户终审认同——道具三层重设计·奇物层)**:新增「专长(重设计·基础框架 v1)」节=新现行事实源——设计原则五条(触发器句式/事件族组织不上卡面/准入校验同账可核算/信息红线/防兑换环)+基础件表 18 件(开格系6/插旗系3/踩雷系3/节奏系3/战斗系3+契约尖点1;代号制命名归用户)+扩签登记(新事实候选6+停手挂点+清图事件暂缓)+老27件处置(随实装批整体替换、仅作素材库不默认继承);横幅由「推倒重设计中」翻转「基础框架已立」;数值归调参批、实装归重设计实装批。 |
|
||||
| **v3.1** | 2026-10-07 | **档位名与 rarity 语义约束顺带(现行事实源=[核心循环](../../01-核心循环.md)「档位与获取规则」节 v1.5 同批写入文档)**:稀有度四级采用**普通/优秀/稀有/传说**——本层旧三档名映射=普通→普通、稀有→优秀、罕见→稀有,第四级「传说」=新增头奖位(正文档名扫改归奇物批次);**专长 rarity 语义约束落为文档约束**——Boss 三选一候选按档配比或加权抽取(双脱钩修复:此前 rarity 不影响抽选也不稳代表幅度;配比数值归调参批,MC「最稀有优先」策略的读数偏颇随实装一并校正);「获取概率提升不动保底」护栏同批。 |
|
||||
| **v3.2** | 2026-10-07 | **资源分类基础框架落地批(五件新凭证用户裁准——道具三层重设计·奇物层)**:新增「资源(重设计·基础框架 v1)」节=新现行事实源——定义句重写为**转换源**(成员=到手即结算成独立资源/系统数值的凭证,加完消尽,账各有寿命档)+凭证件表新 5 留任 2(刷新券/储备金袋RAP/同调电池/时沙/完美保险+小金币袋/应急口粮;代号制命名归用户,稀有度档配额面值归调参批)+上架原则(默认原则全渠道可出);§1.3 判据句与异质性节随迁重写(凭证全部即时消尽,异质性=账的寿命不在凭证上);池子档位形态(各档装什么)待用户裁后顺带 |
|
||||
| **v3.3** | 2026-10-07 | **池结构与抽取写入文档(用户裁案D——归档打底做翼+曝光槽,道具三层重设计·奇物层)**:新增「池结构与抽取(重设计 v1)」节——令牌=出现次数上限明文化(拿消耗/没拿回池/刷新不消耗,「只刷出没拿」不计次,TP0 语义沿用);内容归档=普通档面粉打底、优秀/稀有档功能凭证做翼、传说档惊喜位(按决策影响力归档不按数值);曝光槽=三选一 2 格全池+1 格「优秀档以上」子池(子池空回退全池,池空直通同族);凭证维持独立计数体系不进子池;配额改动须用户重裁(TP0 结构锚非调参);MC 策略读数影响随实装复核 |
|
||||
| **v3.4** | 2026-10-07 | **概率与上限解耦约束+耦合问题登记(用户指出的令牌模型冲突——道具三层重设计·奇物层)**:池结构节补两条——①**概率与上限解耦**(设计约束,新内容必检:概率位与已拿上限=两个独立字段,拿了才计/刷出不计,互不决定);②已知耦合问题与实现路径候选三案登记(令牌 N 张同时承担概率与上限不可独立设定——抽象权重表+独立计数器/令牌池+提前退役计数器/维持耦合已否;选型归实装批,影响面=MC 对账与断点存档)。用户裁:实现设计不定于现在,只落约束与问题点防后续撞车 |
|
||||
| **v3.5** | 2026-10-07 | **秘宝域迁出两件迁入登记(用户裁——秘宝层归留裁决同批)**:淬毒刃纹→战斗系克制向(`on attack_commit + advantageous → 追加 +N`);标中殉爆→插旗系(`on flag_hit → 全体存活敌 N 群伤`,插旗系补第 4 件;数值均归调参批);惊巢反制→退役进素材库(归[秘宝](../跨局循环/秘宝.md)速览「目录处置」同批);实装批执行数据迁移 treasure→feats 并补入件表 |
|
||||
| **v3.6** | 2026-10-09 | **旧条例外科摘除批(用户令——流派方向讨论中暴露的活矛盾)**:①分类表专长行、§1.1、生命周期表、P1 后置四处「流派标签·集件档位质变」残句摘除——v2.9 已框架级作废,残句以正文规则身份存活、持续误导设计(「战斗系占比须治理」伪问题即其衍生);②验收标准第 4 条 B1 铁律(每流派标签 ≥1 件挂排雷侧触发点)作废,替换为条件判据「收益必挂条件、无条件数值归属性值提升」(用户同日讯:纯属性增加不是专长,通过条件获得数值才是专长要做的);③待办两条(档位阈值匹配复裁 / charge 标签缺陷)因对象消亡注销。未动:冻结遗留(老 27 件清单与战斗结算侧现行代码行为描述)仍随重设计实装批整体替换;06-待办清单内三处描述性残留(BD 分层条目现状文 / charge 条 / 档位呈现裁点)归 06 条目自身生命周期,另行列出。 |
|
||||
| **v3.7** | 2026-10-09 | **去毒批(用户立「文档去毒」为首要任务)**:退役术语魔法道具→秘宝(正文各处,含关联边界表)/档名三档→四级扫改(罕见→稀有)/凭证与刷新入表状态订正(迭代15② 已入库,调参表与 P1 与待办节同步)/资源成员指路凭证件表/验收第 3 条改令牌口径——新老框架分家第一步,老章节冻结段随实装批整体替换不变。 |
|
||||
| **v3.8** | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①§1.6 命名节例子「同标签达到 4 件时质变」摘除(流派标签集件档位 v2.9 已框架级作废,换为不引退役机制的归类指代例);②渠道轴交叉表专长行自撞「专长(专长)」修为「专长」(v2.7 同类自撞漏网);③§2.4 回复节现状句订正——shop.tres pool_shelf 六行已含回复(迭代15② 落地,默认原则对齐),「货架四项、回复缺席须补上」过期表述替换;④§2.5 在册事项订正——凭证形式已随迭代15② 入表实装,渠道分工仅 Boss 渠道直接给专长仍为目标状态;⑤生命周期表选定行老规则「选定即从池中剔除、任何渠道不再见」改令牌口径(拿消耗、刷出不计、耗尽不再出现——对齐验收第 3 条与 TP0 在役语义);⑥依赖与输出表摘除「档位求值结果」(集件档位作废的漏网输出);⑦§1.2 补成员变动在途注(行动点上限归属性值提升轴,在役仍三项、迁动归实装批——对齐 §1.3 表下现行事实源注)。 |
|
||||
| **v3.9** | 2026-10-09 | **B3/B4 两裁写入文档(用户令)**:①P1 后置「两项合成高阶项」注销——非用户设计意图的脏信息,合成方向若需要按新体系重新生一件;②§3 刷新次数例外句口径换代——一律按最新设计口径:刷新次数由刷新券替代(凭证到手即结算进刷新存量账、加完消尽不进持有集),旧「进同一份持有账本」表述作废、随实装批整节删除 |
|
||||
| **v3.10** | 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):①§1.3 异质性节「被写入的账」清单对齐凭证件表——旧四项时代「AP 上限」摘除(已归属性值提升轴,§1.2 在途注),补生命账/秘宝充能两账;②依赖与输出表 `relics.tres` 改 `feats.tres`(表文件已随词族对齐批换代,data/tables/ 无 relics.tres——代码实证) |
|
||||
| **v3.11** | 2026-10-10 | **正文换代批(方案甲,用户裁「旧的删、误标改」——同秘宝.md v2.2 同法)**:①头部冻结横幅摘除——所指「流派/档位/27 件清单」旧章节正文已不存在,名单承载=[道具退役素材库](../../../research/道具退役素材库.md)表二;②专长/资源两节引言去「冻结遗留态/随实装批整体替换」错标,各落一句「新框架实装批落地前,现役代码按同框架运行」;③§1.3 旧资源四项枚举表删除(成员去向一行交代:行动点上限归属性值提升轴/刷新次数由刷新券替代/金币回复留任为小金币袋/应急口粮),回复归属裁定并入「资源为什么单独成一类」段;④§1.2 在途注与 §3 刷新例外去标注改正文(行动点上限归本轴/刷新券口径一律按最新设计);⑤§1.6 单件举例换新框架件(奥术余烬/贯穿射击→双管镐/疼痛记忆);⑥「谓词」用词清除——「可计算谓词」改「可计算条件」(正文与验收,版本历史行引述豁免);⑦验收 4/7/8/9 换代新口径+尾部现役代码运行线;⑧P1/P2 括注清算(已清偿/已注销条目由版本历史承载)+待办节收编为 06 单点指针。真旧内容承载=素材库表二+git 历史 |
|
||||
| **v3.12** | 2026-10-11 | **自爆流扩容批(用户逐裁——踩雷系从被动补偿转主动输出循环)**:踩雷/受伤系 3→7——新增爆芯(踩雷→本轮攻击 +N,走面板乘区)/连爆(同轮多雷递进加层,与疼痛记忆 combo 涌现)/爆心冲击(踩雷→全体敌 雷伤×倍率 直伤,倍率 >1 结构锚——「角色与怪物互相吃伤害」系用户形态本体:开安全格零代价、引爆有代价故回报须更高)/雷蜜(踩雷→回复 N,比值 <1 结构锚);新增跨族桥引信标定(挖开有旗危险格→+1 层——旗=标定引信、挖=引爆,插旗×踩雷推理闭环);扩签登记 +3(本轮踩雷数计数器/被挖格当时有旗/雷罚伤害量);**踩雷转化对账锚**顺带登记(净血账期望须为负,两轮压不住砍血蜜——喂雷流 R5 甲教训同源的 kill-switch);用户裁定:主动/误踩不判定(不预判玩家意图,拿件自选收益最高操作)、爆芯走面板、爆心冲击按倍率非折扣;防御向两件(保险丝/安全帽)保留不动——双刃剑两刃相辅相成;附带修正基础件表战斗系计数 3→2(v3.0 起表头与行数不符),件表总 18→23 |
|
||||
| **v3.13** | 2026-10-11 | **生存件扩容批(用户令「增加生存类的个数」——四类盘点呈报后逐裁)**:件表 23→27——①石肤(on 受伤:AC +1 本场累计上限 M)入踩雷/受伤系——恒定减伤形态被否(用户裁「太硬霸」),改受击成长型护甲;②背水(when 生命 ≤50%:受伤额外 −N)入踩雷/受伤系——风险联动减伤,低血不再是纯劣势;生命比例条件事实系其实现前置需求,用户批扩签+待办登记 06;③铁旗(on 标中:本轮 AC +N)入插旗系——生存奖励挂正确推理,与旗语回响共享事件;④战地包扎(on 战斗胜利:回复 N)入战斗系——战后通用恢复,补「恢复只服务自爆流」缺口。四类占比换代:减伤 2(安全帽/背水)/护甲 3(保险丝/石肤/铁旗)/恢复 2(雷蜜/战地包扎)对增伤 8 ≈ 1:1;用户口径订正=保险丝护盾归提升护甲类(AC 判定)、减伤专指受击直接扣减伤害 |
|
||||
| **v3.14** | 2026-10-11 | **实装前置两项裁定写入文档(用户裁)**:①§2.5——Boss 渠道直接给专长(主渠道、唯一直接渠道)**已裁随专长实装批本批落地不再分期**;②§2.5 新增池结构选型澄清——池结构正主=案 D(v3.3 用户定夺在案:归档打底做翼+曝光槽 2+1+令牌=出现次数上限),「概率与上限解耦」实现路径(v3.4 在册三案)系**实装侧自选项非用户裁定项**(原裁定「实现设计不定于现在」=实装批内依代码事实自选不再上问)——成因=会话误将实装侧自选升级为用户裁定项重问已定夺事项,经历史记录(2026-10-07 讨论记忆+TP0 令牌池天然兼顾核实结论)找回定夺后澄清;06 渠道分工条状态行顺带同步 |
|
||||
| **v3.15** | 2026-10-11 | **专长件第一版命名批(用户裁——对外命名纪律:无「雷」无「插旗」,插旗对外=封印、危险格对外风味=地下城陷阱/怪物巢穴;「扫雷插旗」系内部开发用语、对外=探索/挖掘地下城)**:九件代号换代——插旗系:旗语回响→**封印回响**/猎旗手→**封印匠**/铁旗→**封印桩**;踩雷/受伤系:爆芯→**陷阱本能**/连爆→**连环陷阱**/爆心冲击→**陷阱爆发**/雷蜜→**血蜜**;跨族桥:引信标定→**破封一击**;迁入登记:标中殉爆→**封印爆裂**;示警烟火/疼痛记忆/保险丝/见血开窍/石肤/背水/爆破会计等保留(无雷/旗字);纪律登记=术语表新增「对外命名纪律」节(v1.6);版本历史行引用旧代号系留痕不动;命名纪律试例=件名,后续全部对外命名(显示名/UI 文案)同尺 |
|
||||
| **v3.16** | 2026-10-12 | **迭代 20 反哺落文批(用户令「先回写 GDD」——追认单①裁决齐,06 追认结果条承载裁决记录)**:①设计原则新增**落行注记**:「每第 N 次/积满触发」预评估落行=N−1(when 先于 do 读计数器现值,例:地质学家 eq 3/封印匠 mod_eq ref 2);②疼痛记忆件表「下场战斗」→「下一次攻击」(2026-10-12 用户定性笔误,无需 battle-gate 面);③弃图兑换落法回写=停手后首次攻击全额附加、用后清零、多攻击不拆分;④血税件表补生效时点(均**下一战起生效**——战末汇入冒险加算区,战界重建契约所致滞后一战)+账列换代双向同账细则;⑤时沙落法回写=下一战首轮 AP 队列兑付(hero_ap_bonus 既有通道),§1.3 判据句与异质性账清单「当前 AP=回合级」随迁「时沙挂账=至下一战首轮兑付」;⑥扩签登记节换代为实装承载记录(10 候选=6 fact+4 计数器改道/dig_stop 落/battle_won+mod_eq+hp_ratio 等随裁补位/新效果类型 7/rewrite_board 除名、清图事件继续暂缓);⑦专长/资源两节引言「新框架实装批落地前」过渡句随批落地 expiry 换代(29 行=基础 27+迁入 2/凭证新 5+留任 2 已落表);⑧流派口径澄清落档=**对外永不显示、对内保留事件族五系划分**(v2.9 作废所指=流派作玩法机制非对内划分本身,2026-10-12 用户重申——设计原则第 2 条原文已符,正文零改动);待办=血税卡面 desc(feats.tres)补「下一战起生效」系代码侧一行改,另行小批 |
|
||||
| **v3.17** | 2026-10-15 | **简明技术中文用语规范批(用户令):词面修正 7 处**——「不得」→「禁止」3 处(信息红线条、代码词族 reward_* 句、验收第 6 条);「若干」→写具体数值 2 处(核心循环位置图「三关串联」、生命周期表出现行「3 个候选」);「收口」改写 2 处(§1.3 判据句「收口凭据」→「界定凭据」、§2.1 悬案句→「完成裁决」)。机制与数值零改动 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:难度曲线、期望值带与 Boss 设计
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/c3-difficulty-curve.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -55,7 +54,7 @@
|
||||
| 轴 | 规则 | 说明 |
|
||||
|---|---|---|
|
||||
| 关间台阶(关卡序号) | 每关至少投放一项新内容(新敌种或既有池新技能),加基准数值跳升 | 台阶必须能归因到看得见的变化,不是纯数字膨胀;投放断档是内容生产缺口,调参修补不了(技能池批措辞修订 2026-09-16:行为环段 → 既有池新技能) |
|
||||
| 关内坡度(节点深度) | 同敌种数值平缓上移,深度也可表达为敌人成群 | 数量是比单体质变更优先的深度表达:保持技能池 EV 读数不变(权重即旋钮、EV 重锚随批登记)、总量受控 |
|
||||
| 关内坡度(节点深度) | 同敌种数值平缓上移,深度也可表达为敌人成群 | 数量是比单体质变更优先的深度表达:保持技能池 EV 读数不变(权重即旋钮、EV 重锚顺带登记)、总量受控 |
|
||||
| Boss 与精英修饰(预留第三轴) | Boss 走最深深度直填行;精英只有字段命名空间预留 | Boss 不走修饰表;修饰乘数表 MVP 为空表、零行为,首个使用场景 = 精英节点(随[关卡节点地图](关卡节点地图.md)定稿联动);数值所有权在本系统,[棋盘生成](../排雷循环/棋盘生成.md)只按表生成。精英怪设定已登记预留(迭代 10 奖励重构批——与其他普通小怪同一立绘 + 附加特征标记 + 数值更强;视觉特征三件 = 名称前后缀「精英·」+ 底座光环 + 描边变色,色板合规与样张闸义务随怪物设定批实装) |
|
||||
|
||||
**结论**:关内坡度 = 每深一档同敌种基准上移,或按"深度也可表达为敌人成群"改由数量承载——单体生命随深度的具体走向以 `enemy.tres` 行值为准(数量优先于单体;s_hp 线性式为建模工具,现行行值不承诺随深度单调上移);关间台阶 = 相邻关同敌种基准乘 1.3–1.6(域语义如上;s_hp / k_L 现行行值读 `enemy.tres`,域登记见 registry)。
|
||||
@@ -108,23 +107,27 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
|
||||
|
||||
### 期望值带:三条定稿的验收带
|
||||
|
||||
单战判定之上还有"整关长什么样"的验收基准。下面三条带是定稿口径;调参后任一条越带都必须回滚或登记,禁止静默出带。带子按模拟口径定义——即调参期批量模拟器的读数口径;真人与模拟者的偏差另行登记标定义务(见「待办」)。
|
||||
单战判定之上还有"整关长什么样"的验收基准。下面三条带是定稿口径;调参后任一条越带都必须回滚或登记,禁止静默出带。带子按模拟口径定义——即调参期批量模拟器的读数口径;真人与模拟者的偏差另行登记标定义务(登记 [06-待办清单](../../06-待办清单.md))。
|
||||
|
||||
| 带 | 定稿口径 | 含义 |
|
||||
|---|---|---|
|
||||
| 通关率带 | 口径已换·现行带:普通档 L1 [35,55] / L2 [10,15](2026-09-30 改带);完美档 [35,65],详见本节末「判读口径同步」与「改带」两条。实证:直入口 L2 普通 5% vs 冒险条件口径 L2 90% 同期并存〔「营地检查点」= balance_verifier 营地循环判定段旧称(现名营地循环战役)——2026-09-30 词源考证收口,见审计报告 git 提交 c095916 拍板点 9(已按生命周期条款退役);与冒险结构「没有检查点」铁律的字面相撞就此解除〕 | 首关吃紧但多数玩家数局内能过;第二关明显更难(L2 低通关率系设计预期,2026-09-30 改带批用户裁定);与完美档带错开一档留出元进度爬升空间 |
|
||||
| 通关率带 | 口径已换代·现行带 = 四带甲案(2026-10-03 用户拍板):带 A 白板完美执行战役全通率 [0%,10%] / 带 B 白板第一关通过率 [50%,85%] / 带 C 营地满成长战役全通率 [30%,60%](预立) / 带 D 响应曲线每雷边际 ≤15pp·S 形——旧普通档 L1 [35,55] / L2 [10,15] 与完美档 [35,65] 正式作废,全文见本节末「带换代」条。实证:直入口 L2 普通 5% vs 冒险条件口径 L2 90% 同期并存〔「营地检查点」= balance_verifier 营地循环判定段旧称(现名营地循环战役)——2026-09-30 词源考证完成,见审计报告 git 提交 c095916 拍板点 9(已按生命周期条款退役);与冒险结构「没有检查点」铁律的字面相撞就此解除〕 | 四带按类型基准锚定、每条带均有外部锚点:带 B 管首关 = 过滤器不是墙;带 A 管白板全通的顶尖难度;带 C 留元进度爬升空间(满成长实装后启用);带 D 管响应曲线无悬崖 |
|
||||
| 通关余量带 | 通关者通关时剩余生命的 p90 / p10 按现生命轴上限百分比表达(压缩前绝对血量带已作废;界值重标随验收批) | **通关余量** = 通关瞬间还剩多少血。余量太肥说明赢得太从容,压生存侧;太瘦说明"剩一两滴血惨胜"成常态,抬治疗供给或恢复点收益 |
|
||||
| 第一关形态带 | 教学位绿档 + 中段黄档 + Boss 黄档不红 | **形态带**管一关内各战三档判定的排布形状:第一战必须稳过,中段有输的可能,Boss 战紧但不许是配置事故 |
|
||||
|
||||
更高加成档(攻击翻倍、三倍)的通关率带随档位放宽(翻倍档第一关 ≥95%),其机制承载是生存链区间的平移而不是另拍一套数字(平移换算见调参联动一节)。此外另有一条期望承伤占比带(普通场承伤不超过生命上限两成、Boss 场不超过五成,provisional),复验义务随最近的减伤调整批执行。
|
||||
更高加成档(攻击翻倍、三倍)的通关率带随档位放宽(翻倍档第一关 ≥95%),其机制承载是生存链区间的平移而不是另拍一套数字(平移换算见调参联动一节)。此外另有一条期望承伤占比带(普通场承伤不超过生命上限两成、Boss 场不超过五成,provisional),该指向已过期(「最近的减伤调整批」所指批次已关闭未执行);期望承伤占比带复验义务挂起,随数值批重开时核销。
|
||||
|
||||
第三关口径(第三关内容批):L3 全部行值 provisional-pending-growth,上述各带对 L3 暂不适用——零成长基线下的红档属预期(主角成长侧前置 = GP+商店房批,已于 2026-09-20 落地:GP 掉落 + 商店房 + 格面金币),现行冒烟的首遇绿档断言按「成长代理档 atk+200 / hp+100」口径执行;正式通关率带与首遇绿档口径随玩家成长落地换装,归曲线调参批统一收带。
|
||||
|
||||
**判读口径同步(M-3 迭代 5 基线重测批,2026-09-28)**:通关率带的测量口径 = 冒险条件通关率(打通 k−1 关才到达第 k 关,balance_verifier 冒险段派生;单关直入口口径已随 2026-09-23 拍板退役)——带值沿用 2026-09-20 分带修正(普通档 L1 [35,55] / L2 [25,45]、完美档 [35,65];M-3 迭代 5 计划书 C4 冻结:改带=用户拍板)。上方行 115 的「带退役待重锚、重锚前只测不判」注记按本条同步理解:迭代 5 基线重测已按现行带对冒险条件口径判读(读数报告见 git 提交 e55dc10,已按生命周期条款退役);是否在新口径上重取带值,归迭代 5 出口判读由用户拍板,本批不动带数字。
|
||||
**迭代 20 投放读数(只测不判——2026-10-12 反哺批登记,用户裁③数值暂不调整只落内容)**:奇物池换代后构成 = 四级 70/25/9/0=104 张(凭证四件入稀有档 +6 张 provisional);MC shop=off 止步分布 {1:90, 2:10}→{1:93, 2:7}(通关率 0% 两代持平,新基线 seed 71000)——位移归因曝光槽高档候选加速([奇物](奇物.md)池结构联动注记的预期行为,非难度恶化信号);判读与带重锚随曲线调参批,本注记只登记不判读。
|
||||
|
||||
> **⚠ 带失效待重锚(2026-10-01 数值修复批)**:模拟档位重构(普通档 v2 新手画像→v3=完美策略+受控失误注入;完美档补元游戏选路与商店购买)+数值三刀(hero max_hp 20→26/直伤雷 4/5/5→6/8/8/L1 系敌 atk 2→1)后,上方三条验收带的测量基准已失义——旧普通档=比真人弱 20 倍的新手画像(真人实证推翻),旧带值系照坏尺子校定。新尺读数(N=100/200)与调优轨迹见 `design/qa/numfix-newruler-readings-2026-10-01.md`;~~新带值须新尺重测后用户拍板,重锚前只测不判~~(已由下行带换代收口)。
|
||||
**迭代 24 敌人表内容修批读数(只测不判——2026-10-14 反哺写入批登记,用户裁「全部按呈报写入文档」;数值终值归 M4 数值批)**:同种子配对 seed0=9000(沿用迭代 23 配对种子)改前/改后各 40 局×both——①**N2 普通敌技能投放**(毒吐/盾击两新行六池)后 perfect L2 通关 8/20→13/20(+25pp)、L3 全通 6/20→10/20(+20pp)——方向符合预期(L1 减压后更健康抵达 L2/L3),量级低于二档配对判读带 ~30pp,倍率 provisional 归 M4;normal 档基率地板(0/20)无判读力;②**N3 敌方攻击类型轴**(20 行全填 normal+敌方兑付路径克制消费)后全局平移 = 主角穿重甲受伤点数 −1 / 魔法护甲 +1 / 轻甲 0(V5 冒烟同种子三甲型配对实测单发恒 ±1:heavy 2==light 3−1 · ward 4==light 3+1);taken 中位 normal 29.5→27.5、perfect 76.5→97.0——后者系**构成效应**(全通 6→10 局通关更深自然累计更多承伤),非单发异常;③N1 (1,2) 降档(hp 50→22·ac 3→2)后 perfect L1 通关 19/20→20/20——5 倍墙消除方向符合预期。判读与带重锚随 M4 数值批,本注记只登记不判读。
|
||||
|
||||
**带换代(迭代 9 出口带值批,2026-10-03 用户拍板四带甲案)**:旧三条通关率带(普通 L1 [35,55] / L2 [10,15]、完美 [35,65])**正式作废**,换类型基准锚定四带(依据与官方统计出处=《[Roguelike 难度类型基准](../../../research/roguelike-difficulty-benchmark-2026-10-01.md)》§3.2,每条带均有外部锚点):
|
||||
**判读口径同步(迭代 5 基线重测批,2026-09-28)**:通关率带的测量口径 = 冒险条件通关率(打通 k−1 关才到达第 k 关,balance_verifier 冒险段派生;单关直入口口径已随 2026-09-23 拍板退役)——带值沿用 2026-09-20 分带修正(普通档 L1 [35,55] / L2 [25,45]、完美档 [35,65];迭代 5 计划书 C4 冻结:改带=用户拍板)。上方行 115 的「带退役待重锚、重锚前只测不判」注记按本条同步理解:迭代 5 基线重测已按现行带对冒险条件口径判读(读数报告见 git 提交 e55dc10,已按生命周期条款退役);是否在新口径上重取带值,归迭代 5 出口判读由用户拍板,本批不动带数字。
|
||||
|
||||
> **⚠ 带失效待重锚(2026-10-01 数值修复批)**:模拟档位重构(普通档 v2 新手画像→v3=完美策略+受控失误注入;完美档补元游戏选路与商店购买)+数值三刀(hero max_hp 20→26/直伤雷 4/5/5→6/8/8/L1 系敌 atk 2→1)后,上方三条验收带的测量基准已失义——旧普通档=比真人弱 20 倍的新手画像(真人实证推翻),旧带值系照坏尺子校定。新尺读数(N=100/200)与调优轨迹见 `数值修复批读数(已退役,git 历史可查)`;~~新带值须新尺重测后用户拍板,重锚前只测不判~~(已由下行带换代完成)。
|
||||
|
||||
**带换代(迭代 9 出口带值批,2026-10-03 用户拍板四带甲案)**:旧三条通关率带(普通 L1 [35,55] / L2 [10,15]、完美 [35,65])**正式作废**,换类型基准锚定四带(依据与官方统计出处=《[Roguelike 难度类型基准](难度外部基准调研(已退役,git 历史可查))》§3.2,每条带均有外部锚点):
|
||||
|
||||
| 带 | 定稿口径 | 外部锚点 |
|
||||
|---|---|---|
|
||||
@@ -133,9 +136,9 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
|
||||
| **带 C** 营地满成长战役全通率 | **[30%, 60%]**(预立——读数须元进度满成长实装后) | Hades 满镜depth参考、带 A→C 5–10 倍爬升跨度 |
|
||||
| **带 D** 响应曲线形状 | 每雷边际 ≤15pp 且 S 形连续、无 >25pp 单步跳变 | 悬崖回归量化验收(现行实测 ≈39pp/雷,超 2.6 倍) |
|
||||
|
||||
配套裁决(同日逐项拍板):普通档 v3.4 **留任失败常态窗**(只记读数不设带,验收只看带 A/带 B+真人侧);直伤雷当量 **6/8/8 转正**(去 provisional);模拟承伤 k 系数保留(k=真人整关承伤中位÷模拟完美档承伤中位,**正常预期 >0.5(用户裁)、预警线 <0.3**,字段随 81000 重锚入库后补算)。**位阶事实**:现行完美档 78.5% 落带 A 外(越上界 68.5pp)、普通档 L1 13% 落带 B 外——落带收敛归全局难度批(M-4 排序,先带 D 悬崖修复后带值收敛,顺序有讲究),81000 重锚只测不判。
|
||||
配套裁决(同日逐项拍板):普通档 v3.4 **留任失败常态窗**(只记读数不设带,验收只看带 A/带 B+真人侧);直伤雷当量 **6/8/8 转正**(去 provisional);模拟承伤 k 系数保留(k=真人整关承伤中位÷模拟完美档承伤中位,**正常预期 >0.5(用户裁)、预警线 <0.3**,字段随 81000 重锚入库后补算)。**位阶事实**:现行完美档 78.5% 落带 A 外(越上界 68.5pp)、普通档 L1 13% 落带 B 外——落带收敛归全局难度批(Beta 阶段,未排期;排序先带 D 悬崖修复后带值收敛,顺序有讲究),81000 重锚只测不判。
|
||||
|
||||
**改带(迭代 5 返工出口收口批,2026-09-30 用户拍板)**:普通档 L2 带 [25,45] → **[10,15]**(用户裁:数值没有问题、本来就应该通关率很低,之前的 25~45 设定上就有问题)——返工批终态双窗读数 10.6%(MC)/13.6%(verifier)在新带下落带,返工计划书批点丙追认成立,C1 两刀+AC v1+新池组合基线转正(去 provisional)。普通档 L1 [35,55]、完美档 [35,65] 不动。历史读数报告中的 [25,45] 判列系当时口径留档不改。
|
||||
**改带(迭代 5 返工出口完成批,2026-09-30 用户拍板)**:普通档 L2 带 [25,45] → **[10,15]**(用户裁:数值没有问题、本来就应该通关率很低,之前的 25~45 设定上就有问题)——返工批终态双窗读数 10.6%(MC)/13.6%(verifier)在新带下落带,返工计划书批点丙追认成立,C1 两刀+AC v1+新池组合基线转正(去 provisional)。普通档 L1 [35,55]、完美档 [35,65] 不动。历史读数报告中的 [25,45] 判列系当时口径留档不改。
|
||||
|
||||
### 越带回滚阶梯(四级阶梯,2026-09-28 落档——自 acceptance-ap6-ac v1.0 §e 收编)
|
||||
|
||||
@@ -146,7 +149,7 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
|
||||
3. **难度曲线行值加难**——本系统行值(血量锚走廊、变异 effect_value/percent_of_cells/per_level_bonus、群战数量、注入衰减等已登记杠杆位);
|
||||
4. **行动点表值级调降**——量程最大、爆炸半径最大(AP 现行表值 = 8〔Package B 2026-09-22 批 6→8 回调;历史「压速批落 6」口径已被回调取代〕,第四级启用即推翻现行配置拍板,须用户裁决)。
|
||||
|
||||
四条边界:①「承伤偏高(减免过度)」败向先查实现缺陷再谈调参;②动用行值级或行动点级均使同种子历史坐标整体作废,须重立基线、另起验收批;③敌方 AC 正式值不进本链(归怪物设定批——M-3 迭代 5 T4 通道);④每次调参后全量重跑验收并在调参日志留联动检算记录(禁独立调参网络纪律)。
|
||||
四条边界:①「承伤偏高(减免过度)」败向先查实现缺陷再谈调参;②动用行值级或行动点级均使同种子历史坐标整体作废,须重立基线、另起验收批;③敌方 AC 正式值不进本链(归怪物设定批——迭代 5 T4 通道);④每次调参后全量重跑验收并在调参日志留联动检算记录(禁独立调参网络纪律)。
|
||||
|
||||
### 商店与 GP 经济杠杆:玩家侧供给 × 定价的第三族杠杆
|
||||
|
||||
@@ -167,12 +170,12 @@ GP(显示名「金币」)与商店房随 2026-09-20 GP+商店房批落地,
|
||||
| GP 掉落均值与方差 | 普通 / 精英(预留行)/ Boss 三行掷定区间 | 掉落量级与战斗节奏同族;格面 gp 型(金币袋,低概率)是"惊喜意外获取"的补充供给 |
|
||||
| 关级掉落加值 | 逐关一行 | 关间供给抬升的半边 |
|
||||
| 关级价格加成 | 逐关一行 | 关间价格上涨对应关间掉落上升的另一半——两轴同向联动的对子(legacy 模式轴;pool 模式由 b 因子承载同一杠杆位) |
|
||||
| 货架基价 | pool_shelf 四行(攻击 / 生命上限 / 护甲 / 行动点件) | **v0.22 换代**:重复购买爬价由 A 链承载(同店买越多越贵)+ b 跨关递增(后关整体更贵),步长逐档递增语义退役随 legacy 模式保留 |
|
||||
| 货架基价 | pool_shelf 六行(攻击 / 生命上限 / 护甲 / 行动点件 / 凭证 / 回复) | **v0.22 换代**:重复购买爬价由 A 链承载(同店买越多越贵)+ b 跨关递增(后关整体更贵),步长逐档递增语义退役随 legacy 模式保留 |
|
||||
| 价格因子 A / b | 表因子 price_a / price_b | A=店内递增(进店已购次数幂)、b=跨关递增(关序−1 幂);provisional 1.8/1.1,方向裁决 A ≫ b |
|
||||
|
||||
公式语义与钱包账本归[冒险结构](冒险结构.md)(GP 冒险账本节),商店房编排归[关卡节点地图](关卡节点地图.md);行值读 `data/tables/shop.tres`(registry 为准),全部 provisional 归本文曲线调参批。
|
||||
|
||||
**分层验收 defer(2026-09-20 用户拍板成文)**:按"商店存在与否"分层的通关率验收——MC 双格(shop=off 现行基线 / shop=on 购买画像)、shop=on 的带平移量、商店属性提升的换算率登记(换算率强条目纪律同类)——**全部随曲线调参批执行**,与「基线通关率越带」同窗(原「L2 Boss 承伤微越带」「大奖励数值随难度曲线联动」两 06 条目已收口移除——前者 2026-09-28 读数自愈、后者随迭代 10 大奖励退役失义)。执行前 shop=off 续用现行带判读,shop=on 读数只登记不判读、不得用 shop=off 读数外推 shop=on。L3 首遇绿档冒烟断言仍按成长代理档口径,不因商店批改判。**v0.22 注记(迭代 11 第②批)**:shop=off 对照 = legacy 固定三件模式(MC 对拍 off_n60 逐位,迭代 11 第②批 T5);shop=on 首锚 = 共享池货架面 N=60 双策略(`runsum_m4iter11b_t5shopon_n60_20261003.jsonl`,attune=off 同种子配对)——带平移判读仍归调参批,终局池读数(pool_stock)随行只测不判。
|
||||
**分层验收 defer(2026-09-20 用户拍板成文)**:按"商店存在与否"分层的通关率验收——MC 双格(shop=off 现行基线 / shop=on 购买画像)、shop=on 的带平移量、商店属性提升的换算率登记(换算率强条目纪律同类)——**全部随曲线调参批执行**,与「基线通关率越带」同窗(原「L2 Boss 承伤微越带」「大奖励数值随难度曲线联动」两 06 条目已完成移除——前者 2026-09-28 读数自愈、后者随迭代 10 大奖励退役失义)。执行前 shop=off 续用现行带判读,shop=on 读数只登记不判读、禁止用 shop=off 读数外推 shop=on。L3 首遇绿档冒烟断言仍按成长代理档口径,不因商店批改判。**v0.22 注记(迭代 11 第②批)**:shop=off 对照 = legacy 固定三件模式(MC 逐项比对 off_n60 逐位,迭代 11 第②批 T5);shop=on 首锚 = 共享池货架面 N=60 双策略(`runsum_m4iter11b_t5shopon_n60_20261003.jsonl`,attune=off 同种子配对)——带平移判读仍归调参批,终局池读数(pool_stock)随行只测不判。
|
||||
|
||||
### Boss 设计:食人魔酋长与关底血量锚
|
||||
|
||||
@@ -188,7 +191,7 @@ boss_hp ≈ round( Σ普通战斗敌方生命期望 × r_boss ) r_boss
|
||||
|---|---|---|
|
||||
| Σ普通战斗敌方生命期望 | 按数量区间期望逐行合计(区间中点),行值读敌人表 | 全关非 Boss 节点敌方生命合计;逐数闭合随调参批在调参日志留档 |
|
||||
| r_boss | 域 [0.5, 1.1] | Boss 生命 = Σ × r_boss;Boss 行值读敌人表(provisional) |
|
||||
| 加难走廊 | [1.1, 1.35] | 通关率压带的首选杠杆候选;**扫描已执行(M-3 迭代 5,2026-09-28)**——域内取样(r_boss 0.8 档)对完美档 Boss 战无感(胜率 98% 血量加压打不到)、对普通档 −6pp;走廊段(>1.1,越域)未启用——启用即越域须登记(读数明细见 `design/qa/m3-iter5-lever-scan-2026-09-28.md`) |
|
||||
| 加难走廊 | [1.1, 1.35] | 通关率压带的首选杠杆候选;**扫描已执行(迭代 5,2026-09-28)**——域内取样(r_boss 0.8 档)对完美档 Boss 战无感(胜率 98% 血量加压打不到)、对普通档 −6pp;走廊段(>1.1,越域)未启用——启用即越域须登记(读数明细见 `迭代5杠杆扫描报告(已退役,git 历史可查)`) |
|
||||
|
||||
Σ 的逐数闭合口径:数量走开战掷骰的区间期望(区间中点),教学位同样掷骰、按区间期望计入;各坐标行值一律读敌人表,本文不重复登记具体数值——防与配置双写失同步。
|
||||
|
||||
@@ -215,13 +218,13 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
| 护甲等级 ↔ 攻击基线 ↔ 区间带宽 | [战斗结算](../战斗循环/战斗结算.md) | 敌种与主角的护甲等级行值变更须复算生存链区间(掷点带宽随折扣档位与攻击基线同向放大);掷点形式与档位已定稿(d20 三档——档位读 `settlement.tres`;nat20 暴击形式留档,倍率同表),护甲等级行值变更仍须复算生存链区间并同步 registry——现行行值读 `hero.tres` / `enemy.tres` 的 armor_class 列(均暂定),敌方正式行值随怪物设定批投值、与加难杠杆扫描合并调 |
|
||||
| GP 供给 ↔ 商品定价 | [冒险结构](冒险结构.md)、[关卡节点地图](关卡节点地图.md) | 供给 × 定价 = 入关属性参数,单边移动须复算分层通关率带(商店与 GP 经济杠杆节)——动供给必复算分层带,禁独立调参 |
|
||||
| 旗溢价系数 δ ↔ 完美乘数 p_perfect ↔ ap_per_round | [战斗结算](../战斗循环/战斗结算.md)、[行动经济](../排雷循环/行动经济.md) | 旗激励三件套同窗检算(防标旗 rush 复发:δ 与 ×2 叠加通胀、AP 吞吐上限)——任一变动须重跑双画像标旗率读数(2026-10-05 判式换代批新增) |
|
||||
| η 读数 ↔ 模拟画像定义 ↔ 可推理率 ι ↔ min_safe_count/生成尝试上限 | sim 档位、[棋盘生成](../排雷循环/棋盘生成.md) | η 是画像条件量:画像重构即锚漂移,重锚随批;可推理率三元组既有联动扩一员(2026-10-05 判式换代批新增) |
|
||||
| η 读数 ↔ 模拟画像定义 ↔ 可推理率 ι ↔ min_safe_count/生成尝试上限 | sim 档位、[棋盘生成](../排雷循环/棋盘生成.md) | η 是画像条件量:画像重构即锚漂移,重锚顺带;可推理率三元组既有联动扩一员(2026-10-05 判式换代批新增) |
|
||||
| β 带端点 β_lo/β_hi ↔ D_ref ↔ hero max_hp ↔ AC 折算档(5pp 系数) | [战斗结算](../战斗循环/战斗结算.md) | 带是 D_ref 的函数:换锚(D_ref/max_hp)须全带重推;AC 档值变更改 5pp 系数,同罪(2026-10-05 判式换代批新增) |
|
||||
| 直伤雷三行(6/8/8) ↔ 正向同轴行(heal_minor/pierce_strike/magic_bolt) | [地图战斗资源](../战斗循环/地图战斗资源.md) | **同轴镜像比入对账面**:负向/正向比超出 β 带内推导区间即越带;单边动负向三行今后必须带正向镜像行联合检算(2026-10-05 判式换代批新增——d70f6c3/数值修复批两先例的单边动教训成文) |
|
||||
| clear_blast 区间(24/40/32) ↔ p_perfect | [地图战斗资源](../战斗循环/地图战斗资源.md) | 完美排雷第二份的补贴基数进旗激励对账;单边动清图奖励 = 变相动旗(2026-10-05 判式换代批新增) |
|
||||
| 标中强化池权重 ↔ 正向池权重(77 分母) ↔ 关级恒等式奖励占比 [15,40%] | [地图战斗资源](../战斗循环/地图战斗资源.md) | 形态 (b) 专属池重摇启用时生效(现行不启):双池分布变动 = E_dig 与 W 同时漂移,须联合检算 + 恒等式占比复核(2026-10-05 判式换代批新增,条件生效行) |
|
||||
|
||||
五条经济契约的对账由[战斗结算](../战斗循环/战斗结算.md)闭合验收;挖掘风险不等式已于 2026-10-05 判式换代批重立(三层口径+β 带+条件二旗溢价——结构层接替与数值层带判读详见行动经济 F1 条款3 推导节),本系统的对账义务转为按 β 带逐 u 检算(常设重跑入口 `tools/clear_dominance_audit.py`,现行 u=3 β=1.17 微破下限登记态);清图支配性已于 2026-09-19 按现行值链重跑、裁决②"非支配设计态"维持(回执见 git 提交 2ca3e20,报告已退役)——判式换代后的全套判值重跑随本系统下一次调参批随批执行。完美排雷乘数的调参权在本系统。
|
||||
五条经济契约的对账由[战斗结算](../战斗循环/战斗结算.md)闭合验收;挖掘风险不等式已于 2026-10-05 判式换代批重立(三层口径+β 带+条件二旗溢价——结构层接替与数值层带判读详见行动经济 F1 条款3 推导节),本系统的对账义务转为按 β 带逐 u 检算(常设重跑入口 `tools/clear_dominance_audit.py`,现行 u=3 β=1.17 微破下限登记态);清图支配性已于 2026-09-19 按现行值链重跑、裁决②"非支配设计态"维持(回执见 git 提交 2ca3e20,报告已退役)——判式换代后的全套判值重跑随本系统下一次调参批顺带执行。完美排雷乘数的调参权在本系统。
|
||||
|
||||
元进度接口预留:**结论——元进度解锁对难度的影响,以生存链区间的平移换算率接入;接口启用形态已定稿(2026-09-18 元进度定稿批,用户拍板):永久强化影响折算为通关率带平移量,判读口径不变;换算率表首版三行(生命上限 / 基础攻击 / 护甲等级——护甲行强条目,验收读数须按解锁后参数重测)与键结构登记见 registry `meta_progression_conversion_table`,数值行读 `data/tables/`、标定随元进度设计批。** 元进度数值行落地前,本系统不为它预留任何数值行。
|
||||
|
||||
@@ -256,14 +259,14 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 加难杠杆扫描落带 | 候选杠杆已登记(血量锚走廊、群战上探、注入衰减上调候选),扫描未执行;护甲等级换装点锚定(基准护甲等级自带敌方输出期望的结构性削减 + 减伤墙退役 + 伤害下限)的方向性偏移并入本扫描一并调带(带宽补扫含暴击档与折扣档);落带前现行行值维持 provisional-pending-scan。第二关行集随分支节点图批落地后并入本扫描(L2 读数基线/加成档已随批实测,见 v0.7) |
|
||||
| P1 | 挖掘风险不等式与清图支配性对账重跑 | **挖掘风险不等式半边已收口(2026-10-05 判式换代批,迭代14②号卡)**——判式三层重立落文+条件二旗溢价机制闭合+β 带判读制度化(残留=u=3 β=1.17 微破下限登记态,不强制回滚;δ 敏感度判读随批出口报告),本行对挖掘风险不等式的「重跑义务」改判读回执:后续调参按 β 带检算执行,不再立独立重跑批。清图支配性已于 2026-09-19 按现行值链重跑(裁决②"非支配设计态"维持——缺口收窄主读数 L1≈24/L2≈45 当量〔u=1〕,设计权威回执=git 提交 2ca3e20,重跑入口 tools/clear_dominance_audit.py);调参批执行时按当期行值随批重跑 |
|
||||
| P1 | 加难杠杆扫描落带 | 候选杠杆已登记(血量锚走廊、群战上探、注入衰减上调候选),域内取样扫描已执行(迭代 5——r_boss 0.8 档,见「Boss 设计」节加难走廊行),全杠杆落带扫描未完成;护甲等级换装点锚定(基准护甲等级自带敌方输出期望的结构性削减 + 减伤墙退役 + 伤害下限)的方向性偏移并入本扫描一并调带(带宽补扫含暴击档与折扣档);落带前现行行值维持 provisional-pending-scan。第二关行集随分支节点图批落地后并入本扫描(L2 读数基线/加成档已顺带实测,见 v0.7) |
|
||||
| P1 | 挖掘风险不等式与清图支配性对账重跑 | **挖掘风险不等式半边已完成(2026-10-05 判式换代批,迭代14②号卡)**——判式三层重立写入文档+条件二旗溢价机制闭合+β 带判读制度化(残留=u=3 β=1.17 微破下限登记态,不强制回滚;δ 敏感度判读顺带出口报告),本行对挖掘风险不等式的「重跑义务」改判读回执:后续调参按 β 带检算执行,不再立独立重跑批。清图支配性已于 2026-09-19 按现行值链重跑(裁决②"非支配设计态"维持——缺口收窄主读数 L1≈24/L2≈45 当量〔u=1〕,设计权威回执=git 提交 2ca3e20,重跑入口 tools/clear_dominance_audit.py);调参批执行时按当期行值顺带重跑 |
|
||||
| P1 | 真人通关率修正系数标定 | 带按模拟口径定义;试玩批次实测真人显著强于模拟者,系数待后续试玩批次定量 |
|
||||
| P1 | 迭代 10 奖励重构带重扫义务 | 恢复经济收紧(通关血回满→部分回血 20%,难度上压方向)+ 局内成长节奏变动(三选一件值/权重/次数上限 knob 全读冒险表;AP 件 = 每场战斗开始首轮 +1 AP 的强度敏感轴)——通关率带重扫随曲线调参批现行窗执行;Boss 钥石掉落重锚(首杀 3/复杀 2)连带元进度产出标定义务重开(归元进度设计批) |
|
||||
| P1 | 完美策略档的结构性加难杠杆 | 数值杠杆对完美档已被实测证伪,结构候选未裁决(见「待办」) |
|
||||
| P1 | 完美策略档的结构性加难杠杆 | 数值杠杆对完美档已被实测证伪,结构候选未裁决(登记 [06-待办清单](../../06-待办清单.md)) |
|
||||
| P2 | 精英节点完整语义与修饰乘数表首行 | 随[关卡节点地图](关卡节点地图.md)定稿联动;首个使用场景 = 精英节点;精英怪设定三特征已登记(迭代 10 批,见「曲线雕刻」表注),钥石掉 1 个预留挂钩 meta.tres boss_keystone 精英行(随实装批落) |
|
||||
| P2 | 区间平移换算率定稿 | 接口启用形态已定稿(2026-09-18 元进度定稿批);剩余面 = 首版三行折算数值随[元进度](../跨局循环/元进度.md)设计批模拟读数标定 |
|
||||
| P2 | 全局作用域变异的投放计划 | **首发已落地(2026-10-04 全局作用域变异首发批,迭代 14 ③号卡)**——现行=L2/L3 Boss 图恒定贫矿脉(unlock_level=2 起,第 1 关 Boss 免疫=L1 教学保护);本行降级为「后续型扩展计划」:新全局型(精英图首行/案D 冻土/案B 诡雷远期)逐关固定演进,随关卡扩展登记;带 A(全局变异)收敛判读归全局难度批 M-4 杠杆表(Q4 甲——落地批读数只测不判) |
|
||||
| P2 | 全局作用域变异的投放计划 | **首发已落地(2026-10-04 全局作用域变异首发批,迭代 14 ③号卡)**——现行=L2/L3 Boss 图恒定贫矿脉(unlock_level=2 起,第 1 关 Boss 免疫=L1 教学保护);本行降级为「后续型扩展计划」:新全局型(精英图首行/案D 冻土/案B 诡雷远期)逐关固定演进,随关卡扩展登记;带 A(全局变异)收敛判读归全局难度批(Beta 阶段,未排期)杠杆表(Q4 甲——落地批读数只测不判) |
|
||||
|
||||
## 调参表
|
||||
|
||||
@@ -271,15 +274,17 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
|
||||
首发行值几乎全部 provisional,其中加难相关数值处于 provisional-pending-scan(扫描未执行);完整行集读表,不在此整表搬运。
|
||||
|
||||
敌人表行值(行集与坐标覆盖随批次扩展,行值读 `enemy.tres`——本文只登记行模板与坐标语义):
|
||||
敌人表行值(行集与坐标覆盖随后续批次扩展,行值读 `enemy.tres`——本文只登记行模板与坐标语义):
|
||||
|
||||
**混编行集难度归属注记(2026-10-07 行集多行批——机制放开、本批零投放)**:敌人表同一坐标允许多行混编多种敌种后,混编遭遇的难度 = 行集内各行值按既有口径独立生效再叠加(数量区间各行各掷、行集实例总数 ≤ 4),不引入新的难度轴或乘区;首个混编行连同 Boss 多行的实际投放归后续内容批,投时行值 provisional 归本文调参的既有口径不变,且投放批须附 MC 取证(先报批)与难度带读数。机制批次(本批)零内容投放、零数值变更。
|
||||
|
||||
| 坐标 | 敌种(数据键) | 生命 | 攻击(浮动区间) | 数量 | 技能池(权重) | 护甲 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 关卡序号 × 节点深度 | enemy_id + display_name | hp | atk / [atk_min, atk_max] | [unit_count, unit_count_max] | {skill_id: weight} | armor_type + armor_class |
|
||||
|
||||
第二关图版注记(分支节点图批):L2 熊地精三行 = bugbear 复用(幽暗地域部族设定——display_name 熊地精系与第一关"熊地精"错开;池差异化改造 = 蓄力拍退役换突刺,复用共享技能行);巨蜘蛛 = 新敌种(群行倾向、首遇位固定数量不加骰——首遇教学位纪律);蛛化卓尔精灵 = Boss 专属池(独占技毒爆 + 权重轮廓,血量为 r_boss 口径 provisional 锚——定位本关最大单场消耗);护甲面:轻甲(蜘蛛)与魔法护甲(熊地精三行)同关错开克制面,Boss 重甲。L2 三行复用 bugbear、显示名熊地精系(2026-09-17 用户拍板);Boss 定名蛛化卓尔精灵(用户同日拍板)。节点编号 2 = 奖励点(直通空态)、3 = 恢复点(rest_heal_pct 行字段兑付)——不开战斗、无敌人/棋盘行。
|
||||
第二关图版注记(分支节点图批):L2 熊地精三行 = bugbear 复用(幽暗地域部族设定——display_name 熊地精系与第一关"熊地精"错开;池差异化改造 = 蓄力拍退役换突刺,复用共享技能行);巨蜘蛛 = 新敌种(群行倾向、首遇位固定数量不加骰——首遇教学位纪律);蛛化卓尔精灵 = Boss 专属池(独占技毒爆 + 权重轮廓,血量为 r_boss 口径 provisional 锚——定位本关最大单场消耗);护甲面:轻甲(蜘蛛)与魔法护甲(熊地精三行)同关错开克制面,Boss 重甲。L2 三行复用 bugbear、显示名熊地精系(2026-09-17 用户拍板);Boss 定名蛛化卓尔精灵(用户同日拍板)。节点编号 2 = 奖励点、3 = 恢复点(rest_heal_pct 行字段兑付)——不开战斗、无敌人/棋盘行。
|
||||
|
||||
第三关图版注记(第三关内容批):行集 = 与第二关同模板的九节点图(六战 + Boss + 奖励 + 恢复,节点编号 2/3 同为奖励点/恢复点——不开战斗、无敌人/棋盘行)。敌种生态:灰矮人 = duergar 新敌种(单体重甲中坚——第二关单体生态位的关间台阶);钩爪恐魔 = hook_horror 新敌种(群行,复用撕咬共享技能行);灰矮人石君王 = duergar_king Boss 专属池(独占妨害技大地脉动 earth_pulse = 乏力 sapped 首发——第二妨害词汇,池载荷口径同蛛网束缚)。两敌种首遇位(节点 0 / 节点 1)固定数量不加骰——首遇教学位纪律同第二关注记。克制面重轻错开:重甲灰矮人是重甲首次登台,轻甲钩爪恐魔保穿刺/普通分量有用武之地,Boss 重甲收束"轻甲 → 魔法护甲 → 重甲"教学梯度(第三档在 L3 补完)。Boss 血量 75 = Σ普通战生命期望 91 × r_boss≈0.82(provisional 锚,域 [0.5, 1.1]——Boss 锚在案口径,逐数闭合随调参批在调参日志留档)。棋盘 13×13 / Boss 14×14、密度 0.25 维持、地形变异第三关对落石(直伤 3 点)+ 矿尘(数字遮蔽)随批铺行;armor_class 恒 0(正式投值仍归「敌方护甲等级正式行值」在案条目全表同批)。行值读 `enemy.tres` / `board_gen.tres` / `skills.tres` / `variation.tres`,全部 provisional-pending-growth(L3 口径见「期望值带」节)。
|
||||
第三关图版注记(第三关内容批):行集 = 与第二关同模板的九节点图(六战 + Boss + 奖励 + 恢复,节点编号 2/3 同为奖励点/恢复点——不开战斗、无敌人/棋盘行)。敌种生态:灰矮人 = duergar 新敌种(单体重甲中坚——第二关单体生态位的关间台阶);钩爪恐魔 = hook_horror 新敌种(群行,复用撕咬共享技能行);灰矮人石君王 = duergar_king Boss 专属池(独占妨害技大地脉动 earth_pulse = 乏力 sapped 首发——第二妨害词汇,池载荷口径同蛛网束缚)。两敌种首遇位(节点 0 / 节点 1)固定数量不加骰——首遇教学位纪律同第二关注记。克制面重轻错开:重甲灰矮人是重甲首次登台,轻甲钩爪恐魔保穿刺/普通分量有用武之地,Boss 重甲收束"轻甲 → 魔法护甲 → 重甲"教学梯度(第三档在 L3 补完)。Boss 血量 75 = Σ普通战生命期望 91 × r_boss≈0.82(provisional 锚,域 [0.5, 1.1]——Boss 锚在案口径,逐数闭合随调参批在调参日志留档)。棋盘 13×13 / Boss 14×14、密度 0.25 维持、地形变异第三关对落石(直伤 3 点)+ 矿尘(数字遮蔽)顺带铺行;armor_class 恒 0(正式投值仍归「敌方护甲等级正式行值」在案条目全表同批)。行值读 `enemy.tres` / `board_gen.tres` / `skills.tres` / `variation.tres`,全部 provisional-pending-growth(L3 口径见「期望值带」节)。
|
||||
|
||||
群伤负向 = 警觉(敌方护甲等级 +1——2026-09-20 八型批伏击退役换装);一轮踩雷数由行动点预算天然封顶(原 advantage_per_round_cap 行值同日先行删除)。攻击浮动开战时掷定一次、整战持久;数量区间同流掷定,教学位与首遇位都不豁免——没有区间上界的行自然取定值,那不是豁免,是区间宽度为零。
|
||||
|
||||
@@ -303,15 +308,15 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
|
||||
| 参数 | 取值域 / 口径 | 说明 |
|
||||
|---|---|---|
|
||||
| 血量锚比率 r_boss | [0.5, 1.1];加难走廊 [1.1, 1.35](扫描已执行,见「Boss 设计」节) | Boss 生命锚;**锚漂移登记(迭代 5 基线重测批)**:数值设计批 Boss 血轴拔高后 L2/L3 现值 r_boss≈0.33(全行集 Σ 口径)低于域下限 0.5——复算与是否收锚归迭代 5 出口判读 |
|
||||
| 血量锚比率 r_boss | [0.5, 1.1];加难走廊 [1.1, 1.35](扫描已执行,见「Boss 设计」节) | Boss 生命锚;**锚漂移登记(迭代 5 基线重测批)**:数值设计批 Boss 血轴拔高后 L2/L3 现值 r_boss≈0.33(全行集 Σ 口径)低于域下限 0.5——该指向已过期(迭代 5 已关闭未执行);r_boss 复算与收锚义务挂起,随数值批重开时核销 |
|
||||
| 克制矩阵 | 克制 / 中性 / 被克三档加法修正(+1/0/−1 点),读 `settlement.tres` 甲效表 | 消费归[战斗结算](../战斗循环/战斗结算.md) |
|
||||
| 完美排雷乘数 | 读表 | 调参权本文 |
|
||||
| 当量参考敞口 | 读表 | 变更触发全量对账重跑 |
|
||||
| 注入概率初值 / 衰减 | 读表 | 注入机制归[地图战斗资源](../战斗循环/地图战斗资源.md) |
|
||||
| 清障炸药威力区间 | 读表 | 清图槽当场引爆 |
|
||||
| 状态强度 | 读 `status_effects.tres`(掷点轴——2026-09-16 换装,原减伤退役) | 联动评估归本文,禁独立调参 |
|
||||
| 资源面偏斜 effect_value | 读 `variation.tres` 贫矿脉行(域 [0,50],0=中性 off 锚;现行投值 30 provisional——2026-10-04 首发批) | Boss 图整图变异=全局加难杠杆(带 A 注册 M-4 杠杆表——Q4 甲裁决,读数只测不判,带 A 收敛判读归全局难度批);与注入概率/衰减同族「图级投放轴」,禁独立调参;总期望微降 3-5% 为 provisional 设计目标,实测方向与幅度归读数批 |
|
||||
| GP 掉落与商店价格参数 | 读 `shop.tres`(gp_drops 均值±方差 / level_gp_bonus / pool_shelf 货架基价四行 / price_a / price_b;legacy products 首价与步长 / price_level_bonus 随对照模式保留) | GP+商店房批新增,pool 换代随迭代 11 第②批;公式语义归[冒险结构](冒险结构.md),数值全部 provisional-pending-曲线调参批(A/b 投值 1.8/1.1 后置追认),与分层带联动禁独立调参 |
|
||||
| 资源面偏斜 effect_value | 读 `variation.tres` 贫矿脉行(域 [0,50],0=中性 off 锚;现行投值 30 provisional——2026-10-04 首发批) | Boss 图整图变异=全局加难杠杆(带 A 注册(Beta 阶段,未排期)杠杆表——Q4 甲裁决,读数只测不判,带 A 收敛判读归全局难度批);与注入概率/衰减同族「图级投放轴」,禁独立调参;总期望微降 3-5% 为 provisional 设计目标,实测方向与幅度归读数批 |
|
||||
| GP 掉落与商店价格参数 | 读 `shop.tres`(gp_drops 均值±方差 / level_gp_bonus / pool_shelf 货架基价六行 / price_a / price_b;legacy products 首价与步长 / price_level_bonus 随对照模式保留) | GP+商店房批新增,pool 换代随迭代 11 第②批;公式语义归[冒险结构](冒险结构.md),数值全部 provisional-pending-曲线调参批(A/b 投值 1.8/1.1 后置追认),与分层带联动禁独立调参 |
|
||||
|
||||
## 验收标准
|
||||
|
||||
@@ -356,5 +361,11 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
| v0.19 | 2026-09-23 | **基线通关率带测量口径退役(用户拍板单关直入口口径退役——与单关试玩入口退役同批)**:原带(第 1 关 [35,55] / 第 2 关 [25,45],v0.16 分带批)锚定直入口单关读数——满血零上下文进关,与真实冒险的条件通关率脱节(实证:直入口 L2 普通 5% 与营地检查点 L2 条件 90% 同期并存,曾误导曲线调参)。逐关读数改冒险条件口径(balance_verifier 冒险段派生:通关数/到达数);新带值重锚归曲线调参批,重锚前只测不判;调参表「基线通关率带」行与验收标准通关率带条同步改口径退役注记。行值零改动 |
|
||||
| v0.20 | 2026-09-28 | 判读口径落档+回滚阶梯收编+Boss 锚漂移登记 |
|
||||
| v0.21 | 2026-09-30 | 普通档改带 L1 [35,55]/L2 [10,15]+带表与验收标准回写现行口径 |
|
||||
| v0.22 | 2026-10-03 | **商店定价公式换代(迭代 11 第②批 GP 商店房重构批——任务书 v1.3 P1 共享池/P4 ceil/P5 甲;06 条 2026-10-02 用户裁决)**:商店与 GP 经济杠杆节公式换代 = ceil(基价 × b^(关序−1) × A^(进店已购次数)),A/b provisional 投值 1.8/1.1(原 P5 甲 game-balancer 研究拍板改后置追认——零人工令);杠杆位表换货架基价四行+价格因子 A/b 两行;分层验收 defer 节补 v0.22 注记(shop=off=legacy 对照 off_n60 逐位 / shop=on 首锚 N=60 双策略带平移归调参批/终局池读数只测不判)。行值零结构改动(shop.tres 扩列不退役) |
|
||||
| v0.22 | 2026-10-03 | **商店定价公式换代(迭代 11 第②批 GP 商店房重构批——需求卡片 v1.3 P1 共享池/P4 ceil/P5 甲;06 条 2026-10-02 用户裁决)**:商店与 GP 经济杠杆节公式换代 = ceil(基价 × b^(关序−1) × A^(进店已购次数)),A/b provisional 投值 1.8/1.1(原 P5 甲 game-balancer 研究拍板改后置追认——零人工令);杠杆位表换货架基价四行+价格因子 A/b 两行;分层验收 defer 节补 v0.22 注记(shop=off=legacy 对照 off_n60 逐位 / shop=on 首锚 N=60 双策略带平移归调参批/终局池读数只测不判)。行值零结构改动(shop.tres 扩列不退役) |
|
||||
| v0.23 | 2026-10-05 | **挖掘风险不等式判式换代(迭代14②号卡 T3——与行动经济/战斗结算/registry 同批)**:调参联动表 +6 新增行(旗溢价三件套 δ↔p_perfect↔ap_per_round / η 读数画像联动扩员 / β 带端点↔D_ref↔max_hp↔AC 折算 / 直伤雷三行↔正向同轴行〔同轴镜像比入对账面〕/ clear_blast 区间↔p_perfect / 标中强化池权重〔形态 b 条件生效行〕);P1 后置「挖掘风险不等式与清图支配性对账重跑」行改判读回执(不等式半边收口=判式重立+β 带检算接替,残留 u=3 β=1.17 登记态;清图支配性维持);五条经济契约对账段换代 |
|
||||
| v0.24 | 2026-10-07 | **混编行集难度归属注记(敌人表行集多行批·组 A——与 敌人系统 v0.15 / registry / 06 清单同批)**:敌人表行值节新增混编行集难度归属注记——同一坐标多行混编后各行值按既有口径独立生效再叠加(数量区间各行各掷、行集实例总数 ≤ 4),不引入新难度轴或乘区;首个混编行连同 Boss 多行投放归后续内容批,投时行值 provisional 归本文调参口径不变+MC 取证先报批+难度带读数义务。本批零内容投放零数值变更 |
|
||||
| v0.25 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①期望值带表「通关率带」行订正——「现行带:普通档 L1 [35,55] / L2 [10,15]、完美档 [35,65]」与同节「带换代」条及验收标准直接矛盾(2026-10-03 四带甲案已将其正式作废),改四带口径;②里程碑前缀按 2026-10-09 口径删「M-3」四处(判读口径同步条两处、回滚阶梯边界③一处、加难走廊扫描行一处)只留「迭代 5」;③杠杆位表与调参表「pool_shelf 四行」改「六行」(凭证与回复随迭代15② 入架);④P1 加难杠杆扫描行「扫描未执行」订正——域内取样扫描已随迭代 5 执行(与 Boss 设计节加难走廊行对齐),全杠杆落带扫描未收口;⑤第二关图版注记奖励点「(直通空态)」过期标注删除(奖励点兑付=提升三选一);⑥两处「见「待办」」悬空指针改指 06-待办清单。 |
|
||||
| v0.26 | 2026-10-09 | 文档正确性审查批(定点):三处裸「M-4」标签按 2026-10-09 里程碑口径改「Beta 阶段(未排期)」——期望值带节(M-4 排序)、P1/P2 表全局作用域行(M-4 杠杆表)、调参表资源面偏斜行(M-4 杠杆表);批次登记事实不动 |
|
||||
| v0.27 | 2026-10-09 | **文档卫生批(A5 过期指向收口——用户批准「按推荐做」)**:①调参表「血量锚比率 r_boss」行锚漂移登记尾句「复算与是否收锚归迭代 5 出口判读」改过期注记——迭代 5 已关闭未执行,r_boss 复算与收锚义务挂起、随数值批重开时核销;②期望值带节「期望承伤占比带复验义务随最近的减伤调整批执行」同款改过期注记——所指批次已关闭未执行,复验义务挂起、随数值批重开时核销。两义务内容不删、仅指向挂起 |
|
||||
| v0.28 | 2026-10-12 | **迭代 20 反哺落文批·投放读数登记(用户裁③——数值暂不调整只落内容,只测不判)**:期望值带节新增「迭代 20 投放读数」注记——池换代构成四级 70/25/9/0=104 张(凭证四件入稀有档 +6 provisional)+MC shop=off 止步分布 {1:90, 2:10}→{1:93, 2:7}(通关率 0% 持平,新基线 seed 71000,位移归因曝光槽高档候选加速);判读与带重锚随曲线调参批,本批零数值变更零带改动 |
|
||||
| v0.29 | 2026-10-14 | **迭代 24 反哺落文批·敌人表修批读数登记(用户裁「全部按呈报落文」——只测不判,数值终值归 M4)**:期望值带节新增「迭代 24 敌人表内容修批读数」注记——N2 普通敌技能投放后 perfect L2 通关 8→13/20、L3 全通 6→10/20(方向符合预期、量级低于二档判读带,倍率 provisional 归 M4);N3 敌方 attack_type 轴+克制消费后全局平移(重甲 −1/魔法甲 +1/轻甲 0,V5 实测单发恒 ±1,taken 中位上行系构成效应);N1 (1,2) 降档后 perfect L1 通关 19→20/20。判读与带重锚随 M4 数值批 |
|
||||
@@ -2,14 +2,15 @@
|
||||
|
||||
> 一句话:格面资源的产出、极性字典与清图奖励封装
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/b4-reward-item-economy.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
地图战斗资源是战斗域的资源层:每张雷图上每个格子携带什么资源、资源怎么摇定、正向与负向各兑付成什么效果、清图时整张板发什么,由它统一裁决。核心抽象是**格面资源(CellResource)**——关联到格子上的资源对象:装板时摇定类型身份,安全格与雷格一视同仁、同一类型池;资源本身不分好坏,被当成奖励还是惩罚,由玩家对这一格做的动作在结算期决定——开安全格、标中雷是正向,开雷格、标错安全格是负向(极性矩阵的定义归本文,路由执行归[战斗结算](战斗结算.md))。开局初始展开白送的那批格是**封锁格**——恒无资源,不再有任何加成(定义见[排雷玩法](../排雷循环/排雷玩法.md))。
|
||||
地图战斗资源是战斗域的资源层:每张雷图上每个格子携带什么资源、资源怎么摇定、正向与负向各兑付成什么效果、清图时整张板发什么,由它统一裁决。核心抽象是**格面资源(CellResource)**——关联到格子上的资源对象:装板时摇定类型身份,安全格与危险格一视同仁、同一类型池;资源本身不分好坏,被当成奖励还是惩罚,由玩家对这一格做的动作在结算期决定——开安全格、标中雷是正向,开危险格、标错安全格是负向(极性矩阵的定义归本文,路由执行归[战斗结算](战斗结算.md))。开局初始展开白送的那批格是**封锁格**——恒无资源,不再有任何加成(定义见[排雷玩法](../排雷循环/排雷玩法.md))。
|
||||
|
||||
它守住三件事:每个非封锁格都有资源可兑(结构保证,不靠逐次掷运气);类型身份在装板期一次摇定、全程只读(在"数字恒真"的推理之外,类型是第二层规划素材);每个兑付都能在结算明细里指回挖开的哪一格。缺了这一层,挖格没有收益语言,"扫雷攒因、战斗结果"的兑现就断在最后一环。
|
||||
|
||||
**类型层身份**:本层是规划素材层——未开格类型经微光对玩家可见(只读类型、不读危险格与安全格;呈现归[HUD框架](../表现与支撑/HUD框架.md)「未开格类型微光」节),「读敌拍板、抢类型」为正式设计意图。类型先读不拆推理:它回答「这格兑什么」,不回答「这格是不是雷」。
|
||||
|
||||
## 系统范围
|
||||
|
||||
边界这样划:本系统管"资源是什么、身份怎么摇定、正向负向各兑付什么、清图对象怎么配";发奖与兑付的编排归[战斗结算](战斗结算.md),增益本体归[增益状态](增益状态.md),画成什么样归[HUD 框架](../表现与支撑/HUD框架.md)。本系统零界面、除摇号外零随机:同一串操作驱动两个实例,结果逐位相同。
|
||||
@@ -21,8 +22,8 @@
|
||||
| 格面资源类型封闭枚举 | 九型(attack / defense / heal / blast / weaken / pierce / magic / action / gp——2026-09-18 伤害道具批五→七、2026-09-20 格面资源八型批七→八、同日 GP+商店房批八→九);表里出现清单外的类型,数据加载直接拒绝 |
|
||||
| 装板期身份预分配 | 每张图装上时一次摇定全部非封锁格的资源类型身份与清图奖励对象身份;只读、无重摇 |
|
||||
| 极性矩阵与九型字典 | 「动作 × 格型 → 正负号」的定义,以及每型正向 / 负向各兑付成什么效果 |
|
||||
| 清图奖励对象 | 板级作用域的独立奖励封装,可配置可替换,按图类型差异化 |
|
||||
| 未来功能道具的预留结构位 | 长周期、更强力的功能性道具经其他渠道加入;渠道设计未定,本系统只留结构位不预写 |
|
||||
| 清图奖励对象 | 整图作用域的独立奖励封装,可配置可替换,按图类型差异化 |
|
||||
| 未来功能道具的预留结构位 | 长周期、更强力的功能性道具 = 秘宝(局外同调件——渠道已随[秘宝](../跨局循环/秘宝.md)域与同调实施批落定);本系统只留结构位不预写 |
|
||||
|
||||
不负责:
|
||||
|
||||
@@ -49,16 +50,16 @@
|
||||
|
||||
### 格面资源:每个非封锁格都带一个,摇号纪律不变
|
||||
|
||||
每张雷图装上时——玩家挖第一下之前——本系统对这张图做且只做一次摇号:给图上全部非封锁格逐一摇出资源类型,同一次摇出清图奖励对象的身份(见清图一节),写进这张图的资源映射表。安全格与雷格一视同仁:同一类型池、同一权重分布,不存在"只给谁分配"的分支。封锁格(初始展开白送格)恒无资源——摇号清单里根本没有它们。
|
||||
每张雷图装上时——玩家挖第一下之前——本系统对这张图做且只做一次摇号:给图上全部非封锁格逐一摇出资源类型,同一次摇出清图奖励对象的身份(见清图一节),写进这张图的资源映射表。安全格与危险格一视同仁:同一类型池、同一权重分布,不存在"只给谁分配"的分支。封锁格(初始展开白送格)恒无资源——摇号清单里根本没有它们。
|
||||
|
||||
随机只发生在这一次摇号里:之后挖到哪格只是揭晓早已定好的身份,兑付不再掷任何骰子。部分行的威力是区间值,具体数值也在这次摇号里一并摇定,之后恒定不变。没挖开的格子在界面上不显示里面是什么——这是[不做清单](../../05-不做清单.md)的裁定;结构上身份已定、随时可查,预读类道具桥接的边界登记于待办。
|
||||
随机只发生在这一次摇号里:之后挖到哪格只是揭晓早已定好的身份,兑付不再掷任何骰子。部分行的威力是区间值,具体数值也在这次摇号里一并摇定,之后恒定不变。未开格的危险格与安全格在界面上不显示——这是[不做清单](../../05-不做清单.md)的裁定;类型身份则经微光只读可见(2026-10-07 类型层身份裁决,见设计目的「类型层身份」段与 05 清单收窄)。结构上身份已定、随时可查,预读类道具桥接的边界登记于待办。
|
||||
|
||||
| 摇号纪律 | 含义 |
|
||||
|---|---|
|
||||
| 恰一次 | 新图装好后、开挖前摇一次;已摇过的图再调摇号直接拒绝 |
|
||||
| 专属随机流 | 摇号消费一条名为 reward_roll 的专属随机数流;同种子同操作序列必然摇出同一张身份表,可逐位回放 |
|
||||
| 只读无重摇 | 映射就绪后只读;"重摇一下"的接口不存在,要加就是修订本文档 |
|
||||
| 雷安同池 | 安全格与雷格从同一类型池摇定(类型频次 = 该型正向行的权重);分布按格型差异化若未来需要,走本文修订 |
|
||||
| 危险格与安全格同池 | 安全格与危险格从同一类型池摇定(类型频次 = 该型正向行的权重);分布按格型差异化若未来需要,走本文修订 |
|
||||
|
||||
```
|
||||
装板 ──▶ 一次摇号(全部非封锁格的类型批 + 清图对象批尾)──▶ 只读映射(同图跨轮不变)
|
||||
@@ -67,31 +68,49 @@
|
||||
|
||||
举证:本节为流程与状态规则,无计算。
|
||||
|
||||
### 候选集合:安全格与雷格的资源池
|
||||
### 候选集合:安全格与危险格的资源池
|
||||
|
||||
格面资源在每非封锁格上摇定身份时不区分格型——`_rollable_rows()` 把 cell 池正向行全集作为权重表,对所有非封锁格一视同仁地 `weighted_pick`。安全格与雷格候选集相同,权重分布相同,类型频次合计 = reward.tres cell 池正向行 weight 之和(现行值读表):
|
||||
格面资源在每非封锁格上摇定身份时不区分格型——`_rollable_rows()` 把 cell 池正向行全集作为权重表,对所有非封锁格一视同仁地 `weighted_pick`。安全格与危险格候选集相同,权重分布相同,类型频次合计 = reward.tres cell 池正向行 weight 之和(现行值读表):
|
||||
|
||||
| 格型 | 候选集合(cell 池正向行,weight>0) | 类型频次合计 |
|
||||
|---|---|---|
|
||||
| 安全格 | attack_up(attack)· ac_up(defense)· spark_aoe(blast)· heal_minor(heal)· weaken(weaken)· pierce_strike(pierce)· magic_bolt(magic)· ap_up(action)· gp_gain(gp) | 见 `data/tables/reward.tres` |
|
||||
| 雷格 | 同上(雷安同池——九行正向行全集,权重分布相同) | 见 `data/tables/reward.tres` |
|
||||
| 危险格 | 同上(危险格与安全格同池——九行正向行全集,权重分布相同) | 见 `data/tables/reward.tres` |
|
||||
|
||||
清图槽(clear_default 池,clear_blast)独立于格面资源——作用域为整张板,不挂任何一格。
|
||||
|
||||
引用(代码事实源):
|
||||
- `game/core/reward_economy.gd#roll_board`:`_rollable_rows()` 第 207-213 行收 `pool_tag=cell & polarity=positive & weight>0` 全集;循环第 65-67 行对 `eligible` 清单(全部非封锁格)一视同仁。
|
||||
- `game/core/minesweeper_rules.gd#_do_dig` 第 256-264 行:chain/dig 通道 `cell_revealed` 事件 `resource=true` 字段对安全格与雷格一致——注释明确"安全格与雷格一视同仁(雷格亦携带,负向兑付归 战斗结算 极性路由)"。
|
||||
- `game/core/minesweeper_rules.gd#_do_dig` 第 256-264 行:chain/dig 通道 `cell_revealed` 事件 `resource=true` 字段对安全格与危险格一致——注释明确"安全格与危险格一视同仁(危险格亦携带,负向兑付归 战斗结算 极性路由)"。
|
||||
- `game/data/tables/reward.tres`:9 行正向行 weight 现行值读 `data/tables/reward.tres`。
|
||||
|
||||
候选集合具体行值(power / power_min / power_max / stacks / effect_id)随行更新——以 `data/tables/reward.tres` 为现行值源;GDD 表格只锁行集与权重分布语义。负向 9 行(enrage / off_guard / heal_backlash / enemy_alert / ap_drain / sapped / pierce_snare / magic_recoil / gp_loss——2026-09-20 八型批 ambush_double→enemy_alert 换装 + ap_drain 新增、同日 GP+商店房批 +gp_loss)weight=0 不参与摇号,按(类型, 极性)查表取用,不在候选集合内。
|
||||
|
||||
举证:本节为候选集合枚举,无计算。
|
||||
|
||||
### 四档概率结构与保底
|
||||
|
||||
摇号池按概率分四档组织(档的归属是结构、档内权重数值归调参批;现行权重为基准锚):
|
||||
|
||||
| 档 | 成员 | 概率位 | 保底上限 | 型级保底登记 |
|
||||
|---|---|---|---|---|
|
||||
| T1 攻击类 | attack / blast / pierce / magic | 最高 | 0 | 无 |
|
||||
| T2 增益类·GP 小袋 | defense / weaken / 小金币袋(gp) | 中 | 0 | 无 |
|
||||
| T3 回复(可保底档) | heal(将来可扩) | 低 | 1 | heal = 每板 ≥1 |
|
||||
| T4 惊喜类(永不保底档) | action / 大宝箱(大额 GP,枚举新增归实装批)/ 未来稀有型 | 极致罕见 | 0 | 永不登记 |
|
||||
|
||||
- **档由两个参数定义:概率位 + 保底上限**。「永不保底」不单立规则——T4 的保底上限 = 0 即其统一表达;T1/T2 上限同为 0。
|
||||
- **保底数量挂在型上、不挂在档上**:每个型各自登记「每板至少出几个」。档内登记保底的型数 ≤ 档上限 → 全部兑现;> 上限 → 每板从登记型中随机选定「上限」个兑现,其余型该板按普通概率出现、不保底。
|
||||
- **补签纪律**:执行序 = 装板摇号(含偏运硬币/board_skew 投影)→ 按上限定本期保底型集合 → 校验补签 → 板上全程只读。补签只改类型身份:危险格与安全格不动(补签格可为雷可为安全格,危险格与安全格同池不破)、不消费权重(补签不是一次取号)、清图判定不动、不泄露元信息(补签格与摇号格不可区分)。粒度 = 板,换板重新校验。
|
||||
- **GP 数值锚**:以战斗结束 GP 奖励为锚——小金币袋 ≈ 其 1/10、大宝箱 ≈ 其 1 倍(具体数值归调参批)。
|
||||
- 大宝箱为枚举新增(九型→十型走本文修订流程,不随手加行);微光归通用增益组(五色相不变,组内不细分正好容下)。
|
||||
- **对外稀有度映射**(现行事实源=[核心循环](../../01-核心循环.md)「档位与获取规则」节):T1=普通 / T2=优秀 / T3=稀有 / T4=传说;任何概率提升禁止改变本档保底承诺(保底=承诺非概率)。
|
||||
|
||||
### 极性矩阵:动作与格型决定符号
|
||||
|
||||
资源对象只带类型,不带正负。正负号在结算期由「玩家动作 × 格型」决定——这张矩阵是全部奖励与惩罚的统一路由:
|
||||
|
||||
| 玩家动作 | 安全格 | 雷格 |
|
||||
| 玩家动作 | 安全格 | 危险格 |
|
||||
|---|---|---|
|
||||
| 开格 | **+类型**:该格资源的正向兑付(奖励) | **−类型**:该格资源的负向兑付(惩罚) |
|
||||
| 标旗且留到轮末判定 | **−类型**:标错,该格资源的负向兑付(惩罚) | **+类型**:标中,该格资源的正向兑付(奖励) |
|
||||
@@ -103,12 +122,14 @@
|
||||
|
||||
### 九型字典:每型一行正向一行负向
|
||||
|
||||
**兑付形态差异化方向**(方向已裁、内容与落码归后续批次):兑付形态同质化(pierce/magic 同构等)确认为改进对象——各伤害型兑付形态将拉开、各有所司(如单点/面伤/弹射或减益向),九型枚举不动;具体形态设计归用户。
|
||||
|
||||
格面资源的一切兑付从九个类型里出,每个类型恰好一行正向、一行负向(五型 + 2026-09-18 伤害道具批增补 pierce / magic 两型 + 2026-09-20 格面资源八型批增补 action 一型 + 同日 GP+商店房批增补 gp 一型)——正向是玩家操作正确时拿到的东西,负向是操作失误或踩雷时吃到的东西:
|
||||
|
||||
| 类型 | 正向(奖励) | 负向(惩罚) |
|
||||
|---|---|---|
|
||||
| attack 增伤 | attack_up(hero_offense 池)——幅度/上限/权重见 `reward.tres` | enrage(enemy_output 池)——幅度/上限见 `status_effects.tres` enrage 行 |
|
||||
| defense 护甲 | ac_up 护甲强化(AC 掷点阈值轴——2026-09-16 换装,不入池)——幅度/上限/权重见 `reward.tres` | off_guard 失衡(AC 掷点阈值轴负向——2026-09-18 换装,不入池、退出 hero_defense 池)——幅度/上限见 `status_effects.tres` off_guard 行 |
|
||||
| defense 护甲 | ac_up 盾牌加护(AC 掷点阈值轴——2026-09-16 换装,不入池)——幅度/上限/权重见 `reward.tres` | off_guard 失衡(AC 掷点阈值轴负向——2026-09-18 换装,不入池、退出 hero_defense 池)——幅度/上限见 `status_effects.tres` off_guard 行 |
|
||||
| heal 回血 | heal_minor(满血零兑付照旧)——威力/权重见 `reward.tres` | heal_backlash 直伤:战斗结算直接扣血,不经增益状态——威力见 `reward.tres` |
|
||||
| blast 群伤 | spark_aoe 全体存活敌各吃一笔——威力/权重见 `reward.tres` | enemy_alert 警觉:敌方全体护甲等级 +1/层(`status_effects.tres` alert 行)——见 `reward.tres` |
|
||||
| weaken 削弱 | weaken(enemy_output 池;同名重复授予只刷新剩余次数——2026-09-18 续时定案)——幅度见 `status_effects.tres` weaken 行 | sapped(hero_offense 池)——幅度见 `status_effects.tres` sapped 行 |
|
||||
@@ -117,7 +138,7 @@
|
||||
| pierce 穿刺 | pierce_strike 穿刺弹:单目标克制直伤(attack_type=pierce 查克制矩阵,必中全额不掷点;目标 = 固定顺位最前存活敌)——威力/权重见 `reward.tres` | pierce_snare 穿刺陷阱:主角直伤,不经增益状态——威力见 `reward.tres` |
|
||||
| magic 魔法 | magic_bolt 魔法矢:单目标克制直伤(attack_type=magic,同上)——威力/权重见 `reward.tres` | magic_recoil 魔法反噬:主角直伤,不经增益状态——威力见 `reward.tres` |
|
||||
|
||||
设计意图:读敌拍板的路线规划——敌方要放大招时抢护甲强化、怪重叠时抢削弱,惩罚侧则镜像同一批类型。类型清单是封闭的:加新类型等于修订本文档,不是调参数(2026-09-18 伤害道具批即按此修订五→七;2026-09-20 GP+商店房批按同一流程修订八→九——格面 GP 由用户拍板入池,定位"低概率惊喜获取"、量与战斗掉落相当,兑付进战斗内缓冲而非当场生效)。
|
||||
设计意图:读敌拍板的路线规划——敌方要放大招时抢盾牌加护、怪重叠时抢削弱,惩罚侧则镜像同一批类型。类型清单是封闭的:加新类型等于修订本文档,不是调参数(2026-09-18 伤害道具批即按此修订五→七;2026-09-20 GP+商店房批按同一流程修订八→九——格面 GP 由用户拍板入池,定位"低概率惊喜获取"、量与战斗掉落相当,兑付进战斗内缓冲而非当场生效)。
|
||||
|
||||
凡"该兑付但没生效"——增益挂满层、满血捡到 heal 正向、场上无敌可打——一律在结算明细里明写一行"奖励未生效",不给折算补偿,也不静默消失。把兑付改成跳过轮末结算直接生效,同样在禁止之列。
|
||||
|
||||
@@ -129,11 +150,11 @@
|
||||
|
||||
举证:本节为兑付语义,无计算。
|
||||
|
||||
### 清图奖励对象:板级封装,可配置可替换
|
||||
### 清图奖励对象:整图封装,可配置可替换
|
||||
|
||||
清图奖励不属于任何一格的格面资源——它是作用域为整张板的独立奖励对象:把一张图的雷全部清完(全部安全格开完)时结算发的那一份。装板摇号时与格子资源同批判尾摇定身份;清图批兑付恰好一次;完美排雷(零误标且至少标中一面旗)追加第二份同身份兑付。
|
||||
|
||||
它是可配置可替换的封装:数据面上是清图池里的一行(现行默认槽 clear_default),换行即换内容,机制零改动。按图类型差异化已留结构位——`clear_<图类型>` 命名空间预留,不同地图类型可以配不同的清图奖励;词表已定稿(2026-09-19:{dungeon, underdark},玩家侧「地图类型」),差异化内容启用随内容批。
|
||||
它是可配置可替换的封装:数据面上是清图池里的一行(现行默认槽 clear_default),换行即换内容,机制零改动。按图类型差异化已留结构位——`clear_<图类型>` 命名空间预留,不同地图类型可以配不同的清图奖励;词表现行 = {dungeon, underdark, deep_underdark}(2026-09-19 定稿两值、第三关内容批 2026-09-20 增 deep_underdark,玩家侧「地图类型」),差异化内容启用随内容批。
|
||||
|
||||
| 清图奖励规则 | 含义 |
|
||||
|---|---|
|
||||
@@ -161,7 +182,7 @@
|
||||
| 下游 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | 权重、档位、威力与池内容的调参所有权(全部 provisional) |
|
||||
| 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 呈现义务归其:已开格资源身份常读、类型图标预读的呈现深度、结算明细行、清图奖励行强调 |
|
||||
| 下游 | [教学引导](../表现与支撑/教学引导.md) | "读敌拍板、抢类型"教学口径的来源 |
|
||||
| 下游 | [秘宝](../排雷循环/秘宝.md) | 相邻:秘宝的背包与使用归其管;预读类道具读取本系统的身份查询面 |
|
||||
| 下游 | [秘宝](../跨局循环/秘宝.md) | 相邻:秘宝件的装配与使用归其管;预读类道具读取本系统的身份查询面(现行零投放——原承载件探宝罗盘已退役,接口面保留) |
|
||||
|
||||
负空间:本系统不订阅事件、不画界面、除摇号外不用任何随机数;何时调接口、按什么顺序调,全归[战斗结算](战斗结算.md)。库存、道具使用窗口、可选类供给已随可选类道具删除(2026-09-15)整体下线,不再属于本系统。
|
||||
|
||||
@@ -171,7 +192,7 @@
|
||||
2. 玩家挖掘:挖开的格子当场揭晓类型身份;已开格的身份随时可读。
|
||||
3. 轮末授予段按极性矩阵逐格兑付:正向 percent 挂状态、heal 正向当场结算,非伤害负向当场兑付;伤害形态正负单据暂存,战斗段末统一落地。
|
||||
4. 清图轮兑付清图奖励对象,恒非空;完美排雷追加第二份。
|
||||
5. 战斗结束:板级映射退役。换图按新板重摇。
|
||||
5. 战斗结束:整图映射退役。换图按新板重摇。
|
||||
|
||||
## P1 / P2 后置
|
||||
|
||||
@@ -179,9 +200,9 @@
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 功能道具渠道(长周期、更强力的功能性道具) | 用户已定方向(2026-09-15):数值型伤害/治疗道具已删除,功能道具经其他渠道加入——渠道候选(关卡节点奖励等)归[关卡节点地图](../冒险循环/关卡节点地图.md)域定稿;本系统只留结构位 |
|
||||
| P1 | 清图池按图类型差异化 | 默认槽之外的结构位已留;词表已定稿(2026-09-19:{dungeon, underdark}),差异化行随内容批配置 |
|
||||
| P1 | 未开格资源类型的呈现深度 | 结构前提已备(身份摇定即可查);与推理的界线未拍板,见待办 |
|
||||
| P1 | ~~功能道具渠道~~(已由秘宝体系承接——局外同调件:营地解锁 + 同调位装配,同调实施批 2026-10-03 落地;关卡节点渠道形态顺带退役) | 数值型伤害/治疗道具已删除(2026-09-15 用户定);本系统只留结构位不变 |
|
||||
| P1 | 清图池按图类型差异化 | 默认槽之外的结构位已留;词表现行三值({dungeon, underdark, deep_underdark}),差异化行随内容批配置 |
|
||||
| P1 | 未开格资源类型的呈现深度 | 基础档已定——微光只读类型不读危险格与安全格(2026-10-07 案甲,实施归呈现批、06 在案);更深档与推理的界线另议 |
|
||||
| P1 | 增攻(attack)型行值与权重终调 | 内容决策,归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| P2 | 音频挂钩(拾取音 / 负向兑付音 / 清图奖励音) | 归[音频](../表现与支撑/音频.md),Alpha |
|
||||
| P2 | 内容名录扩展(新资源行) | 机制与内容分离;现行行集收窄,扩展随内容批 |
|
||||
@@ -203,25 +224,26 @@
|
||||
| off_guard | defense | 负向 | weight=0 不参与摇号·power 不消费(percent 行 effect_id → StatusEffectTable off_guard 引用) | 同上 | 同上 |
|
||||
| heal_backlash | heal | 负向 | weight=0 不参与摇号·power [0,999](flat 行 effect_id 恒空) | 同上 | 同上 |
|
||||
| enemy_alert | blast | 负向 | weight=0 不参与摇号·effect_id=alert(敌方护甲等级 +1——effect 引用行,unit=ac) | 同上 | 同上 |
|
||||
| ap_up | action | 正向 | weight=6 参与摇号 | 同上 | 同上 |
|
||||
| ap_up | action | 正向 | weight [0,999] 参与摇号 | 同上 | 同上 |
|
||||
| ap_drain | action | 负向 | weight=0 不参与摇号 | 同上 | 同上 |
|
||||
| gp_gain | gp | 正向 | weight [0,999] 参与摇号 · power [0,999]·power_min/power_max 可选区间(flat 行 effect_id 恒空) | 同上 | 同上 |
|
||||
| gp_loss | gp | 负向 | weight=0 不参与摇号 · power [0,999](flat 行 effect_id 恒空) | 同上 | 同上 |
|
||||
| sapped | weaken | 负向 | weight=0 不参与摇号·power 不消费(percent 行 effect_id → StatusEffectTable sapped 引用) | 同上 | 同上 |
|
||||
| clear_blast | blast | 正向 | clear_default 池·power [0,999]·power_min/power_max 可选区间·weight [0,999] | 同上 | 清图槽 |
|
||||
|
||||
摇号只消费正向格面池的权重(类型频次由此涌现——具体权重读 `reward.tres`);负向行是纯兑付字典,按(类型,极性)查表取用,不消费权重。clear_blast 对全体存活敌各吃一笔当场兑付的 flat 伤害。RewardConfigTable 已随可选类删除下线——注入概率、按板保底等参数全部失义。
|
||||
摇号只消费正向格面池的权重(类型频次由此涌现——具体权重读 `reward.tres`);负向行是纯兑付字典,按(类型,极性)查表取用,不消费权重。权重分布按四档概率结构组织(档成员与保底规则见「四档概率结构与保底」节;现行权重为基准锚,数值调整归调参批)。clear_blast 对全体存活敌各吃一笔当场兑付的 flat 伤害。RewardConfigTable 已随可选类删除下线——注入概率、按板保底等参数全部失义(旧「按板保底」指已删除的可选类道具注入保底,与四档结构的型级保底无关)。
|
||||
|
||||
结构冻结(改动走本文修订流程,不走调参):九型封闭枚举(伤害道具批 2026-09-18 修订五→七、格面资源八型批 2026-09-20 修订七→八、同日 GP+商店房批修订八→九)、雷安同池、极性矩阵、装板期预分配且无重摇、负向恒即时无库存、清图恒非空、除摇号外零随机。
|
||||
结构冻结(改动走本文修订流程,不走调参):九型封闭枚举(伤害道具批 2026-09-18 修订五→七、格面资源八型批 2026-09-20 修订七→八、同日 GP+商店房批修订八→九)、危险格与安全格同池、极性矩阵、装板期预分配且无重摇、负向恒即时无库存、清图恒非空、除摇号外零随机(四档保底补签属装板期校验环节,消费摇号环节随机流,非重摇——补签后身份全程只读)。
|
||||
|
||||
## 验收标准
|
||||
|
||||
- 每格必有货:装板摇号后,每个非封锁格恰有一个资源类型、清图槽恰有一个对象身份;封锁格恒无资源;同图跨轮查询结果逐字相同。
|
||||
- 雷安同池:安全格与雷格从同一类型池、同一权重分布摇定;任何"按格型差异化分配"的分支不存在。
|
||||
- 危险格与安全格同池:安全格与危险格从同一类型池、同一权重分布摇定;任何"按格型差异化分配"的分支不存在。
|
||||
- 恰一次与确定性:摇号对每张新图恰发生一次,重复调用被拒绝且映射不变;同一条随机流轨迹驱动两套实例,映射与兑付回执逐位相同。
|
||||
- 四档保底:装板完成后,保底上限 >0 的档其登记型按登记数补齐(现行 = heal 每板 ≥1);补签格与摇号格在数据与呈现上不可区分;保底上限 0 的档格数可为 0。
|
||||
- 类型封闭与字典完整:表里出现九型之外的类型、或任一型缺正向/负向行,加载拒绝。
|
||||
- 未生效可见:满层增益、满血正向治疗、无存活敌的群伤,各自在结算明细记"奖励未生效"行,零折算、零补偿。
|
||||
- 加载护栏:池空、清图池无正当量、增益引用悬空——任一命中即加载报错中止;默认内容加载通过。
|
||||
- 加载护栏:池空、清图池无正当量、增益引用悬空——任一命中即加载时返回错误并中止;默认内容加载通过。
|
||||
- 表实一致:数据表字段与 registry 的 reward_table 条目逐字段一致。
|
||||
|
||||
## 待办
|
||||
@@ -235,16 +257,24 @@
|
||||
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
||||
| v0.2 | 2026-09-15 | 可选类注入递减基准对齐代码:逐图减半改为按实际获取件数递减;补明注入覆盖即时身份与"发放即获取、未挖到不计数"语义;验收标准首件保证改"必注入"口径 |
|
||||
| v0.3 | 2026-09-15 | 雾格残留清理:关闭「待拍板」的雾格相关定价约束三条失义条目与随之取消的奖励配置表档位过滤门限 t_fog_min |
|
||||
| v0.4 | 2026-09-15 | **格面资源批(用户拍板,2026-09-15)**:① 核心抽象改为格面资源(CellResource)——安全格与雷格一视同仁、单一类型池装板期摇定,极性由「动作 × 格型」矩阵决定(开安全格/标中雷 = 正向,开雷格/标错安全格 = 负向),取代踩雷固定伏击、标中固定削弱、标错三选一哈希反噬三套固定兑付;② 五型字典(attack/defense/heal/blast/weaken,正负各一行;weaken 负向 sapped 为新行,heal 负向为不经增益状态的直伤);③ 封锁格(初始展开格)恒无资源;④ 清图奖励改述为板级、可配置可替换的清图奖励对象,图类型差异化插槽保留;⑤ **可选类道具(刀/治疗包)整体删除**——供给控制器、注入概率、按板保底、关卡域库存、道具使用窗口的数据面全部下线,RewardConfigTable 随批废止;功能道具经其他渠道加入的结构位登记 P1;⑥ 行动经济对账锚与难度曲线重推义务随批登记(见 registry 修订记录) |
|
||||
| v0.4 | 2026-09-15 | **格面资源批(用户拍板,2026-09-15)**:① 核心抽象改为格面资源(CellResource)——安全格与危险格一视同仁、单一类型池装板期摇定,极性由「动作 × 格型」矩阵决定(开安全格/标中雷 = 正向,开危险格/标错安全格 = 负向),取代踩雷固定伏击、标中固定削弱、标错三选一哈希反噬三套固定兑付;② 五型字典(attack/defense/heal/blast/weaken,正负各一行;weaken 负向 sapped 为新行,heal 负向为不经增益状态的直伤);③ 封锁格(初始展开格)恒无资源;④ 清图奖励改述为整图、可配置可替换的清图奖励对象,图类型差异化插槽保留;⑤ **可选类道具(刀/治疗包)整体删除**——供给控制器、注入概率、按板保底、关卡域库存、道具使用窗口的数据面全部下线,RewardConfigTable 随批废止;功能道具经其他渠道加入的结构位登记 P1;⑥ 行动经济对账锚与难度曲线重推义务随批登记(见 registry 修订记录) |
|
||||
| v0.5 | 2026-09-16 | 更名批(用户拍板 2026-09-16):系统更名"奖励道具经济"→"地图战斗资源"——定义双向(正负由动作×格型决定)、格面承载、只在战斗结算生效;文件同步重命名;「待拍板」系统更名条目关闭;英文代号 REWARD_ITEM_ECONOMY 暂沿用 |
|
||||
| v0.6 | 2026-09-16 | **护甲等级掷点批·换装(与战斗结算 / 增益状态 / registry / 切片同批)**:defense 型正向行 defense_up(减伤 −30%,hero_defense 池)换装为 ac_up(护甲强化 +1 护甲等级/层 ×2 层,显示名暂定"护甲强化")——百分比减伤行无双轨退役;cell_type defense / 权重 16 / 档位 2 零改动(v0.6 当下类型频次合计 79;v0.7 数值压缩批后 heal_minor 权重 15→3,合计降至 67——见 v0.7 条);五型字典表与 mvp 行表同步 |
|
||||
| v0.7 | 2026-09-17 | **数值压缩批·文档同步(与 doc-conventions.md §5 数值纪律·强制收口条款同批)**:整体绝对值轴 ÷3(24/7→8/2 等,见 `data/tables/enemy.tres` 注释);奖励表 heal_minor 权重 ÷4(15→3);reward.tres 三 flat 行同步(spark_aoe power 4→1 · heal_backlash power 4→1 · heal_minor power [2,6]→[1,1] 定值);clear_blast 区间 [25,55]→[8,18](中点 13,期望不漂移)。**双写失同步收口**:① 五型字典表与调参表数值列改指路存根(指向 `data/tables/reward.tres` 与 `registry/entities.yaml` reward_table mvp_content);② 文档表格只锁字段语义与取值域,不再列具体数;③ 与 `增益状态.md` v0.7 / `registry/entities.yaml` 同批落地——五步收口(`.tres` 落批 · 切片 smoke 跑通 · GDD 表格指路化 · registry mvp_content 指路化 · 待办清单现状刷新)一并兑现 |
|
||||
| v0.8 | 2026-09-17 | **候选集合节补强(与代码对齐)**:在「格面资源」节后新增「候选集合:安全格与雷格的资源池」——明确安全格与雷格候选集 = cell 池正向 5 行全集(attack_up · ac_up · spark_aoe · heal_minor · weaken),权重分布相同,类型频次合计 67(v0.7 压缩批后)。清图槽 clear_blast 独立于格面资源、板级作用域。代码事实源:`core/reward_economy.gd#roll_board`(`_rollable_rows` 不分格型)+ `core/minesweeper_rules.gd#_do_dig`(cell_revealed 通道 `resource=true` 对两种格一致)。同步修正 v0.6 历史条目"类型频次合计 79 不变"——v0.7 后改 67 |
|
||||
| v0.8 | 2026-09-17 | **候选集合节补强(与代码对齐)**:在「格面资源」节后新增「候选集合:安全格与危险格的资源池」——明确安全格与危险格候选集 = cell 池正向 5 行全集(attack_up · ac_up · spark_aoe · heal_minor · weaken),权重分布相同,类型频次合计 67(v0.7 压缩批后)。清图槽 clear_blast 独立于格面资源、整图作用域。代码事实源:`core/reward_economy.gd#roll_board`(`_rollable_rows` 不分格型)+ `core/minesweeper_rules.gd#_do_dig`(cell_revealed 通道 `resource=true` 对两种格一致)。同步修正 v0.6 历史条目"类型频次合计 79 不变"——v0.7 后改 67 |
|
||||
| v0.9 | 2026-09-17 | **数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 `data/tables/*.tres` 与 registry),3 处失同步值修正**——候选集合节"合计 = 67"字面量改指路 reward.tres cell 池正向行 weight 之和(现行值读表);候选集合表"类型频次合计"列两处 67 改"见 reward.tres";代码事实源清单五型 weight 明细(attack_up 20 · ac_up 16 · spark_aoe 16 · heal_minor 3 · weaken 12)改"5 行正向行 weight 现行值读 reward.tres" |
|
||||
| v0.10 | 2026-09-18 | **伤害道具批(用户指令,2026-09-18)**:① 五型→七型——增补 pierce(穿刺)/ magic(魔法)两型,各正负一行:正向 = 单目标克制直伤道具(pierce_strike 穿刺弹 / magic_bolt 魔法矢,attack_type 字段载攻击类型轴,查战斗结算克制矩阵、必中全额不掷点、目标 = 固定顺位最前存活敌);负向 = 主角直伤(pierce_snare 穿刺陷阱 / magic_recoil 魔法反噬,复用反噬通道不经增益状态);② 权重再平衡(用户指令"保爆裂粉尘不变、等比下调其余"):spark_aoe 16 不动,attack_up 20→14 · ac_up 16→11 · heal_minor 3→2 · weaken 12→8(等比基准 ×35/51≈0.686,整取微差登记已知偏差),新行各 8——类型频次合计仍 67;③ 结构冻结"五型封闭"按 owner 修订流程改"七型封闭";切片同批落地(reward.tres 四新行 + schema 七型枚举 + attack_type 校验 + 结算兑付分支 + 棋盘徽标 穿/魔 + smoke 295 全绿;断言"主角先手攻击行存在"放宽为"存在或授予段终局"——单弱敌可被挖掘期兑付单独击杀,战斗段整段跳过为合法结局) |
|
||||
| v0.11 | 2026-09-18 | **战斗数值结构修复批·极性矩阵同步(2026-09-18 盘问会话用户拍板,与战斗结算 v0.14 / 增益状态 v0.9 / registry / 切片代码同批)**:① defense 型负向 off_guard 行失同步修正——原残留"hero_defense 池,承伤加深"改"AC 掷点阈值轴负向、不入池"(off_guard 换装 AC 轴随结构修复批落地,effect_pool_map 删键);② weaken 型正向行补续时定案注记(同名重复授予只刷新剩余次数——2026-09-18,叠层措辞随批退役) |
|
||||
| v0.12 | 2026-09-19 | **插旗不可逆批·极性矩阵同步(用户拍板全套落地,与战斗结算 v0.18 / 排雷玩法 v0.5 / registry / 切片代码同批)**:矩阵「标旗后当轮撤旗」行删除(撤旗动作退役)、「插旗格直接挖开」行新增——安全格零兑付(四情况④零惩罚零奖励)、雷格负向照常(四情况②只受挖雷一层惩罚、标中不发);路由描述「抵消过滤」随战斗结算改「判定基线」 |
|
||||
| v0.12 | 2026-09-19 | **插旗不可逆批·极性矩阵同步(用户拍板全套落地,与战斗结算 v0.18 / 排雷玩法 v0.5 / registry / 切片代码同批)**:矩阵「标旗后当轮撤旗」行删除(撤旗动作退役)、「插旗格直接挖开」行新增——安全格零兑付(四情况④零惩罚零奖励)、危险格负向照常(四情况②只受挖雷一层惩罚、标中不发);路由描述「抵消过滤」随战斗结算改「判定基线」 |
|
||||
| v0.13 | 2026-09-20 | **伏击单轮上限删除批同步(与战斗结算 v0.19 / 敌人系统 v0.11 等同批)**:负向即时节 blast 负向的伏击上限护栏与溢出行协议措辞删除,改直授无上限 |
|
||||
| v0.14 | 2026-09-20 | **格面资源八型批(用户拍板——与敌人系统 / 战斗结算 / 行动经济 / registry / 切片代码同批)**:① 七型→八型(+action 行动点——正向 ap_up 下轮行动点 +1、负向 ap_drain 迟滞 −1,经 action_economy 排队、下一轮兑现);② blast 负向 ambush_double 退役换装 enemy_alert 警觉(敌方全体护甲等级 +1/层,`status_effects.tres` alert 行,side-wide);③ 极性矩阵/八型字典/负向即时节/候选集合/调参表/结构冻结/验收标准同步;正向权重合计 67→74(attack 14 / defense 11 / blast 16 / heal 2 / weaken 8 / pierce 8 / magic 8 / 清障炸药 1 / action 6) |
|
||||
| v0.15 | 2026-09-20 | **格面资源九型批(GP+商店房批,用户拍板——格面 GP 获取途径推翻提案"格面池零修订"推荐:定位"低概率惊喜获取"、量与战斗掉落相当;与战斗结算 v0.23 / 冒险结构 v0.5 / 关卡节点地图 v1.1 / registry / 切片代码同批)**:① 八型→九型(+gp 金币——正向 gp_gain 金币袋 weight 2、负向 gp_loss 破财 weight=0 纯字典,power 语义 = 战斗内 GP 缓冲 ±,兑付编排归战斗结算、钱包账本归冒险结构);② 负向恒即时节补 gp 两向缓冲语义(战斗完成随 gp_dropped 统一到账,无库存语义不变);③ 候选集合/调参表/结构冻结(九型封闭枚举)/验收标准同步——正向权重合计 74→76;字典 16 格→18 格 |
|
||||
| v0.16 | 2026-10-03 | **偏运硬币权重投影注记(迭代 11 第①批同调实施批——任务书 §十连带;池结构与冻结项零触碰)**:同调被动件「偏运硬币」装配时对装板摇号(roll_board 身份批,reward_roll 封闭流)注入池内权重投影——稀有正向 kinds {heal, gp, pierce, magic} 行 weight +N(表值 magnitude,provisional),雷安仍同池同分布、池成员集合与取号次数零变化(reward_economy._biased_cell_rows,luck_bias=0 时逐位返回原行集=off 态零扰动);摇号权重合计面 76 为九型基准值、投影后合计随 N 浮动(逐行归因不受影响——抽签按调整后池权重消费同一取号) |
|
||||
| v0.16 | 2026-10-03 | **偏运硬币权重投影注记(迭代 11 第①批同调实施批——需求卡片 §十连带;池结构与冻结项零触碰)**:同调被动件「偏运硬币」装配时对装板摇号(roll_board 身份批,reward_roll 封闭流)注入池内权重投影——稀有正向 kinds {heal, gp, pierce, magic} 行 weight +N(表值 magnitude,provisional),危险格与安全格仍同池同分布、池成员集合与取号次数零变化(reward_economy._biased_cell_rows,luck_bias=0 时逐位返回原行集=off 态零扰动);摇号权重合计面 76 为九型基准值、投影后合计随 N 浮动(逐行归因不受影响——抽签按调整后池权重消费同一取号) |
|
||||
| v0.17 | 2026-10-07 | **类型层身份裁决(道具三层重设计·地图层开场题——案甲用户裁,与 05-不做清单 v1.4 同批)**:设计目的节补「类型层身份」段——本层=规划素材层,未开格类型经微光可见(只读类型不读危险格与安全格,呈现归 HUD框架),「读敌拍板、抢类型」为正式设计意图;05 清单第 14 条同批收窄移出禁止面;微光实施归呈现批(06「未开格类型徽章呈现时机」条在案) |
|
||||
| v0.18 | 2026-10-07 | 地图层内容题①裁案A(用户裁):兑付形态差异化方向转正——九型枚举不动、同型兑付形态将拉开(pierce/magic 同构为首要对象),具体形态设计归用户、实施归后续批次;九型字典节补方向注记 |
|
||||
| v0.19 | 2026-10-07 | **地图层题四裁(用户裁——四档池结构)**:候选集合节新增「四档概率结构与保底」——档=概率位+保底上限两参数(T1 攻击类/T2 增益类·GP 小袋/T3 回复可保底档/T4 惊喜类永不保底档=上限 0 统一表达);保底按型登记(heal=每板 ≥1),超上限时每板随机选定兑现集合(暂定);补签四纪律(只改类型身份/不消费权重/粒度=板/不泄露元信息);GP 数值锚(小袋≈战斗结束 GP×1/10、大宝箱≈×1);大宝箱枚举新增归实装批(微光归通用增益组,五色相不变);调参表节补四档组织注记+旧「按板保底」失义句消歧;结构冻结条补「补签=装板期校验环节非重摇」;验收标准补四档保底条;袋装摇号备选挂号 06 |
|
||||
| v0.20 | 2026-10-07 | **档位名映射随批(现行事实源=[核心循环](../../01-核心循环.md)「档位与获取规则」节 v1.5 同批落文)**:四档池节补对外稀有度映射行——T1=普通/T2=优秀/T3=稀有/T4=传说(T4=头奖级,与「极致罕见抽到就是爽」定位互证);同补护栏=任何概率提升不得改变本档保底承诺(保底=承诺非概率) |
|
||||
| v0.21 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①格面资源节「没挖开的格子在界面上不显示里面是什么」订正——未开格类型身份已随 2026-10-07 类型层身份裁决经微光只读可见(不显示的是危险格与安全格),与 P1 呈现深度行同步(基础档已定);②清图节图类型词表 {dungeon, underdark} 补第三值 deep_underdark(第三关内容批在役,P1 差异化行同步);③负责表与 P1「功能道具渠道、渠道设计未定」订正——功能道具 = 秘宝局外同调件(渠道已随秘宝域与同调实施批落定),本系统结构位不变;④调参表 ap_up 行「weight=6」改域表述(数值纪律:行值读表)。 |
|
||||
| v0.22 | 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):依赖与输出表秘宝行「秘宝的**背包**与使用归其管」过渡形态残留——同调形态无背包(关卡域库存已退役),改「秘宝件的装配与使用归其管」并补预读接口现行零投放注(与秘宝.md v1.7 依赖表对齐) |
|
||||
| v0.23 | 2026-10-12 | **玩家向显示名跟随批(锻造工坊裁决会话 8a 连带·D 项执行)**:defense 正向行 `ac_up` 显示名「护甲强化」→「盾牌加护」(`reward.tres:22` / `status_effects.tres:18` 同批改名,`smoke_all.gd:1199` 断言同步;用户裁口径=临时叠层 AC 状态不该叫"护甲",附带约定「加护」=AC 判定层、「护盾」=吸收层不得混用);本文九型字典表与设计意图句跟随改现名;另 art-bible.md §4.6.1/§4.6.2 键名列、07 体验验证清单⑫同批跟随。机制与数值零改动 |
|
||||
| v0.24 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 2 处——四档概率结构与保底节「任何概率提升不得改变本档保底承诺」改「禁止改变」;验收标准加载护栏条「加载报错中止」改「加载时返回错误并中止」。机制与数值零改动 |
|
||||
@@ -2,11 +2,10 @@
|
||||
|
||||
> 一句话:增益/减益状态的容器、叠层与衰减
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/b3-status-effect.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
战斗里有一类效果不在当场一次性用掉,而要管上几次结算:挖开安全格拿到的主角增益、标中旗带来的怪物削弱、踩雷喂给怪物的增强(警觉——blast 型负向)、标错旗招来的负向兑付,都是这类。本文把它们统称"状态":发给主角的有益效果叫增益(失衡是个例外——它是发给主角的减益),发给敌人的负面效果叫减益;敌方侧的增强同样是状态——几个方向共用一本账。
|
||||
战斗里有一类效果不在当场一次性用掉,而要管上几次结算:挖开安全格拿到的主角增益、标中旗带来的怪物削弱、踩雷喂给怪物的增强(警觉——blast 型负向)、标错旗招来的负向兑付,都是这类。本文把它们统称"状态":发给主角的有益效果叫增益(失衡与乏力是例外——它们是发给主角的减益),发给敌人的负面效果叫减益;敌方侧的增强同样是状态——几个方向共用一本账。
|
||||
|
||||
增益状态就是这本账:一个容器收下全部状态,用同一套规矩管理——发入、合并(同一种效果重复拿到时按表行策略处理:叠层加一,或只刷新剩余次数——读 `status_effects.tres` 逐行 stack_policy)、衰减(每次结算后剩余次数减一,减到零效果消失)、清空(战斗结束全部清除)。没有它,几类效果得各写一套计时逻辑,结算明细也无法逐行指回"这效果是我哪步棋带来的"。容器管机制、不管数值从哪来:某个效果该多大,由各收益系统的表去定,容器只照章入账、按次衰减。
|
||||
|
||||
@@ -66,8 +65,8 @@
|
||||
| 来源类别 | 什么时候发生 | 发给谁 |
|
||||
|---|---|---|
|
||||
| 安全格 | 挖开安全格拿到增益 | 主角 |
|
||||
| 标中旗 | 轮末旗判定标中(巢穴被控制) | 敌方,削弱 |
|
||||
| 踩雷 | 挖开惩罚格、惊动巢穴 | 敌方,增强 |
|
||||
| 标中旗 | 轮末旗判定标中(危险格被控制) | 敌方,削弱 |
|
||||
| 踩雷 | 挖开危险格并惊动 | 敌方,增强 |
|
||||
| 清图奖励 | 清图奖励槽含增益时 | 随行定,路径归[地图战斗资源](地图战斗资源.md)定稿 |
|
||||
| 标空旗 | 轮末旗判定标空(标了但格不是雷) | 该安全格格面资源的负向兑付(极性矩阵"标错"分支——2026-09-15 起不再三选一);载体裁决归[战斗结算](战斗结算.md) |
|
||||
|
||||
@@ -128,13 +127,13 @@
|
||||
| 例子 | 容器输出 | 消费侧读法 |
|
||||
|---|---|---|
|
||||
| 暴走叠两层 | +(2 × enrage 行幅度)(读表;越出单行取值域,原样输出) | 压在天花板 +100% 上:敌方输出乘区封顶 ×2(削弱已改续时——"叠两层压地板 −100% 归零"的读法随 2026-09-18 结构修复批退役,见版本历史) |
|
||||
| 主角护甲强化再拿一份 | 层数恒 1、剩余结算次数重置(refresh——2026-09-20 主角增益续时批) | 不经任何池:掷点判定阈值 = 主角基准(读 hero 表)+ 层数(现行 +1——上限 2 层叠读取法退役,局内可达 AC 上限 11) |
|
||||
| 主角盾牌加护再拿一份 | 层数恒 1、剩余结算次数重置(refresh——2026-09-20 主角增益续时批) | 不经任何池:掷点判定阈值 = 主角基准(读 hero 表)+ 层数(现行 +1——上限 2 层叠读取法退役,局内可达 AC 上限 11) |
|
||||
|
||||
容器还有一条快照纪律:实例的幅度、初始次数、量纲在授予那一刻从表行拷贝。战斗中配置表即使被重载,已授予实例不受任何影响,只影响后续授予。
|
||||
|
||||
### 现在有哪些状态:现行九行内容
|
||||
|
||||
现行状态表恰有九行:主角侧四行(增伤/护甲强化两增益 + 失衡/乏力两减益)、敌方侧五行(削弱/暴走/警觉/蓄力/硬化——警觉为 blast 型负向踩雷载体,2026-09-20 伏击退役后进表)。全部用同构实例承载;数值全部 provisional(临时值,过锚验收后才定稿)。
|
||||
现行状态表恰有九行:主角侧四行(增伤/盾牌加护两增益 + 失衡/乏力两减益)、敌方侧五行(削弱/暴走/警觉/蓄力/硬化——警觉为 blast 型负向踩雷载体,2026-09-20 伏击退役后进表)。全部用同构实例承载;数值全部 provisional(临时值,过锚验收后才定稿)。
|
||||
|
||||
| 字段 | 取值 | 说明 |
|
||||
|---|---|---|
|
||||
@@ -150,18 +149,18 @@
|
||||
| 状态 | 效果一句话 | 发给谁 | 幅度(现行值) | 时限 / 合并 | 来源类别 |
|
||||
|---|---|---|---|---|---|
|
||||
| attack_up 增伤 | 主角攻击提升 | 主角 | 见 `data/tables/status_effects.tres` attack_up 行 | 时限/上限读表 / 刷新(2026-09-20 续时批 stack→refresh,层数恒 1) | 安全格 |
|
||||
| ac_up 护甲强化 | 主角护甲等级提升(掷点折扣判定阈值——AC 轴,不入池) | 主角 | 见 `status_effects.tres` ac_up 行(2026-09-16 换装,原 defense_up 行已退役,见版本历史) | 时限/上限读表 / 刷新(2026-09-20 续时批 stack→refresh,层数恒 1) | 安全格 |
|
||||
| alert 警觉 | 敌方护甲等级 +1/层 | 敌方 | 见 `status_effects.tres` alert 行 | 1 结算 / 叠加读表 | 踩雷(blast 型负向) |
|
||||
| ac_up 盾牌加护 | 主角护甲等级提升(掷点折扣判定阈值——AC 轴,不入池) | 主角 | 见 `status_effects.tres` ac_up 行(2026-09-16 换装,原 defense_up 行已退役,见版本历史) | 时限/上限读表 / 刷新(2026-09-20 续时批 stack→refresh,层数恒 1) | 安全格 |
|
||||
| alert 警觉 | 敌方护甲等级 +1/层 | 敌方 | 见 `status_effects.tres` alert 行 | 1 结算 / 叠加读表 | 踩雷 / 标空旗(blast 型负向) |
|
||||
| weaken 削弱 | 敌方攻击被削弱(同名重复标中只刷新剩余次数、层数恒 1) | 敌方 | 见 `status_effects.tres` weaken 行(取值域 [60,85],取负生效) | 时限读表 / 刷新(2026-09-18 续时定案) | 标中旗 |
|
||||
| enrage 暴走 | 敌方攻击提升 | 敌方 | 见 `status_effects.tres` enrage 行 | 时限/上限读表 / 叠加 | 标空旗反噬 |
|
||||
| off_guard 失衡 | 主角护甲等级降低(AC 轴——掷点判定阈值下调、更易被命中;2026-09-18 换装,原百分比承伤池已退) | 主角 | 见 `status_effects.tres` off_guard 行 | 时限/上限读表 / 叠加 | 标空旗反噬 / 敌方妨害技(2026-09-19 新效应词汇批——蛛网束缚载体,duration 由技能行覆盖) |
|
||||
| sapped 乏力 | 主角输出降低(weaken 型负向,hero_offense 池) | 主角 | 见 `status_effects.tres` sapped 行 | 时限/上限读表 / 叠加 | 雷格负向(2026-09-15 格面资源批) |
|
||||
| enrage 暴走 | 敌方攻击提升 | 敌方 | 见 `status_effects.tres` enrage 行 | 时限/上限读表 / 叠加 | 标空旗反噬 / 踩雷(attack 型负向) |
|
||||
| off_guard 失衡 | 主角护甲等级降低(AC 轴——掷点判定阈值下调、更易被命中;2026-09-18 换装,原百分比承伤池已退) | 主角 | 见 `status_effects.tres` off_guard 行 | 时限/上限读表 / 叠加 | 标空旗反噬 / 踩雷(defense 型负向)/ 敌方妨害技(2026-09-19 新效应词汇批——蛛网束缚载体,duration 由技能行覆盖) |
|
||||
| sapped 乏力 | 主角输出降低(weaken 型负向,hero_offense 池) | 主角 | 见 `status_effects.tres` sapped 行 | 时限/上限读表 / 叠加 | 危险格负向 / 标空旗(2026-09-15 格面资源批)/ 敌方妨害技(大地脉动——L3 Boss 石君王独占,2026-09-20 第三关内容批) |
|
||||
| empower 蓄力 | 敌方输出倍率增益(enemy_output 池——蓄力技载体;幅度读表) | 敌方 | 见 `status_effects.tres` empower 行 | duration 读表 = 1 个有效增益拍 / 刷新 | 敌方技能施放(2026-09-16 敌人技能池批) |
|
||||
| fortify 硬化 | 敌方防御提升(**敌方防御池 enemy_defense**——硬化技载体;负值入池 = 主角攻击折半,2026-09-18 符号纠正——旧正值实际翻倍) | 敌方 | 见 `status_effects.tres` fortify 行 | duration 读表 = 1 个有效增益拍 / 刷新 | 敌方技能施放(2026-09-16 敌人技能池批) |
|
||||
|
||||
empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技能行 buff_ref 引用,施放时长由技能行覆盖——技能冷却与增益持续是两个计时器):两行 duration 表值(读表)的口径是"先兑付后衰减含施放当轮"——施放发生在第 N 结算战斗段,存活到第 N+1 结算战斗段才兑付"下一拍",即"持续 1 个有效结算"(proposal 语义的容器落地)。敌方防御池(enemy_defense)是第四个乘区池:敌方作为防守方的百分比修正池,消费面 = [战斗结算](战斗结算.md)主角攻击的池乘区——四池对称(敌打主角 = hero_defense × enemy_output,主角打敌 = hero_offense × enemy_defense),容器语义零延伸:仍是同构实例、side-wide 加算、不封顶不保底。
|
||||
|
||||
削弱行是当量锚在容器侧的数据落点:标中旗的收益折算成统一价值后,必须严格高于最低档主角增益——"标中旗必须比随便挖一格更值",否则没人愿意插旗。这条锚的契约归[行动经济](../排雷循环/行动经济.md),对照验收归[战斗结算](战斗结算.md);暴走与失衡两行分别是 attack/defense 型负向(极性矩阵"标错/踩雷"分支兑付)在容器侧的数据落点:行内容与载体裁决归它,本表只承载行值(失衡已换装 AC 轴不入池——2026-09-18 结构修复批)。**失衡另有第二来源**:敌方妨害技(2026-09-19 新效应词汇批——蛛化卓尔精灵"蛛网束缚",敌方技能施放来源、duration 由技能行 buff_duration 覆盖)——容器零新语义,同构实例照常受理;乏力 sapped 留作妨害第二词汇(暂无载体)。
|
||||
削弱行是当量锚在容器侧的数据落点:标中旗的收益折算成统一价值后,必须严格高于最低档主角增益——"标中旗必须比随便挖一格更值",否则没人愿意插旗。这条锚的契约归[行动经济](../排雷循环/行动经济.md),对照验收归[战斗结算](战斗结算.md);暴走与失衡两行分别是 attack/defense 型负向(极性矩阵"标错/踩雷"分支兑付)在容器侧的数据落点:行内容与载体裁决归它,本表只承载行值(失衡已换装 AC 轴不入池——2026-09-18 结构修复批)。**失衡另有第二来源**:敌方妨害技(2026-09-19 新效应词汇批——蛛化卓尔精灵"蛛网束缚",敌方技能施放来源、duration 由技能行 buff_duration 覆盖)——容器零新语义,同构实例照常受理;乏力 sapped = 妨害第二词汇,载体已落地(L3 Boss 灰矮人石君王独占妨害技「大地脉动」,2026-09-20 第三关内容批)。
|
||||
|
||||
## 依赖与输出
|
||||
|
||||
@@ -194,11 +193,11 @@ empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 刷新、并存两类合并策略的后续内容行 | 语义已定义、容器已承载;刷新类已有内容(empower/fortify 2026-09-16 敌人技能池批、weaken 2026-09-18 续时定案),并存仍空,首个并存内容行上线时随批补验收 |
|
||||
| P1 | 刷新、并存两类合并策略的后续内容行 | 语义已定义、容器已承载;刷新类已有内容(empower/fortify 2026-09-16 敌人技能池批、weaken 2026-09-18 续时定案),并存仍空,首个并存内容行上线时顺带补验收 |
|
||||
| P1 | 清图奖励含增益的授予路径 | 来源类别已预留;内容与档位归[地图战斗资源](地图战斗资源.md)定稿 |
|
||||
| P1 | 单体寻址扩展位 | 现行对敌效果一律全体共享;首个"只作用于其中一个敌人"的效果上线时给实例加目标字段 |
|
||||
| P2 | 驱散 / 延时 / 转移接口 | 状态一旦生效,玩家没有任何手段摘掉、延后或挪给别人——省掉一整类界面复杂度是明确的设计决定;要加属于新增接口的修订,不是调参 |
|
||||
| P2 | 并存行高频授予(持续伤害类)的容量语义 | 并存实例数上界 = 受理授予数,有界确定、无满层语义;MVP 无并存内容行,首个并存内容行上线时随批复核容量读法 |
|
||||
| P2 | 并存行高频授予(持续伤害类)的容量语义 | 并存实例数上界 = 受理授予数,有界确定、无满层语义;MVP 无并存内容行,首个并存内容行上线时顺带复核容量读法 |
|
||||
| P2 | 敌人词条引用状态(免疫 / 抗性) | 预留位;随[敌人系统](敌人系统.md)的内容批裁决 |
|
||||
| P2 | 随关卡成长的效果行 | 状态表是定义表、不是进度成长表;需要时走加表列的修订 |
|
||||
|
||||
@@ -209,12 +208,12 @@ empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技
|
||||
| 参数 | 取值域 | 字段语义 | 说明 |
|
||||
|---|---|---|---|
|
||||
| attack_up 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 增伤;当量锚的参照对象(最低档主角增益) |
|
||||
| ac_up 幅度 | 护甲等级 [−20,20] 且非 0 | ac 行 magnitude | 护甲强化;掷点折扣判定阈值 = 基准 AC(读 hero 表)逐层 +1,不入任何池、消费归[战斗结算](战斗结算.md)掷点判定 |
|
||||
| ac_up 幅度 | 护甲等级 [−20,20] 且非 0 | ac 行 magnitude | 盾牌加护;掷点折扣判定阈值 = 基准 AC(读 hero 表)逐层 +1,不入任何池、消费归[战斗结算](战斗结算.md)掷点判定 |
|
||||
| alert 幅度 | [0, 4] | ac 行 magnitude | 警觉(敌方护甲等级 +1/层 provisional);消费 = 战斗结算护甲等级掷点判定 |
|
||||
| weaken 幅度 | 百分比取值域 [60,85],取负生效 | percent 行 magnitude | 削弱;须过"标中旗锚"对照 |
|
||||
| enrage 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 暴走;attack 型负向行,进敌方输出修正池 |
|
||||
| off_guard 幅度 | 护甲等级 [−20,20] 且非 0 | ac 行 magnitude | 失衡;标空旗反噬载体,掷点判定阈值逐层下调(2026-09-18 换装 AC 轴,不入池、退出 hero_defense 池) |
|
||||
| sapped 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 乏力;雷格负向 weaken 型,进主角输出修正池(2026-09-15 格面资源批补登记) |
|
||||
| sapped 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 乏力;危险格负向 weaken 型,进主角输出修正池(2026-09-15 格面资源批补登记) |
|
||||
| empower 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 蓄力;敌方技能池增益技载体,进敌方输出修正池 |
|
||||
| fortify 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 硬化;敌方技能池增益技载体,进**敌方防御池 enemy_defense**(负值 = 减伤方向——2026-09-18 符号纠正) |
|
||||
| 初始剩余次数 | 整数 [1,99] | duration_settlements | 一次性语义行逐行读表;续时行 = weaken(2026-09-18 定案,duration 2)+ empower/fortify(1 个有效增益拍——先兑付后衰减含施放当轮)+ **attack_up / ac_up(2026-09-20 主角增益续时批,duration 表值 1 维持——续时语义在 dur=1 下表现为重复拿重置当轮倒数;跨轮延续随将来 duration 拉长自然显形,数值归状态层重设计批)**;拉长 = 恢复跨轮延续、规划变简单 |
|
||||
@@ -222,7 +221,7 @@ empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技
|
||||
|
||||
非调参的冻结项:三类合并策略语义、两种量纲语义、来源类别枚举、"先兑付后衰减"时序、拒绝原子性、零随机——改动走本文修订流程,不走调参。
|
||||
|
||||
联动纪律:增伤与削弱是当量锚的两端;护甲强化与[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)的承伤预期联动(掷点折扣轴——AC 行值变更须复算生存链区间;2026-09-20 主角增益续时批后 ac_up 层数恒 1、局内可达 AC 上限 11,复算随调参批);削弱改续时后"单轮层数上限受[行动经济](../排雷循环/行动经济.md)行动点约束"的联动随之失效(2026-09-18 续时定案——同名重复标中只刷新剩余次数、层数恒 1;2026-09-20 起主角侧 attack_up / ac_up 同口径)。这些联动值禁止独立调参,修订须重跑锚对照并同步 registry。
|
||||
联动纪律:增伤与削弱是当量锚的两端;盾牌加护与[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)的承伤预期联动(掷点折扣轴——AC 行值变更须复算生存链区间;2026-09-20 主角增益续时批后 ac_up 层数恒 1、局内可达 AC 上限 11,复算随调参批);削弱改续时后"单轮层数上限受[行动经济](../排雷循环/行动经济.md)行动点约束"的联动随之失效(2026-09-18 续时定案——同名重复标中只刷新剩余次数、层数恒 1;2026-09-20 起主角侧 attack_up / ac_up 同口径)。这些联动值禁止独立调参,修订须重跑锚对照并同步 registry。
|
||||
|
||||
## 验收标准
|
||||
|
||||
@@ -233,7 +232,7 @@ empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技
|
||||
- 叠层不减钟:叠加策略行叠加只加层数,剩余次数保持首次授予定下的轨迹不变(刷新策略行则相反——层数不变、只重置剩余次数;两策略逐行读表)。
|
||||
- 满层拒绝原子且留痕:叠满后再授予返回失败、容器逐字不变;结算明细多一行"奖励未生效"(含来源)。
|
||||
- 先兑付后衰减:每轮结算恰做一次衰减,归零实例当轮移除;停手轮、弃图刷新轮照常衰减。
|
||||
- 合成不收口:容器输出的有效值恒等于层数 × 行值,越出百分比域不封顶不保底;地板在战斗结算侧。
|
||||
- 合成不设上下限:容器输出的有效值恒等于层数 × 行值,越出百分比域不封顶不保底;地板在战斗结算侧。
|
||||
- 快照抗重载:已授予实例的数值在战斗中不受配置表重载影响,只影响后续授予。
|
||||
- 确定性回放:同一授予序列驱动两个独立容器实例,生效清单(含排列顺序)与衰减轨迹逐项相同。
|
||||
- 表实一致:配置表字段与 registry 的 status_effect 条目逐字段一致。
|
||||
@@ -257,3 +256,8 @@ empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技
|
||||
| v0.10 | 2026-09-19 | **技能池新效应词汇批(用户拍板——设计权威 proposal-status-vocabulary.md〔提案已吸收退役 git a6833b6a——现行事实源=敌人系统.md 词汇表/增益状态.md〕 v1.0,与 敌人系统 / 战斗结算 / registry / 切片代码同批)**:off_guard(失衡)新增第二来源类别 = 敌方技能施放(妨害技"蛛网束缚"的容器落点——首实装于 L2 Boss 蛛化卓尔精灵池;duration 由技能行 buff_duration=2 覆盖 = 1 个有效结算,empower/fortify 同款口径);容器语义零改动——同构实例、side 路由照常,妨害技零新状态行(乏力 sapped 留作妨害第二词汇,暂无载体) |
|
||||
| v0.11 | 2026-09-20 | **格面资源八型批(用户拍板——与敌人系统 / 战斗结算 / registry / 切片代码同批)**:① 状态行表 ambush 行 → alert 警觉行(敌方护甲等级 +1,ac 量纲,side-wide);② 标空旗路由措辞纠正(2026-09-15 极性矩阵后已无三选一反噬,本批顺手收口);③ 敌人系统的伏击量纲定义/上限锚义务面随伏击退役移除 |
|
||||
| v0.12 | 2026-09-20 | **主角增益只续时不叠层批(用户拍板「主角的其实也一样,都是按照叙事的方式,不要有叠层;只续时不叠层,变相削弱主角性能可接受」;与 status_effects.tres / smoke / registry / 06 清单同批)**:① attack_up(增伤)/ ac_up(护甲强化)两行 stack_policy stack→refresh——重复授予层数恒 1、剩余结算次数重置,对齐削弱 2026-09-18 续时定案;至此主角可重复获取的增益与减益合并语义统一(叠层策略仅剩敌侧 alert / enrage / off_guard / sapped 等行);② duration 表值 1 与 max_stack 2 不动(refresh 下 max_stack 不消费——weaken 先例;dur=1 下续时表现为重复拿重置当轮倒数,跨轮延续随将来 duration 拉长自然显形,数值归状态层重设计批);③ 影响面:增伤不再 +100%(hero_offense 池单层封顶 +50)、护甲强化不再 +2 AC(局内可达 AC 上限 11,AC12 折扣档采样探针随行降为 AC11)、这两行不再可达满层拒绝行;④ 同名状态合并策略表/幅度量纲例子表/调参表两行/联动纪律句/验收"叠层不减钟"条改述;06 清单「叠层不续命的读感」条目解决移除;冒烟三闸全过(ac_up 行断言与 AC 探针改形,无净增断言) |
|
||||
| v0.13 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①设计目的「失衡是个例外」补乏力——主角侧减益为失衡与乏力两行(与「现行九行」节对齐);②状态行表来源类别列补全极性矩阵负向双分支——alert / enrage / off_guard / sapped 四负向行各补「标空旗 / 踩雷」另一分支(开危险格与标错旗均兑该型负向);③sapped 行与正文「暂无载体」订正——妨害第二词汇载体已落地(L3 Boss 石君王独占妨害技「大地脉动」,skills.tres earth_pulse→sapped)。注:版本号 v0.6 缺号(v0.5→v0.7)系既有断档不动,另行列呈报。 |
|
||||
| v0.14 | 2026-10-12 | **玩家向显示名跟随批(锻造工坊裁决会话 8a 连带·D 项执行)**:`ac_up` 状态显示名「护甲强化」→「盾牌加护」(`status_effects.tres:18` 同批改名;用户裁口径=临时叠层 AC 状态不该叫"护甲",附带约定「加护」=AC 判定层、「护盾」=吸收层不得混用)——现行九行节、状态行表、同名状态合并策略表、幅度量纲例子表、联动纪律句五处现役描述跟随改现名;机制与数值零改动(版本历史各行的旧名留档不动) |
|
||||
| v0.0 | 2026-10-11 | 术语统一补扫批(危险格更名收尾,2026-10-11 用户裁无类型划分):标中旗/踩雷两行「巢穴」表述换代——机制文档巢穴清零 |
|
||||
| —— | 2026-10-09 | 缺号注记:v0.6 未登记(对应批次=未考——v0.5→v0.7 跳号,v0.7 行注引「敌人系统 v0.6 先例」,疑系 2026-09-17 文档降级为模板批未在本文件单独成行,登记见正文),卫生批仅注记不补写 |
|
||||
| v0.15 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 2 处——验收标准「合成不收口」改「合成不设上下限」(同句「不封顶不保底」语义不变);P1/P2 表并存容量行「随批复核容量读法」改「顺带复核」。机制与数值零改动 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:轮末结算的编排与逐行兑现
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/b1-settlement.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -87,7 +86,7 @@
|
||||
|
||||
每行还携带公共字段:来源类别、来源格、轮次、显示名、数值,以及可空的高光标记(用于强调标中旗、清图奖励这类值得高亮的结果)。没生效也要留痕:两类"未生效"行如实记录合法例外,呈现时聚合计数,不逐行刷屏。
|
||||
|
||||
任何一行找不到来源即断言失败——宁可报错,也不让"合并到看不出来源"的呈现混过数据层。但有些行天然没有棋盘来源,断言为此留了两层豁免,豁免集合是封闭清单,改动同样走本文修订。
|
||||
任何一行找不到来源即断言失败——宁可返回错误,也不让"合并到看不出来源"的呈现混过数据层。但有些行天然没有棋盘来源,断言为此留了两层豁免,豁免集合是封闭清单,改动同样走本文修订。
|
||||
|
||||
第一层按行型豁免两类:衰减行(到期移除本就是段级动作,不属于任何一格)、判定行(它是胜负出口的结论,不是棋盘事实)。这两类连来源类别都不必填。
|
||||
|
||||
@@ -99,7 +98,7 @@
|
||||
|
||||
### 收益对照表:所有收益共用同一把尺子
|
||||
|
||||
开安全格给正向、标中旗给正向、踩雷与标错给负向、清图给清图奖励对象——来源不同、形态不同,但玩家必须能回答"挖这一格值不值",所以全部收益用一张效果档位对照表归一换算。折算单位是当量:1 当量等于 1 点主角生命的期望净变化。这张表是[行动经济](../排雷循环/行动经济.md)五条经济契约第一条"单一当量"的载体;本系统是全部五条契约的唯一对账责任方(契约本体见该文档,对账现状见「待办」)。
|
||||
开安全格给正向、标中旗给正向、踩雷与标错给负向、清图给清图奖励对象——来源不同、形态不同,但玩家必须能回答"挖这一格值不值",所以全部收益用一张效果档位对照表归一换算。折算单位是当量:1 当量等于 1 点主角生命的期望净变化。这张表是[行动经济](../排雷循环/行动经济.md)五条经济契约第一条"单一当量"的载体;本系统是全部五条契约的唯一对账责任方(契约本体见该文档,对账现状登记 [06-待办清单](../../06-待办清单.md))。
|
||||
|
||||
**结论**:单一线性换算全源共用,禁止分源改率;百分比效果按"每个结算的瞬时当量"口径折算。
|
||||
|
||||
@@ -116,27 +115,27 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
||||
| 层数 × 行值 | 单条效果的叠层数与行值,读[增益状态](增益状态.md)的实例数据 | 行值归该系统 |
|
||||
| 完美乘数 | 完美排雷给清图奖励的乘数,配置值 | 读 `settlement.tres` p_perfect(现行值读表) |
|
||||
|
||||
**gp / ap 当量口径注记(2026-10-05 判式换代批 T3——口径空白登记)**:上式 flat 类枚举(直伤、治疗、行动点)不含 gp——现行对账按 **gp 当量 = flat power 代理**计(金币袋 3 / 破财 2,方案报告假设 A5);ap 当量 = flat 表值 1,机会成本口径(+1AP ≈ 多挖一格 ≈ E_dig + 进度 + 信息价值)更高,差异仅登记不进主算(假设 A6)。gp 的精确口径应经商店定价换算(1 GP 的边际属性当量),归状态层/商店批复核后换代。旗溢价兑付(条款3 条件二形态 a,`settlement.tres` flag_hit_premium=125 provisional)按同型正向 ×(1+δ) 兑付——当量换算随同型行口径同步放大,整数量级取整四舍五入(与伤害管线 round_direction=floor 分域,registry 随批登记)。
|
||||
**gp / ap 当量口径注记(2026-10-05 判式换代批 T3——口径空白登记)**:上式 flat 类枚举(直伤、治疗、行动点)不含 gp——现行对账按 **gp 当量 = flat power 代理**计(金币袋 3 / 破财 2,方案报告假设 A5);ap 当量 = flat 表值 1,机会成本口径(+1AP ≈ 多挖一格 ≈ E_dig + 进度 + 信息价值)更高,差异仅登记不进主算(假设 A6)。gp 的精确口径应经商店定价换算(1 GP 的边际属性当量),归状态层/商店批复核后换代。旗溢价兑付(条款3 条件二形态 a,`settlement.tres` flag_hit_premium=125 provisional)按同型正向 ×(1+δ) 兑付——当量换算随同型行口径同步放大,整数量级取整四舍五入(与伤害管线 round_direction=floor 分域,registry 顺带登记)。
|
||||
|
||||
### 授予段兑付:极性路由,四类动作各归各账
|
||||
|
||||
授予段消费结算队列。**队列与判定基线**:挖掘期玩家对格子的动作——开格、标旗——都进入结算队列;结算逐批兑付,不走逐动作出栈直算。旗判定以轮末在场旗位为基线:被直接挖开的旗已随挖掘消失、不在基线(零兑付——标中 / 标空让位于挖掘本体结局,见下文插旗不可逆四情况);开格事实不可撤(已开格无法回退)。过滤后按触发源分三批兑换,每格受理、每旗判定恰好一次。
|
||||
|
||||
兑付走**极性矩阵**(定义归[地图战斗资源](地图战斗资源.md)):开安全格 → 该格格面资源的正向;开雷格 → 负向;标中旗 → 该雷格资源的正向;标错旗 → 该安全格资源的负向。九型字典里每型各有一行正向、一行负向(gp 型随 2026-09-20 GP+商店房批增补——gp 正负两向兑付 = 战斗内 GP 缓冲,见下方兑付形态表);伏击随 2026-09-20 八型批退役,blast 型负向现况 = 警觉(敌方护甲等级 +1)。
|
||||
兑付走**极性矩阵**(定义归[地图战斗资源](地图战斗资源.md)):开安全格 → 该格格面资源的正向;开危险格 → 负向;标中旗 → 该危险格资源的正向;标错旗 → 该安全格资源的负向。九型字典里每型各有一行正向、一行负向(gp 型随 2026-09-20 GP+商店房批增补——gp 正负两向兑付 = 战斗内 GP 缓冲,见下方兑付形态表);伏击随 2026-09-20 八型批退役,blast 型负向现况 = 警觉(敌方护甲等级 +1)。
|
||||
|
||||
**插旗不可逆四情况(2026-09-19 用户拍板全套落地,2026-09-18 提案转正)**:旗是一次性承诺、拔旗动作退役、挖旗格放行——兑付按四情况改判:
|
||||
|
||||
| 情况 | 兑付 |
|
||||
|---|---|
|
||||
| ① 插雷格、留到轮末判定 | 标中照常(该雷格资源正向) |
|
||||
| ② 插雷格、再直接挖开 | 只受挖雷一层惩罚(该雷格资源负向照常兑付——惊动巢穴);标中不发(旗已随挖掘消失、不入判定基线) |
|
||||
| ① 插危险格、留到轮末判定 | 标中照常(该危险格资源正向) |
|
||||
| ② 插危险格、再直接挖开 | 只受挖雷一层惩罚(该危险格资源负向照常兑付;挖雷惩罚因惊动触发);标中不发(旗已随挖掘消失、不入判定基线) |
|
||||
| ③ 插安全格、留到轮末判定 | 标空惩罚照常(该安全格资源负向) |
|
||||
| ④ 插安全格、再直接挖开 | 零惩罚零奖励——正向兑付作废,记「奖励作废(插旗格直接挖开)」归因行(reward_ineffective 行型);标空判定同②自然缺席 |
|
||||
|
||||
| 批 | 兑付 |
|
||||
|---|---|
|
||||
| 挖格批 | 开到的安全格逐格兑该格资源的正向(插旗格直挖除外——四情况④零奖励);开到的雷格逐格兑该格资源的负向(插旗雷格照常——四情况②) |
|
||||
| 旗判定批 | 标中则兑该雷格资源的正向,每颗雷的资格只兑一次;标空则记"标旗未中"归因行,并兑该安全格资源的负向 |
|
||||
| 挖格批 | 开到的安全格逐格兑该格资源的正向(插旗格直挖除外——四情况④零奖励);开到的危险格逐格兑该格资源的负向(插旗危险格照常——四情况②) |
|
||||
| 旗判定批 | 标中则兑该危险格资源的正向,每颗雷的资格只兑一次;标空则记"标旗未中"归因行,并兑该安全格资源的负向 |
|
||||
| 清图批 | 清图奖励对象恰好发一次;完美排雷追加第二份同身份兑付 |
|
||||
|
||||
授予段当场只兑非伤害形态(增益、治疗、行动点、GP 缓冲、警觉加层);**伤害形态兑付(爆裂、直伤、反噬)以伤害单据暂存,攒到战斗段末统一结账**(2026-10-06 用户裁——地图伤害账殿后,见[伤害单据与伤害控制器](#伤害单据与伤害控制器所有伤害走同一道门)与战斗段两节)。暂存单在授予段按「将兑付」回报——授予段内依赖兑付读数的流程决策(完美排雷第二份、高光份数)依据开单时点事实判定,该时点敌人存活有保证;战斗段末实际结账若目标已灭,控制器自记「奖励未生效」行。
|
||||
@@ -155,9 +154,9 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
||||
|
||||
警觉(blast 负向——2026-09-20 八型批伏击退役换装)为敌方 side-wide 状态:多个敌人共享同一状态值、互不消耗,只活一轮、轮末清零;战斗段由防守方护甲等级读数消费(我打敌 = 敌方 armor_class + Σ敌方侧 ac 型状态)。其余各型负向受池 clamp 与叠层上限承载。
|
||||
|
||||
标中资格认雷不认旗:兑付资格以雷格实例为键——旗无任何移除手段(拔旗退役,重复插旗被"已有旗"拒绝)、同一颗雷跨轮不重复兑付;换图后新雷是新实例,资格自然重置。同一面旗一直插在雷上,每轮都会重新上报标中,去重是本系统的职责。
|
||||
标中资格认雷不认旗:兑付资格以危险格实例为键——旗无任何移除手段(拔旗退役,重复插旗被"已有旗"拒绝)、同一颗雷跨轮不重复兑付;换图后新雷是新实例,资格自然重置。同一面旗一直插在雷上,每轮都会重新上报标中,去重是本系统的职责。
|
||||
|
||||
标错的惩罚不再是独立机制:标空旗(标了但格不是雷)= 该安全格格面资源的负向兑付(极性矩阵的"标错"分支),类型化、确定性、零额外派生——旧三选一哈希反噬(暴走 / 失衡 / 伏击+2 三池,坐标×板序号哈希派生)随格面资源批(2026-09-15)整段下线,三池内容收编为 attack / defense / blast 三型的负向行。负向兑付与"标旗未中"归因行同键去重,每雷格实例只触发一次;叠层已满授予被拒时记"奖励未生效"行,不静默吞掉。
|
||||
标错的惩罚不再是独立机制:标空旗(标了但格不是雷)= 该安全格格面资源的负向兑付(极性矩阵的"标错"分支),类型化、确定性、零额外派生——旧三选一哈希反噬(暴走 / 失衡 / 伏击+2 三池,坐标×板序号哈希派生)随格面资源批(2026-09-15)整段下线,三池内容收编为 attack / defense / blast 三型的负向行。负向兑付与"标旗未中"归因行同键去重,每危险格实例只触发一次;叠层已满授予被拒时记"奖励未生效"行,不静默吞掉。
|
||||
|
||||
完美排雷全有或全无:一张板零误标且至少标中一面旗,清图奖励加倍(现行倍数读 `settlement.tres` p_perfect)。完美计数从装板起算、换图重置;高光行只记实际有效兑付(首份加被接受的第二份),首份即零兑付则高光行不发。标中旗的兑付行自带高光标记,与完美排雷的独立高光行构成两个强制高光检查点。
|
||||
|
||||
@@ -175,7 +174,7 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
||||
| 群伤 | 爆裂粉尘 / 清障炸药 | 无类型恒定表值,全体存活敌逐个交付 |
|
||||
| 主角直伤 | 陷阱反噬 / 治疗负向 / 地形变异 | 无类型必中,下限保底 |
|
||||
|
||||
职责分界一句话:**流程决定何时开单、给谁开单;控制器决定一张单经过哪几步。** 战斗结算保留全部开单守卫(主角存活且场上有敌才开先手单、主角倒下停开敌方单),掷点、折扣、暴击、克制点数、池乘区、伤害下限、交付与执行上报的算术和次序全部收口控制器单点——未来新增伤害来源 = 填一张单,新增管线环节 = 控制器一处改动,不再逐调用点各写各的管线。
|
||||
职责分界一句话:**流程决定何时开单、给谁开单;控制器决定一张单经过哪几步。** 战斗结算保留全部开单守卫(主角存活且场上有敌才开先手单、主角倒下停开敌方单),掷点、折扣、暴击、克制点数、池乘区、伤害下限、交付与执行上报的算术和次序全部统一到控制器单点——未来新增伤害来源 = 填一张单,新增管线环节 = 控制器一处改动,不再逐调用点各写各的管线。
|
||||
|
||||
**目标在结账时刻解析**:单据只带目标规则(最前存活敌 / 主角 / 全体存活敌),兑现那一刻照规则看现场——前面兑付打死的敌人不会接住后面的单,开单时也不把目标写死在单上。
|
||||
|
||||
@@ -213,7 +212,7 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
||||
|
||||
主角攻击 = 单一基础分量(2026-09-19 充能退役批):量 = 攻击力基线(表值),类型 = 主角表 `attack_type`(营地永久强化换型 = 改字段;未来冒险前参数面承接"按关配型"的策略位)。原"普通 + 穿刺/魔法充能三分量"模型整体退役——挖掘期与战斗期之间不再有弹药供给线,克制应对从局内攒桶改为冒险前配型 + 棋盘火力(穿刺弹/魔法矢等直伤奖励道具,消费面不变)。
|
||||
|
||||
**护甲等级掷点:必中、非归零,只吃基础攻击分量**(2026-09-16 定稿落地,判定式与全部数值已拍板;判定对象措辞随敌人技能池批改述)。防守方由此多了一条数值轴——护甲等级(数据键 `armor_class`):攻击永远命中,没有 miss、没有零收益白回合;只有吃掷点的分量在掷点低于防守方护甲等级时按减伤档位打折,档位再重也不归零。判定式:攻击结算时掷单骰(骰面读表),掷点 ≥ 防守方护甲等级 + 攻击加成 → 全额;掷点 < 护甲等级按缺口(护甲等级 − 掷点)查减伤档位表打折——边界与档值读 `settlement.tres` 减伤档位表,三档皆非零档。暴击:天然最大面(读表)使该次基础攻击分量 ×暴击倍率(读表),双方同规,且天然最大面恒全额(暴击与折扣互斥;天然最大面〔nat20〕暴击是掷点层概念,与技能重击〔池技能〕严格区分——两层不得混述)。伤害下限:**任何来源的伤害落地**至少 damage_floor(读表,全局 max(damage_floor, ·)——2026-09-20 用户拍板扩全来源:攻击双方、棋盘直伤与爆裂、地形变异、负向反噬;伤害取值域 [1, +∞),**不设上限**)——"被减伤归零 v=0"零值伤害行语义随批退役,重档折扣的攻击行在行文本记"被压制"。掷点范围:只有基础攻击分量吃掷点——主角先手攻击的基础分量,敌方技能的基础伤害分量(= 攻击基线 × 技能伤害倍率,普通攻击倍率 1 为特例);无伤害分量的技能(增益/妨害类)不掷不折;棋盘来源一律无视护甲等级——爆裂、清障炸药、奖励即时伤害、技能必中附加分量(rider,2026-09-19)全部必中全额不掷,这是本机制的边界切口,与"奖励/惩罚必中"同构。护甲等级(数值轴,掷点打折)与护甲类型(属性轴,克制修正)严格分离:护甲类型不做护甲等级映射,克制修正点数读表、消费面不变,两概念在文档、表字段与代码键中不得混用。数值载体:主角与敌方护甲等级行值读 hero / enemy 表的 armor_class 列(正式行值归怪物设定批,登记[待办清单](../../06-待办清单.md)),ac_up(护甲强化)在其上加算(幅度/层数读 `status_effects.tres`)。攻击加成(`attack_bonus`)为结构位预留字段,切片恒 0,未来归元进度 / 武器附魔投值。掷点时机在结算战斗段内、每次基础攻击伤害计算时判定,消费 `armor_roll` 封闭流(逐次掷逐次取号,可逐位回放)。
|
||||
**护甲等级掷点:必中、非归零,只吃基础攻击分量**(2026-09-16 定稿落地,判定式与全部数值已拍板;判定对象措辞随敌人技能池批改述)。防守方由此多了一条数值轴——护甲等级(数据键 `armor_class`):攻击永远命中,没有 miss、没有零收益白回合;只有吃掷点的分量在掷点低于防守方护甲等级时按减伤档位打折,档位再重也不归零。判定式:攻击结算时掷单骰(骰面读表),掷点 ≥ 防守方护甲等级 + 攻击加成 → 全额;掷点 < 护甲等级按缺口(护甲等级 − 掷点)查减伤档位表打折——边界与档值读 `settlement.tres` 减伤档位表,三档皆非零档。暴击:天然最大面(读表)使该次基础攻击分量 ×暴击倍率(读表),双方同规,且天然最大面恒全额(暴击与折扣互斥;天然最大面〔nat20〕暴击是掷点层概念,与技能重击〔池技能〕严格区分——两层禁止混述)。伤害下限:**任何来源的伤害落地**至少 damage_floor(读表,全局 max(damage_floor, ·)——2026-09-20 用户拍板扩全来源:攻击双方、棋盘直伤与爆裂、地形变异、负向反噬;伤害取值域 [1, +∞),**不设上限**)——"被减伤归零 v=0"零值伤害行语义顺带退役,重档折扣的攻击行在行文本记"被压制"。掷点范围:只有基础攻击分量吃掷点——主角先手攻击的基础分量,敌方技能的基础伤害分量(= 攻击基线 × 技能伤害倍率,普通攻击倍率 1 为特例);无伤害分量的技能(增益/妨害类)不掷不折;棋盘来源一律无视护甲等级——爆裂、清障炸药、奖励即时伤害、技能必中附加分量(rider,2026-09-19)全部必中全额不掷,这是本机制的边界切口,与"奖励/惩罚必中"同构。护甲等级(数值轴,掷点打折)与护甲类型(属性轴,克制修正)严格分离:护甲类型不做护甲等级映射,克制修正点数读表、消费面不变,两概念在文档、表字段与代码键中禁止混用。数值载体:主角与敌方护甲等级行值读 hero / enemy 表的 armor_class 列(正式行值归怪物设定批,登记[待办清单](../../06-待办清单.md)),ac_up(盾牌加护)在其上加算(幅度/层数读 `status_effects.tres`)。攻击加成(`attack_bonus`)为结构位预留字段,切片恒 0,未来归元进度 / 武器附魔投值。掷点时机在结算战斗段内、每次基础攻击伤害计算时判定,消费 `armor_roll` 封闭流(逐次掷逐次取号,可逐位回放)。
|
||||
|
||||
EV 参考数不入正文(派生读数,需要时按判定式与现行表值自行复算);旧 defense_up 的减伤墙已整体退役换装为 AC(无双轨,见版本历史)。微调旋钮 = 档位边界与档位值,不动护甲等级值。换装点锚定:基准 AC(读 hero 表)自带的方向性偏移与[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)已登记的加难杠杆扫描合并处理;其生存链区间模型按掷点带宽口径复核(带宽含暴击档与折扣档),"零红档"验收保留。
|
||||
|
||||
@@ -233,7 +232,7 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
|
||||
| 边界 | 规则 |
|
||||
|---|---|
|
||||
| 修正池封顶 | 同侧百分比修正加算后每池独立收口 ±100 百分点;乘数可为 0——输出压制触池底时落地伤害由全局下限保底 damage_floor(读表)(叠满免伤归零的结构面已随护甲等级换装消失) |
|
||||
| 修正池封顶 | 同侧百分比修正加算后每池独立封顶 ±100 百分点;乘数可为 0——输出压制触池底时落地伤害由全局下限保底 damage_floor(读表)(叠满免伤归零的结构面已随护甲等级换装消失) |
|
||||
| 伤害下限 | 任何来源的伤害落地至少 damage_floor(读表,全局 max(damage_floor, ·)——2026-09-20 扩全来源:攻击双方/棋盘直伤/地形变异/负向反噬,取值域 [1, +∞) 不设上限);"被减伤归零 v=0"零值伤害行语义退役,重档折扣行文本记"被压制"——免伤与零输出仍逐行可见 |
|
||||
| 护甲等级掷点 | 必中非归零:掷单骰(骰面读表)对防守方护甲等级 + 攻击加成(恒 0),低掷按缺口查减伤档位表(读表)三档折扣、档位不设零档;天然最大面暴击 ×暴击倍率(读表)恒全额;只吃基础攻击分量(主角基础分量、敌方技能基础伤害分量),棋盘来源伤害与增益施放不掷不折 |
|
||||
| 溢杀 | 一刀超出目标剩余生命的部分丢弃:不转移给下一个敌人、不存续、无负生命中间态 |
|
||||
@@ -255,7 +254,7 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
└─ 关卡结束(上层显式调用)→ 清空秘宝背包,给出可见反馈
|
||||
```
|
||||
|
||||
停手与耗尽收轮的回合恒为同图继续;换图指令只允许出现在清图轮,其他轮发换图属于程序错误、立即上抛。秘宝背包以关卡为界:战斗结束不清背包,跨战斗延续;关卡结束时一次性清空,清空前先返回快照计数,作为"剩余秘宝随关卡结束清空"的可见反馈。战斗道具背包已随可选类删除(2026-09-15)下线。
|
||||
停手与耗尽收轮的回合恒为同图继续;换图指令只允许出现在清图轮,其他轮发换图属于程序错误、立即上抛。秘宝背包以关卡为界:战斗结束不清背包,跨战斗延续;关卡结束时一次性清空,清空前先返回快照计数,作为"剩余秘宝随关卡结束清空"的可见反馈。战斗道具背包已随可选类删除(2026-09-15)下线。(2026-10-09 注:清空对象 = 关卡域库存 treasure_inventory——秘宝过渡形态的机械惰性承载,其投放渠道已随迭代 11 第①批全退役、现行恒空;现行秘宝=营地同调装配件、整局冒险生效不经此域,拆线归实装批——见[秘宝](../跨局循环/秘宝.md)沿革节。)
|
||||
|
||||
挖掘期刷新是玩家在挖掘中途主动换图,经[行动经济](../排雷循环/行动经济.md)扣费:扣费成功后按"旧板退役、生成新板、装板、资源预分配恰一次、变异布置"编排,本轮不打断——没有结算段、没有轮次结束。储备不足被拒是玩家决策的合法结果,不是编排错误。刷新图不发清图奖励,完美排雷计数随装板重置。
|
||||
|
||||
@@ -276,10 +275,10 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
| 上游 | [敌人系统](敌人系统.md) | 单位接口全调用面:生成、查询、扣血、摇定写入、执行上报、默认目标、警觉授予、清场;护甲等级(防守方掷点判定读数)随单位数据供给;池模板与技能行数据归它 |
|
||||
| 上游 | [增益状态](增益状态.md) | 状态容器接口全调用面:开域、授予、读值、衰减、闭域 |
|
||||
| 上游 | [地图战斗资源](地图战斗资源.md) | 格面资源接口:预分配、身份查询、受理、清图对象、当量供给投影、映射退役 |
|
||||
| 上游 | [冒险结构](../冒险循环/冒险结构.md) | 战斗触发、遭遇上下文与主角入参覆盖值(provisional,MVP 冒烟直供) |
|
||||
| 上游 | [冒险结构](../冒险循环/冒险结构.md) | 战斗触发、遭遇上下文与主角入参覆盖值(覆盖值通道已随冒险结构实现批正式接线——接口四件套正式侧承载) |
|
||||
| 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 明细流水是结算明细屏的统一数据源(未生效类行须带形状冗余防误读);状态读取走下方呈现只读面 |
|
||||
| 下游 | [战斗表现](战斗表现.md) | 结算步骤流是战斗动画回放的脚本源 |
|
||||
| 下游 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | 五条经济契约的对账结论是其调参约束输入(对账现状见「待办」) |
|
||||
| 下游 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | 五条经济契约的对账结论是其调参约束输入(对账现状登记 [06-待办清单](../../06-待办清单.md)) |
|
||||
|
||||
### 呈现只读面:呈现层的唯一状态读取出口
|
||||
|
||||
@@ -300,7 +299,7 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
1. 战斗开始序列跑完(关闸门、开容器、掷骰定敌数、生成敌人、装板并预分配资源、发开轮通知 + 开轮摇号),进入第一轮挖掘期。
|
||||
2. 挖掘期本系统只缓冲事实流(开格、标旗入结算队列),不做任何兑付。
|
||||
3. 轮末自动触发五段结算,触发与事件到达序无关。
|
||||
4. 授予段按判定基线过滤(被挖开的旗不入判定),再按极性矩阵三批兑现:开安全格兑正向(插旗安全格直挖 = 四情况④零奖励作废行)、开雷格 / 标错旗兑负向(插旗雷格直挖照常——四情况②)、清图发清图奖励对象(完美乘数读 settlement.tres p_perfect)。
|
||||
4. 授予段按判定基线过滤(被挖开的旗不入判定),再按极性矩阵三批兑现:开安全格兑正向(插旗安全格直挖 = 四情况④零奖励作废行)、开危险格 / 标错旗兑负向(插旗危险格直挖照常——四情况②)、清图发清图奖励对象(完美乘数读 settlement.tres p_perfect)。
|
||||
5. 增益合成、主角先手加逐敌按摇定技能兑付(伤害技三乘法链 / 增益技施放行)加地图伤害账殿后(暂存单随战斗段末统一结账)、衰减恰好一次。
|
||||
6. 判定段先主角后敌人:继续通知同图、清图换图续轮、胜负走战斗结束清理(秘宝背包不清)。
|
||||
7. 明细流水全程落行,供呈现、回放与导出。
|
||||
@@ -310,7 +309,6 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 深度高光形态(标中旗即时动画、音画同步) | 数据面标记与当轮兑付已落,表现形态归[战斗表现](战斗表现.md)与美术 |
|
||||
| P1 | 冒险侧真实供给接线 | 遭遇上下文与跨战斗生命供给在[冒险结构](../冒险循环/冒险结构.md)定稿前以入参直供 |
|
||||
| P2 | 回放切点续玩 | 依赖[存档序列化](../表现与支撑/存档序列化.md)的快照能力实现 |
|
||||
|
||||
## 调参表
|
||||
@@ -324,9 +322,9 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
| 甲效矩阵 | 整数点数 {−1, 0, +1} | 三档加法修正(克制 +1 / 中性 0 / 被克 −1)九格现行值读 `settlement.tres`(provisional——2026-09-18 加法核换装,量纲 percent 退役) | 键集 = 攻击类型 {普通, 穿刺, 魔法} × 护甲类型 {轻甲, 魔法护甲, 重甲},3×3 满格结构冻结;数值归调参 |
|
||||
| 护甲等级掷点 | 骰面 int [2,1000] · nat 最大面 [1,骰面] · 暴击倍率 percent [100,999] | 骰面 / nat 最大面 / 暴击倍率读表(2026-09-16 拍板定稿) | 回合内随机:每吃掷点分量逐次掷骰,掷点低于防守方护甲等级 + 攻击加成触发档位折扣;天然最大面暴击 ×暴击倍率(读表)且恒全额(双方同规);消费 `armor_roll` 封闭流(逐次掷逐次取号) |
|
||||
| 减伤档位表 | 边界升序 + 档位值降序 percent [1,99],档数 = 边界数 + 1 | 边界与档值读 `settlement.tres`(roll_tier_bounds / discount 档位,2026-09-16 拍板定稿) | 低掷缺口按边界查档(读表);档位不设零档(非归零);微调旋钮 = 本表,不动护甲等级值 |
|
||||
| 伤害下限 `damage_floor` | int [1, 999] | 读 `settlement.tres` damage_floor(2026-09-16 拍板定稿;2026-09-20 扩全来源) | 任何来源的伤害落地全局 max(damage_floor, ·);零值伤害行语义随批退役 |
|
||||
| 伤害下限 `damage_floor` | int [1, 999] | 读 `settlement.tres` damage_floor(2026-09-16 拍板定稿;2026-09-20 扩全来源) | 任何来源的伤害落地全局 max(damage_floor, ·);零值伤害行语义顺带退役 |
|
||||
| 攻击加成 `attack_bonus` | int [0, 999] | 0(结构位) | 掷点阈值 = 防守方护甲等级 + 攻击加成;切片恒 0,未来归元进度 / 武器附魔投值 |
|
||||
| 护甲等级 `armor_class`(防守方字段) | int [0, 999] | 主角与敌方现行值读 hero / enemy 表 armor_class 列(暂定) | 字段本体在敌人表与主角表(归[敌人系统](敌人系统.md)),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md);敌方正式行值归怪物设定批(见待办清单);与护甲类型(克制属性轴)两概念不得混用 |
|
||||
| 护甲等级 `armor_class`(防守方字段) | int [0, 999] | 主角与敌方现行值读 hero / enemy 表 armor_class 列(暂定) | 字段本体在敌人表与主角表(归[敌人系统](敌人系统.md)),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md);敌方正式行值归怪物设定批(见待办清单);与护甲类型(克制属性轴)两概念禁止混用 |
|
||||
| 段序常量 | 固定五段 | 结构冻结 | 加载期恒等校验,违例拒绝启动 |
|
||||
| 池封顶 | ±100 百分点 | 结构冻结 | 乘数域随之 [0, 2] |
|
||||
| 取整方向 | 向下取整 | 结构冻结 | 单一规则,非调参项 |
|
||||
@@ -337,9 +335,9 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
|
||||
- 五段全序:任一轮结算的明细行按五段顺序排列。
|
||||
- 触发与到达序无关:同一轮末的两条结束消息按任意先后驱动,结算步骤流逐行相同。
|
||||
- 挖旗格兑付改判(插旗不可逆批 2026-09-19):有旗格直接挖开被受理——插旗安全格直挖零奖励(作废归因行恰一次)、插旗雷格直挖只吃挖雷惩罚;被挖开的旗不入轮末判定(零标中 / 标空兑付);开格事实不可撤。
|
||||
- 挖旗格兑付改判(插旗不可逆批 2026-09-19):有旗格直接挖开被受理——插旗安全格直挖零奖励(作废归因行恰一次)、插旗危险格直挖只吃挖雷惩罚;被挖开的旗不入轮末判定(零标中 / 标空兑付);开格事实不可撤。
|
||||
- 每事实恰一次:每格受理、每旗判定恰好一次;重复投递不改变结果。
|
||||
- 极性路由正确:开安全格 / 标中旗只兑正向、开雷格 / 标错旗只兑负向;兑付效果与该格资源类型的字典行一一对应。
|
||||
- 极性路由正确:开安全格 / 标中旗只兑正向、开危险格 / 标错旗只兑负向;兑付效果与该格资源类型的字典行一一对应。
|
||||
- 警觉共享:敌方全体共享同一警觉状态值;blast 负向逐层直授无上限(伏击退役换装——2026-09-20 八型批)。
|
||||
- 完美排雷:零误标且至少一面标中时第二份兑付恰一次并发高光行;出现误标或零标中则无高光;计数换图重置。
|
||||
- 开轮摇号:每轮恰摇一次(首轮同样;轮内刷新换图不重摇);摇定后兑现前死亡 → 本拍技能作废(零敌方行动行)、不进冷却不进保底计数;已兑现技能进冷却、保底计数按执行结果更新。
|
||||
@@ -349,12 +347,12 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
- 伤害下限与留档:任何来源的伤害落地 ≥ damage_floor(读表,2026-09-20 扩全来源),全流水零 v=0 伤害行、零"被减伤归零"行;掷点读数、护甲等级与档位随伤害行留档,天然最大面(nat20)行带暴击标记。
|
||||
- 数值边界:伤害下限保底后全程无零值/负值伤害;溢杀丢弃不转移;治疗封顶不溢出。
|
||||
- 出口分发:先判主角倒下(负)再判敌清空(胜);停手与耗尽轮恒同图,清图轮才允许换图。
|
||||
- 关卡收束:关卡结束清空秘宝背包恰一次并返回清空前计数;战斗结束不清背包。
|
||||
- 关卡收束:关卡结束清空秘宝背包(关卡域库存——现行恒空的机械惰性承载,见「轮次生命周期」节注)恰一次并返回清空前计数;战斗结束不清背包。
|
||||
- 可回放(封闭随机流口径):同种子同输入两遍步骤流逐位复现;随机消费仅限七处封闭随机流——开战掷骰(初始化随机)、技能摇号 `behavior_roll`(回合内、开轮时点、步骤流之外)、护甲等级掷点 `armor_roll`(回合内、步骤流之内)、奖励格摇号 `reward_roll`(初始化、装板期)、变异布置 `variant_place`(初始化、装板与资源预分配之后)、换板棋盘生成 `board_gen`(初始化、清图轮换板时点)、战斗结束掉落掷定 `gp_drop`(出口随机、战斗结束分支),无未登记随机源、零界面等待;单敌出招轨迹可独立复放、互不穿插。
|
||||
- 无来源即炸:每行明细都能指回一个来源事实(棋盘格、单位、清图或段级结论);找不到来源即断言失败,行型与来源类别两层豁免清单见明细流水一节,豁免行仍受其它契约约束。
|
||||
- 行型封闭:流水只出现本文登记的 9 类行型;新增或下线行型必须走本文修订并同步呈现层行格式化,未登记行型不得落行。
|
||||
- 行型封闭:流水只出现本文登记的 9 类行型;新增或下线行型必须走本文修订并同步呈现层行格式化,未登记行型禁止落行。
|
||||
- 伤害单据管线(2026-09-24):全部伤害(主角先手、敌方伤害技、棋盘克制直伤、群伤、反噬、地形变异)经伤害控制器单据管线兑现,兑付配方封闭五种;目标在结账时刻照规则解析;死亡事件由单位自行宣布——怪死其未结单据作废(零行、不进冷却不进保底计数)、主角死兑付终止;段界结账为现行口径、开单即结为回切结构位,两模式各自同种子同输入逐位复现。
|
||||
- 条款3 对账(2026-10-05 判式换代批 T3——与行动经济 F1 条款3 重立同步):①聚合健康式 (1−ρ̂)·E_dig(u) − ρ̂·V_mine(u) ≥ 0 与 β 比值带 [1.2, 2.5] 判读逐 u 检算(常设重跑入口 `tools/clear_dominance_audit.py`,读数快照归 registry clause3 重立条);②旗溢价兑付正确:标中旗正向兑付 = 同型正向 ×(1+δ)(δ 读 `settlement.tres` flag_hit_premium,100=无溢价直通零扰动),三类形态全覆盖(flat power / percent 幅度 / gp 缓冲)、标空与挖格兑付不乘溢价、雷安同池结构零触碰。
|
||||
- 条款3 对账(2026-10-05 判式换代批 T3——与行动经济 F1 条款3 重立同步):①聚合健康式 (1−ρ̂)·E_dig(u) − ρ̂·V_mine(u) ≥ 0 与 β 比值带 [1.2, 2.5] 判读逐 u 检算(常设重跑入口 `tools/clear_dominance_audit.py`,读数快照归 registry clause3 重立条);②旗溢价兑付正确:标中旗正向兑付 = 同型正向 ×(1+δ)(δ 读 `settlement.tres` flag_hit_premium,100=无溢价直通零扰动),三类形态全覆盖(flat power / percent 幅度 / gp 缓冲)、标空与挖格兑付不乘溢价、危险格与安全格同池结构零触碰。
|
||||
|
||||
## 待办
|
||||
|
||||
@@ -370,7 +368,7 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
| v0.4 | 2026-09-15 | 雾格残留清理:关闭「待拍板」的对账输入雾相关分量失义条目(原对账输入含雾成本负担比与雾板分层等分量)。现行对账输入 = 实测可推理率分布低分位值等现行读数,条款③⑤对账协议与判定式不变 |
|
||||
| v0.5 | 2026-09-15 | 攻击/护甲命名去位置化(全仓统一,跨文档 + registry + 切片代码同批):攻击分量与充能池 {基础, 伤害A, 伤害B} → {普通, 穿刺, 魔法}(数据键 {base, dmg_a, dmg_b} → {normal, pierce, magic}),敌方护甲 {无甲, 护甲A, 护甲B} → {轻甲, 魔法护甲, 重甲}(数据键 {none, a, b} → {light, ward, heavy},映射沿教学梯度 none→light / a→ward / b→heavy);战斗段把甲效表从"三档措辞"改为 3×3 显式矩阵(行 = 攻击类型、列 = 护甲类型,克制 ×150 / 中性 ×100 / 被克 ×50,普通行恒 100)并补语义列;hero_attack 行分量字段 base/dmg_a/dmg_b → normal/pierce/magic;调参表参数名与措辞同步(伤害A→穿刺、伤害B→魔法、"被对位克制"→"被克");registry 与 敌人系统/难度曲线与Boss/03-内容规模/切片 schema·tres·core·presentation·smoke 同批改键(旧名仅在本次修订与各文件批次注记中作为"原名"留存) |
|
||||
| v0.6 | 2026-09-15 | **攻击类型与奖励抽象分离**(用户裁定"攻击类型的定义和格子奖励要分离开;开格\|标雷 → 奖励;奖励如何定义是可以修改的;不要将两者绑定"):修正 v0.5 遗留的焊死命名——攻击类型是**伤害的属性轴**(只决定查甲效表哪一行,定义里不含任何棋盘来源);充能是**按攻击类型分桶的附加伤害储备**,"谁能充、充哪个桶"归**奖励定义**,开格 / 标中旗 / 踩雷 / 清图一律只作奖励触发源。战斗段:矩阵表去掉来源措辞(语义列改"穿透附魔护甲…"),新增"谁往桶里放东西属奖励定义"一段与"奖励触发源 × 现行奖励内容 × 换算上限"表;授予段:挖格批与旗判定批改为"按奖励定义累加充能计数"并加一句充能归属说明;调参表:穿刺每格 / 魔法每雷两行合并为「充能奖励定义 `charge_grants`」(触发源 → {attack_type, per_unit, cap}),v0.5 落下的 pierce_per_cell / pierce_cap / magic_per_flag 同批作废;新增「待拍板」条目登记充能奖励的正式归属。切片同批:`charge_grants` 承接三字段、`_charge_counts`(只计数)与 `_charge_points()`(按奖励定义投桶)、round_facts 改 `charge_counts` / `charge_points`、冒烟加"奖励定义在位 ×2 + 改投桶行为断言" |
|
||||
| v0.7 | 2026-09-15 | **格面资源批(用户拍板四点)**:① 段序七段 → 五段——道具使用窗口与道具段随可选类道具整体删除(2026-09-15 用户裁定)下线,段序常量与 registry settlement_table 同步修订;② 授予段改述为"结算队列 + 抵消过滤":开格 / 标旗 / 撤旗入队,标旗后被撤旗的动作不结算(零兑付、行动点不返);③ 兑付统一走极性矩阵(开安全格 / 标中旗 = 正向,开雷格 / 标错旗 = 负向,字典归奖励道具经济),取代踩雷固定伏击、标中固定削弱、标错三选一哈希反噬三套固定兑付;④ 明细行型 15 → 10(删道具行 / 已消耗未生效行 / 使用被拒行 / 窗口打开锚行 / 窗口跳过锚行),两层豁免集合改两类 + 三类;⑤ 战斗道具背包与库存语义下线,关卡收束只清辅助道具背包;⑥ 收益对照表 flat 类措辞去道具;验收标准改五段全序 + 抵消过滤 + 极性路由正确,删窗口类断言。行动经济 F1 对账锚(伏击共享池)与难度曲线重推义务随批登记(见 registry 修订记录),切片侧修改指导随批产出 |
|
||||
| v0.7 | 2026-09-15 | **格面资源批(用户拍板四点)**:① 段序七段 → 五段——道具使用窗口与道具段随可选类道具整体删除(2026-09-15 用户裁定)下线,段序常量与 registry settlement_table 同步修订;② 授予段改述为"结算队列 + 抵消过滤":开格 / 标旗 / 撤旗入队,标旗后被撤旗的动作不结算(零兑付、行动点不返);③ 兑付统一走极性矩阵(开安全格 / 标中旗 = 正向,开危险格 / 标错旗 = 负向,字典归奖励道具经济),取代踩雷固定伏击、标中固定削弱、标错三选一哈希反噬三套固定兑付;④ 明细行型 15 → 10(删道具行 / 已消耗未生效行 / 使用被拒行 / 窗口打开锚行 / 窗口跳过锚行),两层豁免集合改两类 + 三类;⑤ 战斗道具背包与库存语义下线,关卡收束只清辅助道具背包;⑥ 收益对照表 flat 类措辞去道具;验收标准改五段全序 + 抵消过滤 + 极性路由正确,删窗口类断言。行动经济 F1 对账锚(伏击共享池)与难度曲线重推义务随批登记(见 registry 修订记录),切片侧修改指导随批产出 |
|
||||
| v0.8 | 2026-09-15 | **护甲等级批(用户拍板登记,只改文档与 registry、不动代码)**:战斗段新增护甲等级掷点规则——必中、非归零,掷点低于防守方护甲等级按减伤档位折扣,没有 miss、没有零收益白回合;只吃基础攻击分量(主角普通分量 / 敌方攻击拍与重击拍基线),穿刺/魔法充能分量不吃;棋盘来源(伏击附加、道具、清障炸药、奖励即时)一律无视;护甲等级(数值轴,数据键 `armor_class`)与护甲类型(克制属性轴)命名区分成文。随机口径修订:结算换算层首次引入回合内随机,可回放契约从"结算路径零随机"改为"封闭随机流可回放"(同种子同输入逐位复现);开战掷骰属初始化随机维持不变。调参表新增护甲等级掷点 / 减伤档位表 / `armor_class` 三行(全部 provisional 未定值);伤害行补掷点读数与折扣档位随行留档(行型 10 类封闭不变);验收标准新增护甲等级掷点与折扣零值归路两条、可回放条改封闭随机流口径;EV 中性引入成文(期望伤害对齐现行表值,"零红档"验收保留);待拍板新增"掷点形式与数值域""掷点的随机流归属"两条 |
|
||||
| v0.9 | 2026-09-16 | 新增「呈现只读面」节(06 清单「呈现只读面契约登记缺口」闭合):把切片已实现的呈现面函数与信号登记为对外契约——呈现状态快照 `presentation_snapshot`、战斗进行中谓词 `is_battle_live`、奖励身份查询 `query_reward_identity`、结算快照信号 `settlement_snapshot`、战斗结束信号 `battle_finished` 五件成文(载荷字段、消费方、销毁前捕获语义),并登记"呈现层唯一状态读取出口、禁链式穿透"的出口纪律与诊断观测面的非契约定位;依赖与输出表 HUD 框架下游行补指路 |
|
||||
| v0.10 | 2026-09-16 | **护甲等级掷点批·定稿落地(用户拍板,数字即规范——与敌人系统 / 难度曲线与Boss / registry / 切片代码同批)**:判定式定稿——掷 1d20,掷点 ≥ 防守方护甲等级 + 攻击加成(结构位 `attack_bonus`,切片恒 0)→ 全额,低掷按缺口三档折扣(1-3 → ×0.75 · 4-7 → ×0.5 · 8+ → ×0.25,无零档);nat20 暴击该基础攻击分量 ×2 且恒全额(双方同规);伤害下限全局 max(1, ·)(`damage_floor` = 1)——"被减伤归零 v=0"零值伤害行语义退役,重档折扣行文本记"被压制";百分比减伤增益 defense_up 整体退役换装 ac_up(护甲强化 +1 AC/层 ×2 层,`unit=ac` 新量纲、不入任何池,无双轨),off_guard 与池结构零改动;护甲等级与护甲类型分离成文(数值轴 / 属性轴,不做映射)。数值载体:主角 armor_class 10(暂定)、敌方首关 0(暂定,正式行值归怪物设定批,登记待办清单);掷点流归属定稿 = `armor_roll` 封闭流(逐次掷逐次取号,可逐位回放),调参表掷点/档位/下限/加成五行由未定改拍板值;EV 参考数成文(AC10 21.25% / AC11 25% / AC12 28.75%,按判定式复算),换装点锚定(基准 AC10 自带约 −21% 敌方输出期望)与加难杠杆扫描合并处理;验收标准改写掷点条目 + 新增伤害下限与留档条目;切片同批:settlement.tres 七参数入表、战斗段掷点判定/暴击/下限/行留档(roll/ac/tier/crit 字段)、armor_roll 流接入 rng_service(黄金向量 m=42 scope0 = 4806095330042243845)、零值伤害行分支删除、冒烟护栏与掷点行为断言(nat20 种子 / AC12 档位分布 / 池触底保底 / 棋盘必中)、英雄卡与敌人卡 AC 展示、ac_up 状态槽图标、nat20 金框高亮 |
|
||||
@@ -381,12 +379,17 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
| v0.15 | 2026-09-18 | **甲效矩阵用户调参批(用户逐格给值,事实源 settlement.tres 五格改值、四格不动,零代码)**:普通行 ward 100→120 / heavy 100→50;穿刺行 light 100→80 / ward 150→120 / heavy 50→80;魔法行与普通-轻甲不动——「克制/中性/被克」三档结构与「普通行恒中性」退役,改五档(克制 / 弱克制 / 中性 / 弱被克 / 被克,档值读表)。矩阵消费面成文 = 主角侧(奖励直伤道具 / 主角攻击三分量 / 充能分量),敌方攻击不查矩阵、主角 armor_type 轴仍休眠(v0.13「敌方攻击恒 normal 档故中性」的归因改述——轴休眠是结构性的非数值性的)。语义列两行同步(穿刺「破不开重甲」重压语义弱化为与轻甲同档折损)。切片同批:settlement.tres 批注、冒烟矩阵三行断言改五档读数 + 乘区接线穿刺分量 3→2(3 点 ×80% 取整)随批改形,冒烟 300 项 0 失败 + 四探针 PASS;registry(enemy/hero armor_type 两行注记)与 敌人系统 / 难度曲线与Boss 三档措辞同步 |
|
||||
| v0.16 | 2026-09-18 | **甲效矩阵加法核换装批(用户拍板数值语言——小整数加法核,与 01-核心循环 数值语言条款 / registry / 切片代码同批)**:量纲 percent→整数点数,三档(克制 +1/中性 0/被克 −1)九格改值〔normal 0/+1/−1、pierce −1/+1/0、magic 0/−1/+1〕,pierce×heavy = 0 中性为用户特别拍板;五档词表与百分比乘区退役(v0.15 的五档表随批短命退役,理由=个位数刻度假粒度);分量算术改述=折算取整后加修正点数;缺项回退 100→0;奖励直伤行 payload 键 effectiveness 保留、值语义改点数;池乘区/AC 折扣档/暴击保留百分比并成文粒度口径(数值语言条款:百分比仅此三处既有粗档+开发侧工具);切片同批:settlement.tres/settlement_table.gd/damage_math/battle_orchestrator/smoke/registry/01-核心循环同步 |
|
||||
| v0.17 | 2026-09-19 | **技能池新效应词汇批(用户拍板——设计权威 proposal-status-vocabulary.md〔提案已吸收退役 git a6833b6a——现行事实源=敌人系统.md 词汇表/增益状态.md〕 v1.0,与 敌人系统 / 增益状态 / registry / 切片代码同批)**:① 三乘法链尾部 +必中附加分量 rider(伤害技 rider_mult 字段:max(伤害下限, floor(攻击基线 × rider_mult))——后置加法、必中全额、不进乘区不出暴击、价位锚 0.75 = AC 折扣档最轻档;"固定值伤害"改形——固定值不随基线缩放与共享技能表前提冲突);② 增益/妨害技 = 同族施放行(0 伤害不掷不折不兑伏击),妨害状态按状态行 target_side 落主角——零新授予通道;③ 必中家族清单 +rider(掷点边界切口);④ 公式行/吃掷点行/验收标准三处同步 + 新效应词汇验收条目(rider 逐拍精确复算 + rider 键封闭 + 妨害落主角端到端);⑤ 实装面 = 仅 L2 Boss 卓尔(毒爆 +rider、新行蛛网束缚妨害→失衡),其余敌种不动;多段命中经用户拍板退役不入词汇表 |
|
||||
| v0.18 | 2026-09-19 | **插旗不可逆批(用户拍板全套落地,2026-09-18 提案转正;与排雷玩法 v0.5 / 行动经济 v0.4 / 地图战斗资源 v0.12 / registry / 切片代码同批)**:① 授予段「抵消过滤」改述「判定基线」——撤旗动作退役,旗判定以轮末在场旗为基线,被挖开的旗不入基线;② 新增插旗不可逆四情况兑付表:①标中照常 / ②插旗雷格直挖只吃挖雷惩罚标中不发 / ③标空照常 / ④插旗安全格直挖零惩罚零奖励(正向作废 + reward_ineffective 归因行);③ 挖格批兑付表补四情况分支;④ 标中资格措辞改「旗无移除手段」(拔旗重插通道消失);⑤ P0 闭环第 2/4 步与验收标准同步(「抵消过滤」条改「挖旗格兑付改判」)。切片同批:minesweeper_rules 挖旗格放行 + flag_pull 出目录 + dug_under_flag 事件标记、battle_orchestrator 情况④零奖励抑制、action_economy 表 flag_pull_ap_cost 删除、冒烟 317→327 项 0 失败(四情况探针 `_smoke_flag_irreversible_quadrants`) |
|
||||
| v0.19 | 2026-09-20 | **伤害下限全来源批(用户拍板「任何伤害取值域 [1,+∞),最小值一定是 1」;与 06 清单「零伤害/无威胁组合的跨字段护栏」收口 / registry / 切片代码同批,台账 100)**:① 下限语义从"任何攻击落地伤害"扩为"任何来源的伤害落地"——攻击双方(原有)+棋盘克制直伤(counter_component 增 landed_floor 参数,空桶不吃修正恒 0 边界不变)+爆裂正向+负向反噬(穿刺陷阱/魔法反噬/heal 反噬)+地形变异 flat_damage,全部收进 damage_floor 闸内;② 取值域成文 [1, +∞) **不设上限**——「零伤害/无威胁组合」条目的跨表上界护栏半边随拍板裁决为不设(上不封顶),敌种攻击基线 0 的退化态经下限自然消解(0 基线攻击落地仍 ≥1,"无威胁敌"结构性不存在);③ 现行表值下零行为变更(棋盘直伤贴底值 2−1=1 本就在闸内),本批=结构保证+调参防误配;④ 判读口径/约束表/调参表/验收四处措辞同步;冒烟 352→355 项 0 失败(+贴底/穿透/空桶三断言)。版本号注记:v0.19 在伏击上限删除批(未合并分支)中已被占用,本条与之合并时以先落籍者为准顺延避让 |
|
||||
| v0.18 | 2026-09-19 | **插旗不可逆批(用户拍板全套落地,2026-09-18 提案转正;与排雷玩法 v0.5 / 行动经济 v0.4 / 地图战斗资源 v0.12 / registry / 切片代码同批)**:① 授予段「抵消过滤」改述「判定基线」——撤旗动作退役,旗判定以轮末在场旗为基线,被挖开的旗不入基线;② 新增插旗不可逆四情况兑付表:①标中照常 / ②插旗危险格直挖只吃挖雷惩罚标中不发 / ③标空照常 / ④插旗安全格直挖零惩罚零奖励(正向作废 + reward_ineffective 归因行);③ 挖格批兑付表补四情况分支;④ 标中资格措辞改「旗无移除手段」(拔旗重插通道消失);⑤ P0 闭环第 2/4 步与验收标准同步(「抵消过滤」条改「挖旗格兑付改判」)。切片同批:minesweeper_rules 挖旗格放行 + flag_pull 出目录 + dug_under_flag 事件标记、battle_orchestrator 情况④零奖励抑制、action_economy 表 flag_pull_ap_cost 删除、冒烟 317→327 项 0 失败(四情况探针 `_smoke_flag_irreversible_quadrants`) |
|
||||
| v0.19 | 2026-09-20 | **伤害下限全来源批(用户拍板「任何伤害取值域 [1,+∞),最小值一定是 1」;与 06 清单「零伤害/无威胁组合的跨字段护栏」收口 / registry / 切片代码同批,台账 100)**:① 下限语义从"任何攻击落地伤害"扩为"任何来源的伤害落地"——攻击双方(原有)+棋盘克制直伤(counter_component 增 landed_floor 参数,空桶不吃修正恒 0 边界不变)+爆裂正向+负向反噬(穿刺陷阱/魔法反噬/heal 反噬)+地形变异 flat_damage,全部收进 damage_floor 闸内;② 取值域成文 [1, +∞) **不设上限**——「零伤害/无威胁组合」条目的跨表上界护栏半边随拍板裁决为不设(上不封顶),敌种攻击基线 0 的退化态经下限自然消解(0 基线攻击落地仍 ≥1,"无威胁敌"结构性不存在);③ 现行表值下零行为变更(棋盘直伤贴底值 2−1=1 本就在闸内),本批=结构保证+调参防误配;④ 判读口径/约束表/调参表/验收四处措辞同步;冒烟 352→355 项 0 失败(+贴底/穿透/空桶三断言)。版本号注记:v0.19 在伏击上限删除批(未合并分支)中已被占用,本条与之合并时以先入库者为准顺延避让 |
|
||||
| v0.20 | 2026-10-12 | **玩家向显示名跟随批(锻造工坊裁决会话 8a 连带·D 项执行)**:数值载体节 `ac_up`(护甲强化)→ `ac_up`(盾牌加护)——`reward.tres:22` / `status_effects.tres:18` 同批改名(用户裁口径=临时叠层 AC 状态不该叫"护甲";附带约定「加护」=AC 判定层、「护盾」=吸收层不得混用);机制描述与数值零改动,版本历史各行旧名留档不动 |
|
||||
| v0.20 | 2026-09-20 | **伏击单轮上限删除批(用户拍板——与 敌人系统 / 地图战斗资源 / 难度曲线与Boss / registry / 切片代码同批)**:① 行型协议 10 类→9 类——溢出未生效行下线(唯一发射源 = 伏击上限截流,上限删除后零发射面);② 授予段伏击加层改直授无上限(反灾难护栏退役——一轮踩雷数由行动点预算天然封顶);③ 核验清单伏击守恒条改伏击池共享;④ 切片同批:enemy.tres 12 行字段删除、敌表校验/编排器截流/单位容器 F3 计划函数/日志视图 overflow 格式化删除、冒烟 blast 负向断言改直授累加(330 项 0 失败) |
|
||||
| v0.21 | 2026-09-20 | **格面资源八型批(用户拍板——与 敌人系统 / 地图战斗资源 / 行动经济 / registry / 切片代码同批)**:① 三乘法链与敌方技能攻击公式删伏击附加项及其"后置加法不进乘区"解释短语(rider 保留);② 授予段兑付表 blast 负向换装警觉加层(enemy_alert → alert 行)+ 新增 action 型行动点修正行(queue_ap_delta 排队、下一轮开始兑现、下限 0、明细记 effect_id=ap_delta);③ EV flat 类枚举伏击→行动点;④ 呈现快照两处伏击层数拆除(警觉并入敌方增益 effects 投影);⑤ 棋盘来源必中枚举去伏击(两处);⑥ 核验清单伏击池共享改警觉共享 |
|
||||
| v0.22 | 2026-09-19 | **充能退役批(版本号避让注记:原登 v0.16 与甲效矩阵加法核换装批撞号——2026-09-20 R10 版本号唯一性规则上线发现,后落籍者顺延;用户拍板,与切片代码 / registry / 07 清单 / README 同批)**:主角攻击三分量模型(普通 + 穿刺/魔法充能)整体退役,回归单分量——量 = 攻击基线、类型 = 主角表 attack_type;挖格批/旗判定批的充能计数条款删除、充能供给表与 charge_grants 调参行删除、乘区公式与粒度口径改"攻击合计";退役理由 = 克制策略归冒险前配置(营地换型/未来冒险前参数面),局内不再有挖掘攒弹药的第二伤害供给;保留面 = 攻击类型属性轴与棋盘奖励触发源的抽象分离、奖励直伤道具(穿刺弹/魔法矢)的克制直伤消费不变。切片同批:battle_orchestrator 攻击段单分量化 + _charge_points/_charge_counts/round_facts 充能键删除、DamageMath.charge_component → counter_component 改名(奖励直伤唯一消费方)、settlement.tres charge_grants 键与 schema 校验删除、冒烟充能断言组退役改形(乘区接线单分量基线 100、标中正向兑付行断言、恢复点探针换种子 42)、冒烟 293 项 0 失败 |
|
||||
| v0.22 | 2026-09-19 | **充能退役批(版本号避让注记:原登 v0.16 与甲效矩阵加法核换装批撞号——2026-09-20 R10 版本号唯一性规则上线发现,后入库者顺延;用户拍板,与切片代码 / registry / 07 清单 / README 同批)**:主角攻击三分量模型(普通 + 穿刺/魔法充能)整体退役,回归单分量——量 = 攻击基线、类型 = 主角表 attack_type;挖格批/旗判定批的充能计数条款删除、充能供给表与 charge_grants 调参行删除、乘区公式与粒度口径改"攻击合计";退役理由 = 克制策略归冒险前配置(营地换型/未来冒险前参数面),局内不再有挖掘攒弹药的第二伤害供给;保留面 = 攻击类型属性轴与棋盘奖励触发源的抽象分离、奖励直伤道具(穿刺弹/魔法矢)的克制直伤消费不变。切片同批:battle_orchestrator 攻击段单分量化 + _charge_points/_charge_counts/round_facts 充能键删除、DamageMath.charge_component → counter_component 改名(奖励直伤唯一消费方)、settlement.tres charge_grants 键与 schema 校验删除、冒烟充能断言组退役改形(乘区接线单分量基线 100、标中正向兑付行断言、恢复点探针换种子 42)、冒烟 293 项 0 失败 |
|
||||
| v0.23 | 2026-09-20 | **GP+商店房批(用户拍板——与 关卡节点地图 v1.1 / 冒险结构 v0.5 / 地图战斗资源 v0.15 / 难度曲线与Boss v0.18 / registry / 切片代码同批;版本号注记:v0.22 已被充能退役批占用,表尾顺延)**:① 呈现只读面表 battle_finished 载荷 +gp_dropped(掉落掷定 + 关级加值 + 战斗内缓冲的合计——字段增删走本文修订条款兑现);② 授予段兑付形态表新增 GP 缓冲行:gp 正/负向(金币袋 / 破财——九型批)兑付 = 战斗内 GP 缓冲 ±power,战斗完成统一上抛入钱包账本(账本归冒险结构),战斗域零钱包状态;③ 随机口径六处→七处:战斗结束掉落掷定消费 `gp_drop` 封闭流(出口随机、步骤流之外);九型字典措辞与验收标准可回放条目同步 |
|
||||
| v0.24 | 2026-09-24 | **伤害管线单据化批(用户三裁决——与切片代码同批,06 台账 148)**:新增「伤害单据与伤害控制器」一节——伤害对象抽象补全:五族伤害来源收口伤害控制器单点管线、兑付配方封闭五种;三裁决落文——①结账时机双模式(现行 = 段界结账:授予段尾 / 清图批同步点 / 战斗段尾;开单即结保留为回切结构位,切换走代码不走调参)②目标结账时刻照规则解析③死亡事件由单位自行宣布(怪死其未结单据作废、主角死兑付终止);授予段兑付与战斗段两节补结账时点句;验收标准 +伤害单据管线条目。切片同批:`core/damage_controller.gd` 新建(单据构造/开单/结账/死亡事件消费/管线算术收口)、battle_orchestrator 六调用点改开单、掷点/折扣/克制/池乘/攻击行文本助手迁出(`_defender_ac`/`_clamped_pool` 留薄委托)、unit_container 增 `unit_died` 信号;冒烟 557 项 0 失败双模式全绿 + A/B 对拍四配置全确定且真实分岔(行数恒等、纯次序位移);历史基线读数自本批起以段界结账口径为准(重测归曲线调参批) |
|
||||
| v0.25 | 2026-10-05 | **挖掘风险不等式判式换代(迭代14②号卡 T3/T4——与行动经济/难度曲线与Boss/registry 同批)**:①收益对照表补 gp/ap 当量口径注记(gp=flat power 代理 3/2 假设 A5 口径空白登记、ap=flat 表值 1 机会成本口径仅登记假设 A6,精确口径归商店批复核);②验收标准 +条款3 对账条(聚合健康式+β 带逐 u 检算 / 旗溢价兑付三形态覆盖·标空与挖格不乘·同池零触碰);③T4 机制载体 = settlement.tres 新键 flag_hit_premium=125(percent 域 provisional)——标中旗正向兑付 ×(1+δ),整数四舍五入取整与伤害管线 floor 分域(registry 随批登记);DamageController 零改、雷安同池冻结不动、直伤雷 6/8/8 与 p_perfect 不动 |
|
||||
| v0.25 | 2026-10-05 | **挖掘风险不等式判式换代(迭代14②号卡 T3/T4——与行动经济/难度曲线与Boss/registry 同批)**:①收益对照表补 gp/ap 当量口径注记(gp=flat power 代理 3/2 假设 A5 口径空白登记、ap=flat 表值 1 机会成本口径仅登记假设 A6,精确口径归商店批复核);②验收标准 +条款3 对账条(聚合健康式+β 带逐 u 检算 / 旗溢价兑付三形态覆盖·标空与挖格不乘·同池零触碰);③T4 机制载体 = settlement.tres 新键 flag_hit_premium=125(percent 域 provisional)——标中旗正向兑付 ×(1+δ),整数四舍五入取整与伤害管线 floor 分域(registry 随批登记);DamageController 零改、危险格与安全格同池冻结不动、直伤雷 6/8/8 与 p_perfect 不动 |
|
||||
| v0.26 | 2026-10-06 | **地图伤害账殿后批(案C,用户裁——歧义质询触发)**:①五段总览①③行改写——授予段只兑非伤害形态,伤害形态兑付(爆裂/直伤/反噬/地形变异/战旗军规/熔火反噬等)暂存到战斗段末、按「主角先手→逐敌还手→地图账」统一落地;②战斗段节补地图账殿后与死亡守卫(主角死于怪物→暂存单整体不兑,逐单留「未生效(主角已倒下)」行);③结账时机双模式改述:现行=段界结账+地图账殿后,清图批同步读数改「将兑付」回报口径(完美第二份依据开单时点事实),历史基线读数以 2026-10-06 前授予段结账口径封存;④兑付形态表 blast 正向/heal 负向兑付时点改战斗段末;⑤P0 闭环第 5 步补地图账;⑥顺手清充能退役遗留:三分量句改单分量、三处「主角普通分量」改「基础分量」。切片同批:battle_orchestrator 暂存闸 `_defer_board_damage`/`_deferred_board` + `_submit` 案C 分流 + `_outcome_of` + 战斗段末补提交块 + 授予段四处直提改走闸;冒烟 783 项 0 失败(新增案C 段内序断言+行相位分类器换代)+ run_all 17 套全绿 + probe_gate --click 全绿;旧行为 MC 锚全数作废,重锚归数值批 |
|
||||
| v0.27 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①依赖表冒险结构行「provisional,MVP 冒烟直供」过期注记订正——覆盖值通道与接口四件套已随冒险结构实现批(2026-09-21)正式接线;②P1 后置「冒险侧真实供给接线」已随同批落地——行移除;③两处「对账现状见「待办」」悬空指针改指 06-待办清单。 |
|
||||
| v0.28 | 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):「秘宝背包」三处(五出口表关卡结束行/轮次生命周期节/验收关卡收束条)补机械惰性承载注——清空对象=关卡域库存 treasure_inventory(代码实证在役:level_runner.gd:520 快照计数、battle_orchestrator.gd:745 consume),投放渠道已随迭代 11 第①批全退役、现行恒空,同调装配件不经此域,拆线归实装批;行为描述与代码一致,仅补现状口径 |
|
||||
| v0.0 | 2026-10-11 | 术语统一补扫批(危险格更名收尾,2026-10-11):②插旗后挖开行「惊动危险格」表述换代 |
|
||||
| v0.29 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 7 处——明细流水节「宁可报错」改「宁可返回错误」;伤害控制器节「全部收口控制器单点」改「全部统一到控制器单点」;护甲等级掷点节「两层不得混述」「两概念在文档、表字段与代码键中不得混用」改「禁止」;边界表「每池独立收口 ±100 百分点」改「每池独立封顶」(与池乘区公式行同词);调参表护甲等级行「两概念不得混用」改「禁止混用」;行型封闭条「未登记行型不得落行」改「禁止落行」。机制与数值零改动 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:战斗动画与演出(旧体系未单独成文)
|
||||
> 状态:范围草案(待设计)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/systems-index.md(旧体系未单独成文,散见于归档索引)
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -61,8 +60,8 @@
|
||||
|
||||
| 输入 | 登记处 | 将来要做的 |
|
||||
|---|---|---|
|
||||
| 受击反馈 / 死亡表现 / 顺位标记 | [敌人系统](敌人系统.md)的资产需求下限三类(终稿归样张批,呈现语义已归 battle.md) | 终稿资产与动画兑现;死亡不得瞬消 |
|
||||
| 特殊技技能动画定稿 | [敌人系统](敌人系统.md)三档可见性规格(2026-09-16 敌人技能池批改型:行为环姿态预告〔一态与三态〕退役——现行数据面 = 普通攻击零表示、特殊技攻/防系两型动画〔攻击系/增益系〕,暴击为掷点层无前置表示;battle.md 意图线索映射目录已同步改型注记) | 把摇定动画映射(两型)做成终稿资产 |
|
||||
| 受击反馈 / 死亡表现 / 顺位标记 | [敌人系统](敌人系统.md)的资产需求下限三类(终稿归样张批,呈现语义已归 battle.md) | 终稿资产与动画兑现;死亡禁止瞬消 |
|
||||
| 特殊技技能动画定稿 | [敌人系统](敌人系统.md)三档可见性规格(2026-09-16 敌人技能池批改型:行为环姿态预告〔一态与三态〕退役——现行数据面 = 普通攻击零表示、特殊技三族动画〔攻击系/增益系/妨害系——2026-09-19 妨害系新增〕,暴击为掷点层无前置表示;battle.md 意图线索映射目录已同步改型注记) | 把摇定动画映射(两型)做成终稿资产 |
|
||||
| 奖励未生效行的呈现 | [增益状态](增益状态.md)定稿时登记(数据源是[战斗结算](战斗结算.md)的明细协议) | 让这类行在演出中可读、不被吞掉 |
|
||||
| 效果来源格的可读化 | 同上(候选形态:缩略图或格子高亮,坐标不直接呈现) | 把"效果来自哪一格"翻译成玩家可读的演出 |
|
||||
| 坍塌显形的连锁动画 | [游戏概念](../../00-游戏概念.md)的概念层拍板——坍塌显形是[连锁展开](../排雷循环/排雷玩法.md)的玩家可见名,与音频方向同批配对登记 | 连锁展开触发时的连锁演出 |
|
||||
@@ -75,39 +74,39 @@
|
||||
|
||||
附着在同一次样张上的还有一项已登记的裁决(登记出处 = 敌人系统的呈现契约):敌人层绘制优先级的插入位置——白话就是敌人的姿态精灵画在绘制顺序的哪一层,会不会、以及如何与棋盘上的数字、旗、小人发生遮挡。它随美术测试一并裁决,不在本文提前定。
|
||||
|
||||
两项相邻裁定已有结论,设计时直接继承:**敌人呈现形态已裁决(2026-09-20 用户看对照样张拍板)——全站桩式(无框立绘+底座),主角同样站桩、状态小图标挂血条正下方,卡片式整体退役**(06 待办「敌人卡形态」解决移除,台账 99;battle.md 起草条款已随裁决改写,对照样张存档 `production/mockups/`);art-bible 的图标键契约已冻结,动画设计不必等图标终稿。
|
||||
两项相邻裁定已有结论,设计时直接继承:**敌人呈现形态已裁决(2026-09-20 用户看对照样张拍板)——全站桩式(无框立绘+底座),主角同样站桩、状态小图标挂血条正下方,卡片式整体退役**(06 待办「敌人卡形态」解决移除,状态记录 99;battle.md 起草条款已随裁决改写,对照样张存档 `production/mockups/`);art-bible 的图标键契约已冻结,动画设计不必等图标终稿。
|
||||
|
||||
### 一屏样张的验收标准
|
||||
|
||||
样张是前置美术测试的判定物;本节把"怎么算过"在测试组织前写成文,避免临场现定标准。成文做法参照 [art-bible](../../../art/art-bible.md) §1.4 格子样张测试(内容清单、按序验收项、判定与回退),判据全部落到已冻结的现行口径上——本节不定任何新的视觉参数。
|
||||
|
||||
样张内容清单(一组齐备,缺项即无效):按 [battle.md 布局决策 1](../../ux/battle.md) 的常驻双舞台四区布局整屏出样;角色剪影按棋盘格、结算明细带、战斗舞台三个语境同图摆放;~~敌人卡两候选形态对照(卡片式与站桩式各一版,其余内容不变)~~——**本项已由 2026-09-20 形态裁决提前收口(全站桩定稿、卡片式退役),正式样张按站桩形态单版出样即可**(owner 修订,对照义务解除;见 06 待办「敌人卡形态」销项,台账 99);受击、退场、高光兑现三组动画关键帧条(每组至少起、中、末三帧);敌人姿态精灵与数字、旗、小人同格叠放的遮挡对照组至少一组。
|
||||
样张内容清单(一组齐备,缺项即无效):按 [battle.md 布局决策 1](../../ux/battle.md) 的常驻双舞台四区布局整屏出样;角色剪影按棋盘格、结算明细带、战斗舞台三个语境同图摆放;~~敌人卡两候选形态对照(卡片式与站桩式各一版,其余内容不变)~~——**本项已由 2026-09-20 形态裁决提前完成(全站桩定稿、卡片式退役),正式样张按站桩形态单版出样即可**(owner 修订,对照义务解除;见 06 待办「敌人卡形态」销项,状态记录 99);受击、退场、高光兑现三组动画关键帧条(每组至少起、中、末三帧);敌人姿态精灵与数字、旗、小人同格叠放的遮挡对照组至少一组。
|
||||
|
||||
验收项按序判定,第一项不过 = 整张否决(继承格子样张"数字可读性定风格"的次序):
|
||||
|
||||
1. **第一验收项|棋盘区零打扰(硬指标,继承已冻结口径)**:样张中一切战斗与演出元素不侵入数字字形占位区;棋盘区数字对比仍满足 art-bible §4.1 对比硬指标;挖掘期画面不因战斗元素新增抢焦运动。
|
||||
2. **剪影跨舞台通用(灰度通道)**:同一角色剪影转灰度后在三个语境下仍可辨认为同一角色——识别只靠轮廓通道、不借格底色(art-bible §5.1 已锁事实的样张检验)。
|
||||
3. **动画方案可读**:三组关键帧条按序翻看能读懂"发生了什么":受击反馈先于死亡、退场有过程不得瞬消、高光行强调可辨;每组动画能指认其减动效简化形态(时长减半或直达终态)。
|
||||
3. **动画方案可读**:三组关键帧条按序翻看能读懂"发生了什么":受击反馈先于死亡、退场有过程禁止瞬消、高光行强调可辨;每组动画能指认其减动效简化形态(时长减半或直达终态)。
|
||||
4. **战斗空间成立**:双舞台同屏下挖掘期视线锚在棋盘区、结算期锚在明细带与战斗画面区(B 区),两舞台边界清晰、无焦点争夺。
|
||||
5. **敌层插入位置可裁**:遮挡对照组足以裁决敌人姿态精灵画进绘制顺序的哪一层——任何层叠组合下数字、旗、小人不得被遮挡到不可辨。
|
||||
5. **敌层插入位置可裁**:遮挡对照组足以裁决敌人姿态精灵画进绘制顺序的哪一层——任何层叠组合下数字、旗、小人禁止被遮挡到不可辨。
|
||||
|
||||
判定与回退:第 1 项不过即演出元素回炉,禁止以牺牲可读性换氛围(改演出、不动数字口径);第 2–4 项不过对应资产或方案回炉重交,已过项结果保留。第 5 项(敌层插入位置)不产生过/不过,产出一条裁决记录:插入位置结论由[敌人系统](敌人系统.md)的呈现契约登记(~~敌人卡形态对照~~半边已于 2026-09-20 提前裁决收口——全站桩定稿,结论已回写 battle.md 起草条款)。样张通过 = 角色剪影、动画方案、战斗空间、敌层插入位置四件锁定物冻结;通过前不启动任何终稿资产与动画设计。
|
||||
判定与回退:第 1 项不过即演出元素回炉,禁止以牺牲可读性换氛围(改演出、不动数字口径);第 2–4 项不过对应资产或方案回炉重交,已过项结果保留。第 5 项(敌层插入位置)不产生过/不过,产出一条裁决记录:插入位置结论由[敌人系统](敌人系统.md)的呈现契约登记(~~敌人卡形态对照~~半边已于 2026-09-20 提前裁决完成——全站桩定稿,结论已回写 battle.md 起草条款)。样张通过 = 角色剪影、动画方案、战斗空间、敌层插入位置四件锁定物冻结;通过前不启动任何终稿资产与动画设计。
|
||||
|
||||
### 演出服从信息与可读性
|
||||
|
||||
两条现行硬约束,将来任何动画方案都不得越过。其一,数字可读性高于氛围:挖掘期画面无杂音,动画不得遮挡数字、不得在挖掘期抢焦;结算期的色彩与能量走向以 art-bible 第 2 节为权威。其二,结算逐行兑现是信息载体:battle.md 已承诺不可整体跳过、只提供减动效选项(时长减半或直达终态,逐行兑现可加速不可省略),本文将来兑现其动画侧。
|
||||
两条现行硬约束,将来任何动画方案都禁止越过。其一,数字可读性高于氛围:挖掘期画面无杂音,动画禁止遮挡数字、禁止在挖掘期抢焦;结算期的色彩与能量走向以 art-bible 第 2 节为权威。其二,结算逐行兑现是信息载体:battle.md 已承诺不可整体跳过、只提供减动效选项(时长减半或直达终态,逐行兑现可加速不可省略),本文将来兑现其动画侧。
|
||||
|
||||
### 结算演出与轮间节奏(已实装,2026-09-30 拍板点 3 裁决落位)
|
||||
|
||||
**定义**:轮末结算的呈现节奏规则——结算行按演出层排播队列分组依次呈现、轮切换以「第 N 轮」横幅驻留,把核心层一帧同步跑完的结算翻译成玩家可跟读的逐行过程;与结算演出覆盖层(光带横扫/跨区弹道,迭代 6)共同构成结算期的演出面。
|
||||
|
||||
**作用对象与范围**:只作用于演出层——排播常量在 `main.gd`(`PACE_SEGMENT_GAP` / `PACE_ROW_GAP`)与 `settlement_fx_view.gd`(`BANNER_DWELL`),横幅与节奏经 settlement_fx_view 呈现。核心层零触碰:`battle_orchestrator` 的「零 await」契约与 MC 对拍口径不受扰(T1 态 400/400 逐位实证在案)。
|
||||
**作用对象与范围**:只作用于演出层——排播常量在 `main.gd`(`PACE_SEGMENT_GAP` / `PACE_ROW_GAP`)与 `settlement_fx_view.gd`(`BANNER_DWELL`),横幅与节奏经 settlement_fx_view 呈现。核心层零触碰:`battle_orchestrator` 的「零 await」契约与「MC 与基线数据逐项比对」口径不受扰(T1 态 400/400 逐位实证在案)。
|
||||
|
||||
**生命周期**:进结算期起播——结算行按五段分组依序进明细带(段间 0.3s、段内 0.22s;段内值 0.06→0.22 系迭代 8 三轮修改批用户裁决「逐条演出可感知」);轮切换横幅驻留 0.6s 后消隐进下一轮;战斗结束排播收尾。**减动效双态**:开关开启 = 延迟归零同帧直落 + 横幅静态化(与设置面减动效联动——「可加速不可整体跳过」承诺的节奏侧兑现)。
|
||||
|
||||
**关联与边界**:结算顺序与结果归[战斗结算](战斗结算.md)(本节零触碰,逻辑先行、演出后行);减动效开关归[设置与本地化](../表现与支撑/设置与本地化.md);节奏常量以代码为事实源(上列三常量),本文登记现行值与沿革,表值化随演出批再议;fx_probe 轮横幅发射计数为验收断言面。
|
||||
|
||||
**状态**:已实装(2026-09-29 迭代 8 卡⑦落籍、三轮修改批调参追认;pacing_queue_test 第 15 套在册)。本节是本文第一块已落地内容,其余部分维持范围草案。
|
||||
**状态**:已实装(2026-09-29 迭代 8 卡⑦已入库、三轮修改批调参追认;pacing_queue_test 第 15 套在册)。本节是本文第一块已落地内容,其余部分维持范围草案。
|
||||
|
||||
## 依赖与输出
|
||||
|
||||
@@ -130,7 +129,7 @@ MVP 不要求本文的闭环:不做清单把战斗动画演出列为 MVP 打
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 输入清单各项的演出化:伤害数字、溢出行呈现、来源格可读化、坍塌显形连锁动画 | 依赖样张锁定的动画方案,逐项排期 |
|
||||
| P1 | 输入清单各项的演出化:伤害数字、奖励未生效行呈现、来源格可读化、坍塌显形连锁动画 | 依赖样张锁定的动画方案,逐项排期 |
|
||||
| P1 | 高光兑现的演出强化 | 机制与呈现位已定,只欠密度 |
|
||||
| P2 | Boss / 精英遭遇变体的专属演出密度 | battle.md 已有其呈现语义,动画密度后置打磨 |
|
||||
| P2 | 减动效档的完整适配 | 选项已承诺,完整分档随演出定稿 |
|
||||
@@ -143,7 +142,7 @@ MVP 不要求本文的闭环:不做清单把战斗动画演出列为 MVP 打
|
||||
|
||||
待设计。方向性判据(供未来定稿参考):
|
||||
|
||||
- 样张先于生产:一屏样张未过审,任何终稿资产与动画方案不得进入生产。
|
||||
- 样张先于生产:一屏样张未过审,任何终稿资产与动画方案禁止进入生产。
|
||||
- 挖掘期零打扰:结算演出只发生在结算期;挖掘期不因动画新增运动元素,数字可读性不受影响。
|
||||
- 因果可读:玩家看完一段兑现演出,能说出这一行结算来自他刚才的哪一步操作。
|
||||
- 死亡可辨:敌人死亡瞬间可辨识,不存在"敌人凭空消失"的观感。
|
||||
@@ -169,4 +168,6 @@ MVP 不要求本文的闭环:不做清单把战斗动画演出列为 MVP 打
|
||||
| v0.2 | 2026-09-16 | 新增「一屏样张的验收标准」:内容清单、五项按序判定与判定回退成文,四件锁定物(角色剪影/动画方案/战斗空间/敌层插入位置)的过判口径落到已冻结口径上(06 清单「样张验收标准未成文」闭合);依赖与输出表"五区"改"四区"随 UI 收口批同步 |
|
||||
| v0.3 | 2026-09-16 | **敌人技能池批(与敌人系统 / 战斗结算 / HUD框架 / registry / 切片代码同批)**:上游呈现输入清单「敌种姿态资产定稿」行改型——行为环姿态预告(一态与三态)随行为环退役,改「特殊技技能动画定稿」(普通攻击零表示、特殊技攻/防系两型动画映射,暴击掷点层无前置表示);摇定动画位呈现语义 = 开轮摇定即可见、纯类型级提醒(池与权重不公开),样张验收联动口径不变 |
|
||||
| v0.4 | 2026-09-20 | **敌人卡形态裁决收口批(与 battle.md / HUD框架 / 06 清单同批,台账 99)**:敌人呈现形态拍板全站桩式(无框立绘+底座,主角同站桩、状态小图标挂血条下,卡片式退役)——「前置美术测试是硬前置」节相邻裁定句改裁决已下;样张内容清单「敌人卡两候选形态对照」项划线解除(正式样张按站桩形态单版出样,owner 修订);判定与回退节第 5 项拆出形态对照半边(已收口);敌人层插入位置裁决义务保留随样张批 |
|
||||
| v0.5 | 2026-09-30 | **拍板点 3 收口批(GDD 概念覆盖审计——用户裁甲:演出正主节落位)**:新增「结算演出与轮间节奏」节(五要素:定义/作用对象与范围/生命周期/关联与边界/状态)——结算演出覆盖层(迭代 6)与轮间结算节奏化(迭代 8 卡⑦:段间 0.3s/段内 0.22s/轮横幅 0.6s+减动效双态)的呈现规则自 06 已收口条目与代码注释收编入正主;段内常量按代码实态 0.22s 登记(06 条目旧记 0.06s 系三轮修改批前值);常量以代码为事实源。孤儿 1(演出 spec 零承载)随本节解除 |
|
||||
| v0.5 | 2026-09-30 | **拍板点 3 收口批(GDD 概念覆盖审计——用户裁甲:演出权威定义节落位)**:新增「结算演出与轮间节奏」节(五要素:定义/作用对象与范围/生命周期/关联与边界/状态)——结算演出覆盖层(迭代 6)与轮间结算节奏化(迭代 8 卡⑦:段间 0.3s/段内 0.22s/轮横幅 0.6s+减动效双态)的呈现规则自 06 已收口条目与代码注释收编入现行事实源;段内常量按代码实态 0.22s 登记(06 条目旧记 0.06s 系三轮修改批前值);常量以代码为事实源。孤儿 1(演出 spec 零承载)随本节解除 |
|
||||
| v0.6 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①输入清单「特殊技攻/防系两型动画」订正——2026-09-19 新效应词汇批已扩三族(攻击系/增益系/妨害系,敌人系统意图呈现节);②P1「溢出行呈现」改「奖励未生效行呈现」(溢出未生效行型已随 2026-09-20 伏击上限删除批下线,与输入清单行措辞对齐)。 |
|
||||
| v0.7 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 10 处——「死亡不得瞬消」「退场有过程不得瞬消」「不得被遮挡到不可辨」「都不得越过」「不得遮挡数字」「不得在挖掘期抢焦」「不得进入生产」7 处「不得」改「禁止」;「提前收口」「提前裁决收口」2 处改「完成」(样张内容清单/判定与回退节);结算演出节「MC 对拍口径」改「MC 与基线数据逐项比对」口径。机制与数值零改动 |
|
||||
@@ -2,11 +2,10 @@
|
||||
|
||||
> 一句话:敌人数据、技能池出招、意图呈现
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/b2-enemy-system.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
敌人系统回答战斗里四个问题:对面是谁、有多强、接下来要干什么、怎么被打死。它同时管主角和敌人的数据面——双方共用同一套受伤与死亡的接口,所以它也是踩雷代价的收件人:惊动巢穴喂给怪物的每一分优势,最终都落在它管的血量上。没有它,惩罚没有落点、胜负没有主体、难度曲线没有施加对象。
|
||||
敌人系统回答战斗里四个问题:对面是谁、有多强、接下来要干什么、怎么被打死。它同时管主角和敌人的数据面——双方共用同一套受伤与死亡的接口,所以它也是踩雷代价的收件人:惊动危险格喂给怪物的每一分优势,最终都落在它管的血量上。没有它,惩罚没有落点、胜负没有主体、难度曲线没有施加对象。
|
||||
|
||||
它向玩家兑现三条承诺。威胁可推测:特殊技有一次开轮类型级预告、结算明细具名到技能,普攻之外的行动都读得懂来龙去脉。强弱有来处:它强是我踩雷喂的,它弱是我插旗拆的。越下越险:深层敌人更凶,是下探氛围的可见刻度。反向护栏只有一条——威胁绝不能是无源暗账,玩家说不出"它为什么变强、这一拳为什么这么重",就是本系统失职。
|
||||
|
||||
@@ -32,8 +31,8 @@
|
||||
| 摇号执行与结算编排(何时摇、伤害合成、死亡判定时机、护甲克制矩阵) | [战斗结算](战斗结算.md) |
|
||||
| 状态层数的存放与衰减(削弱层池、蓄力/硬化/警觉增益) | [增益状态](增益状态.md) |
|
||||
| 奖励内容与掉落 | [地图战斗资源](地图战斗资源.md) |
|
||||
| 棋盘规则(挖格、插旗、惊动巢穴等事实的发生) | [排雷玩法](../排雷循环/排雷玩法.md) |
|
||||
| 遭遇构成(何时开战、坐标与数量怎么定)与跨战斗血量保留 | [关卡节点地图](../冒险循环/关卡节点地图.md) |
|
||||
| 棋盘规则(挖格、插旗、惊动危险格等事实的发生) | [排雷玩法](../排雷循环/排雷玩法.md) |
|
||||
| 遭遇构成(何时开战、坐标与数量怎么定) | [关卡节点地图](../冒险循环/关卡节点地图.md);跨战斗血量保留归[冒险结构](../冒险循环/冒险结构.md)(生命账本) |
|
||||
| 单位数值曲线、池权重/冷却/保底投值与难度修饰 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| 呈现(线索映射清单、顺位与血条、摇定动画、受击与死亡演出) | [HUD 框架](../表现与支撑/HUD框架.md) 与 [战斗表现](战斗表现.md) |
|
||||
| 配置表的 schema 与读取机制 | [数据配置](../表现与支撑/数据配置.md) |
|
||||
@@ -50,7 +49,7 @@
|
||||
|
||||
### 主角与敌人共用同一套受伤与死亡规则
|
||||
|
||||
战斗场上恰有两类单位:主角一个,敌人若干。它们共用同一套"身体语义"——每个单位有当前血量与血量上限,挨打血量往下减,减到 0 即死亡。本系统只如实记账并提供查询;"这一下最终算多少伤害、何时算死"的裁决归[战斗结算](战斗结算.md)。主角血量归零是失败判定素材,敌人全部归零是胜利判定素材,判定本身同样归战斗结算。
|
||||
战斗场上恰有两类单位:主角一个,敌人一至四个(数量随遭遇行集骰定,见「开战生成」节)。它们共用同一套"身体语义"——每个单位有当前血量与血量上限,挨打血量往下减,减到 0 即死亡。本系统只如实记账并提供查询;"这一下最终算多少伤害、何时算死"的裁决归[战斗结算](战斗结算.md)。主角血量归零是失败判定素材,敌人全部归零是胜利判定素材,判定本身同样归战斗结算。
|
||||
|
||||
单位的一生只有四态:
|
||||
|
||||
@@ -63,34 +62,36 @@
|
||||
|
||||
两条不变式贯穿始终:血量恒在 0 与上限之间;战斗内敌人只减不增。举证:本节为状态语义,无计算。
|
||||
|
||||
### 开战生成:主角数据行与一场 1–3 个同敌种单位
|
||||
### 开战生成:主角数据行与一场 1–4 个敌人(行集可混编多种敌种)
|
||||
|
||||
战斗开始时,编排方给出遭遇坐标(关卡序号 + 节点深度),本系统据此在敌人表里精确匹配一种敌种,把本战实际数量的敌人生成出来——每场战斗 1 到 3 个敌人,全部同种同属性,来自同一行表值;战斗中敌人只减不增,不做召唤、增援、分裂。主角同时以当前血量入参生成,血量越界(高于上限或不超过 0)整单拒绝、不留半实例。
|
||||
战斗开始时,编排方给出遭遇坐标(关卡序号 + 节点深度),本系统据此在敌人表里取出该坐标的整个行集(一行或多行),把本战实际数量的敌人逐行生成出来——每行各按自己的数量行值实例化(单行 1 到 3 个),行集实例总数(各行开战骰后数量求和)不超过 4。同坐标多行即混编遭遇:各敌种同场上阵,生成序 = 表文件行序(行序即契约——目标顺位、摇号子流派生、开战叙述取首行都按它,加载期校验兜底:同坐标多行必须文件内相邻)。单行行集 = 既有形态:一场 1 到 3 个同种同属性敌人,来自同一行表值。战斗中敌人只减不增,不做召唤、增援、分裂。主角同时以当前血量入参生成,血量越界(高于上限或不超过 0)整单拒绝、不留半实例。
|
||||
|
||||
生成拿到的是当时的表值快照:开战那一刻把数值和池模板各抄一份,之后改表不影响已生成的单位。池模板快照成每实例自己的实例池(各技能冷却清零),此后各自独立摇号、互不干涉。若数量或攻击基线配成了区间,由战斗结算用封闭随机流在开战时掷定一次后传入确定值——本系统自身始终零随机;掷定后整场持久,攻击基线不逐拍重掷(数字要可读)。
|
||||
生成拿到的是当时的表值快照:开战那一刻把每行的数值和池模板各抄一份,之后改表不影响已生成的单位。池模板快照成每实例自己的实例池(各技能冷却清零),此后各自独立摇号、互不干涉。某行的数量或攻击基线若配成了区间,由战斗结算用封闭随机流在开战时**按行各掷定一次**(每行掷自己的区间;掷定次数随行数——单行行集的掷定次数与既有口径逐位一致,混编不新增随机源形态)后传入确定值——本系统自身始终零随机;掷定后整场持久,攻击基线不逐拍重掷(数字要可读)。
|
||||
|
||||
| 规则 | 含义 |
|
||||
|---|---|
|
||||
| 敌方效果对全体生效 | 场上敌人全同种,范围效果作用于所有存活敌人是天然兼容的默认;"只打某一个"的单体寻址暂不开放(见 P1) |
|
||||
| 每个坐标只出一种敌种 | 敌人表按(关卡序号 × 节点深度)存放,同一坐标的行集内敌种唯一,违规加载期报错止动;同关随深度换敌种合法 |
|
||||
| 敌方效果对全体生效 | 范围效果作用于所有存活敌人——混编放开后(2026-10-07 行集多行批)场上可多种敌种共存,结算语义按存活单位逐一生效、不依赖"场上全同种"前提;"只打某一个"的单体寻址暂不开放(见 P1) |
|
||||
| 行集构成纪律 | 敌人表按(关卡序号 × 节点深度)存放,同一坐标行集允许多行、允许不同敌种混编。纪律三条,违规加载期返回错误并止动:①行集内 enemy_id 唯一(同一敌种在同行集仍只许一行);②同坐标多行必须表文件内相邻,行序 = 声明序 = 生成序(行序即契约);③行集实例总数(各行骰后数量求和)≤ 4,单行数量域 [1,3] 不变(UNIT_COUNT_MAX 语义 = 单种数)。行数不设上限;同关随深度换敌种合法 |
|
||||
| 主角数据行 | 主角战斗数值单独放一张全局单行表:生命上限、基础攻击力、护甲等级三字段(见调参表) |
|
||||
| 基础攻击恒存在 | 基础攻击不许配 0(配置为 0 加载期拒绝)——零基线乘任何百分比增益恒为零,"胜利路径恒有"的保障从数据层杜绝死锁 |
|
||||
| 先手攻击不是敌方技能拍 | 每次结算战斗段主角先手攻击顺位最前的存活敌人,这是固定动作;奖励侧的道具与增益是基础攻击之外的规划面伤害,归[地图战斗资源](地图战斗资源.md) |
|
||||
|
||||
首发敌种共三种,名字是玩家可见专名:地精、熊地精、食人魔酋长(末者为首发关底 Boss)。池权重与护甲等级行值一律读配置表,本表只存敌种语义模板:
|
||||
首发敌种三种——地精、熊地精、食人魔酋长(末者为首发关底 Boss);L2/L3 内容批扩至现行八种。名字是玩家可见专名,池权重与护甲等级行值一律读配置表,本表只存敌种语义模板:
|
||||
|
||||
> **hobgoblin 缺口登记(2026-10-13 迭代 24 反哺④)**:敌人表有 `hobgoblin` 数据行((1,3),即第一关第四节点的「大地精」行),**无立绘、不在本敌种表**——登记在案的已知缺口(敌种语义模板未成文故呈现面无定义可依),本批未动;补齐归敌种内容批(立绘+语义模板+敌种表行三件套)。
|
||||
|
||||
| 敌种 | 技能池构成(权重读表) | 护甲类型 | 护甲等级 | 定位 |
|
||||
|---|---|---|---|---|
|
||||
| 地精 | 普通攻击 + 突刺(低权重特殊技) | 行值读表 | 行值读表 | 首发杂兵;教学位节点数量开战掷定(区间行值读表) |
|
||||
| 熊地精 | 普通攻击 + 蓄力 + 重击 | 行值读表 | 行值读表 | 首发主力 |
|
||||
| 食人魔酋长 | 普通攻击 + 重击 + 硬化 + **震地怒击**(半血解锁——2026-10-05 技能池执行批) | 行值读表 | 行值读表 | 首发关底 Boss;硬化独占 |
|
||||
| 巨蜘蛛 | 普通攻击 + 撕咬 + 蓄力 | 行值读表 | 行值读表 | L2 首遇教学位(固定 2 只——首遇位不加骰) |
|
||||
| 巨蜘蛛 | 普通攻击 + 撕咬 + 蓄力 + **毒吐**(2026-10-13 迭代 24 N2 投放) | 行值读表 | 行值读表 | L2 首遇教学位(固定 2 只——首遇位不加骰) |
|
||||
| 蛛化卓尔精灵 | 普通攻击 + 重击 + 毒爆 + 蛛网束缚 + **遏毒**(半血解锁) | 行值读表 | 行值读表 | L2 关底 Boss;毒爆/蛛网束缚独占 |
|
||||
| 灰矮人 | 普通攻击 + 蓄力 + 重击 | 行值读表 | 行值读表 | L3 基线重甲位 |
|
||||
| 灰矮人 | 普通攻击 + 蓄力 + 重击 + **盾击**(2026-10-13 迭代 24 N2 投放) | 行值读表 | 行值读表 | L3 基线重甲位 |
|
||||
| 钩爪恐魔 | 普通攻击 + 撕咬 + 蓄力 | 行值读表 | 行值读表 | L2/L3 群行位(蜘蛛同构池) |
|
||||
| 灰矮人石君王 | 普通攻击 + 重击 + 大地脉动 + **岩崩**(半血解锁) | 行值读表 | 行值读表 | L3 关底 Boss;大地脉动独占 |
|
||||
|
||||
护甲类型(轻甲 / 魔法护甲 / 重甲)与攻击类型的克制结算矩阵归[战斗结算](战斗结算.md),本系统只提供每个敌种的护甲类型数据——**护甲列自 2026-10-05 技能池执行批起改读表口径**(本表轮廓列不再记具体甲型:现行 L1 全轻甲 / L2 仅 Boss 魔法甲 / L3 heavy 登台的错峰投放以 `enemy.tres` 行值为准;历史「本表写魔甲/重甲」与表失同步的欠账随批清偿)。护甲等级是另一条数值轴(防守方字段,基础攻击掷点的折扣判定读数):敌人表与主角表各增 `armor_class` 一列(域 [0, 999]),掷点与折扣的结算归[战斗结算](战斗结算.md),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)——三敌种首关与主角的护甲等级行值读配置表(第一关怪物 AC 相对较低,正式行值待怪物设定投值,登记[待办清单](../../06-待办清单.md)),两条轴的概念与字段不得混用。举证:生成与护甲为数据面规则,无计算。
|
||||
护甲类型(轻甲 / 魔法护甲 / 重甲)与攻击类型的克制结算矩阵归[战斗结算](战斗结算.md),本系统只提供每个敌种的护甲类型数据——**护甲列自 2026-10-05 技能池执行批起改读表口径**(本表轮廓列不再记具体甲型:现行 L1 全轻甲 / L2 仅 Boss 魔法甲 / L3 heavy 登台的错峰投放以 `enemy.tres` 行值为准;历史「本表写魔甲/重甲」与表失同步的欠账顺带清偿)。护甲等级是另一条数值轴(防守方字段,基础攻击掷点的折扣判定读数):敌人表与主角表各增 `armor_class` 一列(域 [0, 999]),掷点与折扣的结算归[战斗结算](战斗结算.md),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)——三敌种首关与主角的护甲等级行值读配置表(第一关怪物 AC 相对较低,正式行值待怪物设定投值,登记[待办清单](../../06-待办清单.md)),两条轴的概念与字段禁止混用。举证:生成与护甲为数据面规则,无计算。
|
||||
|
||||
### 技能池:每敌种一张带权技能池,每拍开轮摇号出招
|
||||
|
||||
@@ -145,7 +146,7 @@
|
||||
|
||||
蓄力语义(2026-09-16 纠偏定稿):蓄力不是重击前奏——它是一行增益技:0 伤害动作,施加 empower 状态(幅度读 `status_effects.tres`),持续 1 个有效结算(provisional)。旧环"蓄力→猛击"的固定配对是哥布林弹珠的拷贝(给玩家输出窗口用的),随行为环一并退役;蓄力与重击之间**没有任何组合语义**——增益与技能倍率恰好同拍只是增益倍率 × 技能倍率的两层乘法共存(增益幅度 × 增益幅度 = 两层乘法读表可得),蓄力后摇中普通攻击则是增益倍率的加成平砍,两者同为平常事,不是设计的连招。技能冷却(几拍内不能再摇中,技能行属性)与增益持续(状态挂几回合,状态行属性)是两个计时器,互不相干。施放行 = 0 伤害动作,不掷不折(原"零兑付、不读伏击"的读怪奖励语义随伏击退役作废——2026-09-20 八型批)。
|
||||
|
||||
Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**三代错峰口径,2026-10-05 技能池执行批换代**:L1 酋长池含独占增益技"硬化"〔敌方防御池词汇载体〕+ 半血解锁伤害技"震地怒击";L2 卓尔池独占妨害技"蛛网束缚"+伤害技"毒爆"+ 半血解锁"遏毒";L3 石君王池独占妨害技"大地脉动"+ 半血解锁"岩崩"——独占技随关错峰投放,三行解锁技=每 Boss 一行新独占伤害技〔用户裁案甲,2026-10-04〕;旧"专属四拍环且含蓄力拍"约定随批退役,增益 ≤1 纪律下旧蓄力拍不进 Boss 池)。
|
||||
Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错峰两轨口径,2026-10-05 技能池执行批立 Boss 轨、2026-10-13 迭代 24 N2 补普通敌轨**:**Boss 轨** = L1 酋长池含独占增益技"硬化"〔敌方防御池词汇载体〕+ 半血解锁伤害技"震地怒击";L2 卓尔池独占妨害技"蛛网束缚"+伤害技"毒爆"+ 半血解锁"遏毒";L3 石君王池独占妨害技"大地脉动"+ 半血解锁"岩崩"——独占技随关错峰投放,三行解锁技=每 Boss 一行新独占伤害技〔用户裁案甲,2026-10-04〕;**普通敌轨** = L2/L3 普通敌种技能随关错峰投放(2026-10-13 N2:巨蜘蛛族+毒吐〔(2,5)/(2,6)/(2,7),首遇教学位 (2,4) 不投〕、灰矮人族+盾击〔(3,0)/(3,5)/(3,7)〕,`skills.tres` 12→14 行)——第一关不见的招式第二/三关普通战可见;旧"专属四拍环且含蓄力拍"约定顺带退役,增益 ≤1 纪律下旧蓄力拍不进 Boss 池)。
|
||||
|
||||
举证:**摇定结果 = 可摇集合按权重份额归一的一次抽签;当前可摇集合 = 实例池排除冷却中技能(保底命中时 = 全部特殊技)。**连带可判别:把权重当固定百分比、把冷却当只锁高伤技、把蓄力当重击前奏,都是与本规约相悖的旧口径。
|
||||
|
||||
@@ -167,7 +168,7 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**三代错
|
||||
|
||||
即:普攻完全不可预测;特殊技有一次类型级预告,不可撤销,但给"继续挖还是停手"的决策依据。
|
||||
|
||||
**半血解锁弹出规格(2026-10-05 技能池执行批,D8 用户裁;内容数据驱动扩展批 T1 补登记——解锁判定点=通用事件「血量阈值 `enemy_hp_threshold`」的发射点,对所有带 `unlock_hp_pct` 字段的敌人逐个发射、非 Boss 专属——Boss 语义留给订阅条件判定)**:Boss 血量降至 `unlock_hp_pct` 阈值(池条目字段,域 [1,99],缺省无字段=无门槛)时,下一个开轮摇号前出一次归因明细行「XX 解锁了 YY」(高光键 `skill_unlock`,行型复用 highlight 零新增);呈现层对该行弹**一次性技能名 toast**(轻量提示,非演出——零动画资产、不改演出规格),只报技能名不报数值,池与权重不公开纪律不变。解锁=单向闩(治疗抬血不解锁);锁定条目双面过滤(不进可摇集合与保底特殊技集合——保底不得逼出未解锁技);解锁后冷却初值 0 即可摇。投放纪律=字段通用、仅 Boss 行投放(enemy 表无 boss 编码位,硬闸须跨表查节点类型——不做硬闸,本句即文档纪律登记)。旧环"下一拍全程亮出(意图徽标 + 环点)"的预告粒度随行为环退役。技能动画的攻/防系映射归[战斗表现](战斗表现.md),敌人侧摇定动画位归[HUD 框架](../表现与支撑/HUD框架.md)(呈现载体 = 站桩立绘,2026-09-20 全站桩拍板),本系统只锁上面这张三档规格。
|
||||
**半血解锁弹出规格(2026-10-05 技能池执行批,D8 用户裁;内容数据驱动扩展批 T1 补登记——解锁判定点=通用事件「血量阈值 `enemy_hp_threshold`」的发射点,对所有带 `unlock_hp_pct` 字段的敌人逐个发射、非 Boss 专属——Boss 语义留给订阅条件判定)**:Boss 血量降至 `unlock_hp_pct` 阈值(池条目字段,域 [1,99],缺省无字段=无门槛)时,下一个开轮摇号前出一次归因明细行「XX 解锁了 YY」(高光键 `skill_unlock`,行型复用 highlight 零新增);呈现层对该行弹**一次性技能名 toast**(轻量提示,非演出——零动画资产、不改演出规格),只报技能名不报数值,池与权重不公开纪律不变。解锁=单向闩(治疗抬血不解锁);锁定条目双面过滤(不进可摇集合与保底特殊技集合——保底禁止逼出未解锁技);解锁后冷却初值 0 即可摇。投放纪律=字段通用、仅 Boss 行投放(enemy 表无 boss 编码位,硬闸须跨表查节点类型——不做硬闸,本句即文档纪律登记)。旧环"下一拍全程亮出(意图徽标 + 环点)"的预告粒度随行为环退役。技能动画的攻/防系映射归[战斗表现](战斗表现.md),敌人侧摇定动画位归[HUD 框架](../表现与支撑/HUD框架.md)(呈现载体 = 站桩立绘,2026-09-20 全站桩拍板),本系统只锁上面这张三档规格。
|
||||
|
||||
| 规格 | 含义 |
|
||||
|---|---|
|
||||
@@ -215,17 +216,17 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**三代错
|
||||
| P1 | 情境条件触发器(低血触发防御、玩家停手时偷袭技等) | 载体 = 技能行触发条件字段加列;登记[待办清单](../../06-待办清单.md) |
|
||||
| P1 | 个体化变体池(A 型好斗 / B 型守势、精英专属池) | 共识点 A 的 A2 案;登记[待办清单](../../06-待办清单.md) |
|
||||
| P1 | 全局特殊间隔旋钮 | 特殊技背靠背实测仍嫌时的备用闸;登记[待办清单](../../06-待办清单.md) |
|
||||
| P1 | 新效应词汇批(妨害技 + 必中附加分量已实装 2026-09-19——设计权威 proposal-status-vocabulary.md〔提案已吸收退役 git a6833b6a——现行事实源=敌人系统.md 词汇表/增益状态.md〕 v1.0,实装面 = L2 Boss 卓尔;多段命中经用户拍板退役) | 妨害类型 + rider_mult 字段已落地;登记[待办清单](../../06-待办清单.md)(已解决移除,去向见台账) |
|
||||
| P1 | 新效应词汇批(妨害技 + 必中附加分量已实装 2026-09-19——设计权威 proposal-status-vocabulary.md〔提案已吸收退役 git a6833b6a——现行事实源=敌人系统.md 词汇表/增益状态.md〕 v1.0,实装面 = L2 Boss 卓尔;多段命中经用户拍板退役) | 妨害类型 + rider_mult 字段已落地;登记[待办清单](../../06-待办清单.md)(已解决移除,去向见状态记录) |
|
||||
| P1 | 敌种名录扩容与投放节奏(含第二关池与投放) | 投放节奏是关卡命脉,归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| P1 | 单体寻址("只打某一个敌人"的目标指定) | 首个单体效果上线时随批裁决归集语义与呈现 |
|
||||
| P1 | 单体寻址("只打某一个敌人"的目标指定) | 首个单体效果上线时顺带裁决归集语义与呈现 |
|
||||
| P2 | 敌方技能图鉴 / 学习呈现(玩家侧技能知识系统) | 池不公开口径下的进阶信息面;登记[待办清单](../../06-待办清单.md) |
|
||||
| P2 | 精英 / Boss 遭遇编码位 | 现表键结构没有编码位,改键随[关卡节点地图](../冒险循环/关卡节点地图.md)定稿强制核对(见待办) |
|
||||
| P2 | ~~精英 / Boss 遭遇编码位~~(已完成——不设编码位:同层多遭遇由节点编号消解,关卡节点地图 v1.0⑥ 用户裁决) | — |
|
||||
|
||||
## 调参表
|
||||
|
||||
配置表共三张。数值纪律(2026-09-17 降级批定稿):**本文只锁字段、取值域与规则,行值一律读配置表(切片 `game/data/tables/` 的 enemy / skills / hero 表)与 [registry 的 enemy / hero / skill 条目](../../../registry/entities.yaml),不在本文登记具体数值——防双写失同步**;曲线调参所有权归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)。
|
||||
|
||||
敌人表(按关卡坐标存放,每坐标行集恰一敌种):
|
||||
敌人表(按关卡坐标存放,每坐标行集一行或多行——多行即混编遭遇,构成纪律见核心规则「行集构成纪律」;单行行集 = 既有形态):
|
||||
|
||||
| 参数 | 取值域 | 说明 |
|
||||
|---|---|---|
|
||||
@@ -233,7 +234,8 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**三代错
|
||||
| unit_count_max | [unit_count, 3],可省略 | 数量区间上界;开战时在区间内掷定本战实际数量;缺省 = 定值 |
|
||||
| atk_min / atk_max | [0, 999] 可选配对 | 攻击基线区间:开战掷定一次、整战持久;缺省 = 定值行 |
|
||||
| armor_type | {轻甲, 魔法护甲, 重甲},缺省轻甲 | 克制结算归[战斗结算](战斗结算.md) |
|
||||
| armor_class(护甲等级) | int [0, 999],缺省 0 | 防守方护甲等级——基础攻击掷点的折扣判定读数,掷点结算归[战斗结算](战斗结算.md);与 armor_type(克制属性轴)两概念不得混用;行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| attack_type | {普通, 穿刺, 魔法},缺省普通 | 敌方攻击类型轴(**2026-10-13 迭代 24 N3 开列实装**:20 行全填 normal,ATTACK_TYPES 闭集枚举+缺省回退向后兼容,与 armor_type 同位同款);消费面 = 战斗结算敌方技兑付路径的护甲克制矩阵查表(敌方开单第 9 参传值+克制消费点,见战斗结算);行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| armor_class(护甲等级) | int [0, 999],缺省 0 | 防守方护甲等级——基础攻击掷点的折扣判定读数,掷点结算归[战斗结算](战斗结算.md);与 armor_type(克制属性轴)两概念禁止混用;行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| hp | [1, 999] | 单位生命基线(难度修饰前) |
|
||||
| atk | [0, 999] | 攻击基线 |
|
||||
| pool(池模板) | {skill_id, weight} 数组,weight ∈ (0, 9999] | 技能行引用在技能表;池构成纪律与悬空引用加载期拒绝(校验在数据配置跨表通道) |
|
||||
@@ -254,17 +256,17 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**三代错
|
||||
|---|---|---|
|
||||
| max_hp | [1, 999] | 主角生命上限 |
|
||||
| atk | [1, 999] | 基础攻击;配 0 加载期拒绝——基础攻击恒在 |
|
||||
| armor_class(护甲等级) | int [0, 999] | 主角作为防守方的护甲等级基准,ac_up(护甲强化)在其上加算;掷点结算归[战斗结算](战斗结算.md) |
|
||||
| armor_type | {轻甲, 魔法护甲, 重甲},缺省轻甲 | 主角护甲类型轴(2026-09-18 营地扩展前置批:可配置可修改);克制结算归[战斗结算](战斗结算.md),现行轴休眠——矩阵消费面 = 主角侧,敌方攻击不查克制矩阵(2026-09-18 甲效矩阵调参批归因改述:轴休眠是结构性的非数值性的),轴生效待敌方技能攻击类型批 |
|
||||
| armor_class(护甲等级) | int [0, 999] | 主角作为防守方的护甲等级基准,ac_up(盾牌加护)在其上加算;掷点结算归[战斗结算](战斗结算.md) |
|
||||
| armor_type | {轻甲, 魔法护甲, 重甲},缺省轻甲 | 主角护甲类型轴(2026-09-18 营地扩展前置批:可配置可修改);克制结算归[战斗结算](战斗结算.md)——**矩阵消费面双向在役(2026-10-13 迭代 24 N3:敌方 attack_type 轴开列+敌方兑付路径克制消费点补齐后,轴休眠态终结;现役敌方全 normal 档,主角三甲型对敌方的读数差 = 穿重甲 −1 / 穿魔法护甲 +1 / 轻甲 0,同种子配对实测在案,数值终值归 M4)** |
|
||||
| attack_type | {普通, 穿刺, 魔法},缺省普通 | 主角基础攻击类型轴(2026-09-18 营地扩展前置批:基础攻击量与攻击类型抽象分离——营地永久强化换型 = 改此字段,atk 量轴不动);消费面 = 战斗结算·战斗段基础分量 |
|
||||
|
||||
各敌种行值、池权重与池 EV 读数(含闸长期速率实测)一律读配置表与调参日志,本文不登记具体数值;EV 重锚与权重投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)。
|
||||
|
||||
结构冻结(非调参项,修订走本文流程):技能类型枚举封闭、每池恰一普攻、每池增益 ≤1、死亡即不动手(摇定后兑现前死亡作废不进账)、每结算每存活敌恰行动一次、行序、先作用后推进、固定顺位、每坐标恰一敌种、零随机(本系统自身语义零随机不变——摇号与掷点随机一律在[战斗结算](战斗结算.md)结算换算层按封闭随机流掷定,可回放契约 = 同种子同输入逐位复现,单敌出招轨迹可独立复放)。联动纪律:技能倍率 × 攻击(伤害拍支配)、权重 × 冷却 × 保底(池节奏三联动)禁止独立调参,联调须重跑方向性预检并同步 registry(见待办)。
|
||||
结构冻结(非调参项,修订走本文流程):技能类型枚举封闭、每池恰一普攻、每池增益 ≤1、死亡即不动手(摇定后兑现前死亡作废不进账)、每结算每存活敌恰行动一次、行序、先作用后推进、固定顺位、**行集构成纪律(2026-10-07 行集多行批换代——原「每坐标恰一敌种」退役:行集内 enemy_id 唯一 + 同坐标多行文件内相邻且行序 = 声明序 = 生成序 + 行集实例总数 ≤ 4)**、零随机(本系统自身语义零随机不变——摇号与掷点随机一律在[战斗结算](战斗结算.md)结算换算层按封闭随机流掷定,可回放契约 = 同种子同输入逐位复现,单敌出招轨迹可独立复放)。联动纪律:技能倍率 × 攻击(伤害拍支配)、权重 × 冷却 × 保底(池节奏三联动)禁止独立调参,联调须重跑方向性预检并同步 registry(登记 [06-待办清单](../../06-待办清单.md))。
|
||||
|
||||
## 验收标准
|
||||
|
||||
- 开战生成:按遭遇坐标精确匹配一行,实例化数量与数值投影同行值快照;池模板快照成实例池且冷却全零;主角以血量入参,越界(高于上限或不超过 0)拒绝且不留半实例。
|
||||
- 开战生成:按遭遇坐标取出该坐标行集(一行或多行,逐行实例化——行序 = 文件序),实例化数量与数值投影同行值快照;行集实例总数(各行骰后)≤ 4;池模板快照成实例池且冷却全零;主角以血量入参,越界(高于上限或不超过 0)拒绝且不留半实例。
|
||||
- 摇号确定性:同种子回放逐位复现(步骤流与各实例摇定动作序列逐位相同);单敌轨迹独立复放——只喂该敌子流(scope = 生成序 × 派生向量 + 摇号序)即可逐位重建其出招序列、互不穿插。
|
||||
- 池节奏:中签率 = 权重 ÷ 可摇权重合计(排除冷却中技能后归一);施放后连续 N 拍不可摇中;连续 M 拍执行普攻 → 下拍必出特殊技(特殊技内按权重、不受冷却限制);同技能连发不可能;首轮摇号、每轮恰摇一次、轮内刷新不重摇。
|
||||
- 死亡即不动手:摇定后、兑现前被杀——本拍技能作废(零行动明细行),不进冷却、不进保底计数;行动完成后才死——已兑付已进账;对已死亡单位上报受击被拒绝且状态不变。
|
||||
@@ -273,7 +275,7 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**三代错
|
||||
- 警觉授予:踩 N 颗雷叠 N 层、逐层直授无上限;敌方全体共享同一状态值(side-wide)。
|
||||
- 目标顺位:多敌时单体目标恒为生成序最前存活者,杀最前后顺延;杀至空返回空;单敌时顺位与范围效果重合。
|
||||
- 快照抗改表:实例化后修改敌人表,已生成单位的数值投影与实例池逐字不变;新实例才用新表值。
|
||||
- 表校验:越域值、池权重 ≤ 0、空池、普攻配倍率/冷却、池增益 > 1、skill_id 悬空、同坐标第二敌种均在加载期报错止动;域内合法极端(攻击基线 0)不拒;主角表恰一行、攻击配 0 拒绝。
|
||||
- 表校验:越域值、池权重 ≤ 0、空池、普攻配倍率/冷却、池增益 > 1、skill_id 悬空、行集构成违例(行集内同敌种第二行 / 同坐标多行不相邻)均在加载期返回错误并止动;域内合法极端(攻击基线 0)不拒;主角表恰一行、攻击配 0 拒绝。
|
||||
- 零随机回放:同一动作与受击序列驱动两个独立实例,存活投影、逐实例摇定轨迹、顺位返回序列逐项相同。
|
||||
- 表实一致:三张配置表字段与 registry 的 enemy / hero / skill 条目逐字段一致。
|
||||
|
||||
@@ -297,5 +299,11 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**三代错
|
||||
| v0.10 | 2026-09-19 | **技能池新效应词汇批(用户拍板——设计权威 proposal-status-vocabulary.md〔提案已吸收退役 git a6833b6a——现行事实源=敌人系统.md 词汇表/增益状态.md〕 v1.0,与 战斗结算 / 增益状态 / registry / 切片代码同批)**:① 技能类型枚举三→四(+妨害 debuff——对主角施减益的 0 伤害施放动作,字段复用 buff_ref/buff_duration,落点由状态行 target_side 路由〔增益 → 敌方侧 / 妨害 → 主角侧,施放类 side 守卫加载拒绝〕,执行与增益技同族施放行语义——不掷不折不兑付伏击);② 伤害技新字段 rider_mult(必中附加分量——"固定值伤害"改形:固定值不随基线缩放与共享技能表前提冲突,必中小倍率承载"躲不掉的稳定伤害");③ 池构成纪律 +每池妨害 ≤1;④ 意图三档特殊技预告扩三族(攻击系 ⚔ / 增益系 ✦ / 妨害系 ☠);⑤ 三词收敛两词——多段命中经用户拍板退役(无防御磨损体系,无对照机制),P1 字段位「命中段数」保留;⑥ 实装面 = 仅 L2 Boss 蛛化卓尔精灵(venom_burst + rider_mult 0.75;新行 web_snare 蛛网束缚 debuff→off_guard,首发载荷 = 失衡〔用户拍板〕,乏力 sapped 留作第二词汇),其余敌种不动 |
|
||||
| v0.11 | 2026-09-20 | **伏击单轮上限删除批(用户拍板——与 战斗结算 / 地图战斗资源 / 难度曲线与Boss / registry / 切片代码同批)**:① 伏击节上限段与溢出可见行删除,一轮踩雷数由行动点预算天然封顶成文;② 字段表 advantage_per_round_cap 行删除(原 0 = 免疫伏击语义作废);③ 结构冻结联动纪律去单轮上限 × 攻击基线、数量 × 上限两条;④ 验收标准伏击授予与表校验条同步 |
|
||||
| v0.12 | 2026-09-20 | **格面资源八型批(用户拍板——与战斗结算 / 地图战斗资源 / 行动经济 / registry / 切片代码同批)**:① 伏击节整体退役改写(复利集中单血条与群伤奖励双重不对称,用户裁决);② 责任表/结构冻结/验收标准的伏击词条目拆除;③ 群伤负向现况 = 警觉(敌方护甲等级 +1),定义与承载移交增益状态 |
|
||||
| v0.14 | 2026-10-06 | **事件发射点登记(内容数据驱动扩展批)**:半血解锁判定点升级为通用事件 `enemy_hp_threshold` 发射点(对所有带 unlock_hp_pct 字段的敌人逐个发射——非 Boss 专属,Boss 语义留给订阅者条件判定;本批零订阅者,登记归效果引擎事件词汇 16 发射点之一,后续内容批随批接线)。零行为变化。
|
||||
| v0.13 | 2026-10-05 | **技能池执行批(迭代14④——D1-D8 全裁零待裁,与 skills.tres/enemy.tres/registry 同批)**:①池构成表 8 敌种全覆盖(补 L2+L3 五敌种行:巨蜘蛛/蛛化卓尔精灵/灰矮人/钩爪恐魔/石君王——池构成轮廓+定位列,权重数值不登)+护甲列改读表口径(失同步欠账清偿);②Boss 句改三代错峰口径;③意图呈现节补半血解锁弹出规格句(**Boss 半血解锁新独占伤害技**:字段 unlock_hp_pct〔1,99] 缺省无=无门槛/单向闩/双面过滤/保底不逼锁定/解锁出一次归因行+一次性技能名 toast——D8 只报名不报数值零演出;三 Boss=震地怒击 ×2.5/CD4·遏毒 ×2.0/CD3·岩崩 ×2.5/CD4 案甲 provisional 归调参);④首拍加权取消〔D2〕杂鱼纹理注销不立文 |
|
||||
| v0.14 | 2026-10-06 | **事件发射点登记(内容数据驱动扩展批)**:半血解锁判定点升级为通用事件 `enemy_hp_threshold` 发射点(对所有带 unlock_hp_pct 字段的敌人逐个发射——非 Boss 专属,Boss 语义留给订阅者条件判定;本批零订阅者,登记归效果引擎事件词汇 16 发射点之一,后续内容批随批接线)。零行为变化。
|
||||
| v0.15 | 2026-10-07 | **行集混编口径批(敌人表行集多行批·组 A 先行——与 难度曲线与Boss / registry / 06 清单 / 切片代码同批)**:①「每个坐标只出一种敌种」规则改写为行集构成纪律三条(行集内 enemy_id 唯一 / 同坐标多行文件内相邻且行序 = 声明序 = 生成序 / 行集实例总数 ≤ 4〔= 各行骰后数量求和,行数不设上限,单行数量域 [1,3] 不变、UNIT_COUNT_MAX 语义改单种数〕)——同坐标多行混编合法(P1 甲 + P4 乙用户裁:Boss 行集同样放开);②开战生成节改「取出整个行集逐行实例化」口径(生成序 = 文件行序即契约)+ 区间掷定改按行各掷一次(单行行集掷定次数与既有逐位一致——零内容期随机流零变化);③「敌方效果对全体生效」前提句去同种假设(效果按存活单位逐一生效);④结构冻结「每坐标恰一敌种」换代、验收标准开战生成与表校验两条同步。知情代价登记:Boss 行集多行后开战叙述取首行 display_name、Boss 节点遭遇骰读首行数量区间(= 全行集骰域)——两读数面随批写出口报告。零内容投放(P3 丙):本批表内容不变,首个混编行归后续内容批 |
|
||||
| v0.16 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①不负责表「遭遇构成与跨战斗血量保留→关卡节点地图」拆分——跨战斗血量保留归冒险结构生命账本;②敌种表引言「首发敌种共三种」与表内八行不符——补「L2/L3 内容批扩至现行八种」;③P2「精英 / Boss 遭遇编码位」行收口——不设编码位(同层多遭遇由节点编号消解,关卡节点地图 v1.0⑥ 裁决),「随定稿强制核对」前置已解除;④结构冻结节「见待办」悬空指针改指 06-待办清单。注:版本表 v0.15 居首、v0.14/v0.13 在尾的既有乱序不动,另行列呈报。 |
|
||||
| v0.0 | 2026-10-11 | 术语统一补扫批(危险格更名收尾,2026-10-11):头部「惊动危险格」表述换代 |
|
||||
| v0.17 | 2026-10-12 | **玩家向显示名跟随批(锻造工坊裁决会话 8a 连带·D 项执行)**:enemy.tres 字段表 armor_class 行「ac_up(护甲强化)」→「ac_up(盾牌加护)」——`reward.tres:22` / `status_effects.tres:18` 同批改名(用户裁口径=临时叠层 AC 状态不该叫"护甲";附带约定「加护」=AC 判定层、「护盾」=吸收层不得混用);字段语义与数值零改动 |
|
||||
| v0.18 | 2026-10-14 | **迭代 24 反哺落文批(实现报告 §六,用户裁「全部按呈报落文」)**:①调参表敌人表字段集增 `attack_type` 行(枚举 {普通, 穿刺, 魔法}、缺省普通、消费面=敌方技兑付查克制矩阵)+ 主角表 armor_type 行休眠注记换代(矩阵消费面双向在役,现役敌方全 normal 档,三甲型读数差 重甲 −1/魔法甲 +1/轻甲 0);②Boss 专属身份节「三代错峰」口径扩为**技能错峰两轨**(Boss 独占技轨 + 普通敌错峰轨,N2 毒吐/盾击投放实录);③敌种表巨蜘蛛族+毒吐、灰矮人族+盾击两行池构成列随 N2 变动;④敌种表增 hobgoblin 缺口登记注(有数据行 (1,3)、无立绘、不在敌种表——已知缺口归敌种内容批)。机制零改动(N2/N3 实现事实登记) |
|
||||
| v0.19 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 8 处——设计目的「敌人若干」改「敌人一至四个(数量随遭遇行集骰定,见开战生成节)」;「报错止动」2 处(行集构成纪律/验收标准表校验)改「返回错误并止动」;「不得混用」2 处与「保底不得逼出未解锁技」改「禁止」;P1 单体寻址「随批裁决」改「顺带裁决」;P2 编码位「已收口」改「已完成」。机制与数值零改动 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:格子的非雾变异(荆棘丛/藤蔓缠绕/岩浆/烬覆/落石/矿尘)与 Boss 图整图变异(贫矿脉),挖掘中可遭遇的地貌偏离
|
||||
> 状态:已定稿(首批类型随 2026-09-19 定稿批落地,第三关一对随 2026-09-20 第三关内容批落地;首个整图变异随 2026-10-04 全局作用域变异首发批落地)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/a4-terrain-variation.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -22,7 +21,7 @@
|
||||
| 数据侧行为约定 | 变异是格子的只读数据,随图生灭;读取方按数据行动 |
|
||||
| 零特判原则 | 禁止任何系统为变异改写扫雷规则本体——框架的承重约束(见核心规则) |
|
||||
| 枚举抽象 | 每类变异以「效果(effect)/ 触发(trigger)/ 布置约束(placement)」三枚举声明机制;读取方按枚举路由,不按类型名分支 |
|
||||
| 反制道具配套义务 | **已作废(2026-10-03 用户终裁)**——原义务「每定稿一类变异,随批配至少一件反制道具」(义务在本系统,道具本体归秘宝;首批四类型的兑现改排 Alpha——2026-09-19 用户拍板):同调位反制件=冒险周期常驻资源对抗关卡周期局部威胁,层级错配,设计废弃(详见下文 §反制道具配套义务 节注记) |
|
||||
| 反制道具配套义务 | **已作废(2026-10-03 用户终裁)**——原义务「每定稿一类变异,顺带配至少一件反制道具」(义务在本系统,道具本体归秘宝;首批四类型的兑现改排 Alpha——2026-09-19 用户拍板):同调位反制件=冒险周期常驻资源对抗关卡周期局部威胁,层级错配,设计废弃(详见下文 §反制道具配套义务 节注记) |
|
||||
|
||||
不负责:
|
||||
|
||||
@@ -30,7 +29,7 @@
|
||||
|---|---|
|
||||
| 布置的编排时点与算法执行(变异格赋予在棋盘设置顺序第 4 步) | [战斗结算](../战斗循环/战斗结算.md)(编排段执行面);布置参数数值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| 挖格、插旗、连锁展开的规则本体 | [排雷玩法](排雷玩法.md) |
|
||||
| 反制道具的效果、时效与定价 | [秘宝](秘宝.md) |
|
||||
| 反制道具的效果、时效与定价 | [秘宝](../跨局循环/秘宝.md) |
|
||||
| 数值表本体与读取机制 | [数据配置](../表现与支撑/数据配置.md) |
|
||||
| 界面呈现(数字遮蔽的渲染执行) | [HUD 框架](../表现与支撑/HUD框架.md) |
|
||||
| 教学口径 | [教学引导](../表现与支撑/教学引导.md) |
|
||||
@@ -61,30 +60,30 @@
|
||||
| 烬覆 | region | 数字遮蔽(hide_number) | 打开且显示数字时(on_number_shown) | 任意格(any) | 第 2 关 | underdark | — |
|
||||
| 落石 | region | 直伤(flat_damage) | 被打开即触发(on_open) | 只落未开格(closed_only) | 第 3 关 | deep_underdark | 3 |
|
||||
| 矿尘 | region | 数字遮蔽(hide_number) | 打开且显示数字时(on_number_shown) | 任意格(any) | 第 3 关 | deep_underdark | — |
|
||||
| 贫矿脉 | global | 资源面偏斜(resource_face) | 板级恒在(always) | 任意格(any,无格子布置域) | 第 2 关 | 通配(∅) | — |
|
||||
| 贫矿脉 | global | 资源面偏斜(resource_face) | 整图恒在(always) | 任意格(any,无格子布置域) | 第 2 关 | 通配(∅) | — |
|
||||
|
||||
机制口径(2026-09-19 定稿批):
|
||||
|
||||
- 伤害型:挖开变异格(含连锁揭示,chain 通道同口径)在轮末结算逐行兑现扣生命——地形后果同挖雷口径,非奖励、插旗格直挖不作废;雷格恒不吃变异(双层叠罚污染逐行归因,首版排除)。
|
||||
- 伤害型:挖开变异格(含连锁揭示,chain 通道同口径)在轮末结算逐行兑现扣生命——地形后果同挖雷口径,非奖励、插旗格直挖不作废;危险格恒不吃变异(双层叠罚污染逐行归因,首版排除)。
|
||||
- 信息型:已开且显示数字时该格真实数字不呈现(呈现层读取遮蔽;挖掘规划被迫降级为盲区推理)。呈现层读取不回灌规则本体——模拟试玩走查询面、不经遮蔽,读数口径不受影响。
|
||||
- 直伤量为加法核小整数(effect_value ∈ [1,9],行值 provisional 归难度曲线与Boss);每格携带单类型单 id。
|
||||
- 变异格未开时无预告呈现(遭遇式;视觉标识归表现层升级批)。
|
||||
|
||||
候选池门控(框架级现行机制):一种变异要进入本关的布置候选,须同时满足三个条件——它的解锁关号不大于当前关卡序号(直接整数比较)、它声明的地形(board_types)与本地形有交集(声明为空集等于通配)、且节点身份匹配(scope=global 行仅 Boss/精英节点入池,普通战斗节点静默跳过——2026-10-04 全局作用域变异批增第三维;elite 系前向词位,首发零表行)。候选池为空是合法状态:静默布置一张无变异的普通图,不报错、不警告。门控谓词与取值域登记于 [registry 的 variant_pool_gate 条目](../../../registry/entities.yaml)。
|
||||
候选池门控(框架级现行机制):一种变异要进入本关的布置候选,须同时满足三个条件——它的解锁关号不大于当前关卡序号(直接整数比较)、它声明的地形(board_types)与本地形有交集(声明为空集等于通配)、且节点身份匹配(scope=global 行仅 Boss/精英节点入池,普通战斗节点静默跳过——2026-10-04 全局作用域变异批增第三维;elite 系前向词位,首发零表行)。候选池为空是合法状态:静默布置一张无变异的普通图,不返回错误、不警告。门控谓词与取值域登记于 [registry 的 variant_pool_gate 条目](../../../registry/entities.yaml)。
|
||||
|
||||
### 全局作用域型(scope=global——Boss 图整图变异)
|
||||
|
||||
region 型变异是「格子级」的:布置段往候选格域写格子快照。global 型变异是「板级」的:整图一个类型生效,不落任何格子(棋盘持有板级 `board_variants` 字段,逐格 `variants` 恒空)。**每图一型的板级推广(2026-10-04 用户裁决)**:普通图带 region 片,Boss/精英图带 global 型——两类图各自至多一型。
|
||||
region 型变异是「格子级」的:布置段往候选格域写格子快照。global 型变异是「整图」的:整图一个类型生效,不落任何格子(棋盘持有整图 `board_variants` 字段,逐格 `variants` 恒空)。**每图一型的整图推广(2026-10-04 用户裁决)**:普通图带 region 片,Boss/精英图带 global 型——两类图各自至多一型。
|
||||
|
||||
**替换制**:Boss/精英图命中全局型时,布置段跳过 region 布置(该图既无 region 片、也无格子级变异标记)——L2 完美 Boss 承伤已越 ≤50% 带,region 叠全局的叠加制火上浇油,不采纳。**兜底回落**:Boss/精英图的全局候选池为空时(含第 1 关 Boss 解锁门控未达=免疫,第 1 关是过滤器不是墙的教学保护)回落 region 布置,即回批前行为(保守向后兼容,防配置缺行静默裸奔——provisional)。
|
||||
|
||||
**恒定制**:第 2/3 关 Boss 图 100% 带一型(非掷定结果——配置事实;全局取用确定性,不消费布置随机流=零取号合法态)。首发型=**贫矿脉(skewed_veins)**:资源面偏斜(resource_face)——整图修正资源摇号分布,不动任何格子数据、不动生成端:进攻族(增伤/爆裂/穿刺/奥术)权重等比上浮,生存族(回血/护甲)权重按 effect_value% 下调,白名单三行(削弱/GP/行动点)恒不动,下调量按进攻族原权重比例重分配、正向池合计恒 77。玩家体验=回复与护甲类资源出现频率下降、攻击类资源出现频率上升(生存资源变薄、进攻资源变肥),玩家转向用进攻续命的主动策略——不是纯挨打。第 2/3 关双关同型(关间台阶由第 3 关既有新内容满足)。清图槽(clear_default/clear_blast)是独立池,不受偏斜影响。资源投影的执行面(摇号前权重合成、合成序=图级先件级后)归[地图战斗资源](../战斗循环/地图战斗资源.md)。
|
||||
|
||||
**三层预告**(整图语义=规则级偏离,藏着等于暗改规则——区别于 region 遭遇式口径):①开战横幅一行(板级变异非空时显示)②HUD 常驻角标(战斗全程可见防中局遗忘,空态隐藏)③帮助手册一行(零交互教学)。呈现承载归 [HUD 框架](../表现与支撑/HUD框架.md)。
|
||||
**三层预告**(整图语义=规则级偏离,藏着等于暗改规则——区别于 region 遭遇式口径):①开战横幅一行(整图变异非空时显示)②HUD 常驻角标(战斗全程可见防中局遗忘,空态隐藏)③帮助手册一行(零交互教学)。呈现承载归 [HUD 框架](../表现与支撑/HUD框架.md)。
|
||||
|
||||
### 零特判原则(承重约束)
|
||||
|
||||
变异不得改写扫雷规则本体:挖格、插旗、连锁展开的判定与执行不增加任何变异分支,代码里不允许出现"这格带某变异所以就……"。这是框架的承重约束——它保证每加一类变异都不需要回头修改规则本体,玩家面对的也始终是同一套扫雷规则,而不是一套到处开洞的例外。
|
||||
变异禁止改写扫雷规则本体:挖格、插旗、连锁展开的判定与执行不增加任何变异分支,代码里不允许出现"这格带某变异所以就……"。这是框架的承重约束——它保证每加一类变异都不需要回头修改规则本体,玩家面对的也始终是同一套扫雷规则,而不是一套到处开洞的例外。
|
||||
|
||||
交互全部走数据侧:规则本体只读取格子数据并按数据行动,变异的全部影响经由数据与读取方之间的约定产生(伤害型由战斗结算兑付、信息型由呈现层遮蔽)。若未来某类变异的机制确实需要规则本体做出区分,那是一次同时修订排雷玩法与本文的正式变更,不是框架默认允许的能力。
|
||||
|
||||
@@ -94,14 +93,14 @@ region 型变异是「格子级」的:布置段往候选格域写格子快照
|
||||
|
||||
- 数量 = round(候选池格数 × percent_of_cells / 100) + (关卡序号 − 1) × per_level_bonus(当前 5% + 每关 +2——百分比的基数是候选池格数而非总格数:初始展开通常占全板过半,按总格数取数会使变异在剩余可挖格中的实际密度远超配置值(2026-09-21 用户拍板基数修正);percent 承载"占可挖格比例",关卡递增由 per_level_bonus 绝对格数承载"越深越险";provisional 归难度曲线与Boss)。
|
||||
- 形状 = 全连通生长(8 邻),单片 ≤ pack_max(当前 4:2×2 / 1×4 / 1×3+1 等形;2026-09-19 用户拍板)。
|
||||
- 候选格域 = 安全格 − 初始展开区,且排除雷格。
|
||||
- 候选格域 = 安全格 − 初始展开区,且排除危险格。
|
||||
- 布置取数走专用随机流(variant_place,一板恰一 scope),换图/轮内刷新图各取号一次,确定性可复放。
|
||||
- 生成器管线不布置变异(产物恒零变异格)——布置域的"未开"语义由设置顺序保障。
|
||||
- **全局作用域型决议(2026-10-04 首发批)**:Boss/精英图的全局型在装板序内前置于资源格设置之前决议(图级偏斜旋钮须在资源摇号前定型;全局门控与板无关,确定性取用不消费 variant_place 流)——命中即写板级字段并跳过本步的 region 布置(替换制);未命中则本步按上列规则原样执行(含兜底回落)。普通图路径零改动。
|
||||
- **全局作用域型决议(2026-10-04 首发批)**:Boss/精英图的全局型在装板序内前置于资源格设置之前决议(图级偏斜旋钮须在资源摇号前定型;全局门控与板无关,确定性取用不消费 variant_place 流)——命中即写整图字段并跳过本步的 region 布置(替换制);未命中则本步按上列规则原样执行(含兜底回落)。普通图路径零改动。
|
||||
|
||||
### 反制道具配套义务
|
||||
|
||||
**【已作废——2026-10-03 用户终裁】** 原义务:每定稿一类变异,必须随批配套至少一件反制道具(针对该变异、给玩家提供应对手段的道具),不让任何变异成为只亏不赚的纯税。义务归属方是本系统;"反制"作为道具的一个维度,由秘宝的五维度框架承接,效果、时效与定价归秘宝定稿。首批四类型的反制兑现改排 Alpha(2026-09-19 用户拍板),类型行 counter_items 字段位已预留。
|
||||
**【已作废——2026-10-03 用户终裁】** 原义务:每定稿一类变异,必须顺带配套至少一件反制道具(针对该变异、给玩家提供应对手段的道具),不让任何变异成为只亏不赚的纯税。义务归属方是本系统;"反制"作为道具的一个维度,由秘宝的五维度框架承接,效果、时效与定价归秘宝定稿。首批四类型的反制兑现改排 Alpha(2026-09-19 用户拍板),类型行 counter_items 字段位已预留。
|
||||
|
||||
**终裁理由(2026-10-03)**:原计划反制件入同调目录(局外装配、伴随整局、稀缺槽位)对抗按关绑定的局部威胁(unlock_level 关绑定),被定性为层级错配的失败设计——「拿冒险循环的东西对抗关卡循环」,等同做一个只对第三关生效的道具,其余关卡全部用不上;且关卡序列与变异分布固定,装配时信息完备,反制选牌退化为查表必带清单,坍缩随机构筑多样性。
|
||||
|
||||
@@ -116,7 +115,7 @@ region 型变异是「格子级」的:布置段往候选格域写格子快照
|
||||
| 上游 | [数据配置](../表现与支撑/数据配置.md) | 变异类型清单的表结构承载与统一读取;本系统是清单内容的回填责任方 |
|
||||
| 上游 | [战斗结算](../战斗循环/战斗结算.md) | 布置段的编排执行位(棋盘设置顺序第 4 步)+ 伤害型兑付面(轮末结算逐行兑现) |
|
||||
| 下游 | [排雷玩法](排雷玩法.md) | 零特判义务的承接方:执行逻辑不按变异分支,只按格子数据行动 |
|
||||
| 下游 | [秘宝](秘宝.md) | 五维度框架"反制"维度的承接方——配套义务已作废(2026-10-03 终裁),维度承载待迭代 12 双层 BD 调研重定 |
|
||||
| 下游 | [秘宝](../跨局循环/秘宝.md) | 五维度框架"反制"维度的承接方——配套义务已作废(2026-10-03 终裁),维度承载待迭代 12 双层 BD 调研重定 |
|
||||
| 相邻 | [行动经济](行动经济.md) | "地形成本修饰"价目钩子(不同格子不同价)暂缓启用,待变异类型扩展(见该文档 P1/P2 后置) |
|
||||
|
||||
## P0 最小闭环
|
||||
@@ -131,7 +130,7 @@ region 型变异是「格子级」的:布置段往候选格域写格子快照
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| 迭代 12(调研前置) | 反制路径重定(原:首批四类型的反制道具兑现,counter_items 回填——已作废) | 2026-10-03 用户终裁:同调位反制件=层级错配失败设计,义务作废;变异应对是否以局内形态补入,待双层 BD 调研仲裁后重新立项 |
|
||||
| ~~Alpha~~ **已落地** | 全局作用域变异(精英/Boss 图整图生效的变异形态) | **2026-10-04 全局作用域变异首发批落地**(迭代 14 ③号卡)——首批型=贫矿脉(案A 资源面·微贫向偏斜,替换制/恒定制/L1 Boss 免疫/三层预告);裁决全录见调研报告 §7(design/research/调研-全局作用域变异设计空间-2026-10-04.md;原任务书已退役,git b3bbea5/01bfc15);带 A 杠杆注册全局难度批(M-4)随批读数只测不判;精英图留词表前向位(首发零表行) |
|
||||
| ~~Alpha~~ **已落地** | 全局作用域变异(精英/Boss 图整图生效的变异形态) | **2026-10-04 全局作用域变异首发批落地**(迭代 14 ③号卡)——首批型=贫矿脉(案A 资源面·微贫向偏斜,替换制/恒定制/L1 Boss 免疫/三层预告);裁决全录见调研报告 §7(全局作用域设计空间调研(已退役,git 历史可查);原需求卡片已退役,git b3bbea5/01bfc15);带 A 杠杆注册全局难度批(Beta 阶段,未排期)顺带读数只测不判;精英图留词表前向位(首发零表行) |
|
||||
| P2 | "地形成本修饰"价目钩子启用 | 由行动经济持有;启用须随变异类型扩展,与行动经济重议按格定价的接口 |
|
||||
| P2 | 变异解锁节奏复核 | "每关至少引入一个新元素"的推进节奏,随[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)定稿复核 |
|
||||
| P2 | 变异格视觉标识与预告呈现 | 首批为遭遇式(未开无预告);标识位随表现层升级批 |
|
||||
@@ -153,9 +152,9 @@ region 型变异是「格子级」的:布置段往候选格域写格子快照
|
||||
- 候选池空合法:门控筛空(池空或候选域碎片化不足)时静默零布置,配置加载零错误、零警告。
|
||||
- 零特判(负验收):排雷玩法的挖格、插旗、连锁展开执行路径中不存在任何按变异类型分支的代码;读取方按 effect/trigger/placement 枚举路由。
|
||||
- 数据生命周期:格子携带的变异是只读数据——战斗初始化末段布置、随图消亡,布置后零运行时写入,无跨图存续;生成器产物恒零变异格。
|
||||
- 布置域:变异格全在初始展开区外(伤害型 closed_only 由设置顺序结构保障)且不吃雷格;每图至多一种类型;连通片 ≤ pack_max。
|
||||
- 布置域:变异格全在初始展开区外(伤害型 closed_only 由设置顺序结构保障)且不吃危险格;每图至多一种类型;连通片 ≤ pack_max。
|
||||
- 配套义务闭环(**已作废,2026-10-03 终裁**):原「定稿批须含反制兑现条目否则验收不通过」随反制道具配套义务一并作废;counter_items 恒空为合法态。
|
||||
- 全局作用域型(2026-10-04 首发批):替换制生效——Boss 图恰一行板级变异+零格子级变异标记;普通图 region 路径逐位不变(同种子布置/摇号快照对拍批前基线);off 态零扰动(effect_value=0 资源摇号与无偏斜逐位相同,白名单三行任何状态逐位不动);L1 Boss 零全局变异;Boss 图全局池空回落 region;全局取用零取号(确定性,不消费布置随机流);资源面偏斜正向池合计恒 77。
|
||||
- 全局作用域型(2026-10-04 首发批):替换制生效——Boss 图恰一行整图变异+零格子级变异标记;普通图 region 路径逐位不变(同种子布置/摇号快照与批前基线逐项比对);off 态零扰动(effect_value=0 资源摇号与无偏斜逐位相同,白名单三行任何状态逐位不动);L1 Boss 零全局变异;Boss 图全局池空回落 region;全局取用零取号(确定性,不消费布置随机流);资源面偏斜正向池合计恒 77。
|
||||
|
||||
## 版本历史
|
||||
|
||||
@@ -167,5 +166,7 @@ region 型变异是「格子级」的:布置段往候选格域写格子快照
|
||||
| v0.4 | 2026-09-20 | **第三关内容批(与切片代码 / registry / 03-内容规模 / 棋盘生成 / 难度曲线与Boss 同批)**:类型清单加第三关两行——落石(伤害型 flat_damage 3)+ 矿尘(信息型 hide_number 数字遮蔽),凑齐两轴 × 三关(unlock_level 3、地形 deep_underdark);布量走既有公式(第三关自动 9%,零新配置);反制道具兑现维持改排 Alpha(counter_items 字段位同批预留);调参表直伤量行随批补落石 3。行值全 provisional 归 难度曲线与Boss |
|
||||
| v0.5 | 2026-09-21 | **变异布置基数修正批(用户试玩反馈「小图变异格非常多」+基数假设实测证实后拍板)**:数量公式百分比基数由总格数改候选池格数(安全格 − 初始展开区,即实际可挖格)——实测初始展开均值占全板 56–67%,旧基数使有效密度膨胀 4–6 倍(L1 10×10 板配置 5% 实际 30.1%,极端板可挖格 100% 覆盖);percent 语义 = 占可挖格比例,关卡递增由 per_level_bonus 绝对格数承载;表值零变更(provisional 归 难度曲线与Boss 调参批重标,正式重基线同批) |
|
||||
| v0.6 | 2026-10-03 | **反制道具配套义务作废批(2026-10-03 用户终裁——层级错配失败设计)**:①负责表义务行+§反制道具配套义务节改作废注记并附终裁理由(同调位反制件=冒险周期常驻资源对抗关卡周期局部威胁;变异=受控纯税现状维持);②counter_items 字段保留恒空=合法态,承载形态待迭代 12 双层 BD 调研重定(变异应对若做只挂局内);③依赖表秘宝行/P1P2 后置表 Alpha 行/验收「配套义务闭环」条同步作废;④批位移迭代 12(调研前置后重新立项)。连带 秘宝.md v0.8 同批;范围裁定注记见 roadmap 迭代 11+ 行(原 06 条目已收口移除) |
|
||||
| v0.7 | 2026-10-04 | **全局作用域变异首发批(迭代 14 ③号卡——任务书裁决 P1-P8+Q1-Q4 全按推荐案)**:①类型清单加行贫矿脉(scope=global 首发型=案A 资源面·微贫向偏斜,effect_value=30 provisional);②新增 §全局作用域型 语义节(板级承载/替换制/兜底回落/恒定制/资源面偏斜口径/三层预告);③「每图一型」板级推广=普通图 region、Boss/精英图 global;④候选池门控扩第三维=节点身份(global 行仅 boss/elite 入池,普通节点静默跳过;elite 前向词位零表行);⑤布置段节补全局决议前置于资源格设置(数据依赖——偏斜旋钮先于摇号定型,零取号);⑥P1/P2 表 Alpha 行换代已落地(撤 2026-09-19「留 Alpha 再设计」挂起——P1 裁决);⑦调参表+验收标准+影响面随批;⑧呈现三层承载归 HUD框架.md 同批(横幅+常驻角标+手册行);⑨遗留知情代价:迭代 12 四件地形应对件在 Boss 图无的放矢(替换制无地形格——Q3 知情代价,registry/调参日志登记) |
|
||||
| v0.7 | 2026-10-04 | **全局作用域变异首发批(迭代 14 ③号卡——需求卡片裁决 P1-P8+Q1-Q4 全按推荐案)**:①类型清单加行贫矿脉(scope=global 首发型=案A 资源面·微贫向偏斜,effect_value=30 provisional);②新增 §全局作用域型 语义节(整图承载/替换制/兜底回落/恒定制/资源面偏斜口径/三层预告);③「每图一型」整图推广=普通图 region、Boss/精英图 global;④候选池门控扩第三维=节点身份(global 行仅 boss/elite 入池,普通节点静默跳过;elite 前向词位零表行);⑤布置段节补全局决议前置于资源格设置(数据依赖——偏斜旋钮先于摇号定型,零取号);⑥P1/P2 表 Alpha 行换代已落地(撤 2026-09-19「留 Alpha 再设计」挂起——P1 裁决);⑦调参表+验收标准+影响面随批;⑧呈现三层承载归 HUD框架.md 同批(横幅+常驻角标+手册行);⑨遗留知情代价:迭代 12 四件地形应对件在 Boss 图无的放矢(替换制无地形格——Q3 知情代价,registry/调参日志登记) |
|
||||
| v0.8 | 2026-10-04 | **文案常规化修订(用户人闸反馈)**:§全局作用域型 玩家体验句俚语表述(「这层奶薄、枪很肥」)改常规描述——玩家可见三层文案同步(横幅/角标/手册,代码同批);机制与数值零改动 |
|
||||
| v0.9 | 2026-10-09 | 文档正确性审查批(定点):P1/P2 表全局作用域行「(M-4)」裸标签按 2026-10-09 里程碑口径改「(Beta 阶段,未排期)」;行其余部分不动(批次登记事实保留) |
|
||||
| v1.0 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 3 处——候选池门控节「不报错、不警告」改「不返回错误、不警告」;零特判原则节「变异不得改写扫雷规则本体」改「变异禁止改写」;验收标准全局作用域型条「快照对拍批前基线」改「快照与批前基线逐项比对」。机制与数值零改动 |
|
||||
@@ -2,13 +2,12 @@
|
||||
|
||||
> 一句话:挖格、插旗、连锁展开等扫雷规则本体
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/a2-minesweeper-rules.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
排雷玩法是扫雷规则本体:玩家在地牢厅室里做的每个动作——挖格、插旗、移动——都由它裁决,并把发生的事实如实上报给全项目。它不决定每个动作花多少钱(账本归[行动经济](行动经济.md)),也不决定收益怎么兑现成战斗效果(归[战斗结算](../战斗循环/战斗结算.md))——它只保证棋盘上的事实真实、顺序确定:数字从不说谎,每个拒绝有据可查。没有它,[棋盘生成](棋盘生成.md)生成的板没有发生地,战斗结算也没有事实来源。
|
||||
|
||||
玩家看到的说法略有不同:雷格叫**惩罚格**(首发类型是怪物巢穴——惊动则怪物倾巢而出占得先机)、插旗叫**控制**(标中则巢穴废置、化险为利)、连锁展开叫**坍塌显形**(挖穿薄壳,整片塌陷露出)、标错叫**控制失败**。本文对内沿用机制名"挖、旗、雷格"。
|
||||
格子的正式名称全库统一(2026-10-11 用户裁):有惩罚的格子一律称**危险格**(原内部名「雷格」与界面名「惩罚格」统一并退役,见[术语表](../../术语表.md);同日补裁=无具体类型划分,怪物巢穴类型概念退役)——惊动危险格则怪物倾巢而出、敌方占得先机;插旗叫**控制**(标中则化险为利)、连锁展开叫**坍塌显形**(挖穿薄壳,整片塌陷露出)、标错叫**控制失败**。本文一律使用「危险格」。
|
||||
|
||||
## 系统范围
|
||||
|
||||
@@ -48,7 +47,7 @@
|
||||
|
||||
玩家对棋盘只做三件事:挖未开格、插旗,以及移动小人(玩家摆在棋盘上的探险者棋子)。前两个是付费动作,按标准动作价计费(价目见 `game/data/tables/action_economy.tres`;每轮的决策预算,账本归[行动经济](行动经济.md));本文只管棋盘面这一半,总纲只有一条:付费动作只能作用于小人周围一圈 8 格(8 向相邻)之内。
|
||||
|
||||
移动不花行动点:点任何已开格,小人沿已探明区一次走到位,"已探明区"包括踩过的雷格残址。点击已开格的唯一含义就是移动——本作没有经典扫雷里"双击数字格一键翻开周围"的 chord(双击快开),每一格的兑现都必须花行动点。
|
||||
移动不花行动点:点任何已开格,小人沿已探明区一次走到位,"已探明区"包括踩过的危险格残址。点击已开格的唯一含义就是移动——本作没有经典扫雷里"双击数字格一键翻开周围"的 chord(双击快开),每一格的兑现都必须花行动点。
|
||||
|
||||
挖已插旗的格是合法动作(2026-09-19 插旗不可逆批用户拍板):旗是一次性承诺、没有撤旗动作,直接挖开就是对承诺的兑现——旗随挖掘消失、该旗轮末不再判定;挖开旗格的兑付改判(标中不发 / 安全格零奖励等四情况)归[战斗结算](../战斗循环/战斗结算.md)。
|
||||
|
||||
@@ -105,7 +104,7 @@
|
||||
|---|---|
|
||||
| 免费 | 不扣行动点,账本零写入 |
|
||||
| 计入清图进度 | 剩余安全格从这片开完后起算——呈现上即"剩余未探索安全区域"计数 |
|
||||
| 无格面资源(封锁格) | 这些格恒无资源、不再有任何加成,下游不得对它们做任何兑付 |
|
||||
| 无格面资源(封锁格) | 这些格恒无资源、不再有任何加成,禁止下游对它们做任何兑付 |
|
||||
| 只在装板时发生一次 | 跨轮不重放,防止"每轮白送一遍" |
|
||||
|
||||
装板时本系统还当场校验生成产物的结构前提:出生区内无雷、数字恒真、初始展开没有大到直接吞掉全图。任一不过就拒绝装板并报出诊断,绝不停带病运行;这些前提的正常保证由[棋盘生成](棋盘生成.md)负责,本校验只是消费侧的最后一道闸。
|
||||
@@ -118,13 +117,13 @@
|
||||
|
||||
举证:本节为装板流程与静态校验,无计算。
|
||||
|
||||
### 踩过的雷能走:已引爆雷格的通行规则
|
||||
### 踩过的雷能走:已引爆危险格的通行规则
|
||||
|
||||
挖开雷格不是死亡,是事实上报:轮次不结束,雷格从此算已开——小人能站上去,也能穿过它继续挖。挖开后的雷格不计清图进度(图不是靠踩雷清的)、不能再挖、不能再插旗;同一轮连挖多颗雷,每颗都是独立的事实,逐颗上报。
|
||||
挖开危险格不是死亡,是事实上报:轮次不结束,危险格从此算已开——小人能站上去,也能穿过它继续挖。挖开后的危险格不计清图进度(图不是靠踩雷清的)、不能再挖、不能再插旗;同一轮连挖多颗雷,每颗都是独立的事实,逐颗上报。
|
||||
|
||||
因此挖已知雷成了一条"有价捷径":按价计费、给敌方送去优势,换来一条穿行的近路。它既是玩家主动抄近路的权衡,也是棋盘被挖残时的兜底通路。惊动巢穴的代价在轮末结算兑现,归[战斗结算](../战斗循环/战斗结算.md)。
|
||||
因此挖已知雷成了一条"有价捷径":按价计费、给敌方送去优势,换来一条穿行的近路。它既是玩家主动抄近路的权衡,也是棋盘被挖残时的兜底通路。惊动危险格的代价在轮末结算兑现,归[战斗结算](../战斗循环/战斗结算.md)。
|
||||
|
||||
| 已引爆雷格的格态 | 行为 |
|
||||
| 已引爆危险格的格态 | 行为 |
|
||||
|---|---|
|
||||
| 可通行 | 移动可以经过、可以站立;穿越仍按移动规则找已开区路径 |
|
||||
| 不计清图 | 不算安全格,"全部安全格开完"的判定不认它 |
|
||||
@@ -135,7 +134,7 @@
|
||||
|
||||
### 旗立得住、也带不走:旗的生命周期与换图重置
|
||||
|
||||
旗是棋盘状态的一部分,不是背包里的实物:插上的旗跨轮保留、随图存续,没有数量上限,也没有任何移除手段(拔旗已退役——旗只能被挖开,不能被撤下)。每次轮次结束(行动点耗尽、玩家停手或清图时),本系统对当时在场的每一面旗如实上报一条判定——旗下是雷记标中(玩家看到巢穴被控制、化险为利),不是雷记标空;旗一直插在雷上,就每轮如实重复上报标中,去重是[战斗结算](../战斗循环/战斗结算.md)的事,本系统只报事实。被直接挖开的旗随挖掘消失、不在轮末在场基线里,自然不报判定;插旗本身不发事件,界面反馈走调用返回值。
|
||||
旗是棋盘状态的一部分,不是背包里的实物:插上的旗跨轮保留、随图存续,没有数量上限,也没有任何移除手段(拔旗已退役——旗只能被挖开,不能被撤下)。每次轮次结束(行动点耗尽、玩家停手或清图时),本系统对当时在场的每一面旗如实上报一条判定——旗下是雷记标中(玩家看到危险格被控制、化险为利),不是雷记标空;旗一直插在雷上,就每轮如实重复上报标中,去重是[战斗结算](../战斗循环/战斗结算.md)的事,本系统只报事实。被直接挖开的旗随挖掘消失、不在轮末在场基线里,自然不报判定;插旗本身不发事件,界面反馈走调用返回值。
|
||||
|
||||
插错旗的纠错路径只有一条:把它挖开(兑付改判四情况见[战斗结算](../战斗循环/战斗结算.md));不挖也可以留着它当链阻断器、当"别走这边"的地图注记。旗不参与清图判定,但带旗的格没挖开就照常挡着——全图标旗一格不挖,永远清不了图。
|
||||
|
||||
@@ -172,7 +171,7 @@
|
||||
|
||||
| 事件 | 何时发 | 内容 |
|
||||
|---|---|---|
|
||||
| 挖开格 | 每开一格(初始展开、连锁、单挖各算) | 哪格、安全还是雷、数字、经哪条路开的、有无格面资源资格(封锁格恒无;安全格与雷格恒有——资源本体与极性兑付归[地图战斗资源](../战斗循环/地图战斗资源.md),本系统不区分) |
|
||||
| 挖开格 | 每开一格(初始展开、连锁、单挖各算) | 哪格、安全还是雷、数字、经哪条路开的、有无格面资源资格(封锁格恒无;安全格与危险格恒有——资源本体与极性兑付归[地图战斗资源](../战斗循环/地图战斗资源.md),本系统不区分) |
|
||||
| 旗判定 | 每次轮次结束时逐旗一条 | 哪面旗、标中还是标空 |
|
||||
| 轮次结束 | 每轮恰一条 | 这轮怎么结束的(清图 / 耗尽)、下一轮换不换图的建议 |
|
||||
|
||||
@@ -230,7 +229,7 @@
|
||||
- 初始展开恰等:装板后翻开的格集合恰为"出生 3×3 加连通开阔地"——不止 3×3,也不外扩一圈;全程免费、恒无格面资源(封锁格)、计入清图进度;跨轮不重放。
|
||||
- 连锁免费且遇旗即止:一次触发连锁翻开任意多格,扣费恒为首格按价计的一笔;旗格不被链开、不作传播跳板;连锁格计入清图进度、资源资格照常。
|
||||
- 挖旗格放行(插旗不可逆批 2026-09-19):有旗格直接挖开被受理——旗随挖掘消失、该旗轮末不判;重复插旗仍被"已有旗"拒绝;兑付改判四情况(标中不发 / 安全格零奖励)归战斗结算。
|
||||
- 已引爆雷格可通行:挖雷后轮次不结束,小人可站、可经已开区穿行续挖;雷格不计清图、不可再挖再插旗。
|
||||
- 已引爆危险格可通行:挖雷后轮次不结束,小人可站、可经已开区穿行续挖;危险格不计清图、不可再挖再插旗。
|
||||
- 移动合法且预览同源:目标未开或无已开区连通路径时拒绝;路径预览与实际执行逐格相同;移动免费、零事件。
|
||||
- 批次仲裁与到达序无关:同一批意图按任意顺序提交,结束路径与结算结果一致;赢家定出后其余意图丢弃——零棋盘效果、零扣费、零事件,且丢弃区别于拒绝。
|
||||
- 收轮事件序:先报完全部旗判定,再报轮次结束;轮次结束每轮恰一条,停手路径由行动经济直发、本系统不双发。
|
||||
@@ -248,6 +247,8 @@
|
||||
|---|---|---|
|
||||
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
||||
| v0.2 | 2026-09-15 | 雾格残留清理:关闭「待拍板」三条雾失义登记(连锁开雾格与雾内旗恒不中、开格事件的变异标记透传、四格态中的两个雾态)——现行连锁与旗判定口径已按"全部安全格"写在正文,开格事件仍携带随格只读的变异标记(通用变异框架保留),格态呈现收窄为已开 / 未开两态。规则本体不变 |
|
||||
| v0.3 | 2026-09-15 | **格面资源批(用户拍板四点)**:① 初始展开格定名**封锁格**(已开、计入清图进度、恒无格面资源、不再有任何加成),铁律表"无奖励"改"无格面资源";② 挖开格事件"奖励资格"字段改"格面资源资格"——安全格与雷格恒有(雷格不再恒无),封锁格恒无;③ 旗生命周期补结算队列口径:标旗 / 撤旗都是动作,轮末经战斗结算抵消过滤(标旗后被撤旗不兑付、行动点不返;开格不可撤);④ 标错惩罚条目与 P1 后置删除——惩罚已定为该安全格格面资源的负向兑付(极性矩阵,归奖励道具经济 / 战斗结算),本系统只报"标空"事实;⑤ 清图呈现口径注记:剩余安全格计数即"剩余未探索安全区域"。玩家说法"失控反噬"随三选一反噬下线改"控制失败" |
|
||||
| v0.3 | 2026-09-15 | **格面资源批(用户拍板四点)**:① 初始展开格定名**封锁格**(已开、计入清图进度、恒无格面资源、不再有任何加成),铁律表"无奖励"改"无格面资源";② 挖开格事件"奖励资格"字段改"格面资源资格"——安全格与危险格恒有(危险格不再恒无),封锁格恒无;③ 旗生命周期补结算队列口径:标旗 / 撤旗都是动作,轮末经战斗结算抵消过滤(标旗后被撤旗不兑付、行动点不返;开格不可撤);④ 标错惩罚条目与 P1 后置删除——惩罚已定为该安全格格面资源的负向兑付(极性矩阵,归奖励道具经济 / 战斗结算),本系统只报"标空"事实;⑤ 清图呈现口径注记:剩余安全格计数即"剩余未探索安全区域"。玩家说法"失控反噬"随三选一反噬下线改"控制失败" |
|
||||
| v0.4 | 2026-09-17 | 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),0 处失同步修正——动作价面值改「按标准动作价计费(价目见 action_economy.tres)」口径,连锁免费、移动免费等结构语义保留 |
|
||||
| v0.5 | 2026-09-19 | **插旗不可逆批(用户拍板全套落地,2026-09-18 提案转正)**:① 挖旗格放行——挖的合法对象去掉"无旗"前提,旗格直挖被受理、旗随挖掘消失、该旗轮末不再上报判定;② 拔旗动作退役——意图目录删 flag_pull,动作表与拒绝原因清单删对应项(flag_absent);③ 旗生命周期改写:旗无任何移除手段、纠错路径 = 挖开(兑付改判四情况归战斗结算 v0.18);④ 验收标准"挖有旗格被拒"改"挖旗格放行"。冒烟 327 项 0 失败(四情况探针 `_smoke_flag_irreversible_quadrants` 在案) |
|
||||
| v0.0 | 2026-10-11 | **术语统一批(全库危险格/整图/专长凭证更名,2026-10-11 用户裁)**:首节定义句换代——对内名「雷格」与界面名「惩罚格」统一为「危险格」(怪物巢穴保留为危险格类型名、简称巢穴);机制零改动 |
|
||||
| v0.6 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 1 处——初始展开铁律表「无格面资源」行「下游不得对它们做任何兑付」改「禁止下游对它们做任何兑付」。机制与数值零改动 |
|
||||
@@ -2,11 +2,10 @@
|
||||
|
||||
> 一句话:棋盘怎么生成、怎么保证可推理可通关
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/a1-board-generation.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
棋盘生成是全项目扫雷图的唯一生产者:战斗结算每要一张新图,它就按关卡序号与节点深度对应的参数行,确定性造出一张可推理、可通关的雷图。它在生成时刻就作出质量承诺——玩家只会输给自己选的赌(比如终局不得不猜的一格),不会拿到大面积无解的局;这是核心循环里"推理的确定性"卖点的生成端保障。同种子同参数必产同图,回放、测试、复盘都能精确复现——确定性既是卖点,也是调试工具。
|
||||
棋盘生成是全项目扫雷图的唯一生产者:战斗结算每要一张新图,它就按关卡序号与节点深度对应的参数行,确定性造出一张可推理、可通关的雷图。它在生成时刻就作出质量承诺——玩家只会输给自己选的赌(比如终局只能猜的一格),不会拿到大面积无解的局;这是核心循环里"推理的确定性"卖点的生成端保障。同种子同参数必产同图,回放、测试、复盘都能精确复现——确定性既是卖点,也是调试工具。
|
||||
|
||||
## 系统范围
|
||||
|
||||
@@ -97,11 +96,11 @@
|
||||
|---|---|
|
||||
| 先布后删 | 先把 N 颗雷在"全格 − 出生 3×3"上布完,再把剃雷域内的雷移除——只减不增、不重投、无迭代,必然终止且可复现;实际雷数与 N 的差额随指标观测。**剃雷域已收窄(2026-10-05 初始展开收窄批)**:从「开局免费展开(flood)域∪外扩一圈」缩到「出生 3×3 ∪ 外扩 r 环」(切比雪夫距离 ≤1+r,r=shave_ring_radius 现行 1 → 5×5=25 格)——全域剃雷=开局免费展开巨大(10×10 板 R₀ 均值 68.6=板面 68.6%)的根因;收窄后开局免费展开=出生邻域剃雷诱发的自然连锁,均值降至板面约四成(10×10 实测 39.7) |
|
||||
| 出生区安全 | 出生 3×3 与开局免费展开域内恒无雷;变异不落两域由布置段顺序保障(非本管线义务) |
|
||||
| 开局白给板拒绝 | 开局免费展开域不得覆盖全部安全格——等于即退化板,尝试弃用重试;运行期另有同义兜底不变式,归[排雷玩法](排雷玩法.md) |
|
||||
| 开局白给板拒绝 | 开局免费展开域禁止覆盖全部安全格——等于即退化板,尝试弃用重试;运行期另有同义兜底不变式,归[排雷玩法](排雷玩法.md) |
|
||||
| 清图可达性 | 每个安全格都必须能从出生区沿安全格八向连通走到;带孤岛安全格的板判非法,不进降级候选 |
|
||||
| R₀≤cap 重掷闸(2026-10-05 初始展开收窄批) | 每次尝试出板后实测自然 R₀(开局免费展开格数),超过该行 r0_max_cap 即整板作废同流重试——合法性先于质量评分(同白给板先例);全部尝试超阈 → 既有三分出口接受最不坏+非法产物标记诚实降级,玩家永不卡死;闸触发次数随指标集 r0_cap_rejected 观测(占比过高=剃雷半径与闸配比失衡信号) |
|
||||
|
||||
清图可达性与可推理率是两道独立的闸:合法性先查、质量分后算——一张"分高但通不了"的图没有意义。另一条推理前提也由本系统保证:数字恒真,每个非雷格的数字恒等于它的八邻雷数,整局推理都建立在这句话上。
|
||||
清图可达性与可推理率是两道独立的闸:合法性先查、质量分后算——一张"分高但通不了"的图没有意义。另一条推理前提也由本系统保证:数字恒真,每个非危险格的数字恒等于它的八邻雷数,整局推理都建立在这句话上。
|
||||
|
||||
### 可推理率承诺:生成时就担保玩家算得对
|
||||
|
||||
@@ -118,7 +117,7 @@
|
||||
|
||||
| 口径 | 内容 |
|
||||
|---|---|
|
||||
| 与玩家信息同步 | 评分模拟只看玩家能看见的盘面:没开的格看不见,雷位不许偷看 |
|
||||
| 与玩家信息同步 | 评分模拟只看玩家能看见的盘面:没开的格看不见,危险格位置不许偷看 |
|
||||
| 三通道计入 | 免费展开、连锁、推导挖开的格都算"不靠赌";免费展开格同时计入分子与分母 |
|
||||
| 次序无关 | 先连锁还是先推导,闭包结果相同——分数与玩家的操作顺序无关 |
|
||||
| 版本防漂移 | 指标输出带定义版本号(当前 1);改推理定义 = 文档修订 + 黄金图向量重制,版本号随之跳变 |
|
||||
@@ -143,7 +142,7 @@
|
||||
|
||||
最后一条出口是诚实降级:玩家永不卡死——哪怕找不到合法板也照常出图;但绝不静默——非法产物标记随指标集上抛,由[战斗结算](../战斗循环/战斗结算.md)编排、经 [HUD 框架](../表现与支撑/HUD框架.md)诚实告知玩家(提示、补偿还是回退,呈现细节归下游)。运行期安全网兜住体验,质量红线靠调参期批量断言守住:非法产物严格零容忍、低于及格线的板数严格为零——两层不许互相折算。
|
||||
|
||||
每次尝试先过合法性关——清图可达、安全格数达标、结构不变式全过——再谈质量分;非法尝试弃用重试。合法性闸在质量评分之前,质量分不得掩盖功能残废。
|
||||
每次尝试先过合法性关——清图可达、安全格数达标、结构不变式全过——再谈质量分;非法尝试弃用重试。合法性闸在质量评分之前,质量分禁止掩盖功能残废。
|
||||
|
||||
### 图类型标签与第三轴预留:主题恒定、Boss 板有座位
|
||||
|
||||
@@ -196,7 +195,7 @@
|
||||
| P1 | 与排雷玩法的展开域回验集成 | 回验两臂登记在对方文档,集成随对方排期 |
|
||||
| P2 | 推理域扩展(solver_rules 启用其他规则集或新增信息源) | 改可推理率定义 = 文档修订,MVP 冻结 |
|
||||
| P2 | 生成异步化与成本闸正式值定稿 | 实现期决策,随性能预算批 |
|
||||
| P2 | ~~变异布置内容接入~~(已收口——2026-09-20 首批类型定稿批:布置执行位改排战斗初始化第 4 步,管线零布置义务化) | — |
|
||||
| P2 | ~~变异布置内容接入~~(已完成——2026-09-20 首批类型定稿批:布置执行位改排战斗初始化第 4 步,管线零布置义务化) | — |
|
||||
|
||||
## 调参表
|
||||
|
||||
@@ -220,7 +219,7 @@
|
||||
|
||||
- 确定性复现:同参数行同种子生成两遍,格状态与指标集逐位相同;换种子产物不全同。
|
||||
- 出生区安全:出生 3×3 与开局免费展开域内零雷(零变异由布置段顺序保障——生成器产物恒零变异格)。
|
||||
- 数字恒真:每个非雷格的数字恒等于其八邻雷数。
|
||||
- 数字恒真:每个非危险格的数字恒等于其八邻雷数。
|
||||
- 布雷纪律:N ≥ 1、实际雷数 ≤ N、实际安全格数 ≥ min_safe_count。
|
||||
- 无开局白给板:开局免费展开域 ≠ 全部安全格,违例尝试弃用重试。
|
||||
- 可通关:每个安全格都能从出生区沿安全格八向连通到达;合法性闸先于质量评分。
|
||||
@@ -231,7 +230,7 @@
|
||||
- 加载期校验:布雷数下限、计数可行性、标签非空等违例组合加载期致命。
|
||||
- 黄金图回归:手工核验小板集的可推理率输出与登记整数对逐位相等(整数对比对,禁浮点容差);换生成参数(推理定义、信息源、定义版本号)必须重制向量并入版本库。
|
||||
- R₀≤cap 闸(2026-10-05 初始展开收窄批):每张出图自然 R₀ ≤ 该行 r0_max_cap(合法板),或带非法产物标记(accept_worst 诚实降级);闸触发次数入指标集 r0_cap_rejected。
|
||||
- 剃雷域参数化(同批):剃雷域=出生中心切比雪夫 ≤1+shave_ring_radius 的方域,出图 ring_removed ≤ 域内候选雷格数 (3+2r)²−9;同种子布雷序列与收窄前逐位一致(零 RNG 消费变化)。
|
||||
- 剃雷域参数化(同批):剃雷域=出生中心切比雪夫 ≤1+shave_ring_radius 的方域,出图 ring_removed ≤ 域内候选危险格数 (3+2r)²−9;同种子布雷序列与收窄前逐位一致(零 RNG 消费变化)。
|
||||
- 表实一致:配置表字段定义与 registry `board_gen_table` 条目一致。
|
||||
|
||||
## 版本历史
|
||||
@@ -243,3 +242,4 @@
|
||||
| v0.3 | 2026-09-17 | 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),3 处失同步修正(雷密度、可推理率及格线、生成尝试上限——文档面旧 provisional 值与 board_gen.tres 现值不一致,改指路);成本闸 16384 改标注「结构护栏常数,登记于 registry board_gen_table 条目」,其余引用处指路;调参表「现行值」列整列指路化 |
|
||||
| v0.4 | 2026-09-20 | **第三关内容批(与切片代码 / registry / 03-内容规模 / 难度曲线与Boss / 地形变异 同批,参数行值零改动)**:图类型词表 v1.0 → v1.1,增补第三值 deep_underdark(灰矮人矿道方向);正文词表句与调参表 board_type 行随批同步(L3 = deep_underdark)。[地图战斗资源](../战斗循环/地图战斗资源.md)的图类型差异化插槽句不随批动——clear_deep_underdark 启用仍为预留 |
|
||||
| v0.5 | 2026-10-05 | **初始展开收窄批(迭代14①号卡 T7——甲乙混合,用户裁 D1-D5+S1 方案A)**:①反退化规则表「先布后删」行换代(剃雷域=出生 3×3∪外扩 r 环参数化,全域 flood 剃雷退役)+新增「R₀≤cap 重掷闸」行;②调参表 +2 行(shave_ring_radius [0,2] 现行 1 / r0_max_cap 护栏 [9,半板] 现行 45/43/51/59——10×10 经 S1 停机呈报用户裁上调 30→45);③验收标准 +2 条(R₀≤cap 闸 / 剃雷域参数化+ring_removed 量级);④改后结构读数入 registry initial_expansion_narrowing 条(R₀ 均值 39.7/37.9/42.8/46.6,收窄自 68.6/83.2;雷密度 19.2-21.6% <25% 相变线;inf 全行达标);玩法侧零改动(排雷玩法「初始展开恰等」验收原样为真);裸数字截断路否决退役(D3)不立文 |
|
||||
| v0.6 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 4 处——设计目的「终局不得不猜的一格」改「终局只能猜的一格」(清「不得」词面误中,语义不变);反退化规则表「开局白给板拒绝」行「不得覆盖」改「禁止覆盖」;生成重试节「质量分不得掩盖功能残废」改「质量分禁止掩盖」;P1/P2 表划线条目「已收口」改「已完成」。机制与数值零改动 |
|
||||
@@ -1,220 +0,0 @@
|
||||
# 秘宝
|
||||
|
||||
> 一句话:扫雷侧秘宝(同调机制件——营地装配、机制轴唯一来源)
|
||||
> 状态:已定稿(2026-10-03 迭代 11 第①批同调实施批——终局形态落籍,过渡形态退役)
|
||||
> 形态沿革:~~过渡形态~~已退役(2026-10-03);现行=局外同调件——见下节「定位与形态沿革」
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/a5-minesweeper-aux-items.md
|
||||
|
||||
## 定位与形态沿革(2026-09-30 用户裁决甲;2026-10-03 同调实施批落籍终局形态)
|
||||
|
||||
秘宝存在**两态**,关系=形态替换而非机制积累。**替换已于 2026-10-03 完成**(M-4 迭代 11 第①批,worktree m4-iter11a-attune-20261003):
|
||||
|
||||
- ~~**过渡形态**(2026-09-29 迭代 7 落籍)~~ **已退役**:掉落投放(2026-10-01 已随「挖格不掉道具」退役)/奖励节点三选一道具卡(2026-10-03 T7 出池)/关卡域库存/挖掘期两步使用——本文以下正文章节「掉落池获取」「关卡域库存」「什么时候怎么用」诸节随之整体退役,保留为历史口径(本节横幅为准)。
|
||||
- **终局形态(现行)= 局外同调件**:开局前在营地装配(营地·道具工坊柜台「同调装配」段)、占同调位(0 起步、硬上限 3,slot_cost 恒 1)、被动件整局生效/主动件每冒险充能(冒险开始重置)。设计权威底稿 = 原提案(git 57da58c 已退役——2026-09-22 用户八条拍板)+ 任务书 v1.1(P1-P8 全裁,已退役)。
|
||||
|
||||
**现行形态速览**(实现面 = `game/data/tables/attunement_growth.tres` + `aux_items.tres` + `game/core/attunement.gd`):
|
||||
|
||||
- **同调位增长**:通关次数 + Boss 击杀数(含重复,收束入账 save v4)经 `attunement_growth.tres` 里程碑谓词表实时求值(Σ达成 grant clamp slot_cap)——试玩调平衡=改表不动码(迭代 10 欠账③已清偿:过渡键 transitional_sync_slots 退役)。
|
||||
- **目录九件**(值全 provisional 归难度曲线与Boss):被动六件=淬毒刃纹(克制面穿刺/魔法直伤 +N)/标中殉爆(每标中一旗全体存活敌吃 N 群伤)/惊巢反制(挖雷惩罚减半+反弹 N)/工兵晨令(前 effective_rounds 轮每轮 +1 AP,P4 甲表值化)/偏运硬币(装板摇号稀有正向 kinds 权重 +N,池结构零触碰)/三选一刷新件(X 次/每碰三选一);主动三件=掘进蓄能(每开够 N 安全格积 1 点发起临时 AP,charges 2/冒险)/探巢摆钟(3×3 真视窄域,charges 2/冒险)/爆破工兵包(3×3 真视 + 4 AP + **中立移除雷格**,active_charged 装配件 charges 2/冒险——迭代 13 实装,见下「中立移除」注)。
|
||||
|
||||
> **中立移除(迭代 13 T7/T8 实装口径;裁决事实源=任务书-工程债与测试基建批-2026-10-04.md P1/P2 甲,随批吸收本节为正主)**:使用时对 3×3 区域做**中立移除**——只移除「未揭示、无旗、是雷」的格:不引爆、不揭示、不进连锁;被移除格退色降档呈现(暗淡记忆态同族)、不可挖掘不可插旗(拒绝零消耗);**周边邻接数字=原始雷数冻结不重算(P1 甲)**,移除格自身无数字可保留(未揭示雷格本无数字,P2 甲空集真)。清图判定零涉(分母只数安全格,雷格不入);旗判定基线零回溯(有旗格跳过移除)。获得渠道=营地同调位装配(不入掉落投放池——form 非空行永不入过渡渠道,模拟/自动档零涉,MC 读数零扰动)。
|
||||
- **三选一刷新双源**(P1 甲):X=刷新件每碰三选一重给(优先消耗、不结转)+ Y=营地刷新升级行(每冒险开局注入冒险周期池、用完即无;meta.tres attune_refresh_upgrade 行族);重抽消费 reward_pick 既有洗牌流,池规则全保留;autoplay 默认不刷(钓鱼归玩家)。**GP 付费档(2026-10-06 用户令——三选一刷新对齐商店独立刷新)**:免费双源用尽后可 GP 付费刷新,价=ceil(20×1.8^本次停点已付费刷) provisional(与商店货架刷新读同两个调参旋钮 shop_refresh_*,单点调参);付费刷计数每停点清零(与商店进店清零同构);钱包=冒险 GP 同一账本(LevelRunner.spend_gp 单口);余额不足=钮禁用(不隐藏,对齐商店)。店内门票专长三选一暂不挂刷新面(维持现状,扩面须先裁门票保底计数交互)。
|
||||
- **🔴 承重契约**(schema 加载期强制):机制轴禁裸 flat 数值(行键白名单封闭);真视窄域 ≤3×3;核心层零 await;零随机;排雷玩法零特判;雷安同池冻结(硬币只动权重投影)。
|
||||
- **验收分层**:attune=off 续用现行带;attune=on 带平移归难度曲线与Boss 投值(商店 shop=off/on 分层先例同法)。
|
||||
|
||||
**衔接纪律**(历史):过渡形态各项拍板在实施批替换前有效——替换已完成,本节留作事故留痕与口径溯源。实施批执行记录见 06「秘宝同调实施批」条(已收口)。
|
||||
|
||||
> ⚠ 事故留痕(防复发):同调提案 2026-09-22 落档后未登记正主、未立项、未进待办,后续规划会话与 2026-09-29 迭代 7 裁决时点均不可见,致两套均有用户拍板记录的形态无文档声明关系并存七日(2026-09-30 审计发现、用户裁决甲收口,全录见审计报告 git 提交 c095916 C29,报告已退役)。
|
||||
|
||||
## 设计目的
|
||||
|
||||
挖掘期玩家偶尔会撞上"推理断头"的时刻:数字读不出下一格的把握,或者面前一片格子不知道哪格有货。秘宝就是挖掘期的信息与行动力市场——它们是地牢里前人探险者留下的遗落物,从战斗奖励里捡来,在挖掘的关键时刻主动花掉:买回一点推理原料、提前看见惩罚格或奖励的身份,或者干脆给当轮加行动点。买情报的代价是真实的:产出道具的那个格子就出不了战斗奖励,花在一张图上的情报在弃图时一并沉没。道具零随机——它不掷骰子,只把棋盘上已经存在的事实交给玩家。
|
||||
|
||||
## 系统范围
|
||||
|
||||
边界这样划:秘宝管四件事——道具本体怎么定义、从哪获取、怎么使用、信息存在哪。它不管道具掉不掉、掉多少(归掉落池的归口),不管行动点怎么扣(归账本),也不自己画界面。本系统的边界锚是[不做清单](../../05-不做清单.md)的一条裁定:允许"恢复推理原料"类道具(显影、预读),不允许道具替代推理。
|
||||
|
||||
负责:
|
||||
|
||||
| 负责 | 说明 |
|
||||
|---|---|
|
||||
| 道具定义表 | 六件道具的字段定义:名称、维度、效果组合、目标形态、数值;承重护栏在加载期校验中强制 |
|
||||
| 五维度框架与覆盖检查 | 每件道具至少归入一个维度;加载后自动检查每个维度至少有一件可用道具 |
|
||||
| 关卡域库存 | 秘宝的关卡背包:跨轮、跨图、跨战斗延续,关卡结束清空;与战斗道具背包是两个独立容器 |
|
||||
| 使用规则与目标校验 | 什么时候能用、目标合不合法、失败分几级、哪一级不消耗 |
|
||||
| 板级叠加层 | 道具信息的自持容器:按效果分类的格集,随图消亡、不回写棋盘 |
|
||||
|
||||
不负责:
|
||||
|
||||
| 不负责 | 归谁 |
|
||||
|---|---|
|
||||
| 掉落池权重与档位、掉多少 | [地图战斗资源](../战斗循环/地图战斗资源.md)(数值 provisional 归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)) |
|
||||
| 授予路由与使用编排的调用权 | [战斗结算](../战斗循环/战斗结算.md) |
|
||||
| 行动点账本与加量过账 | [行动经济](行动经济.md) |
|
||||
| 棋盘规则本体与动作执行 | [排雷玩法](排雷玩法.md) |
|
||||
| 定义表承载与加载机制 | [数据配置](../表现与支撑/数据配置.md)(本系统是该表的回填责任方) |
|
||||
| 界面呈现与使用交互 | [HUD 框架](../表现与支撑/HUD框架.md) |
|
||||
|
||||
## 在核心循环中的位置
|
||||
|
||||
```
|
||||
战斗奖励(掉落池)──开格授予──▶ 关卡域库存 ──挖掘期使用──▶ 叠加层信息 / 行动点加量 ──▶ 继续挖格决策
|
||||
```
|
||||
|
||||
本系统站在排雷循环"挖掘期"的内侧:道具从战斗奖励里来,被玩家在挖掘途中花掉,产出的信息与行动点立刻回到"下一格挖哪"的决策里。它全程不碰轮末结算——效果即时可见,结算明细里没有道具行。
|
||||
|
||||
## 核心规则
|
||||
|
||||
### 道具帮什么忙:五维度归类与覆盖检查
|
||||
|
||||
每件道具必须标出它帮玩家哪类忙,归入五个维度之一或多个。维度是内容自查清单,不是运行时逻辑:道具定义表非空时,游戏加载数据后自动检查**投放维度覆盖**——每个进入投放池的维度至少有一件可用道具(掉落权重为正),保证玩家不管陷入什么困境都有得选;运行时完全不读这个标签,代码零维度分支。**覆盖检查豁免面 = {plan(规划), info(信息), counter(反制)}**(2026-09-29 拍板②显式登记):规划维度随探宝罗盘退役失义、信息维度随显影尘/地穴全图卷能力封存悬置、反制维度配套义务已作废(2026-10-03 用户终裁,理由见本文件 v0.8 版本行与地形变异.md v0.6)——该维度豁免不再以「随反制批消减」为期,承载去留待迭代 12 双层 BD 调研重定。**道具定义表为空是合法态**(2026-09-17 用户拍板:道具内容整批后置至垂直切片收尾后——切片期无道具内容、无掉落面,六行设计登记与机制桥接保留,本节覆盖检查在空清单下不适用)。
|
||||
|
||||
| 维度 | 帮什么忙 | 现行承载 |
|
||||
|---|---|---|
|
||||
| 信息 | 恢复推理原料——把棋盘上已有、玩家暂时看不到的信息还给玩家(俗称"显影") | **暂无有效承载(豁免)**:显影尘与地穴全图卷 defer「能力封存」(2026-09-29 拍板④甲),效果定位随同调实施批重定——原「归 Alpha 整体重设计」口径(2026-09-20)已被承接进同调实施批 |
|
||||
| 风险 | 标出惩罚格位置(真视——替玩家完成"这格有没有雷"的判断) | 探巢摆钟(圈定 3×3 窗口标出其中惩罚格)、爆破工兵包(组合效果之一) |
|
||||
| 行动 | 给当轮行动点加量 | 工兵令、爆破工兵包(加量 magnitude 读 registry `aux_items`) |
|
||||
| 规划 | 预读未挖开格子的奖励身份 | **已失义(豁免)**:探宝罗盘退役(2026-09-29 拍板①乙——未开格类型微光常显覆盖预读价值),维度随罗盘退役失义 |
|
||||
| 反制 | 对抗地形变异(**原框架契约已作废**——2026-10-03 用户终裁:同调位反制件层级错配失败设计——理由见 v0.8 版本行) | 暂无有效承载(豁免,2026-09-29 拍板②);维度承载去留待迭代 12 双层 BD 调研重定 |
|
||||
|
||||
### 直接代答必须窄域:真视的范围护栏
|
||||
|
||||
凡是"直接告诉你惩罚格在哪"的效果(下文称真视),一次最多照亮 3×3 的窗口,任何道具都不允许全图看雷。全图级范围只留给恢复推理原料类的效果——显影、预读这类把已有事实交还玩家的信息,允许大范围(原则上被允许,见不做清单的边界锚)。这条限制写进数据校验:任何真视类道具的目标域字段超过 3×3,加载数据时直接报错拒绝——护栏由加载期强制,不靠运行时拦截。
|
||||
|
||||
**道具的收益在"少赌",不在"单赌更安全"**:信息类道具不改变棋盘,只减少玩家必须盲赌的次数。真视把 k 格移出盲挖候选域——这 k 格从"要赌"变成"必避或必旗"的确定决策;情报类道具抬高棋盘可推理率,收缩"只能赌"的格子池。单次盲赌的命中率会随格子池收缩而上升,这是正常读数——收益按"赌的次数变少、期望踩雷下降"计,不按单次命中率计。
|
||||
|
||||
```
|
||||
残余盲赌安全格数 n_s = (1 − ι) × |S|
|
||||
单次盲赌踩雷概率 P(雷) = |M| ÷ (|M| + n_s)
|
||||
```
|
||||
|
||||
| 变量 | 含义 | 来源 |
|
||||
|---|---|---|
|
||||
| ι | 棋盘可推理率(不必赌、可直接推理开挖的格子占比) | [棋盘生成](棋盘生成.md)的板级实际值 |
|
||||
| \|M\| / \|S\| | 板上惩罚格数 / 安全格数 | 棋盘事实 |
|
||||
| n_s | 推理覆盖之外、只能盲赌的安全格数 | 上式派生 |
|
||||
|
||||
设计意图一句话:恢复推理的效果可以大,代替推理的效果必须小而贵——花钱全图看雷,等于把扫雷换成走格子。定量当量换算归[战斗结算](../战斗循环/战斗结算.md)的效果对照表,MVP 不入表。
|
||||
|
||||
### 道具从哪来:掉落池获取与关卡域库存
|
||||
|
||||
道具不卖、不合成,唯一来路是战斗奖励:秘宝作为一个奖励类别进入掉落池,权重与档位归[地图战斗资源](../战斗循环/地图战斗资源.md)管,本系统只定义道具本体。**解锁门控(2026-09-29 拍板③甲)**:工坊未解锁的道具不进投放池(权重 0)——解锁语义=解锁→进掉落投放池与奖励节点可用池。玩家挖开带道具的格子时,[战斗结算](../战斗循环/战斗结算.md)把道具路由进秘宝的关卡背包——它和战斗道具背包是两个独立容器,互不混装,寿命相同:都活到关卡结束,无论输赢,关卡末同批清空。
|
||||
|
||||
每件道具记录它从哪个格子的哪一轮被捡到,来源可归因;用一件少一件、不能反悔;背包不设上限,稀缺完全由掉落权重控制——供给读数由掉落权重推导(registry `aux_items` F1),本文不登记读数。本节无计算,供给读数见调参表。
|
||||
|
||||
### 什么时候怎么用:挖掘期发起,战斗结算编排
|
||||
|
||||
使用动作在挖掘期发起:轮次进行中的任意时点都行。结算阶段用不了——那个窗口属于战斗道具,两个"用道具"的入口在时间上错开,互不冲突。发起之后由战斗结算编排受理,按固定次序走四步:
|
||||
|
||||
```
|
||||
发起使用 ─▶ ① 相位检查(非挖掘期 → 拒绝)
|
||||
─▶ ② 目标校验(不合法 → 全链拒绝、零消耗)
|
||||
─▶ ③ 逐效果应用(先空间效果,后加行动点)
|
||||
─▶ ④ 消耗道具(不可逆,回执交呈现层)
|
||||
```
|
||||
|
||||
所有会失败的情况都被前两步拦下,后两步在合法输入下不会失败——"产生效果"和"消耗道具"永远成对发生。带两个效果的稀有道具,施加顺序钉死为先空间效果、后加行动点;定义表里效果的书写顺序不承载运行时语义。
|
||||
|
||||
用道具不扣行动点:成本在获取时已经付过——捡到它的那个格子没出战斗奖励;挖格、插旗的价格不受任何影响。道具只产生信息与行动点、不产生动作:系统没有任何自动使用入口——不会自动替你挖,也不会自动替你插旗。真视尤其要说清:它是信息不是保护,被标出的惩罚格挖开照样惊动;靠真视插旗仍按标准动作价计费(价目见 action_economy.tres),标中收益照走既有结算路径。本节纯流程,无计算。
|
||||
|
||||
### 信息住在哪:板级叠加层,随图消亡
|
||||
|
||||
道具产生的信息不写进棋盘,而是记入独立的板级叠加层——按效果分类的格集(现行有效的是真视格集;预读格集的机制与字段保留在案、现行无投放来源——承载者探宝罗盘已退役,2026-09-29 拍板①乙,随同调实施批一并处置)。叠加层只记"哪些格要额外显示":数字永远读棋盘真值,奖励身份永远读奖励表,行动点走行动经济的账本,本系统不持有任何一份副本。这带来一条承重设计:排雷玩法的代码里没有任何一行"为了秘宝"而写的判断——叠加层是派生信息层,零回写任何其他系统的状态。
|
||||
|
||||
叠加层随图消亡:清图换新图、花储备换新图的弃图刷新(见[行动经济](行动经济.md))、战斗结束,三者任一发生叠加层即清空,已花道具不返还——在一张图上花的情报随这张图沉没,这是设计意图不是疏漏。效果即时可见:使用发生在挖掘期,信息当场改变棋盘呈现,不进轮末结算明细。本节纯流程,无计算。
|
||||
|
||||
### 边缘与零信息:两条受理裁定
|
||||
|
||||
边缘受理:3×3 目标窗口的中心格贴边或贴角、窗口探出板外时,使用照常受理,按窗口与棋盘的交集结算——贴角剩 4 格、贴边剩 6 格。这是拍板过的体验规则:点在边缘不该吃"这格不能用"的闭门羹;交集只会比完整窗口小,窄域护栏只缩不扩。
|
||||
|
||||
零信息目标不消耗:对零信息目标使用不可用,分两级裁定——整张图都没东西可看(板级零信息)时,背包里这件道具直接置灰、使用入口禁用,根本选不了;单个位置没东西可看(点击级零信息)时,那一次点击被拒绝、给可辨认的提示。两种情况道具都留在背包:点错了不扣道具,挖掘期的手滑不该受罚。两条补充裁定:真视恒可用(零雷窗口等于"这 9 格没雷",信息非空);组合效果道具的判据取"或"——任一效果有信息即可用,所以爆破工兵包因加行动点恒可用。本节纯流程,无计算。
|
||||
|
||||
## 依赖与输出
|
||||
|
||||
| 方向 | 系统 | 接口要点 |
|
||||
|---|---|---|
|
||||
| 上游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 秘宝作为奖励类别进入掉落池;权重、档位与投放归其管 |
|
||||
| 上游 | [战斗结算](../战斗循环/战斗结算.md) | 授予路由与使用编排的唯一调用方:四步固定次序的受理,叠加层与库存的清空也由它编排 |
|
||||
| 上游 | [行动经济](行动经济.md) | 加行动点效果经其账本入口入账;使用道具本身不过账本、零扣费 |
|
||||
| 上游 | [排雷玩法](排雷玩法.md) | 目标校验与信息呈现读取棋盘只读面;对侧代码零本系统分支 |
|
||||
| 上游 | [地形变异](地形变异.md) | 反制维度的对抗对象——框架契约已作废(2026-10-03 终裁,理由见 v0.8 版本行);counter_items 恒空保留,维度承载待迭代 12 双层 BD 调研重定 |
|
||||
| 上游 | [数据配置](../表现与支撑/数据配置.md) | 道具定义表的 schema 承载与加载校验通道;本系统是该表的回填责任方 |
|
||||
| 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 库存条常读、使用交互与目标拾取、叠加层信息呈现、关卡末清空反馈 |
|
||||
| 下游 | [教学引导](../表现与支撑/教学引导.md) | 教学候选:"买情报"闭环与"真视不是保护"的措辞口径(非阻塞) |
|
||||
| 双向 | 各对侧系统 | 旧体系遗留 21 项跨系统义务(编排入口、呈现义务、表值回填等)逐项挂在对侧修订批核销,清单全文见 registry 秘宝条目的 obligations 字段 |
|
||||
|
||||
负空间:本系统不监听事件、不画界面、不用随机数、不写任何其他系统的数据;信息只来自三个既有事实源——棋盘真值、奖励身份、行动点账本。
|
||||
|
||||
## P0 最小闭环
|
||||
|
||||
1. 每张图开出前,掉落池已定好哪些格子带秘宝(归地图战斗资源)。
|
||||
2. 玩家挖开这样的格子,战斗结算把道具路由进关卡域库存,记录来源格与轮次。
|
||||
3. 挖掘期玩家选中道具与目标发起使用,战斗结算按上文四步编排受理。
|
||||
4. 呈现层重查刷新:玩家看到情报或行动点入账,继续挖格决策。
|
||||
5. 换图、弃图刷新或战斗结束时叠加层随图清空;关卡结束(无论输赢)时库存同批清空。
|
||||
|
||||
## P1 / P2 后置
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 道具使用的动效与音频反馈 | 表现打磨项后置;音频排 Alpha |
|
||||
| P1 | "买情报"闭环教学与"真视不是保护"口径 | 归教学引导,Alpha 里程碑,非阻塞 |
|
||||
| P1 | 信息类道具的战斗当量入战斗结算效果对照表 | 间接效应的定量换算,调参期扩列,MVP 不入表 |
|
||||
| 迭代 12(调研前置) | 反制路径重定(原:地形变异新类型的反制道具——已作废) | 2026-10-03 用户终裁:原归 Alpha 反制批的同调位反制件=层级错配失败设计,契约「每变异≥1反制道具」废止;counter_items 恒空合法,变异应对若做只挂局内,待双层 BD 调研仲裁后重新立项 |
|
||||
|
||||
## 调参表
|
||||
|
||||
道具定义表与掉落权重的全部数值均为 provisional,归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)调参;现行登记值以 [registry 的 `aux_items` 条目](../../../registry/entities.yaml) 为准,表 schema 归[数据配置](../表现与支撑/数据配置.md)承载、本系统回填。
|
||||
|
||||
| 道具 | 稀有度 | 维度 | 效果 | 目标形态 | 数值 | 池权重/档位 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 探宝罗盘 / 工兵令 / 探巢摆钟 / 爆破工兵包 / 显影尘 / 地穴全图卷(六行,行结构如左列序) | — | — | — | — | 六行登记值(w / t / mag 等)以 registry `aux_items` mvp_content 为准 | — |
|
||||
|
||||
投放态注记(2026-10-04 迭代 13 随批校正):迭代 11 同调批起道具件获渠=**营地同调位装配**(form 非空行——现役九件全数同调行,含探巢摆钟/掘进蓄能/爆破工兵包两代工兵系);掉落投放池过渡渠道现行**零行**(工兵令 sapper_order 已 retired 由工兵晨令 dawn_order 接位、探宝罗盘 retired 词表兼容留痕、显影尘/地穴全图卷 deferred 能力封存呈现);奖励三选一的道具件令牌随池空集休眠(aux_item 词表位保留)。
|
||||
|
||||
两件稀有道具的定位读数:双维组合加数值跳档。爆破工兵包的加量锚定“半轮预算”(锚定比例见[行动经济](行动经济.md),ap_per_round 现值见 action_economy.tres;两者调参联动复核);稀有件供给读数由掉落权重推导(registry `aux_items`),本文不登记读数。
|
||||
|
||||
结构冻结(非调参项,改动走本文修订流程):真视窄域护栏、零信息目标不消耗、边缘窗口照常受理、使用零行动点成本、库存关卡域、用后不可逆、零随机。
|
||||
|
||||
效果声明形态(内容数据驱动扩展批换代,2026-10-06):被动件的效果行为从按件 id 硬编码换为**订阅行**——行内声明**订阅哪个事件(on)/ 什么条件(when)/ 什么效果(do)**,由效果引擎统一解释执行(淬毒刃纹=克制判定事件、标中殉爆=标旗事件、惊巢反制=踩雷事件、工兵晨令=每轮开始事件、偏运硬币=资源掷定事件);主动件保持按效果类型通用分发(掘进蓄能的受理闸=使用事件订阅+积点计数器账本)。事件 / 效果类型 / 条件事实 / 算子四词表封闭(效果引擎单一事实源),卡面效果摘要=行 `desc` 字段直读(文案表值化)。
|
||||
|
||||
playtest 预警(预注册,归难度曲线与Boss):
|
||||
|
||||
| 预警 | 指标与读法 |
|
||||
|---|---|
|
||||
| 道具依赖 | 用了道具的轮次占比超过道具依赖预警阈值即警——扫雷决策被外包给道具(阈值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)预注册,registry `aux_items` warnings,本文不登记阈值) |
|
||||
| 预读覆盖 | 预读格占开格前决策数过高即警——预读在替代推理,与上条联读 |
|
||||
| 加点节奏 | 加行动点道具使用后,停手转存率异常上行即警——加点沦为刷储备的工具 |
|
||||
|
||||
## 验收标准
|
||||
|
||||
- 护栏强制:任何标出惩罚格的道具定义,目标域字段超过 3×3 时数据加载直接报错拒绝;现行六行道具定义加载通过(三件有效实装投放;探宝罗盘 retired、显影尘/地穴全图卷 deferred 随表在位)。
|
||||
- 覆盖检查:道具定义表非空时,加载后自动检查**投放维度覆盖**(各投放维度至少一件掉落权重为正的道具);豁免面 {plan, info, counter}(2026-09-29 拍板②登记,随各自重定批消减)。
|
||||
- 两包正交:捡到秘宝不进战斗道具背包;两包寿命相同,关卡结束(无论输赢)同批清空。
|
||||
- 使用窗口:非挖掘期的使用请求被拒绝且不消耗;挖掘期任意时点可发起。
|
||||
- 零消耗拒绝:目标不合法(例如点在已挖开的格子上)时道具不消耗、库存不变、反馈可辨认;板级零信息时图标置灰、入口禁用。
|
||||
- 边缘受理:3×3 窗口中心格贴板角时照常受理,按窗口与棋盘的交集(角 4 格)结算并正常消耗。
|
||||
- 顺序钉死:组合道具先空间效果、后加行动点;任何合法使用中"产生效果"与"消耗"成对发生。
|
||||
- 使用零扣费:使用前后,除加量道具自身的入账外行动点读数不变;挖格与插旗价格不受影响。
|
||||
- 随图消亡与不可逆:换图、弃图刷新、战斗结束时叠加层清空且已花道具不返还;同一件道具不能使用第二次。
|
||||
- 零随机与零特判:同一操作序列重放两遍,库存与叠加层投影逐位相同;排雷玩法代码中无为本系统而写的分支。
|
||||
|
||||
## 待办
|
||||
|
||||
本系统待办条目已统一收编至 [06-待办清单](../../06-待办清单.md),本节不再逐条登记。
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
||||
| v0.2 | 2026-09-16 | 更名批(用户拍板 2026-09-16):系统更名"辅助道具"→"秘宝"——定位已非纯数值道具,含信息/妙用向效果;文件同步重命名;英文代号 AUXILIARY_ITEMS 暂沿用 |
|
||||
| v0.3 | 2026-09-17 | 切片期空内容拍板(用户拍板):道具定义表为空列为合法态——五维度覆盖检查改为仅对非空清单执行(垂直切片期无道具内容、无掉落面;六行设计值与机制桥接登记保留,内容整批后置至切片收尾后的秘宝内容批);验收标准覆盖检查条目同步;[06-待办清单](../../06-待办清单.md)「维度覆盖检查破缺」「失义道具的掉落投放」两条随批关闭 |
|
||||
| v0.4 | 2026-09-17 | 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),1 处失同步修正(AP 8→6 漏改:爆破工兵包定位读数段的「每轮行动点默认 8」改指路 action_economy.tres)——道具加量、供给读数、调参表六行 w/t/mag、道具依赖预警阈值 50% 均改指路 registry `aux_items`;行名与表结构列保留 |
|
||||
| v0.6 | 2026-10-04 | **迭代 13 D6 实装修订**:爆破工兵包换装启用(deferred 留位 → active_charged 装配件 charges 2)+「中立移除」实装口径节落文(P1 甲邻接数字冻结/P2 甲退色降档,裁决吸收自批任务书)+投放态注记换代(获渠=营地同调装配,过渡投放池零行) |
|
||||
| v0.5 | 2026-09-29 | **内容批落地修订(迭代 7——用户八拍板)**:①道具定义表六行入表(AuxItemTable——三有效实装:工兵令 ap_grant/探巢摆钟真视/爆破工兵包组合;**探宝罗盘退役留痕**(拍板①乙——未开格类型微光常显覆盖预读价值,retired 标记词表兼容);显影尘/地穴全图卷 deferred「能力封存」(拍板④甲,Alpha 重定);②F2 维度覆盖改**投放维度覆盖**口径+豁免面 {plan, info, counter} 显式登记(罗盘退役+显影件悬置所致,豁免随 Alpha 重定/天赋批消减);③解锁语义定稿=工坊解锁→进掉落投放池(拍板③甲,未解锁权重 0);④奖励节点=三选一构筑点(拍板②丙,node-reward.md v1.0);⑤掉落投放三件总权重 10/池 88(拍板⑥甲,provisional) |
|
||||
| v0.6 | 2026-09-30 | **拍板点 1 收口批(2026-09-30 用户裁决甲:同调=终局方向)**:①新增「定位与形态沿革」节——现行正文定性=切片期过渡形态、终局=局外同调件(设计权威底稿=原提案八拍板,git 57da58c 已退役),两态关系=形态替换、衔接纪律与事故留痕入节;②正文口径回写四处:五维度表信息/规划/反制三行改现行态(罗盘退役/显影件封存/豁免面入正文)、覆盖检查改投放维度覆盖口径、掉落池获取节补解锁门控(2026-09-29 拍板③甲)、板级叠加层预读集改「机制在案无投放来源」;③验收两条(护栏/覆盖检查)与调参表投放态注记、地形变异依赖行同步;④实施批登记见 06「秘宝同调实施批」条。审计冲突 C19/C29 随批收口(全录见审计报告 git 提交 c095916,报告已退役) |
|
||||
| v0.7 | 2026-10-01 | **奖励节点渠道改写注记(迭代 10 追加批——用户拍板「奖励节点与通关三选一共享同池」)**:①「奖励节点三选一构筑点」形态(v0.5 ④)退役——奖励节点改提升三选一共享池(秘宝件为池中 1/6 权重选项,同调位满位替换交互随 BonusPickOverlay 共用面生效,spec:node-reward.md v2.0);②道具件经节点渠道入本关库存(来源归因 reward_node,与掉落/三选一渠道同受 transitional_sync_slots 过渡上限约束);③战斗掉落渠道零改动;④本批过渡约束形态与切换义务注记见 registry aux_items 条同日批注;同调实施批的全渠道统一收口义务不变 |
|
||||
| v0.8 | 2026-10-03 | **反制契约作废批(2026-10-03 用户终裁——层级错配失败设计)**:①五维度「反制」行与豁免面 {plan, info, counter} 的 counter 注记改终裁态(原框架契约「每变异≥1反制道具」作废,终裁理由见地形变异.md v0.6/本文件 v0.8 版本行(原 06 条目已收口移除));②上游地形变异依赖行、P2 后置行同步改「迭代 12 调研前置重定」;③地形变异.md v0.6 同批落义务作废注记;④迭代 11 范围裁定(同调→商店→迷雾三批)见 roadmap 迭代 11+ 行——反制批移迭代 12 |
|
||||
| v1.0 | 2026-10-06 | **效果声明换代(内容数据驱动扩展批)**:被动六件(淬毒刃纹/偏运硬币/工兵晨令/惊巢反制/标中殉爆)改订阅行+掘进蓄能受理闸数据化(使用事件订阅+积点计数器)——按件 id 硬编码清零;结构冻结六条零触碰,行为与迁移前逐位一致(MC 同种子 40 局对拍实证)。
|
||||
| v0.9 | 2026-10-05 | **消歧更名批(用户拍板 2026-10-05):系统更名「魔法道具」→「秘宝」**。**更名理由**:「魔法」一词在本作已被征用为敌方侧伤害/护甲语汇(`magic_bolt 魔法矢` / `magic_recoil 魔法反噬` / `magic 魔法族` 格面微光 / `ward 魔法护甲`),「魔法道具」易被读成"魔法属性的道具";「秘宝」取"神秘·强大·稀有"义,与九件内容气质(工兵/工程/手艺向)契合,且与局内道具(奇物)不冲突。**同调位机制名保留不变**(attunement 仍为 DND 词,机制血统不受更名影响)。**本批仅改文档称谓,代码不动**——代码标识符仍为 `aux_*` / `AUXILIARY_ITEMS`(auxiliary 词根为过渡形态遗留,与中文名不同步属已知欠债,另批处理);退役路径残留玩家可见文案(`battle_narrator.gd:117-118`、`bonus_interact_controller.gd:76`)亦留另批。历史定稿文档(research/ 提案与任务书、qa/ 检查单、archive/ 归档)按换名先例原样保留不改。 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:每轮行动点怎么花、停手与刷新的代价
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/a3-action-economy.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -47,6 +46,8 @@
|
||||
|
||||
### 每轮预算与价目
|
||||
|
||||
**AP 分两本账**(框架见[核心循环](../../01-核心循环.md)「生命周期轴」节):**AP 上限**是冒险级角色属性——冒险开局定基值(表值 ap_per_round),冒险中可由秘宝或属性提升抬高(兑现细则见「跨冒险行动点加成轴」节);**当前 AP** 是回合级的池——每轮开始灌满到上限、回合内花用、归零触发轮次结束。本账本只管后者;上限的基值与抬高不归本账本裁决。
|
||||
|
||||
每轮开始时,行动点被硬重置为表值(见 action_economy.tres)——上一轮没用完的不累积、不结转。储备行动点(RAP,停手攒下来的池子)正好相反:开轮时原样保留,一分不动。
|
||||
|
||||
花钱的动作只有三种,价格一样:
|
||||
@@ -78,7 +79,7 @@
|
||||
|
||||
### 停手与储备行动点
|
||||
|
||||
停手是玩家在挖掘期任意时刻的主动决定:立即结束本轮,剩余行动点按 1:1 原值存入储备池——没有乘数、没有加成。图没开完,下一轮接着在同一张图上挖。停手不是收入来源,而是纯粹的风险管理工具:它买到的是"退出权",不是战斗收益。停手意图经排雷玩法的批次提交入口进入账本(保证单一结算序),由账本仲裁后自行外发轮次结束消息。
|
||||
停手是玩家在挖掘期任意时刻的主动决定:立即结束本轮,剩余行动点按 1:1 原值存入储备池——基线没有乘数、没有加成。图没开完,下一轮接着在同一张图上挖。停手不是收入来源,而是纯粹的风险管理工具:它买到的是"退出权",不是战斗收益。停手意图经排雷玩法的批次提交入口进入账本(保证单一结算序),由账本仲裁后自行外发轮次结束消息。**转存率参数化(迭代 22 秘宝批反哺写入,2026-10-12)**:转存率实现为 `finish_round_stop(transfer_pct)` 参数面——缺省 100=1:1 与旧口径逐位一致;秘宝「储备罐」注入 125=1.25:1(整数除法向下取整——每 4 点剩余 AP 多转 1 点 RAP,零头顺延向下);无装配时行为与参数化前逐位相同。转存率归秘宝操作包络参数,本账本的仲裁与发射结构不变。
|
||||
|
||||
储备池的生命周期以一场战斗为界:战斗内跨轮次、跨雷图一直累积;战斗结束立刻清零。清零必须在界面上可见,防止玩家觉得"攒的钱凭空没了"。MVP 阶段储备池没有上限。
|
||||
|
||||
@@ -109,19 +110,19 @@
|
||||
|
||||
### 标中旗的兑付约束
|
||||
|
||||
插旗标中了巢穴,收益在当轮结算兑付(标中 = 巢穴被控制、里面怪物被削弱)。兑付受五条硬约束,核心思想是"认雷不认旗":
|
||||
插旗标中了危险格,收益在当轮结算兑付(标中 = 危险格被控制、里面怪物被削弱)。兑付受五条硬约束,核心思想是"认雷不认旗":
|
||||
|
||||
| 约束 | 含义 |
|
||||
|---|---|
|
||||
| 一次性 | 每颗雷在一场战斗内至多兑付一次,资格随首次兑付消费 |
|
||||
| 当轮结算 | 旗只是当轮兑付的载体,不囤积到以后 |
|
||||
| 资格认雷格实例 | 挖开重插同一格(旗随挖掘消失),不恢复已消费的资格——堵死"重复计费重插刷收益"的农场(注:拔旗动作已退役,插旗不可逆批 2026-09-19)——堵死"重复计费重插刷收益"的农场 |
|
||||
| 资格认危险格实例 | 挖开重插同一格(旗随挖掘消失),不恢复已消费的资格——堵死"重复计费重插刷收益"的农场(注:拔旗动作已退役,插旗不可逆批 2026-09-19) |
|
||||
| 不逐轮重复 | 同一颗雷的收益不会每轮反复发 |
|
||||
| 换图重置 | 新图的雷是新实例,资格自然重来 |
|
||||
|
||||
### 收益直兑与五条经济契约
|
||||
|
||||
扫雷侧的全部收益都以战斗效果直接兑现:挖开安全格给主角加增益、标中旗给怪物加减益、惊动巢穴给敌方上增益、清图发奖励。不存在中间货币、不存在折算乘数——折算公式根本不存在。
|
||||
扫雷侧的全部收益都以战斗效果直接兑现:挖开安全格给主角加增益、标中旗给怪物加减益、惊动危险格给敌方上增益、清图发奖励。不存在中间货币、不存在折算乘数——折算公式根本不存在。
|
||||
|
||||
这本账对下游立了五条经济契约,保证"推理的收益大于盲赌的代价"这条底线在数值上闭合:
|
||||
|
||||
@@ -146,7 +147,7 @@
|
||||
下限 0 = 盲挖不为负;上限不设(旧 U_band 删,2026-10-04 grill Q3 裁)——
|
||||
收益端通胀防护由 β 比值带的 β_hi 独家承载(同一约束单一承载)。
|
||||
|
||||
旗边际引理(同池结构定理):雷安同池 + 极性矩阵同字典 ⇒ 标中旗兑付分布 ≡ 安全格
|
||||
旗边际引理(同池结构定理):危险格与安全格同池 + 极性矩阵同字典 ⇒ 标中旗兑付分布 ≡ 安全格
|
||||
兑付分布,EV_flag − EV_blind = (q + ρ̂ − 1)·(E_dig + V_mine),符号只由 q + ρ̂ − 1
|
||||
决定 ⇒ 「旗优于盲挖 ⇔ q > 1−ρ̂」,与全部当量表值无关(风险端定价动不了这一支);
|
||||
标中旗对「挖已知安全格」的边际恒 ≤ 0(= −(1−q)(E_dig+V_mine))——L2 结构破线层,
|
||||
@@ -157,9 +158,9 @@
|
||||
δ = 旗溢价系数,现行 0.25(provisional,2026-10-04 用户裁 P3);实施形态 =
|
||||
(a) 兑付溢价——标中兑付按同型正向 ×(1+δ)(改战斗结算兑付公式一处,机制载体
|
||||
settlement.tres flag_hit_premium = 125,percent 域);(b) 专属池重摇不启
|
||||
(雷安同池结构冻结不动,留给异池后备案一并裁)。
|
||||
登记态(落文时点):δ 落地前现行值已知破(E[标中] = E_dig < 1.25·E_dig 恒假)——
|
||||
按「登记已知破·限期闭合」纪律落文,本批 T4 机制小批闭合;δ=1.25 时条件二以
|
||||
(危险格与安全格同池结构冻结不动,留给异池后备案一并裁)。
|
||||
登记态(写入文档时点):δ 落地前现行值已知破(E[标中] = E_dig < 1.25·E_dig 恒假)——
|
||||
按「登记已知破·限期闭合」纪律写入文档,本批 T4 机制小批闭合;δ=1.25 时条件二以
|
||||
等号压线成立(严格大于须 δ>0.25,×1.5 档留后手)。
|
||||
|
||||
β 比值带(数值层看护,2026-10-04 用户裁 P4):
|
||||
@@ -196,7 +197,7 @@
|
||||
| 方向 | 系统 | 接口要点 |
|
||||
|---|---|---|
|
||||
| 上游 | [数据配置](../表现与支撑/数据配置.md) | 配置表 schema 与类型化读取;本系统是该表的回填责任方 |
|
||||
| 上游 | [排雷玩法](排雷玩法.md) | 挖/插/拔的调用方:只判棋盘合法性,扣费必须过账本 |
|
||||
| 上游 | [排雷玩法](排雷玩法.md) | 挖/插的调用方:只判棋盘合法性,扣费必须过账本 |
|
||||
| 下游 | [战斗结算](../战斗循环/战斗结算.md) | 轮末两字段消息的接收方;回发换图指令与战斗结束信号;五条经济契约的对账责任方 |
|
||||
| 下游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 清图奖励内容与图类型差异化插槽的归口 |
|
||||
| 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 行动点与储备池常显;刷新入口;清零反馈;动作被拒原因的双源呈现(棋盘非法 vs 资源不足) |
|
||||
@@ -237,9 +238,9 @@
|
||||
| refresh_cap_per_round | int | 表值(provisional,结构位预留) | 每轮刷新上限,开轮重置计数 |
|
||||
| (跨表)跨冒险行动点加成 | int [0,10] / int [0,99],冒险表 | adventure_table bonus_ap_flat / bonus_cap_ap(provisional) | 三选一 AP 件兑现值与全冒险次数上限;加成轴语义见「跨冒险行动点加成轴」节 |
|
||||
|
||||
字段名注记:2026-09-18 措辞收口批已全链对齐正式名——表字段与本文行名统一为 `refresh_cap_per_round`,账本入口统一为 `request_refresh`(registry naming_unification 兑现,切片临时名零残留)。
|
||||
字段名注记:2026-09-18 措辞完成批已全链对齐正式名——表字段与本文行名统一为 `refresh_cap_per_round`,账本入口统一为 `request_refresh`(registry naming_unification 兑现,切片临时名零残留)。
|
||||
|
||||
跨字段校验:任一动作成本不得超过每轮预算,违反即加载期致命(fail-fast)。各域上界(8 / 64)是 MVP 量级护栏而非推导界,随调参需要修订。
|
||||
跨字段校验:任一动作成本禁止超过每轮预算,违反即加载期致命(fail-fast)。各域上界(8 / 64)是 MVP 量级护栏而非推导界,随调参需要修订。
|
||||
|
||||
## 验收标准
|
||||
|
||||
@@ -266,7 +267,13 @@
|
||||
| v0.2 | 2026-09-16 | AP 压速批文档面值同步(用户拍板 8→6,削标旗 rush 单轮兑付吞吐为无伤通关根因的主阀门):ap_per_round 与 rap_refresh_cost 现行值 8→6,随动保持"满预算停手 = 恰好一刷"耦合;数据表与 registry 已同批改,本批补文档面正文两处与调参表两行 |
|
||||
| v0.3 | 2026-09-17 | 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),0 处失同步修正——价目改「统一价目 / 标准价(见 action_economy.tres)」口径,每轮点数与刷新门槛改表值指路;调参表「现行值」列整列指路化;注记 refresh_cap_per_round 与表字段 refresh_max_per_round 命名不一致(字段名对齐待批)。顺带:P0 闭环「扣 1 点」改「按价扣费」;终扫补两处漏网——巢穴约束例句「每轮花 2 点重插」改「重复计费重插」、P0 闭环「每轮至多 2 次」改刷新上限读表 |
|
||||
| v0.4 | 2026-09-19 | 插旗不可逆批(用户拍板全套落地):拔旗动作退役——设计目的/统一价目/价目表/布尔入口清单/P0 闭环/调参表六处删"拔旗",flag_pull_ap_cost 字段随 schema 与 data 表同批删除;插旗行补"旗 = 一次性承诺、纠错 = 直接挖开"口径 |
|
||||
| v0.12 | 2026-10-12 | **迭代 22 反哺落文批(实现报告 §三⑦,用户裁「落文」)**:「停手与储备行动点」节补转存率参数化注记——`finish_round_stop(transfer_pct)` 缺省 100=1:1 逐位同旧;秘宝「储备罐」注入 125=1.25:1(整数除法向下取整,每 4 点剩余 AP 多转 1)。机制结构零改动(参数面已随迭代 22 T3 在役) |
|
||||
| v0.5 | 2026-09-20 | **格面资源八型批同步(用户拍板——与敌人系统 / 战斗结算 / 地图战斗资源 / registry / 切片代码同批)**:① F1 条款 3 改写——原"敌方伏击暴露不等式"随伏击机制退役作废,惩罚当量对账模型归难度曲线与Boss 调参批重立;② 新增「下轮行动点修正」节——action 型格面资源经 queue_ap_delta 排队、下一轮开始兑现(基线 ap_per_round + 净值、下限 0、兑现后清零),跨轮携带量口径改写(RAP 唯一显式携带资源 + 一次性修正队列);③ 节拍不变式(满停一轮 = 恰好一刷)补扰动注记 |
|
||||
| v0.6 | 2026-10-01 | **失同步清偿 + 跨冒险行动点加成轴节(迭代 10 奖励重构批——与冒险结构 / registry 同批)**:①失同步欠账清偿——ap_per_round 真实配置 = **8**(action_economy.tres,Package B 2026-09-22 批 6→8 回调,表内批注在案);v0.2 批 8→6 系最后一次文档面记录,此后配置面单独回调未回写本文,本批补记(rap_refresh_cost 与 ap_per_round 的「满预算停手 = 恰好一刷」节拍耦合以现行 8/8 维持);②新增「跨冒险行动点加成轴」节——统一冒险加算区扩第四轴(行动点),经战斗开始入参覆盖值通道、只在每场战斗开轮首轮兑现一次;价值锚 = 冒险表 bonus_ap_flat / bonus_cap_ap(迭代 10 三选一 AP 件,全冒险 2 次上限),调参表补跨表行 |
|
||||
| v0.7 | 2026-10-03 | **两 AP 件兑现通道注记(迭代 11 第①批同调实施批——任务书 §十连带)**:同调目录两 AP 件兑现通道落位——①工兵晨令(被动·限时)=战斗开始首轮 queue_ap_delta 入队 + 轮始段续队(前 effective_rounds 轮每轮 +1,表值化 P4 甲),复用「跨冒险行动点加成轴」同族排队通道;②掘进蓄能(主动·充能)=grant_ap 当轮加量(同挖掘期 ap_grant 通道),受理闸=战斗域安全开格积点(charge_n 格/点);账本零新机制(queue_ap_delta/grant_ap 两既有原语),充能扣减经共享账本(attune_charges)同引用直改 |
|
||||
| v0.7 | 2026-10-03 | **两 AP 件兑现通道注记(迭代 11 第①批同调实施批——需求卡片 §十连带)**:同调目录两 AP 件兑现通道落位——①工兵晨令(被动·限时)=战斗开始首轮 queue_ap_delta 入队 + 轮始段续队(前 effective_rounds 轮每轮 +1,表值化 P4 甲),复用「跨冒险行动点加成轴」同族排队通道;②掘进蓄能(主动·充能)=grant_ap 当轮加量(同挖掘期 ap_grant 通道),受理闸=战斗域安全开格积点(charge_n 格/点);账本零新机制(queue_ap_delta/grant_ap 两既有原语),充能扣减经共享账本(attune_charges)同引用直改 |
|
||||
| v0.8 | 2026-10-05 | **挖掘风险不等式判式换代(迭代14②号卡 T3——与战斗结算/难度曲线与Boss/registry 同批)**:F1 条款3 重立——三层口径并行立(条款2 标中旗锚不动/条款3 聚合健康式「(1−ρ̂)E_dig−ρ̂V_mine≥0」只留下限 0/旗边际引理+条件二旗溢价「E[标中兑付]≥(1+δ)·E_dig」δ=0.25 provisional 形态 a 兑付溢价);条件二落文按登记已知破·T4 机制闭合;β 比值带 [1.2,2.5] 判读入文(u=3 登记态微破下限);η 降格读数入文(分母=全部插旗数);推导节变量表换代(E_dig/V_mine/ρ̂/β/δ 五锚);旧界形式与「惩罚当量对账模型归调参批重立」挂账句全部清偿 |
|
||||
| v0.9 | 2026-10-07 | **生命周期轴裁决随批(框架现行事实源=核心循环「生命周期轴」节同批落文)**:「每轮预算与价目」节首补 AP 两账定义段——AP 上限=冒险级角色属性(开局基值+冒险中秘宝/属性提升抬高,兑现细则归「跨冒险行动点加成轴」节)、当前 AP=回合级池(每轮灌满、归零收轮,本账本只管后者);既有规则面零改动 |
|
||||
| v0.10 | 2026-10-09 | 文档正确性审查批:巢穴约束表「资格认危险格实例」行重复短语清除(「堵死重复计费重插刷收益的农场」一句两写删一) |
|
||||
| v0.11 | 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):依赖与输出表排雷玩法行「挖/插/**拔**的调用方」退役动作残留清除——拔旗已随插旗不可逆批(2026-09-19)退役,v0.4 批六处删「拔旗」时本处漏网 |
|
||||
| v0.0 | 2026-10-11 | 术语统一补扫批(2026-10-11):「巢穴」机制表述两处换代危险格 |
|
||||
| v0.13 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 3 处——推导节条件二「登记态(落文时点)」改「登记态(写入文档时点)」、「按…纪律落文」改「按…纪律写入文档」;调参表注「任一动作成本不得超过每轮预算」改「禁止超过」。机制与数值零改动 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:界面布局与呈现层契约
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/d1-hud-framework.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -48,11 +47,11 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
|
||||
## 核心规则
|
||||
|
||||
本章七节:前三节定画面的骨架与进出规则(屏、弹层、刷新),后三节定数据与资产怎么进来(载荷、占位、底线),第六节收口棋盘的类型微光信息通道。
|
||||
本章七节:前三节定画面的骨架与进出规则(屏、弹层、刷新),后三节定数据与资产怎么进来(载荷、占位、底线),第六节完成棋盘的类型微光信息通道。
|
||||
|
||||
### 战斗屏三区双舞台:挖掘与结算同屏不切场景
|
||||
|
||||
战斗屏是 MVP 唯一的玩法屏,采用"双舞台"布局——战斗画面与扫雷图两块区域同屏常驻、互不顶替:挖掘期敌人在上方待机可见,轮末结算在原地逐行展开,全程不切换场景。"扫雷的因"与"战斗的果"因此永远摆在一起,因果不需要玩家凭记忆拼接。
|
||||
战斗屏是 MVP 唯一的玩法屏,采用"双舞台"布局——战斗画面与扫雷图两块区域同屏常驻、互不顶替:挖掘期敌人在上方待机可见,轮末结算在原地逐行展开,全程不切换场景,因果不需要玩家凭记忆拼接。
|
||||
|
||||
三区各管一块:
|
||||
|
||||
@@ -64,7 +63,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
|
||||
分区尺寸与组件落位的像素级裁决归 [battle.md](../../ux/battle.md);三区结构与双舞台常驻是结构冻结项,修订走文档修订而非调参。节点链进度不在战斗屏呈现——它由关卡画面(选路覆盖层常驻形态)的节点态承载,见[关卡节点地图](../冒险循环/关卡节点地图.md)。
|
||||
|
||||
**结论**:棋盘格边长取两档定值——12×12 的板用 36px、10×10 的板用 45px([battle.md](../../ux/battle.md) 拍板值);下式不推导这两档,只在装板时校验"定值塞得进扫雷图区",违例立即报错中止。**分辨率档位(2026-09-30 迭代 9 三裁决案甲修订)**:两档=1280×800 基准档(本表全部定值的口径)+1920×1080 档=**全局等比**(stretch canvas_items+aspect keep——16:10 设计在 16:9 窗口为等比 1.35×+左右黑边各 ~96px);本节与各屏定值一律按 1280 基准档书写,1920 档由引擎等比承载、零重排。
|
||||
**结论**:棋盘格边长取两档定值——12×12 的板用 36px、10×10 的板用 45px([battle.md](../../ux/battle.md) 拍板值);下式不推导这两档,只在装板时校验"定值塞得进扫雷图区",违例立即显示错误并中止。**分辨率档位(2026-09-30 迭代 9 三裁决案甲修订)**:两档=1280×800 基准档(本表全部定值的口径)+1920×1080 档=**全局等比**(stretch canvas_items+aspect keep——16:10 设计在 16:9 窗口为等比 1.35×+左右黑边各 ~96px);本节与各屏定值一律按 1280 基准档书写,1920 档由引擎等比承载、零重排。
|
||||
|
||||
```
|
||||
可行性校验(装板期断言):
|
||||
@@ -130,7 +129,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
|
||||
### 未开格类型微光:相邻未开格的类型先读通道
|
||||
|
||||
> 本节是「未开格类型微光」在全项目的唯一正主定义(2026-09-30 用户裁决落位):其他文档引用这个概念只许指路本节,不许复述口径。定义一句话:**英雄周围 8 格内的未开格,在格面上显示该格资源类型的微光**——玩家由此读到「相邻哪些格大概是什么类型的收益」,但读不出这格是安全格还是雷。
|
||||
> 本节是「未开格类型微光」在全项目的唯一权威定义(2026-09-30 用户裁决落位):其他文档引用这个概念只许指路本节,不许复述口径。定义一句话:**英雄周围 8 格内的未开格,在格面上显示该格资源类型的微光**——玩家由此读到「相邻哪些格大概是什么类型的收益」,但读不出这格是安全格还是雷。
|
||||
|
||||
| 要素 | 口径 |
|
||||
|---|---|
|
||||
@@ -140,11 +139,11 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| 关联与边界 | 信息本体(格面资源身份)归[地图战斗资源](../战斗循环/地图战斗资源.md);棋盘格态与动作合法性归[排雷玩法](../排雷循环/排雷玩法.md);与「接触带微光」同圈不同职责——接触带微光=可挖域的交互反馈光(「这里能挖」),类型微光=相邻格的类型先读(「这格是什么类型」) |
|
||||
| 实装状态 | 呈现契约已定稿(五组色相经样张 v2 冻结 2026-09-28);**游戏内待实施批**(2026-09-30 核证:呈现层仅接触带微光在跑,类型微光无独立实现;实施状态挂 06-待办清单「未开格类型徽章呈现时机」条) |
|
||||
|
||||
口径史注记(防复发):本概念曾只活在 06-待办清单登记与 art-bible 复述里,「常显」「全部未开格」等无范围表述于 2026-09-30 酿成理解事故;用户裁决「英雄周围 8 格」为正确口径并落位本节。教训=概念必须落地正主文档,零散复述不是定义。
|
||||
口径史注记(防复发):本概念曾只活在 06-待办清单登记与 art-bible 复述里,「常显」「全部未开格」等无范围表述于 2026-09-30 酿成理解事故;用户裁决「英雄周围 8 格」为正确口径并落位本节。教训=概念必须落地权威文档,零散复述不是定义。
|
||||
|
||||
### 可挖域指示(接触带微光):「这里能挖」的交互反馈光
|
||||
|
||||
> 本节是「接触带微光」(可挖域交互反馈光)的呈现规则正主(2026-09-30 用户裁决落位——目录职责三分工:概念/玩法内容归 GDD、美术风格指导归 art-bible、UI 设计归 UX;各目录只干职责内的事,引用走文档链接,不贴异域内容)。
|
||||
> 本节是「接触带微光」(可挖域交互反馈光)的呈现规则现行事实源(2026-09-30 用户裁决落位——目录职责三分工:概念/玩法内容归 GDD、美术风格指导归 art-bible、UI 设计归 UX;各目录只干职责内的事,引用走文档链接,不贴异域内容)。
|
||||
|
||||
| 要素 | 口径 |
|
||||
|---|---|
|
||||
@@ -156,18 +155,22 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
|
||||
### 视野迷雾:菱形灯光区与黑暗边界
|
||||
|
||||
> 本节是「视野迷雾」在全项目的唯一正主定义(2026-09-30 用户拍板立项):其他文档引用只许指路本节。定义一句话:**棋盘只完整渲染以角色为中心的菱形灯光区,区外一切呈迷雾黑暗,移动角色才逐步照亮**——像在洞穴里举灯探索。与已退役的「雾格」无关:雾格是格面机制(2026-09-15 退役),视野迷雾是纯呈现层机制,不改任何游戏数据。
|
||||
> 本节是「视野迷雾」在全项目的唯一权威定义(2026-09-30 用户拍板立项):其他文档引用只许指路本节。定义一句话:**棋盘只完整渲染以角色为中心的菱形灯光区,区外一切呈迷雾黑暗,移动角色才逐步照亮**——像在洞穴里举灯探索。与已退役的「雾格」无关:雾格是格面机制(2026-09-15 退役),视野迷雾是纯呈现层机制,不改任何游戏数据。
|
||||
|
||||
| 要素 | 口径 |
|
||||
|---|---|
|
||||
| 作用对象与范围 | 棋盘渲染可见性:灯光区内照常渲染;区外**已开格=暗淡记忆态**(灰显可见、数字可读——2026-09-30 拍板),区外**未开格=全黑不渲染** |
|
||||
| 生命周期 | 随角色位置实时变化;战斗内持续;换图按新板重置;已开/未开格态、数字真值、清图判定零影响(纯呈现遮罩——同板同动作序列的结算结果与无迷雾逐位一致) |
|
||||
| 关联与边界 | 与「未开格类型微光」同边界——灯光区起步半径=微光环 8 格(同圈起步,实测后可调);格态数据归[排雷玩法](../排雷循环/排雷玩法.md);黑暗区域渲染规格(暗淡态明度、迷雾过渡)归 [art-bible](../../../art/art-bible.md) 修订随实施批;初始展开收窄不在本案(后置与 Alpha 差异化批窗口合并再议) |
|
||||
| 实装状态 | **已实装**(2026-10-03 迭代 11 第④批落籍;四裁决逐条对账与验收线转正见本节末「实施状态」注记;渲染规格 = [art-bible](../../../art/art-bible.md) §6.5) |
|
||||
| 实装状态 | **已实装**(2026-10-03 迭代 11 第④批已入库;四裁决逐条对账与验收线转正见本节末「实施状态」注记;渲染规格 = [art-bible](../../../art/art-bible.md) §6.5) |
|
||||
|
||||
配套拍板(同日):魔法提灯=灯甲形态(光照圈外扩 +2 格,flat 整数档)随迷雾立项;**类型微光不随视野扩大**(类型先读仍只贴身 8 格,微光锚=可挖域);提灯载体归 aux_items 新行,随 Alpha 信息件重定批一并登记,呈现面挂「资产升档重产批」。
|
||||
配套拍板(同日):魔法提灯=灯甲形态(光照圈外扩 +2 格,flat 整数档)随迷雾立项;**类型微光不随视野扩大**(类型先读仍只贴身 8 格,微光锚=可挖域);提灯载体归 aux_items 新行(登记原文——2026-10-07 用户令改道为独立卡,2026-10-08 裁案A=秘宝·同调位新行落位,见下方实施状态注记;**2026-10-09 用户裁退役**——新目录 15 件未收提灯,fog_lantern 数据行与卡④接线拆除归退役删行批〔实装批〕,功能由新目录普通档「阔视野带」承接,06 登记条在册),呈现面挂「资产升档重产批」(挂账不动)。
|
||||
|
||||
**实施状态(2026-10-03 迭代 11 第④批落籍)**:迷雾遮蔽+菱形灯光区跟随+暗淡记忆态上线,探针断言随批扩(ui_input_probe case⑮)。四裁决逐条对账——①案甲视野迷雾立项(纯呈现层):迷雾开关分层验证可用(呈现态布尔,off 态=无迷雾基线),同板同动作序列与 MC 对拍逐位一致;②暗淡记忆态:区外已开格灰显+数字可读,明度按 [art-bible](../../../art/art-bible.md) §6.5 落文值(记忆板 #3A3A3A/记忆墨 #C4C4C4,provisional);③灯光半径=微光环 8 格同圈:LIGHT_RADIUS=8 参数化(曼哈顿菱形,常量);④提灯 +2、微光不扩:LIGHT_RADIUS_LANTERN_BONUS=+2 预留未接效果(接线归 Alpha 信息件批),类型微光仍贴身 8 邻格零改动。**〔2026-10-05 迭代14⑤接线注记〕公共接线面已就位**——`board_view.set_fog_lantern(enabled)`(true=半径 8+2、false=复原 0;写入即 refresh 重算雾态),半径算式消费 `_fog_lantern` 迷雾批已在位;提灯载体〔aux_items 新行〕仍归 Alpha 信息件重定批,到位后由组合根/库存挂接调用 setter;ui_input_probe case⑮ 增接线断言(开=dist 9 格转可见+lantern=2/关=复原)。验收线(本篇「验收标准」视野迷雾行)逐条转正式验收:区内完整渲染/区外已开格灰显可读/区外未开格不可见/灯光区随移动跟随/两态结算逐位一致;实机目检人闸(迷雾观感/记忆态可读性/移动跟随流畅度)随出口闸。黑暗区域渲染规格承载 = art-bible §6.5(v3.5)。
|
||||
**实施状态(2026-10-03 迭代 11 第④批已入库)**:迷雾遮蔽+菱形灯光区跟随+暗淡记忆态上线,探针断言顺带扩(ui_input_probe case⑮)。四裁决逐条对账——①案甲视野迷雾立项(纯呈现层):迷雾开关分层验证可用(呈现态布尔,off 态=无迷雾基线),同板同动作序列与 MC 逐项比对逐位一致;②暗淡记忆态:区外已开格灰显+数字可读,明度按 [art-bible](../../../art/art-bible.md) §6.5 写入文档值(记忆板 #3A3A3A/记忆墨 #C4C4C4,provisional);③灯光半径=微光环 8 格同圈:LIGHT_RADIUS=8 参数化(曼哈顿菱形,常量);④提灯 +2、微光不扩:FOG_LANTERN_BONUS=+2(落码常量实名——本条旧记 LIGHT_RADIUS_LANTERN_BONUS 系文档侧拟名,随卡④入库对齐),类型微光仍贴身 8 邻格零改动。**〔2026-10-05 迭代14⑤接线注记〕公共接线面已就位**——`board_view.set_fog_lantern(enabled)`(true=半径 8+2、false=复原 0;写入即 refresh 重算雾态),半径算式消费 `_fog_lantern` 迷雾批已在位;ui_input_probe case⑮ 增接线断言(开=dist 9 格转可见+lantern=2/关=复原)。**〔2026-10-08 迭代 19 卡④入库注记〕载体到位+接线闭环=功能可达**——载体=秘宝·同调位新行 `fog_lantern`「魔法提灯」(treasure_items.tres 表尾追加,desc「灯光区半径+2」,slot_cost 1、营地秘宝匣同调装配获渠,行字段=用户「按推荐」全收);生产路径=runner set_attunement→enc.attunement→begin_battle 注入 orchestrator 装配集→公共只读出口 `attune_has`→组合根呈现桥 `main._sync_fog_lantern` 每战首轮装配链**显式重算含否**(🔴 复原语义=禁战斗结束隐式复原——卸装/未装配写 0,断点续玩/跨关天然正确);未装配=false 写 0=缺省零扰动基线逐位不变。顺带测试:case⑮ 载体级段(装配→lantern=2+dist R+1 转可见+卸装复原)+smoke 行字段/同调目录投影(九件→十件)/装配贯通断言+存档回归 Part 6+单测 fog_lantern_wiring(run_all 17→18 套)。原「提灯载体归 aux_items 新行随 Alpha 信息件重定批」登记去向就此注销(改道留痕=需求卡片-提灯载体道具批-2026-10-07 §一)。验收线(本篇「验收标准」视野迷雾行)逐条转正式验收:区内完整渲染/区外已开格灰显可读/区外未开格不可见/灯光区随移动跟随/两态结算逐位一致;实机目检人闸(迷雾观感/记忆态可读性/移动跟随流畅度)随出口闸。黑暗区域渲染规格承载 = art-bible §6.5(v3.5)。
|
||||
|
||||
### 营地覆盖层:四柜台并排(程序占位——视觉终稿归营地视觉批)
|
||||
|
||||
营地覆盖层自 2026-10-12(迭代 21 落地)为**四柜台并排**布局:①树淬炼(树脊柱界面形态,营地主界面)②锻造工坊(钥匙门+点亮展开工作间)③秘宝匣(钥匙门+目录与同调装配)④奖励格图鉴(常开无门槛)——宽度不足横向滚动兜底;全部程序占位视觉(占位纪律延续,2026-10-11 用户令),**视觉与布局终稿归 HUD 营地视觉批**(未立项)。结构现行事实源 = [天赋树](../跨局循环/天赋树.md)「营地=树:统一模型」节(2026-10-13 迭代 21 反哺⑤写入文档登记——本篇原无营地柜台登记面,顺带补缺)。
|
||||
|
||||
### 可访问性基线:看得清、不闪、纯鼠标玩得通
|
||||
|
||||
@@ -214,9 +217,9 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| [敌人系统](../战斗循环/敌人系统.md) | 意图线索映射成文且全局恒定;单位顺位与血条可读;敌方共享层数各卡同值 |
|
||||
| [增益状态](../战斗循环/增益状态.md) | 状态栏常显;无状态时整排槽隐藏;有利 / 有害极性呈现不看数值符号 |
|
||||
| [地图战斗资源](../战斗循环/地图战斗资源.md) | 已开格的奖励身份常读;未开格类型微光(英雄周围 8 格内的未开格显示资源类型——概念定义见本篇「未开格类型微光」节) |
|
||||
| [秘宝](../排雷循环/秘宝.md) | 库存条常读;使用交互与目标拾取;板级叠加层信息呈现 |
|
||||
| [秘宝](../跨局循环/秘宝.md) | 装配件与充能常读;使用交互与目标拾取;整图叠加层信息呈现(在役旧框架——随实装批整体替换,秘宝.md v1.7 同款口径) |
|
||||
| [棋盘生成](../排雷循环/棋盘生成.md) | 零合法板的诚实告知(数据面经战斗结算上抛,本系统只管提示形态) |
|
||||
| [地形变异](../排雷循环/地形变异.md) | 全局作用域型三层预告(2026-10-04 首发批——语义正主=地形变异 §全局作用域型):①开战横幅一行(板级变异非空时显示;减动效=静态驻留,轮横幅先例同款双态)②HUD 常驻角标(C 区战斗全程可见防中局遗忘,空态整节隐藏=奇物段先例;摆位 provisional)③帮助手册一行(零交互教学,承载=玩法帮助文案块);数据面经呈现快照 board_variants 投影(核心→呈现唯一读取面),普通图三层恒空态零打扰 |
|
||||
| [地形变异](../排雷循环/地形变异.md) | 全局作用域型三层预告(2026-10-04 首发批——语义现行事实源=地形变异 §全局作用域型):①开战横幅一行(整图变异非空时显示;减动效=静态驻留,轮横幅先例同款双态)②HUD 常驻角标(C 区战斗全程可见防中局遗忘,空态整节隐藏=奇物段先例;摆位 provisional)③帮助手册一行(零交互教学,承载=玩法帮助文案块);数据面经呈现快照 board_variants 投影(核心→呈现唯一读取面),普通图三层恒空态零打扰 |
|
||||
|
||||
## P0 最小闭环
|
||||
|
||||
@@ -225,7 +228,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
3. 回执链:组合根重查只读面,界面字段级就地刷新。
|
||||
4. 轮末进入结算:棋盘区锁输入,明细带展开逐行兑现(战斗结算流水驱动)。
|
||||
5. 终局呈现(胜利 / 失败)伴随状态全清与储备清零反馈。
|
||||
6. 关卡末清库反馈:义务载体 = 秘宝背包,随秘宝 P0 落地(现行切片无库存容器,直接进下一节点或返回)。
|
||||
6. 关卡末清库反馈:义务载体 = 秘宝背包(关卡域库存——秘宝过渡形态机械惰性承载,投放渠道全退役后恒空;拆线归实装批,见[战斗结算](../战斗循环/战斗结算.md)「轮次生命周期」节注)。
|
||||
|
||||
## P1 / P2 后置
|
||||
|
||||
@@ -234,10 +237,10 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| P1 | 远格点击自动"先移动再挖"复合意图 | 移动免费高频,两击摩擦先经实测验证再裁 |
|
||||
| P1 | Gamepad 焦点序 | 纯鼠标已覆盖 MVP 全部操作 |
|
||||
| P1 | 可访问性正式分层(文本缩放 / 色盲模式 / 按键重映射) | 归[设置与本地化](设置与本地化.md)设置项全集裁决(2026-09-27 拍板不另立专项文档) |
|
||||
| P1 | 相邻域屏(节点奖励 / 关卡结算)完整屏形态 | 归后续 UX 文档(关卡结算屏 spec 已建 [level-clear](../../ux/level-clear.md)——2026-09-27;节点奖励屏随秘宝内容重定批);MVP 以覆盖层反馈承载 |
|
||||
| P1 | 相邻域屏(节点奖励 / 关卡结算)完整屏形态 | 归后续 UX 文档(关卡结算屏 spec 已建 [level-clear](../../ux/level-clear.md)——2026-09-27;节点奖励屏 spec 已在役:[node-reward](../../ux/node-reward.md) v2.5 令牌池口径);MVP 以覆盖层反馈承载 |
|
||||
| P2 | 提示一次性作用域升级为存档级"一生一次" | 归[存档序列化](存档序列化.md)与[元进度](../跨局循环/元进度.md)后重议 |
|
||||
| P2 | 调试面板退役 | 正式侧归元进度;诊断按钮保留为调试设施 |
|
||||
| P2 | 探测类秘宝的显影呈现面 | 接口归[秘宝](../排雷循环/秘宝.md)定稿批 |
|
||||
| P2 | 探测类秘宝的显影呈现面 | 接口归[秘宝](../跨局循环/秘宝.md)定稿批 |
|
||||
| P2 | 音频挂点出声 | MVP 无音频,归[音频](音频.md) |
|
||||
|
||||
## 调参表
|
||||
@@ -262,8 +265,8 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
|
||||
- 三区无遮挡、无重叠、无内容裁切(棋盘全部格子与数字完整可见),分区尺寸与 battle.md 布局表一致;同屏 draw calls < 200;进入战斗屏 500ms 内首格可点。
|
||||
- 两档板装板后格边长取定值档(36 / 45px)且可行性校验通过;数字字号不低于下限、整数倍缩放无模糊。
|
||||
- 已开 / 未开格态在灰度截图下可逐格分类;已引爆雷格"可通行可读"(已开底加巢穴纹、可作移动目标)。
|
||||
- 类型微光(待实施批落地后验收):微光只在英雄周围 8 格内的未开格显示;出圈即灭、入圈即亮;已开格与封锁格恒无微光;微光呈现不随格是雷是安变化(不泄雷安)。
|
||||
- 已开 / 未开格态在灰度截图下可逐格分类;已引爆危险格"可通行可读"(已开底加巢穴纹、可作移动目标)。
|
||||
- 类型微光(待实施批落地后验收):微光只在英雄周围 8 格内的未开格显示;出圈即灭、入圈即亮;已开格与封锁格恒无微光;微光呈现不随格是雷是安变化(不泄危险格与安全格)。
|
||||
- 视野迷雾:棋盘仅菱形灯光区内完整渲染;区外已开格灰显可读、区外未开格不可见;灯光区随角色移动跟随;同一张板同一份动作序列,迷雾开关两种状态下的结算结果逐位一致(纯呈现,零游戏数据改动)。
|
||||
- 悬停光标三语义(移动 / 挖 / 旗)随目标切换并高亮目标格;悬停已开格画出合法路径(不可达不显示);可挖域常驻呼吸微光。
|
||||
- 一帧内意图整批到达,停手点击终结当帧收集。
|
||||
@@ -272,11 +275,11 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
- 高光三档:标中旗行金框、清图奖励行金框、完美排雷全屏喝彩级——庆祝不打在空兑现上(首份即零兑付则不发高光)。
|
||||
- 状态槽显示图标加层数加剩余结算次数,悬停见来源;极性按键级表呈现(金满框 / 红缺框),空态整排隐藏、数据框上移补位;战斗结束全清有微文案。
|
||||
- 敌人呈现(站桩立绘,2026-09-20 全站桩拍板后载体由敌人卡改为无框立绘+底座,义务面平移不重述):意图占位 = 本拍摇定结果的动画占位(敌人技能池批三档可见性——普通攻击零表示、特殊技类型级提示〔攻/防系两型〕,不预告技能名与数值、池与权重不公开)且挖掘期全程可见、映射跨局恒定、顺位可读、血量数字可读、敌方共享层数各立绘同值(血条悬浮头顶、状态小图标挂血条正下方);死亡灰化加碎裂退场(禁止瞬间消失)且就地更新不丢灰化态。
|
||||
- 终局:胜利金蜡封、失败暮蓝氛围层(明度不变);储备清零与状态全清两反馈不合并、时序不倒挂(关卡末清库反馈义务载体 = 秘宝背包,随秘宝 P0 落地补验收)。
|
||||
- 终局:胜利金蜡封、失败暮蓝氛围层(明度不变);储备清零与状态全清两反馈不合并、时序不倒挂(关卡末清库反馈义务载体 = 秘宝背包〔关卡域库存恒空机械惰性承载,拆线归实装批——见「轮次生命周期」同款节注于战斗结算〕,随秘宝 P0 落地补验收)。
|
||||
- 任一模态层打开时遮挡物隐藏或输入锁定、关闭逐层恢复;tooltip 与明细行等动态区固定槽高、换行裁剪不推挤布局。
|
||||
- 终局呈现只消费流水与快照:核心对象销毁后呈现层对生命周期状态零回读;终局后重放渲染与实时渲染一致。
|
||||
- 消费的每份载荷逐字段断言通过(缺字段、多字段都算失败)。
|
||||
- 地形变异三层预告(2026-10-04 全局作用域变异首发批——规则正主=地形变异 §全局作用域型):Boss 图开战横幅一行显示且普通图不显示;C 区常驻角标战斗全程可见、空态整节隐藏;帮助手册含整图变异说明行;减动效开启横幅走静态驻留(轮横幅同款双态);普通图三层零打扰(恒空态)。
|
||||
- 地形变异三层预告(2026-10-04 全局作用域变异首发批——规则现行事实源=地形变异 §全局作用域型):Boss 图开战横幅一行显示且普通图不显示;C 区常驻角标战斗全程可见、空态整节隐藏;帮助手册含整图变异说明行;减动效开启横幅走静态驻留(轮横幅同款双态);普通图三层零打扰(恒空态)。
|
||||
- 字号下限成立;无每秒超三次闪烁;减动效开启时时长减半或跳终态(结算兑现降速不跳过);全程纯鼠标可玩;中文渲染无缺字。
|
||||
- 呈现层零随机调用;切片临时名零残留。
|
||||
|
||||
@@ -288,6 +291,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v0.17 | 2026-10-13 | **迭代 21 反哺⑤落文(用户裁「按呈报落文」)**:核心规则新增「营地覆盖层:四柜台并排(程序占位)」小节——树淬炼/锻造工坊/秘宝匣/图鉴四柜台结构实态登记(迭代 21 落地),视觉与布局终稿归 HUD 营地视觉批(未立项);本篇原无营地柜台登记面,随批补缺。机制零改动 |
|
||||
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
||||
| v0.2 | 2026-09-15 | 雾格残留清理:关闭「待拍板」五条雾失义登记(雾图例条目、雾首遇一次性提示、四格态中的两个雾态、雾纹带与已开雾格 tint 残留、雾区全开合并域完成信号)。现行口径 = 格态两态一眼可辨(已开 / 未开)、图例面板只载现行格态与变异语义;通用变异框架的纹带形状通道保留为未来变异类型的呈现位 |
|
||||
| v0.4 | 2026-09-16 | **敌人技能池批(与敌人系统 / 战斗结算 / registry / 切片代码同批)**:敌人卡义务改写——行为环环点拆除(proposal §2.4),意图徽标语义改「本拍摇定结果的动画占位」(普通攻击零表示 / 特殊技类型级提示两型:攻击系 ⚔ / 增益系 ✦),护甲行(护甲类型 + AC)保留常驻;敌方增益显示(蓄力/硬化)入敌卡状态行 + 状态槽图标键增 empower/fortify 两键(状态表九行全映射);呈现快照敌人字段消费面同步(摇定动作三字段 + effects,池与权重不投影);上游敌人系统行与验收条目同步 |
|
||||
@@ -295,11 +299,14 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| v0.5 | 2026-09-17 | 数值纪律收口批:调参表标注文档自持口径(无表承载常量的唯一事实源声明) |
|
||||
| v0.6 | 2026-09-20 | **敌人卡形态裁决收口批(与 battle.md / 战斗表现 / 06 清单同批,台账 99)**:全站桩形态拍板——B 区主角与敌人均为无框立绘+底座、状态小图标挂血条正下方,英雄卡/敌人卡退役;B 区行、敌人呈现义务行(载体由卡改立绘,意图占位/共享层数各立绘同值/死亡灰化退场等义务面平移)、下游战斗表现交付行、就地更新示例措辞四处同步;攻击值等规划数据仍归 C 区数据框(C 区不动)。呈现快照数据面零改动(消费字段不变,只换呈现载体) |
|
||||
| v0.7 | 2026-09-20 | **表现层三批落地 + 义务清单补行(代码同日三批:样式收敛 / 站桩改造 / 结算演出链)**:呈现义务来源清单补「关卡节点地图」行(节点链进度常显 + 选路覆盖层只读呈现——此前漏登记);新增结算演出覆盖层(跨区弹道/光带载体,兑现演出因果可视);减动效承诺落地(UiKit.motion 单点包装全部呈现层 tween 时长,开启时长减半、可挖域呼吸停格;切片期入口 = TunePanel 开关,正式设置层归设置批)。代码侧站桩载体(StandeeView)与卡片退役随 v0.6 裁决执行 |
|
||||
| v0.8 | 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 `../../../dev/architecture/adr-0006-board-node2d-rendering.md` 与 `../../../dev/architecture/board-node2d-migration-plan.md` §1,代码实装另批并行)**:① 战斗屏布局四区 → 三区——删 A 区关卡进度条行(LevelStripView 退役删除,节点链进度呈现移出战斗屏、只留关卡画面);C/D 区纵向 520 → 548;装板校验变量与实算同步(棋盘区高 504、可用高度 488);② 呈现义务来源清单「关卡节点地图」行改承载口径——节点链进度由关卡画面选路覆盖层节点态承载(暗金已过 / 金当前 / 候选下一跳通道亮金 / Boss 旗朱描边),不另设进度条组件;③ 「四区」措辞全线改「三区」(负责表、节题、结构冻结、验收、下游战斗表现交付行),双舞台常驻语义不动。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编(字母是跨文档/代码注释的承载标识);② A 区 28px 纵向空间划归 C/D 底行(520 → 548;1920 档换算仍归表现层升级批);③ 关卡画面进度呈现由选路覆盖层节点态直接承载、不另设进度条组件 |
|
||||
| v0.9 | 2026-09-23 | 渲染技术注记(棋盘 Node2D 迁移批 Phase A,代码实装同批;上位裁决 ADR-0006):棋盘本体 Node2D 化——BoardView 内部由 GridContainer+逐格控件改为 Control 壳 + SubViewport + Node2D 世界,类名/信号/公共方法契约不变、探针零改造;三区布局与性能预算(同屏 draw calls < 200)不变;程序化占位视觉等价平移,素材终稿按 art-bible §8.2 格面 32×32 暂定档槽位 1:1 换入 |
|
||||
| v0.10 | 2026-09-26 | 渲染技术注记(战斗舞台 Node2D 迁移批 Phase B,代码实装同批;上位裁决 ADR-0006):B 区战斗舞台 Node2D 化——BattleStageView 内部由 PanelContainer+Control 站桩改为 Control 壳 + SubViewportContainer + SubViewport + Node2D 世界(StageWorld/StandeeBody),类名/setter 面/公共方法契约不变、调用点零改造;状态图标行与悬停 tooltip 保留 Control 载体挂壳层(伴随件);C6 字体注入挂点复用(set_world_font);三区布局与性能预算(同屏 draw calls < 200)不变;占位表现等价平移(时序常量逐字对照——等价证明=git 提交 7f24b64,文件已按生命周期条款退役) |
|
||||
| v0.8 | 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 = 棋盘/战斗舞台 Node2D 迁移批(已执行完毕,git 历史可查),代码实装另批并行)**:① 战斗屏布局四区 → 三区——删 A 区关卡进度条行(LevelStripView 退役删除,节点链进度呈现移出战斗屏、只留关卡画面);C/D 区纵向 520 → 548;装板校验变量与实算同步(棋盘区高 504、可用高度 488);② 呈现义务来源清单「关卡节点地图」行改承载口径——节点链进度由关卡画面选路覆盖层节点态承载(暗金已过 / 金当前 / 候选下一跳通道亮金 / Boss 旗朱描边),不另设进度条组件;③ 「四区」措辞全线改「三区」(负责表、节题、结构冻结、验收、下游战斗表现交付行),双舞台常驻语义不动。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编(字母是跨文档/代码注释的承载标识);② A 区 28px 纵向空间划归 C/D 底行(520 → 548;1920 档换算仍归表现层升级批);③ 关卡画面进度呈现由选路覆盖层节点态直接承载、不另设进度条组件 |
|
||||
| v0.9 | 2026-09-23 | 渲染技术注记(棋盘 Node2D 迁移批 Phase A,代码实装同批):棋盘本体 Node2D 化——BoardView 内部由 GridContainer+逐格控件改为 Control 壳 + SubViewport + Node2D 世界,类名/信号/公共方法契约不变、探针零改造;三区布局与性能预算(同屏 draw calls < 200)不变;程序化占位视觉等价平移,素材终稿按 art-bible §8.2 格面 32×32 暂定档槽位 1:1 换入 |
|
||||
| v0.10 | 2026-09-26 | 渲染技术注记(战斗舞台 Node2D 迁移批 Phase B,代码实装同批):B 区战斗舞台 Node2D 化——BattleStageView 内部由 PanelContainer+Control 站桩改为 Control 壳 + SubViewportContainer + SubViewport + Node2D 世界(StageWorld/StandeeBody),类名/setter 面/公共方法契约不变、调用点零改造;状态图标行与悬停 tooltip 保留 Control 载体挂壳层(伴随件);C6 字体注入挂点复用(set_world_font);三区布局与性能预算(同屏 draw calls < 200)不变;占位表现等价平移(时序常量逐字对照——等价证明=git 提交 7f24b64,文件已按生命周期条款退役) |
|
||||
| v0.11 | 2026-09-27 | 关卡画面 UX spec 建档([level-map](../../ux/level-map.md),关卡画面 UX 批——用户拍板立项):义务清单「关卡节点地图」行挂屏级 spec 指针;屏级权威行与不负责表改按屏分治口径(战斗屏 = battle.md / 关卡画面 = level-map.md)。文档面零机制改动 |
|
||||
| v0.12 | 2026-09-30 | **未开格类型微光概念收口批(用户裁决落位)**:新增「未开格类型微光」节=全项目唯一正主定义(五要素——作用对象=英雄周围 8 格内的未开格〔与可挖域同圈〕/信息内容=只类型不泄雷安/生命周期=入圈亮出圈灭开格灭/关联边界/实装状态=契约定稿〔样张 v2〕游戏内待实施批);核心规则章六节改七节;呈现义务来源清单「地图战斗资源」行补微光指路;验收标准补微光呈现线。背景:该概念此前只活在 06 登记与 art-bible 复述,「常显/全部未开格」无范围表述酿成理解事故(2026-09-30 用户纠正口径),本批落位正主、他文只许指路 |
|
||||
| v0.13 | 2026-10-04 | **地形变异三层预告义务批(全局作用域变异首发批——迭代 14 ③号卡,代码同批)**:呈现义务来源清单补「地形变异」行(开战横幅一行〔减动效=静态驻留,轮横幅先例同款双态〕+ C 区常驻角标〔空态整节隐藏=奇物段先例,摆位 provisional〕+ 帮助手册一行〔零交互教学〕);验收标准补三层预告线(普通图恒空态零打扰);数据面走呈现快照 board_variants 投影(核心→呈现唯一读取面)。语义正主=地形变异.md §全局作用域型,本文只锁呈现承载 |
|
||||
| v0.14 | 2026-10-03 | **视野迷雾实施批落籍注记(迭代 11 第④批)**:迷雾节补「实施状态」注记(四裁决逐条对账:纯呈现两态逐位一致/暗淡记忆态灰显可读/LIGHT_RADIUS=8 参数化〔提灯 +2 插值位预留未接〕/类型微光仍贴身 8 邻格);实装状态行「待实施批」改「已实装」;验收标准迷雾行去「待实施批落地后验收」括注转正式验收。机制定义零改动(定义一句话/作用范围/生命周期/关联边界/配套拍板全段原样);黑暗区域渲染规格落 art-bible §6.5(v3.5) |
|
||||
| v0.13 | 2026-09-30 | **视野迷雾概念落位批(用户拍板立项)**:新增「视野迷雾」节=正主定义(菱形灯光区+黑暗边界;区外已开格=暗淡记忆态灰显可读、区外未开格=全黑;灯光半径起步=微光环 8 格同圈;纯呈现层,与已退役雾格无关);验收标准补迷雾线;配套拍板随节登记(魔法提灯灯甲外扩 +2 格、类型微光不随视野扩、初始展开收窄后置 Alpha 差异化批)。实施待主线编卡 |
|
||||
| v0.12 | 2026-09-30 | **未开格类型微光概念收口批(用户裁决落位)**:新增「未开格类型微光」节=全项目唯一权威定义(五要素——作用对象=英雄周围 8 格内的未开格〔与可挖域同圈〕/信息内容=只类型不泄危险格与安全格/生命周期=入圈亮出圈灭开格灭/关联边界/实装状态=契约定稿〔样张 v2〕游戏内待实施批);核心规则章六节改七节;呈现义务来源清单「地图战斗资源」行补微光指路;验收标准补微光呈现线。背景:该概念此前只活在 06 登记与 art-bible 复述,「常显/全部未开格」无范围表述酿成理解事故(2026-09-30 用户纠正口径),本批落位权威文档、他文只许指路 |
|
||||
| v0.13 | 2026-10-04 | **地形变异三层预告义务批(全局作用域变异首发批——迭代 14 ③号卡,代码同批)**:呈现义务来源清单补「地形变异」行(开战横幅一行〔减动效=静态驻留,轮横幅先例同款双态〕+ C 区常驻角标〔空态整节隐藏=奇物段先例,摆位 provisional〕+ 帮助手册一行〔零交互教学〕);验收标准补三层预告线(普通图恒空态零打扰);数据面走呈现快照 board_variants 投影(核心→呈现唯一读取面)。语义现行事实源=地形变异.md §全局作用域型,本文只锁呈现承载 |
|
||||
| v0.14 | 2026-10-03 | **视野迷雾实施批入库注记(迭代 11 第④批)**:迷雾节补「实施状态」注记(四裁决逐条对账:纯呈现两态逐位一致/暗淡记忆态灰显可读/LIGHT_RADIUS=8 参数化〔提灯 +2 插值位预留未接〕/类型微光仍贴身 8 邻格);实装状态行「待实施批」改「已实装」;验收标准迷雾行去「待实施批落地后验收」括注转正式验收。机制定义零改动(定义一句话/作用范围/生命周期/关联边界/配套拍板全段原样);黑暗区域渲染规格落 art-bible §6.5(v3.5) |
|
||||
| v0.13 | 2026-09-30 | **视野迷雾概念落位批(用户拍板立项)**:新增「视野迷雾」节=权威定义(菱形灯光区+黑暗边界;区外已开格=暗淡记忆态灰显可读、区外未开格=全黑;灯光半径起步=微光环 8 格同圈;纯呈现层,与已退役雾格无关);验收标准补迷雾线;配套拍板随节登记(魔法提灯灯甲外扩 +2 格、类型微光不随视野扩、初始展开收窄后置 Alpha 差异化批)。实施待主线编卡 |
|
||||
| v0.15 | 2026-10-09 | **文档正确性审查批·独立复核(worktree docaudit-2026-10-09)**:①视野迷雾配套拍板段补魔法提灯退役注(2026-10-09 用户裁——fog_lantern 数据行与卡④接线拆除归退役删行批,功能由新目录「阔视野带」承接,06 登记条在册);②呈现义务清单秘宝行「库存条常读」改「装配件与充能常读」(同调形态无库存条——与秘宝.md v1.7 依赖表对齐)+补在役旧框架注;③P0 闭环第 6 步与验收「终局」条的关卡末清库载体补机械惰性承载注(关卡域库存恒空、拆线归实装批——与战斗结算 v0.28 同款口径);④P1 相邻域屏行「节点奖励屏随秘宝内容重定批」过期批次名清偿(node-reward.md v2.5 令牌池已在役) |
|
||||
| v0.16 | 2026-10-10 | 柜台名扫改(2026-10-10 天赋树设计会话裁「道具工坊」改名「秘宝匣」):迭代 19 卡④入库注记内「营地道具工坊同调装配获渠」改「营地秘宝匣同调装配获渠」。机制与接线零改动 |
|
||||
| v0.18 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 5 处——核心规则导语「收口」→「完成」;装板校验「报错中止」→「显示错误并中止」;迷雾实施状态注记「随批」→「顺带」2 处(探针断言扩、测试引导语);营地覆盖层注记「随批补缺」→「顺带补缺」。机制、数值、结构零改动 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:存档契约与版本迁移
|
||||
> 状态:已定稿(2026-09-21 存档序列化批落地)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/systems-index.md(旧体系未单独成文,散见于归档索引)
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -57,20 +56,28 @@ SaveManager 不依赖任何玩法系统就能工作:它是被动的承载方
|
||||
|
||||
第二条边界是反面清单:局内资源不入存档。行动点、储备行动点、道具库存、生命账本、GP(金币)全部单局清零——各归各的系统管,没有局内数值需要持久化。若未来某局内资源要开放跨局携带(如储备行动点跨战斗携带),须修订其池规则并向本系统登记持久化归属,禁止静默超域。
|
||||
|
||||
**唯一豁免 = `breakpoint` 断点域**(2026-09-29 迭代 8 卡①随批修订):断点是冒险进行中的瞬态快照,不是跨局携带——里面的生命/GP/道具库存只在「续玩上局」时还原进局内,冒险收束(通关/失败/放弃)即整域清除,永远不会渗进永久进度。反面清单的管辖对象因此收窄为 `meta` 永久进度域(冒烟域界扫描随批收窄到 meta 域);断点域自身的字段口径归[冒险结构](../冒险循环/冒险结构.md)登记。
|
||||
**唯一豁免 = `breakpoint` 断点域**(2026-09-29 迭代 8 卡①顺带修订):断点是冒险进行中的瞬态快照,不是跨局携带——里面的生命/GP/道具库存只在「续玩上局」时还原进局内,冒险收束(通关/失败/放弃)即整域清除,永远不会渗进永久进度。反面清单的管辖对象因此收窄为 `meta` 永久进度域(冒烟域界扫描顺带收窄到 meta 域);断点域自身的字段口径归[冒险结构](../冒险循环/冒险结构.md)登记。
|
||||
|
||||
存档是单文件 JSON(`user://save.json`),字典键一律字符串。数据模型:
|
||||
存档是单文件 JSON(`user://save.json`),字典键一律字符串。数据模型(现行 = v6;示例值全为零值默认态):
|
||||
|
||||
```json
|
||||
{
|
||||
"version": 2,
|
||||
"version": 6,
|
||||
"meta": {
|
||||
"keystone_balance": 0,
|
||||
"forge_levels": {"max_hp": 0, "atk": 0, "armor_class": 0},
|
||||
"item_unlocks": {},
|
||||
"level_clear_counts": {"1": 0, "2": 0, "3": 0},
|
||||
"boss_first_kill": {},
|
||||
"recent_summaries": []
|
||||
"boss_kill_count": {},
|
||||
"attunement_equipped": [],
|
||||
"attune_refresh_level": 0,
|
||||
"tree_nodes": {},
|
||||
"fork_sides": {},
|
||||
"tree_struct": 2,
|
||||
"recent_summaries": [],
|
||||
"first_adventure_done": false,
|
||||
"adventure_total": 0,
|
||||
"adventure_cleared": 0
|
||||
},
|
||||
"breakpoint": {}
|
||||
}
|
||||
@@ -83,10 +90,24 @@ SaveManager 不依赖任何玩法系统就能工作:它是被动的承载方
|
||||
| `item_unlocks` | 已解锁道具集合(道具工坊消费) | [元进度](../跨局循环/元进度.md) |
|
||||
| `level_clear_counts` | 每关通关次数(键 = 关卡序号字符串) | [元进度](../跨局循环/元进度.md) |
|
||||
| `boss_first_kill` | Boss 首杀标记位(键 = 关卡序号字符串) | [元进度](../跨局循环/元进度.md) |
|
||||
| `boss_kill_count` | Boss 击杀总数(含重复——同调位增长谓词计数源,v4) | [元进度](../跨局循环/元进度.md) |
|
||||
| `attunement_equipped` | 同调装配关系持久(冒险中途不可换装,v4) | [秘宝](../跨局循环/秘宝.md)(承载语义归[元进度](../跨局循环/元进度.md)) |
|
||||
| `attune_refresh_level` | 营地刷新升级(Y 源)等级(v4) | [秘宝](../跨局循环/秘宝.md)(三选一刷新双源) |
|
||||
| `tree_nodes` | 天赋树已购等级(node_id→int,v5) | [天赋树](../跨局循环/天赋树.md) |
|
||||
| `fork_sides` | Fork 组激活侧(fork_group→a/b,v5) | [天赋树](../跨局循环/天赋树.md) |
|
||||
| `tree_struct` | 树结构版本标记(=TREE_STRUCT_VERSION,迭代 21 T5;缺失 = 换代前结构,加载废弃重置) | [天赋树](../跨局循环/天赋树.md) |
|
||||
| `recent_summaries` | 最近冒险摘要副本,最新在前,最多 10 条 | [冒险结构](../冒险循环/冒险结构.md) |
|
||||
| `first_adventure_done` | 首冒险完成标记(新档默认 false;旧档缺省按已完成兜底) | [元进度](../跨局循环/元进度.md) |
|
||||
| `adventure_total` | 冒险总局数终身计数(开局即计、含放弃与失败,v6) | [生涯](../跨局循环/生涯.md) |
|
||||
| `adventure_cleared` | 通关局数终身计数(三关全通才计 1,v6;秘宝条件解锁计数键) | [生涯](../跨局循环/生涯.md) |
|
||||
| `vision_used` | 真视类工具累计使用次数终身计数(迭代 22 新增——信标网络解锁行为条件;**v6 域后扩列补零、不升版本**;写入唯一经 `add_vision_used`,冒险收束聚合入账;断点随件键=`vision_counter_used`,续玩回填缺省 0) | [秘宝](../跨局循环/秘宝.md) |
|
||||
| ~~`forge_levels`~~ | ~~属性锻造三档等级~~ | **已退役**(迭代 21 T5:行族/访问器/域随攻防所有权切分删除——`save_manager.gd:12-14/:399-401` 白名单收窄;继任 = 锻造工坊路线等级域,见下行计划登记) |
|
||||
| `forge_routes`(**已落地 v7——锻造工坊实装批 T5,迭代 23**) | {levels: 六路线等级(sword/spear/staff/light/heavy/ward), unlocked: 直购解锁路线 id 清单, weapon: 当前武器路线 id, armor: 当前甲路线 id};无特效域;旧档缺键补齐 = 初始持有态 | [锻造工坊](../跨局循环/锻造工坊.md) |
|
||||
| `breakpoint` | 冒险断点快照(停点粒度续玩域;空字典 = 无断点合法态——「继续上局」隐藏) | [冒险结构](../冒险循环/冒险结构.md) |
|
||||
|
||||
消费面纪律:其他系统只经 SaveManager 的类型化访问器(读余额/加钥石/花钥石、读写锻造等级等)与域更新原语(`apply_adventure_summary`)操作存档,不碰内部数据结构。
|
||||
v4/v5/v6 各域缺键由读取方按默认值补齐(空集合/0),旧档零迁移损失;收束自增域(通关次数/Boss 计数/终身计数/真视使用计数)的唯一入账点 = `apply_adventure_summary`(vision_used 走 `add_vision_used` 收束)。**v6 域后扩列不升版先例**:`vision_used`(迭代 22,2026-10-12——迭代 21 同款口径;断点随件 `vision_counter_used` 同批新增;旧断点随件键 `bonus_aux_carry` 已随替换子交互拆除退役,迭代 22 T5)。
|
||||
|
||||
消费面纪律:其他系统只经 SaveManager 的类型化访问器(读余额/加钥石/花钥石、读写树等级等)与域更新原语(`apply_adventure_summary`)操作存档,不碰内部数据结构。
|
||||
|
||||
### 读写时机
|
||||
|
||||
@@ -108,7 +129,7 @@ SaveManager 不依赖任何玩法系统就能工作:它是被动的承载方
|
||||
|
||||
### 版本与迁移
|
||||
|
||||
存档带版本字段(`version`,当前 = 2:v2 = 断点域出生〔迭代 8 卡①〕,与 registry `schema_version` 同源)。三条走向:
|
||||
存档带版本字段(`version`,当前 = **7**;版本沿革:v2 = 断点域出生〔迭代 8 卡①〕→ v3 = 断点附随件扩列 + 摘要 keystone_drops〔迭代 10 奖励重构〕→ v4 = 同调批扩域〔boss_kill_count / attunement_equipped / attune_refresh_level,迭代 11 第①批〕→ v5 = 天赋树域〔tree_nodes / fork_sides,迭代 12〕→ v6 = 生涯终身计数域〔adventure_total / adventure_cleared,迭代 18 卡④〕→ **v7 = 锻造工坊域〔forge_routes,迭代 23 T5——已落地:{levels 六路线等级 + unlocked 直购解锁清单 + weapon/armor 当前选中标记},无特效域;旧档缺键由 _normalize 按默认补齐 = 初始持有态(sword/light 在档、余四锁、选中=初始路线),v6→v7 空迁移 = 缺键补齐模式(v3→v4 先例);开发阶段禁迁移禁折算——契约 4〕**;与 registry `schema_version` 同源)。三条走向:
|
||||
|
||||
| 情形 | 处置 |
|
||||
|---|---|
|
||||
@@ -116,7 +137,7 @@ SaveManager 不依赖任何玩法系统就能工作:它是被动的承载方
|
||||
| 版本更高(未来版本的档) | **拒读且禁写**:不加载、后续写盘一律拒绝、内存以默认新档运行——保护未来版本的档不被当前版本覆写 |
|
||||
| 版本更低(旧档) | 读档时逐级迁移:从旧版本起逐个调用注册的迁移函数升到当前版本;任一步失败按损坏兜底处理 |
|
||||
|
||||
迁移函数经 `register_migration(旧版本号, 函数)` 注册:函数把数据从「旧版本」改写成「旧版本 + 1」。生产迁移链当前一件:v1→v2 = 断点域补空(旧档无断点 = 合法空态,非损坏非债务,迭代 8 卡①随批注册)。
|
||||
迁移函数经 `register_migration(旧版本号, 函数)` 注册:函数把数据从「旧版本」改写成「旧版本 + 1」。生产迁移链现行六件(v2 起自注册):v1→v2 = 断点域补空;v2→v3 = 断点附随件与摘要 keystone_drops 补键(读取方 .get 兜底);v3→v4 = 同调三域补键;v4→v5 = 树域两键补齐(原挂接的「三体系迁移」体已随迭代 21 T5 攻防所有权切分删除——`save_manager.gd:96-98`、`meta_progression.gd:294-295` 实证;forge_levels 旧域同批清退,加载时按默认模型键集白名单收窄,`save_manager.gd:399-401`);v5→v6 = 生涯两终身计数域补零;**v6→v7 = 锻造工坊域 forge_routes 缺键补齐(迭代 23 T5——无结构迁移体,版本号推进仅为 schema_version 对齐;解锁态派生不落档:初始持有〔表 initial_owned〕∨ 直购〔unlocked 清单〕∨ 练满前一档〔levels[prereq]≥cap〕)**。任一步失败按损坏兜底处理。
|
||||
|
||||
### 损坏兜底
|
||||
|
||||
@@ -145,12 +166,12 @@ MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)把单
|
||||
|
||||
## 调参表
|
||||
|
||||
本系统没有玩法调参数值。两个结构常量登记在 registry `save_file` 条目:存档版本号(=2,与 registry `schema_version` 同源)、最近摘要保留条数(10)。二者是结构契约不是平衡值,改动属于版本迁移事件,不走调参批。
|
||||
本系统没有玩法调参数值。两个结构常量登记在 registry `save_file` 条目:存档版本号(=6,与 registry `schema_version` 同源)、最近摘要保留条数(10)。二者是结构契约不是平衡值,改动属于版本迁移事件,不走调参批。
|
||||
|
||||
## 验收标准
|
||||
|
||||
- 往返一致:全部域写入非默认值 → 写盘 → 新实例读回,逐域逐值相等(冒烟承载)。
|
||||
- 钥石不丢:写入、读回与迁移不得破坏[元进度](../跨局循环/元进度.md)的钥石只增不减判据;余额不足的消费被拒绝且无副作用(冒烟承载)。
|
||||
- 钥石不丢:写入、读回与迁移禁止破坏[元进度](../跨局循环/元进度.md)的钥石只增不减判据;余额不足的消费被拒绝且无副作用(冒烟承载)。
|
||||
- 高版本拒读禁写:高版本档加载被拒、原文件字节不动、后续写盘被拒且文件仍字节不动(冒烟承载)。
|
||||
- 改版不弃档:旧版本档经迁移链读回;低版本档缺新域按默认补齐,既有值保留(冒烟承载)。
|
||||
- 断点域契约(迭代 8 卡①):七字段拍板面写读往返逐位一致;旧档无断点域迁移为合法空态;三结局清除(冒烟+单测承载)。
|
||||
@@ -170,3 +191,9 @@ MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)把单
|
||||
| v1.1 | 2026-09-23 | 单关测试直入口(L2/L3)退役(用户拍板——唯一试玩入口 = 完整冒险):不写档条款改口径为「调试两层与 headless 单关测试路径(LevelRunner.start_level,仅 QA 工具)」;写盘面零改动(正式冒险收束唯一写档点不变) |
|
||||
| v1.2 | 2026-09-29 | **断点域出生(迭代 8 卡①,schema v1→v2)**:`breakpoint` 域登记(停点粒度续玩快照,内容 owner=冒险结构);反面清单收窄到 meta 域+断点域豁免条款;写盘时机+停点快照/三结局清除;生产迁移链 v1→v2 补空;P1 快照预挂号兑现(rng `restore_adventure` 回填面);域界验收口径随改 |
|
||||
| v1.3 | 2026-10-01 | **版本兼容口径批(迭代 10 追加批 g 裁——用户拍板:版本兼容对齐 semantic version 标准)**:①版本策略成文口径——本域版本号语义 = **向后兼容的次序版本**:升版只允许「旧档在新代码可读可玩可续玩」(缺新键=合法空态、内容零丢失、断点可续),禁「新档在旧代码可读」承诺(向前兼容不做);②v2→v3 迁移体=空迁移(断点附随件扩列〔bonus_taken/bonus_pending/bonus_result/bonus_aux_carry/keystone_drops + bonus.ap 轴〕与摘要 additive 键 keystone_drops 均由读取方 .get 兜底——兼容性由冒烟 v1→v3 与 v2→v3 断点续玩断言承载,2026-10-01 增);③中断节点兼容义务:每升版必须在冒烟断言「旧版断点→新版续玩受理」(现行三档 v1/v2/v3 齐) |
|
||||
| v1.4 | 2026-10-09 | **文档正确性审查批·独立复核(worktree docaudit-2026-10-09——版本滞后四代换代,全部代码实证 save_manager.gd SAVE_FORMAT_VERSION=6)**:①数据模型 JSON 与域清单表换代 v2→v6——补 v4 同调三域(boss_kill_count/attunement_equipped/attune_refresh_level,迭代 11①)、v5 树域(tree_nodes/fork_sides,迭代 12)、v6 生涯两终身计数域(adventure_total/adventure_cleared,迭代 18 卡④)逐域 owner 行;②版本与迁移节换代——当前=6、迁移链五件(v1→v2…v5→v6,含 v4→v5 三体系迁移指路天赋树);③调参表版本常量 2→6;④缺键补齐纪律句补记(读取方默认补零/空集合,收束自增唯一入账=apply_adventure_summary)。注:v3/v4/v5/v6 四次升版当时均未回写本文,本批一次性清偿 |
|
||||
| v1.5 | 2026-10-12 | **锻造工坊完备性检查批随迁(用户令:新加内容现在补、不等实装批)**:①**预登记锻造路线域**(计划 v7):域清单表 + 版本沿革补 `forge_routes`(三武器等级+三甲等级+当前选中标记、无特效域、旧档破坏性废弃归锻造工坊实装批;域名以实装批定名为准);②**清偿 forge_levels 残留**——JSON 示例、域清单表删该域(代码侧已随迭代 21 T5 删除:`save_manager.gd:12-14/:399-401` 白名单收窄);迁移链 v4→v5 的「三体系迁移」体改述为已删除(`save_manager.gd:96-98`、`meta_progression.gd:294-295`);③**补登两漏域**(代码实证 `save_manager.gd:119-139`):`tree_struct`(树结构版本标记,迭代 21 T5,缺失=换代前结构加载废弃重置,owner 天赋树)、`first_adventure_done`(首冒险完成标记,新档默认 false、旧档缺省按已完成兜底,`meta_progression.gd:100` 置位,owner 元进度);④消费面纪律句「读写锻造等级」→「读写树等级」(访问器已随行族退役删除)。版本号常量仍 =6(v7 未落地) |
|
||||
| v1.6 | 2026-10-12 | **迭代 22 反哺落文批(实现报告 §三⑥,用户裁「落文」)**:域清单表补 `vision_used` 行(真视使用终身计数,迭代 22 新增,v6 域后扩列补零不升版本——迭代 21 先例;断点随件 `vision_counter_used` 同批新增、旧随件键 `bonus_aux_carry` 随替换子交互拆除退役);缺键补齐纪律句补 v6 扩列注;零迁移口径复核=SAVE_FORMAT_VERSION 仍 6(`save_manager.gd:49`),无迁移分支新增 |
|
||||
| v1.7 | 2026-10-12 | **锻造工坊实装批随迁(迭代 23 T5——v7 落地;承 v1.6 的 vision_used 登记)**:①域清单表 `forge_routes` 计划行→实际落地态({levels 六路线等级 + unlocked 直购解锁清单 + weapon/armor 当前选中标记},域内键名以实装批定名);②版本与迁移节——当前 =7、迁移链补 v6→v7(空迁移=缺键补齐模式,解锁态派生不落档三通道);③旧档口径订正——「破坏性废弃」→「缺键补齐 = 初始持有态」(开发阶段禁迁移禁折算纪律不变,契约 4);④域界注记——forge_routes 属 meta 永久进度域(契约 2 反面清单不涉) |
|
||||
| v1.8 | 2026-10-13 | **Y 断点随存缺陷修批(06「天赋树实装批登记欠账三条」③——用户令单独开修)**:断点域扩列随件键 `attune_refresh_y`(Y 冒险周期池消耗余量——续玩优先读断点、不自参数面整额重注入=堵「用完退菜单再续玩满血复活」可利用漏洞;旧断点缺键回退参数面整额注入=旧档行为零变化);**v7 域后扩列不升版**(v1.6 vision_used 先例同款,SAVE_FORMAT_VERSION 仍 7、无迁移分支新增);断点字段口径 owner=冒险结构(v0.21 随批登记) |
|
||||
| v1.9 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 5 处——断点域豁免注记「随批」→「顺带」2 处;「白名单收口」→「白名单收窄」2 处(forge_levels 退役行与迁移链 v4→v5 述——「收口」系白名单收紧义,按本篇既有词「收窄」就近改写);钥石判据「不得破坏」→「禁止破坏」。域、版本、迁移语义零改动 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:新手教学与提示
|
||||
> 状态:范围草案(待设计)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/systems-index.md(旧体系未单独成文,散见于归档索引)
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -56,16 +55,16 @@ HUD 框架定稿时已为教学留好两个承载位,本系统的内容将来
|
||||
|---|---|---|
|
||||
| 行动点价目 | [行动经济](../排雷循环/行动经济.md) | 挖 / 插旗各花多少、移动与连锁免费 |
|
||||
| 储备池清零提示 | [行动经济](../排雷循环/行动经济.md) | 必须说清"储备行动点在战斗结束时清零",防止"攒的钱凭空没了"的误读 |
|
||||
| 旗是一次性承诺的首遇提示 | [排雷玩法](../排雷循环/排雷玩法.md)(插旗不可逆批 2026-09-19) | 经典扫雷玩家会习惯性右键拔旗——本作旗不能拔,插上就是承诺;想改主意就左键直接挖开(安全格零奖励、雷格吃挖雷惩罚)。每场冒险提示一次,非模态 |
|
||||
| 旗是一次性承诺的首遇提示 | [排雷玩法](../排雷循环/排雷玩法.md)(插旗不可逆批 2026-09-19) | 经典扫雷玩家会习惯性右键拔旗——本作旗不能拔,插上就是承诺;想改主意就左键直接挖开(安全格零奖励、危险格吃挖雷惩罚)。每场冒险提示一次,非模态 |
|
||||
| chord 不存在的首遇提示 | [HUD 框架](HUD框架.md)(承接排雷玩法的呈现义务) | 经典扫雷玩家会习惯性双击数字格——本作没有 chord,点数字格 = 移动小人。每场冒险提示一次,非模态 |
|
||||
| 挖非相邻格的首次提示 | [HUD 框架](HUD框架.md) | 挖与旗都限小人 8 向相邻的格子,第一次越界操作时提示 |
|
||||
| 增益叠层节奏 | [增益状态](../战斗循环/增益状态.md) | "同一轮拿满优于跨轮慢慢叠"——增益有结算次数衰减,教学要传达这个节奏 |
|
||||
| 库存关卡末清空 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 道具库存随关卡结束清空,需有反馈与教学条目 |
|
||||
| 库存关卡末清空 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 道具库存随关卡结束清空,需有反馈与教学条目(清空对象=关卡域库存——秘宝过渡形态机械惰性承载、投放渠道全退役后恒空,拆线归实装批;本条目随拆线失效) |
|
||||
| Boss 图整图变异说明行 | [地形变异](../排雷循环/地形变异.md)(全局作用域变异首发批 2026-10-04) | Boss 图整图变异(贫矿脉——生存资源变薄、进攻资源变肥)开战横幅与 HUD 角标常驻预告;帮助手册一行承载常量性知识(零交互教学——「手册零再教」承载位,见 HUD 框架玩法帮助文案块) |
|
||||
|
||||
### 内容原则
|
||||
|
||||
- **整体后置**:教学引导是 MVP 之后的打磨项(见 [不做清单](../../05-不做清单.md):先验证核心循环,再谈好听好看),里程碑定位 Alpha。
|
||||
- **整体后置**:教学引导是 MVP 之后的打磨项(见 [不做清单](../../05-不做清单.md):先验证核心循环,再谈好听好看);改排 **Beta 阶段**(2026-10-04 用户拍板——当前 Alpha 版不做教学相关工作,登记见 [06-待办清单](../../06-待办清单.md)教学引导节头注记)。
|
||||
- **一次性提示**:首次触发类提示每场冒险至多出现一次,不反复轰炸。
|
||||
- **只教规则,不替玩家玩**:教学解释规则与因果,不提供自动操作或"最优解"提示。
|
||||
|
||||
@@ -81,13 +80,13 @@ HUD 框架定稿时已为教学留好两个承载位,本系统的内容将来
|
||||
|
||||
## P0 最小闭环
|
||||
|
||||
教学引导整体后置,MVP 不要求最小闭环。Alpha 期的最小集合候选:三动作教学 + 行动点价目 + "扫雷的因 = 战斗的果"归因提示 + chord 首遇提示。
|
||||
教学引导整体后置,MVP 不要求最小闭环。Alpha 期的最小集合候选:三动作教学 + 行动点价目 + chord 首遇提示。
|
||||
|
||||
## P1 / P2 后置
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 教学引导全体 | MVP 打磨项排后(不做清单),里程碑 Alpha |
|
||||
| P1 | 教学引导全体 | MVP 打磨项排后(不做清单);**Beta 阶段**(2026-10-04 用户拍板改排) |
|
||||
| P2 | 可重看的教学手册(图例面板兼任) | 待教学形态定稿后评估 |
|
||||
|
||||
## 调参表
|
||||
@@ -117,4 +116,5 @@ HUD 框架定稿时已为教学留好两个承载位,本系统的内容将来
|
||||
| v0.1 | 2026-09-14 | 自归档线索整合为范围草案(旧体系未单独成文) |
|
||||
| v0.2 | 2026-09-15 | 雾格残留清理:删除「待拍板」的雾类教学条目失义登记(图例条目"迷雾 = 无雷盲区"与雾格首遇三要点提示),"待设计问题清单"第 3 条去掉雾条目删除的限定。教学条目清单与承载设施不变 |
|
||||
| v0.3 | 2026-09-17 | 数值纪律收口批:呈现常量复述改指路 HUD 框架调参表 |
|
||||
| v0.4 | 2026-10-04 | **地形变异手册行批(全局作用域变异首发批——迭代 14 ③号卡,代码同批)**:已登记的教学条目表补「Boss 图整图变异说明行」——三层预告中的手册层承载(帮助文案块一行,零交互教学),横幅/角标两层归 HUD 框架;语义正主=地形变异.md §全局作用域型 |
|
||||
| v0.4 | 2026-10-04 | **地形变异手册行批(全局作用域变异首发批——迭代 14 ③号卡,代码同批)**:已登记的教学条目表补「Boss 图整图变异说明行」——三层预告中的手册层承载(帮助文案块一行,零交互教学),横幅/角标两层归 HUD 框架;语义现行事实源=地形变异.md §全局作用域型 |
|
||||
| v0.5 | 2026-10-09 | **文档正确性审查批·独立复核(worktree docaudit-2026-10-09)**:①内容原则与 P1 后置「里程碑定位 Alpha」改排 **Beta 阶段**(2026-10-04 用户拍板教学引导整体改排,06 节头注记在案——本文漏同步);②教学条目「库存关卡末清空」行补机械惰性承载注(清空对象=关卡域库存恒空、拆线归实装批,本条目随拆线失效——与战斗结算 v0.28 同款口径) |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:数值表与单一事实源管线
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/d2-data-config.md
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -59,25 +58,24 @@
|
||||
|---|---|---|
|
||||
| 行动经济表 `ActionEconomyTable` | 每轮行动点、动作价目、停手与刷新门槛 | [行动经济](../排雷循环/行动经济.md) |
|
||||
| 棋盘生成参数表 `BoardGenTable` | 板尺寸、雷密度、可推理率目标等(进度键表) | [棋盘生成](../排雷循环/棋盘生成.md) |
|
||||
| 变异表 `VariationTable` | 变异类型清单(现行六行两轴×三关(2026-09-20 落地)) | [地形变异](../排雷循环/地形变异.md) |
|
||||
| 变异表 `VariationTable` | 变异类型清单(现行六行:region 六行两轴×三关〔2026-09-20 落地〕;首发 global 整图型贫矿脉 2026-10-16 用户令屏蔽删行,global 型机制代码保留) | [地形变异](../排雷循环/地形变异.md) |
|
||||
| 敌人表 `EnemyTable` | 敌种基线数值、遭遇数量区间、护甲类型、技能池模板(进度键表) | [敌人系统](../战斗循环/敌人系统.md) |
|
||||
| 技能表 `SkillTable` | 技能行定义(类型/倍率/冷却/增益引用)与保底阈值 | [敌人系统](../战斗循环/敌人系统.md) |
|
||||
| 主角表 `HeroTable` | 主角生命上限与基础攻击 | [敌人系统](../战斗循环/敌人系统.md) |
|
||||
| 主角表 `HeroTable` | 主角生命上限、基础攻击与护甲等级(armor_class)等单行战斗数值 | [敌人系统](../战斗循环/敌人系统.md) |
|
||||
| 状态效果表 `StatusEffectTable` | 增益/减益效果定义行 | [增益状态](../战斗循环/增益状态.md) |
|
||||
| 奖励表 `RewardTable` | 奖励条目、类别、权重与档位 | [地图战斗资源](../战斗循环/地图战斗资源.md) |
|
||||
| 奖励配置表 `RewardConfigTable` | 奖励供给控制参数(单行全局) | [地图战斗资源](../战斗循环/地图战斗资源.md) |
|
||||
| 结算表 `SettlementTable` | 结算段序、当量参考敞口、封顶与克制矩阵(单行全局) | [战斗结算](../战斗循环/战斗结算.md) |
|
||||
| 秘宝表 `AuxItemTable` | 秘宝定义行 | [秘宝](../排雷循环/秘宝.md) |
|
||||
| 秘宝表 `TreasureItemTable`(`treasure_items.tres`) | 秘宝定义行 | [秘宝](../跨局循环/秘宝.md) |
|
||||
| 难度表 `DifficultyTable` | 难度修饰乘数(占位空表) | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| 关卡表 `LevelTable` | 逐关节点图与层名 | [冒险结构](../冒险循环/冒险结构.md) |
|
||||
| 冒险表 `AdventureTable` | 关卡大奖励与钥石入账(单行全局) | [冒险结构](../冒险循环/冒险结构.md) |
|
||||
| 元进度表 `MetaTable` | 元进度字段(已建表(2026-09-21,四行族)) | [元进度](../跨局循环/元进度.md) |
|
||||
| 元进度表 `MetaTable` | 元进度字段(已建表 2026-09-21——现行五行族:属性锻造 / Boss 钥石 / 工坊阈值 / 换算率 / 同调刷新升级行族,顺带扩列) | [元进度](../跨局循环/元进度.md) |
|
||||
|
||||
举证:本节为数据纪律约定,无计算。违规检测 = 静态扫描加人工复核,随各表回填定稿与里程碑检查执行。
|
||||
|
||||
### 统一随机流:随机只从一个服务按号取,同种子必同局
|
||||
|
||||
全项目的随机数只经随机服务的统一流发放(ADR-0007 裁丙,2026-09-27 七流并一并加全事件日志)。统一流(本文含义:唯一主种子 + 唯一派生公式〔单盐〕+ 唯一全局取数计数器)是对"随机即失控"的制度化设防:玩法代码禁止自建随机源、禁止调用全局随机函数。目的只有一个——同一条主种子(master_seed,一场冒险的随机源头数字,由冒险结构在冒险开始时注入,仅全局计数器归零时受理)驱动下,相同决策序列必然跑出相同结果,这是回放、审计与自动化测试共同的立足点。
|
||||
全项目的随机数只经随机服务的统一流发放(2026-09-27 用户两轮复裁,七流并一并加全事件日志)。统一流(本文含义:唯一主种子 + 唯一派生公式〔单盐〕+ 唯一全局取数计数器)是对"随机即失控"的制度化设防:玩法代码禁止自建随机源、禁止调用全局随机函数。目的只有一个——同一条主种子(master_seed,一场冒险的随机源头数字,由冒险结构在冒险开始时注入,仅全局计数器归零时受理)驱动下,相同决策序列必然跑出相同结果,这是回放、审计与自动化测试共同的立足点。
|
||||
|
||||
取号按用途标签记账。用途标签(本文含义:取号时声明的用途名,只进事件日志、不参与种子派生)沿用并流前七条流名作封闭词表——标签让日志可读,也让"哪类事件在什么时机取号"仍保有登记位:
|
||||
|
||||
@@ -90,7 +88,7 @@
|
||||
|
||||
取数有两个入口。玩法代码用取号入口:每调用一次,全局计数器加一并派生新种子,同一事件内共享同一实例。测试与预览用纯函数入口:按指定全局序号计算种子、不推计数器——预览不污染正式序列。种子由登记的派生公式计算(单盐),纯函数、跨引擎版本恒定,并登记了可复算的黄金向量。
|
||||
|
||||
全事件日志(并流批新增):冒险开始即开日志会话(user://logs/rng_log_<主种子>.jsonl),每次取数落一行——全局序号、用途标签、派生种子。号位在全序账本下不再单独回答"第 N 次某类事件"(路线依赖为 ADR-0007 已裁决代价),单点定位与复盘由日志承载。写盘失败只告警降级,不致命、不影响玩法随机。
|
||||
全事件日志(并流批新增):冒险开始即开日志会话(user://logs/rng_log_<主种子>.jsonl),每次取数落一行——全局序号、用途标签、派生种子。号位在全序账本下不再单独回答"第 N 次某类事件"(路线依赖为已裁决代价),单点定位与复盘由日志承载。写盘失败只告警降级,不致命、不影响玩法随机。
|
||||
|
||||
生命周期:进程启动后流待命(未注入主种子就取数,致命中止,禁止默认种子兜底)→ 冒险开始注入主种子并开日志会话 → 冒险中按事件取号(全局计数器只增不重置)→ 冒险结束流保留供复盘。续玩与复盘的快照 = 主种子加全局取数计数器,由[存档序列化](存档序列化.md)消费;快照切出须发生在没有在用取号实例的时刻。要新增随机用途(含战斗内随机),走扩签通道:改代码加用途标签并通过评审——词表封闭是刻意的设卡。
|
||||
|
||||
@@ -98,11 +96,11 @@
|
||||
|
||||
### fail-fast 校验:宁可启动失败,不带病运行
|
||||
|
||||
数据出错的处置只有一条铁律:致命中止,无软回退——错误数值上线比崩溃更伤信任底线。fail-fast(本文含义:校验不通过宁可立即中止,也不带着错误数据继续运行)按两个时机分开承载:加载期错误先收集后统一报错,一次看全所有错再中止;运行期错误当场致命,两者处置分开。
|
||||
数据出错的处置只有一条铁律:致命中止,无软回退——错误数值上线比崩溃更伤信任底线。fail-fast(本文含义:校验不通过宁可立即中止,也不带着错误数据继续运行)按两个时机分开承载:加载期错误先收集后统一显示错误,一次看全所有错再中止;运行期错误当场致命,两者处置分开。
|
||||
|
||||
| 错误类别 | 什么情况 | 处置 |
|
||||
|---|---|---|
|
||||
| 加载期校验错误 | 字段越界、类型不符、表为空、缺入口锚行、重复键、权重和为零、悬空引用、段序违例 | 收集后统一报错,致命中止并输出错误清单 |
|
||||
| 加载期校验错误 | 字段越界、类型不符、表为空、缺入口锚行、重复键、权重和为零、悬空引用、段序违例 | 收集后统一显示错误,致命中止并输出错误清单 |
|
||||
| 运行期致命 | 进度坐标越域请求、未设主种子就取随机数 | 不分构建走致命错误路径;无窗口模式进程非 0 退出 |
|
||||
|
||||
```
|
||||
@@ -153,7 +151,7 @@
|
||||
| 下游 | [增益状态](../战斗循环/增益状态.md) | 状态效果表承载;悬空引用校验的被指方 |
|
||||
| 下游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 奖励表与奖励配置表承载;reward_roll 流取号 |
|
||||
| 下游 | [战斗结算](../战斗循环/战斗结算.md) | 结算表承载;热重载闸门置位与复位;encounter 流取号 |
|
||||
| 下游 | [秘宝](../排雷循环/秘宝.md) | 秘宝表承载 |
|
||||
| 下游 | [秘宝](../跨局循环/秘宝.md) | 秘宝表承载 |
|
||||
| 下游 | [冒险结构](../冒险循环/冒险结构.md) | 关卡表与冒险表承载(登记现状见「待办」);主种子注入入口 |
|
||||
| 下游 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | 难度表承载(占位);进度坐标查行的消费方 |
|
||||
| 下游 | [元进度](../跨局循环/元进度.md) | 元进度表占位承载 |
|
||||
@@ -165,7 +163,7 @@
|
||||
|
||||
1. 结构先行:交付全部表结构类与占位表(含键结构),先有格子。
|
||||
2. 各回填责任方按系统定稿顺序回填数值。
|
||||
3. 进程启动:逐表加载、逐表校验,错误收集后统一报错;全绿进入就绪态。
|
||||
3. 进程启动:逐表加载、逐表校验,错误收集后统一显示错误;全绿进入就绪态。
|
||||
4. 全部系统经全局读取口读数,无第二取数路径。
|
||||
5. 冒险开始注入主种子并开事件日志会话,统一流按事件取号。
|
||||
6. 调试构建热重载即改即验:战斗中被闸门拒绝,结束后手动再触发。
|
||||
@@ -189,7 +187,7 @@
|
||||
|---|---|---|
|
||||
| 表路径清单 | data/tables/ 固定(调试注入根除外) | 冻结:散装路径破坏单点访问 |
|
||||
| 表结构版本常量 `SCHEMA_VERSION` | 当前 = 2(v2=断点域出生,迭代 8 卡①,与存档 SAVE_FORMAT_VERSION 同源) | 全部表结构携带版本字段;高于当前支持的版本拒读,比较逻辑归[存档序列化](存档序列化.md) |
|
||||
| 随机流口径 | 统一流单盐单计数器 + 七用途标签封闭词表 | 统一口径为 ADR-0007 裁决;扩签 = 改代码 + 评审,有意设卡 |
|
||||
| 随机流口径 | 统一流单盐单计数器 + 七用途标签封闭词表 | 统一口径为 2026-09-27 裁决;扩签 = 改代码 + 评审,有意设卡 |
|
||||
| 进度坐标解析策略 | 可取范围内向上取整 + 警告(保证偏难);超出最大行封顶取最大值 + 警告;域越界致命(2026-09-18 两段拍板,原「就近向下」退役) | 冻结:静默降难会掩盖难度断档 |
|
||||
| 入口锚行校验 | 写死开 | 非调参项;重议走文档修订流程 |
|
||||
| 调试覆盖开关 | 仅调试构建,默认关 | 正式构建结构性不存在;覆盖值永不回写表文件 |
|
||||
@@ -202,7 +200,7 @@
|
||||
- 黄金向量:随机派生纯函数对登记向量逐个复算相等;同输入恒同输出;同序号重复调用恒等。
|
||||
- 计数器纪律:连续取号跨模拟关卡切换,计数器单调不重置;热重载成败都不改变主种子与计数器。
|
||||
- 向上取整解析:请求无精确行时返回**不低于**请求坐标的最近行并留一条警告;请求超出最大已有行时封顶取最大行并留警告;同类警告去重;精确命中零警告。
|
||||
- 越域与未播种:坐标低于合法域(关卡序号 <1、节点深度 <0)在进入解析前致命中止(Fatal 级诊断 + 进程退出码 1,切片探针 `smoke/config_fatal_probe.gd` 验证);高于最大已有行走封顶取最大行(警告留痕,不致命);未设主种子就取随机数致命中止,无默认种子兜底。
|
||||
- 越域与未播种:坐标低于合法域(关卡序号 <1、节点深度 <0)在进入解析前致命中止(Fatal 级诊断 + 进程退出码 1,致命类单测 `tests/unit/data_config/config_db_fatal_oob_test.gd` 验证——迭代 19 卡① T4 探针退役顺带改指,原切片探针断言面与 run_all 致命类单测重复故退役);高于最大已有行走封顶取最大行(警告留痕,不致命);未设主种子就取随机数致命中止,无默认种子兜底。
|
||||
- 热重载门:战斗中重载被拒绝且读数不变、不发通知;门未置位时新值可读且通知恰一次;校验失败保留旧表停留就绪态。
|
||||
- 版本常量在位:表结构版本常量存在且全部表结构携带版本字段(高版本拒读判定归存档序列化)。
|
||||
- 零字面量、零第二路径:静态扫描加人工复核确认玩法代码无数值字面量、无读取口之外的表加载、无全局随机函数调用。
|
||||
@@ -220,5 +218,7 @@
|
||||
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
||||
| v0.2 | 2026-09-15 | 雾格残留清理:关闭「待拍板」的棋盘生成参数表雾字段清理登记(fog_region_count / fog_target_ratio 两字段、雾占比绝对上限与雾域跨字段校验)——字段与校验随雾格移除同批删除,registry `board_gen_table` 条目同步修订。表清单与校验纪律不变 |
|
||||
| v0.3 | 2026-09-17 | 代币→钥石统一拍板随批措辞清偿:表清单冒险表行「代币记账」改「钥石入账」;registry adventure_table 同批改键 token_per_level→keystone_per_level。表清单与校验纪律不变 |
|
||||
| v0.4 | 2026-09-18 | **进度坐标解析口径修订(用户拍板,场景三讨论产物)**:① 取整方向「就近向下」→「**向上取整**」——无精确行取不低于请求坐标的最近行,理由 = 保证偏难(宁高估难度让工具读数保守,不静默降难掩盖断档);② 越域致命补齐——低于合法域(关卡序号 <1、节点深度 <0)走运行期致命:Fatal 级诊断 + 进程退出码 1,与装载期致命纪律并轨;**同日追加拍板**:高于最大已有行不致命,封顶取最大已有行并留警告(用户裁定「可取范围内向上取整,超过了最大值就用最大值」);③ registry enemy_table 条目「进度键 floor」随批改 ceil;切片 config_db._resolve_progress 同批落地(ceil 选择器 + _fatal 通道 + `smoke/config_fatal_probe.gd` 探针 + 冒烟 ceil 断言) |
|
||||
| v0.5 | 2026-09-27 | **统一随机流批(ADR-0007 裁丙——用户两轮复裁终选「统一用一个流」并拍「全面执行」)**:§「封闭随机流」整节改「统一随机流」口径——唯一主种子+单盐派生+唯一全局取数计数器,七流并一;取号参数降格为**用途标签**(只进事件日志不参与派生,七流名保留为封闭词表);新增**全事件日志**(冒险会话制 user://logs/rng_log_<主种子>.jsonl,逐次取数落 scope/标签/派生种子——号位全序化后单点定位的承载面);快照契约=主种子+全局计数器;扩签通道替代增流通道;表清单/依赖表/P0/验收行随批。代码实证:rng_service.gd 重写+七消费点迁移+armor_roll_stream 字段降格标签+behavior_roll 子流派生向量退役;新黄金向量 8 常量重登记(scope 0-3 与旧 board_gen 向量逐位连续)|
|
||||
| v0.4 | 2026-09-18 | **进度坐标解析口径修订(用户拍板,场景三讨论产物)**:① 取整方向「就近向下」→「**向上取整**」——无精确行取不低于请求坐标的最近行,理由 = 保证偏难(宁高估难度让工具读数保守,不静默降难掩盖断档);② 越域致命补齐——低于合法域(关卡序号 <1、节点深度 <0)走运行期致命:Fatal 级诊断 + 进程退出码 1,与装载期致命纪律并轨;**同日追加拍板**:高于最大已有行不致命,封顶取最大已有行并留警告(用户裁定「可取范围内向上取整,超过了最大值就用最大值」);③ registry enemy_table 条目「进度键 floor」随批改 ceil;切片 config_db._resolve_progress 同批落地(ceil 选择器 + _fatal 通道 + 配置致命探针〔smoke/config_fatal_probe.gd,迭代 19 退役删除,断言并入 `tests/unit/data_config/config_db_fatal_oob_test.gd`〕 + 冒烟 ceil 断言) |
|
||||
| v0.5 | 2026-09-27 | **统一随机流批(2026-09-27 用户两轮复裁终选「统一用一个流」并拍「全面执行」)**:§「封闭随机流」整节改「统一随机流」口径——唯一主种子+单盐派生+唯一全局取数计数器,七流并一;取号参数降格为**用途标签**(只进事件日志不参与派生,七流名保留为封闭词表);新增**全事件日志**(冒险会话制 user://logs/rng_log_<主种子>.jsonl,逐次取数落 scope/标签/派生种子——号位全序化后单点定位的承载面);快照契约=主种子+全局计数器;扩签通道替代增流通道;表清单/依赖表/P0/验收行随批。代码实证:rng_service.gd 重写+七消费点迁移+armor_roll_stream 字段降格标签+behavior_roll 子流派生向量退役;新黄金向量 8 常量重登记(scope 0-3 与旧 board_gen 向量逐位连续)|
|
||||
| v0.6 | 2026-10-09 | **文档正确性审查批·独立复核(worktree docaudit-2026-10-09——四处表清单失同步,全部代码实证)**:①变异表行「现行六行」→七行(variation.tres 实测 7 行=region 6+global 贫矿脉,2026-10-04 首发批漏登);②奖励配置表 `RewardConfigTable` 行删除(表已随可选类删除下线——reward_config.tres 与类名全仓零命中);③秘宝表 `AuxItemTable`→`TreasureItemTable`(treasure_items.tres,词族对齐批换代漏登);④MetaTable「四行族」→现行五行族(+attune_refresh_upgrade,同调批扩列漏登);⑤主角表行补 armor_class 字段 |
|
||||
| v0.7 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 5 处——fail-fast 节与 P0 第 3 步「报错」→「显示错误」3 处(均动词义);MetaTable 行与越域验收行「随批」→「顺带」2 处。另 v0.4 行死链清偿 1 处:smoke/config_fatal_probe.gd 探针迭代 19 退役删除、断言并入 `tests/unit/data_config/config_db_fatal_oob_test.gd`(去向经 roadmap 迭代 19 卡①「探针收编」与本文验收行双证)。表、校验、随机语义零改动 |
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
> 一句话:设置项与多语言
|
||||
> 状态:范围草案·最小设置面已兑现(2026-09-29 迭代 8 卡④)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/systems-index.md(旧体系未单独成文,散见于归档索引)
|
||||
|
||||
## 设计目的
|
||||
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
|
||||
> 一句话:音乐音效方向与实现
|
||||
> 状态:范围草案(待设计)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/systems-index.md(旧体系未单独成文,散见于归档索引)
|
||||
|
||||
## 设计目的
|
||||
|
||||
玩家每次挖格、惊动巢穴、每轮结算、每场胜负,画面都会给出反馈;音频给这些时刻补上听觉通道——音乐定地牢的氛围,音效确认操作与兑现。它不产生任何数值、不承载任何规则语义:声音永远跟着已经发生的事走,是贴在循环各段上的纯反馈层。
|
||||
玩家每次挖格、惊动危险格、每轮结算、每场胜负,画面都会给出反馈;音频给这些时刻补上听觉通道——音乐定地牢的氛围,音效确认操作与兑现。它不产生任何数值、不承载任何规则语义:声音永远跟着已经发生的事走,是贴在循环各段上的纯反馈层。
|
||||
|
||||
本文是范围草案:音频的顶层方向(风格、正式与占位的取舍口径)归[美术音频方向](../../04-美术音频方向.md),该文档现行口径是方向未定稿、MVP 阶段用占位音效即可——本文只引用、不代定。全文只做三件事:划清范围边界;收拢排期双轨这条最重要的排期事实;收拢已登记的挂点输入。
|
||||
|
||||
@@ -35,7 +34,7 @@
|
||||
## 在核心循环中的位置
|
||||
|
||||
```
|
||||
扫雷段(挖格、插旗、惊动巢穴的即时反馈)──▶ 轮末结算段(逐行兑现的结算反馈)──▶ 终局(胜负反馈)
|
||||
扫雷段(挖格、插旗、惊动危险格的即时反馈)──▶ 轮末结算段(逐行兑现的结算反馈)──▶ 终局(胜负反馈)
|
||||
音频不是循环里的一段,而是贴在循环各段上的听觉反馈层
|
||||
```
|
||||
|
||||
@@ -58,7 +57,7 @@
|
||||
| 反馈位 | 游戏里的时刻 |
|
||||
|---|---|
|
||||
| 挖掘 | 玩家挖开一格 |
|
||||
| 踩雷 | 挖到惩罚格、惊动巢穴——本轮的负面转折 |
|
||||
| 踩雷 | 挖到危险格、惊动危险格——本轮的负面转折 |
|
||||
| 结算 | 轮末逐行兑现的过程 |
|
||||
| 胜利 | 判定获胜的终局时刻 |
|
||||
|
||||
@@ -75,7 +74,7 @@
|
||||
| 清图奖励专属音 | 挂点清单 | 清图奖励行是轮末的仪式峰值,要有专属的音 |
|
||||
| 坍塌显形连锁音效 | [游戏概念](../../00-游戏概念.md)的概念层拍板 | 与[战斗表现](../战斗循环/战斗表现.md)的连锁动画同批配对登记,本文承接音效半边(见下节);对位批次 = 表现层升级批 |
|
||||
| 蓄力拍的音频前摇 | [敌人系统](../战斗循环/敌人系统.md)的后置登记 | 敌人蓄力那拍的声音预告,作为读招的第二通道,登记为垂直切片可选项 |
|
||||
| 道具使用的音频反馈 | [秘宝](../排雷循环/秘宝.md)的后置登记 | 道具使用的反馈音,表现打磨项后置,排 Alpha |
|
||||
| 道具使用的音频反馈 | [秘宝](../跨局循环/秘宝.md)的后置登记 | 道具使用的反馈音,表现打磨项后置,排 Alpha |
|
||||
|
||||
### 临时音效的覆盖清单
|
||||
|
||||
@@ -85,17 +84,17 @@
|
||||
|
||||
| 挂点 | 覆盖口径 |
|
||||
|---|---|
|
||||
| 挖掘(开格拾取) | 必响;起步两档听感——安全格与雷格可区分,按奖励类别逐类区分随正式批 |
|
||||
| 踩雷(惊动巢穴) | 必响;与挖掘音听感可区分 |
|
||||
| 挖掘(开格拾取) | 必响;起步两档听感——安全格与危险格可区分,按奖励类别逐类区分随正式批 |
|
||||
| 踩雷(惊动危险格) | 必响;与挖掘音听感可区分 |
|
||||
| 结算明细流 | 必响但成组:按行型起步子集覆盖——伤害、治疗、高光三类先行,其余行型临时档允许静默;未生效类行不逐行连响,聚合为单次负反馈 |
|
||||
| 终局判定(胜 / 负) | 必响;胜负两档听感可区分 |
|
||||
| toast 拒绝 / 提示 | 必响;走"负反馈聚合单次"口径 |
|
||||
|
||||
选配(登记候选,做不做不判过):蓄力拍音频前摇([敌人系统](../战斗循环/敌人系统.md)登记的垂直切片可选项,做了算这一档的加分);清图奖励专属音(正式批要求专属,临时档允许与高光行同音顶替)。
|
||||
|
||||
明确不覆盖(切片期不出声):坍塌显形连锁音效——与连锁动画同批对位设计,批次未定(见「待办」);道具使用音频反馈——[秘宝](../排雷循环/秘宝.md)登记的表现打磨项,排 Alpha。
|
||||
明确不覆盖(切片期不出声):坍塌显形连锁音效——与连锁动画同批对位设计,批次未定(见「待办」);道具使用音频反馈——[秘宝](../跨局循环/秘宝.md)登记的表现打磨项,排 Alpha。
|
||||
|
||||
切片期验收口径:必覆盖五个挂点逐点有声,缺一即不过;换掉临时音频文件不需要改动任何逻辑代码(临时与正式走同一批挂点);挖掘、踩雷、结算、终局四类反馈听感互相可区分,负反馈不逐行轰炸;声音永远跟着已经发生的事走,不得先于事件。
|
||||
切片期验完成径:必覆盖五个挂点逐点有声,缺一即不过;换掉临时音频文件不需要改动任何逻辑代码(临时与正式走同一批挂点);挖掘、踩雷、结算、终局四类反馈听感互相可区分,负反馈不逐行轰炸;声音永远跟着已经发生的事走,禁止先于事件。
|
||||
|
||||
### 坍塌显形:与连锁动画配对的音效半边
|
||||
|
||||
@@ -124,7 +123,7 @@
|
||||
| P1 | 正式音效:四个基础反馈位与挂点清单全部出声 | 正式音频排 Alpha——MVP 打磨项排后 |
|
||||
| P1 | 坍塌显形连锁音效 | 须与[战斗表现](../战斗循环/战斗表现.md)的连锁动画对位设计,批次未定 |
|
||||
| P1 | 蓄力拍音频前摇 | [敌人系统](../战斗循环/敌人系统.md)登记为垂直切片可选项,读招的第二通道 |
|
||||
| P1 | 道具使用音频反馈 | [秘宝](../排雷循环/秘宝.md)登记,表现打磨项排 Alpha |
|
||||
| P1 | 道具使用音频反馈 | [秘宝](../跨局循环/秘宝.md)登记,表现打磨项排 Alpha |
|
||||
| P2 | 音乐方向与场景编排 | 顶层口径:等核心循环验证后再定 |
|
||||
|
||||
## 调参表
|
||||
@@ -159,3 +158,5 @@
|
||||
|---|---|---|
|
||||
| v0.1 | 2026-09-15 | 自归档线索整合为范围草案(旧体系未单独成文) |
|
||||
| v0.2 | 2026-09-16 | 新增「临时音效的覆盖清单」:必覆盖五挂点、选配两候选、明确不覆盖两挂点与切片期验收口径成文(06 清单「临时音效的覆盖清单」闭合),P0 最小闭环改指本节;明细流水行型数 15→10、例举去"道具"行,随战斗结算格面资源批行协议同步(追记 2026-09-30:现行 9 类——2026-09-20 伏击上限删除批下线溢出未生效行) |
|
||||
| v0.0 | 2026-10-11 | 术语统一补扫批(2026-10-11):音频触发名「惊动巢穴」三处换代「惊动危险格」 |
|
||||
| v0.3 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 1 处——「切片期验收口径」句内「不得先于事件」→「禁止先于事件」。覆盖清单与验收判据零改动 |
|
||||
@@ -1,14 +1,15 @@
|
||||
# 元进度
|
||||
|
||||
> 一句话:跨局成长——钥石在营地换成永久强化,存档随冒险变厚
|
||||
> 状态:已定稿(2026-09-18 元进度定稿批,用户拍板收口)
|
||||
> 旧版参考:../../../archive/gdd-2026-09-14/systems-index.md(旧体系未单独成文,散见于归档索引)
|
||||
> 状态:已定稿(2026-09-18 元进度定稿批,用户拍板)
|
||||
|
||||
## 设计目的
|
||||
|
||||
元进度管的是跨局成长:一场冒险结束,局内的血、库存与随机种子全部清零重来,而存档里攒下的东西不清零。玩家在下探途中夺得一种叫钥石的永久资源(渠道有二:关卡大奖励入账、关底 Boss 掉落),在冒险与冒险之间用它换永久强化——这就是核心循环里「存档在变厚」的故事线,本系统就是这条线的归属地。
|
||||
元进度管的是跨局成长:一场冒险结束,局内的血、库存与随机种子全部清零重来,而存档里攒下的东西不清零。玩家在下探途中夺得一种叫钥石的永久资源(渠道 = Boss / 精英怪击杀掉落——原「关卡大奖励入账」渠道随迭代 10 奖励重构退役,见核心规则),在冒险与冒险之间用它换永久强化——这就是核心循环里「存档在变厚」的故事线,本系统就是这条线的归属地。
|
||||
|
||||
定名(2026-09-18 用户拍板):**元进度**(Meta Progression)是系统族名,本作落地名叫**永久强化**——伴随存档生命周期、可被钥石换取的成长资源集合。归档线索里的「天赋树」一词就此退役:本作不存在树形结构,只有营地柜台上架的强化条目。**营地**是存档内消费钥石的枢纽场所,只是界面壳(呈现层概念),不是机制实体——机制主语一律用「永久强化」。
|
||||
定名(2026-09-18 用户拍板):**元进度**(Meta Progression)是系统族名,本作落地名叫**永久强化**——伴随存档生命周期、可被钥石换取的成长资源集合。归档线索里的旧概念「天赋树」随定名退役的是其旧义;树形结构本身已随迭代 12 以锻造脉形态落地在役——存档域 tree_nodes / fork_sides(save v5)、营地树面板,系统现行事实源 = [天赋树](天赋树.md)。**营地**是存档内消费钥石的枢纽场所,只是界面壳(呈现层概念),不是机制实体——机制主语一律用「永久强化」。
|
||||
|
||||
**独立资源口径**(框架见[核心循环](../../01-核心循环.md)「生命周期轴」节):钥石与 GP 是两条平行独立资源,不立统一上位概念,按生命周期各归各档——钥石=存档级账归本文,GP=冒险级账归[冒险结构](../冒险循环/冒险结构.md)「GP 冒险账本」节。
|
||||
|
||||
## 系统范围
|
||||
|
||||
@@ -19,7 +20,7 @@
|
||||
| 负责 | 说明 |
|
||||
|---|---|
|
||||
| 钥石的跨局账本 | 钥石入存档、永不丢失;换强化花了多少、还剩多少 |
|
||||
| 营地三柜台 | 属性锻造 / 道具工坊 / 奖励格图鉴——永久强化的全部内容承载(见核心规则) |
|
||||
| 营地三柜台 | 属性锻造 / 秘宝匣 / 奖励格图鉴——永久强化的全部内容承载(见核心规则) |
|
||||
| Boss 重复击杀的钥石产出规则 | 首杀全量、重复杀固定小额(数值读表) |
|
||||
| 换算率表 | 永久强化对难度带影响的折算登记(区间平移换算率,见核心规则) |
|
||||
| 永久强化的跨局生效 | 解锁结果在开始新冒险时注入下一局(冒险开始参数面 + 覆盖值通道) |
|
||||
@@ -61,12 +62,18 @@
|
||||
| 柜台 | 内容 | 解锁渠道 |
|
||||
|---|---|---|
|
||||
| 属性锻造 | 生命上限、基础攻击、护甲等级——三档可重复升级的属性强化 | 钥石直购 |
|
||||
| 道具工坊 | 秘宝解锁(现行六行定义,进投放池三件:工兵令/探巢摆钟/爆破工兵包;探宝罗盘已退役、显影尘/地穴全图卷能力封存——退役/封存件不入投放池,营地呈现「已退役 / 已解锁·能力封存中」) | **首版全走关卡通关次数达标**(总通关次数渠道,读 meta.tres workshop_items);钥石直购价随定价批后补,最终双渠道并存。**形态沿革(2026-09-30 用户裁决甲)**:终局=秘宝局外同调件,本柜台职责随同调实施批改写(解锁→谓词表+装配入口,底稿=原提案 §9(git 57da58c 已退役)) |
|
||||
| 秘宝匣 | 秘宝解锁与同调装配——**件的目录与效果权威定义在[秘宝](秘宝.md)「目录(重设计 v1)」**(12 件三档〔2026-10-11 裁回能器删/换装券撤/第四只手删〕;旧目录全退役只作素材库) | 解锁=混合制(基础件钥石购买/特定件条件解锁——见秘宝.md「道具从哪来」;装配只在冒险开始前配置,冒险中零更换途径〔2026-10-11 终裁〕);**迭代 22 实装批落地(2026-10-12)**:购买钮(余额不足禁用态)+条件解锁进度呈现+分档装配呈现(名后缀·档位/未解锁禁装)+空目录合法态;柜台数据投影=`treasure_shop_status`(解锁态/条件进度/价格单点);旧道具工坊渠道面(行族/词表/解锁函数)已顺带退役;钥石定价与阈值 provisional 归调参批 |
|
||||
| 奖励格图鉴 | 特殊奖励格的解锁——更强效果的格面 | 结构位现定;格子内容排 Alpha,随[地图战斗资源](../战斗循环/地图战斗资源.md)差异化批落地 |
|
||||
|
||||
属性锻造的树形节点结构已随迭代 12 落地在役——**结构/节点/数值的现行事实源 = [天赋树](天赋树.md),本文不复制树侧内容、只作指路**;本柜台三档直线强化与树淬炼 flat 在注入面叠加生效(注入口径见下文「跨局注入」节)。
|
||||
|
||||
属性锻造的攻击、护甲两档已按[锻造工坊](锻造工坊.md) v0.6(成文时名「武器锻造」,2026-10-11 更名)设计定案转为武器与护甲的独立等级路线——**行族本体随迭代 21 T5 退役、路线为新建行族,已随迭代 23 实装入库(2026-10-12,新表 `forge.tres`)**。营地钥石入口族换代(2026-10-13 v1.18 迭代 23 反哺写入):buy_forge 随 forge_products 退役删除后,本柜台钥石消费写口 = **forge_buy_level(逐级锻造价)/ forge_buy_unlock(一次性解锁价)/ forge_select_weapon·armor(免费选中)**——写口唯一经 MetaProgression 锻造写口族(契约 9 写口单点,UI 只发意图);钥石定价历史考古参数 20 钥石/150% 公比见 `meta.tres:82-84` 退役批注,provisional 投值终值归 M4。
|
||||
|
||||
**营地统一(2026-10-11 天赋树设计会话裁案甲;2026-10-13 v1.20 迭代 21 反哺写入——「落地前维持现役」过渡态终结)**:树=营地本体,本属性锻造柜台已随迭代 21 退役、属性升级唯一入口=树脊柱淬炼节点(四柜台并排已实装,2026-10-12 入库)。**完整模型(四柜台并排/钥匙工作间/图鉴常开)唯一事实源 = [天赋树](天赋树.md)「营地=树:统一模型」节——本文只登记本柜台在系统内的去留,不复制树侧内容。**
|
||||
|
||||
**投值语言锁定(2026-09-18 数值语言拍板)**:三柜台属性强化一律 **flat 整数加减**("每级 +1 基础攻击"式,而非"+50% 攻击"式)——避开百分比词条被数值成长稀释的先例陷阱、守住数字可读性锚;具体每级数值仍归元进度设计批投值。
|
||||
|
||||
三条柜台纪律:**定价曲线一律几何递增**(每级费用按公比上浮——原则已拍板,起步价与公比数字归设计批配读数),与产出逻辑配套:深层关钥石产出多、后级强化贵,逼玩家往深处走。**道具工坊首版只挂通关次数渠道**是排期裁决(定价体系未建时的零定价依赖落地形态),不是终态。**存档义务随柜台产生**:钥石余额、永久强化等级表、每关通关次数表、Boss 首杀标记位——四件已逐域登记在 registry `save_file` 条目(内容 owner = 元进度,承载 owner = [存档序列化](../表现与支撑/存档序列化.md))。
|
||||
三条柜台纪律:**定价曲线一律几何递增**(每级费用按公比上浮——原则已拍板,起步价与公比数字归设计批配读数),与产出逻辑配套:深层关钥石产出多、后级强化贵,逼玩家往深处走。~~秘宝匣首版只挂通关次数渠道~~(历史排期裁决已消解:秘宝匣现役=钥石直购+条件解锁混合制,迭代 22 落地,2026-10-12)。**存档义务随柜台产生**:钥石余额、永久强化等级表、每关通关次数表、Boss 首杀标记位——四件已逐域登记在 registry `save_file` 条目(内容 owner = 元进度,承载 owner = [存档序列化](../表现与支撑/存档序列化.md))。
|
||||
|
||||
护甲等级进首版属性柜台是 2026-09-18 拍板(用户选 A),其代价条款见下方换算率节的强条目登记。
|
||||
|
||||
@@ -84,17 +91,19 @@
|
||||
|
||||
判定端(tools/balance_verifier.py)表值驱动消费:验收带按解锁状态 flat÷每级flat×表值平移后套用,表改则判定随动。护甲行强条目重测义务已于标定批履行(解锁后参数实测,非基线外推);标定同时暴露并修复护甲断链(begin_battle `hero_armor_class` 参数零消费——主角护甲锻造与加算区护甲轴的生效值此前未进战斗),修复见 battle_orchestrator `_defender_ac` 批注。
|
||||
|
||||
后续柜台商品(道具工坊钥石价、奖励格图鉴)上架时逐条补行——每次上架新商品伴随一行换算登记,逐行归因纪律不破。
|
||||
后续柜台商品(秘宝匣钥石价、奖励格图鉴)上架时逐条补行——每次上架新商品伴随一行换算登记,逐行归因纪律不破。
|
||||
|
||||
### 跨局注入:解锁怎么进下一局
|
||||
|
||||
注入通道沿用两处预留位(2026-09-18 拍板确认):[冒险结构](../冒险循环/冒险结构.md)的**冒险开始参数面**(无解锁时为空参数)+ registry `hero_override_parameter_passing`(begin_battle 显式入参,-1 = 表值兜底)。
|
||||
|
||||
执行口径:开始一次新冒险时,本系统按存档内的永久强化状态算好一份 override,逐字段显式传给战斗初始化——配置因此不是完全静态的,随游戏进程动态改变(用户拍板原话口径)。字段清单随柜台扩展:属性锻造三档是数值覆盖;道具池、遭遇权重、奖励格解锁是集合操作,参数面登记**追加 / 替换**两种语义。
|
||||
执行口径:开始一次新冒险时,本系统按存档内的永久强化状态算好一份 override,逐字段显式传给战斗初始化——配置因此不是完全静态的,随游戏进程动态改变(用户拍板原话口径)。字段清单随柜台扩展:道具池、遭遇权重、奖励格解锁是集合操作,参数面登记**追加 / 替换**两种语义。
|
||||
|
||||
**开局属性四层叠加(2026-10-12 v1.16 补登记——事实源=[锻造工坊](锻造工坊.md)「注入衔接」节 v0.6 / [天赋树](天赋树.md);原「属性锻造三档是数值覆盖」随迭代 21 T5 行族退役换代为下述分层;2026-10-13 v1.18 迭代 23 反哺写入补终态句)**:开局属性 = 角色基础值 + 树生命/命中淬炼 flat + 锻造路线加值(当前选中武器的攻击加值 + 当前甲的 AC 加值——默认值由锻造工坊配置常驻持有、与柜台解锁状态解耦,当前选中读存档域)+ 局内加算区 flat。入战 AC 三层可加 = 甲型基础 AC + 甲路线等级加值 + 局内加算区累加——**第一层「甲型基础 AC」= 选中甲路线行 `base_ac`(`forge.tres`,轻 10/重 12/魔法护甲 9 provisional),已随迭代 23 实装在役(`effective_ac` 三层公式第一层,树 flat + 锻造路线加值同批在役)**。
|
||||
|
||||
### 解锁界面:双入口框架
|
||||
|
||||
(2026-09-18 拍板)主菜单设营地独立入口(消费钥石、查看与管理永久强化);局内暂停层也可查看钥石余额与已解锁清单(只读)。钥石余额在 HUD 常驻展示。呈现 spec 已出生:[ux/camp.md](../../ux/camp.md) v1.0(2026-09-30 审计拍板点 4A 裁决落文——退役/封存件「已退役/已解锁·能力封存中」呈现语义随 spec 落位);视觉终稿已随 M-3 迭代 9 9A 段落码(2026-09-30)。本节锁框架与需求,呈现细节归 spec;局内暂停层入口未实装(随 HUD 批 M-4)。
|
||||
(2026-09-18 拍板)主菜单设营地独立入口(消费钥石、查看与管理永久强化);局内状态面板(原称暂停层,2026-10-13 改名——游戏非实时无暂停语义)也可查看钥石余额与已解锁清单(只读)。钥石余额在 HUD 常驻展示。呈现 spec 已出生:[ux/camp.md](../../ux/camp.md) v1.0(2026-09-30 审计拍板点 4A 裁决写入文档——退役/封存件「已退役/已解锁·能力封存中」呈现语义随 spec 落位);视觉终稿已随迭代 9 9A 段落码(2026-09-30)。本节锁框架与需求,呈现细节归 spec;局内状态面板入口已实装(2026-10-06 迭代 17 卡③〔时名暂停层〕——实机目检待用户,06 登记条在册)。
|
||||
|
||||
### 单局循环零依赖:排期边界的推论
|
||||
|
||||
@@ -121,9 +130,9 @@ MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)整体
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 三柜台内容铺量与定价数字 | 柜台结构已定稿;清单明细、几何定价的起步价与公比、Boss 两档产出数值,随设计批配读数投值 |
|
||||
| P1 | 道具工坊钥石直购价 | 首版只挂通关次数渠道(零定价依赖);定价体系建成后补价,收敛双渠道 |
|
||||
| P1 | 秘宝匣钥石直购价 | **已投 provisional 占位**(普通档 10/优秀档 25 钥石,迭代 22 落地,2026-10-12);终值归调参批(原「首版只挂通关次数渠道」排期态随混合制落地消解) |
|
||||
| P1 | 奖励格图鉴的格子内容 | 排 Alpha,随[地图战斗资源](../战斗循环/地图战斗资源.md)差异化批 |
|
||||
| P1 | 换算率表数值行标定 | **已完成**(2026-09-23 换算率标定批——首版三行投值 6/9/1,护甲行强条目重测随批履行并修复护甲断链)(原系笔误孤例,registry 与 meta.tres 均为 6/9/1——2026-09-30 勘误) |
|
||||
| P1 | 换算率表数值行标定 | **已完成**(2026-09-23 换算率标定批——首版三行投值 6/9/1,护甲行强条目重测顺带履行并修复护甲断链)(原系笔误孤例,registry 与 meta.tres 均为 6/9/1——2026-09-30 勘误) |
|
||||
| P2 | 营地界面与解锁呈现实现 | 归[HUD 框架](../表现与支撑/HUD框架.md)协作批,以表现层样张过审为前置 |
|
||||
|
||||
## 调参表
|
||||
@@ -133,8 +142,8 @@ MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)整体
|
||||
| 表 | 键结构归属 | 数值行 |
|
||||
|---|---|---|
|
||||
| 换算率表(`meta_progression_conversion_table`) | registry 已登记,本文 owner | `data/tables/`,设计批投值(首版三行,护甲行强条目) |
|
||||
| 定价表(属性锻造 / 道具工坊 / 奖励格图鉴费用曲线) | 随设计批建账 | `data/tables/`,几何递增参数 |
|
||||
| 钥石产出(每关入账值 / Boss 首杀额 / 重复杀小额) | 入账挂点见[冒险结构](../冒险循环/冒险结构.md)调参表(keystone_per_level);Boss 两档归本文设计批 | `data/tables/` |
|
||||
| 定价表(属性锻造 / 秘宝匣 / 奖励格图鉴费用曲线) | 随设计批建账 | `data/tables/`,几何递增参数 |
|
||||
| 钥石产出(Boss 首杀额 / 重复杀小额) | 入账挂点见[冒险结构](../冒险循环/冒险结构.md)调参表(boss_keystone 行);Boss 两档归本文设计批(每关入账值 keystone_per_level 已随迭代 10 奖励重构退役) | `data/tables/` |
|
||||
|
||||
## 验收标准
|
||||
|
||||
@@ -143,7 +152,7 @@ MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)整体
|
||||
- 单局零依赖:禁用元进度后,单局循环的全部现行验收照常通过。
|
||||
- 解锁可见:换强化后,下一局能遇到或用到强化内容,玩家能说出这局与上局的具体差别。
|
||||
- 首杀可归因:Boss 首杀与重复杀的入账在冒险摘要中可区分,重复杀小额恒定、不随刷取次数递减。
|
||||
- 换算可审计:每级永久强化对应的带平移量在换算率表有行可查;验收读数以平移后带判读,护甲行不得用基线读数外推。
|
||||
- 换算可审计:每级永久强化对应的带平移量在换算率表有行可查;验收读数以平移后带判读,护甲行禁止用基线读数外推。
|
||||
|
||||
## 待办
|
||||
|
||||
@@ -153,6 +162,9 @@ MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)整体
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v1.18 | 2026-10-13 | **迭代 23 反哺落文批(实现报告 §五,用户裁「在这里进行更新」)**:①「跨局注入」节补终态句——入战 AC 三层第一层「甲型基础 AC」= 选中甲路线行 base_ac(forge.tres 轻 10/重 12/魔法护甲 9 provisional),effective_ac 三层已随迭代 23 在役;②属性锻造段落代——「实装待办在册 06、待用户发令」过期态换代为已随迭代 23 实装入库(新表 forge.tres),并登记营地钥石入口族三写口(forge_buy_level/forge_buy_unlock/forge_select_*——buy_forge 退役后的新族,契约 9 写口唯一)。机制与数值零改动 |
|
||||
| v1.19 | 2026-10-13 | **暂停层改名批随迁(用户令:暂停层/暂停角标→状态面板/状态角标,全标识符+文案换代、行为零变化)**:「解锁界面:双入口框架」节正文名称换代+改名括注(版本历史行内旧名按历史记载保留);pause_overlay.gd→status_panel.gd(StatusPanel)。机制零改动 |
|
||||
| v1.20 | 2026-10-13 | **迭代 21 反哺②落文(用户裁「按呈报落文」)**:「营地统一」段落地终态换代——属性锻造柜台已随迭代 21 退役、属性升级唯一入口=树脊柱淬炼节点、四柜台并排已实装(原「落地前维持现役」过渡态终结)。机制零改动 |
|
||||
| v0.1 | 2026-09-15 | 自归档线索整合为范围草案(旧体系未单独成文) |
|
||||
| v0.2 | 2026-09-17 | 代币→钥石统一拍板随批措辞清偿:资源模型裁决闭合(同一资源,渠道 = 关卡大奖励入账 + Boss 掉落),「代币记账」改名「钥石入账」。机制未动(本文仍为范围草案) |
|
||||
| v0.3 | 2026-09-17 | 数值纪律收口批:正文 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),3 处失同步修正(钥石入账 +10/关 三处改「每关固定值,行值读冒险表 keystone_per_level」) |
|
||||
@@ -163,3 +175,16 @@ MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)整体
|
||||
| v1.4 | 2026-09-23 | **换算率标定批(用户指令「现在标定」;与切片代码 / registry / 06-待办清单 / 判定端工具同批)**:换算率节回填现行表值(生命 6 / 攻击 9 / 护甲 1 点每级——OFAT 冒险注入档与白板同种子配对的逐关条件通关率差实测,冒险条件口径;同日单关直入口口径退役使首轮直入口面读数作废重测);护甲行强条目重测履行并暴露修复护甲断链(begin_battle hero_armor_class 参数零消费→_defender_ac 接线);判定端带平移表值驱动接线(带重锚后随换算率平移判);排期表 P1 行销项 |
|
||||
| v1.5 | 2026-10-01 | **钥石渠道改一批(迭代 10 奖励重构——用户 2026-09-30 拍板;与冒险结构 v0.12 / registry 同批)**:钥石渠道自二改一——「关卡大奖励入账(keystone_per_level)」随大奖励三件套退役,渠道 = Boss/精英怪击杀掉落(逐杀实时入账,行值读 meta.tres boss_keystone 首杀/复杀两档;精英掉 1 预留);首杀大额/复杀小额规则不变。**产出重标义务重开**:现行两关冒险产出结构从「大奖励 10×2 + Boss 首杀 5」改「Boss 掉落 ×N(精英未实装零贡献)」,标定随元进度设计批/调参批重开(06 登记) |
|
||||
| v1.6 | 2026-10-03 | **同调位账本批(迭代 11 第①批同调实施批——save v4 / meta.tres attune_refresh_upgrade 行族 / registry 同批)**:①道具工坊柜台职责改写——解锁→谓词表形态(unlock_requires 行,首批全解锁=空谓词合法态,底稿 §2.2 用户裁),柜台内新增「同调装配」段(装配/换装/Slots 点亮 + Y 刷新升级行购买——程序占位面,视觉终稿归营地批;满位禁选/写档持久 MetaProgression.toggle_attunement 唯一写口);②Boss 击杀总数计数登记(boss_kill_count 含重复,收束入账=apply_adventure_summary 逐通关关次 +1,attunement_growth 谓词表计数源);③Y 刷新升级行登记(attune_refresh_upgrade 行族 L1→Y1/L2→Y2,钥石直购,provisional);④装配关系入存档持久(attunement_equipped save v4 域,冒险中途不可换装——底稿 §8.5) |
|
||||
| v1.7 | 2026-10-07 | **生命周期轴裁决随批(框架现行事实源=核心循环「生命周期轴」节同批落文)**:设计目的节补独立资源口径——钥石与 GP=两条平行独立资源不立统一上位概念,钥石=存档级账归本文、GP=冒险级账归冒险结构(同批落文);既有账本语义零改动 |
|
||||
| v1.8 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①设计目的「渠道有二:关卡大奖励入账、关底 Boss 掉落」与核心规则「渠道自迭代 10 起改一」自相矛盾——订正为 Boss/精英怪击杀掉落单渠道;②道具工坊行订正——工兵令已退役(treasure_items.tres retired 旗),可解锁在役=探巢摆钟/爆破工兵包两件;「本柜台职责随同调实施批改写」的未来式订正为已落地(2026-10-03 v1.6);③定名节补审查注——「本作不存在树形结构」失义(属性锻造随迭代 12 T9 落地为锻造脉节点结构,存档域 tree_nodes/fork_sides),章节归后续修订;④里程碑前缀按 2026-10-09 口径删「M-3」(视觉终稿行)只留「迭代 9」;⑤调参表钥石产出行删「每关入账值 keystone_per_level」(行值已退役)改 boss_keystone 行指路。 |
|
||||
| v1.9 | 2026-10-09 | 文档正确性审查批(定点):解锁双入口框架节「局内暂停层入口未实装(随 HUD 批 M-4)」过期订正——暂停层只读入口已实装(2026-10-06 迭代 17 卡③,实机目检待用户;06 登记条在册);裸 M-4 标签随订正消除 |
|
||||
| v1.10 | 2026-10-09 | **B2 裁决落文(用户令「删除旧的、直接写新的」)**:道具工坊行删旧写新——旧「现行六行」登记作废(旧目录已随秘宝 v1.5 全退役),改写=件的目录与效果现行事实源指路秘宝.md「目录(重设计 v1)」+解锁门槛谓词分级(普通 0 门槛/优秀中里程碑/稀有高里程碑,阈值归调参批)+通关次数渠道与钥石直购价归定价批后补 |
|
||||
| v1.11 | 2026-10-09 | **B1 裁决落文(用户令「元进度让他们都独立去写」——天赋树独立成文)**:①定名节冲突表述换代——「归档线索里的『天赋树』一词就此退役」与 v1.8 审查注(「本作不存在树形结构」失义登记)同步摘除,改写 = 退役的是归档线索旧概念的旧义、树形结构已随迭代 12 以锻造脉形态落地在役(系统现行事实源 = 天赋树.md,本批新建 v0.1);②三柜台节补指路句——属性锻造树形节点结构现行事实源 = 天赋树.md,旧三档柜台与树四线 flat 注入面叠加实态随句登记。机制零改动 |
|
||||
| v1.12 | 2026-10-09 | 武器锻造成文批随迁(用户令「完成文档编写、代码不实现、记录待办」):三柜台节补指路句——属性锻造攻击/护甲两档的路线化改造设计权威文档 = [武器锻造](锻造工坊.md) v0.1(按 2026-10-07 提案推荐案成文、17 裁点开放在册、实装待办在册 06;改造落地前三档直购维持现役)。机制零改动 |
|
||||
| v1.14 | 2026-10-11 | 秘宝匣行换代随批(秘宝.md v2.7 目录修正批):13 件三档+解锁混合制口径;旧「正主/谓词分级」表述同步清除(拾取渠道指路同日追加又随终裁废止) |
|
||||
| v1.13 | 2026-10-10 | **「道具工坊」改名「秘宝匣」(2026-10-10 天赋树设计会话裁——树上解锁节点与营地柜台同名)**:现行正文六处扫改(三柜台行 / 柜台行 / 柜台纪律 / 后续商品行 / 调参表 P1 / 定价表行);版本历史行一律不动;别名「道具工坊」登记 registry 术语条保留检索。机制零改动 |
|
||||
| v1.14 | 2026-10-11 | **营地统一案甲随迁(2026-10-11 天赋树设计会话终裁)**:三柜台节补「营地统一」段——树=营地本体、属性升级唯一入口=树脊柱淬炼节点、本属性锻造柜台随 06「天赋树实装批」退役吸收进脊柱(落地前维持现役)、锻造柜台与秘宝匣转工作间钥匙模型、图鉴常开;设计权威文档指路 = 天赋树.md v0.2。机制零改动(退役与公式换代随实装批) |
|
||||
| v1.15 | 2026-10-11 | 锻造工坊更名批随迁(机械扫):三柜台节指路句随系统更名「武器锻造→锻造工坊」换代链接与名称(06 实装批条名同步「锻造工坊实装批」;版本历史行内旧名按历史记载保留)。机制零改动 |
|
||||
| v1.16 | 2026-10-12 | **完备性检查批随迁(用户令:有缺漏即补齐)**:①「跨局注入」节补开局属性四层叠加公式(角色基础值+树生命/命中 flat+锻造路线加值+局内加算区 flat;入战 AC 三层)——锻造工坊与天赋树两文档共指本节为「通道现行事实源」而公式缺位,本次落实;原「属性锻造三档是数值覆盖」随迭代 21 T5 行族退役换代;②锻造工坊 v0.6 引用版本号 v0.1→v0.5 连带校正(三柜台节)。机制零改动 |
|
||||
| v1.17 | 2026-10-12 | **迭代 22 反哺落文批(实现报告 §三④,用户裁「落文」)**:秘宝匣行补迭代 22 实装实录(购买钮禁用态/条件进度呈现/分档装配呈现/空目录合法态/treasure_shop_status 投影/旧道具工坊渠道面退役);柜台纪律「首版只挂通关次数渠道」排期态消解注记;P1 秘宝匣定价行换代(provisional 10/25 已投,终值归调参批)。机制零改动 |
|
||||
| v1.21 | 2026-10-15 | **简明技术中文用语规范批(用户令):词面修正 2 处+死链修复 1 处**——「收口」→删(文头状态行「用户拍板收口」→「用户拍板」,已定稿语义由句首承载);「不得」→「禁止」1 处(验收·换算可审计条护甲行);死链修复:v1.12 行的武器锻造死链指路改指锻造工坊.md(2026-10-11 更名漏改,显示文字与行内其余文字同步换代为现行名,其余不动)。机制与数值零改动 |
|
||||
@@ -0,0 +1,214 @@
|
||||
# 天赋树
|
||||
|
||||
> 一句话:营地本身——跨局成长的结构承载:钥石逐节点点亮一棵树,属性淬炼、工作间解锁、规则抉择与同调挂载全部组织在树上
|
||||
> 状态:**v0.10 R1 机制位批(2026-10-13,用户推翻迭代 21 追认单 #1 裁撤案)**——「等级阈值前置」以机制位形态顺带重立:schema 新增 `requires_level: {node_id: n}`(前置节点等级 ≥ n 才可购;键悬空/阈值 <1/类型错加载即拒)+ 购买判定分支 + 行板门槛呈现(未达标 🔒 标+悬停门槛文案)+ 单测八断言;**现役 12 行零配置=机制位空转零行为影响**,配置归表行随需填。承 v0.9 迭代 21 反哺写入(2026-10-13,用户裁「按呈报写入文档」)——全文档换代为 12 节点落地实态:头部实装态 / 节点总表前言 / schema 连带 / 已建未接面(三条→两接一维持)/ P0 段 / 依赖表 / 验收实态七处换代;「设计避让」句按卡片 v1.7 ⑪②裁决改写为折扣定义边界口径。承 v0.8 Fork 一节点双态换代(2026-10-11 用户裁——开局姿态/危险直觉/财富之道三天赋=三节点、购买解锁后 A/B 双态可切,现役 A/B 双行结构收编、全树 15→12)
|
||||
|
||||
> **📖 节点状态记录指引(读这份文档先看这里)**:本树全部 12 个节点=下方「核心规则 → 节点总表」,逐节点列名称/脉/类型/前置/效果方向;**全部数值行(价格 / 等级上限 / 每级效果取值 / 限次值)不在本文**,事实源 = 配置文件 `game/data/tables/meta_tree.tres`(provisional 归数值批)。要查"有哪些节点、怎么连"看本文总表,要查"多少钱、加多少"开配置文件。
|
||||
|
||||
## 设计目的
|
||||
|
||||
元进度管「钥石与永久强化」的跨局账,天赋树回答这本账里「永久强化长什么样」——并且它是营地的机制本体(2026-10-11 用户裁案甲),营地升级就是天赋树升级。主干脊柱管生命/命中的积累节奏(两线唯一入口——2026-10-11 攻防所有权切分:攻击唯一入口=锻造工坊武器路线、AC 唯一入口=锻造工坊甲路线,树零攻防来源=红线,每根数值轴全游戏单一来源);锻造脉与钥石脉是两把工作间钥匙——点亮后展开锻造工坊(武器/护甲路线升级)与秘宝匣(秘宝解锁与同调装配)两个工作间;同调脉管同调位挂载与规则抉择。营地界面呈现=四柜台并排(2026-10-11 锻造工坊裁决会话 A② 裁):树淬炼柜台是树脊柱的界面形态,锻造工坊柜台在钥匙点亮前呈锁定态。玩家在两场冒险之间回到营地,用钥石逐节点点亮这棵树,点亮的属性与规则在下一局开局注入。
|
||||
|
||||
树同时是账号姿态的承载:买了哪些节点、双态开关节点当前激活哪态,构成这个存档的跨局姿态——「我的账号玩成了什么样」。
|
||||
|
||||
## 系统范围
|
||||
|
||||
边界这样划:天赋树管「树的结构与树域账 + 营地统一模型」——有哪些节点、节点怎么解锁、购买与切换守什么规则、工作间怎么被钥匙节点展开、树的效果怎么进下一局。钥石从哪来、余额怎么记,归元进度;工作间内的操作(路线升级、秘宝装配)各归其现行事实源。
|
||||
|
||||
负责:
|
||||
|
||||
| 负责 | 说明 |
|
||||
|---|---|
|
||||
| 节点结构与解锁规则 | 12 节点的一脊三脉构成、脊柱行门槛(节点第 N 级)、点亮前置(requires)+ **等级阈值前置(requires_level——R1 机制位 2026-10-13 顺带重立,现役零配置空转)**、Fork 一节点双态与免费切换、彩蛋觉醒——结构事实源 = `data/tables/meta_tree.tres` + schema MetaTreeTable(**已实装在役,迭代 21 T1**) |
|
||||
| 树的购买与货币规则 | 全树钥石单币;free 节点零币;购买校验四件套(等级上限 / 行门槛 / 前置 / 未解锁) |
|
||||
| 营地统一模型 | 树=营地本体(呈现=四柜台并排):生命/命中淬炼唯一入口=树脊柱淬炼节点,攻/AC 唯一入口=锻造工坊路线(所有权切分,2026-10-11 裁);工作间钥匙模型(锻造工坊 / 秘宝匣);图鉴常开;旧属性锻造柜台退役(生命归脊柱、攻防归锻造工坊) |
|
||||
| 树域存档的内容语义 | tree_nodes(node_id→已购等级)与 fork_sides(fork_group→激活态)两域语义;旧档废弃规则(开发阶段无迁移——2026-10-11 用户裁) |
|
||||
| 树效果的跨局注入投影 | 生命/命中淬炼 flat 入覆盖值通道、Fork 激活态效果键集入冒险开始参数面 |
|
||||
|
||||
不负责:
|
||||
|
||||
| 不负责 | 归谁 |
|
||||
|---|---|
|
||||
| 节点数值行(价格 / 等级上限 / effects 取值 / 限次值) | [数据配置](../表现与支撑/数据配置.md)——行值读 `meta_tree.tres`,全 provisional 归数值批;本文只定规则与键结构 |
|
||||
| 钥石账本 | [元进度](元进度.md)——树是永久强化的承载结构,钥石余额是消费来源;旧柜台框架与退役面亦在对方登记 |
|
||||
| 锻造工坊工作间内的路线升级设计 | [锻造工坊](锻造工坊.md)——武器三路线+护甲三路线的等级、定价、满级特效现行事实源在彼;攻/AC 数值唯一来源在彼(所有权切分) |
|
||||
| 秘宝目录、同调装配与同调位求值 | [秘宝](../跨局循环/秘宝.md)——树只持同调位节点挂载位与秘宝匣钥匙 |
|
||||
| 奇物(局内流派件) | [奇物](../冒险循环/奇物.md)——规则改写型特性只走局内随机渠道,永不入树(层级纪律,见核心规则) |
|
||||
| 存档读写与版本迁移机制 | [存档序列化](../表现与支撑/存档序列化.md)——树域是存进去的内容之一 |
|
||||
| 营地界面呈现 | [HUD 框架](../表现与支撑/HUD框架.md)——四柜台并排呈现(案甲机制+四柜台措辞),呈现终稿归对方 |
|
||||
|
||||
## 在核心循环中的位置
|
||||
|
||||
```
|
||||
一场冒险结束 ──▶ 钥石入存档 ──▶ 营地(=树):淬炼点亮 + 工作间升级 ──▶ 下一局开局:属性 flat + 规则键集注入
|
||||
```
|
||||
|
||||
树贴在「死亡重开」出口外面的跨局段,与元进度同段:它不是一场冒险里的一段,而是永久强化在存档里的组织结构。没有它,单局循环照常成立——全新存档树全零就是完整可玩的游戏(白板条款随[元进度](元进度.md))。
|
||||
|
||||
## 核心规则
|
||||
|
||||
### 营地=树:统一模型
|
||||
|
||||
营地机制本体=这一棵树(2026-10-11 用户裁案甲,取代旧「三柜台→一树」界面重构议题);营地界面呈现=四柜台并排(2026-10-11 锻造工坊裁决会话 A② 裁):①树淬炼柜台(树脊柱的界面形态,生命/命中淬炼唯一入口)②锻造工坊柜台(武器+护甲攻防两区)③秘宝匣柜台(秘宝解锁与同调装配)④奖励格图鉴(常开无门槛)。攻防独立柜台;宽度不足时横向滚动条兜底;程序占位先行,视觉与布局终稿归 HUD 营地批(后续 UI 优化另批)。机制语义不随呈现措辞变:
|
||||
|
||||
- **生命/命中淬炼唯一入口**——生命/命中的永久强化只在树脊柱淬炼节点购买;攻/AC 的永久强化唯一入口=锻造工坊武器/护甲路线(所有权切分,2026-10-11 裁——树零攻防来源=红线)。旧属性锻造柜台(forge_levels 三档直购)退役:生命档吸收进脊柱、攻/护档由[锻造工坊](锻造工坊.md)实装批路线化改造承接,`forge_levels` 旧存档域随实装批清退(开发阶段无迁移——旧档破坏性废弃,见存档域节)。
|
||||
- **工作间钥匙模型**——锻造工坊、秘宝匣是树上两枚免费解锁节点(钥匙):点亮后展开对应工作间柜台面板,工作间内的升级操作(武器/护甲路线升级、秘宝解锁与同调装配)不在树上重复成节点。钥匙节点本身零币、不可跳过——锻造工坊钥匙无前置、直接可点亮(2026-10-11 裁),秘宝匣钥匙前置=脊柱生命第 1 级;钥匙未点亮时对应柜台锁定态,没点亮就进不去工作间。
|
||||
- **图鉴常开**——奖励格图鉴是查看类功能,不设钥匙、不设门槛。
|
||||
- 实装前过渡态:旧柜台三档直购维持现役(与树淬炼在注入面叠加),退役动作随 06「天赋树实装批」执行。
|
||||
|
||||
### 一脊三脉:节点构成
|
||||
|
||||
天赋树(玩家可见名;代码面 `meta_tree`)换代后 12 节点,按脉(vein)分四族:
|
||||
|
||||
| 脉 | 节点数 | 内容 | 结构要点 |
|
||||
|---|---|---|---|
|
||||
| 主干脊柱(spine) | 2 | 生命淬炼 / 命中淬炼——一线一节点(kind=stat),每节点内 4 个等级状态 | 行门槛:节点第 N 级可购需全树已购总等级 ≥ 4×(N−1)。2026-10-11 一线一节点换代(用户裁:一个内容一个节点、等级在节点内、不拆多节点)——原「一线 4 层×层内 3 购」收编为单节点 4 级(层=级),SPINE_ROW_GATE=4 公式平移到等级轴,row 字段随层行退役;达成节奏重算=注记在册、值归数值批 |
|
||||
| 锻造脉(forge) | 2 | 锻造工坊(kind=unlock,free,工作间钥匙)+ 彩蛋节点地脉共鸣(kind=easter) | 锻造工坊前置 = **无**(free,直接可点亮——2026-10-11 攻防所有权切分裁,原「攻击淬炼累计 ≥2 且 护甲淬炼累计 ≥2」等级阈值前置随两线砍除作废);彩蛋挂本脉 |
|
||||
| 钥石脉(keystone) | 2 | 秘宝匣(kind=unlock,free,工作间钥匙)/ 刷新升级(kind=rule) | 前置链:秘宝匣 ← 脊柱生命第 1 级;刷新升级 ← 秘宝匣 |
|
||||
| 同调脉(attune) | 6 | 同调位 1/2/3 三节点(kind=socket)+ Fork 3 节点(kind=fork,一节点双态)= **3 同调位 + 3 双态开关节点** | **同调位 1 为根节点、无前置**,其后逐级前置(1→2→3);全部 Fork 前置 = 同调位 1;Fork=开局姿态/危险直觉/财富之道各一节点(2026-10-11 用户裁:一节点双态、解锁后 A/B 可切——非六节点) |
|
||||
|
||||
节点类型是封闭枚举六类:stat(生命/命中两线数值)/ rule(全局规则)/ unlock(内容解锁)/ socket(同调位)/ fork(一节点双态开关)/ easter(彩蛋觉醒)。字段、词表与跨字段约束由 schema 校验(MetaTreeTable.validate:脉 / 类型 / 币出域即拒、effects 键封闭、Fork 三组每组恰一节点、彩蛋 ≤3、禁 archetype 键——加载期校验)。**schema 连带已随迭代 21 T1 落地**:Fork 由 A/B 双行改单行双态(行持 a/b 双效果键 effects_a/b+name_a/b,效果按激活态取值;Fork 组词表 4→3 组)、规则键词表 2→6 键(见 Fork 节)、row 字段随一线一节点退役;「等级阈值前置」机制位 **2026-10-13 顺带重立**(requires_level 字段+加载校验,现役零配置——见头部状态行)。
|
||||
|
||||
### 节点总表(12 节点)
|
||||
|
||||
换代后全名单(2026-10-11 Fork 一节点双态批换代:15→12)。数值行(价格/上限/效果取值)不在此表,读配置文件 `game/data/tables/meta_tree.tres`(**12 行结构已实装在役——迭代 21 T1,33 行旧结构已废弃重置不迁移**):
|
||||
|
||||
| 节点 | 脉 | 类型 | 前置 | 效果方向 |
|
||||
|---|---|---|---|---|
|
||||
| 生命淬炼 | 脊柱 | stat | 第 1 级无门槛;第 2~4 级=行门槛(全树总投入 ≥4/8/12) | 单节点 4 级,每级生命上限 +5 量级 |
|
||||
| 命中淬炼 | 脊柱 | stat | 同上行门槛 | 单节点 4 级,每级命中 +1 量级(暂不注入——消费面归数值批) |
|
||||
| 锻造工坊 | 锻造 | unlock | 无(free,直接可点亮——2026-10-11 裁,原等级阈值前置作废) | 免费点亮→展开锻造工坊工作间(武器/护甲路线升级=攻/AC 数值唯一入口,内容现行事实源=[锻造工坊](锻造工坊.md)) |
|
||||
| 地脉共鸣 | 锻造 | easter | 生命/命中两线全部买满(两节点均 4 级拉满)**且** 同调位 1/2/3 全部解锁 | 免费自动觉醒;生命/命中两线 flat 各一份(命中分量随命中线注入面落位生效) |
|
||||
| 秘宝匣 | 钥石 | unlock | 脊柱生命第 1 级 | 免费点亮→展开秘宝匣工作间(秘宝解锁+同调装配,现行事实源=[秘宝](../跨局循环/秘宝.md)) |
|
||||
| 刷新升级 | 钥石 | rule | 秘宝匣 | 每级提升同调刷新能力(现役生效走同调段账本;树上接线=缺陷修复归实装批) |
|
||||
| 同调位 1 | 同调 | socket | 无(根节点) | 解锁同调挂载位 1(**槽位收编已落地——判定源 = 树点亮数,迭代 21 T4**) |
|
||||
| 同调位 2 | 同调 | socket | 同调位 1 | 挂载位 2 |
|
||||
| 同调位 3 | 同调 | socket | 同调位 2 | 挂载位 3 |
|
||||
| 开局姿态 | 同调 | fork·双态 | 同调位 1 | **A** 先手压制=每关首轮行动点 +1 / **B** 稳健拓荒=每关首轮内受击减伤(购买解锁·默认 A·营地零币切换) |
|
||||
| 危险直觉 | 同调 | fork·双态 | 同调位 1 | **A** 锋=踩中危险格伤害减半·每关限次 / **B** 守=危险格标记错误返还行动点·每关限次(**六键已接线在役——迭代 21 T3;标错机制存在性 T0 已实查结案**) |
|
||||
| 财富之道 | 同调 | fork·双态 | 同调位 1 | **A** 聚=战斗掉落 GP 增益(仅此渠道)/ **B** 散=GP 消费折价(全部 GP 消费面) |
|
||||
|
||||
三组 Fork 各为一个双态开关节点:购买一次解锁(cap1、零重复购买),解锁后默认 A 态,营地零币在 A/B 间切换;同一时刻每组恰一个激活态(互斥由单态承载);六态效果数值全 provisional 读表。
|
||||
|
||||
### 购买与货币:全树钥石单币
|
||||
|
||||
所有付费节点只收钥石(2026-10-07 用户裁甲落定;行内 currency 字段保留为呈现元数据)。free 节点零币:两枚工作间钥匙(锻造工坊 / 秘宝匣)与彩蛋(觉醒)不经购买消费。
|
||||
|
||||
购买校验四件套,全部通过才受理:①当前等级未满上限;②行门槛——脊柱节点第 N 级需全树已购总等级 ≥ 4×(N−1)(总等级口径 = tree_nodes 全部节点等级之和,免费点亮与分叉激活均计入——2026-10-11 歧义扫描裁甲沿现役实态;常量 SPINE_ROW_GATE=4;2026-10-11 一线一节点换代后门槛主语=节点目标等级,原层行判定作废;达成节奏重算归数值批);③requires 前置满足——点亮前置(前置节点全部已点亮)+ **等级阈值前置(requires_level:指定前置节点等级 ≥ n——R1 机制位 2026-10-13 顺带重立,2026-10-12 曾按卡片默认裁撤案执行、用户推翻补机制位;现役 12 行零配置空转,配置归表行随需填)**;④Fork 节点未解锁(一节点双态——解锁后的态切换走零币切换口,不经购买)。执行购买时另查钥石余额:余额不足则购买失败,存档零副作用(等级、余额、激活态均不动)。
|
||||
|
||||
写口唯一:营地界面只发购买意图信号(tree_buy_requested),扣币、升级、写盘全部经 MetaProgression.tree_buy;Fork 节点购买走 tree_buy_fork(购即解锁、默认 A 态),态切换走 tree_toggle_fork(零币、只改激活态)。
|
||||
|
||||
### Fork 三组:一节点双态与免费切换
|
||||
|
||||
Fork 组是封闭词表三组(2026-10-11 裁:克制专精整组砍除,类型表达归[锻造工坊](锻造工坊.md)):fg_posture(开局姿态)、fg_sense(危险直觉)、fg_economy(财富之道)。**每组一个节点、节点内两个状态**(2026-10-11 用户裁换代:现役 A/B 双行结构系迭代 12 沿袭,收编为单行双态):购买节点即解锁开关(tree_nodes 入档),解锁后默认 A 态(激活态写入存档 fork_sides);营地零币在 A/B 间切换——切换只改激活态,效果按新激活态效果键生效;同态重复切换是零操作;已解锁节点无重复购买。体验形态是「付一次钱得到一个双态开关」——现役 fork_sides 存档语义(组→激活态)不变,变的只是节点行的组织方式。
|
||||
|
||||
效果定案(2026-10-11 用户逐组裁,数值全 provisional 归数值批):
|
||||
|
||||
| 组(节点) | A 态 | B 态 | 设计注记 |
|
||||
|---|---|---|---|
|
||||
| fg_posture 开局姿态 | 先手压制 = 每关首轮 AP +1 | 稳健拓荒 = 每关首轮内受击减伤 | 两侧同收**每关首轮窗**(每关第一场战斗的第一轮,第二关自动刷新——时间范围一致性裁甲) |
|
||||
| fg_sense 危险直觉 | 锋 = 踩中危险格伤害减半·每关限次 | 守 = 危险格标记错误返还行动点·每关限次 | 唯一根植排雷半边的组;玩家文案沿用「危险格 / 安全格」正主词,不出现雷字、不另造别名(2026-10-11 歧义扫描裁甲,废「陷阱/危险标记」自造词)。**前提核实在册**:标记错误机制存在性随实装批 T0 实查,查无则守侧换安全网向等价效果经用户裁 |
|
||||
| fg_economy 财富之道 | 聚 = 战斗掉落 GP 增益 | 散 = GP 消费折价 | 范围(2026-10-11 歧义扫描裁):聚 = **仅战斗掉落渠道**;散 = **全部 GP 消费面**。**折扣定义边界(2026-10-12 卡片 v1.7 ⑪②裁决写入文档——原「设计避让」句按裁决改写)**:散的折价只覆盖商品购买价(键 `gp_cost_mult`),不含三选一付费刷新与商店刷新(`shop_refresh_cost` 不折)——这是折扣的定义边界本身,非对外两处旋钮的临时避让 |
|
||||
|
||||
「每关限次」的计数生命周期(2026-10-11 歧义扫描裁甲):限次计数随单次冒险持久、按关重置、新冒险清零、断点续玩保留。
|
||||
|
||||
A/B 态只放规则面:节点行持 a/b 双效果键(封闭规则键词表 RULE_KEYS 六键——**已随迭代 21 T3 扩签落地**:posture 双键收每关首轮窗、sense 锋/守双键限次按关重置、economy 聚/散双键接线),效果按激活态取值,不接数值线。两侧的设计判据是「不同强、非强弱」:MC 配对锚验收两侧通关率差 <~3pp(**迭代 21 V19 已验:perfect+max 档三组配对差全部 0.0pp 在带**)。
|
||||
|
||||
层级纪律(红线):局外树只放全局规则件——effects 禁 archetype 键(schema 加载致命);规则改写型特性(流派件)只走局内随机渠道,永不入树。
|
||||
|
||||
### 彩蛋节点:满排觉醒
|
||||
|
||||
彩蛋节点全树上限 3 枚(schema 校验),在役 1 枚 = 地脉共鸣:**生命/命中两线全部买满(两节点均 4 级拉满)且 同调位 1/2/3 全部解锁**时自动觉醒点亮(2026-10-11 裁:原条件「四条淬炼线全部买满」随攻防所有权切分换代两线、复随一线一节点换代为两节点拉满),零币、不经购买;效果 = **生命/命中两线属性 flat**(取值读表;攻/护分量随所有权切分摘除——攻防归锻造工坊路线;命中分量随命中线注入面落位生效——命中线在账未注入纪律不变),经注入面进下一局。彩蛋不进主路径,是深度玩家的挖掘位。
|
||||
|
||||
### 存档域与旧档废弃
|
||||
|
||||
存档 v5 起树域两键(meta 域下):tree_nodes = node_id→已购等级(Fork 节点购买态=1 级解锁标记);fork_sides = fork_group→激活态("a" / "b")。承载与读写归[存档序列化](../表现与支撑/存档序列化.md),本文登记内容语义。
|
||||
|
||||
**旧档废弃(2026-10-11 用户裁:开发阶段无迁移)**——Alpha 未出、无存量玩家,结构换代 = 破坏性废弃:加载检测到换代前结构(已删节点 id 残留)即废弃树域重置(或整档废弃),**禁做数据迁移与折算**;三体系迁移函数 `migrate_tree` 与旧域 `forge_levels` 随实装批清退删除。
|
||||
|
||||
### 跨局注入:树效果怎么进下一局
|
||||
|
||||
树的效果经两条通道随冒险开始参数面下传(通道现行事实源 = [元进度](元进度.md)「跨局注入」节):
|
||||
|
||||
① 属性通道——开局属性 = **角色基础值 + 树生命/命中淬炼 flat(Σ 节点 effects × 等级)+ 锻造路线加值(当前武器攻击加值 + 当前甲 AC 加值,只按当前选中生效,正主 = [锻造工坊](锻造工坊.md))+ 局内加算区 flat**(2026-10-11 攻防所有权切分叠加公式换代:树脊柱只持生命/命中,攻/AC 唯一来源=锻造路线——每根数值轴全游戏单一来源;旧「柜台三档 flat」项随柜台退役移除,树淬炼成账号全局基础层、锻造路线成专精层,两层相加)。写入覆盖值通道(atk / max_hp / armor_class),开局显式传入战斗初始化。命中线已购等级在账但未入注入面——消费面(命中折扣档)归数值批(代码批注在册披露)。
|
||||
|
||||
② 规则通道——tree_rule_keys = 各 Fork 组激活态的效果键集,经冒险开始参数面 tree_rules 下传;每场战斗 begin_battle 时由效果引擎 rebuild 合成订阅行生效。开新冒险与继续上局两入口同参同值。
|
||||
|
||||
### 已建未接面(接线落地态——2026-10-13 迭代 21 反哺写入换代)
|
||||
|
||||
三条原「已建表/已可购但消费面未接」的实态,**两条已随迭代 21 接线在役、一条维持纪律**:
|
||||
|
||||
- 同调位数量判定源——**已接(迭代 21 T4)**:`Attunement.slots` 判定源已切树点亮数(att_socket1..3),旧条件表(按 Boss 击杀次数自动涨)已随迭代 21 T5 删除(attunement_growth.tres 谓词表退役)。
|
||||
- 刷新升级节点——**已接(迭代 21 T4)**:树上购买(ks_refresh)同账路由 `buy_attune_refresh`,价格/cap 单一事实源 = Y 行表值;双入口并存(树上节点与秘宝匣装配段升级钮写同一账本,Q1 裁)。
|
||||
- 命中线 flat 不入注入面——**维持(契约 6 纪律)**:override 无 hit 字段,命中在账未注入;消费面开启归数值批(M4)。
|
||||
|
||||
## 依赖与输出
|
||||
|
||||
| 方向 | 系统 / 文档 | 接口要点 |
|
||||
|---|---|---|
|
||||
| 上游 | [元进度](元进度.md) | 钥石账本——树是永久强化的承载结构与营地本体;消费经钥石余额(写口 SaveManager),注入通道现行事实源在对方;旧柜台退役面在对方登记 |
|
||||
| 上游 | [数据配置](../表现与支撑/数据配置.md) | meta_tree.tres 承载与 schema 校验机制——本系统为结构 owner、数值回填归数值批 |
|
||||
| 上游 | [存档序列化](../表现与支撑/存档序列化.md) | tree_nodes / fork_sides 持久化与旧档废弃承载 |
|
||||
| 上游 | [秘宝](秘宝.md) | 同调位槽位判定源 = 树点亮数(**已切换在役,迭代 21 T4**;旧条件表已删);秘宝匣工作间内目录与装配现行事实源在彼 |
|
||||
| 上游 | [锻造工坊](锻造工坊.md) | 武器/护甲路线升级现行事实源在彼——树持钥匙节点(无前置),工作间柜台=钥匙展开面板;攻/AC 数值唯一来源在彼(所有权切分红线) |
|
||||
| 下游 | [冒险结构](../冒险循环/冒险结构.md) | 冒险开始参数面——树生命/命中淬炼 flat(叠加进覆盖值通道)与 tree_rules 键集的注入通道 |
|
||||
| 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 营地四柜台并排呈现——树淬炼柜台=树脊柱界面形态(案甲);信号 = tree_buy_requested / tree_fork_toggled |
|
||||
| 下游 | 战斗侧效果引擎 | 规则键消费面——begin_battle rebuild 合成订阅(机制硬编码,无表行) |
|
||||
|
||||
## P0 最小闭环
|
||||
|
||||
**P0 语义已随迭代 21 全量落地(2026-10-12 入库;2026-10-13 反哺写入换代——原「33 节点现役态维持」过渡态终结)**:12 节点结构(脊柱 = 生命/命中一线一节点、Fork = 三节点双态)+ 营地统一(树 = 营地本体、生命/命中唯一入口、攻防归锻造工坊、工作间钥匙、四柜台呈现)+ 三组 Fork 双态真效果 + 购买/切换/门槛/彩蛋/注入/旧档废弃全链,机检 = 冒烟 886/0 + run_all 22 套 + probe 全绿 + MC 三组配对差 0.0pp(迭代 21 出口闸读数);残留人闸 = 实机目检营地四柜台(07 ⑳)。旧 33 节点结构随 `TREE_STRUCT_VERSION=2` 废弃重置(禁迁移,Q3 裁)。
|
||||
|
||||
## P1 / P2 后置
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 命中线 flat 入注入面 | 消费面 = 命中折扣档归数值批(代码批注在册) |
|
||||
| P2 | 彩蛋发现率监控 | 发现率过低改树内灰色预告的反例条件在册;监控读数归呈报线 |
|
||||
|
||||
(原 P1「Fork 效果面差异化」已定案归实装批;「同调位 / 刷新升级消费面接管」已定案归实装批〔刷新升级定性缺陷修复〕;「三柜台→一树」已由营地统一模型〔案甲〕承接——三者均并入 06「天赋树实装批」,不再单列。)
|
||||
|
||||
## 调参表
|
||||
|
||||
本系统的数值行全部外置(数值纪律:正文只定规则与键结构,行值读配置表):
|
||||
|
||||
| 表 / 常量 | 键结构归属 | 数值行 |
|
||||
|---|---|---|
|
||||
| 节点表 `data/tables/meta_tree.tres`(换代后 12 行:价格 / 等级上限 / requires(点亮前置)/ **requires_level(等级阈值前置——R1 机制位,现役零配置)** / effects 取值(Fork 行持 a/b 双效果键)/ 限次值;row 字段随一线一节点退役) | schema MetaTreeTable,本文 owner | 全 provisional,归数值批投值 |
|
||||
| 脊柱行门槛常量 SPINE_ROW_GATE = 4 | `meta_tree_table.gd` 常量,本文 owner | 常量即规则(节点第 N 级需全树总等级 ≥ 4×(N−1)) |
|
||||
| Fork 组词表 FORK_GROUPS(三组)/ 规则键词表 RULE_KEYS(换代后六键,扩表随实装批) | `meta_tree_table.gd` 封闭词表 | 词表即规则;规则键效果值硬编码于效果引擎 rebuild |
|
||||
| 钥石产出、刷新升级行族 | 现行事实源 = [元进度](元进度.md)调参表 | `data/tables/meta.tres` |
|
||||
|
||||
## 验收标准
|
||||
|
||||
> **落地实态(2026-10-13 反哺写入注)**:下列各条已随迭代 21 实装并过出口闸——机检 = 冒烟 886/0(V1-V10/V16 断言顺带)+ run_all 22 套(tree_rules_v11_test 六键闭集)+ probe --click/--full 八探针 + render_gate + MC 三组同种子配对差 0.0pp(V19);残留人闸 = 实机目检营地四柜台(07 ⑳)。命中线「暂不注入」括注 = 契约 6 纪律维持(非缺陷——消费面开启归数值批)。
|
||||
|
||||
- 结构封闭:meta_tree.tres 通过 schema 校验零违例——12 节点、脉 / 类型 / 币词表出域即拒、Fork 三组每组恰一节点且持 a/b 双效果键、彩蛋 ≤3、effects 键封闭、零 archetype 键。
|
||||
- 行门槛可判:全树已购总等级 < 4×(N−1) 时脊柱节点第 N 级不可购;总等级达标当刻该级开放购买。
|
||||
- 前置可判(点亮前置):requires 任一未点亮则节点不可购,逐一点亮后可购;锻造工坊钥匙无前置——初始即可点亮(free 零币)。**等级阈值前置(requires_level):配置了该键的节点,指定前置节点等级 < n 时不可购、达标当刻开放(单测八断言承载——schema 四拒一过+判定三态+投影两态;现役零配置,判定面经测试夹具直构行验证)。**
|
||||
- 工作间可判:钥匙节点(锻造工坊 / 秘宝匣)未点亮时对应柜台锁定态、工作间不可进入;点亮后展开;图鉴无门槛常开。
|
||||
- 单币可判:任一付费节点购买只扣钥石;余额不足购买失败,且存档零变化(等级、余额、激活态均不动)。
|
||||
- 双态可判:Fork 节点购买解锁后默认 A 态;切换零币,切换后规则键集=新激活态效果键;同态重复切换零操作;未解锁 Fork 不可切换、不可重复购买。
|
||||
- 彩蛋可判:生命/命中两节点均买满(4 级拉满)且同调位 1/2/3 全部解锁时彩蛋节点自动点亮且零消费;任一条件不满足则不亮。
|
||||
- 注入可判:开局覆盖值 = 角色基础值 + 树生命/命中淬炼 flat(命中在账未注入)+ 锻造路线加值 + 局内加算区(各层语义清晰可加);tree_rules = 全部 Fork 组激活态效果键集;开新冒险与继续上局两入口参数同值;全新存档(树全零)开局与零树状态完全一致。
|
||||
- 旧档废弃可判:加载换代前结构存档 → 树域废弃重置 → 后续游玩正常且无残留脏节点(开发阶段纪律,禁迁移);全新存档(树全零)开局与零树状态完全一致。
|
||||
|
||||
## 待办
|
||||
|
||||
本系统待办条目已统一收编至 [06-待办清单](../../06-待办清单.md)「天赋树实装批」条,本节不再逐条登记。
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v0.10 | 2026-10-13 | **R1 机制位批(用户推翻迭代 21 追认单 #1 裁撤案)**:「等级阈值前置」以机制位形态随批重立——schema requires_level 字段(Dictionary{node_id: n},键悬空/阈值 <1/类型错加载即拒)+ tree_can_buy 判定分支 + 行板门槛呈现(未达标 🔒+悬停文案 gate_text)+ 单测 tree_requires_level_test 八断言(run_all 24→25 套);现役 12 行零配置=空转零行为影响(冒烟 938/0+全闸复跑零漂移),配置归表行随需填。六处 R1 表述换代(状态行/范围表/schema 连带/购买校验③/调参表/验收前置行) |
|
||||
| v0.9 | 2026-10-13 | **迭代 21 反哺落文批(实现报告 §五①③⑥,用户裁「按呈报落文」)**:①实装落地态全文档换代七处——头部状态行 / 系统范围表 / 节点总表前言与三行 / schema 连带句 / 依赖表 / P0 段 / 验收实态注(原「实装未落、现役 33 节点」过渡态终结;迭代 21 = 2026-10-12 入库);③「财富之道」设计避让句按卡片 v1.7 ⑪②裁决改写为折扣定义边界口径(散=只覆盖商品购买价,键 gp_cost_mult,不含两处刷新——定义边界非临时避让);⑥验收实态注(机检读数+命中线契约 6 括注定性);连带:已建未接面节换代(同调位判定源已切树点亮数 / 刷新升级同账路由 / 命中线契约 6 维持——两接一维持)。机制与数值零改动 |
|
||||
| v0.8 | 2026-10-11 | **Fork 一节点双态换代批(用户裁)**:①开局姿态/危险直觉/财富之道三天赋=三节点——现役 A/B 双行结构(迭代 12 沿袭,「付一次钱得双态开关」裁决未落进节点组织=落文错误已纠正)收编为单行双态,同调脉 9→6(同调位 3+Fork 3)、全树 15→12;②节点语义=购买解锁双态开关(cap1、零重复购买)、解锁默认 A 态、营地零币切换(互斥由单态承载);fork_sides 存档语义不变(组→激活态),tree_buy_fork=购买解锁/tree_toggle_fork=零币切态;schema=Fork 行持 a/b 双效果键、效果按激活态取值、Fork 组词表校验改每组恰一节点;③R1(「等级阈值前置」形态去留)不随本批变化,仍开放待裁(推荐裁撤)。实装归 06「天赋树实装批」(33→12 连带,需求卡片 v1.6 同批) |
|
||||
| v0.7 | 2026-10-11 | **一线一节点换代批(用户裁)**:①脊柱淬炼一线一节点——生命淬炼/命中淬炼各收编为单节点 4 级(原「一线 4 层×层内 3 购」层=级收编;用户明裁:一个内容一个节点、等级在节点内、不拆多节点),脊柱 8→2、全树 21→15;②行门槛平移——SPINE_ROW_GATE=4 公式不变,门槛主语从「层 N」改「节点第 N 级」(第 2~4 级需全树总投入 ≥4/8/12),row 字段随层行退役;③彩蛋条件随结构换代为「生命/命中两节点 4 级拉满 且 同调位 1/2/3 全部解锁」;④R1(「等级阈值前置」形态去留)不随本批变化,仍开放待裁(推荐裁撤)。实装归 06「天赋树实装批」(33→15 连带,需求卡片 v1.5 同批) |
|
||||
| v0.6 | 2026-10-11 | **攻防所有权切分落文批(锻造工坊裁决会话 A 组定案,天赋树会话交接落文)**:①脊柱换代 16→8——攻击淬炼×4 层与护甲淬炼×4 层删除,脊柱=生命/命中两线×4 层,全树 29→21 节点(每根数值轴全游戏单一来源:生命/命中→树脊柱、攻击→锻造工坊武器路线、AC→甲路线,树零攻防来源=红线);②锻造工坊钥匙节点前置改「无」(free、直接可点亮,原「攻击淬炼累计 ≥2 且 护甲淬炼累计 ≥2」等级阈值前置随两线砍除作废)——连带开放待裁点 R1:schema「等级阈值前置」新形态现无消费者,裁撤(推荐)/留作机制位待用户裁;③地脉共鸣换代——条件改「生命/命中两线全部买满(8 节点全上限)且 同调位 1/2/3 全部解锁」、效果改生命/命中两线 flat(攻/护分量摘除),上限 3 枚不变;④行门槛 SPINE_ROW_GATE=4 规则保留(层 N 需全树总等级 ≥4×(N−1)),两线换代后总等级供给结构变化=达成节奏重算注记在册、值归数值批;⑤叠加公式换代——开局属性=角色基础值+树生命/命中淬炼 flat+锻造路线加值(只按当前选中生效)+局内加算区 flat(命中在账未注入披露不变);⑥营地呈现措辞对齐四柜台并排(树淬炼柜台=树脊柱界面形态、锻造工坊柜台钥匙点亮前=锁定态,机制语义=树营地本体/钥匙模型/图鉴常开不变,A② 裁);⑦节点总表/一脊三脉/验收标准/调参表/依赖表连带换代。实装归 06「天赋树实装批」(结构目标 33→21 连带换代,需求卡片 v1.4 同批) |
|
||||
| v0.5 | 2026-10-11 | 锻造工坊更名批随迁(机械扫):五处「武器锻造」链接随系统更名「锻造工坊」换代为 [锻造工坊](锻造工坊.md)(v0.2 历史行内旧名按历史记载保留)。结构零改动 |
|
||||
| v0.4 | 2026-10-11 | **歧义扫描清零批(/grilling 六裁落文)**:①Q1 术语回归正主——分叉效果废「陷阱/危险标记」自造词,改「踩中危险格伤害减半」「危险格标记错误返还行动点」,玩家文案沿「危险格/安全格」;②Q2 地脉共鸣效果改生命/攻击/护甲三线(命中分量待命中线注入随批加回,不留永久无效分量);③Q3 行门槛总等级口径写明=tree_nodes 全部节点等级之和(免费点亮与分叉激活计入,沿现役实态);④Q4 财富之道范围定界——聚=仅战斗掉落渠道、散=全部 GP 消费面(用户裁);⑤Q5 限次计数生命周期落句(随冒险持久/按关重置/新冒险清零/断点保留);⑥Q6 三处旧裁决换代——已建未接面槽位判定源句换 Q2 裁决(树点亮数+旧条件作废删除)、刷新升级条补 Q1 双入口并存、存档域节「迁移重做」整节换代为「旧档废弃」(Q3 裁决落文,禁迁移红线);顺带清「Y 升级行族」黑话为「刷新升级行族」。结构零改动 |
|
||||
| v0.3 | 2026-10-11 | **节点台账补全批(用户令:台账指引升格文首+29 节点总表落文)**:文档最前新增「节点台账指引」块(节点结构查本文总表 / 数值查配置文件 `game/data/tables/meta_tree.tres` 双源分工声明);核心规则节补「节点总表(29 节点)」——17 行折叠式全名单(脊柱四线按层折叠),逐节点名称/脉/类型/前置/效果方向,数值不进正文沿配置纪律。结构零改动(纯台账补全) |
|
||||
| v0.2 | 2026-10-11 | **天赋树设计会话裁决批(结构换代+分叉效果定案+营地统一)**:①结构换代 33→29——锻造枝三属性节点(武器锻造/护身锻造/甲胄锻造,旧柜台镜像重复件)删除换单个免费解锁节点「锻造工坊」(前置=攻击淬炼累计≥2 且护甲淬炼累计≥2,等级阈值前置新形态);克制专精 Fork 对整组砍除(类型表达归武器锻造);②分叉效果定案——开局姿态两侧收每关首轮窗(先手压制=每关首轮 AP+1 / 稳健拓荒=每关首轮内受击减伤)、雷感直觉改名危险直觉(锋=陷阱伤害减半 / 守=误标返 AP·均每关限次;标错机制存在性 T0 实查在册)、经济人格改名财富之道(聚=GP 获取增益 / 散=消费折价,避开两处在册旋钮);现役两键占位态随实装批终结;③营地统一案甲——树=营地本体,属性升级唯一入口=树淬炼节点,旧属性锻造柜台退役吸收进脊柱,工作间钥匙模型(锻造工坊/秘宝匣两钥匙+图鉴常开);④叠加公式换代=基础值+树淬炼+锻造路线加值+局内加算;⑤同调位 1 改无前置根节点、串行保留;地脉共鸣条件改四线全部买满;⑥「道具工坊」改名「秘宝匣」;⑦树上刷新升级节点定性缺陷(购买写 attune_refresh_level 同账修复随批);迁移映射重做(forge_levels→脊柱线)。全部实装归 06「天赋树实装批」(原「已建未接面两件」+「结构重构批」两条合并) |
|
||||
| v0.1 | 2026-10-09 | **B1 裁决补写批(用户令「元进度让他们都独立去写」)**:系统随迭代 12 双层 BD 实施批实装在役(33 节点 + 存档 v5 树域 + 营地树界面 + A/B 面 MC 两侧差 0.0pp 过 <~3pp 验收线,2026-10-04 落地 = 合并 e780063 系),本文补写其设计文档——机制描述以代码实态(meta_tree.tres / MetaTreeTable schema / MetaProgression 树段 / save_manager v5 域 / 效果引擎规则键消费面)与迭代 12 落地裁决(整合定稿 R1 甲融合案、2026-10-07 树全钥石单币裁甲)为据;设计底稿《双层BD体系-整合定稿-2026-10-03》已按吸收即死退役(删除 = git 8e02dcf,内容经 git 历史取证)。已建未接面三条如实登记(同调位 / 刷新升级 / 命中线),处置权归后续批 |
|
||||
| v0.11 | 2026-10-15 | **简明技术中文用语规范批(用户令):死链修复 1 处**——v0.5 行更名记载内的武器锻造死链改指锻造工坊.md(2026-10-11 更名漏改指路;显示文字「武器锻造」系更名记载的旧名内容本身,按对照性豁免保留,仅换链接目标)。词面修正 0 处、机制零改动 |
|
||||
@@ -1,18 +1,20 @@
|
||||
# 生涯
|
||||
|
||||
> **一句话定位**:主菜单里与营地平级的**局外只读界面**——营地管「花」(花钥石买永久强化),生涯管「看」(看自己跨局攒下的一切:累计战绩、历史冒险、图鉴收集)。冒险进行中不给任何数据回看(2026-10-04 用户裁决 P-C7 的延续),生涯是历史数据唯一的家。
|
||||
> **状态**:范围草案(2026-10-06 迭代 17 卡④设计提纲批成文,待用户评审;评审通过后期一/二/三实装批另行立项,本文不预占排期)。
|
||||
> **状态**:期一已实装(2026-10-07 迭代 18 卡④生涯界面实装批·期一——跨局汇总页+主菜单入口+终身计数域存档 v6 落地;期二/期三另行立项,本文不预占排期)。
|
||||
> **来源**:[06-待办清单「『生涯』界面——冒险中数据回看的唯一承接处」条](../../06-待办清单.md)(2026-10-04 用户裁决 P-C7——冒险中不给数据回看,历史战报与结算明细的查看去向 = 新「生涯」界面)。
|
||||
|
||||
## 一、信息架构
|
||||
|
||||
生涯入口是主菜单一级按钮,与营地平级(2026-10-06 用户裁,备选案与淘汰依据见任务书 P1)。现行主菜单按钮组由 `build_start_overlay` 构造(`game/presentation/ui_assembler.gd:104`):「冒险」组(继续上局 :138 / 开始冒险 :144)与「营地与系统」组(营地 :150 / 设置 :152 / 退出游戏 :156),另有右下角调试角标(DS_DEBUG=1 门控,与主按钮组非平级)。生涯按钮与营地平级同列一级;具体组帽归属与按钮排位属布局细节,归期一实装批(本文不画布局稿)。
|
||||
生涯入口是主菜单一级按钮,与营地平级(2026-10-06 用户裁,备选案与淘汰依据见需求卡片 P1)。现行主菜单按钮组由 `build_start_overlay` 构造(`game/presentation/ui_assembler.gd:103`):「冒险」组(继续上局 / 开始冒险)与「营地与系统」组(营地 / 生涯〔期一已落位,营地钮与设置钮之间〕 / 设置 / 退出游戏)。具体行序排版属实装细节顺带落位(本文不画布局稿)。
|
||||
|
||||
```
|
||||
主菜单(开始覆盖层)
|
||||
├─ 冒险组:继续上局 · 开始冒险
|
||||
├─ 营地与系统组:营地 · 生涯(本提纲新增) · 设置 · 退出游戏
|
||||
└─ 调试角标(DS_DEBUG=1 门控,非平级)
|
||||
└─ 营地与系统组:营地 · 生涯(期一已实装) · 设置 · 退出游戏
|
||||
|
||||
调试浮窗(迭代 18 卡⑦ P2 甲——入口迁宿主:开始层零调试入口;DS_DEBUG=1 会话浮窗启动即开,
|
||||
战斗屏 HUD 与关卡地图屏各一枚「调试」角标可再开)
|
||||
|
||||
生涯(局外只读面)
|
||||
├─ 跨局汇总(累计战绩与解锁总览)
|
||||
@@ -22,7 +24,7 @@
|
||||
|
||||
边界三条(均为 2026-10-06 用户裁 P4 甲):
|
||||
|
||||
1. **局内不放生涯入口**。冒险进行中玩家只看暂停层(迭代 17 卡③并行批——局内只读查看钥石与解锁进度);若历史回看能从局内到达,等于绕回 P-C7 退役前的形态,禁止。
|
||||
1. **局内不放生涯入口**。冒险进行中玩家只看状态面板(迭代 17 卡③并行批——局内只读查看钥石与解锁进度);若历史回看能从局内到达,等于绕回 P-C7 退役前的形态,禁止。
|
||||
2. **生涯内零跳转**。不放「去营地」之类的操作引导,生涯纯只读。
|
||||
3. **与 P-C7 的关系**:生涯的成立正是 P-C7 裁决的补偿面——「冒险中无回看」的已知代价由生涯承接(06 条目原文口径),本文不提议在冒险中恢复任何回看入口。
|
||||
|
||||
@@ -34,15 +36,15 @@
|
||||
|
||||
| 内容 | 数据源 | 现状 |
|
||||
|---|---|---|
|
||||
| 冒险总局数 / 通关局数 | 无现成数据源——`first_adventure_done` 是布尔(`save_manager.gd:117`)、`level_clear_counts` 按关计次(`:109`)反推不出总局数、`recent_summaries` 有上限截断不能累总 | 须新增两个终身计数域,涉存档 schema 迁移(save v6 义务,2026-10-06 用户裁归期一实装批) |
|
||||
| 冒险总局数 / 通关局数 | `adventure_total` / `adventure_cleared` 两终身计数域(save v6——期一已落地) | 现成(2026-10-07 迭代 18 卡④期一实装) |
|
||||
| 各关通关次数 | `clear_count(level_index)`(`save_manager.gd:238`) | 现成 |
|
||||
| Boss 首杀与总击杀 | `boss_first_kill_marked`(`save_manager.gd:242`)/ `boss_kill_count`(`:250`) | 现成 |
|
||||
| 钥石余额 | `keystone_balance`(`save_manager.gd:202`) | 现成。累计收支流水不在存(加钥石与花钥石只动余额,`:206`/`:211`)——如要做属新增流水域,期一实装批另呈报,本文只登记 |
|
||||
| 三柜台解锁完成度概览 | 锻造 `forge_level`(`save_manager.gd:218`)/ 工坊 `workshop_status`(`meta_progression.gd:90`)/ 天赋树 `tree_nodes`(`save_manager.gd:256`) | 现成只读投影 |
|
||||
| ~~三柜台解锁完成度概览~~ | (整行删——2026-10-12 用户裁:生涯页不统计天赋树与账号成长态,只统计终身计数;数据源 forge_level/workshop_status/tree_nodes 三投影随天赋树实装批退役,07⑲两观测项同步摘除) | — |
|
||||
|
||||
### 历史冒险回看(期二)
|
||||
|
||||
数据面现役事实:每局冒险收束时已有逐局摘要自动入档——`recent_summaries`(默认域 `save_manager.gd:116`、值拷贝访问器 `:316`、入账原语 `:325-338` 逐局插最前并按上限截断),上限 `SUMMARY_CAP := 10`(`:40`)。摘要字段在冒险收束时组装(`adventure_runner.gd:1005-1018`:结局 result、通关关数 levels_cleared、止步关 stopped_at、钥石合计 keystone_total、本局主种子 master_seed,另附逐杀掉落 keystone_drops 与终局特性 relics 等);摘要的内容口径 owner = [冒险结构](../冒险循环/冒险结构.md),本文不复述其口径。
|
||||
数据面现役事实:每局冒险收束时已有逐局摘要自动入档——`recent_summaries`(默认域 `save_manager.gd:116`、值拷贝访问器 `:316`、入账原语 `:325-338` 逐局插最前并按上限截断),上限 `SUMMARY_CAP := 10`(`:40`)。摘要字段在冒险收束时组装(`adventure_runner.gd:1005-1018`:结局 result、通关关数 levels_cleared、止步关 stopped_at、钥石合计 keystone_total、本局主种子 master_seed,另附逐杀掉落 keystone_drops 与终局专长持有集 relics(存档键名沿用历史形态)等);摘要的内容口径 owner = [冒险结构](../冒险循环/冒险结构.md),本文不复述其口径。
|
||||
|
||||
2026-10-06 用户裁(P2 甲):每局一行摘要,行内给**结局 / 到达关卡 / 钥石收入 / 用时**四件事,上限存最近 N 局。对应三件实绩(本批代码级复核确认的缺口,非新建数据面):
|
||||
|
||||
@@ -52,20 +54,20 @@
|
||||
|
||||
单局结算明细回看:遗留件 `settlement_review_overlay.gd`(`game/presentation/views/`,文件本体在盘、全仓无实例化引用——仅 `ui_kit.gd:356` 样式注记提及)由期二实装批复活承接,改挂生涯(2026-10-06 用户裁 P5 甲)。
|
||||
|
||||
可选增强(不占期、不上列):关键构筑列——摘要已附终局特性集 relics(`adventure_runner.gd:1017`),实装期评估是否呈现。
|
||||
可选增强(不占期、不上列):关键构筑列——摘要已附终局专长持有集 relics(`adventure_runner.gd:1017`——存档键名沿用历史形态),实装期评估是否呈现。
|
||||
|
||||
### 图鉴(期三)
|
||||
|
||||
- **敌人图鉴(优先,2026-10-06 用户裁 P3 甲)**:直接承接 06 在册「敌方技能图鉴 / 学习呈现」条(P2——见过 → 认得 → 记谱;归属 [HUD 框架](../表现与支撑/HUD框架.md) 与 [敌人系统](../战斗循环/敌人系统.md))。「见过」记账面 = 新增 meta 域,涉存档 schema 迁移(与期一终身计数域同属 schema 义务面;版本号按实装时点的现行版本顺延)。
|
||||
- **秘宝 / 奇物图鉴(随后)**:无在册条目,立项时另行登记。
|
||||
- **奖励格图鉴:只登记不激活**(P3 甲)。营地柜台三「奖励格图鉴」现况 = 柜台框在(`camp_overlay_view.gd:121`)、下段由天赋树行占用(`:128` 注记),图鉴本体空置;该柜台已随配比预设批整体挂起冻结(2026-10-05 用户令,06 在册),重启须用户另行发令。
|
||||
- **奖励格图鉴:只登记不激活**(P3 甲)。营地「奖励格图鉴」柜台现况 = 常开独立位(迭代 21 T6 四柜台并排重排——树淬炼柜台升主界面,图鉴本体仍空置、内容排 Alpha);该柜台已随配比预设批整体挂起冻结(2026-10-05 用户令,06 在册),重启须用户另行发令。
|
||||
|
||||
## 三、与既有界面的关系
|
||||
|
||||
| 界面 | 管什么(现状指证) | 与生涯的边界 |
|
||||
|---|---|---|
|
||||
| 营地([camp UX spec](../../ux/camp.md)) | 跨局成长**操作**面(花钥石买强化 / 装配 / 点树)+ 底栏「最近冒险」条带——`camp_overlay_view.gd:431` `_rebuild_recent()` 逐局拼行(`:442`「完成/放弃/失败 · 通关 N 关 · 钥石 +N · 种子 N」,无截断上限),数据源 = `camp_shop_presenter.gd:85` 投影的同一份 `recent_summaries` | 营地不改生涯只读定位;生涯不做任何购买入口,也不放「去买」按钮。营地条带的去留是本提纲必答项——见 §五 P6 |
|
||||
| 暂停层(迭代 17 卡③,并行批开发中) | **局内**只读查看这一局进行中的钥石与解锁进度 | 暂停层看当局当前值,生涯看跨局累计与历史;局内无生涯入口(P4 甲) |
|
||||
| 状态面板(迭代 17 卡③,并行批开发中) | **局内**只读查看这一局进行中的钥石与解锁进度 | 状态面板看当局当前值,生涯看跨局累计与历史;局内无生涯入口(P4 甲) |
|
||||
| 结算屏([settlement-summary UX spec](../../ux/settlement-summary.md)) | 冒险收束当下的入账明细——`main.gd:537` `_on_adventure_finished` 收束时呈现摘要与钥石明细(复用终局面账行,`battle_end_overlay.gd:118-129`) | 收束当下的呈现保留不动;生涯承接的是收束之后的任意时刻回看 |
|
||||
| 帮助手册(Beta 批,未实装——教学内容归 Beta 帮助手册,`ui_assembler.gd:99` 注记) | 讲「怎么玩」 | 生涯讲「我玩过什么」。图鉴条目文案与手册是否共用内容源,接口登记归 Beta 批一并裁 |
|
||||
| 图例面板(legend_overlay) | 局内符号/徽标即时解码 | 不合并——图例是局内解码面,图鉴是跨局收集面 |
|
||||
@@ -76,7 +78,7 @@
|
||||
|
||||
| 期 | 内容 | 前置 | 建议窗口(候选) |
|
||||
|---|---|---|---|
|
||||
| 期一 | 跨局汇总页 + 主菜单生涯入口落位。总局数/通关局数两个终身计数域随该批做存档 schema 迁移 | 提纲评审通过。实装批前置义务 = 对齐迭代 16 UI 批后的现行基线:`FS_*` 六档字号 / `TG_*` 语义色 / `BUTTON_MIN_H=40`(`ui_kit.gd:437`)/ 色板单源 / `page_shell` 模态栈纪律(`ui_kit.gd:394`)——与卡③任务书同款红线,本文只登记、不展开 | Alpha 后最近一个 UI 窗口 |
|
||||
| 期一 | 跨局汇总页 + 主菜单生涯入口落位。总局数/通关局数两个终身计数域随该批做存档 schema 迁移——**✅ 已实装(2026-10-07 迭代 18 卡④)**:汇总段六类九项+营地与系统组生涯钮+存档 v6 两终身计数域〔v5 升 v6 幂等迁移〕;闸读数与代拍板追认单见 design/qa/iter18-career-exit-report-2026-10-07.md | 提纲评审通过。实装批前置义务 = 对齐迭代 16 UI 批后的现行基线:`FS_*` 六档字号 / `TG_*` 语义色 / `BUTTON_MIN_H=40`(`ui_kit.gd:437`)/ 色板单源 / `page_shell` 模态栈纪律(`ui_kit.gd:394`)——与卡③需求卡片同款红线,本文只登记、不展开 | Alpha 后最近一个 UI 窗口 |
|
||||
| 期二 | 历史冒险回看整段:N 扩容 + 用时埋点 + 旧档摘要迁移 + 逐局列表 + 单局明细(`settlement_review_overlay.gd` 复活承接)+ 营地条带处置(P6 裁案落地) | 期一。实装批开工前须向用户呈报两件:N 终值读数(20 / 50 / 维持 10 三选一)与「用时」埋点口径(计时起点、暂停是否计入——字段级细节本文不做) | 期一落地后独立批 |
|
||||
| 期三 | 图鉴承接(敌人优先,范围与顺序随 P3 甲);「见过」记账面 schema 义务随该批执行 | 期二或独立评估 | Beta 窗口候选(与教学引导同段评估——图鉴的「认得」轴与教学相关;06 教学引导节各条 2026-10-04 起已整体标 Beta 阶段) |
|
||||
|
||||
@@ -84,7 +86,7 @@
|
||||
|
||||
## 五、待裁点
|
||||
|
||||
P0-P5 六点已于 2026-10-06 用户全裁(案甲 × 6,备选案与淘汰依据在任务书 §8),结论已落文上文对应节,不重复列。本批新发现的待裁点一项:
|
||||
P0-P5 六点已于 2026-10-06 用户全裁(案甲 × 6,备选案与淘汰依据在需求卡片 §8),结论已写入上文对应节,不重复列。本批新发现的待裁点一项:
|
||||
|
||||
### P6 · 营地底栏「最近冒险」条带去留(期二必答项)
|
||||
|
||||
@@ -102,4 +104,6 @@ P0-P5 六点已于 2026-10-06 用户全裁(案甲 × 6,备选案与淘汰依
|
||||
|
||||
| 版本 | 日期 | 说明 |
|
||||
|---|---|---|
|
||||
| v0.2 | 2026-10-07 | 期一实装随批换代(迭代 18 卡④):状态行升「期一已实装」+主菜单组列生涯钮落位+§四期一行挂实装留痕。设计内容零改版——本文仍是三段内容的范围权威;期二/期三范围与 P6 待裁点维持原状 |
|
||||
| v0.3 | 2026-10-09 | **文档正确性审查批(用户令——状态记录与证据对齐)**:①跨局汇总表「冒险总局数 / 通关局数」行订正——save v6 两终身计数域已随期一落地(2026-10-07 迭代 18 卡④),「无现成数据源、须新增」改为现成;②两处「终局特性(集) relics」改「终局专长持有集 relics」(特性系奇物旧称已退役;存档键名沿用历史形态不动)。 |
|
||||
| v0.1 | 2026-10-06 | 设计提纲首版(迭代 17 卡④设计批,纯文档):五节成文;P0-P5 已裁结论落文;新发现待裁点 P6(营地最近冒险条带去留);现状描述全部经代码级复核(F1-F10,见 design/qa/iter17-career-exit-report-2026-10-06.md)。状态 = 范围草案待评审 |
|
||||
@@ -0,0 +1,296 @@
|
||||
# 秘宝
|
||||
|
||||
> 一句话:营地装配、整局冒险生效的角色机能件——操作包络加强(视野/行动点/刷新/挖掘距离等),不出角色战斗属性值、不改战斗结算机制(经济与操作参数——视野/距离/行动点/刷新/转存率——属操作包络;分界规则归[核心循环](../../01-核心循环.md)「道具三层职责与分界」节)
|
||||
> 状态:已定稿(现行形态=局外同调件——2026-10-03 迭代 11 第①批同调实施批已入库)
|
||||
> 定位与形态:见下节
|
||||
> 术语:本文件的项目术语(同调位/RAP/GP/真视/危险格/整图等)定义见[术语表](../../术语表.md)
|
||||
|
||||
## 定位与形态
|
||||
|
||||
**现行形态 = 局外同调件**:开局前在营地装配(营地·秘宝匣柜台「同调装配」段)、占同调位(0 起步、固定 3 格,每件固定占 1 格)、被动件整局生效/主动件每冒险充能(冒险开始重置)。实现面 = `treasure_items.tres` + `game/core/attunement.gd`(同调位数量判定源=天赋树同调位节点点亮数——2026-10-11 Q2 裁甲、迭代 21 T4 槽位收编落地;原 `attunement_growth.tres` 谓词表已顺带退役;解锁条件=数据行内 `unlock_requires` 字段承载——迭代 22 实装落地,2026-10-12)。**新目录 12 件已随迭代 22 实装批全量落地(2026-10-12,T1-T7)**,逐件实录见「目录(重设计 v1)」各表实态列。
|
||||
|
||||
**沿革一句话**:本系统前身为切片期掉落消耗品形态(2026-09-29 迭代 7),2026-10-03 随同调实施批整体替换为现行形态;旧目录九件已全数退役入素材库(2026-10-08/10 用户裁)。历史细节见版本历史与 git 提交史。
|
||||
|
||||
**现行形态速览**:
|
||||
|
||||
- **同调位分档**(2026-10-07 用户裁):同调位分三档=普通格/优秀格/稀有格;装配规则=**槽位可装 ≤ 槽位档位的件**(向下兼容,不惩罚早解锁);格品质随天赋树同调位节点递增(1=普通格/2=优秀格/3=稀有格,2026-10-10 用户裁;树侧接线=迭代 21 T4 槽位收编落地)。装配面呈现槽位档位(迭代 22 秘宝匣柜台落地)。
|
||||
- **旧目录退役指针**:旧目录九件、魔法提灯、机制向三件处置已全数退役入素材库(表一 14 件)——现行目录见下方「目录(重设计 v1)」节;代码旧行已全数删除(迭代 20 先行删 2 行+迭代 22 T1 删 12 行,2026-10-12)。
|
||||
- **三选一刷新双源**:刷新能力=**存量账+临时账**两本账——存量账=持久(开局注入基值 0;来源=秘宝匣刷新升级行购买〔meta.tres attune_refresh_upgrade 行族〕+刷新练习件加仓;跨呈现持续、用完即无)、临时账=每次三选一呈现重置为基线 0(来源=效果件的临时注入,未用不结转);**消耗顺序=先扣临时、不足再扣存量**(2026-10-10 用户复述定案;代码字段名 X/Y 与两账的字母对表归实装批 T0,正文不依赖字母)。重抽复用现有洗牌逻辑(reward_pick),池规则全保留;自动游玩模式默认不刷。**GP(局内金币)付费档(2026-10-06 用户令)**:免费双源用尽后可 GP 付费刷新,价=ceil(20×1.8^本次停点已付费刷) provisional(与商店货架刷新读同两个调参参数 shop_refresh_*,单点调参);付费刷计数每停点清零;钱包=冒险 GP 同一账本(唯一入口 LevelRunner.spend_gp);余额不足=钮禁用(不隐藏)。店内专长凭证三选一暂不挂刷新面(扩面须先裁凭证保底计数交互)。**两账语义**两账语义的框架定义见[核心循环](../../01-核心循环.md)「生命周期轴」节。「三选一呈现」是比节点更细的事件——奖励节点、Boss 通关奖励、商店(凭证)三处都触发。奇物「刷新次数+1」类资源件的语义=存量账一次性加仓。
|
||||
- **🔴 承重契约**(红线;其中真视范围等由数据加载校验强制):效果不允许写成直接加减属性的裸数值——效果类型只能取封闭白名单;真视(直接标出危险格的效果,定义见「核心规则」)单次范围 ≤3×3;核心逻辑不做异步等待;零随机;排雷玩法零特判;危险格与安全格的分布同池冻结——资源类件只能调整权重投影、不能改池结构;**棋盘事实不可变**(秘宝效果不移除、不增改危险格位置与邻接数字——效果形态只允许信息呈现与开格动作;2026-10-10 用户裁,原爆破工兵包「中立移除」即违规形态、随件退役废止)。
|
||||
- **验收分层**:难度验收分两层——同调系统关闭时沿用现行通关率验收带;开启时验收带按投值平移(归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)投值;商店开关分层同法)。
|
||||
|
||||
## 目录(重设计 v1)
|
||||
|
||||
> 秘宝目录的权威版本(2026-10-08 用户终审全落——「都可以先落;旧的去掉只保留新的」;**2026-10-12 迭代 22 实装批全量落地**,逐件实态=item_id/解锁/效果实现三实态列)。代号制:正式命名归用户;数值全 provisional 归调参批。准入约束(机能件判定尺/定义卡 3+1 句)见[核心循环](../../01-核心循环.md)「道具三层职责与分界」节。旧目录全数退役,名单与处置映射见[道具退役素材库](../../../research/道具退役素材库.md)表一。
|
||||
|
||||
### 三档骨架
|
||||
|
||||
- 数量:普通档 7 件 / 优秀档 3 件 / 稀有档 2 件(优秀档两位空位=2026-10-11 回能器删〔孤儿件〕/换装券撤〔冒险中零更换途径无此件〕;稀有档一位空位=2026-10-11 第四只手删〔净收益为零的自指件——占一槽换一槽、携带量 3=3 且自锁唯一稀有格〕——空位不构成补件议程;传说位留空,与跨系统的四级稀有度框架〔普通/优秀/稀有/传说〕兼容——秘宝不用满四档)。
|
||||
- 解锁方式(2026-10-10 用户裁**混合制**):基础件=秘宝匣内**钥石购买**解锁(定价归定价批);特定件=**条件解锁**(游玩里程碑或行为条件,阈值 provisional 归调参批)。逐件分配已随实装批锁定(2026-10-11 用户裁 C1):钥石购买 8 件(普通 7 件各 10 钥石+双管装填 25 钥石)+条件解锁 4 件(远程镐=生涯通关≥1/刷新执照=Boss 击杀≥3/天眼=通关≥3 且 Boss 击杀≥4/信标网络=真视类工具累计使用≥10);解锁条件承载=`treasure_items.tres` 行内 `unlock_requires` 字段(计数键 adventure_cleared/boss_kill_count/vision_used,schema 词表校验单点——2026-10-12 迭代 22 落地);旧「档位谓词分级(普通 0/优秀中/稀有高里程碑)」口径作废。
|
||||
- 验收纪律:**同档内不许存在严格支配关系**(同档 A 在所有维度不劣于 B 即违规)——防首选内定的结构检查。
|
||||
- 装配面:同调位分档(普通格/优秀格/稀有格,槽位可装 ≤ 槽位档位的件)——见「定位与形态」速览。
|
||||
|
||||
### 普通档(7 件)
|
||||
|
||||
| 代号 | item_id | 一句话 | 写哪本账/时点 | 解锁(迭代 22 实态) | 效果实现 |
|
||||
|---|---|---|---|---|---|
|
||||
| 晨操令 | morning_order | 每场战斗第 1 轮 +1 AP | AP 池/轮始 | 钥石 10 provisional | 订阅行 round_start→grant_ap |
|
||||
| 阔视野带 | wide_scout_band | 类型微光范围 8 格→12 格 | 视野参数/常时 | 钥石 10 provisional | 参数面 light_radius_bonus(+4) |
|
||||
| 试炼镐 | trial_pick | 每开 8 个安全格,当轮 AP +1(自动) | AP 池/开格自动兑付 | 钥石 10 provisional | ap_charge_safe 满 charge_n=8 自动 grant_ap(2026-10-12 反哺批⑤用户裁自动兑付) |
|
||||
| 刷新练习 | refresh_practice | 三选一刷新存量 +1 | 刷新存量账/装配即得 | 钥石 10 provisional | 参数面 refresh_stock_grant |
|
||||
| 储备罐 | reserve_jar | 停手转存率 1:1 → 1.25:1 | 储备行动点(RAP)转存率参数/停手时 | 钥石 10 provisional | 参数面 rap_transfer_mult(125) |
|
||||
| 巢穴预告 | nest_forecast | 装板后揭示本板危险格数量 | 危险格计数(不碰危险格分布)/装板时 | 钥石 10 provisional | 订阅行 board_installed→mine_count_preview(呈现=开局 toast) |
|
||||
| 线香 | incense_stick | 每战一次:真视单格 | 真视窄域(≤3×3 契约内)/主动 | 钥石 10 provisional | reveal_tiles(战斗级充能) |
|
||||
|
||||
### 优秀档(3 件)
|
||||
|
||||
| 代号 | item_id | 一句话 | 写哪本账/时点 | 解锁(迭代 22 实态) | 效果实现 |
|
||||
|---|---|---|---|---|---|
|
||||
| 双管装填 | twin_loader | 每战前 2 轮各 +1 AP | AP 池/轮始 | 钥石 25 provisional | 订阅行 round_start→grant_ap |
|
||||
| 远程镐 | ranged_pick | 挖掘距离 +1(可挖距英雄 2 格的格) | 可达性规则/常时 | 条件:生涯通关 ≥1 provisional | 参数面 dig_range_bonus |
|
||||
| 刷新执照 | refresh_license | 商店免费刷新 +2/店 | 商店刷新计数/进店时 | 条件:Boss 击杀 ≥3 provisional | 参数面 shop_refresh_bonus |
|
||||
|
||||
### 稀有档(2 件)
|
||||
|
||||
| 代号 | item_id | 一句话 | 写哪本账/时点 | 解锁(迭代 22 实态) | 效果实现 |
|
||||
|---|---|---|---|---|---|
|
||||
| 天眼 | sky_eye | 每关一次:选 3×3,危险格显示且安全格直接开 | 真视+开格复合/主动 | 条件:通关 ≥3 且 Boss 击杀 ≥4 provisional | reveal_tiles+safe_dig(关卡级充能;安全格开格按普通挖格全额兑付免 AP——C5 裁) |
|
||||
| 信标网络 | beacon_network | 插旗不限相邻(可对任何未开格插旗) | 旗的可达性规则/常时 | 条件:真视类工具累计使用 ≥10 provisional(vision_used 生涯计数域) | 参数面 flag_range_free |
|
||||
|
||||
## 设计骨架(可设计方向 × 代价空间)
|
||||
|
||||
> 本节=秘宝的可设计方向清单——类比奇物的基础框架骨架,层次不同:奇物管战斗数值面及其对战斗的影响,秘宝管角色战斗数值之外的机能面(视野/操作能力等变更同样影响玩家,属应做设计)。用途=新件设计的方向菜单与盲区自查;玩家运行时零感知。叙述总纲:玩家体验两面=**信息**(接收)与**操作**(执行);效果轴按「件对玩家能力的主要改变」归类(三方向,2026-10-10 用户裁)。
|
||||
|
||||
### 效果轴(覆盖检查按三方向跑)
|
||||
|
||||
| 方向 | 细分格(设计菜单,开放清单) | 已占位(新目录 12 件) |
|
||||
|---|---|---|
|
||||
| 信息 | 推理原料 · 直接代答 · 奖励预读※ · 信息半径扩展 | 巢穴预告 / 线香、天眼 / —(空位)/ 阔视野带 |
|
||||
| 行动资源 | 直接供给 · 行为转化 · 效率改写 · 充能维护 · 资源容量扩展 | 晨操令、双管装填 / 试炼镐 / 储备罐 / —(空位) / —(空位) |
|
||||
| 操作能力 | 范围扩展 · 规则放宽 · 程序权限 · 容量扩展 · 抉择刷新 | 远程镐 / 信标网络 / —(空位) / —(空位) / 刷新练习、刷新执照 |
|
||||
|
||||
※奖励预读=空位预留,**备注与「微光常显」概念有重合**(微光若重构此格需重审;该方向被否过一次,不主动补)。
|
||||
※无差别开格(如 3×3 全部炸开:收益不获取、惩罚不触发,纯粹开格)=预留拓展方向(2026-10-10 用户提,现不做、后续拓展再裁)——与天眼的有差别开格(安全格直接开、危险格仅显示)相区分;改变棋盘事实的近似形态(移除危险格)已裁禁。
|
||||
|
||||
### 代价轴(新件设计时与效果格组合选用)
|
||||
|
||||
**获取代价**(解锁侧):钥石购买(基础件)/ 条件解锁(游玩里程碑·行为条件)——逐件分配与阈值实录见「目录(重设计 v1)」三表解锁列。
|
||||
|
||||
**使用代价**(使用侧,按重置周期分层):
|
||||
|
||||
| 形态 | 语义 | 计量与重置 | 现状 |
|
||||
|---|---|---|---|
|
||||
| 冒险级限量 | 每次冒险共 N 次 | 开局满额,用完即止 | 空位(旧目录主动件充能 2 次形态随目录退役) |
|
||||
| 关卡级限量 | 每关 N 次 | 每关开始重置 | 天眼(每关一次) |
|
||||
| 战斗级限量 | 每场战斗 N 次 | 每场战斗开始重置 | 线香(每战一次) |
|
||||
| 转化获取 | 付出换取使用次数:行为转化(开 N 格→+1)/ 资源转化(耗 N AP→+1)/ 时间触发(每 N 回合→+1) | 行为账本满额即时兑付 | 试炼镐(行为通道在役——**每开 8 个安全格自动兑当轮 AP+1:无玩家发起入口、账即时清空〔2026-10-12 反哺批⑤用户裁自动兑付〕;战斗级重置=账即时清空自然无感;兑付时序=揭示先于本格扣费,AP 归零恰逢满点时先兑再扣、轮次不因本格结束**);资源/时间两通道空位 |
|
||||
| 常时(无使用代价) | 被动件无「使用」概念——占装配位即全部代价 | — | 现役被动件 |
|
||||
|
||||
**恢复机制**(独立参数,不与限量周期混同):基准=冒险开局满额;中途回充现役**无来源**——回能器已删(2026-10-11 用户裁孤儿件:新目录无冒险级限量件,而关卡级/战斗级件天然周期重置、开局回充对其结构性冗余);恢复机制留作骨架参数,未来冒险级限量件出现时启用。
|
||||
|
||||
**装配代价**(占位侧):每件固定占 1 格(现役恒定)/ 档位格约束(件档 ≤ 格档)。
|
||||
|
||||
### 用法规则
|
||||
|
||||
1. 新件=效果格 × 代价格的组合——先选「改变什么」,再选「怎么限制它」。
|
||||
2. 档位(普通/优秀/稀有)=代价×效果的预置平衡带:普通=弱效果配松代价,稀有=强效果配紧代价——骨架与档位体系在此接口。
|
||||
3. 覆盖检查只跑效果三方向;细分格空位**不构成补件议程**(预读格教训记录在案)。
|
||||
4. 信息方向的价值检验按目的做(减少了多少盲赌),不按信息形式堆料;强效果必须配紧代价。
|
||||
5. 各周期账本独立、互不换算;全部限量值 provisional 归调参批;逐件的效果格与代价格归属见「目录(重设计 v1)」三表(2026-10-12 迭代 22 落地登记)。
|
||||
|
||||
|
||||
## 设计目的
|
||||
|
||||
挖掘期玩家偶尔会撞上"推理断头"的时刻:数字读不出下一格的把握,或者面前一片格子不知道哪格有货。秘宝就是托住这些时刻的机能件——开局前在营地装配进同调位,整局冒险生效:被动件持续放宽操作包络(视野/行动点/挖掘距离等),主动件在挖掘的关键时刻花掉充能:买回一点推理原料、提前看见危险格,或者给当轮加行动点。秘宝零随机——它不掷骰子,只把棋盘上已经存在的事实交给玩家。
|
||||
|
||||
## 系统范围
|
||||
|
||||
边界这样划:秘宝管四件事——道具本体怎么定义、怎么装配与同调位规则、怎么使用、信息存在哪。它不管行动点怎么扣(归账本),也不自己画界面。本系统的边界依据是[不做清单](../../05-不做清单.md)的一条裁定:允许"恢复推理原料"类道具(显影、预读),不允许道具替代推理。
|
||||
|
||||
负责:
|
||||
|
||||
| 负责 | 说明 |
|
||||
|---|---|
|
||||
| 道具定义表 | 秘宝件的字段定义:名称、效果格归属、效果组合、目标形态、数值;现行目录=「目录(重设计 v1)」节 12 件(已随迭代 22 实装批全量落地,2026-10-12);承重护栏在加载期校验中强制 |
|
||||
| 设计骨架与覆盖检查 | 效果三方向(信息/行动资源/操作能力)覆盖检查——每方向至少一件承载(口径见「设计骨架」节);加载后自动检查 |
|
||||
| 同调装配与充能账 | 营地装配入同调位(每件固定占 1 格、共 3 格;分档规则见「定位与形态」速览);主动件充能每冒险开始重置 |
|
||||
| 使用规则与目标校验 | 什么时候能用、目标合不合法、失败分几级、哪一级不消耗 |
|
||||
| 整图叠加层 | 道具信息的自持容器:按效果分类的格集,随图消亡、不回写棋盘 |
|
||||
|
||||
不负责:
|
||||
|
||||
| 不负责 | 归谁 |
|
||||
|---|---|
|
||||
| 授予路由与使用编排的调用权 | [战斗结算](../战斗循环/战斗结算.md) |
|
||||
| 行动点账本与加量过账 | [行动经济](../排雷循环/行动经济.md) |
|
||||
| 棋盘规则本体与动作执行 | [排雷玩法](../排雷循环/排雷玩法.md) |
|
||||
| 定义表承载与加载机制 | [数据配置](../表现与支撑/数据配置.md)(本系统是该表的回填责任方) |
|
||||
| 界面呈现与使用交互 | [HUD 框架](../表现与支撑/HUD框架.md) |
|
||||
|
||||
## 在核心循环中的位置
|
||||
|
||||
```
|
||||
营地装配(同调位)──冒险开局带入──▶ 被动件整局生效 / 主动件挖掘期花充能 ──▶ 叠加层信息 / 行动点加量 ──▶ 继续挖格决策
|
||||
```
|
||||
|
||||
本系统站在排雷循环"挖掘期"的内侧:件在开局前的营地装配进同调位,被动件整局托底,主动件在挖掘途中花掉充能,产出的信息与行动点立刻回到"下一格挖哪"的决策里。
|
||||
|
||||
## 核心规则
|
||||
|
||||
### 直接代答必须窄域:真视的范围护栏
|
||||
|
||||
凡是"直接告诉你危险格在哪"的效果(下文称真视),一次最多照亮 3×3 的窗口,任何道具都不允许全图看雷。全图级范围只留给恢复推理原料类的效果——显影、预读这类把已有事实交还玩家的信息,允许大范围(原则上被允许,见不做清单的边界锚)。这条限制写进数据校验:任何真视类道具的目标域字段超过 3×3,加载数据时直接返回错误并拒绝——护栏由加载期强制,不靠运行时拦截。
|
||||
|
||||
**道具的收益在"少赌",不在"单赌更安全"**:信息类道具不改变棋盘,只减少玩家必须盲赌的次数。真视把 k 格移出盲挖候选域——这 k 格从"要赌"变成"必避或必旗"的确定决策;情报类道具抬高棋盘可推理率,收缩"只能赌"的格子池。单次盲赌的命中率会随格子池收缩而上升,这是正常读数——收益按"赌的次数变少、期望踩雷下降"计,不按单次命中率计。
|
||||
|
||||
```
|
||||
残余盲赌安全格数 n_s = (1 − ι) × |S|
|
||||
单次盲赌踩雷概率 P(雷) = |M| ÷ (|M| + n_s)
|
||||
```
|
||||
|
||||
| 变量 | 含义 | 来源 |
|
||||
|---|---|---|
|
||||
| ι | 棋盘可推理率(不必赌、可直接推理开挖的格子占比) | [棋盘生成](../排雷循环/棋盘生成.md)的整图实际值 |
|
||||
| \|M\| / \|S\| | 板上危险格数 / 安全格数 | 棋盘事实 |
|
||||
| n_s | 推理覆盖之外、只能盲赌的安全格数 | 上式派生 |
|
||||
|
||||
设计意图一句话:恢复推理的效果可以大,代替推理的效果必须小而贵——花钱全图看雷,等于把扫雷换成走格子。定量当量换算归[战斗结算](../战斗循环/战斗结算.md)的效果对照表,MVP 不入表。
|
||||
|
||||
### 道具从哪来:解锁与营地装配
|
||||
|
||||
秘宝不可合成,唯一来路=**营地解锁**(2026-10-10 用户裁混合制——基础件钥石购买/特定件条件解锁;冒险中无购买)。**装配只在冒险开始前于营地配置;冒险中不存在任何更换途径**(2026-10-11 用户裁,无例外——拾取与效果均不产生装配变化;原当日早间试行的「冒险拾取未知秘宝」渠道同日废止,奇物侧无对应实现)。解锁条件实录(2026-10-12 迭代 22 落地,阈值 provisional 归调参批):钥石购买 8 件(晨操令/阔视野带/试炼镐/刷新练习/储备罐/巢穴预告/线香各 10 钥石+双管装填 25 钥石);条件解锁 4 件——远程镐=生涯通关 ≥1(adventure_cleared)、刷新执照=Boss 击杀 ≥3(boss_kill_count)、天眼=通关 ≥3 且 Boss 击杀 ≥4、信标网络=真视类工具累计使用 ≥10(vision_used,行为计数域随迭代 22 新增);承载=`treasure_items.tres` 行内 `unlock_requires` 字段(改表不动码;schema 计数键词表校验单点)。同调位槽位由天赋树同调位节点提供(1=普通格/2=优秀格/3=稀有格递增,共 3 格)——树与秘宝同为角色属性的贡献者,槽位参数的提供方在树侧。开局前在营地·秘宝匣柜台「同调装配」段装入同调位(每件固定占 1 格;分档装配规则见「定位与形态」速览)。
|
||||
|
||||
|
||||
### 什么时候怎么用:挖掘期发起,战斗结算编排
|
||||
|
||||
受理框架现役=主动使用件线香/天眼(2026-10-12 迭代 22 落地);**试炼镐为自动兑付件,无使用动作、不经本节四步**(每开 8 个安全格自动当轮 AP+1——2026-10-12 反哺批⑤用户裁,兑付时序见「设计骨架·代价轴」转化获取行)。
|
||||
|
||||
使用动作在挖掘期发起:轮次进行中的任意时点都行。战斗阶段没有道具使用窗口(战斗道具已于 2026-09-15 随可选类删除下线),秘宝的使用窗口独占挖掘期。发起之后由战斗结算编排受理,按固定次序走四步:
|
||||
|
||||
```
|
||||
发起使用 ─▶ ① 相位检查(非挖掘期 → 拒绝)
|
||||
─▶ ② 目标校验(不合法 → 全链拒绝、零消耗)
|
||||
─▶ ③ 逐效果应用(先空间效果,后加行动点)
|
||||
─▶ ④ 消耗道具(不可逆,回执交呈现层)
|
||||
```
|
||||
|
||||
所有会失败的情况都被前两步拦下,后两步在合法输入下不会失败——"产生效果"和"消耗道具"永远成对发生。带两个效果的稀有道具,施加顺序钉死为先空间效果、后加行动点;定义表里效果的书写顺序不承载运行时语义。
|
||||
|
||||
用道具不扣行动点:成本在装配时已经付过——它占了一格同调位;挖格、插旗的价格不受任何影响。道具只产生信息与行动点、不产生动作:使用入口仅线香/天眼两主动件——不会自动替你挖,也不会自动替你插旗(试炼镐的自动兑付是行为转化的兑付、非使用动作——它不挖格不插旗,只在玩家自己挖格时按开格数兑行动点)。真视尤其要说清:它是信息不是保护,被标出的危险格挖开照样惊动;靠真视插旗仍按标准动作价计费(价目见 action_economy.tres),标中收益照走既有结算路径。本节纯流程,无计算。
|
||||
|
||||
### 信息住在哪:整图叠加层,随图消亡
|
||||
|
||||
信息承载框架为新目录真视件(线香/天眼)沿用。
|
||||
|
||||
道具产生的信息不写进棋盘,而是记入独立的整图叠加层——按效果分类的格集(真视格集现役且为新目录沿用——线香/天眼写入;预读格集随承载件退役失去来源,字段保留在案)。叠加层只记"哪些格要额外显示":数字永远读棋盘真值,奖励身份永远读奖励表,行动点走行动经济的账本,本系统不持有任何一份副本。这带来一条承重设计:排雷玩法的代码里没有任何一行"为了秘宝"而写的判断——叠加层是派生信息层,零回写任何其他系统的状态。
|
||||
|
||||
叠加层随图消亡:清图换新图、花储备换新图的弃图刷新(见[行动经济](../排雷循环/行动经济.md))、战斗结束,三者任一发生叠加层即清空,已花道具不返还——在一张图上花的情报随这张图沉没,这是设计意图不是疏漏。效果即时可见:使用发生在挖掘期,信息当场改变棋盘呈现,不进轮末结算明细。本节纯流程,无计算。
|
||||
|
||||
### 边缘与零信息:两条受理裁定
|
||||
|
||||
两条裁定为新目录主动件沿用。
|
||||
|
||||
边缘受理:3×3 目标窗口的中心格贴边或贴角、窗口探出板外时,使用照常受理,按窗口与棋盘的交集结算——贴角剩 4 格、贴边剩 6 格。这是拍板过的体验规则:点在边缘不该吃"这格不能用"的闭门羹;交集只会比完整窗口小,窄域护栏只缩不扩。
|
||||
|
||||
零信息目标不消耗:对零信息目标使用不可用,分两级裁定——整张图都没东西可看(整图零信息)时,这件道具直接置灰、使用入口禁用,根本选不了;单个位置没东西可看(点击级零信息)时,那一次点击被拒绝、给可辨认的提示。两种情况道具都保留在装配位:点错了不扣道具,挖掘期的手滑不该受罚。两条补充裁定:真视恒可用(零雷窗口等于"这 9 格没雷",信息非空);组合效果道具的判据取"或"——任一效果有信息即可用(如天眼:真视与开格复合,恒有信息)。本节纯流程,无计算。
|
||||
|
||||
## 依赖与输出
|
||||
|
||||
| 方向 | 系统 | 接口要点 |
|
||||
|---|---|---|
|
||||
| 上游 | [战斗结算](../战斗循环/战斗结算.md) | 使用编排的调用方:四步固定次序的受理,叠加层与充能账的清空也由它编排 |
|
||||
| 上游 | [行动经济](../排雷循环/行动经济.md) | 加行动点效果经其账本入口入账;使用道具本身不过账本、零扣费 |
|
||||
| 上游 | [排雷玩法](../排雷循环/排雷玩法.md) | 目标校验与信息呈现读取棋盘只读面;对侧代码零本系统分支 |
|
||||
| 上游 | [地形变异](../排雷循环/地形变异.md) | 地形变异的对抗件方向——框架契约已作废(2026-10-03 终裁,理由见 v0.8 版本行);counter_items 恒空保留,变异应对若做只挂局内,待迭代 12 双层 BD 调研重定 |
|
||||
| 上游 | [数据配置](../表现与支撑/数据配置.md) | 道具定义表的 schema 承载与加载校验通道;本系统是该表的回填责任方 |
|
||||
| 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 装配件与充能常读、使用交互与目标拾取、叠加层信息呈现、充能重置反馈 |
|
||||
| 下游 | [教学引导](../表现与支撑/教学引导.md) | 教学候选:"买情报"闭环与"真视不是保护"的措辞口径(非阻塞) |
|
||||
| 双向 | 各对侧系统 | 旧目录遗留的跨系统配合项随实装批替换自然消解;现行配合面即上表各行 |
|
||||
|
||||
负空间:本系统不监听事件、不画界面、不用随机数、不写任何其他系统的数据;信息只来自三个既有事实源——棋盘真值、奖励身份、行动点账本。
|
||||
|
||||
## P0 最小闭环
|
||||
|
||||
1. 冒险开局前,玩家在营地装配面把秘宝件装入同调位(同调位上限与档位约束见速览)。
|
||||
2. 冒险开始:被动件整局生效,主动件充能注入(每冒险重置)。
|
||||
3. 挖掘期玩家选中主动件与目标发起使用,战斗结算按上文四步编排受理。
|
||||
4. 呈现层重查刷新:玩家看到情报或行动点入账,继续挖格决策。
|
||||
5. 换图、弃图刷新或战斗结束时叠加层随图清空;冒险结束时装配与充能账随冒险收束。
|
||||
|
||||
## P1 / P2 后置
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 道具使用的动效与音频反馈 | 表现打磨项后置;音频排 Alpha |
|
||||
| P1 | "买情报"闭环教学与"真视不是保护"口径 | 归教学引导,Alpha 里程碑,非阻塞 |
|
||||
| P1 | 信息类道具的战斗当量入战斗结算效果对照表 | 间接效应的定量换算,调参期扩列,MVP 不入表 |
|
||||
| 迭代 12(调研前置) | 反制路径重定(原:地形变异新类型的反制道具——已作废) | 2026-10-03 用户终裁:原归 Alpha 反制批的同调位反制件=层级错配失败设计,契约「每变异≥1反制道具」废止;counter_items 恒空合法,变异应对若做只挂局内,待双层 BD 调研仲裁后重新立项 |
|
||||
|
||||
## 调参表
|
||||
|
||||
道具定义表的全部数值均为 provisional,归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)调参;registry `aux_items` 条目已随迭代 22 换代为新目录 12 件登记(2026-10-12);表 schema 归[数据配置](../表现与支撑/数据配置.md)承载、本系统回填。
|
||||
|
||||
结构冻结(非调参项,改动走本文修订流程):真视窄域护栏、零信息目标不消耗、边缘窗口照常受理、使用零行动点成本、同调位装配与充能每冒险重置、用后不可逆、零随机。
|
||||
|
||||
效果声明形态(内容数据驱动扩展批落地,在役沿用):被动件的效果行为=**订阅行**——行内声明**订阅哪个事件(on)/ 什么条件(when)/ 什么效果(do)**,由效果引擎统一解释执行;主动件按效果类型通用分发(受理闸=使用事件订阅);常时参数面件(阔视野带/储备罐/远程镐/信标网络/刷新练习/刷新执照六件)effect_kinds 挂参数 kind、由注入面按装配集分发读取;试炼镐=自动兑付(ap_charge_safe 满 charge_n 直接 grant_ap)。事件/效果类型/条件事实/算子四词表封闭(效果引擎单一事实源);卡面效果摘要=行 `desc` 字段直读(文案表值化)。新目录 12 件的效果行已随迭代 22 落地登记。
|
||||
|
||||
playtest 预警(预注册,归难度曲线与Boss):
|
||||
|
||||
| 预警 | 指标与读法 |
|
||||
|---|---|
|
||||
| 道具依赖 | 用了道具的轮次占比超过道具依赖预警阈值即警——扫雷决策被外包给道具(阈值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)预注册,registry `aux_items` warnings,本文不登记阈值) |
|
||||
| 加点节奏 | 加行动点道具使用后,停手转存率异常上行即警——加点沦为刷储备的工具 |
|
||||
|
||||
## 验收标准
|
||||
|
||||
- 护栏强制:任何标出危险格的道具定义,目标域字段超过 3×3 时数据加载直接返回错误并拒绝;现行 12 件逐件过护栏校验(迭代 22 已交付,2026-10-12)。
|
||||
- 覆盖检查:效果三方向(信息/行动资源/操作能力)各有新目录承载,检查按「设计骨架」节口径执行;逐件的效果格归属见「目录(重设计 v1)」三表。
|
||||
- 两域正交:秘宝件经同调位装配生效,不入局内道具背包,与奇物背包互不混装。
|
||||
- 使用窗口:非挖掘期的使用请求被拒绝且不消耗;挖掘期任意时点可发起。
|
||||
- 零消耗拒绝:目标不合法(例如点在已挖开的格子上)时道具不消耗、装配位不变、反馈可辨认;整图零信息时图标置灰、入口禁用。
|
||||
- 边缘受理:3×3 窗口中心格贴板角时照常受理,按窗口与棋盘的交集(角 4 格)结算并正常消耗。
|
||||
- 顺序钉死:组合道具先空间效果、后加行动点;任何合法使用中"产生效果"与"消耗"成对发生。
|
||||
- 使用零扣费:使用前后,除加量道具自身的入账外行动点读数不变;挖格与插旗价格不受影响。
|
||||
- 随图消亡与充能账:换图、弃图刷新、战斗结束时叠加层清空;主动件充能耗尽即不可用,充能每冒险开始重置。
|
||||
- 零随机与零特判:同一操作序列重放两遍,装配与充能账、叠加层投影逐位相同;排雷玩法代码中无为本系统而写的分支。
|
||||
- 装配不可变:装配只在冒险开始前于营地配置,冒险中不存在任何更换途径(拾取与效果均不产生装配变化,2026-10-11 用户裁)——验收含「冒险全程装配快照逐位不变」断言。
|
||||
|
||||
## 待办
|
||||
|
||||
本系统待办条目已统一收编至 [06-待办清单](../../06-待办清单.md),本节不再逐条登记。
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v3.0 | 2026-10-12 | **迭代 22 反哺落文批(实现报告 §三①②③,用户逐点裁「落文」)**:①目录三表补实态三列(item_id/解锁〔价格或条件,阈值 provisional〕/效果实现 kind)+试炼镐行换代自动兑付语义+全部「实装批落地前」现状句换代(定位形态节/目录引言/负责表/受理框架节/调参表/验收护栏覆盖两行)+旧目录退役指针补代码旧行已删;②代价轴转化获取行换代=试炼镐每开 8 安全格自动兑当轮 AP+1(2026-10-12 用户裁:无玩家发起入口、战斗级重置、兑付时序=揭示先于扣费故 AP 归零恰逢满点轮不结束)——设计留白〔积点账重置周期〕随裁补记;③解锁混合制节条件表实录(钥石 8 件 10/25+条件 4 件三计数键阈值)+承载换代=行内 unlock_requires 字段 |
|
||||
| v3.1 | 2026-10-15 | **简明技术中文用语规范批(用户令):词面修正 3 处**——「报错」→「返回错误」2 处(真视窄域护栏句、验收·护栏强制条);「收口」→「收束」1 处(P0 第 5 条「装配与充能账随冒险收口」——冒险生命周期收束为本文件既有用词)。机制与数值零改动;目录表线香/天眼行「战斗级/关卡级充能」系术语表在册秘宝主动件术语,不属退役词命中,原样保留 |
|
||||
| v0.2 | 2026-09-16 | 更名批(用户拍板 2026-09-16):系统更名"辅助道具"→"秘宝"——定位已非纯数值道具,含信息/妙用向效果;文件同步重命名;英文代号 AUXILIARY_ITEMS 暂沿用 |
|
||||
| v0.3 | 2026-09-17 | 切片期空内容拍板(用户拍板):道具定义表为空列为合法态——五维度覆盖检查改为仅对非空清单执行;验收标准覆盖检查条目同步;06「维度覆盖检查破缺」「失义道具的掉落投放」两条随批关闭 |
|
||||
| v0.4 | 2026-09-17 | 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),1 处失同步修正(AP 8→6 漏改)——行名与表结构列保留 |
|
||||
| v0.5 | 2026-09-29 | **内容批落地修订(迭代 7——用户八拍板)**:道具定义表六行入表(三有效实装:工兵令/探巢摆钟/爆破工兵包;探宝罗盘退役留痕;显影尘/地穴全图卷封存);投放维度覆盖口径+豁免面 {plan, info, counter} 登记;解锁语义定稿;奖励节点=三选一构筑点;掉落投放权重 provisional |
|
||||
| v0.6a | 2026-09-30 | **拍板点 1 收口批(用户裁决甲:同调=终局方向)**:新增「定位与形态沿革」节——现行=过渡形态、终局=局外同调件,两态关系=形态替换;正文口径回写四处;实施批登记见 06「秘宝同调实施批」条 |
|
||||
| v0.6b | 2026-10-04 | **迭代 13 D6 实装修订**:爆破工兵包换装启用+「中立移除」实装口径节落文+投放态注记换代〔版本号 2026-10-09 由重复的 v0.6 改注 b 后缀——原两行同号系 10-04 批落行未查前账所致,node-reward v2.2a/b 先例〕 |
|
||||
| v0.7 | 2026-10-01 | **奖励节点渠道改写注记(迭代 10 追加批)**:「奖励节点三选一构筑点」形态退役——奖励节点改提升三选一共享池;道具件经节点渠道入本关库存;同调实施批的全渠道统一收口义务 |
|
||||
| v0.8 | 2026-10-03 | **反制契约作废批(用户终裁——层级错配失败设计)**:五维度「反制」行改终裁态;上游地形变异依赖行、P2 后置行同步;地形变异.md v0.6 同批落义务作废注记 |
|
||||
| v0.9 | 2026-10-05 | **消歧更名批(用户拍板):系统更名「魔法道具」→「秘宝」**——「魔法」已被本作征用为敌方侧伤害/护甲语汇;同调位机制名保留;本批仅改文档称谓,代码标识符 aux_* 沿用(对齐另批) |
|
||||
| v1.0 | 2026-10-06 | **效果声明换代(内容数据驱动扩展批)**:被动件改订阅行(on/when/do 由效果引擎统一解释)+主动件受理闸数据化——按件 id 硬编码清零;结构冻结零触碰,行为与迁移前逐位一致(MC 同种子 40 局对拍实证) |
|
||||
| v1.1 | 2026-10-07 | **生命周期轴裁决随批(框架现行事实源=核心循环「生命周期轴」节)**:三选一刷新双源补两账语义(存量账/临时账/消耗顺序);「三选一呈现」=比节点更细的事件 |
|
||||
| v1.2 | 2026-10-07 | **三层职责分界批(用户裁)**:头部一句话换代为「营地装配的角色机能件」(操作包络加强,不出裸属性值、不改战斗结算机制);机制向三件归留本层重设计批处置 |
|
||||
| v1.3 | 2026-10-07 | **三件机制向现件归留裁决(用户裁)**:淬毒刃纹→专长池;标中殉爆→专长池插旗系;惊巢反制→退役进素材库;现役目录九→六 |
|
||||
| v1.4 | 2026-10-07 | **同调位分档(用户裁)**:同调位分三档(普通格/优秀格/稀有格)、槽位可装 ≤ 槽位档位的件、里程碑分档发槽;费用制落选留档 |
|
||||
| v1.5 | 2026-10-08 | **新目录 15 件落地批(用户终审全落)**:新增「目录(重设计 v1)」节=新现行事实源——三档骨架+15 件表;旧目录全数退役只作素材库;数据迁移与旧行删除归实装批 |
|
||||
| v1.6 | 2026-10-09 | **去毒批**:速览旧目录九件表加退役标注+魔法提灯归属待裁指路 06/老正文过期声称清扫——新老框架分家 |
|
||||
| v1.7 | 2026-10-09 | **文档正确性审查批**:头部横幅重写/沿革节两态表述换代/实现面表名失同步修正/老正文深层逐节收口+四节隔离标注/调参表与验收旧语境改写 |
|
||||
| v1.8 | 2026-10-10 | 营地柜台名扫改(天赋树设计会话裁「道具工坊」改名「秘宝匣」):两处改「营地·秘宝匣柜台」。机制零改动 |
|
||||
| v1.9 | 2026-10-10 | **第一版秘宝全弃用收官批(用户裁「退役与封存都进素材库」)**:显影尘/地穴全图卷由 deferred 改 retired;正文四处换代;素材库四件迁表一;数据表四行删除归退役删行批 |
|
||||
| v2.0 | 2026-10-10 | **秘宝解锁与槽位裁定批(grilling 审查轮,用户逐裁)**:①同调位上限=基础 3 格+第四只手突破至 4;②槽位数量与品质归天赋树同调位节点(1=普通格/2=优秀格/3=稀有格递增);秘宝侧同调增长表改造为解锁条件表随实装批;③解锁方式换代=混合制(基础件钥石购买+特定件条件解锁,旧「档位谓词分级」作废);④换装券=自主换装唯一渠道(显式例外);⑤三选一刷新双源正文改「存量账/临时账」称谓(先扣临时后扣存量定案;X/Y 字母对表归实装批 T0);⑥分界尺精确化=属性值指角色战斗属性值、经济与操作参数属操作包络(头部+核心循环分界节同步);⑦中立移除「重生待定」标注摘除(素材库件同规);⑧速览旧目录三段退役清理折叠为指针 |
|
||||
| v2.9 | 2026-10-11 | **第四只手删除批(用户推导「带了等于没带」成立,主会话上轮净收益分析有算术错误致漏删)**:净账=占一槽换一槽(3=3)且自锁唯一稀有格(稀有格只能装它自己、额外格为优秀格)——严格劣于任何真秘宝,删除;稀有档 3→2、全目录 13→12 件;「跨域」概念撤回(用户澄清:天赋树与秘宝同为角色属性贡献者,不存在所有权排他——「归天赋树管」措辞改中性「由树节点提供」) |
|
||||
| v2.8 | 2026-10-11 | **拾取渠道废止批(用户裁「秘宝只在冒险开始前配置,不存在任何冒险中更换方式」)**:删「冒险中的秘宝拾取」段;来路口径回单渠道(营地解锁)+绝对规则落文(无例外——拾取与效果均不产生装配变化);验收增「装配不可变」条(冒险全程装配快照逐位不变断言);受影响件扫描=13 件零件失效(唯一依赖换装的换装券已于 v2.7 删除) |
|
||||
| v2.7 | 2026-10-11 | **目录修正批(用户复核抓出两个设计错误)**:①回能器删除(孤儿件——新目录无冒险级限量件,且关卡级/战斗级件天然周期重置、开局回充结构性冗余;优秀档 5→3,两位空位不构成补件议程);②换装券撤消(**设计错误承认**:换装券系从「中途不可换装」规则反推的错误造物,从来不是秘宝件——真实机制=冒险中拾取未知秘宝、打开选择、携带满则替换);③获取渠道换代=营地解锁+冒险拾取两条(原「不掉落」口径废止);新增「冒险中的秘宝拾取」段(替换=获取事件与不可自主换装不冲突;投放渠道/候选构成/频率归实装批与数值批);④效果轴操作能力/行动资源两格改空位、恢复机制改无现役来源;⑤全部「15 件」计数换代 13 件 |
|
||||
| v2.6 | 2026-10-11 | **怪物巢穴类型退役批(用户裁)**:巢穴预告件效果文本换代(揭示本板危险格数量——件代号保留,命名归用户);「巢穴计数」账名同步;世界观风味层巢穴隐喻保留(00-游戏概念隐喻轴) |
|
||||
| v2.5 | 2026-10-11 | **可读性审查批(grilling,用户令「谁看了都知道它在说什么」)**:①术语指路行入头部(全库术语表同批建立);②首用术语白话化/查表化(同调位、操作包络、RAP、GP、微光、巢穴等入术语表;slot_cost→每件固定占 1 格);③黑话清扫=正主/落籍/P1 甲死指针/charges/结构闸/边界锚/批前/在册/单口/旋钮;④承重契约白话化+头注修正(非全部由加载校验强制)+真视前向引用补注;⑤验收分层句白话化;⑥两处过时事实修正=战斗道具窗口(2026-09-15 已下线,实证战斗结算文档)/21 项义务死指针(registry aux_items 实证无 obligations 字段,改写为随实装批消解);⑦版本历史 v2.2-v2.4 行序修复;⑧全库术语统一随批(危险格/整图/专长凭证,见术语表 v1.0) |
|
||||
| v2.1 | 2026-10-10 | **系统目录归位批(用户发现结构问题)**:本文件自 `systems/排雷循环/` 迁入 `systems/跨局循环/`——生命周期裁定=解锁/装配/存档持久全在跨局侧,排雷循环仅是生效现场;成因=前身「辅助道具」系切片期掉落形态故旧置排雷循环,同调换代只换内容未搬位置。文内向排雷循环四文档的引用改跨目录路径 |
|
||||
| v2.2 | 2026-10-10 | **正文换代批(方案甲,用户裁「旧的删、误标改」)**:①定位与形态节压缩(沿革一句话;删过渡形态长段/中立移除规格段〔规格迁素材库 blast_kit 行〕/衔接纪律/事故留痕——正文零历史纪律);②五维度框架节去「在役旧实现」错标改写(信息/风险/行动三维列新目录承载件,规划/反制豁免维持;逐件标注随实装批);③使用编排/叠加层/边缘零信息三节去⚠(机制为新目录沿用)+举例换新件;④调参表清理(删旧目录六行句/投放态注记/playtest 预读行;订阅行段去件名举例与错标——效果引擎机制在役沿用);⑤验收护栏与覆盖检查两条换代新目录语境;⑥「旧目录处置」小节删除(素材库表一承载)。真旧内容承载=素材库+git 历史 |
|
||||
| v2.3 | 2026-10-10 | **设计骨架节落地(用户逐轮裁:三大类方向+代价×效果矩阵+使用代价空间+转化获取三通道)**:新增「## 设计骨架」节替换旧维度框架节——①叙述总纲=玩家体验两面(信息/操作);②效果轴三方向(信息/行动资源/操作能力)+细分格开放清单(奖励预读空位备注微光常显重合;资源容量扩展/奖励预读等空位在案);③代价轴三段=获取代价(钥石/条件解锁)+使用代价(按重置周期分层:冒险级/关卡级/战斗级/转化获取〔行为/资源/时间三通道,后两空位〕/常时;恢复机制独立参数=回能器关级回充只作用于冒险级件)+装配代价(slot_cost/档位格约束);④用法规则五条(新件=效果格×代价格/档位=预置平衡带/覆盖检查只跑三方向且空位不构成议程/信息方向按减赌目的检验/账本独立值 provisional);⑤旧五维度框架概念退役(v0.5 起在册的自查清单由骨架三方向继承;逐件归属随实装批登记);⑥负责表/验收/依赖表相关行同步。骨架定位=可设计方向清单(类比奇物骨架、机能面层次),非既有件分类;本批过程事故在册=先行的行切片脚本损坏提交(deb1a80)已全文重写修复 |
|
||||
| v2.4 | 2026-10-10 | **棋盘事实不可变裁定批(用户裁)**:①承重契约增条——秘宝效果不得移除/增改危险格位置与邻接数字,效果形态只允许信息呈现与开格动作;原爆破工兵包「中立移除」定性为违规形态、随件退役废止(规格留素材库作反面留档);②设计骨架增预留方向行——无差别开格(3×3 全开、收益不获取惩罚不触发)预留,现不做后续拓展再裁,与天眼有差别开格相区分 |
|
||||
@@ -0,0 +1,241 @@
|
||||
# 锻造工坊
|
||||
|
||||
> 一句话:营地的武器与护甲成长——武器锻造区三条路线、护甲锻造区三条路线各练各的,钥石消费,一次冒险各选一件,满级特效留位本期不做
|
||||
> 状态:**v0.8 迭代 21 反哺④残余写入文档(2026-10-13)**——「树侧钥匙」句换代:钥匙节点 forge_workshop 已随迭代 21 实装在役(free 无前置、点亮展开本柜台、锁定态零购买路径),原「实装归 06」悬置指针终结(详见版本历史 v0.8 行)。承 v0.7 迭代 23 反哺写入(2026-10-13)——正文补 Q1 等级语义衔接(0 = 未练合法态)、效果类型闭集 24→31 订正、实装边界 1 回填实装实态(已随迭代 23 入库)。承 v0.6 完备性检查批(承 v0.5 B 组定案——**17 裁点全数清零**:1 丙 / 1a 一次冒险一件武器+一件甲 / 1b 营地可换·战斗禁换 / 1c 免费 / 2a 伪裁点消解 / 2b 随 3a 消解 / 3a 魔法护甲统一命名 / 3b 敌方攻击缺省普通·克制反向当下生效 / 3c 每型独立路线 / 4a 前缓后陡 / 4b 锻造内自闭环 / 4b-1 并联双通道 / 5b 纯钥石 / 5c 零材料 / 6 满级特效本期不做留扩展位 / 8a 工作间两区定名;2c、5a 已于 v0.4 结案)。**v0.6 变更(2026-10-12 完备性检查批·grilling 用户逐条裁)**:现役事实基线换代(forge_products 行族已随迭代 21 T5 退役、定价参数改历史考古口径);**两根类型轴所有权移交**(默认值归锻造工坊配置常驻持有、hero.tres 静态表两轴删除、选中态写存档+参数面注入);「与秘宝混合制同构」与「激活穿刺系专长」两处无依据表述订正删除。**满级特效本期不做**(只留扩展位);全部数值 provisional,终值归 Alpha 收官 M4 数值批〔未排期〕;实装待办在册 [06-待办清单](../../06-待办清单.md)「锻造工坊实装批」条——**开工门 = 17 裁点清零 + 用户发令,裁点门已满足**
|
||||
> 成文底稿:`design/research/提案-武器锻造系统-2026-10-07.md`(提案过程稿——全部备选案与淘汰依据、用户原案逐条对照见彼;本文只收录定案口径;**未启用的满级特效候选池亦留彼 §八**,不进正文)
|
||||
|
||||
## 设计目的
|
||||
|
||||
用户原案(playnote 2026-10-06):把现役"营地花钱买攻击 +1"改造成有等级、有成长、有满级特效的**武器升级路线**;新增长枪(穿刺)与法杖(魔法)实现武器间差异化;护甲同理——初始只有轻甲(升级只提 AC),最高等级后解锁重甲/魔法护甲,基础 AC 各异、各带满级特效。
|
||||
|
||||
这套设计同时是成长曲线反馈(playnote 2026-10-05「前期成长系数不能太高,能力解锁后才能匹配关卡难度」)的执行载体:锻造工坊同时握着**数字成长的速率**(每级加多少)与**能力解锁的节奏**(什么时候拿到新武器/新甲),曲线形状直接服务"前期靠挖掘技巧过关、后期靠解锁追平难度"的体验目标。(原提案把"满级特效"也列为能力台阶之一——2026-10-12 裁 6:特效本期不做、只留扩展位,能力台阶收缩为新武器/新甲型的解锁,见「满级特效扩展位」节。)
|
||||
|
||||
## 系统范围
|
||||
|
||||
边界这样划:锻造工坊管「三件武器与三型护甲的等级路线、解锁规则、定价与满级特效的设计口径」——它是对现役营地属性锻造柜台中攻击、护甲两档的路线化改造设计,不是新系统。钥石从哪来、余额怎么记,归元进度;数值终值归数值批;代码与数据表改动全部归实装批。
|
||||
|
||||
负责:
|
||||
|
||||
| 负责 | 说明 |
|
||||
|---|---|
|
||||
| 武器路线设计 | 三件武器(长剑/长枪/法杖)各自的等级、成长曲线方向、满级特效扩展位(本期不启用);攻击类型映射(普通/穿刺/魔法) |
|
||||
| 护甲路线设计 | 三型甲(轻甲/重甲/魔法护甲)各自的等级路线、基础 AC 差异方向、克制反向口径、满级特效扩展位(本期不启用) |
|
||||
| 解锁与定价规则 | 锻造内自闭环解锁(不绑关卡进度)、**并联双通道**(练满前一档 OR 一次性解锁价)、钥石几何递增定价、甲型一次性解锁价 |
|
||||
| 出场选择规则 | **一次冒险 = 一个武器类型 + 一个甲型**;营地内随时免费切换,冒险开始后锁死 |
|
||||
|
||||
不负责:
|
||||
|
||||
| 不负责 | 归谁 |
|
||||
|---|---|
|
||||
| 钥石账本与营地柜台结构 | [元进度](元进度.md)——本系统即属性锻造柜台攻击/护甲两档的改造,消费货币与柜台框架归彼 |
|
||||
| 数值终值(每级增量/等级上限/价格/基础 AC/特效值) | Alpha 收官 M4 数值批——本文全部数值只有量纲与锚点,标 provisional |
|
||||
| 代码与数据表落地 | 实装批(待办在册 06)——迁移面见下文,含数值验证义务 |
|
||||
| 克制矩阵与伤害结算 | [战斗结算](../战斗循环/战斗结算.md)——矩阵九格结构冻结是既有条款,本系统零改动 |
|
||||
| 局内属性奖励件 | [奇物](../冒险循环/奇物.md)——账号层永久强化与单冒险加算区分层并存,互不侵入 |
|
||||
| 存档读写 | [存档序列化](../表现与支撑/存档序列化.md)——实装后新增等级与当前选中域,旧档废弃口径随实装批(开发阶段无迁移) |
|
||||
|
||||
## 在核心循环中的位置
|
||||
|
||||
```
|
||||
营地:钥石 → 武器/护甲路线升级 → 选定当前武器/当前甲(写攻击类型与甲型轴)
|
||||
→ 冒险开局:账号层基础值经参数面注入 → 战斗:主角攻击按类型查克制矩阵
|
||||
```
|
||||
|
||||
## 现行设计(定案口径)
|
||||
|
||||
### 柜台承载(2026-10-11 锻造工坊裁决会话 A 组定案)
|
||||
|
||||
**营地=四柜台并排布局**(A② 裁):营地界面并排呈现四个柜台——①树淬炼(树脊柱界面,生命/命中淬炼唯一入口)②锻造工坊(武器+护甲攻防两区,本系统)③秘宝匣(秘宝解锁与同调装配)④奖励格图鉴(常开无门槛)。**攻防锻造独立成柜台**,不并入秘宝匣(职责分立:工坊=武器/护甲路线升级,秘宝匣=秘宝解锁与同调装配,混装淘汰)。宽度不足时横向滚动条兜底;程序占位先行,视觉与布局终稿归 HUD 营地批(后续 UI 优化另批)。
|
||||
|
||||
**生命档不设于本工作间**(A① 裁):生命强化唯一入口=树脊柱生命线;旧属性柜台生命档随「天赋树实装批」旧柜台清退吸收进脊柱。本工作间=纯攻防两区:武器区加攻击、护甲区加 AC,注入面零生命项。
|
||||
|
||||
**工作间内两区并列**(A③ 裁):武器区/护甲区并列呈现,机制层面零顺序门槛;同屏分栏或页签切换=呈现细节归 HUD 批。
|
||||
|
||||
**树侧钥匙(2026-10-11 裁:无前置)**:本柜台由天赋树「锻造工坊」钥匙节点展开——free 节点、**无前置条件、直接可点亮**(原「攻击淬炼累计 ≥2 级 且 护甲淬炼累计 ≥2 级」等级阈值前置,随树脊柱砍攻/护两线作废);未点亮时本柜台锁定态,点亮后开放。树侧结构换代(脊柱砍攻/护两线 + 一线一节点 + Fork 一节点双态,三轮换代 **29→21→15→12**,地脉共鸣条件效果随之换代——2026-10-12 订正:原记「29→21」系 v0.6 时点旧数,树侧现行终态 12 节点)设计权威文档 = [天赋树](天赋树.md);**钥匙节点 forge_workshop 已随迭代 21 实装在役(2026-10-12 入库——free 无前置、点亮展开本柜台、锁定态零购买路径),2026-10-13 反哺写入换代原「实装归 06」悬置指针**。
|
||||
|
||||
**注入衔接(所有权切分,2026-10-11 裁)**:每根数值轴全游戏单一来源——生命/命中唯一入口=树脊柱;**攻击唯一入口=武器路线、AC 唯一入口=甲路线(本系统)**,树零攻防来源(红线)。锻造路线加值 = 当前武器攻击加值 + 当前甲路线 AC 加值,与树淬炼 flat、局内加算区在开局属性注入面分层相加(通道现行事实源 = [元进度](元进度.md)「跨局注入」节);锻造加值只按**当前选中**的武器/甲生效(长剑的练度在换带长枪后回家待命,不丢级、不生效)。
|
||||
|
||||
**两根类型轴的所有权(2026-10-12 v0.6 订正,用户裁)**:`attack_type` / `armor_type` 的默认值由锻造工坊配置**常驻持有**(默认值 = 现役静态表现役值 normal / light),hero.tres 静态表两轴随实装删除——静态表不再存放这两项。冒险开始时参数面读「锻造工坊配置默认值 + 存档当前选中覆盖」注入。**默认值与柜台解锁状态解耦**:树钥匙节点未点亮时柜台为锁定态(玩家无交互入口),但配置表常驻可读、默认值照常注入——不存在「锻造工坊解锁前读不到默认值」的窗口。选中态写存档(与等级域同批新增),与现役「表运行期只读、永久强化写存档」纪律一致(`meta_progression.gd:12-13/119`)。
|
||||
|
||||
### 三件武器
|
||||
|
||||
| 武器 | 正式显示名 | 攻击类型 | 路线(行名) |
|
||||
|---|---|---|---|
|
||||
| 剑 → **长剑**(8a 改名,见下) | **长剑锻造** | 普通 | 语义继承自已退役的攻击锻造行(+基础攻击);行族本体随迭代 21 T5 退役,路线行为新建(对象与命名归实装批) |
|
||||
| 长枪 | **长枪锻造** | 穿刺 | 解锁后从 1 级练起 |
|
||||
| 法杖 | **法杖锻造** | 魔法 | 解锁后从 1 级练起 |
|
||||
|
||||
> **改名注(2026-10-12,8a 裁·Y 层)**:六条路线的行名统一为「件名 + 锻造」——长剑锻造 / 长枪锻造 / 法杖锻造、轻甲锻造 / 重甲锻造 / 魔法护甲锻造。其中第一件武器的正式显示名由「剑」改「长剑」(用户原话口径)。`attack_type` 字段值、矩阵语义、registry 攻击类型词条均不受此改名影响——改的只是显示名。
|
||||
|
||||
- 每件武器有**独立等级**(1 到上限,锚点 5 级量级,provisional;**0 级 = 未练合法态**——未解锁或已解锁未锻造均为 0 加值裸体态,锻出第 1 级 = 首个 +1,Q1 裁 2026-10-12)、独立成长曲线、独立的满级特效挂位(**本期为空位**——6 裁,见「满级特效扩展位」节)——三件武器的等级各自保留,换当前武器不丢任何进度。
|
||||
- **当前武器单选出场**:类型由武器决定(选长枪=穿刺)。选中态写**存档域**(与等级域同批新增),冒险开始经参数面注入;`attack_type` 的默认值归锻造工坊配置常驻持有、hero.tres 静态表该轴随实装删除(2026-10-12 v0.6 订正:原「写入 hero.tres 休眠轴」口径与现役「表运行期只读、永久强化写存档」纪律冲突——`meta_progression.gd:12-13/119`,且与本文存档域条目自相矛盾;现役静态值 normal 由锻造工坊配置默认值接管)。
|
||||
- **一次冒险 = 一个武器类型 + 一个甲型(1a 裁)**:同一时刻只有一件武器、一件甲生效(出场行显示"当前:长剑锻造 + 轻甲锻造")。多持轮换淘汰——棋盘穿刺/魔法直伤件已承载"对不同甲型换着打"的战术价值,战斗内换械要给结算管线新开"类型可变"维度,收益不成比例。(原裁点只问武器携带数,本裁把它扩到"一次冒险"粒度并同时覆盖甲侧。)
|
||||
- **营地内随时切换、免费(1b / 1c 裁)**:等级都是玩家花资源练出来的,切换只是决定"今天带谁出门";二次收费会惩罚尝试性构筑,与成长曲线诉求(低成本试错找匹配武器)相逆。**冒险开始后锁死**:伤害单据的类型在开单时声明、管线内不变。
|
||||
|
||||
### 三型护甲
|
||||
|
||||
| 甲型 | 基础 AC(provisional) | 挨普通攻击的克制修正(矩阵 normal 行) | 说明 |
|
||||
|---|---|---|---|
|
||||
| 轻甲 | 10(现役主角值,不动) | 0(中性) | 初始持有,升级每级 AC +1 |
|
||||
| 重甲 | 12(+2) | −1(挡普通) | 解锁后从 1 级练起,独立等级路线 |
|
||||
| 魔法护甲 | 9(−1) | +1(被普通克) | 即现役甲域 ward——对号入座,零扩域 |
|
||||
|
||||
- **命名统一(3a / 2b 裁)**:**只有「魔法护甲」这一个名字**(= 现役甲域 ward)。用户原案里的「魔法甲」是**笔误**,不是别名、不做简称退役处理——正文、界面文案与 registry 一律写「魔法护甲」;仅历史版本行与过程稿引用原文时按记载保留。"第四甲型"不存在也不需要讨论(2b 随之自动消解)。
|
||||
- **每型独立等级路线(3c 裁)**:与武器路线同构;"当前甲"单选与"当前武器"单选同构,营地内免费切换。
|
||||
- **甲型差异当下双轴可感(3b 裁——推翻原「显式边界·诚实收窄」条款)**:**敌方攻击是有类型的**;未显式设置的敌方攻击一律按**默认普通(normal)**参与结算(用户裁)。矩阵 normal 行取值 = 轻甲 0 / 重甲 −1 / 魔法护甲 +1(整数点数:+1 被克 / 0 中性 / −1 挡住)。所以甲型差异不是"只有基础 AC 可感",而是 **基础 AC + 克制修正两轴当下同时生效**——不再有"克制反向要等敌方攻击类型批"的推迟。
|
||||
- **现役实态与本裁定的落差(跨系统汇合点,本系统只登记需求)**:现役敌方攻击单据的 `attack_type` 栏为 `""`(空串恒不查克制矩阵,`damage_controller.gd:19/:550-552`;该栏注释把"敌方技"列入无类型族),`enemy.tres:527` 登记「敌方技能攻击类型轴仍未开(全部 normal 档)」——轴未开、开了也全 normal。**按 3b 裁执行 = 把该轴按「缺省填 normal」启用**;填值动作面落在敌人系统 / 战斗结算侧,不在本工作间内。锻造工坊实装批只登记该需求与它的数值影响(见「实装边界」第 6 条)。
|
||||
- **连带后果(3b 裁的前置信息,用户裁定:不在本批考虑,留作后续开发改造的输入)**:按"敌方攻击缺省普通"落定后,现行数据下三型会成**纯序**——重甲(AC +2 且挡普通 −1)= 双正、轻甲 = 中性、魔法护甲(AC −1 且被普通克 +1)= 负向,且因现行敌方无魔法攻击而暂无优势窗口。这是**后续开发改造的前置事实**不是缺陷裁定:敌方攻击类型的差异化、魔法护甲的正当性由后续批次负责(含 M4 在基础 AC / 解锁价上的取值);本批只需按统一伤害轴把结构与字段落对即可。
|
||||
- 每 1 点 AC 的期望减伤约 3.75% 量级(现役 EV 复算锚:AC10 期望减免 21.25%、AC11 25%),终值归 M4。
|
||||
|
||||
### 成长曲线与解锁
|
||||
|
||||
- **曲线形状:前缓后陡(4a 裁,只锁方向不锁值)**——低等级每级攻击增量小(+0/+1 量级),高等级每级 +1/+2 量级。前期刻意压数字:玩家靠挖掘技巧过关(这是特性不是缺陷);**能力台阶 = 新武器 / 新甲型的解锁**(满级特效本期不做,见「满级特效扩展位」节)。只锁形状方向,参数全体 provisional 归 M4。(程序性登记:曲线形状与几何定价是两条独立旋钮,终值同归 M4 一批标定——不含任何方向性判断。)
|
||||
- **本系统=攻防数值成长唯一来源**(2026-10-11 所有权切分裁):攻击成长只在武器路线、AC 成长只在甲路线;树脊柱零攻防数值(只有生命/命中两线)。数字成长的速率与能力解锁的节奏由本曲线统一握持——这是本系统对成长曲线反馈诉求的独占载体地位。
|
||||
- **解锁节奏:锻造内自闭环(4b 裁)**——新武器 / 新甲型的解锁条件全部在锻造系统内部,不绑关卡进度(与"营地 = 消费钥石的成长枢纽"定位冲突,且首局教学局不该被绑死在长剑上)。
|
||||
- **解锁通道:并联双通道(4b-1 裁)**——每条待解锁路线(长枪 / 法杖 / 重甲 / 魔法护甲)都开两个**互不影响、玩家自选其一**的通道:① **练满前一档**(长剑练满开长枪/法杖、轻甲练满开重甲/魔法护甲);② **一次性解锁价**直购开。不设串联门槛(不需要先练满才能买)。与秘宝的关系:共享钥石单币与「钥石直购 / 条件解锁」的成分语义,但通道结构不同——秘宝为件级单通道分派(`秘宝.md:29`),本系统为同路线双通道并联任选(2026-10-12 v0.6 订正:原「与秘宝解锁的混合制同构」表述删除——「同构」非本项目概念,两者功能、结构、位置均不同)。
|
||||
|
||||
### 经济
|
||||
|
||||
- **纯钥石(5b 裁)**:与现役属性锻造、天赋树(树全钥石单币)、同调刷新升级同币同柜。原案语义是"攻击力提升改造"——同一笔钱换个花法。金币(GP)=局内一次性货币、局内清零不入存档、与钥石永不互兑,两币分工是拍板条款,不引入局外金币余额域或第三货币。(用户裁定注:当前没有其他材料,钥石就是统一货币;**后续若要分出专用币或材料,届时再重构设计,不预先建面**。)
|
||||
- **几何递增定价**:每级价格 = 基础价 × 150%^(已购级数)(历史考古参数:单次 20 钥石、公比 150%——`meta.tres:82-84` 退役批注;forge_products 行族已随迭代 21 T5 退役、无现役计价字段可沿,实装投值归 M4 从零标定);路线解锁 = 一次性解锁价(量纲 ≈ 中段几级锻造花费)。全部终值归 M4。
|
||||
- **零材料经济(5c 裁)**:不引入账号层锻造材料。现役效果引擎的 grant_material 是**局内**材料计数器(如雷区图谱),不是账号层库存;账号层材料=全新经济面(存档域/获取渠道/囤积规则全套新建),原案全文只字未提材料,武器差异化的价值轴是类型(与预留的特效位)不是采集刷料。
|
||||
|
||||
### 满级特效扩展位(本期不启用——6 裁)
|
||||
|
||||
**裁决(2026-10-12)**:满级特效**本期不做**——不设计清单、不定数值、不实装、不开参数位。只保留**扩展位**:
|
||||
|
||||
- 每条路线(三武器 + 三甲)的等级终点各预留 1–2 条特效挂点,本期**为空位**;
|
||||
- 启用前提 = 后续专门立项,**不随锻造工坊实装批落地**;
|
||||
- 启用时沿用的既有约束:优先复用现役效果引擎效果类型闭集(**31 种**——2026-10-13 迭代 23 反哺写入订正,原记 24 系 2026-10-07 旧快照;迭代 20 T1 +7、迭代 22 T3 +1),**不往闭集加新词**——闭集是高代价变更面(加载校验 / 文档词表 / 回归测试三处连带);
|
||||
- 未启用的候选池(长剑破甲 / 长剑暴击面扩大 / 长枪先手连击 / 法杖开局魔法矢 / 轻甲灵巧 / 重甲反震 / 魔法护甲护盾,共七条)**不进正文**,留在过程稿 `design/research/提案-武器锻造系统-2026-10-07.md` §八,届时取用或推翻。
|
||||
|
||||
**对相邻口径的三处连带**:① 设计目的节"能力解锁的节奏"台阶收缩为新武器 / 新甲型解锁(不再含特效);② 实装边界不再有"特效三条新参数位"条目;③ 存档域不设特效域。
|
||||
|
||||
## 与相邻系统的边界
|
||||
|
||||
- **奇物属性件**:分层并存,互不侵入。武器/护甲锻造动的是**账号层基础值**(营地永久强化,冒险开始时经参数面传入);奇物属性件动的是**单次冒险加算区**(关间不清零、冒险结束清零)。本设计不扩奇物"生命/AC/攻击"三轴封闭分类、不动渠道开关表、不往局内池加任何东西。入战 AC 的三层语义清晰可加:甲型基础 AC + 营地甲路线等级加值 + 局内加算区累加。
|
||||
- **克制矩阵(2a 裁:伪裁点消解)**:**伤害结算只有一套,类型不是待仲裁的槽位**。每份伤害单据自带 `attack_type` 栏(`damage_controller.gd:19` 单据九栏之一)——主角基础攻击单据取 `hero.tres` 的 attack_type(由当前武器决定),棋盘格面直伤件(穿刺弹 / 魔法矢)取 reward 表自身的类型(预期 `reward.tres:131/142`)——各自按**同一张 3×3 矩阵** `armor_effectiveness` 取克制修正(`_counter_delta`)。因此"叠加 / 替代 / 互斥"三分法不成立:两根参数之间无冲突可裁,也不需要任何共存规则。二者的真实差异只在**单据形态与生命周期**(主角基础攻击走掷点折扣 + 暴击;棋盘克制直伤走必中全额不掷点 `_resolve_board_typed`;且前者 = 账号层永久、后者 = 局内一次性)——那是两条不同的伤害来源,不是两种类型语义。矩阵九格满格结构冻结(2b 随 3a 自动消解:魔法护甲 = 现役 ward,不存在第四甲型)。
|
||||
- **工作间两区定名 + 路线行名(8a 裁)**:锻造工坊工作间内先立两个分区,各装三条锻造路线(路线行名统一为"件名 + 锻造")——①**武器锻造区**:长剑锻造 / 长枪锻造 / 法杖锻造;②**护甲锻造区**:轻甲锻造 / 重甲锻造 / 魔法护甲锻造。两区并列、机制层面零顺序门槛(A③ 裁),区内路线各自独立升级。
|
||||
- **局内不存在武器/护甲的提升(8a 裁连带核结)**:用户指出"局内没有可以提升武器的地方"——**属实**。查实:局内商店货架的三行(现役旧名"攻击锻升 / 生命锻升 / 护甲锻升"——**2026-10-12 已改名,见下**),**正是奇物「属性值提升」三轴(攻击 / 生命上限 / AC)的货架前台标签**——`shop.tres` pool_shelf 六行用 `kind_id` 指向 `adventure_table.gd:29` 的 CURIO_KINDS 常量(其中 feat_ticket 为显式豁免种、不入该词表,5/6 命中——`config_db_cross_validator.gd:109-110`),`display_name` 只是这层的前台名;买到的东西进**冒险加算区**、冒险结束清零。所以它们是**奇物属性件**,既不是武器也不是护甲,局内不改变任何锻造等级。命名上的隐患确凿:行名里的"锻"字与营地锻造同字,是误读的直接来源。**2026-10-12 用户裁决(8a 连带·C 项)**:三行按「属性 + 后缀」改名,后缀取 **祝福** ⇒ **攻击祝福 / 生命祝福 / 护甲祝福**(D&D 参照调研:Blessing 为"神赐恩惠"义;用户同时裁定——参考书目里出现过「祝福」一词不构成禁用)。**改名后这三条在语感上彻底脱离"锻造"一词,与营地工作间不再有字面关联**,而结构关系不变(仍是奇物「属性值提升」三轴,机制分类名不动,只改玩家向显示名)。**执行归独立改名小批**(06 在册)——**已于 2026-10-12 执行完毕并合入 master**(commit `0c93a71` / `0144f60`:shop.tres 六行锻升→祝福;reward.tres / status_effects.tres 护甲强化→盾牌加护;smoke_all.gd:1199 断言同步;注记段四处残留肃清;冒烟两跑 864 项 0 失败)。
|
||||
- **专长联动**:现役专长均为跨攻击类型通用件(不按 attack_type 分系——既无 normal 条件件、也无 pierce/magic 条件件,`feats.tres` 29 行实证),武器类型差异只经克制矩阵的 matchup 行体现;「选某类型激活某系专长」在本项目专长体系下不成立(2026-10-12 v0.6 订正:原「选长枪激活穿刺系专长的价值」为无现役对应物的表述,删除)。现有死条件 `magic_vs_magic`(魔法打"魔法甲"——现行甲域无此型,永不可触发 = 废卡):**改值复活案已作废(2026-10-11 D 组核结——所属件魔网织者在素材库表二专长 27 件退役删除名单)**,该行随专长退役删行批整体消解,本系统零触碰(2026-10-12 订正:本节原写"推荐复活"与实装边界第 3 条结案口径冲突,随本批对齐)。「魔法打魔法护甲」的克制语义由矩阵九格承载(magic vs ward = −1),新专长框架如需同类件 = 彼批的新卡设计题。
|
||||
- **天赋树**:同钥石经济;注入面分层叠加且**所有权切分**(2026-10-11 裁)——树脊柱只持生命/命中淬炼(树零攻防来源),攻/AC 唯一入口=本系统路线加值(只按当前选中武器/甲生效)。
|
||||
- **冒险前资源配比预设批(挂起冻结中)**:本设计不预设该批的重启口径、不占用其任何冻结裁决、不改其冻结文本。该批重启时须显式核对两处交汇面:①预算包络是否把武器类型计入克制注;②容量柜台与锻造工坊工作间(同在营地)的资源竞争关系。
|
||||
|
||||
## 现役代码事实(设计所依据的实态,2026-10-07 复核)
|
||||
|
||||
| 事实 | 出处 |
|
||||
|---|---|
|
||||
| 局内商店货架三行 = 奇物「属性值提升」三轴的货架前台标签(攻击/生命/护甲祝福);营地属性锻造行族已随迭代 21 T5 退役,无"武器"实体 | `shop.tres:68-92`、`meta.tres:73-76` 退役登记 |
|
||||
| 主角攻击类型轴现役值 normal(枚举 normal/pierce/magic)——默认值所有权随本设计移交锻造工坊配置、hero.tres 该轴随实装删除 | `hero.tres:11`、`hero_table.gd:13` |
|
||||
| 主角甲型结构位现役值 light(域 light/ward/heavy);AC=10 现役生效——默认值所有权随本设计移交锻造工坊配置、hero.tres 该轴随实装删除 | `hero.tres:9-10` |
|
||||
| 克制矩阵 3×3 九格满格(普通/穿刺/魔法 × 轻甲/魔法护甲/重甲),结构冻结 | `settlement.tres:31-47` |
|
||||
| 敌方装甲分布:轻甲×14 / 重甲×4 / 魔法护甲×1(L2 Boss 蛛化卓尔精灵) | `enemy.tres` |
|
||||
| 甲效矩阵 normal 行取值:轻甲 0 / 魔法护甲 +1 / 重甲 −1(整数点数:+1 被克 / 0 中性 / −1 挡住) | `settlement.tres:31-47` |
|
||||
| 敌方攻击类型轴**未开**——单据 `attack_type` 栏现役为 `""`(空串恒不查矩阵,`""` 与"群伤/反噬/地形/敌方技"同列无类型族);`enemy.tres` 登记「敌方技能攻击类型轴仍未开(全部 normal 档)」 | `damage_controller.gd:19/:550-552`、`enemy.tres:527` |
|
||||
| 效果引擎效果类型闭集 **31 种**(原记 24 系 2026-10-07 旧快照——迭代 20 T1 +7、迭代 22 T3 +1,2026-10-13 迭代 23 反哺写入订正;冒烟断言钉 31,将来加词即转红提示复核) | `effect_engine.gd` |
|
||||
| 营地消费货币=钥石(现役入口 tree_buy / buy_attune_refresh → spend_keystone——buy_forge 随 forge_products 退役删除);GP=局内一次性货币,开局清零不入存档 | `meta_progression.gd:175/:354`、`adventure_runner.gd:116` |
|
||||
|
||||
## 实装边界(执行归实装批,本文只登记方案)
|
||||
|
||||
1. **锻造路线行族(新建)**:现役 `meta.tres` forge_products 行族已随迭代 21 T5 攻防所有权切分整体退役(`meta.tres:73-76`、`meta_table.gd:15-16`、`meta_progression.gd:33-35` 三处退役登记,buy_forge/forge_price 访问器随删)——武器/护甲路线为**新建行族**,行族命名、字段结构与落表位置归实装批定义,本文只登记内容口径(三武器/三甲各自等级、定价、解锁通道,见「工作间内容清单」);生命项不在本批(生命强化唯一入口=树脊柱生命线,2026-10-11 A① 裁)。同表 boss_keystone / workshop_items / conversion / attune_refresh_upgrade 四行族零触碰。**实态回填(2026-10-13 迭代 23 实装兑现)**:落表=新表 `data/tables/forge.tres`(ForgeTable:默认两轴常驻持有 + 六路线行族,`meta.tres` 三行族零触碰);路线 id = sword/spear/staff/light/heavy/ward(甲路线 id=甲型值本身);字段闭集 12 项;访问器 = `ConfigDB.forge_*` 六个(迭代 23 T1/T2 交付)。
|
||||
2. **两根类型轴的所有权移交**:`attack_type` / `armor_type` 的默认值由锻造工坊配置常驻持有,hero.tres 静态表两轴**删除**;营地选中态写存档域,冒险开始经参数面注入(与现役「表运行期只读、永久强化写存档」纪律一致——`meta_progression.gd:12-13/119`;原「写 hero.tres 休眠轴」口径随 v0.6 订正,见「注入衔接」节)。
|
||||
3. **`feats.tres` magic_vs_magic 死行**:复活案作废(2026-10-11 核结——所属件魔网织者已在素材库表二专长 27 件退役删除名单),随专长退役删行批整体消解,本批零触碰;「魔法打魔法护甲」克制语义由矩阵九格承载,新专长框架如需同类件=彼批新卡设计题。
|
||||
4. **存档域**:新增三武器等级 + 三甲等级 + 当前选中标记(各 1 个);**不设特效域**(6 裁)。旧档按开发阶段无迁移红线破坏性废弃(2026-10-11 用户裁,禁迁移/折算)。**已于 2026-10-12 v0.6 完备性检查批预登记**(存档序列化.md 域清单表 + 版本沿革 v7 计划行——用户令文档批次即登记、不等实装批)。
|
||||
5. **满级特效:本期不实装**(6 裁)——不开三条新参数位(暴击面 / 折扣档 / 护盾量),不加效果类型词,扩展位留空。
|
||||
6. **敌方攻击类型轴填值(3b 裁连带,跨系统汇合点)**:敌方攻击单据 `attack_type` 按「未设置 = 默认 normal」填值,使其参与克制矩阵查表(现役为 `""` 恒不查)。**执行面归敌人系统 / 战斗结算侧**,锻造工坊实装批只登记该需求与其数值影响——该改动会全局平移主角受伤点数(穿重甲 −1、穿魔法护甲 +1),属数值敏感变更,须纳入第 8 条的配对读数验证。敌方 attack_type 是敌方定义数据(enemy.tres / skills.tres 行级,与敌种名字/血量同批同时读写、无独立时序),填值归敌人系统/战斗结算侧自然推进——本批只按 3b 裁落结构面(矩阵查表现役已支持),与锻造工坊批期无耦合(2026-10-12 订正:原「两批排期协商(可同批做,也可先行)」句删除——用户裁:时序问题不存在)。
|
||||
7. **术语登记**:三型甲统一命名——**只有「魔法护甲」(「魔法甲」系笔误,不登记为别名)**;连同工作间两区定名(武器锻造区 / 护甲锻造区)顺带登记 `design/registry/entities.yaml`。
|
||||
8. **数值验证义务**:实装批必须带改前/改后同随机种子配对读数验证难度影响;统一调整归 Alpha 收官 M4 数值批。
|
||||
|
||||
## 裁决结果清单(17 裁点全表·2026-10-12 清零)
|
||||
|
||||
17 裁点全部拍板,本表即终态(含本会话呈报的两条子问 4a-1 / 4b-1,共 19 行)。「推翻推荐」四行已同步改正文对应节。实装批以本表 + 下节「工作间内容清单」为需求卡片输入。
|
||||
|
||||
| # | 裁点 | 裁决结果 | 写入处 | 备注 |
|
||||
|---|---|---|---|---|
|
||||
| 1 | 武器实体化程度 | **丙**:当前武器单选 + 每件独立等级路线(两向可逆:砍独立等级退为纯路线,加库存实体升级为装备) | 「三件武器」节 | 按推荐案 |
|
||||
| 1a | 携带 / 选中数 | **一次冒险 = 一个武器类型 + 一个甲型** | 「三件武器」「三型护甲」节 | 扩面(原裁点只问武器携带数) |
|
||||
| 1b | 换械时机 | 营地内可换,战斗(冒险开始后)禁换 | 同上 | 按推荐案 |
|
||||
| 1c | 换械收费 | 免费 | 同上 | 按推荐案 |
|
||||
| 2a | 类型轴共存 | **伪裁点消解**——伤害结算只有一套、单据自带类型,"叠加 / 替代 / 互斥"三分法不成立 | 「与相邻系统的边界·克制矩阵」 | **推翻推荐案** |
|
||||
| 2b | 矩阵扩维 | 不扩(九格冻结)——**随 3a 自动消解**;且「魔法甲」系笔误、只有魔法护甲一型,第四甲型无从谈起 | 同上 | 附庸裁点 + 笔误消解 |
|
||||
| 2c | 死条件 magic_vs_magic | **已结案(2026-10-11 D 组核结)**:复活作废——所属件魔网织者在素材库表二退役名单,随专长 27 件退役消解 | 实装边界 3 | v0.4 结案 |
|
||||
| 3a | 甲域定名 | **就叫魔法护甲**(= 现役 ward);三型 = 轻甲 / 重甲 / 魔法护甲 | 「三型护甲」节 | 按推荐案 + **「魔法甲」系笔误,不立别名** |
|
||||
| 3b | 甲型可感面 | **敌方攻击有类型、未设置 = 默认普通** ⇒ 甲型差异"基础 AC + 克制修正"两轴**当下即生效**;原"克制反向留结构位"收窄条款作废 | 「三型护甲」节 + 实装边界 6 | **推翻推荐案**(连带跨系统填值需求 + 魔法护甲双负呈报) |
|
||||
| 3c | 护甲升级结构 | 每型独立路线(与武器同构) | 「三型护甲」节 | 按推荐案 |
|
||||
| 4a | 成长曲线形状 | 前缓后陡(只锁方向,值归 M4) | 「成长曲线与解锁」节 | 按推荐案 |
|
||||
| 4a-1 | 〔子问〕曲线×定价"又贵又弱"提示 | **撤回**——该结论无依据(定价为现役沿用参数、前期弱是曲线意图),不落任何方向性判断;只留"两条旋钮同批标定"程序句 | 同上 | 呈报方撤回 |
|
||||
| 4b | 解锁节奏 | 锻造内自闭环(不绑关卡进度) | 同上 | 按推荐案 |
|
||||
| 4b-1 | 〔子问〕解锁通道语义 | **并联双通道**:练满前一档 **OR** 一次性解锁价,两者互不影响、玩家自选 | 同上 | 原正文"或"字歧义完成裁决 |
|
||||
| 5a | 柜台承载 | **已结案(2026-10-11 A②)**:四柜台并排、攻防独立柜台、生命档移除 | 「柜台承载」节 | v0.4 结案 |
|
||||
| 5b | 货币 | 纯钥石(用户注:当前无其他材料,钥石 = 统一货币;后续若要区分再重构,不预先建面) | 「经济」节 | 按推荐案(且受两币分工条款锁定) |
|
||||
| 5c | 材料经济 | 纯钥石零材料 | 「经济」节 | 按推荐案 |
|
||||
| 6 | 满级特效深度 | **本期不做,只留扩展位**——不设计清单 / 不定数值 / 不实装 / 不开参数位 | 「满级特效扩展位」节 | **推翻推荐案**(原 = 复用为主 + 三条新参数位) |
|
||||
| 8a | 货架现名 → 实裁 = 工作间命名(区名 + 路线行名)+ 局内核结 | **区名**:武器锻造区 / 护甲锻造区;**路线行名**统一「件名 + 锻造」= 长剑锻造 / 长枪锻造 / 法杖锻造、轻甲锻造 / 重甲锻造 / 魔法护甲锻造(第一件武器显示名 剑 → **长剑**)。**局内核结**:局内不存在武器 / 护甲的提升——商店货架三行「攻击锻升 / 生命锻升 / 护甲锻升」即奇物「属性值提升」三轴的货架前台标签(`shop.tres` pool_shelf kind_id → `adventure.tres` CURIO_KINDS),与锻造无关;是否去"锻"字归实装批呈现面 | 「与相邻系统的边界·工作间两区定名 / 局内不存在武器提升」 | 裁点重定向 + Y 层命名 |
|
||||
|
||||
## 工作间内容清单(实装批需求卡片输入)
|
||||
|
||||
本节把定案口径压成一张可照做的清单——需求卡片逐条取用即可。
|
||||
|
||||
### 1 · 承载与入口
|
||||
- 营地四柜台之一(树「锻造工坊」钥匙节点点亮后展开;未点亮 = 锁定态;钥匙 free、无前置)。
|
||||
- 工作间内两区并列、机制层面零顺序门槛:**武器锻造区** / **护甲锻造区**(同屏分栏或页签切换 = 呈现细节归 HUD 批)。
|
||||
- 纯攻防两区,零生命项(生命唯一入口 = 树脊柱生命线)。
|
||||
|
||||
### 2 · 武器锻造区:三条路线
|
||||
|
||||
| 路线(行名) | 攻击类型 | 初始 / 待解锁 | 解锁通道 |
|
||||
|---|---|---|---|
|
||||
| **长剑锻造** | 普通 | **初始持有**(语义继承自已退役的攻击锻造行;行族新建归实装批) | — |
|
||||
| **长枪锻造**(穿刺) | 穿刺 | 待解锁,解锁后从 1 级练起 | 并联双通道 |
|
||||
| **法杖锻造**(魔法) | 魔法 | 待解锁,解锁后从 1 级练起 | 并联双通道 |
|
||||
|
||||
### 3 · 护甲锻造区:三条路线
|
||||
|
||||
| 路线(行名) | 基础 AC(provisional) | 挨普通攻击的克制修正 | 初始 / 待解锁 | 解锁通道 |
|
||||
|---|---|---|---|---|
|
||||
| **轻甲锻造** | 10(现役主角值,不动) | 0 | **初始持有**(语义继承自已退役的护甲锻造行;行族新建归实装批) | — |
|
||||
| **重甲锻造** | 12(+2) | −1 | 待解锁,从 1 级练起 | 并联双通道 |
|
||||
| **魔法护甲锻造**(ward) | 9(−1) | +1 | 待解锁,从 1 级练起 | 并联双通道 |
|
||||
|
||||
### 4 · 每条路线的内容(六条同构)
|
||||
- **等级**:1 → 上限(锚点 5 级量级,provisional 归 M4);**0 级 = 未练合法态**(未解锁/未锻造 = 0 加值裸体态,锻出第 1 级 = 首个 +1——Q1 裁,正文「1 → 上限」为量级描述)。
|
||||
- **成长曲线**:前缓后陡(武器 = 攻击加值;甲 = AC 加值),只锁方向。
|
||||
- **终点**:满级特效挂位 1–2 条——**本期为空位**(6 裁)。
|
||||
- **独立保留**:换当前件后,原来那件的练度**保留但不生效**(长剑的练度在换带长枪后回家待命)。
|
||||
- **定价**:钥石单币,每级价格 = 基础价 × 150%^(已购级数)(现役 20 钥石基价参数沿用)。
|
||||
|
||||
### 5 · 解锁通道(四条待解锁路线同构)
|
||||
并联双通道,互不影响、玩家自选其一:① 练满前一档(长剑练满 → 开长枪 / 法杖;轻甲练满 → 开重甲 / 魔法护甲);② 一次性解锁价直购开(量纲 ≈ 中段几级锻造花费)。不设串联门槛。
|
||||
|
||||
### 6 · 出场选择
|
||||
- 一次冒险 = **一个武器类型 + 一个甲型**。
|
||||
- 营地(冒险开始前)免费切换;冒险开始后锁死。
|
||||
- 选中结果写存档域;默认值由锻造工坊配置常驻持有、hero.tres 静态表两轴删除;冒险开始经参数面注入。
|
||||
|
||||
### 7 · 注入与分层
|
||||
- 开局属性 = 角色基础值 + 树生命/命中淬炼 flat + **锻造路线加值**(当前武器攻击加值 + 当前甲 AC 加值)+ 局内加算区 flat。
|
||||
- 入战 AC 三层可加:甲型基础 AC + 甲路线等级加值 + 局内加算区累加。
|
||||
|
||||
### 8 · 存档域
|
||||
三武器等级 + 三甲等级 + 当前武器标记 + 当前甲标记;**无特效域**。旧档破坏性废弃(禁迁移 / 折算)。**已于 2026-10-12 预登记存档序列化.md**(域清单 + 版本沿革 v7 计划行)。
|
||||
|
||||
### 9 · 本期明确不做
|
||||
① 满级特效(清单 / 数值 / 参数位 / 存档域全不做);② 敌方攻击类型轴填值——跨系统需求,执行面在敌人系统 / 战斗结算侧,本批只登记。
|
||||
|
||||
### 10 · 数值与验证
|
||||
全部数值 provisional 归 Alpha 收官 M4 数值批;实装批必须带改前 / 改后同随机种子配对读数验证难度影响。
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 变更 |
|
||||
|---|---|---|
|
||||
| v0.8 | 2026-10-13 | **迭代 21 反哺④残余落文(用户裁「按呈报落文」)**:「树侧钥匙」句换代——钥匙节点 forge_workshop 已随迭代 21 实装在役(free 无前置、点亮展开本柜台、锁定态零购买路径),原「实装归 06「天赋树实装批」」悬置指针(该 06 条已随 480 清理批销号)终结。机制零改动 |
|
||||
| v0.7 | 2026-10-13 | **迭代 23 反哺落文批(实现报告 §五,用户裁「在这里进行更新」;追认单九项同日全数追认)**:①正文补 Q1 等级语义衔接——「三件武器」节与「工作间内容清单·4」两处补「0 级 = 未练合法态」(未解锁/未锻造 = 0 加值裸体态,锻出第 1 级 = 首个 +1;原正文「1 到上限」未同步 Q1 续裁);②「满级特效扩展位」节与「现役代码事实」表——效果引擎效果类型闭集 24 种→**31 种**(原记系 2026-10-07 旧快照,迭代 20 T1 +7、迭代 22 T3 +1;冒烟断言钉 31);③实装边界 1 回填实装实态——落表=新表 forge.tres(ForgeTable 默认两轴+六路线行族)、路线 id 六个、字段闭集 12 项、ConfigDB.forge_* 访问器(「归实装批定义」已兑现)。机制与数值零改动(provisional 终值仍归 M4) |
|
||||
| v0.1 | 2026-10-09 | 首版成文(用户令「完成文档编写、代码不实现、记录待办」)——按提案 v1.1 推荐案收录定案口径:柜台就地改造/三武器三甲独立路线/纯钥石零材料/前缓后陡/复用为主特效框架;17 裁点开放在册待用户逐点裁决;02-系统清单、元进度指路句、06 专条与实装待办随批同步 |
|
||||
| v0.2 | 2026-10-10 | 天赋树设计会话裁定跨文档同步批:「柜台承载」节补登记树侧解锁门——本柜台以天赋树「锻造工坊」解锁节点为前置(免费节点,前置 = 攻击淬炼/护甲淬炼累计各 ≥2 级,等级阈值前置属新机制;实装归 06「天赋树结构重构批」)。机制设计零改动 |
|
||||
| v0.3 | 2026-10-11 | **更名批(用户令,锻造工坊裁决会话)**:系统名「武器锻造」→「锻造工坊」——本文档改名 `锻造工坊.md`,与树上钥匙节点同名;全库现行指路链接与 06 实装批条名随批换代,提案过程稿文件名、用户原案引文、迭代 18 qa 清单与各版本历史行内旧名按历史记载保留;「武器锻造区/护甲锻造区」区名随承载裁决收口另改。机制设计零改动 |
|
||||
| v0.5 | 2026-10-12 | **B 组定案落文(锻造工坊裁决会话续,用户逐点裁决)——17 裁点清零**:①1 丙=当前武器单选+每件独立路线;②1a 扩面=**一次冒险一个武器类型+一个甲型**(原只问武器携带数);③1b/1c=营地免费切换·冒险开始后锁死;④**2a 推翻**——伪裁点消解:伤害结算只有一套、单据自带 attack_type 栏,删"叠加/替代/互斥"三分法,改陈述「同一矩阵·单据自带类型·差异只在单据形态与生命周期」;⑤**2b 随 3a 自动消解**(非独立裁点,条件是"魔法甲≠ward");⑥3a=统一命名**魔法护甲**(ward;「魔法甲」系**笔误**不做简称处理,registry 不登记别名);⑦**3b 推翻**——敌方攻击有类型、未设置=默认普通 ⇒ 甲型差异「基础 AC + 克制修正」两轴当下即生效,原"诚实收窄/克制反向留结构位"整段作废,并如实登记现役落差(敌方单据 attack_type="" 恒不查矩阵、`enemy.tres:527` 轴未开)为**跨系统汇合点**(填值面归敌人系统/战斗结算)+ 连带后果(三型成纯序、魔法护甲双负无优势窗口);⑧3c=每型独立路线;⑨4a=前缓后陡(只锁方向);⑩**4a-1 撤回**——"曲线×定价=又贵又弱"结论无依据,不落方向性判断,只留"两条旋钮同批标定"程序句;⑪4b=锻造内自闭环;⑫4b-1=**并联双通道**(练满前一档 OR 一次性解锁价,互不影响);⑬5b=纯钥石(用户注:后续若要区分再重构,不预先建面);⑭5c=零材料;⑮**6 推翻**——满级特效**本期不做**,只留扩展位(不设计清单/不定值/不实装/不开参数位/存档不设特效域),七条候选池退回过程稿 §八;⑯8a=工作间**两区定名 + 路线行名**(区=武器锻造区/护甲锻造区;行=长剑锻造·长枪锻造·法杖锻造、轻甲锻造·重甲锻造·魔法护甲锻造,第一件武器显示名 剑→**长剑**);**并核结用户指出的事实——局内不存在武器/护甲提升**:商店货架三行"攻击锻升/生命锻升/护甲锻升"实为奇物「属性值提升」三轴的货架前台标签(`shop.tres` pool_shelf kind_id → `adventure.tres` CURIO_KINDS),与锻造无关,是否去"锻"字归实装批呈现面。连带:设计目的节能力台阶收缩为新武器/新甲解锁;实装边界重编号(特效条目改"本期不实装"、新增敌方攻击类型填值条);「待裁决清单」换代为「裁决结果清单(17 裁点全表)」+新增「工作间内容清单(实装批需求卡片输入)」两件交付。**同日五点澄清(不升版本)**:①2a 用户确认无异议——按**统一伤害轴**走(删三分法);②2b 连带确认:只有魔法护甲一型,**「魔法甲」系笔误**而非别名,registry 不登记别名、第四甲型议题彻底消解;③3b 的连带后果**不在本批考虑**——用户裁定其为**后续开发改造的前置信息**(敌方攻击差异化与魔法护甲正当性归后续批,本批只按统一伤害轴落结构与字段);④**8a 的 Y 层**(路线行名)定案="件名 + 锻造",第一件武器显示名 剑 → **长剑**;⑤**用户指出局内不存在武器提升——属实**:货架三行"锻升"是奇物「属性值提升」三轴(`shop.tres` pool_shelf 的 kind_id 指向 `adventure.tres` CURIO_KINDS)的货架前台标签,进冒险加算区、冒险结束清零,不是武器也不是护甲;**⑥同日 C/D 两项改名裁决**——C:货架三行「X锻升」→「**X祝福**」(攻击祝福 / 生命祝福 / 护甲祝福,后缀 = 用户选定,D&D 参照为 Blessing),机制分类名「属性值提升」不动、只改玩家向显示名,执行归独立改名小批(06 在册,本会话按禁动 game/ 纪律不代执行);D:棋盘格 defense 正向行与 `ac_up` 状态的同名次 **护甲强化** → **盾牌加护**(用户提案,理由=它是临时叠层状态而非护甲本体;附带约定「加护 = AC 判定层,护盾 = 保险丝那种吸收层,两者不得混用」),同样归改名小批——**注:D 改名连带 `smoke_all.gd:1199` 一条硬编码断言,必须同步改,否则冒烟红**。开工门(17 裁点清零)已满足 |
|
||||
| v0.4 | 2026-10-11 | **A 组定案落文(锻造工坊裁决会话,用户逐裁)**:①承载换代——营地四柜台并排(树淬炼/锻造工坊/秘宝匣/奖励格图鉴),攻防独立柜台、工作间内武器/护甲两区并列零顺序门槛、宽度不足滚动条兜底、程序占位视觉终稿归 HUD 营地批(A②A③);②生命档移除——生命强化唯一入口=树脊柱生命线,本工作间纯攻防(A①;实装边界①同步);③**攻防所有权切分**——攻击唯一入口=武器路线、AC 唯一入口=甲路线,树脊柱砍攻击/护甲两线、树零攻防来源(红线;树侧 29→21 落文归天赋树会话交接批);④树侧钥匙改无前置直接可点亮(原等级阈值前置随两线砍除作废);⑤注入衔接落文——锻造路线加值=当前武器攻击加值+当前甲 AC 加值,只按当前选中生效;⑥死条件 magic_vs_magic 复活案作废(D 组核结:魔网织者在素材库表二退役名单;2c 结案);⑦「道具工坊」退役词清除(承载节随 A② 改写一并换代为秘宝匣);⑧存档域改旧档废弃口径(开发阶段无迁移)。B 组 15 裁点挂起待用户发令 |
|
||||
| v0.6 | 2026-10-12 | **完备性检查批(grilling 全库核查——现役代码事实/关联文档/引用一致性三路,用户逐条裁)**:①**现役事实基线换代**——`meta.tres` forge_products 行族已随迭代 21 T5 攻防所有权切分整体退役(行族/访问器/购买面三处退役登记),「改造现役行(吸收)」语义全线订正为「新建行族」(现役代码事实表/三件武器表/工作间清单/实装边界 1 五处);定价「现役参数沿用」改「历史考古参数(20 钥石/150% 公比,`meta.tres:82-84` 退役批注)、实装投值归 M4 从零标定」;②**两根类型轴所有权移交(用户裁)**——`attack_type`/`armor_type` 默认值归锻造工坊配置常驻持有、hero.tres 静态表两轴删除;选中态写存档域+冒险开始参数面注入(订正原「写 hero.tres 休眠轴」口径——与现役「表运行期只读」纪律 `meta_progression.gd:12-13/119` 及本文存档域条目双重冲突);默认值与柜台解锁状态解耦(未解锁=无交互入口但配置常驻可读,不存在读不到默认值的窗口);③**两处无依据表述订正删除**——「与秘宝解锁的混合制同构」(「同构」非本项目概念;与秘宝仅共享钥石单币+直购/条件解锁成分语义,通道结构不同:件级单通道分派 vs 同路线双通道并联)、「选长枪激活穿刺系专长的价值」(现役专长均为跨攻击类型通用件、不按 attack_type 分系,`feats.tres` 29 行实证,该表述无现役对应物);④货架坐标订正(CURIO_KINDS 实为 `adventure_table.gd:29` schema 常量、feat_ticket 为显式豁免种 5/6 命中)+ 改名小批执行态回写(已合入 master `0c93a71`/`0144f60`);⑤存档域预登记存档序列化.md(用户令:验收文档现在做、不等实装批);⑥联动落文:元进度.md「跨局注入」节补四层叠加公式(v1.4)、术语表.md 新增锻造工坊节、entities.yaml terminology 补词条+新建锻造工坊条目。**不在本批范围(呈报归属,谁的问题谁改)**:registry ac_up 显示名失同步(归改名小批 D 项)、「魔法甲」四处残留(敌人系统/美术三档,归 3a 裁执行面)、registry meta_table 条目 forge_products 滞后(归元进度线)、天赋树.md 状态行滞后、06 提案条标题旧名 |
|
||||
| —— | 2026-10-12 | **同日续裁写入文档(不升版本)**:①**编入迭代 23**(用户令——roadmap 主线序列 + 06 实装批条状态同步;M4 数值批顺延迭代 24+);②实装边界 6 订正——敌方 attack_type 为敌方定义数据(enemy.tres/skills.tres 行级,与敌种名字/血量同批同时读写、无独立时序),「两批排期协商」句删除(用户 D 裁:时序问题不存在;本批只按 3b 裁落结构面);③存档域「合并评估」语境订正——forge_routes 独立成域已预登记,树批入库后无共域冲突(用户 C 裁:非裁点,06 实装批条同句订正);④A 项(未解锁时默认值读取路径)确认口径=配置表常驻持有、解锁只门控交互不门控读取,v0.6 正文已落此文;⑤**等级语义裁(Q1)**——初始持有路线 0 级起步:未解锁/未锻造=0 加值(裸体态,类型=普通/轻甲);解锁并锻造第一级=「获得装备」=1 级=首个 +1 加值;逐级递进。正文「1 到上限」为量级描述(1-5 级),0=未练合法态;⑥**provisional 值落卡(Q2)**——需求卡片 T1 锚表:cap 5/武器与护甲每级增量统一 +1(累计 1/2/3/4/5;provisional 线性起步,4a 前缓后陡为终值形状方向归 M4)/甲型基础 AC 10/12/9(现役结构值)/价格 20×150%^n(20/30/45/67/101)/解锁价 200(中段三级 213 的九折);provisional 归代拍板沿锚投值、终值 M4 |
|
||||
| v0.9 | 2026-10-15 | **简明技术中文用语规范批(用户令):词面修正 2 处**——「落文」→「写入」1 处(裁决结果清单表头「落文处」→「写入处」);「收口」→「完成裁决」1 处(4b-1 行备注「原正文"或"字歧义收口」)。另按失同步核对修正文头状态行:版本注 v0.7 → v0.8(v0.8 迭代 21 反哺④残余落文行已入库而状态行未随批更替,本批补齐,事实零变更)。机制与数值零改动 |
|
||||
+65
-62
@@ -2,7 +2,7 @@
|
||||
|
||||
> **Status**: Complete — /ux-review 修订落稿(2026-09-12,blocking 7 项已修,待复检)
|
||||
> **Author**: user + ux-designer
|
||||
> **Last Updated**: 2026-09-27(UX 文档欠账处置批:player-journey 不建、accessibility 改指 HUD框架 基线、node-reward 挂秘宝内容重定批、导航残留修正——见文末修订记录)
|
||||
> **Last Updated**: 2026-10-15(简明技术中文用语规范批:词面修正 30 处——见文末修订记录)
|
||||
> **Platform Target**: PC (Steam)——Keyboard/Mouse 主(全部操作纯鼠标可完成)、Gamepad Partial 非 MVP、Touch None(同 technical-preferences)
|
||||
> **上游修订依赖**: 弃图刷新挖掘期受理已随布局决策 4 落稿上游(2026-09-12:行动经济 Active 受理 + 每轮上限 2 次、排雷玩法 Active·仅刷新路径装板、战斗结算 `refresh_board` 编排 + 恒 same_board、registry `rap_rules` 同步——见 OQ11)
|
||||
> **Template**: UX Spec
|
||||
@@ -48,9 +48,9 @@
|
||||
战斗屏是**上下文相关屏**(仅由战斗节点进入),非顶层常驻。关卡内节点进度常驻关卡画面(独立屏的常驻枢纽形态,节点态即进度呈现:已过暗金、当前金、候选通道亮金、Boss 紫赤描边),战斗屏零进度承载——战斗结束返回关卡画面,玩家始终知道自己身处图中第几环。
|
||||
|
||||
- 上游屏:关卡画面(选路枢纽,屏级 spec:[level-map.md](level-map.md)——2026-09-27 建档;分支节点图形态,切片第一关为单链特例)
|
||||
- 下游屏:关卡画面(选路枢纽,spec:[level-map.md](level-map.md))——战斗胜利后返回选路;落地奖励/恢复节点时由关卡画面域开节点覆盖层(NodeOverlay,恢复点全量服务、奖励点=三选一构筑点)确认兑付——节点奖励屏 spec 已出生:[node-reward.md](node-reward.md) v1.0(2026-09-29 迭代 7 T5 随批出生,06 条目兑现;2026-09-27「不立独立 spec」拍板随之被取代)
|
||||
- 下游屏:关卡画面(选路枢纽,spec:[level-map.md](level-map.md))——战斗胜利后返回选路;落地奖励/恢复节点时由关卡画面域开节点覆盖层(NodeOverlay,恢复点全量服务、奖励点=三选一构筑点)确认兑付——节点奖励屏 spec 已出生:[node-reward.md](node-reward.md) v1.0(2026-09-29 迭代 7 T5 顺带出生,06 条目兑现;2026-09-27「不立独立 spec」拍板随之被取代)
|
||||
- 下游屏:关卡结算([level-clear.md](level-clear.md),末节点 Boss 胜利——2026-09-27 建档)
|
||||
- 平行屏:结算明细回看 overlay(本屏内域屏)、图例面板 overlay(本屏内域屏)
|
||||
- 平行屏:图例面板 overlay(本屏内域屏);~~结算明细回看 overlay~~(2026-10-04 P-C7 退役——冒险中回看归「生涯」)
|
||||
|
||||
---
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
| Exit Destination | Trigger | Notes |
|
||||
|---|---|---|
|
||||
| 关卡画面(选路枢纽) | 敌方全灭(战斗结算判定段 verdict=win)且非末节点 | 不可逆:battle_over 已发生,RAP 清零;落地奖励/恢复节点时开节点覆盖层确认(NodeOverlay,关卡画面域) |
|
||||
| 关卡结算 | Boss 战胜利 → level_clear(spec:[level-clear.md](level-clear.md)) | 不可逆:关卡收束清库义务载体 = 秘宝背包(库存已随迭代 7 落地——C 区四槽+关卡域库存;清库反馈呈现待批) |
|
||||
| 关卡结算 | Boss 战胜利 → level_clear(spec:[level-clear.md](level-clear.md)) | 不可逆:~~关卡收束清库义务载体 = 秘宝背包~~(秘宝过渡形态〔关卡域库存/局内两步使用〕已随迭代 11 第①批退役——现行形态 = 营地同调装配、整局冒险生效,无关卡域清库面〔旧关卡域库存 treasure_inventory 为投放渠道全退役后恒空的机械惰性承载,拆线归实装批——见战斗结算「轮次生命周期」节注〕,见秘宝.md) |
|
||||
| 冒险终结 | 主角 HP=0(verdict=lose) | 不可逆:Roguelike 死亡重开(art-bible §2.5 温柔惋惜调性) |
|
||||
| 无中途退出 | — | MVP 不设战斗内放弃/暂停菜单(回合制无时间压力;如需暂停留 Playtest 诊断按钮,调试用) |
|
||||
|
||||
@@ -86,13 +86,13 @@
|
||||
4. **规划面**(边缘注视,常读):攻击值与修正来源(C 区数据框)、敌人意图徽标与顺位(B 区站桩);HP 与状态效果由单位本体(B 区站桩)唯一承载——数据框不重复展示
|
||||
5. **进度语境**:轮次/阶段指示、图例入口(关卡节点进度常驻关卡画面,战斗屏不承载——见 Navigation Position)
|
||||
|
||||
依据:挖掘期玩家视线锚定棋盘(art-bible §2.1"视线始终被数字牵引");结算期视线转向战斗画面区(§2.2"兑现光带逐行横扫")。规划信息必须常读但不得抢焦——这正是用户布局图三分下栏的合理性:**动作区居中,规划区两翼**。
|
||||
依据:挖掘期玩家视线锚定棋盘(art-bible §2.1"视线始终被数字牵引");结算期视线转向战斗画面区(§2.2"兑现光带逐行横扫")。规划信息必须常读但禁止抢焦——这正是用户布局图三分下栏的合理性:**动作区居中,规划区两翼**。
|
||||
|
||||
### 信息归属原则与分区唯一展示面(2026-09-26 用户拍板)
|
||||
|
||||
每个区域准入一条信息的判据只有两条,缺一不进:
|
||||
|
||||
1. **循环口径原则**——战斗屏只展示**战斗小循环(单场战斗)内被消费、影响当下决策**的数据。中循环(关卡内跨战斗)与大循环(永久/营地)资源不得入侵战斗屏:它们不改变战斗内任何决策,展示只产生噪音。
|
||||
1. **循环口径原则**——战斗屏只展示**战斗小循环(单场战斗)内被消费、影响当下决策**的数据。中循环(关卡内跨战斗)与大循环(永久/营地)资源禁止入侵战斗屏:它们不改变战斗内任何决策,展示只产生噪音。
|
||||
2. **单一展示面原则**——同一信息全屏只允许一个展示面。单位本体(站桩)已承载的信息(HP、立绘、状态效果),数据框不再重复展示;资源数字必须贴着它的唯一消费口(就近原则)。
|
||||
|
||||
按此两原则推导的分区信息归属树(每片叶子 = 该信息的唯一展示面):
|
||||
@@ -104,8 +104,8 @@
|
||||
- **C 区角色信息(规划数据框)**
|
||||
- 攻击值 + 修正来源角标(战斗在消费、且站桩上无展示)
|
||||
- 护甲 AC(2026-09-26 二轮拍板补入——我方 AC 的唯一展示面;掷点判定轴,受击侧可读性)
|
||||
- 秘宝槽(**已实装**:四槽两步交互,详见 [node-reward.md](node-reward.md)——随身战斗用道具的唯一展示面)
|
||||
- 奇物列表(**预留**——锻造/大奖励/关卡奖励节点获得的属性提升;与战斗内状态效果分区呈现,防「战斗结束被清」误读)
|
||||
- 秘宝槽(四槽壳在役、空槽占位——局内两步使用与关卡域库存随秘宝过渡形态退役〔迭代 11 第①批〕;现行秘宝 = 营地同调装配件,本区展示内容归装配面批次重接)
|
||||
- 奇物列表(**已实装**——现行标题「特性」,迭代 9 卡⑫ 接线 + 迭代 12 呈现补齐;锻造/大奖励/关卡奖励节点获得的属性提升;与战斗内状态效果分区呈现,防「战斗结束被清」误读。**2026-10-12 奇物呈现修复批整改落地**:原逐流派聚合行退役改逐件行「件名 ×N」,零内部分类字样上屏——原 06「内部分类禁写入玩家可见面」条顺带完成移除)
|
||||
- **D 区扫雷图 · AP 条**
|
||||
- AP 点阵 + 停手按钮(现行)
|
||||
- **RAP 读数(点阵+数字)**——自 C 区迁入,置于弃图刷新按钮旁(2026-09-26 拍板:RAP 唯一消费口 = 弃图刷新,资源数字贴消费按钮)
|
||||
@@ -115,26 +115,26 @@
|
||||
|
||||
### Layout Zones
|
||||
|
||||
采用用户拍板的布局图(2026-09-12),按 1280×800 基座(ADR-0002)落尺寸:
|
||||
采用用户拍板的布局图(2026-09-12),按 1280×800 基座落尺寸:
|
||||
|
||||
| 区 | 位置与尺寸 | 内容 |
|
||||
|---|---|---|
|
||||
| **B 战斗画面** | 全宽 × 270px(2026-10-06 方案二拍板:演出 ≈1/3 屏,原 252) | 主角站桩立绘(左)+ 兑现演出区(中)+ 敌人站桩立绘 ×1–3(右)——**全站桩形态(2026-09-20 用户拍板,敌人卡形态待办裁决收口):主角与敌人均为无框立绘+底座,零卡片**;主角与敌人站桩 = **HP 与状态效果的唯一展示面(2026-09-26 信息归属拍板)**;底部结算明细带(24px 摘要 / 结算期 84px 实时流);顶部中央轮次·阶段指示 |
|
||||
| **C 角色信息** | 左下 240px × 530px(2026-10-06 方案二:548→530) | 攻击值(含修正显示)、护甲 AC;秘宝槽(预留)、奇物列表(预留)——HP 条/RAP 池/状态效果槽/立绘占位/钱包行退役(2026-09-26 信息归属拍板:HP 与状态唯一展示面 = B 区站桩;RAP 迁 D 区 AP 条;GP/钥石迁出战斗屏) |
|
||||
| **B 战斗画面** | 全宽 × 270px(2026-10-06 方案二拍板:演出 ≈1/3 屏,原 252) | 主角站桩立绘(左)+ 兑现演出区(中)+ 敌人站桩立绘 ×1–3(右)——**全站桩形态(2026-09-20 用户拍板,敌人卡形态待办裁决完成):主角与敌人均为无框立绘+底座,零卡片**;主角与敌人站桩 = **HP 与状态效果的唯一展示面(2026-09-26 信息归属拍板)**;底部结算明细带(24px 摘要 / 结算期 84px 实时流);顶部中央轮次·阶段指示 |
|
||||
| **C 角色信息** | 左下 240px × 530px(2026-10-06 方案二:548→530) | 攻击值(含修正显示)、护甲 AC;秘宝槽、奇物列表(现行标题「特性」)——HP 条/RAP 池/状态效果槽/立绘占位/钱包行退役(2026-09-26 信息归属拍板:HP 与状态唯一展示面 = B 区站桩;RAP 迁 D 区 AP 条;GP/钥石迁出战斗屏) |
|
||||
| **D 扫雷图** | 中下 ~1036px × 530px(2026-10-06 方案二:548→530——压缩全部由面板空档吸收,**棋盘 438×438 原尺寸不缩、格子不变**;原右下面板删除后横向加宽,吸收其宽度) | 顶部 AP 条(44px:左——AP 点阵 + 停手按钮;中——RAP 点阵+数字〔自 C 区迁入,贴弃图刷新按钮,2026-09-26 拍板〕;右——图例按钮 + 弃图刷新按钮〔雷图右上角,2026-09-12 拍板〕);棋盘主体(居中,格 36–45px 见方);toast 槽(上缘内侧) |
|
||||
|
||||
> 布局为 B/C/D 三区——关卡进度条不在战斗屏(节点链进度常驻关卡画面,见 Navigation Position;字母不重编沿用 B/C/D)。
|
||||
|
||||
> 呈现术语注记(2026-09-25):插旗动作的玩家可见呈现名 = **封印**(registry terminology;旗 = 封印印记,art-bible §3.2)——机制与键名不变;封印特效未实装,现行占位 = 封印黑「旗」字形(board_view 程序化占位,贴图在位=字形退役;旗朱→封印紫 2026-09-26→封印黑 2026-09-28 用户拍板)。
|
||||
|
||||
> 可挖域微光画法定稿(2026-09-25 用户拍板):**接触带·空间侧 + 蓝族**——光画英雄格周界接触面(正交邻墙=整边,斜向邻墙=角点+两半边),详见 art-bible §3.2;现行墙格整框绿相呼吸为待退役占位,实现切换归表现批(探针断言随批)。
|
||||
> 可挖域微光画法定稿(2026-09-25 用户拍板):**接触带·空间侧 + 蓝族**——光画英雄格周界接触面(正交邻墙=整边,斜向邻墙=角点+两半边),详见 art-bible §3.2;现行墙格整框绿相呼吸为待退役占位,实现切换归表现批(探针断言顺带)。
|
||||
|
||||
**布局决策 1(本 spec 最大决策,用户拍板)**:**常驻双舞台分屏**——战斗画面与扫雷图同屏常驻,挖掘期敌人待机可见,结算期不切场景。
|
||||
- 备选(已否决):Peglin 式"结算时才切入独立战斗场景"——切换打断推理心流,且资产管线成本翻倍
|
||||
- **对战斗表现双舞台陷阱的输入**:game-concept 登记的"战斗发生在棋盘上还是独立场景"悬念,由本布局裁决为**第三形态:同屏双舞台**。战斗表现定稿前的"战斗表现美术测试"(一屏样张)应按此布局出样
|
||||
- 敌人不占格(敌人系统已锁)与本布局自洽:敌人实体只存在于 B 区,棋盘永远只有数字/旗/小人/变异
|
||||
|
||||
**棋盘格尺寸公式**:`cell = floor(min(D宽−padding, D高−AP条−padding) / N)`,N∈{10,12}(棋盘生成 D1–D4 行)。1280×800 下 12×12 → 36px,10×10 → 45px。数字字号 ≥ 格高的 50%,像素字体整数倍缩放(canvas_items stretch 保证清晰,ADR-0002)。
|
||||
**棋盘格尺寸公式**:`cell = floor(min(D宽−padding, D高−AP条−padding) / N)`,N∈{10,12,13,14}(棋盘生成 D1–D4 行;13×13/14×14 随第三关内容批扩板)。1280×800 下 12×12 → 36px,10×10 → 45px(格边长三方取值不一致已登记 06,扩板定档时统一处置)。数字字号 ≥ 格高的 50%,像素字体整数倍缩放(canvas_items stretch 保证清晰)。
|
||||
|
||||
### Component Inventory
|
||||
|
||||
@@ -144,10 +144,10 @@
|
||||
| B | 敌人站桩立绘 ×1–3 | 站桩(无框立绘+落影) | 血条+顺位徽标落底盘(同主角排式,2026-10-06 方案二;**大体档〔显示 >150px 级:drider/duergar_king〕允许向上溢出盒顶 N px(N 由实装批 C0 实算,与背景/光柱无关——现行溢出区为临时光柱氛围层,正式舞台背景插画到位后该层退役,判定不变),血条仍落底**)、状态小图标挂血条正下方(敌方 side-wide 增益各立绘同值呈现——蓄力/硬化/削弱/暴走/警觉;伏击层数通道随 2026-09-20 八型批退役——数据源 = 战斗结算流水经增益状态投影,敌人系统×4④;2026-09-16 敌人技能池批改型:行为环点拆除〔proposal §2.4〕,意图占位 = 本拍摇定结果的动画占位——普通攻击零表示 / 特殊技类型级提示,**意图徽标悬浮头顶上方,探顶档压胸**,敌方增益〔蓄力/硬化〕入状态图标行);死亡灰化加碎裂退场直接演在立绘上(2026-09-20 全站桩拍板,敌人卡退役);血条下名字行 = 纯名字 + 护甲类型图标(形状+色相双通道,与状态图标同行共存,状态空时为纯名字;原「底座下」随石板退位改落底排),AC 数值不展示——2026-09-26 终裁(用户口径:HP 信息已足够,攻防数值不直接写上;护甲类型图标保留克制对策可读性——类型可读、数值隐藏) | 只读 | 新建 |
|
||||
| B | 轮次·阶段指示 | 标签 | "第 N 轮 · 挖掘中/结算中"(终局定格「战斗结束」;Boss 变体附 Boss 名) | 只读 | 新建 |
|
||||
| B | 结算明细带 | 滚动列表 | 结算期逐行流水([战斗结算](../systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋) 9 类行协议);挖掘期收起为上轮摘要 1 行 | 点击展开明细回看 overlay(2026-10-04 P-C7 退役——带保留单行摘要,回看归「生涯」) | battle_log_view.gd 改造 |
|
||||
| B | 结算明细回看 | 模态 overlay | 完整流水逐行(现行 9 类行协议;未生效类行聚合计数) | 关闭 | battle_log_view.gd 改造 |
|
||||
| B | ~~结算明细回看~~(已退役) | —— | 2026-10-04 P-C7 裁:冒险中回看退役归「生涯」——settlement_review_overlay.gd 为未接线遗留件(06 登记) | —— | —— |
|
||||
| C | 攻击数据框 | 直角细线数据框 | 攻击值 + 修正来源角标 + 护甲 AC(AC 二轮拍板 2026-09-26 补入——我方 AC 唯一展示面;原「HP/攻击/RAP 显示」——HP 与 RAP 随信息归属拍板迁出本组件) | 只读 | HUDView 拆分 |
|
||||
| C | 秘宝槽(已实装:四槽两步交互,详见 [node-reward.md](node-reward.md)) | 图标槽 ×4 | 随身战斗用道具的唯一展示面;库存已随迭代 7 落地(C 区四槽+关卡域库存),清库反馈呈现待批 | 悬停 tooltip(道具语义) | 新建(随秘宝批,已落地) |
|
||||
| C | 奇物列表(预留) | 列表/图标行 | 锻造/大奖励/关卡奖励节点获得的属性提升——中循环数据,因改变战斗数学且无其他展示面准入战斗屏;与战斗内状态效果(B 区站桩)分区,防「战斗结束被清」误读 | 只读 | 新建 |
|
||||
| C | 秘宝槽 | 图标槽 ×4 | 四槽壳在役、空槽占位(标题「秘宝」,悬停「秘宝槽(空)」);局内两步使用与关卡域库存随秘宝过渡形态退役——现行秘宝 = 营地同调装配件(秘宝.md),本区展示重接归装配面批次 | 悬停 tooltip | hero_info_panel_view.gd |
|
||||
| C | 奇物列表(现行标题「特性」) | 列表/图标行 | 已实装(迭代 9 卡⑫ 接线、迭代 12 呈现补齐;2026-10-12 呈现修复批整改——逐件行「件名 ×N」,零内部分类字样);锻造/大奖励/关卡奖励节点获得的属性提升——中循环数据,因改变战斗数学且无其他展示面准入战斗屏;与战斗内状态效果(B 区站桩)分区,防「战斗结束被清」误读 | 只读 | hero_info_panel_view.gd |
|
||||
| D | AP 条 | 点阵 + 按钮组 | 本轮 AP 点阵、停手按钮(左)、**RAP 点阵+数字(自 C 区迁入 2026-09-26——RAP 唯一消费口 = 弃图刷新,资源数字贴消费按钮;RAP 清零可见反馈〔行动经济〕载体随迁)**、弃图刷新按钮(右端·雷图右上角;RAP−8 · 本轮剩 N 次——上限 2 次已随行动经济 2026-09-12 修订生效) | 点击提交意图 | HUDView 拆分 |
|
||||
| D | BoardView | 网格 | 棋盘全部格态 + 小人 + 旗 + 变异纹带 + 奖励身份 icon(已开格;绘制优先级 数字>小人>旗>奖励徽章>变异纹带>底色——徽章不进数字区,样张验收项) | 左/右键意图提交 | ✅ board_view.gd 迁移 |
|
||||
| D | 悬停预承诺光标 | 光标态 | 移动/挖/旗三语义光标 + 目标格边框高亮 | 自动 | 新建(排雷玩法×6③) |
|
||||
@@ -155,8 +155,8 @@
|
||||
| D | 移动路径预览 | 路径高亮 | 悬停已开格显示 BFS 路径(合法性指示) | 自动 | 新建(排雷玩法×6⑤,裁决见下) |
|
||||
| D | toast 槽 | 非模态提示 | 拒绝原因(双源)、voided、满层溢出、chord 提示、零合法板告知 | 自动消退 2.5s | 新建 |
|
||||
| D | 图例按钮 + 面板 | 按钮+模态 overlay | 格态/变异语义图例 | 开/关 | 新建 |
|
||||
| 全屏 | 胜利/失败 overlay | 模态 | 金蜡封/暮蓝收旗 + 判定行 + 明细回看入口 | 继续/下一节点 | battle_end_overlay.gd |
|
||||
| 调试 | TunePanel | 调试面板 | atk%/hp% 滑条 + 批量模拟(正式侧归元进度,切片调试入口保留) | 调试 | ✅ tune_panel.gd 保留 |
|
||||
| 全屏 | 胜利/失败 overlay | 模态 | 金蜡封/暮蓝收旗 + 判定行(明细回看入口已随 P-C7 退役——回看归「生涯」) | 继续/下一节点 | battle_end_overlay.gd |
|
||||
| 调试 | 调试浮窗 | 调试面板 | 种子/数值调整/批量模拟/两层调试入口(DS_DEBUG=1 门控;TunePanel 已随迭代 15 卡①吸收退役) | 调试 | debug_overlay.gd |
|
||||
|
||||
**布局决策 2 —(已删除,编号留空)**:原「窗口形态 = 右栏原位激活」决策随可选类道具整体下线(2026-09-15 格面资源批)。编号留空,免布局决策 3/4 的既有交叉引用失锚。
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
- **上游修订(2026-09-12 已落稿,OQ11)**:① 行动经济 `request_refresh` Active 相位受理 + 每轮上限 2 次(Waiting 代理退役)② 排雷玩法装板受理域增 Active·仅刷新路径 ③ 编排 owner = **战斗结算 `refresh_board`**(行动经济扣费 → 排雷玩法 retire → 棋盘生成 generate → 排雷玩法 install → 地图战斗资源 roll_board 恰一次;无结算段、无 round_end——战斗结算编排唯一性原则保持)④ 旧板旗随旧板**作废**(零兑付、旗 AP 不返还——排雷玩法 EC11 全量重置承载;确认微交互须显式提示)。**经济预警**:当场刷新无结算发生,原「敌方时间税」自惩失效——行动经济 OQ3 弃图率/刷新率预警阈值联动复核。
|
||||
- 备选(已否决):结算期决策提示(Waiting 内联)——结算期不做刷新决策(用户拍板);挖掘期预承诺 stop+reroll 复合——决策即终轮,不符「换图继续挖」语义。
|
||||
|
||||
**敌人意图线索映射目录(敌人系统×4① 成文占位,2026-09-12;2026-09-16 敌人技能池批改型注记:行为环三态〔攻击/蓄力/重击〕预告随行为环退役——现行数据面 = 敌人系统三档可见性规格〔普攻零表示 / 特殊技类型级动画〔攻击系/增益系两型〕/ 暴击掷点层无前置〕,池与权重不公开;下表 grub/ambusher 三态清单留档作废,终稿资产目录随战斗表现样张批重立;**命名双轨收口注记 2026-10-06**:grub/ambusher 两键本身已随敌人系统八型批退役——现行键集 = 八敌 registry〔goblin/bugbear/ogre_chief/giant_spider/drider/duergar/hook_horror/duergar_king〕,本表键名仅为历史留痕、不得作为现行 enemy_id 引用)**:
|
||||
**敌人意图线索映射目录(敌人系统×4① 成文占位,2026-09-12;2026-09-16 敌人技能池批改型注记:行为环三态〔攻击/蓄力/重击〕预告随行为环退役——现行数据面 = 敌人系统三档可见性规格〔普攻零表示 / 特殊技类型级动画〔攻击系/增益系两型〕/ 暴击掷点层无前置〕,池与权重不公开;下表 grub/ambusher 三态清单留档作废,终稿资产目录随战斗表现样张批重立;**命名双轨完成注记 2026-10-06**:grub/ambusher 两键本身已随敌人系统八型批退役——现行键集 = 八敌 registry〔goblin/bugbear/ogre_chief/giant_spider/drider/duergar/hook_horror/duergar_king〕,本表键名仅为历史留痕、禁止作为现行 enemy_id 引用)**:
|
||||
|
||||
| enemy_id | 视觉状态(意图线索) | 强度档位编码 | 环长编码 |
|
||||
|---|---|---|---|
|
||||
@@ -182,7 +182,7 @@
|
||||
|
||||
> **2026-09-26 信息归属拍板**:C 区 HP/RAP/状态槽/立绘占位/钱包行退役——HP 与状态唯一展示面 = B 区站桩,RAP 迁 D 区 AP 条贴弃图刷新按钮,GP/钥石迁出战斗屏;C 区改攻击数据框+两预留区。下方线框图已随拍板重绘;旧线框留档于 git 历史。
|
||||
> **2026-09-23 停点前移批**:A 区关卡进度条退役,下方线框图为 B/C/D 三区(28px 纵向空间划归 C/D 底行 520 → 548;关卡内节点进度常驻关卡画面,战斗屏零进度承载);旧四区线框留档于 git 历史。
|
||||
> **2026-09-20 全站桩形态改版**:敌人卡形态裁决收口(卡片式退役、主角与敌人均站桩——无框立绘+底座、状态小图标挂血条下),下方线框图 B 区已随裁决重绘;旧卡片式线框留档于 git 历史。
|
||||
> **2026-09-20 全站桩形态改版**:敌人卡形态裁决完成(卡片式退役、主角与敌人均站桩——无框立绘+底座、状态小图标挂血条下),下方线框图 B 区已随裁决重绘;旧卡片式线框留档于 git 历史。
|
||||
|
||||
```
|
||||
1280 × 800 ────────────────────────────────────────────────────────────────────
|
||||
@@ -221,12 +221,12 @@
|
||||
| **清图瞬间** | 全部安全格开完 | 金粒喷泉 + 彩纸 3–5s 即收(§2.3);清图奖励行强调呈现(H2,地图战斗资源×④——金框高亮行);随后换新图 install |
|
||||
| **完美排雷高光** | 战斗结算高光判定(全图标中/零误标类) | 全屏喝彩级反馈(§2.2 最高档):金光带加倍扫射 + 「完美排雷 ×2」横幅——P2 爆发兑现节点(创意风险 #2 落点) |
|
||||
| **标中旗高光** | flag_judged{hit=true} | 该旗化暴击弹道加重 + 明细行金框——chord 缺席的即时兑现补偿(创意风险 #3 落点) |
|
||||
| **敌人死亡呈现** | 敌 hp=0(流水行击杀标记) | 该敌人立绘血条归零 → 立绘灰化 + 碎裂退场(**禁瞬消**——敌人系统资产下限「死亡瞬间须可辨识、不得直接消失」,同等 blocking);战斗段短路的重击被掐灭不产行动明细行,由行序可推断(战斗结算);动画密度归战斗表现,呈现语义在本 spec |
|
||||
| **胜利终局** | verdict=win | 金蜡封落于**扫雷图区中央**(§2.4 字面锚定),全屏暖白金 overlay;判定行 + 「下一节点」;明细回看入口;状态图标行全清可见反馈(增益状态×4④——B 区主角站桩图标逐枚化光收回 + 微文案「状态随战斗结束消散」,防「我的 buff 哪去了」误读) |
|
||||
| **失败终局** | verdict=lose(hero hp=0,战斗段短路) | 明度不变的暮蓝 #5A6C8C 氛围 overlay(全作唯一暮蓝档);小人坐砖掸灰、插过的旗逐面化光点收回(§2.5);判定行 + 明细回看(学习用途)+「返回」;状态图标行全清可见反馈(增益状态×4④,同胜利) |
|
||||
| **敌人死亡呈现** | 敌 hp=0(流水行击杀标记) | 该敌人立绘血条归零 → 立绘灰化 + 碎裂退场(**禁瞬消**——敌人系统资产下限「死亡瞬间须可辨识、禁止直接消失」,同等 blocking);战斗段短路的重击被掐灭不产行动明细行,由行序可推断(战斗结算);动画密度归战斗表现,呈现语义在本 spec |
|
||||
| **胜利终局** | verdict=win | 金蜡封落于**扫雷图区中央**(§2.4 字面锚定),全屏暖白金 overlay;判定行 + 「下一节点」;明细回看入口;状态图标行全清可见反馈(增益状态×4④——B 区主角站桩图标逐枚化光收回 + 微文案「状态随战斗结束消散」,防「我的增益哪去了」误读) |
|
||||
| **失败终局** | verdict=lose(hero hp=0,战斗段短路) | 明度不变的暮蓝 #5A6C8C 氛围 overlay(全作唯一暮蓝档);小人坐砖掸灰、插过的旗逐面化光点收回(§2.5);判定行 +「返回」(明细回看已随 P-C7 退役——回看归「生涯」);状态图标行全清可见反馈(增益状态×4④,同胜利) |
|
||||
| **Boss 遭遇变体** | encounter=boss(遗迹守卫) | 战斗开始一次性演出:紫赤 #8F2F6A 影子爬过棋盘(§2.6);敌人立绘体量最大+锐角剪影;阶段指示附 Boss 名 |
|
||||
| **空态:无状态效果** | 增益状态 EC12 | 状态小图标行隐藏(B 区主角站桩血条下图标行零图标时不占位;落底排〔2026-10-06 方案二〕后该行退化为名字行——主角无名字行则整行空置);原「C 区状态槽隐藏、HP/攻击/RAP 上移补位」裁决随 C 区槽退役(2026-09-26 信息归属拍板)作废;图例面板载空态说明(增益状态×① 成文项) |
|
||||
| **调试变体** | 测试模式 | TunePanel 入口(demo 保留,正式侧元进度退役);Playtest 诊断按钮(卡死转储) |
|
||||
| **调试变体** | 测试模式 | 调试浮窗入口(DS_DEBUG=1 门控——TunePanel 已随迭代 15 卡①退役);Playtest 诊断按钮(卡死转储) |
|
||||
|
||||
**拒绝/作废子态**(排雷玩法×6⑥、行动经济双源——每次拒绝玩家可感知):
|
||||
- 棋盘面拒绝(sub_reason:非相邻/挖旗格等)→ 目标格 危险红 #A8321F 边框闪 + toast 文案(拒绝语义红族——旗朱已退役归封印色〔现行封印黑〕)(图标+文案冗余,色弱清单 #7)
|
||||
@@ -247,7 +247,7 @@
|
||||
| 停手按钮 | 主动结束轮次 | 左键 | 按钮下压 + AP→RAP 飞行数字 | `settle_batch([stop])`(**经排雷玩法批次,不直调行动经济**——单意图帧批次契约) |
|
||||
| 弃图刷新按钮(雷图右上角) | 当轮就地换图继续挖 | 左键 | 确认微交互(RAP−8 代价显式 + 旧板弃置提示);RAP<8 → 资源面拒绝可见(行动经济 EC13) | `request_refresh`(**Active 相位当场换图继续挖**——AP 不重置、本轮剩 N 次扣减;**上游已修订受理——见布局决策 4/OQ11**) |
|
||||
| 图例按钮 | 开图例 | 左键 | 模态 overlay | 恒可开(图例条目恒在) |
|
||||
| 结算明细带 | 展开回看 | 左键 | 明细 overlay | 只读 |
|
||||
| 结算明细带 | ~~展开回看~~(已随 P-C7 退役——带保留单行摘要,回看归「生涯」) | —— | —— | —— |
|
||||
| 状态小图标(B 区站桩) | 悬停 | hover | 状态 tooltip(来源+语义+剩余结算次数) | 只读 |
|
||||
| 胜利 overlay | 下一节点 | 左键 | → 关卡画面(选路枢纽)/ 关卡结算(末节点) | LevelRunner 推进 |
|
||||
| 失败 overlay | 返回 | 左键 | → 存档/营地 | 冒险终结 |
|
||||
@@ -264,7 +264,7 @@
|
||||
|
||||
## Events Fired
|
||||
|
||||
项目无分析系统;本节 = **呈现层订阅的核心信号**(ADR-0001 组合根直连 signal)+ playtest 遥测义务(playtest_logger.gd 已有五类行)。呈现层新遥测(写 playtest JSONL `ux` 行):
|
||||
项目无分析系统;本节 = **呈现层订阅的核心信号**(组合根直连 signal)+ playtest 遥测义务(playtest_logger.gd 已有五类行)。呈现层新遥测(写 playtest JSONL `ux` 行):
|
||||
|
||||
| Player Action | Event Fired | Payload / Data |
|
||||
|---|---|---|
|
||||
@@ -273,7 +273,7 @@
|
||||
| 弃图刷新(挖掘期,非轮出口) | `ux_refresh_attempt` | {result: accepted/rejected_rap/rejected_cap, round_refresh_index: 1..2}——刷新使用(难度曲线与Boss OQ6)与行动经济 OQ3 预警阈值观测;每轮 0–2 次(布局决策 4 cap=2) |
|
||||
| 拒绝/voided | `ux_reject` | {source: board/resource/phase, sub_reason} |
|
||||
| 提示触发/关闭 | `ux_hint_shown` | {hint_id: chord/no_adjacent} |
|
||||
| 呈现订阅(不改核心) | 排雷玩法三事件 / [战斗结算](../systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)步骤流(9 类行协议,含终局判定行) / battle_over / level_clear | 载荷 schema 成文义务见 §Data Requirements——旧版台账 entry 17①(HUD框架硬性要求) |
|
||||
| 呈现订阅(不改核心) | 排雷玩法三事件 / [战斗结算](../systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)步骤流(9 类行协议,含终局判定行) / battle_over / level_clear | 载荷 schema 成文义务见 §Data Requirements——旧版状态记录 entry 17①(HUD框架硬性要求) |
|
||||
|
||||
**持久状态写入**全部经组合根唯一路径(settle_batch / request_refresh / runner 推进)——UI 层禁直调核心写(架构七原则"依赖单向组合根")。
|
||||
|
||||
@@ -290,10 +290,10 @@
|
||||
| RAP 清零(battle_over) | RAP 数字滚动归零(D 区 AP 条)+ 「随战斗结束消散」微文案 | 行动经济可见反馈义务 |
|
||||
| 敌人死亡 | 血条直角递减至零 → 卡体灰化 + 碎裂退场(禁瞬消) | 敌人系统资产下限(同等 blocking);动画密度归战斗表现 |
|
||||
| 状态图标行全清(battle_over) | 状态逐枚化光收回(B 区站桩图标行)+ 「状态随战斗结束消散」微文案 | 增益状态×4④;RAP 清零同款先例 |
|
||||
| 关卡收束清库(预留) | 清空反馈义务保留——载体为秘宝背包,随秘宝 P0 落地;本批不设计具体呈现 | 秘宝 下游呈现义务(关卡末清空反馈) |
|
||||
| ~~关卡收束清库~~ | 义务随秘宝过渡形态退役消解——现行形态 = 营地同调装配、整局冒险生效,无关卡域清库面(秘宝.md) | —— |
|
||||
| 胜利 | 蜡封自上落下弹跳定格 → 碎砖拼纹章 → overlay 暖金渐显 | §2.4 克制不狂欢 |
|
||||
| 失败 | 全屏明度不变转暮蓝色相 → 旗化光点 800ms 逐面收回 → overlay | §2.5 最静一拍 |
|
||||
| 减动效选项 | 上述全部动画提供时长减半/直接跳终态开关(基线权威 = HUD框架「可访问性基线」节;开关承载 = 设置与本地化,切片期入口 = TunePanel——2026-09-27 拍板不另立无障碍专项文档) | 动议:结算逐行兑现为信息载体不可整体跳过,可加速 |
|
||||
| 减动效选项 | 上述全部动画提供时长减半/直接跳终态开关(基线权威 = HUD框架「可访问性基线」节;开关承载 = 设置面(迭代 8 卡④已转正,settings_overlay)——2026-09-27 拍板不另立无障碍专项文档) | 动议:结算逐行兑现为信息载体不可整体跳过,可加速 |
|
||||
|
||||
---
|
||||
|
||||
@@ -301,24 +301,24 @@
|
||||
|
||||
| Data | Source System | Read / Write | Notes |
|
||||
|---|---|---|---|
|
||||
| 棋盘格态/数字/可挖域 | 排雷玩法 只读面(query) | Read | 呈现刷新面 = 排雷玩法 三事件信号(载荷 schema 成文——旧版台账 entry 17①) |
|
||||
| 棋盘格态/数字/可挖域 | 排雷玩法 只读面(query) | Read | 呈现刷新面 = 排雷玩法 三事件信号(载荷 schema 成文——旧版状态记录 entry 17①) |
|
||||
| BFS 移动路径 | 排雷玩法 `compute_move_path` | Read | 布局决策 3 合法性指示消费 |
|
||||
| 拒绝原因 | 排雷玩法 `sub_reason` 封闭枚举 + 行动经济 资源面 | Read | 三源(board/resource/phase)映射文案——呈现层契约成文;资源面原因无上游载荷(行动经济 仅 bool + debug 诊断),客户端按动作上下文推断 |
|
||||
| AP / RAP / 本轮刷新计数 | 行动经济 | Read | 常显;刷新入口可用性 = RAP 读数客户端预判(RAP≥8)+ `request_refresh` 返回值(行动经济 无 `can_request_refresh` API——仅 bool 返回 + 只读观测量;行动经济 EC13 拒绝合法可见) |
|
||||
| 结算流水行(9 类封闭协议) | [战斗结算](../systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋) 流水协议 | Read | 逐行来源标注(P2);未生效类行(奖励未生效)聚合计数呈现 |
|
||||
| 判定 verdict | 战斗结算 判定段 | Read | 终局画面数据锚 |
|
||||
| 敌单位 hp/顺位/摇定动作(pending_skill/type/name)/敌方增益/enemy_id/存活 | 敌人系统 只读面(经战斗结算呈现快照) | Read | 意图线索映射全局恒定(敌人系统×4②,技能池批三档口径);**despawn 前捕获**(旧版台账 entry 17③——缺陷②教训) |
|
||||
| 敌单位 hp/顺位/摇定动作(pending_skill/type/name)/敌方增益/enemy_id/存活 | 敌人系统 只读面(经战斗结算呈现快照) | Read | 意图线索映射全局恒定(敌人系统×4②,技能池批三档口径);**despawn 前捕获**(旧版状态记录 entry 17③——缺陷②教训) |
|
||||
| 状态效果投影(含空态/极性/溢出) | 增益状态 投影口径 | Read | 极性映射数据源 = 战斗结算 SettlementTable 效果语义,非 magnitude 符号(增益状态×③) |
|
||||
| 已开格奖励身份(奖励徽章) | 地图战斗资源 `query_identity`(经 board_view 身份解析只读回调,组合根注入) | Read | 已开格身份常读——挖掘期 Active 相位内有效;reward_id 全局恒定、禁止重掷;徽章绘制优先级见 §Component Inventory BoardView 行 |
|
||||
| 节点图/当前节点/HP 携带 | 关卡节点地图 lite · LevelRunner | Read | 关卡画面(独立屏)节点态呈现(战斗屏零进度承载) |
|
||||
| 意图提交 | 排雷玩法 | **Write** | `settle_batch`(stop 亦经此——不直调行动经济) |
|
||||
| 弃图刷新 | 行动经济 | **Write** | `request_refresh`(挖掘期 Active 当场受理——布局决策 4 2026-09-12 上游已落稿;战斗结算 `refresh_board` 编排承载) |
|
||||
| 节点推进 | LevelRunner | **Write** | 胜利 overlay「下一节点」 |
|
||||
| 终局画面数据锚 | 战斗结算 判定行(流水行协议) | Read | 「终局判定行 = 胜负画面的数据锚」(战斗结算 UI Requirements);despawn 前状态可见性纪律 = 旧版台账 entry 17③(销毁前捕获、**载荷数据自包含**、禁呈现层回读核心生命周期状态);若需独立终局快照信号,须回战斗结算/实现期 ADR 补登记(战斗结算 现无 `settlement_snapshot` 契约——2026-09-12 评审修正) |
|
||||
| 终局画面数据锚 | 战斗结算 判定行(流水行协议) | Read | 「终局判定行 = 胜负画面的数据锚」(战斗结算 UI Requirements);despawn 前状态可见性纪律 = 旧版状态记录 entry 17③(销毁前捕获、**载荷数据自包含**、禁呈现层回读核心生命周期状态);若需独立终局快照信号,须回战斗结算 GDD 修订补登记(战斗结算 现无 `settlement_snapshot` 契约——2026-09-12 评审修正) |
|
||||
|
||||
**架构注记**:UI 不拥有任何游戏状态——全部读经核心只读面,全部写经组合根(ADR-0001/0003)。呈现层信号载荷 schema 须在《HUD框架》成文(旧版台账 entry 17①,缺项即 blocking);场景级 headless 测试进 AC(entry 17②);覆盖层层级断言(缺陷⑤——任何模态覆盖层必须有"打开时遮挡物隐藏"断言)。
|
||||
**架构注记**:UI 不拥有任何游戏状态——全部读经核心只读面,全部写经组合根。呈现层信号载荷 schema 须在《HUD框架》成文(旧版状态记录 entry 17①,缺项即 blocking);场景级 headless 测试进 AC(entry 17②);覆盖层层级断言(缺陷⑤——任何模态覆盖层必须有"打开时遮挡物隐藏"断言)。
|
||||
|
||||
**更新触发注记(2026-09-12 评审增补——防实现层等待不存在的信号,旧版台账 entry 17 教训同类)**:旗插/拔与移动成功反馈**零事件外发**(排雷玩法发射面封闭)——经意图调用 `ActionOutcome` 返回值命令式驱动;AP/RAP 读数:行动经济无推送信号——组合根每次调用返回后重查;状态效果:增益状态纯被动容器零信号——状态栏刷新绑战斗结算的编排完成时点;奖励徽章:地图战斗资源 身份解析经 `query_identity` 只读回调(组合根注入 board_view),已开格揭显时查询——写路径回执后重查。
|
||||
**更新触发注记(2026-09-12 评审增补——防实现层等待不存在的信号,旧版状态记录 entry 17 教训同类)**:旗插/拔与移动成功反馈**零事件外发**(排雷玩法发射面封闭)——经意图调用 `ActionOutcome` 返回值命令式驱动;AP/RAP 读数:行动经济无推送信号——组合根每次调用返回后重查;状态效果:增益状态纯被动容器零信号——状态栏刷新绑战斗结算的编排完成时点;奖励徽章:地图战斗资源 身份解析经 `query_identity` 只读回调(组合根注入 board_view),已开格揭显时查询——写路径回执后重查。
|
||||
|
||||
---
|
||||
|
||||
@@ -338,7 +338,7 @@
|
||||
|
||||
## Localization Considerations
|
||||
|
||||
- **源语言中文(CJK)**:运行时默认字体无 CJK 字形——**CJK 字体随包为硬性前置**(ADR-0003 已锁),实现 AC 覆盖
|
||||
- **源语言中文(CJK)**:运行时默认字体无 CJK 字形——**CJK 字体随包为硬性前置**(已锁),实现 AC 覆盖
|
||||
- **按钮文案单行约束**:「停手」「弃图刷新」——按钮宽度按 4 汉字上限设计;译为英文("Hold"/"Reroll")不超 1.6× 不破版;德语长词("Aufgeben+Neu"类复合词)风险 HIGH——弃图刷新按钮允许两行或图标+缩写
|
||||
- **明细带行文案**:来源标注格式「{行为} {值} → {目标}(来源)」为模板插值,最长 token = 来源标签(4 汉字,如「清图奖励」「标旗未中」——settlement source_label_map 封闭枚举);行模板预留 40% 膨胀宽度(固定槽高 + clip 兜底)
|
||||
- **数字格式**:全部整数,无本地化格式需求;AP 点阵为图形载体不依赖文本
|
||||
@@ -354,7 +354,7 @@
|
||||
- [ ] 进入战斗屏 ≤500ms 内可交互(棋盘 install 淡入完成后首格可点);同屏 draw calls < 200(technical-preferences 预算)
|
||||
- [ ] 两种格态(已开格 / 未开格)灰度截图下一眼可辨(排雷玩法×6②)
|
||||
- [ ] 悬停光标区分移动/挖/旗三语义;可挖域(8 向相邻)常驻指示;非相邻格悬停显禁止反馈(排雷玩法×6③)
|
||||
- [ ] 已引爆雷格呈"可通行可读"(排雷玩法×6④)
|
||||
- [ ] 已引爆危险格呈"可通行可读"(排雷玩法×6④)
|
||||
- [ ] 全部数字对所在格底对比 ≥4.5:1;明度分层规则无违例(art-bible §2/§4.1,v3.0——状态区分不走明度,格底功能分档合法)
|
||||
|
||||
**交互与反馈**
|
||||
@@ -362,67 +362,67 @@
|
||||
- [ ] 挖/移/旗/停手/刷新全部操作纯鼠标可完成;stop 意图经 `settle_batch` 提交(代码走查 + 探针断言)
|
||||
- [ ] 每次拒绝(棋盘面/资源面/相位)玩家可感知且两源可区分;voided(至少 stop 作废)可感知(排雷玩法×6⑥、行动经济双源)
|
||||
- [ ] 弃图刷新消耗 RAP 8 点、本轮上限 2 次可见(按钮文案实时「剩 N 次」;上限已随行动经济 2026-09-12 修订生效);RAP<8 资源面拒绝可见(行动经济 EC13);确认交互与常规确认不同位;换图后 AP 不重置、剩余次数扣减可见(**上游已修订受理——2026-09-12 布局决策 4 落稿**)
|
||||
- [ ] battle_over 时 RAP 清零有可见反馈(行动经济);关卡收束清库反馈义务载体 = 秘宝背包——库存已随迭代 7 落地(C 区四槽+关卡域库存),清库反馈呈现待批,随呈现落地补验收
|
||||
- [ ] battle_over 时 RAP 清零有可见反馈(行动经济);~~关卡收束清库反馈~~(义务随秘宝过渡形态退役消解——现行 = 营地同调装配整局生效,秘宝.md)
|
||||
- [ ] battle_over 时状态图标行全清有可见反馈(B 区站桩逐枚化光 + 微文案)(增益状态×④)
|
||||
- [ ] 敌人死亡瞬间可辨识(卡体灰化 + 碎裂退场,禁瞬消);战斗段短路被掐灭的重击由行序可推断(敌人系统资产下限)
|
||||
|
||||
**信息与归因**
|
||||
|
||||
- [ ] 结算逐行明细实时可见、战斗后可回看完整流水(P2 逐行归因);未生效类行(奖励未生效)聚合计数呈现(战斗结算 现行 9 类行协议)
|
||||
- [ ] 结算逐行明细实时可见(P2 逐行归因;战斗后完整流水回看已随 P-C7 退役——归「生涯」);未生效类行(奖励未生效)聚合计数呈现(战斗结算 现行 9 类行协议)
|
||||
- [ ] 敌人意图徽标挖掘期全程可见、映射全局恒定、含顺位与环长直觉编码(敌人系统×4①②③)
|
||||
- [ ] 状态效果:极性呈现映射成文且非 magnitude 符号;空态渲染成文(裁决:图标行隐藏——B 区站桩血条下零图标时不占位);满层溢出经明细行可见(增益状态×①③④)
|
||||
- [ ] 图例面板条目恒在可随时回看、非模态提示不劫持输入
|
||||
- [ ] 零合法板(棋盘生成 EC5 降级)出现时玩家侧诚实提示(toast,非静默)
|
||||
- [ ] 效果行 value 为单次贡献值,不得与 pool_value(池合成值)相加呈现;零值伤害行可见不被吞;衰减行按聚合计数呈现(战斗结算 呈现细则)
|
||||
- [ ] 效果行 value 为单次贡献值,禁止与 pool_value(池合成值)相加呈现;零值伤害行可见不被吞;衰减行按聚合计数呈现(战斗结算 呈现细则)
|
||||
- [ ] 未生效类行(奖励未生效)携带形状冗余(icon/划线),非色相独载
|
||||
- [ ] 奖励徽章绘制优先级:旗之下、变异纹带之上、不进数字区;拾取瞬间 tier 档位可读(地图战斗资源 H1)
|
||||
|
||||
**场景级测试**(旧版台账 entry 17②③,缺项即 blocking)
|
||||
**场景级测试**(旧版状态记录 entry 17②③,缺项即 blocking)
|
||||
|
||||
- [ ] 场景级 headless 测试:真实实例化战斗屏场景 + 驱动完整对局 + 断言零脚本错误(ui_click_probe 模式扩展)
|
||||
- [ ] 任何模态覆盖层(图例/明细回看/胜利/失败)有「打开时遮挡物隐藏/输入锁定」场景级断言(缺陷⑤对照)
|
||||
- [ ] 任何模态覆盖层(图例/胜利/失败——明细回看已退役)有「打开时遮挡物隐藏/输入锁定」场景级断言(缺陷⑤对照)
|
||||
- [ ] 动态区全部固定槽高 + clip_contents——悬停文案换行不推挤布局(缺陷①回归)
|
||||
- [ ] CJK 字体随包,全部中文文案渲染非豆腐块(ADR-0003)
|
||||
- [ ] CJK 字体随包,全部中文文案渲染非豆腐块
|
||||
- [ ] 敌人 despawn 后呈现层不回读核心生命周期状态(快照纪律,缺陷②回归)
|
||||
|
||||
---
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. **Player journey map——已收口(2026-09-27 欠账处置拍板:不建)**:实现前补建的前提随战斗屏实装失效;情绪曲线事实源 = art-bible §2 能量档,真人体验观测与结论回流 = [07-体验验证清单](../07-体验验证清单.md)
|
||||
2. **无障碍专项文档——已收口(2026-09-27 拍板:不另立 design/accessibility-requirements.md)**:基线(对比/色弱/字号/闪烁/减动效/纯鼠标/中文字体)权威 = [HUD框架](../systems/表现与支撑/HUD框架.md)「可访问性基线」节;正式分层(文本缩放/色盲模式/按键重映射)归 [设置与本地化](../systems/表现与支撑/设置与本地化.md) 待设计问题清单 #1(设置项全集裁决时定);本 spec §Accessibility 为呈现侧落地承诺
|
||||
1. **Player journey map——已完成(2026-09-27 欠账处置拍板:不建)**:实现前补建的前提随战斗屏实装失效;情绪曲线事实源 = art-bible §2 能量档,真人体验观测与结论回流 = [07-体验验证清单](../07-体验验证清单.md)
|
||||
2. **无障碍专项文档——已完成(2026-09-27 拍板:不另立 design/accessibility-requirements.md)**:基线(对比/色弱/字号/闪烁/减动效/纯鼠标/中文字体)权威 = [HUD框架](../systems/表现与支撑/HUD框架.md)「可访问性基线」节;正式分层(文本缩放/色盲模式/按键重映射)归 [设置与本地化](../systems/表现与支撑/设置与本地化.md) 待设计问题清单 #1(设置项全集裁决时定);本 spec §Accessibility 为呈现侧落地承诺
|
||||
3. **interaction-patterns.md——已建成**(2026-09-12 /team-ui 批当日落稿,本条「未建」系过期陈述):本 spec 引入的四 pattern(双源拒绝反馈/逐行兑现明细带/悬停预承诺光标/点阵资源显示)均已入库成文(pattern 1/3/4/5)
|
||||
4. **战斗表现美术测试**(game-concept 已登记,战斗表现批次前强制):本 spec 的常驻双舞台分屏(布局决策 1)是测试的布局输入——**敌人卡形态已裁决(2026-09-20 用户看对照样张拍板):全站桩式(无框立绘+底座),主角同样站桩、状态小图标挂血条下,卡片式整体退役**;本 spec 已随裁决改写(原"按卡片式起草"条款作废),站桩式不改变分区结构。对照样张存档 `production/mockups/enemy-card-vs-standee-mockup.html`
|
||||
5. **移动动画形态**(布局决策 3):≤150ms 短滑为推荐值,playtest 观测「移动太瞬/太拖」反馈后调
|
||||
6. **明细带挖掘期是否常驻上轮摘要**:常驻(现方案)vs 结算后即收起——playtest 观测回看频率
|
||||
7. **Gamepad 导航序**:Partial 支持(非 MVP 门禁)——焦点环顺序待 gamepad 批次定
|
||||
8. **NodeOverlay / 关卡结算屏——已收口(2026-09-27 欠账处置拍板;节点奖励屏部分被 2026-09-29 迭代 7 取代)**:关卡结算屏 spec 已建 [level-clear.md](level-clear.md)(本 spec 只锁出口锚点不变);节点奖励屏 spec 已出生 [node-reward.md](node-reward.md) v1.0(原「不立独立 spec、随秘宝内容重定批交付」拍板随之取代;NodeOverlay 现行:恢复点全量服务、奖励点=三选一构筑点)
|
||||
9. **TunePanel 退役计划**:正式侧归元进度(天赋树),切片调试入口在《HUD框架》标注退役时点
|
||||
8. **NodeOverlay / 关卡结算屏——已完成(2026-09-27 欠账处置拍板;节点奖励屏部分被 2026-09-29 迭代 7 取代)**:关卡结算屏 spec 已建 [level-clear.md](level-clear.md)(本 spec 只锁出口锚点不变);节点奖励屏 spec 已出生 [node-reward.md](node-reward.md) v1.0(原「不立独立 spec、随秘宝内容重定批交付」拍板随之取代;NodeOverlay 现行:恢复点全量服务、奖励点=三选一构筑点)
|
||||
9. **TunePanel 退役计划——已完成(迭代 15 卡①,2026-10-05)**:TunePanel 类整体吸收退役入调试浮窗 DebugOverlay(DS_DEBUG=1 门控);正式侧归元进度(天赋树)不变
|
||||
10. **提示文案定稿**:chord 提示/空态文案归实现期文案 pass,本 spec 只锁必含要点与形态约束
|
||||
11. **弃图刷新上游修订(已落稿 2026-09-12,布局决策 4)**:行动经济(Active 相位受理 + 每轮上限 2 次 + Waiting 代理退役 + 旧旗作废裁决 + 时间税失效预警)、排雷玩法(Active·仅刷新路径装板受理)、战斗结算(stopped/ap_exhausted 恒 same_board + `refresh_board` 挖掘期刷新编排;AC-29 改写/AC-30 恒 same_board)、registry `rap_rules` 同步、旧版 systems-index 修订块登记。遗留观察项:当场刷新的节奏健康由行动经济 OQ3 弃图率/刷新率预警承载,playtest 复核
|
||||
12. **教学引导缺口挂靠(成文时教学引导 GDD 尚未建,留痕)**:挖到雷 = 敌方优势而非死亡(排雷玩法登记「经典扫雷玩家最大预期违背」)、旗挡链(连锁止于旗属正常)、首次蓄力姿态一次性提示(敌人系统)——本屏 toast 体系为落点候选,随教学引导批次定
|
||||
13. **敌方 AC 展示——已终裁收口(2026-09-26)**:用户终裁——敌方 AC 数值**全屏不展示**(任何区均不直接写上);护甲类型改**图标方式**展示(形状+色相双通道,终稿图标资产归美术批);敌人站桩底座下名字行退回**纯名字 + 护甲类型图标**。与旧「克制对策可读性义务」(敌人技能池批)的关系 = **义务降级承载**:类型保留(图标可读,对策判断仍可做)、数值退役(不再直接展示);敌人技能池批相关义务措辞由并行代码批同步。我方 AC 仍按 2026-09-26 二轮拍板保留于 C 区攻击数据框(唯一展示面)
|
||||
14. **GP/钥石迁出战斗屏后的展示面归属——已拍板收口(2026-09-26 二轮)**:GP = 关卡画面常驻总量 + 战斗总结结算(总量+增量);钥石 = 冒险总结结算 + 营地。呈现 spec 已出生:[settlement-summary.md](settlement-summary.md) v1.0(2026-09-30——两面分节轻量 spec,本 OQ 为其命名与分工依据;「战斗结算画面」「结算画面」旧措辞随 spec 命名收口退役)
|
||||
13. **敌方 AC 展示——已终裁完成(2026-09-26)**:用户终裁——敌方 AC 数值**全屏不展示**(任何区均不直接写上);护甲类型改**图标方式**展示(形状+色相双通道,终稿图标资产归美术批);敌人站桩底座下名字行退回**纯名字 + 护甲类型图标**。与旧「克制对策可读性义务」(敌人技能池批)的关系 = **义务降级承载**:类型保留(图标可读,对策判断仍可做)、数值退役(不再直接展示);敌人技能池批相关义务措辞由并行代码批同步。我方 AC 仍按 2026-09-26 二轮拍板保留于 C 区攻击数据框(唯一展示面)
|
||||
14. **GP/钥石迁出战斗屏后的展示面归属——已拍板完成(2026-09-26 二轮)**:GP = 关卡画面常驻总量 + 战斗总结结算(总量+增量);钥石 = 冒险总结结算 + 营地。呈现 spec 已出生:[settlement-summary.md](settlement-summary.md) v1.0(2026-09-30——两面分节轻量 spec,本 OQ 为其命名与分工依据;「战斗结算画面」「结算画面」旧措辞随 spec 命名完成退役)
|
||||
|
||||
---
|
||||
|
||||
## §13 上游义务对照表(门禁核对用)
|
||||
|
||||
> 「系统名×条目号」记法(如「排雷玩法×6⑥」)= 旧版 systems-index 门禁台账中该系统的义务条目编号,条目内容均已在本表逐条承载。
|
||||
> 「系统名×条目号」记法(如「排雷玩法×6⑥」)= 旧版 systems-index 门禁状态记录中该系统的义务条目编号,条目内容均已在本表逐条承载。
|
||||
|
||||
| 义务源 | 条目 | 本 spec 承载落点 |
|
||||
|---|---|---|
|
||||
| 排雷玩法×6 | ① stop 经批次 | §Interaction Map 停手行 + AC |
|
||||
| 排雷玩法×6 | ② 格态可辨(已开 / 未开两态) | §Layout 格态 + AC |
|
||||
| 排雷玩法×6 | ③ 悬停预承诺+可挖域+chord 提示 | §Interaction Map + §States |
|
||||
| 排雷玩法×6 | ④ 引爆雷格可通行可读 | §AC |
|
||||
| 排雷玩法×6 | ④ 引爆危险格可通行可读 | §AC |
|
||||
| 排雷玩法×6 | ⑤ 路径预览裁决 | 布局决策 3 |
|
||||
| 排雷玩法×6 | ⑥ 单意图帧+voided+拒绝可感知 | §Interaction Map + §States 拒绝子态 + AC |
|
||||
| 行动经济 | AP/RAP 常显+刷新入口+清零反馈+双源 | §Layout D 区 AP 条(RAP 自 C 区迁入——2026-09-26 信息归属拍板)+ §Transitions + AC |
|
||||
| 战斗结算×3 | ①高光行强调呈现(标中旗金框行/清图 H2 金框行)②完美排雷呈现形态 ③棋盘生成 EC5 零合法板提示/补偿/回退形态(toast 提示;补偿/回退不提供——三形态选型留痕 2026-09-12) | §States 高光/清图 + §States 拒绝子态 + §AC;注:结算明细屏 = 战斗结算 UX Flag 事项(本 spec 即其 /ux-design 产物),非 战斗结算×3 台账 |
|
||||
| 战斗结算×3 | ①高光行强调呈现(标中旗金框行/清图 H2 金框行)②完美排雷呈现形态 ③棋盘生成 EC5 零合法板提示/补偿/回退形态(toast 提示;补偿/回退不提供——三形态选型留痕 2026-09-12) | §States 高光/清图 + §States 拒绝子态 + §AC;注:结算明细屏 = 战斗结算 UX Flag 事项(本 spec 即其 /ux-design 产物),非 战斗结算×3 状态记录 |
|
||||
| 敌人系统×4 | 意图映射/恒定/顺位/敌方池 | §Component Inventory 敌人站桩立绘 + **意图线索映射目录(敌人系统×4① 成文占位,资产定稿归战斗表现)** + AC |
|
||||
| 增益状态×4 | 常显+空态/来源标注/溢出/去留 | §States 空态 + §AC |
|
||||
| 地图战斗资源×5 | 身份恒读/明细行/清图强调(旧版台账五条中「窗口」「清空反馈」随格面资源批下线——清空反馈义务现载体 = 秘宝背包,随秘宝 P0 落地) | §Component Inventory BoardView 奖励徽章 + §States 清图/高光 + §Data Requirements query_identity + AC |
|
||||
| 地图战斗资源×5 | 身份恒读/明细行/清图强调(旧版状态记录五条中「窗口」「清空反馈」随格面资源批下线——清空反馈义务后载秘宝背包、复随秘宝过渡形态退役消解(现行 = 营地同调装配,秘宝.md)) | §Component Inventory BoardView 奖励徽章 + §States 清图/高光 + §Data Requirements query_identity + AC |
|
||||
| 棋盘生成 | EC5 零合法板诚实呈现(数据面经 战斗结算×3③ 上抛) | §States 拒绝子态(toast)+ AC |
|
||||
| 敌人系统资产下限 | 受击反馈/死亡表现/顺位标记 | §Transitions 受击 + §States 敌人死亡呈现(禁瞬消)+ §Component 顺位徽标;呈现语义在本 spec(同等 blocking),动画密度归战斗表现 |
|
||||
|
||||
@@ -433,15 +433,18 @@
|
||||
| 日期 | 改动 |
|
||||
|---|---|
|
||||
| 2026-09-15 | 雾格残留清理:格态收窄为已开 / 未开两态(删除雾图变体状态行、四格态 AC 与已开雾格 tint / 雾区全开信号两条 AC);图例面板与 toast 槽去掉雾条目与雾首遇提示;BoardView 纹带、绘制优先级与色弱冗余改按通用变异纹带表述;`ux_hint_shown` 的 hint_id 枚举去掉 fog_first;输入义务与 §13 义务对照表去掉 地形变异×3 一项;目标感知示例与提示文案 OQ 措辞同步。本 spec 不装载被移除机制的呈现义务 |
|
||||
| 2026-09-16 | 格面资源批 UI 欠账收口(随 2026-09-15 可选类道具删除的代码收口同步文档):① 布局四区化——删 E 区道具面板行、布局决策 2(道具窗口形态=右栏原位激活)整段删除(编号留空防交叉引用失锚)、ASCII 线框图重绘为 A/B/C/D 四区(D 区横向加宽 ~1036px)、A 区节点链示例改文字签槽实际渲染(战/赏/疗/王);② States 删道具窗口态与零库存空态(「道包空空」);③ 结算口径五段化(授予→增益/减益→战斗→衰减→判定)与明细行 10 类封闭协议(删 15 类行、四类行旧口径;「奖励未生效」行保留);④ 交互/动效/事件表删道具窗口行、跳过按钮、`ux_window_choice`、`submit_window_selection`;⑤ 数据源登记删 `query_inventory` 与窗口载荷,奖励身份按现行 `query_identity` 只读回调口径校正;⑥ 验收清单删窗口断言、五区改四区、未生效类行改现行两型(溢出未生效/奖励未生效);⑦ 关卡末清库反馈义务改载秘宝背包(随秘宝 P0 落地,本批不设计具体呈现);⑧ OQ7(道具窗口原位激活)删除、OQ 重编号,「囤刀待机」等旧可选类措辞清理。本 spec 不装载被删除机制的呈现义务 |
|
||||
| 2026-09-20 | **敌人卡形态裁决收口(2026-09-20 用户看对照样张拍板,06 待办「敌人卡形态」解决移除——台账 99)**:全站桩形态定稿——① B 区主角与敌人均为无框立绘+底座(站桩式),**英雄卡/敌人卡组件整体退役,卡片式不再作为候选**;主角血条悬浮头顶、状态效果小图标一排挂血条正下方,敌人血条+顺位徽标悬浮头顶、状态小图标同款挂血条下;攻击值等规划数据仍归 C 区数据框(C 区不动);② 布局表 B 区行、Component Inventory 英雄卡/敌人卡两行随裁决改写(敌方 side 池共享层数各立绘同值、意图动画占位等既有语义平移到站桩载体,不随形态改变);③ ASCII 线框图 B 区重绘(旧"意图:爪击/环点"示意早已随行为环退役,本次一并清掉);④ OQ4 改写为裁决已收口注记,对照样张存档 `production/mockups/`;呈现义务细节重述(受击/退场演出挂点等)随表现层升级批执行 |
|
||||
| 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 `../../dev/architecture/adr-0006-board-node2d-rendering.md` 与 `../../dev/architecture/board-node2d-migration-plan.md` §1,代码实装另批并行)**:① 布局四区 → 三区——删布局表 A 区关卡进度条行与 Component Inventory LevelStripView 行(LevelStripView 退役删除,节点链进度只留关卡画面,战斗屏零进度承载);C/D 底行 520 → 548;ASCII 线框图重绘为 B/C/D 三区;② 新流程口径落文——关卡画面(选路覆盖层常驻形态)为关卡内常驻枢纽:Navigation Position 图、到达语境、Entry 表、信息层级第 5 层、Data Requirements 节点图行改「关卡开始即出图选路、战后返回关卡画面再选路」;③ AC 四区措辞改三区。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编;② 28px 纵向空间划归 C/D 底行(520 → 548);③ 关卡画面进度呈现由选路覆盖层节点态承载(暗金已过 / 金当前 / 亮金候选通道 / 旗朱 Boss)、不另设进度条组件 |
|
||||
| 2026-09-23 | 实现注记(棋盘 Node2D 迁移批 Phase A,代码实装同批;上位裁决 ADR-0006):棋盘渲染 Node2D 化(BoardView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,信号/click_cell/_cells 契约保持,新增 push_input 端到端输入探针);格尺寸公式锚点不变(set_cell_area = floor((min(宽,高) − 预留 − (N−1)×格间距) / N) 单点可调),布局与交互语义零改动 |
|
||||
| 2026-09-26 | 实现注记(战斗舞台 Node2D 迁移批 Phase B,代码实装同批;上位裁决 ADR-0006):B 区战斗画面 Node2D 化(BattleStageView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,站桩本体 StandeeBody 世界精灵;set_enemies/clear_enemies/on_step_row_fx/gray_all_enemies 等 setter 面签名保持,弹道落点锚点=壳层口径 world_to_shell 单点);状态图标行与悬停 tooltip 保留 Control 载体挂壳层;三区布局尺寸零改动(B 区外框 252px 逐位) |
|
||||
| 2026-09-26 | **封印紫批**(用户拍板):插旗呈现色 旗朱 #C63D22 → 封印紫 #7C3AA8(色相 ≈267°,避开禁入带)——旗字形/已承诺封印框/旗化暴击弹道随批换色;拒绝边框闪语义归危险红;Boss 节点描边归紫赤本色。修订记录历史行旗朱字样系当时口径留痕不改 |
|
||||
| 2026-09-26 | **战斗屏信息归属批(用户 2026-09-26 三轮纠偏后拍板;代码实装另批——hero_info_panel_view.gd / hud_presenter.gd 改造 + 探针断言迁移,登记待办)**:立两条信息归属原则并全屏贯行——①循环口径原则(战斗屏只展小循环内被消费、影响当下决策的数据;中/大循环资源不得入侵)②单一展示面原则(同一信息全屏唯一展示面;单位本体已承载的信息数据框不重复;资源数字贴唯一消费口)。随拍板落地:① B 区站桩 = HP 与状态效果唯一展示面——C 区 HP 条/HP 文字/立绘占位/状态效果槽×4 退役(重复展示;证据链 = hud_presenter.gd 同一 s.hero.hp/s.hero_effects 双投喂 B/C 两区);② RAP 读数(点阵+数字)迁 D 区 AP 条、置弃图刷新按钮旁(RAP 唯一消费口 = 弃图刷新——就近原则);③ C 区状态槽悬停 tooltip 职责并入 B 区站桩状态小图标;④ GP(中循环)/钥石(大循环)迁出战斗屏,去向挂 OQ14;⑤ C 区改「攻击数据框 + 秘宝槽(预留)+ 本关强化列表(预留)」——预留区来自秘宝与关卡内属性提升的既有立项;⑥ 空态/清零反馈/悬停交互/AC/§13 义务表载体同步改写。**批内遗留两项待拍板(OQ13/14)**:护甲 AC 是否补入 C 区数据框;GP/钥石去向 |
|
||||
| 2026-09-26 | **信息归属二轮拍板(用户 2026-09-26,OQ13/14 收口)**:① 我方护甲 AC 补入 C 区攻击数据框(唯一展示面——布局表/组件清单/线框图同步);② GP/钥石去向定案:GP = 关卡画面常驻总量 + 战斗结算画面总量+增量,钥石 = 结算画面 + 营地(具体呈现归对应 UX spec 批次);③ 敌方 AC 展示面挂起——用户口径「敌方 AC 无任何展示」与现行代码冲突(standee_view.gd 底库名字行渲染「名字·护甲·AC%d」,系敌人技能池批克制对策可读性义务),证据链已呈报待终裁,本 spec 暂不改敌人站桩行 |
|
||||
| 2026-09-26 | **敌方 AC 展示终裁收口(用户 2026-09-26 终裁)**:敌方 AC 数值全屏退役(任何区不直接展示)、护甲类型改图标方式展示(形状+色相双通道,终稿图标资产归美术批)、敌人站桩底座下名字行退回纯名字+护甲类型图标;旧「克制对策可读性义务」降级承载——类型保留、数值退役。终裁理由(用户口径):HP 信息已足够,攻防数值不直接写上;护甲类型图标保留克制对策可读性。同步改写:信息归属树敌人站桩行、Component Inventory 敌人站桩立绘行、OQ13。**代码实装说明**:`standee_view.gd` 改造(站桩名字行去 AC 数值 + 护甲类型图标化)由并行代码批执行,本批只做文档同步 |
|
||||
| 2026-09-27 | **UX 文档欠账处置批(用户四项拍板:player-journey 不建 / accessibility 不另立改指 HUD框架 / node-reward 改挂秘宝内容重定批 / level-clear 建档 design/gdd/ux/level-clear.md)**:① 删 §Player Context ⚠️ player-journey 未建注记,OQ1 改收口注记;② §Accessibility 头、§Transitions 减动效行、OQ2 改指 HUD框架「可访问性基线」节 + 设置与本地化待设计清单 #1(tools/doc_link_known.txt 欠账行随之清空);③ 导航残留修正——§Navigation Position 图胜利分支、§Entry/Exit 离开表、§Interaction Map 胜利 overlay 行改按现行代码实态(胜利后返回关卡画面选路;节点覆盖层 = 关卡画面域、落地奖励/恢复节点时开出;胜利/失败 overlay 组件锚 battle_end_overlay.gd)——原「胜利 → 节点奖励/恢复覆盖层」系停点前移批前残留;④ OQ3 过期陈述更正(interaction-patterns.md 2026-09-12 已建成)、OQ8 改收口注记。本批只动文档面,代码零改动 |
|
||||
| 2026-09-16 | 格面资源批 UI 欠账完成(随 2026-09-15 可选类道具删除的代码完成同步文档):① 布局四区化——删 E 区道具面板行、布局决策 2(道具窗口形态=右栏原位激活)整段删除(编号留空防交叉引用失锚)、ASCII 线框图重绘为 A/B/C/D 四区(D 区横向加宽 ~1036px)、A 区节点链示例改文字签槽实际渲染(战/赏/疗/王);② States 删道具窗口态与零库存空态(「道包空空」);③ 结算口径五段化(授予→增益/减益→战斗→衰减→判定)与明细行 10 类封闭协议(删 15 类行、四类行旧口径;「奖励未生效」行保留);④ 交互/动效/事件表删道具窗口行、跳过按钮、`ux_window_choice`、`submit_window_selection`;⑤ 数据源登记删 `query_inventory` 与窗口载荷,奖励身份按现行 `query_identity` 只读回调口径校正;⑥ 验收清单删窗口断言、五区改四区、未生效类行改现行两型(溢出未生效/奖励未生效);⑦ 关卡末清库反馈义务改载秘宝背包(随秘宝 P0 落地,本批不设计具体呈现);⑧ OQ7(道具窗口原位激活)删除、OQ 重编号,「囤刀待机」等旧可选类措辞清理。本 spec 不装载被删除机制的呈现义务 |
|
||||
| 2026-09-20 | **敌人卡形态裁决完成(2026-09-20 用户看对照样张拍板,06 待办「敌人卡形态」解决移除——状态记录 99)**:全站桩形态定稿——① B 区主角与敌人均为无框立绘+底座(站桩式),**英雄卡/敌人卡组件整体退役,卡片式不再作为候选**;主角血条悬浮头顶、状态效果小图标一排挂血条正下方,敌人血条+顺位徽标悬浮头顶、状态小图标同款挂血条下;攻击值等规划数据仍归 C 区数据框(C 区不动);② 布局表 B 区行、Component Inventory 英雄卡/敌人卡两行随裁决改写(敌方 side 池共享层数各立绘同值、意图动画占位等既有语义平移到站桩载体,不随形态改变);③ ASCII 线框图 B 区重绘(旧"意图:爪击/环点"示意早已随行为环退役,本次一并清掉);④ OQ4 改写为裁决已完成注记,对照样张存档 `production/mockups/`;呈现义务细节重述(受击/退场演出挂点等)随表现层升级批执行 |
|
||||
| 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 = 棋盘/战斗舞台 Node2D 迁移批(已执行完毕,git 历史可查),代码实装另批并行)**:① 布局四区 → 三区——删布局表 A 区关卡进度条行与 Component Inventory LevelStripView 行(LevelStripView 退役删除,节点链进度只留关卡画面,战斗屏零进度承载);C/D 底行 520 → 548;ASCII 线框图重绘为 B/C/D 三区;② 新流程口径写入文档——关卡画面(选路覆盖层常驻形态)为关卡内常驻枢纽:Navigation Position 图、到达语境、Entry 表、信息层级第 5 层、Data Requirements 节点图行改「关卡开始即出图选路、战后返回关卡画面再选路」;③ AC 四区措辞改三区。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编;② 28px 纵向空间划归 C/D 底行(520 → 548);③ 关卡画面进度呈现由选路覆盖层节点态承载(暗金已过 / 金当前 / 亮金候选通道 / 旗朱 Boss)、不另设进度条组件 |
|
||||
| 2026-09-23 | 实现注记(棋盘 Node2D 迁移批 Phase A,代码实装同批):棋盘渲染 Node2D 化(BoardView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,信号/click_cell/_cells 契约保持,新增 push_input 端到端输入探针);格尺寸公式锚点不变(set_cell_area = floor((min(宽,高) − 预留 − (N−1)×格间距) / N) 单点可调),布局与交互语义零改动 |
|
||||
| 2026-09-26 | 实现注记(战斗舞台 Node2D 迁移批 Phase B,代码实装同批):B 区战斗画面 Node2D 化(BattleStageView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,站桩本体 StandeeBody 世界精灵;set_enemies/clear_enemies/on_step_row_fx/gray_all_enemies 等 setter 面签名保持,弹道落点锚点=壳层口径 world_to_shell 单点);状态图标行与悬停 tooltip 保留 Control 载体挂壳层;三区布局尺寸零改动(B 区外框 252px 逐位) |
|
||||
| 2026-09-26 | **封印紫批**(用户拍板):插旗呈现色 旗朱 #C63D22 → 封印紫 #7C3AA8(色相 ≈267°,避开禁入带)——旗字形/已承诺封印框/旗化暴击弹道顺带换色;拒绝边框闪语义归危险红;Boss 节点描边归紫赤本色。修订记录历史行旗朱字样系当时口径留痕不改 |
|
||||
| 2026-09-26 | **战斗屏信息归属批(用户 2026-09-26 三轮纠偏后拍板;代码实装另批——hero_info_panel_view.gd / hud_presenter.gd 改造 + 探针断言迁移,登记待办)**:立两条信息归属原则并全屏贯行——①循环口径原则(战斗屏只展小循环内被消费、影响当下决策的数据;中/大循环资源禁止入侵)②单一展示面原则(同一信息全屏唯一展示面;单位本体已承载的信息数据框不重复;资源数字贴唯一消费口)。随拍板落地:① B 区站桩 = HP 与状态效果唯一展示面——C 区 HP 条/HP 文字/立绘占位/状态效果槽×4 退役(重复展示;证据链 = hud_presenter.gd 同一 s.hero.hp/s.hero_effects 双投喂 B/C 两区);② RAP 读数(点阵+数字)迁 D 区 AP 条、置弃图刷新按钮旁(RAP 唯一消费口 = 弃图刷新——就近原则);③ C 区状态槽悬停 tooltip 职责并入 B 区站桩状态小图标;④ GP(中循环)/钥石(大循环)迁出战斗屏,去向挂 OQ14;⑤ C 区改「攻击数据框 + 秘宝槽(预留)+ 本关强化列表(预留)」——预留区来自秘宝与关卡内属性提升的既有立项;⑥ 空态/清零反馈/悬停交互/AC/§13 义务表载体同步改写。**批内遗留两项待拍板(OQ13/14)**:护甲 AC 是否补入 C 区数据框;GP/钥石去向 |
|
||||
| 2026-09-26 | **信息归属二轮拍板(用户 2026-09-26,OQ13/14 完成)**:① 我方护甲 AC 补入 C 区攻击数据框(唯一展示面——布局表/组件清单/线框图同步);② GP/钥石去向定案:GP = 关卡画面常驻总量 + 战斗结算画面总量+增量,钥石 = 结算画面 + 营地(具体呈现归对应 UX spec 批次);③ 敌方 AC 展示面挂起——用户口径「敌方 AC 无任何展示」与现行代码冲突(standee_view.gd 底库名字行渲染「名字·护甲·AC%d」,系敌人技能池批克制对策可读性义务),证据链已呈报待终裁,本 spec 暂不改敌人站桩行 |
|
||||
| 2026-09-26 | **敌方 AC 展示终裁完成(用户 2026-09-26 终裁)**:敌方 AC 数值全屏退役(任何区不直接展示)、护甲类型改图标方式展示(形状+色相双通道,终稿图标资产归美术批)、敌人站桩底座下名字行退回纯名字+护甲类型图标;旧「克制对策可读性义务」降级承载——类型保留、数值退役。终裁理由(用户口径):HP 信息已足够,攻防数值不直接写上;护甲类型图标保留克制对策可读性。同步改写:信息归属树敌人站桩行、Component Inventory 敌人站桩立绘行、OQ13。**代码实装说明**:`standee_view.gd` 改造(站桩名字行去 AC 数值 + 护甲类型图标化)由并行代码批执行,本批只做文档同步 |
|
||||
| 2026-09-27 | **UX 文档欠账处置批(用户四项拍板:player-journey 不建 / accessibility 不另立改指 HUD框架 / node-reward 改挂秘宝内容重定批 / level-clear 建档 design/gdd/ux/level-clear.md)**:① 删 §Player Context ⚠️ player-journey 未建注记,OQ1 改完成注记;② §Accessibility 头、§Transitions 减动效行、OQ2 改指 HUD框架「可访问性基线」节 + 设置与本地化待设计清单 #1(tools/doc_link_known.txt 欠账行随之清空);③ 导航残留修正——§Navigation Position 图胜利分支、§Entry/Exit 离开表、§Interaction Map 胜利 overlay 行改按现行代码实态(胜利后返回关卡画面选路;节点覆盖层 = 关卡画面域、落地奖励/恢复节点时开出;胜利/失败 overlay 组件锚 battle_end_overlay.gd)——原「胜利 → 节点奖励/恢复覆盖层」系停点前移批前残留;④ OQ3 过期陈述更正(interaction-patterns.md 2026-09-12 已建成)、OQ8 改完成注记。本批只动文档面,代码零改动 |
|
||||
| 2026-09-27 | 关卡画面 UX spec 建档联动(关卡画面 UX 批):§Navigation Position 上游屏/下游屏行挂 [level-map.md](level-map.md) 屏级 spec 指针——关卡画面(选路覆盖层常驻形态)的布局/组件/交互/状态规格自此有独立权威文档。零机制改动 |
|
||||
| 2026-10-06 | **方案二·立绘定档与站桩落底排批(用户拍板;工作流程铁律 2026-10-06 = 讨论期只动文档,代码实装另批走 PRD→迭代)**:① B 区 252→270(演出 ≈1/3 屏)/ C 区 548→530(**棋盘 438×438 原尺寸不缩、格子不变**,压缩全部由面板空档吸收)——布局表 B/C/D 三行随改;② 站桩排式重排:**立绘→血条→状态 落底排**(全场血条对齐一线;血条嵌石板位、台缘线留作地面线、落影保留),原「血条悬浮头顶」退役(高盒下血条-立绘空洞,用户点名否决)——Component Inventory 主角/敌人站桩两行随改;③ 大体档(显示 >150px 级:drider/duergar_king)头部探出盒顶压光柱区,血条仍落底;意图徽标上移头顶上方(探顶档压胸);④ 空态行措辞随改;⑤ ASCII 线框图 B 区重绘。立绘八敌源档定档归 art-bible §8.2(v3.7)与 character-design.md §5.5(体量=生物体型修订) |
|
||||
| 2026-10-09 | 文档正确性审查批(在役态对齐):①秘宝槽「已实装四槽两步交互/关卡域库存/清库义务载体 = 秘宝背包」过期——过渡形态随迭代 11①退役,现行 = 营地同调装配(四槽壳空槽占位,展示重接归装配面批次);②奇物列表「预留」改已实装(现行标题「特性」,迭代 9⑫+迭代 12 呈现补齐);③明细回看 overlay/入口/交互三处随 P-C7 退役订正(回看归「生涯」);④TunePanel 三处改调试浮窗(迭代 15①退役)+减动效开关 = 设置面(迭代 8④);⑤棋盘尺寸 N∈{10,12} 扩 {10,12,13,14}(第三关内容批);⑥OQ9 TunePanel 退役计划完成 |
|
||||
| 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):Exit 表关卡结算行「无关卡域清库面」表述精确化——旧关卡域库存 treasure_inventory 经代码实证仍在(level_runner.gd:520 快照计数/battle_orchestrator.gd:745 consume),系投放渠道全退役后恒空的机械惰性承载,拆线归实装批;同调装配件不经此域的结论不变 |
|
||||
| 2026-10-15 | **简明技术中文用语规范批(用户令,词面层)**:词面修正 30 处——不得×5→禁止(信息层级依据句/信息归属循环口径条/敌人意图映射目录注记〔键名禁作现行 enemy_id 引用〕/敌人死亡呈现行〔敌人系统资产下限〕/AC 效果行);收口×11→完成(C 区奇物列表批注〔含随批→顺带〕/布局表 B 区行/意图映射目录命名双轨注记/线框图头注 2026-09-20/OQ1/OQ2/OQ8/OQ9/OQ13 已终裁收口→已终裁完成/OQ14 已拍板收口→已拍板完成+「随 spec 命名收口退役」→「随 spec 命名完成退役」);buff×1→增益(胜利终局行微文案引句「我的增益哪去了」);台账×10→状态记录(Events 呈现订阅行/Data Requirements 三处/终局数据锚行/架构注记/更新触发注记/场景级测试头/§13 记法注/义务表战斗结算行与地图战斗资源行);随批×2→顺带(下游屏行/可挖域微光注记);Last Updated 同步本批。ambusher(伏击者)历史退役词留痕行一字未动 |
|
||||
+21
-5
@@ -1,18 +1,19 @@
|
||||
# 营地覆盖层 UX spec(camp)
|
||||
|
||||
> 状态:v1.0(2026-09-30 审计拍板点 4A 用户裁决落文——乙案新建 ux spec+元进度配套更改;视觉终稿已随 M-3 迭代 9 9A 段落码,本 spec 成文其呈现规则)
|
||||
> 状态:v1.5(2026-10-15 简明技术中文用语规范批:文头状态行对齐版本历史——原标 v1.1 滞后,实态=v1.4 状态面板改名批补漏;spec 基线=2026-09-30 审计拍板点 4A 用户裁决落文〔乙案新建 ux spec+元进度配套更改〕;视觉终稿已随迭代 9 9A 段落码,本 spec 成文其呈现规则)
|
||||
> 事实源:`game/presentation/views/camp_overlay_view.gd`(CampOverlay——9A 视觉终稿后实态)
|
||||
> 机制权威:[元进度](../systems/跨局循环/元进度.md)(营地三柜台/钥石/永久强化——营地=界面壳、机制主语=永久强化)
|
||||
> 相邻:[settlement-summary.md](settlement-summary.md)(最近冒险摘要数据同源)/ [level-map.md](level-map.md)(主菜单语境)
|
||||
|
||||
## 定位
|
||||
|
||||
营地是存档内消费钥石的枢纽场所(界面壳,非机制实体——裁定见元进度):主菜单营地独立入口进入,玩家在此用钥石换永久强化、查看道具工坊解锁与最近冒险。本 spec 只锁呈现;机制(定价/解锁/入账)全部归元进度。**循环层级:存档级(大循环/局外)呈现面**——本层只在存档语境可达(主菜单入口),冒险进行中不可达。
|
||||
营地是存档内消费钥石的枢纽场所(界面壳,非机制实体——裁定见元进度):主菜单营地独立入口进入,玩家在此用钥石换永久强化、查看秘宝匣解锁与最近冒险。本 spec 只锁呈现;机制(定价/解锁/入账)全部归元进度。**循环层级:存档级(大循环/局外)呈现面**——本层只在存档语境可达(主菜单入口),冒险进行中不可达。
|
||||
|
||||
## 布局与交互
|
||||
|
||||
- 石纹全屏底(样张 v2 冻结件,浅 dim 透出)+ 顶栏铭牌与钥石徽(余额常驻)。
|
||||
- 三柜台列:属性锻造(三档行:等级/价格/购买钮)、道具工坊(行:解锁进度与状态呈现——「已解锁·能力封存中」=deferred 件、「已退役」=retired 件)、奖励格图鉴(结构位)。
|
||||
- 三柜台列:属性锻造(三档行:等级/价格/购买钮)、秘宝匣(**迭代 22 实装态呈现,2026-10-12**——见下方「秘宝匣柜台呈现细则」节)、奖励格图鉴(结构位)。
|
||||
- 树面板(图鉴柜台下段,现役程序占位):营地内天赋树的节点购买与 Fork A/B 面切换承载——系统现行事实源=[天赋树](../systems/跨局循环/天赋树.md)(33 节点在役),呈现终稿归 [HUD框架](../systems/表现与支撑/HUD框架.md);信号 `tree_buy_requested` / `tree_fork_toggled`。(本行 2026-10-09 补登——树侧跨文档欠账清偿:此前本 spec 零树面板登记。)
|
||||
- 底栏:关闭钮 + 操作注记;最近冒险收底栏条带(逐行只读账面)。
|
||||
- 购买意图 `buy_requested(attr)` 经组合根转发 MetaProgression(纯视图 setter 面——零核心写调用、零账本持有);购买成功 `refresh_camp` 就地重刷(零重建回流)。
|
||||
- 开合与开始层互斥:打开本层前由组合根隐藏开始层(遮挡纪律 2.3——开始覆盖层非模态且树序在后)。
|
||||
@@ -20,11 +21,26 @@
|
||||
## 口径
|
||||
|
||||
- 呈现数据源 = MetaProgression 只读投影经组合根喂入;本层不持有账本、不算价。
|
||||
- 退役/封存件呈现语义(探宝罗盘「已退役」;显影尘/地穴全图卷「已解锁·能力封存中」)为本层职责——2026-09-30 前该语义无 spec 正主(node-reward.md 曾悬空指认),随本 spec 落位。
|
||||
- 双入口框架(主菜单入口+局内暂停层只读入口)的需求面归元进度「解锁双入口框架」节;暂停层入口未实装(随 HUD 批 M-4),本 spec 不覆盖。
|
||||
- 退役/封存件呈现语义已随旧目录整体退役消解(探宝罗盘/显影尘/地穴全图卷等状态行已删——迭代 22 旧 12 行删除后目录内零 deferred/retired 态,2026-10-12);历史语义见版本历史 v1.1。
|
||||
- 双入口框架(主菜单入口+局内状态面板只读入口〔2026-10-13 由「暂停层」改名——游戏非实时无暂停语义〕)的需求面归元进度「解锁双入口框架」节;状态面板入口已实装(2026-10-06 迭代 17 卡③〔时名暂停层〕——实机目检待用户,06 登记条在册),其呈现面不归本 spec。
|
||||
|
||||
## 秘宝匣柜台呈现细则(迭代 22 实装态,2026-10-12)
|
||||
|
||||
秘宝匣柜台=解锁面+同调装配段两部分(数据投影=`treasure_shop_status` 单点):
|
||||
|
||||
- **解锁面**:逐件一行——钥石购买件带**购买钮**(余额不足=禁用态不隐藏;已解锁=钮消失转已解锁态);条件解锁件带**条件进度呈现**(计数键现值/阈值,如「通关 2/3」);件名后缀·档位(普通/优秀/稀有);悬停浮窗=行 `desc` 直读。
|
||||
- **装配段**(同调装配):装配行带**档位标签**(件档≤格档约束的可见面);未解锁件**禁装**(列表不可选);满位禁选;每件固定占 1 格。
|
||||
- **空目录合法态**:白板档(12 件全未解锁)柜台零可装行=合法态非缺陷(装配面空目录断言 V18 在役)。
|
||||
- **状态面板只读概览**:局内状态面板秘宝匣段=12 行只读清单(解锁态+装配态概览,零写入口——装配只在营地)。
|
||||
- 机制权威=元进度/秘宝.md;本节只锁呈现规则。
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v1.4 | 2026-10-13 | **状态面板改名批补漏(用户质询发现——原改名批漏扫本文件:批内 grep 路径误写 design/ux/〔不存在〕致假阴性「零命中」)**:正文两处换代(双入口框架句+秘宝匣段「状态面板只读概览」,均括注改名来历;版本历史行内旧名按历史记载保留)。机制零改动 |
|
||||
| v1.0 | 2026-09-30 | 首版落文(审计拍板点 4A 裁决:乙案新建+元进度配套更改;9A 视觉终稿实态成文) |
|
||||
| v1.1 | 2026-10-09 | 文档正确性审查批:①头注「M-3 迭代 9」前缀按里程碑口径删除只留「迭代 9」;②口径节「暂停层入口未实装(随 HUD 批 M-4)」过期订正——暂停层只读入口已实装(迭代 17 卡③,2026-10-06,实机目检待用户) |
|
||||
| v1.2 | 2026-10-10 | 「道具工坊」改名「秘宝匣」扫改(2026-10-10 天赋树设计会话裁):定位句与三柜台列两处。机制零改动 |
|
||||
| v1.3 | 2026-10-12 | **迭代 22 反哺落文批(实现报告 §三⑤,用户裁「落文」)**:新增「秘宝匣柜台呈现细则」节(购买钮禁用态/条件进度/名后缀·档位/装配行档位标签/未解锁禁装/悬停 desc/空目录合法态/暂停层 12 行只读概览);三柜台列秘宝匣行换代指路;退役/封存件呈现语义口径随旧目录删除消解(历史语义留版本历史)。机制零改动 |
|
||||
| v1.5 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 0 处;文头状态行失同步修复——原标 v1.1〔2026-09-30〕滞后于版本历史最新行 v1.4〔2026-10-13 状态面板改名批补漏〕,本行对齐。机制零改动 |
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
> **Status**: Complete(核心 8 成文〔2 号已退役留档〕+ 12 目录占位)
|
||||
> **Author**: user + ux-designer
|
||||
> **Last Updated**: 2026-09-20(退役术语扫描批:pattern 2 退役留档、pattern 8 消费面注记、未生效类行枚举收敛,见文末修订记录)
|
||||
> **Last Updated**: 2026-10-15(简明技术中文用语规范批:词面修正 6 处,见文末修订记录)
|
||||
> **Template**: Interaction Pattern Library
|
||||
> **来源**: `design/gdd/ux/battle.md`(2026-09-12 /ux-review APPROVED)已拍板内容的成文固化——本库不引入新设计决策
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
| 16 | 清图/换图演出编排 | Feedback | **已实现·占位级**(board_fx_view.gd 金粒彩纸——规格随战斗表现 美术批补) |
|
||||
| 17 | 胜利/失败终局编排 | Feedback | **已实现·占位级**(battle_end_overlay.gd——规格随战斗表现补) |
|
||||
| 18 | Boss 遭遇演出 | Feedback | **已实现·占位级**(紫赤影子——规格随战斗表现补) |
|
||||
| 19 | 库存常读列表 | Data Display | **已实现**(inventory_panel_view.gd——规格全文待补;载体变更留档:现行载体=C 区道具槽) |
|
||||
| 19 | 库存常读列表 | Data Display | **占位失效**(所记载体 inventory_panel_view.gd 从未入库〔git 全史零记录,2026-10-09 复核〕;库存面已随秘宝过渡形态退役——C 区现行秘宝槽=装配呈现面、重接归装配面批次,见 battle.md 组件清单) |
|
||||
| 20 | 标准控件组(button/progress bar/list) | Control | **已实现**(ui_kit.gd 直角细线/凸圆角——规格全文待补) |
|
||||
|
||||
MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab bar——战斗屏无此需求;TunePanel slider 为调试专用。
|
||||
@@ -56,7 +56,7 @@ MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab
|
||||
**Description**: 玩家意图被核心拒绝时,反馈必须同时做到:(a) 每次拒绝玩家可感知(防静默拒绝读感欺骗);(b) 来源可区分——棋盘面(排雷玩法判,携 sub_reason 封闭枚举)/资源面(行动经济判,客户端推断)/相位(排雷玩法 ActionOutcome)三源各异;(c) 图标+文案双通道,非色相独载。
|
||||
|
||||
**Specification**:
|
||||
- 触发:`ActionOutcome{accepted=false, reject_reason, sub_reason}` **返回值驱动**(拒绝无事件外发——排雷玩法发射面封闭,实现层不得等待拒绝信号)
|
||||
- 触发:`ActionOutcome{accepted=false, reject_reason, sub_reason}` **返回值驱动**(拒绝无事件外发——排雷玩法发射面封闭,实现层禁止等待拒绝信号)
|
||||
- 反馈映射:board_face → 目标格危险红 `#A8321F` 边框闪(拒绝语义红族——旗朱→封印紫→封印黑 #000000,2026-09-28 用户拍板现行) + toast 具体原因(sub_reason→文案映射表:not_adjacent/target_revealed/target_concealed/flag_present/flag_absent/no_path/out_of_catalog);resource_face → 对应资源数字脉冲(AP/RAP)+「AP 不足 · 剩 0 点」式文案;phase → toast(结算中/非挖掘期)
|
||||
- 即时性:拒绝当帧呈现;toast 自动消退 2.5s
|
||||
- **voided 区分**:作废 ≠ 拒绝(零效果零扣费零事件)——须独立文案如「本轮已清图,停手未执行 · 剩余 AP 已作废」,至少 stop 作废可感知
|
||||
@@ -129,7 +129,7 @@ MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab
|
||||
|
||||
**Specification**:
|
||||
- 形态:`●●●●●○○○` + 「5/8」;直角细线数据框(信息=直线直角,art-bible §3.3)
|
||||
- 更新触发:组合根每次调用返回后重查(**行动经济无推送信号**——实现层不得等待资源变更事件)
|
||||
- 更新触发:组合根每次调用返回后重查(**行动经济无推送信号**——实现层禁止等待资源变更事件)
|
||||
- 拒绝反馈:资源不足时数字脉冲(pattern 1 的 resource_face 腿)
|
||||
- Accessibility:点阵=形状通道、数字=文本通道;对比 ≥4.5:1
|
||||
|
||||
@@ -150,7 +150,7 @@ MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab
|
||||
**Specification**:
|
||||
- 打开:遮挡物隐藏或禁用 + 输入锁定;单一模态栈(无叠模态)
|
||||
- 关闭:恢复被遮挡物;关闭按钮/再点入口切换
|
||||
- 内容:固定槽高 + clip_contents(缺陷①——悬停文案换行不得推挤布局)
|
||||
- 内容:固定槽高 + clip_contents(缺陷①——悬停文案换行禁止推挤布局)
|
||||
- 验收:**场景级断言「打开时遮挡物隐藏/输入锁定」为每个模态 overlay 的强制 AC**(battle.md 场景级测试节)
|
||||
|
||||
**When to Use**: 全屏打断级信息、只读回看、仪式性终局
|
||||
@@ -165,7 +165,7 @@ MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab
|
||||
**Category**: Feedback
|
||||
**Used In**: 弃图刷新(RAP−8 消耗 + 旧板弃置)
|
||||
|
||||
**Description**: 消耗性/不可逆操作的确认交互与常规确认**不同位**——位置通道是色盲安全冗余(art-bible §4.5 清单 #7:UI 红/金强调对需图标+文案冗余,且破坏性确认不得与常规确认同位)。
|
||||
**Description**: 消耗性/不可逆操作的确认交互与常规确认**不同位**——位置通道是色盲安全冗余(art-bible §4.5 清单 #7:UI 红/金强调对需图标+文案冗余,且破坏性确认禁止与常规确认同位)。
|
||||
|
||||
**Specification**:
|
||||
- 弃图刷新:确认微交互显式呈现全部代价(RAP−8 · **旧板旗随旧板作废**提示);确认交互位置与常规确认不同位
|
||||
@@ -182,7 +182,7 @@ MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab
|
||||
### 8. 禁用态即理由(disabled-state with reason)
|
||||
|
||||
**Category**: Feedback
|
||||
**Used In**: (现无消费面——原道具窗口满血治疗包随可选类道具退役 2026-09-15;本条保留为通用模式,消费面随秘宝 Alpha 重设计回归)
|
||||
**Used In**: 商店购买钮余额不足置灰(shop.md)/ 三选一与商店 GP 刷新钮余额不足禁用(node-reward.md、秘宝.md「三选一刷新双源」节)——原道具窗口满血治疗包消费面随可选类道具退役 2026-09-15,本条保留为通用模式
|
||||
|
||||
**Description**: 禁用不许静默——灰置必须伴随**可见的禁选原因**(tooltip/toast),防「为什么点不动」的困惑。
|
||||
|
||||
@@ -203,13 +203,13 @@ MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab
|
||||
- **目录 #9–#20 已全部实现**(2026-09-12 战斗屏实现批,冒烟 149/149 + 三探针全绿);规格全文回写 = HUD框架正式化批义务
|
||||
- 实现期新增技术件(不单独立 pattern,规格归并):去饱和+金橙状态切换 = 逐格共享 ShaderMaterial(明度不变,gl_compatibility 安全);敌人死亡残位 = 卡体灰化+碎裂禁瞬消(归入 #17 终局编排规格)
|
||||
- **MVP 未使用标准控件**:toggle / dropdown / input field / tab bar(无需求不设占位);TunePanel slider 为调试专用不入库
|
||||
- **实现偏差规则**:pattern 近似但不完全适配时,实现层不得静默变体——登记偏差交 ux-designer 复核后回写
|
||||
- **实现偏差规则**:pattern 近似但不完全适配时,实现层禁止静默变体——登记偏差交 ux-designer 复核后回写
|
||||
|
||||
---
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. 目录占位项的补全时点 = 实现期随批回写(owner:ui-programmer → ux-designer 复核)
|
||||
1. 目录占位项的补全时点 = 实现期顺带回写(owner:ui-programmer → ux-designer 复核)
|
||||
2. Gamepad 批次引入时,需为 pattern 4/12/15 增补手柄映射节(焦点序已在 battle.md OQ8 留位)
|
||||
|
||||
---
|
||||
@@ -220,3 +220,6 @@ MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab
|
||||
|---|---|
|
||||
| 2026-09-15 | 雾格残留清理:pattern 1 无改;pattern 4 的悬停预承诺消歧依据改按格态两态表述;目录 #10 一次性非模态提示的已实现说明去掉雾首遇、只留 chord 提示。pattern 库不引入新决策 |
|
||||
| 2026-09-20 | 退役术语扫描批(用户拍板):pattern 2 原位窗口激活退役留档(唯一消费面轮末道具窗口随 2026-09-15 可选类道具删除下线——编号留空防交叉引用失锚,照 battle.md 布局决策 2 先例);pattern 8 禁用态即理由 Used In/Reference 去道具窗口引用(保留为通用模式);聚合纪律未生效类行枚举收敛为奖励未生效 |
|
||||
| 2026-10-09 | 文档正确性审查批:pattern 8「Used In 现无消费面、消费面随秘宝 Alpha 重设计回归」过期订正——消费面在役 = 商店购买钮余额不足置灰、三选一/商店 GP 刷新钮余额不足禁用 |
|
||||
| 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):目录 #19「库存常读列表」状态订正——所记载体 inventory_panel_view.gd 经 git 全史复核**从未入库**(「已实现」系失实登记),库存面已随秘宝过渡形态退役,状态改「占位失效」 |
|
||||
| 2026-10-15 | **简明技术中文用语规范批(用户令,词面层)**:词面修正 6 处——不得×5→禁止(pattern 1 触发条/pattern 5 更新触发条/pattern 6 内容条/pattern 7 Description/pattern 偏差规则);随批×1→顺带(Open Questions 目录占位补全时点条);Last Updated 同步本批 |
|
||||
@@ -1,8 +1,8 @@
|
||||
# UX Spec: 关卡结算屏(Level Clear)——提升三选一选择面
|
||||
|
||||
> **Status**: v2 义务锁定版(2026-10-01 迭代 10 奖励重构批重写——三件套快照展示退役,改三选一选择交互;呈现形态随实装批定,视觉终稿以表现层样张为前置,见 P1/OQ4;**本批渲染层验证冻结——目检清单随批交付、实机目检待用户批准**)
|
||||
> **Status**: v2 义务锁定版(2026-10-01 迭代 10 奖励重构批重写——三件套快照展示退役,改三选一选择交互;呈现形态随实装批定,视觉终稿以表现层样张为前置,见 P1/OQ4;**本批渲染层验证冻结——目检清单顺带交付、实机目检待用户批准**)
|
||||
> **Author**: user + ZCode(UX 文档欠账处置批;迭代 10 重写)
|
||||
> **Last Updated**: 2026-10-01
|
||||
> **Last Updated**: 2026-10-15(简明技术中文用语规范批:词面修正 4 处;原标 2026-10-01 滞后于 2026-10-09 两条修订记录,本批一并对齐)
|
||||
> **Platform Target**: PC (Steam)——Keyboard/Mouse 主,全部操作纯鼠标可完成(同 battle.md)
|
||||
> **Template**: UX Spec
|
||||
> **来源**: battle.md OQ8 欠账处置(2026-09-27 用户拍板建档)+ 迭代 10 奖励重构批(2026-09-30 用户拍板案丙——三选一/部分回血/钥石挪转,计划书 m3-iter10-loop-plan-2026-09-30.md)
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
一句话目的:**让「打穿了一关」的收束感落在一笔算得清的账上,并把「这关带我变强」变成玩家自己做的决定。**
|
||||
|
||||
- 提升三选一承载局内成长的选择权:池六种加权抽三、点选一件兑付、另两件丢弃不可反悔
|
||||
- 专长三选一承载局内成长的选择权:候选 = 纯专长(通关渠道只出专长——迭代 15② 渠道分离)、点选一件兑付、另两件丢弃不可反悔
|
||||
- 部分回血承载收束反馈:通关不再自动回满,回血量一眼可读(满血回 0 合法)
|
||||
- 钥石增量**不在本屏**(迭代 10 起):Boss 击杀进账时刻的钥石增量行已迁战斗总结结算([settlement-summary.md](settlement-summary.md) v1.1)——单一展示面原则,本屏不重复
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
| 时刻 | 载体(目标形态,迭代 10 实装) | 呈现内容 |
|
||||
|---|---|---|
|
||||
| Boss 战胜利(非末关) | 战斗总结结算([settlement-summary.md](settlement-summary.md))→ 确认后进**本屏** | 战利品行含钥石增量行 → 本屏:部分回血反馈 + 三选一三卡 |
|
||||
| 非末关通关(本屏默认态) | 中场覆盖层改三选一选择交互(_inter_overlay 位置复用) | 部分回血兑付行 + 三张提升选项卡(点选+确认+兑付反馈) |
|
||||
| 非末关通关(本屏默认态) | 三选一覆盖层(curio_pick_overlay——与奖励节点共用面) | 部分回血兑付行 + 三张专长选项卡(点选+确认+兑付反馈) |
|
||||
| 末关通关 / 失败 / 放弃 | 冒险结算(复用战斗终局 overlay) | 冒险摘要五件事 + 钥石入账明细——**相邻域**(冒险终结面,非本屏职责) |
|
||||
|
||||
## Navigation Position
|
||||
@@ -56,10 +56,10 @@
|
||||
|
||||
按 2026-09-26 信息归属两铁律(循环口径 + 单一展示面)过闸后的准入清单:
|
||||
|
||||
1. **三张提升选项卡**(第一注视点):件名称 + 一行效果读数(值读冒险表)——选择型奖励的本体;已达次数上限的件不出现(剔牌库在先);**秘宝件直显掷定的具体道具**(「秘宝 / 探巢摆钟 · 真视 3×3」——掷定前置,候选抽定时掷定具体道具,追加批二)
|
||||
1. **三张提升选项卡**(第一注视点):件名称 + 一行效果读数(值读冒险表)——选择型奖励的本体;已达次数上限的件不出现(剔牌库在先);候选 = 纯专长(迭代 15② 渠道分离——原六种池抽三与秘宝件直显分别随迭代 12 TP0/迭代 11①退役)
|
||||
2. **部分回血兑付行**:回血量(前后生命读数,如「生命 34 → 42」);满血回 0 时呈「生命已满」反馈而非 0 字样
|
||||
3. **兑付反馈**(确认后):选中件效果一行(如「攻击 +1」)+ 另两件已丢弃提示
|
||||
4. **同调位替换子交互**(条件呈现):选秘宝件且库存满位时——现有件 + 新件共 N+1 选 N 的子面板:每件「丢弃换新」钮 +「放弃新件」钮;终态恒 ≤ 同调位
|
||||
4. ~~同调位替换子交互~~(已随渠道退役:秘宝件自迭代 11① 起不再入三选一池、通关候选 = 纯专长,本屏无道具件候选——替换子交互不于本屏触发;同调装配归营地)
|
||||
|
||||
**禁入清单**(两铁律推导):战斗小循环数据(结算明细、状态效果——留在战斗屏);GP(呈现位已拍板 = 战斗总结结算 + 关卡画面常驻);**钥石增量与累计**(迭代 10 起归战斗总结结算增量行 + 冒险总结结算收束明细——本屏零钥石元素);营地柜台全量;冒险摘要五件事(末关时由相邻域冒险结算屏承载);已达上限件(不出现在候选)。
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
| State | Trigger | What Changes |
|
||||
|---|---|---|
|
||||
| 三选一选择态(默认) | 非末关通关,候选已抽定 | 三卡呈现(零自动推进)→ 点选 → 确认 → 兑付反馈 → 继续 |
|
||||
| 同调位替换子态 | 点选秘宝件且库存满位 | 子面板 N+1 选 N;两路出口(丢旧收新 / 放弃新件)后回主态兑付 |
|
||||
| ~~同调位替换子态~~ | ~~点选秘宝件且库存满位~~ | 已随渠道退役(秘宝件出池、通关候选 = 纯专长——本屏无道具件候选) |
|
||||
| 兑付反馈态 | 确认兑付后 | 选中件效果一行 + 丢弃提示 → 继续钮点亮 |
|
||||
| 末关通关 | level_clear 且末关 | 直通冒险结算——不发三选一与回血(奖励只朝下一战生效);本屏不出现 |
|
||||
| Boss 入口语境 | 击杀 Boss(恒为本屏入口前置) | 入口演出归战斗屏;钥石增量行归战斗总结结算——本屏不另设 |
|
||||
@@ -77,10 +77,10 @@
|
||||
|
||||
| 组件 | 动作 | 输入 | 即时反馈 | 结果(经组合根) |
|
||||
|---|---|---|---|---|
|
||||
| 提升选项卡 ×3 | 点选(单选高亮) | 左键 | 选中卡高亮、确认钮点亮 | 选中态暂存(未确认可改选);点选秘宝件遇满位 → 替换子面板 |
|
||||
| 提升选项卡 ×3 | 点选(单选高亮) | 左键 | 选中卡高亮、确认钮点亮 | 选中态暂存(未确认可改选) |
|
||||
| 确认钮 | 兑付选中件 | 左键 | 兑付反馈(效果一行) | AdventureRunner 兑付恰一件(重复兑付被拒);另两件丢弃不可反悔 |
|
||||
| 继续钮 | 接受结算、推进 | 左键 | 按钮下压 | 下一关开始(AdventureRunner.continue_to_next_level——兑付后受理) |
|
||||
| 替换子面板钮 ×N+1 | 丢旧收新 / 放弃新件 | 左键 | 子面板关闭 | 库存终态恒 ≤ 同调位;原三选一兑付继续 |
|
||||
| ~~替换子面板钮~~ | —— | —— | —— | 已随渠道退役(本屏无道具件候选) |
|
||||
|
||||
复用既有交互范式,零新增原语:三卡点选 = 奖励节点 choice_box 按钮数组同族(node_overlay.show_reward_items 先例)+ 选路覆盖层点选确认两段式(level_map_screen 先例);覆盖层容器 = 中场确认覆盖层位置复用。
|
||||
|
||||
@@ -88,10 +88,10 @@
|
||||
|
||||
| Data | Source System | Read / Write | Notes |
|
||||
|---|---|---|---|
|
||||
| 三候选(件 id/名称/效果行值) | 冒险结构 bonus_pick 信号(加权洗牌掷 3,reward_pick 封闭流) | Read | 载荷自包含、despawn 前捕获;同种子同三候选(可复放) |
|
||||
| 三候选(件 id/名称/效果行值) | 冒险结构 bonus_pick 信号(令牌池洗牌不放回抽 3〔同 kind 去重——v0.14 令牌池换代口径,原「加权洗牌」退役〕,reward_pick 封闭流) | Read | 载荷自包含、despawn 前捕获;同种子同三候选(可复放) |
|
||||
| 部分回血读数(回血前后生命) | 冒险结构生命账本(clear_heal_pct 兑付) | Read | 满血回 0 合法态文案化 |
|
||||
| 兑付反馈载荷 | 冒险结构 bonus_resolved 信号 | Read | 选中件 id + 生效值 |
|
||||
| 同调位库存(现有件清单) | 秘宝库存(关卡域) | Read | 替换子态数据源;上限 = transitional_sync_slots(过渡键) |
|
||||
| ~~同调位库存~~ | —— | —— | 替换子态随渠道退役;过渡键 transitional_sync_slots 已退役(迭代 11① T7——同调位现行事实源 = attunement_growth.tres 谓词表实时求值) |
|
||||
| 冒险摘要(五件事) | 冒险结构 adventure_finished 载荷 | Read | 末关分支数据锚(相邻域冒险结算屏消费) |
|
||||
| GP 账本 | 冒险结构 GP 冒险账本 | — | 不进本屏(维持 2026-09-27 拍板) |
|
||||
| 钥石入账 | 元进度 settle_adventure | Write(相邻域) | 唯一写档点不变;**本屏零钥石元素**(迭代 10 起,增量行迁战斗总结结算) |
|
||||
@@ -105,7 +105,7 @@
|
||||
- [ ] 非末关通关必经本屏:三选一恰呈现一次(零自动推进)、点选后恰兑付一件(重复兑付被拒)、未选项零生效
|
||||
- [ ] 三候选读数可见且与 bonus_pick 载荷一致(件名称 + 效果行值);同种子同三候选
|
||||
- [ ] 部分回血兑付行可见且封顶上限;满血回 0 呈合法态文案
|
||||
- [ ] 同调位替换子交互:满位收新触发 N+1 选 N,丢旧收新与放弃新件两路终态恒 ≤ 同调位
|
||||
- [ ] ~~同调位替换子交互~~(已随渠道退役——本屏无道具件候选,见 Information Hierarchy 第 4 条注)
|
||||
- [ ] 末关通关分支正确直通冒险结算(不发三选一与回血),冒险摘要五件事完整
|
||||
- [ ] 确认前冒险状态冻结(无后台推进、无战斗事件串扰);选择停点中断 → 续玩已选不丢失(**候选一致性=停点快照承载的实现现状、非验收义务**——2026-10-01 用户裁决)
|
||||
- [ ] 呈现遵循 HUD框架 可访问性基线(对比 ≥4.5:1、字号下限、纯鼠标可完成;减动效 = 静态化)
|
||||
@@ -113,11 +113,11 @@
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. **GP 增量展示面归属——已收口(2026-09-27 用户拍板)**:战斗胜利出现战斗总结结算、展示获得的资源(GP 增量+总量;迭代 10 起追加 Boss/精英钥石增量行);战斗失败出现冒险总结结算、确认后回存档首页。本屏不承载 GP 与钥石,无遗留。两面呈现 spec:[settlement-summary.md](settlement-summary.md) v1.1
|
||||
1. **GP 增量展示面归属——已完成(2026-09-27 用户拍板)**:战斗胜利出现战斗总结结算、展示获得的资源(GP 增量+总量;迭代 10 起追加 Boss/精英钥石增量行);战斗失败出现冒险总结结算、确认后回存档首页。本屏不承载 GP 与钥石,无遗留。两面呈现 spec:[settlement-summary.md](settlement-summary.md) v1.1
|
||||
2. **末关分支形态**:末关通关时直通冒险结算(现行维持)——随完整屏形态实装批一并定
|
||||
3. **钥石呈现三面化——已收口(迭代 10 契约 6 推荐案)**:战斗总结结算(Boss/精英击杀增量行)+ 冒险总结结算(收束明细)+ 营地存量——「进账时刻 / 收束明细 / 存量可用」不同义不构成重复展示;本屏旧「钥石增量+累计」呈现随大奖励重构退役
|
||||
4. **视觉终稿**:以表现层样张过审为前置(06 待办登记);本 spec 的 AC 为功能性判据,不含视觉终稿判据。**本批渲染层验证冻结(用户 2026-10-01)**——实装后目检清单随批交付,实机目检待用户批准后补闸
|
||||
5. **替换子交互视觉形态**:本批锁定功能性判据(N+1 选 N、两路出口、终态 ≤ 上限);卡面/面板布局视觉归样张批
|
||||
3. **钥石呈现三面化——已完成(迭代 10 契约 6 推荐案)**:战斗总结结算(Boss/精英击杀增量行)+ 冒险总结结算(收束明细)+ 营地存量——「进账时刻 / 收束明细 / 存量可用」不同义不构成重复展示;本屏旧「钥石增量+累计」呈现随大奖励重构退役
|
||||
4. **视觉终稿**:以表现层样张过审为前置(06 待办登记);本 spec 的 AC 为功能性判据,不含视觉终稿判据。**本批渲染层验证冻结(用户 2026-10-01)**——实装后目检清单顺带交付,实机目检待用户批准后补闸
|
||||
5. **替换子交互视觉形态——已随渠道退役**:秘宝件出池后本屏无道具件候选,替换子交互不于本屏触发(原功能性判据留档)
|
||||
|
||||
---
|
||||
|
||||
@@ -126,6 +126,9 @@
|
||||
| 日期 | 改动 |
|
||||
|---|---|
|
||||
| 2026-09-27 | 初稿(UX 文档欠账处置批,用户拍板建档):义务锁定版——大奖励三件套/钥石入账/清库反馈预留成文;现行载体(_inter_overlay 与 BattleEndOverlay 复用)与代码锚如实登记;GP 归属两处登记不一致挂 OQ1,拍板前不新增 GP 呈现义务 |
|
||||
| 2026-09-27 | GP 归属拍板对齐批(用户口径:战斗胜利→战斗总结结算展示获得资源〔目前 GP〕;战斗失败→冒险总结结算→确认回存档首页):OQ1 收口——GP 总量+增量归战斗胜利总结结算(battle.md OQ14 为准),本屏不承载 GP;OQ3 收口——「结算画面」指认 = 冒险总结结算,大奖励屏钥石进账 + 冒险总结结算明细两处并存维持;信息归属 GP 移入禁入清单;Data Requirements GP 行改零访问;06 归属行同步修正 |
|
||||
| 2026-09-27 | GP 归属拍板对齐批(用户口径:战斗胜利→战斗总结结算展示获得资源〔目前 GP〕;战斗失败→冒险总结结算→确认回存档首页):OQ1 完成——GP 总量+增量归战斗胜利总结结算(battle.md OQ14 为准),本屏不承载 GP;OQ3 完成——「结算画面」指认 = 冒险总结结算,大奖励屏钥石进账 + 冒险总结结算明细两处并存维持;信息归属 GP 移入禁入清单;Data Requirements GP 行改零访问;06 归属行同步修正 |
|
||||
| 2026-09-27 | 关卡画面 UX spec 建档联动:§Navigation Position 下游屏行挂 level-map.md 屏级 spec 指针。零机制改动 |
|
||||
| 2026-10-01 | **三选一选择交互重写(迭代 10 奖励重构批——用户 2026-09-30 拍板案丙;T2 UX spec 卡)**:①Purpose/载体/导航/进出/层级/状态/交互/数据全节重写——「大奖励三件套快照展示」退役,改「部分回血反馈 + 提升三选一三卡点选 + 确认兑付 + 同调位替换子交互」;②钥石元素全屏退役(增量行迁战斗总结结算,禁入清单机检化);③交互范式 = choice_box 按钮族 + 选路两段式复用,零新增原语;④AC 五条改写 + 断点中断/减动效/禁入机检三条新增;⑤OQ3 改钥石三面化收口、OQ5 改替换子交互视觉归样张批 |
|
||||
| 2026-10-01 | **三选一选择交互重写(迭代 10 奖励重构批——用户 2026-09-30 拍板案丙;T2 UX spec 卡)**:①Purpose/载体/导航/进出/层级/状态/交互/数据全节重写——「大奖励三件套快照展示」退役,改「部分回血反馈 + 提升三选一三卡点选 + 确认兑付 + 同调位替换子交互」;②钥石元素全屏退役(增量行迁战斗总结结算,禁入清单机检化);③交互范式 = choice_box 按钮族 + 选路两段式复用,零新增原语;④AC 五条改写 + 断点中断/减动效/禁入机检三条新增;⑤OQ3 改钥石三面化完成、OQ5 改替换子交互视觉归样张批 |
|
||||
| 2026-10-09 | 文档正确性审查批(在役态对齐):①三选一候选订正——自迭代 15② 渠道分离起通关三选一 = 纯专长(原「六种池加权抽三」与秘宝件直显条款退役);②同调位替换子交互全节退役(秘宝件迭代 11① 出池后本屏无道具件候选);③过渡键 transitional_sync_slots 引用删除(同调位现行事实源 = attunement_growth.tres);④载体组件名订正 = curio_pick_overlay(与奖励节点共用面) |
|
||||
| 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):Data Requirements 三候选行「加权洗牌掷 3」漏网旧口径清偿——冒险结构 v0.14 令牌池换代后 = 令牌池洗牌不放回抽 3(同 kind 去重),与冒险结构/关卡节点地图/node-reward 同口径 |
|
||||
| 2026-10-15 | **简明技术中文用语规范批(用户令,词面层)**:词面修正 4 处——随批×2→顺带(Status 行目检清单交付/OQ4 实装后目检清单交付);收口×2→已完成(OQ1 GP 增量展示面归属/OQ3 钥石呈现三面化);文头 Last Updated 滞后对齐(原 2026-10-01 → 本批) |
|
||||
+20
-17
@@ -1,8 +1,8 @@
|
||||
# UX Spec: 关卡画面(选路枢纽,Level Map)
|
||||
|
||||
> **Status**: 定稿版——三项设计提案已拍板收口(2026-09-27:底栏状态展示 / 图上点击选路·候选按钮退役 / 放弃二次确认);**形态已升格独立屏(2026-09-28 用户裁决:独立存在为最终形态)**;**视觉终稿已冻结(2026-09-28 关卡画面样张 v1 机检 11/11 全绿,闸形 A——冻结值见 Layout/组件清单与样张机检报告,M-2 迭代 4)**
|
||||
> **Status**: 定稿版——三项设计提案已拍板完成(2026-09-27:底栏状态展示 / 图上点击选路·候选按钮退役 / 放弃二次确认);**形态已升格独立屏(2026-09-28 用户裁决:独立存在为最终形态)**;**视觉终稿已冻结(2026-09-28 关卡画面样张 v1 机检 11/11 全绿,闸形 A——冻结值见 Layout/组件清单与样张机检报告,迭代 4)**
|
||||
> **Author**: user + ZCode(关卡画面 UX 批)
|
||||
> **Last Updated**: 2026-09-28
|
||||
> **Last Updated**: 2026-10-15(简明技术中文用语规范批:词面修正 6 处)
|
||||
> **Platform Target**: PC (Steam)——Keyboard/Mouse 主,全部操作纯鼠标可完成(同 [battle.md](battle.md))
|
||||
> **Template**: UX Spec
|
||||
> **覆盖范围**: 独立屏形态(关卡停点全景)· 入口停点 · 岔路停点 · 单链停点 · 放弃冒险入口
|
||||
@@ -60,11 +60,11 @@
|
||||
|
||||
### Layout Zones
|
||||
|
||||
按 1280×800 基座(ADR-0002)。本屏为独立屏独占呈现:屏底(深底 `BG_ROOT` + 石纹底噪〔M-1 框材组冻结件,缺位纯色回退〕)铺满,内容居中三段。
|
||||
按 1280×800 基座(2026-09-12 定)。本屏为独立屏独占呈现:屏底(深底 `BG_ROOT` + 石纹底噪〔迭代 2 框材组冻结件,缺位纯色回退〕)铺满,内容居中三段。
|
||||
|
||||
| 区 | 位置与尺寸 | 内容 |
|
||||
|---|---|---|
|
||||
| **顶栏语境** | 居中横排,图区上方,高约 32px | 左:关卡名(`level_row.display_name`,如「第二层 · 幽暗地域」);右:GP 常驻徽章(金币图标+数字,直角细线数据框——GP 值域超点阵适用档,走 pattern 5 的 When-NOT-to-Use 路线);HP 归底部状态栏(2026-09-27 拍板收口) |
|
||||
| **顶栏语境** | 居中横排,图区上方,高约 32px | 左:关卡名(`level_row.display_name`,如「第二层 · 幽暗地域」);右:GP 常驻徽章(金币图标+数字,直角细线数据框——GP 值域超点阵适用档,走 pattern 5 的 When-NOT-to-Use 路线);HP 归底部状态栏(2026-09-27 拍板完成) |
|
||||
| **节点图区** | 居中 | 整幅节点图自绘:节点方块 + 通道折线 + 节点态着色 + Boss 紫赤描边。画布随图自适应(**冻结公式**:宽 = 70+层深×122+34、高 = 52+槽位×58+26+8,下限 620×240——routebug 83c11a1 根修件);通道折线**冻结 2/3/4px**(未点亮石灰 STONE/候选亮金 GOLD_LIT/悬停加粗);节点方块 52×36 内**节点图标 20px 烘焙 1:1**(♻ kenney 五键:战=弓/赏=桂冠/疗=篝火/王=王冠/商=钱袋,WARM 单色、当前金底转深墨——双色墨制)+ 编号 10px 右上角 |
|
||||
| **底部状态栏** | 图区下方横排,高约 48px | 左-中:状态数据框组(直角细线,pattern 5 族)——生命(当前/上限 + 迷你血条)、属性(攻击 / 护甲 AC,有效值 + 加成角标)、本关加成(攻+X · 上限+Y · AC+Z,零加成隐藏);右端:放弃冒险按钮(危险红族文字,与状态数据框保持间距——破坏性确认异位,pattern 7) |
|
||||
|
||||
@@ -74,12 +74,12 @@
|
||||
|---|---|---|---|---|
|
||||
| 关卡名标签 | 文本 | `level_row.display_name`(关卡表行读数) | 只读 | 新建(现行标题位升级) |
|
||||
| GP 常驻徽章 | 直角细线数据框 | 金币图标 + 数字(`runner.gp`,冒险钱包读数;刷新经 `wallet_changed` 信号投影〔gain/buy/clear 三事件〕或写路径回执后重查) | 只读 | 新建(GP 去向拍板落地面) |
|
||||
| 节点图画布 | 自绘 Control | 节点图标(五键 20px 烘焙,双色墨制)+ 编号、通道折线、节点态着色、Boss 紫赤描边+深墨环(BOSS_PURPLE——2026-09-26 封印紫批语义:紫赤本色) | 悬停预承诺 / 点击提交选路(唯一通道) | ✅ level_map_screen.gd `_draw_graph`(视觉终稿已落码——M-2 迭代 4 T2/T3) |
|
||||
| 节点图画布 | 自绘 Control | 节点图标(五键 20px 烘焙,双色墨制)+ 编号、通道折线、节点态着色、Boss 紫赤描边+深墨环(BOSS_PURPLE——2026-09-26 封印紫批语义:紫赤本色) | 悬停预承诺 / 点击提交选路(唯一通道) | ✅ level_map_screen.gd `_draw_graph`(视觉终稿已落码——迭代 4 T2/T3) |
|
||||
| 状态数据框组 | 直角细线数据框 ×3 | 生命(当前/上限 + 迷你血条)、属性(攻击 / 护甲 AC 有效值 + 加成角标)、本关加成(加算区增量列表,零加成隐藏) | 只读 | 新建(2026-09-27 拍板:底栏状态展示) |
|
||||
| 放弃冒险按钮 | 按钮(危险红族) | 「放弃冒险(同失败结算——已获大奖励保留)」;二次确认态已拍板(见布局决策 3) | 点击(首击转确认态、二击提交) | ✅ level_map_screen.gd(可见性归组合根,仅冒险模式开) |
|
||||
| 标题行 | 文本 | 停点语境提示(见布局决策 1 三停点标题) | 只读 | ✅ level_map_screen.gd `_title`(措辞已按布局决策 1 改稿) |
|
||||
|
||||
**布局决策 1 —— 停点标题措辞修正(清偿台账 143 遗留)**:现行入口停点标题沿用「继续前进(战斗房)」,与「尚未走出第一步」的语境矛盾。三停点标题定稿:
|
||||
**布局决策 1 —— 停点标题措辞修正(清偿状态记录 143 遗留)**:现行入口停点标题沿用「继续前进(战斗房)」,与「尚未走出第一步」的语境矛盾。三停点标题定稿:
|
||||
|
||||
| 停点 | 候选数 | 标题 |
|
||||
|---|---|---|
|
||||
@@ -87,7 +87,7 @@
|
||||
| 单链停点 | 1 | 「继续前进」 |
|
||||
| 岔路停点 | ≥2 | 「选择下一节点」 |
|
||||
|
||||
**布局决策 2 —— 图上直接点击选路(2026-09-27 拍板)**:候选节点的亮金描边本身是可点目标,悬停预承诺(pattern 4)后点击即提交——**候选按钮整列退役,图上点击为唯一提交通道**。实装注记:route_overlay.gd 现行候选按钮列与 `press_candidate` 探针入口随实装批拆除改造(图上命中换板级公式族命中),ui_click_probe 选路段同步改写。
|
||||
**布局决策 2 —— 图上直接点击选路(2026-09-27 拍板)**:候选节点的亮金描边本身是可点目标,悬停预承诺(pattern 4)后点击即提交——**候选按钮整列退役,图上点击为唯一提交通道**。实装注记:route_overlay.gd 现行候选按钮列与 `press_candidate` 探针入口随实装批拆除改造(图上命中换整图公式族命中),ui_click_probe 选路段同步改写。
|
||||
|
||||
**布局决策 3 —— 放弃冒险二次确认(2026-09-27 拍板)**:放弃 = 整局冒险终结,不可逆(pattern 7 破坏性确认)。首击转入确认态(按钮文案变「再点一次确认放弃——不可逆」,危险红边框脉冲约 3 秒,超时回落),二击才提交。代价语义(已获大奖励保留、同失败结算)常驻按钮文案。
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
> 图为岔路停点示意(第二关行集):已过节点暗金(GOLD_DONE #68562C)、当前节点金、候选节点亮金描边、Boss 紫赤描边+外缘深墨细环(灰度冗余通道)。终稿 = 节点图标组(♻ kenney 五键已接线,样张 v1 冻结)+ 通道折线 2/3/4px(已落码,M-2 迭代 4)。
|
||||
> 图为岔路停点示意(第二关行集):已过节点暗金(GOLD_DONE #68562C)、当前节点金、候选节点亮金描边、Boss 紫赤描边+外缘深墨细环(灰度冗余通道)。终稿 = 节点图标组(♻ kenney 五键已接线,样张 v1 冻结)+ 通道折线 2/3/4px(已落码,迭代 4)。
|
||||
|
||||
---
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
| **悬停预承诺** | 悬停候选节点 | 该节点亮金描边加粗 + 所属通道增亮 + 光标切指针态;移出即回落(仅预承诺,点击才提交) |
|
||||
| **放弃确认态** | 首击放弃按钮 | 文案转确认语 + 危险红边框脉冲约 3 秒;超时或移出回落;二击提交 `abandon_requested` |
|
||||
| **换层进入** | 上一关结算确认 → 新关开始 | 本屏以新关卡数据淡入;屏底世界侧随层进换挡(**换层色板渐变挂点**——§2.7 切片档:只动色相/饱和、明度带归一,level_index→tint 表候选值 = art-bible §6.3 三关方向,终值归色板样张批;M-2 迭代 4 落挂点) |
|
||||
| **减动效** | 设置开关(切片期 TunePanel) | 淡入、描边脉冲等全部 tween 时长减半或跳终态(UiKit.motion 单点包装,同 battle.md 通道) |
|
||||
| **减动效** | 设置开关(设置面——迭代 8 卡④已转正,TunePanel 已退役) | 淡入、描边脉冲等全部 tween 时长减半或跳终态(UiKit.motion 单点包装,同 battle.md 通道) |
|
||||
|
||||
**无拒绝子态**:候选提交恒合法(候选集即合法集),本屏无资源面/棋盘面拒绝路径;战斗中放弃由组合根可见性封死(按钮只在选路停点可见——接口契约:战斗中放弃一律拒绝)。
|
||||
|
||||
@@ -153,7 +153,7 @@
|
||||
| 选路提交 | LevelRunner | **Write** | 唯一写路径 = `route_chosen` → 组合根 → `pick_next_node`;本屏零其他写面 |
|
||||
| 放弃请求 | 组合根 | **Write** | `abandon_requested` → 冒险终结流程(归冒险结构) |
|
||||
|
||||
**架构注记**:与 battle.md 同族——UI 不拥有任何游戏状态,全部读经核心只读面,全部写经组合根(ADR-0001/0003);呈现层直接订阅的推进信号属 HUD框架 已锁两线之一(战斗结算明细流水 + 关卡节点地图推进信号)。
|
||||
**架构注记**:与 battle.md 同族——UI 不拥有任何游戏状态,全部读经核心只读面,全部写经组合根;呈现层直接订阅的推进信号属 HUD框架 已锁两线之一(战斗结算明细流水 + 关卡节点地图推进信号)。
|
||||
|
||||
---
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
|
||||
## Localization Considerations
|
||||
|
||||
- **中文像素字体随包**(ADR-0003 硬前置,同 battle.md)
|
||||
- **中文像素字体随包**(硬前置,同 battle.md)
|
||||
- **按钮文案 4 汉字上限**:「放弃冒险」「确认放弃」;候选按钮为模板插值(「节点 N · 战斗房」),宽度按最长节点类型名(4 字)+ 编号预留,固定槽高 + clip 兜底
|
||||
- **关卡名**:`display_name` 最长 token「第三层 · 灰矮人矿城」(9 字符)——顶栏标签预留 40% 膨胀宽度
|
||||
- **数字格式**:全部整数;GP 徽章图标+数字不依赖文本承载语义
|
||||
@@ -200,7 +200,7 @@
|
||||
|
||||
**交互与流程**
|
||||
|
||||
- [ ] 三停点标题按布局决策 1 呈现(入口停点不再出现「继续前进(战斗房)」措辞——台账 143 遗留清偿)
|
||||
- [ ] 三停点标题按布局决策 1 呈现(入口停点不再出现「继续前进(战斗房)」措辞——状态记录 143 遗留清偿)
|
||||
- [ ] 候选提交经组合根唯一写路径(`route_chosen` → `pick_next_node`),到达即兑付;零自动推进(无任何不选而行的路径)
|
||||
- [ ] 图上点击为唯一选路提交通道(候选按钮退役,2026-09-27 拍板);悬停预承诺反馈可见;ui_click_probe 选路段随实装批改造后全绿
|
||||
- [ ] 底部状态栏三组读数可见且与 runner 现值一致(生命当前/上限、攻击/AC 有效值、本关加成增量——零加成隐藏);兑付确认返回后读数刷新
|
||||
@@ -217,9 +217,9 @@
|
||||
|
||||
## Open Questions
|
||||
|
||||
**已收口(2026-09-27 用户拍板,正文随拍板改写)**:① 底栏 = 状态展示(生命 + 属性 + 本关已选加成——原提案仅顶栏 HP 读数,用户扩为底栏状态栏);② 图上直接点击选路,候选按钮退役;③ 放弃冒险二次确认。
|
||||
**已完成(2026-09-27 用户拍板,正文随拍板改写)**:① 底栏 = 状态展示(生命 + 属性 + 本关已选加成——原提案仅顶栏 HP 读数,用户扩为底栏状态栏);② 图上直接点击选路,候选按钮退役;③ 放弃冒险二次确认。
|
||||
|
||||
**已收口(2026-09-28 样张 v1 机检全绿,闸形 A——正文随冻结改写)**:④ **视觉终稿**——节点图标形制/通道质感/画布公式/底栏数据框样式/屏底以关卡画面样张 v1 机检 11/11 全绿冻结落码(M-2 迭代 4;冻结值登记见机检报告 git 提交 9a79927,气质终审 = M-2 出口闸真人目检)
|
||||
**已完成(2026-09-28 样张 v1 机检全绿,闸形 A——正文随冻结改写)**:④ **视觉终稿**——节点图标形制/通道质感/画布公式/底栏数据框样式/屏底以关卡画面样张 v1 机检 11/11 全绿冻结落码(M-2 迭代 4;冻结值登记见机检报告 git 提交 9a79927,气质终审 = M-2 出口闸真人目检)
|
||||
|
||||
---
|
||||
|
||||
@@ -241,7 +241,10 @@
|
||||
|
||||
| 日期 | 改动 |
|
||||
|---|---|
|
||||
| 2026-09-28 | **视觉终稿冻结批(M-2 迭代 4 T1–T4,闸形 A:样张 v1 机检 11/11 全绿即冻结)**:Status 升格定稿版;Layout 节点图区冻结值成文(画布公式 70+层×122+34 / 52+槽×58+26+8 下限 620×240、通道 2/3/4px、节点图标 ♻ kenney 五键 20px 烘焙+双色墨制、编号右上角);已过态 = GOLD_DONE #68562C 冻结新值(旧 GOLD_DIM 对双色墨 <4.5:1 逼守);Accessibility 增 Boss 深墨环灰度冗余+对比断言承载注记;States 换层进入改「淡入+换层色板渐变挂点(§2.7 切片档)」;组件清单节点图画布实现锚更新;OQ ④ 视觉终稿收口;线框图注记随改。产物:样张 `artwork/mockups/level-map-sheet-v1-2026-09-28.png` + 机检报告 git 提交 9a79927 + 出口闸检查单 `design/qa/m2-exit-gate-checklist-2026-09-28.md` |
|
||||
| 2026-09-28 | **视觉终稿冻结批(M-2 迭代 4 T1–T4,闸形 A:样张 v1 机检 11/11 全绿即冻结)**:Status 升格定稿版;Layout 节点图区冻结值成文(画布公式 70+层×122+34 / 52+槽×58+26+8 下限 620×240、通道 2/3/4px、节点图标 ♻ kenney 五键 20px 烘焙+双色墨制、编号右上角);已过态 = GOLD_DONE #68562C 冻结新值(旧 GOLD_DIM 对双色墨 <4.5:1 逼守);Accessibility 增 Boss 深墨环灰度冗余+对比断言承载注记;States 换层进入改「淡入+换层色板渐变挂点(§2.7 切片档)」;组件清单节点图画布实现锚更新;OQ ④ 视觉终稿完成;线框图注记随改。产物:样张 `artwork/mockups/level-map-sheet-v1-2026-09-28.png` + 机检报告 git 提交 9a79927 + 出口闸检查单 `M2 出口检查单(已退役,git 历史可查)` |
|
||||
| 2026-09-28 | **形态升格独立屏批(M-2 迭代 3 T1,用户裁决:独立存在为最终形态,覆盖层实现定性=测试阶段形态)**:Status/覆盖范围/到达方式/Navigation Position——「模态覆盖层形态(暗幕 0.6 底层透出)」全量改写为「独立屏独占呈现(战斗屏宿主整体隐藏,零透出)」;Layout 屏底=深底+石纹底噪(M-1 框材件);Transitions=独立屏淡入 200ms(alpha 淡入非明度变化——art-bible §2);AC「模态纪律」条改「独立性断言」(激活期战斗屏隐藏/选路提交战斗节点后恢复/兑付覆盖层关闭后本屏恢复);节点/商店覆盖层「本屏域内弹出」语义随形态明确(本屏保持激活,模态栈遮挡恢复语义复用);实现锚改名 level_map_screen.gd(RouteOverlay 退役);battle.md 三处选路覆盖层措辞随改;视觉终稿前置改指 M-2 迭代 4 关卡画面样张 |
|
||||
| 2026-09-27 | 初稿(关卡画面 UX 批,用户拍板立项):占位升格版——信息层级五层/三分区布局/组件清单/三停点状态/交互与数据锚/AC 成文;停点标题措辞修正(清偿台账 143 遗留);GP 常驻徽章落地面(2026-09-26 二轮拍板去向,经 GP 归属拍板对齐批维持);三项提案挂 OQ(HP 常驻读数/图上直接点击选路/放弃二次确认)登记 06 待拍板;视觉终稿以表现层样张为前置。实现锚 = route_overlay.gd 程序化占位现行 |
|
||||
| 2026-09-27 | **三拍板收口批(用户逐项裁决)**:① 底栏 = 状态展示——生命/属性(攻击·AC 有效值)/本关已选加成三组常读(原提案顶栏 HP 扩为底栏状态栏,布局决策 4);② 图上直接点击选路定稿——候选按钮整列退役、图上点击为唯一提交通道(布局决策 2;press_candidate 探针面随实装批改造注记);③ 放弃冒险二次确认定稿(布局决策 3)。信息层级六层重排/组件清单/States/交互表/Data Requirements(属性与加成读数入口)/AC/线框图随改;06 拍板点条目解决移除(去向 = 本批台账 204) |
|
||||
| 2026-09-27 | 初稿(关卡画面 UX 批,用户拍板立项):占位升格版——信息层级五层/三分区布局/组件清单/三停点状态/交互与数据锚/AC 成文;停点标题措辞修正(清偿状态记录 143 遗留);GP 常驻徽章落地面(2026-09-26 二轮拍板去向,经 GP 归属拍板对齐批维持);三项提案挂 OQ(HP 常驻读数/图上直接点击选路/放弃二次确认)登记 06 待拍板;视觉终稿以表现层样张为前置。实现锚 = route_overlay.gd 程序化占位现行 |
|
||||
| 2026-09-27 | **三拍板完成批(用户逐项裁决)**:① 底栏 = 状态展示——生命/属性(攻击·AC 有效值)/本关已选加成三组常读(原提案顶栏 HP 扩为底栏状态栏,布局决策 4);② 图上直接点击选路定稿——候选按钮整列退役、图上点击为唯一提交通道(布局决策 2;press_candidate 探针面随实装批改造注记);③ 放弃冒险二次确认定稿(布局决策 3)。信息层级六层重排/组件清单/States/交互表/Data Requirements(属性与加成读数入口)/AC/线框图随改;06 拍板点条目解决移除(去向 = 本批状态记录 204) |
|
||||
| 2026-10-09 | 文档正确性审查批:States 减动效行「切片期 TunePanel」过期订正——减动效开关已转正设置面(迭代 8 卡④;TunePanel 随迭代 15 卡①退役) |
|
||||
| 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):正文四处里程碑前缀按 2026-10-09 口径清偿——「M-2 迭代 4」三处删前缀只留「迭代 4」(Status 行/节点图画布实现锚/线框图注记);「M-1 框材组冻结件」改「迭代 2 框材组冻结件」(git 9abf5ff 实证框材组=M-1 迭代 2) |
|
||||
| 2026-10-15 | **简明技术中文用语规范批(用户令,词面层)**:词面修正 6 处——收口×4→完成(Status 行三项提案拍板/顶栏语境行 HP 拍板注/Open Questions 两「已收口」头注→「已完成」);台账×2→状态记录(布局决策 1 清偿 143 遗留/AC 三停点标题条);Last Updated 同步本批 |
|
||||
@@ -1,24 +1,24 @@
|
||||
# 节点奖励屏 UX spec(node-reward)
|
||||
|
||||
> 状态:v2.4(2026-10-03 TP0 令牌池落地——三选一池改固定配额令牌池 70/25/3=98 张〔罕见档随道具件池种退役收窄〕,kind 六种+档位两维,恢复件新入池,MC 策略 316-f 落地)
|
||||
> 状态:v2.7(2026-10-15 简明技术中文用语规范(用户令)批——词面修正 1 处;池与交互形态同 v2.4)
|
||||
> 事实源:`game/presentation/views/curio_pick_overlay.gd`(三选一覆盖层共用面)+ `main.gd`(奖励节点分支——`adventure.node_bonus_candidates/apply_node_bonus`)+ `battle_narrator.gd`(node_bonus_header)
|
||||
> 相邻:[level-clear](level-clear.md)(通关三选一面——同一覆盖层的另一上下文)/ [level-map](level-map.md)(关卡画面)/ [秘宝](../systems/排雷循环/秘宝.md)(道具件内容权威——本批起为局外同调件,不再入三选一牌库)/ [冒险结构](../systems/冒险循环/冒险结构.md)(共享池令牌库账本)
|
||||
> 相邻:[level-clear](level-clear.md)(通关三选一面——同一覆盖层的另一上下文)/ [level-map](level-map.md)(关卡画面)/ [秘宝](../systems/跨局循环/秘宝.md)(道具件内容权威——本批起为局外同调件,不再入三选一牌库)/ [冒险结构](../systems/冒险循环/冒险结构.md)(共享池令牌库账本)
|
||||
|
||||
## 定位
|
||||
|
||||
奖励节点(reward node)到达即开的**提升三选一选择面**:与通关三选一共享同一令牌池(**六种×档位**:攻击/生命上限/护甲/GP 袋/行动点件/恢复件 × 普通/稀有/罕见——v2.2 起秘宝件随同调批退役出池;v2.4 起=固定配额令牌池)——同库、同池耗语义、同 reward_pick 封闭流。与通关面的差异仅在上下文:无部分回血、无钥石增量行,兑付后「继续」回图选路(不推进关卡)。
|
||||
奖励节点(reward node)到达即开的**提升三选一选择面**:**七种×档位**令牌池(攻击/生命上限/护甲/GP 袋/行动点件/恢复件/刷新件 × 普通/稀有/罕见——v2.2 起秘宝件随同调批退役出池;v2.4 起=固定配额令牌池;刷新件随迭代15② T6 入池〔稀有 2,恢复件同批挤占收窄——adventure_table CURIO_KINDS 第七类〕),与商店货架同库同账(v2.3)、同池耗语义、同 reward_pick 封闭流。**通关三选一自迭代 15② 渠道分离起候选 = 纯专长,与本面不再同池**;与通关面的差异另在上下文:无部分回血、无钥石增量行,兑付后「继续」回图选路(不推进关卡)。
|
||||
|
||||
## 布局与交互
|
||||
|
||||
- 载体 = 提升三选一覆盖层(BonusPickOverlay,与 [level-clear](level-clear.md) 共用组件——零新增交互原语)。
|
||||
- 头部行:「关卡奖励点 / 从提升池抽三选一(与通关三选一同池同权重同上限):选择一件带走:」(Narrator.node_bonus_header)。
|
||||
- 载体 = 提升三选一覆盖层(CurioPickOverlay——curio_pick_overlay.gd,与 [level-clear](level-clear.md) 共用组件——零新增交互原语)。
|
||||
- 头部行:「关卡奖励点 / 从提升池抽三选一(与通关三选一同池同权重同上限):选择一件带走:」(Narrator.node_bonus_header——文案「与通关三选一同池同权重同上限」滞后于迭代 15② 渠道分离,现行通关候选 = 纯专长;文案换代归内容批,已呈报)。
|
||||
- 三卡点选(✓ 高亮,确认前可改选)→「确认选择」→ 兑付反馈(选中件效果 + 丢弃提示)→「继续」→ 回图选路(零自动推进同款)。
|
||||
- ~~秘宝件直显/满位替换~~(v2.1 两面随池种退役——迭代 11 第①批 T7;秘宝改走营地同调装配面,见[秘宝](../systems/排雷循环/秘宝.md))。
|
||||
- **三选一刷新**(v2.2 新增——P1 甲 X/Y 双源):装配「三选一刷新件」给 X 次(每次碰三选一重给、优先消耗、不结转)+ 营地「刷新升级」给 Y 次(每冒险开局注入冒险周期池、用完即无);刷新钮余量 >0 时现形,点按重抽三候选(reward_pick 既有洗牌流,池规则全保留:不放回/达上限剔牌/掷定前置直显/停点可中断)。autoplay 默认不刷(钓鱼归玩家)。
|
||||
- ~~秘宝件直显/满位替换~~(v2.1 两面随池种退役——迭代 11 第①批 T7;秘宝改走营地同调装配面,见[秘宝](../systems/跨局循环/秘宝.md))。
|
||||
- **三选一刷新**(v2.2 新增——P1 甲 X/Y 双源;机制现行事实源=[秘宝](../systems/跨局循环/秘宝.md)「三选一刷新双源」节,X 源承载件已随新目录批换代〔旧目录「三选一刷新件」退役→新目录「刷新练习」〕):装配「三选一刷新件」给 X 次(每次碰三选一重给、优先消耗、不结转)+ 营地「刷新升级」给 Y 次(每冒险开局注入冒险周期池、用完即无);刷新钮余量 >0 时现形,点按重抽三候选(reward_pick 既有洗牌流,池规则全保留:不放回/达上限剔牌/掷定前置直显/停点可中断)。autoplay 默认不刷(钓鱼归玩家)。
|
||||
|
||||
## 口径
|
||||
|
||||
- **同库同池耗(v2.4)**:池=固定配额令牌库(普通 70/稀有 25/罕见 3=98 张;罕见档原列「道具件 2」随 aux_item 池种退役〔迭代 11 第①批 T7,落地晚于追认 b〕收窄——台账自决披露项);洗牌不放回抽 3(**同 kind 去重每 kind 至多一枚**——「三种不同选项」体验延续,kind 出现率∝剩余令牌数)、选中踢池未选回池、池耗即枯竭(余库不足出齐剩余,空库=零候选合法态直通);**种类次数上限退役**(池消耗即上限)。数值对:小GP 20/大GP 50、小增伤 +1/大 +2、小护甲 +1/大 +2、小生命 +5/大 +10、恢复 +6 当即回血(封顶生效上限)、AP +1。**MC 策略 316-f**:1 级优先度=最稀有(rarest>rare>common)、2 级=最左(并列同档取最左)。配额结构锚与档位构成读冒险表(registry adventure_table 为准——schema validate 硬断言 70/25/3)。**v2.3 第三渠道并账维持**:商店货架=同库付费渠道(令牌级货架,买一件=奖励面少一件),库存=剩余令牌数,账本语义与切边注记归[冒险结构](../systems/冒险循环/冒险结构.md)共享池账本节。
|
||||
- **同库同池耗(v2.4)**:池=固定配额令牌库(普通 70/稀有 25/罕见 3=98 张;罕见档原列「道具件 2」随 aux_item 池种退役〔迭代 11 第①批 T7,落地晚于追认 b〕收窄——状态记录自决披露项);洗牌不放回抽 3(**同 kind 去重每 kind 至多一枚**——「三种不同选项」体验延续,kind 出现率∝剩余令牌数)、选中踢池未选回池、池耗即枯竭(余库不足出齐剩余,空库=零候选合法态直通);**种类次数上限退役**(池消耗即上限)。数值对:小GP 20/大GP 50、小增伤 +1/大 +2、小护甲 +1/大 +2、小生命 +5/大 +10、恢复 +6 当即回血(封顶生效上限)、AP +1。**MC 策略 316-f**:1 级优先度=最稀有(rarest>rare>common)、2 级=最左(并列同档取最左)。配额结构锚与档位构成读冒险表(registry adventure_table 为准——schema validate 硬断言 70/25/3)。**v2.3 第三渠道并账维持**:商店货架=同库付费渠道(令牌级货架,买一件=奖励面少一件),库存=剩余令牌数,账本语义与切边注记归[冒险结构](../systems/冒险循环/冒险结构.md)共享池账本节。
|
||||
- ~~道具件入本关库存~~(v2.2 退役——秘宝局内不掉落机制道具,三轴 doctrine 锁死)。
|
||||
- ~~「池空直通」合法态~~(v2.4 随令牌池换代退役又回归异形:旧口径=GP 无上限保证牌库恒非空;现口径=98 张池真可耗尽,空库=零候选直通合法态——池耗即枯竭既定后果)。
|
||||
|
||||
@@ -29,7 +29,11 @@
|
||||
| v1.0 | 2026-09-29 | 迭代 7 T5 随批出生(三选一构筑点形态——用户拍板②丙) |
|
||||
| v2.0 | 2026-10-01 | **共享池改写(迭代 10 追加批——用户拍板「奖励节点与通关三选一相同、共享同一个池子」)**:①定位改提升三选一选择面(六种共享池、同权重同次数上限、同 reward_pick 流);②载体改 BonusPickOverlay 共用面(原 node_overlay 道具三选一面退役);③道具件满位升级为替换子交互两路(原过渡形态=满位不授予);④「池空直通」合法态退役(牌库恒非空);⑤道具件入本关库存(即时可用),区别于通关渠道的跨关携带 |
|
||||
| v2.1 | 2026-10-01 | **掷定前置(目检反馈批——用户反馈「抽到秘宝不显示详情不直观」,推荐案获批)**:道具件具体道具随候选抽定(reward_pick 流序内挪,消费数不变),卡片直显「秘宝 / 道具名 · 效果摘要」;断点停点快照随载 aux_detail(续玩卡片详情不丢);node_bonus_candidates 返回扩 dict {candidates, aux_detail} |
|
||||
| v2.2 | 2026-10-03 | **池种退役+刷新件面(迭代 11 第①批同调实施批 T7/T5b——P1 甲)**:①aux_item 池种退役出三选一牌库(BONUS_IDS 除名+权重/件数/掷定前置字段随批退役)——秘宝改走营地同调装配面(三轴 doctrine),v2.1 直显/满位替换两面随渠道退役(机械惰性承载零投放);②三选一刷新件面新增(X/Y 双源:刷新件每碰三选一重给优先消耗不结转+营地刷新升级冒险周期池;重抽消费 reward_pick 既有洗牌流池规则全保留;autoplay 默认不刷) |
|
||||
| v2.2 | 2026-10-03 | **三档位令牌池(用户全裁——待 M-4 数值批实施,现行 v2.1 平铺池维持到实施)**:池改固定配额令牌池(普通 70/稀有 25/罕见 5=100 张;洗牌不放回抽 3、选中踢池未选回池、池耗即枯竭);档位构成=普通〔小GP 18/小增伤 18/小护甲 17/小生命 17〕+稀有〔大GP/大增伤/大护甲/大生命/恢复 各 5〕+罕见〔AP 3/道具 2〕;数值对 20/50、+1/+2、+1/+2、+5/+10、恢复+6、AP+1、道具 1 件;**种类次数上限退役**(池消耗即上限;同调位上限保留);恢复件=新入池种类;MC 策略改判 1 级最稀有/2 级最左(确定性)——设计全稿与执行口径见 [06 待办「奖励池三档位令牌池重设计」条](../06-待办清单.md);卡片呈现面(本 spec 交互节)零改动 |
|
||||
| v2.2a | 2026-10-03 | **池种退役+刷新件面(迭代 11 第①批同调实施批 T7/T5b——P1 甲)**:①aux_item 池种退役出三选一牌库(BONUS_IDS 除名+权重/件数/掷定前置字段随批退役)——秘宝改走营地同调装配面(三轴 doctrine),v2.1 直显/满位替换两面随渠道退役(机械惰性承载零投放);②三选一刷新件面新增(X/Y 双源:刷新件每碰三选一重给优先消耗不结转+营地刷新升级冒险周期池;重抽消费 reward_pick 既有洗牌流池规则全保留;autoplay 默认不刷) |
|
||||
| v2.2b | 2026-10-03 | **三档位令牌池(用户全裁——待 M-4 数值批实施,现行 v2.1 平铺池维持到实施)**:池改固定配额令牌池(普通 70/稀有 25/罕见 5=100 张;洗牌不放回抽 3、选中踢池未选回池、池耗即枯竭);档位构成=普通〔小GP 18/小增伤 18/小护甲 17/小生命 17〕+稀有〔大GP/大增伤/大护甲/大生命/恢复 各 5〕+罕见〔AP 3/道具 2〕;数值对 20/50、+1/+2、+1/+2、+5/+10、恢复+6、AP+1、道具 1 件;**种类次数上限退役**(池消耗即上限;同调位上限保留);恢复件=新入池种类;MC 策略改判 1 级最稀有/2 级最左(确定性)——设计全稿与执行口径见 [06 待办「奖励池三档位令牌池重设计」条](../06-待办清单.md);卡片呈现面(本 spec 交互节)零改动 |
|
||||
| v2.3 | 2026-10-03 | **商店并账注记(迭代 11 第②批 GP 商店房重构批——P1 共享池)**:口径节「同池同上限」扩第三渠道=商店货架(pool 模式付费渠道,买一件=奖励面少一件;库存=上限即库存全冒险一次性);本 spec 交互面零改动(商店货架面归 shop.md 与 ShopOverlay,非三选一覆盖层);GP 袋对商店面切边(负交易)、奖励面照常(牌库恒非空结构保证不变) |
|
||||
| v2.4 | 2026-10-03 | **令牌池落地(迭代 12 TP0——追认 b 实施批)**:三选一池改固定配额令牌池(普通 70/稀有 25/罕见 3=98 张;罕见档原列「道具件 2」随 aux_item 池种退役收窄——台账自决披露项);洗牌=令牌 Fisher-Yates 不放回抽 3 同 kind 去重每 kind 至多一枚、选中踢池未选回池、池耗即枯竭(空库=零候选直通合法态);种类次数上限退役;恢复件=新入池种类(rare 档 +6 当即回血);kind 词表扩 heal 六种;MC 策略 316-f 落地(1 级最稀有/2 级最左);货架=令牌级抽签(价格公式 tier-blind 维持批②裁定);断点扩键 bonus_deck(余库逐枚还原);现行基线锚=runsum_m4iter12_tp0_n20_20261003(normal 档配对读数同带) |
|
||||
| v2.5 | 2026-10-09 | 文档正确性审查批(在役态对齐):①定位节「与通关三选一共享同一令牌池」过期——迭代 15② 渠道分离后通关三选一候选 = 纯专长,本面与商店货架同库(六种令牌池);②载体组件名订正 = CurioPickOverlay;③头部文案引文加注「与通关三选一同池」字样滞后于渠道分离(文案换代归内容批,已呈报) |
|
||||
| v2.6 | 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):①定位节令牌池「六种」→**七种**(adventure_table.gd CURIO_KINDS 实测七类含 refresh——刷新件随迭代15② T6 入池,curio_quota_refresh_rare=2 在役;v2.5 修订漏登);②三选一刷新行补机制现行事实源指路与 X 源承载件换代注(旧目录「三选一刷新件」退役→新目录「刷新练习」——秘宝.md「三选一刷新双源」节) |
|
||||
| —— | 2026-10-09 | v2.2 双行同号系历史登记,2026-10-09 卫生批加 a/b 后缀区分 |
|
||||
| v2.7 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 1 处(口径节「同库同池耗」条「台账自决披露项」→「状态记录自决披露项」);头注状态行版本号随本行对齐 |
|
||||
@@ -1,12 +1,12 @@
|
||||
# 结算总结 UX spec(settlement-summary)
|
||||
|
||||
> 状态:v1.0(2026-09-30 审计拍板点 2 用户裁决落文——两面分节、纯呈现轻量 spec;无新概念,只成文已实装的显示规则)
|
||||
> 状态:v1.3(2026-10-15 简明技术中文用语规范(用户令)批:词面修正 8 处——两面分节、纯呈现轻量 spec 不变;无新概念)
|
||||
> 事实源:`game/presentation/views/battle_end_overlay.gd`(胜利金蜡封 / 失败暮蓝双形态载体)+ `main.gd`(胜利接线 main.gd:398 调试与迭代 8 卡⑥冒险主路径 / 冒险终局接线 main.gd:339-346)
|
||||
> 相邻:[battle.md](battle.md)(战斗屏出口锚与信息归属两原则)/ [level-clear.md](level-clear.md)(关卡结算屏——Boss 胜利走大奖励面,非本 spec)/ [level-map.md](level-map.md)(GP 常驻徽章)
|
||||
|
||||
## 定位
|
||||
|
||||
本 spec 承载两个**已实装**的结算总结呈现面(2026-09-27 用户拍板定名,接线登记 06 台账):
|
||||
本 spec 承载两个**已实装**的结算总结呈现面(2026-09-27 用户拍板定名,接线登记 06 状态记录):
|
||||
|
||||
- **战斗总结结算**——冒险模式普通战斗胜利时的总结覆盖层(战斗小循环的出口呈现);
|
||||
- **冒险总结结算**——冒险终结(倒下 / 末关通关 / 放弃)时的终局覆盖层(冒险大循环的收束呈现)。
|
||||
@@ -17,23 +17,23 @@
|
||||
|
||||
- 触发:冒险模式战斗胜利(verdict=win)含 Boss 胜利——迭代 10 起 Boss 胜利也经本面(钥石逐杀掉落增量在此呈现,确认后进[关卡结算屏](level-clear.md)三选一面;原「Boss 胜利走大奖励面不经本面」口径随大奖励重构退役)。非 Boss 接线 2026-09-29 迭代 8 卡⑥。
|
||||
- 载体:battle_end_overlay 胜利形态(金蜡封)。
|
||||
- 呈现内容(2026-09-27 拍板面 + 迭代 10 扩):金蜡封 + 判定行 + 战利品行(GP 增量 + 总量;Boss/精英击杀追加**钥石增量行**——首杀/复杀档位读 meta.tres boss_keystone)+「下一节点」钮 + 明细回看入口。
|
||||
- 呈现内容(2026-09-27 拍板面 + 迭代 10 扩):金蜡封 + 判定行 + 战利品行(GP 增量 + 总量;Boss/精英击杀追加**钥石增量行**——首杀/复杀档位读 meta.tres boss_keystone)+「下一节点」钮(明细回看入口已随 2026-10-04 P-C7 退役——冒险中回看归「生涯」)。
|
||||
- 数据锚:增量 = `battle_finished` 载荷 `gp_dropped`;总量 = runner.gp 现值(LevelRunner 入账先于呈现连接——次序依赖在案,M-1 迭代 2 T5 接线)。
|
||||
- 出口:「下一节点」→ 关卡画面选路(零自动推进)。
|
||||
|
||||
## 冒险总结结算(冒险终结面)
|
||||
|
||||
- 触发:主角倒下(verdict=lose)/ 末关通关 / 玩家放弃——三结局同面(`adventure_finished` 收束)。
|
||||
- 载体:与战斗面同一个 battle_end_overlay(2026-09-29 迭代 6 T7 接线)——末关通关走 `open_victory`(金蜡封 +「本局 GP 入账 · 合计 N」行,GP 收束清零前的呈现侧影子账);倒下 / 放弃走 `open_defeat`(暮蓝)。无独立「冒险终局面板」实体,06 台账旧称随本条收口。
|
||||
- 载体:与战斗面同一个 battle_end_overlay(2026-09-29 迭代 6 T7 接线)——末关通关走 `open_victory`(金蜡封 +「本局 GP 入账 · 合计 N」行,GP 收束清零前的呈现侧影子账);倒下 / 放弃走 `open_defeat`(暮蓝)。无独立「冒险终局面板」实体,06 状态记录旧称随本条完成。
|
||||
- 呈现内容:冒险摘要五件事(定义归[冒险结构](../systems/冒险循环/冒险结构.md))+ 钥石入账明细(= 本局逐杀 Boss 掉落合计;消费归[元进度](../systems/跨局循环/元进度.md) settle_adventure——迭代 10 起大奖励面不再产钥石)+ GP 合计行。
|
||||
- 出口:确认 → 回存档首页。
|
||||
|
||||
## 口径
|
||||
|
||||
- **命名(2026-09-27 拍板文本口径)**:战斗总结结算 / 冒险总结结算。历史变体收口清单(正文一律改用正名,变体退役):①「战斗结算画面」——battle.md 旧口径(06 归属行已判登记偏差);②「结算画面」单用——两义词(level-clear 语境=冒险面、battle 旧语境=战斗面),禁用;③「战斗胜利总结结算」——level-clear 与 06 台账旧用四字变体;④「摘要结算画面」——冒险结构 旧称(冒险总结结算的摘要呈现位);⑤「冒险终局面板」——06 台账对同一 overlay 冒险面打开形态的俗称,无独立实体。06-待办清单 现状段按其「措辞不改」体例保留历史原文,以本清单为命名准绳。
|
||||
- **GP / 钥石呈现分工**(battle.md OQ14 收口口径 + 迭代 10 扩):GP = 本 spec 战斗面(增量+总量)+ 关卡画面常驻总量;钥石 = 本 spec 战斗面(Boss/精英击杀增量行,迭代 10 起)+ 冒险面(收束明细)+ 营地存量。钥石多处并存系「进账时刻 / 收束明细 / 存量可用」不同义,不构成重复展示(level-clear.md OQ3 收口维持)。
|
||||
- **命名(2026-09-27 拍板文本口径)**:战斗总结结算 / 冒险总结结算。历史变体退役清单(正文一律改用正名):①「战斗结算画面」——battle.md 旧口径(06 归属行已判登记偏差);②「结算画面」单用——两义词(level-clear 语境=冒险面、battle 旧语境=战斗面),禁用;③「战斗胜利总结结算」——level-clear 与 06 状态记录旧用四字变体;④「摘要结算画面」——冒险结构 旧称(冒险总结结算的摘要呈现位);⑤「冒险终局面板」——06 状态记录对同一 overlay 冒险面打开形态的俗称,无独立实体。06-待办清单 现状段按其「措辞不改」体例保留历史原文,以本清单为命名准绳。
|
||||
- **GP / 钥石呈现分工**(battle.md OQ14 完成口径 + 迭代 10 扩):GP = 本 spec 战斗面(增量+总量)+ 关卡画面常驻总量;钥石 = 本 spec 战斗面(Boss/精英击杀增量行,迭代 10 起)+ 冒险面(收束明细)+ 营地存量。钥石多处并存系「进账时刻 / 收束明细 / 存量可用」不同义,不构成重复展示(level-clear.md OQ3 完成维持)。
|
||||
- **失败面不呈战利品**:冒险总结结算不呈现 GP 增量(倒下即终语义,失败侧恒不呈现)。
|
||||
- **禁重复展示**:本面不呈状态效果、不呈结算明细正文(明细走回看 overlay)——[battle.md](battle.md) 信息归属两原则(循环限定 + 单一展示面)对面级呈现同样适用。
|
||||
- **禁重复展示**:本面不呈状态效果、不呈结算明细正文(明细回看 overlay 已随 P-C7 退役——冒险中明细回看归「生涯」)——[battle.md](battle.md) 信息归属两原则(循环限定 + 单一展示面)对面级呈现同样适用。
|
||||
|
||||
## 版本历史
|
||||
|
||||
@@ -41,3 +41,5 @@
|
||||
|---|---|---|
|
||||
| v1.0 | 2026-09-30 | 首版落文(审计拍板点 2 用户裁决:丙案两面分节 + 纯呈现轻量 spec——成文已实装显示规则,无新概念;命名三名并存收口为拍板文本口径) |
|
||||
| v1.1 | 2026-10-01 | **钥石呈现接线批注记(迭代 10 奖励重构——呈现侧 spec 先行,实装随批)**:战斗面触发扩 Boss 胜利(钥石逐杀掉落增量行上战斗总结结算框——契约「钥石增量一面承载」推荐案)+ 呈现内容补钥石增量行;冒险面钥石明细口径改「本局逐杀 Boss 掉落合计」;GP/钥石分工口径三面化(战斗面增量/冒险面明细/营地存量)。原「Boss 胜利不经本面」退役 |
|
||||
| v1.2 | 2026-10-09 | 文档正确性审查批:明细回看入口两处订正——已随 2026-10-04 P-C7 退役(冒险中回看归「生涯」;battle_end_overlay review_pressed 已退役在码),战斗面呈现内容与禁重复展示条同步 |
|
||||
| v1.3 | 2026-10-15 | 简明技术中文用语规范(用户令):词面修正 8 处——台账×4→状态记录(定位节接线登记条/冒险面载体条「06 状态记录旧称」/命名清单③⑤);收口×4→完成(冒险面载体条「随本条完成」/命名清单头「历史变体收口清单」→「历史变体退役清单」/GP钥石分工条 OQ14 完成口径与 OQ3 完成维持);头注状态行版本号随本行对齐 |
|
||||
@@ -1,19 +1,19 @@
|
||||
# 商店覆盖层 UX spec(shop)
|
||||
|
||||
> 状态:v1.0(2026-09-30 审计拍板点 4B 用户裁决落文——甲+乙并行:编排面小节落关卡节点地图、呈现面独立成文)
|
||||
> 状态:v1.1(2026-09-30 审计拍板点 4B 用户裁决写入文档——甲+乙并行:编排面小节落关卡节点地图、呈现面独立成文)
|
||||
> 事实源:`game/presentation/views/shop_overlay_view.gd`(ShopOverlay)
|
||||
> 机制权威:[关卡节点地图](../systems/冒险循环/关卡节点地图.md)(商店房编排:每关恰 1/Boss 前一位必经/兑付触发);定价数值归[难度曲线与Boss](../systems/冒险循环/难度曲线与Boss.md)(shop.tres,provisional)
|
||||
|
||||
## 定位
|
||||
|
||||
商店覆盖层是商店房节点的兑付呈现面(**冒险-关卡中循环节点功能**):行进至商店房打开,玩家用 GP(显示名「金币」)购买三属性 flat 档商品,离开后兑付确认回选路。本 spec 只锁呈现;编排与定价归机制文档。
|
||||
商店覆盖层是商店房节点的兑付呈现面(**冒险-关卡中循环节点功能**):行进至商店房打开,玩家用 GP(显示名「金币」)在令牌级货架上购买,离开后兑付确认回选路。现行 = pool 模式(货架与三选一共享令牌池);legacy 三商品卡模式保留为 shop=off 对照形态。本 spec 只锁呈现;编排与定价归机制文档。
|
||||
|
||||
## 布局与交互
|
||||
|
||||
- 模态覆盖层(dim + 居中):标题「商店」/ 金币余额(GP 读数)/ 三商品卡全陈列(显示名·档位文案·现价·已购档数)/ 购买按钮(余额不足禁用置灰——pattern 8 禁用态即理由)/ 离开按钮。
|
||||
- 购买意图 `buy_requested(product_id)` 经组合根转发 runner;成功后 `refresh_state` 就地重刷(现价=基价+关级加成+步长×已购档数,runner 现算)。
|
||||
- 模态覆盖层(dim + 居中):标题「商店」/ 金币余额(GP 读数)/ 令牌级货架卡(进店自共享池抽 3 张:显示名·效果·现价——六行池面含回复与专长凭证;买一件 = 池少一件、货架随即全架重抽)/ 购买按钮(余额不足禁用置灰——pattern 8 禁用态即理由)/ 刷新按钮(GP 付费刷新,价 = ceil(20×1.8^本次进店已付费刷) provisional,余额不足禁用)/ 离开按钮。
|
||||
- 购买意图 `buy_requested` 经组合根转发 runner(pool 模式载荷 = kind_id);成功后货架整架重建(买 1 全重抽反馈)。刷新意图 `refresh_requested` 经组合根转发 presenter。
|
||||
- 离开 → 关卡画面兑付确认回选路(零自动推进)。
|
||||
- 无刷新、无三选一、全陈列(GP+商店房批裁决);商旅信物类刷新件与该校裁决冲突,留同调实施批二选一(同调提案 §5)。
|
||||
- 刷新与货架口径(2026-10-04 P-C2+Q2 裁决,SR-1 落码):基础免费 0 次 + GP 付费刷新 + 池源同源(与三选一同一令牌账本)——原「无独立刷新、全陈列」裁决随该批被推翻;天赋侧「刷新次数」增益预留 free_count 位(06 登记条在册)。
|
||||
|
||||
## 口径
|
||||
|
||||
@@ -26,3 +26,4 @@
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v1.0 | 2026-09-30 | 首版落文(审计拍板点 4B 裁决:甲+乙并行——编排面小节落关卡节点地图、呈现面独立成文) |
|
||||
| v1.1 | 2026-10-09 | 文档正确性审查批(在役态对齐):商店现行 = pool 模式(令牌级货架与三选一同池六行,含回复与专长凭证;进店抽 3、买一件 = 池少一件货架重抽)+ GP 付费刷新(SR-1/MC-1 已落码)——原「三商品卡全陈列、无刷新」为 legacy 形态(shop=off 对照保留),定位/布局/口径三节订正 |
|
||||
@@ -0,0 +1,160 @@
|
||||
# 术语表
|
||||
|
||||
> 全库专用术语的唯一对照表(2026-10-11 用户令建立)。规矩:新术语先登记本表、再在文档使用;退役词见文末对照表,文档正文一律使用现行词。文档中遇到看不懂的词,查本表。用词纪律(禁用词、替换值、豁免范围)见「用语规范」节。
|
||||
|
||||
## 格与棋盘
|
||||
|
||||
| 术语 | 定义 |
|
||||
|---|---|
|
||||
| 棋盘 | 一局扫雷游玩的格子区域,单局内生成(见[棋盘生成](systems/排雷循环/棋盘生成.md)) |
|
||||
| 危险格 | 有惩罚的格子——挖开会触发惩罚(惊动则怪物倾巢而出;被旗控制则化险为利)(原「雷格」(机制名)/「惩罚格」(界面名)统一于此,2026-10-11 用户裁;同日补裁无类型划分) |
|
||||
| 安全格 | 没有惩罚的格子——挖开安全并获得其上信息与收益 |
|
||||
| 整图 | 单张棋盘(的整个范围)——原「整图」退役(2026-10-11 用户裁)。例:整图叠加层、整图作用域 |
|
||||
| 叠加层(整图叠加层) | 秘宝产生的信息的自持容器:按效果分类的格集,随图消亡、不回写棋盘(见[秘宝](systems/跨局循环/秘宝.md)) |
|
||||
| 旗 / 控制 | 插旗动作的机制名/玩家名:旗插在危险格上为「标中」(危险格被控制、化险为利),插错为「标空」 |
|
||||
| 真视 | 直接告诉玩家某范围内哪些格是危险格的效果(秘宝承重契约:一次最多 3×3,见[秘宝](systems/跨局循环/秘宝.md)核心规则) |
|
||||
| 类型微光 | 棋盘上按格子类型显示的提示光效(视野参数控制其显示范围) |
|
||||
| 换图 / 弃图刷新 | 清完一图进入下一图 / 花储备放弃当前图重开一张(代价见[行动经济](systems/排雷循环/行动经济.md)) |
|
||||
| 装板(装板期) | 把地图战斗资源摇定的类型身份铺设到棋盘格子上的布置动作(阶段);由战斗结算的布置段执行,随机取数标签为 `variant_place` |
|
||||
| 摇号 / 摇定 | 按池配置用随机数决定结果(资源身份、遭遇抽取、货架抽签);随机服务的登记见 `design/registry/entities.yaml` 的 `rng_service` 条目 |
|
||||
|
||||
## 资源与经济
|
||||
|
||||
| 术语 | 定义 |
|
||||
|---|---|
|
||||
| AP(行动点) | 每轮可执行动作的次数资源,每轮开始重置为表值(见[行动经济](systems/排雷循环/行动经济.md)) |
|
||||
| RAP(储备行动点) | 停手时把当轮没用完的行动点按转存率存入的储备池,跨轮保留、玩家可见可花 |
|
||||
| 停手 / 转存率 | 主动结束本轮的动作 / 停手时行动点转入 RAP 的比例(现役 1:1,可被秘宝改写) |
|
||||
| GP(局内金币) | 冒险内的一次性货币:局内获取与消费、冒险结束清零、不入存档 |
|
||||
| 钥石 | 跨局持久货币:关卡大奖励与 Boss 掉落入账、存档持久、营地柜台消费(见[元进度](systems/跨局循环/元进度.md)) |
|
||||
| 通关 | **打通整局冒险**(三关全通)——与「通过关卡」非同义词(2026-10-11 用户裁定);计数器=adventure_cleared |
|
||||
| 通过第 N 关 | 打通第 N 关卡;计数器=每关通关次数表(level_clear_counts) |
|
||||
| 三选一 | 奖励呈现形式:从池中抽三件选一(奖励节点/Boss 通关/商店三处触发;可消费刷新次数重抽) |
|
||||
| 盲赌 | 在无法推理的格子上不靠信息直接挖开的决策;信息类道具的价值=减少盲赌次数 |
|
||||
|
||||
## 秘宝系统
|
||||
|
||||
| 术语 | 定义 |
|
||||
|---|---|
|
||||
| 秘宝 | 营地装配、整局冒险生效的角色机能件(见[秘宝](systems/跨局循环/秘宝.md)) |
|
||||
| 同调位 | 玩家出征前携带秘宝的装配槽(0 起步、基础 3 格) |
|
||||
| 秘宝匣 | 营地柜台之一:秘宝的解锁(钥石购买/条件解锁)与同调装配面 |
|
||||
| 主动件 / 被动件 | 需要花充能主动使用的秘宝 / 装配后整局持续生效的秘宝 |
|
||||
| 自动兑付 | 无使用动作的秘宝效果兑付形态:满足条件(如试炼镐每开 8 个安全格)自动生效,无玩家发起入口(2026-10-12 用户裁——原「积点兑换钮」手动形态退役) |
|
||||
| 真视使用计数 | 真视类工具累计使用次数的生涯终身计数(存档域 `vision_used`)——信标网络的解锁行为条件(2026-10-12 迭代 22 新增) |
|
||||
| 充能 | 主动件的使用次数账:每冒险开局满额(或按使用代价形态重置),用完即不可用 |
|
||||
| 操作包络 | 玩家可执行的操作的范围与效率——视野/行动点/刷新/挖掘距离/转存率等(秘宝只加强它,不出战斗属性值) |
|
||||
| 效果格 / 代价格 | 秘宝设计骨架的两个轴:件改变玩家什么(信息/行动资源/操作能力)× 件怎么限制(获取/使用/装配代价)(见[秘宝](systems/跨局循环/秘宝.md)设计骨架) |
|
||||
| 档位 | 稀有度分级:普通/优秀/稀有(+传说,跨系统四级框架;秘宝传说位留空) |
|
||||
|
||||
## 锻造工坊
|
||||
|
||||
| 术语 | 定义 |
|
||||
|---|---|
|
||||
| 锻造工坊 | 营地四柜台之一:武器/护甲各三条锻造路线的升级与出场选择面,钥石单币消费(系统名 v0.3 由「武器锻造」更名;见[锻造工坊](systems/跨局循环/锻造工坊.md)) |
|
||||
| 武器锻造区 / 护甲锻造区 | 锻造工坊工作间内两区,机制层面零顺序门槛(8a 裁定的区名) |
|
||||
| 锻造路线 | 单件武器/单型甲的等级路线(每件独立等级、独立保留);行名统一「件名 + 锻造」= 长剑锻造 / 长枪锻造 / 法杖锻造、轻甲锻造 / 重甲锻造 / 魔法护甲锻造 |
|
||||
| 魔法护甲 | 三型甲之一(= 现役甲域 ward,基础 AC 最低、被普通攻击克);「魔法甲」系笔误、非别名,不单独登记 |
|
||||
| 并联双通道 | 待解锁路线的解锁结构:练满前一档 **OR** 一次性解锁价,两通道互不影响、玩家自选其一、不设串联门槛 |
|
||||
| 出场选择 | 一次冒险 = 一个武器类型 + 一个甲型;营地内免费切换、冒险开始后锁死 |
|
||||
| 路线 id / 存档域键名 | 锻造工坊实现层词汇(非玩家可见,2026-10-13 迭代 23 反哺落文登记):六路线 id = sword/spear/staff/light/heavy/ward(甲路线 id = 甲型值本身);存档域 `forge_routes = {levels〔六路线等级〕, unlocked〔直购解锁清单〕, weapon/armor〔当前选中〕}`——初始持有与练满前一档为派生解锁不落档(派生单点 = forge_route_unlocked) |
|
||||
|
||||
## 道具体系
|
||||
|
||||
| 术语 | 定义 |
|
||||
|---|---|
|
||||
| 道具 | **内部开发统称**(2026-10-13 用户立):秘宝、奇物、地图战斗资源三类的合称——单独说「道具」即指这三类(全体或其中任一,靠上下文分辨);组合用法=秘宝道具/奇物道具/专长道具/战斗资源道具(对应类别加「道具」后缀)。仅限开发内部交流,玩家可见面仍用各类正式名称 |
|
||||
| 奇物 | 冒险途中获得的增益总称(当局清零;见[奇物](systems/冒险循环/奇物.md)) |
|
||||
| 专长 | 奇物的分类之一:改写规则的机制件 |
|
||||
| 专长凭证 | 换取一次专长三选一资格的凭证——奖励节点与商店不直接给专长,给凭证(原「凭证」,2026-10-11 用户裁更名) |
|
||||
| 地图战斗资源 | 战斗域的资源层:每格在装板期摇定资源类型身份(安全格/危险格同一类型池),回合内挖格/标旗获取、按动作极性结算正负兑付的一次性收益(原「奖励道具经济」,2026-09-16 用户裁更名;见[地图战斗资源](systems/战斗循环/地图战斗资源.md)) |
|
||||
| 机能件 / 机制件 | 道具的作用二分:不改变结算规则、只扩大操作包络的为机能件(秘宝);使结算产生原本不存在的新行的为机制件(专长)。判定尺见[核心循环](01-核心循环.md)「道具三层职责与分界」节 |
|
||||
|
||||
## 结算目标
|
||||
|
||||
| 术语 | 定义 |
|
||||
|---|---|
|
||||
| 总线 | 为多源叠加设计的结算目标(伤害加法/乘法区、增益池、护甲阈值轴):多层共写是本体,不设归属规则 |
|
||||
| 抽屉 | 单计数器加专属重置语义的结算账户:新成员写入前必须与它的重置语义对齐,不兼容则另立新账 |
|
||||
|
||||
两类的判定与道具定义卡必答见[核心循环](01-核心循环.md)「结算目标分两类:总线与抽屉」节。
|
||||
|
||||
## 开发流程
|
||||
|
||||
| 术语 | 定义 |
|
||||
|---|---|
|
||||
| 逐需求点验收清单 | 需求卡片验证闸的必备清单:每个需求点列明测什么(具体断言或行为)/怎么测(测试落点与注入方式)/谁验(自动闸或用户目检);查不出验收条目的需求点=卡片不成立(规矩见 req-card 技能,测试落码写法见 [code-conventions](../dev/code-conventions.md) §3.5) |
|
||||
| 测试方式两分法 | 能力验证与体验验证分开走(2026-10-11 用户定):能力验证=通过调试接口直接修改游戏数据(改钥石/槽位/解锁状态等,不走正常资源积累流程);体验验证=用户目检完整流程,登记 07-体验验证清单观测项 |
|
||||
|
||||
## 用语规范(2026-10-15 用户令立)
|
||||
|
||||
词面纪律的登记处。通用禁用词与选词以**简明技术中文(STC)词表**为权威:外部技能文件 `C:\Users\DK\.zcode\skills\simplified-technical-chinese\词表.md`,约 170 条,配检查脚本 check.py。
|
||||
|
||||
本仓库的机器闸 = `tools/doc_term_audit.py`,已吸收本节项目裁项。本节只登记两类裁项:A 已裁替换、B 豁免条款。历史退役词(雷格/正主/落籍等 7 组)见下方「退役词对照」节,不与 A 表重复。
|
||||
|
||||
### A. 已裁替换(写新文本必须用「用」列)
|
||||
|
||||
| 不用 | 用 | 出处 |
|
||||
|---|---|---|
|
||||
| 对标 | 参照 | STC 1.7,2026-10-15 用户裁 |
|
||||
| 若干 | 写具体数值;无数值可写时写明数值出处 | STC 5.4,2026-10-15 用户裁 |
|
||||
| 不得 | 禁止 | STC 词表(同上) |
|
||||
| 报错 | 名词用「错误」;动词用「返回错误」或「显示错误」 | STC 词表(同上) |
|
||||
| buff | 增益 | STC 1.1 一词一义(同上) |
|
||||
| 收口 | 完成;指合并时写「合并进 master」 | doc-conventions 第 4 节流程动词禁令 |
|
||||
| 在飞 | 正在执行中 | doc-conventions 第 4 节 |
|
||||
| 随批 | 顺带 | doc-conventions 第 4 节 |
|
||||
| 对拍 | 与基线数据逐项比对 | doc-conventions 第 4 节 |
|
||||
| 销账 / 销号 | 注销 | doc-conventions 第 4 节(销号系同族延伸登记) |
|
||||
| 台账 | 状态记录 | doc-conventions 第 4 节 |
|
||||
| 落文 | 写入文档;已完成写作时写「已写入」 | doc-conventions 第 4 节同族形态,2026-10-15 用户裁延伸 |
|
||||
|
||||
注:「注销」仅用于清单条目办结义(销号/销账的替换词);「结束登录状态」义仍按 STC 用「退出登录」。
|
||||
|
||||
### B. 豁免条款(三类文本不改写)
|
||||
|
||||
1. **历史文本**:版本历史表已入库的行、git 提交说明、裁决记录中引用用户原话的句子——保留原用词,不按 A 表追改。
|
||||
2. **对照性文本**:「退役词对照」表本身、「原 ××」式更名记载、禁令引举句——旧词在这些位置是内容本身,不是残留。
|
||||
3. **玩家可见专名与机制词**:按「对外命名纪律」节与各系统文档现行用语使用(旗/标中/踩雷等机制词在文档内部照常用)。
|
||||
|
||||
存量口径:A 表生效前已入库的正文不做强制清扫;文件后续被批次触碰时,顺带按 A 表换代。
|
||||
|
||||
## 退役词对照(文档正文禁用)
|
||||
|
||||
| 退役词 | 现行词 |
|
||||
|---|---|
|
||||
| 雷格 / 惩罚格 | 危险格 |
|
||||
| 板级 | 整图 |
|
||||
| 门票(专长门票) | 专长凭证 |
|
||||
| 巢穴(机制表述) | 危险格(世界观风味层的巢穴隐喻〔00-游戏概念/美术纹样名〕除外) |
|
||||
| 正主 | 现行事实源 |
|
||||
| 落籍 | 已入库 |
|
||||
| 工作日志 | 状态记录 |
|
||||
|
||||
## 对外命名纪律(玩家可见命名,2026-10-11 用户令)
|
||||
|
||||
| 规则 | 内容 |
|
||||
|---|---|
|
||||
| 禁用字面 | 「雷」「插旗」及相关字面(雷格/踩雷/插旗/旗)**禁止进入对外命名**——「扫雷插旗」仅系内部开发用语,对外世界观=探索地下城/挖掘地下城 |
|
||||
| 插旗的对外表达 | **封印**(件名示例:封印桩/封印回响/封印匠/封印爆裂) |
|
||||
| 危险格的对外风味 | **地下城陷阱 / 怪物巢穴**(巢穴仅限世界观风味层使用——产品名清巢者出处、美术纹样名;机制表述仍用危险格) |
|
||||
| 连锁展开的对外表达 | **坍塌显形**:挖穿薄壳、整片松动地面塌陷露出(00 篇巢穴隐喻轴定名;机制文档内部仍用连锁展开) |
|
||||
| 适用范围 | 全部对外命名:道具件名、显示名、UI 文案、成就与百科措辞(首例=专长 27 件第一版命名,[奇物](systems/冒险循环/奇物.md)基础件表 v3.15);机制文档内部用语不受此限(旗/标中/踩雷等机制词照常用) |
|
||||
|
||||
## 版本历史
|
||||
|
||||
| 版本 | 日期 | 改动 |
|
||||
|---|---|---|
|
||||
| v1.0 | 2026-10-11 | 首版建立(用户令「做一个专用术语表,让读者查表阅读」):格与棋盘/资源与经济/秘宝系统/道具体系四节+退役词对照表;同批全库统一更名=危险格(原雷格/惩罚格)/整图(原板级)/专长凭证(原门票) |
|
||||
| v1.1 | 2026-10-11 | **怪物巢穴类型概念退役批(用户裁「目前没有具体的怪物巢穴类型,全部改成危险格」)**:删怪物巢穴词条、危险格与旗/控制两行换代;世界观风味层的「巢穴」隐喻〔00-游戏概念巢穴隐喻轴,产品名清巢者出处〕与美术纹样名保留,机制文档零巢穴 |
|
||||
| v1.2 | 2026-10-11 | **机制表述巢穴补扫收尾(用户裁无类型划分)**:行动经济/音频/敌人系统等机制文档「惊动巢穴/巢穴被控制」系表述全量换代危险格(惊动 4/标中 1/被控制 2);对照表补巢穴行 |
|
||||
| v1.3 | 2026-10-11 | 秘宝目录修正批随批:新增「未知秘宝」词条(冒险拾取替换渠道,2026-10-11 用户裁) |
|
||||
| v1.4 | 2026-10-11 | **正主/落籍全库扫尾批(用户令收尾)**:正主→现行事实源 130 行+落籍→已入库 79 行全库换代(39 文件 194 行;语境微调=权威文档/权威定义节/拼表制主选/入库注记等);雷格/惩罚格/板级/门票/工作日志五词终验零真残留(存量命中均系对照行/更名记载句/禁令引举等对照性文本);技能 SKILL.md 三件与记忆目录随批同扫 |
|
||||
| v1.5 | 2026-10-11 | 拾取渠道废止批随批:删「未知秘宝」词条(用户终裁装配只在冒险开始前配置、冒险中零更换途径) |
|
||||
| v1.6 | 2026-10-11 | **对外命名纪律节新增(用户令「对外命名不要有雷跟插旗相关名词」)**:禁「雷/插旗」字面入对外命名;插旗对外=封印、危险格对外风味=地下城陷阱/怪物巢穴(风味层巢穴除外);适用=件名/显示名/UI 文案/成就百科,机制文档内部用语不受限;首例=专长 27 件第一版命名(奇物.md v3.15 九件换代) |
|
||||
| v1.7 | 2026-10-11 | **通关术语裁定(用户裁)**:通关=打通整局冒险、通过第 N 关=打通第 N 关卡,两词非同义;存量文档中「通关次数」指每关卡澄清(历史行不动,全库口径统一随术语执行批) |
|
||||
| v1.8 | 2026-10-11 | 新增「开发流程」节两词条:逐需求点验收清单(req-card 技能 §7 三层结构核心名词)、测试方式两分法(能力验证走调试接口/体验验证用户目检)——需求卡片逻辑验收方法论批随批登记 |
|
||||
| v1.9 | 2026-10-12 | **迭代 22 反哺落文批随迁**:秘宝系统节补「自动兑付」(2026-10-12 用户裁——手动积点兑换钮形态退役)与「真视使用计数」(vision_used 生涯计数域,信标网络解锁条件)两词条(本行原误编号 v1.2,2026-10-15 重排时更正,原 v1.9/v1.10 顺延为 v1.10/v1.11) |
|
||||
| v1.10 | 2026-10-13 | **迭代 23 反哺落文批随迁**(实现报告 §五③「若需登记补登」经用户令落文):锻造工坊节新增「路线 id / 存档域键名」词条——六路线 id 与 forge_routes 域四键(levels/unlocked/weapon/armor),实现层词汇非玩家可见;玩家向术语零新增 |
|
||||
| v1.11 | 2026-10-13 | 「道具」统称登记(用户立内部用语习惯):道具=秘宝/奇物/地图战斗资源三类的内部开发统称,可单说或组合(秘宝道具/奇物道具/专长道具/战斗资源道具),仅限开发内部、玩家可见面用各类正式名称;同批补登「地图战斗资源」词条(原「奖励道具经济」2026-09-16 更名后一直未入表) |
|
||||
| v1.12 | 2026-10-15 | **用语规范节新立 + 简明技术中文用语规范批(用户令「全部 GDD 做语言规范并融合词表」)**:新立「用语规范」节=词面权威指向 STC 词表+已裁替换表 12 行(STC 词面 5 行〔对标/若干/不得/报错/buff〕+doc-conventions §4 流程动词 7 行)+豁免条款三类(历史文本/对照性文本/玩家可见专名);新词条:装板(装板期)/摇号、机能件/机制件、总线/抽屉(新「结算目标」节)、坍塌显形(对外命名纪律节);版本历史重排修复双 v1.2(详见 v1.9 行注) |
|
||||
@@ -1,61 +0,0 @@
|
||||
# 出口报告:迭代 15 卡② 奇物词族对齐与渠道分离批(2026-10-05)
|
||||
|
||||
> 任务书 = `design/research/任务书-奇物词族对齐与渠道分离批-2026-10-05.md`(T0 差异回写+T6b 裁决回写在册)。
|
||||
> 设计事实源 = `design/gdd/systems/冒险循环/奇物.md` v2.7。worktree = `g-plan2-curio-wordfamily`,分支 `curio-wordfamily-20261005`,基线 = master 413c936(冒烟 772/0)。
|
||||
|
||||
## 一、提交链(worktree)
|
||||
|
||||
| # | 提交 | 内容 |
|
||||
|---|---|---|
|
||||
| 1 | d4cde73 | T1:feature_*→curio_*(CURIO_KINDS/curio_quota/curio_value/curio_candidate_count + adventure.tres 键名 + entities.yaml 换代续写) |
|
||||
| 2 | 8e2694d | T2:运行层 bonus_*→curio_* 全族 + curio_interact_controller.gd/curio_pick_overlay.gd 两文件改名 + 裁点甲案 + reward_overlay 红转绿适配 |
|
||||
| 3 | 6812ebb | T3+T4:relic_*→feat_*(三文件改名+全 token+config_db 注册键两端)+ 渠道白名单过滤(通关渠道只出专长/节点零专长)+ devour 货架保底退役 |
|
||||
| 4 | 95b66f0 | T5+T6a:门票入表(四字段 provisional+三计数+双注入+拿到即开三入口+断点扩列+shop.tres 门票行+A5/A6 断言)+ T6a 商店补 heal 行 + registry 刷新边界写死 |
|
||||
| 5 | 5 | ccd95c8 | T6b+T7+缺陷修:refresh 入池(B 案)+ charge 登记 + autoplay 门票分支(MC timeout 形态批内实测修复) |
|
||||
|
||||
## 二、批末读数(T8 回填)
|
||||
|
||||
| 闸 | 基线(413c936) | 批末 | 判定 |
|
||||
|---|---|---|---|
|
||||
| 冒烟 smoke_all | 772/0 | **782/0**(+10=双渠道白名单 2+门票 A5/A6 行为断言 7+门票兑付受理 1) | |
|
||||
| run_all | 15/16(reward_overlay 红=M7 基线红) | **16/16 全绿** | **红转绿(T2 适配,run_all 历史首次全绿)** |
|
||||
| 行为探针四件+ui_struct | 全绿 | **五探针全绿**(ui_probe/ui_click/ui_input/ui_tune/ui_struct exit 全 0) | |
|
||||
| doc 三闸+熵增闸 | 零新增基线 | lint 8文件2不通过=基线同款/term 218命中3疑似=基线同款/link 死链 7→修后 4(3 处系本批改名断链已修:奇物.md:16/:302 relics.tres→feats.tres+node-reward.md:4 bonus_pick_overlay→curio_pick_overlay;余 4=worktree 假象×2+既有 ux 债×2)/熵增闸 struct 违例×1=主区同款既有(archify design/diagrams 越界,归该批) | **零新增** ||
|
||||
| MC n200 双策略(82000 窗,route=min 零加成) | 无同窗基线(判式批锚=76000 系旧结构;主区 413c936 同窗 n20 对照跑) | normal 0.5%(1/200 通关)/perfect 77.5%(155/200);修 autoplay 门票分支后 n20 与主区基线逐位一致(normal 0 空终局/perfect 16 完 4 败);**读数只测不判**(渠道分离+门票改变奇物流,带判读归 M-4;锚换代=82000 系新锚 n200 日志留盘 user://logs/playtest_82000_*.jsonl) | |
|
||||
|
||||
## 三、验收断言(A1-A12 逐条)
|
||||
|
||||
- **A1 词族归零**:A1 模式残留 **40 处全保名单**——_bonus_ 37 处(_bonus_row/_bonus_row_l/_bonus_summary_text/_bonus_value=结算加成行呈现面;_bonus_treasure_carry/_bonus_treasure_item/_bonus_treasure_pool=③批秘宝语义)+ node_relic_seen 局部变量 3 处(冒烟断言变量,指称 relic 令牌语义)。引号数据契约键全形态保留:bonus_deck×3/bonus_taken×3/bonus_pending×3/bonus_result×2/bonus_aux_carry×2/"bonus"×15(断点属性区键)/relics×6/relic×25(kind 值+身份前缀+摘要键)(保名单:_bonus_row/_bonus_value/_bonus_summary_text 等加成区呈现+bonus_summary+存档键六形态+kind 值 "relic"/身份前缀 "relic:"/relics_seed 进程内参数——穷举见 §五)
|
||||
- **A2 禁词未用**:reward_pick/reward_node/reward_preview 既有三处零新增(T2 全程未触)
|
||||
- **A3 兑付频率**:专长兑付点=通关三选一(_pending_next_level 置位链=关底 Boss 击败同一时刻);关内普通战斗节点零奇物(node_type=battle 无三选一调用,结构保证+冒烟既有断言面)
|
||||
- **A4 渠道分离**:_draw_curio_candidates(channel) 白名单过滤——通关渠道 60 次重抽全 relic/节点渠道 60 次零 relic(冒烟断言在案);货架白名单=shop_pool_rows 词表(feat_ticket 门票行+heal 回复行+四池种)
|
||||
- **A5 拿到即开**:门票兑付=候选替换专长面+零摘牌+无残留持有集(冒烟 4 断言在案)
|
||||
- **A6 保底计数**:pity=5→第 6 展示必出/触发清零/限购满冻结/概率面存在(冒烟 4 断言在案)
|
||||
- **A7 值零变更**:T1 改名键值逐位相等(diff 实测)+ heal 5→3/refresh 0→2 系 T6b 用户裁 B 案结构面(非本断言范围)
|
||||
- **A8 存档往返**:断点往返测试 PASS(全批三次验证:T1/T2/T4 后各一);存档键按 T2 裁点甲案+relics 第 6 键澄清(§四-3)
|
||||
- **A9 池配额锚**:TIER_QUOTAS 70/25/3=98 零改动(B 案挤占——heal 5→3/refresh 0→2,总量不变,validate 绿)
|
||||
- **A10 节点类型零扩类**:封闭枚举五种未动
|
||||
- **A11 玩家可见面无分类名**:门票卡面写「奇物门票/奇物三选一」(规避「专长」分类名);本批只做断言检查不改法(C1 归呈现批)
|
||||
- **A12 档二通路**:charge=3 件(<4)——**显式登记不硬补**(白名单 4;registry charge_defect 落文,转内容批)
|
||||
|
||||
## 四、裁点与自裁记录
|
||||
|
||||
1. **T2 存档键裁点(白名单 3)**:**甲案**——五存档键(bonus_deck/bonus_taken/bonus_pending/bonus_result/bonus_aux_carry)引号字面量禁改,代码侧变量全换 curio_。依据:与③批先例一致;全仓对拍六形态逐键全等。
|
||||
2. **bonus_aux_carry 语义澄清(T0 回写)**:该键系**秘宝件跨关携带**(③批已对齐 treasure 词族),非奇物概念——剔除出本批改名面;_bonus_treasure_carry 变量随③批保留。
|
||||
3. **"relics" 第 6 存档键(任务书漏登记)**:adventure_runner 断点快照/摘要 additive 键 "relics"(迭代 12 T1 扩列)——任务书 §2.5 只列 5 键漏此键;按甲案精神禁改+registry/任务书回写。kind 值 "relic"/身份前缀 "relic:"/relics_seed 参数同理保留(数据契约键,A1 扫描口径=relic_ 下划线形态)。
|
||||
4. **T6b refresh 入池配额(用户门呈报,用户裁 B 案)**:refresh rare=2 从 heal rare 5 挤占(heal 5→3),总量 98 锚不变;契约 10 按裁更新;**池架构语义=总池-渠道子集(多级缓存形)**确立落 registry pool_architecture。
|
||||
5. **devour 货架保底退役(T4 连带)**:迭代 12 T6「货架零特性挤卡换吞噬流件」简化口径与渠道白名单直接冲突(devour=规则改写型=专长系不得进商店货架)——随渠道定位退役,留痕注释。
|
||||
6. **reward_overlay_test 红转绿(T2 连带)**:成因考证=M7 bcard 换装(PanelContainer)致 `c is Button` 恒 0(主区 3c4291d 起红在案);断言改数 _choice_box 子节点数(语义不变)——run_all 16 套历史首次全绿。
|
||||
|
||||
## 五、例外清单(A1 扫描口径残存量,批末)
|
||||
|
||||
【A1_EXCEPT】
|
||||
|
||||
## 六、遗留与移交
|
||||
|
||||
1. 07 清单登记(T8 已落 §⑰):①专长兑付时点目检(关底 Boss 击败那一刻=通关三选一,**不是战斗结算后**)+门票拿到即开目检+商店门票/回复行目检;②refresh 件入池后 heal 出现率感知归 T7 类节奏重测(跑批待批)
|
||||
2. C1 玩家可见面违规改法+档位呈现三路 → 呈现批(06 独立条目)
|
||||
3. C2 第四关+档二复裁+charge 补件 → 第四关内容批
|
||||
4. C3 门票四参数终值(现 provisional 20%/2/1/5)→ 曲线调参批
|
||||
5. C4 存档键正式迁移 → 存档批(本批甲案未迁移,兼容读旧键零破坏)
|
||||
6. MC 运行含既有 script error 噪音(ticket_id/minesweeper_rules 链)——待基线对拍归属,读数采集不受影响
|
||||
@@ -1,88 +0,0 @@
|
||||
# 出口报告:迭代 15 卡③ 秘宝代码词族对齐批(2026-10-05)
|
||||
|
||||
> 任务书 = `design/research/任务书-秘宝代码词族对齐批-2026-10-05.md` v1.2(§1.2 基线已回填)。
|
||||
> 设计事实源 = `design/gdd/systems/排雷循环/秘宝.md` v0.9。worktree = `g-plan2-m4iter15-mibao`,分支 `m4iter15-mibao-20261005`。
|
||||
|
||||
## 一、提交链(worktree 八笔)
|
||||
|
||||
| # | 提交 | 内容 |
|
||||
|---|---|---|
|
||||
| 1 | b4b8bb3 | T1 组A+D:玩家可见文案 5 处 + 注释层「魔法道具」→「秘宝」全清(敌方语汇/道具工坊分色保全) |
|
||||
| 2 | dfd5fdd | T2 组C:architecture.md 两处既有断链清偿 |
|
||||
| 3 | 5294b12 | T3 组F:`"aux_item"` 域串 16 处 → `"treasure_item"` + `TREASURE_ITEM_TYPE` 常量族 + `reward_dangling_treasure` 诊断码 |
|
||||
| 4 | 2532c8f | T4 组B-1:四文件改名(treasure_items.gd / treasure_item_table.gd / treasure_items.tres / treasure_interact_controller.gd)+ 类名 + .uid 稳定 + .tres ext_resource 同步 + --import 重刷 |
|
||||
| 5 | 7e5b6d9 | T5 组B-2:ConfigDB 注册键/持有变量/五访问器 + 调用方 + 单测桩表 + loaded 取键 |
|
||||
| 6 | f8c6db4 | T6 组E-1:三测试文件改名 + run_all 登记 + test_kit 注释同步 |
|
||||
| 7 | cd73e62 | T7 组E-2:内部标识符全族换词(60+ token)+ 存档键零触碰专项核 + 任务书 §1.2 基线回填 |
|
||||
| 8 | 8c27213 | T8:tests 文档两处清零 + 奇物.md 换名断链补修 + 批末闸认证 |
|
||||
|
||||
主区合并提交与全量复跑读数见台账(active.md 快照行)。
|
||||
|
||||
## 二、批末读数(批末树态 8c27213 实跑)
|
||||
|
||||
| 闸 | 基线(3c4291d 实跑) | 批末 | 判定 |
|
||||
|---|---|---|---|
|
||||
| 冒烟 smoke_all | 755 项 / 0 失败 | **755 项 / 0 失败** | ✅ 零漂移 |
|
||||
| run_all 15 套件 | 14/15(唯一红 reward_overlay_test = **②批遗留基线红**,主区 3c4291d 同样红,非本批引入) | **14/15,唯一红同款** | ✅ 对照零新增 |
|
||||
| 行为探针 ui_probe / ui_click / ui_input / ui_tune | 全绿 | **全绿**(click done=true 问题=0 / input 十六断言 / tune 全链) | ✅ |
|
||||
| doc 三闸(lint/term/link) | lint 8 文件 2 不通过(既有)/ term 218 命中 3 疑似 / link 死链 0(主区带脏件口径) | 同基线 | ✅ 零新增 |
|
||||
| 熵增闸 repo_structure_audit | PASS | PASS | ✅ |
|
||||
| MC 逐位对拍 | —— | **未跑(goal 令:纯改名零数值面禁跑 MC,静态零漂移证明代之,见 §四-12)** | ✅ 按令豁免 |
|
||||
|
||||
**渲染像素类闸本批屏蔽**(golden_compare / shot_probe / fx_probe / ui_layout_probe / board_shot)——组 A 文案变更使像素断言合法失效,按 goal 令弃断;**补跑挂账 07 清单**(迭代 14 全落籍后表现批周期闸一次性补跑)。
|
||||
|
||||
## 三、批末验收断言(12 条)
|
||||
|
||||
1. **词族换尽**:`aux_`/`AuxItem*`/`AUX_ITEM*` 批末全仓 game/ 残留 43 处,**逐处归例外**(§五清单),零在族欠改。
|
||||
2. **玩家可见清零**:`grep 魔法道具 game/` = 1 处(`game/README.md:538`,§4.4 禁改项·历史 changelog 留痕,非玩家可见面)——代码与 UI 面零命中。tests/README.md 与 critical-paths.md 两处已随批清零。
|
||||
3. **重闸全绿**:冒烟 755/0(§二);run_all 零新增;四探针全绿;doc 三闸+熵增闸零新增。
|
||||
4. **存档兼容零破坏(R1)**:本批 diff 全部 37 文件、六存档键(`bonus_aux_carry`/`aux_items`/`aux_detail`/`aux_cleared`/`aux_cleared_last`/`attunement_charges`)引号字面量 HEAD↔批末**逐键普查零差异**;点号访问形式全仓代码行**零存在**(仅注释提及);`_node_bonus_pending` 持久化嵌套键全部引号形态未动。
|
||||
5. **数值零漂移(R2)**:静态证明——批 diff `game/data/tables/` 数值行零改动(断言空);`magnitude`/`weight`/`power`/`charge_n` 零触碰;reward.tres 零改动。
|
||||
6. **schema 契约面零变更(R3)**:`CELL_TYPES.size()==10` 保持(改字面量不改项数);`smoke_all.gd:3932` 断言同步为 `has("treasure_item")` 后全绿;校验行为不变,错误消息文案可变(`reward_dangling_treasure` 诊断码随族改,测试双端同步)。
|
||||
7. **零字段更名(R4)**:`item_id`/`effect_kinds`/`form`/`slot_cost` 原样;treasure_items.tres 仅改 `script_class` 与 `ext_resource` 路径。
|
||||
8. **零 await(R5)**:批 diff core/ 新增 await 行数 = 0。
|
||||
9. **冒烟夹具零触碰**:smoke_all.gd 断点夹具区(:4473/:4495 `"aux_items"`/`"aux_scout"`)diff 零改动。
|
||||
10. **敌方语汇保全**:`魔法矢`/`魔法反噬`/`魔法族`/`魔法护甲` 12 处未动;`道具工坊` 8 处未动;`arch_names["magic"]` 未动。
|
||||
11. **.uid/.tscn 纪律**:四个改名 .gd 的 .uid 随文件改名且内容零变(git R100);全仓 .tscn 对改名目标零引用(改前已核);--import 批内重刷两次(T0 基线 + T4 改名后),类名解析实证=冒烟加载 TreasureItemTable 零报错。
|
||||
12. **registry 条目键不动**:`design/registry/entities.yaml` 零改动(条目键 `aux_items` 数据契约键沿用)。
|
||||
|
||||
## 四、缺陷与自修记录(全 L1 级,均当轮闭环)
|
||||
|
||||
1. **T3**:任务书 §4.3 的 16 处清单漏计 `AUX_ITEM_TYPE` 常量消费方 4 处(cross_validator×2 / reward_economy / smoke:2578)——冒烟 SCRIPT ERROR 抓到,自查补齐,一次重试绿。
|
||||
2. **T4→T5**:`treasure_items.gd:117` 桩回退行 `_db.aux_items.` 漏随族改 → run_all `treasure_items_test` 红 → 补修转绿。
|
||||
3. **T8**:`grep 魔法道具 game/` 在 .gd/.tres 口径外余 3 处文档件——tests/ 两处随批清零;README.md 一处按 §4.4 保留(见 §五-4)。
|
||||
|
||||
## 五、例外清单(批末仍在族字面量穷举,共 43+2 处)
|
||||
|
||||
| 类 | 量 | 明细 |
|
||||
|---|---|---|
|
||||
| 存档键引号字面量 | 43 | `aux_detail`×30 · `aux_items`×11(断点快照键+冒烟夹具键)· `aux_cleared`×10·`aux_cleared_last`×1(含信号文档注释提及)· `bonus_aux_carry`×3 · `attunement_charges`×2 |
|
||||
| 冒烟夹具数据值 | 2 | smoke_all.gd `:4473/:4496` `"aux_scout"`(断点快照夹具 item_id,整块零触碰) |
|
||||
| game/README.md §4.4 禁改项 | 1 | `:538` 历史 changelog 行文(§1.2 判定 2 唯一余量,非玩家可见) |
|
||||
| registry 条目键 | 库外 | `design/registry/entities.yaml` `aux_items` 条目键沿用(数据契约) |
|
||||
| 裸词 `aux`/`attunement_*` | 库外 | 裸 `aux` 局部变量与注释词(无 `aux_` 族 token 形态,出口 grep 族外);`attunement_*` 系同调位 DND 机制名(秘宝.md v0.9 明令保留) |
|
||||
|
||||
## 六、代拍板追认单(白名单内 5 项,请追认)
|
||||
|
||||
1. **词根选型 `treasure_*` 全族**:`treasure_item`(域串)/`treasure_items`(表+注册键+变量)/`TreasureItemTable`/`TreasureItems`/`treasure_items.tres`/`treasure_item_table.gd`/`treasure_items.gd`/`treasure_interact_controller.gd`。依据:任务书组 B 预设建议词根 + 全仓 `treasure` 零冲突(局内奇物 `curio_*`/`feat_*` 无碰撞)。
|
||||
2. **诊断码 `reward_dangling_aux` → `reward_dangling_treasure`**(config_db_cross_validator + 测试双端)。依据:§4.0 判据(指向秘宝概念)、R3 文案可变行为不变。
|
||||
3. **`aux_unlocked` params 键族改 `treasure_unlocked`**(main/adventure_runner/smoke/breakpoint_resume_test 四端同步)。依据:已核实该键=main.gd 现场构造的进程内 params 键,**不入任何存档**(§4.1 判据只锁跨局持久化键)。
|
||||
4. **呈现与结算 token 全族**:`aux_inventory→treasure_inventory`、`aux_mark→treasure_mark`、`_aux_reveal/_aux_preview→_treasure_*`、`aux_slot_clicked→treasure_slot_clicked`、`set_aux_inventory/set_aux_overlays→set_treasure_*`、`use_aux→use_treasure`、`aux_replace_presented→treasure_replace_presented`、`aux_replace`(autoplay 事件日志键)→`treasure_replace`、`_aux→_treasure_ui`、`AuxInteractController→TreasureInteractController` 等。依据:§4.0 判据+白名单词形自由。
|
||||
5. **三处注释/错误文案换词**:meta_table.gd:88 校验错误消息(「出域秘宝六件词表」)、treasure_items.gd/treasure_item_table.gd 头注 registry 键提及换「秘宝条目(键 aux_items 沿用)」、treasure_interact_controller:11 注释类名引用同步。依据:R3 文案可变。
|
||||
|
||||
**非代拍、按硬边界执行**:`game/README.md:538` 未改(§4.4 明令 + 换名先例「历史留痕原样保留」)——若你要它也清零,一句话即补。
|
||||
|
||||
## 七、挂账与移交
|
||||
|
||||
1. **渲染像素类闸补跑**(已挂 07⑮):迭代 14 全落籍后表现批周期闸一次性补跑五件。
|
||||
2. **实机目检**(已挂 07⑮):「秘宝」字样全 UI 面——C 区槽位标题+悬停 tooltip+战斗总结叙述行+上关清空 toast。
|
||||
3. **reward_overlay_test 基线红**:②批遗留(选择态三卡 btns=0),本批未触碰其域,**归属 ②批收口方处置**;读数已录本报告 §二。
|
||||
4. **存档键正式迁移**(②批待裁点):本批未动任何键名,②批若启动迁移与本批无冲突(键字面量=本批保护面)。
|
||||
|
||||
## 八、并行协调与合并实录
|
||||
|
||||
1. **合并前停机点(goal 令履行)**:batch 末查得 master 已推进 85dc9af(迭代14①收窄批落籍)且新在飞 worktree m4iter14-skillpool(④技能池批)——四文件重叠(battle_orchestrator/adventure_runner/level_runner/main.gd),按 goal 令停机提问三选一;**用户裁「我先合,对方 rebase」**。
|
||||
2. **第一轮 master 并入**(85dc9af):07 清单⑬双登冲突(收窄批⑬保留,本批目检项改⑭);smoke_all.gd/roadmap auto-merge;合并后全查零旧词带入。
|
||||
3. **局面变化**:技能池批未等本批,先自落籍 master(d3fa887,冒烟 772/0);用户令继续并提示防冲突。
|
||||
4. **第二轮 master 并入**(d3fa887):07 清单⑭双登冲突(技能池⑭保留,本批目检项改⑮);四重叠文件 auto-merge **零旧词带入**(全查仅存档键合法例外——技能池批新增行不在 aux 词族区);认证电池复跑(--import+冒烟+run_all+四探针)。
|
||||
5. **经验注记**:并行双批各自在旧词族/新词族上开发时,auto-merge 静默带入旧词的风险真实存在;本批合并后全仓 token 级 grep 复查是必要闸,不能只看 git 冲突标记。
|
||||
@@ -1,125 +0,0 @@
|
||||
# 出口报告:UI 设计对齐批(迭代 16)
|
||||
|
||||
> 任务书=[任务书-UI设计对齐批-2026-10-05.md](../research/任务书-UI设计对齐批-2026-10-05.md)(v1.0 定稿,P1-P11 裁决已齐)。
|
||||
> 本报告随卡渐进成文;T0 基线节随 T0 提交,其余节随各卡追加。
|
||||
|
||||
## T0 · 基线回填(2026-10-06 实测)
|
||||
|
||||
### 环境与提交基线
|
||||
|
||||
- worktree=`D:/code/g-plan2-iter16ui`,分支 `iter16-ui-20261005`,起点=**a39d044**(master 3c6f2c9 + 第〇步纯文档批:迭代 16 改号=UI 设计对齐批、原四卡顺延迭代 17、UI 任务书 P1-P11 裁决落文,含五处陈旧待裁标记擦除)。
|
||||
- worktree 缺 gitignored 素材(`game/assets/art/` 不入 git)——已从主区整目录拷贝(磁盘本地、不入库、素材字节零改动);`artwork/` 不拷(Q9 丙禁回读 demo 文件)。
|
||||
- 冷刷导入一次(fresh worktree 一次性成本,uid_cache 建立)。
|
||||
|
||||
### 基线闸读数(全部实测,替代任务书起草读数)
|
||||
|
||||
| 闸 | 读数 | 对照 |
|
||||
|---|---|---|
|
||||
| 冒烟 smoke_all | **782/0**(与 3c6f2c9 落籍读数一致) | §1.2 起草值 772/0 已过时 |
|
||||
| run_all | **16 套全绿** | 起草值 14/15(reward_overlay 红)已过时——该红已随 15② 修复 |
|
||||
| probe_gate --click | 全绿:ui_input 16 断言 PASS / ui_struct 全屏零红 / click done=true 问题=0 / 残留 Godot=0 | — |
|
||||
| ui_layout_probe | exit=0(布局树 dump 工具,无断言失败形态) | — |
|
||||
| gdd_lint | **既有 2 文件不通过**:06-待办清单(表格占比 1%)· 07-体验验证清单(表格占比 7%) | 基线,本批守零新增(不得出现第 3 个) |
|
||||
| doc_link_audit | **既有死链 2 处**:奇物.md:130 → ../ux/battle.md、../ux/node-reward.md(master 既有在册);worktree 环境假红 2 处=06:121 `.zcode/plans` + 06:309 `archive/`(gitignored 目录 worktree 不存在,主区实存) | 基线 2 处,守零新增 |
|
||||
| doc_term_audit | 退役词命中 218 处 / 疑似现行 3 处(与主区逐字一致) | 基线,守零新增 |
|
||||
| 熵增闸 | design/diagrams 越界 ×1(双树一致,**既有在册归 archify 批**) | 基线,守零新增 |
|
||||
|
||||
### demo md5 重核(Q9 丙留痕)
|
||||
|
||||
`78ebbee0d9d4c1b5c902e6b8878c8800`(2026-10-06 主区实测)= 任务书 §2.2 抄录基线,**零漂移**;此后不再回读 demo 文件,取值一律以任务书 §2.2 抄录表为准。
|
||||
|
||||
### §2 事实表 15 项复核(全 15 项成立;漂移注记 5 条)
|
||||
|
||||
| # | 结论 |
|
||||
|---|---|
|
||||
| F1-F5 | 全成立(行号逐一吻合:BG_ROOT:65/WARM_SOFT:48/PANEL_DATA:24/panel 8.0:286/button 8.0:327-331/frame 12.0:299/panel_skinned 8 消费+1 工厂) |
|
||||
| F6 | 成立;**clampi 实际在 board_view.gd:254**(任务书 :251,+3 行漂移)——P2 丁案「零改动」不受影响 |
|
||||
| F7 | 成立(terrain 三枚实测 32×32) |
|
||||
| F8 | 成立且**读数增长**:UiKit.label 裸字号普查现值 103 处 15 档(11×6/12×9/13×14/14×15/15×15/16×18/17×2/18×4/20×4/21×1/22×5/24×3/26×3/32×1/40×1;起草 78 处口径已过时)——低于正文下限 16 的 11-15 档合计 59 处;另有 status_slot_row 内部 override 13px:67/10px:148 两处。T6 以本次普查为准逐处判定 |
|
||||
| F9 | 成立;**RED_MINE 实值=#962C24**(Color8(150,44,36),任务书注 #96362C 系笔误;RED_DEEP=#963C30 注记正确);槽位字色行在 hero_info_panel_view.gd:209-211 附近(:196-207 为字形创建区) |
|
||||
| F10 | 成立(box 150×176:26 / 底座 box.y-18:417-419 / 名行基线 box.y-1.0:476) |
|
||||
| F11 | 成立(九枚 preload 恰在 :21-29) |
|
||||
| F12 | 成立(柜台四枚 64×64 / 状态九枚 32×32 / BCard 槽 56:421 / 头像 46×48 vs 50×52 槽) |
|
||||
| F13 | 成立(button min_w=216:258) |
|
||||
| F14 | 成立(_register_modal 在 presentation/main.gd:346-351,set_anchors_and_offsets_preset ✓) |
|
||||
| F15 | 成立且已复核(md5 与任务书一致) |
|
||||
| 补 | INK_LABEL 常量定义在 ui_kit.gd:19(任务书 :212 系 label() 内回落应用行,两处均实存) |
|
||||
|
||||
### 七点对比度实机复算(替换 demo 读数——背景取实机直背常量,WCAG 相对亮度法)
|
||||
|
||||
**总发现:实机直背与 demo 反向的两处(意图徽标/槽位字),任务书 N1 表的修法方向在实机会劣化;RAP 一处实机本已合规。** 按「§3 收项一律以 T0 复核后的实况为准再落笔」与三层优先级栈②(§7.2 ≥4.5 无区域例外),修法落点以本表为准,偏差逐条留痕:
|
||||
|
||||
| # | 点 | 实机对比对(fg on bg) | 现值 | 判 | T0 复核后落法 |
|
||||
|---|---|---|---|---|---|
|
||||
| 1/2 | 站桩血数(敌我同色同分支) | 白 α.95 on 血条填充 #699CE8 | **2.67** | FAIL | 修法成立:中央垫 `HP_BAR_BACK #28221C` 素牌后 = **14.29 ✓**(任务书 12.29 系不透明白口径;实机 α.95 混成后 14.29 更优)。字号 11px 维持,随 P11 豁免条款落文 |
|
||||
| 3 | 意图 atk ⚔ | RED_MINE #962C24 on 舞台底 STAGE_BG #3E342A | **1.55** | FAIL | **demo 修法(RED_DEEP 降一档)在实机暗底反向(1.73 更劣)**。改为 §4.1 色牌原则同 N1-1:徽标垫 `PANEL_DATA #E2D2B6` 素牌——RED_MINE on 牌 = **5.27 ✓**(零换墨);若按任务书换 RED_DEEP on 牌 = 4.73 亦合规(T2 取舍,推荐零换墨) |
|
||||
| 4 | 意图 buf ✦ | HERO_BLUE #2E86DE on #3E342A | **3.23** | FAIL | 垫牌(同上)+ 墨换任务书值 **#1E5A96**(HERO_BLUE 同族深档,命名随 CONTACT_GLOW_DEEP 规则):on 牌 = **4.78 ✓**(不垫牌单换墨在暗底 = 1.71 反向,否) |
|
||||
| 5 | C区槽「已用」 | STONE_FAINT #8C7C64 on 石皮均值 #D6C7AD | **2.44** | FAIL | **demo 修法(提档 WARM_FAINT)在实机亮皮反向(1.17)**。实机石皮=亮底,改双向**深化**墨色:候选 INK_LABEL(on 石皮 9.30 ✓);已用/不可用两态 T2 定值(Q6 乙:不新增通道,只调墨) |
|
||||
| 6 | C区槽「空/不可用」 | STONE #786E62 on #D6C7AD | **3.00** | FAIL | 同上深化(≥4.5 定值 T2 落) |
|
||||
| 7 | RAP 标签 | INK_LABEL #2E2218 on ap_bar 面板 PANEL_DATA #E2D2B6 | **10.40** | **合规** | **demo 的 4.10 FAIL 在实机不存在**;任务书修法(显式 CONTACT_GLOW_DEEP)作废——实机套用会跌至 1.31。落法=零改动(显式传色可选作确定性加固,T2 顺手则为 INK_LABEL 显式化,不改值) |
|
||||
| 表外 | 意图 debuff ☠ | DEBUFF_PURPLE #7A4294 | on 牌 4.66 | 垫牌后 ✓ | 随 #3 垫牌自动达标,零换墨 |
|
||||
| 表外 | 意图 charge | GOLD_DEEP #B07A14 | on 牌 2.50 | FAIL | 垫牌后仍不足——需深化金墨档(T2 定值 ≥4.5,新常量入 ui_kit,命名同族规则) |
|
||||
|
||||
### 交集核对
|
||||
|
||||
`git worktree list` 仅本 worktree 在飞;迭代 15② 奇物批已落籍 master(3c6f2c9),其文件面(feat_*/curio_* 词族、数据表、adventure/level_runner)与本批呈现层面(ui_kit/standee/status_slot_row/hero_info/ap_bar/bonus_pick/shop_overlay/board_cell_unit/level_map_screen/探针)**零交集** → 「不触碰 15② 在飞文件」停机点按开工令自动解除,核对零命中。
|
||||
|
||||
### T0 结论
|
||||
|
||||
基线回填完毕,无停机条件触发。**T2 实施修正案**(相对任务书 §3-N1):①意图徽标四处=垫 PANEL_DATA 素牌,atk 零换墨/buf 换 #1E5A96/charge 需深化金墨/debuff 自动达标;②槽位字两态=深化墨色(非 demo 的提亮);③RAP=零改动。其余收项(垫牌几何 12.29→14.29 口径、字号豁免条款落文等)按任务书+白名单执行。
|
||||
|
||||
## T2-T8 · 实施落籍(提交链 85ea024→e5427af,十提交 32 文件)
|
||||
|
||||
| 卡 | 提交 | 落点 |
|
||||
|---|---|---|
|
||||
| T1 | a55a302 | status_slot_row 九枚 preload→load_tex(呈现层素材 preload=0) |
|
||||
| T2 | b38ae07 | N1 七处修法(T0 修正案落码)+ui_contrast_probe 入 probe_gate 默认段+§7.4 豁免条款 |
|
||||
| T3 | 4e7aa83 | N2 站桩纵向余量(STANDEE_FOOT_MARGIN=12)+ui_struct_probe ⑥standee 断言族 |
|
||||
| T4a | af5f317 | N4a 裸色全量收 ui_kit(25 处/10 文件)+N4c TG_* 五族+tg_band() 分族+商店货架分族 |
|
||||
| T4b | b26e3fb | P7 乙五 token 向 demo 值+§7.2 五件对齐注记 |
|
||||
| T5 | 2f74da8 | P4 乙切片 16+Q1 丙 margin clamp+P5 甲 RADIUS_OBJECT=5 收敛(26 处归一)+§7.1 两条注记 |
|
||||
| T6 | e0fd7cb | P3 甲 FS_* 六档+全库 107 位点归档+P11 豁免清单落文 |
|
||||
| T7 | 1b2ecf6 | P6 甲缩放纪律+P10 乙记忆态纹理灰罩+§8.2 例外登记+§6.5 条款换代 |
|
||||
| T8 | e5427af | P8 甲 bcard 卡顶 Bayer 抖动带试点(DitherBand 4×4/2px 元胞) |
|
||||
|
||||
## N5 · 面板皮消费面造册(T5 判定留痕,代拍板「不强制补皮」)
|
||||
|
||||
**穿戏服 9 面**(panel_skinned,全部容器/分组框判据 ✓):ui_assembler:202 帮助板 / battle_end_overlay:33 结算容器 / battle_stage_view:93 叙事板 / confirm_dialog:19 确认框 / hero_info_panel_view:34 C区主面板 / legend_overlay:31 图例 / node_overlay:17 节点框 / settings_overlay:39 设置容器 / ui_kit BCard 工厂(商店+三选一卡)。切片 16 后 content margin 全部经工厂 clamp ≥16(原 <16 的 7 面自动抬平,调用点零改)。
|
||||
**素面维持零补皮**(§7.1「数据素面」判据):AP 条/状态槽两档/槽 chips/地图底栏三框/tooltip/回合横幅/棋盘提示条/数字色牌——直角素面原样。
|
||||
|
||||
## T9 · 重闸读数(全绿,与 T0 基线逐项对齐)
|
||||
|
||||
| 闸 | 读数 | 对照基线 |
|
||||
|---|---|---|
|
||||
| 冒烟 | **782/0** | 同基线(断言数持平——纯呈现批零逻辑面) |
|
||||
| run_all | **16 套全绿** | 同基线 |
|
||||
| ui_input_probe | 16 断言 PASS | 同 |
|
||||
| ui_struct_probe | 全屏零红(含新增⑥standee 族) | +1 断言族 |
|
||||
| ui_contrast_probe | 11 对测点全绿+裸色 0+preload 0 | 新增段 |
|
||||
| ui_click_probe | done=true 问题=0(预算 15981) | 同 |
|
||||
| ui_layout_probe | exit=0 | 同 |
|
||||
| gdd_lint | 2 文件不通过(06/07 表格占比——既有) | 零新增 ✓ |
|
||||
| doc_link_audit | 死链 4=基线 2(奇物.md×2 既有)+环境假红 2(.zcode/plans+archive 不入库) | 零新增 ✓ |
|
||||
| doc_term_audit | 218 命中/3 疑似(既有) | 零新增 ✓ |
|
||||
| 熵增闸 | design/diagrams 越界 ×1(既有在册归 archify 批) | 零新增 ✓ |
|
||||
| MC | **零跑**(纯呈现批:核心/数据层 diff=0 实证、零 RNG 消费变化——两入口铁规+任务书 §7) | — |
|
||||
| 素材红线 | game/assets/art 与 artwork/ 零触碰(git status 空) | ✓ |
|
||||
|
||||
## T10 · 人闸材料包
|
||||
|
||||
`design/qa/iter16-ui-human-gate-checklist-2026-10-06.md`(A 整屏样张闸四项〔Q2 乙并入〕+B 八屏对比+C 本批专项十项+D 减动效+E 代拍板追认单八项+F 机检佐证)。board_shot 系窗口化探针按 probe_gate 纪律不入 headless 闸,随人闸实机执行。
|
||||
|
||||
## 估时对照
|
||||
|
||||
任务书预算 T0-T11≈6.9d(超软盒 3 日知情预挂)→ **实际单会话一次跑完**(沿迭代 13/15 先例;段一切分预案未触发——三段并一次合并=Q7 甲)。超支点无;T6 位点规模超起草口径(107 vs 26)经机检化扫批吸收。
|
||||
|
||||
## 偏差与呈报汇总(本批对任务书的全部修正,均系 §3「以 T0 复核实况为准」授权面)
|
||||
|
||||
1. **N1 七点修法三处改向**:意图徽标四处=垫 PANEL_DATA 素牌(demo 的「换墨降档」在实机暗底反向);槽位字两态=深化墨色(demo 的「提亮 WARM_FAINT」在实机亮皮反向);RAP=零改动(实机 10.40 已合规)。血数垫牌口径 12.29→14.29(α.95 混成实算)。
|
||||
2. **N4a 普查漏记**:裸 Color8 实数 25 处/10 文件(任务书 5 处)——已全量原值搬运收 ui_kit,白名单清零。
|
||||
3. **字号普查增长**:UiKit.label 位点 78→107(15②后新增面);归档映射=就近档(40→34/26→24/22→24/20→18/13→14/11→12)。
|
||||
4. **TG_AOE 归族判定**:blast/aoe→TG_AOE(#E25676;消费面=reward.tres 现成 clear_blast/spark_aoe),magic 独留紫——卡带观感变化=爆裂族紫转粉,人闸 E5 可推翻。
|
||||
5. **新增常量八枚**:HERO_BLUE_DEEP/GOLD_INK/STONE_DEEP(N1)+TG_* 五族(N4c)+RADIUS_OBJECT/PANEL_SLICE/FS_* 六档(P5/P4/P3)+N4a 搬运 14 枚——全部 ui_kit 单点。
|
||||
6. **⑥standee 断言语义**:「⊆舞台+底缘 ≥8px」(全边 8px 内缩过严——容器左右边距 6px 既有)。
|
||||
7. **T6 扫批事故一起**:settlement_fx span 错位写入两处,当批发现当批修复(diff 复核全净)。
|
||||
8. **批外残余登记**(06 新条):站桩名行四墨(WARM_FAINT/HERO_BLUE/GOLD_DEEP/WARM 对舞台底)+敌顺位徽标 GOLD_DEEP+RAP 反馈墨 STONE_FAINT 等邻接文字位实测 <4.5:1——非任务书七点范围,未动,随 06 待后批。
|
||||
@@ -1,57 +0,0 @@
|
||||
# 人闸目检清单:UI 设计对齐批(迭代 16)· 2026-10-06
|
||||
|
||||
> 执行=用户实机(T10 人闸)。启动:Godot 打开 `game/project.godot` 运行即可;逐项勾选,不过项随批登记返工。
|
||||
> 对照基线:demo 原型 v2.1 md5 `78ebbee0…`(主区 `artwork/ui-redesign-2026-10-04/src/ui-prototype.html`);本批起点 a39d044 → 头 e5427af(merge 后见 roadmap 行)。
|
||||
|
||||
## A · 整屏样张闸四项(Q2 乙——§1.4 并入,逐屏过)
|
||||
|
||||
- [ ] A1 文字对比 ≥4.5:1 抽测(重点=本批七处修法:站桩血数垫牌/意图徽标四色垫牌/C区槽两态/RAP 标签)
|
||||
- [ ] A2 明度分层三档带(各屏底/板/字三层关系未被本批取值换代打破)
|
||||
- [ ] A3 整屏焦点预算首焦唯一(各屏视觉主焦点仍唯一)
|
||||
- [ ] A4 文字禁压纹理底(垫牌面:血数牌/意图牌在石皮上为素牌形态)
|
||||
|
||||
## B · 八屏对比走查(demo v2.1 为方向稿,逐屏与实机对看)
|
||||
|
||||
- [ ] B1 标题屏(主标题 40→34FS_H1/底座椭圆 17 保留/副题 16)
|
||||
- [ ] B2 设置屏(警示文两处 INK_HINT 12→12/标题 24)
|
||||
- [ ] B3 营地(柜台头带图标 20→32/柜台说明文 12/行板/钥石徽章/等级章字)
|
||||
- [ ] B4 战斗屏(B 区舞台切片 16 石皮/站桩血数牌/意图徽标垫牌/状态槽 32px/回合横幅圆角 8→5)
|
||||
- [ ] B5 关卡节点地图(底栏头像 46×48 定高随宽/组标 12px/记忆态新形)
|
||||
- [ ] B6 战斗结算(金印 200 保留/明细带字级)
|
||||
- [ ] B7 奖励三选一(卡片抖动色带/标题 22→24/脚注 12)
|
||||
- [ ] B8 商店(货架卡分族色带=attack→通用金·heal/hp→绿·blast/aoe→#E25676/图标 40px/价签 24)
|
||||
|
||||
## C · 本批专项(改动面逐处)
|
||||
|
||||
- [ ] C1 站桩:血数深牌可读、名行不再贴盒底(基线上移 13px 目视不悬空)、内容不出 252 舞台(探针⑥已绿,实机复核)
|
||||
- [ ] C2 棋盘记忆态(P10 乙新形):区外已开格=地板纹理+灰罩,数字灰墨可读;与全黑未开格/灯光区活格三态可辨;暗房档抽检
|
||||
- [ ] C3 卡片抖动色带(P8 试点):三选一/商店卡顶=像素台阶感抖动带(非平滑渐变)——**观感不佳的回退案=band 段还原平涂条(DitherBand→ColorRect 6px 一处改)**
|
||||
- [ ] C4 图标缩放纪律:B 区状态槽 32px 不挤槽体/营地头带 32px 不压带高/BCard 40px 居中/地图头像无拉伸变形
|
||||
- [ ] C5 字号档位全扫后观感:重点=主标题 40→34、屏题 26→24、营地题 22→24、暴击演算 32→34/26→24——有无「变小失势/变大失稳」单点
|
||||
- [ ] C6 panel 切片 16+margin clamp:石皮四角变大后有无纹理压缩感;7 处内容边距抬升后有无局促(营地 372 列/图例/设置/确认框)
|
||||
- [ ] C7 圆角收敛 5px:所有容器/按钮/开关/横幅同率;数据框仍直角;例外三件(底座 17/金印 200/脉冲环 100)原样
|
||||
- [ ] C8 五 token 换代(Δ≤6/255 应不可辨):数据板/板线/状态槽底/血条底/营地头带——并排看新旧截图如有可辨差异即报
|
||||
- [ ] C9 RAP 标签显式墨(视觉应零变化)
|
||||
- [ ] C10 1920×1080 档复验(1.35× 例外档——布局/切片/抖动带在该档不劣化)
|
||||
|
||||
## D · 减动效与环境
|
||||
|
||||
- [ ] D1 减动效开关双态(本批零新动效——开关行为应与批前一致;抖动带/灰罩均静态)
|
||||
- [ ] D2 全屏/窗口切换后 UI 不破(切片/margin 改动面)
|
||||
|
||||
## E · 代拍板追认单(2026-10-06 白名单内已落,目检可推翻)
|
||||
|
||||
| # | 项 | 已落值 | 推翻改法 |
|
||||
|---|---|---|---|
|
||||
| E1 | RADIUS_OBJECT | 5 | 嫌大→ui_kit 常量改 4 一处 |
|
||||
| E2 | 槽「已用」墨 STONE_DEEP | #554D41 | 提/降一档随手感 |
|
||||
| E3 | 蓄力墨 GOLD_INK | #74500B | 同上 |
|
||||
| E4 | 增益墨 HERO_BLUE_DEEP | #1E5A96 | 同上 |
|
||||
| E5 | TG_AOE 归族(blast/aoe→#E25676) | tg_band() | 若嫌爆裂弃紫转粉违和→blast 行移回 TG_MAGIC 一行 |
|
||||
| E6 | 血数牌宽 = 字宽+8px | 白名单 8 | 挤/松→6 或 10 一处 |
|
||||
| E7 | 抖动带 4×4/2px 元胞/8px 高 | 实现细节 | 嫌粗→8×8 或 1px 元胞 |
|
||||
| E8 | 意图徽标垫 PANEL_DATA 素牌 | T0 修法 | 嫌亮牌突兀→改暗牌+换亮墨(另行呈报) |
|
||||
|
||||
## F · 机检佐证(已全绿,实机只抽核)
|
||||
|
||||
冒烟 782/0 · run_all 16 套全绿 · ui_input 16 断言/ui_struct 全屏零红(含⑥standee 新族)/ui_contrast 11 对测点+裸色 0+preload 0/ui_click done=true 问题=0/ui_layout exit0 · doc 三闸与熵增闸=基线零新增 · 素材零触碰(game/assets/art 与 artwork/ 未改)· MC 零跑(纯呈现批,核心/数据层零 diff)
|
||||
@@ -1,61 +0,0 @@
|
||||
# 出口报告:生涯界面设计立项(迭代 17 卡④设计批)
|
||||
|
||||
> 批次:纯设计批(零代码、零数据面、零测试执行——两入口铁规:非 loop 实施批且用户未点名)。
|
||||
> worktree:`g-plan2-iter17-career`(分支 `iter17-career-20261006`,基点 = master fc4dbde)。
|
||||
> 任务书:`design/research/任务书-生涯界面设计立项-2026-10-05.md`(v1.1 零待裁点,U0 已发)。
|
||||
> 本报告按「吸收即死」纪律属中间文档,寿命 = 迭代寿命;五条判定与 F1-F10 复核结论已同步写进各正式文档(生涯.md / 06 / roadmap)。
|
||||
|
||||
## 一、完成定义五条逐条判定(任务书 §1.2)
|
||||
|
||||
| # | 判定项 | 判定 | 依据 |
|
||||
|---|---|---|---|
|
||||
| 1 | 提纲成文 | ✅ | `design/gdd/systems/跨局循环/生涯.md` v0.1(P0 甲裁定的载体,状态=范围草案),五节齐:一、信息架构;二、承载内容清单;三、与既有界面的关系;四、分期实装建议;五、待裁点 |
|
||||
| 2 | 事实对齐 | ✅ | §2 事实表 F1-F10 逐条代码级复核全绿(见本报告 §二);提纲中每句现状描述带 file:line 指证(R1) |
|
||||
| 3 | 裁点齐备 | ✅ | P0-P5 已裁结论全部落文对应节;本批新发现待裁点一项(P6 营地最近冒险条带去留),三案全列含淘汰依据、有明确建议案;全文无「待定」悬空 |
|
||||
| 4 | 零实装 | ✅ | diff 仅含:新建生涯.md、02-系统清单.md 三行(树行/代号行/版本行)、06 状态行、roadmap 卡④行、active.md、本报告;`game/` 零改动、存档零改动、零测试执行 |
|
||||
| 5 | 人闸 | ✅(待用户执行) | 06 状态行已更新为「设计提纲已成文待评审」;**人闸 = 用户评审提纲**(评审时随裁 P6) |
|
||||
|
||||
## 二、T0 事实复核 F1-F10(2026-10-06 静态阅读,行号以实核为准)
|
||||
|
||||
| # | 事实 | 结论 | 实核证据(file:line) |
|
||||
|---|---|---|---|
|
||||
| F1 | 冒险中回看已退役 | ✅ 绿 | `battle_end_overlay.gd:9`(signal continue_pressed,注记 review_pressed 退役)、`:106`(明细回看钮退役注记)、`:90` 现为 GP 账目行 add_child——任务书 v1.0 的 :90 漂移勘误属实;`battle_log_view.gd:47`(「上轮摘要(回看归「生涯」」提示)、`:115`(带点击回看入口退役注记);`ui_assembler.gd:67`(明细回看 overlay 退役注记) |
|
||||
| F2 | settlement_review_overlay.gd 在盘 | ✅ 绿 | `game/presentation/views/settlement_review_overlay.gd` 在盘(含 .uid);全仓无实例化引用——仅 `ui_kit.gd:356` 样式注记提及「settlement_review 同款」;无 .tscn 引用 |
|
||||
| F3 | 跨局持久面 = save v5 meta 域 | ✅ 绿 | `save_manager.gd:39`(SAVE_FORMAT_VERSION=5 版本链注记)、meta 默认域键集 `:106-117`(keystone_balance/forge_levels/item_unlocks/level_clear_counts/boss_first_kill/boss_kill_count/attunement_equipped/attune_refresh_level/tree_nodes/fork_sides/recent_summaries/first_adventure_done)+ 访问器面 :202-:316 |
|
||||
| F4 | recent_summaries 现役 + 三件真实缺口 | ✅ 绿 | `save_manager.gd:40` SUMMARY_CAP=10;`:316` 值拷贝访问器;`:325-338` apply_adventure_summary(push_front + cap 截断 + boss_drops 副本 :334);`meta_progression.gd:129` settle_adventure 经 `:133` 归档(:125 注记)。缺口①cap 扩容、②用时零采集点(game/core grep elapsed/ticks/duration/Time 零命中;摘要字段集 `adventure_runner.gd:1007-1018` 无用时)、③总局数/通关局数无 lifetime 域(first_adventure_done 布尔 :117、level_clear_counts 按关 :109)——三条全实证 |
|
||||
| F5 | 当局结算呈现仍在 | ✅ 绿 | `main.gd:537` `_on_adventure_finished` 收束当下呈现摘要五件事+钥石入账明细;终局面三行账 `battle_end_overlay.gd:118-129`(open_victory 账行装配) |
|
||||
| F6 | 跨局汇总数据源现状 | ✅ 绿 | 各关通关次数 `save_manager.gd:238`、Boss 首杀/总击杀 :242/:250、钥石余额 :202(累计收支无流水——:206/:211 只动余额)、锻造/工坊/天赋树访问器 :218/:230/:256;总局数/通关局数两格无数据源(同 F4③) |
|
||||
| F7 | 图鉴承接候选内容 | ✅ 绿 | 06:192「敌方技能图鉴 / 学习呈现」(P2,见过→认得→记谱);奖励格图鉴柜台空置——06:244(随配比预设批挂起冻结)、`camp_overlay_view.gd:121`(柜台三框在)、`:128`(下段天赋树行占用注记) |
|
||||
| F8 | 相邻界面分工现状 | ✅ 绿 | 营地 `camp_overlay_view.gd:431` `_rebuild_recent()`、`:442` 行模板「完成/放弃/失败 · 通关 N 关 · 钥石 +N · 种子 N」(无截断上限)、`camp_shop_presenter.gd:85` recent 投影;主菜单按钮组 `ui_assembler.gd:104-160`(营地 :150);设置面 :152;暂停层 = 迭代 17 卡③并行批(本 worktree 基点未含其实码,提纲按任务书口径引用) |
|
||||
| F9 | 06 条目原文口径 | ✅ 绿 | 06:400「新「生涯」界面(跨局汇总/历史冒险回看/图鉴承接)」三段骨架原文在册 |
|
||||
| F10 | 阶段语境 | ✅ 绿 | 06 教学引导节各条状态行 Beta 阶段注记(:375/:383/:391,2026-10-04 拍板改排);生涯条目(06:396-404)无阶段标注——提纲分期建议以候选窗口作答 |
|
||||
|
||||
**差异记录(两处,均不阻塞)**:
|
||||
|
||||
1. `ui_assembler.gd` 实际路径为 `game/presentation/ui_assembler.gd`(任务书 F1 只写文件名未带路径,无歧义;提纲已用全路径引证)。
|
||||
2. 复核顺带发现一处**既有**登记滞后(非本批引入、不属本批范围):`design/registry/entities.yaml` 存档条目 version 注记仍写「SAVE_FORMAT_VERSION=4 / v1→v4 迁移链」,代码已至 v5(`save_manager.gd:39`,v5=天赋树域,迭代 12);domains 行的 meta 域九件明列与 recent_summaries cap 10 记载仍准确。属 registry 与代码的同步欠账,owner 文档 = 存档序列化.md,建议归后续文档对齐批或 doc 一致性检查呈报——本批 diff 范围不含 registry,未动。
|
||||
|
||||
## 三、交付物与落点
|
||||
|
||||
| 交付物 | 落点 | 状态 |
|
||||
|---|---|---|
|
||||
| 设计提纲(本批主体) | `design/gdd/systems/跨局循环/生涯.md` v0.1 | 范围草案,待用户评审 |
|
||||
| 根索引同步 | `design/gdd/02-系统清单.md`(跨局循环树行 + 命名对照表 CAREER 行 + v1.12 版本行) | 已落 |
|
||||
| 06 状态行 | `design/gdd/06-待办清单.md` 生涯条 →「设计提纲已成文待评审」 | 已落 |
|
||||
| roadmap 卡④行 | `roadmap.md` 迭代 17 卡④ →「✅ 设计提纲已成文待用户评审……人闸=用户评审提纲」 | 已落 |
|
||||
| 会话记录 | `active.md`(快照节追加 + 台账 379) | 已落 |
|
||||
|
||||
## 四、提交哈希清单
|
||||
|
||||
| 提交 | 内容 |
|
||||
|---|---|
|
||||
| 10df8ba | T1:生涯.md v0.1 成文 + 02 根索引三处(树行/CAREER 行/v1.12) |
|
||||
| (本提交) | T2 加批次收尾:06 状态行、roadmap 卡④行、active.md、本报告 |
|
||||
|
||||
终态 = worktree 内全部提交完成,**未合并、未 push**(合并落回 master 由用户/编排会话执行)。
|
||||
|
||||
## 五、遗留与移交
|
||||
|
||||
1. **人闸(唯一)**:用户评审设计提纲 `design/gdd/systems/跨局循环/生涯.md`,评审时随裁新发现的 P6(营地底栏「最近冒险」条带去留——建议甲:期二时撤下归生涯)。评审通过后期一/二/三实装批另行立项。
|
||||
2. 实装批前置义务已在提纲 §四登记(非本批工作):期一=对齐迭代 16 UI 基线 + save v6 两个终身计数域;期二=N 终值读数呈报(20/50/维持 10 三选一)与用时埋点口径呈报;期三=「见过」记账面 schema 义务。
|
||||
3. registry 存档条目 version 注记滞后(§二差异记录 2)——移交后续文档对齐批,非本批范围。
|
||||
@@ -1,70 +0,0 @@
|
||||
# 出口报告——内容数据驱动扩展批(迭代 17 卡⓪,2026-10-06)
|
||||
|
||||
状态:**批内全部提交完成、六闸全绿、终态=worktree(iter17-dd-20261006 分支)全部提交,待用户合并落 master**。
|
||||
执行事实源:[任务书-内容数据驱动扩展批-2026-10-06](../research/任务书-内容数据驱动扩展批-2026-10-06.md)(v1.1);设计权威:[研究-内容数据驱动扩展架构-2026-10-06](../research/研究-内容数据驱动扩展架构-2026-10-06.md)。
|
||||
执行形态:前任 subagent 完成 T0-T2 后因额度中断,续跑 subagent 接手 T3 断点(三个脏文件半成品)收口并完成 T4-T7。
|
||||
|
||||
## 一、提交清单(worktree 内全部提交,按卡)
|
||||
|
||||
| 卡 | 提交 | 内容 |
|
||||
|---|---|---|
|
||||
| T1(前任) | `7d157b3` | 效果引擎框架:事件发布订阅解释器+16 发射点埋点+组合规则六族+计数器账本 |
|
||||
| T2(前任) | `225765f` | 词汇表落码:feats/treasure 两表 trigger 订阅形态 schema 换代+护栏迁移 |
|
||||
| T3 | `e28a6cb` | 专长迁移:27 行 triggers 全量生效+旧 23 挂点枚举消亡+_feat_flags_for 退役+消费点拆除(伤害控制器 13 处+编排器全部旗面)+文案入表(专长卡 desc)+断言面随迁(冒烟 ④-⑧ 全量改写) |
|
||||
| T4+T5 | `a33ddaf` | 秘宝六件迁移(淬毒/偏运/晨令/惊巢/殉爆/掘进蓄能受理闸)+按 id 特判清零+pick_refresh kind 分发+curio 卡片文案入表;令牌兑付 match 收敛进效果类型路由表+树规则键同面收口 |
|
||||
| T7 | 本批终提交 | 文档正主换代(奇物.md v2.8/秘宝.md v1.0/敌人系统.md v0.14+registry 两件+06 状态收口+roadmap 卡⓪行)+本报告 |
|
||||
|
||||
T0 断点核查记录:前任已留 pre 锚(见 §三),T0 三查其余项随续跑开工复读完成。
|
||||
|
||||
## 二、闸读数(T6 回归闸全绿)
|
||||
|
||||
| 闸 | 读数 | 结论 |
|
||||
|---|---|---|
|
||||
| 冒烟(三闸) | **800 项检查,0 项失败**,退出码 0,无 SCRIPT ERROR | 绿(断言数 783→800:T3 断言面随迁净增 17 项,漂移追认随 T3 commit 留痕) |
|
||||
| 单元(run_all) | **17 套全绿** | 绿 |
|
||||
| 探针闸(probe_gate --click) | ui_input/ui_struct/ui_contrast/click 四段全 PASS,批末残留 Godot=0 | 绿(本批触碰呈现层——battle_narrator/curio_interact 文案面,故带 click) |
|
||||
| MC 二档对拍 | 见 §三 | 绿——逐位一致 |
|
||||
| 确定性复放 | 同种子改前/改后两次采集逐位一致(40 局全对) | 绿(强于「同码两遍」口径) |
|
||||
| doc 三闸 | doc_link_audit 过(exit 0);doc_term_audit 过(exit 0);gdd_lint 2 处失败=**基线既有**(06-待办清单/07-体验验证清单结构性指标,stash 对比实证改前改后同为 2 处零新增) | 绿(零新增) |
|
||||
| 熵增闸(repo_structure_audit) | 1 处违例=design/diagrams 子目录越界——**基线既有**(前批「GDD系统架构总图批」00712d5 产物,非本批引入;归该批主自证或后续清理) | 绿(零新增) |
|
||||
|
||||
## 三、MC 锚与对拍结论(二档合规)
|
||||
|
||||
- 判据口径:契约 2 两套(确定性复放与冒烟=**逐位一致**;MC 统计量=**成型画像同带**,正主=design/qa/m4iter12-t7-batch1-readings-2026-10-04.md)。
|
||||
- 改前锚(前任 T0 采集,留盘未补跑):`sim-data/runsum_iter17dd_pre_off_n20_20261006.jsonl` / `runsum_iter17dd_pre_formed_n20_20261006.jsonl`(seed0=83000、N=20/档、normal 档、route=min、attune=off、off/formed 同种子配对;formed=七流派各 2 件档一成型注入画像——14 件全部系本批迁移行)。
|
||||
- 改后锚(T6 采集):`sim-data/runsum_iter17dd_post_off_n20_20261006.jsonl` / `runsum_iter17dd_post_formed_n20_20261006.jsonl`(同 seed0 同口径;新锚去前缀纯 JSONL 按种子升序)。
|
||||
- **结论:40 局(2×20)同种子逐位一致**——每局 RUNSUM 全字段(通关数/承伤/踩雷/旗经济/资源事件/钥匙石/逐战上限序列等 33 字段)改前改后零差。统计量同带判据自动满足(逐位一致蕴含同带):L1 通关率 off 20%(4/20)、formed 80%(16/20),与改前逐位同值。
|
||||
- 档位合规:总量 40(每档 20)=二档上限贴边;另有 T3 段末 S1 预检 2×5 局(三档只测不判,未留锚)——S1 停机点未触发。
|
||||
|
||||
## 四、代拍板记录(任务书 §八白名单四项+呈报不停机级,全部 commit 留痕)
|
||||
|
||||
1. **fact 查询面落法**:`has` 算子=在场判定(value 缺省=非空;value 给定=数组包含)——地形伤/伤害型地形四行订阅的查询面(T3 commit)。
|
||||
2. **fact 查询面落法**:perfect_defense「全中」装不进封闭 9 项事实——when 落 flags_count≥1 保守判定,全中闸=flag_settle 发射点施加面承载(禁私开 fact 停机点纪律保持;T3 commit)。
|
||||
3. **事件载荷字段**:attack_commit 发射点从 resolve 内移至开单入口(任务书 §3.1 定稿位),命中随单据 context 携带;damage_taken 补 terrain_kind、flag_hit 改 terrain_kind=邻接伤害型变异集(T3/T4 commit)。
|
||||
4. **发射点微调(±1)**:round_start 发射位前移至行动经济轮切换之前(树规则 grant_ap queue 当轮兑现=先手压制首轮语义锚);attack_commit 单发射点、命中两处消费(编排器段序承载连珠矢开单位/控制器管线算术承载其余施加面——dispatch 纯读零副作用)。
|
||||
5. **效果类型落法对拍注记(映射表五处语义修正的随批追加,行为等价优先)**:猎巢人/矿工的执拗=必中附加通道(映射表标 modify_ticket/attack_bonus 与现状不符,落 add_ticket_rider per 载荷);整备军备双效果两行订阅;厚积薄发=满层持续状态(非沿触发);荆棘编织者=伤害兑付位第二份产出(非 ×2 乘区);完美布防=旗伤单值倍增(非 yield 乘区)——全部随 .tres 尾注+commit 留痕。
|
||||
6. **冒烟断言数漂移追认**:783→800(断言面随迁净增 17 项)。
|
||||
7. **文案微调**:掘进蓄能/失义件秘宝卡补实际摘要(原 kind 硬编码面无文案);其余 desc 措辞与旧映射逐字一致。
|
||||
8. **效果类型计数**:24 型(任务书标题 23 系笔误——T1 前任已代拍留痕,沿用)。
|
||||
|
||||
## 五、文档正主换代清单(T7)
|
||||
|
||||
- 奇物.md **v2.8**:专长效果声明换代(挂点→订阅行)五处+版本行;事实源表 feats.tres 行结构换代。
|
||||
- 秘宝.md **v1.0**:效果声明形态节(被动件订阅行+主动件 kind 分发+掘进蓄能受理闸数据化+desc 文案表值化)+版本行。
|
||||
- 敌人系统.md **v0.14**:半血解锁判定点=通用事件 enemy_hp_threshold 发射点登记(非 Boss 专属,零行为变化)+版本行。
|
||||
- registry/entities.yaml:专长 data_sources 换代+effect_declaration 新条(四词表封闭/组合规则/遍历序/重建时机)。
|
||||
- registry/architecture.yaml:core_decisions 新条 effect_engine_interpreter(ADR-0011 候选)。
|
||||
- 06-待办清单:数据驱动批状态=已实施完成收口(提交号+闸读数+遗留两项)。
|
||||
- roadmap:迭代 17 卡⓪行换代(状态=已实施完成)。
|
||||
|
||||
## 六、遗留人闸项(呈报不停机级,均为显式拍板请求非缺陷)
|
||||
|
||||
1. **掘进蓄能积点模判定留编排器侧**:use_treasure 受理闸已数据化(treasure_used counter_spend 订阅),但「每 charge_n 安全格积 1 点」的模判定留在战斗编排器授予段——「先增后判」在发射点施加架构下无法行内表达(when 于 dispatch 预评估,先增后判需引擎内联过账=会破坏矿脉直觉连击的施加序等价)。行为与迁移前逐位一致(charge_n 读行零字面量);若要求彻底行内化,需效果引擎增设「计数器种子/内联过账」机制,归后续词汇表扩展批裁决。
|
||||
2. **主动件 kind 词族全量 rename 不随批**:新词(reveal_tiles/preview/grant_ap/remove_mines/refresh_pick)已在闭集与旧词共存(T2),本批只完成 pick_refresh kind 分发合流;mine_reveal→reveal_tiles 等全词族 rename 波及库存/呈现标记/单测约 15 处零行为收益,显式不在本批(出口呈报,归后续清理批或随批裁决)。
|
||||
3. **实机目检归用户**(批次工作流第 12 步):呈现面改动=专长卡与秘宝卡文案源(desc 直读,措辞逐字迁移)——建议实机抽查一张专长卡+一张秘宝卡。
|
||||
|
||||
## 七、风险与边界声明
|
||||
|
||||
- 存档零触碰:存档键/格式/断点结构一字未改(持有集/装备存 id 不变,换的只是解释方式)。
|
||||
- 护栏全保留:四词表封闭校验、行键白名单、悬空引用致命、零裸 flat 禁令、流派扫雷触发铁律(MINE_EVENTS 同义形态)全部以新形态延续;本批新增封闭面=when value_from 悬空校验。
|
||||
- 主区零直改:全部改动在 worktree iter17-dd-20261006;并行在飞三线(iter17-pause 卡③/standee-tier/uialign)未触碰。
|
||||
@@ -1,81 +0,0 @@
|
||||
# 出口报告:暂停层只读入口批(迭代 17 卡③)
|
||||
|
||||
> 批次:功能性 UI 交互新增(纯呈现零数值改动=零 MC;核心层零改动)。
|
||||
> worktree:`g-plan2-iter17-pause`(分支 `iter17-pause-20261006`,基点 = master 44328b1)。
|
||||
> 任务书:`design/research/任务书-暂停层只读入口批-2026-10-05.md`(v1.1 零待裁点,U0 已发;T0 基线回填已落任务书头注)。
|
||||
> 本报告按「吸收即死」纪律属中间文档,寿命=迭代寿命;结论已同步写进 06 / roadmap / active.md。
|
||||
> 执行备注:本批由两次会话接力完成——T0/T1 与组 B 大部系前任会话(因额度中断),断点续跑会话完成组 B 收尾(两处探针断言口径 L1 修正)与 T3-T5。
|
||||
|
||||
## 一、完成定义五条逐条判定(任务书 §1.2)
|
||||
|
||||
| # | 判定项 | 判定 | 依据 |
|
||||
|---|---|---|---|
|
||||
| 1 | 入口可达 | ✅ | 战斗屏 HUD 右下角+关卡地图屏顶栏各一枚「暂停」常驻角标(P1 丁);主菜单零角标(`_sync_pause_entry` 以 `_level_active`∧屏态门可见性);ui_input case⑯ 角标真点击开层绿、ui_click 两屏 case 绿 |
|
||||
| 2 | 只读数据正确 | ✅ | 冒烟 `_pause_overlay_projection` 5 断言(余额徽/锻造三行/工坊六行/天赋树概览 == MetaProgression 访问器逐项);结构探针只读巡检=层子树游戏语义信号连接白名单外零连接,合法连接恰 2(关闭钮+关层外发);层内唯一控件=「继续」 |
|
||||
| 3 | 公共件复用 | ✅ | 全部构成件经 UiKit 工厂(modal_shell/panel_skinned/label/button/keystone_badge)+现行色板 token;badge 工厂件 Q10 甲收编入 ui_kit 并同步迁营地钥石徽(观感零变化);零新素材零新色值零新字体;ui_contrast 12 对含钥石徽深墨/烛光黄新对 |
|
||||
| 4 | 模态纪律 | ✅ | PauseOverlay 登记进 main.gd 登记册设置层同档、确认弹窗之前(P2 甲);登记序=树序=z 序注记同步换代;带 dim 遮罩;开合走 `_open_modal`/`_close_modal` 单口;`has_open_excluding` 排除式开态查询(只读零副作用);ui_click 守卫 case 绿(他层开着=置灰+emit 兜底拒开) |
|
||||
| 5 | 重闸全绿+人闸 | ✅(机检半)/⏳(人闸待用户) | 机检读数见 §三;实机目检清单=`design/qa/iter17-pause-human-gate-checklist-2026-10-06.md`(A-H 八节:双屏入口/守卫态/只读性数据正确/零动效与排播副作用观察/与设置面关系/代拍板追认/R4 口径披露/机检佐证),**人闸=用户实机目检** |
|
||||
|
||||
## 二、任务卡完成态(T0-T5)
|
||||
|
||||
| 卡 | 状态 | 提交/落点 |
|
||||
|---|---|---|
|
||||
| T0 | ✅(前任) | worktree 建立+基线回填任务书头注(冒烟 783/0·run_all 17 套·probe_gate 默认段绿·F1-F10 实核绿·迭代 15② 交集零命中);HEAD 时点=44328b1 |
|
||||
| T1 | ✅(前任) | c08a901(组 A:pause_overlay.gd 本体+badge 工厂件收编+营地钥石徽迁移+main.gd 接线)+ fc9eb1e(pause_overlay.gd.uid 边车随批) |
|
||||
| T2 | ✅(续跑会话收尾) | d44fdd5(组 B:两屏角标+has_open_excluding+守卫处理器与 _sync_pause_entry 单一同步点+四探针断言+冒烟投影断言+任务书 T0 注记随批)。前任中断于代码写完未跑闸态;续跑两处 L1 修正(见 §四)后全闸绿 |
|
||||
| T3 | ✅(续跑会话) | 无代码改动,闸读数见 §三 |
|
||||
| T4 | ✅(续跑会话) | `design/qa/iter17-pause-human-gate-checklist-2026-10-06.md` |
|
||||
| T5 | ✅(续跑会话) | 本报告+06 状态行+roadmap 卡③行+active.md 快照/台账 380 |
|
||||
|
||||
## 三、闸读数(T0 基线 → 批末)
|
||||
|
||||
| 闸 | 基线(T0) | 批末 | 判 |
|
||||
|---|---|---|---|
|
||||
| 冒烟(run_smoke 全量) | 783/0 | **788/0**(+5=本批投影断言) | ✅ |
|
||||
| run_all | 17 套全绿 | 17 套全绿(exit 0) | ✅ |
|
||||
| ui_input_probe | 默认段绿 | **十七断言 PASS**(+⑯暂停层输入锁:真点击开层/锁期零穿透/关后恢复无残留) | ✅ |
|
||||
| ui_struct_probe | 默认段绿 | 全屏零红(+pause 结构断言+只读性契约+零动效契约) | ✅ |
|
||||
| ui_contrast_probe | 默认段绿 | **12 对测点 PASS**(+钥石徽深墨/烛光黄对,≥4.5:1) | ✅ |
|
||||
| ui_click_probe | 轻闸三件外 | done=true 问题=0(+战斗屏开合守卫 case+地图屏一次性 case) | ✅ |
|
||||
| ui_layout_probe | — | exit 0(观察型布局树工具,无断言判语) | ✅ |
|
||||
| doc 三闸 | — | doc_link_audit 绿 / doc_term_audit 绿 / gdd_lint **存量红**(见 §五-2,本批零新增——06/07 两文件本分支零触碰) | ✅(零新增口径) |
|
||||
| 熵增闸 | — | **存量红**(见 §五-1,主区同红佐证) | 移交披露 |
|
||||
| MC | — | 零跑(纯呈现零数值改动——两入口铁规) | ✅ |
|
||||
|
||||
## 四、L1 修正记录(T2 续跑首轮探针红两处,均为断言口径、非产品代码缺陷)
|
||||
|
||||
1. **ui_struct_probe 只读巡检**:前任落码为「子树全控件 × get_signal_list() 全集」巡检——首跑把 Godot 容器系统对每控件自动建立的布局生命线连接(child_order_changed/item_rect_changed/visibility_changed/size_flags_changed/minimum/maximum_size_changed → 引擎内部脏标记方法)全数误判非法。修正=收敛为**游戏语义信号名清单**(pressed/button_down/button_up/toggled/text_changed/text_submitted/value_changed/item_selected/gui_input/focus_entered/focus_exited/closed 十二名)——这正是任务书 v1.1「巡检信号名清单 T2 落码时列全进探针」的本意;清单外任何新连接一律红须入册。
|
||||
2. **ui_input_probe case⑯ 取格**:原逻辑假设 case⑥ 后域内必余「无旗可挖格」——首跑实测踩中「域恰 2 枚」形态(flag_t 已插旗+dig_t 已揭开后域内零无旗格;旗不可拔=`flag_present` 拒绝在册)。修正=case 挪至全 case 之尾(板面扰动零波及)+域空时前沿移位兜底(真实点击 move 扩大可挖域,复用探针既有 `_pick_frontier` 手法)。修正后一轮全绿,无复发。
|
||||
|
||||
## 五、存量问题移交(均非本批产生,主区 master 同态)
|
||||
|
||||
1. **熵增闸红:`design/diagrams` 子目录越界**——00712d5(2026-10-05 GDD 系统架构总图批)落籍时新增 `design/diagrams/`(JSON+HTML 两件)但未同批修订 CLAUDE.md Project Layout 与 `repo_structure_audit.py` 白名单,属该批收尾漏步;主区现跑同红已实证。处置建议=用户拍板「diagrams 收编为合法类别」或「两件归位」,随下一文档批或直接小批办理;本批不代修(最小批面)。
|
||||
2. **gdd_lint 存量红:06/07 两文件** R3 修订注记/删除线残留/R4 缺版本历史/R7 括号跨度超限——全为历史批次落文注记(本分支对两文件零 diff);doc 三闸「零新增」口径达成。
|
||||
3. **registry 存档版本注记滞后 v4→v5**——生涯批(台账 379)已登记移交,本批未触碰 registry,维持在册。
|
||||
|
||||
## 六、代拍板记录(白名单内决断,commit 留痕,目检可推翻——追认单见目检清单 F 节)
|
||||
|
||||
| # | 项 | 决断 | 出处 |
|
||||
|---|---|---|---|
|
||||
| 1 | 关闭钮文案 | 「继续」(紧凑 90 宽返回钮,设置面先例形制) | T1 c08a901 |
|
||||
| 2 | 层内行序 | 余额徽→属性锻造→道具工坊→天赋树(营地屏同序,MetaTable.FORGE_ATTRS 序) | T1 c08a901 |
|
||||
| 3 | 角标文案与落点 | 「暂停」;战斗屏=HUD 右下角(角距 16px,debug 角标同形制);地图屏=顶栏 GP 徽右侧 | T2 d44fdd5 |
|
||||
| 4 | 断言编号与 case 命名 | ui_input case⑯;ui_struct 契约 ⑧只读⑨零动效;冒烟 `_pause_overlay_projection` | T2 d44fdd5 |
|
||||
| 5 | 只读巡检信号清单 | 十二名游戏语义信号(§四-1) | T2 d44fdd5 |
|
||||
|
||||
## 七、提交哈希清单(worktree 内全部,含前任)
|
||||
|
||||
| 提交 | 内容 |
|
||||
|---|---|
|
||||
| c08a901 | T1:暂停层组 A(pause_overlay 本体+badge 工厂收编+营地钥石徽迁移+main 接线) |
|
||||
| fc9eb1e | T1:pause_overlay.gd.uid 边车随批 |
|
||||
| d44fdd5 | T2:暂停层组 B(两屏角标+守卫+四探针断言+冒烟投影断言+任务书 T0 注记) |
|
||||
| (收口提交) | T4+T5:目检清单+本报告+06 状态行+roadmap 卡③行+active.md |
|
||||
|
||||
## 八、遗留人闸项
|
||||
|
||||
1. **实机目检**(唯一硬人闸):`design/qa/iter17-pause-human-gate-checklist-2026-10-06.md` A-H 八节,重点=双屏入口/守卫态/只读性/零动效/**排播队列排空副作用确认项**(D2——开层瞬间待播明细行瞬时入带,与「暂停」直觉之差,既有各弹层同款行为)。
|
||||
2. 存量移交三项(§五),均不阻塞本批。
|
||||
3. Esc 快捷通道=已在 06 键盘/手柄条登记(P1 丁裁点),随键盘批统一办理,本批不落码。
|
||||
|
||||
终态 = worktree 内全部提交,**未合并、未 push**(合并落回 master 由用户/编排会话执行)。
|
||||
@@ -1,63 +0,0 @@
|
||||
# 人闸目检清单:暂停层只读入口批(迭代 17 卡③)· 2026-10-06
|
||||
|
||||
> 执行=用户实机。启动:Godot 打开 `game/project.godot` 运行即可;逐项勾选,不过项随批登记返工。
|
||||
> 批区间:T0 基线 HEAD=44328b1 → 批末 d44fdd5(T1 c08a901 暂停层本体 / T2 d44fdd5 入口与断言)。
|
||||
> 任务书:`design/research/任务书-暂停层只读入口批-2026-10-05.md`(v1.1)。事实源=06-待办清单「解锁界面与钥石呈现的交互形态(残余:暂停层只读入口)」条。
|
||||
|
||||
## 怎么走到暂停层(操作路径)
|
||||
|
||||
开始冒险 → 选一个战斗节点进战斗 → 战斗屏**右下角**「暂停」小钮(或:打完战斗到关卡地图屏 → 顶栏 GP 徽**右侧**「暂停」小钮)→ 弹出「暂停」只读层 → 看完点「继续」关闭。
|
||||
|
||||
## A · 双屏入口可达(P1 丁——常驻角标主入口)
|
||||
|
||||
- [ ] A1 战斗屏 HUD 右下角有「暂停」角标,点击直接开层(无过渡动画)
|
||||
- [ ] A2 关卡地图屏顶栏「暂停」角标可见可点,点击开层;层叠在地图屏之上,地图屏仍可见
|
||||
- [ ] A3 主菜单(开始菜单)**无**暂停角标——入口只在对局内出现
|
||||
- [ ] A4 冒险结束回主菜单后角标消失(离局熄灭,不误现)
|
||||
- [ ] A5 暂停层开着时点「继续」原样回战斗屏/地图屏,可继续挖格/选路(无状态残留)
|
||||
|
||||
## B · 入口守卫(他层开着=角标置灰不可点)
|
||||
|
||||
- [ ] B1 战斗中先开图例(或触发三选一/商店/营地等任一弹层)→ 暂停角标置灰,点击无反应
|
||||
- [ ] B2 关闭该弹层后角标恢复可点
|
||||
- [ ] B3 地图屏自身开着时地图屏角标仍可点(地图屏是常态屏,不算「其他模态」)
|
||||
- [ ] B4 暂停层自己开着时,再点任一处角标无反应(不可叠开第二层)
|
||||
|
||||
## C · 只读性与数据正确(P3 甲——余额+三柜台进度)
|
||||
|
||||
- [ ] C1 层内唯一可点控件=「继续」关闭钮;无任何购买/切换/滑杆类控件
|
||||
- [ ] C2 钥石余额徽与营地屏顶栏钥石徽同形制(烛光黄底+深墨字+钥石图标),数字=当前真实余额
|
||||
- [ ] C3 属性锻造三行(攻击/生命/防守族)= 已购等级「Lv n」,与营地柜台一读数一致
|
||||
- [ ] C4 道具工坊六行解锁态(未解锁/已解锁/已解锁·能力封存中/已退役)与累计通关进度分数,与营地柜台二一致
|
||||
- [ ] C5 天赋树概览=已购节点聚合文案(零已购时显示空态句「尚未购买任何节点」),与营地柜台三一致
|
||||
- [ ] C6 层开着时回营地柜台改数值(如买一级锻造)不可行(层无通路);关闭层后重新打开,显示为新值(实时读数)
|
||||
|
||||
## D · 零动效与排播副作用观察(P4 甲 + T4 指定观察项)
|
||||
|
||||
- [ ] D1 层进出均为直开直关——无淡入淡出/滑入等过渡动画
|
||||
- [ ] D2 **排播排空副作用**(确认项):战斗明细演播进行中(连续挖格后立刻)开暂停层——待播明细行会被瞬时排空入带(跳过演播节奏,行带直接补完整)。这是与「暂停」直觉的差异点:**本层只是查看层,不冻结战斗演算与演播**(既有各弹层同款行为)。确认此表现可接受,或登记异议
|
||||
- [ ] D3 减动效开关开/关两态下,层进出表现一致(本层零动效,开关无新增消费)
|
||||
|
||||
## E · 与设置面的关系(P2 甲——登记同档)
|
||||
|
||||
- [ ] E1 主菜单开设置面:无暂停角标出现(两层面不共存——设置入口在主菜单,暂停入口在对局内)
|
||||
- [ ] E2 层级遮挡关系抽检:确认弹窗盖在暂停层之上、暂停层盖在图例/商店/营地之上(登记序=树序=遮挡序)
|
||||
|
||||
## F · 代拍板追认单(白名单内已落,目检可推翻)
|
||||
|
||||
| # | 项 | 已落值 | 推翻改法 |
|
||||
|---|---|---|---|
|
||||
| F1 | 关闭钮文案 | 「继续」(紧凑 90 宽返回钮,设置面先例形制) | 改「返回」等一词换文案一处 |
|
||||
| F2 | 层内行序 | 余额徽 → 属性锻造 → 道具工坊 → 天赋树(营地屏同序) | 顺序对调=一处移动 |
|
||||
| F3 | 角标文案与位置 | 「暂停」;战斗屏=HUD 右下角(角距 16px)、地图屏=顶栏 GP 徽右侧 | 换角/换角距=锚点一处 |
|
||||
| F4 | 层标题与副题 | 「暂停」+「查看本局钥石与永久强化进度(只读——购买请回营地)」 | 文案一处 |
|
||||
| F5 | 天赋树空态句 | 「尚未购买任何节点(天赋树在营地柜台三)」 | 文案一处 |
|
||||
| F6 | 断言编号与 case 命名 | 探针 case⑯/struct 契约 ⑧⑨(机检面,不涉观感) | 仅重命名时改 |
|
||||
|
||||
## G · 数据口径披露(R4 快照口径,机检佐证外的人闸知情项)
|
||||
|
||||
暂停层展示值=**每次开层瞬间**实时读取元进度访问器拼装的快照(余额/锻造三行/工坊六行/天赋树概览七类访问器),快照只活到本次关层,重开重取——层开着期间外部数值不会变动(层内零写通路),不存在「层数字过期」问题。机检侧:冒烟投影一致性 5 断言(展示值==访问器逐项)+ 结构探针只读巡检(层子树游戏语义信号连接白名单外零连接,合法连接恰 2=关闭钮与关层外发)全绿。
|
||||
|
||||
## H · 机检佐证(已全绿,实机只抽核)
|
||||
|
||||
冒烟 788/0(基线 783/0,+5=本批投影断言)· run_all 17 套全绿 · ui_input 17 断言(含⑯暂停层输入锁)/ui_struct 全屏零红(含 pause 结构+只读巡检+零动效契约)/ui_contrast 12 对测点(含钥石徽新对)/ui_click done=true 问题=0/ui_layout exit0 · doc 三闸零新增(06/07 存量注记红系历史批次落文,本批零触碰;design/diagrams 熵增越界系 00712d5 总图批落籍漏步,主区同红——两存量均已移交登记,非本批产生)· 素材零触碰(零新素材零新色值零新字体,全部构成件=UiKit 工厂件+现行色板 token)· MC 零跑(纯呈现零数值改动)
|
||||
@@ -0,0 +1,28 @@
|
||||
# 迭代 27 T0 交付:smoke 探针挂载假设对照表(2026-10-14)
|
||||
|
||||
卡片 T0.3 交付物。11 个挂载面 = 10 个 smoke 探针 + 1 个单测套件(pacing_queue_test,全库唯一直接 load main.tscn 的单元测试)。
|
||||
迁移原则(卡片 🔴 探针契约零破坏):**「实例化 main.tscn 得到完整产品树 + 组合根 API」这一挂载假设本身保留**——
|
||||
场景拆分后 main.tscn 仍是组合根(屏场景为其子节点挂载),探针入口零改动;
|
||||
迁移面 = 探针内部对 main 私有成员的树寻址/状态探视,随成员落位逐个改写(改写即新结构的回归断言)。
|
||||
另两个挂载假设探针(adventure_monte_carlo/level_autoplay,SceneTree 直驱 level_runner 不挂 main.tscn)不在迁移面。
|
||||
|
||||
| # | 探针 | 挂载行 | 挂 main.tscn 得到什么 | 成员依赖面(实测 grep) | 迁移方向(T1 落位后改写) |
|
||||
|---|---|---|---|---|---|
|
||||
| 1 | ui_probe.gd | :15 | 完整产品树+驱动 `_start_adventure_from_menu()`(唯一试玩入口) | `_start_overlay/_battle_root/_row_queue/_debug/_is_settling/_on_adventure_finished/_on_camp_closed/_on_wallet_changed/_reset_run_scope/_adventure_gp_final/_adventure_gp_view/_close_modal` + `adventure/ap_bar/board_view/board_zone/camp_overlay/db/debug_overlay/info_panel/level_screen/log_view/meta/runner/settlement/stage` | 屏成员→屏场景属性路径;局态成员→run-scope 节点路径;`_reset_run_scope` 断言随手工清单消亡换代为 run 节点释放断言 |
|
||||
| 2 | ui_click_probe.gd | :45 | 全输入链走查(行进/战斗/营地/商店点击 10935 预算) | 最广:`_adventure_mode/_battle_root/_camp_data/_end_overlay/_exit_level_screen/_input_locked/_inter_overlay/_last_gain_amount/_locked_click/_on_camp_closed/_refresh_resume_button/_refresh_used_round/_row_queue/_settlement_stop_pending/_start_adventure_from_menu/_start_overlay` + 全部屏成员 | `_input_locked` 输入锁随 T4 模态协议内聚落位;`_refresh_used_round` 随 T3 双账删除改快照通道断言;余同 #1 |
|
||||
| 3 | ui_struct_probe.gd | :25 | 模态栈纪律走查(开合/遮挡/输入锁) | `_close_debug_overlay/_end_overlay/_gp_summary_text/_level_active/_modals/_on_camp_closed/_on_career_closed/_on_settings_closed/_on_status_closed/_open_modal/_open_settings/_open_status_panel/_refresh_resume_button/_resume_from_menu/_show_debug_overlay/_start_adventure_from_menu/_start_overlay` + 屏成员 | `_modals`(ModalStack)随 T4 内聚后寻址换代;模态层清单断言随屏场景化改挂屏壳 |
|
||||
| 4 | ui_layout_probe.gd | :17 | 四区布局几何断言 | `_start_adventure_from_menu/board_view/board_zone/debug_overlay/info_panel/get_child/get_children/save_manager/stage` | board_zone/info_panel/stage 随屏场景化改屏壳属性路径;`get_child` 序数寻址须换名寻址(子场景化后序号漂移) |
|
||||
| 5 | ui_input_probe.gd | :27 | 输入锁+宝珠辉光链路 | `_input_locked/_start_adventure_from_menu/_sync_treasure_glow/board_view/board_zone/build_adventure_params/debug_overlay/runner/save_manager/settlement/status_panel` | `_sync_treasure_glow`/`build_adventure_params` 随局态物化落位;余同 #1/#2 |
|
||||
| 6 | ui_audit_probe.gd | :27 | 全屏巡检(12 模态层/入口可达) | `_close_debug_overlay/_end_overlay/_on_settings_closed/_open_settings/_refresh_resume_button/_show_debug_overlay/_start_overlay/board_view/camp_overlay/confirm_dialog/curio_overlay/legend_overlay/level_screen/save_manager/shop_overlay` | 模态层清单随屏场景化改挂屏壳;余同 #1 |
|
||||
| 7 | ui_tune_probe.gd | :36 | 调试浮窗只读巡检(种子框/批量模拟) | `_close_debug_overlay/_input_locked/_seed_value/_show_debug_overlay/_start_adventure_from_menu/_start_overlay/adventure/board_zone/confirm_dialog/db/debug_overlay/level_screen/save_manager/settlement` | `_seed_value` 随种子框落位改路径;debug_overlay 归属屏待 T1 定(全局层 vs 屏内层) |
|
||||
| 8 | shot_probe.gd | :35 | 截图(四屏+营地/设置) | `_start_overlay/board_zone/camp_overlay/career_overlay/level_screen/settings_overlay/settings_store/stage/status_panel` | 屏成员→屏场景路径;settings_store 随升格 autoload 改全局访问 |
|
||||
| 9 | fx_shot_probe.gd | :28 | 特效截图(棋盘 fx) | `_start_overlay/level_screen/settings_store/settlement` | 同 #8 |
|
||||
| 10 | t17_defer_probe.gd | :15 | 延迟模态时序断言(结算行分帧) | `_deferred_modal/_end_overlay/_row_pacer/_start_overlay/db/level_screen/meta/save_manager/settings_store/settlement` | `_row_pacer/_deferred_modal` 随 T4 模态协议落位;meta 随升格 autoload 改全局 |
|
||||
| 11 | tests/unit/presentation/pacing_queue_test.gd | :19 | 行队列节奏单测(真实冒险至首战结算) | `_flush_row_queue/_refresh_resume_button/_row_queue/_start_adventure_from_menu/adventure/db/level_screen/log_view/meta/pace_delay_for/runner/save_manager` | `_row_queue/_flush_row_queue/pace_delay_for` 随 T4 抽取落位(该单测即 V6 新纯逻辑类直接 new() 的前哨);余同 #1 |
|
||||
|
||||
**共性迁移点**(T1 施工照单改写,改写后逐探针全绿=V2 闸):
|
||||
1. `meta`/`save_manager`/`settings_store` → 裁点① 第三/四 autoload 后改全局名访问(探针里的 `main.meta` 全数换代)。
|
||||
2. `runner/adventure/settlement/_adventure_mode/_row_queue` 等局态 → run-scope 节点(`main.run_scope.X` 形态,命名属代拍板白名单#5)。
|
||||
3. `_start_overlay/camp_overlay/level_screen/...` 屏成员 → 屏场景属性(组合根保留装配属性,路径一级化)。
|
||||
4. `get_child`/子序数寻址(ui_layout #4)→ 名寻址(子场景化后序数漂移是 breaking 面)。
|
||||
5. 手工复位断言(ui_probe `_reset_run_scope`)→ run 节点 `queue_free()` 复位断言(V3 配套)。
|
||||
@@ -1,61 +0,0 @@
|
||||
# M-1 出口闸检查单(2026-09-28,迭代 2 收口批交付)
|
||||
|
||||
> 用途:M-1「切片表现收口」出口闸 = **真人目检清单全绿**(机器闸已全部自动过);本单即人闸载体,逐项可勾。
|
||||
> 全绿 = M-1 关闭 → **M-2 迭代 3「读数重测与调参」解锁**(其门=M-1 出口闸)。
|
||||
> 目检方式:实机跑 `godot --path game`(或开 Godot 编辑器 F5),按清单逐项看;任一项不过 = 回该批返工(样张类至多一轮,收集否决维度补断言后重出)。
|
||||
|
||||
## 一、机器闸读数汇总(已自动过,留痕)
|
||||
|
||||
### 迭代 1「测试兜底与表现先行」(六卡一次合并 aa18eb9,2026-09-28,台账 215-221)
|
||||
| 卡 | 内容 | 读数 |
|
||||
|---|---|---|
|
||||
| T1 单元测试与契约层 | game/tests/unit 九套件实跑入口 tests/run_all.gd | 九套件全绿(合库后复跑确认) |
|
||||
| T2 高墙感 D 投影档落码 | 立面双段暗带+地面投影(用户挑档 D) | 冒烟 557/0+双探针 PASS |
|
||||
| T3 CJK 字体随包 | Fusion Pixel OFL zh_hans+ui_font_asset_test | 冒烟 557/0+套件绿 |
|
||||
| T4 关卡画面三拍板落地 | 图上点击唯一通道/三停点标题/GP 徽章+底栏状态组/放弃二次确认 | 冒烟+探针绿 |
|
||||
| T5 胜利结算 GP 总量+增量接线 | OQ14 口径落胜利总结结算 | 冒烟+探针绿 |
|
||||
| T6 underdark/deep_underdark 瓦片换色 | tools/recolor_terrain_tiles.py+42 枚入包+terrain_tile_sets_test(第 9 套件) | 冒烟 557/0+9 套件绿 |
|
||||
|
||||
### 迭代 2「样张冻结与表现定稿」(本 loop,f9b0765→a08d89c)
|
||||
| 卡 | 内容 | 读数 |
|
||||
|---|---|---|
|
||||
| T1 样张 v2 重出+机检冻结 | 机检 **16/16 全绿**(13 现行+A3 Δ≥55+F6 双明度带+F7 悬崖同源+A6 观感密度)→ 四冻结落文 art-bible v2.13 | 报告 `design/research/sample-v2-机检报告-2026-09-28.md` |
|
||||
| T2 框材组 8 件换皮 | ♻ 九件量化改色入包+UiKit 单点工厂+五视图接线 | 冒烟 557/0+四探针 PASS |
|
||||
| T3 演出密度终稿 | 死亡碎裂/胜利纹章/失败掸灰/意图三档/结算光带+**fx_probe 新探针** | 冒烟 557/0+五探针 PASS |
|
||||
| T4 棋盘数字终稿 | 三档墨色温/字号 ≥18 公式/色牌 0.60·0.62 冻结值 | 冒烟 557/0+五探针(ui_tune_probe 回归含) |
|
||||
|
||||
- 冒烟检查数 557 = 开工基线(零删减);**双迭代同库合并(master=9abf5ff,迭代 1 六卡 aa18eb9 + 迭代 2 五批次)后主区复跑**:冒烟 557/0+五探针+九套件全绿(台账 222 留痕)。
|
||||
|
||||
## 二、真人目检清单(逐项可勾,勾完=人闸过)
|
||||
|
||||
- [ ] **1. 棋盘立体感**(样张 v2 否决③复核):战斗中未开墙格有南立面暗带+地面投影,整板底部/右侧有悬崖暗面与悬浮影——「立得起来」
|
||||
- [ ] **2. 观感密度**(否决①复核):棋盘整体不觉得平/糊——裂纹碎石变体、类型微光、物件纹样层次可感
|
||||
- [ ] **3. 数字可读**:1-8 数字色牌上清晰(三档墨色温:小数字偏冷、大数字偏暖),缩小窗口仍可读
|
||||
- [ ] **4. 换皮框架**:C 区面板/B 区舞台底/图例弹窗=石板质感九宫格;全站按钮=暖砖两态(按下下沉);开始界面有石纹底噪;营地有石框容器+钥石/柜台图标
|
||||
- [ ] **5. 演出四项**:击杀敌人→灰化+碎块弹飞(非瞬间消失);胜利→金蜡封落下+碎砖拼纹章环;失败→暮蓝氛围+尘絮飘落+旗光点收回;敌摇定特殊技→徽标弹跳、重击→缓推蓄力定格
|
||||
- [ ] **6. 结算光带**:轮末结算金光带自棋盘上缘扫向下缘,带前缘有亮线
|
||||
- [ ] **7. 图例正确性**:图例旗条目为封印黑色块、墨字可读
|
||||
- [ ] **8. 迭代 1 六卡件**(已同库):高墙 D 投影观感/Fusion Pixel 中文渲染/关卡画面(图上点击+停点标题+GP 徽章+放弃确认)/胜利结算 GP 数字/underdark·灰矮人矿城两套瓦片换色观感
|
||||
|
||||
**判定**:1–7 全过 + 8 注记状态 → 人闸过,M-1 关闭;登记裁决入台账,roadmap 里程碑移动。
|
||||
|
||||
## 三、✦ 缺料清单(只登记不生图——生图执行权在用户)
|
||||
|
||||
| 件 | 渠道 | 规格/提示词指针 | 现状承载 |
|
||||
|---|---|---|---|
|
||||
| B 区背景横幅(战斗舞台背景插画) | ✦ 生图 | art-bible §6.1 明亮地窟/低对比自然后退;清单 §1.2 | 程序化石板皮+底噪(本批 T2) |
|
||||
| 八敌种站桩立绘 9 卡 | ✦ 外部生成中 | comfyui-prompts.md v2.9(攻击段=底稿锁死句) | 槽位在位,入库即显示零代码 |
|
||||
| 主角 normal/hit 成图旗色手修 | ✦ 手修 | 旗朱→封印黑 #000000(封印黑批遗留) | 远程单已重锁十六进制 |
|
||||
| 节点图行进器形象 | ✦/⚙ | 清单 §3.2(与主角同族蓝) | 程序化占位 |
|
||||
| 意图三档/死亡碎裂序列帧 | ✦ 可选 | art-bible §8.4 冻结帧数档 | 程序化 tween 已承载(本批 T3) |
|
||||
| 巢穴纹/封印印记正式纹样 | ✦/⚙ | 清单 §4 封印特效两件+§3.3 | 程序化占位在役 |
|
||||
| 变异纹带六类型终稿 | ⚙ 样张批后可排产 | art-bible §3.2 纹带形按轴两分 | 槽位先行(CellUnit tex_mutation) |
|
||||
| 格面资源徽章 19 枚 | ⚙ 脚本管线 | 清单 §3.1 键契约 | 程序化占位 |
|
||||
|
||||
## 四、代拍板追认清单(本 loop 白名单内已裁,待用户过目)
|
||||
|
||||
1. A6 观感密度口径=明度梯度均值(高频细节能量)——v1 同口径实测 4.09×1.15=4.70;低频双峰由 A3 承载(口径注记见机检报告)。
|
||||
2. F6 双明度带测「南向临地墙格」(立面语义承载位,内墙 center 件无立面属正确)。
|
||||
3. 复用件选型=Kenney 系九宫格/图标+OGA 石纹(全 CC0,game-icons CC-BY 件未采用);量化色带端点=PANEL_BORDER/PANEL_DATA/BRICK/FLOOR/PLATE token。
|
||||
4. 演出参数=死亡碎块 5 块 0.45s/纹章碎砖 10 枚/掸灰 8 絮/蓄力定格 0.40s(§8.4 冻结档)。
|
||||
5. 数字牌尺寸 0.66→0.60(对齐样张冻结值);图例旗条目名回退「旗」(click_probe 基线精确匹配,封印语义移描述列)。
|
||||
@@ -1,58 +0,0 @@
|
||||
# M-2 出口闸检查单(2026-09-28,迭代 4 收口批交付)
|
||||
|
||||
> 用途:M-2「关卡画面独立化」出口闸 = **真人目检清单全绿**(机器闸已全部自动过);本单即人闸载体,逐项可勾。
|
||||
> 全绿 = M-2 关闭 → **M-3「切片数值标定与 Alpha 验收」解锁**(其门=M-2 出口闸——表现彻底定稿后读数不被呈现改动扰动)。
|
||||
> 目检方式:实机跑 `godot --path game`(或开 Godot 编辑器 F5)开一局冒险,按清单逐项看;任一项不过 = 回该批返工。
|
||||
|
||||
## 一、机器闸读数汇总(已自动过,留痕)
|
||||
|
||||
### 迭代 3「独立屏架构」(四批次一次合并 74c8ebe,2026-09-28,台账 224)
|
||||
| 卡 | 内容 | 读数 |
|
||||
|---|---|---|
|
||||
| T1 spec 形态升格 | level-map.md 覆盖层形态→独立屏独占呈现全量改写+battle.md 三处随改 | doc 三闸对基线零新增 |
|
||||
| T2 独立屏落地 | RouteOverlay→LevelMapScreen+不透明屏底+组合根屏级互斥单一出口 | 冒烟 557/0+五探针 PASS |
|
||||
| T3 全链流程 | 选路分支(战斗/Boss 出屏;奖励/恢复/商店本屏域内弹出) | 同上 |
|
||||
| T4 探针独立性断言 | 屏激活期 _battle_root 隐藏=零透出契约/战斗节点提交后恢复 | ui_probe+ui_click_probe 断言扩展全绿 |
|
||||
|
||||
### 迭代 4「关卡画面视觉终稿」(本 loop,9a79927→…)
|
||||
| 卡 | 内容 | 读数 |
|
||||
|---|---|---|
|
||||
| T1 关卡画面样张 v1 | 机检 **11/11 全绿**(L1 图标互辨/L2 四态+Boss 环灰度/L3 对比 ≥4.5:1/L4 禁入带/L5 画布自适应〔routebug 83c11a1 回归〕/L6 独立屏底/L7 占位区不侵入/A1a 色板对表/SRC 同源/ST 态齐备/S3 换层示意)→ 视觉冻结值登记 | 报告 `design/research/level-map-sample-v1-机检报告-2026-09-28.md` |
|
||||
| T2 节点图标组接线 | ♻ kenney-board-game-icons 五键(bow/award/campfire/crown_b/pouch,全 CC0)20px 烘焙量化,复用闸①②③④自检 PASS;LevelMapScreen 消费(load_tex 守卫缺位字形回退) | 冒烟 557/0+五探针 PASS |
|
||||
| T3 视觉终稿落码 | 已过暗金 GOLD_DONE #68562C/Boss 双描边/通道 2-3-4px/底栏墨色(WARM/WARM_SOFT)/血条深底 | 同上 |
|
||||
| T4 转场演出挂点 | 换层淡入(UiKit.motion 200ms)既有保持+换层色板渐变挂点(§2.7 切片档,level_index→tint 表,§6.3 候选方向)+Boss 胜利→关卡结算→下一关链路核对(探针驱动段全绿) | 同上 |
|
||||
|
||||
- 冒烟检查数 557 = 开工基线(零删减);**合并落 master 后主区复跑**:冒烟 557/0+五探针全绿(台账 225 留痕)。
|
||||
|
||||
## 二、真人目检清单(逐项可勾,勾完=人闸过)
|
||||
|
||||
- [ ] **1. 独立屏观感**:关卡开始即出图;战斗屏完全消失(零透出、非半透暗幕);屏底=深底+石纹底噪铺满
|
||||
- [ ] **2. 节点图标可辨**:图上五类节点=弓(战)/桂冠(赏)/篝火(疗)/王冠(王)/钱袋(商)图标清晰互辨;当前金底上图标转深墨可读
|
||||
- [ ] **3. 节点三停点态**:已过=暗金无描边、当前=亮金填充、候选=亮金描边(悬停加粗+指针)、未来=暗底;Boss=紫赤描边+外缘深墨细环;缩灰度/黑白窗口仍可分
|
||||
- [ ] **4. 底栏读数**:生命(迷你血条+HP 数字)/属性(攻击·AC+加成角标)/本关加成(零加成隐藏)三组清晰可读;放弃冒险=亮砖按钮红字右端异位
|
||||
- [ ] **5. 顶栏语境**:左关卡名、右 GP 徽章(◈ 数字,战后到账即刷)
|
||||
- [ ] **6. 转场节奏**:选路提交→战斗屏回现;战斗胜利→(大奖励屏确认)→下一关独立屏淡入(约 0.2s);第二/三层屏底色相较第一层有冷调层进(换层渐变挂点)
|
||||
- [ ] **7. 图上点击选路**:点候选节点即出发(图上点击唯一通道),深层节点(单链第 5 节点后)点击必中
|
||||
- [ ] **8. 迭代 3 件**(已同库):放弃二次确认(首击转确认态+超时回落)/三停点标题(出发——选择首个节点/继续前进/选择下一节点)
|
||||
|
||||
**判定**:1–7 全过 + 8 注记状态 → 人闸过,M-2 关闭;登记裁决入台账,roadmap 里程碑移动。
|
||||
|
||||
## 三、✦ 缺料清单(只登记不生图——生图执行权在用户)
|
||||
|
||||
| 件 | 渠道 | 规格/提示词指针 | 现状承载 |
|
||||
|---|---|---|---|
|
||||
| 节点图标终稿精修(bow/award/campfire/crown_b/pouch 五键) | ♻ 已量化在役/✦ 可替换 | kenney-board-game-icons(CC0) 64px 源;替换须过复用闸四道+样张 L1 灰度互辨 | 20px 烘焙在役(本批 T2) |
|
||||
| GP 徽章金币图标(现 ◈ 字形) | ♻/⚙ | 清单 §3.5 营地件同族;币形=§3.1 道具点剪影 | ◈ 字形+数字(样张注记) |
|
||||
| 关卡画面换层 tint 终值 | ⚙ 色板样张批 | art-bible §6.3 三关方向(挂点已落,tint 候选值在役) | level_index→tint 表(本批 T4) |
|
||||
| 关卡画面石纹底噪换挡版 | ⚙/✦ 可选 | §4.3 wall_ambient 槽换色 | tint 调制承载(切片档) |
|
||||
| 行进器形象(图上"我在哪"具象化) | ✦/⚙ | 清单 §3.2 | 当前节点金块承载(无独立形象) |
|
||||
|
||||
## 四、代拍板追认清单(本 loop 白名单内已裁,待用户过目)
|
||||
|
||||
1. **已过暗金冻结新值 GOLD_DONE #68562C**(104,86,44)——旧 GOLD_DIM #8C743C 对双色墨均 <4.5:1(level-map AC「节点字面对方块底 ≥4.5:1」逼守);UiKit.GOLD_DIM 常量保留他用不动。
|
||||
2. **节点图标五键选型**=bow/award/campfire/crown_b/pouch(语义近似+灰度互辨最小错位 0.18;sword 已被锻造柜台占用不重用——§4.6「一键一纹样全作不复用」)。
|
||||
3. **Boss 描边=紫赤 2px+外缘 1px 深墨环**(灰度冗余通道)——紫赤灰度 72 对石纹噪底 65 灰度不可辨,样张 L2 机检逼守;§4.2 色相独占本色不变。
|
||||
4. **图标双色墨制**=暗底态 WARM 暖白/当前金底 INK_ROUTE 深墨(乘法调制);编号 10px 右上角(与图标占位区零重叠)。
|
||||
5. **通道折线宽取整**=未点亮 2/候选 3/悬停 4 px(原 1.5 随冻结值取整)。
|
||||
6. **换层 tint 候选值**=L2 (0.84,0.99,1.28)/L3 (0.97,0.99,1.09)(§6.3 方向、明度带归一≈1;终值归色板样张批)。
|
||||
7. 样张图标烘焙 20px(52×36 方块内 20px 图标+右上编号;1:1 消费零缩放——§8.2 缩放纪律从紧)。
|
||||
@@ -1,71 +0,0 @@
|
||||
# M-3 迭代 10 通关率双窗读数报告——奖励结构重构(2026-10-01)
|
||||
|
||||
> 采集:`adventure_monte_carlo.gd`(MC 逐局独立种子,autoplay 确定性策略=三选一候选取首件/替换放弃新件——见代拍板 f)。
|
||||
> 改前锚 = `sim-data/runsum_m3iter10_t0head_20261001.jsonl`(master 405bd78 + 种 77000,各 400 局);
|
||||
> 改后锚 = `sim-data/runsum_m3iter10_t9anchor_20261001.jsonl`(本批 71502ce+ + 种 78000,各 400 局)。
|
||||
> 判读口径 = 冒险条件通关率(到达第 k 关者中通关者占比);带值 = [难度曲线与Boss] 现行(普通 L1 [35,55] / L2 [10,15]、完美 [35,65])。
|
||||
|
||||
## 双窗读数(改前 → 改后)
|
||||
|
||||
| 档·关 | 改前 | 改后 | Δ | 带判定(改后) |
|
||||
|---|---|---|---|---|
|
||||
| 普通 L1 | 36.2%(145/400) | **38.8%**(155/400) | +2.6 | ✓ 带内 |
|
||||
| 普通 L2 | 10.3%(15/145) | **7.1%**(11/155) | −3.2 | ✗ 越下带 2.9 点(带 [10,15]) |
|
||||
| 普通 L3 | 6.7%(1/15) | 0.0%(0/11) | −6.7 | 样本 11 无判读力 |
|
||||
| 普通整局 | 0.2% | 0.0% | — | — |
|
||||
| 完美 L1 | 85.2%(341/400) | 83.2%(333/400) | −2.0 | ✓ 带内 |
|
||||
| 完美 L2 | 22.6%(77/341) | **12.6%**(42/333) | −10.0 | 越下(完美带对 L2 无独立约束) |
|
||||
| 完美 L3 | 11.7%(9/77) | 7.1%(3/42) | −4.6 | 样本 42 弱判读 |
|
||||
| 完美整局 | 2.2% | 0.8% | −1.4 | — |
|
||||
|
||||
## 钥石产出结构(R2 渠道改一批的直接后果)
|
||||
|
||||
| 档 | 改前均值 | 改后均值 | 结构 |
|
||||
|---|---|---|---|
|
||||
| 普通 | 4.03 | **1.25** | 旧 = 10/关×通关数;新 = Boss 逐杀 3/2(三杀全首杀 = 9) |
|
||||
| 完美 | 10.68 | **2.83** | 同上 |
|
||||
|
||||
**产出骤降 ≈ −69%**——「元进度产出重标义务重开」(06-待办清单 2026-10-01 登记条)的实据;工坊解锁节奏(阈值 1/1/2/2/3/3 按通关次数)不受钥石影响,钥石直购/锻造定价联动归元进度设计批。
|
||||
|
||||
## 判读(如实呈报,代拍板零判——带与行值处置归用户/调参批)
|
||||
|
||||
1. **方向符合设计意图**:血回满→部分回血 20% 系难度上压方向——L2 双窗下压(普通 −3.2 / 完美 −10.0)、整局收敛(完美 2.2%→0.8%),「恢复经济收紧」风险预挂(计划书 §8.1)兑现。
|
||||
2. **普通 L2 越下带 2.9 点**(7.1% < [10,15] 下界):与本批「回血收紧」直接因果同向;处置选项 = 带再裁(迭代 5 返工先例:带值本身可改)或回血比例/三选一件值回调(provisional 旋钮)——**归曲线调参批现行窗,随难度曲线与Boss P1 行重扫义务一并处置**。
|
||||
3. **普通 L1 微升 +2.6**:三选一属性件(攻击+1/上限+5)首关即可入手、选择性优于固定件——方向良性;仍在带内不处置。
|
||||
4. **AP 轴读数**:normal 档 L1 通关者三选一常含 AP 件(每战首轮 +1)未致带外——计划书 §8.6「战斗强度敏感轴」首窗读数无异常信号;加深扫描归调参批。
|
||||
5. **样本警告**:L3 双窗到达数 11/42——条件率无判读力,只作方向参考;带重扫时需定向种子扩样。
|
||||
|
||||
## 附:MC 锚换代合法性
|
||||
|
||||
- 改前→改后差异 = 计划内逻辑改动(三层奖励框架/钥石逐杀/AP 轴/回血收紧),非漂移:同种子同操作序列逐位可复现由冒烟 619 断言承载(含同种子两局 reward_events 逐位一致断言)。
|
||||
- rng 扩签 reward_pick 平移全局计数器——下游固定 scope 期望(board_gen 黄金向量/选路取数位)已随冒烟全量重测全绿,无隐断言残留。
|
||||
|
||||
## v2 段:追加批(奖励节点共享池,2026-10-01 用户拍板)后读数
|
||||
|
||||
三锚 = `runsum_m3iter10_t9b_anchor_20261001.jsonl`(追加批 4f62a48 + 种 79000,各 400 局)——奖励节点从「魔法道具三选一」改「提升池共享三选一」后,局内属性获取频率上升:
|
||||
|
||||
| 档·关 | 共享池前(种 78000) | 共享池后(种 79000) | Δ | 带判定 |
|
||||
|---|---|---|---|---|
|
||||
| 普通 L1 | 38.8% | **43.0%**(172/400) | +4.2 | ✓ 带内 [35,55] |
|
||||
| 普通 L2 | 7.1% | **11.6%**(20/172) | +4.5 | ✓ **回到带内 [10,15]**(首批越下 2.9 点随共享池自愈) |
|
||||
| 普通 L3 | 0.0%(0/11) | 0.0%(0/20) | — | 样本不足无判读力 |
|
||||
| 完美 L1 | 83.2% | 86.5%(346/400) | +3.3 | ✓ 带内 [35,65] |
|
||||
| 完美 L2 | 12.6% | 16.5%(57/346) | +3.9 | — |
|
||||
| 完美 L3 | 7.1%(3/42) | 1.8%(1/57) | −5.3 | 样本弱判读(L3 波动大) |
|
||||
| 完美整局 | 0.8% | 0.2% | −0.6 | 深层收敛(L3 连乘闸效应) |
|
||||
|
||||
**判读(代拍板零判——归曲线调参批)**:①共享池把局内成长频率抬回设计带(普通 L2 自愈回带),首批越下带读数作废、以本段为准;②钥石均值微升(普通 1.25→1.44)——产出重标义务不变;③L3 完美档 1.8% 系连乘闸下沿波动,重扫时需定向扩样;④f 裁调研待办(首件 vs 权重随机对照)在 06 在册,本报告策略=首件。
|
||||
|
||||
## v3 段:掷定前置(目检修复批 cc8807e)后读数
|
||||
|
||||
三锚 = `runsum_m3iter10_t9c_anchor_20261001.jsonl`(种 80000,各 400 局)——掷定前置仅把道具件掷定在 reward_pick 流序内挪(消费数不变),属合法流序漂移:
|
||||
|
||||
| 档·指标 | v2(共享池后,种 79000) | v3(掷定前置后,种 80000) | 判定 |
|
||||
|---|---|---|---|
|
||||
| 普通 L1 | 43.0% | **41.8%**(167/400) | ✓ 带内 [35,55] |
|
||||
| 普通 L2 | 11.6% | **10.2%**(17/167) | ✓ 带内 [10,15](贴下沿——重扫窗口关注点) |
|
||||
| 普通整局 / 钥石 | 0.0% / 1.44 | 0.0% / **1.38** | 持平 |
|
||||
| 完美 L1 | 86.5% | 86.5%(346/400) | 维持既有挂账口径(非本批回归) |
|
||||
| 完美 L2 / L3 / 整局 | 16.5% / 1.8% / 0.2% | 15.6% / 1.9% / **0.2%** / 钥石 **3.01** | 漂移 ≤0.9pp——无实质变化 |
|
||||
|
||||
**判读**:掷定前置系呈现面修法,通关率/钥石面零实质漂移;v2 段全部结论维持(普通 L1/L2 带内、产出重标义务、L3 扩样注记)。锚换代链 = 77000(改前)→ 78000(重构后)→ 79000(共享池后)→ 80000(掷定前置后,现行)。
|
||||
@@ -1,88 +0,0 @@
|
||||
# M-3 迭代 5 杠杆网格扫描报告(T3)
|
||||
|
||||
- **日期**:2026-09-28
|
||||
- **被测构建**:master @ 20533e3 + T1 基线(无行值改动——本报告全部读数为**补丁即跑即还原**的扫描读数,现行数据表零变更)
|
||||
- **工具**:`tools/t3_lever_scan.py`(本批批内扫描入口——对 `variation.tres`/`enemy.tres` 打锚文本补丁 → 跑 `adventure_monte_carlo.gd` → git checkout 还原);原始逐配置读数 `sim-data/t3_scan_results.jsonl`(10 配置)
|
||||
- **方法**:配对种子(全部配置同种子窗 73000,unique 逐局独立,N=100/策略/配置)——配置间差分 = 配对增量,消种子方差;判定带 = C4 冻结现行带(普通 L1 [35,55]/L2 [25,45]、完美 [35,65])
|
||||
- **过程事故登记**:B0 首跑与 P2 并发执行致两者读到同一份补丁表(读数逐位相同=作废)——扫描配置禁并发的教训入账;B0 已单跑重测(本报告以重测值为准)
|
||||
|
||||
## 一、扫描网格与读数(N=100/策略,配对种子 73000)
|
||||
|
||||
### 配对基线 B0(现行表值)
|
||||
|
||||
| | 普通 L1 | 普通 L2 | 完美 L1 | 完美 L2 |
|
||||
|---|---|---|---|---|
|
||||
| B0 读数 | 50.0% | 4.0% | 89.0% | 15.7% |
|
||||
| 现行带 | [35,55] ✓ | [25,45] ✗ | [35,65] ✗ | [35,65] ✗ |
|
||||
|
||||
### OFAT 单杠杆增量(对 B0 配对差分,单位 pp)
|
||||
|
||||
| 探针 | 杠杆位 | Δ普通L1 | Δ普通L2 | Δ完美L1 | Δ完美L2 | 定性 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| P1 | 岩浆 effect_value 2→1 | 0 | **+14.0** | 0 | +13.5 | L2 减难·强 |
|
||||
| P2 | per_level_bonus 2→0 | 0 | **+14.0** | 0 | +15.8 | L2/L3 减难·强(L3 0→21.4%) |
|
||||
| P3 | L2 Boss 卓尔 130→100 | 0 | +4.0 | 0 | +5.6 | L2 减难·弱 |
|
||||
| P4 | 荆棘 effect_value 1→2 | −2 | +0.2 | **−7** | −1.1 | L1 加难·弱 |
|
||||
| P5 | L1 Boss 酋长 72→86(r_boss 0.67→0.80 域内) | −6 | +0.5 | −1 | −4.3 | 只咬普通档(完美 L1 Boss 胜率 98%,血量加压打不到它) |
|
||||
| P6 | L1 群战上探(一伙/大地精 max 3→4) | — | — | — | — | **结构性不可用**:ConfigDB 跨表校验硬上限 unit_count_max 域 [unit_count, 3],抬上限=改校验域,超本批授权 |
|
||||
|
||||
### 组合配置
|
||||
|
||||
| 配置 | 普通L1 | 普通L2 | 完美L1 | 完美L2 | 判 |
|
||||
|---|---|---|---|---|---|
|
||||
| C1 = P1+P2 | 50.0 ✓ | 22.0 ✗(−3) | 89.0 ✗ | 43.8 ✓ | 完美 L2 入带 |
|
||||
| C2 = C1+P4+P5(注册杠杆全开) | 41.0 ✓ | 22.0 ✗(−3) | **81.0 ✗** | 49.4 ✓ | 全网格完美 L1 下限 |
|
||||
| C3 = C1+P3+P7(percent 5→4) | 50.0 ✓ | **24.0**(带缘 −1,±4.4 CI 内) | 89.0 ✗ | **56.2 ✓** | 3/4 入带最优解 |
|
||||
| C3 侧效应 | L3 无带:普通 0→16.7%、完美 0→34.0%(plb0+percent4 使 L3 变异密度 9%→4%) | | | | L3 带外注意项 |
|
||||
|
||||
## 二、扫描结论
|
||||
|
||||
1. **完美档 L1 全网格不可达**:89.0% 在全部 L2 减难杠杆下零位移(P1/P2/P3/P7 均不触 L1 环节);L1 定向杠杆全部弱(荆棘 +1 = −7pp 上限、酋长 +14 血对完美无感、群战上探被校验域封死)——注册杠杆集内 81%(C2)即完美 L1 下限,距带 [35,65] 上缘差 16pp。**完美 L1 的强势来自 10×10 板形 × 完美画像挖掘效率 × 奖励经济学,不在任何已注册旋钮的量程内**。
|
||||
2. **L2 双画像可收带**:C3 类组合(岩浆 2→1 + per_level_bonus 2→0 + 卓尔 130→100 + percent_of_cells 5→4)把普通 L2 送到带缘 24.0%(差 1pp,N=100 噪声带内)、完美 L2 56.2% 稳入带。
|
||||
3. **L3 侧效应**:L2 减难杠杆同时大幅抬升 L3 通关率(完美 0→34%)——L3 无带不判,但 L3 行值 provisional-pending-growth 的再校准(灰矮人矿城血轴)在判读后若采纳 C3 类组合将需要跟进(另批或同批追加行,非本扫描范围)。
|
||||
4. **工程发现**:r_boss 锚漂移——数值设计批 Boss 血轴拔高后,L2/L3 现值 r_boss≈0.33(Σ普通战生命期望=389/415,全行集口径)低于注册域 [0.5,1.1] 下限(L1 0.67 在域内);复算与是否收锚归出口判读。
|
||||
|
||||
## 三、伴生对账件重跑记录(随批义务)
|
||||
|
||||
### ① 清图支配性护栏 B 重跑 ✅(tools/clear_dominance_audit.py,现行 .tres 值链)
|
||||
|
||||
- L1 前段·实测(10×10 统一板):完美档 Δ_clear 首次翻正(+8.3/+5.5/+2.7,u=1/2/3)——棋盘统一批后完美档在前段板清图挖掘已过支配线;
|
||||
- L1 后段·实测 / L2·实测:仍全线 ✗(完美档缺口 −6.6 ~ −34.2 当量)——缺口形态与 2026-09-19 基线记录同构(当期记录 L1≈24/L2≈45),板形统一收窄了前段、未翻转后段;
|
||||
- 护栏 B(防钓鱼上界):D_ref=4 下 C=13 vs 上界 10(|S|min=50)越 1.3×,|S|min=60 带 ✓——**越线处置三选一仍挂用户**(登记债务,本批不动数字)。
|
||||
|
||||
### ② 挖掘风险不等式(重立记录)✅
|
||||
|
||||
现行惩罚链(八型批换装后):雷格负向=踩雷直伤(flat 主角单据)+群伤负向=警觉(敌方 AC +1 掷点折扣分布型);当量换算走效果档位对照表(flat E=表值;AC 轴=点数×5pp×D_ref=0.2 当量/次攻击)。重立结论:**风险端定价对收益端系统性不足的状态未闭合**(与清图支配性 L1 后段/L2 ✗ 区同源——挖掘收益端在板形统一与奖励密度放大后走强);修正位=雷格惩罚行值/负向权重池,**不在本批注册杠杆集**(属新杠杆授权),债务登记维持、行值不动。
|
||||
|
||||
### ③ heal 负向直伤 + 乏力 sapped 量级当量 ✅
|
||||
|
||||
- heal 负向直伤现行 power=1:当量换算表 flat 类 E=表值=1 = 0.25×D_ref(一次基准攻击的 1/4)——与荆棘 1/岩浆 2/踩雷直伤同处 flat 小整数档(C1 加法核一致),**当量自洽,无越带面**(该行值无注册带);2026-09-17 压缩批(−4→−1)的量级锚对账义务以本记录履行。
|
||||
- 乏力 sapped(−25% 输出一拍):percent 类 E=|层数×行值|÷100×D_ref=1.0 当量/结算——与 flat 一档同量级,轴一致。**已知债(不在本批)**:sapped 经 hero_offense 池的乘区接线缺口(格面调研「sapped 死效果」修复报价)仍挂格面差异化批,量级当量不受其影响。
|
||||
|
||||
### ④ 换算率锚联动复验 ✅
|
||||
|
||||
6/9/1(meta.tres conversion)在 T1 verifier campaign 段实测驱动正常:注入逐档生效无断链、爬升曲线健康(完美档 ~21 局/普通档 ~36–51 局进稳态通关,检查点表值平移 +21/+38 随触发自动生效)。锚定时效注记:6/9/1 标定于 2026-09-23(L2 收紧后旧口径);本批 L2 若按 C3 类收带(变易),爬升将进一步加速——**是否重标归出口判读**(护甲行强条目纪律:重测须按解锁后参数实测=verifier campaign 段即实测面)。
|
||||
|
||||
### ⑤ 刷新经济阈值基线读数 ✅(T1 交付,阈值提案随判读锁)
|
||||
|
||||
基线(T1):完美档 1.95 次/局·弃图率 19%·每轮刷新率 ≈4.7%(2026-09-19 基线 0.23 次/局·≤0.6% 的 ~30 倍位移——弃图重摇已进完美画像策略核心);普通档全零。**阈值提案(判读锁)**:预警阈值=弃图率 >30% 或每轮刷新率 >10%(≈2× 现行基线带外报警);现行值记「高弃图常态」观察态。
|
||||
|
||||
## 四、判读待决(停机等待面)
|
||||
|
||||
本批行值**零变更**(扫描=补丁即还原)——收带投值(provisional→正式)卡两点:
|
||||
|
||||
1. **U1 真人局未到账**:k 系数(真人整关承伤中位 ÷ 模拟完美档中位 55.0,预警线 k<0.3)未合入——06「加难杠杆扫描」条目的判读门=真人批 k 系数。采集指引=07⑨(零天赋档 3–5 局,日志自动落盘)。
|
||||
2. **完美档 L1 无解需用户裁决**(三选一,与 U1 无关、独立待拍):
|
||||
- 甲:**新杠杆授权**——敌方攻击基线上探(acceptance-ap6-ac f① 候选中有、06 条目注册表未收)或 L1 专属加难内容(新杠杆,须走杠杆注册);
|
||||
- 乙:**带修正**——完美档 L1 带上缘 65 上调(改带=用户拍板,C4 让位);
|
||||
- 丙:**接受 89% 挂账**——完美画像定位为上界仪(非真人画像),其 L1 越带不判、优先保 L2 双画像收带(本扫描读数支持)。
|
||||
3. C3 类组合(若判读采纳)的行值清单:`variation.tres` 岩浆 effect_value 2→1、per_level_bonus 2→0、percent_of_cells 5→4;`enemy.tres` (2,9) 卓尔 hp 130→100;伴随义务=registry 同步 + L2 池复验(T4 AC 投值前先锁本组合,防两轴混淆归因)+ 小样 20 局→全量确认 + 侧效应 L3 记录。
|
||||
|
||||
## 五、判读结果(2026-09-28 晚回填——用户两输入到账)
|
||||
|
||||
1. **完美 L1 三选一:用户裁丙**——接受 89% 挂账(完美画像定位上界仪,不判),优先保 L2 收带。带数字不动(C4 完整)。
|
||||
2. **C3 组合锁值落地**:`variation.tres` 岩浆 effect_value 2→1 / per_level_bonus 2→0 / percent_of_cells 5→4 + `enemy.tres` (2,9) 卓尔 hp 130→100 + registry 同步(variation 条目三处)——行值 provisional→正式随迭代 5 出口人闸追认。小样 20 局方向正常(完美 L2 72%·L3 46%,N=20 噪声带内);全量确认读数(N=200/策略·种子窗 76000)= `sim-data/runsum_m3iter5_c3locked_20260928.jsonl`(结果见台账 238 与 T4 报告对照基线)。
|
||||
3. **k 门处置**:U1 真人局到账形态=1 个不完整会话(2 轮即中断),k 系数不可计算——用户知悉后指令按丙裁决越过 k 门续跑收带(k 合入义务保留,见基线报告真人位更新)。
|
||||
4. 遗留挂账(出口人闸面):r_boss 锚漂移收锚(卓尔 100→r_boss≈0.26)、L3 侧效应再校准(变异密度 9%→4%)、刷新经济阈值数字、护栏 B 三选一。
|
||||
|
||||
> 扫描完成即 T3 机器面全毕;判读已按用户输入收口(丙+C3 锁值)。T4(AC 投值)/T5(节点图生成,实施门=调参收带后——本批即收带)按串行续跑。
|
||||
@@ -1,50 +0,0 @@
|
||||
# M-3 迭代 5 返工批——U2 裁决终态读数报告(T-A/T-C,2026-09-29)
|
||||
|
||||
- **被测构建**:worktree iter5-rework-20260929 @ c3c1725(C1 两刀 + AC v1 硬梯度 + 节点图池 U2 重生成终态)
|
||||
- **读数源**:MC N=200/策略 · 种子 79000 unique · route=min(`sim-data/m3iter5-rework-mc-final-20260929.stdout.log`,400 局);verifier na=150/k=100 · 种子 9500 · hp_first(500 局,本报告 §三)
|
||||
- **判定带**:C4 冻结不动(普通 L1 [35,55] / L2 [25,45]、完美 [35,65]、F4 Boss 承伤 ≤50% provisional)
|
||||
- **裁动上下文**:U2 三推翻(a 甲 / b C1 / c v1)+ 池重生成两规则——本报告 = 该组合的**首次测量**(事先无任何先测)
|
||||
|
||||
## 一、逐关条件通关率(MC 双窗单窗,N=200/策略)
|
||||
|
||||
| 层 | 画像 | 读数 | 现行带 | 判 |
|
||||
|---|---|---|---|---|
|
||||
| L1 | 普通 | 42.5% (85/200) | [35,55] | **落带** |
|
||||
| L2 | 普通 | **10.6%** (9/85) | [25,45] | **越下带 14.4 点** |
|
||||
| L1 | 完美 | 84.0% (168/200) | [35,65] | 越上带(**甲挂账**——T-B 杠杆提案待批,本批不动) |
|
||||
| L2 | 完美 | **22.0%** (37/168) | [35,65] | **越下带 13 点** |
|
||||
| L3 | 普通 / 完美 | 0% (0/9) / 8.1% (3/37) | 无带 | 只测不判 |
|
||||
|
||||
## 二、对照与归因
|
||||
|
||||
| 状态 | 普通L1 | 普通L2 | 完美L1 | 完美L2 |
|
||||
|---|---|---|---|---|
|
||||
| C3 锁值+无 AC+旧池(迭代 5 落籍态) | 46.5% ✓ | 31.2% ✓ | 83.0%(丙) | 56.6% ✓ |
|
||||
| v1 AC 叠 C3(T4 首版实测) | 42.0% ✓ | 14.3% ✗ | 84.0% | 53.6% ✓ |
|
||||
| **C1+v1+新池(本批终态)** | 42.5% ✓ | **10.6% ✗** | 84.0%(甲) | **22.0% ✗** |
|
||||
|
||||
归因三轴(方向性,未做单轴拆解实验):
|
||||
|
||||
1. **C1 vs C3**(占比回 5% + 卓尔回 130):T3 扫描口径下该两行 ≈ −5~−6pp(C3 24.0 → C1 22.0 普通档,完美 56.2 → 43.8)。
|
||||
2. **AC v1 硬梯度**:T4 实测 v1-on-C3 普通 −16.9pp(31.2→14.3);杂鱼梯度恢复(0→1~5 带内)与重击手 8/重装手 9 再叠加。
|
||||
3. **池重生成(本批新变量,最大未知)**:新网状图最短路径战斗节点数 3(旧图 4)——同路线战斗数变少=入 Boss 前养成变薄,L2 双画像同步下移(完美 53.6→22.0 的主落差在此轴,方向证据=完美档对难度变化最敏感)。
|
||||
|
||||
> ⚠ 归因注意:三轴同批落地,本报告只有终态读数——轴间拆解须补丁即跑即还原扫描(归调参批/迭代 7 标定批,本批不做)。
|
||||
|
||||
## 三、verifier 全段(独立种子窗 9500 · N=150+100 · 行键行数双核对 500 局)
|
||||
|
||||
- **双窗对拍同向**:普通 L1 44.0% / L2 13.6% / L3 0%;完美 L1 82.7% / L2 32.3% / L3 17.5%——与 MC 窗(42.5/10.6/84.0/22.0)同向同量级,非窗口彩票。完美 L2 双窗 22.0–32.3%(均低于带下缘 35,窗口波动 ~10pp 如实记录)。
|
||||
- **止步归因**:普通档主败退 = **第一层·节点6·Boss ×47**(食人魔酋长 AC 8 在 L1 收口位成为普通档第一墙)+ 第一层·节点2·战斗 ×23;完美档主败退 = **第二层·节点9·Boss ×40**(卓尔 130 血 + AC 10 长战)+ 第二层·节点1·战斗 ×17——Boss 收口位税负集中,与 AC v1 设计语义一致。
|
||||
- **营地循环(换算率 6/9/1 驱动复验)**:注入逐档生效无断链;普通档 ~60–90 局进稳态(滑窗 100%/100%/90-100%)、完美档收敛更快——对比上一基线(普通 ~36 局)**爬升放缓 ≈2 倍**(L2 难度上调的镜像后果),曲线形状健康。**换算率重标判读:锚功能正常无需急改,重标数字候选归迭代 7 标定批**(本批不动 6/9/1)。判定端报告 sim-data/balance-verifier-20260929-rework.raw.md。
|
||||
|
||||
## 四、伴生复算
|
||||
|
||||
- **r_boss 锚**(回退卓尔 130 后):L2 130/389 ≈ 0.33 · L3 140/415 ≈ 0.34——仍低于注册域 [0.5,1.1] 下限,**挂账维持**(收锚归调参批)。
|
||||
- **L3 变异密度**:5%+0/关(旧 5%+2 → C3 4%+0 → 本批 5%+0)——介于 9%(并流前口径)与 4%(C3)之间;L3 读数普通 0%/完美 8.1%,带外观察态不变。
|
||||
- **模板抽取分布**:15 张全被抽中(L1 五张 395–562 次、L2 五张 162–236 次、L3 五张 8–74 次=条件于到达),无死模板。
|
||||
|
||||
## 五、判读与移交
|
||||
|
||||
1. **普通 L2 10.6% / 完美 L2 22.0% 双越下带 = U2 组合的知情后果**(用户裁决链:b C1 少两刀减难 + c v1 加 AC 税 + ③ 池加宽连带短路径)——按返工计划书待批点丙呈报,**数字待用户追认**(追认前行值维持 provisional)。
|
||||
2. 完美 L1 84.0% → T-B 杠杆提案(design/research/perfect-l1-lever-proposal-2026-09-29.md,荆棘外延推荐)待批后另跑扫描。
|
||||
3. 换算率重标判读、r_boss 收锚、刷新阈值、护栏 B——维持挂账序列不变。
|
||||
@@ -1,54 +0,0 @@
|
||||
# 迭代 9 9A 段闸人闸检查单(2026-09-30 交付,待用户实机目检)
|
||||
|
||||
> 交付人=迭代 9 执行会话。9A 段(T0-T8+T11-T14+T15 重闸)全部落籍于 worktree `m3-iter9-20260930`(基点 3933723,段头 65e9016..c7646c5 十一批次)。**本检查单过闸 + 三裁决表态([呈报单](m3-iter9-t8-rulings-2026-09-30.md))= 9A 出口**,其后 T9/T10(挂三裁决)与 9B(T16-T20)续行。
|
||||
> 实机启动:主区合并后开始界面进入(或先看截图快照 `artwork/qa-screens-20260930/`——正式判定以实机为准)。
|
||||
> 判定记法:每项 ✅/❌+一句话;❌ 项走复述确认制(我先复述你的反馈再改)。
|
||||
|
||||
## 一、v3.5 视觉规格目检(对照验收基准图 `artwork/mockups/sample-batch-v35-draft-2026-09-29.png`)
|
||||
|
||||
1. **E 格高墙**:已开格南邻墙→南部 30% 承接墙面,墙顶纹理原亮度直贴(同色零暗档);(b)-(c) 交界无边框(墙面直贴墙顶);墙脚阴线恰一格线。
|
||||
2. **地板归一**:已开格底提亮至世界底层档(L≈0.10),纹理相对对比保留。
|
||||
3. **数字亮墨直画**:已开格数字无色牌直画——1–3 冷亮/4–5 暖白/6–8 金亮三档色温可辨。
|
||||
4. **色牌后备**:踩雷「雷」与遮蔽「?」维持垫牌(牌上深墨);普通数字无牌。
|
||||
5. **B 区舞台**:暗背景暖石档+顶光柱氛围(四柱)+站桩石板地台与椭圆落影。
|
||||
6. **ui_kit 对比度**:C 区属性行/结算明细条/菜单说明/菜单副标题——视觉上不再灰蒙(机检 WCAG 5.79–13.14 ✓)。
|
||||
7. **字号**:菜单帮助文/C 区行/明细摘要放大到 16px 后无溢出无挤压感。
|
||||
|
||||
## 二、扩编卡目检(呈现欠账四件)
|
||||
|
||||
8. **关卡画面 GP 常驻徽章**:顶栏右侧◈直角数据框,读数=当前冒险 GP(买商店/拿奖励后回图数值会动)。
|
||||
9. **C 区本关强化列表**:无加算时整节隐藏;有商店购买/大奖励加算时出现「攻击 +N/生命上限 +N/护甲 AC +N」行(验证路径:买一件商店强化进战斗看 C 区)。
|
||||
10. **封印旗纹理**:标旗格=黑色矩形旗印记(非文字「旗」);观感与墙瓦片可读不粘连。
|
||||
11. **营地视觉终稿**:石纹全屏底+顶栏铭牌/钥石徽+三柜台列(锻造/工坊/图鉴)+底栏关闭/注记——对照方向稿 `artwork/mockups/v3-draft-2026-09-29/4-camp.png`。
|
||||
|
||||
## 三、整屏样张闸语义项(机检不可判面)
|
||||
|
||||
12. **焦点预算(首焦唯一)**:战斗屏第一眼焦点=棋盘数字区/立绘,无第二焦点竞争;菜单/营地/关卡屏同判。
|
||||
|
||||
## 四、回归抽查(迭代 8 遗留项复核——视觉批不应触碰的面)
|
||||
|
||||
13. 中断续玩(关游戏重开→继续上局)、战斗胜利结算框、轮间结算逐条演出、设置面(音量/全屏/减动效)、放弃二次确认、图例解码。
|
||||
|
||||
## 五、代拍板追认清单(随 commit 记录,逐项追认或推翻)
|
||||
|
||||
| # | 代拍板项 | 内容 |
|
||||
|---|---|---|
|
||||
| k1 | E 格墙面材质与阴线 | 墙顶 center 瓦片顶部区带直贴+1px 墙脚阴线(方向稿同色 52,42,32) |
|
||||
| k2 | 亮墨三档色值 | #D8ECF0/#F0E2C8/#F8E3A8(验收图同值;边界抗锯齿 ±微调不入档) |
|
||||
| k3 | 色牌后备收窄 | 仅雷/「?」垫牌(数字直画;复杂格底判定随装饰瓦片批扩) |
|
||||
| k4 | 光柱参数 | 四柱@1280 基准 110/900/1055/1210、暖光 α26 渐隐(带内微调权限已用) |
|
||||
| k5 | 站桩地台 | 板身 150,130,100/描边 90,76,58/顶光 196,172,132(方向稿取色) |
|
||||
| k6 | 强化列表行文 | 「攻击 +N/生命上限 +N/护甲 AC +N」 |
|
||||
| k7 | 营地行文短格式 | 「生命锻造 +3/级」「Lv 0」「20 钥石」;柜台头带色/行板色(方向稿取色) |
|
||||
| k8 | 明细摘要/区头字号 | 摘要 14→16、区头 14/15→16(辅助提示 14 维持) |
|
||||
| k9 | 旗纹理形态 | 32×32 旗杆 2×22+矩形旗面 13×10 纯封印黑(无描边) |
|
||||
|
||||
## 六、段末重闸读数留痕(2026-09-30 实测)
|
||||
|
||||
冒烟 596/0+run_all 15 套全绿+六探针全 PASS(ui_input 十四断言/ui_probe/ui_tune/fx 全链/click 问题=0/layout 退出 0)+doc 三闸零新增(lint 8=8/term 2=2/死链 worktree 假象 3)+熵增 PASS+样张机检 17/17+整屏样张闸机检 PASS(WCAG 5.79–13.14/明度三档 204>79>55/纹理幅度 ≤12.9)+MC 对拍(见台账 294/295——本轮重跑读数以台账为准)+draw calls 实测 **504**(基线 270/目标 <200——**缺口呈报**,优化候选清单见台账,处置待你裁决)。
|
||||
|
||||
## 七、挂起项(不卡本闸)
|
||||
|
||||
- T9 分辨率两档落码 / T10 C 档黄金图基准 → 挂三裁决(呈报单裁决一/三)。
|
||||
- T16 draw calls 缺口处置 → 三案(见台账):优化批立项/目标带调整/接受现状。
|
||||
- 9B:T17 真人目检总清(本文档 §一-四即其 9A 前半,9B 全流程版随出口闸交付)/T19 真人通关率(照 07 §⑨ 指引 3–5 局)。
|
||||
@@ -1,40 +0,0 @@
|
||||
# M-3 迭代 9 出口检查单(2026-10-03 收口)
|
||||
|
||||
> 迭代 9 =「视觉规格落码 + Alpha 验收」两段(9A 视觉落码 2026-09-30 落籍;9B Alpha 验收段=本单)。计划书=`.zcode/plans/m3-iter9-loop-plan-2026-09-30.md` §5(T16-T20)。
|
||||
|
||||
## 一、T16-T20 执行面
|
||||
|
||||
| 卡 | 内容 | 状态 | 证据 |
|
||||
|---|---|---|---|
|
||||
| T16 | 修复批 11 件 | ✅ 全落 master | f462175→5debf6a 系+硬锁 v3.1/演播后排窗(5486ms/22 行 ±7ms);本出口批追加 35 两处字色(25a2e50) |
|
||||
| T17 | 全流程真人目检 36 项 | ✅ 全判 | [判定记录](m3-iter9-t17-fullflow-checklist-2026-10-01.md) 批1-4(13✅/35 两处修复/32 环境限制待独立复验) |
|
||||
| T19 | 真人标定局 | ✅ 佐证级收口(用户裁件五乙) | [读数报告](t19-real-playtest-readings-2026-10-02.md):有效局 2(1 通关 1 死 L3 首战);k=0.60 落 >0.5 带内 |
|
||||
| 带值批 | 新带值拍板 | ✅ 用户逐项裁 | 四带甲案+普通档失败常态窗+雷当量 6/8/8 转正+k 预期带([难度曲线与Boss.md 带换代节](../gdd/systems/冒险循环/难度曲线与Boss.md)) |
|
||||
| T20 | 出口闸五步 | ✅ 本单 | 批末闸数字见下节 |
|
||||
|
||||
## 二、批末闸(2026-10-03 全量留痕)
|
||||
|
||||
| 闸 | 结果 |
|
||||
|---|---|
|
||||
| 冒烟(run_smoke 三闸) | **636 项检查,0 失败**,PASS |
|
||||
| run_all 单元 | **15 套全绿** exit=0 |
|
||||
| 探针 | ui_probe PASS / ui_layout exit0(测量面)/ fx_probe PASS 全链 / t17_defer PASS(胜利同帧挂起+排播完开窗,waited=5.5s)/ **ui_click_probe 超时红=已知挂账**(完整局适配+硬锁交互语义差,06 专项 2026-10-03 补登记挂 M-4 迭代 11 窗口——非本批引入,perf 审计 2026-10-02 已定性) |
|
||||
|
||||
## 三、带值批说明(透明记录)
|
||||
|
||||
81000 锚(N=400/档)**经用户质询定性为「非数值验证」**:本批零数值改动,跑批性质=k 终值补算源(件四甲)+出度重建结构位移存档(完美战役 78.5%→59.0%,−19.5pp,只测不判)——见 [81000 读数](../../sim-data/读数_m3iter9exit81000_20261003.md)。锚随 M-4 数值收敛批再换代。
|
||||
|
||||
## 四、代拍板追认清单(待用户,不阻塞出口)
|
||||
|
||||
| 项 | 内容 | 状态 |
|
||||
|---|---|---|
|
||||
| 迭代 10 七项 | a 用备选/b-f 认同/g semver(2026-10-01,台账 298) | 待追认 |
|
||||
| 本出口批 | 无新增代拍板(带值四件/T19 收口/k 保留/35 修法均用户当场裁) | — |
|
||||
|
||||
## 五、挂账移交(出迭代,不阻塞)
|
||||
|
||||
32 全屏独立运行复验(编辑器内嵌限制)|31 音量实效(待 BGM 资产)|5/6/19 审美轴(06 在册)|ui_click_probe 完整局适配(06 专项)|全局难度收敛批(带 A/B 落带,M-4 排序)|迭代 10 人工参与项(07 ⑩)。
|
||||
|
||||
## 六、出口结论
|
||||
|
||||
**迭代 9 出口成立;M-3「数值标定与 Alpha 创建」关闭;Alpha 到手;M-4 门解**(迭代 11 窗口:同调批/商店批/反制批按读数排序,台账 303 排布)。
|
||||
Loaded 100 of 428 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user