合并(刷新经济卡卡面修订·用户令): 文案形态裁决换新——两件储能秘宝行改 display_key/desc_key+值住 strings.csv(code-conventions §2.5), schema KEY_WHITELIST 扩两键+display_name 空判据迁移(:89-90), 秘宝匣投影 key 解析+存量字面回退(V10), V18 白板档计数 12→14 削弱申报; 版本号换代 行动经济 v1.8/秘宝 v1.5, 行锚读数修正(F5 断点回填归属/断点 28 键/tests-README 行锚); 修订轮自复核 7 发现(4自判3补写)落卡内复核记录节, 零待裁维持, 设计闭合凭据不变。区内凭据: 文档域闸【验收通过】无新增红(2bc6444d 基点); 件核=diff master 单文件(卡 55+/35-)。合回前置检查读数见 pre-merge 钩子; post-merge 钩子推送触发远端 CI
ci / gates (push) Successful in 36s
ci / gates (push) Successful in 36s
This commit is contained in:
commit
8c64d0f48c
1 file changed
+55
-35
@@ -1,6 +1,6 @@
|
||||
# 需求卡片——刷新经济改版批
|
||||
|
||||
> 来源:待办清单「刷新门槛调整与两件储能秘宝」条目(唯一事实源:design/gdd/systems/排雷循环/行动经济.md v1.7 §核心规则「停手与储备行动点」「挖掘期刷新」+design/gdd/systems/跨局循环/秘宝.md v1.3 §目录(重设计 v1)储能件两行)
|
||||
> 来源:待办清单「刷新门槛调整与两件储能秘宝」条目(唯一事实源:design/gdd/systems/排雷循环/行动经济.md v1.8 §核心规则「停手与储备行动点」「挖掘期刷新」+design/gdd/systems/跨局循环/秘宝.md v1.5 §目录(重设计 v1)储能件两行)
|
||||
> 验收档:高(经济入账+冒险级账本随断点写读+数值表结构校验——失败代价随存档与结算传播)
|
||||
> 估时:2–3.25 个工作日(中值 2.625);超 3.25 日软盒预挂=T1 冒险级账本落点与断点往返不对齐时停机呈报,不扩面自救
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
把「遇推理死路时几乎换不了图」改成能换:刷新价格降到每轮预算的一半;储备点不再随战斗结束清零,整局冒险保留、只有弃图刷新消耗、冒险收束清零;新增两件储能秘宝(每关开始 +4 储备点/挖开安全格或封印标中 +1 储备点,做错了不给)。
|
||||
|
||||
完成定义:
|
||||
- V1–V9 验收行全部在真实跑批中执行并通过;N1 非行为改动行写明判断依据;生产表加载零新增 error。
|
||||
- V1–V10 验收行全部在真实跑批中执行并通过;N1/N2 非行为改动行写明判断依据;生产表加载零新增 error。
|
||||
- 四件需求点各有判据绑定面:刷新扣费按表值、储备点跨战回写与断点往返、关首注入、正确动作产储备点。
|
||||
- 代码域闸按改动域选档全绿;独立验收审计(高档)通过;reports/ 两份产出物落齐;能力表新增行在场。
|
||||
|
||||
## 2. 设计事实源
|
||||
|
||||
design/gdd/systems/排雷循环/行动经济.md v1.7:
|
||||
design/gdd/systems/排雷循环/行动经济.md v1.8:
|
||||
- :84 储备池生命周期「以一整局冒险为界……只有弃图刷新会消耗它,冒险收束时清零」。
|
||||
- :92 基线节拍「刷新门槛按每轮预算的一半设定,半轮停手够刷一次,满预算停手够刷两次」。
|
||||
- :277 调参表 rap_refresh_cost 行(按每轮预算的一半设定)。
|
||||
@@ -24,12 +24,13 @@ design/gdd/systems/排雷循环/行动经济.md v1.7:
|
||||
|
||||
design/gdd/systems/表现与支撑/存档序列化.md::180「断点域契约:写读往返逐位一致」(V7 锚);:57 局内资源持久化归属登记要求列第 6 节反哺点。
|
||||
|
||||
design/gdd/systems/跨局循环/秘宝.md v1.3:
|
||||
design/gdd/systems/跨局循环/秘宝.md v1.5:
|
||||
- :44 开局储备(代号)「每个关卡开始时储备点 +4(够一次刷新)」。
|
||||
- :45 推演储能(代号)「挖开安全格或封印标中时储备点 +1」。
|
||||
- :47 两件边界「按正确结果给……可叠加;开局储备只在关卡开始注入一次」(V8 锚:正确结果=排除错误结果)。
|
||||
- :228 效果声明形态「卡面效果摘要=行 `desc_key` 经 strings.csv 取文案(code-conventions §2.5)」——两件新秘宝行文案面按 display_key/desc_key 落(code-conventions §2.5「数据表文案字段更名 display_key/desc_key」;文案值住 game/data/l10n/strings.csv,行内零文案字面)。
|
||||
|
||||
design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连锁展开只随首格的一次付费动作结算,不逐格追加」(V9 锚,本批沿用先例)。
|
||||
design/gdd/systems/排雷循环/行动经济.md v1.8::100 矿脉储能「连锁展开只随首格的一次付费动作结算,不逐格追加」(V9 锚,本批沿用先例)。
|
||||
|
||||
会话裁决沿革查 git 提交 750b491b(用户四案裁断:8→4/整局保留/每关 +4/做对了才给)。
|
||||
|
||||
@@ -39,12 +40,12 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
- F2 表默认值 6 与表值不一致:game/data/schemas/action_economy_table.gd:10 `@export var rap_refresh_cost: int = 6`;域检查 :24 `[1,64]`;跨字段检查 :33 只覆盖 dig_ap_cost/seal_place_ap_cost,无「刷新价 = 每轮 AP」硬绑定。
|
||||
- F3 RAP 池在 ActionEconomy:game/core/action_economy.gd:28 `var _rap := 0`、:29-30 只读 getter;注入 :195 `func grant_reserve_ap(n: int) -> void`;停手转存 :202-204 `finish_round_stop(transfer_pct)`;刷新扣费 :211-219 `request_refresh(cost_override)` 按 :215 表值取价。
|
||||
- F4 战斗结束清零唯一生产点:action_economy.gd:267-274 `notify_combat_end()`,:272 `_rap = 0`;调用方 game/core/battle_orchestrator.gd:585(`:563 _battle_over`)。
|
||||
- F5 冒险桶现成且随断点:game/core/adventure_runner.gd:26 `adventure_counters: Dictionary`(跨战持久);game/core/level_runner.gd:539 `"adv_bucket": _adv_bucket` 下传同一引用;game/core/breakpoint_store.gd:38 `"adventure_counters": {"strategy": "keep_on_null"}`、:123 快照 `counters.duplicate(true)`。断点 27 键无 rap 键(:16-44),续玩经 :144-147 `restore_ledger` 回填桶。
|
||||
- F6 关首注入面现成:battle_orchestrator.gd:379-390 `_begin_battle_preview_economy(enc)`(:388-390 凭证 RAP 注入);:368 `int(enc.get("battle_index", 1)) == 1` 为每关首战判定;level_runner.gd:544 `"battle_index": _battle_index()`、:545 `"voucher_rap"`。
|
||||
- F5 冒险桶现成且随断点:game/core/adventure_runner.gd:23 `adventure_counters: Dictionary`(跨战持久);game/core/level_runner.gd:539 `"adv_bucket": _adv_bucket` 下传同一引用;game/core/breakpoint_store.gd:38 `"adventure_counters": {"strategy": "keep_on_null"}`、:123 快照 `counters.duplicate(true)`。断点 28 键无 rap 键(:16-45),续玩桶回填经 game/core/adventure_runner.gd:168-170 `resume_adventure` 计数器回填(breakpoint_store.gd:144-147 `restore_ledger` 只回填 stats/wallet/journal,不涉桶)。
|
||||
- F6 关首注入面现成:battle_orchestrator.gd:379-390 `_begin_battle_preview_economy(enc)`(:388-390 凭证 RAP 注入);:368 `int(enc.get("battle_index", 1)) == 1` 为每关首战判定;level_runner.gd:543 `"battle_index": _battle_index()`、:544 `"voucher_rap"`。
|
||||
- F7 两件新秘宝的数据承载:game/data/tables/treasure_items.tres:18 `rows = [{`、:224 `}]`(12 件);game/data/schemas/treasure_item_table.gd:23-32 `EFFECT_KINDS` 封闭枚举(无「关卡开始」类 kind)、:121-122 passive 行 triggers 与 effect_kinds 禁并存、:108/:123 转交 `EffectEngine.validate_trigger_row`。
|
||||
- F8 正确结果事件:game/core/effect_engine.gd:12-18 `EVENTS`(`dig_reveal`/`seal_hit`/`mine_hit`/`seal_missed` 在册,无「关卡开始」事件);:51 `EFFECT_KINDS` 含 `grant_reserve_ap`;发射点 game/core/settlement/grant_segment.gd:105 `dig_reveal`(:97 注释「本函数只受理真实揭示的 safe 事件」)、:355 `seal_hit`;错误侧 :149 `mine_hit`、:430 `seal_missed`。grant_segment.gd:25 已有 `action_economy: ActionEconomy` 成员(:43 解包)。
|
||||
- F9 `grant_reserve_ap` 现役唯一消费点:action_economy.gd:114 `_port.emit("dig_paid", …)` → :125-126 累加 rap_gain → :101 入池(feats.tres:887-890 矿脉储能挂 dig_paid)。`dig_reveal`/`seal_hit` 的 hits 目前无 RAP 转译。
|
||||
- F10 测试与能力面:game/tests/unit/battle_settlement/round_flow_skill_pool_test.gd:151 `_smoke_active_refresh`、:190 按表值断言扣费;refresh_feats_test.gd:345 `test_no_feats_baseline`、:306 `test_refresh_discount_gate_and_charge`;game/tests/unit/core/treasure_effects_test.gd:31/47 装配生效与未装配零扰动;game/tests/unit/core/feat_vouchers_test.gd:61 储备金袋 +3、:134-139 断点往返;game/tests/run_all.gd:220/:222/:232/:236 套件登记 expect=0;game/tests/README.md「测试层级」末点耗尽即收轮与战斗收束清零 能力行「停手转存储备与轮内刷新」、:126「换图基座:挖格产 RAP 与刷新折扣」、:227 覆盖域行。
|
||||
- F10 测试与能力面:game/tests/unit/battle_settlement/round_flow_skill_pool_test.gd:151 `_smoke_active_refresh`、:190 按表值断言扣费;refresh_feats_test.gd:345 `test_no_feats_baseline`、:306 `test_refresh_discount_gate_and_charge`;game/tests/unit/core/treasure_effects_test.gd:31 装配生效、:44-47 未装配零扰动(:44-45 参数零读数/:46-47 首轮零命中);game/tests/unit/core/feat_vouchers_test.gd:61 储备金袋 +3、:134-139 断点往返;game/tests/run_all.gd:221/:222/:232/:236 套件登记 expect=0;game/tests/README.md「测试层级」能力行「AP 扣费、末点耗尽即收轮与战斗收束清零」:125、「停手转存储备与轮内刷新」:126、「换图基座:挖格产 RAP 与刷新折扣」:130、覆盖域行:232。
|
||||
- F11 gdstyle 基线:tools/gdstyle_baseline.txt:8 `adventure_runner.gd|max-class-variables = 23`、:9-10 `level_runner.gd|max-class-variables = 30`/`max-public-methods = 33`;action_economy.gd/battle_orchestrator.gd/grant_segment.gd/treasure_item_table.gd 均无键(默认阈值内)。
|
||||
|
||||
## 4. 设计契约(违反即返工,🔴 触碰=L3 停机呈报)
|
||||
@@ -54,31 +55,31 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
- 🔴 C3 战斗结束不清零;冒险收束清零;断点随 adventure_counters 自动写读,禁另立断点顶层键。
|
||||
- 🔴 C4 推演储能只挂 `dig_reveal`/`seal_hit`(做对了才给);禁挂 `mine_hit`/`seal_missed`/`dig_paid`,禁把错误结果算进 RAP。
|
||||
- 🔴 C5 开局储备只在每关首战(battle_index==1)注入一次,注入量读行内 magnitude;不改停手转存率与刷新折价判据(秘宝.md「普通档」两件储能件的代号)。
|
||||
- 🔴 C6 数值表结构、RNG 单点、Core 零 UI 依赖不变;禁删既有断言、禁放宽阈值;本卡测试削弱申报=无。
|
||||
- 🔴 C6 数值表结构、RNG 单点、Core 零 UI 依赖不变;禁删既有断言、禁放宽阈值;本卡测试削弱申报=V18 白板档计数换代一项(§9 表下申报——护栏语义零削弱)。
|
||||
- 🔴 C7 连锁展开只随首格的一次付费动作结算,不逐格追加(沿用 design/gdd/systems/排雷循环/行动经济.md「换图系专长对储备与刷新的改写」矿脉储能 矿脉储能先例);`_reveal_safe` 只在 `channel=="dig"` 时转译 RAP hits,`channel=="chain"` 的格零转译。
|
||||
|
||||
## 5. 范围边界
|
||||
|
||||
做:表值与表注释;ActionEconomy 战斗收束语义改为回写冒险桶;关首注入;秘宝表两行+一个参数面 kind 词表项+grant_segment 的 RAP hits 转译;冒险收束清桶;单元断言扩展;能力表两行(写卡段同批)。
|
||||
做:表值与表注释;ActionEconomy 战斗收束语义改为回写冒险桶;关首注入;秘宝表两行(display_key/desc_key 文案形态)+schema 三处扩面(两词表+行键白名单+display_name 空判据迁移)+strings.csv 新建四键值+秘宝匣投影 key 解析+一个参数面 kind 词表项+grant_segment 的 RAP hits 转译;冒险收束清桶;单元断言扩展;能力表两行(写卡段同批)。
|
||||
|
||||
不做(明示去向):
|
||||
- 条款⑤行为说明、SVG 两条路图、GDD/ux 文档面——文档设计段已落文,实现批禁写 design/ 与根规则文件;机械面描述差异列第 6 节反哺点。
|
||||
- 秘宝两件的正式命名、最终档位与解锁阈值——GDD 标 provisional 归调参批;本批按现役普通档同款 `unlock_keystone_cost = 10` 作 provisional 占位(treasure_items.tres:95 同款),不定案。
|
||||
- 每轮刷新上限 2、停手转存率 1:1、省力周转半价、矿脉储能 +1——全部不动。
|
||||
- 全冒险期望(蒙特卡洛)采集与难度带重扫——无数值改动窗口授权,不属本批;如日后要做另行登记。
|
||||
- 断点 27 键清单不变(RAP 借 adventure_counters 桶随快照,不新增顶层键)。
|
||||
- 断点 28 键清单不变(RAP 借 adventure_counters 桶随快照,不新增顶层键)。
|
||||
|
||||
## 6. 关联文档同步面
|
||||
|
||||
| 文档 | 关联点 | 同步义务 |
|
||||
|---|---|---|
|
||||
| design/gdd/systems/跨局循环/秘宝.md v1.3 :44 | 效果实现列写「订阅行 关卡开始→grant_reserve_ap(4)」,框架 EVENTS 无「关卡开始」事件;实现改为参数面 kind + 关首注入面 | 列反哺点,由文档批落文(改实现形态描述,玩法规则不动) |
|
||||
| design/gdd/systems/跨局循环/秘宝.md v1.3 :45 | 效果实现列写订阅行;实现另需 grant_segment 两处 hits 转译 | 列反哺点,由文档批落文(补消费点一句) |
|
||||
| design/gdd/systems/跨局循环/秘宝.md v1.3 :28/:246 | 「普通档 9 件/现行 14 件」已按本批定稿写就;实现落表后无条文变化 | 无同步义务(实现核对行数一致即可) |
|
||||
| game/tests/README.md 能力表 :124/:126/:227 | 写卡段同批新增两条能力行;覆盖域行补新能力名 | 覆盖域表更新列反哺点,由文档批落文(能力表本体写卡段维护,实现批禁写) |
|
||||
| design/gdd/systems/排雷循环/行动经济.md v1.7 | 条文已定稿(价格/寿命/验收标准),实现照条文落地 | 无同步义务(实现核对条文一致即可) |
|
||||
| design/gdd/systems/跨局循环/秘宝.md v1.5 :44 | 效果实现列写「订阅行 关卡开始→grant_reserve_ap(4)」,框架 EVENTS 无「关卡开始」事件;实现改为参数面 kind + 关首注入面 | 列反哺点,由文档批落文(改实现形态描述,玩法规则不动) |
|
||||
| design/gdd/systems/跨局循环/秘宝.md v1.5 :45 | 效果实现列写订阅行;实现另需 grant_segment 两处 hits 转译 | 列反哺点,由文档批落文(补消费点一句) |
|
||||
| design/gdd/systems/跨局循环/秘宝.md v1.5 :28/:224/:228/:239 | 「普通档 9 件/现行 14 件」已按本批定稿写就;实现落表后无条文变化 | 无同步义务(实现核对行数一致即可) |
|
||||
| game/tests/README.md 能力表 :126/:130/:232 | 写卡段同批新增两条能力行;覆盖域行补新能力名 | 覆盖域表更新列反哺点,由文档批落文(能力表本体写卡段维护,实现批禁写) |
|
||||
| design/gdd/systems/排雷循环/行动经济.md v1.8 | 条文已定稿(价格/寿命/验收标准),实现照条文落地 | 无同步义务(实现核对条文一致即可) |
|
||||
| design/gdd/systems/表现与支撑/存档序列化.md :36/:57/:181 | 现条文「局内数值的持久化:无」「若未来某局内资源要开放跨战斗携带(如储备行动点),须修订池规则并向本系统登记持久化归属,禁止静默超域」;本批 RAP 借 adventure_counters 随断点写读即属该登记面 | 列反哺点,由文档批落文(登记 RAP 持久化归属/修订 :57 措辞),实现批禁写该文档;未落文前不静默超域 |
|
||||
| design/gdd/systems/跨局循环/秘宝.md v1.3 :45 | 现条文只写正向「挖开安全格或封印标中时 +1」;「错误结果不产 RAP」「连锁不逐格追加」两句规格句缺席(V8/V9 取 :47 与 行动经济.md「换图系专长对储备与刷新的改写」矿脉储能 推得) | 列反哺点,由文档批落文(补两句规格句),实现批禁写该文档 |
|
||||
| design/gdd/systems/跨局循环/秘宝.md v1.5 :45 | 现条文只写正向「挖开安全格或封印标中时 +1」;「错误结果不产 RAP」「连锁不逐格追加」两句规格句缺席(V8/V9 取 :47 与 行动经济.md「换图系专长对储备与刷新的改写」矿脉储能 推得) | 列反哺点,由文档批落文(补两句规格句),实现批禁写该文档 |
|
||||
| design/ux/battle.md、interaction-patterns.md | 文档设计段已把 RAP−8 改 RAP−4、清零时点改冒险收束 | 无同步义务 |
|
||||
|
||||
## 7. 文件结构图(卡前定分解)
|
||||
@@ -90,8 +91,12 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
| game/core/action_economy.gd | notify_combat_end 去清零改回写冒险桶;新增 `set_adventure_bucket(bucket: Dictionary) -> void` | 复用既有(扩展) | 是→V2/V3 |
|
||||
| game/core/battle_orchestrator.gd | begin_battle 传桶引用;_begin_battle_preview_economy 注入 carry_rap 与关首 +4 | 复用既有(扩展) | 是→V2/V4 |
|
||||
| game/core/adventure_runner.gd | _settle 清 adventure_counters["rap"]=0(字典键赋值,零新增成员) | 复用既有 | 是→V3 |
|
||||
| game/data/schemas/treasure_item_table.gd | EFFECT_KINDS 扩 `level_start_rap_grant` | 复用既有(扩词表) | 否(词表面) |
|
||||
| game/data/tables/treasure_items.tres | 新增 level_start_rap / correct_action_rap 两行 | 复用既有(增 2 行) | 是→V4/V5/V6 |
|
||||
| game/data/schemas/treasure_item_table.gd | EFFECT_KINDS/MAGNITUDE_KINDS 扩 `level_start_rap_grant`;KEY_WHITELIST 扩 display_key/desc_key 两键(:50-53);display_name 空判据迁移「至少一方非空」(:89-90) | 复用既有(扩词表/白名单) | 否(词表/白名单/判据面→N2) |
|
||||
| game/data/tables/treasure_items.tres | 新增 level_start_rap / correct_action_rap 两行(display_key/desc_key 文案形态) | 复用既有(增 2 行) | 是→V4/V5/V6 |
|
||||
| game/data/l10n/strings.csv | 新建文案单点文件(表头 key,zh_CN)+两件新秘宝四键值 | 新增 | 否(文案数据面) |
|
||||
| game/project.godot | internationalization/locale/translations 追加 strings.csv 导出的 zh_CN 翻译资源(首建翻译注册面) | 复用既有(配置追加) | 否(加载注册面) |
|
||||
| game/core/meta_progression.gd | treasure_shop_status 两字段 key 解析(display_key/desc_key 优先经 tr()、存量 display_name/desc 字面回退,:108-109) | 复用既有(扩展) | 是→V10 |
|
||||
| game/tests/unit/data_config/table_structure_guard_test.gd | 秘宝 V18 白板档计数 12→14+投影两查(段内扩展,无新测试函数名) | 复用既有(扩展) | 测试件 |
|
||||
| game/core/settlement/grant_segment.gd | 新增 `_apply_rap_hits(hits: Array) -> void`,在 _reveal_safe/_judge_seal_hit 发射后调用 | 复用既有(扩展) | 是→V5/V6 |
|
||||
| game/tests/unit/battle_settlement/round_flow_skill_pool_test.gd | V1/V2/V3 断言扩展 | 复用既有(扩展) | 测试件 |
|
||||
| game/tests/unit/core/treasure_effects_test.gd | V4/V5/V6 断言扩展 | 复用既有(扩展) | 测试件 |
|
||||
@@ -114,7 +119,7 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
|
||||
取用:`db.run.action_economy.rap_refresh_cost == 4`(T0 定)。产出:`ActionEconomy.set_adventure_bucket(bucket: Dictionary) -> void`、`adventure_counters["rap"]: int`(T2/T3 引用逐字一致)。
|
||||
|
||||
- [ ] action_economy.gd 增成员 `var _adv_bucket := {}`(Dictionary 推断形态,现役 :113 `_port` 同款)与 `set_adventure_bucket(bucket: Dictionary) -> void`;`notify_combat_end()` 去 :272 `_rap = 0`,改为「桶为空字典时零扰动不回写、否则把 `_rap` 写回桶键 `"rap"`」(相位回 Idle/`_ap = 0` 不变,:117 既有相位断言不受影响)。
|
||||
- [ ] action_economy.gd 增成员 `var _adv_bucket := {}`(Dictionary 推断形态,现役 :36 `_port` 同款)与 `set_adventure_bucket(bucket: Dictionary) -> void`;`notify_combat_end()` 去 :272 `_rap = 0`,改为「桶为空字典时零扰动不回写、否则把 `_rap` 写回桶键 `"rap"`」(相位回 Idle/`_ap = 0` 不变,:117 既有相位断言不受影响)。
|
||||
- [ ] 回写完成即由下一场 `begin_battle` 经 carry 注入重建(本 ActionEconomy 实例每战新建、不复用,battle_orchestrator.gd:208/level_runner.gd:517);保留 `_rap` 只为当次回写读数,不承载跨战状态。
|
||||
- [ ] battle_orchestrator.gd `begin_battle(enc)` 在 `_begin_battle_preview_economy` 之前调 `action_economy.set_adventure_bucket(enc.get("adv_bucket", {}))`(enc 已带 adv_bucket,F6);空字典=单关模式零扰动。
|
||||
- [ ] `_begin_battle_preview_economy(enc)` 增:`var carry: int = int((enc.get("adv_bucket", {}) as Dictionary).get("rap", 0))`,carry>0 时 `action_economy.grant_reserve_ap(carry)`;与凭证 voucher_rap 注入同段、各自独立(凭证是节点级一次性,carry 是冒险级结余)。
|
||||
@@ -125,19 +130,22 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
|
||||
### T2 开局储备秘宝(估时 0.5–0.75 日,中值 0.625)
|
||||
|
||||
取用:T1 的 `set_adventure_bucket` 与桶键 `"rap"`。产出:`treasure_items.tres` 行 `level_start_rap`、`EFFECT_KINDS` 项 `level_start_rap_grant`。
|
||||
取用:T1 的 `set_adventure_bucket` 与桶键 `"rap"`。产出:`treasure_items.tres` 行 `level_start_rap`(display_key/desc_key 形态)、`EFFECT_KINDS` 项 `level_start_rap_grant`、strings.csv 键值对两枚。
|
||||
|
||||
- [ ] treasure_item_table.gd 两处扩词表::31-32 EFFECT_KINDS 追加 `"level_start_rap_grant"`、:44-46 MAGNITUDE_KINDS 追加同词(否则 :154-167 因 magnitude=4 且无 triggers 报 cross_field,整表加载致命);两处各一句,不做条件判断。
|
||||
- [ ] treasure_items.tres 增行:`item_id="level_start_rap"`, `display_name` 用代号, `dimension_tags=["action"]`, `tier="common"`, `target="none"`, `magnitude=4`, `use_phase="active_dig"`, `form="passive"`, `slot_cost=1`, `unlock_keystone_cost=10`, `effect_kinds=["level_start_rap_grant"]`(形态照 :85-96 reserve_jar 行;禁挂 triggers,:121-122 互斥)。
|
||||
- [ ] treasure_item_table.gd 结构面四处::31-32 EFFECT_KINDS 追加 `"level_start_rap_grant"`、:44-46 MAGNITUDE_KINDS 追加同词(否则 :154-167 因 magnitude=4 且无 triggers 报 cross_field,整表加载致命);:50-53 KEY_WHITELIST 追加 `"display_key"`/`"desc_key"` 两键(文案 key 形态行承载,code-conventions §2.5);:89-90 display_name 空判据迁移为「display_name 与 display_key 至少一方非空」(存量 12 行 display_name 在场零扰动,新行走 display_key——不迁移则新行加载致命);各一处追加/改判,不做条件判断(N2)。
|
||||
- [ ] treasure_items.tres 增行:`item_id="level_start_rap"`, `display_key="treasure.level_start_rap.name"`, `desc_key="treasure.level_start_rap.desc"`, `dimension_tags=["action"]`, `tier="common"`, `target="none"`, `magnitude=4`, `use_phase="active_dig"`, `form="passive"`, `slot_cost=1`, `unlock_keystone_cost=10`, `effect_kinds=["level_start_rap_grant"]`(文案形态=display_key/desc_key 经 strings.csv 取值——code-conventions §2.5、秘宝.md :228;行内零文案字面;禁挂 triggers,:121-122 互斥)。
|
||||
- [ ] 新建 game/data/l10n/strings.csv(表头 `key,zh_CN`)增两行:`treasure.level_start_rap.name`=开局储备、`treasure.level_start_rap.desc`=每个关卡开始时储备点 +4(够一次刷新)(文案值照 秘宝.md :44 代号与一句话 provisional;正式命名归用户);project.godot internationalization/locale/translations 追加该 CSV 导出的 zh_CN 翻译资源(首建翻译注册面——全仓现无 l10n 数据件与注册面,game/data/l10n/ 实查不存在);取文案只经 `tr()`(Object 在役方法,meta_progression 为 RefCounted 直调)。
|
||||
- [ ] meta_progression.gd:108-109 treasure_shop_status 两字段改 key 解析:`display_key`/`desc_key` 优先经 `tr()` 取值、行内无 key 回退存量 `display_name`/`desc` 字面(存量 12 行未迁移——迁移归文案批,本批零扰动);table_structure_guard_test.gd `_smoke_adventure_table` 秘宝 V18 段:白板档计数 `locked_n == 12` 换代 `== 14`(目录 12→14 随批,护栏语义不变)并增两查——level_start_rap 投影 display_name/desc 非空(key 解析生效读数)、reserve_jar 投影仍为存量字面(回退零扰动)。
|
||||
- [ ] `_begin_battle_preview_economy(enc)` 增:`if int(enc.get("battle_index", 1)) == 1: var grant := attune_param_sum("level_start_rap_grant"); if grant > 0: action_economy.grant_reserve_ap(grant)`(attune_param_sum 现役 :160;magnitude 经参数面汇总,禁写死 4)。
|
||||
- [ ] treasure_effects_test.gd 增 V4:装配 `level_start_rap` 起战(battle_index=1)rap==4、同一关第二战(battle_index=2)不再注入、未装配零扰动(照 :31/:47 形态)。
|
||||
- [ ] treasure_effects_test.gd 增 V4:装配 `level_start_rap` 起战(battle_index=1)rap==4、同一关第二战(battle_index=2)不再注入、未装配零扰动(照 :31/:44-47 形态)。
|
||||
- [ ] 孤立直跑该套件绿。
|
||||
|
||||
### T3 推演储能秘宝与正确结果转译(估时 0.5–0.75 日,中值 0.625)
|
||||
|
||||
取用:`adventure_counters["rap"]`、`treasure_items.tres` 行 `level_start_rap` 的头字段形态。产出:`treasure_items.tres` 行 `correct_action_rap`、`GrantSegment._apply_rap_hits(hits: Array) -> void`。
|
||||
取用:`adventure_counters["rap"]`、`treasure_items.tres` 行 `level_start_rap` 的头字段形态。产出:`treasure_items.tres` 行 `correct_action_rap`(display_key/desc_key 形态)、strings.csv 键值对两枚、`GrantSegment._apply_rap_hits(hits: Array) -> void`。
|
||||
|
||||
- [ ] treasure_items.tres 增行:`item_id="correct_action_rap"`, `magnitude=1`, `form="passive"`, `effect_kinds` 不写, `triggers=[{"on":"dig_reveal","do":{"kind":"grant_reserve_ap","value_from":"magnitude"}},{"on":"seal_hit","do":{"kind":"grant_reserve_ap","value_from":"magnitude"}}]`(数值唯一源=行内 magnitude,照 morning_order :25-41 形态;词表校验转交 EffectEngine.validate_trigger_row,F7/F8)。
|
||||
- [ ] treasure_items.tres 增行:`item_id="correct_action_rap"`, `display_key="treasure.correct_action_rap.name"`, `desc_key="treasure.correct_action_rap.desc"`, `magnitude=1`, `form="passive"`, `effect_kinds` 不写, `triggers=[{"on":"dig_reveal","do":{"kind":"grant_reserve_ap","value_from":"magnitude"}},{"on":"seal_hit","do":{"kind":"grant_reserve_ap","value_from":"magnitude"}}]`(数值唯一源=行内 magnitude,照 morning_order :25-41 形态;词表校验转交 EffectEngine.validate_trigger_row,F7/F8)。
|
||||
- [ ] strings.csv 增两行:`treasure.correct_action_rap.name`=推演储能、`treasure.correct_action_rap.desc`=挖开安全格或封印标中时储备点 +1(照 秘宝.md :45 代号与一句话 provisional)。
|
||||
- [ ] grant_segment.gd 增 `func _apply_rap_hits(hits: Array) -> void`:累加 hits 中 `kind=="grant_reserve_ap"` 的 `value`,>0 时调 `action_economy.grant_reserve_ap(total)`(:25 成员在案)。
|
||||
- [ ] `_reveal_safe`(:105 邻域)在 `dr_hits` 发射后仅当 `String(evt.get("channel", "dig")) == "dig"` 时调 `_apply_rap_hits(dr_hits)`(minesweeper_rules.gd:345-362 连锁格 channel="chain" 逐格发射,不调即不逐格追加);`_judge_seal_hit`(:355 邻域)在 `fh_hits` 发射后调一次;`mine_hit`/`seal_missed` 发射点不调。
|
||||
- [ ] treasure_effects_test.gd 增 V5:单次付费动作挖安全格 +1、标中 +1、踩雷与标空零增、未装配零扰动。
|
||||
@@ -160,19 +168,21 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
| V1 | 刷新价=每轮预算一半(design/gdd/systems/排雷循环/行动经济.md「挖掘期刷新:花储备换新图」刷新门槛按每轮预算的一半设定) | action_economy.tres:10 8→4;schema :10 缺省同步 | round_flow_skill_pool_test.gd:_smoke_active_refresh 内 `_test_refresh_cost_is_half_budget`(_test_ 尾缀) | 单元 | BattleOrchestrator.player_request_refresh() | `rap_refresh_cost * 2 == ap_per_round` ∧ 扣费后 rap == 攒额 − 表值 | 既有:停手转存储备与轮内刷新(上限/AP 不重置/刷新图零清图奖励) |
|
||||
| V2 | 战斗结束储备点原样保留(design/gdd/systems/排雷循环/行动经济.md「验收标准」刷新规则) | action_economy.gd notify_combat_end 回写桶;battle_orchestrator 起战注入 carry | round_flow_skill_pool_test.gd:_test_rap_carries_across_battles | 单元 | 连续两场 BattleOrchestrator.begin_battle(同一 adv_bucket) | 第二场起战 action_economy.rap == 第一场 notify_combat_end 后 rap | 新增:储备点整局冒险携带与冒险收束清零 |
|
||||
| V3 | 冒险收束清零(design/gdd/systems/排雷循环/行动经济.md「验收标准」储备清零) | adventure_runner._settle 清桶键 | round_flow_skill_pool_test.gd:_test_rap_cleared_on_adventure_settle | 单元 | AdventureRunner._settle("completed") | adventure_counters["rap"] == 0 ∧ 三结局共用出口 | 新增:储备点整局冒险携带与冒险收束清零 |
|
||||
| V4 | 每关开始 +4 储备点(design/gdd/systems/跨局循环/秘宝.md「普通档」开局储备) | treasure_items.tres level_start_rap 行+关首注入面 | treasure_effects_test.gd:_test_level_start_rap_grant | 单元 | BattleOrchestrator.begin_battle(battle_index=1, attunement 含件) | 首战 rap==magnitude ∧ battle_index=2 不再注入 ∧ 未装配 rap==0 | 新增:储能秘宝关首注入与正确动作产储备点 |
|
||||
| V5 | 单次付费动作挖安全格/封印标中 +1(design/gdd/systems/跨局循环/秘宝.md「普通档」推演储能) | correct_action_rap 行+grant_segment 两处 hits 转译 | treasure_effects_test.gd:_test_correct_action_rap | 单元 | LevelRunner 真实结算段经 BattleOrchestrator 装配链的 dig_reveal/seal_hit 发射(内部驱动受控例外:本改动无公开可观测面可钉,判据绑 action_economy.rap 状态源取值) | 每次正确事件后 rap 恰 +1;mine_hit/seal_missed 后 rap 不变 | 新增:储能秘宝关首注入与正确动作产储备点 |
|
||||
| V4 | 每关开始 +4 储备点(design/gdd/systems/跨局循环/秘宝.md「普通档」开局储备) | treasure_items.tres level_start_rap 行(display_key/desc_key)+strings.csv 两键值+关首注入面 | treasure_effects_test.gd:_test_level_start_rap_grant | 单元 | BattleOrchestrator.begin_battle(battle_index=1, attunement 含件) | 首战 rap==magnitude ∧ battle_index=2 不再注入 ∧ 未装配 rap==0 | 新增:储能秘宝关首注入与正确动作产储备点 |
|
||||
| V5 | 单次付费动作挖安全格/封印标中 +1(design/gdd/systems/跨局循环/秘宝.md「普通档」推演储能) | correct_action_rap 行(display_key/desc_key)+strings.csv 两键值+grant_segment 两处 hits 转译 | treasure_effects_test.gd:_test_correct_action_rap | 单元 | LevelRunner 真实结算段经 BattleOrchestrator 装配链的 dig_reveal/seal_hit 发射(内部驱动受控例外:本改动无公开可观测面可钉,判据绑 action_economy.rap 状态源取值) | 每次正确事件后 rap 恰 +1;mine_hit/seal_missed 后 rap 不变 | 新增:储能秘宝关首注入与正确动作产储备点 |
|
||||
| V6 | 与换图系专长可叠加(design/gdd/systems/跨局循环/秘宝.md「普通档」两件储能件的代号) | 同上行与转译(不覆盖 dig_paid 既有通道) | treasure_effects_test.gd:_test_correct_action_rap_stacks_with_vein_reserve | 单元 | 同 V5+装配 vein_reserve(内部驱动受控例外同 V5) | 单次付费动作挖安全格后 rap +2(dig_paid 与 dig_reveal 各 +1) | 既有:换图基座:挖格产 RAP 与刷新折扣 |
|
||||
| V7 | 断点往返不丢储备点(design/gdd/systems/表现与支撑/存档序列化.md「验收标准」断点域契约) | 借 adventure_counters 桶随快照(零新增断点键) | feat_vouchers_test.gd:_test_rap_breakpoint_roundtrip | 单元 | AdventureRunner.resume_adventure(bp) → 起战 | bp["adventure_counters"]["rap"] 与续玩起战 rap 逐位相等 | 新增:储备点整局冒险携带与冒险收束清零 |
|
||||
| V8 | 只按正确结果给(design/gdd/systems/跨局循环/秘宝.md「普通档」两件储能件的代号) | triggers 只挂 dig_reveal/seal_hit | treasure_effects_test.gd:_test_wrong_action_gives_no_rap | 单元 | LevelRunner 真实结算段经 BattleOrchestrator 装配链的 mine_hit/seal_missed 发射(内部驱动受控例外同 V5) | 两次错误事件后 rap 与事件前逐位相等;静态结构判据「订阅行无 mine_hit/seal_missed」申报观测面局限(该两事件不发射本 kind,动态只验 rap 不变) | 新增:储能秘宝关首注入与正确动作产储备点 |
|
||||
| V9 | 连锁展开不逐格追加(design/gdd/systems/排雷循环/行动经济.md「换图系专长对储备与刷新的改写」矿脉储能) | _reveal_safe 按 channel=="dig" 门控转译 | treasure_effects_test.gd:_test_chain_gives_one_rap | 单元 | LevelRunner 真实结算段经 BattleOrchestrator 装配链的 dig+chain 混合揭示 | 首格 dig+N 格 chain 后 rap 恰 +1 | 新增:储能秘宝关首注入与正确动作产储备点 |
|
||||
| V10 | 两件新秘宝卡面文案经 strings.csv 取值(design/engineering/code-conventions.md「2.5 玩家可见文案承载」数据表文案字段更名) | meta_progression.gd treasure_shop_status 两字段 key 解析+存量字面回退(:108-109) | table_structure_guard_test.gd:_smoke_adventure_table 秘宝 V18 段内两查(无新测试函数名) | 单元 | MetaProgression.treasure_shop_status() | level_start_rap 投影 display_name/desc 非空 ∧ reserve_jar 投影仍为存量字面 | 既有:储能秘宝关首注入与正确动作产储备点 |
|
||||
| N1 | 非行为改动:schema 缺省 6→4(design/gdd/systems/排雷循环/行动经济.md「调参表」刷新门槛) | action_economy_table.gd:10 缺省声明面 | 无新增断言(判断依据=运行时值由 .tres 覆盖,断言只读 db.run.action_economy.rap_refresh_cost) | — | — | 表加载零新增 error | 既有:停手转存储备与轮内刷新(上限/AP 不重置/刷新图零清图奖励) |
|
||||
| N2 | 非行为改动:schema 结构面三项——EFFECT_KINDS/MAGNITUDE_KINDS 扩 `level_start_rap_grant`、KEY_WHITELIST 扩 display_key/desc_key(:50-53)、display_name 空判据迁移(:89-90)(design/engineering/code-conventions.md「2.5 玩家可见文案承载」数据表文案字段更名) | treasure_item_table.gd 词表/白名单/判据三处 | 无新增断言(判据=表加载零新增 error,两新行与存量 12 行加载全过) | — | — | 表加载零新增 error | 既有:储能秘宝关首注入与正确动作产储备点 |
|
||||
|
||||
- 验证命令:单元套件直跑 `D:\code\godot\Godot_v4.7.2-stable_win64_console.exe --headless --path game --script res://tests/unit/battle_settlement/round_flow_skill_pool_test.gd`(treasure_effects/feat_vouchers 同形换路径);全套件 `--script res://tests/run_all.gd`。
|
||||
- 内部驱动受控例外申报:V5/V6/V8/V9 的改动点(秘宝订阅 hits 转译)无公开编排器入口可钉,真实入口取 LevelRunner 真实结算段经 BattleOrchestrator 装配链,判据绑 `action_economy.rap` 状态源取值(test-conventions.md「8.2 四层与真实入口」不依赖场景树和真实宿主的纯逻辑/:134-136)。
|
||||
- 测试方式两分法:V1–V9 全归单元夹具(能力验证);用户目检项=RAP 数字与清零反馈、刷新按钮「RAP−4」文案,写进实现报告实机目检总清单,登记不阻塞。
|
||||
- 测试方式两分法:V1–V10 全归单元夹具(能力验证);用户目检项=RAP 数字与清零反馈、刷新按钮「RAP−4」文案、秘宝匣柜台两新件名与卡面摘要显示(display_key 解析读数),写进实现报告实机目检总清单,登记不阻塞。
|
||||
- 回归措辞:T 段出口跑一次覆盖改动面的套件;修复只做出红最小单元的最窄确认;新增测试先行孤立验证再并入全套。
|
||||
- 测试削弱申报:无(不删不改既有断言)。
|
||||
- 测试削弱申报:table_structure_guard_test.gd 秘宝 V18 白板档计数断言 12→14(目录增 2 行的数据计数随批换代——全未解锁与 mode 分派护栏语义不变,非放宽阈值)。
|
||||
- 独立验收审计:入口=T4 第四步;报告 reports/iter<N>-验收审计-<日期>.md;高档梯度(test-conventions §8.7)。
|
||||
- 判据出处行锚逐行实读由复核门执行(req-card grilling 审点,机检 C5 只查存在性)。
|
||||
|
||||
@@ -184,10 +194,10 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
|
||||
## 11. 代拍板白名单
|
||||
|
||||
- 两件秘宝的代号字符串与 desc 文案措辞(正式命名归用户,GDD 已标 provisional)。
|
||||
- 两件秘宝的 item_id 与 display_key/desc_key 键名字符串、strings.csv 中文文案措辞(键值照 GDD 代号与一句话 provisional 落——文案值单点住 strings.csv,code-conventions §2.5;正式命名归用户,GDD 已标 provisional)。
|
||||
- `_apply_rap_hits` 私有函数名与局部累加变量名。
|
||||
- 表注释改写措辞(须保留「按每轮预算的一半设定」与「解耦单独立批」两层意思)。
|
||||
- 两件秘宝行内代号字符串与 desc 文案(tier/unlock 仅用现役普通档 provisional 占位值,不另定案)。
|
||||
- 两件秘宝行内键名字符串与 strings.csv 文案值(行内禁落 display_name/desc 字面;tier/unlock 仅用现役普通档 provisional 占位值,不另定案)。
|
||||
- 超清单事项记实现报告「实现决定记录」节。
|
||||
|
||||
## 12. 待裁点
|
||||
@@ -201,7 +211,8 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
| `set_adventure_bucket`(action_economy.gd 新方法) | 现役 RAP 注入已走 grant_reserve_ap(:195)与凭证通道(battle_orchestrator.gd:388-390),能复用;新增方法只为把「回写目标」交给同一实例,不另设 RAP 宿主 | 冒险级 RAP 唯一落 `adventure_counters["rap"]`;ActionEconomy 只持桶引用,不复制值 | Core 内:LevelRunner enc.adv_bucket → begin_battle → set_adventure_bucket → notify_combat_end 回写 |
|
||||
| `level_start_rap_grant`(EFFECT_KINDS+MAGNITUDE_KINDS 两处词表项) | EVENTS 无「关卡开始」事件(F8),订阅行做不到;现役参数面 kind 分发 `attune_param_sum`(battle_orchestrator.gd:160)已能按 kind 汇总 magnitude,扩一词即可复用整套注入面,不新增事件/组件 | kind 只在 treasure_item_table.gd EFFECT_KINDS 一处登记;注入点只在 _begin_battle_preview_economy 一处 | 装配集→attune_param_sum→battle_index==1 门→grant_reserve_ap;不碰排雷规则 |
|
||||
| `_apply_rap_hits`(grant_segment.gd 新私有函数) | `grant_reserve_ap` 已有消费点(action_economy.gd:114-126),但只服务 dig_paid;dig_reveal/seal_hit 的 hits 无转译,必须新增一个窄转译,不能改通用 fx_emit(会影响全部事件) | 转译只在 grant_segment 一处;同文件两个调用点(grant_segment.gd:101 `_reveal_safe`/:349 `_judge_seal_hit`);grant_segment 已有 action_economy 成员(:25/:43) | GrantSegment 经 fx_host.fx_emit 收 hits → 本函数 → action_economy.grant_reserve_ap;Core 零 UI |
|
||||
| 秘宝表两行(数据,非新文件) | 12 行现役形态(:85-96 参数面/:30-42 triggers)直接照抄结构;档位/解锁 provisional 按 GDD :47 | 两行各一 item_id;无同名同义标识符在盘 | 经 ConfigDB 装载→attunement_rows→effect_engine.rebuild 订阅/注入面读 kind |
|
||||
| 秘宝表两行(数据,非新文件) | 12 行现役结构照抄(:85-96 参数面/:30-42 triggers);文案面不走存量 display_name/desc 字面旧形态,按 display_key/desc_key 新形态落(值住 strings.csv——存量 12 行迁移归文案批,本批零扰动);档位/解锁 provisional 按 GDD :47 | 两行各一 item_id;strings.csv 四键全库唯一;无同名同义标识符在盘 | 经 ConfigDB 装载→attunement_rows→effect_engine.rebuild 订阅/注入面读 kind;卡面文案经 meta_progression.treasure_shop_status 投影→tr() 解析 |
|
||||
| strings.csv(新建数据件,game/data/l10n/) | 全仓无 l10n 数据件与翻译注册面(game/data/l10n/ 实查不存在——code-conventions §2.5 规制在、数据面未建),本批为首用批不能复用 | 文案值唯一容器;key 点分命名全库唯一 | 数据表行持 key→呈现投影面 tr() 取值;meta_progression 为 Core 投影件、Core 零 UI 依赖不破 |
|
||||
| 测试函数(扩展既有套件) | grep 现役三套已覆盖刷新/装配/断点,扩展不另立新文件 | 每断言只落一个套件,不散落 helper | 沿用 Kit.check_quiet/Kit.check 与 run_all.gd 既有登记 |
|
||||
|
||||
## 14. 实现规范预算
|
||||
@@ -209,8 +220,8 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
- action_economy.gd:无新文件;新增 1 公开方法(set_adventure_bucket)、1 类变量(桶引用),公开方法与类变量均远低于默认 20/15(F11 无基线键);notify_combat_end 分支数不变(去一赋值、加一回写)。
|
||||
- battle_orchestrator.gd/adventure_runner.gd/level_runner.gd:零新增类变量(adventure_runner 用现成 adventure_counters 字典键、F11 基线 23/30/33 不升);只加语句与一处参数传递。
|
||||
- grant_segment.gd:新增 1 私有函数 `func _apply_rap_hits(hits: Array) -> void`,分支 ≤3(遍历/累加/>0 调一次)、返回 1;文件无基线键,仍在默认阈值内。
|
||||
- treasure_item_table.gd:两处词表各加 1 项(EFFECT_KINDS/MAGNITUDE_KINDS),零新函数;treasure_items.tres:rows 12→14(数据行,非代码面)。
|
||||
- action_economy.gd 新成员形态 `var _adv_bucket := {}`(Dictionary 推断,+1 类变量=10 ≤ 15);桶为空字典时 notify_combat_end 零扰动不回写。
|
||||
- treasure_item_table.gd:两处词表各加 1 项(EFFECT_KINDS/MAGNITUDE_KINDS)+KEY_WHITELIST 加 2 键+display_name 空判据一处改判,零新函数;treasure_items.tres:rows 12→14(数据行,非代码面)。
|
||||
- action_economy.gd 新成员形态 `var _adv_bucket := {}`(Dictionary 推断;类变量现役 12+新增 1=13 ≤ 15);桶为空字典时 notify_combat_end 零扰动不回写。
|
||||
- 存量触面一查:T0 首步记录 gdstyle 改前读数,S13 键较登记值只降不升(本批无基线键变动预期);如 adventure_runner/level_runner 键上升即停卡呈报。
|
||||
- 指标例外申报:无。
|
||||
|
||||
@@ -240,3 +251,12 @@ design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连
|
||||
| 1 | 只读子代理(未参与本卡撰写) | §5 声明解锁「归调参批不做」,T2 却写死 tier/unlock,复核者初判退回 doc-design | 自判 | 不改数值、不呈用户:现役普通档解锁全为 provisional 占位,10 即占位非定案;§5 改「按现役普通档同款 provisional 占位,不定案」,§11 白名单补同位说明(依据 treasure_items.tres:95、秘宝.md「三档骨架」两件储能件暂落普通档-29) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | T1/T3 各把两组断言塞进一步,取用块用「T0 的表值」类模糊指代 | 补写 | T1 拆 V2/V7 两步、T3 拆 V5/V6/V9 三步;三处取用块改确切名字 `db.run.action_economy.rap_refresh_cost == 4`/`adventure_counters["rap"]`/`level_start_rap` 行形态(依据 .zcode/skills/req-card/SKILL.md「任务卡写作纪律」步骤粒度) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | Dictionary 重赋值会断桶引用,卡内未声明约束 | 自判 | 不改:重赋值只在起战前/冒险收束发生,战斗进行中零重赋值,不构成实战缺陷(依据 adventure_runner.gd:116/:170/:203/:348、level_runner.gd:88-89/:539);日后新增战斗中重赋值路径须回炉补条款 |
|
||||
| 修订 | 修订会话自复核(修订执行者) | 新形态行无 display_name,schema :89-90「display_name 空」domain 校验对新行加载致命 | 补写 | T2 schema 步补判据迁移「display_name 与 display_key 至少一方非空」(存量 12 行零扰动);§9 增 N2 非行为改动行;§7/§14 同步(依据 treasure_item_table.gd:89-90 实读) |
|
||||
| 修订 | 修订会话自复核(修订执行者) | 秘宝匣柜台投影 treasure_shop_status 直读行内 display_name/desc(:108-109),key 形态行投影空白 | 补写 | §7 增 meta_progression 行+T2 投影步(key 优先经 tr()、存量字面回退)+§9 增 V10 对照行+目检项补一条(依据 meta_progression.gd:108-109、camp_shop_presenter.gd:96 实读) |
|
||||
| 修订 | 修订会话自复核(修订执行者) | table_structure_guard_test.gd V18 白板档 locked_n==12 硬断言与目录 12→14 相撞假红 | 补写 | T2 补计数换代 12→14 步、§9 削弱申报列明、C6/§7 同步(依据 table_structure_guard_test.gd:211-212 实读) |
|
||||
| 修订 | 修订会话自复核(修订执行者) | strings.csv 与翻译注册面全仓不存在,l10n 运行面未建(code-conventions §2.5 规制在、数据面未落地) | 自判 | 本批为首用批:新建 strings.csv+project.godot 翻译注册+tr() 取值入 T2(Object 在役方法,RefCounted 直调),不另立前置批(依据 game/data/l10n/ 实查不存在、code-conventions.md §2.5 实读) |
|
||||
| 修订 | 修订会话自复核(修订执行者) | 用户裁读数 treasure_effects_test 未装配零扰动 :43-46,实读两断言落 :44-45/:46-47(夹具 :42-43) | 自判 | 卡按实读落 :44-47(依据 treasure_effects_test.gd:41-47 实读) |
|
||||
| 修订 | 修订会话自复核(修订执行者) | tests/README §6 行锚 :124 实读为棋盘 golden 行非能力行;停手转存能力行现役 :126 | 自判 | §6 行锚改 :126/:130/:232(依据 game/tests/README.md:124/:126/:130/:232 实读) |
|
||||
| 修订 | 修订会话自复核(修订执行者) | KEY_WHITELIST 实读 :50-53,用户单记 :53-56 | 自判 | 卡内引用按实读 :50-53 落(依据 treasure_item_table.gd:50-53 实读) |
|
||||
|
||||
修订轮(2026-11-10,写卡段修订批·用户令卡面修订):修订范围=文案形态裁决(display_key/desc_key+值住 strings.csv+schema 结构面扩面申报)、版本号换代(行动经济 v1.7→v1.8/秘宝 v1.3→v1.5)、行锚与读数修正(F5 断点回填归属/tests/README 行锚/行号小漂读数)。修订执行会话自复核(修订者即执行者——非对抗轮,对抗轮 1 已于 2026-11-09 完成;本轮审点=修订面实读核证+修订连带面三查,上表轮次=修订七行)。本轮 7 条发现逐条四类分流:自判 4、补写 3;零待裁、零退回上游,零待裁点维持。设计闭合凭据不变(秘宝.md v1.5 :228 已定新形态,设计面无缺口)。
|
||||
Reference in new issue
Block a user