写卡(刷新经济改版批·卡片成立): reports/需求卡片-刷新经济改版批-2026-11-09.md 成文——验收档高、估时 2–3.25 日(中值 2.625)、17 节必备结构齐(设计事实源/现状事实/设计契约/范围边界/关联文档同步面/文件结构图/T0–T4/改动—验收对照表 V1–V9+N1/异常分级/代拍板白名单/零待裁/落位预检/实现规范预算/拆分边界纪律/复核记录)。
复核门: 未参与撰写的只读子代理对抗复核一轮 16 发现全处置——自判 5(含 2 条判定不改+依据)、补写 11、零待裁零退回上游;重点补 MAGNITUDE_KINDS 双词表、连锁不逐格追加 C7+V9、桶成员声明与空字典守卫、value_from 单点、V7 重锚存档序列化.md:180、V8 重锚秘宝.md:47、存档序列化.md:57 持久化归属反哺点。 能力表同批新增 2 行(game/tests/README.md);待办条目状态推进「文档设计已闭合+已写卡」。 凭据: 流水线闸 PASS(37条目/57行/交叉核2链/卡片口径4张全过)、文档域闸【验收通过】无新增红。
This commit is contained in:
1 parent
750b491b23
commit
18099fd253
3 files changed
+246
-2
No files matched your search
@@ -122,6 +122,8 @@ tests/
|
||||
| 棋盘格面绘制显示(渲染闸棋盘三图 golden 逐像素——变异标记/奖励徽章/移除退色) | 排雷玩法 | `board_shot_probe.tscn` 窗口化真渲染(`BoardView.rebuild()` 固定种子单关直构)→`golden_compare.py` 逐像素 | `board_shot_probe.gd:_ready`(棋盘三图采集——渲染闸基线面)(计划——需求卡片「QA覆盖余量收口批」2026-11-07 锚定) |
|
||||
| AP 扣费、末点耗尽即收轮与战斗收束清零 | 行动经济 | `MinesweeperRules.settle_batch()`(→`ActionEconomy.try_spend()`/`ActionEconomy.notify_combat_end()`) | `seal_polarity_test.gd:_smoke_seal_ap_exhausted`;`round_flow_skill_pool_test.gd:_smoke_full_battle`;`round_flow_skill_pool_test.gd:_smoke_active_refresh` |
|
||||
| 停手转存储备与轮内刷新(上限/AP 不重置/刷新图零清图奖励) | 行动经济 | `BattleOrchestrator.player_request_refresh()`/`MinesweeperRules.settle_batch()` | `round_flow_skill_pool_test.gd:_smoke_active_refresh`;`seal_polarity_test.gd:_smoke_refresh_provenance_guard`;`refresh_feats_test.gd:test_no_feats_baseline` |
|
||||
| 储备点整局冒险携带与冒险收束清零 | 行动经济 | `AdventureRunner.adventure_counters["rap"]`→`BattleOrchestrator.begin_battle()`/`AdventureRunner._settle()` | `round_flow_skill_pool_test.gd:_test_rap_carries_across_battles`;`round_flow_skill_pool_test.gd:_test_rap_cleared_on_adventure_settle`;`feat_vouchers_test.gd:_test_rap_breakpoint_roundtrip`(计划——需求卡片「刷新经济改版批」2026-11-09 锚定) |
|
||||
| 储能秘宝关首注入与正确动作产储备点 | 行动经济×秘宝 | `BattleOrchestrator._begin_battle_preview_economy()`/`GrantSegment._apply_rap_hits()` | `treasure_effects_test.gd:_test_level_start_rap_grant`;`treasure_effects_test.gd:_test_correct_action_rap`;`treasure_effects_test.gd:_test_wrong_action_gives_no_rap`(计划——需求卡片「刷新经济改版批」2026-11-09 锚定) |
|
||||
| 换图系刷新链路与效果词表接线 | 行动经济×战斗结算×奇物 | `MinesweeperRules.settle_batch()`/`BattleOrchestrator.player_request_refresh()` | `effect_words_t1_test.gd:_init`;`forge_table_test.gd:_test_effect_kinds_closed`;`refresh_feats_test.gd:test_board_refresh_fact_only_on_success` |
|
||||
| 换图基座:挖格产 RAP 与刷新折扣 | 行动经济×奇物 | `MinesweeperRules.settle_batch()`/`BattleOrchestrator.player_request_refresh()` | `refresh_feats_test.gd:test_reserve_on_accepted_dig`;`refresh_feats_test.gd:test_refresh_discount_gate_and_charge`;`refresh_feats_test.gd:test_double_base_stack` |
|
||||
| 换图输出:刷新群伤与蓄力攻击 | 战斗结算×奇物 | `BattleOrchestrator.player_request_refresh()`→轮末 `MinesweeperRules.settle_batch(stop)` | `refresh_feats_test.gd:test_blast_defers_to_combat_segment`;`refresh_feats_test.gd:test_charge_layers_consumed_same_round`;`run_time_fatal_test.gd:_init` |
|
||||
|
||||
@@ -0,0 +1,242 @@
|
||||
# 需求卡片——刷新经济改版批
|
||||
|
||||
> 来源:待办清单「刷新门槛调整与两件储能秘宝」条目(唯一事实源:design/gdd/systems/排雷循环/行动经济.md v1.7 §核心规则「停手与储备行动点」「挖掘期刷新」+design/gdd/systems/跨局循环/秘宝.md v1.3 §目录(重设计 v1)储能件两行)
|
||||
> 验收档:高(经济入账+冒险级账本随断点写读+数值表结构校验——失败代价随存档与结算传播)
|
||||
> 估时:2–3.25 个工作日(中值 2.625);超 3.25 日软盒预挂=T1 冒险级账本落点与断点往返不对齐时停机呈报,不扩面自救
|
||||
|
||||
## 1. 目标与完成定义
|
||||
|
||||
把「遇推理死路时几乎换不了图」改成能换:刷新价格降到每轮预算的一半;储备点不再随战斗结束清零,整局冒险保留、只有弃图刷新消耗、冒险收束清零;新增两件储能秘宝(每关开始 +4 储备点/挖开安全格或封印标中 +1 储备点,做错了不给)。
|
||||
|
||||
完成定义:
|
||||
- V1–V9 验收行全部在真实跑批中执行并通过;N1 非行为改动行写明判断依据;生产表加载零新增 error。
|
||||
- 四件需求点各有判据绑定面:刷新扣费按表值、储备点跨战回写与断点往返、关首注入、正确动作产储备点。
|
||||
- 代码域闸按改动域选档全绿;独立验收审计(高档)通过;reports/ 两份产出物落齐;能力表新增行在场。
|
||||
|
||||
## 2. 设计事实源
|
||||
|
||||
design/gdd/systems/排雷循环/行动经济.md v1.7:
|
||||
- :84 储备池生命周期「以一整局冒险为界……只有弃图刷新会消耗它,冒险收束时清零」。
|
||||
- :92 基线节拍「刷新门槛按每轮预算的一半设定,半轮停手够刷一次,满预算停手够刷两次」。
|
||||
- :277 调参表 rap_refresh_cost 行(按每轮预算的一半设定)。
|
||||
- :296 验收标准「储备点整局冒险保留,战斗结束不清零」;:299「冒险收束信号到达后归 0,且界面可见」。
|
||||
- :146 第五条行为说明(清图不需要跟弃图比收益)——本批不改该条,仅作为「门槛降低不改变清图定位」的边界。
|
||||
|
||||
design/gdd/systems/表现与支撑/存档序列化.md::180「断点域契约:写读往返逐位一致」(V7 锚);:57 局内资源持久化归属登记要求列第 6 节反哺点。
|
||||
|
||||
design/gdd/systems/跨局循环/秘宝.md v1.3:
|
||||
- :44 开局储备(代号)「每个关卡开始时储备点 +4(够一次刷新)」。
|
||||
- :45 推演储能(代号)「挖开安全格或封印标中时储备点 +1」。
|
||||
- :47 两件边界「按正确结果给……可叠加;开局储备只在关卡开始注入一次」(V8 锚:正确结果=排除错误结果)。
|
||||
|
||||
design/gdd/systems/排雷循环/行动经济.md v1.7::100 矿脉储能「连锁展开只随首格的一次付费动作结算,不逐格追加」(V9 锚,本批沿用先例)。
|
||||
|
||||
会话裁决沿革查 git 提交 750b491b(用户四案裁断:8→4/整局保留/每关 +4/做对了才给)。
|
||||
|
||||
## 3. 现状事实(开工自行复核)
|
||||
|
||||
- F1 刷新价现值 8:game/data/tables/action_economy.tres:10 `rap_refresh_cost = 8`;:7 `ap_per_round = 8`;:11 `refresh_cap_per_round = 2`。表注释 :19-20「默认 = ap_per_round,满停一轮 = 恰好一刷基线节拍……若有意解耦须单独立批」、:25-26 同义。
|
||||
- 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"`。
|
||||
- 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:124 能力行「停手转存储备与轮内刷新」、:126「换图基座:挖格产 RAP 与刷新折扣」、:227 覆盖域行。
|
||||
- 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 停机呈报)
|
||||
|
||||
- 🔴 C1 刷新价唯一落 action_economy.tres,产品码只经 `db.run.action_economy.rap_refresh_cost` 读取(battle_refresh_flow.gd:44、action_economy.gd:215);禁在产品码读取路径与测试断言写死 4 或 8(schema 缺省声明面随表值同步除外,测试只读 `db.run.action_economy.rap_refresh_cost`)。
|
||||
- 🔴 C2 储备点的冒险级账本唯一落 `adventure_counters["rap"]`(F5);禁新增第二个 RAP 持有者、禁在 adventure_runner.gd/level_runner.gd 新增类变量(F11 基线已超阈,新增即升键)。
|
||||
- 🔴 C3 战斗结束不清零;冒险收束清零;断点随 adventure_counters 自动写读,禁另立断点顶层键。
|
||||
- 🔴 C4 推演储能只挂 `dig_reveal`/`seal_hit`(做对了才给);禁挂 `mine_hit`/`seal_missed`/`dig_paid`,禁把错误结果算进 RAP。
|
||||
- 🔴 C5 开局储备只在每关首战(battle_index==1)注入一次,注入量读行内 magnitude;不改停手转存率与刷新折价判据(秘宝.md:47)。
|
||||
- 🔴 C6 数值表结构、RNG 单点、Core 零 UI 依赖不变;禁删既有断言、禁放宽阈值;本卡测试削弱申报=无。
|
||||
- 🔴 C7 连锁展开只随首格的一次付费动作结算,不逐格追加(沿用 design/gdd/systems/排雷循环/行动经济.md:100 矿脉储能先例);`_reveal_safe` 只在 `channel=="dig"` 时转译 RAP hits,`channel=="chain"` 的格零转译。
|
||||
|
||||
## 5. 范围边界
|
||||
|
||||
做:表值与表注释;ActionEconomy 战斗收束语义改为回写冒险桶;关首注入;秘宝表两行+一个参数面 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 桶随快照,不新增顶层键)。
|
||||
|
||||
## 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 :36/:57/:181 | 现条文「局内数值的持久化:无」「若未来某局内资源要开放跨战斗携带(如储备行动点),须修订池规则并向本系统登记持久化归属,禁止静默超域」;本批 RAP 借 adventure_counters 随断点写读即属该登记面 | 列反哺点,由文档批落文(登记 RAP 持久化归属/修订 :57 措辞),实现批禁写该文档;未落文前不静默超域 |
|
||||
| design/gdd/systems/跨局循环/秘宝.md v1.3 :45 | 现条文只写正向「挖开安全格或封印标中时 +1」;「错误结果不产 RAP」「连锁不逐格追加」两句规格句缺席(V8/V9 取 :47 与行动经济.md:100 推得) | 列反哺点,由文档批落文(补两句规格句),实现批禁写该文档 |
|
||||
| design/ux/battle.md、interaction-patterns.md | 文档设计段已把 RAP−8 改 RAP−4、清零时点改冒险收束 | 无同步义务 |
|
||||
|
||||
## 7. 文件结构图(卡前定分解)
|
||||
|
||||
| 文件 | 职责 | 新增/复用 | 行为改动→验收行 |
|
||||
|---|---|---|---|
|
||||
| game/data/tables/action_economy.tres | rap_refresh_cost 8→4+表注释解耦说明 | 复用既有 | 是→V1 |
|
||||
| game/data/schemas/action_economy_table.gd | 缺省值 6→4(消漂移,域不变) | 复用既有 | 否(缺省面) |
|
||||
| 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/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 断言扩展 | 复用既有(扩展) | 测试件 |
|
||||
| game/tests/unit/core/feat_vouchers_test.gd | V7 断点往返断言扩展 | 复用既有(扩展) | 测试件 |
|
||||
| game/tests/README.md | 能力表新增两行(写卡段同批) | 复用既有 | 否 |
|
||||
| reports/需求卡片-刷新经济改版批-2026-11-09.md | 本卡 | 新增(写卡段产出) | 否 |
|
||||
|
||||
## 8. 任务卡 T0..Tn
|
||||
|
||||
### T0 刷新价与表注释(估时 0.25–0.5 日,中值 0.375)
|
||||
|
||||
取用:无(首卡)。产出:`db.run.action_economy.rap_refresh_cost == 4`(T1–T3 只读)。
|
||||
|
||||
- [ ] action_economy.tres:10 改 `rap_refresh_cost = 4`;:19-20/:25-26 表注释改写为「按每轮预算的一半设定,解耦单独立批(本批即该批)」,删「默认=ap_per_round」不变式句(注释面,非 design/ 文档)。
|
||||
- [ ] action_economy_table.gd:10 缺省值 6→4,注释改「缺省与现行表值一致」;域 [1,64] 与跨字段检查零改动。
|
||||
- [ ] round_flow_skill_pool_test.gd 增断言 `_smoke_active_refresh` 内:`int(_db.run.action_economy.rap_refresh_cost) * 2 == int(_db.run.action_economy.ap_per_round)`(V1),真实入口=`BattleOrchestrator.player_request_refresh()`,判据绑定面=扣费后 `action_economy.rap` 等于 `rap_banked - 表值`(沿用 :190 既有断言,不重复写死数值)。
|
||||
- [ ] 孤立直跑该套件绿,读数写进本步提交信息。
|
||||
|
||||
### T1 储备点整局冒险保留(估时 0.75–1.25 日,中值 1.0)
|
||||
|
||||
取用:`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 既有相位断言不受影响)。
|
||||
- [ ] 回写完成即由下一场 `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 是冒险级结余)。
|
||||
- [ ] adventure_runner.gd `_settle` 内(:437 起、:462 `close_wallet()` 邻域)增 `adventure_counters["rap"] = 0`;三结局共用该出口。
|
||||
- [ ] round_flow_skill_pool_test.gd 增 V2 断言:两场连续战斗(同一 adv_bucket 引用)后第二场起战 `action_economy.rap == 第一场结束 rap`。
|
||||
- [ ] feat_vouchers_test.gd 增 V7 断言:断点快照 `breakpoint_snapshot()["adventure_counters"]["rap"]` 与续玩后起战 rap 逐位相等(复用 :134-139 往返夹具)。
|
||||
- [ ] 孤立直跑两套件绿,再跑单元测试全套件确认零回归。
|
||||
|
||||
### T2 开局储备秘宝(估时 0.5–0.75 日,中值 0.625)
|
||||
|
||||
取用:T1 的 `set_adventure_bucket` 与桶键 `"rap"`。产出:`treasure_items.tres` 行 `level_start_rap`、`EFFECT_KINDS` 项 `level_start_rap_grant`。
|
||||
|
||||
- [ ] 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 互斥)。
|
||||
- [ ] `_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 形态)。
|
||||
- [ ] 孤立直跑该套件绿。
|
||||
|
||||
### 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`。
|
||||
|
||||
- [ ] 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)。
|
||||
- [ ] 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、踩雷与标空零增、未装配零扰动。
|
||||
- [ ] treasure_effects_test.gd 增 V6:与矿脉储能同装时挖安全格一次 +2(秘宝.md:47 叠加边界)。
|
||||
- [ ] treasure_effects_test.gd 增 V9:连锁夹具(首格 dig + N 格 chain)后 rap 恰 +1(C7)。
|
||||
- [ ] 真实入口统一=`LevelRunner` 真实结算段经 `BattleOrchestrator` 装配链的 `dig_reveal`/`seal_hit` 发射;判据绑定面=`action_economy.rap` 增量。
|
||||
- [ ] 孤立直跑该套件绿,再跑单元测试全套件。
|
||||
|
||||
### T4 产出物落位卡(估时含于上四卡,批末执行)
|
||||
|
||||
- [ ] 按 `tools/run_all_gates.sh` 本批改动域选档跑绿+改前改后 S13 读数对拍(只降不升)。
|
||||
- [ ] reports/iter<N>-实现报告-<日期>.md 写齐:各卡状态+实机目检总清单(RAP 数字、刷新按钮代价文案、冒险收束清零反馈,登记不阻塞)+遗留读数义务+实现决定记录。
|
||||
- [ ] reports/iter<N>-反哺点-<日期>.md:第 6 节两条秘宝效果实现列+覆盖域表更新各一条落点写明。
|
||||
- [ ] 独立验收审计(高档,test-conventions §8.7 梯度):没参与实现的会话或子代理执行,报告 reports/iter<N>-验收审计-<日期>.md;未过不得合并。
|
||||
|
||||
## 9. 验证闸(改动—验收对照表)
|
||||
|
||||
| # | 需求点(判据出处行锚) | 改动 | 验收测试(名称+落点+尾缀) | 层级 | 真实入口 | 判据绑定面 | 能力行 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| V1 | 刷新价=每轮预算一半(design/gdd/systems/排雷循环/行动经济.md:92) | 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:296) | 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:299) | 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:44) | 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:45) | 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 不变 | 新增:储能秘宝关首注入与正确动作产储备点 |
|
||||
| V6 | 与换图系专长可叠加(design/gdd/systems/跨局循环/秘宝.md:47) | 同上行与转译(不覆盖 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:180) | 借 adventure_counters 桶随快照(零新增断点键) | feat_vouchers_test.gd:_test_rap_breakpoint_roundtrip | 单元 | AdventureRunner.resume_adventure(bp) → 起战 | bp["adventure_counters"]["rap"] 与续玩起战 rap 逐位相等 | 新增:储备点整局冒险携带与冒险收束清零 |
|
||||
| V8 | 只按正确结果给(design/gdd/systems/跨局循环/秘宝.md:47) | 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:100) | _reveal_safe 按 channel=="dig" 门控转译 | treasure_effects_test.gd:_test_chain_gives_one_rap | 单元 | LevelRunner 真实结算段经 BattleOrchestrator 装配链的 dig+chain 混合揭示 | 首格 dig+N 格 chain 后 rap 恰 +1 | 新增:储能秘宝关首注入与正确动作产储备点 |
|
||||
| N1 | 非行为改动:schema 缺省 6→4(design/gdd/systems/排雷循环/行动经济.md:277) | action_economy_table.gd:10 缺省声明面 | 无新增断言(判断依据=运行时值由 .tres 覆盖,断言只读 db.run.action_economy.rap_refresh_cost) | — | — | 表加载零新增 error | 既有:停手转存储备与轮内刷新(上限/AP 不重置/刷新图零清图奖励) |
|
||||
|
||||
- 验证命令:单元套件直跑 `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:96/:134-136)。
|
||||
- 测试方式两分法:V1–V9 全归单元夹具(能力验证);用户目检项=RAP 数字与清零反馈、刷新按钮「RAP−4」文案,写进实现报告实机目检总清单,登记不阻塞。
|
||||
- 回归措辞:T 段出口跑一次覆盖改动面的套件;修复只做出红最小单元的最窄确认;新增测试先行孤立验证再并入全套。
|
||||
- 测试削弱申报:无(不删不改既有断言)。
|
||||
- 独立验收审计:入口=T4 第四步;报告 reports/iter<N>-验收审计-<日期>.md;高档梯度(test-conventions §8.7)。
|
||||
- 判据出处行锚逐行实读由复核门执行(req-card grilling 审点,机检 C5 只查存在性)。
|
||||
|
||||
## 10. 异常分级
|
||||
|
||||
- L1 自救:夹具 adv_bucket 引用未下传一次重试(改经 enc 显式带桶)。
|
||||
- L2 记录继续:导入缓存类在册环境坑按坑册处置。
|
||||
- L3 停机写报告等用户:🔴 契约触碰;adventure_counters 桶与断点往返不对齐(RAP 续玩丢失)停卡呈报;机检预算互斥=上游缺陷停卡退回写卡段。
|
||||
|
||||
## 11. 代拍板白名单
|
||||
|
||||
- 两件秘宝的代号字符串与 desc 文案措辞(正式命名归用户,GDD 已标 provisional)。
|
||||
- `_apply_rap_hits` 私有函数名与局部累加变量名。
|
||||
- 表注释改写措辞(须保留「按每轮预算的一半设定」与「解耦单独立批」两层意思)。
|
||||
- 两件秘宝行内代号字符串与 desc 文案(tier/unlock 仅用现役普通档 provisional 占位值,不另定案)。
|
||||
- 超清单事项记实现报告「实现决定记录」节。
|
||||
|
||||
## 12. 待裁点
|
||||
|
||||
零待裁点,开工门=U0。(四案裁断、条款⑤换代与两件秘宝边界已在 2026-11-09 会话闭合,git 750b491b 可考。)
|
||||
|
||||
## 13. 落位与可复用性预检
|
||||
|
||||
| 新增件 | 复用面核查 | 唯一面 | 分层与交互 |
|
||||
|---|---|---|---|
|
||||
| `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 |
|
||||
| 测试函数(扩展既有套件) | grep 现役三套已覆盖刷新/装配/断点,扩展不另立新文件 | 每断言只落一个套件,不散落 helper | 沿用 Kit.check_quiet/Kit.check 与 run_all.gd 既有登记 |
|
||||
|
||||
## 14. 实现规范预算
|
||||
|
||||
- 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 零扰动不回写。
|
||||
- 存量触面一查:T0 首步记录 gdstyle 改前读数,S13 键较登记值只降不升(本批无基线键变动预期);如 adventure_runner/level_runner 键上升即停卡呈报。
|
||||
- 指标例外申报:无。
|
||||
|
||||
## 15. 拆分边界纪律
|
||||
|
||||
本批非拆分/重构类(扩展既有件+两行数据),无拆出单元;第 13/14 节条款照列备查:禁为机检文本保留无效成员;机检键与卡片契约互斥=停卡呈报。
|
||||
|
||||
## 16. 复核记录
|
||||
|
||||
复核形态:第 1 轮=未参与本卡撰写的只读子代理对抗复核(审点按 req-card 技能 grilling 门全清单:验收三问/对照表两端/真实入口/绑定面、判据出处行锚逐行实读、落位预检×结构图互指、预算实数、T 卡粒度/接口逐字/禁行句式、引擎技术面三查、范围边界与机检相容)。复核前作者已跑自审七查。本轮共 16 条发现,逐条四类分流:自判 5 条(含 2 条「判定不改+依据」)、补写 11 条;**零待裁类、零退回上游类**——F03 连锁口径、F10 错误结果规格句、F13 持久化归属、F14 解锁占位均可由在册先例/owner 文档/用户会话裁断给出唯一答案,按「禁把能推导的当灰色上交裁决」由复核者自判或列为反哺点补写,不转成问句呈报用户。复核凭据=本节自身,不另设报告文件(2026-11-06 用户裁)。
|
||||
|
||||
| 轮次 | 复核者身份 | 发现 | 去向 | 处置结果 |
|
||||
|---|---|---|---|---|
|
||||
| 1 | 只读子代理(未参与本卡撰写) | 新 kind 只扩 EFFECT_KINDS,MAGNITUDE_KINDS 未扩会使 magnitude=4 加载期报 cross_field | 补写 | T2 首步已写死两处词表追加;§14 预算改「两处各 1 项」;§13 新增件名改「两处词表项」(依据 treasure_item_table.gd:44-46/:154-167) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | dig_reveal 在连锁展开时逐格发射,V5「恰 +1」/V6「+2」在连锁夹具下会假红 | 补写 | §4 新增 🔴 C7、T3 新增 channel=="dig" 门控步骤、新增 V9 验收行、V5/V6 判据改「单次付费动作」(依据 minesweeper_rules.gd:345-362、grant_segment.gd:83-93) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | 秘宝 B 连锁口径 owner 文档未定义,复核者初判待裁并列两案 | 自判 | 不改设计、不呈用户:沿用先例「连锁不逐格追加」有唯一答案(依据 行动经济.md:100/:281/:297、feats.tres:887-889 矿脉储能挂 dig_paid 一次/动作、用户 2026-11-09 会话「一次动作四种情况」裁断);已落 C7 与 V9 |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | 新增桶引用成员未给声明形态,notify_combat_end 缺空字典零扰动守卫 | 补写 | T1 已补 `var _adv_bucket := {}` 与「桶为空字典时零扰动不回写」;§14 补成员形态与阈值实数(依据 action_economy.gd:35/:113、gdstyle_baseline.txt:8-14) |
|
||||
| 1 | 只读子代理(未参与本卡撰写的只读复核者) | 「保留 _rap」按字面是死代码(ActionEconomy 每战新建),需钉清生命周期避免实施者误解 | 自判 | 判定不改结构、只改措辞:T1 已写「回写完成即由下一场 begin_battle 经 carry 注入重建,本实例不复用」(依据 battle_orchestrator.gd:208/:585、level_runner.gd:517/:591) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | correct_action_rap 行把 +1 同时写 magnitude 与 do.value,双写且违背现役 value_from 形态 | 补写 | T3 已改两条 triggers 的 do 为 `"value_from": "magnitude"`,行内 magnitude=1 为唯一源(依据 treasure_items.tres:25-41、effect_engine.gd:184-188) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | §13 写「两处调用点同文件、同一函数」与 T3/代码实况矛盾 | 自判 | 复核者当场改卡:§13 该格改「同文件两个调用点(grant_segment.gd:101/:349)」(依据代码实读) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | V5/V6/V8 真实入口写法不一致,内部 fx_emit 未申报受控例外,V8 静态判据未申报局限 | 补写 | 对照表四行统一为「LevelRunner 真实结算段经 BattleOrchestrator 装配链」;§9 表下补受控例外申报;V8 补静态判据局限注(依据 test-conventions.md:96/:134-136) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | V7 锚 行动经济.md:84 只讲生命周期,不承载「断点往返」判据 | 补写 | V7 重锚 存档序列化.md:180「断点域契约:写读往返逐位一致」;§2 补该文档事实源行 |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | 「做错了不给」在 design/ 无正向规格句,复核者初判退回 doc-design | 自判 | 不停笔:owner 文档 秘宝.md:47「按正确结果给」+用户会话裁断「做对了才给,没做对不给」给出唯一答案;V8 重锚 :47,规格句补写列 §6 反哺点由文档批落文(依据 秘宝.md:47、git 750b491b) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | 🔴 C1「禁写死 4/8」与 T0 把 schema 缺省写成 4 自相矛盾;缺省面未列非行为改动行 | 补写 | C1 改「禁在产品码读取路径与测试断言写死,schema 缺省声明面除外」;对照表新增 N1 非行为改动行并带锚 行动经济.md:277(依据 test-conventions.md:92) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | 复核记录占位行去向写「待定」,C6 判红 | 补写 | 本表已按四类去向逐条回填 16 条,删占位行(依据 pipeline_gate.py:650-687、SKILL.md:64) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | RAP 借 adventure_counters 随断点写读,与 存档序列化.md:57「须登记持久化归属、禁止静默超域」冲突,复核者初判退回规约修订 | 补写 | 不停笔、不静默:§6 新增该文档同步面行,明确「列反哺点由文档批落文、实现批禁写、未落文前不静默超域」;§2 补 :57 依据(依据 存档序列化.md:36/:57/:181、breakpoint_store.gd:38/:123) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | §5 声明解锁「归调参批不做」,T2 却写死 tier/unlock,复核者初判退回 doc-design | 自判 | 不改数值、不呈用户:现役普通档解锁全为 provisional 占位,10 即占位非定案;§5 改「按现役普通档同款 provisional 占位,不定案」,§11 白名单补同位说明(依据 treasure_items.tres:95、秘宝.md:28-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` 行形态(依据 SKILL.md:84/:93/:101) |
|
||||
| 1 | 只读子代理(未参与本卡撰写) | Dictionary 重赋值会断桶引用,卡内未声明约束 | 自判 | 不改:重赋值只在起战前/冒险收束发生,战斗进行中零重赋值,不构成实战缺陷(依据 adventure_runner.gd:116/:170/:203/:348、level_runner.gd:88-89/:539);日后新增战斗中重赋值路径须回炉补条款 |
|
||||
@@ -24,9 +24,9 @@
|
||||
|
||||
#### 刷新门槛调整与两件储能秘宝(2026-11-09 登记,来源=会话提及)
|
||||
|
||||
**实况**:设计定稿 [行动经济](design/gdd/systems/排雷循环/行动经济.md) v1.7(刷新价格改每轮预算的一半/储备点整局冒险保留/清图行为说明换代)+[秘宝](design/gdd/systems/跨局循环/秘宝.md) v1.3(两件储能秘宝)+[奇物](design/gdd/systems/冒险循环/奇物.md) v1.8/[核心循环](design/gdd/01-核心循环.md)/[术语表](design/gdd/术语表.md) 寿命档同步。
|
||||
**实况**:设计定稿 [行动经济](design/gdd/systems/排雷循环/行动经济.md) v1.7(刷新价格改每轮预算的一半/储备点整局冒险保留/清图行为说明换代)+[秘宝](design/gdd/systems/跨局循环/秘宝.md) v1.3(两件储能秘宝)+[奇物](design/gdd/systems/冒险循环/奇物.md) v1.8/[核心循环](design/gdd/01-核心循环.md)/[术语表](design/gdd/术语表.md) 寿命档同步。需求卡片:reports/需求卡片-刷新经济改版批-2026-11-09.md(复核记录节在卡)。
|
||||
**改动面**:文档+游戏代码
|
||||
**状态**:文档设计已闭合
|
||||
**状态**:文档设计已闭合+已写卡
|
||||
|
||||
#### 未决问题迁移——可选类退出格子池后 buff 频率被动上升的难度对冲杠杆(2026-11-07 登记,来源=批次移交)
|
||||
|
||||
|
||||
Reference in new issue
Block a user