feat(迭代24): N3 敌方attack_type轴开列——20行全填normal+schema枚举校验+单位快照+开单传值+敌方结算克制消费点(卡片§2漏项,V5矩阵证词强制)+V5四断言(冒烟949/0)

This commit is contained in:
DKChan committed 2026-10-13 07:14:58 +08:00
1 parent 26d669f83d
commit ab3ba4f4a0
6 files changed
+109 -9

No files matched your search

+9
View File
@@ -17,6 +17,11 @@ extends Resource
# 2026-09-15 命名统一批:位置键 {none, a, b} → 语义键 {light, ward, heavy} = 轻甲 / 魔法护甲 / 重甲)
const ARMOR_TYPES := ["light", "ward", "heavy"]
# 攻击类型封闭枚举(迭代 24 N3 2026-10-13——敌方攻击类型轴开列,承接锻造工坊迁移面⑥;
# 克制矩阵点数制键前缀 = 本枚举:normal → light 0 / ward +1 / heavy −1;pierce/magic 为差异化
# 预留档,差异化填值属新设计另立项。可省略 + 缺省 normal 向后兼容)
const ATTACK_TYPES := ["normal", "pierce", "magic"]
# 实例化数量域(2026-10-02 修复批 T2 魔法数结构化——数量域 [1,3] 双落点收口单点:
# 本表 validate 与 单位容器 spawn 守卫共用;遭遇骰结果与行值 unit_count/unit_count_max 同域。
# 2026-10-07 行集多行批:MAX 语义 = **单种数**(单行实例数上限),行集实例总数 ≤4 另由
@@ -111,6 +116,10 @@ func validate() -> Array:
var at: String = String(row.get("armor_type", "light"))
if not ARMOR_TYPES.has(at):
errs.append({"category": "enum", "message": "%s armor_type 未知枚举: %s(域 {light, ward, heavy})" % [eid, at]})
# attack_type(迭代 24 N3——可省略,缺省 normal 向后兼容;写法沿用 armor_type 同款)
var att: String = String(row.get("attack_type", "normal"))
if not ATTACK_TYPES.has(att):
errs.append({"category": "enum", "message": "%s attack_type 未知枚举: %s(域 {normal, pierce, magic})" % [eid, att]})
# armor_class(可省略——缺省 0 向后兼容;2026-09-16 护甲等级掷点批:防守方掷点判定阈值基数)
var ac: int = int(row.get("armor_class", 0))
if ac < 0 or ac > 999:
+24 -1
View File
@@ -22,6 +22,7 @@ rows = [{
"skill_id": "lunge",
"weight": 1
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 0
}, {
@@ -42,6 +43,7 @@ rows = [{
"skill_id": "lunge",
"weight": 1
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 1
}, {
@@ -64,6 +66,7 @@ rows = [{
"skill_id": "heavy",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 2
}, {
@@ -87,6 +90,7 @@ rows = [{
"skill_id": "heavy",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 2
}, {
@@ -113,6 +117,7 @@ rows = [{
"weight": 2,
"unlock_hp_pct": 50
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 8
}, {
@@ -135,7 +140,8 @@ rows = [{
"skill_id": "heavy",
"weight": 2
}],
"armor_type": "light",
"attack_type": "normal",
"armor_type": "light",
"armor_class": 1
}, {
"level_index": 2,
@@ -158,6 +164,7 @@ rows = [{
"skill_id": "heavy",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 2
}, {
@@ -180,6 +187,7 @@ rows = [{
"skill_id": "charge",
"weight": 1
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 2
}, {
@@ -202,6 +210,7 @@ rows = [{
"skill_id": "heavy",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 8
}, {
@@ -228,6 +237,7 @@ rows = [{
"skill_id": "venom_spit",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 2
}, {
@@ -254,6 +264,7 @@ rows = [{
"skill_id": "venom_spit",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 2
}, {
@@ -280,6 +291,7 @@ rows = [{
"skill_id": "venom_spit",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 3
}, {
@@ -309,6 +321,7 @@ rows = [{
"weight": 2,
"unlock_hp_pct": 50
}],
"attack_type": "normal",
"armor_type": "ward",
"armor_class": 10
}, {
@@ -334,6 +347,7 @@ rows = [{
"skill_id": "shield_bash",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "heavy",
"armor_class": 2
}, {
@@ -356,6 +370,7 @@ rows = [{
"skill_id": "charge",
"weight": 1
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 3
}, {
@@ -379,6 +394,7 @@ rows = [{
"skill_id": "charge",
"weight": 1
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 3
}, {
@@ -404,6 +420,7 @@ rows = [{
"skill_id": "shield_bash",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "heavy",
"armor_class": 9
}, {
@@ -427,6 +444,7 @@ rows = [{
"skill_id": "charge",
"weight": 1
}],
"attack_type": "normal",
"armor_type": "light",
"armor_class": 3
}, {
@@ -453,6 +471,7 @@ rows = [{
"skill_id": "shield_bash",
"weight": 2
}],
"attack_type": "normal",
"armor_type": "heavy",
"armor_class": 4
}, {
@@ -479,6 +498,7 @@ rows = [{
"weight": 2,
"unlock_hp_pct": 50
}],
"attack_type": "normal",
"armor_type": "heavy",
"armor_class": 12
}]
@@ -646,3 +666,6 @@ rows = [{
; 2026-09-24 阶名化解方案((1,3) 改名大地精以阶名归位化解同族血量倒挂观感)实机验证未达预期,按体验反馈重裁:
; 第一关总量曲线 12/10/50/35/72 的 5 倍墙消除(22 后曲线 12/10/22/35/72 相邻比最大 2.2);敌种 bugbear/池/数量/atk 区间零改动。
; 曲线标定其余行归 M4 数值批。
; N3 敌方攻击类型轴开列(2026-10-13 迭代 24 卡①,承接锻造工坊实装批迁移面⑥):20 行全填 normal 挂敌种行——
; 不做差异化(pierce/magic 属新设计另立项)。全局平移效应=主角穿重甲受伤 −1 / 魔法护甲 +1 / 轻甲 0,
; 锻造甲路线首次具备战斗意义;克制矩阵数值零触碰(settlement.tres armor_effectiveness 不改)。