工程(存量断言精简·C档批): 六组手写断言族改表驱动循环——33 静态站点并为 7,清单 1587→1561,运行期条数不变
- C1 level_gen_params 逐类负向 11→1(消息带期望/实际与违例明细);C2 rng_stream_boot 黄金向量 8→1;C3 player_copy 禁词族 3→1、2→1;C4 standee_fx 蓄力判据 4→1;C5 ui_font 字形集 3→1(缺字明细进消息);C6 forge_workbench 持有行 2→1(两行取谓词并集,轻甲行补两子句,只增不减) - 个案标签字面量全部保留在表内,失败定位不降级;冻结清单不动(对账基准 1587),extract_checks --diff=消失 33/新增 7,逐条对应删并申报表 - 用户裁决 2026-10-28:六组全批
This commit is contained in:
1 parent
6df43525ea
commit
fd6cf968dc
6 files changed
+59
-50
No files matched your search
@@ -58,14 +58,12 @@ func _run() -> void:
|
||||
and rows.has("light") and rows.has("heavy") and rows.has("ward"))
|
||||
|
||||
# ③ 初始持有行(长剑/轻甲):购买钮现形带几何价、选中钮=当前禁用
|
||||
var rsw = rows.get("sword", {})
|
||||
var rli = rows.get("light", {})
|
||||
Kit.check("长剑行:购买钮「锻造 20」(0 级位几何价)+选中钮「当前」禁用〔锻造工坊批 V13〕",
|
||||
rsw.get("buy_btn") != null and String(rsw.buy_btn.text) == "锻造 20" and not rsw.buy_btn.disabled
|
||||
and rsw.get("select_btn") != null and String(rsw.select_btn.text) == "当前" and rsw.select_btn.disabled)
|
||||
Kit.check("轻甲行:购买钮「锻造 20」+选中钮「当前」禁用〔锻造工坊批 V13〕",
|
||||
rli.get("buy_btn") != null and String(rli.buy_btn.text) == "锻造 20"
|
||||
and String(rli.select_btn.text) == "当前" and rli.select_btn.disabled)
|
||||
# 两行同取谓词并集(轻甲行补 select_btn 非空 + buy_btn 可用两子句——原件少写,只增不减)
|
||||
for pair in [["sword", "长剑"], ["light", "轻甲"]]:
|
||||
var r: Dictionary = rows.get(pair[0], {})
|
||||
Kit.check("%s行:购买钮「锻造 20」(0 级位几何价)+选中钮「当前」禁用〔锻造工坊批 V13〕" % pair[1],
|
||||
r.get("buy_btn") != null and String(r.buy_btn.text) == "锻造 20" and not r.buy_btn.disabled
|
||||
and r.get("select_btn") != null and String(r.select_btn.text) == "当前" and r.select_btn.disabled)
|
||||
|
||||
# ④ 待解锁行(长枪/法杖/重甲/魔法护甲):解锁钮 200、无购买钮、无选中钮、状态含双通道文案
|
||||
var rsp = rows.get("spear", {})
|
||||
|
||||
@@ -56,9 +56,8 @@ func _sweep_narrator() -> void:
|
||||
var head := String(narrator.node_curio_header())
|
||||
Kit.check("奖励点头部含「冒险牌库」(u3 机制事实①同库)〔wa4〕", head.contains("冒险牌库"))
|
||||
Kit.check("奖励点头部含「属性值提升与补给」(u3 机制事实②渠道分流)〔wa4〕", head.contains("属性值提升与补给"))
|
||||
Kit.check("奖励点头部零「同权重」旧话(u3 清零)〔wa4〕", not head.contains("同权重"))
|
||||
Kit.check("奖励点头部零「同上限」旧话(u3 清零)〔wa4〕", not head.contains("同上限"))
|
||||
Kit.check("奖励点头部零「提升池」旧话(u3 清零)〔wa4〕", not head.contains("提升池"))
|
||||
for w in ["同权重", "同上限", "提升池"]:
|
||||
Kit.check("奖励点头部零「%s」旧话(u3 清零)〔wa4〕" % w, not head.contains(w))
|
||||
Kit.check("专长卡兜底==「专长\n???」(u11 换代——数据缺行真实兜底路径)〔wa3〕",
|
||||
String(narrator.feat_card_text({})) == "专长\n???")
|
||||
|
||||
@@ -73,8 +72,9 @@ func _sweep_legend() -> void:
|
||||
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("受挖掘惩罚"))
|
||||
Kit.check("图例封印行零「插错」(u4 旗族遗留词干清零)〔wa5〕", not String(seal_row[2] if seal_row.size() > 2 else "").contains("插错"))
|
||||
Kit.check("图例封印行零「挖雷」(u4 雷字清零)〔wa5〕", 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))
|
||||
|
||||
|
||||
# ⑤⑥ 来源名双源(u5/u6——状态槽消费半+表值 ConfigDB 真装载+battle_log 行消费半)
|
||||
|
||||
@@ -91,14 +91,16 @@ func _init() -> void:
|
||||
Kit.check("无 target_id 时按名兜底同旧行为(首命中)〔wd12〕", c_fallback != null and c_fallback == c_fallback_expect)
|
||||
|
||||
# ---- ① 意图蓄力档可达(d2)----
|
||||
s1.set_pending("damage", "heavy")
|
||||
Kit.check("蓄力技能(heavy)置 _intent_charge=true〔wd2〕", s1._intent_charge)
|
||||
s1.set_pending("damage", "goblin_slash")
|
||||
Kit.check("非蓄力攻击技(goblin_slash)零置位〔wd2〕", not s1._intent_charge)
|
||||
s1.set_pending("buff", "goblin_rage")
|
||||
Kit.check("增益系零置位〔wd2〕", not s1._intent_charge)
|
||||
s1.set_pending("damage", "basic")
|
||||
Kit.check("普攻零表示路径复位 _intent_charge〔wd2〕", not s1._intent_charge)
|
||||
# 蓄力判据表:[kind, skill_id, 期望 _intent_charge, 个案标签]
|
||||
var charge_cases := [
|
||||
["damage", "heavy", true, "蓄力技能(heavy)置 _intent_charge=true"],
|
||||
["damage", "goblin_slash", false, "非蓄力攻击技(goblin_slash)零置位"],
|
||||
["buff", "goblin_rage", false, "增益系零置位"],
|
||||
["damage", "basic", false, "普攻零表示路径复位 _intent_charge"],
|
||||
]
|
||||
for c in charge_cases:
|
||||
s1.set_pending(c[0], c[1])
|
||||
Kit.check("%s〔wd2〕" % c[3], s1._intent_charge == c[2])
|
||||
|
||||
# ---- ② 庆祝 tween 句柄纪律(d4)----
|
||||
var ov = BattleEndScript.new()
|
||||
|
||||
@@ -15,10 +15,19 @@ func _init() -> void:
|
||||
var f: Font = UiKitScript.load_font(path)
|
||||
Kit.check("随包字体守卫装载非空(res://assets/fonts/ui_font_fusion_pixel_zh_hans.ttf)", f != null)
|
||||
if f != null:
|
||||
Kit.check("中文字形在集(攻/雷/旗/封)", f.has_char("攻".unicode_at(0)) and f.has_char("雷".unicode_at(0)) \
|
||||
and f.has_char("旗".unicode_at(0)) and f.has_char("封".unicode_at(0)))
|
||||
Kit.check("中文字形在集(危——已开危险格字形换代前置,迭代36 u12/wa9)", f.has_char("危".unicode_at(0)))
|
||||
Kit.check("ASCII/数字字形在集(A/0/%)", f.has_char("A".unicode_at(0)) and f.has_char("0".unicode_at(0)) and f.has_char("%".unicode_at(0)))
|
||||
# 字形集表:[个案标签, 须在集字符]——缺字明细进消息
|
||||
var glyph_groups := [
|
||||
["中文字形在集(攻/雷/旗/封)", "攻雷旗封"],
|
||||
["中文字形在集(危——已开危险格字形换代前置,迭代36 u12/wa9)", "危"],
|
||||
["ASCII/数字字形在集(A/0/%)", "A0%"],
|
||||
]
|
||||
for g in glyph_groups:
|
||||
var missing := ""
|
||||
for i in String(g[1]).length():
|
||||
var ch := String(g[1])[i]
|
||||
if not f.has_char(ch.unicode_at(0)):
|
||||
missing += ch
|
||||
Kit.check("%s(缺=%s)" % [g[0], missing if missing != "" else "无"], missing == "")
|
||||
var sz := 18
|
||||
var w_cn: float = f.get_string_size("战斗胜利", HORIZONTAL_ALIGNMENT_LEFT, -1, sz).x
|
||||
var w_label: float = f.get_string_size("攻击 2", HORIZONTAL_ALIGNMENT_LEFT, -1, sz).x
|
||||
|
||||
Reference in new issue
Block a user