秘宝批T7组E-2:内部标识符全族换词(inventory/unlocked/replace/overlays/slot/settlement use_aux等60+token)+存档键零触碰专项核通过(37文件六键普查零差异,点号访问零存在)+行为探针四件全绿+任务书§1.2基线回填(755/0实测)
This commit is contained in:
1 parent
f8c6db49c6
commit
cd73e62346
21 files changed
+205
-203
No files matched your search
@@ -153,7 +153,7 @@ static func run_adventure(db, seed_val: int, atk_pct: int, hp_pct: int, collect_
|
||||
# 道具件满位替换放弃新件、兑付后推进下一关——零随机流自开,同种子逐位可复放)
|
||||
adr.bonus_choice_presented.connect(_on_adventure_bonus.bind(st, adr))
|
||||
adr.bonus_resolved.connect(_on_adventure_bonus_resolved.bind(st, adr))
|
||||
adr.aux_replace_presented.connect(_on_adventure_aux_replace.bind(st, adr))
|
||||
adr.treasure_replace_presented.connect(_on_adventure_treasure_replace.bind(st, adr))
|
||||
adr.adventure_finished.connect(_on_adventure_finished.bind(st, logger))
|
||||
adr.set_hero_override(atk_pct, hp_pct)
|
||||
# 同调分层注入(迭代 11 第①批 T8——缺省 {} 与既有调用方逐位一致零行为变更)
|
||||
@@ -302,8 +302,8 @@ static func _pick_token(candidates: Array, relic_mode: String = "off") -> Dictio
|
||||
|
||||
|
||||
# 同调位满位替换子交互(确定性策略:放弃新件不获取——分发面按停点上下文裁决节点/通关渠道)
|
||||
static func _on_adventure_aux_replace(items: Array, incoming: Dictionary, st: Dictionary, adr) -> void:
|
||||
st.reward_events.append({"aux_replace": incoming.duplicate(true)})
|
||||
static func _on_adventure_treasure_replace(items: Array, incoming: Dictionary, st: Dictionary, adr) -> void:
|
||||
st.reward_events.append({"treasure_replace": incoming.duplicate(true)})
|
||||
if not adr.resolve_bonus_replace(-1):
|
||||
st.result = "advance_failed"
|
||||
|
||||
|
||||
@@ -541,7 +541,7 @@ func _smoke_adventure() -> void:
|
||||
# ⑪ 池耗即枯竭 + 池收缩 + 满血回 0(TP0——white-box:耗尽 attack/ap 令牌后候选零出现;
|
||||
# 种类次数上限退役,「达上限剔除」语义由牌库耗尽承载)
|
||||
var a11 = load("res://core/adventure_runner.gd").new(_db, _fresh_rng(11))
|
||||
check(a11.start_adventure(11, {"first_script": true, "aux_unlocked": {"blast_kit": true}}),
|
||||
check(a11.start_adventure(11, {"first_script": true, "treasure_unlocked": {"blast_kit": true}}),
|
||||
"剔牌库/替换场景:冒险启动(seed 11——道具解锁集只含 blast_kit)")
|
||||
for di in range(a11._bonus_deck.size() - 1, -1, -1):
|
||||
var dk := String((a11._bonus_deck[di] as Dictionary).get("kind", ""))
|
||||
@@ -556,13 +556,13 @@ func _smoke_adventure() -> void:
|
||||
check((draw as Array).size() >= 2, "池耗后候选恒 ≥2(稀有/罕见档余量——防「三选项全不可选」死角)")
|
||||
# 池收缩(迭代 11 同调批 T7——aux 卡退役出三选一牌库:重复抽样零 aux 候选;同调位替换两路
|
||||
# white-box 测试随停点渠道退役拆除——机械惰性承载,零投放零行为)
|
||||
var aux_seen := false
|
||||
var treasure_seen := false
|
||||
for i in 40:
|
||||
for t in a11._draw_bonus_candidates():
|
||||
if String((t as Dictionary).get("kind", "")) == "treasure_item":
|
||||
aux_seen = true
|
||||
treasure_seen = true
|
||||
break
|
||||
check(not aux_seen, "池收缩——40 次重抽零 aux 候选(停点渠道 aux 卡退役,迭代 11 第①批 T7)")
|
||||
check(not treasure_seen, "池收缩——40 次重抽零 aux 候选(停点渠道 aux 卡退役,迭代 11 第①批 T7)")
|
||||
# 满血回 0 合法(通关回血封顶口径)
|
||||
var a12 = load("res://core/adventure_runner.gd").new(_db, _fresh_rng(12))
|
||||
a12.start_adventure(12, {"first_script": true})
|
||||
@@ -575,7 +575,7 @@ func _smoke_adventure() -> void:
|
||||
"满血通关回血 0 合法(封顶口径——heal_gained=0 非负溢出)")
|
||||
# ⑬ 奖励节点共享池(迭代 10 追加批——同库同池同摘牌;TP0:attack 令牌耗尽后节点域同样零出现)
|
||||
var a13 = load("res://core/adventure_runner.gd").new(_db, _fresh_rng(13))
|
||||
check(a13.start_adventure(13, {"first_script": true, "aux_unlocked": {"blast_kit": true}}),
|
||||
check(a13.start_adventure(13, {"first_script": true, "treasure_unlocked": {"blast_kit": true}}),
|
||||
"节点共享池场景:冒险启动(seed 13)")
|
||||
for di13 in range(a13._bonus_deck.size() - 1, -1, -1):
|
||||
if String((a13._bonus_deck[di13] as Dictionary).get("kind", "")) == "attack":
|
||||
@@ -4492,8 +4492,8 @@ func _smoke_save() -> void:
|
||||
var bp_visited: Array = bp.get("visited_ids", [])
|
||||
check(bp_visited.size() == 3 and int(bp_visited[0]) == 0 and int(bp_visited[2]) == 5,
|
||||
"断点附随件往返:已到节点序")
|
||||
var bp_aux: Array = bp.get("aux_items", [])
|
||||
check(bp_aux.size() == 1 and String(bp_aux[0].get("item_id", "")) == "aux_scout",
|
||||
var bp_treasure: Array = bp.get("aux_items", [])
|
||||
check(bp_treasure.size() == 1 and String(bp_treasure[0].get("item_id", "")) == "aux_scout",
|
||||
"断点附随件往返:道具库存")
|
||||
bp["hero_hp"] = 999
|
||||
check(int((rb.breakpoint_snapshot() as Dictionary).get("hero_hp", -1)) == 13,
|
||||
|
||||
Reference in new issue
Block a user