test(迁移): 批 B 波 1 G5 套1 末点 AP 封印回归五条迁入新建宿主 seal_polarity_test.gd——新宿主落位+manifest 登记+剪切挂载绿(宿主 5 检查)+按条变异 5/5 验红(受理守卫恒拒/dig 扣费+1/revealed_cells 置空/seal 计费 99/try_spend 耗尽仲裁恒假各验红);smoke_all.gd 同批删函数节头块与调用行;闸01 剩余面 976 绿
This commit is contained in:
1 parent
9b91731055
commit
5ed1ec99af
4 files changed
+82
-37
No files matched your search
@@ -160,7 +160,6 @@ func _run_core_smoke(db, rng) -> void:
|
||||
_smoke_full_battle(1, 0, "L1 · 地精")
|
||||
_smoke_full_battle(2, 0, "L2 · 熊地精")
|
||||
_smoke_level()
|
||||
_smoke_seal_ap_exhausted()
|
||||
_smoke_active_refresh()
|
||||
_smoke_playtest_logger()
|
||||
_smoke_battle_log_view()
|
||||
@@ -1322,42 +1321,6 @@ func _ms_digest(ms, ae) -> Array:
|
||||
return [[int(ms.hero_pos().x), int(ms.hero_pos().y)], rev, seals, ae.ap, ae.phase, ms.seal_count()]
|
||||
|
||||
|
||||
# ---- 排雷玩法 封印动作耗尽末点 AP 回归(playtest 缺陷②——v1 冒烟盲区:自动玩家不用封印)----
|
||||
|
||||
func _smoke_seal_ap_exhausted() -> void:
|
||||
print("--- 排雷玩法·封印动作耗尽末点 AP 回归 ---")
|
||||
var rng = load("res://core/rng_service.gd").new()
|
||||
rng.set_master_seed(20260911)
|
||||
var settlement = load("res://core/battle_orchestrator.gd").new(_db, rng)
|
||||
var rounds: Array = []
|
||||
settlement.round_started.connect(func(ri): rounds.append(ri))
|
||||
check(settlement.begin_battle({"level_index": 1, "node_depth": 4, "hero_hp": int(_db.hero.max_hp), "node_type": "boss"}), "回归战斗启动(Boss 行——D0 20HP 级会被盲挖粉尘秒杀,无法承载封印回归场景)")
|
||||
var minesweeper = settlement.minesweeper
|
||||
# 恰花 (AP-1) 点挖掘,留末点给封印(表驱动——AP 从表读不写死)
|
||||
var ap_total: int = int(_db.action_economy.ap_per_round)
|
||||
for i in range(ap_total - 1):
|
||||
if settlement.action_economy.phase != "Active" or settlement.action_economy.ap == 0:
|
||||
break
|
||||
var plan = AutoPlayer.choose_dig(minesweeper)
|
||||
if plan.is_empty():
|
||||
break
|
||||
if plan.hero_cell != minesweeper.hero_pos():
|
||||
minesweeper.settle_batch([{"action": "move", "cell": plan.hero_cell}])
|
||||
minesweeper.settle_batch([{"action": "dig", "cell": plan.dig_cell}])
|
||||
check(settlement.action_economy.phase == "Active" and settlement.action_economy.ap == 1, "%d 次挖掘后恰剩 1 AP(phase=%s ap=%d)" % [ap_total - 1, str(settlement.action_economy.phase), settlement.action_economy.ap])
|
||||
# 末点 AP 花在封印——轮次必须终结并结算进入第 2 轮
|
||||
# 封印目标 = 挖掘策略的下一目标格(构造保证:未开、与小人邻接——先把小人移到其邻接已开格)
|
||||
var plan2 = AutoPlayer.choose_dig(minesweeper)
|
||||
check(not plan2.is_empty(), "仍存在可挖目标(封印目标来源)")
|
||||
var out: Array = []
|
||||
if not plan2.is_empty():
|
||||
if plan2.hero_cell != minesweeper.hero_pos():
|
||||
minesweeper.settle_batch([{"action": "move", "cell": plan2.hero_cell}])
|
||||
out = minesweeper.settle_batch([{"action": "seal_place", "cell": plan2.dig_cell}])
|
||||
check(not out.is_empty() and bool(out[0].accepted), "末点 AP 封印被受理")
|
||||
check(rounds.size() >= 2, "封印动作耗尽 AP 触发轮末结算并进入第 2 轮(rounds=%s)" % str(rounds))
|
||||
|
||||
|
||||
# ---- 关卡节点地图·线性推进冒烟----
|
||||
|
||||
func _smoke_level() -> void:
|
||||
|
||||
Reference in new issue
Block a user