iter50-卡1:卡A(敌方状态个体化): 容器换代owner_key多桶(个体键单点/授予写点3处/死亡清/消费面随动/呈现逐卡)+断言V1-V8+armor_roll申报换代(个体键读数语义保留)+主角侧回归绿; 单元71套件+冒烟15项全绿
This commit is contained in:
1 parent
ab5d75a208
commit
e658492703
300 files changed
+609
-6039
No files matched your search
@@ -23,6 +23,7 @@ func _init() -> void:
|
||||
_test_phase_text_nonempty()
|
||||
_test_boss_name_uses_boss_rowset()
|
||||
_test_level_clear_wording()
|
||||
_test_snapshot_effects_per_unit()
|
||||
quit(Kit.finish("battle_narrator_test"))
|
||||
|
||||
|
||||
@@ -99,3 +100,39 @@ func _test_level_clear_wording() -> void:
|
||||
{"cleared": false, "result": "failed", "levels_cleared": 1, "stopped_at": 2, "keystone_total": 4, "master_seed": 42})
|
||||
Kit.check("冒险摘要完成关数行(实际「%s」)〔口径换代 V3〕" % summary,
|
||||
summary.contains("完成 1 关 · 止步第 2 层") and not summary.contains("通关"))
|
||||
|
||||
|
||||
# ---- 呈现各读各的(增益状态 v1.5——敌方状态个体化批)----
|
||||
# 真实入口=呈现状态快照函数 presentation_snapshot:A 有削弱 B 无 → 两卡投影各现各的(零共享引用)
|
||||
|
||||
func _test_snapshot_effects_per_unit() -> void:
|
||||
var db = load("res://core/config_db.gd").new()
|
||||
Kit.check("V8 前置:表加载零 error", db.load_tables("res://data/tables", true) and db.diagnostics_count("error") == 0)
|
||||
var rng = load("res://core/rng_service.gd").new()
|
||||
rng.set_master_seed(20261103)
|
||||
var settlement = load("res://core/battle_orchestrator.gd").new(db, rng)
|
||||
# depth 3 = hobgoblin 行集 2-3 只——两卡对照面
|
||||
var open_ok: bool = settlement.begin_battle({"level_index": 1, "node_depth": 3, "hero_hp": int(db.combat.hero.max_hp)})
|
||||
Kit.check("V8 前置:开局(L1 depth3 双敌行集)", open_ok)
|
||||
if not open_ok:
|
||||
return
|
||||
var enemies: Array = settlement._enemy_system.all_enemies()
|
||||
var dual_ok: bool = enemies.size() >= 2
|
||||
Kit.check("V8 前置:≥2 敌(两卡对照面)", dual_ok)
|
||||
if not dual_ok:
|
||||
return
|
||||
var sc = load("res://core/status_container.gd")
|
||||
var src := {"source_class": "seal_hit", "origin_cell": Vector2i(-1, -1), "round_index": 0}
|
||||
Kit.check("V8 前置:A 敌受理削弱(B 敌不授)", settlement._status_effects.apply_effect("weaken", sc.owner_key_for(enemies[0]), src))
|
||||
var snap: Dictionary = settlement.presentation_snapshot()
|
||||
var e1_effects: Array = snap.enemies[0].effects
|
||||
var e2_effects: Array = snap.enemies[1].effects
|
||||
var e1_has := false
|
||||
for e in e1_effects:
|
||||
if String(e.effect_id) == "weaken":
|
||||
e1_has = true
|
||||
var e2_has := false
|
||||
for e in e2_effects:
|
||||
if String(e.effect_id) == "weaken":
|
||||
e2_has = true
|
||||
Kit.check("A 有削弱 B 无 → 两卡投影各现各的(A 卡现削弱、B 卡无同款)〔个体化批 V8〕", e1_has and not e2_has)
|
||||
Reference in new issue
Block a user