迭代46卡A-T6(数据行与牌库计数): adventure_feats换代37行(普通14/优秀13/稀有10/传说0·牌库102+37=139——旧30行断言按实数换代零放宽)·V11专项(validate零违例·七行稀有度cap对表·desc禁词·七件计数器引用闭合[value_counter/when-id全有写入方——预存行消费点记账形态不入判据域]·三计数器在册)·refresh_feats 85 checks绿·adventure_feats 138 checks绿
This commit is contained in:
1 parent
208e5652db
commit
bf7aa514b6
2 files changed
+49
-3
No files matched your search
@@ -38,6 +38,7 @@ func _init() -> void:
|
||||
test_rest_rotation_cap_and_clear()
|
||||
test_charge_layers_consumed_same_round()
|
||||
test_blast_defers_to_combat_segment()
|
||||
test_seven_feats_validate_and_pool()
|
||||
quit(Kit.finish("refresh_feats_test"))
|
||||
|
||||
|
||||
@@ -602,3 +603,48 @@ func test_blast_defers_to_combat_segment() -> void:
|
||||
Kit.check("V7 战斗段末群伤单恰一单(全体存活敌 ×2——行值 2 count≥1)〔换图系批 V7〕",
|
||||
blast_rows.size() == 1 and int((blast_rows[0] as Dictionary).get("value", -1)) == 2
|
||||
and int((blast_rows[0] as Dictionary).get("count", 0)) >= 1)
|
||||
|
||||
|
||||
# ---- V11 数据与池(迭代 46 卡A T6)----
|
||||
|
||||
# 七件 validate/在册/稀有度 cap 对表/跨表计数器引用闭合/desc 禁词
|
||||
func test_seven_feats_validate_and_pool() -> void:
|
||||
print("--- V11 七件数据与池 ---")
|
||||
var seven := {"vein_reserve": "excellent", "easy_swap": "excellent", "wall_blast": "excellent",
|
||||
"charge_rotation": "excellent", "stone_mitigation": "common", "tunnel_rest": "common", "mine_profit": "rare"}
|
||||
Kit.check("V11 feats.validate 零违例(七行全过词表/行键白名单/前缀校验)〔换图系批 V11〕",
|
||||
_db.crossrun.feats.validate().is_empty())
|
||||
var all_in := true
|
||||
var desc_bad := 0
|
||||
for fid in seven.keys():
|
||||
var row: Dictionary = _db.crossrun.feats.row_by_id(String(fid))
|
||||
if row.is_empty() or String(row.get("rarity", "")) != String(seven[fid]) or int(row.get("cap", 0)) != 1:
|
||||
all_in = false
|
||||
if String(row.get("desc", "")).contains("雷") or String(row.get("desc", "")).contains("旗"):
|
||||
desc_bad += 1
|
||||
Kit.check("V11 七行在册且稀有度/cap 逐件对表〔换图系批 V11〕", all_in)
|
||||
Kit.check("V11 七件 desc 禁词零命中(雷/旗字面)〔换图系批 V11〕", desc_bad == 0)
|
||||
# 跨表计数器引用闭合(判据域=换图系七件自身:value_counter/when-id 读取全部有 counter_add 写入方;
|
||||
# 预存行的消费点记账形态〔如完美保险 insurance_used 由授予段落账〕不在此判据域)
|
||||
var written := {}
|
||||
for row_v in (_db.crossrun.feats.rows as Array):
|
||||
for tv in ((row_v as Dictionary).get("triggers", []) as Array):
|
||||
var do_d: Dictionary = (tv as Dictionary).get("do", {})
|
||||
if String(do_d.get("kind", "")) == "counter_add":
|
||||
written[String(do_d.get("counter_id", ""))] = true
|
||||
var refs_ok := true
|
||||
for fid2 in seven.keys():
|
||||
var row2: Dictionary = _db.crossrun.feats.row_by_id(String(fid2))
|
||||
for tv2 in ((row2.get("triggers", []) as Array)):
|
||||
var tr2 := tv2 as Dictionary
|
||||
var do2: Dictionary = tr2.get("do", {})
|
||||
for reader in [String(do2.get("value_counter", "")), String(do2.get("value_from", ""))]:
|
||||
if reader != "" and not written.has(reader):
|
||||
refs_ok = false
|
||||
for c_v in (tr2.get("when", []) as Array):
|
||||
var cid := String((c_v as Dictionary).get("id", ""))
|
||||
if (c_v as Dictionary).get("fact", "") == "counter" and cid != "" and not written.has(cid):
|
||||
refs_ok = false
|
||||
Kit.check("V11 七件跨表计数器引用闭合(value_counter/when-id 全部有 counter_add 写入方)〔换图系批 V11〕", refs_ok)
|
||||
Kit.check("V11 换图系三计数器在写入集(swap_charge_layers/round_swap_guard/round_swap_rest)〔换图系批 V11〕",
|
||||
written.has("swap_charge_layers") and written.has("round_swap_guard") and written.has("round_swap_rest"))
|
||||
Reference in new issue
Block a user