refactor(迭代27 T3): 波三 账本收口——RunLedger 单类持四账+刷新双账删副本+gp_final 键删影子账——逐位一致对拍全同
P1-4 共享账本 Ledger 类化(裁点②甲 单类持四账): - game/core/run_ledger.gd: attune_charges/vision_counter/adventure_counters/bonus 四账 单类承载;战斗侧只拿 read/append 原语(attune_charge_has/set/consume、vision_count_add、 counters_seed_snapshot/merge_export、bonus_add_axis)——战末 export/开局 seed 时点语义不变 - AdventureRunner 持账(run_ledger)→ LevelRunner set_run_ledger+sync_attune_inventory (原四散 setter 收口)→ enc 单键 ledger 下传;编排器三裸引用成员退役为 _ledger 原语调用 - 调试/单场缺省新账=零扰动面(vision_counter 缺省空=不计,原 enc 缺键守卫语义保留) P1-2 刷新双账收口: - main 刷新计数副本(run_scope.refresh_used_round)删除;单一事实源=编排器受理计数 - presentation_snapshot 成文面升键 refresh_used(can_refresh 邻位)——HUD 余量/遥测 round_refresh_index 单源读快照;V5 快照一致性断言×3(smoke+ui_click HUD 文本比对) P1-3 GP 影子账收口: - adventure_runner summary 增 gp_final 键(close_wallet 清账前快照) - gp_shadow_ledger.gd 全件退役删除;main 委托缝/会话账本成员删除;终局面板 GP 行 取数=summary 键;ui_probe 影子账断言换代为 summary 键断言 验收: 逐位一致对拍三变体全同;冒烟 1079/0+run_all 26 套+probe click+render golden 0.00%
This commit is contained in:
1 parent
26301baa9c
commit
6fd7d782cc
16 files changed
+174
-183
No files matched your search
@@ -58,8 +58,8 @@ func _init() -> void:
|
||||
Kit.check_quiet(not a.choose_battery_target("incense_stick"),
|
||||
"电池反例:件不在装配集拒绝(禁自动替选——零副作用)〔专长批 V9·秘宝批换主语〕")
|
||||
a._attunement = ["incense_stick"] # 注入装配集(incense_stick=新目录 active_charged)
|
||||
a.attune_charges = {"incense_stick": 1}
|
||||
Kit.check_quiet(a.choose_battery_target("incense_stick") and int(a.attune_charges["incense_stick"]) == 2,
|
||||
a.run_ledger.attune_charges = {"incense_stick": 1} # 迭代 27 T3——四账住 RunLedger
|
||||
Kit.check_quiet(a.choose_battery_target("incense_stick") and int(a.run_ledger.attune_charges["incense_stick"]) == 2,
|
||||
"电池正例:玩家点选 incense_stick→充能账 +1(跨层写 attune_charges)〔专长批 V9·秘宝批换主语〕")
|
||||
Kit.check_quiet(a.battery_pending() == 0, "电池:分配后待账清零〔专长批 V9〕")
|
||||
|
||||
@@ -82,14 +82,14 @@ func _init() -> void:
|
||||
# V10-2 行动点上限归属性轴:ap kind 走加算区第四轴
|
||||
a._curio_deck = [{"kind": "ap", "tier": "rare"}]
|
||||
a._curio_pending = {"candidates": a._curio_deck.duplicate()}
|
||||
var ap_bonus_before := int(a.bonus.get("ap", 0))
|
||||
Kit.check_quiet(a.pick_curio("ap", "rare") and int(a.bonus.get("ap", 0)) == ap_bonus_before + int(db.adventure.curio_value("ap", "rare")),
|
||||
var ap_bonus_before := int(a.run_ledger.bonus.get("ap", 0))
|
||||
Kit.check_quiet(a.pick_curio("ap", "rare") and int(a.run_ledger.bonus.get("ap", 0)) == ap_bonus_before + int(db.adventure.curio_value("ap", "rare")),
|
||||
"行动点上限归属性轴:ap 兑付写加算区第四轴(bonus.ap 承载)〔专长批 V10〕")
|
||||
|
||||
# V16——断点扩容往返:新账本随断点快照/续玩回填(breakpoint_resume_test P5 同构)
|
||||
var sm = load("res://core/save_manager.gd").new("user://_feat_vouchers_bp.json")
|
||||
sm.load_from_disk()
|
||||
a.adventure_counters = {"pain_layers": 3, "twin_digs": 5}
|
||||
a.run_ledger.adventure_counters = {"pain_layers": 3, "twin_digs": 5} # 迭代 27 T3——四账住 RunLedger
|
||||
a._refresh_stock = 2
|
||||
a._battery_pending = 1
|
||||
a.set_save_manager(sm)
|
||||
@@ -100,7 +100,7 @@ func _init() -> void:
|
||||
"V16:新账本三件入断点快照(adventure_counters/refresh_stock/battery_pending)〔专长批 V16〕")
|
||||
var b2 = load("res://core/adventure_runner.gd").new(db, load("res://core/rng_service.gd").new())
|
||||
Kit.check_quiet(b2.resume_adventure(bp16.duplicate(), {}), "V16 前置:续玩受理")
|
||||
Kit.check_quiet(int(b2.adventure_counters.get("pain_layers", -1)) == 3 and b2.refresh_stock() == 2 and b2.battery_pending() == 1,
|
||||
Kit.check_quiet(int(b2.run_ledger.adventure_counters.get("pain_layers", -1)) == 3 and b2.refresh_stock() == 2 and b2.battery_pending() == 1,
|
||||
"V16:续玩回填逐项一致(计数恢复——跨战账不丢)〔专长批 V16〕")
|
||||
sm.clear_breakpoint()
|
||||
|
||||
|
||||
@@ -269,12 +269,13 @@ func _init() -> void:
|
||||
Kit.check_quiet(ob12b.minesweeper.flag_range_free == false,
|
||||
"信标网络反例:未装配旗可达豁免=缺省 false(零装配零扰动)")
|
||||
|
||||
# ⑬ 真视使用计数链(受理成功恰计一次——vision_counter 共享 dict)
|
||||
# ⑬ 真视使用计数链(受理成功恰计一次——RunLedger 单类持账;迭代 27 T3 换代)
|
||||
var rng13 = load("res://core/rng_service.gd").new(); rng13.set_master_seed(321)
|
||||
var ob13 = orch_s.new(db, rng13)
|
||||
var vc13 := {"used": 0}
|
||||
Kit.check_quiet(ob13.begin_battle({"level_index": 1, "node_depth": 0, "hero_hp": int(db.hero.max_hp), "attunement": ["incense_stick"], "vision_counter": vc13}),
|
||||
"计数链:装配起战(vision_counter 共享 dict 携带)")
|
||||
var lg13 = load("res://core/run_ledger.gd").new()
|
||||
lg13.vision_counter = {"used": 0}
|
||||
Kit.check_quiet(ob13.begin_battle({"level_index": 1, "node_depth": 0, "hero_hp": int(db.hero.max_hp), "attunement": ["incense_stick"], "ledger": lg13}),
|
||||
"计数链:装配起战(RunLedger 携带)")
|
||||
var inv13 = load("res://core/treasure_items.gd").new(db)
|
||||
var rec13: Dictionary = inv13.add_item("incense_stick", "attunement", Vector2i(-1, -1), 0)
|
||||
ob13.treasure_inventory = inv13
|
||||
@@ -282,7 +283,7 @@ func _init() -> void:
|
||||
var tgt13: Vector2i = _first_closed_safe(ob13)
|
||||
if tgt13 != Vector2i(-9, -9):
|
||||
ob13.use_treasure(h13, tgt13)
|
||||
Kit.check_quiet(int(vc13.get("used", 0)) == 1,
|
||||
Kit.check_quiet(int(lg13.vision_counter.get("used", 0)) == 1,
|
||||
"计数链正常:受理成功恰 +1(信标网络解锁行为条件数据源)")
|
||||
|
||||
# ⑭ 装配不可变(迭代 22 秘宝批 T6——V6:冒险全程装配快照三面同源且零写口——
|
||||
|
||||
Reference in new issue
Block a user