From 768e3665df64158c4e8855ed386d190d230b3098 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Thu, 8 Oct 2026 16:36:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20=E5=B0=BE=E8=A3=81?= =?UTF-8?q?=E5=BE=AE=E6=89=B9b=E2=80=94=E2=80=94=E5=8D=A1=E2=93=AAresume?= =?UTF-8?q?=20tree=5Frules=E5=8F=97=E7=90=86=E9=97=AD=E7=8E=AF=EF=BC=88202?= =?UTF-8?q?6-10-08=20=E7=94=A8=E6=88=B7=E8=A3=81=E7=94=B2=EF=BC=9Aresume?= =?UTF-8?q?=5Fadventure=20=E5=8F=82=E6=95=B0=E9=9D=A2=E6=8C=89=20start=5Fa?= =?UTF-8?q?dventure=20:135=20=E5=90=8C=E5=BC=8F=E8=A1=A5=E6=94=B6=20tree?= =?UTF-8?q?=5Frules=E3=80=94=E7=B1=BB=E5=9E=8B=E9=98=B2=E5=BE=A1=E5=90=8C?= =?UTF-8?q?=E6=AC=BE=20is=20Array=20=E4=B8=89=E5=85=83=E3=80=95=EF=BC=8C?= =?UTF-8?q?=E6=B6=88=E8=B4=B9=E9=9D=A2=20:938=20set=5Ftree=5Frules=20?= =?UTF-8?q?=E4=B8=8B=E4=BC=A0=E7=8E=B0=E6=88=90=E9=9B=B6=E6=94=B9=EF=BC=9B?= =?UTF-8?q?main.gd=20build=5Fadventure=5Fparams=E3=80=8Ctree=5Frules=20?= =?UTF-8?q?=E6=9A=82=E4=B8=8D=E6=B6=88=E8=B4=B9=E3=80=8D=E5=9C=A8=E5=86=8C?= =?UTF-8?q?=E6=8A=AB=E9=9C=B2=E5=8F=A5=E5=90=8C=E6=AD=A5=E9=80=80=E5=BD=B9?= =?UTF-8?q?=E6=94=B9=E5=86=99=EF=BC=9B=E5=86=92=E7=83=9F=E6=96=AD=E8=A8=80?= =?UTF-8?q?=E6=AE=B5=E8=BF=BD=E5=8A=A0=E7=BB=AD=E7=8E=A9=E5=8F=97=E7=90=86?= =?UTF-8?q?=E4=B8=A4=E6=9F=A5=E2=80=94=E2=80=94resume=5Fadventure=20?= =?UTF-8?q?=E5=8F=97=E7=90=86=E4=B8=89=E9=94=AE=E5=8F=82=E6=95=B0=E9=9D=A2?= =?UTF-8?q?+runner.=5Ftree=5Frules=20=E4=B8=8E=E4=BC=A0=E5=85=A5=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E3=80=94v2=20=E6=97=A7=E6=96=AD=E7=82=B9=E5=A4=B9?= =?UTF-8?q?=E5=85=B7=E5=90=8C=E5=BC=8F=E6=9C=80=E5=B0=8F=E6=96=AD=E7=82=B9?= =?UTF-8?q?=E3=80=95=EF=BC=89=E2=80=94=E2=80=94=E5=86=92=E7=83=9F=20840?= =?UTF-8?q?=E2=86=92842/0=E3=80=81run=5Fall=2017=E5=A5=97=E5=85=A8?= =?UTF-8?q?=E7=BB=BF=E3=80=81probe=5Fgate=20--click=20=E5=85=A8=E7=BB=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/core/adventure_runner.gd | 1 + game/presentation/main.gd | 4 ++-- game/smoke/smoke_all.gd | 12 ++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/game/core/adventure_runner.gd b/game/core/adventure_runner.gd index b3b8cd2a..318bb3bc 100644 --- a/game/core/adventure_runner.gd +++ b/game/core/adventure_runner.gd @@ -212,6 +212,7 @@ func resume_adventure(bp: Dictionary, params: Dictionary = {}) -> bool: _attunement = params.get("attunement", []) if params.get("attunement", []) is Array else [] # additive(迭代 11 第①批 T5) _attune_refresh_y = maxi(0, int(params.get("attune_refresh_y", 0))) # additive(迭代 11 第①批 T5b——Y 冒险周期池) _seed_attune_charges() # 迭代 11 第①批 T6——冒险开始充能账本按装备主动件重置(每冒险充能语义) + _tree_rules = params.get("tree_rules", []) if params.get("tree_rules", []) is Array else [] # 迭代 12 T10——A/B 面 rule 键集(尾裁微批b 2026-10-08 卡⓪受理闭环:续玩参数面同 start_adventure :135 同式,消费面 set_tree_rules 下传现成零改) # 三选一停点续玩分支(迭代 10——选择态/已兑付态不重跑关卡;奖励选择态不重抽、已兑付不重付) var bp_pending: Dictionary = bp.get("bonus_pending", {}) as Dictionary _feat_ticket_pity = int(bp.get("feat_ticket_pity", 0)) # T5 扩列——旧档缺键缺省 0(存档兼容) diff --git a/game/presentation/main.gd b/game/presentation/main.gd index 63d93708..58b96d35 100644 --- a/game/presentation/main.gd +++ b/game/presentation/main.gd @@ -497,8 +497,8 @@ func _wire_adventure() -> void: # 取值口径与营地投影完全同源:装配集=save.attunement_equipped(save_manager.gd 访问器)、Y 刷新池= # meta.attune_refresh_charges(当前等级行表值)、树 rule 键集=meta.tree_rule_keys(Fork 激活侧 effects); # hero_override 沿用既有 meta 现算口径。static 形态=冒烟直呼单测本函数,免实例化整菜单场景)。 -# 注:runner 侧 resume_adventure 受理面现收 attunement/attune_refresh_y 两键(tree_rules 暂不消费—— -# 传参先行,受理缺口在册披露)。 +# 注:runner 侧 resume_adventure 受理面现收 attunement/attune_refresh_y/tree_rules 三键 +# (2026-10-08 尾裁微批b 卡⓪受理闭环——tree_rules 受理补齐,传参/受理两侧对齐,披露句退役)。 static func build_adventure_params(save_manager_ref, meta_ref, extra: Dictionary = {}) -> Dictionary: var params: Dictionary = { "hero_override": meta_ref.hero_override() if meta_ref != null else {}, diff --git a/game/smoke/smoke_all.gd b/game/smoke/smoke_all.gd index ceb995a1..64d3fece 100644 --- a/game/smoke/smoke_all.gd +++ b/game/smoke/smoke_all.gd @@ -4685,6 +4685,18 @@ func _meta_settle_and_workshop() -> void: and int(p_resume.get("attune_refresh_y", -1)) == mp_e.attune_refresh_charges() and (p_resume.get("tree_rules", []) as Array) == rules_e, "主菜单继续上局参数面:三键与开新冒险同源同值(续玩不吃白板开局)") + # 尾裁微批b(2026-10-08 卡⓪受理闭环)——续玩路径 tree_rules 受理断言:resume_adventure 此前 + # 只收 attunement/attune_refresh_y 两键(tree_rules 暂不消费在册披露),受理补齐后直呼 runner + # 续玩参数面(v2 旧断点夹具同式最小断点——smoke ⑫ 受理路径同形)验 _tree_rules 与传入一致。 + var adr_res = load("res://core/adventure_runner.gd").new(_db, _fresh_rng(19)) + var bp_min: Dictionary = {"level_index": 1, "node_id": -1, "hero_hp": 40, "gp": 5, + "bonus": {"atk": 0, "max_hp": 0, "armor_class": 0}, "shop_purchased": {}, + "template_pick": -1, "master_seed": 777, "rng_counter": 3, "keystone": 0, + "visited_ids": []} + check(adr_res.resume_adventure(bp_min, p_resume), + "继续上局受理面:resume_adventure 受理三键参数面(尾裁微批b 受理闭环——受理不再吃白板)") + check((adr_res._tree_rules as Array) == rules_e, + "继续上局受理面:tree_rules 随参数面进 runner._tree_rules(消费面 set_tree_rules 下传现成)") _meta_smoke_cleanup()