iter56-卡2:封印动作改版(迭代56卡2·受理即揭示): 规则核心(target_sealed挖封印格拒/清图口径=挖开∪封印/能清图的封最优先/notify_cleared清图收轮/sealed_identity撤出→BoardData.cell_identity——上限20用户裁)+结算面dug_under_seal删净+破封一击退役+呈现层(地板+身份字形+印记不依赖揭示态+文案四件)+探针V8-V10+sim域(标空封印剔除约束增强+错触直挖补偿注入0.10)+golden三图换代; MC同批重锚50/档=100局(2026-11-08用户批准)三方对照无结构性恶化; 高档审计通过(17行全量·审计后勘误2项闭环)

This commit is contained in:
DKChan committed 2026-11-08 03:47:33 +08:00
1 parent 908e518306
commit 5ec4a311bb
34 files changed
+589 -164

No files matched your search

@@ -18,6 +18,11 @@ func check(cond: bool, msg: String) -> void:
func _init() -> void:
# 判据出处: design/engineering/test-conventions.md:56 (判定上报通道——验证函数组)
_smoke_settle_zero_rows()
func _smoke_settle_zero_rows() -> void:
# 判据出处: design/gdd/08-Alpha版本标准.md:154 战斗演出链(弹道 / 受击 / 血条 / 灰化)在役;
# 逐行结算排播行已随 v1.29 退役——结算期 B 区零逐行文字、FX 排播链保持
var main: Node = load("res://presentation/main.tscn").instantiate()
@@ -27,7 +27,8 @@ func _test_reject_text_by_reason() -> void:
var cases := {
"not_adjacent": "不能执行:目标与小人不相邻",
"target_revealed": "不能执行:目标已开",
"seal_present": "不能封印:此格已有封印印记(封印为一次性承诺——相邻时左键直接挖开)",
"seal_present": "不能封印:此格已有封印印记(封印受理即揭示——印记随图存续)",
"target_sealed": "不能挖:此格已封印(封印受理即揭示——不可再挖开)",
}
var bad: Array[String] = []
for sub in cases:
@@ -76,7 +76,10 @@ func _sweep_legend() -> void:
seal_row = e
break
Kit.check("图例封印行含「标空」(u4——与「标中」成对)〔wa5〕", String(seal_row[2] if seal_row.size() > 2 else "").contains("标空"))
Kit.check("图例封印行含「受挖掘惩罚」(u4 雷字清零换代)〔wa5〕", String(seal_row[2] if seal_row.size() > 2 else "").contains("受挖掘惩罚"))
# 文案换代〔封印改 V10〕——图例封印行新口径:受理即揭示、已封印格零动作(旧「受挖掘惩罚」句随改判路径退役)
Kit.check("图例封印行含「受理即揭示」且零雷字(u4 清零换代〔封印改 V10〕)〔wa5〕",
String(seal_row[2] if seal_row.size() > 2 else "").contains("受理即揭示")
and not String(seal_row[2] if seal_row.size() > 2 else "").contains("雷"))
for w in ["插错", "挖雷"]:
Kit.check("图例封印行零「%s」〔wa5〕" % w,
not String(seal_row[2] if seal_row.size() > 2 else "").contains(w))
@@ -14,6 +14,7 @@ func _init() -> void:
_test_param_values()
_test_shader_uniforms()
_test_fog_gate()
_test_seal_on_revealed_visible()
quit(Kit.finish("seal_mark_params_test"))
@@ -54,3 +55,16 @@ func _test_fog_gate() -> void:
u.seal_on = false
Kit.check("撤 seal_on 即撤子件〔seal批 V4〕", u._seal_layer == null)
u.free()
# R8 新组合态:seal_on 与已揭示同真时印记子件仍可见(封印受理即揭示改版——印记可见性不依赖
# 揭示态;内部字段直查=受控例外同 _test_fog_gate——子件可见性无公开可观测面,对照表随行申报)
func _test_seal_on_revealed_visible() -> void:
# 判据出处: design/ux/battle.md「封印格呈现预览」受理即揭示——印记承载面换代(已揭示格承载合法)
var u: Node2D = CELL_UNIT.new()
u.seal_on = true
Kit.check("R8 前提:seal_on 挂封印子件〔封印改 V8〕", u._seal_layer != null)
u.fog_state = 0
Kit.check("R8 新组合态:seal_on 与揭示同真印记仍可见(非雾态——承载面不因揭示态撤印)〔封印改 V8〕",
u._seal_layer != null and u._seal_layer.visible == true)
u.free()