合并(旧校验件清尾·工程批): config_db._validate_skill_pool_links 转发方法删除+round_flow_skill_pool_test 五处测试改锚跨表校验件直构; 零行为变更; 区并 master 后复验=单元与集成两套绿(136/3 checks)+静态扫描除在册 S13 存量债外全 ok+类型闸 PASS; post-merge 钩子推送触发远端 CI
ci / gates (push) Failing after 7m13s
ci / gates (push) Failing after 7m13s
This commit is contained in:
commit
ffb744cc83
2 files changed
+6
-11
No files matched your search
@@ -165,12 +165,6 @@ func _cross_validate(loaded: Dictionary) -> void:
|
|||||||
_validator.cross_validate(loaded, push_diag)
|
_validator.cross_validate(loaded, push_diag)
|
||||||
|
|
||||||
|
|
||||||
# 池模板 × 技能行跨表校验(冒烟直验独立入口——签名与消费面零变化,实现归协作类;门面私有——
|
|
||||||
# 消费面经门面者改 _ 前缀直调,cross_validator 直验入口公开面不变)
|
|
||||||
func _validate_skill_pool_links(skill_table: SkillTable, enemy_table: EnemyTable, status_table: StatusEffectTable = null) -> Array:
|
|
||||||
return _validator.validate_skill_pool_links(skill_table, enemy_table, status_table)
|
|
||||||
|
|
||||||
|
|
||||||
# ---- 数据配置 EC8:debug 热重载门(战斗结算 唯一调用方;切片实现 = 门标志 + 拒绝语义)----
|
# ---- 数据配置 EC8:debug 热重载门(战斗结算 唯一调用方;切片实现 = 门标志 + 拒绝语义)----
|
||||||
|
|
||||||
func set_reload_gate(gated: bool) -> void:
|
func set_reload_gate(gated: bool) -> void:
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ extends SceneTree
|
|||||||
|
|
||||||
const Kit := preload("res://tests/unit/test_kit.gd")
|
const Kit := preload("res://tests/unit/test_kit.gd")
|
||||||
const ConfigDBScript := preload("res://core/config_db.gd")
|
const ConfigDBScript := preload("res://core/config_db.gd")
|
||||||
|
const ValidatorScript := preload("res://core/config_db_cross_validator.gd")
|
||||||
const AutoPlayer := preload("res://sim/auto_player.gd") # 自动玩家策略单一实现(迁移期按现路径 preload——账本 §五夹具前提)
|
const AutoPlayer := preload("res://sim/auto_player.gd") # 自动玩家策略单一实现(迁移期按现路径 preload——账本 §五夹具前提)
|
||||||
|
|
||||||
var _db
|
var _db
|
||||||
@@ -866,14 +867,14 @@ func _smoke_skill_pool_validation_reject() -> void:
|
|||||||
var skill_table = load("res://data/schemas/skill_table.gd").new()
|
var skill_table = load("res://data/schemas/skill_table.gd").new()
|
||||||
var enemy_table = load("res://data/schemas/enemy_table.gd").new()
|
var enemy_table = load("res://data/schemas/enemy_table.gd").new()
|
||||||
enemy_table.rows.assign([{"enemy_id": "x", "display_name": "x", "pool": [{"skill_id": "ghost", "weight": 1}]}])
|
enemy_table.rows.assign([{"enemy_id": "x", "display_name": "x", "pool": [{"skill_id": "ghost", "weight": 1}]}])
|
||||||
Kit.check("加载校验拒绝:池条目 skill_id 悬空致命", _has_err_category(_db._validate_skill_pool_links(skill_table, enemy_table), "dangling_skill"))
|
Kit.check("加载校验拒绝:池条目 skill_id 悬空致命", _has_err_category(ValidatorScript.new().validate_skill_pool_links(skill_table, enemy_table), "dangling_skill"))
|
||||||
skill_table.rows.assign([{"skill_id": "a", "display_name": "a", "type": "damage", "damage_mult": 1.5, "cooldown_beats": 2}])
|
skill_table.rows.assign([{"skill_id": "a", "display_name": "a", "type": "damage", "damage_mult": 1.5, "cooldown_beats": 2}])
|
||||||
Kit.check("加载校验拒绝:池普攻行数 ≠ 1(空池不可能前提)", _has_err_category(_db._validate_skill_pool_links(skill_table, enemy_table), "pool_composition"))
|
Kit.check("加载校验拒绝:池普攻行数 ≠ 1(空池不可能前提)", _has_err_category(ValidatorScript.new().validate_skill_pool_links(skill_table, enemy_table), "pool_composition"))
|
||||||
skill_table.rows.assign([
|
skill_table.rows.assign([
|
||||||
{"skill_id": "b1", "display_name": "b1", "type": "buff", "buff_ref": "empower", "buff_duration": 2, "cooldown_beats": 3},
|
{"skill_id": "b1", "display_name": "b1", "type": "buff", "buff_ref": "empower", "buff_duration": 2, "cooldown_beats": 3},
|
||||||
{"skill_id": "b2", "display_name": "b2", "type": "buff", "buff_ref": "fortify", "buff_duration": 2, "cooldown_beats": 4}])
|
{"skill_id": "b2", "display_name": "b2", "type": "buff", "buff_ref": "fortify", "buff_duration": 2, "cooldown_beats": 4}])
|
||||||
enemy_table.rows.assign([{"enemy_id": "x", "display_name": "x", "pool": [{"skill_id": "b1", "weight": 1}, {"skill_id": "b2", "weight": 1}]}])
|
enemy_table.rows.assign([{"enemy_id": "x", "display_name": "x", "pool": [{"skill_id": "b1", "weight": 1}, {"skill_id": "b2", "weight": 1}]}])
|
||||||
Kit.check("加载校验拒绝:池增益技 > 1(每池增益 ≤1 纪律)", _has_err_category(_db._validate_skill_pool_links(skill_table, enemy_table), "pool_composition"))
|
Kit.check("加载校验拒绝:池增益技 > 1(每池增益 ≤1 纪律)", _has_err_category(ValidatorScript.new().validate_skill_pool_links(skill_table, enemy_table), "pool_composition"))
|
||||||
skill_table.rows.assign([{"skill_id": "atk", "display_name": "a", "type": "basic", "damage_mult": 2.0, "cooldown_beats": 0}])
|
skill_table.rows.assign([{"skill_id": "atk", "display_name": "a", "type": "basic", "damage_mult": 2.0, "cooldown_beats": 0}])
|
||||||
Kit.check("加载校验拒绝:普攻配倍率 ≠ 1(域校验锁死)", not skill_table.validate().is_empty())
|
Kit.check("加载校验拒绝:普攻配倍率 ≠ 1(域校验锁死)", not skill_table.validate().is_empty())
|
||||||
skill_table.rows.assign([{"skill_id": "atk", "display_name": "a", "type": "basic", "cooldown_beats": 2}])
|
skill_table.rows.assign([{"skill_id": "atk", "display_name": "a", "type": "basic", "cooldown_beats": 2}])
|
||||||
@@ -890,7 +891,7 @@ func _smoke_skill_pool_validation_reject() -> void:
|
|||||||
{"skill_id": "w1", "display_name": "w1", "type": "debuff", "buff_ref": "off_guard", "buff_duration": 2, "cooldown_beats": 4},
|
{"skill_id": "w1", "display_name": "w1", "type": "debuff", "buff_ref": "off_guard", "buff_duration": 2, "cooldown_beats": 4},
|
||||||
{"skill_id": "w2", "display_name": "w2", "type": "debuff", "buff_ref": "off_guard", "buff_duration": 2, "cooldown_beats": 4}])
|
{"skill_id": "w2", "display_name": "w2", "type": "debuff", "buff_ref": "off_guard", "buff_duration": 2, "cooldown_beats": 4}])
|
||||||
enemy_table.rows.assign([{"enemy_id": "x", "display_name": "x", "pool": [{"skill_id": "w1", "weight": 1}, {"skill_id": "w2", "weight": 1}]}])
|
enemy_table.rows.assign([{"enemy_id": "x", "display_name": "x", "pool": [{"skill_id": "w1", "weight": 1}, {"skill_id": "w2", "weight": 1}]}])
|
||||||
Kit.check("加载校验拒绝:池妨害技 > 1(每池妨害 ≤1 纪律)", _has_err_category(_db._validate_skill_pool_links(skill_table, enemy_table), "pool_composition"))
|
Kit.check("加载校验拒绝:池妨害技 > 1(每池妨害 ≤1 纪律)", _has_err_category(ValidatorScript.new().validate_skill_pool_links(skill_table, enemy_table), "pool_composition"))
|
||||||
skill_table.rows.assign([{"skill_id": "w1", "display_name": "w1", "type": "debuff", "cooldown_beats": 4}])
|
skill_table.rows.assign([{"skill_id": "w1", "display_name": "w1", "type": "debuff", "cooldown_beats": 4}])
|
||||||
Kit.check("加载校验拒绝:妨害技缺 buff_ref(效果引用)", not skill_table.validate().is_empty())
|
Kit.check("加载校验拒绝:妨害技缺 buff_ref(效果引用)", not skill_table.validate().is_empty())
|
||||||
skill_table.rows.assign([{"skill_id": "d", "display_name": "d", "type": "damage", "damage_mult": 1.5, "rider_mult": 1.5, "cooldown_beats": 1}])
|
skill_table.rows.assign([{"skill_id": "d", "display_name": "d", "type": "damage", "damage_mult": 1.5, "rider_mult": 1.5, "cooldown_beats": 1}])
|
||||||
@@ -902,7 +903,7 @@ func _smoke_skill_pool_validation_reject() -> void:
|
|||||||
{"skill_id": "atk", "display_name": "a", "type": "basic", "cooldown_beats": 0},
|
{"skill_id": "atk", "display_name": "a", "type": "basic", "cooldown_beats": 0},
|
||||||
{"skill_id": "w1", "display_name": "w1", "type": "debuff", "buff_ref": "empower", "buff_duration": 2, "cooldown_beats": 4}])
|
{"skill_id": "w1", "display_name": "w1", "type": "debuff", "buff_ref": "empower", "buff_duration": 2, "cooldown_beats": 4}])
|
||||||
enemy_table.rows.assign([{"enemy_id": "x", "display_name": "x", "pool": [{"skill_id": "atk", "weight": 1}, {"skill_id": "w1", "weight": 1}]}])
|
enemy_table.rows.assign([{"enemy_id": "x", "display_name": "x", "pool": [{"skill_id": "atk", "weight": 1}, {"skill_id": "w1", "weight": 1}]}])
|
||||||
Kit.check("加载校验拒绝:妨害技引用敌方侧状态(施放类 side 守卫)", _has_err_category(_db._validate_skill_pool_links(skill_table, enemy_table, _db.combat.status_effects), "cast_side"))
|
Kit.check("加载校验拒绝:妨害技引用敌方侧状态(施放类 side 守卫)", _has_err_category(ValidatorScript.new().validate_skill_pool_links(skill_table, enemy_table, _db.combat.status_effects), "cast_side"))
|
||||||
|
|
||||||
|
|
||||||
func _has_err_category(errs: Array, category: String) -> bool:
|
func _has_err_category(errs: Array, category: String) -> bool:
|
||||||
|
|||||||
Reference in new issue
Block a user