refactor(runner拆件): 令牌池与商店族拆出两件+断点字段登记单源(零行为变更)

- curio_deck.gd(新增):令牌多重集/抽签/cap/凭证三计数与判定唯一宿主,随机经注入 rg 面;宿主公开面委托保持原签名
- shop_session.gd(新增):双模式货架/定价/购买/刷新入件,钱包原语留宿主经回调落账
- adventure_runner:BREAKPOINT_FIELDS 27 键登记单源驱动写侧拼装与两处读侧回退;续玩段拆为六小函数
- level_runner:商店族 21 函数转委托层,9 个成员改转发属性(类变量计数保持 38)
- breakpoint_resume_test:新增 P8 键集==写侧实拼键集与策略标签词表断言〔wr2〕
This commit is contained in:
DKChan committed 2026-10-25 07:32:20 +08:00
1 parent 5c9c5f8083
commit e5ee4d04f0
8 files changed
+925 -504

No files matched your search

+25 -1
View File
@@ -181,8 +181,32 @@ func _init() -> void:
Kit.check_quiet(adr_n.start_adventure(910042, params) and adr_n.runner().nodes() == graph_j,
"P7 同种子重开局同图(开局入口复现承载)〔v7〕")
# ---- Part 8:断点字段登记单源(登记键集 == 写侧实拼字典键集;键名增删即红)----
var fields: Dictionary = AdventureRunnerScript.BREAKPOINT_FIELDS
var reg_keys: Array = fields.keys()
reg_keys.sort()
var bp_keys: Array = bp_j.keys()
bp_keys.sort()
Kit.check_quiet(reg_keys == bp_keys,
"P8 登记单源键集 == 写侧实拼断点键集(%d 键逐一对齐)〔wr2〕" % reg_keys.size())
var frozen_keys := ["adventure_counters", "attunement_charges", "attune_refresh_y", "aux_items",
"bonus", "bonus_deck", "bonus_pending", "bonus_result", "bonus_taken", "feat_ticket_pity",
"feat_ticket_sold", "gp", "graph_gen_v2", "hero_hp", "keystone", "keystone_drops",
"level_index", "master_seed", "node_id", "refresh_stock", "relics", "rng_counter",
"shop_purchased", "shop_shelf", "shop_visit_buys", "visited_ids", "vision_counter_used"]
frozen_keys.sort()
Kit.check_quiet(reg_keys == frozen_keys,
"P8 键集与冻结清单逐位一致(27 键契约;增删键即红)〔wr2〕")
var vocab := ["plain", "clamp", "keep_on_null", "dual_merge", "params_fallback", "token_migration"]
var stray: Array = []
for k in fields.keys():
var strat := String((fields[k] as Dictionary).get("strategy", ""))
if not vocab.has(strat):
stray.append("%s=%s" % [k, strat])
Kit.check_quiet(stray.is_empty(), "P8 策略标签全落六类词表(越界=%s)〔wr2〕" % str(stray))
_clear_disk()
quit(Kit.finish("breakpoint_resume_test", "PASS — 断点往返/续玩确定性/幂等/退出清断点/装配存档回归/生成图换代 全绿"))
quit(Kit.finish("breakpoint_resume_test", "PASS — 断点往返/续玩确定性/幂等/退出清断点/装配存档回归/生成图换代/字段单源 全绿"))
# 句柄寻址夹具辅助:取生成图中指定句柄节点的首个出边目标(构造中途停点落档形态)