merge: qa/ 实现报告未处理项清零·收尾批(14 条反哺落文+29 项追认+孤儿 7 项补登+人闸核销+14 份报告退役)
This commit is contained in:
commit
5a188f3ff0
21 files changed
+100
-1301
No files matched your search
@@ -95,3 +95,7 @@
|
||||
- **491(2026-10-14,迭代 26 UI 交互与观感批开工——/goal+iter U0)**:开工检查全过+两发现按用户裁诀执行。门=U0(本次会话 /iter 26 发令);卡片 v1.2 零待裁点(grilling 两轮八裁全落);V1-V7 验收清单三要素齐(V1-V6 自动闸机+V7 对拍面)。自洽扫描事实抽查 20+ 处全符(_apply_button_skin hover=常态图/disabled=pressed 错配 ui_kit:541-555;primary/danger 无 focus 盒与 disabled 错配 :575/:591;BCard 图标槽 76×76 :659-663;顺位徽标 GOLD_DEEP standee:441;护甲徽标 ward=HERO_BLUE/heavy=GOLD_DEEP :492/:494;GOLD_DEEP 语义岗 standee:199 意图动画判据;RAP 行 STONE_FAINT ap_bar:77;beams 硬边 :263-277;vignette/gradient 无显式 filter;project.godot 无 default_texture_filter;诊断钮无条件挂载 main:333-334+_on_diagnose_pressed :1290;冒烟双红线 smoke_all:5377/5385+对比度 helper :29-37;商店纯文字行/三选一已居中/营地四栏不等高;裸 Button.new() 全库仅 uikit:446)。**发现①**(用户裁按建议改法):卡片 §2.2 texture_filter 枚举漏登 board_world.gd:50(hero NEAREST),计 12 实测 13——已勘误落卡(NEAREST 10→11),该点与全局 Nearest 同向、零翻转风险、不进白名单。**发现②**(用户知会择机自理):主区 game/project.godot 编辑器对调脏件(theme 两行换序语义等价)——合并点复检,受阻停机呈报不擅动;另主区 active.md 脏件系编入会话快照遗产,本批 active.md 台账一律走主区侧写、不入分支(避免合并互撞),收口后随批在主区单独落 docs 提交。定义面入库 04ec217(roadmap/06/需求卡片指名三件)。基线复读全绿=冒烟 987/0(与在册一致)+run_all 25 套+probe --click 全绿残留 0(ui_input 17 断言/ui_struct/ui_contrast 38 对/click 行为走查问题 0)。**枚举两份**(T0 交付):①纹理过滤翻转面——显式 filter 13 处(NEAREST 11=ui_assembler:188/battle_end:60,76/board_fx:150/board_view:310/board_world:50/hero_info:202/level_map:169/standee:222/uikit:234,508,671;LINEAR 2=board_world:43 脚影/status_slot_row:127 状态图标);无显式 filter 仅 3 处(ui_kit:253 vignette/:272 beams/:291 gradient_base)=T2 白名单对象;StyleBoxTexture 九宫格(_tex_sb 产线 button_stone×2/panel_stone/border_stone)+主题 OptionButton 石纹样式盒(SBTex_btn/SBTex_btnp,非 Button 类型、红线不破)/滑轨抓子/勾选/箭头图标翻 Nearest=意图面;.tscn 零纹理节点(TextureRect/Sprite2D/TextureProgressBar/NinePatchRect/TextureButton/AnimatedSprite2D/TileMap 全零)。②按钮消费点 49 处(button 43+verb 1+primary 4+danger 1)全经四工厂,T1 覆盖面闭合;禁用态实跑点=shop_overlay_view.gd:117 余额不足禁用。另核:ui_contrast_probe 测点表为静态常量对、不覆盖禁用态(disabled 幽灵化不踩该闸);主题层 SBTex 两子资源归 OptionButton 名下。worktree g-plan2-iter26-ui(分支 iter26-ui-20261014,基点 04ec217)冷检出三件套(game/.godot 5.8M+art 931K+字体 .import)+--import 刷新 EXIT=0,T1 起。
|
||||
|
||||
- **492(2026-10-14,迭代 26 UI 交互与观感批总收口——单会话 /goal+iter U0 全量交付)**:T0-T6 八提交全量入库(worktree g-plan2-iter26-ui,分支 iter26-ui-20261014:b6f0c66 T1 五态/9ddb571 T2 Nearest+白名单/7cac0dc T3 换墨/86e9aea T4 光柱/02c87fc T5 细节/260c9bb T5b 诊断钮/900dfe9 T6 文档闸)。**T1**:ui_kit 三厂五态统一管线(hover=常态图+modulate 1.06 提亮〔乙案〕/disabled=本族底+α0.45 幽灵化〔甲案,旧「=按压图」错配修正〕/focus=INK 2px 内缩 1px 环〔甲案,负 expand margin 实现,引擎 focus 叠加绘制不遮钮底〕/危险钮补本族 pressed 深档),逐实例 override 主题层零新增;冒烟 +35 断言。**T2**:project.godot default_texture_filter=0+vignette/beams/gradient_base 显式 LINEAR 白名单;+6 断言。**T3**:立 GOLD_BRIGHT #E0B860/HERO_BLUE_BRIGHT #7EBAF0 两 token(语义岗冲撞走反哺点③),顺位/重甲/魔法护甲三徽标+RAP 行换墨(6.47/5.88/5.98:1);+9 断言。**T4**:beams 带内 0→0.05→0 三角过渡+纵向衰减(连续 alpha,Q7 裁);+3 断言。**T5**:SLOT_BACKDROP_SOFT #806A4E(白图标 5.14:1 ≥3:1)+商店 ALIGNMENT_CENTER+营地四栏等高(三 holder min 336+四面板 FILL+锁文居中);+8 断言。**T5b**:诊断钮卸载点+build_diag_button 工厂同批删除,转储入口迁调试浮窗(diagnose_requested 信号+区块⑤钮,Q8 裁甲);ui_tune_probe 只读巡检同批入册(白名单+_emit_diagnose_requested、连接数 10→11);+7 断言。**闸**:冒烟 987→**1055/0**(+68)+run_all 25 套+probe click/full 全绿+render_gate 全绿(shot_checker A-D 过;golden 三屏 **0.00%**——T6 第4 步登记即结未重制基线;战斗屏 draw_calls 191=基线 270 的附带收益)+doc 三闸/熵增对基线零新增(lint FAIL 集=06/07/术语表基线三件;08 一度因新增表格单元格撞 R3「日期+裁决同括号」正则,改措辞回绿——教训=08 表格单元格注记禁载「日期+关键词」同括号);MC 零跑。**文档同步面**:06 四条销号/氛围层改记「九宫格半存续」+反哺点四条新条+需求卡片条标已收口;08 v1.4;07 ㉕+v0.9;roadmap 迭代 26 行→已全批入库;实现报告=design/qa/iter26-实现报告-2026-10-14.md(代拍板追认单十三项+GDD 反哺点四条+目检五项)。**合并**:主区 game/project.godot 编辑器对调遗产脏件挡合(发现②预案场景)——用户裁「授权提交该对调」,落 no-op 提交 081ae3b 后 merge --no-ff **c8c3db1**(17 文件 +442/-48);合并后主区 --import 重刷+冒烟 1055/0+run_all 25 套+probe --click 全绿残留 0。active.md 台账本批全程走主区侧写(不入分支,避合并互撞——编入会话的 active.md 遗产脏件同因)。**待用户**:实机目检五项(07 ㉕)+代拍板追认单十三项+GDD 反哺点四条。
|
||||
|
||||
- **494(2026-10-14,qa/ 实现报告未处理项清零·收尾批)**:用户四裁——反哺点14条「全部按呈报落文」/追认单29项「全部追认通过」/孤儿遗留7项「全部补登06」/实机目检「已全部完成」。**簿记标注**(据既有裁决记录, iter20/21 追认与反哺前序已裁):iter20 §三十条+§四五条+§二V20-V23、iter21 §三#2-12+§五六条、iter19 七份遗留移交逐条结案/孤儿标注、iter25 反哺补登 06 专条(前序漏登)。**反哺落文 14 条**:iter24 五条→敌人系统.md **v0.18**(attack_type 字段行+矩阵消费面双向在役/技能错峰两轨/敌种表两行池构成/hobgoblin 缺口登记)+难度曲线与Boss.md **v0.29**(只测不判,数值归M4);iter25 三条→art-bible.md **v3.14 §7.6(二)**(原生控件组件规格)+06「UI元素细节修」条①措辞订正(「同一个深棕色」不符代码面)+§7.6 末注(主题色值双源);iter26 四条→art-bible.md **v3.14**(§7.6(一) 按钮五态/§4.1 三 token+色板 42→45/§7.6(三) 氛围层两派/§8.2 Nearest+LINEAR 豁免清单)。**追认单 29 项**全追认(iter24 §四八项含#6 克制消费补行、iter25 §四八项、iter26 §四十三项)——三报告追认单节已标注。**孤儿七项补登 06** 专条(design/diagrams 越界/开场行后缀/STONE 外溢/迷雾三关扩对/字面量墨/TG_* 判据/数据配置223+商店房截图)。**人闸核销**:07 ⑮真人半+⑳㉑㉒㉓㉔㉕ 七节加核销注记(v1.0 版本行)+iter20 五件与 V20+iter19 存活八项+迭代18 清单 18 项同批核销(用户回报完成未呈报问题)。**闸**:doc 三闸对基线零新增(gdd_lint FAIL=06/07/术语表基线三件;doc_link 死链 2+已知 1 存量;term 命中 3 存量)。**待用户**:qa/ 13 份报告删除清单确认(清理口径三条件已全满足)+ 主区未提交遗产处置(iter22/23 报告已删未 staged/02 +2 行/active.md 等前会话脏件)。
|
||||
|
||||
- **494 续(2026-10-14,qa 收尾批·删除执行)**:用户裁「全部删除」——qa/ 下 14 份迭代实现报告全数删除(iter19 七份+iter20/21/22/23/24/25/26;iter22/23 系前会话已删未提交件,本次一并清出工作区)。保留=ui-audit 目录、ui-audit-vs-demo-2026-10-06.md、迭代18-实机目检总清单(非实现报告,用户明令不删)。连带修正:06 反哺点专条与锻造条中指向已删报告的链接改「已退役,git 历史可考」措辞(iter24/25/26/21/23 五处),doc_link 复跑死链回落至存量 2 处(元进度/天赋树 武器锻造.md 更名遗留,非本批引入);iter23 条「残留人闸」括注补 07㉒ 已核销。git 历史可恢复全部已删报告。
|
||||
+36
-2
@@ -198,10 +198,13 @@
|
||||
- **奖励金 `#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 语义色彩规则
|
||||
|
||||
@@ -395,7 +398,7 @@
|
||||
|
||||
## 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 迁入)
|
||||
|
||||
@@ -434,6 +437,35 @@
|
||||
|
||||
- 三柜台界面画法 = §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 溯源表。
|
||||
|
||||
---
|
||||
|
||||
## 8. 资产与技术规范(Asset & Technical Specs)
|
||||
@@ -451,6 +483,7 @@
|
||||
|
||||
- **缩放纪律(硬规则,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 主角近方恰等比故独活——方框是按主角比例定的,窄条生物(细长本体裁掉透明边)进主角的框必变形。乙类的非整数豁免只覆盖**等比**缩放,不含纵横异倍变形。
|
||||
@@ -513,6 +546,7 @@
|
||||
|
||||
## 版本历史
|
||||
|
||||
- **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 体量分区数字表建议**改判作废**(已被「生物体型+逐键定档」语义取代)。
|
||||
|
||||
+37
-6
@@ -54,6 +54,8 @@
|
||||
|
||||
**现状**:四处细节都是实机上的可见问题,均已核查确认未在任何登记处在册:①设置面的音量滑轨,"已填的那一段"和"没填的那一段"是同一个深棕色,玩家看不出当前值在哪——这条其实触犯了 [美术圣经](../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 销号。本条四项全部完成,整条销号
|
||||
@@ -68,7 +70,7 @@
|
||||
|
||||
#### 迭代 26 UI 交互与观感批——GDD 反哺点四条(2026-10-14 随批登记,待用户逐点裁决另批落文)
|
||||
|
||||
**来源**:迭代 26 实现报告 §五(design/qa/iter26-实现报告-2026-10-14.md)——实现与 [美术圣经](../art/art-bible.md) 的差异/缺口,按 2026-10-10 文档同步闸 v2 立规:设计权威文档不随批直改,逐点待用户裁决后另批落文。
|
||||
**来源**:迭代 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 已有状态图标抗锯齿例外先例可援)——豁免清单是否入册待裁。
|
||||
@@ -77,7 +79,7 @@
|
||||
|
||||
**归属**:[美术圣经](../art/art-bible.md) §7/§4.1/§8.2(裁决后另批落文)
|
||||
|
||||
**状态**:待用户逐点裁决(登记不阻塞——2026-10-12 真人检测立规同款口径:裁决时点由用户控制)
|
||||
**状态**:✅ **已落文(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 豁免清单入册)。报告 §五已逐条标注落点
|
||||
|
||||
#### 旧行为 MC 行为锚全数作废——重锚归数值批(2026-10-06 登记)
|
||||
|
||||
@@ -138,7 +140,7 @@
|
||||
|
||||
**归属**:[锻造工坊](systems/跨局循环/锻造工坊.md) 实装(跨 meta/hero/feats/存档/战斗开场参数五面)
|
||||
|
||||
**状态**:✅ **已入库(2026-10-12,/goal+iter U0 开工单会话交付——T1 行族/T2 两轴移交/T3 写口族/T5 存档 v7〔序调先行:写口硬依赖〕/T4 注入链/T6 工作间 UI/T7 收口七提交;冒烟 938/0+run_all 24 套+重闸全绿+MC 同种子配对零漂移;实现报告=design/qa/iter23-实现报告-2026-10-12.md;残留人闸=实机目检工作间形态与购买交互〔07 在册〕)。**收尾(2026-10-13)**:代拍板追认单九项用户逐项追认通过(无修改意见);GDD 反哺点三条已落文(锻造工坊.md v0.7=Q1 等级语义正文衔接+效果类型闭集 31 订正+实装边界 1 实态回填;元进度.md v1.18=effective_ac 第一层终态句+钥石入口族三写口登记;术语表.md v1.9=路线 id/存档域键名词条)——本条义务全清。**
|
||||
**状态**:✅ **已入库(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/存档域键名词条)——本条义务全清。**
|
||||
|
||||
#### 玩家向显示名改名小批(局内三轴 + 临时 AC 状态)——跨循环名称冲突清偿(2026-10-12 用户逐裁,锻造工坊裁决会话续 8a 连带)
|
||||
|
||||
@@ -176,7 +178,7 @@
|
||||
|
||||
#### 天赋树实装批登记欠账三条——AP 上限 clamp / 三选一刷新软上限 / Y 不入断点存档(2026-10-12 随批入册自实现报告迁立专条;2026-10-13 原批条目随入库销号拆出)
|
||||
|
||||
**现状**:迭代 21 天赋树实装批已全量入库(2026-10-12,worktree g-plan2-iter21-tree,T1-T6 代码批+T7 文档同步批;实现报告=design/qa/iter21-实现报告-2026-10-12.md),批内登记欠账三条「本批不做、随批入册」;原批条目销号后由本专条承接。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 数值批调参窗口处理,不提前单开讨论。
|
||||
@@ -277,7 +279,7 @@
|
||||
|
||||
#### 迭代 24 敌人表内容修批——GDD 反哺点五条(2026-10-13 随批登记,待用户逐点裁决另批落文)
|
||||
|
||||
**来源**:[迭代 24 实现报告](../qa/iter24-实现报告-2026-10-13.md) §六(设计权威文档零触碰——2026-10-10 立规:文档更新必须经用户同意)。
|
||||
**来源**:迭代 24 实现报告 §六(已退役,git 历史可考;设计权威文档零触碰——2026-10-10 立规:文档更新必须经用户同意)。
|
||||
|
||||
| # | 文档 | 反哺点 |
|
||||
|---|---|---|
|
||||
@@ -287,7 +289,22 @@
|
||||
| ④ | [敌人系统](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 终值与当量锚复算归状态层重设计批
|
||||
@@ -575,6 +592,20 @@
|
||||
**归属**:文档体检批/对应来源批
|
||||
|
||||
**状态**:待办(已呈报登记;处置不阻塞迭代 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(无人指路)。裁=修复死指涉+登记重产,或判过期随旧管线退役。
|
||||
|
||||
+10
-1
@@ -8,6 +8,8 @@
|
||||
|
||||
### 专长实装批追加(2026-10-11 迭代 20——实机目检项,登记面)
|
||||
|
||||
> **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)——下五项同批核销。
|
||||
|
||||
- **Boss 专长三选一呈现**:非末关通关停点候选=全专长新 29 件(按档配比加权——普通打底/稀有稀缺);旧「提升三选一」属性件不再出现于通关渠道;回血读数照旧随载荷。
|
||||
- **曝光槽三卡观感**:奖励节点/商店三选一=2 格全池+1 格优秀档以上子池(子池空回退全池);新凭证四件(储备金袋/同调电池/时沙/完美保险)稀有档投放观感。
|
||||
- **卡面文案与稀有度档位显示**:新 29 件专长 display_name/desc 直读行字段(封印/陷阱风味系命名);四级档位(普通/优秀/稀有/传说)在卡面档位显示位是否正确渲染。
|
||||
@@ -157,7 +159,7 @@
|
||||
|
||||
### ⑮ 秘宝词族换词全 UI 面目检 + 渲染像素闸补跑(2026-10-05 秘宝代码词族对齐批随批登记——迭代15③号卡)
|
||||
|
||||
- **实机目检(「秘宝」字样全 UI 面,约 3 分钟)**:①C 区槽位标题应显示「秘宝」(原「魔法道具」,hero_info_panel_view 槽位组);②空槽悬停提示应显示「秘宝槽(空)」;③战斗总结三选一叙述行应显示「秘宝 / …」或「秘宝 / 随机获得一件」(原「魔法道具」开头);④换关 toast 应显示「上关剩余 N 件秘宝已随关卡结束清空」。**红灯信号**:任何界面残留「魔法道具」字样。
|
||||
- **实机目检(「秘宝」字样全 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 分钟)
|
||||
@@ -200,6 +202,7 @@
|
||||
- **刷新双入口**:树上「刷新升级」行与秘宝匣装配段 Y 升级行都能买、同账累计(树上 Lv 读数随买走)。
|
||||
- **连带面**:状态面板属性锻造段已消失(钥石+工坊+天赋树概览);生涯页两类六项(三柜台概览行已删);局内六键体感(先手首战首轮 +1AP/锋踩雷减半/守标错下轮 +AP/聚结算框 GP 即实得/散货架八折标价)。
|
||||
- 验证方式:用户实机目检(本批自动闸外唯一人闸)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
### ㉑ 秘宝解锁-装配正常流程体验(迭代 22 秘宝体系实现重构落地批随批登记——2026-10-12)
|
||||
|
||||
@@ -208,6 +211,7 @@
|
||||
- **生效面抽查**:晨操令/双管装填首轮 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)
|
||||
|
||||
@@ -217,6 +221,7 @@
|
||||
- **选中面**:已解锁路线「选中」钮免费切换(当前路线=「当前」禁用态);一次冒险只带一个武器类型+一个甲型;冒险开始后无切换入口(锁死)。
|
||||
- **注入抽查**:营地选长枪→开局攻击类型=穿刺(对敌护甲查克制矩阵生效);选重甲→入战 AC=12+路线加值;旧路线练度保留(换回即生效)。
|
||||
- 验证方式:用户实机目检(本批自动闸外唯一人闸;能力验证半已由自动化闸覆盖=V1-V14)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
### ㉓ 敌人表内容修批三观测(迭代 24 敌人表内容修批随批登记——2026-10-13)
|
||||
|
||||
@@ -224,6 +229,7 @@
|
||||
- **甲型体感**:营地选重甲进战斗,挨打是否比选轻甲**可感知地**轻一点(敌方攻击查矩阵 −1);选魔法护甲是否更疼(+1)。
|
||||
- **第一关节奏**:第一关第三个节点(熊地精 22 血)不再是「打不动的一堵墙」,推进节奏顺畅。
|
||||
- 验证方式:用户实机目检(登记不阻塞——2026-10-12 真人检测立规;能力验证半已由自动化闸覆盖=V1-V7)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
### ㉔ UI 全局主题批全屏巡检(迭代 25 UI 全局主题批随批登记——2026-10-13)
|
||||
|
||||
@@ -233,6 +239,7 @@
|
||||
- **专项观察点 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)
|
||||
|
||||
@@ -242,6 +249,7 @@
|
||||
- **布局均衡**:商店卡片区不堆上半(垂直居中);营地四栏视觉等高(含锻造/秘宝匣锁定态与图鉴栏)。
|
||||
- **诊断钮清零**:玩家画面(主菜单及各屏左下角)无「诊断转储」钮;转储入口仅在调试浮窗内可达。
|
||||
- 验证方式:用户实机目检(登记不阻塞——2026-10-12 真人检测立规;能力验证半已由自动化闸覆盖=冒烟 V1-V6+T4 结构断言)。
|
||||
- **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)。
|
||||
|
||||
## 验收读数重测义务(履行留痕 + 现行义务)
|
||||
|
||||
@@ -264,3 +272,4 @@
|
||||
| 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 独立跟踪,本条不涉及 |
|
||||
@@ -121,6 +121,8 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
|
||||
|
||||
**迭代 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)池结构联动注记的预期行为,非难度恶化信号);判读与带重锚随曲线调参批,本注记只登记不判读。
|
||||
|
||||
**迭代 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 数值批,本注记只登记不判读。
|
||||
|
||||
**判读口径同步(迭代 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 历史可查)`;~~新带值须新尺重测后用户拍板,重锚前只测不判~~(已由下行带换代收口)。
|
||||
@@ -366,3 +368,4 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
| 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 数值批 |
|
||||
@@ -78,14 +78,16 @@
|
||||
|
||||
首发敌种三种——地精、熊地精、食人魔酋长(末者为首发关底 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;大地脉动独占 |
|
||||
|
||||
@@ -144,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 池)。
|
||||
|
||||
举证:**摇定结果 = 可摇集合按权重份额归一的一次抽签;当前可摇集合 = 实例池排除冷却中技能(保底命中时 = 全部特殊技)。**连带可判别:把权重当固定百分比、把冷却当只锁高伤技、把蓄力当重击前奏,都是与本规约相悖的旧口径。
|
||||
|
||||
@@ -232,6 +234,7 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**三代错
|
||||
| unit_count_max | [unit_count, 3],可省略 | 数量区间上界;开战时在区间内掷定本战实际数量;缺省 = 定值 |
|
||||
| atk_min / atk_max | [0, 999] 可选配对 | 攻击基线区间:开战掷定一次、整战持久;缺省 = 定值行 |
|
||||
| armor_type | {轻甲, 魔法护甲, 重甲},缺省轻甲 | 克制结算归[战斗结算](战斗结算.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] | 攻击基线 |
|
||||
@@ -254,7 +257,7 @@ 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_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)。
|
||||
@@ -302,3 +305,4 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**三代错
|
||||
| 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 实现事实登记) |
|
||||
@@ -1,84 +0,0 @@
|
||||
# 迭代 19 实机目检总清单+代拍板追认单(2026-10-08 总收口批交付)
|
||||
|
||||
> 性质:人闸材料包——实机目检归用户后置执行,不阻塞收口;追认单收集本迭代全部 provisional 投值与代拍板处置,逐项待用户追认或否决。
|
||||
> 事实源:五卡+尾裁微批六份出口报告(design/qa/iter19-*-exit-report-2026-10-08.md)+ 台账 397-405。
|
||||
|
||||
## 一、实机目检总清单(按卡分组,勾选即销)
|
||||
|
||||
### 卡⓪ 主菜单开局缺陷修复批
|
||||
- [ ] 主菜单「开新冒险」:带已装同调件/已购 Fork 规则的存档开局,局内同调件生效、树分叉规则生效(修复前真实局三键恒空)
|
||||
- [ ] 主菜单「继续上局」:续玩局同调三键带下传(attunement/Y 刷新池/tree_rules——resume 受理已随尾裁微批闭环)
|
||||
- [ ] 关卡开场行攻/血数值与战斗面板同值;白板局不带「含面板加成」后缀,带永久强化或调试加成局带
|
||||
|
||||
### 卡① 自动化验收补齐批
|
||||
- [ ] render_gate 焦点预算项:七屏样张(shot_checker 机检 A-D 已全过)焦点/可读性人工复核
|
||||
- [ ] 07⑮ 真人半:「秘宝」字样全 UI 面 3 分钟巡检(机器半已随 46db30c 核销,此半明示不销号)
|
||||
|
||||
### 卡② 旧界面呈现断言回补批
|
||||
- [ ] 无专项目检项(纯断言批);可顺带复核 38 对测点覆盖面的整体观感
|
||||
|
||||
### 卡③ CI 预接线批
|
||||
- [ ] 无本机目检项;**首次 push 后人工盯首跑**(移交清单在需求卡片 §七):chickensoft setup 步绿/三段+ui_layout 四探针绿/Linux 字体环境差异预判(contrast 首跑若红属环境非回归)/导入步耗时观察
|
||||
|
||||
### 卡④ 提灯载体道具批
|
||||
- [ ] 营地同调目录现「魔法提灯」(目录十件)
|
||||
- [ ] 装配后棋盘视野迷雾外扩 +2(视野边缘可辨格数实机对比装配前后);卸下复原
|
||||
- [ ] 存档→续玩循环提灯状态正常
|
||||
|
||||
### 尾裁微批
|
||||
- [ ] 对比度 7 项修复位实机观感(商店行卡名/货架价签/结算 GP 账行/营地铭牌副题·行价格·树分组头·工坊状态——位置详卡②出口报告 V1-V7)
|
||||
- [ ] 续玩局后续关卡 Fork 树规则与新开局行为一致(resume tree_rules 闭环验证)
|
||||
|
||||
## 二、代拍板追认单(provisional/代处置逐项追认)
|
||||
|
||||
| # | 事项 | 代行内容 | 追认点 |
|
||||
|---|---|---|---|
|
||||
| 1 | 卡④ 行字段六值 | display_name=魔法提灯/desc=灯光区半径+2/id=fog_lantern/slot_cost=1/无稀有度字段/无门槛键(用户 2026-10-08「按推荐」秒答) | 终值确认 |
|
||||
| 2 | 卡② 存量 7 项修复 | 用户裁甲另立修复批→尾裁微批落地(实测 5.21/9.53/5.21/5.98/6.70/5.21/5.84,全 ≥4.5:1) | 修复值确认 |
|
||||
| 3 | 卡① golden 基线换代 | S2 波动性越限根因=抓帧时序(入场动画未完),修时序锚后换代基线三连跑 0.00% | 换代追认 |
|
||||
| 4 | 卡① integration 空壳删除 | 需求卡片 Q8 代拍板白名单项;章程句并入 tests/README | 追认 |
|
||||
| 5 | 卡① config_fatal_probe 退役 | 与 run_all 致命类单测断言面重复(2026-10-02 还账);数据配置.md:205 活性指路连带改指;**v0.4 历史行死链已入 doc_link_known.txt 登记(历史成文不可动先例)** | 追认 |
|
||||
| 6 | 尾裁微批三件 | 对比度 7 项/resume tree_rules 受理一行+断言/tests.yml 换 chickensoft action——均用户 2026-10-08 裁甲授权 | 落值追认 |
|
||||
| 7 | ui_layout 入 CI 轻段 | 裁点②用户裁甲;总收口批接线(轻段三探针→四探针) | 接线追认 |
|
||||
| 8 | 秘宝.md 双裁决调和 | 卡④目录十件 × 道具批归留裁决(在飞 WIP)stash 避让双保留并存,附编辑注「十-三=七 调和归秘宝层实装批」;**v1.1 版本行号重复(2026-10-07 生命周期轴 vs 2026-10-08 提灯)提请道具批会话收尾时重编** | ~~调和方案追认~~ **已闭(2026-10-08 用户后令:卡④秘宝文档痕迹全摘除——四处+版本行已还原原文,代码侧保留;本项被取代作废)** |
|
||||
|
||||
> **✅ 追认结果(2026-10-08 用户令「如果是经过我授权的,那没有问题,可以按照这些项来做」):八项全部追认通过落终态**——第 1-7 项投值/处置即为终态;第 8 项被后令取代作废(秘宝文档已还原,代码保留)。另:tests.yml 按用户同日裁决「仅用本地流水线、不用远程 CI」就地休眠(§一 卡③ 首跑盯梢项随之永不激活)。
|
||||
|
||||
### 目检注意点汇总(2026-10-08 追认时整理——实机体验时的预期变化与易误判点)
|
||||
|
||||
**行为变化类(真实局此前从未生效的功能现在生效了):**
|
||||
1. **同调件/Fork 树规则第一次在真实局生效**(卡⓪修的主菜单入口缺传——此前真实局三键恒空,只有冒烟夹具喂过值)。带同调件/树规则的存档开局,难度与开局观感可能与以往不同——这是缺陷修复的预期效果,非数值变动。
|
||||
2. **续玩局后续关卡 Fork 规则现在生效**(尾裁微批补的 resume 受理)——续玩与新开局行为一致。
|
||||
3. **提灯可拿可用**(卡④):营地同调目录装配「魔法提灯」后视野迷雾外扩 +2,卸下复原;每战装配链重算。未装配时无任何变化,模拟器/MC 画像不受影响。
|
||||
|
||||
**呈现变化类:**
|
||||
4. **七处文字变色**(对比度修复):商店行卡名/货架价签/结算 GP 行/营地铭牌副题·行价格·树分组头·工坊「已解锁」改用高对比常量——实机看是变清晰了,不是改配色风格。
|
||||
5. **开场行数值与战斗面板一致**(卡⓪②):白板局不再带「含面板加成」后缀;带永久强化或调试加成才带。
|
||||
|
||||
**跑闸须知类:**
|
||||
6. **render_gate 是窗口化闸**——会弹真实 Godot 窗口(七屏截图+取证),headless 环境必红,属护栏非缺陷。
|
||||
7. **改棋盘视觉素材后 golden 必红**——基线换代走 `tools/golden_baseline_refresh.sh`(素材齐盘态生成,S3 口径),换代原因强制记载提交说明。
|
||||
8. **新重闸口径自此生效**:批末=轻闸+--click+--full+render_gate+run_all+doc 三闸+熵增,周期执行不进每次变更(CLAUDE.md 分级周期口径句)。
|
||||
9. **doc/熵增现存登记红 7 件**(06 在册,用户认领并行处理)——跑全套时见到这些红属已知存量,非新破;`doc_link_audit` 带 `--known tools/doc_link_known.txt` 跑(数据配置历史行死链已登记)。
|
||||
10. **tests.yml 休眠**(用户裁:仅用本地流水线)——本文件零维护零作用,本地验证一切照旧。
|
||||
|
||||
## 三、存量欠账移交(已登记 06,处置不阻塞本收口)
|
||||
|
||||
新重闸口径(doc 三闸/熵增)首次全闸套跑翻出的旧债,经 T0 基点 9160942 复测确认非本迭代新增:
|
||||
|
||||
1. **gdd_lint 表格占比 3 件**(01 核心 35%/06 待办 0%/07 体验 6%——T0 已 2 件存量;第 3 件疑道具批散文稀释)→ 归文档体检批
|
||||
2. **熵增 design/diagrams 越界**(archify 架构图批 00712d5 旧债)→ 白名单扩须用户拍板(CLAUDE.md Project Layout+脚本白名单两处)
|
||||
3. **doc_link 奇物.md:245 双死链**(../ux/battle.md、../ux/node-reward.md——b6b43eb 旧债)→ 归奇物域批
|
||||
4. **doc_term 06「拔旗」退役术语旗** → 该备选条目自身裁决时顺手处置
|
||||
|
||||
## 四、收口闸数字(2026-10-08 主区实跑)
|
||||
|
||||
| 闸 | 结果 |
|
||||
|---|---|
|
||||
| run_smoke | 846 项 0 失败(三闸过) |
|
||||
| probe_gate 默认段 | input/struct(15 根)/contrast(38 对) 全绿 |
|
||||
| probe_gate --click --full | +click 走查 0 问题+ui_probe/tune/t17_defer/fx 四探针全 PASS,残留 Godot=0 |
|
||||
| render_gate | shot_checker A-D 全过+fx_shot 7 帧+board_shot L1-L3+golden 0.00%×3(容差 ≤16/≤2%),残留 0 |
|
||||
| run_all | 18 套件全绿(含 fog_lantern_wiring_test) |
|
||||
| doc_link_audit --known | 数据配置历史行归"已知";余 2 件奇物存量(advisory) |
|
||||
| gdd_lint / 熵增 | 存量红如 §三(已登记 06,非本迭代新增) |
|
||||
@@ -1,96 +0,0 @@
|
||||
# 迭代 19 卡⓪「主菜单开局缺陷修复批」出口报告(2026-10-08)
|
||||
|
||||
- worktree:`D:\code\g-plan2-iter19-card0`(分支 `iter19-card0-20261008`,基点 b0a73df = master 顶部)
|
||||
- 台账号:**398**(记账前以 `git -C D:/code/g-plan2 show master:active.md` 查撞——master 无 398;397 条预配「卡⓪398」与本卡一致,未撞未顺延)
|
||||
- MC/verifier:零跑(本卡 MC=静态论证,见 §5)
|
||||
|
||||
---
|
||||
|
||||
## 1. 四件逐件改动对照(file:line 改前 → 改后)
|
||||
|
||||
### ① 主菜单两入口补传同调三键
|
||||
|
||||
T0 实查:行号与需求卡片一致(新冒险入口 main.gd:510、继续上局入口 main.gd:470);接收面确认 start_adventure :129-130+138 三键齐、resume_adventure :215-216 仅两键(见 §7 披露项)。三键来源复用既有营地投影口径,零新读取逻辑:
|
||||
|
||||
| 键 | 来源(既有访问器) | 与营地投影同源依据 |
|
||||
|---|---|---|
|
||||
| attunement | `save_manager.attunement_equipped()`(save_manager.gd:314-316) | `meta.attune_camp_status()["equipped"]` 同一读数源(meta_progression.gd:368) |
|
||||
| attune_refresh_y | `meta.attune_refresh_charges()`(meta_progression.gd:394-395,当前等级行表值) | `attune_camp_status()["refresh"]["charges"]` 同一读数源(:386) |
|
||||
| tree_rules | `meta.tree_rule_keys()`(meta_progression.gd:241-253,Fork 激活侧 effects) | 树 rule 键集唯一既有取值口 |
|
||||
|
||||
改动(均 `game/presentation/main.gd`):
|
||||
|
||||
- **新增 static 构造函数 `build_adventure_params`**(改前 :493 空、改后 :496-513)——两入口共用参数面构造;hero_override 沿用既有 `meta.hero_override() if meta != null else {}` 口径原样搬入;static 形态=冒烟直呼单测(③),免实例化整菜单场景。
|
||||
- **继续上局入口**(`_resume_from_menu`,改前 :470 内联 2 键 dict `{"hero_override", "treasure_unlocked"}` → 改后 :470-471 `build_adventure_params(save_manager, meta, {"treasure_unlocked": ...})`,产出 5 键)。
|
||||
- **开新冒险入口**(`_start_adventure`,改前 :510 内联 4 键 dict → 改后 :528-530 `build_adventure_params(save_manager, meta, {"first_script", "treasure_unlocked", "shop_mode"})`,产出 7 键)。
|
||||
|
||||
runner 侧受理零改动(需求卡片明令「无需改 runner 侧受理」)。
|
||||
|
||||
### ② 关卡开场行攻血改传当前生效值 + 后缀认局外加成
|
||||
|
||||
改动(`game/presentation/main.gd` `_on_adventure_level_started`,改前 :517-521 → 改后 :539-549):
|
||||
|
||||
- 攻/血:改前传初始表值 `int(db.hero.atk)` / `int(db.hero.max_hp)` → 改后传 `runner.effective_atk()` / `runner.effective_max_hp()`——与战斗面板同源(battle_orchestrator begin_battle enc 的 `hero_atk`/`hero_max_hp` 即 LevelRunner.effective_*,level_runner.gd:479-480)。回调时点 runner 已带全部加成:`level_started` 在 `_runner.start_level_external(...)` 之后 emit(adventure_runner.gd:946,改后 :943),base_override/加算区/调试 pct 均已注入。
|
||||
- 「含面板加成」后缀判断:改前只认 `debug_overlay.atk_pct() > 0 or debug_overlay.hp_pct() > 0` → 改后追加认局外加成 `meta.hero_override()` 的 atk/max_hp 两轴 flat 任一 >0(调试 pct 条件保留)。白板局(无局外 flat、无面板 pct)不带后缀。后缀文案本身零改。
|
||||
- 依据:06-待办清单「关卡开场行攻血显示初始表值」条——「战斗面板用 level_runner.gd:480 生效值……两处数字对不上;后缀只认调试浮窗 pct,局外加成不触发注记」,用户 2026-10-07 确认缺陷成立。
|
||||
|
||||
`battle_narrator.gd:38-40`(level_open_line)零改——签名与拼装能力本就够用。
|
||||
|
||||
### ③ 冒烟补主菜单入口传参断言
|
||||
|
||||
改动(`game/smoke/smoke_all.gd`,新增 :4661-4687,⑫同调段之后、`_meta_smoke_cleanup()` 之前):
|
||||
|
||||
- 形态:直呼 `load("res://presentation/main.gd").build_adventure_params(...)` 单测统一构造面(static 免实例化整菜单场景,对既有冒烟夹具零侵入——level_autoplay 直呼 runner 的旧口径原样不动)。
|
||||
- 夹具(隔离档 `_META_SMOKE_PATHS[8]`=smoke_meta_tree.json,随段尾既有 cleanup 清理):装配 `["luck_coin"]` + Y 升 2 档 + Fork `fg_posture` 取 a 侧;前置断言防空转(rule 键非空 + Y=Lv2 行表值 2)。
|
||||
- 断言 6 项(大白话文案):
|
||||
1. 前置:Fork 侧 a 激活 rule 键非空 + Y=Lv2 行表值 2;
|
||||
2. 开新冒险:同调装配 = 存档装配集(营地装了什么开局就带什么);
|
||||
3. 开新冒险:Y 刷新池 = 当前等级行表值(营地升几档开局就给几次);
|
||||
4. 开新冒险:树 rule 键集 = Fork 激活侧 effects(点哪侧带哪侧);
|
||||
5. 开新冒险:入口特有键(first_script/shop_mode)随 extra 原样并入;
|
||||
6. 继续上局:三键与开新冒险同源同值(续玩不吃白板开局)。
|
||||
- 两入口覆盖说明:真实两入口共用 `build_adventure_params`(①的落法),开新/续玩两组断言即两路径的传参面;构造函数被两入口弃用回归时第 2-6 项即转红。
|
||||
|
||||
### ④ 删 adventure_runner.gd 三行重复赋值
|
||||
|
||||
改动(`game/core/adventure_runner.gd`,改前 :132-134 三行 → 删;现 :129-131 单组赋值收尾):
|
||||
|
||||
零行为变化证据:
|
||||
|
||||
1. **逐字重复**:被删 :132-134 与保留 :129-131 三行逐 token 相同(`_attunement = params.get(...)`、`_attune_refresh_y = maxi(0, int(params.get(...)))`、`_seed_attune_charges()`),同一 params 实参下二次赋值结果逐位相等。
|
||||
2. **中间无扰动**::131 与被删 :132 之间零语句——两次 `_seed_attune_charges()` 连续背靠背调用。
|
||||
3. **`_seed_attune_charges` 幂等**(:635-640,改后 :632-637):函数体 = `attune_charges = {}` 整体重置后按 `_attunement`+表行重灌——纯函数(读 params 已落地的 `_attunement` 与 db 表行,零 RNG、零信号、零 db 写),连续两次调用终态与一次相同。
|
||||
4. **闸实证**:删后 run_smoke 840/0、run_all 17 套件全绿(含 breakpoint_resume/curio_refresh_paid 等直呼 start_adventure 参数面的套件)——充能账本/刷新双源行为断言零漂移。
|
||||
|
||||
## 2. 闸数字(改前基线 / 改后)
|
||||
|
||||
| 闸 | 改前(主区 b0a73df 实测基线) | 改后(本 worktree 批末) |
|
||||
|---|---|---|
|
||||
| run_smoke | 834 项 0 失败,三闸过 | **840 项 0 失败,三闸过**(+6=③新增断言,失败数持平 0) |
|
||||
| probe_gate 默认段 | input/struct/contrast 三探针全绿 | 三探针全绿 |
|
||||
| probe_gate --click | 全绿 | 全绿(click 走查真跑主菜单开局一场冒险,问题=0) |
|
||||
| run_all | 17 套件全绿 | 17 套件全绿 |
|
||||
| 残留 Godot | 0 | **0**(probe_gate 批末闸「本闸残留 Godot=0 · 全局 Godot=0」) |
|
||||
|
||||
中间轮次:改动落齐后即跑轻闸(probe_gate 默认段全绿 + run_smoke 840/0),批末重闸三件全跑如上。
|
||||
|
||||
## 3. MC 零跑静态论证(一句话)
|
||||
|
||||
本卡 MC=静态论证:MC 取数面不经主菜单入口(adventure_monte_carlo/level_autoplay 直呼 AdventureRunner 参数面,在册夹具口径不动),故 ①② 的呈现层改动对 MC 路径零触及,MC 零跑零风险。
|
||||
|
||||
## 4. 范围外三件未触碰声明
|
||||
|
||||
- X/Y 刷新双源语义倒置(adventure_runner.gd 原 :658-659/:706-709,删重后 :655-656/:703-706):**零触碰**(④删除的三行在其上方,纯行号平移,内容未动——待用户裁定甲/乙)。
|
||||
- 被动同调件呈现:**零触碰**。
|
||||
- Fork 规则归因行(呈现层):**零触碰**。
|
||||
- 主区其余脏文件:**零触碰**(全程只在本 worktree 改动三文件+出口报告+active.md;主区仅 `git -C` 只读查询)。
|
||||
|
||||
## 5. 遗留与移交项
|
||||
|
||||
1. **runner 侧 resume_adventure 受理面无 tree_rules 键**(:215-217 仅收 attunement/attune_refresh_y;需求卡片「接收面 :215-217 现成」对 tree_rules 不成立)。本卡按「无需改 runner 侧受理」执行:两入口三键均已传出,续玩局 tree_rules 暂不被消费(=续玩局 Fork 规则键暂不生效,与修复前同态、无回归)。移交:runner 侧补一行受理(`_tree_rules = params.get("tree_rules", ...)` 同 :138 款)即可闭环,归用户裁定后随任一后续批落。
|
||||
2. X/Y 双源语义倒置仍待用户裁定(范围外,登记 06)。
|
||||
3. 开场行后缀在「局内有加算区 flat 但无局外加成」时无注记(数字含加算区但 suffix 不带)——按需求卡片「局外加成存在才带」字面口径执行,如需扩展认加算区归设计批裁定。
|
||||
|
||||
## 6. 提交清单
|
||||
|
||||
(本节随提交落定,见 git log——分四笔:修复①② / 断言③ / 清理④+出口报告 / 台账 398 记账。)
|
||||
@@ -1,85 +0,0 @@
|
||||
# 出口报告——迭代 19 卡③ CI 预接线批(2026-10-08)
|
||||
|
||||
> 需求卡片=`design/research/需求卡片-CI预接线批-2026-10-07.md`(v1.2);worktree=`D:\code\g-plan2-iter19-ciwire`(分支 iter19-ciwire-20261008,基点 9160942=master 顶部含卡⓪已入库);T0-T3 全履行,S2 未触发,**S1 命中一项(呈报待裁,未代修)**。
|
||||
|
||||
## 一、tests.yml 改动对照(T1,逐件)
|
||||
|
||||
| # | 位置(改前→改后) | 改动 | 需求卡片依据 |
|
||||
|---|---|---|---|
|
||||
| 1 | 头注释(原 :3) | 原句保留,追加「;远端仓库建好后**无需改本文件即自动生效**」 | T1③ |
|
||||
| 2 | 头注释新增一段(:7-10) | 轻闸探针口径四句:三探针=input/struct/contrast(probe_gate 默认段同款);ui_probe/ui_click/ui_tune/t17_defer/fx 归 --full 重闸不入轻 CI;窗口化四件(shot/fx_shot/board_shot/ui_audit)禁入 headless CI;判定=timeout 外壳+退出码超时判+PASS 串判定(镜像 probe_gate 的 Linux 形态) | 契约 2+§二分拣清单 |
|
||||
| 3 | `on.push.branches` / `on.pull_request.branches`(原 :10/:12) | 两处 `[main]`→`[master]`(触发分支死角修正) | T1④、Q1/Q11.3 |
|
||||
| 4 | smoke job 新增步 `Import assets (cold checkout, one-time)`(setup-godot 之后、冒烟之前) | `timeout 300s godot --headless --path game --import`——冷检出导入步,job 级基础设施步同覆盖冒烟与探针的 .godot 依赖 | T1①、Q9 甲 |
|
||||
| 5 | 原 :41-45 整块注释(示例 ui_probe/ui_click_probe)→ 正式步 `Run scene probes (light-gate trio, timeout + PASS check per ADR-0004)` | 三探针逐一登记(ui_input/ui_struct/ui_contrast),原注释位落 smoke job 内(复用同 job setup-godot,未另开 job);每探针 timeout 120s 外壳+退出码 124/137 超时判+`grep -q "PASS"` 判定;三探针全跑不短路、汇总退出码定段红绿(镜像 probe_gate 判定流);探针日志落 `logs/probe_ci/` | T1②、契约 5、白名单(timeout 数值/PASS 串/落位/日志并入) |
|
||||
| 6 | static-scan 段 / run_all 冒烟步 / upload-artifact 段 | **零改动**(探针日志写 logs/probe_ci/ 落入 artifact 既有 `logs/` 路径,零 diff 并入) | §三不收 |
|
||||
|
||||
**白名单代拍记录**:导入步形态=`--import`(Godot 4.2+ 官方 CI 导入形态,弃 probe_gate 的 `--editor --quit` Windows 本机形态;300s 沿用 probe_gate 导入步同款);timeout 数值=120s/探针(probe_gate 同款);PASS 判定串=裸 `"PASS"`(T0 本机实跑钉死,见 §三);探针步骤落位=smoke job 内原注释位;探针日志并入现有 artifact 段(零改实现)。
|
||||
|
||||
## 二、T0 开工复核结论
|
||||
|
||||
- tests.yml 现行行号复读:注释块 :41-45、头注释 :3、branches :10/:12——与需求卡片 §二一致,无漂移。
|
||||
- 分拣清单 .tscn 逐一存在性重核:三轻闸探针(ui_input/ui_struct/ui_contrast)+重闸四件+窗口化四件全数实存 `game/smoke/`。
|
||||
- 兄弟卡避让位:iter19-verify(卡①)、iter19-uibackfill(卡②)均在基点 9160942 干净在飞;本批 diff 面不含其触碰文件(tests.yml 不在卡①清单);roadmap 行按 Q13 由主控合并时串行重放,本卡只写卡③段内登记。
|
||||
- **S2 核查:master 仍停 9160942,兄弟卡未先行合并、三闸术语未在 master 换代——S2 不触发**(文案按需求卡片 v1.2 三闸口径落笔)。
|
||||
|
||||
## 三、PASS 判定串取样(T0 本机实跑,worktree 冷检出含导入步全程)
|
||||
|
||||
`bash tools/probe_gate.sh`(默认段)全绿,残留 Godot=0。三探针 PASS 行样本(grep 判据钉死=输出均含大写 `PASS` 串,裸 `grep -q "PASS"` 即判,与 probe_gate 同口径):
|
||||
|
||||
```
|
||||
[ui_input_probe] PASS — 悬停金框/禁入信号/路径预览/flag_place/chord/dig/英雄落位/影子构成/朝向/缩格重排/缺位回退/变异角标/视野迷雾/暂停层输入锁 十七断言全绿(…)
|
||||
[ui_struct_probe] PASS — 全屏结构断言零红
|
||||
[ui_contrast_probe] PASS — 对比度 15 对测点全绿(≥4.5:1 无区域例外)+ 裸色白名单/preload 红线静态段绿
|
||||
```
|
||||
|
||||
## 四、S1 停机点命中——setup-godot action 失效(呈报待裁,未代修)
|
||||
|
||||
**事实链(2026-10-08 实查)**:tests.yml smoke job `Setup Godot 4.7.2` 步引用 `uses: nikeee/godot-actions/setup-godot@v2`——
|
||||
|
||||
1. GitHub API `repos/nikeee/godot-actions` → **404**(对照组 `repos/actions/checkout` 同法查询正常返回,API 可信)。
|
||||
2. `nikeee` 用户实存(159 公共仓库),其仓库全列表 100+59 条 **grep godot 零命中**——该仓库现不存在(从未公开或已删/转私)。
|
||||
3. GitHub Marketplace「Setup Godot」同名页实为 `Vitorgus/Setup-Godot@v1`(Godot 3 时代、Linux only、非本件)。
|
||||
4. 现存活跃同功能件=`chickensoft-games/setup-godot`(v2.4.3,支持 Godot 4.x headless,macOS/Windows/Linux)。
|
||||
|
||||
**S1 处置**:按需求卡片 §六 S1「呈报后再动,不顺手代修范围外段」——该步**一字未动**,呈报候裁。对 prompt 停机规则「停机点命中→立即停全案报告」与需求卡片 S1「呈报后再动(该段)」的解读取舍:按需求卡片为准(prompt 自身规定冲突时以需求卡片为准)继续完成 T1-T3 范围内四项(与 setup-godot 裁决完全正交,无白干风险),S1 作头号呈报项披露。
|
||||
|
||||
**裁决选项(供用户参考,不代裁)**:甲=换 `chickensoft-games/setup-godot@v2`(一步一行改);乙=弃 action 改 runner 手动下载 Godot 4.7.2 linux 二进制(无第三方依赖);丙=维持现状挂起(远端未建,不阻塞本批终态——但**远端建好首跑前必须先裁,否则 smoke job 必红在 setup 步**)。
|
||||
|
||||
## 五、T2 静态核验证据(需求卡片 §七 验收闸逐条)
|
||||
|
||||
| 验收判据 | 结果 | 证据 |
|
||||
|---|---|---|
|
||||
| 1. 无整块注释探针段残留 | ✅ | smoke 段 `ui_probe.tscn`/`ui_click_probe.tscn` 引用零命中(脚本核对 False);原 41-45 注释区已成正式步 |
|
||||
| 2. CI 段引用的每个 res:// 路径实存 | ✅ | `res://tests/run_all.gd` 实存;三探针调用点逐一核对:ui_input_probe.tscn/ui_struct_probe.tscn/ui_contrast_probe.tscn 全 [OK](脚本逐文件 isfile) |
|
||||
| 3. timeout 外壳+PASS 判定齐备;头注释含自动生效句 | ✅ | timeout 清单:300s 导入步/120s 冒烟/120s×3 探针;PASS 判定函数化定义一处三探针各执行;超时判 `-eq 124`/`-eq 137` 在位;「无需改本文件即自动生效」在头注释 |
|
||||
| 4. pyyaml 解析通过 | ✅ | `yaml.safe_load` OK;jobs.smoke 步骤序=[Checkout, Setup Godot 4.7.2, Import assets, Run smoke runner, Run scene probes, Upload Test Results](pyyaml 将 `on:` 读作布尔键系 YAML 1.1 已知怪癖,GitHub Actions 按 YAML 1.2 处理,非问题) |
|
||||
| 5. roadmap 邻行登记+B6 闭环注记;diff 面=tests.yml+账务行 | ✅ | roadmap 75 行卡③段内追加「✅ 卡③已入库」块(B6 闭环注记在册);git status 本批正文 diff 仅 tests.yml+roadmap.md,游戏代码/探针件/probe_gate.sh/CLAUDE.md 零 diff(契约 1 达成) |
|
||||
|
||||
术语口径对齐:新增注释用「轻闸」(×2)「--full 重闸」(×1)——与 probe_gate.sh 注释自称及需求卡片 v1.2 三闸口径一致。
|
||||
|
||||
## 六、T3 账务
|
||||
|
||||
- roadmap 迭代 19 行卡③段内入库登记(含 B6 闭环注记、S1 呈报项、首跑清单指针)——合并时与兄弟卡换代按 Q13 由主控串行重放。
|
||||
- 「首次 push 后人工盯首跑」移交清单:需求卡片 v1.2 §七 已在册三条(首跑三查/ui_contrast Linux 字体环境差异预判/导入步首跑耗时观察),本批核对闭环、无再改需求卡片必要。
|
||||
- 台账:active.md 追加 **402** 条(397 条预配号卡③=402;记账前 `git show master:active.md` 查撞 400-409 零命中,未顺延)。
|
||||
|
||||
## 七、移交清单(首次 push 后人工盯首跑——本批不履行只移交,远端立项之日激活)
|
||||
|
||||
1. **首跑三查**:static-scan 绿 / smoke 段绿 / 新探针段绿。
|
||||
2. **首跑前置门(本批新增,优先于一切)**:先裁 §四 setup-godot 失效问题(甲/乙/丙三选),否则 smoke job 第一步必红。
|
||||
3. **Linux 环境差异预判**:ui_contrast_probe 依赖字体渲染实测值,ubuntu runner 字体环境与 Windows 本机不同,首跑若红属环境差异非回归,逐条呈报处置。
|
||||
4. **冷检出导入步首跑耗时观察**(probe_gate 本机经验=一次性 1-2 分钟,CI 上未实测;导入步已前置,冷检出红灯风险预消,首跑仍需实证;probe_gate 用的 `--editor --quit` 而本批 CI 步用 `--import`,形态差异首跑一并实证)。
|
||||
|
||||
## 八、遗留
|
||||
|
||||
- S1 setup-godot 裁决(§四,唯一阻塞首跑项)。
|
||||
- 裁点② ui_layout_probe 入 CI——候卡①断言交付后用户裁(需求卡片 §八,本批未触碰、契约 2 锁死轻段三件)。
|
||||
- 远端仓库=裁点①终态「暂不建、维持待命」,本批交付即待命终态;建否/何时/公私届时另议。
|
||||
|
||||
## 九、提交清单
|
||||
|
||||
| hash | 内容 |
|
||||
|---|---|
|
||||
| 3799e0c | 卡③T1——tests.yml 注释探针段解封改写为正式轻闸段(含导入步/分支修正/头注释) |
|
||||
| 7397603 | 卡③T3——roadmap 迭代19行卡③段内追加入库登记 |
|
||||
| (本笔) | 卡③出口报告+active.md 台账记账 402 |
|
||||
@@ -1,88 +0,0 @@
|
||||
# 迭代 19 尾裁微批「三件」出口报告(2026-10-08)
|
||||
|
||||
- worktree:`D:\code\g-plan2-iter19-followup`(分支 `iter19-followup-20261008`,基点 0ba3ddf = master 顶部,已含卡⓪③②已入库)
|
||||
- 性质:用户 2026-10-08 六裁授权的落地批——裁甲(对比度存量 7 项另立修复批)+ 卡⓪ resume tree_rules 受理闭环 + 卡③ S1 换 setup-godot action
|
||||
- 台账号:**404**(记账前 `git -C D:/code/g-plan2 show master:active.md` 查撞——master 停 402 无 404 撞;403 = 卡④预配在飞,本条按预配 404 记)
|
||||
- MC/verifier:零跑(执行纪律)
|
||||
- 停机点:S1/S2 均未命中(任务 a 修完后 probe_gate 应全绿——兑现,见 §3)
|
||||
|
||||
---
|
||||
|
||||
## 1. 三件对照总览
|
||||
|
||||
| 件 | 授权口径 | 落地 | 提交 |
|
||||
|---|---|---|---|
|
||||
| a | 对比度存量违例 7 项修复(建议案已定,全部换现役常量零新造;只换文字墨,零布局零文案) | 7 处代码位 + 测点表 7 对随代码同步改指新常量;probe_gate 默认段 ui_contrast 38 对全绿 | 5891b5b |
|
||||
| b | 卡⓪ resume tree_rules 受理闭环(resume_adventure 按 start_adventure :135 同式补一行;消费面现成零改;main.gd 披露句同步改写;冒烟追加续玩受理断言) | adventure_runner.gd:215 受理行 + main.gd:500-501 披露句退役改写 + smoke_all.gd:4689-4698 两查 | 768e366 |
|
||||
| c | tests.yml 换 action(卡③ S1 甲:nikeee→chickensoft-games,保留/改写裁注,纯静态核验) | tests.yml:40 换装 + :37-39 裁注改写(裁甲依据 + 404 实证) | c489d16 |
|
||||
| 台账 | active.md 末尾追加 404(格式仿 402 条;记账前查撞) | 404 条目一笔单独提交 | 701f1f7 |
|
||||
|
||||
## 2. 任务 a——7 项逐项实测比率(改前 = 机检首跑实测;改后 = 机检同式复算实测〔临时脚本按 ui_contrast_probe.gd 同一 `_lum/_ratio` 公式对 UiKit 常量实时求值,改前七值与机检输出逐位一致证同式;脚本用后即删,git 零残留〕)
|
||||
|
||||
| # | 位置(file:line) | 改前 | 改后 | 带 ≥4.5 |
|
||||
|---|---|---|---|---|
|
||||
| V1 | battle_end_overlay.gd:86-87 结算 GP 账行(GOLD_DEEP→GOLD_INK) | 2.67:1 | **5.21:1** | ✓ |
|
||||
| V2 | shop_overlay_view.gd:127 行卡名(bold 缺省 INK_LABEL→显式传 WARM_SOFT) | 1.12:1 | **9.53:1** | ✓ |
|
||||
| V3 | ui_kit.gd:677 bcard 价签(GOLD→GOLD_INK) | 1.46:1 | **5.21:1** | ✓ |
|
||||
| V4 | camp_overlay_view.gd:74 铭牌副题(STONE→STONE_DEEP) | 3.59:1 | **5.98:1** | ✓ |
|
||||
| V5 | camp_overlay_view.gd:342 行价格 + :369 行进度(STONE→STONE_DEEP) | 4.02:1 | **6.70:1** | ✓ |
|
||||
| V6 | camp_overlay_view.gd:191 树分组头(GOLD_DEEP→GOLD_INK) | 2.67:1 | **5.21:1** | ✓ |
|
||||
| V7 | camp_overlay_view.gd:275+:278 工坊「已解锁」两分支(GOLD_DEEP→GOLD_INK) | 3.00:1 | **5.84:1** | ✓ |
|
||||
|
||||
注:V4 改后 5.98:1,较授权建议案注记「5.6:1」为高(建议案数值系常量注释沿用的历史口径;机检公式下同常量对 PANEL_DATA 实为 5.98——ui_kit.gd:95 STONE_DEEP 注释 5.6 同源,本批不改注释数值,机检以探针公式为准)。V5 授权注记 6.7:1 / V7 注记 5.85:1 与实测 6.70 / 5.84 一致。
|
||||
|
||||
### V2/V3 重度档修复前后
|
||||
|
||||
- **V2(全场最深红 1.12:1)**:legacy 行卡商品名 `UiKit.label(_card_title(p), UiKit.FS_BODY, true)` 第四参缺省——label 工厂 bold 缺省墨 INK_LABEL(深墨 #2E2218)直压暗底行卡 BG_OVERLAY(#362B20),暗对暗 1.12:1。修复=显式传第四参 `UiKit.WARM_SOFT`(暖白次级 #E8D5A8),与同卡现价行(既有 WARM_SOFT 9.5:1)同墨同族,9.53:1。零布局改动(custom_minimum_size 等原样)。
|
||||
- **V3(次深红 1.46:1)**:bcard 价签 `UiKit.label(price, FS_TITLE, true, GOLD)` 奖励金亮墨(#F0A828)压亮牌 PANEL_DATA(#E9D9B8)1.46:1。修复=换 `GOLD_INK`(深金墨 #74500B,PANEL_DATA 上 5.21:1——与意图蓄力徽标墨同常量,ui_kit.gd:29 在册现役)。
|
||||
|
||||
### 零波及确认
|
||||
|
||||
- **V3 三选一价签恒空串**:bcard 另一消费方 curio_pick_overlay.gd:109 传 `""` → `price_l.visible = price != ""`(ui_kit.gd:679)恒隐藏——GOLD_INK 换墨对三选一屏零渲染影响,实证成立。
|
||||
- **同常量兼两用甄别**:battle_end_overlay.gd:48 `panel_flat(COL_GOLD, GOLD_DEEP, …)` 为面板边框装饰用途(非文字),不在 7 项在册清单,未动。camp_overlay_view.gd 同文件其余 STONE 用途(:116 结构位预留/:269-272 未解锁·已退役状态/:403 主动被动脚注/:414 刷新行)均非在册违例位,未动(V7 仅改「已解锁」两分支 GOLD_DEEP)。
|
||||
- **测点表对数不变**:38 对 → 38 对(7 对改指新常量 + 行尾注新比率,零增删),静态段(裸 Color8 白名单/preload 红线)零触碰全绿。
|
||||
- 本批零布局零文案改动实证:diff 面 = 4 个视图文件各 1-2 行常量引用 + 探针 7 对常量/注释,无一处坐标/尺寸/文案变更(`git show 5891b5b --stat`)。
|
||||
|
||||
## 3. 任务 b——卡⓪ resume tree_rules 受理闭环
|
||||
|
||||
| 位置 | 改动 |
|
||||
|---|---|
|
||||
| adventure_runner.gd:215 | resume_adventure 受理段补一行 `_tree_rules = params.get("tree_rules", []) if params.get("tree_rules", []) is Array else []`——与 start_adventure:135 同式(含同款 is Array 类型防御三元),注释注明卡⓪受理闭环 |
|
||||
| adventure_runner.gd:938 | 消费面 `set_tree_rules(_tree_rules)` 现成零改(start_level_external 成功路径共用,start/resume 两入口同享) |
|
||||
| main.gd:500-501 | build_adventure_params「resume_adventure 现收两键(tree_rules 暂不消费——传参先行,受理缺口在册披露)」过时披露句退役改写为「现收三键(受理闭环,披露句退役)」——呈现层注释,授权允许 |
|
||||
| smoke_all.gd:4689-4698 | 断言段追加续玩受理两查:①`adr_res.resume_adventure(bp_min, p_resume)` 受理三键参数面(bp_min = 卡②冒烟 ⑫ v2 旧断点夹具同式最小断点);②`runner._tree_rules == rules_e`(与传入 Fork 激活侧 rule 键集一致,rules_e 非空由既有前置查保证) |
|
||||
|
||||
闸数字:冒烟 840→**842/0**(+2 恰为新增两查)、run_all 17 套全绿、probe_gate --click 全绿。
|
||||
|
||||
## 4. 任务 c——tests.yml 换 action(静态核验)
|
||||
|
||||
- tests.yml:37-40:`nikeee/godot-actions/setup-godot@v2` → `chickensoft-games/setup-godot@v2`;既有 S1 裁注改写保留(裁甲依据 + 卡③轻 CI 首跑 404 实证 + version 参数语义不变)。
|
||||
- 静态核验五判据:pyyaml 解析通过;`uses:` 四处换装后 nikeee 零残留(仅裁注注释留历史记录);`version: 4.7.2` 参数保留(:42);`uses:` 行缩进同构(8 空格步进位);冒烟/探针/upload 段零触碰(diff 面 = +4/-1 全在本步)。
|
||||
|
||||
## 5. 闸数字改前/改后全列
|
||||
|
||||
| 闸 | 改前(基点 0ba3ddf 实测) | 改后(本批顶 c489d16 批末实测) |
|
||||
|---|---|---|
|
||||
| run_smoke | 840 项 0 失败 | **842 项 0 失败**(+2 = 任务 b 两查) |
|
||||
| run_all | 17 套件全绿 | **17 套件全绿** |
|
||||
| probe_gate 默认段 | ui_input PASS + ui_struct PASS + **ui_contrast FAIL 恰 7 项(在册存量)** | **三探针全绿**(ui_contrast 38 对全绿 + 静态段绿) |
|
||||
| probe_gate --click | (基线含 click 全绿但 ui_contrast 段红) | **全绿**(click 行为走查问题=0) |
|
||||
| ui_contrast_probe | 38 对测点、7 项越带 | **38 对测点全绿**(对数不变、常量改指) |
|
||||
| 残留 Godot | 0 | **0**(批末双口径复核:本闸=0 / 全局=0) |
|
||||
|
||||
存量红清零对账:改前 7 项 = 在册存量 7 项(V1-V7),无新增红;a 修完后 probe_gate 全绿兑现。
|
||||
|
||||
## 6. 提交清单(5 笔,基点 0ba3ddf → 顶 701f1f7)
|
||||
|
||||
1. `5891b5b` 修复: 尾裁微批a——对比度存量违例7项全修(5 文件,+19/-18)
|
||||
2. `768e366` 修复: 尾裁微批b——卡⓪resume tree_rules受理闭环(3 文件,+15/-2)
|
||||
3. `c489d16` 修复: 尾裁微批c——tests.yml 换 setup-godot action(1 文件,+4/-1)
|
||||
4. `701f1f7` 修复: 尾裁微批台账记账404(1 文件,+1)
|
||||
5. 本笔——出口报告落盘
|
||||
|
||||
## 7. 未决事项 / 移交
|
||||
|
||||
- **404 号位披露**:397 条预配「总收口404起」,本批按需求卡片指令以 404 记尾裁微批台账;总收口批记账时顺延(405 起),撞号再查撞顺延并出口报告披露(既有惯例)。
|
||||
- **tests.yml 端到端仍不可验**:仓库尚无远端(卡③在册边界)——chickensoft-games/setup-godot@v2 实跑验证随远端立项首跑兑现;裁注已把 404 实证与换装依据留在位。
|
||||
- **STONE 深化外溢位未动**(非在册违例、机检不拦):camp_overlay_view.gd:116/:403/:414 等既有 STONE 文字位对现役牌色实测 3.59-4.02:1 区间(与 V4/V5 同源),如后续拟全站收敛 STONE→STONE_DEEP 另立裁点,不在本批授权内。
|
||||
- 卡②出口报告 §4 建议案七项之「V2 行卡名换墨后观察 legacy 行视觉层级」——已按建议案落 WARM_SOFT(与现价行同墨),视觉层级两列同色为建议案原设计,无后续动作。
|
||||
@@ -1,120 +0,0 @@
|
||||
# 出口报告——迭代 19 卡④ 提灯载体道具批(2026-10-08)
|
||||
|
||||
> 需求卡片=`design/research/需求卡片-提灯载体道具批-2026-10-07.md`(v1.2);worktree=`D:\code\g-plan2-iter19-lantern`(分支 iter19-lantern-20261008,基点 568101b=master 卡③入库态,含卡⓪①缺陷修复=本卡 T1 前置门 S1 天然满足);T0-T5 全履行,S0 行字段秒答已收(「按推荐」全收 2026-10-08),S2 未触发。**停机点:零**。
|
||||
|
||||
## 一、行字段秒答记录与 provisional 追认单(S0)
|
||||
|
||||
| 字段 | 呈报推荐值 | 用户裁决(2026-10-08) | 追认状态 |
|
||||
|---|---|---|---|
|
||||
| display_name | 魔法提灯 | 按推荐(全收) | ✅ 已按推荐落表——本报告即出口追认单,转正 |
|
||||
| desc | 灯光区半径+2 | 按推荐(全收) | ✅ 转正 |
|
||||
| 行 id | fog_lantern | 按推荐(全收) | ✅ 转正 |
|
||||
| slot_cost | 1(与九件同规,schema 强制恒 1) | 按推荐(全收) | ✅ 转正 |
|
||||
| 稀有度 | 不设字段(KEY_WHITELIST 封闭十七键无此键) | 按推荐(全收) | ✅ 转正 |
|
||||
| 门槛位 | unlock_requires 键省略(=已解锁合法态,底稿 §2.2) | 按推荐(全收) | ✅ 转正 |
|
||||
| 机械字段(schema 钉死非裁量) | form="passive"/triggers=[](键显式存在)/effect_kinds=[]/target="none"/magnitude=0/use_phase="active_dig"/dimension_tags=["info"]/行位置=表尾追加 | ——(工程面,需求卡片 §五.2 案A+主控已裁) | ✅ 落表(treasure_items.tres 表尾) |
|
||||
|
||||
**行位置=表尾追加的承重理由**:MC 自动档装配画像(game/smoke/adventure_monte_carlo.gd:70-90)按表序取「前 slots-1 个 passive+首个 active」——fog_lantern 追加表尾后 passives 序=[淬毒刃纹,标中殉爆,惊巢反制,工兵晨令,偏运硬币,三选一刷新件,魔法提灯],slots=3 时取前 2 passive(淬毒刃纹/标中殉爆)+首 active(掘进蓄能)**逐位不变**;slots 现役硬上限 3(attunement_growth.tres slot_cap),表尾位在 slots≤3 下**不可达**=装配画像零漂移(MC 静态论证详见 §四)。
|
||||
|
||||
**与 greedy_lantern 零关联消歧**:feats.tres:291 贪婪矿灯=dig_reveal yield_mult 专长(开格产出放大),与视野无关,本批零触碰;行文全称「魔法提灯」不单称「提灯」。
|
||||
|
||||
## 二、逐件改动对照(T1-T4,file:line 为改后行号)
|
||||
|
||||
### T1——数据行落表(commit 90a39f1)
|
||||
|
||||
| # | 位置 | 改动 |
|
||||
|---|---|---|
|
||||
| 1 | game/data/tables/treasure_items.tres :7-8 | 头注释追加两行批注(迭代 19 卡④ 出处分批+行字段裁决出处+「激活 vs 封存」形态差注记——fog_lantern 活行空效果形态=triggers 显式空数组,与显影尘 deferred 封存形态对照) |
|
||||
| 2 | 同 :224-236 | 表尾(pick_refresh 行后)追加 fog_lantern 行十四键:item_id/display_name/dimension_tags=["info"]/desc/effect_kinds=[]/target/magnitude/use_phase/form="passive"/slot_cost=1/triggers=[](**键显式存在——treasure_item_table.gd:111 活行空 effect_kinds 校验豁免以 row.has("triggers") 为条件,漏写=加载红**);unlock_requires 键省略=已解锁 |
|
||||
|
||||
**schema 校验面核对(加载零红)**:冒烟「全部表加载+校验通过」闸过(TreasureItemTable.validate 零违例);KEY_WHITELIST 十七键内零新键;真视窄域/board_wide 护栏不涉(无 mine_reveal);magnitude=0 非 N 值 kind 合法;passive 行 charges 缺省 0 合法;attunement_rows() 收录(form 非空活行)=同调目录十件。
|
||||
|
||||
### T2——接线生产路径贯通(commit eef343c)
|
||||
|
||||
| # | 位置 | 改动 |
|
||||
|---|---|---|
|
||||
| 1 | game/core/battle_orchestrator.gd :128-134 | 新增**装配集公共只读出口** `attune_has(item_id) -> bool`(委托既有 private `_attune_has` :124——契约化出口,save v6 只读访问器先例;private 面内部调用零改动;只读零副作用) |
|
||||
| 2 | game/presentation/main.gd :852-860 | `_on_round_started` 内新增 `if ri == 1: _sync_fog_lantern()` 挂点+时序依据注释:**round_started 首轮发射位在 begin_battle 尾(attunement 注入 :227 之后)**;board_changed 在 `_install_new_board` 内先发(:309)、装配集后注入——同帧直挂 `_on_board_changed` 会读到上一战旧集,故不挂 |
|
||||
| 3 | game/presentation/main.gd :875-886 | 新增**呈现桥** `_sync_fog_lantern()`——`board_view.set_fog_lantern(settlement.attune_has("fog_lantern"))`,真值显式写给 setter(写入即 refresh 全板重算);settlement/board_view 空防御 |
|
||||
|
||||
**复原语义(🔴 契约 7 / Q8.1)**:每战首轮装配链**显式重算含否**——装配=true 写 2、未装配/卸装=false 写 0;禁依赖战斗结束隐式复原(断点续玩/跨关/换装天然正确)。未装配=false 写 0=与既有基线**逐位一致**(缺省零扰动)。off 态生产路径变化=零(`attune_has` 只读、`_sync_fog_lantern` 只写呈现态布尔)。
|
||||
|
||||
**ADR-0001 合规**:信号连接与装配判定归组合根(main.gd),board_view 纯呈现零核心依赖;board_zone_view 装配链经由组合根持有别名(main.gd:89 `board_view = battle_ui.board_view`)零改。
|
||||
|
||||
### T3——测试三形态(commit f0f2009,契约 9 全守)
|
||||
|
||||
| # | 形态 | 位置 | 内容 |
|
||||
|---|---|---|---|
|
||||
| 1 | probe=case⑮ 内载体级段(不开新 case) | game/smoke/ui_input_probe.gd :419-441 | ①装配→开局参数面:save_manager.set_attunement_equipped(["fog_lantern"])→`build_adventure_params` 返回含 fog_lantern(卡⓪①缺陷修复面回归断言);②装配集→呈现桥→生效:settlement.attunement 手动注入(模拟 begin_battle enc 注入后运行态)→`main._sync_fog_lantern()`→lantern==2+dist==R+1 格转可见;③卸装显式重算复原:attunement=[]→sync→lantern==0+ring 复原遮蔽+存档装配集复位。**case⑮ 既有断言零删减(实查::331 基线+:395-418 接线段原样在位,ui_input_probe PASS 全绿实证)** |
|
||||
| 2 | smoke=现有套件加断言(不新开套件文件) | game/smoke/smoke_all.gd :233-263(_smoke_adventure_table 内) | +4 断言:行字段逐键裁值/同调目录投影 display_name=魔法提灯(九件→十件)/装配→战斗贯通(enc.attunement 注入→attune_has=true)/空装配基线(attune_has=false)。冒烟 840→844 |
|
||||
| 3 | 存档回归 | game/tests/unit/core/breakpoint_resume_test.gd Part 6 | 装配(params.attunement=["fog_lantern"])→选路进首战 attune_has=true→断点→新对象 resume_adventure 受理→回局首战 attune_has 仍 true(停点往返载体态一致;呈现态每战重算归呈现桥,本断言钉核心层装载往返) |
|
||||
| 4 | 呈现桥判定 stub 单测+行加载单测(game/tests/ 惯例位) | game/tests/unit/core/fog_lantern_wiring_test.gd(新件)+game/tests/run_all.gd manifest 17→18 套 | 真实表 validate 零违例/行字段逐键/attunement_rows 收录/attune_has 双态(["fog_lantern"]→true、luck_coin→false、[]→false)/begin_battle enc 注入面 |
|
||||
|
||||
### T4——账务落文(commit 0b5834d)
|
||||
|
||||
改道指路句**实查 6 处全部换代**(需求卡片 §七.5「四处」口径矛盾以实查计数为准):
|
||||
|
||||
| # | 位置 | 改前 | 改后 |
|
||||
|---|---|---|---|
|
||||
| 1 | board_view.gd :139(常量注释) | 「+2 预留不接效果——效果载体归 Alpha 信息件批;接线时写 _fog_lantern」 | 「+2=拍板值;载体=迭代 19 卡④ fog_lantern 秘宝行已入库 2026-10-08——原指路句随批换代」 |
|
||||
| 2 | board_view.gd :143-145(setter 注释) | 「〔aux_items 提灯新行——归 Alpha 信息件重定批〕到位后由组合根/库存挂接调用」 | 「〔fog_lantern 魔法提灯——迭代 19 卡④已入库〕已到位,组合根 main._sync_fog_lantern 每战首轮装配链显式重算调用」 |
|
||||
| 3 | art-bible.md :387 | 「LIGHT_RADIUS_LANTERN_BONUS=+2 预留不接效果(接线归 Alpha 信息件批)」 | 「FOG_LANTERN_BONUS=+2(**常量拟名顺手对齐落码实名**)已接效果入库(载体=fog_lantern 行+每战装配链接线;呈现画法零改动——本节只管怎么画)」 |
|
||||
| 4 | HUD框架.md :168(配套拍板段) | 「提灯载体归 aux_items 新行,随 Alpha 信息件重定批一并登记」 | 「登记原文+改道注记(2026-10-07 改道独立卡、2026-10-08 裁案A 落位)」 |
|
||||
| 5-6 | HUD框架.md :170(实施状态段,同段 2 处) | 「LIGHT_RADIUS_LANTERN_BONUS=+2 预留未接效果(接线归 Alpha 信息件批)」+「提灯载体〔aux_items 新行〕仍归 Alpha 信息件重定批」 | 常量实名对齐+「仍归」句删除,整段追加**〔2026-10-08 迭代 19 卡④入库注记〕**(载体行/生产路径链/复原语义/测试随批/原登记去向销账声明) |
|
||||
|
||||
- **残留核查**:全仓「Alpha 信息件」字样改后余三处——board_view.gd:139(换代声明句)、HUD框架.md:170(销账声明句)、roadmap.md(迭代 14 历史行+迭代 19 卡④改道留痕叙事)——均非活性指路,零旧口径残留。**qa 历史成文零触碰**(m4iter14 出口报告等原样)。
|
||||
- **06-待办清单.md :27-29**:菜单开局同调传参缺陷条回写入库态(✅ 卡⓪ merge 9160942 修复面+冒烟 +6+resume tree_rules 受理缺口披露归属用户裁)。
|
||||
- **秘宝.md**:速览实现面文件名过时残留顺手订正(aux_items.tres→treasure_items.tres)+目录九件→十件(魔法提灯入册、被动六→七)+投放态注记十件口径+版本行 v1.1。
|
||||
- **roadmap.md :75**:迭代 19 行卡④段入库登记(T1-T5 全记录+出口报告指路)——入库顺序串行重放归主控合并时处理。
|
||||
|
||||
## 三、MC 对拍——静态论证(需求卡片 T5/裁 Q3:零实跑)
|
||||
|
||||
提灯=**纯呈现层载体件**,静态推演五点:
|
||||
|
||||
1. **结算域零入**:fog_lantern 行 effect_kinds=[]+triggers=[]——效果引擎 rebuild 订阅空(`_fx.rebuild` 第三参取 treasure 行 triggers,空数组零订阅)→ 16 发射点零命中 → 结算步骤流/事件流逐位不受扰(🔴 契约 2 同板同动作序列两态逐位一致,case⑮ 既有断言面持续守护)。
|
||||
2. **装配画像逐位不变**:MC 自动档装配(adventure_monte_carlo.gd:70-90)按表序取前 slots-1 passive+首 active;fog_lantern 表尾追加在 slots≤3(slot_cap 硬上限)下**不可达**——off/formed 两档 equipped 数组逐位不变。
|
||||
3. **取数面零变化**:本批零触碰 rng_service/board_generator/encounter——流计数器与派生序零 diff。
|
||||
4. **呈现写入面收敛**:生产写入面唯 `main._sync_fog_lantern`(每战首轮一次)+ui_input_probe 既有 case⑮ 接线断言(探针域非生产);set_fog_lantern 本体零改动(写 `_fog_lantern`+refresh——迭代 14⑤ 已在位)。
|
||||
5. **off 态逐位一致基线**:未装配 fog_lantern 时 `_sync_fog_lantern` 写 0=既有基线值——`fog_state` 计算式 `fdist > FOG_RADIUS + _fog_lantern` 数值恒等。
|
||||
|
||||
结论:MC 两档读数**零漂移**,无需实跑(实跑须走跑批批准制——2026-10-07 用户裁 Q3 静态论证替代,本批遵守)。
|
||||
|
||||
## 四、闸数字(改前/改后全列)
|
||||
|
||||
| 闸 | 改前(基点 568101b) | 改后(本批头 0b5834d,批末重闸实测 2026-10-08) | 变化 |
|
||||
|---|---|---|---|
|
||||
| 冒烟 run_smoke | 840 项 0 失败三闸过 | **844 项 0 失败三闸过** | +4(smoke 集成断言) |
|
||||
| probe_gate 默认段 | 全绿(input 十七断言/struct/contrast 15 对——本分支基点为卡②合并前旧态 15 对,主控合并时以 master 现役 38 对重放) | 默认段全绿(input PASS/struct PASS/contrast 15 对 PASS) | 零红 |
|
||||
| probe_gate --click | (基线未单跑——click 走查主菜单开局冒风险问题=0 口径沿卡⓪批) | 全绿(click 段退出码 0 判过+残留 Godot=0+全局 Godot=0) | 零红 |
|
||||
| run_all | 17 套件全绿 | **18 套件全绿**(+fog_lantern_wiring_test PASS 在列) | +1 套 |
|
||||
| 残留 Godot | 0 | 0(批末双点:probe_gate 批末闸+批后 powershell 复点) | 持平 |
|
||||
|
||||
(改后数字=批末重闸实测逐项在案,无勘误。)
|
||||
|
||||
## 五、验收断言清单对账(需求卡片 §九)
|
||||
|
||||
1. ✅ 裁决案数据行在表且加载校验通过(schema 白名单零违例——冒烟表加载闸+新单测 validate 断言)。
|
||||
2. ✅ 生产路径贯通:载体在位→fog_params_probe()["lantern"]==2、dist==R+1 环带转可见(case⑮ 载体级段);载体缺位→lantern==0 现行为逐位不变(case⑮ 基线+smoke 空装配断言)。
|
||||
3. ✅ ui_input_probe 载体级断言全绿且 case⑮ 既有零删减(实查计数:基线 1+接线 4+载体级 5 断言组原位共存);smoke 集成与存档回归全绿(844/0+Part 6)。
|
||||
4. ✅ 重闸全绿+MC 零扰动(静态论证 §三)。
|
||||
5. ✅ 活性指路句实查 6 处全部换代、零旧口径残留(§二 T4 逐处清单;历史成文除外)。
|
||||
6. ✅ 出口报告落 design/qa/(本件,含 provisional 追认单+行字段秒答记录);roadmap 迭代 19 行换代。
|
||||
|
||||
## 六、遗留与移交
|
||||
|
||||
- **在飞避让(Q13)**:本分支基点落后 master(卡①②在飞或已落)——照常施工未 rebase 未追;roadmap 迭代 19 行与 ui_contrast 38 对口径由主控合并时串行重放(probe_gate 改后默认段在本分支以 15 对旧态全绿为验收口径,已在 §四披露)。
|
||||
- **resume 侧 tree_rules 受理缺口**:卡⓪批已披露(runner resume_adventure 现收 attunement/attune_refresh_y 两键),本批断点 Part 6 走 params 注入不受其影响——缺口处置仍归用户裁,非本批新增。
|
||||
- **提灯点亮视觉**:挂账不动(「资产升档重产批」+「提灯点亮解禁候选」——S2 未触发)。
|
||||
- **全局变异案E 解封条件**:「提灯接线落位」随本批落地推进——解封重议归全局变异批 Own,本批不代行。
|
||||
- **显影尘/地穴全图卷能力封存重定**:仍留 Alpha 信息件重定批,本批零触碰(改道留痕=需求卡片 §一)。
|
||||
- **台账记账**:403 号(master 0ba3ddf 查撞:398-402 已占、403 空闲=预配号一致未顺延)。
|
||||
|
||||
## 七、提交清单
|
||||
|
||||
| commit | 内容 |
|
||||
|---|---|
|
||||
| 90a39f1 | T1——treasure_items.tres 表尾追加 fog_lantern 行 |
|
||||
| eef343c | T2——attune_has 只读出口+呈现桥 _sync_fog_lantern(每战首轮显式重算) |
|
||||
| f0f2009 | T3——测试三形态(case⑮ 载体级段/smoke +4/存档回归 Part 6/新单测 run_all 18 套) |
|
||||
| 0b5834d | T4——指路句 6 处换代+06 回写+秘宝十件+roadmap 卡④段 |
|
||||
| (本笔) | T5——批末重闸+出口报告+台账记账 403 |
|
||||
@@ -1,125 +0,0 @@
|
||||
# 迭代 19 卡②「旧界面呈现断言回补批」出口报告(2026-10-08)
|
||||
|
||||
- worktree:`D:\code\g-plan2-iter19-uibackfill`(分支 `iter19-uibackfill-20261008`,基点 9160942 = master 顶部含卡⓪已入库)
|
||||
- 台账号:**401**(记账前以 `git -C D:/code/g-plan2 show master:active.md` 查撞——撞号结果随记账提交披露;397 条预配「卡②401」)
|
||||
- MC/verifier:零跑(需求卡片执行纪律)
|
||||
- **⚠ 停机点 S1 命中:新测点对首跑暴露存量对比度违例 7 项(§3 全量登记清单)——按需求卡片 §十 S1 停机呈报,处置权归用户;本批红线(旧屏零 diff)全程保持,7 项零修。S2 未命中(legend/node 结构首跑全绿)。**
|
||||
|
||||
---
|
||||
|
||||
## 1. T0 基线与 §二复核
|
||||
|
||||
基线复读(基点 9160942 本 worktree 实测):
|
||||
|
||||
| 闸 | 基线值 |
|
||||
|---|---|
|
||||
| run_smoke | 840 项 0 失败三闸过 |
|
||||
| run_all | 17 套件全绿 |
|
||||
| probe_gate --click | 全绿(残留 Godot=0),总时长 280.3s |
|
||||
| probe_gate 默认段 | 三探针全绿,总时长 186.7s |
|
||||
| ui_contrast_probe | 15 对全绿 + 静态段绿 |
|
||||
| ui_struct_probe | 13 根全绿(含 resume 专项) |
|
||||
|
||||
§二表 file:line 复核:测点表 `_pairs()` 现役 15 对(ui_contrast_probe.gd:20-34)✓;struct 13 根 ✓;legend/node 从未采样 ✓(main.gd 挂接实际 :116-117/:254-255/:264-265,legend toggle handler :1270-1274——需求卡片写 :1245-1248 系行号微漂移,事实成立);迷雾记忆态 board_cell_unit.gd:256-264 ✓(需求卡片 :258-264 微漂移);ui_kit.gd:49-53 TG_* / :81-82 FOG_MEMORY_* ✓;camp 全量重建 open_camp(:225,需求卡片 :224 微漂移)。**漂移均 ≤10 行级、无一处事实翻转,不触发「漂移即停记」。**
|
||||
|
||||
## 2. 测点对逐条对照(15 对 → 38 对,新增 23 对)
|
||||
|
||||
一律 UiKit 常量实时求值 + α 混成参数(红线 2);石皮纹面板(panel_skinned)机检按缺素材回退牌色 PANEL_DATA 计(素材不入 git 冒烟安全惯例——头注「文字禁直压纹理底,垫牌后按牌色计」同口径)。首跑比率 = 机检实测(非手算)。
|
||||
|
||||
### T1 高优先双屏
|
||||
|
||||
| # | 测点对 | 语义位 | 首跑比率 | 判定 |
|
||||
|---|---|---|---|---|
|
||||
| 16 | 结算·判定墨/结算板 | battle_end 判定行 INK_TITLE(battle_end_overlay.gd:64) | ≈12.4:1 | 绿 |
|
||||
| 17 | 结算·GP账行墨/结算板 | 战利品 GP 行名/值 GOLD_DEEP(:86-87) | **2.67:1** | **红——违例 V1** |
|
||||
| 18 | 结算·账行墨/结算板 | 钥石/加成账行 INK_LABEL(:92-100) | ≈13.6:1 | 绿 |
|
||||
| 19 | 商店·行卡名墨/暗底行卡 | legacy 行卡商品名(shop_overlay_view.gd:127,label 工厂 bold 缺省 INK_LABEL) | **1.12:1** | **红——违例 V2** |
|
||||
| 20 | 商店·行卡现价墨/暗底行卡 | 「现价 N 金币」WARM_SOFT(:130) | ≈9.5:1 | 绿 |
|
||||
| 21 | 商店·行卡已购墨/暗底行卡 | 「已购 N 档」WARM_FAINT(:133) | ≈7.1:1 | 绿 |
|
||||
| 22 | 商店·爬价规则墨/暖亮页底 | 货架面爬价规则行 WARM_SOFT(:61) | ≈8.0:1 | 绿 |
|
||||
| 23 | 商店·货架卡名墨/货架板 | bcard 商品名 INK_TITLE(iter16 换 TG 带后未机检位) | ≈12.4:1 | 绿 |
|
||||
| 24 | 商店·货架价签墨/货架板 | bcard 价签「N ◈」GOLD(ui_kit.gd:677) | **1.46:1** | **红——违例 V3** |
|
||||
|
||||
### T2 中优先三屏 + 迷雾
|
||||
|
||||
| # | 测点对 | 语义位 | 首跑比率 | 判定 |
|
||||
|---|---|---|---|---|
|
||||
| 25 | 营地·等级章字/头带深棕 | 锻造行 Lv 章 INK_ON_DEEP(camp_overlay_view.gd:337-339) | ≈7.1:1 | 绿 |
|
||||
| 26 | 营地·柜台头带字/头带深棕 | 三柜台头带标题 WARM(:169) | ≈6.5:1 | 绿 |
|
||||
| 27 | 营地·铭牌副题墨/铭牌板 | 「跨局成长账本…」STONE(:74) | **3.59:1** | **红——违例 V4** |
|
||||
| 28 | 营地·行名墨/行板 | 锻造/工坊行名 INK(:332/:364) | ≈11.8:1 | 绿 |
|
||||
| 29 | 营地·行价格墨/行板 | 「N 钥石」价签/进度行 STONE(:342/:369) | **4.02:1** | **红——违例 V5** |
|
||||
| 30 | 营地·树分组头墨/柜台板 | 「·锻造脉·」等 GOLD_DEEP(:191) | **2.67:1** | **红——违例 V6** |
|
||||
| 31 | 营地·树行名墨/柜台板 | 「名 Lv0/1」INK_LABEL(:197) | ≈13.6:1 | 绿 |
|
||||
| 32 | 营地·工坊状态墨/行板 | 「已解锁」态 GOLD_DEEP(:275-280,最不利现役态) | **3.00:1** | **红——违例 V7** |
|
||||
| 33 | 营地·最近冒险墨/暖亮底 | 底栏最近冒险条带 WARM_SOFT(:143) | ≈8.0:1 | 绿 |
|
||||
| 34 | 设置·警示文/设置板 | 警示文/后果说明 INK_HINT(settings_overlay.gd:47/:95) | ≈5.9:1 | 绿 |
|
||||
| 35 | 设置·选项标签/设置板 | 行标签/状态字 INK_LABEL(:56/:72/:78/:93) | ≈13.6:1 | 绿 |
|
||||
| 36 | 三选一·停点头部墨/暗页底 | 停点头部/回血反馈行 WARM_SOFT(curio_pick_overlay.gd:60) | ≈9.1:1 | 绿 |
|
||||
| 37 | 三选一·卡名墨/货架板 | bcard 选项卡名 INK_TITLE | ≈12.4:1 | 绿 |
|
||||
| 38 | 迷雾·记忆墨/灰罩合成底 | fog_state2 记忆板 α.66 压 floor avg(board_cell_unit.gd:262-264) | ≈6.7:1 | 绿(与 art-bible §389 在册手算 6.7:1 逐位吻合) |
|
||||
|
||||
迷雾对底色取值注(契约 7):合成底 = `FOG_MEMORY_PLATE α0.66 + floor avg #453020×0.34`(混成表达式实时求值,PLATE 常量改值闸即随动);floor avg 系素材侧值无常量形态,取 art-bible §389 迭代 16 T0 在册复算值(合成后 #3E3731),行尾注理由在表。**三关逐关 avg 实查受限披露**:素材 PNG 不入 git(本 worktree 无素材),主区只读约束禁读文件,三关(dungeon/underdark/deep_underdark)逐关 avg 无在册记录——「三关同底则单对」的实查不可得,按在册唯一值单对,最坏情况判据扩对归移交(§6-4)。
|
||||
|
||||
**代拍板白名单行使记录**(授权=需求卡片 T1①②③):
|
||||
- **不收位一:UiKit 工厂内联字面量墨**——bcard 属性描述 Color8(74,58,40)/类型脚注 Color8(110,69,52)/✓章 Color8(58,42,8)/primary_button 字 Color8(58,42,8):无常量形态,硬编码入表违惯例 2(代码换色闸不红=假哨兵);收测前置=ui_kit 立常量(改 ui_kit=越本批触碰面)。披露移交。
|
||||
- **不收位二:TG_* 五族色带**——带为 8px Bayer 抖动装饰带(DitherBand),非文字;本探针语义=文字墨对背景 ≥4.5:1,装饰件适用判据应为 WCAG 1.4.11 非文字 3:1(越面另立段)。TG 换色哨兵由「带色即 UiKit 常量」+静态段承载。披露移交。
|
||||
- **不收位三:page_shell 顶条标题**——顶条板 Color8(38,29,20) 内联无常量(同位一)。
|
||||
- **对数微调**:需求卡片预期带 25-32 对,实际 38 对——超带原因=7 项违例位全量入表(登记存量须哨兵在册红,非文字登记可替代);剔除则呈报清单退化为纸面账。属白名单②「每屏对数微调」授权范围,呈报披露。
|
||||
|
||||
## 3. 🔴 S1 停机点命中:存量对比度违例登记清单(7 项全量,零修)
|
||||
|
||||
> 处置权归用户(登记存量 vs 另立修复批)。以下 file:line 为基点 9160942 现态;建议案只用现役 UiKit 常量(修复批零新色可落)。
|
||||
|
||||
| # | 测点对(机检比率) | 缺陷位 file:line | 现值 | 建议案(供修复批参考,本批未动) |
|
||||
|---|---|---|---|---|
|
||||
| V1 | 结算·GP账行墨/结算板(2.67:1) | battle_end_overlay.gd:86-87 | GOLD_DEEP 压结算板 | 换 GOLD_INK(PANEL_DATA 上 5.2:1 在册档)或账行垫牌 |
|
||||
| V2 | 商店·行卡名墨/暗底行卡(1.12:1) | shop_overlay_view.gd:127 | label 工厂 bold 缺省 INK_LABEL 压 BG_OVERLAY 行卡 | 显式传 WARM_SOFT(同卡现价列 9.5:1 同族);或行卡底换亮板 |
|
||||
| V3 | 商店·货架价签墨/货架板(1.46:1) | ui_kit.gd:677(BCard price_l) | GOLD FS_TITLE 压货架板 | 换 GOLD_INK(5.2:1);BCard=商店/三选一共用工厂,三选一价签恒空串零波及 |
|
||||
| V4 | 营地·铭牌副题墨/铭牌板(3.59:1) | camp_overlay_view.gd:74 | STONE 压 PANEL_DATA 铭牌 | 换 STONE_DEEP(PANEL_DATA 上 5.6:1 在册档) |
|
||||
| V5 | 营地·行价格墨/行板(4.02:1) | camp_overlay_view.gd:342(:369 进度行同组合) | STONE 压 CAMP_ROW_PLATE | 换 STONE_DEEP(ROW_PLATE 上 6.7:1) |
|
||||
| V6 | 营地·树分组头墨/柜台板(2.67:1) | camp_overlay_view.gd:191 | GOLD_DEEP 压 PANEL_DATA 柜台板 | 换 GOLD_INK(5.2:1) |
|
||||
| V7 | 营地·工坊状态墨/行板(3.00:1) | camp_overlay_view.gd:275-280(「已解锁/能力封存中」态) | GOLD_DEEP 压 CAMP_ROW_PLATE | 换 GOLD_INK(ROW_PLATE 上 5.85:1,金系达意保持) |
|
||||
|
||||
形态注记:V2(1.12:1)与 V3(1.46:1)为重度不可读档;V1/V6 同组合(GOLD_DEEP/PANEL_DATA)两屏双发——同一常量消费面,修复一并落。迭代 18 career 先例(深墨跨壳误用 1.3:1 首跑抓出批内返工)证明此档位是真缺陷非机检误报;但本批=回补批非修复批,**零修全呈**。
|
||||
|
||||
## 4. T3 struct 补采样对照(13 根 → 15 根)
|
||||
|
||||
| 采样根 | 驱动路径(全真路径) | 首跑 |
|
||||
|---|---|---|
|
||||
| legend | `board_zone.legend_toggled.emit()` → 组合根 `_on_legend_toggled` → `_open_modal` 开 → 五族断言 → `close()` → closed 信号 → `_on_modal_closed` 关 → 单口失守断言 | **全绿** |
|
||||
| node_overlay | 组合根 `_open_modal`(模态登记册)+ `show_rest(3,15,20)` 合成喂入 → 五族断言 → `press_continue()` → continue_pressed 信号 → `_on_node_continue` → `_close_modal` 关 | **全绿** |
|
||||
|
||||
S2 未命中:两屏首跑零红、**WL 零新增**(WL 常量表现状仍=空表);需求卡片验收闸 2「WL 新增条目均有理由注」空集满足。struct 现有 13 根/五族断言/pause-career 契约族/resume 专项零删减(红线 3,diff 可核)。
|
||||
|
||||
## 5. 闸数字(改前 / 改后)
|
||||
|
||||
| 闸 | 改前(基点 9160942 基线) | 改后(本 worktree 批末) |
|
||||
|---|---|---|
|
||||
| ui_contrast_probe | PASS 15 对全绿 | **FAIL 7 项越带**(V1-V7 存量违例在册;31 对绿含静态段绿)——S1 停机形态 |
|
||||
| ui_struct_probe | PASS 13 根 | **PASS 15 根**(+legend/node 全绿零 WL) |
|
||||
| run_smoke | 840 项 0 失败三闸过 | 840 项 0 失败三闸过(持平) |
|
||||
| run_all | 17 套件全绿 | 17 套件全绿 |
|
||||
| 残留 Godot | 0 | 0(probe_gate 批末闸「本闸残留=0 · 全局=0」) |
|
||||
|
||||
**验收闸 5(默认段总时长增幅 ≤2s)判定——数据与口径披露**:
|
||||
|
||||
- probe_gate 默认段整闸:基线窗口 186.7s → 改后窗口 306.3s。**该增量由并发环境噪声主导,非本批本体检耗**:兄弟卡①(渲染闸)/卡③(CI 预接线)worktree 测试在飞,同窗口交错 A/B 实测同一探针本体耗时波动 5.1s→20.6s(改前 B2 struct 也跑出 15.7s 尖峰)。
|
||||
- 本体同窗口交错 A/B 三轮配对(stash 切换,contrast+struct 各计):配对差中位 contrast **+0.52s** / struct **-1.64s**——符号不定、量级在噪声带内,无系统性增量。
|
||||
- 技术下限:新增 23 对为静态常量求值(毫秒级);struct 两屏采样 ≈15 帧 settle(headless 帧均 ~30ms ≈ 0.5s)。物理净增 ≪2s。
|
||||
- **判定:按本体配对中位口径闸 5 通过;整闸口径受并发干扰无法单窗判定,如实披露归主控合并窗口复测。**
|
||||
|
||||
## 6. 遗留与移交项
|
||||
|
||||
1. **S1 七项违例处置(最高优先)**:全量清单见 §3,处置权归用户——甲=另立修复批(建议案现成,七处全 UiKit 常量换墨可一批落);乙=登记存量维持(注意:违例对已入表,闸红将持续至修复,乙选项实际含义=回拔 7 对测点对留纸面登记,随批披露)。批内闸红形态=登记存量(甲选项的哨兵前置位)。
|
||||
2. **迷雾对三关扩对**:素材入库或授权读素材后,以 tools 脚本算三关逐关 floor avg→最亮者核合成(最坏情况判据契约 7 完整化);现单对按在册值 #453020。
|
||||
3. **字面量墨收测前置**:bcard 描述/脚注/✓章/primary_button 字四处内联 Color8 收测,需先在 ui_kit 立常量(呈现批顺路件,本批越面禁改)。
|
||||
4. **TG_* 装饰带非文字判据**:如需机检化(WCAG 1.4.11 3:1),另立探针段裁决;本批不收理由见 §2 白名单记录。
|
||||
5. settlement_review_overlay 退役处置:已按 T4 在 06 登记落位(生涯节承接条目尾部追加登记行),去向二选一归生涯实装批/用户裁。
|
||||
6. probe_gate 整闸时长复测:建议主控在兄弟卡入库后空窗复测一次默认段(本批本体配对数据 §5 已给,预期增幅 <1s)。
|
||||
|
||||
## 7. 范围红线核验声明
|
||||
|
||||
- 旧屏呈现层代码零 diff:全程只动 `game/smoke/ui_contrast_probe.gd`、`game/smoke/ui_struct_probe.gd` 两探针 + 文档面(出口报告/06 登记行/roadmap 本卡行/active.md 台账)——`git diff --stat` 可核。
|
||||
- probe_gate.sh 零触碰(避让①);兄弟卡①③ worktree 零触碰;主区仅 `git -C` 只读查询。
|
||||
- 存量红零新增:改前基线三闸全绿;改后唯一新增红=本批断言自身暴露的 7 项存量违例(S1 呈报物,非实现回归)。
|
||||
@@ -1,99 +0,0 @@
|
||||
# 迭代 19 卡①「自动化验收补齐批」出口报告——**完工终版**(2026-10-08;前版=S1 停机点版,同日续接完工全量改写)
|
||||
|
||||
- worktree:`D:\code\g-plan2-iter19-verify`(分支 `iter19-verify-20261008`,基点 9160942 = master 顶部含卡⓪已入库;批末顶端见 §5 提交清单)
|
||||
- 台账号:**399**(T0-T2 段)+ **400**(T3-T6 段;记账前以 `git -C D:/code/g-plan2 show master:active.md` 复查撞号——master 台账至 404,399/400 空缺未撞未顺延)
|
||||
- MC/verifier:零跑(本迭代零跑+静态论证口径,全程未触)
|
||||
- **停机点命中两次,均闭环或呈报**:①S1(render_gate 首跑存量 FAIL 三件锚漂移)——用户裁甲清障,本批续接入库转绿;②S2(golden L2_underdark 越限 2.53%>2%)——停机诊断定位根因为探针抓帧时序缺陷(非视觉回归非平台差异),根因修复+基线换代后三连跑 0.00% 全绿,**容差 2%/16 用户冻结口径未动**(全案见 §2)
|
||||
|
||||
---
|
||||
|
||||
## 1. S1 停机点全案(前版立案,本批闭环)
|
||||
|
||||
首跑判定存量红 3 条,全部为 shot_checker B 类对比度断言取样锚漂移(呈现层无缺陷)。**用户 2026-10-08 裁甲清障,三件已全部入库(提交 a623ec3)**:
|
||||
|
||||
| # | 锚漂移 | 裁后落法 | 转绿实证 |
|
||||
|---|---|---|---|
|
||||
| 1 | 菜单·副标题「改造批」失配 | 锚改认现行文案「扫雷的因 · 逐行兑现的果」(ui_assembler.gd:132)的逐字子串「扫雷的因」——全工程唯一命中(contains 语义) | WCAG=8.44 纹理幅度=3.9 C-OK |
|
||||
| 2 | 菜单·帮助文「玩法:」载体退役 | 断言腿整个退役:shot_probe meta 键+shot_checker 断言段+头注断言清单三处同撤不重锚(06 在册口径=同撤) | 腿不存在,checker 全 PASS |
|
||||
| 3 | 战斗·明细带提示「结算明细」失配 | 锚改认现行「上轮摘要(回看归「生涯」)」(battle_log_view.gd:47)子串「上轮摘要」——唯一命中(摘要行文案系「上轮: …」不含「摘要」零碰撞;_log RichTextLabel 不在 Label 匹配面) | WCAG=11.94 纹理幅度=8.6 C-OK |
|
||||
|
||||
清障后 render_gate 首段全绿:A 类骨架七屏全过(最低 career std=21.8 colors=794)、C 类明度三档带 205>87>55、B/D 类 hero 面板 WCAG=6.14 纹理 0.0。
|
||||
|
||||
## 2. S2 停机点全案(本批新增——golden 越限:诊断→根因→修复→换代)
|
||||
|
||||
**命中**:S1 清障后 render_gate 首跑,golden L2_underdark changed=**2.53%**>2% 容差(基线入库时首对比 0.00%)。
|
||||
|
||||
**诊断**(停机呈报前取证):波动性越限,非确定性回归——L2 四跑 0.00/2.53/2.29/1.17%、L3 三跑 0.89/1.78/1.59%、L1 恒 0.00%;差异像素聚集在棋盘单一紧凑区块(x159-348/y159-444),目验=战争迷雾揭示程度差异。
|
||||
|
||||
**根因**:board_view.rebuild 有入场动画——全板淡入 motion(0.2)+R0 涟漪逐格延迟显形(motion(0.04×离板心距离)+motion(0.12),最远格 ≈0.56s);board_shot_probe 原制只等 6 个 process_frame(热机后 ≈0.1s)=**恒捕在涟漪中途态**,逐跑帧时序抖动使揭示 alpha 漂移。基线生成跑恰逢冷机慢帧捕到完结态,故入库时全过——基线锚在「动画完结态」这个事实上正确、但原探针不可复现的相位上。
|
||||
|
||||
**修复**(提交 3317076):抓帧前改时间制 `create_timer(1.2)s`(2×余量)+process_frame+frame_post_draw——锚定动画完结态。探针侧零运行时 diff(契约红线①内)。
|
||||
|
||||
**换代与稳定化**:golden_baseline_refresh.sh 换代三张基线(S3 素材齐盘守卫/Q2 临时区纪律全随)后**三连跑稳定性实证全 0.00%/0.00%/0.00%**,render_gate 复跑全绿(EXIT=0)。**容差 2%/16 未动**——S2 的用户裁决域是容差值,本次走根因修复未触;若未来跨平台/字体渲染推高 changed,仍按 S2 呈报定值。
|
||||
|
||||
## 3. 逐件产物(file 级——前版 T0-T2 + 本批 T3-T6)
|
||||
|
||||
| 任务卡 | 产物 | 状态 |
|
||||
|---|---|---|
|
||||
| T0 | 基线复读记档+归属核对+环境修正两课(§5 前版) | ✅ |
|
||||
| T1 | `tools/render_gate.sh`+shot_probe 扩屏七屏+board_shot_probe 取证三件套+两辅助件 | ✅(前版) |
|
||||
| T2 | `game/tests/golden/` 三张基线+golden_board_crop.py+golden_baseline_refresh.sh+golden_compare 接线 | ✅(前版;**本批 S2 换代**,触发原因提交说明强制记载) |
|
||||
| S1 | 06-待办清单条目级登记→用户裁甲→三件清障已入库(shot_probe.gd+shot_checker.py,提交 a623ec3) | ✅ 闭环 |
|
||||
| S2 | board_shot_probe 时制等待+golden 三张换代(提交 3317076) | ✅ 闭环 |
|
||||
| T3 | `tools/probe_gate.sh` --full 段=ui_probe/ui_tune_probe/t17_defer_probe/fx_probe 四探针收编(timeout 120=实测 17.4/49.6/63.0/21.9s 的 2-7×余量;PASS+退出码+残留三闸随骨架);头注「shot_probe 禁入本闸……归真人目检」纪律句删除改写(2026-10-07 用户授权);轻闸默认段零删减零改动(提交 b523f7d) | ✅ |
|
||||
| T3 | `game/smoke/ui_layout_probe.gd` 零断言诊断件补最小布局断言转断言件:1280/1920 两档(基座 1280x800/顶层三区互斥不越界/board_view 含于 D 区/1920 档钉迭代 9 分辨率案甲契约——stretch 下逻辑视口与四区矩形恒定);首跑 PASS 退出码 0;闸归属归卡③裁点②候裁本批不入闸(同提交) | ✅ |
|
||||
| T3/T4 | config_fatal_probe 退役(.gd+.uid——与 run_all config_db_fatal_oob_test 断言面重复,2026-10-02 呈报退役还账)+数据配置.md:205 指路句连带改指+v0.4 版本史行不动(历史记载);damage_probe 头注「诊断工具·非验收件」出一切闸;skill_rhythm_probe/board_stat_probe 头注「分析工具·非验收件」;全仓引用清查零残留(提交 b3404e8) | ✅ |
|
||||
| T4 | tests/README.md 订正:套件数十五→**18**(第 18 套=卡④ `unit/core/fog_lantern_wiring_test` 注名;本分支基点早于卡④合并实测 17 套全绿,合并后 18)+断言数「752+」改**双口径**(运行时=run_smoke 打印〔分支基点 840 项 0 失败;master 合并卡②④后 846〕/静态=smoke 源码 `check(` 764 处——两口径不同各自浮动禁写死)+「十场景探针」去数化;**integration 空壳目录删除**(Q8),章程句并入 tests/README(提交 fcb91ce+57a7919 前笔) | ✅ |
|
||||
| T5 | CLAUDE.md 分级周期口径**重闸定义正式扩容**:自此批末重闸=轻闸+--click+--full+render_gate+run_all+doc 三闸/熵增闸;真人目检仍归用户;MC 仍按触发细则。落点=硬性红线·分级周期口径句(重闸定义在 CLAUDE.md 唯一在册处=需求卡片所称 loop §5)(提交 57a7919) | ✅ |
|
||||
| T6 | 07-体验验证清单 ⑮ **机器补跑半核销注记**(五闸归宿已入库实测绿;真人目检半仍归用户不销号);熵增闸图像白名单收编 game/tests/golden/(T2 落库漏改致红——同批修订 commit 留痕);批末重闸全跑(§4);出口报告本篇;台账 400 | ✅ |
|
||||
| T6 | roadmap 迭代 19 行换代:**未动,归主控**——本分支 roadmap 落后 master 多个合并(卡②④已改该行),合并时行冲突重放归主控(goal 既有分工) | ⏭ 移交 |
|
||||
|
||||
## 4. 闸数字(改前/改后全列)
|
||||
|
||||
| 闸 | T0 基线(基点 9160942) | 批末现状(完工态) |
|
||||
|---|---|---|
|
||||
| 冒烟 run_smoke | 840 项 0 失败三闸过 | **840 项 0 失败三闸过 EXIT=0**(批末实跑;master 合并卡②④后=846,README 双口径已注) |
|
||||
| 单元 run_all | 17 套件全绿 | **17 套件全绿 EXIT=0**(批末实跑;卡④第 18 套合并后到位) |
|
||||
| probe_gate 默认段 | 全绿 | **全绿 EXIT=0**(默认段零删减实证) |
|
||||
| probe_gate --click | 全绿 | **全绿**(click PASS 问题=0) |
|
||||
| probe_gate --full | —(不存在) | **新增全绿**:ui_probe/ui_tune_probe/t17_defer_probe/fx_probe 四 PASS 残留 0 |
|
||||
| render_gate | —(S1 版首跑 shot 段红) | **全绿 EXIT=0**:shot_checker A-D 全 PASS(新锚 WCAG 8.44/11.94)+fx/board 取证绿+golden 0.00%×3+残留 0 |
|
||||
| ui_layout_probe(新断言) | 零断言 | **PASS 退出码 0**(1280/1920 两档首跑) |
|
||||
| doc_link_audit / doc_term_audit | 未跑 | **绿 EXIT=0**(输出内有存量挂账条目:奇物.md:130 两死链/06:419 archive 死链/数据配置.md:223 历史行 backtick 指已退役探针——审计口径=报告不 FAIL) |
|
||||
| gdd_lint | 未跑(基点即红,本批归因:06/07 两文件 R3/R7 违例**基点既有**——base 已有 382 字括号/12 处删除线,非本批引入) | **EXIT=1(存量红)**——本批零新增违例;存量处置呈报不代修(§6) |
|
||||
| 熵增闸 repo_structure_audit | 基点即红(golden 三张 T2 落库漏改白名单+design/diagrams 基点既有) | golden 件**已修**(白名单收编);**design/diagrams 越界=存量红 EXIT=1**——脚本自文「新分类先过用户拍板」,呈报不代裁(§6) |
|
||||
| 熵增/doc 三闸/MC | 未跑 | 如上;MC=迭代零跑口径 |
|
||||
|
||||
## 5. 提交清单(本批续接段;前版五笔 8246790/3249697/87f749d/fe124a4/f397b80 在先)
|
||||
|
||||
| hash | message 摘要 |
|
||||
|---|---|
|
||||
| a623ec3 | 卡①锚清障(续)——S1 裁甲三件已入库+render_gate 清障后首跑 shot_checker 全 PASS 实证 |
|
||||
| 3317076 | 卡①S2 观察项根因修复——board_shot_probe 抓帧时序+golden 三张基线换代(触发原因强制记载) |
|
||||
| b523f7d | 卡①T3——probe_gate --full 四探针收编+头注改写+ui_layout_probe 1280/1920 两档断言 |
|
||||
| b3404e8 | 卡①T3/T4——config_fatal_probe 退役+数据配置.md:205 改指+三件头注标注 |
|
||||
| fcb91ce | 卡①T4账务——tests/README 18 套双口径+integration 删壳章程并入 |
|
||||
| 57a7919 | 卡①T5——CLAUDE.md 分级周期口径重闸定义扩容 |
|
||||
| (台账笔) | 卡①T6——07⑮ 机器补跑半核销注记 |
|
||||
| (本笔) | 卡①T6——熵增闸白名单收编 golden+README 840 订正+出口报告完工终版+台账 400 |
|
||||
|
||||
(过程披露:中途一次 reset 分批重整——git rm 暂存先行混入 T3 提交,soft reset 重新分五批干净已入库;reflog 在案,零改动丢失。)
|
||||
|
||||
## 6. 未决移交项
|
||||
|
||||
1. **design/diagrams 越界(熵增闸存量红,基点 00712d5 既有)**——脚本自文「新分类先过用户拍板再改两处白名单」。可修案:甲=用户拍板 `design/diagrams` 入 DESIGN_SUBDIRS 白名单(archify 总图批产物归位);乙=迁出 design/ 归位合法区。**合并前须用户裁**,本批不代裁。
|
||||
2. **gdd_lint 存量红两文件(06-待办清单/07-体验验证清单,基点既有)**——R3 删除线残留/R7 长括号注记。本批零新增。处置建议:随下批文档批清理(06 条目历史形态与 R3 规则的口径取舍建议用户裁:历史登记条目的删除线是否豁免)。
|
||||
3. **数据配置.md:223(v0.4 版本史行)backtick 指已退役探针**——doc_link_audit 报告项(不 FAIL)。历史行不改写原则下留观;如需清零可下批把该行 backtick 去格式化(prose 化)+补 v0.5 退役行。
|
||||
4. **主区合并+合并复跑**归主控:本分支 13 笔提交待并;合并时 roadmap 迭代 19 行冲突重放归主控(§3 T6 行);合并复跑含 render_gate(需求卡片 T6 口径)。
|
||||
5. **卡③裁点②(ui_layout 入 CI/闸归属)**:断言面已就绪(PASS/FAIL/退出码形态),候主控裁。
|
||||
6. 1920 档:render_gate 单档 1280(Q4)+ui_layout 两档断言钉案甲构图恒等,注记在两处头注。
|
||||
7. 商店房截图纳屏:留 B 批(考证结论在 shot_probe 头注)。
|
||||
|
||||
## 7. 契约自检(完工态)
|
||||
|
||||
- 运行时代码零 diff:本批续接段改动面=game/smoke/ 探针四件+tools/ 三件+game/tests/(golden 基线+README+integration 删壳)+文档四件——红线内 ✅(`git diff 9160942..HEAD --stat` 复核无 core/presentation/data 触碰;board_view 动画是既有呈现行为,本批只改探针等待时序)
|
||||
- 轻闸默认段零删减:probe_gate 默认段三探针+残留闸逐字未动,--full 只增不改;--click 语义原样 ✅(FORM1/FORM2 两形态对照实证)
|
||||
- golden 基线边界:只入 game/tests/golden/、素材齐盘态、换代触发原因提交说明强制记载 ✅
|
||||
- 过程产物即弃:全部截图/诊断拼图落 mktemp 与 /tmp,用后即弃,git 状态零 PNG 残留 ✅
|
||||
- 在飞避让:主区零触碰(台账/roadmap 只读查撞)✅
|
||||
- 改纪律落文:probe_gate 头注与 CLAUDE.md 同批改写完成,新旧两口径并存态已消除 ✅
|
||||
@@ -1,77 +0,0 @@
|
||||
# 迭代 20 实现报告——专长实装批(奇物)
|
||||
|
||||
> 2026-10-11 goal 会话(iter 技能 U0 开工)——需求卡片 v1.1 T0-T10 单迭代全量交付;A/B/C 三段推进。
|
||||
> 定义面:design/research/需求卡片-专长实装批-2026-10-11.md(v1.1,Q1-Q3 已裁零待裁)。
|
||||
|
||||
## 一、各卡状态
|
||||
|
||||
| 卡 | 内容 | 状态 | 提交 |
|
||||
|---|---|---|---|
|
||||
| T0 | 开工三查+状态账核实+magic_vs_magic 交叉核对+解耦三案选型 | ✅ | (结论落本报告 §三/§四;开工记录 active.md 462) |
|
||||
| T1 | 效果引擎词表扩签+发射点施加面 | ✅ | a57489e |
|
||||
| T2 | 池结构案D(四级档位/令牌+cap 解耦案②/曝光槽 2+1) | ✅ | 0640b0c |
|
||||
| T3 | 专长数据行换代(feats.tres 29 行)+流派框架退役 | ✅ | 54ab330 |
|
||||
| T4 | 凭证件五件+留任二件+F-1 刷新写错账修复 | ✅ | 1387aed |
|
||||
| T5 | Boss 兑付面换代(按档配比加权抽取+正名) | ✅ | 3333187 |
|
||||
| T6 | 件级跨事件状态账(adventure 域计数器) | ✅ | a57489e(承载)/5ebd05d(V4 断言) |
|
||||
| T7 | 断点存档扩容 | ✅ | 1387aed(扩列)/3333187(V16 断言) |
|
||||
| T8 | MC 对账适配+基线重投 | ✅ | 3333187 |
|
||||
| T9 | 迁出收尾(treasure_items 两行+词面+rewrite_board 除名) | ✅ | 3333187/710d8e0 |
|
||||
| T10 | 空配置验收闸+文档同步闸 | ✅ | 3333187/8fd9909 |
|
||||
|
||||
## 二、验收清单核销(V1-V23)
|
||||
|
||||
- **V1 词表封闭**:effect_words_t1_test 17 checks(新词在册/出域 on-fact-op-kind 四路被拒/adventure 计数器 export-seed 往返/mod_eq 预评估口径/V4 计数三态)。运行期 dispatch fail-fast=debug assert(release 剥离系引擎语义,自动化覆盖走加载期 validate 致命通道——effect_engine.gd dispatch 首行)。
|
||||
- **V2 全量替换**:29 行落表(feats validate 零违例)、旧 27 件 row_by_id 空、牌库 104+29=133 四级断言、全仓 grep 零残留(4 处 source_class 中性名换代 710d8e0;对照性注释留痕豁免)。
|
||||
- **V3 逐件一致**:附表 A 29 件三列断言入 smoke 特性段(命中面 dispatch 直测+counter 落账施加面同构 helper;正常/边界/反例三列逐件在案)。
|
||||
- **V4 状态账**:跨事件累积/counter_spend 消耗/reset_at 声明制两态(effect_words_t1_test)。
|
||||
- **V5 四级配额锚**:TIER_QUOTAS 70/25/9/0=104 硬断言+smoke 每档锚+deck_total(V14 三档锚摘除换代)。
|
||||
- **V6 令牌三态 / V7 曝光槽 / V8 解耦**:pool_case_d_test 17 checks(拿了消耗/没拿回池/只刷出不计;2+1 回退/凭证不进子池/池空兜底;cap 独立/提前退役只剔候选视图)。
|
||||
- **V9 凭证五件路由 / V10 留任+AP 属性轴**:feat_vouchers_test 23 checks(逐件路由+F-1 反例钉面+电池禁自动替选+留任路由零变化+bonus.ap 落点)。
|
||||
- **V11 Boss 兑付**:通关渠道全 relic(白名单断言在案)+回血载荷在役+末关不发(既有 adventure smoke)+信号注释换代「专长三选一」。
|
||||
- **V12 档配比加权**:pool_case_d V12 频带断言(300 停点×3 候选,权重 100/45/15/5×件数 12/9/8/0→期望 69/26/4/0,带 ±15pp)。
|
||||
- **V13 迁出零残留**:treasure_items 无两行+同调目录收窄断言+全仓 grep 收口(中性名换代)。
|
||||
- **V14 旧验证约束同生死**:smoke 三档锚/数值对/池构成/上限带/FeatsEngine 流派段/深挖钻头回归段/七流派订阅面全段摘除或换代(主语换代新 29 件);battle_orchestrator FeatsEngine 求值注入摘除。
|
||||
- **V15 MC 新基线**:normal/off 100 局 seed 71000 档=通关 0%、止步 {1:93, 2:7}(master 对照 0%、{1:90, 2:10}——零配基线本相,分布差可归因曝光槽候选构成);同种子 30 局重放逐位复现 ✓。
|
||||
- **V16 断点扩容**:adventure_counters/refresh_stock/battery_pending 入快照+续玩回填逐项一致(feat_vouchers_test)。
|
||||
- **V17 空配置闸**:池空 skip_empty_curio 消化+非空拒绝反例+商店空货架合法态(pool_case_d)。
|
||||
- **V18 层级纪律**:牌库 kind 全集=CURIO_KINDS+relic 断言;同调目录零 feats 行(treasure_items 两行迁出收窄)。
|
||||
- **V19 棋盘事实不可变**:29 行零棋盘改写类订阅断言(rewrite_board 除名);棋盘生成不看持有集(生成面零接触)。
|
||||
- **V20 排雷零特判(人工核对)**:静态 grep 排雷侧(minesweeper_rules/board 生成)零按件名/feat_id 分支;fx_reveal=通用效果通道(安全格校验+fx_reveal 标签,非件特判);效果接入全部经订阅面。**待用户复核**。
|
||||
- **V21 命名纪律(人工核对)**:机检半=29 行 display_name/desc 零「雷/插旗」断言在案;**人工过目半待用户**(07 目检项)。
|
||||
- **V22 数值纪律(人工核对)**:机检半=陷阱爆发 mult>1/血蜜回复<典型陷阱伤/石肤 cap 3 断言在案;全表 provisional 占位值对照奇物.md 结构锚逐项过目**待用户**。
|
||||
- **V23 配额重裁纪律(人工核对)**:四级锚数字与裁决记录一致性**待用户**(见 §三代拍板追认单 3)。
|
||||
|
||||
## 三、代拍板追认单(白名单授权内,逐项待用户追认)
|
||||
|
||||
1. **件数口径 29 行**(卡文 §10.4 推荐案执行):基础 27+迁入 2=feats.tres 29 行;V2/V3 断言按落表实数。
|
||||
2. **四级配额 70/25/9/0=104**:T2 直映射 98(零偏离已裁三档数字)+T4 凭证四件入稀有档投放 6(rap 2/attune_battery 1/time_sand 2/perfect_insurance 1,provisional 归调参批)。偏离 GDD 占位=呈报记录即本条(GDD 无凭证投放占位数)。
|
||||
3. **传说档张数 0**:头奖位留空(奇物.md「传说=惊喜位」形态内取空集——零内容件可投)。
|
||||
4. **词表落法映射**:FACTS 实扩 9 项(hp_ratio 百分比 int 口径/pct 等——奇物.md 扩签登记 10 候选中「本轮挖格花费/本轮开格数/本轮踩雷数计数器/类型集合计数器」落 counter+value_event 不占 fact 词位);新事件 2(dig_stop/battle_won——battle_won 系战地包扎声明所需,扩签登记未列,落法映射补位);新效果类型 7+算子 mod_eq(mod_eq value=模数 ref=余数——双管镐每第 2 次预评估口径)。
|
||||
5. **「积满触发」预评估落法**:dispatch when 于命中前读计数器现值——行 when 按 N-1 落值(地质学家 eq 3/跳格 eq 2/封印匠 mod_eq ref 2/保险丝 eq 1);单元测试钉住。
|
||||
6. **疼痛记忆消费时机放宽**:设计「下场战斗攻击附加层值」——实现为「下一次攻击」(同战内当轮可消费;跨战持久经 adventure 域账本)。同战内不可用判定无法行内表达,放宽口径随本条呈报;若用户否,补 battle-gate 面(效果引擎±1 键)。
|
||||
7. **时沙落法**:「下轮 AP +2」落下一战首轮 AP 队列(hero_ap_bonus 同通道);若拾取时战斗在途(奖励节点停点)则下一战首轮兑付。
|
||||
8. **弃图兑换落法**:「折为下轮伤害」落停手后首次攻击全额附加(用后清零)——同战停手→战斗段序即「下轮」前移;多攻击不拆分。
|
||||
9. **血税落法**:bonus_delta 战末汇入冒险加算区(本战内 max_hp 不即时变,下一战生效——与效果引擎重建时机契约一致)。
|
||||
10. **潜伏缺陷修正两件**(T2/T4 随批):①效果引擎 has 算子 null 安全(敌技伤害载荷无 terrain_kind 事实时判「不在场」而非 String(null) 抛错——候选流变化后 devour 件首次被持有暴露);②刷新券旧兑付早退零摘牌(令牌永不消耗)——选中即消尽修正。
|
||||
|
||||
## 四、GDD 反哺点清单(设计权威文档不随批,逐点待用户裁决后另批落文)
|
||||
|
||||
1. **奇物.md**:①「每第 N 次/积满触发」的 when 预评估口径(N-1 落值)宜入设计原则注记;②疼痛记忆消费时机实现放宽(§三.6)如追认宜回写件表;③血税/时沙/弃图兑换三件落法映射(§三.7-9)如追认宜回写件表「账」列;④rewrite_board 效果类型除名(净化工兵退役连带)——扩签登记「暂缓:清图事件」条相应更新。
|
||||
2. **冒险结构.md**:「关卡大奖励」节陈述(通关两层兑付→回血+专长三选一)——实现已为该形态且叠加按档配比加权抽取(奇物.md v3.1 语义约束兑付面),宜对齐表述。
|
||||
3. **难度曲线与Boss.md**:配额投放读数(四级 104 构成/曝光槽加速高档获取——止步分布 90/10→93/7 位移归因记录)宜随数值批复核。
|
||||
4. **02-系统清单.md**:奇物行状态(专长 29 件已实装/流派机制退役)宜换代。
|
||||
5. **奇物呈现**〔2026-10-12 勘误——原表述失真〕:原写「流派聚合行退役→逐件行降级态在役」,实为**逐件行降级态未实装**(迭代 20 对呈现文件零触碰,git 取证末次触碰 10-05~07);实态=僵尸呈现——换代后 29 行无 archetype 字段,聚合行空键兜底实显「流派 ×N · 档一」、卡面实显「件名 · 流派」(取证 file:line 见 06 奇物呈现条 2026-10-12 换代)。呈现改法归 06 在册奇物呈现条(剩余裁决面=呈现改法),修复另批。
|
||||
|
||||
## 五、实机目检总清单(人闸——07-体验验证清单同面登记)
|
||||
|
||||
1. Boss 专长三选一呈现(候选全专长/按档配比观感/回血读数)。
|
||||
2. 曝光槽三卡观感(2+1/子池回退/新凭证四件稀有档投放)。
|
||||
3. 卡面文案与稀有度档位显示(29 件 desc 直读/四级档位渲染)。
|
||||
4. 同调电池选件面(choose_battery_target 呈现窗是否缺位——缺位登记缺陷归反哺)。
|
||||
5. HUD 特性段逐件行〔2026-10-12 呈现修复批换代——僵尸呈现已修:C 区/关卡页=逐件行「件名 ×N」、卡面摘族名;本项验修复后可读性〕。
|
||||
|
||||
## 六、批末闸读数(证据只留最新轮)
|
||||
|
||||
- 冒烟 **864/0**(基线 846+换代净增 18);run_all **21 套件全绿**(新增 effect_words_t1/pool_case_d/feat_vouchers 三套);probe_gate --click/--full 全绿残留 0;render_gate 全绿(golden 3 屏 0.00%);doc 三闸对基线零新增(worktree 2 死链均系 worktree 无未跟踪文件伪影:filter-repo 计划书系 .zcode 未跟踪件/config_fatal_probe 两树共有);熵增闸 PASS;MC 同种子重放逐位复现 ✓。
|
||||
- 新基线读数:normal/off 100 局 seed0=71000——通关率 0%(master 对照同 0%)、止步分布 {1:93, 2:7};form 画像=五事件族 14 件(adventure_monte_carlo.gd 换代)。
|
||||
@@ -1,89 +0,0 @@
|
||||
# 迭代 21 实现报告——天赋树实装批(2026-10-12)
|
||||
|
||||
> 需求卡片:design/research/需求卡片-天赋树实装批-2026-10-11.md(**v1.7**)|设计权威:天赋树.md v0.8|执行形态:/goal + iter 技能 U0 开工令,worktree `g-plan2-iter21-tree`(分支 iter21-tree)单会话交付
|
||||
> 本报告=迭代收口六步之一:各卡状态+代拍板追认单+GDD 反哺点节+实机目检总清单。反哺点经用户逐点裁决后另批落文,不随批直改 GDD。
|
||||
|
||||
## 一、任务卡状态总表
|
||||
|
||||
| 任务卡 | 状态 | 交付要点 |
|
||||
|---|---|---|
|
||||
| T0 前置实查(0.25d) | ✅ | ①标错机制存在性=已预查结案(免查,实态复核一致:`_judge_flag` 去重闸 :1119-1121/保险 :1124-1127/归因 :1131,结算=每轮末 `_on_round_end`→`_maybe_settle`);②聚乘算位=`_roll_gp_drop()` 返回表达式内(battle_orchestrator.gd:1461);③锋挂点=mine_hit 现成零改、守挂点=去重闸后;④锻造工坊 v0.5「裁决结果清单+工作间内容清单」读取完成——预留 0 加值位与 4a/6 两裁零冲突、钥匙 free 无前置一致;⑤基线复读在案(见 §四)。⑥boss_kill_count 消费面=已预查结案(免查) |
|
||||
| T1 schema 换代(0.75-1.0d) | ✅ | FORK_GROUPS 4→3(fg_mastery 退役);RULE_KEYS 2→6(+sense_sharp/sense_guard/economy_hoard/economy_spend);fork 单行双态(effects_a/effects_b+name_a/name_b、validate 每组恰一节点+双侧效果键⊆RULE_KEYS+主 effects 须空);row 字段退役(KEY_WHITELIST 摘除、`level_gate(level)` 平移);requires 只留点亮前置(**R1 裁撤案执行**);meta_tree.tres 33→12 行重排;easter_ley effects 摘 atk/armor_class(契约 9) |
|
||||
| T2 购买与彩蛋面(0.5d) | ✅ | tree_can_buy:easter 拒购(手动购亮=红)+行门槛换轴(spine stat 节点第 N 级需总投入 ≥4×(N−1));tree_buy_fork=购即解锁默认 A 态;tree_toggle_fork=零币切态(同态/未解锁拒绝);tree_rule_keys 按激活态 effects_a/b 投影;_check_easter_egg 特化判定(两线 cap4+socket1/2/3 全解锁);营地树行板 12 行+Fork 双态钮 |
|
||||
| T3 六键效果接线(1.5d) | ✅ | EVENTS 18→19(+flag_missed)、FACTS +battle_index(**契约 5 L2 扩签两处,见 §三追认单**);rebuild 六键合成订阅(posture 双键=battle_index==1&&round_index==1 窗;sense 两组=counter<2 闸+counter_add 记账双行,domain=adventure);level_runner `battle_index` 注入(visited 内 battle 型计数,编号空间解耦);_judge_flag 去重闸后 flag_missed 发射+grant_ap queue 施加;聚=`_roll_gp_drop` 入账前 ×1.5(掷定+关卡加成两项,escrow 不乘);散=`_spend_discounted` ×80%(current_price+pool_price 双计价点,maxi(1,·) 下限;shop_refresh_cost/三选一付费刷新不折);限次按关重置=`_start_current_level`→`_reset_tree_limited_counters()`(恰两键清零) |
|
||||
| T4 注入换代与退役(1.0d) | ✅ | hero_override=树淬炼 flat(命中不注入=契约 6,override 无 hit 字段)+`FORGE_ROUTE_BONUS` 预留 0(锻造工坊批填充位);Attunement.slots 判定源切树点亮数(att_socket1..3);tree_buy("ks_refresh") 同账路由 buy_attune_refresh(价格/cap 单一事实源=Y 行表值;树投影 level 主语随账本);buy_forge/forge_flat/forge_level/forge_price 删除 |
|
||||
| T5 旧档废弃与旧逻辑删除(0.5d) | ✅ | save_manager:`TREE_STRUCT_VERSION=2` 结构版本标记+_normalize 白名单重建(退役键 forge_levels/migration_note 不流入不回写)+换代前结构树域废弃重置(禁迁移禁折算);_migrate_v4_v5 映射体注释退役(体=缺键补齐);migrate_tree 删除;生涯页三投影整行删(career_overlay 三行+main._career_data 三键);暂停层锻造段连带删(数据源死亡);attunement_growth.tres+attunement_growth_table.gd 删除(treasure_item_table 计数键词表就地内联 UNLOCK_COUNTER_KEYS);config_db 四处+meta_forge_row 删除;meta.tres forge_products 行族删除;meta_table.gd 行族四轴(FORGE_ATTRS 沿用作 conversion 轴名) |
|
||||
| T6 营地统一 UI 重排(1.5d) | ✅ | 四柜台并排+横向滚动(树淬炼=树脊柱界面形态主界面;锻造工坊柜台=钥匙门+点亮展开零交互占位面板;秘宝匣柜台=钥匙门+工坊六行/同调装配段/Y 升级行整体迁入;图鉴常开独立位);refresh_camp 接管树行板重建(购买后按钮禁用态同步);`_tree_buy_btns`/`_tree_fork_btns` 登记面(探针消费);占位面板零副作用(纯 Label、零按钮、零写档) |
|
||||
| T7 文档同步闸+回归收口(1.0d) | ✅ | §5 机械面七处更新完毕(见 §二);批末重闸+MC 配对锚见 §四;本报告+06/roadmap/active 记账 |
|
||||
|
||||
## 二、关联文档同步面(§5 机械面清单)执行记录
|
||||
|
||||
| 文档 | 更新内容 | 状态 |
|
||||
|---|---|---|
|
||||
| design/dev/architecture/architecture.md | meta_progression 行(12 节点 v0.8/槽位收编);新增 effect_engine 行(词表扩签+六键合成订阅);battle_orchestrator 行(效果引擎宿主+树规则挂点);D1 HUD 行(营地四柜台并排) | ✅ |
|
||||
| design/registry/entities.yaml | 新增 `meta_tree` 实体(结构/fork_groups/posture_window/rule_keys/sense_limit/economy_scope/workshop_keys/spine_gate/easter/attunement_slots 十attr) | ✅ |
|
||||
| roadmap.md | 迭代 21 行→✅ 已入库;进度头条目换代 | ✅ |
|
||||
| active.md | 469 开工+470 收口两条状态记录+快照换代 | ✅ |
|
||||
| design/gdd/06-待办清单.md | 天赋树实装批条→已入库+欠账三条登记 | ✅ |
|
||||
| game/README.md | 追加 2026-10-12 迭代 21 批次记录 | ✅ |
|
||||
| design/gdd/systems/跨局循环/生涯.md | 「三柜台解锁完成度概览」行整行删(⑧裁决)+图鉴柜台句随四柜台换代 | ✅ |
|
||||
| design/gdd/07-体验验证清单.md | ⑲两观测项(属性锻造已购合计/天赋树已购概览)摘除,六类九项→两类六项 | ✅ |
|
||||
| design/gdd/systems/跨局循环/秘宝.md | 同调位判定源句两处(:10/:161)——T5 用户明令豁免随批扫改(attunement_growth.tres 退役注记) | ✅ |
|
||||
| design/gdd/systems/表现与支撑/存档序列化.md | **不更新**(契约 4:开发阶段无视文档层条款,禁增设豁免/例外——⑦裁决) | ✅(未动) |
|
||||
|
||||
## 三、代拍板追认单(§9 白名单内执行,逐条列明待用户追认)
|
||||
|
||||
| # | 事项 | 代拍板内容 | 白名单依据 |
|
||||
|---|---|---|---|
|
||||
| 1 | **R1 裁撤案执行** | 「等级阈值前置」形态未实现(schema 无 requires_level 字段,requires 只认点亮)——按卡片 §10「默认按裁撤案排程」执行。**〔2026-10-13 追认结果:推翻——用户裁「b) 推翻,补机制位小批」;requires_level 机制位已随批重立(schema 字段+校验+判定+呈现+单测八断言,现役零配置空转),见天赋树.md v0.10〕** | 卡片既定默认案( roadmap 行内「不阻开工门」明示) |
|
||||
| 2 | 12 行节点 id | sp_hp/sp_hit(旧层行 id 退役)、forge_workshop(新钥匙节点)、easter_ley/ks_workshop/ks_refresh/att_socket1..3/fork_posture/fork_sense/fork_economy(沿用现役命名法) | 白名单「节点 id 命名」 |
|
||||
| 3 | Fork 行双效果键承载 | `effects_a`/`effects_b` 双 Dictionary 字段+`name_a`/`name_b` 双态呈现名(KEY_WHITELIST 扩四键;fork 行主 effects 强制空) | 白名单「Fork 行双效果键的字段形态」 |
|
||||
| 4 | 限次 counter_id 与限值 | `tree_sense_sharp_used`/`tree_sense_guard_used`;每关 2 次(锋/守同值);散折率 80%(floor、下限 1);聚乘数 1.5×(round)——**数值全 provisional 归 M4** | 白名单「规则键常量名」+契约 7 |
|
||||
| 5 | 效果引擎词表扩签(L2) | EVENTS +`flag_missed`(18→19,命名避让 source_class 在册名 flag_miss);FACTS +`battle_index`(18→19);**效果类型/OPS/DO_KEYS 零扩**(六键全走在册 30 类型+既有闸/记账组合) | 契约 5 L2 记录继续——卡片 T3 预知两处 |
|
||||
| 6 | battle_index 载体 | level_runner `_battle_index()`=visited 内 battle 型节点计数(_enter_node 先追加后启动→含当前=1 基序);enc 携带、编排 `_fx_fact` 回读——避开 node_depth/数组下标编号空间混编碰撞 | 卡片 T3 选型注记(等效参数位陷阱规避) |
|
||||
| 7 | 旧档废弃检测选型 | 结构版本标记(meta.tree_struct=2,缺失或更低=树域废弃重置)而非节点 id 残留检测——save_manager 零玩法依赖约束下不内联 id 白名单 | 白名单「旧档废弃检测的实现选型」 |
|
||||
| 8 | _normalize 白名单重建 | meta 域按默认模型键集收口重建(退役键 forge_levels/migration_note 载入即丢弃不回写盘);breakpoint 等非 meta 顶层键零触碰 | 白名单「_normalize 补键细节」+契约 4 |
|
||||
| 9 | 营地四柜台布局 | 横向 ScrollContainer 包裹四柜台(各 300 min 宽等分)、钥匙门=锁定行 Label 与内容容器可见性切换、占位面板=纯 Label 双行(零按钮零写档) | 白名单「程序占位布局与控件复用」 |
|
||||
| 10 | 暂停层锻造段连带删除 | pause_overlay 属性锻造段+main._pause_data forge 投影随 forge_levels 域死亡一并删除(卡片未点名暂停层——数据源删除的编译级连带,非范围自扩)。**〔2026-10-13 追认结果:维持现状——用户裁状态面板不补锻造概览,实际游玩效果有问题时再按需提优化;本条收口〕** | T5 旧逻辑删除同生死原则(code-conventions §3.5 第 5 条) |
|
||||
| 11 | MC 载体扩 rules 模 | adventure_monte_carlo feat_mode 增 `rules`(args[7] 逗号分隔键集)——V19 三组配对载体(原 ab_a/ab_b 硬编码仅 posture 组) | V19 验收载体必须(代拍板「探针夹具构造细节」) |
|
||||
| 12 | ks_refresh 树行价 30 | 表行 price=30 仅为呈现元数据,实际计费走 Y 行 keystone_cost(30/60)——树 cap2 与 Y 表两级行天然对齐 | 白名单「价格沿旧表值/量纲锚」 |
|
||||
|
||||
## 四、验证闸读数
|
||||
|
||||
- **T0 基线(主区 HEAD=73acee0)**:冒烟 864/0 但 run_smoke 判 FAIL(SCRIPT ERROR 51 行——fx_reveal 空 source_class 触发 :1592 行来源断言,a57489e9 迭代 20 T1 落地件**存量红**,两轮确定性复现);run_all 21 套全绿;probe_gate --click 全绿残留 0。
|
||||
- **存量红修复(随 T3 批)**:`_flush_pending_reveals` 三处 `_emit_row("fx_reveal", "", ...)` 补 `fx_reveal` 来源标签+SOURCE_EXEMPT_CLASSES 增类级豁免(落空行无真实格=豁免集合设计意图内)。修复后脚本错误归零。
|
||||
- **批末轻闸(worktree)**:冒烟 **886/0**(864 基线−摘除断言+新增 V1/V2/V3/V8/V9/V10/V16 断言)三闸全过;run_all **22 套全绿**(新增 tree_rules_v11_test);probe_gate --click **全绿**(树购买/双态切换点击路径,问题=0)。
|
||||
- **V19 MC 配对锚(终读数)**:perfect+max 档同种子(seed0=88000)配对 ×60 局×六配置——六侧通关率全部 61.7%(37/60),三组配对差**全部 0.0pp**(判据 <~3pp 在带):开局姿态 A/B、危险直觉 锋/守、财富之道 聚/散两侧同强基线成立。〔载体注记:MC feat_mode 扩 `rules` 模(追认单 #11);normal+min 档基率地板(0-1.7%)无配对信号,改用 perfect+max 档取得可用基率——口径换代记验证记录。〕
|
||||
- **两入口铁规**:全部验证走 smoke_all.gd 与 tests/run_all 两执行口+probe_gate 包装器,零另开执行口。
|
||||
|
||||
## 五、GDD 反哺点清单(设计权威文档零触碰,待用户逐点裁决后另批落文)
|
||||
|
||||
| # | 反哺点 | 现状差异 | 建议去向 |
|
||||
|---|---|---|---|
|
||||
| ① | 天赋树.md「已建未接面」三条清账+P0 段 33→12 落地态+验收实态 | 文档仍标「实装未落,现役代码仍为 33 节点」 | 天赋树.md 换代批(反哺落文) |
|
||||
| ② | 元进度.md 注入公式终态句+属性柜台退役终态(v1.14 预登记过渡态) | 公式现役=树淬炼 flat+锻造路线加值位预留 0 | 元进度.md 换代批 |
|
||||
| ③ | 天赋树.md:111「设计避让:不触碰商店刷新语义与 GP 换算两处在册旋钮」句 | ⑪②裁决已改写为定义边界口径(折扣定义边界=商品标价,键 gp_cost_mult)——文档原句须改写 | 随①落文 |
|
||||
| ④ | 锻造工坊.md「树侧解锁门」接线落地态+注入公式「锻造路线加值」项落地态 | 钥匙节点 forge_workshop 已落地(free 无前置);加值位=FORGE_ROUTE_BONUS 预留 0 | 锻造工坊.md 反哺批 |
|
||||
| ⑤ | HUD框架.md 营地四柜台并排结构终态 | 程序占位已落地,视觉终稿归 HUD 营地视觉批 | HUD 视觉批输入 |
|
||||
| ⑥ | 验收实态:命中线「暂不注入」括注、彩蛋条件两线+socket 全解锁落地态 | 代码=契约 6 纪律维持 | 随①落文 |
|
||||
|
||||
## 六、登记欠账(本批不做·卡片 §4 不做清单,06 已入册)
|
||||
|
||||
1. **AP 上限 clamp 缺位**——树 posture AP+先手类 AP 件+时沙走同一条 `_pending_ap_delta` 无上限(action_economy.gd 只有 maxi(0,·) 下限),AP 10/8 可打出;**新叠加源使该既有缺陷可观测化**(⑨裁决甲:本批不碰)。
|
||||
2. **三选一刷新软上限**——现役缺「停点间基础价随关卡进度递增」维(基础价恒定);另立待办(⑩裁决),商店货架刷新共享旋钮同步跟涨。
|
||||
3. **Y(_attune_refresh_y)不入断点**——用完退菜单再续玩可满血复活;**V15 只验账本一致性,不代表刷新链路已可用**(⑪裁决:出口报告点名防误读)。
|
||||
|
||||
## 七、实机目检总清单(人闸——V22,07 在册)
|
||||
|
||||
1. 营地四柜台并排:树淬炼柜台=主界面(脊柱两行一线一节点行板+Fork 双态切换钮+脉分组头);锻造工坊柜台锁定态(钥未点亮)→点亮后展开占位面板(零交互观感);秘宝匣柜台锁定态→点亮展开(六行+同调装配段+Y 升级行);图鉴常开独立位。
|
||||
2. 树购买交互:余额不足按钮态、行门槛拦截 toast、购买后行板即时刷新。
|
||||
3. 宽度不足时四柜台横向滚动可用。
|
||||
4. 暂停层:属性锻造段已消失,钥石+工坊+天赋树概览呈现正常。
|
||||
5. 生涯页:两类六项(原三柜台概览行消失)。
|
||||
6. 冒险内:先手压制首战首轮 +1AP 体感、锋踩雷减半读数、守标错下轮 +AP、聚结算框 GP 增量即实得、散商店标价八折。
|
||||
|
||||
## 八、遗留与边界
|
||||
|
||||
- **R1 追认**:裁撤案已执行(追认单 #1),用户推翻即补 requires_level 形态(随批重立)。**〔已兑现(2026-10-13):用户推翻——requires_level 机制位随批重立完毕,天赋树.md v0.10;追认单 #1 状态=推翻后重立收口〕**
|
||||
- **契约 12 编排级断言口径**:守侧五场景以「编排 rig(begin_battle 携 sense_guard + 授予段 _judge_flag 直注)+引擎直构」双承载(V10 断言面);②被挖旗零触发由发射面既有过滤承载(插旗不可逆批既有行为)。
|
||||
- **迭代 20 残留人闸不受影响**:实机目检五件+V20/V21/V22 人工核对半仍待用户(07 在册)。
|
||||
@@ -1,67 +0,0 @@
|
||||
# 迭代 22 实现报告——秘宝体系实现重构落地批(2026-10-12)
|
||||
|
||||
> 执行:/goal+iter 技能 U0 开工令,单会话交付(worktree g-plan2-iter22-treasure,分支 iter22-treasure,基点 5a2ab8c)。
|
||||
> 需求卡片:design/research/需求卡片-秘宝体系实现重构落地批-2026-10-11.md(v1.3,C1-C6 全裁,零阻塞待裁点)。
|
||||
> 设计权威:秘宝.md v2.9「目录(重设计 v1)」。
|
||||
|
||||
## 一、各任务卡交付状态
|
||||
|
||||
| 卡 | 交付 | 提交 |
|
||||
|---|---|---|
|
||||
| T0 | 基线复读(冒烟 886/0+run_all 22 套+probe --click 全绿)+四项核实(X/Y 对表/magic_vs_magic 结案/扩签清单/真视计数接入点)+自洽扫描四处事实换代登记(卡片 F1/F2/F4 预设被迭代 20/21 推进) | (active.md 状态记录 477) |
|
||||
| T1 | treasure_items.tres 新 12 行全量换代(旧 12 行删)+schema 换代(tier/charge_reset/unlock_keystone_cost 三键+TIERS/TIER_RANK/CHARGE_RESETS 词表+TARGETS 扩 cell+参数面 kind 六型+REVEAL_KINDS 护栏扩面+charges=0 积点制+解锁互斥校验+UNLOCK_COUNTER_KEYS 换代)+引擎扩签(EVENTS+board_installed/ACTIVE_KINDS+safe_dig/EFFECT_KINDS+mine_count_preview)+V13 旧断言摘除换代 | T1 提交 |
|
||||
| T2 | 解锁服务换代(buy_treasure_unlock/refresh_treasure_unlocks/treasure_shop_status/_treasure_unlock_progress 单点)+工坊渠道面退役(行族/词表/三函数/访问器全删)+vision_used 生涯计数域(补零不升版本)+toggle_attunement 三重校验(未解锁拒+满位禁选+件档 rank≤装入位序)+秘宝匣呈现数据管道换代 | a7bd4e4 |
|
||||
| T3 | board_installed 发射+巢穴预告读数口/天眼 safe_dig=fx_reveal 通道复用(C5 全额兑付免 AP)/reveal_tiles 入真视叠加层/试炼镐 use_attune_convert 积点受理口+计数通用化/充能重置周期 _reseed_attune_charges(battle/level)/常时参数面注入(挖距/旗可达/转存率/刷新加仓/商店刷新)/vision 计数链(共享 dict→summary→settle 入档+断点随件)/validate_use 扩 cell+新空间 kind/修现役潜伏缺陷(use_treasure 板维度读不存在的 Rules.width)+新单测 treasure_effects_test(V7 附属表 12 件逐件正常/边界/反例) | T3 提交 |
|
||||
| T4 | 秘宝匣柜台购买钮+分档呈现+档位标签+未解锁禁装/呈现桥换代(旧提灯布尔桥退役→set_fog_glow_bonus 参数面,main._sync_treasure_glow)/巢穴预告 toast/试炼镐 HUD 兑换钮(ap_bar+board_zone 转发链)/ui_input_probe case⑮ 换代主语+4/V13 功能残留换代/修 BoardZoneView 缺 convert_pressed 转发(呈现组装挂死根因) | b7a2ead |
|
||||
| T5 | 替换子交互整体拆除(装配不可变契约 1 死通道:core 六函数+_bonus_treasure_carry 携带+_last_draw_treasure 掷定链+bonus_aux_carry 断点键+grant_treasure_item+holding_records+呈现三态+overlay replace 状态机+探针/autoplay 策略)/treasure_inventory 保留注记(主动件骑库存承载在役)/apply_node_curio 普通兑付主体误删补回 | 73db171(amend 后;原 7095505 系 amend 前被弃旧提交含误入素材——2026-10-12 追认批提交号勘正) |
|
||||
| T6 | 验收闸断言(V9 词表零改写/V10 三方向覆盖/V18 空目录合法态/V6 装配不可变三面同源快照)+批末重闸全绿+ui_probe 柜台行数断言换代(6→12) | T6 两提交 |
|
||||
|
||||
## 二、代拍板追认单(十五条——2026-10-12 用户逐条裁决收口:①②③⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮ 追认;④ 追认+积点账生命周期裁战斗级;⑤ 推翻·改自动兑付——反哺落文批同日执行)
|
||||
|
||||
1. **回补点 1 执行**【追认】:按设计权威 12 件全量落地,刷新练习归钥石购买(C1「普通档全钥石」直接应用)——卡片推荐案。
|
||||
2. **回补点 2 消解**【追认】:迭代 20 已删 venom_edge/flag_burst,本批实删 12 行(非 14)。
|
||||
3. **回补点 3 执行形态**【追认】:treasure_inventory **部分拆除+保留注记**——拆除=替换子交互死通道全清(装配不可变实现面保证);保留=库存类本体(新目录主动件线香/天眼的骑库存承载在役:handle 注入+use_treasure 受理+断点 aux_items 快照)。卡片「拆除或保留注记」双路线并写的第三形态,理由=T3 复用现役机制零新建。
|
||||
4. **试炼镐两级积点单级化**【追认+积点账生命周期裁战斗级(每场战斗清零——设计留白处 2026-10-12 用户裁)】:设计「每开 4 安全格积 1 点、满 2 点换 AP+1」→ 实现=ap_charge_safe charge_n=8 滑耗(行为等价:每 8 格兑 1 AP,免上限滑动消耗)——代拍板白名单「订阅行等价实现细节」;desc 保留设计原文两级表述(反哺批⑤ 后随自动兑付换代)。
|
||||
5. **试炼镐受理口与入口**【**推翻·改自动兑付**(2026-10-12 用户裁,反哺落文批执行):满 charge_n=8 自动当轮 grant_ap、无玩家发起入口——HUD 兑换钮整链(convert_pressed 信号/转发/接线/set_convert_state)退役、use_attune_convert 受理口消解、行内 counter_spend 受理闸删除、desc 换代「每开 8 个安全格,当轮 AP +1(自动)」;兑付时序=揭示先于本格扣费(cell_revealed 批先于 spend),AP 归零恰逢满点时先兑再扣、轮次不因本格结束;进度显示挂 C 区秘宝槽悬停浮窗(attune_convert_state 读数口改造为进度投影);单测④段重写自动兑付断言,冒烟 898/0+单测 22 套+probe click/full 反哺批重跑全绿。**呈现集成补丁(同日修复批)**:charges=0 件不入骑库存〔注入循环跳过〕致 C 区原无试炼镐槽、浮窗进度无处承载——C 区投影末段补自动兑付件展示行(合成 handle=-1+note 进度+点击说明 toast);单测新增④b 展示行断言两条;重闸全绿(含 render_gate golden 0.00%+doc 三闸存量对比+熵增闸)】:原实现绕库存直呼 use_attune_convert(charges=0 零骑库存)+HUD 行动条兑换钮——卡片未列明入口形态,本批落 HUD 最小入口。
|
||||
6. **解锁条件表落位**:卡片 T1「attunement_growth.tres 改造为解锁条件表」——该表已被迭代 21 删除,落位改为 treasure_items 行内 unlock_requires(单一事实源,schema 校验单点)。
|
||||
7. **计数键换代**:UNLOCK_COUNTER_KEYS 旧键 clear_count(旧工坊按关累计语义)与 C6 通关口径不符,换名 adventure_cleared(生涯通关局数)+扩 vision_used——旧键零行消费安全换名。
|
||||
8. **vision_used 承载**:save v6 meta 域补零新键(不升版本,迭代 21 先例)+断点随件 vision_counter_used;计数点=use_treasure 受理成功(真视类 kind),冒险共享 dict 聚合、收束 add_vision_used 入档。
|
||||
9. **呈现桥换代**:旧提灯布尔桥(set_fog_lantern/FOG_LANTERN_BONUS)随行退役,换代 set_fog_glow_bonus 参数面(阔视野带 magnitude 4→半径 8+4);off 态写 0 复原契约保持。
|
||||
10. **巢穴预告呈现**:开局 toast「巢穴预告——本板危险格共 N 个」(读数口 nest_preview_count);不走结算明细行(行来源纪律——无格来源)。
|
||||
11. **积点兑换零明细行**:对齐 use_treasure「效果即时可见零明细行」纪律,兑付反馈=AP 条即时刷新。
|
||||
12. **价格 provisional 占位**:普通档 10 钥石/优秀档 25 钥石(稀有档全条件无价)——调参批终值。
|
||||
13. **magic_vs_magic 结案维持**:行已随迭代 20 删除(grep 零命中),锻造工坊实装批③「改值复活」作废(06 已核结)。
|
||||
14. **reward_dangling_treasure_test 保留**:悬空引用拦截机制在役,注入主语=故意悬空旧 id(fixture 本体非旧件验证)——V13「随行清亡」指注入行,机制测试保留。
|
||||
15. **过程修正**【追认+提交号勘正】:T5 提交误入拷贝嵌套素材(assets/ui/ui/ 9 png)已 amend 剔除,终态零素材变更——原记录「7095505(amend 后)」有误:7095505 系 amend **前**被弃旧提交(含误入素材、不在任何分支),master 实际 T5=73db171(零素材),§一 T5 行已随追认批勘正(2026-10-12 裁决会话取证:merge-base 实证 7095505 非最终史祖先、73db171 素材计数 0)。
|
||||
|
||||
## 三、GDD 反哺点(实现与设计权威差异——**2026-10-12 用户逐点裁「落文」,七条已随反哺落文批全部落文**:秘宝.md v3.0〔①②③〕/元进度.md v1.17〔④〕/camp.md v1.3〔⑤〕/存档序列化.md v1.6〔⑥〕/行动经济.md v0.12〔⑦〕)
|
||||
|
||||
1. **秘宝.md「目录(重设计 v1)」节**:逐件表补实录列(item_id/tier/解锁方式与价格或条件/参数 kind);「实装批落地前表内旧目录同调行冻结维持」「受理框架为新目录主动件沿用——现役代码按同框架运行」两处现状句已过期须换代;旧目录退役指针节补「代码旧行已删(2026-10-12)」。
|
||||
2. **秘宝.md 代价轴**:试炼镐两级积点结构→单级 8 格滑耗等价实现注记(若用户裁保两级呈现,改 desc 与 HUD 进度文案即可,机制不动)。
|
||||
3. **秘宝.md 解锁混合制节**:解锁条件表实录(三计数键+阈值 provisional:远程镐 1/刷新执照 3/天眼 3+4/信标网络 10;价格 10/25)。
|
||||
4. **元进度.md**:道具工坊→秘宝匣换代实录(工坊渠道面退役、购买钮、条件进度呈现、treasure_shop_status 投影);「forge base 20/比 150」等工坊史句核对。
|
||||
5. **camp.md**:秘宝匣柜台呈现细则(购买钮禁用态/名后缀·档位/装配行档位标签/未解锁禁装/悬停 desc/空目录合法态);暂停层秘宝匣 12 行只读概览。
|
||||
6. **存档序列化.md**:vision_used 域+vision_counter_used 断点随件+bonus_aux_carry 键退役(v6 不变零迁移口径复核)。
|
||||
7. **行动经济.md**:finish_round_stop 转存率参数化(transfer_pct 缺省 100 逐位同旧;储备罐 125=1.25:1 整除 floor 口径)。
|
||||
|
||||
## 四、实机目检清单(唯一人闸)
|
||||
|
||||
07-体验验证清单 ㉑「秘宝解锁-装配正常流程体验」(本批随批登记):解锁面/装配面/生效面抽查/装配不可变四组——验证人=用户。
|
||||
|
||||
## 五、闸读数(批末全绿)
|
||||
|
||||
- 冒烟 898/0(基线 886→898:V1/V2/V3/V4/V5/V9/V10/V18 断言净增,V13 摘除同步)
|
||||
- run_all 22 套全绿(含新套件 treasure_effects_test)
|
||||
- probe_gate --click/--full 全绿(ui_probe 柜台行数断言换代后);残留 Godot=0
|
||||
- render_gate 全绿(golden 3 屏 0.00%)
|
||||
- doc 三闸对主区基线零新增(死链 3/拔旗 1 均存量);熵增闸 PASS
|
||||
- MC 零跑(本批零随机无概率面——卡片 7.1 备用项未触发)
|
||||
|
||||
## 六、卡片余项去向
|
||||
|
||||
- ①新目录实装 ②旧数据行清理:本批 T1-T5 全量交付销号。
|
||||
- ③专长侧联动:迭代 20 已承载销账(06 进展注记在案)。
|
||||
- ④空配置验收闸:装配面本批 V18 交付;池空兜底/商店空货架归奇物/商店侧另批(卡片 §4 去向不变)。
|
||||
- ⑤池结构选型/配额数字:奇物侧另批(卡片 §4 去向不变)。
|
||||
- ⑥效果引擎扩签核实:本批 T0 清单+T3 落地(board_installed/safe_dig/mine_count_preview/参数面六 kind)。
|
||||
- ⑦两疑似漏项:T0 核实结案——件级跨事件状态账=counter domain=adventure 承载(试炼镐积点);参数注入面=六常时参数 kind 注入点全落(_adjacent_to_hero 两分支/finish_round_stop/shop_refresh_free_left/set_fog_glow_bonus/_refresh_stock)。
|
||||
@@ -1,70 +0,0 @@
|
||||
# 迭代 23 实现报告——锻造工坊实装批
|
||||
|
||||
> 日期:2026-10-12 | 迭代:23(M3=Alpha 完整实现面)| 开工令:/goal + iter 技能 U0(用户目标=总收口全绿:冒烟/单测/探针/读数对拍四闸全过+实现报告落档)
|
||||
> 需求卡片:`design/research/需求卡片-锻造工坊实装批-2026-10-12.md`(v1.2,Q1/Q2 已裁、零待裁点)
|
||||
> 设计权威:`design/gdd/systems/跨局循环/锻造工坊.md` v0.6(17 裁点清零+完备性检查批,commit f5215c7)
|
||||
> Worktree:`g-plan2-iter23-forge`(分支 iter23-forge-20261012,基点 b9cca33)| 批内提交:T0 定义入库 b9cca33 + T1 df666dd / T2 00d98b6 / T5 6def354 / T3 a6270ba / T4 ed06292 / T6 2915f19 / T7 收口笔
|
||||
> 状态:**✅ 已全批入库(单会话交付)**——四闸全绿+重闸全绿;残留人闸=实机目检工作间形态与购买交互(07 ㉒)+代拍板追认单九项+GDD 反哺点三条待用户
|
||||
|
||||
## 一、开工检查结论(第 2 步)
|
||||
|
||||
- **门**:roadmap 迭代 23 行「开工门=U0 发令」——本会话 /goal 调用即 U0,门解。
|
||||
- **待裁点**:卡片 v1.2 零阻塞待裁点(Q1=等级 0 起步+锻造第一级=首个 +1;Q2=provisional 沿锚表投值——均已裁)。
|
||||
- **验收清单**:V1-V14 逐条三要素(测什么/怎么测/谁验)齐;V9(静态 grep 人工核对)与 V13(用户目检)为纪律类人工项,余自动闸。
|
||||
- **自洽扫描两处 L2(记录继续,不触红线)**:①卡片 F8「meta 域 13 件」清单滞后——现行 15 键(vision_used 系迭代 22 T2 同日新增未及登卡),对 forge_routes 新域零影响;②卡片 F11「效果类型闭集 24 种」系 2026-10-07 设计文档事实快照——现行 31(迭代 20 T1 +7、迭代 22 T3 +1),本批零扩签,断言钉 31。另:06 条目①「forge_products 两行改造」系 v0.5 旧文(v0.6/卡片 F1 已订正为「行族已退役、新建行族」)——T7 机械面同步时订正。
|
||||
- **T0 实查**:基线复读=冒烟 898/0+run_all 22 套+probe --click 全绿残留 0(存量 fx_reveal 已随 iter21 修复,零存量红);buy_forge/forge_products 断言已随迭代 21 T5 全摘;hero 两轴读取面全清单(运行时 unit_container.gd:64 + 冒烟 smoke_all.gd:1901 + battle_orchestrator 间接消费 + README 文档面);注入链探明(build_adventure_params → adventure params → set_* 族 → enc → spawn)。
|
||||
|
||||
## 二、任务卡状态(T0-T7)
|
||||
|
||||
| 卡 | 状态 | 交付要点 | 提交 |
|
||||
|---|---|---|---|
|
||||
| T0 前置实查 | ✅ | 基线三件套+F1-F13 事实核对+断言摘除清单+两轴读取面清单+注入链探明;定义面入库(b9cca33) | b9cca33 |
|
||||
| T1 路线行族 | ✅ | 新表 forge.tres(ForgeTable:默认两轴+六路线行族)+ConfigDB 六访问器+单测 41 断言(V1 正反 22 类/V11 行字段闭集+词表 31 钉现/V2 价格梯) | df666dd |
|
||||
| T2 两轴移交 | ✅ | hero.tres 两字段删除(schema 同步)+spawn 注入缝(空串=锻造配置默认值回退,行为逐位连续)+冒烟 4 断言(V5 前半) | 00d98b6 |
|
||||
| T5 存档 v7 | ✅ **(序调先行——T3 写口硬依赖存档域)** | SAVE_FORMAT_VERSION 6→7+_migrate_v6_v7 空迁移+forge_routes 域(levels/unlocked/weapon/armor,无特效域)+访问器组+冒烟 V8 六断言(往返/v6 旧档补齐/键集/值拷贝) | 6def354 |
|
||||
| T3 写口族 | ✅ | MetaProgression 锻造写口(forge_buy_level 几何价/forge_buy_unlock 一次性解锁价/forge_select_weapon·armor 免费选中/forge_route_unlocked 派生单点)+冒烟 V2/V3/V4/V6 共 15 断言 | a6270ba |
|
||||
| T4 注入接线 | ✅ | hero_override 公式换代(FORGE_ROUTE_BONUS 退役)+build_adventure_params 两键+参数面快照(契约 8 锁死)+effective_ac 三层(甲型基础 AC+路线加值+局内)+enc→spawn 末端;冒烟 V5 后半/V6/V7/V10 共 15 断言 | ed06292 |
|
||||
| T6 工作间 UI | ✅ | 占位面板→两区六路线行板(锻造/解锁/选中三钮+余额联动+锁定态零行板零购买路径)+presenter 三意图处理器+main 接线+新单测 forge_workbench_test 12 断言(V13 自动化前置面) | 2915f19 |
|
||||
| T7 收口 | ✅ | 重闸全绿+MC 配对+机械面文档七件+本报告 | 收口笔 |
|
||||
|
||||
## 三、验证闸总账(批末重闸)
|
||||
|
||||
| 闸 | 结果 |
|
||||
|---|---|
|
||||
| 冒烟(run_smoke 三闸:退出码/摘要/脚本错误扫描) | **938 项检查 0 项失败**(基线 898/0 + 本批 40 断言:T2×4/T3×15/T4×15/T5×6) |
|
||||
| 单元(run_all) | **24 套全绿**(基线 22 + forge_table_test 41 断言 + forge_workbench_test 12 断言) |
|
||||
| 探针(probe_gate) | **--click + --full 全绿、残留 Godot=0**(ui_input/ui_struct/ui_contrast/click/ui_probe/ui_tune/t17_defer/fx_probe 八件) |
|
||||
| 读数对拍(MC 同种子配对,verifier_batch adventure 段 na=40 seed0=9000 双画像) | **A) 改前 vs 改后白板:80 局同种子逐位零差异**(normal 0/40↔0/40 均关 0.10;perfect 28/40↔28/40 均关 2.42)——默认态行为连续零漂移铁证。**B) 方向性补充**:白板 vs 锻造满配档(atk+5/ac+5 同种子)80 局中 30 局结局变化(normal 0/40→1/40、perfect 28/40→33/40)——锻造加值注入面生效且方向正确(数值 provisional 归 M4) |
|
||||
| render_gate(窗口化渲染闸) | **全绿**——shot_checker A-D 断言过 + 棋盘 golden 三屏 changed=0.00%(容差内) |
|
||||
| doc 三闸(gdd_lint/doc_link/doc_term) | **对基线零新增**——gdd_lint 3 个存量红同款(06/07 表格占比、术语表,master 同);doc_link 已知死链 1(存量);doc_term 单 hit 存量(06:37 拔旗,非本批编辑区) |
|
||||
| 熵增闸(repo_structure_audit) | **PASS**(四查全过) |
|
||||
|
||||
> 环境注记:render_gate 的 PIL 依赖需 gamedev venv(`PATH=/d/dev/python/envs/gamedev/Scripts:$PATH`)——WorkBuddy 裸 python 无 PIL;本机 Godot 4.7.2 路径 `D:\code\godot\Godot_v4.7.2-stable_win64_console.exe`。
|
||||
|
||||
## 四、代拍板追认单(白名单内,待用户追认)
|
||||
|
||||
> **追认结果(2026-10-13)**:九项用户逐项过目,**全数追认通过,无修改意见**——本单收口。
|
||||
|
||||
1. **行族落位选型**:新表 `forge.tres`(ForgeTable)而非 meta.tres 内新行族——T2「锻造工坊配置表新建」与 T1 行族同表承载(默认两轴+六路线);访问器连续性沿 treasure_items 先例(`db.forge_*`)。meta.tres 三行族零触碰。
|
||||
2. **路线 id 命名**:sword/spear/staff/light/heavy/ward——甲路线 id=甲型值本身(ward=魔法护甲,3a 裁统一命名);存档域 levels 六键同。
|
||||
3. **存档域键名**:`forge_routes = {levels:{六路线→等级}, unlocked:[直购路线 id], weapon/armor:选中路线 id}`——unlocked 只记直购;初始持有(表 initial_owned)与练满前一档(levels[prereq]≥cap)为派生解锁不落档(解锁态派生单点=MetaProgression.forge_route_unlocked)。
|
||||
4. **provisional 行值**:沿 T1 锚表投值(cap 5/每级增量统一 +1/基础价 20×150%^n=20/30/45/67/101/一次性解锁价 200/甲型基础 AC 10-12-9/初始持有 sword+light/前置 spear·staff←sword、heavy·ward←light)——Q2 已裁沿锚,终值归 M4。
|
||||
5. **v6→v7 空迁移形态**:缺键补齐模式(v3→v4 先例)——无结构迁移体,_normalize 按默认模型补 forge_routes=初始持有态;幂等零漂移(冒烟断言)。
|
||||
6. **执行序调整**:T5 存档域先于 T3 写口施工(写口族硬依赖存档域——不满足则 T3 无法落盘),台账记录。
|
||||
7. **工作间行板布局**(程序占位):件名+Lv+解锁态双通道文案+锻造/解锁/选中三钮横排;锁定态(钥匙未点亮)默认不可见+门控重建=零行板零购买路径(占位纪律延续,2026-10-11 用户令);视觉终稿归 HUD 营地视觉批。
|
||||
8. **V11 词表钉 31**:卡片 F11「效果类型闭集 24 种」系 2026-10-07 旧快照(现行 31)——L2 事实订正,断言钉现行数(将来加词即转红提示复核)。
|
||||
9. **F8 域计数订正**:卡片「meta 域 13 件」实为 15 键(vision_used 迭代 22 T2 同日新增)——L2 事实订正,零需求影响。
|
||||
|
||||
## 五、GDD 反哺点(设计权威文档不动,逐点待用户裁决后另批落文)
|
||||
|
||||
> **落文结果(2026-10-13)**:用户裁「在这里进行更新」——三条同批落文完毕:锻造工坊.md **v0.7**(①Q1 等级语义正文两处衔接;②闭集 24→31 两处订正;③实装边界 1 实态回填)+ 元进度.md **v1.18**(①effective_ac 第一层终态句;②钥石入口族三写口登记+「待发令」过期态换代)+ 术语表.md **v1.9**(路线 id/存档域键名词条登记)。三点全清。
|
||||
|
||||
1. **锻造工坊.md**:①「每条路线的内容·等级:1 → 上限」正文宜补 Q1「0=未练合法态」衔接表述(Q1 已在版本历史续裁行落文,正文未同步);②「现役代码事实」表「效果引擎效果类型闭集 24 种」滞后(现行 31);③实装边界 1「行族命名、字段结构与落表位置归实装批定义」已兑现(新表 forge.tres/ROUTE_IDS 六 id/12 字段闭集)——可回填实态句。
|
||||
2. **元进度.md**:①「跨局注入」节四层公式宜补「甲型基础 AC=选中甲路线行 base_ac(effective_ac 第一层)」终态句(树 flat+锻造路线加值已实装);②营地钥石入口族宜登记锻造三写口(forge_buy_level/forge_buy_unlock/forge_select_*——buy_forge 退役后的新族,契约 9 写口唯一)。
|
||||
3. **术语表.md**:实现引入路线 id 与存档域内键名(levels/unlocked/weapon/armor)——非玩家可见术语,预计零新词;若需登记补登待裁。
|
||||
|
||||
## 六、残留人闸与遗留
|
||||
|
||||
- **残留人闸(07 ㉒,用户实机目检)**:工作间门与形态(锁定态零购买路径/点亮后两区六路线)/购买面(几何价逐级涨、余额禁用、即时刷新)/解锁面(双通道:练满派生零收费 vs 200 直购、互不重复收)/选中面(免费切换、当前态、冒险锁死)/注入抽查(选长枪=穿刺生效、选重甲 AC=12+加值、旧路线练度保留)。
|
||||
- **遗留(在册不阻)**:①敌方 attack_type 填值(3b 裁连带)归敌人系统/战斗结算侧——本批只落结构面(矩阵查表现役已支持),06 在册;②全部数值 provisional 终值归 M4 数值批(未排期);③满级特效本期不做(六路线扩展位留空——不开参数位/不加效果类型词/存档无特效域);④工作间视觉终稿归 HUD 营地视觉批。
|
||||
- **本批零触碰面**:meta.tres 三行族、克制矩阵九格、局内货架三行(奇物属性件)、天赋树、效果引擎词表(零扩签)。
|
||||
@@ -1,86 +0,0 @@
|
||||
# 迭代 24 实现报告——敌人表内容修批(三关)
|
||||
|
||||
> 日期:2026-10-13 | 迭代:24(M3=Alpha 完整实现面)| 开工令:/goal + iter 技能 U0(用户目标=使用 iter 技能完成迭代 24 开发)
|
||||
> 需求卡片:`design/research/需求卡片-敌人表内容修批-2026-10-13.md`(v1.1,Q1–Q9 已全裁、零待裁点,开工门=U0)
|
||||
> Worktree:`g-plan2-iter24-enemy`(分支 iter24-enemy,基点 ecff832)| 批内提交:定义 0c083bb(b89c3fe worktree 舞步合回)+ N1+N2 `26d669f` + N3 `ab3ba4f` + 文档同步面 `5f2ef77` + 收口笔
|
||||
> 状态:**✅ 已全批入库(单会话交付)**——四闸全绿+重闸全绿;残留人闸=实机目检三观测(07 ㉓,登记不阻塞);代拍板追认单+GDD 反哺点待用户
|
||||
|
||||
## 一、开工检查结论(第 2 步)
|
||||
|
||||
- **门**:迭代 23 出口 ✅(已入库)+ 开工门=U0——本会话 /goal 调用即 U0,门解。
|
||||
- **待裁点**:卡片 v1.1 零待裁点(Q1–Q9 于 2026-10-13 grilling 复核后用户令「按推荐方式」全裁)。
|
||||
- **验收清单**:V1–V7 逐条三要素(测什么/怎么测/谁验)齐;V2/V6(MC 配对)随批执行、V7 为回归闸、目检三件登记 07 不阻塞。
|
||||
- **自洽扫描**:零冲突——卡片 §2 现状考证逐处 file:line 对现行代码核实全命中((1,2) 行值/594-600 裁决注释/:527 轴未开注/enemy_table:110-113 校验/unit_container:119-120 快照/orchestrator:1406 第 9 参/damage_controller:187 matchup/smoke:3211 expect_pools 20 键/skill_table:19 rider 域)。
|
||||
- **基线复读记档(L2 呈报)**:冒烟 938/0 + run_all **25 套** + probe --click 全绿。⚠ 卡片/roadmap 记「run_all 24 套」系 485 R1 机制位批(29b08d4,tree_requires_level_test 入 run_all 24→25)落库前旧数——属基线漂移非卡片失真,本批按现行 25 套作闸。
|
||||
- **T0 定义入库**:roadmap + 06 + 需求卡片三件,主区守卫拦 commit(豁免文件也拦提交坑再证)→ worktree `b89c3fe` 提交 `--no-ff` 合回 master `0c083bb`。
|
||||
|
||||
## 二、任务卡状态(卡片 T0–T3)
|
||||
|
||||
| 卡 | 状态 | 交付要点 | 提交 |
|
||||
|---|---|---|---|
|
||||
| T0 · N1 (1,2) 降档 | ✅ | `enemy.tres` (1,2) 行 `hp` 50→22、`armor_class` 3→2(其余字段零动);表尾批注载裁决沿革(2026-09-24 阶名化解方案实机未达预期,按 2026-10-13 体验反馈重裁——非配置错误);曲线 12/10/22/35/72 相邻比最大 2.2 ≤ 2.5;`expect_pools` 零改动(键值均不变);V1 两断言(降档锚定防顺手改多 + 相邻总量比护栏) | 26d669f |
|
||||
| T1 · N2 两新行六池 | ✅ | `skills.tres` 12→14 行:`venom_spit` 毒吐 ×1.6/CD2、`shield_bash` 盾击 ×1.7/CD3(均无 rider——L2/L3 atk 1–3 下 floor(atk×r) 恒被 damage_floor 兜成 1,与 0.75 档等效白占字段);六池投放(蜘蛛 (2,5)/(2,6)/(2,7)+毒吐 2、灰矮人 (3,0)/(3,7)/(3,5)+盾击 2);首遇位 (2,4) 池不动;`expect_pools` 六键同步+断言文案换代;逐池纪律复查(恰一普攻/增益≤1/妨害≤1——巨蜘蛛族增益仍仅 charge、灰矮人族 (3,5) 无增益、两族妨害 0);V3/V4 五断言;旧「技能表十二行」断言换代十四行(换代批旧断言退役规) | 26d669f |
|
||||
| T2 · N3 攻击类型轴 | ✅ | `enemy.tres` 20 行各加 `"attack_type": "normal"`(挂敌种行、与 armor_type 同位)+表尾批注;`enemy_table.gd` ATTACK_TYPES 闭集 {normal, pierce, magic}+validate 枚举校验(可省略缺省 normal 向后兼容——armor_type 同款);`unit_container.gd` 敌方快照 +`attack_type`;`battle_orchestrator.gd` 敌方伤害开单第 9 参 `""`→`String(u.get("attack_type", "normal"))`;**`damage_controller.gd` 敌方兑付路径补克制消费一行**(详见 §四 追认单 #6——卡片 §2 事实漏项,V5 矩阵命中证词强制);单据载荷 +`attack_type` 键;V5 四断言 | ab3ba4f |
|
||||
| T3 · 读数/文档/全闸 | ✅ | 改前/改后同种子 MC 配对 40 局×both(§三);文档同步面五件(06 三条销号+卡片条收口 / 08 行注摘除 v1.2 / 07 ㉓ 登记 / registry 三处 / Alpha未完成事项梳理三注订正);批末重闸全绿(§五)+本报告 | 5f2ef77 + 收口笔 |
|
||||
|
||||
## 三、MC 配对读数(V2/V6——三组,同种子 seed0=9000 沿用迭代 23 配对种子)
|
||||
|
||||
采集:`adventure_monte_carlo.gd -- 20 9000 both min`(二档·每档 ≤20、批合计 40 局×改前+改后;改前锚落盘 `sim-data/runsum_iter24_pre_n40both_20261013.jsonl`、改后锚 `runsum_iter24_post_n40both_20261013.jsonl`——锚留盘作分析缓存)。读数=逐种子配对,不设自动阈值(卡片 T3.1):
|
||||
|
||||
| 组 | 指标 | 改前 → 改后 | 判读 |
|
||||
|---|---|---|---|
|
||||
| **N1** | perfect L1 通关率 | 19/20 → 20/20 | 5 倍墙消除方向符合预期 |
|
||||
| **N1** | normal L1 通关率 | 3/20 → 2/20 | ±1 局种子噪声(低基率),逐局承伤多数下行 |
|
||||
| **N2** | perfect L2 通关 | 8/20 → 13/20(+25pp) | 方向符合预期(新招加压+L1 减压后更健康抵达 L2);量级低于二档配对判读带 ~30pp——**L2 记录继续不回调**,倍率 provisional 归 M4 |
|
||||
| **N2** | perfect L3 全通 | 6/20 → 10/20(+20pp) | 同上 |
|
||||
| **N2** | normal L2/L3 通关 | 0/20 → 0/20 | normal 档基率地板,无判读力(读数换档记验证记录) |
|
||||
| **N3** | taken 中位(normal) | 29.5 → 27.5 | 单发位移经 V5 冒烟实测恰 ±1(heavy 2==light 3−1 · ward 4==light 3+1);全局中位小幅下行=轻甲基线 0 修正+承伤构成微移,无第二落点迹象 |
|
||||
| **N3** | taken 中位(perfect) | 76.5 → 97.0 | **构成效应**——通关更深(全通 6→10)自然累计更多承伤,非单发异常(V5 单发恒 ±1 已钉死);卡片 L3 红线(非 ±1 量级位移=停机)核销 |
|
||||
|
||||
## 四、代拍板追认单(卡片 §9 白名单五项+批内代决三项,待用户追认)
|
||||
|
||||
1. **两新行命名形态**:`venom_spit`/毒吐、`shield_bash`/盾击——小写下划线+中文双字,与既有 12 行同风(白名单 1 预授权)。
|
||||
2. **schema/快照写法**:ATTACK_TYPES 常量+validate+快照缺省回退,沿用 armor_type 同款(白名单 2 预授权)。
|
||||
3. **MC 种子**:seed0=9000 沿用迭代 23 配对种子(白名单 3「既有基线种子」);锚文件落 `sim-data/` 按现行命名惯例。
|
||||
4. **atk_min/atk_max 微调**:未触发(白名单 4——(1,2) 现值 0-2 无需连带)。
|
||||
5. **expect_pools 写法**:保持既有字典风(白名单 5)。
|
||||
6. **⚠ 卡片 §2 事实漏项——敌方克制消费点**:卡片列的四处代码触点(表列/schema/快照/第 9 参)只完成「轴开列+传值」,但 `damage_controller._resolve_enemy_skill` 的克制点数**硬编码 delta 0**(2026-09-24 伤害管线单据化批注释明载「克制恒中性(敌打主角无甲轴)」)——不改此行则卡片自己的 V5「实测受伤点数 == 基线 −1(矩阵命中证词,不是查表存在性证词)」物理不可达、Q9「全局平移」落空。随批补一行消费(`cdelta = _counter_delta(t.attack_type, hero.armor_type)`,写法与 hero_attack 路径同款)+头注两处换代+单据载荷补 attack_type 键。**属验收闸强制的最小补点,非设计变更**——请用户追认。
|
||||
7. **旧断言换代**:`smoke_all.gd`「技能表十二行」断言随 N2 换代为十四行(2026-10-11 换代规:旧验证约束随实现删除,防冒烟假红)。
|
||||
8. **08 与 Alpha未完成事项梳理两 untracked 件随批入库**:两件系并行会话未跟踪件(禁碰前科在案),本批按卡片 §5 机械面义务编辑——以主区最新内容为底拷入 worktree 改后提交,主区旧副本随 merge 消解(超集保全舞步);08 升 v1.2 记版本历史、梳理件三处加注订正均不删原文。
|
||||
|
||||
## 五、验证闸总账(批末重闸)
|
||||
|
||||
| 闸 | 结果 |
|
||||
|---|---|
|
||||
| 冒烟(run_smoke 三闸) | **949 项检查 0 项失败**(基线 938/0 + 本批 11 断言:N1×2/N2×5/N3×4;素材补拷后复跑同读数) |
|
||||
| 单元(run_all) | **25 套全绿**(基线漂移 24→25 系 485 批,见 §一) |
|
||||
| 探针(probe_gate) | **--click + --full 全绿、残留 Godot=0** |
|
||||
| render_gate | **全绿**——golden 三屏 changed=0.00%(首跑 SKIP 抓出 worktree 漏拷 art 实体——初拷命令链因 .godot 路径错误短路,仅 .import 边车到位;补拷后 golden 0.00%,冒烟/单测/探针 --full 同批复跑留痕) |
|
||||
| MC 同种子配对 | §三(二档 40 局×both,批合计 ~8 分钟在 20 分钟会话累计内) |
|
||||
| doc 三闸 | **对基线零新增**——死链 3(数据配置/元进度/天赋树,存量同款)/ 拔旗 1(06:89 存量)/ 雾格 1(08:181 不做清单指路行,主区基线已含)/ gdd_lint 3 件 FAIL 均存量同款(06/07 表格占比、术语表 R10 v1.2 重复系并行批次遗产) |
|
||||
| 熵增闸(repo_structure_audit) | **PASS**(四查全过) |
|
||||
|
||||
## 六、GDD 反哺点(设计权威文档零触碰,待用户逐点裁决后另批落文)
|
||||
|
||||
| # | 文档 | 反哺点 |
|
||||
|---|---|---|
|
||||
| ① | 敌人系统.md | 调参表敌人表字段集需增 `attack_type`(枚举域/缺省 normal/消费面) |
|
||||
| ② | 敌人系统.md | 技能池节「三代错峰」口径需扩为「Boss 独占技 + 普通敌错峰」两轨(N2 已补齐普通敌轨) |
|
||||
| ③ | 敌人系统.md | 敌种表技能池构成列随 N2 变动(巨蜘蛛族+毒吐、灰矮人族+盾击) |
|
||||
| ④ | 敌人系统.md | 「八敌种」表缺 `hobgoblin`(有数据行 (1,3)、无立绘、不在敌种表——登记在案的已知缺口,本批未动) |
|
||||
| ⑤ | 难度曲线与Boss.md | N2 投放后 L2/L3 难度带位移(perfect +20~25pp 配对读数在案);N3 全局平移(重甲 −1/魔法甲 +1/轻甲 0)——数值终值归 M4 |
|
||||
|
||||
以上五条已同步登记 `06-待办清单.md`(反哺点节),另批落文。
|
||||
|
||||
## 七、实机目检总清单(登记 07 ㉓——登记不阻塞,2026-10-12 真人检测立规)
|
||||
|
||||
1. **新招可见性**:L2/L3 普通战斗见到「第一关没见过」的招式(巨蜘蛛毒吐自 (2,5) 起、灰矮人盾击三行——首遇位 (2,4) 不投)。
|
||||
2. **甲型体感**:选重甲挨打比轻甲可感知更轻(−1)、选魔法护甲更疼(+1)。
|
||||
3. **第一关节奏**:第三节点(熊地精 22 血)不再是「打不动的一堵墙」。
|
||||
|
||||
## 八、残留与去向
|
||||
|
||||
- 残留人闸:仅 07 ㉓ 实机目检三件(登记不阻塞)。
|
||||
- (1,1)「第二个节点」字面偏差:已按卡片 Q1 落 06 订正注——若用户原意确为 (1,1),N1 需重裁后重开(本批不动 (1,1))。
|
||||
- M4 数值批若重标 (1,2) 血量,本批 22 会被覆盖——预期内(卡片残留风险节)。
|
||||
- 三条 06 销号完成:「第一关遭遇表数值异常」「第二关技能池与投放」、锻造工坊条迁移面⑥。
|
||||
@@ -1,90 +0,0 @@
|
||||
# 迭代 25 实现报告——UI 全局主题批(引擎原生控件接管皮肤)
|
||||
|
||||
- 日期:2026-10-13(单会话 /goal+iter U0 开工令交付)
|
||||
- 需求卡片:`design/research/需求卡片-UI全局主题批-2026-10-13.md` v1.2(零待裁点,开工门=U0)
|
||||
- worktree:`g-plan2-iter25-theme`(分支 `iter25-theme-20261013`,基点 master 5f8acd0)
|
||||
- 基线复读(主区 T0):冒烟 949/0 + run_all 25 套 + probe --click 全绿残留 0
|
||||
- 批末闸:冒烟 **987/0**(基线 949 + 本批 38 断言)+ run_all 25 套 + probe click/full + render_gate golden 0.00% + doc 三闸/熵增对基线零新增(详见 §三)
|
||||
|
||||
## 一、交付总览
|
||||
|
||||
| 卡 | 内容 | 状态 |
|
||||
|---|---|---|
|
||||
| T0 | 主题资源与词条:`game/assets/theme/main_theme.tres`(15 类型全覆盖 + 预盖件)挂 `project.godot` `gui/theme/custom`;位图生成脚本 `tools/gen_theme_icons.py`(9 张纯色/几何小位图 → `game/assets/art/ui/gen/`);色值溯源表 `game/assets/theme/README.md` | ✅ |
|
||||
| T1 | 换代退役:`ui_kit.gd` `tooltip_theme()`/`_tip_theme` 与 `styled_slider()` 样式段、`ui_assembler.gd` 挂载行同批删除;settings_overlay 音量滑轨几何内联;debug_overlay `_slider_row` 双轨消隐(两消费方均改裸 HSlider+几何,皮肤统一走全局主题) | ✅ |
|
||||
| T2 | 断言与文档同步闸:冒烟新增 `_smoke_global_theme()`(V1-V6 共 38 断言);06 两条销号/①销号;08 升 v1.3;07 ㉔ 登记;roadmap 行换代 | ✅ |
|
||||
|
||||
**契约遵守**:🔴 Button 类型词条零接触(冒烟断言在闸)· 🔴 focus 族词条零定义(全主题自有条目扫描断言)· 🔴 零新增美术素材(位图=脚本生成)· 🔴 全局纹理过滤未动。**camp_overlay_view.gd 零改动**——营地滚动条由 VScrollBar/HScrollBar 类型词条全局接管,无需逐实例改码(roadmap 编入批文件清单里的该文件系预估,实际未触)。
|
||||
|
||||
## 二、落位明细
|
||||
|
||||
### 主题词条(main_theme.tres)
|
||||
|
||||
- **滚动条**:V/HScrollBar 的 scroll(BG_OVERLAY #362B20 α0.35 直角槽)+ grabber/grabber_highlight/grabber_pressed(PANEL_BORDER/STONE_FAINT/STONE_DEEP 纯色 StyleBoxFlat,content margin 4 = 8px 粗细、柄最小 8px)。**引擎实证:Godot 4 ScrollBar 的 grabber 是 StyleBox 非 Icon**(scroll_bar.cpp BIND_THEME_ITEM 双查),故滚动条柄不走位图;increment/decrement 箭头图标默认主题未定义(0×0 空图不渲染),滚动条无箭头按钮,与冻结表一致。
|
||||
- **滑轨**:HSlider/VSlider 的 slider(暖石 #B8A582 + PANEL_BORDER 边 + (0,6,0,6) margins 承 styled_slider 现值)/ grabber_area(+highlight)(**BG_ROOT #3A2E22 换色**——顺手修 06 第三层①,实测对比 5.49:1)/ grabber 三态位图(CANDLE 方柄+PANEL_BORDER 描边 / 提亮档 / STONE_DEEP 废态)。
|
||||
- **Tooltip**:TooltipPanel/TooltipLabel 承 `tooltip_theme()` 现值原样迁入(深底 0.96 + 边 #5A5044 + WARM 字 14)——标题屏观感零变化,其余各屏气泡由引擎默认灰转正。
|
||||
- **输入件**:LineEdit normal(PANEL_DATA + PANEL_BORDER + RADIUS_OBJECT 圆角,同数据框惯例)+ 占位色 `font_placeholder_color`=STONE_DEEP(**词条名经 4.7.2 实证**,`font_color_placeholder` 不存在);SpinBox updown 合并箭头位图(INK ▲▼)+ 箭头底 hover/pressed 覆盖(默认主题该两态有可见 Flat 高亮)。
|
||||
- **分隔线**:HSeparator/VSeparator = StyleBoxLine PANEL_BORDER α0.6 单线 1px(默认灰 #808080 实证在位)。
|
||||
- **预盖件**(零实役):CheckBox/CheckButton 共用 `checked`/`unchecked`(+_disabled) 四态 14×14 位图;OptionButton normal/hover/pressed/disabled = button_stone 九宫格(8px 边距同 `_apply_button_skin` 观感)+ INK 字系 + INK 箭头位图;PopupMenu panel(PANEL_DATA+PANEL_BORDER)/ hover(GOLD_LIT 底 + INK_ON_GOLD 字)/ 字色 INK / 字号 16。
|
||||
- **default_font**:显式指向 `res://assets/fonts/ui_font_fusion_pixel_zh_hans.ttf`(与 project.godot `theme/custom_font` 同文件)——V6 中文字形防御:冒烟断言主题 default_font 非空 + Label 实取字体非空双闸。**未设 default_font_size**(全站字号走 UiKit.FS_* 逐实例 override)。
|
||||
|
||||
### 退役(T1,旧实现同批删除)
|
||||
|
||||
- `ui_kit.gd`:删 `tooltip_theme()` 函数 + `_tip_theme` 缓存 + `styled_slider()` 整函数(样式段随删,几何/量程按白名单#3 内联两消费方)。
|
||||
- `ui_assembler.gd`:删 `overlay.theme = UiKit.tooltip_theme()` 挂载行及注释引用。
|
||||
- `settings_overlay.gd`:音量滑轨改裸 `HSlider.new()` + min/max/value/custom_minimum_size(200,24) 内联。
|
||||
- `debug_overlay.gd`:`_slider_row` 原即裸构建,补注释标明与设置屏同一构建方式(双轨消隐=两处都不再走局部样式,统一全局主题)。
|
||||
- V4 断言:四文件剥注释后扫 `styled_slider`/`tooltip_theme`/`_tip_theme`/`overlay.theme` 零残留(编译期+断言双闸)。
|
||||
|
||||
### 断言(T2,冒烟 949 → 987,+38)
|
||||
|
||||
`_smoke_global_theme()`:V1 挂载与类型覆盖(15 类型逐一 + Button 红线 + focus 族全扫描红线 + scroll_focus 红线 + 关键词条抽查)/ V2 冻结值锚定 + 两段对比 5.49:1 ≥4.5:1 / V3 预盖件运行时证词(CheckBox/CheckButton 四态图标 + PopupMenu + OptionButton)/ V4 退役零残留(四文件源码剥注释扫)/ V6 中文字体防御双断言。V5 回归=冒烟全绿(按钮/面板逐实例 override 优先级保证存量观感零变化,存量断言即回归网)。
|
||||
|
||||
## 三、批末重闸结果
|
||||
|
||||
| 闸 | 结果 |
|
||||
|---|---|
|
||||
| 冒烟(run_smoke 三闸) | **987 项检查 0 项失败**(基线 949 + 38 新断言) |
|
||||
| run_all 单元全套 | 25 套全绿 |
|
||||
| probe_gate --click | 全绿,残留 Godot=0 |
|
||||
| probe_gate --full | 全绿(四探针收编段) |
|
||||
| render_gate | golden 0.00%(棋盘逐像素基线零漂移) |
|
||||
| doc 三闸(gdd_lint/doc_link/doc_term --strict) | 对基线零新增(存量红项不变) |
|
||||
| 熵增闸(repo_structure_audit) | PASS(新增 theme/ 与 gen/ 均命中 CLAUDE.md Project Layout) |
|
||||
| MC | **零跑**(零数值零行为=纯呈现批,按触发细则不发起) |
|
||||
|
||||
## 四、代拍板追认单(白名单内执行项 + 事实订正,请用户追认)
|
||||
|
||||
**白名单内执行**:
|
||||
1. 位图微观值:滑轨柄 12×12(常/悬/废三态位图)、勾选框 14×14 四态、SpinBox updown 16×16、OptionButton 箭头 8×8;滚动条柄按引擎事实走 StyleBox(无位图);脚本=`tools/gen_theme_icons.py`(PIL,幂等可重跑,色值常量集中在头部)。
|
||||
2. `styled_slider` 退役形态=删函数+几何内联两消费方(settings_overlay/debug_overlay,两处为上限)。
|
||||
3. 词条内字号沿用既有档(tooltip 14 / 输入件与 PopupMenu 16)。
|
||||
4. 未列尽同族微观词条按冻结表同源常量(白名单#5):HSlider/VSlider `grabber_disabled` 图标(STONE_DEEP 方柄);SpinBox `up/down_background_hovered`(STONE_FAINT α0.6)/`pressed`(STONE_DEEP);OptionButton `arrow`(INK 位图);OptionButton `disabled`(button_stone_pressed 九宫格,同 `_apply_button_skin` 惯例);ScrollContainer `panel`(全透明——默认即 StyleBoxEmpty 不可见,显式接管);PopupMenu/LineEdit 边距与圆角微观值;VSlider 边距为 HSlider 旋转换位((6,0,6,0))。
|
||||
|
||||
**卡片措辞与政策/引擎事实的偏差(呈报追认)**:
|
||||
5. **位图与 .import 侧车未入 git**(卡片 T0 写「.import 侧车随批入库」):`.gitignore:52` `game/assets/art/**` 全量忽略(注释明文「运行时资源本地生成不入库」——本批位图恰属本地生成件),全库既无任何 art 位图入库先例。处置=生成脚本入库(可再生)+ 位图随批拷贝回主区 `game/assets/art/ui/gen/`(已执行)+ README 溯源表载明出处。**若用户要求主题位图作为例外强制入库(theme 的 ext_resource 缺失时加载报错,与 UiKit 的缺位回退不同),一句话可补(git add -f)——请裁**。
|
||||
6. **CheckButton 图标词条名订正**(卡片 v1.2 注③称「CheckButton 用 on/off,不可与 CheckBox 共用」):Godot 4.7.2 源码(check_button.cpp BIND_THEME_ITEM)+ 默认主题链双查实证=**CheckButton 与 CheckBox 同套 `checked`/`unchecked`(+_disabled)**,`on`/`off` 在 4.7 不存在(has_theme_icon=false)。按引擎事实落位(两类共用一套位图),否则预盖静默空转——正是卡片警告的失效形态。需求卡片已归档不修订,订正随本报告呈报。
|
||||
7. **Slider 无 `grabber_pressed` 图标槽**(4.7.2 slider.cpp + 默认主题链双查):冻结表「滑轨柄·按」值 GOLD_DEEP #B07A14 无槽可落,README 留档;常/悬两态位图在位。若未来引擎开槽再补。
|
||||
8. **Godot 4.7 导入参数已无逐贴图 filter 标志**(现存 art/ui/*.import 实证):卡片「小位图各自单点设邻近采样」在 4.7.2 不可表达(filter 归全局 project setting=红线未触);位图均为原生尺寸消费(12×12/14×14/16×16/8×8),无滤波伪影。全局纹理过滤条目(06 第一层第三条)不受影响。
|
||||
|
||||
## 五、GDD 反哺点(设计权威文档不随批改,待用户逐点裁)
|
||||
|
||||
1. **art-bible §7 组件规格立条款**:滚动条/滑轨/悬停气泡/输入件的组件规格(尺寸档、圆角、对比度底线)目前无条款,本批色值=临时权威——是否立条款入 §7,待用户裁。
|
||||
2. **第三层①诊断描述与代码面不符**:诊断称音量滑轨两段「同一个深棕色」,实为 #B8A582/#7A5232(2.84:1,低于 3:1 图形参考线)——「偏难辨」成立、「同色」不成立;已在 06 条目状态注记呈报,是否需回改诊断源文待用户裁。
|
||||
3. **需求卡片 v1.2 注③事实订正**(见追认单 6)——卡片已退役归档,订正只随本报告留痕。
|
||||
4. **主题色值双处存在**:.tres 字面量与 ui_kit 常量双源(卡片立项时已知代价,README 溯源表缓解)——长期是否将主题色值收敛回代码单点(程序化 Theme 生成)待用户裁。
|
||||
5. **专项观察点二**(v1.2 增补):滑轨柄 CANDLE 色是否违反焦点预算(比「关闭」按钮抢眼?)、滚动条槽 α0.35 是否可见——归用户目检,L2 微调候选已在 README 列明(STONE 灰石系 / SLOT_BACKDROP #3E362C)。
|
||||
|
||||
## 六、实机目检总清单(归用户,07 ㉔ 登记不阻塞)
|
||||
|
||||
1. 引擎默认灰清零巡检:营地三处滚动容器、战斗日志/结算回看自动滚动条、设置音量滑轨、各屏悬停气泡、调试浮窗输入件、全屏 15 处分隔线——无引擎默认灰色圆角现代风残留。
|
||||
2. 音量滑轨拖到中点:已填充段(深棕)与未填充段(暖石)一眼可辨。
|
||||
3. 专项观察点:滑轨柄是否比「关闭」按钮抢眼;滚动条槽是否看得见。
|
||||
4. 预盖件无实役(CheckBox/CheckButton/OptionButton/PopupMenu 游戏零使用,备案待启用时复查)。
|
||||
|
||||
## 七、遗留与风险
|
||||
|
||||
- 位图不入 git(追认单 5)——主区已拷贝;新克隆环境需先跑 `python tools/gen_theme_icons.py`(D 盘 gamedev venv 的 PIL)或从主区拷贝。
|
||||
- Slider 柄·按无槽(追认单 7)——观感缺口限「按下滑轨柄」一瞬,调试/音量滑轨均非常态操作。
|
||||
- 遗留人闸不变:迭代 20 实机目检五件 + 21 营地四柜台〔07 ⑳〕+ 22 秘宝解锁装配〔07 ㉑〕+ 23 锻造工作间〔07 ㉒〕+ 24 敌人表三观测〔07 ㉓〕+ **25 全屏巡检〔07 ㉔〕**。
|
||||
- 本迭代位仍预留后续追加卡(roadmap 注记维持)。
|
||||
@@ -1,112 +0,0 @@
|
||||
# 迭代 26 实现报告——UI 交互与观感批(按钮五态矩阵 · 全局纹理过滤 · 观感四件)
|
||||
|
||||
- 日期:2026-10-14(单会话 /goal+iter U0 开工令交付)
|
||||
- 需求卡片:`design/research/需求卡片-UI交互与观感批-2026-10-13.md` v1.2(零待裁点,开工门=U0)
|
||||
- worktree:`g-plan2-iter26-ui`(分支 `iter26-ui-20261014`,基点 master 04ec217)
|
||||
- 基线复读(主区 T0):冒烟 987/0 + run_all 25 套 + probe --click 全绿残留 0
|
||||
- 批末闸:冒烟 **1055/0**(基线 987 + 本批 68 断言)+ run_all 25 套 + probe click/full + render_gate golden 0.00% + doc 三闸/熵增对基线零新增(详见 §三)
|
||||
|
||||
## 一、交付总览
|
||||
|
||||
| 卡 | 内容 | 状态 |
|
||||
|---|---|---|
|
||||
| T0 | 基线与枚举复核:§2 全部 file:line 开工复核(20+ 处全符);纹理过滤翻转面全枚举(显式 filter 13 处/无显式 3 处=白名单对象/.tscn 零纹理节点);按钮消费点枚举(四工厂 49 处调用全闭合);卡片 §2.2 枚举漏项勘误(12→13) | ✅ |
|
||||
| T1 | 按钮五态矩阵:`ui_kit.gd` 三工厂五态统一管线(悬停=乙案 modulate 1.06 提亮/禁用=甲案本族底+α0.45 幽灵化/焦点=甲案 INK 2px 内缩 1px 环/危险钮补本族 pressed 深档);逐实例 override,主题层零新增 | ✅ |
|
||||
| T2 | 全局纹理过滤:`project.godot` `default_texture_filter=0`(Nearest)+ vignette/gradient_base/beams 三件显式 LINEAR 白名单 | ✅ |
|
||||
| T3 | <4.5:1 换墨:敌顺位徽标+重甲徽标换 GOLD_BRIGHT、魔法护甲徽标换 HERO_BLUE_BRIGHT、RAP 反馈行换 STONE_DEEP;机检断言锚定 | ✅ |
|
||||
| T4 | 光柱连续 alpha:beams_rect 带内 0→0.05→0 三角过渡+纵向衰减上亮下暗(Q7 裁) | ✅ |
|
||||
| T5 | 元素细节余②③:BCard 图标槽明度差降档(SLOT_BACKDROP_SOFT 柔和档);商店卡片区垂直居中;营地四栏等高(holder min 336+面板 FILL+锁文居中) | ✅ |
|
||||
| T5b | 诊断转储钮退役:main.gd 卸载点删除+build_diag_button 工厂退役+转储入口迁调试浮窗(Q8 裁甲,dump_diagnosis 保留) | ✅ |
|
||||
| T6 | 文档同步闸与全闸:06 五处销号/改写+反哺点新条;08 升 v1.4;07 ㉕ 登记;roadmap 行换代;批末重闸全绿;golden 0.00% 登记即结 | ✅ |
|
||||
|
||||
**契约遵守**:🔴 主题层零新增词条(冒烟双红线原样维持绿)· 🔴 零新美术素材(悬停=modulate 提亮,全部改动用既有贴图/程序化生成)· 🔴 棋盘战斗逻辑与棋盘几何零触碰(board_view/board_world 零改动)· 🔴 对比度硬指标(换墨三处 6.47/5.88/5.98:1,图标槽白图标 5.14:1 ≥3:1,机检锚定)· 🔴 旧实现同批清理(诊断钮卸载点真删、disabled=pressed 错配修正、悬停=常态图退役)。
|
||||
|
||||
## 二、落位明细
|
||||
|
||||
### T1 按钮五态矩阵(ui_kit.gd,+冒烟 35 断言)
|
||||
|
||||
- `_apply_button_skin` 五态统一管线:normal=button_stone 九宫格;**hover=常态图+modulate Color(1.06,1.06,1.06) 提亮**(乙案,与 primary_button 现行 `CANDLE.lightened(0.06)` 同纪律,零素材);pressed=button_stone_pressed;**disabled=本族底+modulate α0.45 幽灵化**(甲案,取代旧「disabled=按压图」错配);**focus=INK 2px 内缩 1px 环**(甲案,StyleBoxFlat 无底+负 expand margin 实现内缩,引擎 focus 样式盒叠加绘制不遮钮底)。
|
||||
- `primary_button`:补 disabled(烛光黄族 α0.45)+focus 环+font_disabled_color(本族墨 α0.45);pressed/hover 承现行不动。
|
||||
- `danger_button`:补本族 pressed(深红 `Color8(180,78,54).darkened(0.18)` 深档,旧承石纹按压图错配退役)+disabled 幽灵化+focus 环+font_focus/disabled。
|
||||
- 新常量单点:`BUTTON_HOVER_LIFT`/`BUTTON_GHOST_ALPHA`/`BUTTON_FOCUS_RING_W`/`BUTTON_FOCUS_RING_INSET`+`_focus_ring_sb()` 工厂。
|
||||
|
||||
### T2 全局纹理过滤(project.godot + ui_kit.gd,+冒烟 6 断言)
|
||||
|
||||
- `[rendering]` 增 `textures/canvas_textures/default_texture_filter=0`。T0 枚举闭合:翻转面=九宫格 UI 皮(button_stone/panel_stone/border_stone)+主题 OptionButton 石纹样式盒与滑轨/勾选/箭头图标(全部像素风 UI 件,crisp 即意图);**无显式 filter 节点仅 3 处**(vignette/beams/gradient_base)挂显式 LINEAR 白名单;既有脚影/状态图标 LINEAR 不动。
|
||||
|
||||
### T3 换墨(ui_kit.gd 立 token + standee_body.gd/ap_bar_view.gd,+冒烟 9 断言)
|
||||
|
||||
- 新 token 两枚:`GOLD_BRIGHT` #E0B860(值=收益金 e0b860 同门,对舞台底 6.47:1)/ `HERO_BLUE_BRIGHT` #7EBAF0(5.88:1);GOLD_DEEP/HERO_BLUE 常量本尊不动(standee:199 意图判据等语义岗在役)。
|
||||
- 顺位徽标①②③(13px 行原位)/重甲徽标/魔法护甲徽标换墨;RAP 反馈行 STONE_FAINT→STONE_DEEP(5.98:1,旧 2.9:1 越带)。
|
||||
|
||||
### T4 光柱(ui_kit.gd beams_rect,+冒烟 3 断言)
|
||||
|
||||
- 带内 alpha 0→0.05→0 三角过渡(带域 d∈[240,340) 中分)+纵向衰减 `v_fall=1-y/560`;连续 alpha(Q7 裁,与暗角/地图渐变保平滑同血统);filter=LINEAR 白名单随 T2 落。结构断言:带心峰值≈0.05(按 8bit 截断量化校验)/连续过渡像素 41373 个/上半亮度>下半 2 倍。
|
||||
|
||||
### T5 元素细节(ui_kit.gd/shop/camp,+冒烟 8 断言)
|
||||
|
||||
- ②`SLOT_BACKDROP_SOFT` #806A4E 柔和档(对米色卡面 3.69:1,旧深档 8.53:1;白图标 5.14:1 ≥3:1 硬约束);仅 BCard 图标槽换档,B 区状态槽仍用深档(诊断订正③范围)。
|
||||
- ③商店 `_cards_box` ALIGNMENT_CENTER(三选一同款形制);营地四栏等高=forge/ws/atlas 三 holder 统一 min 高 336(与树/秘宝匣 scroll 对齐,锁定态仅锁文也撑栏高)+四面板纵向 SIZE_FILL 同步拉伸+三处锁文 SHRINK_CENTER。
|
||||
|
||||
### T5b 诊断钮退役(main/ui_assembler/debug_overlay + ui_tune_probe,+冒烟 7 断言)
|
||||
|
||||
- main.gd 卸载点(build_diag_button 挂载+连接)删除;`build_diag_button` 工厂退役;连接随迁=`debug_overlay.diagnose_requested`→`_on_diagnose_pressed`(dump_diagnosis 卡死取证功能保留)。
|
||||
- debug_overlay 新增 `diagnose_requested` 信号+区块⑤「诊断转储·转储」钮(`_emit_diagnose_requested` 外发,纯视图边界)。
|
||||
- 探针同批入册:ui_tune_probe 只读巡检白名单+`_emit_diagnose_requested`、连接数 10→11(七钮);confirm_dialog/main 树序注释订正。
|
||||
|
||||
## 三、批末重闸结果
|
||||
|
||||
| 闸 | 结果 |
|
||||
|---|---|
|
||||
| 冒烟(run_smoke 三闸) | **1055 项检查 0 项失败**(基线 987 + 68 新断言:T1 35/T2 6/T3 9/T4 3/T5 8/T5b 7) |
|
||||
| run_all 单元全套 | 25 套全绿 |
|
||||
| probe_gate --click | 全绿,残留 Godot=0 |
|
||||
| probe_gate --full | 全绿(四探针收编段;ui_tune_probe 只读巡检 11 连接入册生效) |
|
||||
| render_gate | **golden 0.00%**(三屏逐像素零漂移)+ shot_checker A-D 全过;战斗屏 draw_calls=191(基线 270/目标 <200,诊断钮退役+皮肤管线收敛的附带收益) |
|
||||
| doc 三闸(gdd_lint/doc_link/doc_term --strict) | 对基线零新增:死链 3(存量)/lint FAIL 集=06/07/术语表(基线三件,08 一度因新增单元格撞 R3 已改措辞回绿)/词命中 2(存量) |
|
||||
| 熵增闸(repo_structure_audit) | PASS |
|
||||
| MC | **零跑**(零数值零行为=纯呈现批,按触发细则不发起) |
|
||||
| V7 读数对拍 | 零游戏逻辑改动——冒烟全量零漂移(逻辑断言全绿)+探针结构断言零漂移+golden 0.00% |
|
||||
|
||||
**golden 面处置(T6 第 4 步)**:board golden 三屏 changed=0.00%——站桩徽标换墨面未越容差线(徽标像素占比低于 changed 计量或落在裁剪纸外),按卡片「若闸直接绿=登记即结」处置,**未重制基线**。附带说明:T1/T2 的按钮 crisp 翻转与九宫格皮变化同样零漂移(golden 裁剪区=棋盘视图,HUD 钮不在其内)。
|
||||
|
||||
## 四、代拍板追认单(白名单内执行项 + 事实订正,请用户追认)
|
||||
|
||||
**白名单内执行**:
|
||||
1. **hover 提亮档**=modulate Color(1.06,1.06,1.06)(项1:参考主钮 `lightened(0.06)` 量级;INK 字对比不受损——石纹底提亮后对比只升)。
|
||||
2. **禁用 α**=0.45(项2:基准值,与文字禁用同档;flat 两厂 bg+border 同 α 全幽灵化,与石纹 modulate 整图 α0.45 同纪律)。
|
||||
3. **焦点环**=INK 2px 内缩 1px(项3:裁值直落;内缩以负 expand margin 实现;引擎 focus 样式盒为叠加绘制——不遮钮底,「三类钮底可辨性实比」设计语言成立)。
|
||||
4. **换墨 token**(项4/Q6 裁后落值):GOLD_BRIGHT #E0B860(同族亮档优先既有亮族——取收益金同门值)/HERO_BLUE_BRIGHT #7EBAF0;语义岗冲撞,立新 token 走反哺点③。
|
||||
5. **连续 alpha 曲线**(项5):带内三角过渡 0→0.05→0(带宽 100 中分)+纵向线性衰减至 0(上亮下暗);STRETCH_TILE 平铺在 y=560 整倍数处有衰减重启接缝(α0.05 量级不可察),归 07 目检。
|
||||
6. **图标槽明度档**(项6):#806A4E,白图标 5.14:1 ≥3:1 硬约束达标(不触发回退案)。
|
||||
7. **布局修**(项7):商店=ALIGNMENT_CENTER;营地四栏等高=统一 min 高 336 与 EXPAND_FILL 拉伸两选项组合落(holder min 保锁定态栏高,面板 FILL 保任一栏长高时四栏同步)。
|
||||
8. **诊断钮落点**(项8):调试浮窗区块⑤(④两层调试之后、关闭钮之前),「诊断转储 · 转储」钮常驻可用不置灰——卡死取证在对局中更要能点(原角落钮亦无置灰)。
|
||||
|
||||
**卡片措辞与引擎事实的偏差(呈报追认)**:
|
||||
9. **V4 清零断言自撞**:初版「旧墨清零」全文件扫撞上本批新注记里的旧 token 名(STONE_FAINT 写进了换墨注记)——改回全文件严格扫+注记改语义名(「灰石弱化墨」)。教训:清零类断言扫全文件时,同批注记禁载旧 token 名。
|
||||
10. **Godot Image 8bit 量化=截断(非四舍五入)**:0.04977×255=12.69 实存 12——T4 峰值断言按截断量化校验(≥12/255 且 ≤0.05),非 bug。
|
||||
11. **ui_tune_probe 只读巡检同批入册**:连接数 10→11+白名单加 `_emit_diagnose_requested`——T5b 属 ruled 变化,探针机械适配(iter24 旧「十二行」断言换代同款先例)。
|
||||
12. **卡片 §2.2 texture_filter 枚举漏项**(开工检查发现①,用户裁按建议改法):计 12 实测 13,漏 `board_world.gd:50`(hero 立绘 NEAREST)——已勘误落卡;该点与全局 Nearest 同向、零翻转风险、不进白名单。
|
||||
13. **主区遗产脏件两处**(开工检查发现②):`game/project.godot` 编辑器对调(theme 两行换序,语义等价)与 `active.md` 编入快照——active.md 台账本批走主区侧写(不入分支,避免合并互撞);project.godot 合并点复检,用户择机自理(提交或丢弃该对调)。
|
||||
|
||||
## 五、GDD 反哺点(设计权威文档不随批改,待用户逐点裁;已登记 06 新条)
|
||||
|
||||
1. **art-bible §7 按钮五态/焦点态规格缺项**:无条款,本批实现(modulate 1.06/α0.45/INK 2px 内缩 1px)=临时权威——是否立条款、值是否冻结待裁。
|
||||
2. **平滑渐变件 LINEAR 白名单无例外条款**:全局 Nearest 下三件程序化平滑渐变挂显式 LINEAR,属有意豁免;§8.2 已有状态图标例外先例可援——豁免清单是否入册待裁。
|
||||
3. **§4.1 新色 token 语义岗登记**:GOLD_BRIGHT/HERO_BLUE_BRIGHT/SLOT_BACKDROP_SOFT 三 token 未登记——语义命名与值是否转正待裁。
|
||||
4. **氛围层风格一致性**:vignette/gradient_base/beams 保平滑连续 alpha,与 DitherBand Bayer 抖动派并存(Q5 已裁保平滑)——两派不一致性留整屏样张批统一裁决(样张批未开工,06 在册)。
|
||||
|
||||
## 六、实机目检总清单(归用户,07 ㉕ 登记不阻塞)
|
||||
|
||||
1. 按钮五态反馈:标题屏/营地/商店/设置/三选一逐屏——悬停(石纹钮提亮可感)、按下(本族下沉)、禁用(商店余额不足钮=本族幽灵化)三种反馈可感。
|
||||
2. 键盘焦点环:Tab 遍历各屏,INK 2px 内缩 1px 环可见不糊、不遮钮底字;三类钮底上环可辨性实比。
|
||||
3. 全局 Nearest 巡检:立绘/瓦片/图标/九宫格无新增糊感(应更 crisp);暗角与地图渐变无像素块(白名单生效判据);标题屏光带无硬边梯形、有过渡与衰减。
|
||||
4. 布局均衡:商店卡片区不堆上半;营地四栏视觉等高(含锁定态与图鉴栏)。
|
||||
5. 诊断钮清零:玩家画面无「诊断转储」钮;转储入口仅在调试浮窗可达。
|
||||
|
||||
## 七、遗留与风险
|
||||
|
||||
- 渲染闸 PIL 依赖:`render_gate.sh` 的 shot_checker/golden_board_crop 需 gamedev venv 的 PIL——运行前 PATH 前置 `D:/dev/python/envs/gamedev/Scripts`(本批两跑实证:裸 python 直接 ModuleNotFoundError)。
|
||||
- 遗留人闸不变:迭代 20 实机目检五件 + 21 营地四柜台〔07 ⑳〕+ 22 秘宝解锁装配〔07 ㉑〕+ 23 锻造工作间〔07 ㉒〕+ 24 敌人表三观测〔07 ㉓〕+ 25 全屏巡检〔07 ㉕ 前的 ㉔〕+ **26 逐屏巡检〔07 ㉕〕**。
|
||||
- 本迭代位仍预留后续追加卡(roadmap 注记维持);M4 数值批顺延 27+ 未排期。
|
||||
- 光柱 TILE 接缝(追认单 5)与焦点环三类钮底可辨性(追认单 3)归 07 目检,不达走 L2 微调(调宽/内缩/衰减梯度,不动色系不动主题层)。
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
迭代 18 四卡已全部已合并进 master:卡③ 提案批(merge de067ae)/卡⑤ 混编投放批(merge 0dbe3c3)/卡⑦ 种子随机化批(merge b91b973)/卡④ 生涯界面批(本批)。目检归用户逐项过;每节标注详细判据所在的出口报告。目检不阻塞后续开发,但发现的问题按正常缺陷修复流程登记。
|
||||
|
||||
> **✅ 核销状态(2026-10-14 qa 收尾批)**:用户实机目检回报全部完成,未呈报问题——卡⑤ 四项、卡⑦ 八项、卡④ 六项共 18 项同批核销(卡③ 纯文档批无实机目检项;卡⑤ 难度带 MC 取证读数挂账条随 M4 数值批履行,不属人闸)。
|
||||
|
||||
## 一、卡③ 武器锻造系统设计提案(纯文档批——无实机目检)
|
||||
|
||||
人闸=**提案盘问裁决**(异步,不阻塞其余卡):
|
||||
|
||||
Reference in new issue
Block a user