修复: 卡⓪③——冒烟补主菜单两入口传参断言(直呼 build_adventure_params 单测统一构造面:开新/续玩×attunement/attune_refresh_y/tree_rules 与来源一致 +840 总量+6)

This commit is contained in:
DKChan committed 2026-10-08 05:05:51 +08:00
1 parent 1d2894b555
commit fb845b78dc
1 file changed
+27
+27
View File
@@ -4658,6 +4658,33 @@ func _meta_settle_and_workshop() -> void:
a12._reset_refresh_x()
check(a12.attune_refresh_left() == 1,
"刷新 X 每碰三选一重置(不结转——重碰面 x 回表值 1)")
# ⑬ 主菜单开局传参面(迭代 19 卡⓪①③——开新/续玩两入口同调三键随开局下传防回归:真实入口此前
# 三键恒空(缺陷①),冒烟夹具直呼 runner 参数面拦不住——此处直呼 main.build_adventure_params
# 单测统一构造面(static 免实例化整菜单场景;真实两入口共用本构造),取值与营地投影同源)
var sv_e = _meta_new_save(_META_SMOKE_PATHS[8])
sv_e.set_attunement_equipped(["luck_coin"])
sv_e.set_attune_refresh_level(2)
sv_e.set_fork_side("fg_posture", "a")
var mp_e = load("res://core/meta_progression.gd").new(_db, sv_e)
var rules_e: Array = mp_e.tree_rule_keys()
check(rules_e.has("posture_first_strike") and mp_e.attune_refresh_charges() == 2,
"开局传参夹具前置:Fork 侧 a 激活 rule 键非空 + Y=Lv2 行表值 2(防断言空转)")
var p_new: Dictionary = load("res://presentation/main.gd").build_adventure_params(sv_e, mp_e,
{"first_script": true, "treasure_unlocked": {}, "shop_mode": "pool"})
check((p_new.get("attunement", []) as Array) == (sv_e.attunement_equipped() as Array),
"主菜单开新冒险参数面:同调装配 = 存档装配集(营地装了什么开局就带什么)")
check(int(p_new.get("attune_refresh_y", -1)) == mp_e.attune_refresh_charges(),
"主菜单开新冒险参数面:Y 刷新池 = 当前等级行表值(营地升几档开局就给几次)")
check((p_new.get("tree_rules", []) as Array) == rules_e,
"主菜单开新冒险参数面:树 rule 键集 = Fork 激活侧 effects(点哪侧带哪侧)")
check(bool(p_new.get("first_script", false)) and String(p_new.get("shop_mode", "")) == "pool",
"主菜单开新冒险参数面:入口特有键(first_script/shop_mode)随 extra 原样并入")
var p_resume: Dictionary = load("res://presentation/main.gd").build_adventure_params(sv_e, mp_e,
{"treasure_unlocked": {}})
check((p_resume.get("attunement", []) as Array) == (sv_e.attunement_equipped() as Array)
and int(p_resume.get("attune_refresh_y", -1)) == mp_e.attune_refresh_charges()
and (p_resume.get("tree_rules", []) as Array) == rules_e,
"主菜单继续上局参数面:三键与开新冒险同源同值(续玩不吃白板开局)")
_meta_smoke_cleanup()