Files
gplan-2/game/tests/unit/battle_settlement
DKChan eb7b6b39f2 测试(卡②撤销证明轮两处判据面修正): 变异取证抓出的两个自身缺陷——①run_time_fatal_test 的 wr5 两条失败消息用了 GDScript 不存在的格式符 %r(MUT-M2 撤接线时才走到失败支路,push_error 先崩在格式符上=红因不可读)改 %s+str 包裹;②variant_placement 的 wr10③ 直接 call 未接线回调(撤销证明⑤态下 luck_bias_query 无效)→ Invalid call 中断本函数、其后 20 条断言全丢=红但红面过宽,改「is_valid 才取值、否则记 -1」让 ③ 正常判红且套件跑完。变异台账(全部在主源文件临时注入、跑完即 git checkout 还原,还原前三件已提交 b8b69c68):M2 撤 fatal 接线两行→负面套件 exit=2(红因=[run_time_fatal_test/wr5] 棋盘生成违约未传导封印 battle_result=空);M3 撤 p6 handler 调用位→exit=2(wr6 未知标签违约通道未记录 recorded=[]);M4 撤 p7 handler 调用位→exit=2(wr7 未播种通道未记录);M5 撤组装点注入一行→variant_placement exit=1、2/49 失败=wr10② 红+③ 红(取回 -1/池合计 77≠85)、① 不红(判定面仍在)=卡面撤销证明⑤预期逐字命中;WR11 缝拆整体回退(掷格件复原 _fx/_ctx/set_fx+内联三参发射+组装点补 set_fx 一行)六组 dump 与缝拆在位态逐字节 cmp 全等(L1 45/39/46 行、L2 75/78/116 行)=契约 1 合法路径零扰动坐实。注:wr11 卡片撤销列写「回退任一缝拆 hunk→复跑出差异」在现网数据面不可执行(game/data/tables/ 零 bias_rewards 行实查复确认=权重合成面在合法路径恒等,回退本应无差异),该判据的牙在 wr10③(夹具装载后 85 vs 未接线 77),差异归反哺点清单呈报。静态判据面:wr1 改前 battle_live 命中 1/现 0,重复四句 4→2;wr2 confirm_dialog.close() 直调 2→0+单口三处在位;wr3 防护两处在位;p6/p7 return null 两处在位(debug 下 return 位两态不可判别=契约 6 只走静态面+评审注记)。复绿:负面套件 exit=1 三点全绿、variant_placement 49 checks 全绿、pacing_queue PASS、ui_click_probe 问题=0 零 SCRIPT ERROR〔结构小件批 V17〕
2026-10-27 22:34:49 +08:00
..
卡①T5(拆件批wr6/V13): damage_controller 拆分+参数束——open_ticket 12参→(kind,source_class,display,spec)四参 spec 束(必载 channel/base_value/target_rule/ri 缺载 assert;可选 origin_cell/attack_type/rider/highlight/context 缺省同原签名;返回单据字典九栏目+requires/source_unit 逐字不变=契约8);类变量 19→15(dig_streak/charge_layers/rider_tier_bonus/rider_tier_crit→inject 束;fx_reveal_request/fx_ac_request→fx_calls 束 {reveal,ac});函数级拆分=_hero_attack_ctx→_ctx_rewrites(按序改写族四拍+armor_roll 发射+clamp_check 唯一发射点)+_ctx_clamp_delta(克制点数+订阅改写,消费同批命中禁重复发射);_hero_attack_redeem→_kill_overflow(kill 发射+贯穿弹射);_resolve_enemy_skill→_enemy_roll(掷点/折扣/克制/池乘/下限)+_enemy_shield_apply(damage_taken 施加面 {total,shield} 穿线,发射位留主函数保减伤落快照先后序)。调用点 30 处全改 spec 形(core 14=reward_grant 3+grant_segment 7+combat_segment 3+控制器内部 overflow 1;damage_controller_test 15;system_contracts_test 1)+inject/fx_calls 注入点改键(combat_segment :34/:37/:62、begin_battle :341-347)。验收:gdstyle 基线外 0 NEW(damage_controller 9 条存量键全清:branches/length/locals×3/class-vars 19→15/params 12→4)+ unit/integration 62 套件 1698 PASS 零 SCRIPT ERROR(〔dc1〕damage_controller 44 检查全绿含 A/B 模式/死亡作废/requires 门/flush_submit/AC 合流/池乘区;〔dc2〕system_contracts 九栏目契约绿;〔dc3〕round_flow/seal_polarity/level_shop 全绿)+ system_test 70 项 0 失败三闸过〔拆件批 V13〕
2026-10-27 07:52:02 +08:00
卡①T3(拆件批wr5): 宿主超标函数拆分全清+_emit_row束形改形——begin_battle(141行/17分支/16局部/7返回四键)拆编排骨架+_begin_<段>私有族(accept含spawn受理门/dice区间骰+_dice_roll单轴函数/preview_economy),段序=受理与敌人spawn→装板→同调/fx运行态与订阅重建→常时参数与充能重置→巢穴预告与经济注入→轮始发射,取号序逐字(数量骰先/atk骰后/行集空不开流);_place_variants(52行/14局部/6嵌套三键)拆_place_variants_apply+_variants_fringe(嵌套深度5→3,variant_place取号序逐字:vrow单抽先于片生长);_emit_row 8参→5参head归因束(键集type/source_class/origin_cell/highlight缺省空,行字典字段与step_row载荷逐字)调用点全量改形28处=宿主2+grant段6+combat段2+verdict段3+decay段1+battle_fx_host emit_cb 3+reward_grant 9+damage_controller emit_row_cb 6+damage_controller_test _on_row签名+extended_row_violation直调2(卡面G5/G6清单漏计combat2/verdict3/decay1与grant段实为6处、两测试消费方,实查补全);宿主行数压至999≤1000(契约2还债归绿:拆分壳开销以家族归并+陈旧横幅合并+叙事类注释清理吸收,禁删注释凑行数红线未碰——所删皆变更叙事/三写重复说明);gdstyle键账=宿主仅剩类变量38(豁免第三条在案)行数键消失,全闸0 NEW。验收:十套件绿(round_flow/seal/feats/settle/treasure/level_shop/forge/damage/contracts/node_map_determinism)+零SCRIPT ERROR〔拆件批 V9〕
2026-10-27 07:11:56 +08:00
合并 master(迭代39 拆件批+文档批) 进 iter40+主角账模型迁移适配——冲突两件按「保留本分支拆件结构+承接 master 语义」解:①battle_orchestrator 承 RunLedger 整类退役=新增 _journal()/_attune_loadout() 两读面(enc 派生、无成员接收)、_reseed_attune_charges 循环体换 AttuneLoadout.reset_cycle(写时种行/补行单源化)、冒险桶挂接改 enc["adv_bucket"](经 _fx_host.mount_buckets 下传)、战末 bonus 汇入换 GainJournal.gain_bonus(axis,value,"battle_export",axis);同时接回 master 的 B4 战斗指标面=_mines_hits 三读数账+开战清零+轮末转存、_roll_round_actions facts 组包四键(round_index/last_round_end/mines_hit_last/mines_hit_total)并传 check_trigger_unlocks/rollable_skills/special_skills 三参、enemy_hp_threshold 读数改 trigger.value。②RewardGrant 的 battle_ledger 引用改 battle_hooks 回调束三键(attune_consume/vision_add/negative_blast,bind_battle 缺键 assert)——授予件对账本零强引用、宿主侧单点留编排器,类变量封闭面 15 不减不增;use_treasure 充能消耗与真视计数改经回调,负向 blast 踩雷计数在 _flat_blast 判极点后回调宿主记账(等价承 master 的 _book_negative_blast 语义)。③treasure_effects_test 计数链断言取 master 口径(lg13.vision_used()==1)+本分支真实入口(reward_grant().use_treasure)。④trigger_cond_test V6 的两处 flat 行调用改指 reward_grant()._apply_flat_row(att 束形)——它原调编排器已迁函数触发 Invalid call,_init 在 quit 之前中断=进程挂死 124 超时(本轮排查实证:同件在 master rc=0 秒退,合并后挂死;修后 rc=0 全绿)。验收:run_all 65 套件 64 绿 1 红=已登记存量红(02 EV 锚 goblin 0.9148∉[1.00,1.20],迭代39 特批带红在册,重锚归后续数值批),零 SCRIPT ERROR;负向套件 run_time_fatal_test exit=1 三点绿;variant_placement 49 checks 绿(wr10 三条在位);gdstyle 待合并后复测〔结构小件批 V16〕
2026-10-27 22:25:53 +08:00
合并 master(迭代39 拆件批+文档批) 进 iter40+主角账模型迁移适配——冲突两件按「保留本分支拆件结构+承接 master 语义」解:①battle_orchestrator 承 RunLedger 整类退役=新增 _journal()/_attune_loadout() 两读面(enc 派生、无成员接收)、_reseed_attune_charges 循环体换 AttuneLoadout.reset_cycle(写时种行/补行单源化)、冒险桶挂接改 enc["adv_bucket"](经 _fx_host.mount_buckets 下传)、战末 bonus 汇入换 GainJournal.gain_bonus(axis,value,"battle_export",axis);同时接回 master 的 B4 战斗指标面=_mines_hits 三读数账+开战清零+轮末转存、_roll_round_actions facts 组包四键(round_index/last_round_end/mines_hit_last/mines_hit_total)并传 check_trigger_unlocks/rollable_skills/special_skills 三参、enemy_hp_threshold 读数改 trigger.value。②RewardGrant 的 battle_ledger 引用改 battle_hooks 回调束三键(attune_consume/vision_add/negative_blast,bind_battle 缺键 assert)——授予件对账本零强引用、宿主侧单点留编排器,类变量封闭面 15 不减不增;use_treasure 充能消耗与真视计数改经回调,负向 blast 踩雷计数在 _flat_blast 判极点后回调宿主记账(等价承 master 的 _book_negative_blast 语义)。③treasure_effects_test 计数链断言取 master 口径(lg13.vision_used()==1)+本分支真实入口(reward_grant().use_treasure)。④trigger_cond_test V6 的两处 flat 行调用改指 reward_grant()._apply_flat_row(att 束形)——它原调编排器已迁函数触发 Invalid call,_init 在 quit 之前中断=进程挂死 124 超时(本轮排查实证:同件在 master rc=0 秒退,合并后挂死;修后 rc=0 全绿)。验收:run_all 65 套件 64 绿 1 红=已登记存量红(02 EV 锚 goblin 0.9148∉[1.00,1.20],迭代39 特批带红在册,重锚归后续数值批),零 SCRIPT ERROR;负向套件 run_time_fatal_test exit=1 三点绿;variant_placement 49 checks 绿(wr10 三条在位);gdstyle 待合并后复测〔结构小件批 V16〕
2026-10-27 22:25:53 +08:00
触发器卡(触发器批wr1-wr9): 触发条件机制实装+三Boss迁移+两示范投放——skill_table三常量词表+validate七反例校验段(四键白名单/词表出域/枚举算子限域/类型分派/普攻禁配);enemy_table unlock_hp_pct域校验段删(字段退役);skills.tres三Boss行加trigger闩型+enemy.tres八处unlock_hp_pct删+J面注释清理(技能表头注/酋长池注);unit_container快照trigger随读(技能行权威)+_entry_blocked收编_entry_locked(百分比阈值式T=round(max_hp×value/100)六算子统一/facts缺键=拦fail-safe)+rollable/special双面过滤facts缺省参(既有单参调用零破坏)+check_trigger_unlocks闩型换代;battle facts组包(摇号前一次成型,last_round_end空字典首轮映射none唯一落点)+mines计数埋点(负向blast守卫累加——正向spark_aoe/清图奖励同走blast分支不计入,轮末转存,开战清零)+解锁调用与pct读值源迁移;cross_validator池构成新纪律(每池至少一行无条件特殊技——普攻不计/trigger缺省行计数);示范投放:skills.tres孤注守势(buff/defensive_stance/lte35)+趁隙偷袭(damage×1.5/CD4/eq stopped)+status_effects护身行+地精两行w1+钩爪恐魔三行w2;测试换代:skill_unlock_test读值源与签名换代(申报①语义零变化)+round_flow expect_pools期望值随投放改写(申报②地精两行9/1→9/1/1·钩爪恐魔三行6/2/1→6/2/1/2)+十四行断言换代十六行+V4池纪律扩行(申报④)+巨蜘蛛band1误投修正(old_hook块与蜘蛛池同构误命中);trigger_cond_test新套件V1/V2/V4/V6/V7/V8/V9/V10全绿(manifest登记;V5对拍由skill_unlock/round_flow编排集成承载)。已知预期红:round_flow EV抽样对锚goblin(实测0.9148∉[1.00,1.20]——示范投放=池权重数值改动,EV稀释方向合理)——卡片T4-4预设停机呈报面:锚内子集判红,重锚归用户档位发起,实现批不自行重锚〔触发器批 V1-V10〕
2026-10-27 04:49:55 +08:00
测试(卡②撤销证明轮两处判据面修正): 变异取证抓出的两个自身缺陷——①run_time_fatal_test 的 wr5 两条失败消息用了 GDScript 不存在的格式符 %r(MUT-M2 撤接线时才走到失败支路,push_error 先崩在格式符上=红因不可读)改 %s+str 包裹;②variant_placement 的 wr10③ 直接 call 未接线回调(撤销证明⑤态下 luck_bias_query 无效)→ Invalid call 中断本函数、其后 20 条断言全丢=红但红面过宽,改「is_valid 才取值、否则记 -1」让 ③ 正常判红且套件跑完。变异台账(全部在主源文件临时注入、跑完即 git checkout 还原,还原前三件已提交 b8b69c68):M2 撤 fatal 接线两行→负面套件 exit=2(红因=[run_time_fatal_test/wr5] 棋盘生成违约未传导封印 battle_result=空);M3 撤 p6 handler 调用位→exit=2(wr6 未知标签违约通道未记录 recorded=[]);M4 撤 p7 handler 调用位→exit=2(wr7 未播种通道未记录);M5 撤组装点注入一行→variant_placement exit=1、2/49 失败=wr10② 红+③ 红(取回 -1/池合计 77≠85)、① 不红(判定面仍在)=卡面撤销证明⑤预期逐字命中;WR11 缝拆整体回退(掷格件复原 _fx/_ctx/set_fx+内联三参发射+组装点补 set_fx 一行)六组 dump 与缝拆在位态逐字节 cmp 全等(L1 45/39/46 行、L2 75/78/116 行)=契约 1 合法路径零扰动坐实。注:wr11 卡片撤销列写「回退任一缝拆 hunk→复跑出差异」在现网数据面不可执行(game/data/tables/ 零 bias_rewards 行实查复确认=权重合成面在合法路径恒等,回退本应无差异),该判据的牙在 wr10③(夹具装载后 85 vs 未接线 77),差异归反哺点清单呈报。静态判据面:wr1 改前 battle_live 命中 1/现 0,重复四句 4→2;wr2 confirm_dialog.close() 直调 2→0+单口三处在位;wr3 防护两处在位;p6/p7 return null 两处在位(debug 下 return 位两态不可判别=契约 6 只走静态面+评审注记)。复绿:负面套件 exit=1 三点全绿、variant_placement 49 checks 全绿、pacing_queue PASS、ui_click_probe 问题=0 零 SCRIPT ERROR〔结构小件批 V17〕
2026-10-27 22:34:49 +08:00