清理(退役效果词面·用户令直改): 删 9 个秘宝旧词形与零落点词面 bias_wallet 的词表登记(效果引擎词表 31→30); 连带清 MAGNITUDE_KINDS/REVEAL_KINDS/交叉字段校验、cell_removal 与 bonus_refresh 死分支、闭集计数断言、假数据件名、豁免清单与工具旧名映射; 旧概念名称与描述移入 design/content-archive/道具退役素材库.md 表一附; 体验验证清单/node-reward 举例改现役件; 待办条整条删除、roadmap 待编池去条、两份普查过程件退役。保留边界: 运行时叠加层键(真视红框/预读徽章/行动点)、table_structure_guard 守卫断言用词、退役指路句、四组封闭词表其余零订阅与预留埋点一项未动。本步凭据: 文档域闸【验收通过】无新增红; 冒烟测试 15 项 0 失败 PASS(三闸全过); 单元测试/系统测试/场景探针/静态扫描全绿; 渲染闸全绿(golden board 三屏 0.00%/菜单 0.67%/lmap 双 Shot 0.00%); 环境坑清偿=worktree 素材同步补拷 31 件+导入刷新、渲染闸 python3 指向 gamedev venv PIL。
This commit is contained in:
1 parent
7b6bbea9cf
commit
e34310de35
20 files changed
+56
-173
No files matched your search
@@ -16,15 +16,11 @@ extends Resource
|
||||
const UNLOCK_COUNTER_KEYS := ["adventure_cleared", "boss_kill_count", "vision_used"]
|
||||
|
||||
const DIMENSIONS := ["info", "risk", "action", "plan", "counter"]
|
||||
# enum 九 kind 全部条件触发/机制修正类;mine_reveal/ap_grant 语义不变。
|
||||
# cell_removal = 中立移除危险格通道;mine_hit_halve 系固定
|
||||
# 「减半」语义不消费 magnitude(反弹 N 由 reflect_damage 行 magnitude 承载)。
|
||||
# enum kind 全部条件触发/机制修正类;词面只收现役效果类型。
|
||||
# 主动件 kind 词族(reveal_tiles/preview/grant_ap/remove_mines/
|
||||
# refresh_pick——效果引擎 ACTIVE_KINDS 同名闭集);被动件不走 effect_kinds 词族
|
||||
# (passive 行走 triggers 事件订阅形态);旧词保留共存至迁移完成。
|
||||
const EFFECT_KINDS := ["mine_reveal", "reward_preview", "ap_grant",
|
||||
"mine_hit_halve", "reflect_damage", "ap_rounds_front", "ap_charge_safe", "cell_removal",
|
||||
"reward_weight_bias", "bonus_refresh",
|
||||
# (passive 行走 triggers 事件订阅形态)。
|
||||
const EFFECT_KINDS := ["ap_charge_safe",
|
||||
"reveal_tiles", "preview", "grant_ap", "remove_mines", "refresh_pick",
|
||||
# 以下八型:
|
||||
# 常时参数面六型(无事件订阅——开局/装板参数注入,注入面按装配集 kind 分发读取):
|
||||
@@ -45,12 +41,11 @@ const TIER_RANK := {"common": 1, "excellent": 2, "rare": 3, "legendary": 4}
|
||||
# 充能重置周期(现役仅 adventure=每冒险;battle=每战重置〔线香〕/level=每关重置〔天眼〕)
|
||||
const CHARGE_RESETS := ["adventure", "battle", "level"]
|
||||
# magnitude 消费面(≥1 校验):grant_ap 与同调 N 值 kind;其余 kind 活行 magnitude 恒 0
|
||||
const MAGNITUDE_KINDS := ["ap_grant", "reflect_damage", "ap_rounds_front",
|
||||
"ap_charge_safe", "reward_weight_bias", "bonus_refresh", "grant_ap",
|
||||
const MAGNITUDE_KINDS := ["ap_charge_safe", "grant_ap",
|
||||
"light_radius_bonus", "rap_transfer_mult", "dig_range_bonus", "seal_range_free",
|
||||
"refresh_stock_grant", "shop_refresh_bonus"]
|
||||
# 真视类 kind(护栏:活行 target 必须 ∈ {area_3x3, cell}:真视窄域 ≤3×3 契约)
|
||||
const REVEAL_KINDS := ["mine_reveal", "reveal_tiles"]
|
||||
const REVEAL_KINDS := ["reveal_tiles"]
|
||||
# 🔴 零裸 flat 结构护栏:行键白名单封闭(键出域=加载致命)——机制轴禁无条件属性加项的表结构承载
|
||||
const KEY_WHITELIST := ["item_id", "display_name", "dimension_tags", "effect_kinds", "target",
|
||||
"magnitude", "use_phase", "retired", "deferred", "form", "charges_per_adventure", "slot_cost",
|
||||
@@ -149,13 +144,13 @@ func _validate_row_active(row: Dictionary, iid: String, kind_seen: Dictionary) -
|
||||
if kind_seen.has(String(rv)) and not (target == "area_3x3" or target == "cell"):
|
||||
errs.append({"category": "load_bearing", "message": "%s 真视窄域护栏:%s 行 target 必须 area_3x3 或 cell,实得 %s(秘宝 GDD 结构冻结)" % [iid, String(rv), target]})
|
||||
# 承重护栏②board_wide 仅恢复推理类:全图域行禁替推理效果
|
||||
if target == "board_wide" and kind_seen.has("mine_reveal"):
|
||||
errs.append({"category": "load_bearing", "message": "%s board_wide 行 effect_kinds 不得含 mine_reveal(全图域仅恢复推理原料类——Alpha 重定后落位)" % iid})
|
||||
if target == "board_wide" and kind_seen.has("reveal_tiles"):
|
||||
errs.append({"category": "load_bearing", "message": "%s board_wide 行 effect_kinds 不得含 reveal_tiles(全图域仅恢复推理原料类——Alpha 重定后落位)" % iid})
|
||||
errs.append_array(_validate_row_magnitude(row, iid, kind_seen))
|
||||
return errs
|
||||
|
||||
|
||||
## N 值语义域:magnitude 越域与 MAGNITUDE_KINDS 行消费(≥1);其余活行恒 0(同调批 T1——消费面自 ap_grant 扩至 N 值 kind)
|
||||
## N 值语义域:magnitude 越域与 MAGNITUDE_KINDS 行消费(≥1);其余活行恒 0(同调批 T1——消费面覆盖 N 值 kind)
|
||||
func _validate_row_magnitude(row: Dictionary, iid: String, kind_seen: Dictionary) -> Array[Variant]:
|
||||
var errs: Array[Variant] = []
|
||||
var mag: int = int(row.get("magnitude", 0))
|
||||
@@ -233,10 +228,8 @@ func _validate_row_effect_numbers(row: Dictionary, iid: String, kind_seen: Dicti
|
||||
var eff_rounds: int = int(row.get("effective_rounds", 0))
|
||||
if eff_rounds < 0 or eff_rounds > 999:
|
||||
errs.append({"category": "domain", "message": "%s effective_rounds 越域 [0,999]: %d" % [iid, eff_rounds]})
|
||||
if kind_seen.has("ap_rounds_front") and eff_rounds < 1:
|
||||
errs.append({"category": "cross_field", "message": "%s ap_rounds_front 行 effective_rounds 应 ≥1(P4 甲表值化),实得 %d" % [iid, eff_rounds]})
|
||||
if not kind_seen.has("ap_rounds_front") and eff_rounds != 0 and not row.has("triggers"):
|
||||
errs.append({"category": "cross_field", "message": "%s 非 ap_rounds_front 行 effective_rounds 应 0(trigger 行=when value_from 取数源豁免),实得 %d" % [iid, eff_rounds]})
|
||||
if eff_rounds != 0 and not row.has("triggers"):
|
||||
errs.append({"category": "cross_field", "message": "%s 无 triggers 行 effective_rounds 应 0(trigger 行=when value_from 取数源豁免),实得 %d" % [iid, eff_rounds]})
|
||||
var charge_n: int = int(row.get("charge_n", 0))
|
||||
if charge_n < 0 or charge_n > 999:
|
||||
errs.append({"category": "domain", "message": "%s charge_n 越域 [0,999]: %d" % [iid, charge_n]})
|
||||
|
||||
Reference in new issue
Block a user