merge: 卡④提灯载体道具批落籍(2026-10-08 goal——fog_lantern 魔法提灯行=案A秘宝同调位新行按推荐全收+每战装配链显式重算接线+ui_input_probe 载体级断言 case⑮ 零删减+新单测 run_all 17→18 套+指路句 6 处换代+06 回写+秘宝目录九→十;行字段 provisional 出口追认;MC 静态论证零扰动)
This commit is contained in:
commit
4c171fc509
17 files changed
+306
-13
No files matched your search
@@ -905,6 +905,7 @@
|
||||
397. **迭代 19 五卡 goal T0 开工(2026-10-08,用户令五卡打包一次跑完——卡⓪主菜单开局缺陷修复批先行+卡①②③并发≤3+卡④收尾,全绿前禁停;本 goal 即 U0)**:定义面落籍单独一笔提交(roadmap 迭代19/20 行+06-待办清单+四任务书〔卡①自动化验收 v1.1/卡②旧界面断言回补 v1.1/卡③CI预接线 v1.2/卡④提灯载体 v1.2〕六文件入库;主区其余脏文件全属在飞遗产禁碰零触碰);基线复读三闸全绿=冒烟 834/0 三闸过+run_all 17 套件全绿+probe_gate 含 click 全绿(残留 Godot=0);台账预配号分配=卡⓪398/卡①399-400/卡②401/卡③402/卡④403/总收口404起(各卡记账前逐笔查撞,撞号顺延+出口报告披露)。
|
||||
398. **迭代 19 卡⓪主菜单开局缺陷修复批(2026-10-08,裁决依据=roadmap 卡⓪任务面+06-待办清单两缺陷条〔2026-10-07 用户确认成立〕;worktree g-plan2-iter19-card0 分支 iter19-card0-20261008 基点 b0a73df)**:四件全落——①主菜单开新/续玩两入口补传同调三键(main.gd 新增 static build_adventure_params :496-513 两入口共用构造,:471/:530 接线;取值与营地投影同源零新读取逻辑=装配集 save.attunement_equipped/Y 刷新池 meta.attune_refresh_charges/树 rule 键集 meta.tree_rule_keys;runner 侧受理零改动);②关卡开场行改传当前生效值(main.gd:539-549——int(db.hero.atk/max_hp) 表值→runner.effective_atk/effective_max_hp 与战斗面板同源,「含面板加成」后缀判断追加认 meta.hero_override atk/max_hp 局外 flat,白板局不带);③冒烟补两入口传参断言 +6 项(smoke_all.gd:4661-4687 直呼 build_adventure_params 单测统一构造面,开新/续玩×三键与来源一致+extra 并入,夹具 smoke_meta_tree 档 luck_coin+Y2 档+fg_posture a 侧,834→840);④删 adventure_runner.gd 三行重复赋值(原 :132-134 与 :129-131 逐字重复+中间零语句+_seed_attune_charges 纯重置幂等=零行为变化,删后 run_all 直呼参数面套件零漂移佐证)。重闸三件全绿=冒烟 840 项 0 失败三闸过(+6 全系新增断言)+probe_gate 含 click 全绿(click 走查真跑主菜单开局一场冒险问题=0)+run_all 17 套件全绿+残留 Godot=0;MC 零跑静态论证在案(MC 取数面直呼 runner 不经主菜单入口零触及);范围外三件(X/Y 双源倒置/被动同调呈现/Fork 归因行)零触碰。**披露/移交**——runner 侧 resume_adventure 受理面无 tree_rules 键(:215-217 仅两键,任务书「接收面现成」对 tree_rules 不成立):两入口三键均已传出、续玩局 tree_rules 暂不被消费与修复前同态无回归,补一行受理即可闭环归用户裁定随后续批落。出口报告=design/qa/iter19-card0-exit-report-2026-10-08.md;提交四笔 1d2894b(①②)/fb845b7(③)/8a654cc(④+出口报告)/本笔(台账记账)。
|
||||
402. **迭代 19 卡③CI 预接线批(2026-10-08,裁决依据=任务书 v1.2 全裁〔裁点①远端仓库=暂不建维持待命/裁点② ui_layout 入 CI 候卡①后裁〕;worktree g-plan2-iter19-ciwire 分支 iter19-ciwire-20261008 基点 9160942;B6 出处=自动化验收补齐批 §一明示不收件,随本批闭环销账)**:T0-T3 全履行——tests.yml 单文件改写四件:①原 :41-45 整块注释探针段(示例 ui_probe/ui_click_probe 选型滞后)解封=正式轻闸三探针段(input/struct/contrast=probe_gate 默认段同款;每探针 timeout 120s 外壳+退出码 124/137 超时判+grep PASS 串判定〔T0 本机实跑三探针取 PASS 行样本钉死判据〕,三探针全跑不短路汇总定红绿,probe_gate 判定逻辑 Linux 独立镜像——probe_gate.sh 本体系 Windows 专用〔PowerShell+taskkill〕CI 禁调);②冷检出导入步 `--import` 300s 前置冒烟之前(job 级基础设施步同覆盖冒烟与探针 .godot 依赖,Q9 甲);③触发分支 push/pull_request 两处 [main]→[master] 修死角(实际分支 master、main 不存在);④头注释保留「尚无远端」句+追加「远端仓库建好后无需改本文件即自动生效」;探针日志落 logs/probe_ci/ 顺现有 upload-artifact 段零改并入。验收全静态(本地无远端端到端不可验=红线边界)五判据全过:pyyaml 解析 OK+CI 段 res:// 引用逐一实存+timeout 外壳清单齐(300s 导入/120s 冒烟/120s×3 探针)+头注释自动生效句在位+diff 面仅 tests.yml+roadmap 账务行(游戏代码/探针件/probe_gate.sh/CLAUDE.md 零 diff=契约 1);轻段选型锁死三件、窗口化四件与重闸五件零入(契约 2);MC/verifier 零跑。**S1 呈报项(该段冻结未代修,处置待用户裁)=tests.yml setup-godot 步 `nikeee/godot-actions/setup-godot@v2` 指向不存在仓库**(GitHub API 404+nikeee 159 公共仓 grep godot 零命中+marketplace 同名=Vitorgus v1 Godot3 旧件+对照 actions/checkout 查询正常=API 可信;候选替代 chickensoft-games/setup-godot v2.4.3 待裁甲换 action/乙手动下载/丙挂起)——远端建好首跑前必须先裁否则 smoke job 必红;S2 未触发(兄弟卡未先行合并,master 停 9160942);roadmap 卡③行内登记按 Q13 由主控合并时串行重放。**移交**——首次 push 后人工盯首跑清单(任务书 §七 三条+本批增补 setup-godot 前置门一条)随远端立项之日激活。出口报告=design/qa/iter19-ciwire-exit-report-2026-10-08.md;提交三笔 3799e0c(T1 tests.yml)/7397603(T3 roadmap)/本笔(出口报告+台账记账)。
|
||||
403. **迭代 19 卡④提灯载体道具批(2026-10-08,裁决依据=任务书 v1.2 全裁〔裁点①载体=案A 秘宝·同调位新行/裁点②缺陷另卡先行=卡⓪已落籍=本卡 T1 前置门 S1 天然满足〔基点 568101b 链上含卡⓪ merge 9160942〕/裁点③随案C 落选消解;行字段=用户 2026-10-08「按推荐」一次秒答全收〕;worktree g-plan2-iter19-lantern 分支 iter19-lantern-20261008 基点 568101b;B4 出处=自动化验收补齐批 §一明示不收件,随本批闭环销账)**:T1-T5 全履行——T1=treasure_items.tres 表尾追加 fog_lantern「魔法提灯」行(行字段裁值:display_name 魔法提灯/desc 灯光区半径+2/id fog_lantern/slot_cost 1/稀有度不设字段〔KEY_WHITELIST 封闭十七键〕/unlock_requires 键省略=已解锁;机械字段 form=passive+**triggers 显式空数组**〔活行空 effect_kinds 校验豁免以 row.has("triggers") 为条件——treasure_item_table.gd:111,漏写=加载红,本批头号易错点已钉〕+effect_kinds=[]/target=none/magnitude=0/use_phase=active_dig/dimension_tags=[info];表尾追加保 MC 自动档装配画像逐位不变);T2=接线生产路径贯通(完成度 0→1):battle_orchestrator.gd:128-134 装配集公共只读出口 attune_has(_attune_has 契约化出口,save v6 先例)+main.gd:852-860/:875-886 呈现桥 _sync_fog_lantern 挂 _on_round_started ri==1 每战首轮装配链**显式重算含否**(🔴 契约 7 Q8.1 复原语义=禁战斗结束隐式复原;时序依据=round_started 首轮发射位在 begin_battle 尾 attunement 注入后——board_changed 在 _install_new_board 内先发装配集后注入,同帧直挂 _on_board_changed 会读上一战旧集故不挂);T3=测试三形态(契约 9):case⑮ 内载体级段不开新 case(装配→build_adventure_params 参数面+settlement.attunement 注入→呈现桥→lantern=2 且 dist==R+1 转可见+卸装显式重算复原;case⑮ 既有 17 断言面零删减)+smoke 现有套件 _smoke_adventure_table 加断言 +4(行字段逐键/同调目录投影 display_name 九件→十件/装配贯通 attune_has=true/空装配基线 false)+存档回归 breakpoint_resume_test Part 6(装配→停点→续玩受理→回局首战 attune_has 仍 true)+新单测 fog_lantern_wiring_test.gd(run_all manifest 17→18 套);T4=改道指路句实查 6 处全换代(board_view.gd :139/:145+art-bible.md:387〔常量拟名 LIGHT_RADIUS_LANTERN_BONUS 顺手对齐落码实名 FOG_LANTERN_BONUS〕+HUD框架.md :168/:170 同段 2 处整段换代+落籍注记;残留「Alpha 信息件」字样三处均=销账声明/改道留痕叙事非活性指路;qa 历史成文零触碰)+06-待办清单 菜单开局同调传参缺陷条回写落籍态(卡⓪ merge 9160942+resume tree_rules 受理缺口披露归用户裁)+秘宝.md 目录九件→十件+v1.1 行(速览 aux_items.tres→treasure_items.tres 过时文件名顺手订正)+roadmap 迭代 19 行卡④段落籍登记;T5=批末重闸三件全绿=冒烟 840→**844 项 0 失败**三闸过(+4 全系新增断言)+probe_gate 含 click 全绿(input PASS/struct PASS/contrast 15 对 PASS〔本分支基点为卡②合并前旧态,主控合并时按 master 38 对现役重放〕+click 段退出码 0)+run_all **18 套件**全绿+残留 Godot=0 双点(probe_gate 批末闸+批后 powershell 复点);MC 零跑静态论证在案(纯呈现层:行 triggers 空=效果引擎零订阅结算流逐位不受扰+装配画像表尾不可达 slots≤3+off 态 _fog_lantern 写 0 数值恒等——2026-10-07 用户裁 Q3 静态替代)。**消歧**——greedy_lantern(feats.tres:291 贪婪矿灯 dig_reveal yield_mult)零关联零触碰,行文全称「魔法提灯」。**移交**——提灯点亮视觉挂账不动(资产升档重产批+06 挂起项,S2 未触发);全局变异案E 解封条件「提灯接线落位」随本批推进、解封重议归全局变异批 Own;显影尘/地穴全图卷封存重定仍留 Alpha 信息件重定批零触碰;roadmap 行冲突重放归主控。出口报告=design/qa/iter19-lantern-exit-report-2026-10-08.md;提交五笔 90a39f1(T1)/eef343c(T2)/f0f2009(T3)/0b5834d(T4)/本笔(T5 重闸+出口报告+台账记账)。
|
||||
|
||||
|
||||
401. **迭代 19 卡②旧界面呈现断言回补批(2026-10-08,任务书=design/research/任务书-旧界面呈现断言回补批-2026-10-07.md v1.1 待裁点 0 项;worktree g-plan2-iter19-uibackfill 分支 iter19-uibackfill-20261008 基点 9160942)**:三件全落——①T1+T2 ui_contrast 测点对 15→38 对(+23:battle_end 3/shop 5/camp 9/settings 2/curio 2/迷雾记忆墨合成对 1,全 UiKit 常量实时求值+行尾注理由,石皮纹面板按缺素材回退牌色 PANEL_DATA 计);②T3 ui_struct 补采样 legend+node 两根(13→15 根全真路径开合——legend=board_zone.legend_toggled 信号开→closed 信号关,node=_open_modal 登记册+show_rest 合成喂入→continue_pressed 信号关;既有 13 根/五族断言/pause-career 契约族/resume 专项零删减);③T4 文档面三件(出口报告+06 settlement_review 遗留件退役处置登记落位〔随生涯实装批 P5 甲复活承接或正式删除二选一归用户裁〕+roadmap 卡②段换代)。**🔴 停机点 S1 命中:新对首跑暴露存量对比度违例 7 项**——结算 GP 账行 GOLD_DEEP/结算板 2.67:1、商店 legacy 行卡名 INK_LABEL/暗底行卡 1.12:1(重度不可读档)、货架价签 GOLD/货架板 1.46:1、营地铭牌副题 STONE/铭牌板 3.59:1、行价格 STONE/行板 4.02:1、树分组头 GOLD_DEEP/柜台板 2.67:1、工坊状态 GOLD_DEEP/行板 3.00:1(V1-V7 全量清单+修复建议案〔全现役常量换墨可落〕在出口报告 §3);按任务书 §十 S1 停机呈报,处置权归用户(甲=另立修复批〔违例对在册=闸红登记存量形态,修后自然转绿〕/乙=回拔 7 对留纸面登记),批内零修(红线:旧屏呈现层代码零 diff,git diff 可核=仅两探针+文档面)。S2 未命中:legend/node 结构首跑全绿、WL 零新增(仍空表)。闸数字改前/改后——冒烟 840 项 0 失败持平+run_all 17 套件持平+残留 Godot=0;ui_contrast FAIL 7 项越带(S1 呈报物非实现回归,存量红零新增);ui_struct PASS 15 根。**时长闸披露**——probe_gate 默认段整闸基线窗口 186.7s→改后窗口 306.3s 系兄弟卡①③并发噪声主导(同窗口交错 A/B 三轮:同一探针本体波动 5.1→20.6s,改前 B2 亦跑出 15.7s);本体同窗口配对差中位 contrast +0.52s/struct -1.64s 无系统性增量、技术下限毫秒级(23 对静态求值+两屏采样≈0.5s)——按本体配对口径验收闸 5(≤2s)通过,整闸空窗复测归主控合并窗口。白名单行使披露——三不收位(bcard 描述/脚注/✓章/primary 钮字四处内联 Color8 无常量形态+page_shell 顶条板同;TG_* 五族带=非文字装饰件不适用 4.5 文字判据);对数 38 超预期带 25-32 系违例位全量入表(登记存量须哨兵在册)。迷雾对注——floor avg #453020 系素材侧值无常量形态取 art-bible §389 迭代 16 T0 在册复算值(合成底 #3E3731 与在册一致、6.7:1 逐位吻合手算);三关逐关 avg 无在册记录且素材不入 git 不可实查〔主区只读约束〕,最坏情况判据扩对归移交。**移交六件**——①S1 七项处置(最高优先);②迷雾三关扩对(素材入库/授权后脚本算 avg);③字面量墨收测前置=ui_kit 立常量;④TG 装饰带非文字判据另立探针段;⑤settlement_review 去向二选一;⑥probe_gate 整闸空窗复测。出口报告=design/qa/iter19-uibackfill-exit-report-2026-10-08.md;提交四笔 92c0598(T1+T2)/74d2f73(T3)/6339b63(T4 文档面)/本笔(台账记账)。
|
||||
|
||||
@@ -384,7 +384,7 @@
|
||||
|
||||
> **白话**:战斗棋盘不再整板可见——只有以角色为中心的菱形灯光区看得清,区外没开过的格子沉入全黑,开过的格子留下灰阶的「记忆」。像在洞穴里举灯探索。机制口径(可见性/生命周期/纯呈现纪律)的正主 =《HUD框架》「视野迷雾:菱形灯光区与黑暗边界」节(全项目唯一正主,引用只指路),该节点名「黑暗区域渲染规格(暗淡态明度、迷雾过渡)归 art-bible」,本节即其承载——只管"怎么画",不复述机制。纯呈现层:格态、数字真值、清图判定零影响;零素材新增(全部程序化遮罩/调制);类型微光语义零改动。
|
||||
|
||||
- **菱形灯光区(遮罩几何)**:灯光区 = 以角色所在格为中心、**曼哈顿距离 ≤ LIGHT_RADIUS** 的格集,区内照常渲染。LIGHT_RADIUS 走表值/常量参数化,**基准 8**——正主「灯光区起步半径=微光环 8 格」的落码口径(半径数值沿微光「周围 8 格」的 8 起步,实测后可调)。**两圈分立注**:类型微光作用圈 = 英雄贴身 8 邻格(与可挖域同圈,正主《HUD框架》「未开格类型微光」节),**不随灯光区扩**(正主配套拍板④)——灯光区只裁可见性,微光锚仍是可挖域,两圈几何分立、半径参数互不读写。提灯插值位:LIGHT_RADIUS_LANTERN_BONUS = **+2**(flat 整数档,正主配套拍板),**预留不接效果**(接线归 Alpha 信息件批)。边界随角色格位逐格重算,无半径插值动画。←正主;§2 光照氛围允许域
|
||||
- **菱形灯光区(遮罩几何)**:灯光区 = 以角色所在格为中心、**曼哈顿距离 ≤ LIGHT_RADIUS** 的格集,区内照常渲染。LIGHT_RADIUS 走表值/常量参数化,**基准 8**——正主「灯光区起步半径=微光环 8 格」的落码口径(半径数值沿微光「周围 8 格」的 8 起步,实测后可调)。**两圈分立注**:类型微光作用圈 = 英雄贴身 8 邻格(与可挖域同圈,正主《HUD框架》「未开格类型微光」节),**不随灯光区扩**(正主配套拍板④)——灯光区只裁可见性,微光锚仍是可挖域,两圈几何分立、半径参数互不读写。提灯插值位:FOG_LANTERN_BONUS = **+2**(flat 整数档,正主配套拍板;落码常量名 `board_view.gd FOG_LANTERN_BONUS`——本条旧记 LIGHT_RADIUS_LANTERN_BONUS 系文档侧拟名,随迭代 19 卡④落籍对齐实名),**已接效果落籍**(2026-10-08 迭代 19 卡④:载体=秘宝·同调位 fog_lantern「魔法提灯」行,组合根每战装配链显式重算接线;呈现画法零改动——本节只管"怎么画",机制正主仍归《HUD框架》)。边界随角色格位逐格重算,无半径插值动画。←正主;§2 光照氛围允许域
|
||||
- **区外未开格:全黑不渲染(不透明档,照抄正主)**:正主原文「区外**未开格=全黑不渲染**」——不透明纯黑(L=0),**非高遮蔽半透档**。理由注记(为何不用高遮蔽档):①三档信息阶梯干净——未开格不可见=零信息、记忆格=弱信息、活格=全信息,叠读不打架;②高遮蔽档下砖面纹理隐约残留,与「类型微光=未开格唯一信息通道」(§4.2/§4.6.3)冲突——纹理残影泄格面观感;③正主验收线「区外未开格不可见」须二值态才能逐格断言。←正主;§4.2
|
||||
- **区外已开格:暗淡记忆态(灰显可读档,2026-10-06 UI 设计对齐批 P10 乙换装)**:画法 = **地板纹理原样 + 灰罩压顶**(demo 口径换装——原「程序化素色记忆板平涂」退役;纹理直画后 `FOG_MEMORY_PLATE #3A3A3A` α0.66 灰罩盖顶,素材零改动)+ 格内元素灰阶随罩隐现:**记忆墨 #C4C4C4(中性灰 L≈0.55)**;数字对合成底实测 **≈6.7:1 ≥4.5:1**(WCAG 硬指标;地板纹理均值 #453020 与灰罩合成后 #3E3731 复算,迭代 16 T0)。双峰板色牌格在记忆态**退牌归板**——牌面并入记忆态、数字以记忆墨直画。可辨性自查判据(三通道,落码后随样张/实机自检):①对全黑未开格——合成底 #3E3731(L≈0.036)对 L0,实机目检常光档可分(暗房档一并抽检);②对灯光区内活态已开格——主判据=数字墨灰度差(记忆墨 L0.55 对亮墨三档 L≥0.75 / 色牌 #F5EAD3 L≈0.83,灰度 ΔL≥0.20)+ 色相通道(记忆态近中性灰,对活态暖底暖墨);格底明度差为辅助通道;③格态三形在记忆态保持灰度可辨——形通道经纹理+灰罩形态不变,沿 §1.4 验收 2 同源判据。**旗不在记忆态面**:旗只插在未开格,区外未开格全黑——旗印记随格隐没、灯光区移回复显(纯呈现,旗数据零影响,正主口径的显式推论)。←HUD框架 可访问性基线;§4.1;§1.4;§3.2
|
||||
- **迷雾过渡边:硬边(逐格二值)**:灯光区边界 = **整格二值切换**(区内全渲染 / 区外全黑或记忆态),**不做渐变过渡带、不做半透明晕边**。理由:①边界是信息边界不是氛围晕——渐变中间态 =「看得见但看不清」,破数字可读硬指标与记忆态明度档;②正主验收断言(边界格呈态、两态逐位一致)须格级二值可判;③与砖面整格表达(§3.2 高墙瓦片体系)、ITB 格内信息分层气质同轴。无动画,减动效无涉。←正主;§1.2 原则一;§3.2
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
|
||||
**现状**:`main.gd:475` `_start_adventure` 参数面只传 `hero_override`/`first_script`/`treasure_unlocked`/`shop_mode` 四键,未传 `attunement`/`attune_refresh_y`/`tree_rules`;runner 受理面存在(`adventure_runner.gd:128-137`,缺省空数组=白板开局);营地装配持久化于 `save.attunement_equipped`(`meta_progression.gd:354-366`)但呈现层开局无传参调用——**主菜单开新局时,营地装配的同调件与局外天赋树规则键疑似不生效**。冒烟未拦系 smoke_all 直呼 runner 参数面(`smoke_all.gd:4304` 有传参)跳过了呈现层。2026-10-06 数据驱动架构调研顺带发现,本人已复核传参面代码,未实机复验。
|
||||
|
||||
**归属**:缺陷修复 mini-loop(复验+修复待用户令)
|
||||
**归属**:~~缺陷修复 mini-loop(复验+修复待用户令)~~ 迭代 19 卡⓪①号项(2026-10-08 用户令并入迭代 19、执行序第一)
|
||||
|
||||
**状态**:**缺陷确认成立(2026-10-07 本会话静态考证)**——传参面 main.gd:510(开局)/:470(继续上局)均 4 键,接收面 adventure_runner.gd:129-138/215-217 缺省空集,全仓无补偿路径(runner 不读 save/呈现层无二次装配/营地钩子仅刷新投影七条候选逐一排除),真实局同调/X/Y 恒空、仅冒烟夹具 level_autoplay.gd:160-169 喂值,冒烟零覆盖。**已编入迭代 19 卡⓪**(原迭代 20 头卡:2026-10-07 立为迭代 20 头卡,同日曾短暂编入迭代 19 又随其清空撤出,2026-10-08 用户令终并入迭代 19 为卡⓪、执行序第一;含开场行生效值+传参断言+重复行清理)。
|
||||
**状态**:**✅ 已修复落籍(2026-10-08 迭代 19 卡⓪,merge 9160942)**——缺陷确认成立(2026-10-07 本会话静态考证):传参面 main.gd:510(开局)/:470(继续上局)均 4 键,接收面 adventure_runner.gd:129-138/215-217 缺省空集,全仓无补偿路径,真实局同调/X/Y 恒空、仅冒烟夹具喂值,冒烟零覆盖。修复=①②`main.build_adventure_params` static 统一构造(开新/续玩两入口共用,attunement/attune_refresh_y/tree_rules 三键随开局下传,取值与营地投影同源)+开场行改传生效值(卡⓪②号项同批);③冒烟补两入口传参断言(+6);④删三行重复赋值。重闸三件全绿(冒烟 840/0)。**遗留披露**:resume 侧 tree_rules 受理缺口在册(runner resume_adventure 现收 attunement/attune_refresh_y 两键、tree_rules 暂不消费——传参先行,归用户裁)。原「疑似缺陷待复验」态就此销账。
|
||||
|
||||
#### 关卡开场行攻血显示初始表值——缺陷确认(2026-10-07 本会话考证登记)
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
- ~~**过渡形态**(2026-09-29 迭代 7 落籍)~~ **已退役**:掉落投放(2026-10-01 已随「挖格不掉道具」退役)/奖励节点三选一道具卡(2026-10-03 T7 出池)/关卡域库存/挖掘期两步使用——本文以下正文章节「掉落池获取」「关卡域库存」「什么时候怎么用」诸节随之整体退役,保留为历史口径(本节横幅为准)。
|
||||
- **终局形态(现行)= 局外同调件**:开局前在营地装配(营地·道具工坊柜台「同调装配」段)、占同调位(0 起步、硬上限 3,slot_cost 恒 1)、被动件整局生效/主动件每冒险充能(冒险开始重置)。设计权威底稿 = 原提案(git 57da58c 已退役——2026-09-22 用户八条拍板)+ 任务书 v1.1(P1-P8 全裁,已退役)。
|
||||
|
||||
**现行形态速览**(实现面 = `game/data/tables/attunement_growth.tres` + `aux_items.tres` + `game/core/attunement.gd`):
|
||||
**现行形态速览**(实现面 = `game/data/tables/attunement_growth.tres` + `treasure_items.tres`〔旧记 aux_items.tres 系过时文件名,2026-10-08 迭代 19 卡④顺手订正〕 + `game/core/attunement.gd`):
|
||||
|
||||
- **同调位增长**:通关次数 + Boss 击杀数(含重复,收束入账 save v4)经 `attunement_growth.tres` 里程碑谓词表实时求值(Σ达成 grant clamp slot_cap)——试玩调平衡=改表不动码(迭代 10 欠账③已清偿:过渡键 transitional_sync_slots 退役)。
|
||||
- **目录九件**(值全 provisional 归难度曲线与Boss):被动六件=淬毒刃纹(克制面穿刺/魔法直伤 +N)/标中殉爆(每标中一旗全体存活敌吃 N 群伤)/惊巢反制(挖雷惩罚减半+反弹 N)/工兵晨令(前 effective_rounds 轮每轮 +1 AP,P4 甲表值化)/偏运硬币(装板摇号稀有正向 kinds 权重 +N,池结构零触碰)/三选一刷新件(X 次/每碰三选一);主动三件=掘进蓄能(每开够 N 安全格积 1 点发起临时 AP,charges 2/冒险)/探巢摆钟(3×3 真视窄域,charges 2/冒险)/爆破工兵包(3×3 真视 + 4 AP + **中立移除雷格**,active_charged 装配件 charges 2/冒险——迭代 13 实装,见下「中立移除」注)。
|
||||
- **目录十件**(值全 provisional 归难度曲线与Boss):被动七件=淬毒刃纹(克制面穿刺/魔法直伤 +N)/标中殉爆(每标中一旗全体存活敌吃 N 群伤)/惊巢反制(挖雷惩罚减半+反弹 N)/工兵晨令(前 effective_rounds 轮每轮 +1 AP,P4 甲表值化)/偏运硬币(装板摇号稀有正向 kinds 权重 +N,池结构零触碰)/三选一刷新件(X 次/每碰三选一)/**魔法提灯**(灯光区半径 +2——视野迷雾外扩纯呈现载体件,2026-10-08 迭代 19 卡④落籍,triggers 显式空=不订阅结算事件不走效果引擎,接线=组合根每战装配链显式重算,正主=HUD框架「视野迷雾」节);主动三件=掘进蓄能(每开够 N 安全格积 1 点发起临时 AP,charges 2/冒险)/探巢摆钟(3×3 真视窄域,charges 2/冒险)/爆破工兵包(3×3 真视 + 4 AP + **中立移除雷格**,active_charged 装配件 charges 2/冒险——迭代 13 实装,见下「中立移除」注)。
|
||||
|
||||
> **中立移除(迭代 13 T7/T8 实装口径;裁决事实源=任务书-工程债与测试基建批-2026-10-04.md P1/P2 甲,随批吸收本节为正主)**:使用时对 3×3 区域做**中立移除**——只移除「未揭示、无旗、是雷」的格:不引爆、不揭示、不进连锁;被移除格退色降档呈现(暗淡记忆态同族)、不可挖掘不可插旗(拒绝零消耗);**周边邻接数字=原始雷数冻结不重算(P1 甲)**,移除格自身无数字可保留(未揭示雷格本无数字,P2 甲空集真)。清图判定零涉(分母只数安全格,雷格不入);旗判定基线零回溯(有旗格跳过移除)。获得渠道=营地同调位装配(不入掉落投放池——form 非空行永不入过渡渠道,模拟/自动档零涉,MC 读数零扰动)。
|
||||
- **三选一刷新双源**(P1 甲):X=刷新件每碰三选一重给(优先消耗、不结转)+ Y=营地刷新升级行(每冒险开局注入冒险周期池、用完即无;meta.tres attune_refresh_upgrade 行族);重抽消费 reward_pick 既有洗牌流,池规则全保留;autoplay 默认不刷(钓鱼归玩家)。**GP 付费档(2026-10-06 用户令——三选一刷新对齐商店独立刷新)**:免费双源用尽后可 GP 付费刷新,价=ceil(20×1.8^本次停点已付费刷) provisional(与商店货架刷新读同两个调参旋钮 shop_refresh_*,单点调参);付费刷计数每停点清零(与商店进店清零同构);钱包=冒险 GP 同一账本(LevelRunner.spend_gp 单口);余额不足=钮禁用(不隐藏,对齐商店)。店内门票专长三选一暂不挂刷新面(维持现状,扩面须先裁门票保底计数交互)。**两账语义**(框架见[核心循环](../../01-核心循环.md)「生命周期轴」节):Y=存量账(冒险级计数器,开局注入基值;道具可一次性加仓、加完该道具消尽;跨呈现持续、用完即无);X=当次临时账(每次三选一呈现重置为基线;消耗顺序=先扣临时、后扣存量;未用临时不结转)。**「三选一呈现」是比节点更细的事件**——奖励节点、Boss 通关奖励、商店(门票)三处都触发;X 挂呈现、不挂节点。奇物「刷新次数+1」类资源件的语义=存量账一次性加仓。
|
||||
@@ -170,7 +170,7 @@
|
||||
|---|---|---|---|---|---|---|
|
||||
| 探宝罗盘 / 工兵令 / 探巢摆钟 / 爆破工兵包 / 显影尘 / 地穴全图卷(六行,行结构如左列序) | — | — | — | — | 六行登记值(w / t / mag 等)以 registry `aux_items` mvp_content 为准 | — |
|
||||
|
||||
投放态注记(2026-10-04 迭代 13 随批校正):迭代 11 同调批起道具件获渠=**营地同调位装配**(form 非空行——现役九件全数同调行,含探巢摆钟/掘进蓄能/爆破工兵包两代工兵系);掉落投放池过渡渠道现行**零行**(工兵令 sapper_order 已 retired 由工兵晨令 dawn_order 接位、探宝罗盘 retired 词表兼容留痕、显影尘/地穴全图卷 deferred 能力封存呈现);奖励三选一的道具件令牌随池空集休眠(aux_item 词表位保留)。
|
||||
投放态注记(2026-10-04 迭代 13 随批校正;2026-10-08 迭代 19 卡④随十件口径顺笔):迭代 11 同调批起道具件获渠=**营地同调位装配**(form 非空行——现役十件全数同调行,含探巢摆钟/掘进蓄能/爆破工兵包两代工兵系+魔法提灯视野件);掉落投放池过渡渠道现行**零行**(工兵令 sapper_order 已 retired 由工兵晨令 dawn_order 接位、探宝罗盘 retired 词表兼容留痕、显影尘/地穴全图卷 deferred 能力封存呈现);奖励三选一的道具件令牌随池空集休眠(aux_item 词表位保留)。
|
||||
|
||||
两件稀有道具的定位读数:双维组合加数值跳档。爆破工兵包的加量锚定“半轮预算”(锚定比例见[行动经济](行动经济.md),ap_per_round 现值见 action_economy.tres;两者调参联动复核);稀有件供给读数由掉落权重推导(registry `aux_items`),本文不登记读数。
|
||||
|
||||
@@ -216,6 +216,7 @@ playtest 预警(预注册,归难度曲线与Boss):
|
||||
| v0.6 | 2026-09-30 | **拍板点 1 收口批(2026-09-30 用户裁决甲:同调=终局方向)**:①新增「定位与形态沿革」节——现行正文定性=切片期过渡形态、终局=局外同调件(设计权威底稿=原提案八拍板,git 57da58c 已退役),两态关系=形态替换、衔接纪律与事故留痕入节;②正文口径回写四处:五维度表信息/规划/反制三行改现行态(罗盘退役/显影件封存/豁免面入正文)、覆盖检查改投放维度覆盖口径、掉落池获取节补解锁门控(2026-09-29 拍板③甲)、板级叠加层预读集改「机制在案无投放来源」;③验收两条(护栏/覆盖检查)与调参表投放态注记、地形变异依赖行同步;④实施批登记见 06「秘宝同调实施批」条。审计冲突 C19/C29 随批收口(全录见审计报告 git 提交 c095916,报告已退役) |
|
||||
| v0.7 | 2026-10-01 | **奖励节点渠道改写注记(迭代 10 追加批——用户拍板「奖励节点与通关三选一共享同池」)**:①「奖励节点三选一构筑点」形态(v0.5 ④)退役——奖励节点改提升三选一共享池(秘宝件为池中 1/6 权重选项,同调位满位替换交互随 BonusPickOverlay 共用面生效,spec:node-reward.md v2.0);②道具件经节点渠道入本关库存(来源归因 reward_node,与掉落/三选一渠道同受 transitional_sync_slots 过渡上限约束);③战斗掉落渠道零改动;④本批过渡约束形态与切换义务注记见 registry aux_items 条同日批注;同调实施批的全渠道统一收口义务不变 |
|
||||
| v0.8 | 2026-10-03 | **反制契约作废批(2026-10-03 用户终裁——层级错配失败设计)**:①五维度「反制」行与豁免面 {plan, info, counter} 的 counter 注记改终裁态(原框架契约「每变异≥1反制道具」作废,终裁理由见地形变异.md v0.6/本文件 v0.8 版本行(原 06 条目已收口移除));②上游地形变异依赖行、P2 后置行同步改「迭代 12 调研前置重定」;③地形变异.md v0.6 同批落义务作废注记;④迭代 11 范围裁定(同调→商店→迷雾三批)见 roadmap 迭代 11+ 行——反制批移迭代 12 |
|
||||
| v1.1 | 2026-10-08 | **提灯载体行入目录(迭代 19 卡④)**:目录九件→十件(被动七件——新增魔法提灯 fog_lantern「灯光区半径+2」,视野迷雾外扩纯呈现载体件,triggers 显式空=不订阅结算事件不走效果引擎,接线=组合根每战装配链显式重算,效果语义正主=HUD框架「视野迷雾」节);速览实现面文件名订正 aux_items.tres→treasure_items.tres(过时残留);投放态注记随十件口径顺笔。行值=用户「按推荐」全收(provisional 出口追认随卡④出口报告) |
|
||||
| v1.0 | 2026-10-06 | **效果声明换代(内容数据驱动扩展批)**:被动六件(淬毒刃纹/偏运硬币/工兵晨令/惊巢反制/标中殉爆)改订阅行+掘进蓄能受理闸数据化(使用事件订阅+积点计数器)——按件 id 硬编码清零;结构冻结六条零触碰,行为与迁移前逐位一致(MC 同种子 40 局对拍实证)。
|
||||
| v0.9 | 2026-10-05 | **消歧更名批(用户拍板 2026-10-05):系统更名「魔法道具」→「秘宝」**。**更名理由**:「魔法」一词在本作已被征用为敌方侧伤害/护甲语汇(`magic_bolt 魔法矢` / `magic_recoil 魔法反噬` / `magic 魔法族` 格面微光 / `ward 魔法护甲`),「魔法道具」易被读成"魔法属性的道具";「秘宝」取"神秘·强大·稀有"义,与九件内容气质(工兵/工程/手艺向)契合,且与局内道具(奇物)不冲突。**同调位机制名保留不变**(attunement 仍为 DND 词,机制血统不受更名影响)。**本批仅改文档称谓,代码不动**——代码标识符仍为 `aux_*` / `AUXILIARY_ITEMS`(auxiliary 词根为过渡形态遗留,与中文名不同步属已知欠债,另批处理);退役路径残留玩家可见文案(`battle_narrator.gd:117-118`、`bonus_interact_controller.gd:76`)亦留另批。历史定稿文档(research/ 提案与任务书、qa/ 检查单、archive/ 归档)按换名先例原样保留不改。 |
|
||||
| v1.2 | 2026-10-07 | **三层职责分界批(用户裁——框架正主=[核心循环](../../01-核心循环.md)「道具三层职责与分界」节同批落文)**:头部一句话由「扫雷侧同调机制件·机制轴唯一来源」换代为「营地装配的角色机能件」(操作包络加强,不出裸属性值、不改战斗结算机制);现行目录机制向三件(淬毒刃纹/标中殉爆/惊巢反制)经用户点名与本约束不符,归留本层重设计批处置,冻结期内维持现状;正文与承重契约零改动(正文「机制轴」表述刷新归本层重设计批) |
|
||||
|
||||
@@ -165,9 +165,9 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| 关联与边界 | 与「未开格类型微光」同边界——灯光区起步半径=微光环 8 格(同圈起步,实测后可调);格态数据归[排雷玩法](../排雷循环/排雷玩法.md);黑暗区域渲染规格(暗淡态明度、迷雾过渡)归 [art-bible](../../../art/art-bible.md) 修订随实施批;初始展开收窄不在本案(后置与 Alpha 差异化批窗口合并再议) |
|
||||
| 实装状态 | **已实装**(2026-10-03 迭代 11 第④批落籍;四裁决逐条对账与验收线转正见本节末「实施状态」注记;渲染规格 = [art-bible](../../../art/art-bible.md) §6.5) |
|
||||
|
||||
配套拍板(同日):魔法提灯=灯甲形态(光照圈外扩 +2 格,flat 整数档)随迷雾立项;**类型微光不随视野扩大**(类型先读仍只贴身 8 格,微光锚=可挖域);提灯载体归 aux_items 新行,随 Alpha 信息件重定批一并登记,呈现面挂「资产升档重产批」。
|
||||
配套拍板(同日):魔法提灯=灯甲形态(光照圈外扩 +2 格,flat 整数档)随迷雾立项;**类型微光不随视野扩大**(类型先读仍只贴身 8 格,微光锚=可挖域);提灯载体归 aux_items 新行(登记原文——2026-10-07 用户令改道为独立卡,2026-10-08 裁案A=秘宝·同调位新行落位,见下方实施状态注记),呈现面挂「资产升档重产批」(挂账不动)。
|
||||
|
||||
**实施状态(2026-10-03 迭代 11 第④批落籍)**:迷雾遮蔽+菱形灯光区跟随+暗淡记忆态上线,探针断言随批扩(ui_input_probe case⑮)。四裁决逐条对账——①案甲视野迷雾立项(纯呈现层):迷雾开关分层验证可用(呈现态布尔,off 态=无迷雾基线),同板同动作序列与 MC 对拍逐位一致;②暗淡记忆态:区外已开格灰显+数字可读,明度按 [art-bible](../../../art/art-bible.md) §6.5 落文值(记忆板 #3A3A3A/记忆墨 #C4C4C4,provisional);③灯光半径=微光环 8 格同圈:LIGHT_RADIUS=8 参数化(曼哈顿菱形,常量);④提灯 +2、微光不扩:LIGHT_RADIUS_LANTERN_BONUS=+2 预留未接效果(接线归 Alpha 信息件批),类型微光仍贴身 8 邻格零改动。**〔2026-10-05 迭代14⑤接线注记〕公共接线面已就位**——`board_view.set_fog_lantern(enabled)`(true=半径 8+2、false=复原 0;写入即 refresh 重算雾态),半径算式消费 `_fog_lantern` 迷雾批已在位;提灯载体〔aux_items 新行〕仍归 Alpha 信息件重定批,到位后由组合根/库存挂接调用 setter;ui_input_probe case⑮ 增接线断言(开=dist 9 格转可见+lantern=2/关=复原)。验收线(本篇「验收标准」视野迷雾行)逐条转正式验收:区内完整渲染/区外已开格灰显可读/区外未开格不可见/灯光区随移动跟随/两态结算逐位一致;实机目检人闸(迷雾观感/记忆态可读性/移动跟随流畅度)随出口闸。黑暗区域渲染规格承载 = art-bible §6.5(v3.5)。
|
||||
**实施状态(2026-10-03 迭代 11 第④批落籍)**:迷雾遮蔽+菱形灯光区跟随+暗淡记忆态上线,探针断言随批扩(ui_input_probe case⑮)。四裁决逐条对账——①案甲视野迷雾立项(纯呈现层):迷雾开关分层验证可用(呈现态布尔,off 态=无迷雾基线),同板同动作序列与 MC 对拍逐位一致;②暗淡记忆态:区外已开格灰显+数字可读,明度按 [art-bible](../../../art/art-bible.md) §6.5 落文值(记忆板 #3A3A3A/记忆墨 #C4C4C4,provisional);③灯光半径=微光环 8 格同圈:LIGHT_RADIUS=8 参数化(曼哈顿菱形,常量);④提灯 +2、微光不扩:FOG_LANTERN_BONUS=+2(落码常量实名——本条旧记 LIGHT_RADIUS_LANTERN_BONUS 系文档侧拟名,随卡④落籍对齐),类型微光仍贴身 8 邻格零改动。**〔2026-10-05 迭代14⑤接线注记〕公共接线面已就位**——`board_view.set_fog_lantern(enabled)`(true=半径 8+2、false=复原 0;写入即 refresh 重算雾态),半径算式消费 `_fog_lantern` 迷雾批已在位;ui_input_probe case⑮ 增接线断言(开=dist 9 格转可见+lantern=2/关=复原)。**〔2026-10-08 迭代 19 卡④落籍注记〕载体到位+接线闭环=功能可达**——载体=秘宝·同调位新行 `fog_lantern`「魔法提灯」(treasure_items.tres 表尾追加,desc「灯光区半径+2」,slot_cost 1、营地道具工坊同调装配获渠,行字段=用户「按推荐」全收);生产路径=runner set_attunement→enc.attunement→begin_battle 注入 orchestrator 装配集→公共只读出口 `attune_has`→组合根呈现桥 `main._sync_fog_lantern` 每战首轮装配链**显式重算含否**(🔴 复原语义=禁战斗结束隐式复原——卸装/未装配写 0,断点续玩/跨关天然正确);未装配=false 写 0=缺省零扰动基线逐位不变。测试随批:case⑮ 载体级段(装配→lantern=2+dist R+1 转可见+卸装复原)+smoke 行字段/同调目录投影(九件→十件)/装配贯通断言+存档回归 Part 6+单测 fog_lantern_wiring(run_all 17→18 套)。原「提灯载体归 aux_items 新行随 Alpha 信息件重定批」登记去向就此销账(改道留痕=任务书-提灯载体道具批-2026-10-07 §一)。验收线(本篇「验收标准」视野迷雾行)逐条转正式验收:区内完整渲染/区外已开格灰显可读/区外未开格不可见/灯光区随移动跟随/两态结算逐位一致;实机目检人闸(迷雾观感/记忆态可读性/移动跟随流畅度)随出口闸。黑暗区域渲染规格承载 = art-bible §6.5(v3.5)。
|
||||
|
||||
### 可访问性基线:看得清、不闪、纯鼠标玩得通
|
||||
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
# 出口报告——迭代 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 |
|
||||
@@ -125,6 +125,13 @@ func _attune_has(item_id: String) -> bool:
|
||||
return attunement.has(item_id)
|
||||
|
||||
|
||||
# 装配集只读出口(迭代 19 卡④——呈现桥消费面:组合根每战装配链判「装配集含 fog_lantern」→
|
||||
# board_view.set_fog_lantern。_attune_has 契约化出口,save v6 只读访问器先例;private 面内部调用
|
||||
# 零改动。只读零副作用——呈现侧判定专用,非结算写入口)
|
||||
func attune_has(item_id: String) -> bool:
|
||||
return _attune_has(item_id)
|
||||
|
||||
|
||||
# 装备件表值读取(charge_n 等——TreasureItemTable 行;未装配不读表。magnitude 读数面随 T4
|
||||
# 秘宝订阅迁移退役——行值经 value_from 在 rebuild 定影,零运行期按件取值)
|
||||
func _attune_row(item_id: String) -> Dictionary:
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1")
|
||||
; 迭代 19 卡④(2026-10-08):表尾追加 fog_lantern 魔法提灯(提灯载体道具批——视野外扩 +2 纯呈现载体行;
|
||||
; 空效果行 live 形态=triggers 显式空数组,与显影尘 deferred 形态的形态差=「激活 vs 封存」);行字段值=用户「按推荐」全收 2026-10-08。
|
||||
; 迭代 11 第①批 T1(2026-10-03):追加七件同调行(form 非空——永不入过渡渠道);值全 provisional 归 难度曲线与Boss。
|
||||
; nest_pendulum 已换装 active_charged(迭代 11 第①批);blast_kit 已换装 cell_removal+active_charged(迭代 13 T8/D6——中立移除雷格启用);sapper_order/显影尘/地穴全图卷/罗盘 T7 逐件销账。
|
||||
rows = [{
|
||||
@@ -220,4 +222,16 @@ rows = [{
|
||||
"use_phase": "active_dig",
|
||||
"form": "passive",
|
||||
"slot_cost": 1
|
||||
}, {
|
||||
"item_id": "fog_lantern",
|
||||
"display_name": "魔法提灯",
|
||||
"dimension_tags": ["info"],
|
||||
"desc": "灯光区半径+2",
|
||||
"effect_kinds": [],
|
||||
"target": "none",
|
||||
"magnitude": 0,
|
||||
"use_phase": "active_dig",
|
||||
"form": "passive",
|
||||
"slot_cost": 1,
|
||||
"triggers": []
|
||||
}]
|
||||
@@ -849,6 +849,14 @@ func _on_round_started(ri: int) -> void:
|
||||
else:
|
||||
_row_pacer.enqueue({"__round_line": ri})
|
||||
settlement_fx.play_round_banner(ri)
|
||||
# 提灯视野同步(迭代 19 卡④——呈现桥:每战首轮按装配集显式重算 set_fog_lantern 含否〔🔴 契约 7
|
||||
# Q8.1 复原语义:禁依赖战斗结束隐式复原——下一战装配链重算即含「未装配→写 0」复原〕)。挂点时序
|
||||
# 依据:round_started 首轮发射位在 begin_battle 尾(attunement 注入之后)——board_changed 在
|
||||
# _install_new_board 内先发、装配集后注入,同帧直挂会读到上一战的旧集,故挂此处不挂 _on_board_changed。
|
||||
# settlement 空防御照 :854 既有形态(接手先于本信号:冒险路径 board_changed 内 runner 同步、debug
|
||||
# 路径 battle_created 先于 begin_battle)。未装配=false→写 0=缺省零扰动基线逐位不变。
|
||||
if ri == 1:
|
||||
_sync_fog_lantern()
|
||||
# 开战横幅——板级地形变异预告(全局作用域变异首发批 2026-10-04):首轮快照 board_variants
|
||||
# 非空才发射(Boss 图恒带一型=替换制;普通图空快照零发射);轮横幅下方叠行,view 内判减动效。
|
||||
if ri == 1 and settlement != null:
|
||||
@@ -872,6 +880,16 @@ func _on_board_changed() -> void:
|
||||
_refresh_presentations()
|
||||
|
||||
|
||||
# 提灯视野呈现桥(迭代 19 卡④——装配集只读出口消费面:settlement.attune_has("fog_lantern") 真值
|
||||
# 显式写给 board_view.set_fog_lantern(true=半径 8+2 / false=复原 0),写入即 setter 内 refresh 全板
|
||||
# 重算雾态。调用点=每战首轮装配链(_on_round_started ri==1)——纯呈现边界 🔴 契约 2:只写呈现态布尔,
|
||||
# minesweeper 结算零触碰;off 态(未装配)写 0=与既有基线逐位一致。
|
||||
func _sync_fog_lantern() -> void:
|
||||
if settlement == null or board_view == null:
|
||||
return
|
||||
board_view.set_fog_lantern(settlement.attune_has("fog_lantern"))
|
||||
|
||||
|
||||
# ---- 一次性非模态提示(每 run 一次——pattern 10)与诚实提示 ----
|
||||
|
||||
func _check_board_hints() -> void:
|
||||
|
||||
@@ -136,13 +136,14 @@ var _digit_plate := false # 数字色牌垫底模式(双峰纹理
|
||||
|
||||
# ---- 视野迷雾(迭代 11 第④批 T2/T4——纯呈现层;正主=HUD框架「视野迷雾」节 v0.13,渲染规格=art-bible §6.5 v3.5)----
|
||||
const FOG_RADIUS := 8 # 菱形灯光区基准半径(曼哈顿距离 ≤R——与微光环「周围 8 格」同圈起步;半径基准值改动=非白名单须用户)
|
||||
const FOG_LANTERN_BONUS := 2 # 提灯视野外扩插值位(+2 预留不接效果——效果载体归 Alpha 信息件批;接线时写 _fog_lantern)
|
||||
const FOG_LANTERN_BONUS := 2 # 提灯视野外扩插值位(+2=2026-09-30 拍板值;载体=迭代 19 卡④ fog_lantern 秘宝行落籍 2026-10-08——原「归 Alpha 信息件批」指路句随批换代)
|
||||
var _fog_enabled := true # 迷雾开关(呈现态布尔——真实游戏恒 on;探针/夹具可 off=无迷雾基线,两态结算逐位一致断言面)
|
||||
var _fog_lantern := 0 # 提灯加成现值(缺省 0=未接效果——预留插值位,半径算式已接入位)
|
||||
var _fog_lantern := 0 # 提灯加成现值(缺省 0=无提灯基线零扰动;生产写入面=组合根每战装配链显式重算——main._sync_fog_lantern)
|
||||
|
||||
# 提灯视野外扩接线(迭代14⑤——2026-09-30 拍板④:灯甲视野外扩 +2、类型微光不随视野扩〔微光锚=可挖域
|
||||
# 贴身 8 邻零改动〕。FOG_LANTERN_BONUS 常量与半径算式迷雾批已在位,本 setter=公共接线面:载体道具
|
||||
# 〔aux_items 提灯新行——归 Alpha 信息件重定批〕到位后由组合根/库存挂接调用;缺省 0=无提灯基线零扰动。
|
||||
# 〔fog_lantern 魔法提灯——迭代 19 卡④落籍 2026-10-08,treasure_items.tres 秘宝·同调位新行〕已到位,
|
||||
# 组合根 main._sync_fog_lantern 每战首轮装配链显式重算调用;缺省 0=无提灯基线零扰动。
|
||||
func set_fog_lantern(enabled: bool) -> void:
|
||||
_fog_lantern = FOG_LANTERN_BONUS if enabled else 0
|
||||
refresh() # 灯光区半径变了——全板重算雾态(refresh/notify_hero_move 既有重绘驱动复用)
|
||||
|
||||
@@ -230,6 +230,34 @@ func _smoke_adventure_table() -> void:
|
||||
check(_db.attunement_growth != null and int(_db.attunement_slot_cap()) == 3
|
||||
and Attunement.slots(_db, null) == 0,
|
||||
"同调位读数源=attunement_growth 谓词表(slot_cap 3;未注入档求值 0——transitional_sync_slots 过渡键已退役,迭代 11 第①批 T7)")
|
||||
# 迭代 19 卡④——提灯载体行(fog_lantern):新行加载/schema/同调目录投影+装配→战斗贯通(核心层半边;
|
||||
# 呈现半边归 ui_input_probe case⑮ 载体级段——测试三形态契约 9)
|
||||
var lantern_row: Dictionary = _db.treasure_items.row_by_id("fog_lantern")
|
||||
check(not lantern_row.is_empty() and String(lantern_row.get("display_name", "")) == "魔法提灯"
|
||||
and String(lantern_row.get("desc", "")) == "灯光区半径+2"
|
||||
and String(lantern_row.get("form", "")) == "passive" and int(lantern_row.get("slot_cost", -1)) == 1
|
||||
and (lantern_row.get("dimension_tags", []) as Array) == ["info"]
|
||||
and (lantern_row.get("effect_kinds", []) as Array).is_empty()
|
||||
and lantern_row.has("triggers") and (lantern_row.get("triggers", []) as Array).is_empty()
|
||||
and String(lantern_row.get("target", "")) == "none" and int(lantern_row.get("magnitude", -1)) == 0
|
||||
and String(lantern_row.get("use_phase", "")) == "active_dig"
|
||||
and not lantern_row.has("unlock_requires")
|
||||
and not bool(lantern_row.get("retired", false)) and not bool(lantern_row.get("deferred", false)),
|
||||
"提灯载体行 fog_lantern:行字段逐键=裁值(魔法提灯/灯光区半径+2/passive/slot_cost 1/[info]/空效果/显式 triggers 空数组/none/0/active_dig/unlock 键省略=已解锁/活行非封存)")
|
||||
var att_lantern := {}
|
||||
for r in _db.treasure_attunement_rows():
|
||||
if String(r.get("item_id", "")) == "fog_lantern":
|
||||
att_lantern = r
|
||||
check(not att_lantern.is_empty() and String(att_lantern.get("display_name", "")) == "魔法提灯",
|
||||
"同调目录投影:fog_lantern 在装配词表且 display_name=魔法提灯(营地工坊目录九件→十件)")
|
||||
var orch_l = load("res://core/battle_orchestrator.gd").new(_db, _fresh_rng(191))
|
||||
check(orch_l.begin_battle({"level_index": 1, "node_depth": 0, "hero_hp": int(_db.hero.max_hp), "attunement": ["fog_lantern"]})
|
||||
and orch_l.attune_has("fog_lantern"),
|
||||
"装配→战斗贯通:enc.attunement=[fog_lantern] 起战 attune_has=true(注入面+只读出口)")
|
||||
var orch_e = load("res://core/battle_orchestrator.gd").new(_db, _fresh_rng(192))
|
||||
check(orch_e.begin_battle({"level_index": 1, "node_depth": 0, "hero_hp": int(_db.hero.max_hp)})
|
||||
and not orch_e.attune_has("fog_lantern"),
|
||||
"空装配基线:不带 attunement 起战 attune_has=false(off 态零扰动)")
|
||||
|
||||
|
||||
# ② 冒险结构 API 闸(状态机受理面——重复开始拒绝 / 入口停点 / 放弃两态)
|
||||
|
||||
@@ -416,6 +416,27 @@ func _ready() -> void:
|
||||
_problems.append("case⑮ 提灯关闭后雾参数未复原(lantern 应=0)")
|
||||
if int(bv.cells_probe()[ring_cell].fog_state) == 0:
|
||||
_problems.append("case⑮ 提灯关闭后 dist==R+1 格未复原遮蔽")
|
||||
# 载体级断言(迭代 19 卡④——fog_lantern 装配链贯通:①装配→开局参数面〔build_adventure_params
|
||||
# 统一构造=卡⓪①缺陷修复面回归〕②装配集→呈现桥〔_sync_fog_lantern 消费 attune_has 只读出口
|
||||
# →set_fog_lantern〕→视野 +2 生效与卸装复原。settlement.attunement 手动注入=模拟 begin_battle
|
||||
# enc 注入后的运行态〔注入面本体归冒烟+单测覆盖〕;不重启冒险——case⑯ 起既有板面继续用)
|
||||
main.save_manager.set_attunement_equipped(["fog_lantern"])
|
||||
var p_lantern: Dictionary = main.build_adventure_params(main.save_manager, main.meta)
|
||||
if not (p_lantern.get("attunement", []) as Array).has("fog_lantern"):
|
||||
_problems.append("case⑮ 载体装配未进开局参数面(attunement=%s 应含 fog_lantern)" % str(p_lantern.get("attunement", [])))
|
||||
main.settlement.attunement = ["fog_lantern"]
|
||||
main._sync_fog_lantern()
|
||||
if int(bv.fog_params_probe()["lantern"]) != 2:
|
||||
_problems.append("case⑮ 载体装配后视野未扩(lantern 应=2——呈现桥未生效)")
|
||||
if int(bv.cells_probe()[ring_cell].fog_state) != 0:
|
||||
_problems.append("case⑮ 载体装配后 dist==R+1 格仍被遮(应转可见)")
|
||||
main.settlement.attunement = []
|
||||
main._sync_fog_lantern()
|
||||
if int(bv.fog_params_probe()["lantern"]) != 0:
|
||||
_problems.append("case⑮ 载体卸装后视野未复原(lantern 应=0——契约 7 显式重算含否)")
|
||||
if int(bv.cells_probe()[ring_cell].fog_state) == 0:
|
||||
_problems.append("case⑮ 载体卸装后 dist==R+1 格未复原遮蔽")
|
||||
main.save_manager.set_attunement_equipped([])
|
||||
# ---- case⑯ 暂停层输入锁语义(迭代 17 卡③ R3——开层锁棋盘、关层恢复无残留;真实 push_input
|
||||
# 路径:入口角标本体 press+release 真点击 → 暂停层开;锁期挖掘点击零穿透;「继续」关层后
|
||||
# 同格挖掘重新到达——锁语义与既有模态同款,无状态残留。置于全 case 之尾:取格若需前沿移位
|
||||
|
||||
@@ -43,6 +43,7 @@ func _suites() -> Array:
|
||||
{"path": "res://tests/unit/contracts/system_contracts_test.gd", "expect": 0},
|
||||
{"path": "res://tests/unit/presentation/ui_font_asset_test.gd", "expect": 0},
|
||||
{"path": "res://tests/unit/presentation/terrain_tile_sets_test.gd", "expect": 0},
|
||||
{"path": "res://tests/unit/core/fog_lantern_wiring_test.gd", "expect": 0}, # 迭代 19 卡④——提灯载体装配链(行加载/schema/只读出口双态/enc 注入面)
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -128,8 +128,27 @@ func _init() -> void:
|
||||
Kit.check_quiet(String(got_result["r"].get("picked", "")) == picked_e, "P5 已兑付不重付(resolved 重发同件)")
|
||||
Kit.check_quiet(adr_g.continue_to_next_level(), "P5 已兑付续玩后推进受理(下一关开始)")
|
||||
|
||||
# ---- Part 6:装配存档回归(迭代 19 卡④——装配→停点→回局载体态一致:params.attunement 随续玩
|
||||
# 受理面重建再注入战斗〔begin_battle enc 携带〕;呈现态每战重算归呈现桥(main._sync_fog_lantern),
|
||||
# 本断言钉核心层装载往返——回局后 attune_has 只读出口读数一致)----
|
||||
var rng_h = load("res://core/rng_service.gd").new()
|
||||
var sm_h = SaveManagerScript.new(_bp_path)
|
||||
var adr_h = AdventureRunnerScript.new(db, rng_h)
|
||||
adr_h.set_save_manager(sm_h)
|
||||
var params_h := {"hero_override": {}, "treasure_unlocked": {}, "attunement": ["fog_lantern"]}
|
||||
Kit.check_quiet(adr_h.start_adventure(5678, params_h), "P6 装配冒险启动(seed 5678——params 带 fog_lantern)")
|
||||
Kit.check_quiet(adr_h.runner().pick_next_node(int(adr_h.runner().next_candidate_ids()[0])), "P6 选路进首战")
|
||||
Kit.check_quiet(adr_h.runner().current_battle().attune_has("fog_lantern"), "P6 首战装配集含 fog_lantern(attune_has 只读出口)")
|
||||
var sm_i = SaveManagerScript.new(_bp_path)
|
||||
Kit.check_quiet(sm_i.load_from_disk() and sm_i.has_breakpoint(), "P6 断点在档(停点可中断)")
|
||||
var adr_i = AdventureRunnerScript.new(db, load("res://core/rng_service.gd").new())
|
||||
adr_i.set_save_manager(sm_i)
|
||||
Kit.check_quiet(adr_i.resume_adventure(sm_i.breakpoint_snapshot(), params_h), "P6 续玩受理(装配集随 params 再注入)")
|
||||
Kit.check_quiet(adr_i.runner().pick_next_node(int(adr_i.runner().next_candidate_ids()[0])), "P6 续玩选路进首战")
|
||||
Kit.check_quiet(adr_i.runner().current_battle().attune_has("fog_lantern"), "P6 回局首战装配集仍含 fog_lantern(停点往返载体态一致)")
|
||||
|
||||
_clear_disk()
|
||||
quit(Kit.finish("breakpoint_resume_test", "PASS — 断点往返/续玩确定性/幂等/退出清断点 全绿"))
|
||||
quit(Kit.finish("breakpoint_resume_test", "PASS — 断点往返/续玩确定性/幂等/退出清断点/装配存档回归 全绿"))
|
||||
|
||||
|
||||
func _board_fingerprint(b) -> String:
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
# VERTICAL SLICE - NOT FOR PRODUCTION
|
||||
# 提灯载体 fog_lantern 装配链单测(迭代 19 卡④ T3——测试三形态之「呈现桥判定=注入装配集 stub 的
|
||||
# 单测 + 行加载单测」(任务书契约 9);probe=case⑮ 载体级段 / smoke=现有套件加断言,另两形态不在本件)。
|
||||
# 覆盖:真实表行加载+schema 校验零违例 / 行字段裁值逐键 / 同调目录词表收录 / attune_has 只读出口
|
||||
# 双态(组合根 _sync_fog_lantern 消费面)/ begin_battle enc 注入面。
|
||||
# 运行:godot --headless --path game --script res://tests/unit/core/fog_lantern_wiring_test.gd(expect 0)
|
||||
extends SceneTree
|
||||
|
||||
const Kit := preload("res://tests/unit/test_kit.gd") # check/汇总退出样板单点(静默收集通道)
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
# ① 行加载+schema 校验(真实 treasure_items.tres——活行空 effect_kinds 豁免以 row.has("triggers")
|
||||
# 为条件(treasure_item_table.gd:111),triggers 键漏写=加载红——本断言钉住该易错点)
|
||||
var tbl = load("res://data/tables/treasure_items.tres")
|
||||
Kit.check_quiet(tbl != null and tbl.validate().is_empty(),
|
||||
"fog_lantern 入表后 TreasureItemTable.validate 零违例(KEY_WHITELIST/活行校验全过)")
|
||||
var row: Dictionary = tbl.row_by_id("fog_lantern") if tbl != null else {}
|
||||
Kit.check_quiet(not row.is_empty() and String(row.get("display_name", "")) == "魔法提灯"
|
||||
and String(row.get("desc", "")) == "灯光区半径+2"
|
||||
and String(row.get("form", "")) == "passive" and int(row.get("slot_cost", -1)) == 1
|
||||
and row.has("triggers") and (row.get("triggers", []) as Array).is_empty()
|
||||
and (row.get("effect_kinds", []) as Array).is_empty()
|
||||
and String(row.get("target", "")) == "none" and int(row.get("magnitude", -1)) == 0
|
||||
and String(row.get("use_phase", "")) == "active_dig"
|
||||
and (row.get("dimension_tags", []) as Array) == ["info"]
|
||||
and not row.has("unlock_requires")
|
||||
and not bool(row.get("retired", false)) and not bool(row.get("deferred", false)),
|
||||
"行字段逐键=用户「按推荐」裁值(魔法提灯/灯光区半径+2/passive/slot_cost 1/显式 triggers 空/none/0/active_dig/[info]/unlock 键省略=已解锁/活行)")
|
||||
var in_att := false
|
||||
for r in (tbl.attunement_rows() as Array):
|
||||
if String(r.get("item_id", "")) == "fog_lantern":
|
||||
in_att = true
|
||||
Kit.check_quiet(in_att, "同调目录词表收录 fog_lantern(attunement_rows=form 非空活行口径)")
|
||||
|
||||
# ② 数据表宿主(②③需 db)
|
||||
var db = load("res://core/config_db.gd").new()
|
||||
if not db.load_tables("res://data/tables", false):
|
||||
print("[fog_lantern_wiring_test] FAIL — 数值表加载失败")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
# ③ 呈现桥判定 stub:装配集直注→只读出口双态(组合根 _sync_fog_lantern 消费面——不经完整战斗)
|
||||
var rng_a = load("res://core/rng_service.gd").new()
|
||||
rng_a.set_master_seed(191) # 播种(EC7 未播种取数致命——begin_battle 板生成取号前提)
|
||||
var orch = load("res://core/battle_orchestrator.gd").new(db, rng_a)
|
||||
orch.attunement = ["fog_lantern"]
|
||||
Kit.check_quiet(orch.attune_has("fog_lantern"), "attune_has(fog_lantern)=true(装配集在册)")
|
||||
Kit.check_quiet(not orch.attune_has("luck_coin"), "attune_has(luck_coin)=false(他件不误判)")
|
||||
orch.attunement = []
|
||||
Kit.check_quiet(not orch.attune_has("fog_lantern"), "attune_has(fog_lantern)=false(空集=复原语义读数源)")
|
||||
|
||||
# ④ begin_battle enc 注入面(runner→enc.attunement→orchestrator 运行态)
|
||||
var rng_b = load("res://core/rng_service.gd").new()
|
||||
rng_b.set_master_seed(192)
|
||||
var orch2 = load("res://core/battle_orchestrator.gd").new(db, rng_b)
|
||||
Kit.check_quiet(orch2.begin_battle({"level_index": 1, "node_depth": 0, "hero_hp": int(db.hero.max_hp), "attunement": ["fog_lantern"]})
|
||||
and orch2.attune_has("fog_lantern"), "begin_battle enc.attunement 注入→attune_has=true(每战装配链装载)")
|
||||
|
||||
quit(Kit.finish("fog_lantern_wiring_test", "PASS — 行加载/schema 校验/同调词表收录/只读出口双态/enc 注入面 全绿"))
|
||||
@@ -0,0 +1 @@
|
||||
uid://jlkj801c81qd
|
||||
+2
-1
@@ -72,7 +72,8 @@
|
||||
| 迭代 18 | **④生涯界面实装批(2026-10-06 用户令入迭代 18)**:按迭代 17 卡④设计提纲(design/gdd/systems/跨局循环/生涯.md v0.1,master 44328b1)实装「生涯」界面——跨局汇总/历史冒险回看/图鉴承接;提纲在册要点=recent_summaries 现役 cap10 扩容+用时埋点/总局数与通关局数(涉存档 schema)/营地最近冒险清单去留(P6 必答项随评审定);分期建议随提纲。任务书=`design/research/任务书-生涯界面实装批-2026-10-07.md`(v1.0——范围=提纲期一〔汇总页+主菜单入口+终身计数域存档 v6〕,期二/期三零触碰;裁点 P1 通关局数口径/P2 汇总条目集/P3 模态登记序待裁;提纲评审若改期一范围则任务书升版) | **✅ 已落地(2026-10-07 worktree iter18-career:提纲期一追认+裁点全裁〔2026-10-07 用户令代解/全甲;P6 随期二〕后 T0-T5 全落——生涯页六类九项+主菜单入口+终身计数域存档 v6;批末重闸全绿=冒烟 834/0〔基线 814/0,+20〕+run_all 17 套+四探针+ui_contrast 15 对+doc 三闸/熵增闸零新增;MC 零跑;实机人闸挂账待用户〔⑲目检条目随 07〕;出口报告=[iter18-career-exit-report](design/qa/iter18-career-exit-report-2026-10-07.md))** | T0-T5≈2.5d |
|
||||
| 迭代 18 | **⑤混编遭遇首批投放批(2026-10-06 用户令入迭代 18;纯内容批——机制前置=迭代 17 卡①敌人表行集多行批)**:07「后续内容批义务」落地——首个混编遭遇行+Boss 多行内容投放(敌种候选与坐标=本批裁点);首遇教学位纪律与 expect_pools 断言面逐项复核(巨蜘蛛首遇位「固定 2 不加骰」等表注释为准);难度带读数义务随批登记 07,MC 取证跑批**顺延 Alpha 收官 M4 数值批统一执行**〔未排期,届时另令——2026-10-06 用户令:数值统一调整殿后;投放本身不阻塞〕。任务书=`design/research/任务书-混编遭遇首批投放批-2026-10-07.md`(v1.0——纯内容批零代码,机制面全由卡①承载,机制缺口=L3 停机;裁点 P1 首批投放方案〔荐甲=L2 单点试水〕/P2 Boss 多行不入首批/P3 教学界保护待裁) | 迭代 17 卡①落籍(✅ 已满足 9cc4b8b)+**✅ 裁点全裁(P1-P4 甲,2026-10-07)**——开工=U0 | T0-T5≈1.75d(MC 取证顺延另计)——**✅ 已全批落表(2026-10-07,worktree g-plan2-iter18-mixenc 分支 iter18-mixenc 基点 adadf56,批内提交 ad36e35(T1 设计稿)/6272fc8(T3 落表)/43b1306(T4 断言)/⑤T5 收口批;出口报告=[iter18-mixenc-exit-report](design/qa/iter18-mixenc-exit-report-2026-10-07.md))**:(2,5) 双行混编落表〔重击手+巨蜘蛛巢群(行值复制 (2,6),P4 甲零数值新增),R6 行序=重击手在前〕;d5/d7 候选与行值来源全案留痕(d5 案选定);断言面随迁(expect_pools 三元键新池模板+行集构成/行序/Σ≤4 断言);首遇教学位 (2,4)/(3,0)/(3,1) 零触碰;07 ⑱ 目检与读数义务登记+:174 逐行骰措辞订正;闸=冒烟 814/0(基线 811/0,+3)+run_all+doc 三闸/熵增零新增(批末重闸数字见出口报告);实机目检三项归用户(同场两敌种/行序/总数 ≤4);MC 零跑(顺延 Alpha 收官 M4 数值批在案) |
|
||||
| 迭代 18 | **⑦新冒险种子随机化+调试浮窗升级(2026-10-07 用户令入迭代 18,同日两裁点全裁+浮窗目标态已定)**:**(a) 种子随机化**——现状考证 main.gd:1210 `_seed_value()` 调试种子框为空时硬编码返回 42=每次新冒险同一种子全程可复现;改法=玩家界面入口(主菜单开新冒险)默认分支随机生成;**✅ 裁点全裁(2026-10-07 用户令):①首次冒险维持固定种子(教学态可复现)/②测试脚本与调试接口维持显式指定种子(冒烟·MC·探针全链显式传种子零影响,锚零作废)/③种子不进玩家 UI**;断点续玩零影响(存档已载 master_seed 回填,main.gd:447 现役);与⑥收官批零耦合、排序自由。**(b) 调试浮窗升级**(承载「调试浮窗可查当局数据」裁点=种子的唯一查看位;**本项修订迭代 15 卡① P3 甲「仅开始菜单可开·对局不可达」裁决**)——目标态三件:独立于整体界面的**最高层浮窗**(对局中也可开)/DS_DEBUG=1 调试态下**默认打开**/新增**当局数据只读区块**(当前局种子/关卡/节点/HP/GP/钥石等——玩家 UI 不展示、调试浮窗可查)。考证在册(2026-10-07 实查):现行=开始覆盖层角标入口〔main.gd:292-293,DS_DEBUG=1 点亮〕+main.gd:1189 门禁「仅开始菜单可开」+Dialog 形态走 ModalStack 模态栈登记〔非最高层〕+visible=false 初始非默认开+五区块(胜利演出/种子输入/数值滑条/批量模拟/两层调试)无当局数据面。任务书待裁点:最高层与模态栈登记制的关系〔置顶/登记序末+move_child 或独立层〕/输入吞噬边界〔浮窗矩形外透传游戏输入〕/对局发起「随开随收」逻辑改向/ui_tune_probe 断言面换代/入口形态(角标宿主迁移或热键)。任务书=`design/research/任务书-种子随机化与调试浮窗升级批-2026-10-07.md`(v1.0——实装级裁点 P1 遮挡语义〔荐甲=维持登记制〕/P2 入口形态〔荐甲=角标迁宿主〕/P3 默认打开范围〔荐甲=启动即开〕/P4 当局数据字段集〔荐甲=六项〕/P5 首局种子值〔荐甲=沿用 42〕待裁;估时勘误 1d→2.0d 含探针换代与收口) | **✅ 已落地(2026-10-07 worktree iter18-seed:C1 种子三分+浮窗升级 P1-P6 甲全落;批末重闸全绿=冒烟 811/0+四探针+run_all 17 套+doc 三闸/熵增闸零新增;MC 零跑;实机人闸挂账待用户〔不阻塞落籍与后续卡④〕)** | T0-T5≈2.0d |
|
||||
| 迭代 19 | **卡⓪主菜单开局缺陷修复批(原迭代 20 头卡A;2026-10-08 用户令并入本迭代、执行序第一)**:①**主菜单开新冒险+继续上局两入口补传同调三键**(attunement/attune_refresh_y/tree_rules——main.gd:510/:470,接收面 adventure_runner.gd:129-138/215-217 现成;静态考证缺陷成立:全仓无补偿路径、真实入口同调/X/Y 恒空、仅冒烟夹具喂值);②**关卡开场行攻血改传当前生效值**(main.gd:519-521 现传初始表值,与战斗面板不一致=用户确认缺陷;「含面板加成」后缀判断同步改为认局外加成);③冒烟补主菜单入口传参断言;④顺手删 adventure_runner.gd:129-134 三行重复赋值(零行为变化)。范围外=被动同调件呈现(用户令不动)、Fork 规则归因行(呈现层)、X/Y 刷新双源语义倒置(实现与用户口径镜像互换——X=刷新件源每节点重置不结转/Y=营地源整局持久/先扣 X,见 adventure_runner.gd:658-659/:706-709;用户口径=X 持久·Y 每节点重置·先扣 Y;真实局因①此前恒 0 未暴露——待用户裁定甲改实现/乙认现状,裁定落 GDD)。**卡①自动化验收补齐批(2026-10-07 用户令立项——全迭代两阶段验收盘点〔功能性+展示性,均自动化口径,不含人工目检〕的落地批)**:三件主内容——①**渲染闸自动化**:新增 `tools/render_gate.sh` 窗口化自动闸(shot_probe 四屏→shot_checker.py A-D 语义断言自动判定+fx_shot/board_shot 抓帧取证),棋盘 L1-L3 golden 逐像素基线入库 `game/tests/golden/`(测试资产入库先例,.gitignore 已核只挡 artwork/);**probe_gate 头注释「渲染闸归真人目检」纪律句删除改写**(用户 2026-10-07 明示授权=历史偷懒标记),迭代 15③ 屏蔽挂账的机器补跑半随批核销〔07⑮ 目检半仍归用户不销号〕;②**探针收编**:ui_probe/ui_tune_probe/t17_defer_probe/fx_probe 四件游离探针(实测 17.4s/49.6s/63.0s/21.9s 全绿)收进 probe_gate `--full` 段挂重闸,轻闸默认段零改;damage_probe 出闸留盘标注诊断件、config_fatal_probe 删除(与 run_all 致命类单测重复)、零断言三件标注分析工具+ui_layout 补 1280/1920 最小断言;③**账务修正**:tests/README 套件数/断言数漂移(十五→17、752+→双口径说明)+integration 空目录处置(代拍板)。〔2026-10-07 范围改道:原「明示不收」的 B4/B5/B6 三缺口经用户令各立任务书并入本迭代,本卡改称卡①,新增卡②③④见后〕。任务书=`design/research/任务书-自动化验收补齐批-2026-10-07.md`(v1.1——**待裁点 0 项**,P1-P5+拷打轮一 Q1-Q8 全裁 2026-10-07〔重闸定义正式扩容 CLAUDE.md/过程截图即弃/shot_probe 扩屏三新屏/1280 单档/素材缺位 SKIP 而基线禁锚回退态/基线换代权限呈现批 agent/取证失败=闸红/integration 删空壳〕;🔴 契约 6 条含运行时代码零 diff/轻闸零删减/在飞避让;停机点 S1 首跑存量 FAIL 全量呈报登记 06+S3 基线生成素材缺位停机;代拍板白名单四项)。**卡②旧界面呈现断言回补批(B5,2026-10-07 用户令立项)**:迭代 16 前落地旧屏追溯补 ui_contrast 测点对+ui_struct 契约——普查结论=对比度测点对旧屏 0 对(15 对现役全属 HUD/锚点/徽章/生涯)、专项契约仅 pause/career、legend/node 两屏从未过结构族;优先级=战斗结算框>商店>营地柜台+天赋树>设置面>三选一>迷雾锚定对;红线=只加断言零改旧屏、违例登记呈报不修(处置权归用户);任务书=`design/research/任务书-旧界面呈现断言回补批-2026-10-07.md`(v1.1 grilling 三轮全裁——待裁点 0 项,WL 豁免边界/迷雾合成对最坏判据/时长闸 ≤2s/出口报告/06 遗留件登记全钉死;停机点 2〔对比度首跑存量违例/legend-node 结构首跑〕,T0-T4≈1.0d,worktree iter19-uibackfill)〔2026-10-08 施工落籍·**S1 停机态**——T1+T2 测点对 15→38 对(+23:battle_end 3/shop 5/camp 9/settings 2/curio 2/迷雾合成对 1,全 UiKit 常量实时求值);**新对首跑暴露存量对比度违例 7 项**(结算 GP 账行 2.67:1/商店 legacy 行卡名 1.12:1/货架价签 1.46:1/营地铭牌副题 3.59:1/行价格 4.02:1/树分组头 2.67:1/工坊状态 3.00:1)——全量登记清单+修复建议案〔全现役常量换墨可落〕随出口报告呈用户裁,处置权归用户、批内零修(红线);违例对在册=闸红登记存量形态,修复批落后自然转绿;T3 struct 13→15 根(legend/node 全真路径开合)首跑全绿 S2 未命中、WL 零新增;冒烟 840/0+run_all 17 套件持平;出口报告=`design/qa/iter19-uibackfill-exit-report-2026-10-08.md`;settlement_review 遗留件已在 06 登记落位〕。**卡③CI 预接线批(B6,2026-10-07 Line truncated
|
||||
<<<<<<< HEAD
|
||||
| 迭代 19 | **卡⓪主菜单开局缺陷修复批(原迭代 20 头卡A;2026-10-08 用户令并入本迭代、执行序第一)**:①**主菜单开新冒险+继续上局两入口补传同调三键**(attunement/attune_refresh_y/tree_rules——main.gd:510/:470,接收面 adventure_runner.gd:129-138/215-217 现成;静态考证缺陷成立:全仓无补偿路径、真实入口同调/X/Y 恒空、仅冒烟夹具喂值);②**关卡开场行攻血改传当前生效值**(main.gd:519-521 现传初始表值,与战斗面板不一致=用户确认缺陷;「含面板加成」后缀判断同步改为认局外加成);③冒烟补主菜单入口传参断言;④顺手删 adventure_runner.gd:129-134 三行重复赋值(零行为变化)。范围外=被动同调件呈现(用户令不动)、Fork 规则归因行(呈现层)、X/Y 刷新双源语义倒置(实现与用户口径镜像互换——X=刷新件源每节点重置不结转/Y=营地源整局持久/先扣 X,见 adventure_runner.gd:658-659/:706-709;用户口径=X 持久·Y 每节点重置·先扣 Y;真实局因①此前恒 0 未暴露——待用户裁定甲改实现/乙认现状,裁定落 GDD)。**卡①自动化验收补齐批(2026-10-07 用户令立项——全迭代两阶段验收盘点〔功能性+展示性,均自动化口径,不含人工目检〕的落地批)**:三件主内容——①**渲染闸自动化**:新增 `tools/render_gate.sh` 窗口化自动闸(shot_probe 四屏→shot_checker.py A-D 语义断言自动判定+fx_shot/board_shot 抓帧取证),棋盘 L1-L3 golden 逐像素基线入库 `game/tests/golden/`(测试资产入库先例,.gitignore 已核只挡 artwork/);**probe_gate 头注释「渲染闸归真人目检」纪律句删除改写**(用户 2026-10-07 明示授权=历史偷懒标记),迭代 15③ 屏蔽挂账的机器补跑半随批核销〔07⑮ 目检半仍归用户不销号〕;②**探针收编**:ui_probe/ui_tune_probe/t17_defer_probe/fx_probe 四件游离探针(实测 17.4s/49.6s/63.0s/21.9s 全绿)收进 probe_gate `--full` 段挂重闸,轻闸默认段零改;damage_probe 出闸留盘标注诊断件、config_fatal_probe 删除(与 run_all 致命类单测重复)、零断言三件标注分析工具+ui_layout 补 1280/1920 最小断言;③**账务修正**:tests/README 套件数/断言数漂移(十五→17、752+→双口径说明)+integration 空目录处置(代拍板)。〔2026-10-07 范围改道:原「明示不收」的 B4/B5/B6 三缺口经用户令各立任务书并入本迭代,本卡改称卡①,新增卡②③④见后〕。任务书=`design/research/任务书-自动化验收补齐批-2026-10-07.md`(v1.1——**待裁点 0 项**,P1-P5+拷打轮一 Q1-Q8 全裁 2026-10-07〔重闸定义正式扩容 CLAUDE.md/过程截图即弃/shot_probe 扩屏三新屏/1280 单档/素材缺位 SKIP 而基线禁锚回退态/基线换代权限呈现批 agent/取证失败=闸红/integration 删空壳〕;🔴 契约 6 条含运行时代码零 diff/轻闸零删减/在飞避让;停机点 S1 首跑存量 FAIL 全量呈报登记 06+S3 基线生成素材缺位停机;代拍板白名单四项)。**卡②旧界面呈现断言回补批(B5,2026-10-07 用户令立项)**:迭代 16 前落地旧屏追溯补 ui_contrast 测点对+ui_struct 契约——普查结论=对比度测点对旧屏 0 对(15 对现役全属 HUD/锚点/徽章/生涯)、专项契约仅 pause/career、legend/node 两屏从未过结构族;优先级=战斗结算框>商店>营地柜台+天赋树>设置面>三选一>迷雾锚定对;红线=只加断言零改旧屏、违例登记呈报不修(处置权归用户);任务书=`design/research/任务书-旧界面呈现断言回补批-2026-10-07.md`(v1.1 grilling 三轮全裁——待裁点 0 项,WL 豁免边界/迷雾合成对最坏判据/时长闸 ≤2s/出口报告/06 遗留件登记全钉死;停机点 2〔对比度首跑存量违例/legend-node 结构首跑〕,T0-T4≈1.0d,worktree iter19-uibackfill)〔2026-10-08 施工落籍·**S1 停机态**——T1+T2 测点对 15→38 对(+23:battle_end 3/shop 5/camp 9/settings 2/curio 2/迷雾合成对 1,全 UiKit 常量实时求值);**新对首跑暴露存量对比度违例 7 项**(结算 GP 账行 2.67:1/商店 legacy 行卡名 1.12:1/货架价签 1.46:1/营地铭牌副题 3.59:1/行价格 4.02:1/树分组头 2.67:1/工坊状态 3.00:1)——全量登记清单+修复建议案〔全现役常量换墨可落〕随出口报告呈用户裁,处置权归用户、批内零修(红线);违例对在册=闸红登记存量形态,修复批落后自然转绿;T3 struct 13→15 根(legend/node 全真路径开合)首跑全绿 S2 未命中、WL 零新增;冒烟 840/0+run_all 17 套件持平;出口报告=`design/qa/iter19-uibackfill-exit-report-2026-10-08.md`;settlement_review 遗留件已在 06 登记落位〕。**卡③CI 预接线批(B6,2026-10-07 Line truncated
|
||||
| 迭代 20 | (**空位待编**——原头卡A 主菜单开局缺陷修复批已并入迭代 19 卡⓪〔2026-10-08 用户令:其为迭代 19 卡④的 T1 前置门且随同 goal 执行,归属随执行落位〕;候选 B-F 留档〔奇物改名/商店刷新收尾/C 三件/D 敌系/E 生涯/F 典检〕编入待用户点名) | —— | —— |
|
||||
| 迭代 21+ | **M4 数值批(**Alpha 收官位·未排期**——2026-10-05 用户令编入迭代 17 卡②;2026-10-06 用户令移出独立成批并定序「Alpha 阶段最后——内容补全先行、统一数值调整殿后」〔当日曾被编入迭代 18 为收官卡,2026-10-07 用户令撤回〕;**2026-10-07 用户令二次后移:后续新迭代(迭代 20 起)一律不先做 M4,除非用户明确要求启动 M4 批次**)**:四件数值欠账合一批——①削弱档位终值(weaken 现值 −65/duration 2/refresh 考证在册;叠层改续时语义已定案,差 duration 终值+当量锚复算)②调参批数值点评(06 条目现行登记五条——任务口径「八条」与条目五条不符,任务书 §2.2 已呈报差异以条目为准)③迭代 10 奖励重构联动欠账①②(钥石产出重标 boss_keystone 首杀 3/3/3·复杀 2/2/3 provisional + 通关率带重扫〔通关回血 20%+AP 件首轮 +1〕)④元进度定价剩余面(forge base 20/比 150 考证在册——06 条目文本「base 10」滞后于 2026-09-22 对齿批已呈报;Boss 两档终值)。读数义务随批=迭代 14 两件后置复算(T6 MC 四带复算+T7 技能池节奏重测,均挂 07);顺路修复 damage_probe A1 改前既有红灯(判式换代批出口报告 §四.7 在册)。**硬约束:一切 MC/verifier 跑批发起前须用户批准;调参联动禁独立调参网络(β 带 [1.2,2.5] 逐 u 检算)**。任务书=`design/research/任务书-M4数值批-2026-10-05.md`(**v1.2 2026-10-06 案C 增补+联审修订**:v1.1 三事实与第五推算件照旧;联审=P3 转正顺延至重扫读数后/检算工具 WEAKEN_PCT 入同步面/F11 两句死文本全刷/T3·T5 四带复算并账一次跑批双认账/R5 改前锚=本批新立案C 锚/估时段一勘误 4.25d;案C 增补内容照旧=§2.6 三事实〔行为换代/锚全作废/难度预判〕+T0 推算稿第五件=对拍锚按新序重推导+T6 四带复算按案C 新行为首采;T0-T8≈6.25d,天然切分点 T4 末;🔴 契约 5 条含跑批批准制;**✅ 裁点全裁(2026-10-06 用户令:P1甲=维持 2 场·magnitude [60,85] 带内当量锚复算、具体值随出口 provisional 追认/P2甲 不对称有意/P3甲 3-3-3·2-2-3 维持、转正顺延至重扫读数到账且带内(Q4 二裁)/P4甲 不立直购价);开工=U0**) | 迭代 18 全部内容卡(③④⑤⑦)出口+全部内容批行为变更落定+**用户发令(未排期)**——重锚窗口须收尽全部内容批行为变更 | T0-T8≈6.25d(超软盒预挂,段一 T0-T4≈4.25d〔v1.2 勘误,原 4.5 系加总错误〕/段二 T5-T8≈2.0d) |
|
||||
|
||||
|
||||
Reference in new issue
Block a user