diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 682edabb..b328bb68 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -34,7 +34,10 @@ jobs: uses: actions/checkout@v4 - name: Setup Godot 4.7.2 - uses: nikeee/godot-actions/setup-godot@v2 + # 2026-10-08 尾裁微批c(卡③S1 用户裁甲):nikeee/godot-actions/setup-godot@v2 下载 404 + # (卡③轻 CI 首跑实证:setup 步骤 release 资产拉取失败)——换 chickensoft-games/setup-godot@v2, + # version 参数语义不变(4.7.2)。 + uses: chickensoft-games/setup-godot@v2 with: version: 4.7.2 diff --git a/active.md b/active.md index c042d53c..a55616f3 100644 --- a/active.md +++ b/active.md @@ -908,3 +908,4 @@ 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 文档面)/本笔(台账记账)。 +404. **迭代 19 尾裁微批三件(2026-10-08,裁决依据=用户 2026-10-08 六裁授权落地批〔裁甲=对比度存量 7 项另立修复批随尾裁批回绿/卡⓪resume tree_rules 受理闭环/卡③S1 换 setup-godot action〕;worktree g-plan2-iter19-followup 分支 iter19-followup-20261008 基点 0ba3ddf)**:三件独立提交全落——**a 对比度存量违例 7 项全修**(V1 结算 GP 账行 battle_end_overlay.gd:86-87 GOLD_DEEP→GOLD_INK 5.21:1/V2 商店行卡名 shop_overlay_view.gd:127 bold 缺省 INK_LABEL→显式传 WARM_SOFT 9.53:1/V3 bcard 价签 ui_kit.gd:677 GOLD→GOLD_INK 5.21:1〔三选一价签恒空串隐藏零波及实证:curio_pick_overlay.gd:109 传空串 price_l.visible=false〕/V4 营地铭牌副题 camp_overlay_view.gd:74 STONE→STONE_DEEP 5.98:1/V5 行价格+行进度 :342+:369 STONE→STONE_DEEP 6.70:1/V6 树分组头 :191 GOLD_DEEP→GOLD_INK 5.21:1/V7 工坊已解锁 :275+:278 GOLD_DEEP→GOLD_INK 5.84:1;改前 2.67/1.12/1.46/3.59/4.02/2.67/3.00 全越 4.5 带;只换文字墨零布局零文案,同位非文字共用甄别不动〔battle_end_overlay.gd:48 GOLD_DEEP 面板边框用途在册不动〕;ui_contrast_probe 测点表 7 对随代码同步改指新常量+行尾注新比率)——probe_gate 默认段 ui_contrast 15 对存量红清零→38 对全绿 PASS;**b 卡⓪resume tree_rules 受理闭环**(adventure_runner.gd resume_adventure :215 按 start_adventure :135 同式补一行类型防御三元受理,消费面 :938 set_tree_rules 下传现成零改;main.gd build_adventure_params「tree_rules 暂不消费」在册披露句退役改写〔呈现层注释允许〕;冒烟断言段 :4689-4698 追加续玩受理两查=resume_adventure 直呼三键参数面受理+runner._tree_rules 与传入一致〔v2 旧断点夹具同式最小断点〕)——冒烟 840→842/0+run_all 17 套全绿+probe_gate --click 全绿;**c tests.yml 换 action**(:37 nikeee/godot-actions/setup-godot@v2→chickensoft-games/setup-godot@v2〔卡③轻 CI 首跑 404 实证〕,既有裁注注释改写保留裁甲依据+404 实证,version 4.7.2 参数语义不变;纯静态核验=pyyaml 解析+uses 换装唯一+version 保留+缩进同构)。台账查撞:master 停 402 无 404 撞〔403=卡④预配在飞,本条按预配 404 记〕。出口报告=design/qa/iter19-followup-exit-report-2026-10-08.md;提交四笔 5891b5b(a)/768e366(b)/c489d16(c)/本笔(台账)。 diff --git a/design/qa/iter19-followup-exit-report-2026-10-08.md b/design/qa/iter19-followup-exit-report-2026-10-08.md new file mode 100644 index 00000000..50d796f6 --- /dev/null +++ b/design/qa/iter19-followup-exit-report-2026-10-08.md @@ -0,0 +1,88 @@ +# 迭代 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(与现价行同墨),视觉层级两列同色为建议案原设计,无后续动作。 diff --git a/game/core/adventure_runner.gd b/game/core/adventure_runner.gd index b3b8cd2a..318bb3bc 100644 --- a/game/core/adventure_runner.gd +++ b/game/core/adventure_runner.gd @@ -212,6 +212,7 @@ func resume_adventure(bp: Dictionary, params: Dictionary = {}) -> bool: _attunement = params.get("attunement", []) if params.get("attunement", []) is Array else [] # additive(迭代 11 第①批 T5) _attune_refresh_y = maxi(0, int(params.get("attune_refresh_y", 0))) # additive(迭代 11 第①批 T5b——Y 冒险周期池) _seed_attune_charges() # 迭代 11 第①批 T6——冒险开始充能账本按装备主动件重置(每冒险充能语义) + _tree_rules = params.get("tree_rules", []) if params.get("tree_rules", []) is Array else [] # 迭代 12 T10——A/B 面 rule 键集(尾裁微批b 2026-10-08 卡⓪受理闭环:续玩参数面同 start_adventure :135 同式,消费面 set_tree_rules 下传现成零改) # 三选一停点续玩分支(迭代 10——选择态/已兑付态不重跑关卡;奖励选择态不重抽、已兑付不重付) var bp_pending: Dictionary = bp.get("bonus_pending", {}) as Dictionary _feat_ticket_pity = int(bp.get("feat_ticket_pity", 0)) # T5 扩列——旧档缺键缺省 0(存档兼容) diff --git a/game/presentation/main.gd b/game/presentation/main.gd index 63d93708..58b96d35 100644 --- a/game/presentation/main.gd +++ b/game/presentation/main.gd @@ -497,8 +497,8 @@ func _wire_adventure() -> void: # 取值口径与营地投影完全同源:装配集=save.attunement_equipped(save_manager.gd 访问器)、Y 刷新池= # meta.attune_refresh_charges(当前等级行表值)、树 rule 键集=meta.tree_rule_keys(Fork 激活侧 effects); # hero_override 沿用既有 meta 现算口径。static 形态=冒烟直呼单测本函数,免实例化整菜单场景)。 -# 注:runner 侧 resume_adventure 受理面现收 attunement/attune_refresh_y 两键(tree_rules 暂不消费—— -# 传参先行,受理缺口在册披露)。 +# 注:runner 侧 resume_adventure 受理面现收 attunement/attune_refresh_y/tree_rules 三键 +# (2026-10-08 尾裁微批b 卡⓪受理闭环——tree_rules 受理补齐,传参/受理两侧对齐,披露句退役)。 static func build_adventure_params(save_manager_ref, meta_ref, extra: Dictionary = {}) -> Dictionary: var params: Dictionary = { "hero_override": meta_ref.hero_override() if meta_ref != null else {}, diff --git a/game/presentation/views/battle_end_overlay.gd b/game/presentation/views/battle_end_overlay.gd index 71a2b6ff..0f54298e 100644 --- a/game/presentation/views/battle_end_overlay.gd +++ b/game/presentation/views/battle_end_overlay.gd @@ -83,8 +83,8 @@ func _init() -> void: box.add_child(_rows_box) # 两列对齐账行(审计差距④对齐 demo ⑧——项目名左/数值右,定宽 360) _gp_row = _ledger_row() - _gp_name = _ledger_name(UiKit.FS_SUB, UiKit.GOLD_DEEP, true) - _gp_val = _ledger_value(UiKit.FS_SUB, UiKit.GOLD_DEEP, true) + _gp_name = _ledger_name(UiKit.FS_SUB, UiKit.GOLD_INK, true) # 尾裁微批a 2026-10-08——GOLD_DEEP 对结算板 2.67:1 越带,换深金墨 5.21:1 + _gp_val = _ledger_value(UiKit.FS_SUB, UiKit.GOLD_INK, true) # 同上 _gp_row.add_child(_gp_name) _gp_row.add_child(_gp_val) _rows_box.add_child(_gp_row) diff --git a/game/presentation/views/camp_overlay_view.gd b/game/presentation/views/camp_overlay_view.gd index 01cf6dc9..5061adf6 100644 --- a/game/presentation/views/camp_overlay_view.gd +++ b/game/presentation/views/camp_overlay_view.gd @@ -71,7 +71,7 @@ func _init() -> void: plaque.add_child(plaque_col) var title := UiKit.label("营地 · 永久强化",UiKit.FS_TITLE, true, UiKit.INK_TITLE) plaque_col.add_child(title) - var sub := UiKit.label("跨局成长账本——钥石换永久属性",UiKit.FS_HINT, false, UiKit.STONE) + var sub := UiKit.label("跨局成长账本——钥石换永久属性",UiKit.FS_HINT, false, UiKit.STONE_DEEP) # 尾裁微批a 2026-10-08——STONE 对铭牌板 3.59:1 越带,换灰石深化 5.98:1 plaque_col.add_child(sub) var spacer := Control.new() spacer.size_flags_horizontal = Control.SIZE_EXPAND_FILL @@ -188,7 +188,7 @@ func _rebuild_tree(data: Dictionary) -> void: var vein := String(row.get("vein", "")) if vein != last_vein: last_vein = vein - var vh := UiKit.label(String(vein_names.get(vein, vein)),UiKit.FS_HINT, true, UiKit.GOLD_DEEP) + var vh := UiKit.label(String(vein_names.get(vein, vein)),UiKit.FS_HINT, true, UiKit.GOLD_INK) # 尾裁微批a 2026-10-08——GOLD_DEEP 对柜台板 2.67:1 越带,换深金墨 5.21:1 _tree_holder.add_child(vh) var hb := HBoxContainer.new() hb.add_theme_constant_override("separation", 6) @@ -272,10 +272,10 @@ func refresh_camp(data: Dictionary) -> void: st_col = UiKit.STONE elif bool(row.get("deferred", false)) and unlocked: st_text = "已解锁 · 能力封存中" - st_col = UiKit.GOLD_DEEP + st_col = UiKit.GOLD_INK # 尾裁微批a 2026-10-08——GOLD_DEEP 对行板 3.00:1 越带,换深金墨 5.84:1 elif unlocked: st_text = "已解锁" - st_col = UiKit.GOLD_DEEP + st_col = UiKit.GOLD_INK # 同上 card.status_l.text = st_text card.status_l.add_theme_color_override("font_color", st_col) card.status_l.tooltip_text = st_text # 截断兜底(状态列 EXPAND_FILL 吸余宽——悬停看全文) @@ -339,7 +339,7 @@ func _build_forge_row(holder: VBoxContainer, row: Dictionary) -> Dictionary: level_l.add_theme_stylebox_override("normal", UiKit.panel_flat(UiKit.CAMP_HEADER_BAND, Color(0, 0, 0, 0),UiKit.RADIUS_OBJECT, 0, Vector4(6, 0, 6, 0))) level_l.custom_minimum_size = Vector2(44, 0) line.add_child(level_l) - var price_l := UiKit.label("",UiKit.FS_HINT, false, UiKit.STONE) + var price_l := UiKit.label("",UiKit.FS_HINT, false, UiKit.STONE_DEEP) # 尾裁微批a 2026-10-08——STONE 对行板 4.02:1 越带,换灰石深化 6.70:1 price_l.custom_minimum_size = Vector2(64, 0) price_l.clip_text = true price_l.text_overrun_behavior = TextServer.OVERRUN_TRIM_ELLIPSIS @@ -366,7 +366,7 @@ func _rebuild_workshop(data: Dictionary) -> void: name_l.clip_text = true name_l.text_overrun_behavior = TextServer.OVERRUN_TRIM_ELLIPSIS line.add_child(name_l) - var progress_l := UiKit.label("",UiKit.FS_HINT, false, UiKit.STONE) + var progress_l := UiKit.label("",UiKit.FS_HINT, false, UiKit.STONE_DEEP) # 尾裁微批a 2026-10-08——同行价格墨同案(STONE 对行板 4.02:1 越带→6.70:1) progress_l.custom_minimum_size = Vector2(150, 0) # 2026-10-06 修——110 截掉阈值数字(「累计通关 28 / 2 次」≈154px) progress_l.clip_text = true # 营地溢出修——文字全宽不撑柜 progress_l.text_overrun_behavior = TextServer.OVERRUN_TRIM_ELLIPSIS diff --git a/game/presentation/views/shop_overlay_view.gd b/game/presentation/views/shop_overlay_view.gd index 635dbe1f..960d8cc6 100644 --- a/game/presentation/views/shop_overlay_view.gd +++ b/game/presentation/views/shop_overlay_view.gd @@ -124,7 +124,7 @@ func _build_card(p: Dictionary) -> Dictionary: var row := HBoxContainer.new() row.add_theme_constant_override("separation", 14) card.add_child(row) - var name_l := UiKit.label(_card_title(p),UiKit.FS_BODY, true) + var name_l := UiKit.label(_card_title(p),UiKit.FS_BODY, true, UiKit.WARM_SOFT) # 尾裁微批a 2026-10-08——显式传墨:bold 缺省 INK_LABEL 压暗底行卡 1.12:1 越带,换暖白次级 9.53:1 name_l.custom_minimum_size = Vector2(190, 0) row.add_child(name_l) var price_l := UiKit.label("",UiKit.FS_HINT, false, UiKit.WARM_SOFT) diff --git a/game/presentation/views/ui_kit.gd b/game/presentation/views/ui_kit.gd index 96d22fd0..1e794b04 100644 --- a/game/presentation/views/ui_kit.gd +++ b/game/presentation/views/ui_kit.gd @@ -674,7 +674,7 @@ class BCard: var spacer := Control.new() spacer.size_flags_vertical = Control.SIZE_EXPAND_FILL box.add_child(spacer) - price_l = UiKit.label(price,FS_TITLE, true, GOLD) + price_l = UiKit.label(price,FS_TITLE, true, GOLD_INK) # 尾裁微批a 2026-10-08——GOLD 对货架板 1.46:1 越带,换深金墨 5.21:1(三选一价签恒空串隐藏零波及) price_l.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER price_l.visible = price != "" box.add_child(price_l) diff --git a/game/smoke/smoke_all.gd b/game/smoke/smoke_all.gd index ceb995a1..64d3fece 100644 --- a/game/smoke/smoke_all.gd +++ b/game/smoke/smoke_all.gd @@ -4685,6 +4685,18 @@ func _meta_settle_and_workshop() -> void: and int(p_resume.get("attune_refresh_y", -1)) == mp_e.attune_refresh_charges() and (p_resume.get("tree_rules", []) as Array) == rules_e, "主菜单继续上局参数面:三键与开新冒险同源同值(续玩不吃白板开局)") + # 尾裁微批b(2026-10-08 卡⓪受理闭环)——续玩路径 tree_rules 受理断言:resume_adventure 此前 + # 只收 attunement/attune_refresh_y 两键(tree_rules 暂不消费在册披露),受理补齐后直呼 runner + # 续玩参数面(v2 旧断点夹具同式最小断点——smoke ⑫ 受理路径同形)验 _tree_rules 与传入一致。 + var adr_res = load("res://core/adventure_runner.gd").new(_db, _fresh_rng(19)) + var bp_min: Dictionary = {"level_index": 1, "node_id": -1, "hero_hp": 40, "gp": 5, + "bonus": {"atk": 0, "max_hp": 0, "armor_class": 0}, "shop_purchased": {}, + "template_pick": -1, "master_seed": 777, "rng_counter": 3, "keystone": 0, + "visited_ids": []} + check(adr_res.resume_adventure(bp_min, p_resume), + "继续上局受理面:resume_adventure 受理三键参数面(尾裁微批b 受理闭环——受理不再吃白板)") + check((adr_res._tree_rules as Array) == rules_e, + "继续上局受理面:tree_rules 随参数面进 runner._tree_rules(消费面 set_tree_rules 下传现成)") _meta_smoke_cleanup() diff --git a/game/smoke/ui_contrast_probe.gd b/game/smoke/ui_contrast_probe.gd index b13291d4..07b98716 100644 --- a/game/smoke/ui_contrast_probe.gd +++ b/game/smoke/ui_contrast_probe.gd @@ -34,24 +34,25 @@ func _pairs() -> Array: ["生涯页·组帽墨/暖亮页底", UiKit.INK_L_GOLD, UiKit.BG_BRIGHT, 1.0],# 迭代18卡④——生涯页分组小节头(金亮 bold) # ---- 迭代19卡②旧界面呈现断言回补批(2026-10-08)——旧屏文字位追溯收测;石皮纹面板 # (panel_skinned)缺素材回退牌色 PANEL_DATA,机检按回退牌色计(素材不入 git 冒烟安全惯例)。 - # 存量违例对首跑红=登记呈报不修(处置权归用户——本批红线)。 + # 存量违例对首跑红=登记呈报不修(处置权归用户)→ 2026-10-08 尾裁微批a 用户裁甲另立修复批 + # 回绿:7 对随代码侧换墨同步改指新常量(比率见各行尾注)。 ["结算·判定墨/结算板", UiKit.INK_TITLE, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——battle_end 判定行(INK_TITLE 亮底标题墨) - ["结算·GP账行墨/结算板", UiKit.GOLD_DEEP, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——battle_end 战利品 GP 行名/值(深金 bold) + ["结算·GP账行墨/结算板", UiKit.GOLD_INK, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——battle_end 战利品 GP 行名/值(尾裁微批a 换深金墨 5.21:1;原 GOLD_DEEP 2.67 越带) ["结算·账行墨/结算板", UiKit.INK_LABEL, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——battle_end 钥石/加成账行(标签深墨) - ["商店·行卡名墨/暗底行卡", UiKit.INK_LABEL, UiKit.BG_OVERLAY, 1.0], # 迭代19卡②——legacy 行卡商品名(label 工厂 bold 缺省墨压暗底行卡) + ["商店·行卡名墨/暗底行卡", UiKit.WARM_SOFT, UiKit.BG_OVERLAY, 1.0], # 迭代19卡②——legacy 行卡商品名(尾裁微批a 显式传暖白次级 9.53:1;原 bold 缺省 INK_LABEL 1.12 越带) ["商店·行卡现价墨/暗底行卡", UiKit.WARM_SOFT, UiKit.BG_OVERLAY, 1.0],# 迭代19卡②——legacy 行卡「现价 N 金币」 ["商店·行卡已购墨/暗底行卡", UiKit.WARM_FAINT, UiKit.BG_OVERLAY, 1.0],# 迭代19卡②——legacy 行卡「已购 N 档」 ["商店·爬价规则墨/暖亮页底", UiKit.WARM_SOFT, UiKit.BG_BRIGHT, 1.0],# 迭代19卡②——货架面爬价规则行(page_shell 亮底) ["商店·货架卡名墨/货架板", UiKit.INK_TITLE, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——bcard 货架卡商品名(iter16 换 TG 带后未机检位) - ["商店·货架价签墨/货架板", UiKit.GOLD, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——bcard 价签「N ◈」(奖励金亮墨压亮牌) + ["商店·货架价签墨/货架板", UiKit.GOLD_INK, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——bcard 价签「N ◈」(尾裁微批a 换深金墨 5.21:1;原 GOLD 1.46 越带) ["营地·等级章字/头带深棕", UiKit.INK_ON_DEEP, UiKit.CAMP_HEADER_BAND, 1.0],# 迭代19卡②——锻造行 Lv 章(木底小章亮墨) ["营地·柜台头带字/头带深棕", UiKit.WARM, UiKit.CAMP_HEADER_BAND, 1.0], # 迭代19卡②——三柜台头带标题(暖白 bold) - ["营地·铭牌副题墨/铭牌板", UiKit.STONE, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——营地铭牌副题「跨局成长账本…」 + ["营地·铭牌副题墨/铭牌板", UiKit.STONE_DEEP, UiKit.PANEL_DATA, 1.0],# 迭代19卡②——营地铭牌副题「跨局成长账本…」(尾裁微批a 换灰石深化 5.98:1;原 STONE 3.59 越带) ["营地·行名墨/行板", UiKit.INK, UiKit.CAMP_ROW_PLATE, 1.0], # 迭代19卡②——锻造/工坊行名(墨族压暖米行板) - ["营地·行价格墨/行板", UiKit.STONE, UiKit.CAMP_ROW_PLATE, 1.0], # 迭代19卡②——锻造行「N 钥石」价签/工坊进度行(灰石) - ["营地·树分组头墨/柜台板", UiKit.GOLD_DEEP, UiKit.PANEL_DATA, 1.0],# 迭代19卡②——天赋树脉分组头「·锻造脉·」(深金) + ["营地·行价格墨/行板", UiKit.STONE_DEEP, UiKit.CAMP_ROW_PLATE, 1.0],# 迭代19卡②——锻造行「N 钥石」价签/工坊进度行(尾裁微批a 换灰石深化 6.70:1;原 STONE 4.02 越带) + ["营地·树分组头墨/柜台板", UiKit.GOLD_INK, UiKit.PANEL_DATA, 1.0],# 迭代19卡②——天赋树脉分组头「·锻造脉·」(尾裁微批a 换深金墨 5.21:1;原 GOLD_DEEP 2.67 越带) ["营地·树行名墨/柜台板", UiKit.INK_LABEL, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——天赋树行「名 Lv0/1」(标签深墨) - ["营地·工坊状态墨/行板", UiKit.GOLD_DEEP, UiKit.CAMP_ROW_PLATE, 1.0],# 迭代19卡②——工坊状态字「已解锁」(深金·最不利现役态) + ["营地·工坊状态墨/行板", UiKit.GOLD_INK, UiKit.CAMP_ROW_PLATE, 1.0],# 迭代19卡②——工坊状态字「已解锁」(尾裁微批a 换深金墨 5.84:1;原 GOLD_DEEP 3.00 越带·最不利现役态) ["营地·最近冒险墨/暖亮底", UiKit.WARM_SOFT, UiKit.BG_BRIGHT, 1.0], # 迭代19卡②——底栏最近冒险条带(暖白次级) ["设置·警示文/设置板", UiKit.INK_HINT, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——设置警示文/后果说明(暖棕提示墨) ["设置·选项标签/设置板", UiKit.INK_LABEL, UiKit.PANEL_DATA, 1.0], # 迭代19卡②——设置行标签/状态字(标签深墨)