From 4f9de5fafd074f6be58e17a6963359824b311ee0 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Tue, 27 Oct 2026 18:46:00 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=96=87=E6=A1=A3(=E8=BF=AD=E4=BB=A339?= =?UTF-8?q?=E8=A1=A5=E5=BD=95):=20=E6=8A=A5=E5=91=8A=C2=A7=E5=85=AD?= =?UTF-8?q?=E9=A2=86=E5=9F=9F=E6=8B=86=E5=88=86=E6=89=B9=E8=A1=A5=E8=AE=B0?= =?UTF-8?q?=E4=B8=8E=E6=94=B6=E5=8F=A3=E9=81=97=E7=95=99=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E5=85=A5=E5=BA=93=EF=BC=8B=E6=9C=AF=E8=AF=AD=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E9=9D=A2(=E5=93=A5=E5=B8=83=E6=9E=97?= =?UTF-8?q?=E2=86=92=E5=9C=B0=E7=B2=BE:=20=E6=95=8C=E4=BA=BA=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F.md/=E9=AA=8C=E8=AF=81=E9=9B=86=E6=B8=85=E5=8D=95.md,?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=AE=9A=E5=90=8D=E8=A7=81=20enemy.tres:761,?= =?UTF-8?q?=E8=8B=B1=E6=96=87=E4=BB=A3=E7=A0=81=E9=94=AE=20goblin=20?= =?UTF-8?q?=E4=B8=8D=E5=8A=A8)=E2=80=94=E2=80=94=E5=90=8C=E6=89=B9=20.gd?= =?UTF-8?q?=20=E6=B5=8B=E8=AF=95=E9=9D=A2=E4=B8=89=E4=BB=B6(damage=5Fcontr?= =?UTF-8?q?oller/pacing=5Fqueue/standee=5Ffx=5Fsweep=20=E5=A4=B9=E5=85=B7?= =?UTF-8?q?=E5=AD=97=E4=B8=B2=E5=90=8C=E6=94=B9)=E8=A2=AB=20pre-commit=20?= =?UTF-8?q?=E7=9B=B4=E6=94=B9=E9=97=B8=E6=8B=A6(=E4=B8=BB=E5=8C=BA?= =?UTF-8?q?=E7=A6=81=E7=9B=B4=E6=8F=90=E4=BB=A3=E7=A0=81=E9=9D=A2),?= =?UTF-8?q?=E6=8C=89=E8=BD=A6=E9=81=93=E9=93=81=E5=BE=8B=E7=95=99=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E5=8C=BA=E5=BE=85=E7=94=A8=E6=88=B7=E8=A3=81(worktree?= =?UTF-8?q?=20=E6=89=B9=E6=88=96=E7=94=A8=E6=88=B7=E4=BE=A7=20--no-verify)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design/gdd/systems/战斗循环/敌人系统.md | 2 +- game/tests/验证集清单.md | 4 ++-- reports/iter39-实现报告-2026-10-27.md | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/design/gdd/systems/战斗循环/敌人系统.md b/design/gdd/systems/战斗循环/敌人系统.md index 85fc1878..82c1badb 100644 --- a/design/gdd/systems/战斗循环/敌人系统.md +++ b/design/gdd/systems/战斗循环/敌人系统.md @@ -145,7 +145,7 @@ 死亡即不动手(保留):摇定后、兑现前死亡(主角先手 / 更早兑现的敌方伤害技),本拍技能作废——不动手、不进冷却、不进保底计数;其余存活敌人照常。拍结构保留:**每结算每存活敌恰行动一次、按行序、先作用后推进**——变的只是"轮到什么",由固定剧本改为摇号。同种敌人不再锁步:各自实例池独立摇号、独立冷却,怪物 1 的重击在冷却里不影响怪物 2,轨迹分歧是涌现,不设开战分配机制。 -蓄力语义(2026-09-16 纠偏定稿):蓄力不是重击前奏——它是一行增益技:0 伤害动作,施加 empower 状态(幅度读 `status_effects.tres`),持续 1 个有效结算(provisional)。旧环"蓄力→猛击"的固定配对是哥布林弹珠的拷贝(给玩家输出窗口用的),随行为环一并退役;蓄力与重击之间**没有任何组合语义**——增益与技能倍率恰好同拍只是增益倍率 × 技能倍率的两层乘法共存(增益幅度 × 增益幅度 = 两层乘法读表可得),蓄力后摇中普通攻击则是增益倍率的加成平砍,两者同为平常事,不是设计的连招。技能冷却(几拍内不能再摇中,技能行属性)与增益持续(状态挂几回合,状态行属性)是两个计时器,互不相干。施放行 = 0 伤害动作,不掷不折(原"零兑付、不读伏击"的读怪奖励语义随伏击退役作废——2026-09-20 八型批)。 +蓄力语义(2026-09-16 纠偏定稿):蓄力不是重击前奏——它是一行增益技:0 伤害动作,施加 empower 状态(幅度读 `status_effects.tres`),持续 1 个有效结算(provisional)。旧环"蓄力→猛击"的固定配对是地精弹珠的拷贝(给玩家输出窗口用的),随行为环一并退役;蓄力与重击之间**没有任何组合语义**——增益与技能倍率恰好同拍只是增益倍率 × 技能倍率的两层乘法共存(增益幅度 × 增益幅度 = 两层乘法读表可得),蓄力后摇中普通攻击则是增益倍率的加成平砍,两者同为平常事,不是设计的连招。技能冷却(几拍内不能再摇中,技能行属性)与增益持续(状态挂几回合,状态行属性)是两个计时器,互不相干。施放行 = 0 伤害动作,不掷不折(原"零兑付、不读伏击"的读怪奖励语义随伏击退役作废——2026-09-20 八型批)。 Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错峰两轨口径,2026-10-05 技能池执行批立 Boss 轨、2026-10-13 迭代 24 N2 补普通敌轨**:**Boss 轨** = L1 酋长池含独占增益技"硬化"〔敌方防御池词汇载体〕+ 半血解锁伤害技"震地怒击";L2 卓尔池独占妨害技"蛛网束缚"+伤害技"毒爆"+ 半血解锁"遏毒";L3 石君王池独占妨害技"大地脉动"+ 半血解锁"岩崩"——独占技随关错峰投放,三行解锁技=每 Boss 一行新独占伤害技〔用户裁案甲,2026-10-04〕;**普通敌轨** = L2/L3 普通敌种技能随关错峰投放(2026-10-13 N2:巨蜘蛛族+毒吐〔(2,5)/(2,6)/(2,7),首遇教学位 (2,4) 不投〕、灰矮人族+盾击〔(3,0)/(3,5)/(3,7)〕,`skills.tres` 12→14 行)——第一关不见的招式第二/三关普通战可见;旧"专属四拍环且含蓄力拍"约定顺带退役,增益 ≤1 纪律下旧蓄力拍不进 Boss 池)。 diff --git a/game/tests/验证集清单.md b/game/tests/验证集清单.md index 3fd7d383..2a41deea 100644 --- a/game/tests/验证集清单.md +++ b/game/tests/验证集清单.md @@ -2308,8 +2308,8 @@ | 1378 | 117 | "末信号行原文在明细带(排空不吞行:『%s』)" ↩ % last_text | last_text != "" and main.log_view.parsed_text().contains(last_text) | (待填) | | | | 1379 | 123 | "常态段间延迟 >0 且 ≥ 段内(%f/%f)" ↩ % [d_on, d_same] | d_on > 0.0 and d_on >= d_same | (待填) | | | | 1380 | 125 | "减动效段间延迟归零(行不跳过——同帧直落快路)" | main.pace_delay_for("damage", "heal") == 0.0 | (待填) | | | -| 1381 | 135 | "结算标出按行 target_id 解析站桩(id 与名同传——d12)〔wd12〕" | fstage.calls.size() == 1 and fstage.calls[0] == ["goblin_b", "哥布林"] | (待填) | | | -| 1382 | 138 | "跨区弹道按行 target_id 解析站桩(id 与名同传——d12)〔wd12〕" | fstage.calls.size() == 2 and fstage.calls[1] == ["goblin_b", "哥布林"] | (待填) | | | +| 1381 | 135 | "结算标出按行 target_id 解析站桩(id 与名同传——d12)〔wd12〕" | fstage.calls.size() == 1 and fstage.calls[0] == ["goblin_b", "地精"] | (待填) | | | +| 1382 | 138 | "跨区弹道按行 target_id 解析站桩(id 与名同传——d12)〔wd12〕" | fstage.calls.size() == 2 and fstage.calls[1] == ["goblin_b", "地精"] | (待填) | | | | 1383 | 140 | "两路解析成功后演出层各接一拍(记参面非空)〔wd12〕" | ffx.calls.size() == 2 | (待填) | | | ## S184 _sweep_hero_panel(行 47–50 · 2 条 · 源 game/tests/unit/presentation/player_copy_sweep_test.gd · 去向:待分类回填) diff --git a/reports/iter39-实现报告-2026-10-27.md b/reports/iter39-实现报告-2026-10-27.md index 489b101b..49490ab6 100644 --- a/reports/iter39-实现报告-2026-10-27.md +++ b/reports/iter39-实现报告-2026-10-27.md @@ -45,3 +45,19 @@ ## 五、中间产物退役清单(批末执行) game/tests/bp_baseline_dump.gd(bp1 载体)+reports/iter39-素材/ 六份 JSON(对拍凭据,审计后随本报告退役)。 + +## 六、领域拆分批(v1.3)补记与收口遗留清单(2026-10-27 合并前补) + +§一–§五 写于三卡收口时点;其后用户裁「不满足结构指标也是缺陷、按领域做分割」,三卡以 v1.3 在批内追加领域拆分并二次实现。本节补记拆分批事实与收口遗留,收口以本节为唯一口径。 + +**拆分批提交**:B1 主角账三件 fde14f1c(hero_ledger 整件退役→hero_stats/gp_wallet/gain_journal);修复A 4ca4ddbc(trigger_cond_test 旧成员读换代+adventure_runner:170 残留删除);B2 停点刷新账 012883f3(refresh_bank 新件);B3 私有助手抽取 45faa92b(含 cross_validator 入循环重复追加缺陷修复);B4 战斗指标面 741b6bd7;修复B f96632de(S9 返回类型注解);闸基线 3530144e(02/08d 特批存量红登记)。合并 master=ffb0ac15(用户特批带红合并)。 + +**§三 存量红面已被拆分清偿,建议案作废**:NEW 5 条(curio_stop 4/hero_ledger 1)随 B1/B2 拆分归零;WORSENED 4 条中 battle_orchestrator 类变量与 begin_battle 函数长经 B4 修复、文件长回注册值 1314。终局读数=gdstyle 基线外新违规 0、恶化恰 2 条(battle_orchestrator max-file-length 1314〔登记 1302〕、level_map_screen max-class-variables 22〔登记 21〕——存量债归迭代 40 卡①与迭代 41 卡③,与 iter38 账目一致)。§三「建议案:refresh 9 键」作废(2026-10-27 用户裁「标准是尺、不以现状为尺」后基线只降不升)。 + +**收口遗留清单(全在案,按处置去向分组)**: +1. **EV 锚**:round_flow goblin(地精)场景实测 0.9148 ∉ [1.00,1.20]——触发器批有意行为改动,非缺陷。已按用户特批(2026-10-27)随 02 闸记存量红(fp f74b9a48ef4a)合并;参考区间更新归后续数值批,待用户发起。 +2. **生涯.md:55 引 adventure_runner.gd:814 行号漂移**(拆分后该文件 660 行)——08d 记存量红(red-nokeys)合并;修复归合并后文档批(反哺点在册);建议级同行:生涯.md :50/:60、元进度.md:70。 +3. **第 8 份对拍凭据 bp_baseline_after_split_B1.json 未入库**——08d 存量红期间纯文档提交被钩子拦(无代码改动可随行),已置主仓 reports/iter39-素材/(未跟踪),随文档批一并入库。 +4. **本报告与验收审计报告停在 v1.2 口径**(§一–§五 未反映拆分)——实际落地以 v1.3 卡片与上列提交为准,文档批换代;本节即补记。 +5. **批后收尾未执行**(待办清单/roadmap 账面换代、§五 退役清单执行——退役凭据实为八份 JSON,§五 笔数按拆分前口径写的六份)——待用户另令 batch-closure。 +6. **交接注记**:迭代 40 卡①(gdstyle 波 1)卡面接口块仍引用已退役的 RunLedger——该批 T0 须按现态改写。 From 98d3a2ec38b4edf8a0f66294665d26d35429a58c Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Tue, 27 Oct 2026 18:50:30 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=B7=A5=E7=A8=8B(=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=A4=B9=E5=85=B7=E6=9C=AF=E8=AF=AD=E4=BF=AE=E6=AD=A3):=20?= =?UTF-8?q?=E4=B8=89=E4=BB=B6=E6=B5=8B=E8=AF=95=20mock=20=E4=B8=B2=20?= =?UTF-8?q?=E5=93=A5=E5=B8=83=E6=9E=97=E2=86=92=E5=9C=B0=E7=B2=BE(?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=AE=9A=E5=90=8D=E8=A7=81=20enemy.tres:761?= =?UTF-8?q?=E3=80=8Cgoblin=20=E5=9C=B0=E7=B2=BE=E3=80=8D)=E2=80=94?= =?UTF-8?q?=E2=80=94=E9=9A=8F=20iter39=20=E6=8A=A5=E5=91=8A=C2=A7=E5=85=AD?= =?UTF-8?q?=E8=A1=A5=E5=BD=95=E6=89=B9=E7=9A=84=E6=96=87=E6=A1=A3=E9=9D=A2?= =?UTF-8?q?=204f9de5fa=20=E5=90=8C=E6=BA=90,=E4=B8=BB=E5=8C=BA=E7=9B=B4?= =?UTF-8?q?=E6=8F=90=E8=A2=AB=E8=BD=A6=E9=81=93=E9=93=81=E5=BE=8B=E6=8B=A6?= =?UTF-8?q?,=E6=8C=89=E8=A7=84=E8=B5=B0=20worktree=20=E6=89=B9=E6=94=B6?= =?UTF-8?q?=E7=BC=96;=E5=A4=B9=E5=85=B7=E8=AE=BE=E5=80=BC=E4=B8=8E?= =?UTF-8?q?=E6=96=AD=E8=A8=80=E5=90=8C=E4=B8=B2=E8=87=AA=E6=B4=BD,?= =?UTF-8?q?=E9=9B=B6=E8=A1=8C=E4=B8=BA=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unit/battle_settlement/damage_controller_test.gd | 2 +- game/tests/unit/presentation/pacing_queue_test.gd | 8 ++++---- game/tests/unit/presentation/standee_fx_sweep_test.gd | 10 +++++----- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/game/tests/unit/battle_settlement/damage_controller_test.gd b/game/tests/unit/battle_settlement/damage_controller_test.gd index 168ca0fb..ba1325cd 100644 --- a/game/tests/unit/battle_settlement/damage_controller_test.gd +++ b/game/tests/unit/battle_settlement/damage_controller_test.gd @@ -219,7 +219,7 @@ func _test_source_death_void(db) -> void: func _unit_fixture() -> Dictionary: return { "enemy_id": "fixture_enemy", - "display_name": "哥布林", + "display_name": "地精", "hp": 5, "max_hp": 5, "atk": 1, "pool": [], "pending_skill": "", "roll_seq": 0, "basic_streak": 0, "armor_type": "light", "armor_class": 0, "attack_type": "normal", diff --git a/game/tests/unit/presentation/pacing_queue_test.gd b/game/tests/unit/presentation/pacing_queue_test.gd index aa1a3dfa..bfb8db5f 100644 --- a/game/tests/unit/presentation/pacing_queue_test.gd +++ b/game/tests/unit/presentation/pacing_queue_test.gd @@ -131,11 +131,11 @@ func _init() -> void: rp.stage = fstage rp.board_view = main.board_view rp.settlement_fx = ffx - rp._play_settlement_mark({"type": "damage", "target": "哥布林", "target_id": "goblin_b", "value": 3}) - check(fstage.calls.size() == 1 and fstage.calls[0] == ["goblin_b", "哥布林"], + rp._play_settlement_mark({"type": "damage", "target": "地精", "target_id": "goblin_b", "value": 3}) + check(fstage.calls.size() == 1 and fstage.calls[0] == ["goblin_b", "地精"], "结算标出按行 target_id 解析站桩(id 与名同传——d12)〔wd12〕") - rp._play_cross_zone_fx({"type": "damage", "target": "哥布林", "target_id": "goblin_b", "value": 3}) - check(fstage.calls.size() == 2 and fstage.calls[1] == ["goblin_b", "哥布林"], + rp._play_cross_zone_fx({"type": "damage", "target": "地精", "target_id": "goblin_b", "value": 3}) + check(fstage.calls.size() == 2 and fstage.calls[1] == ["goblin_b", "地精"], "跨区弹道按行 target_id 解析站桩(id 与名同传——d12)〔wd12〕") check(ffx.calls.size() == 2, "两路解析成功后演出层各接一拍(记参面非空)〔wd12〕") rp.free() diff --git a/game/tests/unit/presentation/standee_fx_sweep_test.gd b/game/tests/unit/presentation/standee_fx_sweep_test.gd index b533a59b..f7496895 100644 --- a/game/tests/unit/presentation/standee_fx_sweep_test.gd +++ b/game/tests/unit/presentation/standee_fx_sweep_test.gd @@ -65,8 +65,8 @@ func _init() -> void: var s2 = StandeeBodyScript.new("enemy") stage.world.add_child(s1) stage.world.add_child(s2) - s1.set_data({"display_name": "哥布林", "enemy_id": "goblin_a", "hp": 3, "max_hp": 3, "order": 1}) - s2.set_data({"display_name": "哥布林", "enemy_id": "goblin_b", "hp": 3, "max_hp": 3, "order": 2}) + s1.set_data({"display_name": "地精", "enemy_id": "goblin_a", "hp": 3, "max_hp": 3, "order": 1}) + s2.set_data({"display_name": "地精", "enemy_id": "goblin_b", "hp": 3, "max_hp": 3, "order": 2}) s1.position = Vector2(10, 20) s2.position = Vector2(200, 20) stage._cards.clear() @@ -78,15 +78,15 @@ func _init() -> void: Kit.check("空 id / 未登记 id 恒不命中(名兜底归调用点)〔wd12〕", stage._card_by_id("") == null and stage._card_by_id("no_such") == null) # 口一:on_step_row_fx —— 伤害行携 target_id,闪白落点须在 id 指向的站桩 - stage.on_step_row_fx({"type": "damage", "target": "哥布林", "target_id": "goblin_b"}) + stage.on_step_row_fx({"type": "damage", "target": "地精", "target_id": "goblin_b"}) await create_timer(0.6).timeout # 弹道到达拍 0.33s + 余量 Kit.check("伤害行按 target_id 命中正确站桩(闪白落点)〔wd12〕", s2._flash_count == 1 and s1._flash_count == 0) # 口二:enemy_standee_center —— id 先、display_name 兜底 - var c_b = stage.enemy_standee_center("goblin_b", "哥布林") + var c_b = stage.enemy_standee_center("goblin_b", "地精") var c_b_expect: Vector2 = stage.world_to_shell(s2.position + s2.box * 0.5) Kit.check("弹道落点按 target_id 取站桩中心〔wd12〕", c_b != null and c_b == c_b_expect) - var c_fallback = stage.enemy_standee_center("", "哥布林") + var c_fallback = stage.enemy_standee_center("", "地精") var c_fallback_expect: Vector2 = stage.world_to_shell(s1.position + s1.box * 0.5) Kit.check("无 target_id 时按名兜底同旧行为(首命中)〔wd12〕", c_fallback != null and c_fallback == c_fallback_expect) From d6917c0a7dcb3e2b1764d620d45fdea98678b47f Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Wed, 28 Oct 2026 01:16:35 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E7=99=BB=E8=AE=B0(=E5=B7=A5=E7=A8=8B?= =?UTF-8?q?=E6=94=B9=E5=8A=A8=C2=B7=E5=BE=85=E6=89=A7=E8=A1=8C):=20?= =?UTF-8?q?=E6=95=8C=E4=BA=BA=E6=8A=80=E8=83=BD=E6=B1=A0=20EV=20=E9=94=9A?= =?UTF-8?q?=E9=87=8D=E9=94=9A=E2=80=94=E2=80=94=E5=9C=B0=E7=B2=BE=E5=B8=A6?= =?UTF-8?q?=E5=AE=BD=E9=9A=8F=E8=A7=A6=E5=8F=91=E5=99=A8=E6=89=B9=E6=B1=A0?= =?UTF-8?q?=E6=9E=84=E6=88=90=E6=8D=A2=E4=BB=A3=E2=80=94=E2=80=94=E8=BF=AD?= =?UTF-8?q?=E4=BB=A339=E8=A7=A6=E5=8F=91=E5=99=A8=E5=8D=A1=E5=8A=A0?= =?UTF-8?q?=E5=AD=A4=E6=B3=A8=E5=AE=88=E5=8A=BF(w1=C2=B7=E7=BA=AFbuff?= =?UTF-8?q?=C2=B7=E8=A1=80=E9=87=8F=E2=89=A435%=E9=97=A8=E6=A7=9B=E5=85=A5?= =?UTF-8?q?=E6=B1=A0)=E7=A8=80=E9=87=8A=E5=90=AB=E9=97=B8=E9=95=BF?= =?UTF-8?q?=E6=9C=9F=E9=80=9F=E7=8E=87=201.1060=E2=86=920.9148=20=E8=B7=8C?= =?UTF-8?q?=E7=A0=B4=E6=97=A7=E5=B8=A6=E5=AE=BD=20[1.00,1.20]=20=E4=B8=8B?= =?UTF-8?q?=E9=99=90(02=20=E9=97=B8=E5=AD=98=E9=87=8F=E7=BA=A2=20fp=20f74b?= =?UTF-8?q?9a48ef4a=20=E5=9C=A8=E5=86=8C);=E6=9C=BA=E5=88=B6=E6=97=A0?= =?UTF-8?q?=E7=BC=BA=E9=99=B7=E7=BA=AF=E9=94=9A=E8=BF=87=E6=97=B6,?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A3=81=E8=B5=B0=E6=97=A0=E6=83=85=E5=A2=83?= =?UTF-8?q?=E5=8F=A3=E5=BE=84=E6=8C=89=E6=96=B0=E5=AE=9E=E6=B5=8B=E5=8F=A6?= =?UTF-8?q?=E7=AB=8B=E5=B8=A6=E5=AE=BD,GDD=20=E4=B8=8E=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E9=9B=86=E6=B8=85=E5=8D=95=E9=9B=B6=E9=9A=8F=E5=8A=A8;?= =?UTF-8?q?=E9=A1=BA=E5=B8=A6=E6=B8=85=E6=A0=B9=E7=9B=AE=E5=BD=95=20bash.e?= =?UTF-8?q?xe.stackdump(msys=20=E5=B4=A9=E6=BA=83=E8=BD=AC=E5=82=A8?= =?UTF-8?q?=E9=9D=9E=E6=88=90=E6=96=87=E5=86=85=E5=AE=B9,=E7=86=B5?= =?UTF-8?q?=E5=A2=9E=E9=97=B8=E8=B6=8A=E7=95=8C=E7=BA=A2=E5=90=8C=E6=AC=BE?= =?UTF-8?q?=E5=A4=8D=E5=8F=91)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 待办清单.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/待办清单.md b/待办清单.md index fc8c0dd8..f28be1a7 100644 --- a/待办清单.md +++ b/待办清单.md @@ -2,6 +2,14 @@ 本清单是流水线的唯一登记处:要做的事先在此登记一条,随流水线段推进改状态,做完整条删除;各系统文档的「待办」节只留一行指路存根,不再自建条目。条目格式(标题=登记元数据含可选优先级,正文=实况/缺口/改动面/状态四属性)与状态机以 [doc-conventions §12.1](design/engineering/doc-conventions.md) 为权威。 +#### 敌人技能池 EV 锚重锚——地精带宽随触发器批池构成换代(2026-10-28 登记,来源=会话提及) + +**实况**:02 号闸存量红的修复批。迭代 39 触发器卡给 L1 地精池加入「孤注守势」(enemy.tres 权重 1,纯 buff 伤害 0,血量 ≤35% 门槛入池),池总权重 10→11,含闸长期速率(每拍伤害倍率均值)从旧池实测 1.1060 降到 0.9148,跌破旧带宽下限——`game/tests/.gates/baseline.json` 注记登记存量红(fp f74b9a48ef4a,goblin 0.9148∉[1.00,1.20],「重锚归后续数值批待用户发起」)。2026-10-28 会话分析确认:摇号/冷却/保底机制无缺陷(同套件回放、死亡打断、加载校验断言看守),纯数值锚过时;真实战斗稀释远小于模拟读数(孤注守势情境入池,模拟器无情境口径把最坏情况当长期速率)。2026-10-28 用户裁走无情境口径(A1):维持模拟器现口径,带宽按新实测另立,重锚原因与口径写进 enemy.tres 表注(照酋长重锚先例 enemy.tres:787)。GDD 零随动(难度曲线与Boss.md:299、敌人系统.md:299 均不登记带宽具体值);验证集清单.md:496 引用的是断言消息模板(带宽为插值参数),零随动。 + +**改动面**:游戏代码 + +**状态**:待执行 + #### gdstyle 存量债全量清偿——216 键按病根分波整改(2026-10-26 登记,来源=会话提及,优先级=P0) **实况**:S13 闸实测存量债 216 键/60 文件(2026-10-26,master f3b148ce,gdstyle v0.4.0 默认阈值;基线登记 234 键=实存 216+陈旧 18)。全量清单、波次方案与纪律见清点报告(本条目裁决源)。2026-10-26 用户裁:撤销「一条总账」与「按病根拆多条」两案,并为本条单账(存量债全部清除,紧急优先级);原「gdstyle 基线陈旧键待人工清理」条目并入波 0(基线对账刷新),原「结构审查未立项小件候审」条目并入波 7(卡已写;iter38 施工停卡后经用户裁于 2026-10-26 修订定稿 v1.3,待编排)。**2026-10-26 设计段闭合(逐波裁定全数落定)**:①段组织=逐波开设计段,纯代码波(波 0/2/3/4/5/6/8)写卡前确认零设计改动+按当时 master 重测读数即可写卡;②波 2 各文件内部拆、波 6 视图内部拆私有函数、波 8 config_db 纯代码收敛(三处零设计改动);③波 1 拆件定稿=轴甲两件——battle_orchestrator 拆出 BattleFxHost(效果引擎宿主域)+RewardGrant(奖励授予域),宿主保留状态机/facts 缓冲/订阅/段驱动/行发射基建/呈现投影,attune 族原位保留(迭代 39 副卡语义领地),emit 经 bind 注入 Callable,行数恶化债(c4c69701 挂账)本波还债归绿,残留债「改善非清零」口径预计 8–10 键;定稿落文 architecture.md v1.18(功能层两新件行+「战斗编排域拆件定稿」节);**同日独立审查折入**(grilling+godot-master 双子代理并行、双判回炉补裁级——骨架成立、接线未闭合):阻断 8 条去重 6 组+建议 5 条全数折入 v1.18——跨件单向接线裁死(RewardGrant 持 fx 件引用/fx 兑付走注入 Callable,禁 RefCounted 环)、settlement/ 段类随动(直持三引用封转发壳)、12 随迁键卡内收敛义务(禁波 0 refresh 吸收)、两新件消费依赖列补全+引用束注入、treasure_interact_controller 三触点分家(现值回调双取值面)、_fx_revealing 再入闸归 fx 件(裁定全文见清点报告 §六第 6 条);④全部波不改游戏规则与玩家可见行为,design/gdd/systems/ 零修订预期;波 5 已实查落定纯代码(open_ticket 12 参=单据声明形态)。波 7 的 wr5/wr6 验收载体重裁为写卡段用户裁点(卡 v1.2 在册,写卡补呈报)。裁定全文见清点报告 §六。 From 8d6b1012ed94f047d8424870e8aa816877a72c4a Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Wed, 28 Oct 2026 01:21:08 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=B7=A5=E7=A8=8B(EV=E9=94=9A=E9=87=8D?= =?UTF-8?q?=E9=94=9A=E6=89=B9):=20round=5Fflow=20EV=20=E6=8A=BD=E6=A0=B7?= =?UTF-8?q?=E9=94=9A=20goblin=20=E5=B8=A6=E5=AE=BD=20[1.00,1.20]=E2=86=92[?= =?UTF-8?q?0.82,1.02]=E2=80=94=E2=80=94=E8=BF=AD=E4=BB=A339=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E5=99=A8=E6=89=B9=E5=AD=A4=E6=B3=A8=E5=AE=88=E5=8A=BF?= =?UTF-8?q?(w1=C2=B7=E7=BA=AFbuff=C2=B7=E8=A1=80=E9=87=8F=E2=89=A435%?= =?UTF-8?q?=E6=83=85=E5=A2=83=E5=85=A5=E6=B1=A0)=E7=A8=80=E9=87=8A?= =?UTF-8?q?=E5=90=AB=E9=97=B8=E9=95=BF=E6=9C=9F=E9=80=9F=E7=8E=87=201.1060?= =?UTF-8?q?=E2=86=920.9148,=E6=97=A7=E5=B8=A6=E7=B3=BB=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E5=99=A8=E5=89=8D=E5=94=AF=E4=B8=80=E7=89=B9=E6=AE=8A=E6=8A=80?= =?UTF-8?q?=3D=E7=AA=81=E5=88=BA=E7=BB=93=E6=9E=84=E4=B8=8B=E7=99=BB?= =?UTF-8?q?=E8=AE=B0=E9=9A=8F=E6=B1=A0=E6=9E=84=E6=88=90=E6=8D=A2=E4=BB=A3?= =?UTF-8?q?=E4=BD=9C=E5=BA=9F;=E6=A8=A1=E6=8B=9F=E5=99=A8=E7=BB=B4?= =?UTF-8?q?=E6=8C=81=E6=97=A0=E6=83=85=E5=A2=83=E5=8F=A3=E5=BE=84(?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A3=812026-10-28,trigger=E8=A1=8C=E4=B8=8D?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E3=80=81=E6=8A=8A=E6=9C=80=E5=9D=8F=E6=83=85?= =?UTF-8?q?=E5=BD=A2=E5=BD=93=E9=95=BF=E6=9C=9F=E9=80=9F=E7=8E=87),?= =?UTF-8?q?=E9=87=8D=E9=94=9A=E6=B3=A8=E8=AE=B0=E9=9A=8F=20enemy.tres=20?= =?UTF-8?q?=E8=A1=A8=E6=B3=A8(=E7=85=A7=E9=85=8B=E9=95=BF=E5=85=88?= =?UTF-8?q?=E4=BE=8B)=E4=B8=8E=E6=B5=8B=E8=AF=95=E6=B3=A8=E9=87=8A;baselin?= =?UTF-8?q?e=2002=20=E5=AD=98=E9=87=8F=E7=BA=A2(f74b9a48ef4a)=E5=BD=92?= =?UTF-8?q?=E7=BB=BF=E3=80=82=E6=92=A4=E9=94=80=E8=AF=81=E6=98=8E=3D?= =?UTF-8?q?=E5=B8=A6=E5=AE=BD=E5=9B=9E=E9=80=80=E6=97=A7=E5=80=BC=E6=96=AD?= =?UTF-8?q?=E8=A8=80=E5=A4=8D=E7=BA=A2(exit=201,=E5=AE=9E=E6=B5=8B0.9148)?= =?UTF-8?q?=E2=86=92=E8=BF=98=E5=8E=9F=E5=A4=8D=E7=BB=BF;=E5=AD=A4?= =?UTF-8?q?=E7=AB=8B=E9=AA=8C=E8=AF=81=E5=8D=95=E8=B7=91=E5=A5=97=E4=BB=B6?= =?UTF-8?q?=20exit=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/data/tables/enemy.tres | 3 +++ game/tests/.gates/baseline.json | 6 +++--- .../battle_settlement/round_flow_skill_pool_test.gd | 12 +++++++++--- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/game/data/tables/enemy.tres b/game/data/tables/enemy.tres index 2e549a1b..ad679a65 100644 --- a/game/data/tables/enemy.tres +++ b/game/data/tables/enemy.tres @@ -788,6 +788,9 @@ rows = [{ ; 后半场 6/2/2/2+震地怒击 2=每拍 4.33;含闸长期速率抽样实测 1.1948,smoke EV 抽样带重锚 [1.10, 1.30]; ; 卓尔遏毒/石君王岩崩同批入池——读数判读归 T7 节奏重测〔后置挂 07,跑批待用户批准〕) ; 含闸长期速率(冷却/保底)EV 锚按实施批 EV 抽样复核登记(proposal §2.5)。 +; 地精 EV 重锚(2026-10-28——触发条件批孤注守势入池(w1,血量 ≤35% 情境入池):池 9/1/1; +; EV 抽样模拟器取无情境口径(trigger 行不过滤、每拍可摇)实测 0.9148,smoke EV 抽样带重锚 [0.82, 1.02]; +; 旧带 [1.00, 1.20] 系触发器前唯一特殊技=突刺的池结构下登记,随池构成换代作废)。 ; ; 分支节点图批(2026-09-17——L2 幽暗地域内容批,行值全部 provisional,投值归 难度曲线与Boss): ; 每战斗/Boss 节点 (2, node_depth) 精确行(跨表校验强制,违例加载致命——ConfigDB ④);锚行 (2,0) 保留。 diff --git a/game/tests/.gates/baseline.json b/game/tests/.gates/baseline.json index 9ad33901..dc18ff4c 100644 --- a/game/tests/.gates/baseline.json +++ b/game/tests/.gates/baseline.json @@ -1,5 +1,5 @@ { - "note": "存量基线·首次自动生成;闸况变化时本脚本会判红,需人工确认后重生成;2026-10-17 人工确认重生成 06 条目:af94ce97 把 gdd_lint 记为存量红(01 篇 R5),该红已由 fcb8c3f8 补流程图消除,实测 --docs 域 06 exit=0,故基线改回绿。2026-10-18 新增闸件 08c 流水线闸(tools/pipeline_gate.py 注册上电),手工加入绿记录(roadmap 压缩批实测 --docs 域 exit=0),其余条目原样保留。2026-10-22 测试术语与层级重构批 A 改键:01 冒烟全量→01 系统测试(同一断言面 smoke_all.gd,运行器换 tools/run_system_test.py,过渡期判定口径不变)、02 单元套件→02 单元与集成测试(同一 run_all.gd 入口,名从实)、新增 00 冒烟测试(tools/run_smoke.py+game/tests/smoke_boot.tscn,重写后单跑实测 17 项 0 失败 PASS);09 静态扫描基线 exit=1(fp=4354b2aa72a7)系滞后红,本批单跑实测 exit=0(与 2026-10-22 16:20 回执一致),基线改回绿;其余条目原样保留。;2026-10-23 主会话记 07 doc_link 为存量红(用户令忽略:锻造工坊.md 死链的修复在另一会话未合入,合回闸豁免;外部修复合入后应重生成基线归绿);2026-10-26 用户特批带红合并(迭代 38 收口):09 静态扫描记存量红——gdstyle 恶化 2 条(battle_orchestrator.gd max-file-length 1314>1302=卡④头注必载内容、level_map_screen.gd max-class-variables 22>21=卡①缓存成员,均为卡片义务的记账漂移非缺陷,压缩还债经计算不可行),用户裁「不管引入的恶化直接提交、特许免测试重跑」;后续批次若触及两文件可顺带还债或经批准重生成基线归绿;2026-10-27 用户裁「标准是尺、不以现状为尺」:09 存量红照实记(exit=1+现行红项指纹,两条恶化各自点名可核),gdstyle 基线登记值回退 1302/21(波 0 的 18 条陈旧键清理保留),gdstyle_gate 逐条违规行加 FAIL 前缀并加「refresh 禁抬高登记值」守卫——存量红期间任何新增违规或进一步恶化都会改指纹被拦;阈值口径不变=gdstyle 默认值(文件 1000 行/类变量 15 等),还债归迭代 40 卡①(battle_orchestrator 1314→≤1000)与迭代 41 卡③(level_map_screen 22→≤15),还清后重新生成基线归绿;2026-10-27 用户特批带红合并(迭代39 拆件批):02 记存量红(fp f74b9a48ef4a=round_flow EV 锚 goblin 0.9148∉[1.00,1.20],触发器批有意行为改动,旧带宽锚触发器前设计,重锚归后续数值批待用户发起);08d 记存量红(red-nokeys=生涯.md:55 引 adventure_runner.gd:814 行号漂移,B1 拆分后 660 行,另 :50/:60 与 元进度.md:70 建议级,修复归合并后文档批,反哺点在册);07 doc_link 基线红→现绿改善随下次基线重生成记账;09 指纹经 S9 注解修复(f96632de)回归登记值 91d45583cf6d", + "note": "存量基线·首次自动生成;闸况变化时本脚本会判红,需人工确认后重生成;2026-10-17 人工确认重生成 06 条目:af94ce97 把 gdd_lint 记为存量红(01 篇 R5),该红已由 fcb8c3f8 补流程图消除,实测 --docs 域 06 exit=0,故基线改回绿。2026-10-18 新增闸件 08c 流水线闸(tools/pipeline_gate.py 注册上电),手工加入绿记录(roadmap 压缩批实测 --docs 域 exit=0),其余条目原样保留。2026-10-22 测试术语与层级重构批 A 改键:01 冒烟全量→01 系统测试(同一断言面 smoke_all.gd,运行器换 tools/run_system_test.py,过渡期判定口径不变)、02 单元套件→02 单元与集成测试(同一 run_all.gd 入口,名从实)、新增 00 冒烟测试(tools/run_smoke.py+game/tests/smoke_boot.tscn,重写后单跑实测 17 项 0 失败 PASS);09 静态扫描基线 exit=1(fp=4354b2aa72a7)系滞后红,本批单跑实测 exit=0(与 2026-10-22 16:20 回执一致),基线改回绿;其余条目原样保留。;2026-10-23 主会话记 07 doc_link 为存量红(用户令忽略:锻造工坊.md 死链的修复在另一会话未合入,合回闸豁免;外部修复合入后应重生成基线归绿);2026-10-26 用户特批带红合并(迭代 38 收口):09 静态扫描记存量红——gdstyle 恶化 2 条(battle_orchestrator.gd max-file-length 1314>1302=卡④头注必载内容、level_map_screen.gd max-class-variables 22>21=卡①缓存成员,均为卡片义务的记账漂移非缺陷,压缩还债经计算不可行),用户裁「不管引入的恶化直接提交、特许免测试重跑」;后续批次若触及两文件可顺带还债或经批准重生成基线归绿;2026-10-27 用户裁「标准是尺、不以现状为尺」:09 存量红照实记(exit=1+现行红项指纹,两条恶化各自点名可核),gdstyle 基线登记值回退 1302/21(波 0 的 18 条陈旧键清理保留),gdstyle_gate 逐条违规行加 FAIL 前缀并加「refresh 禁抬高登记值」守卫——存量红期间任何新增违规或进一步恶化都会改指纹被拦;阈值口径不变=gdstyle 默认值(文件 1000 行/类变量 15 等),还债归迭代 40 卡①(battle_orchestrator 1314→≤1000)与迭代 41 卡③(level_map_screen 22→≤15),还清后重新生成基线归绿;2026-10-27 用户特批带红合并(迭代39 拆件批):02 记存量红(fp f74b9a48ef4a=round_flow EV 锚 goblin 0.9148∉[1.00,1.20],触发器批有意行为改动,旧带宽锚触发器前设计,重锚归后续数值批待用户发起);08d 记存量红(red-nokeys=生涯.md:55 引 adventure_runner.gd:814 行号漂移,B1 拆分后 660 行,另 :50/:60 与 元进度.md:70 建议级,修复归合并后文档批,反哺点在册);07 doc_link 基线红→现绿改善随下次基线重生成记账;09 指纹经 S9 注解修复(f96632de)回归登记值 91d45583cf6d;2026-10-28 EV 锚重锚批(工程改动·worktree ev-anchor-remeasure-20261028,用户特许会话内执行):02 基线红→现绿归绿——round_flow EV 锚 goblin 带宽按无情境口径(模拟器不过滤 trigger 行)重锚 [0.82,1.02](迭代39触发器批孤注守势入池稀释,实测 0.9148,重锚注记 enemy.tres 与测试注释;旧带 [1.00,1.20] 随池构成换代作废),撤销证明=带宽回退 [1.00,1.20] 断言复红;08d 存量红不变(生涯.md:55 行号漂移,修复归文档批)", "gates": { "00 冒烟测试": { "exit": "0", @@ -10,8 +10,8 @@ "fp": "green" }, "02 单元与集成测试": { - "exit": "1", - "fp": "f74b9a48ef4a" + "exit": "0", + "fp": "green" }, "03 探针 --click": { "exit": "0", diff --git a/game/tests/unit/battle_settlement/round_flow_skill_pool_test.gd b/game/tests/unit/battle_settlement/round_flow_skill_pool_test.gd index 1f024137..a0b116e3 100644 --- a/game/tests/unit/battle_settlement/round_flow_skill_pool_test.gd +++ b/game/tests/unit/battle_settlement/round_flow_skill_pool_test.gd @@ -746,14 +746,20 @@ func _record_pool_trajectories(seed_val: int, rounds: int) -> Dictionary: # ④ EV 抽样对锚(含闸长期速率 vs 静态锚——proposal §2.5;精确重锚归 难度曲线与Boss)。 # 带宽口径:熊地精/酋长 EV 结构性恒 1(普攻 1 + 重击 2 与蓄力/硬化 0 加权守恒)→ 窄带; -# 地精突刺池受保底闸抬升(唯一特殊技 w=1/10,保底 M=4 把突刺率从自然 10% 抬到 ~20%+)→ 宽带登记。 +# 地精池 {attack:9, lunge:1, desperate_guard:1}(触发条件批入池)——孤注守势是情境触发行(血量 ≤35% 才入真实可摇集合), +# 本模拟器取无情境口径(trigger 行不过滤、每拍可摇,把最坏情形当长期速率)→ 实测 0.9148; +# 2026-10-28 重锚 [0.82, 1.02](照酋长先例 ±0.10 绝对幅度,中值取理论稳态 0.92;旧带 [1.00,1.20] 系触发器前 +# 唯一特殊技=突刺的池结构下登记,随池构成换代作废;撤销证明=带宽回退旧值本断言复红)→ 宽带登记。 # ④ EV 抽样对锚(含闸长期速率 vs 静态锚——proposal §2.5;精确重锚归 难度曲线与Boss)。 # 带宽口径:熊地精/酋长 EV 结构性恒 1(普攻 1 + 重击 2 与蓄力/硬化 0 加权守恒)→ 窄带; -# 地精突刺池受保底闸抬升(唯一特殊技 w=1/10,保底 M=4 把突刺率从自然 10% 抬到 ~20%+)→ 宽带登记。 +# 地精池 {attack:9, lunge:1, desperate_guard:1}(触发条件批入池)——孤注守势是情境触发行(血量 ≤35% 才入真实可摇集合), +# 本模拟器取无情境口径(trigger 行不过滤、每拍可摇,把最坏情形当长期速率)→ 实测 0.9148; +# 2026-10-28 重锚 [0.82, 1.02](照酋长先例 ±0.10 绝对幅度,中值取理论稳态 0.92;旧带 [1.00,1.20] 系触发器前 +# 唯一特殊技=突刺的池结构下登记,随池构成换代作废;撤销证明=带宽回退旧值本断言复红)→ 宽带登记。 func _smoke_skill_pool_ev_anchor() -> void: - var bands := {"goblin": [1.00, 1.20], "bugbear": [0.97, 1.03], "ogre_chief": [1.10, 1.30]} # 酋长重锚(震地怒击半血解锁入池,含闸长期速率上移:实测 1.1948;EV 锚注 enemy.tres) + var bands := {"goblin": [0.82, 1.02], "bugbear": [0.97, 1.03], "ogre_chief": [1.10, 1.30]} # 地精重锚 2026-10-28(触发条件批孤注守势入池稀释,无情境口径实测 0.9148;EV 锚注 enemy.tres)· 酋长重锚(震地怒击半血解锁入池,含闸长期速率上移:实测 1.1948;EV 锚注 enemy.tres) var species := ["goblin", "bugbear", "ogre_chief"] var rng = load("res://core/rng_service.gd").new() rng.set_master_seed(20260921) From 6326b08351395241b9985683db5675bb55c4848d Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Wed, 28 Oct 2026 01:40:15 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=B7=A5=E7=A8=8B(EV=E9=94=9A=E9=87=8D?= =?UTF-8?q?=E9=94=9A=E6=89=B9=E6=94=B6=E5=B0=BE):=20=E5=BE=85=E5=8A=9E?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E3=80=8C=E6=95=8C=E4=BA=BA=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E6=B1=A0EV=E9=94=9A=E9=87=8D=E9=94=9A=E2=80=94=E2=80=94?= =?UTF-8?q?=E5=9C=B0=E7=B2=BE=E5=B8=A6=E5=AE=BD=E3=80=8D=E6=9D=A1=E7=9B=AE?= =?UTF-8?q?=E6=95=B4=E6=9D=A1=E5=88=A0=E9=99=A4=E2=80=94=E2=80=94=E6=89=B9?= =?UTF-8?q?=E5=B7=B2=E5=90=88=E5=9B=9E=20master(ba5105aa),=E7=9B=B4?= =?UTF-8?q?=E6=94=B9=E5=BA=8F=E5=88=97=E7=99=BB=E8=AE=B0=E2=86=92=E5=BE=85?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E2=86=92=E5=AE=8C=E6=88=90=E5=8D=B3=E5=88=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 待办清单.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/待办清单.md b/待办清单.md index f28be1a7..fc8c0dd8 100644 --- a/待办清单.md +++ b/待办清单.md @@ -2,14 +2,6 @@ 本清单是流水线的唯一登记处:要做的事先在此登记一条,随流水线段推进改状态,做完整条删除;各系统文档的「待办」节只留一行指路存根,不再自建条目。条目格式(标题=登记元数据含可选优先级,正文=实况/缺口/改动面/状态四属性)与状态机以 [doc-conventions §12.1](design/engineering/doc-conventions.md) 为权威。 -#### 敌人技能池 EV 锚重锚——地精带宽随触发器批池构成换代(2026-10-28 登记,来源=会话提及) - -**实况**:02 号闸存量红的修复批。迭代 39 触发器卡给 L1 地精池加入「孤注守势」(enemy.tres 权重 1,纯 buff 伤害 0,血量 ≤35% 门槛入池),池总权重 10→11,含闸长期速率(每拍伤害倍率均值)从旧池实测 1.1060 降到 0.9148,跌破旧带宽下限——`game/tests/.gates/baseline.json` 注记登记存量红(fp f74b9a48ef4a,goblin 0.9148∉[1.00,1.20],「重锚归后续数值批待用户发起」)。2026-10-28 会话分析确认:摇号/冷却/保底机制无缺陷(同套件回放、死亡打断、加载校验断言看守),纯数值锚过时;真实战斗稀释远小于模拟读数(孤注守势情境入池,模拟器无情境口径把最坏情况当长期速率)。2026-10-28 用户裁走无情境口径(A1):维持模拟器现口径,带宽按新实测另立,重锚原因与口径写进 enemy.tres 表注(照酋长重锚先例 enemy.tres:787)。GDD 零随动(难度曲线与Boss.md:299、敌人系统.md:299 均不登记带宽具体值);验证集清单.md:496 引用的是断言消息模板(带宽为插值参数),零随动。 - -**改动面**:游戏代码 - -**状态**:待执行 - #### gdstyle 存量债全量清偿——216 键按病根分波整改(2026-10-26 登记,来源=会话提及,优先级=P0) **实况**:S13 闸实测存量债 216 键/60 文件(2026-10-26,master f3b148ce,gdstyle v0.4.0 默认阈值;基线登记 234 键=实存 216+陈旧 18)。全量清单、波次方案与纪律见清点报告(本条目裁决源)。2026-10-26 用户裁:撤销「一条总账」与「按病根拆多条」两案,并为本条单账(存量债全部清除,紧急优先级);原「gdstyle 基线陈旧键待人工清理」条目并入波 0(基线对账刷新),原「结构审查未立项小件候审」条目并入波 7(卡已写;iter38 施工停卡后经用户裁于 2026-10-26 修订定稿 v1.3,待编排)。**2026-10-26 设计段闭合(逐波裁定全数落定)**:①段组织=逐波开设计段,纯代码波(波 0/2/3/4/5/6/8)写卡前确认零设计改动+按当时 master 重测读数即可写卡;②波 2 各文件内部拆、波 6 视图内部拆私有函数、波 8 config_db 纯代码收敛(三处零设计改动);③波 1 拆件定稿=轴甲两件——battle_orchestrator 拆出 BattleFxHost(效果引擎宿主域)+RewardGrant(奖励授予域),宿主保留状态机/facts 缓冲/订阅/段驱动/行发射基建/呈现投影,attune 族原位保留(迭代 39 副卡语义领地),emit 经 bind 注入 Callable,行数恶化债(c4c69701 挂账)本波还债归绿,残留债「改善非清零」口径预计 8–10 键;定稿落文 architecture.md v1.18(功能层两新件行+「战斗编排域拆件定稿」节);**同日独立审查折入**(grilling+godot-master 双子代理并行、双判回炉补裁级——骨架成立、接线未闭合):阻断 8 条去重 6 组+建议 5 条全数折入 v1.18——跨件单向接线裁死(RewardGrant 持 fx 件引用/fx 兑付走注入 Callable,禁 RefCounted 环)、settlement/ 段类随动(直持三引用封转发壳)、12 随迁键卡内收敛义务(禁波 0 refresh 吸收)、两新件消费依赖列补全+引用束注入、treasure_interact_controller 三触点分家(现值回调双取值面)、_fx_revealing 再入闸归 fx 件(裁定全文见清点报告 §六第 6 条);④全部波不改游戏规则与玩家可见行为,design/gdd/systems/ 零修订预期;波 5 已实查落定纯代码(open_ticket 12 参=单据声明形态)。波 7 的 wr5/wr6 验收载体重裁为写卡段用户裁点(卡 v1.2 在册,写卡补呈报)。裁定全文见清点报告 §六。