feat(迭代23-T1): 锻造工坊配置表落位——ForgeTable 新表(默认两轴常驻持有+六路线行族)+ConfigDB 访问器+V1/V11 单测 41 断言
- 新表 forge.tres(schema forge_table.gd):default_attack_type/armor_type 默认值(契约 2 所有权移交——hero.tres 两轴随后批删除)+routes 六行(sword/spear/staff/light/heavy/ward) - provisional 沿需求卡片 T1 锚表:cap 5/每级增量 +1/基础价 20×150%^n(20/30/45/67/101)/解锁价 200/甲型基础 AC 10-12-9/初始持有 sword+light/并联双通道前置 spear·staff←sword、heavy·ward←light - schema validate 22 类正反(行 id 唯一/类型轴分族枚举/恰六行/初始持有恰一武器一甲/默认轴=初始路线类型轴/前置类型相符…) - ConfigDB:TABLE_MANIFEST 登 forge+类型化持用+forge_route/forge_routes/forge_default_*/forge_weapon_route_by_type/forge_armor_route_by_type 访问器 - 新单测 forge_table_test 41 断言(V1 生产面+22 类负向/V11 行字段闭集+效果类型词表 31 钉现/V2 价格梯);run_all 22→23 套 - 事实订正(L2):卡片 F11「效果类型闭集 24」系 2026-10-07 旧快照——现行 31(iter20 +7/iter22 +1),本批零扩签钉 31 - 轻闸:冒烟 898/0 零扰动
This commit is contained in:
1 parent
b9cca33e9d
commit
df666ddf30
7 files changed
+477
No files matched your search
@@ -27,6 +27,7 @@ const TABLE_MANIFEST := {
|
||||
"treasure_items": "treasure_items.tres", # 迭代 7 T1 秘宝内容批(TreasureItemTable 六行——定义表 Rule 4 豁免;罗盘 retired/失义件 deferred 标记见 schema 头注)
|
||||
"adventure": "adventure.tres", # 冒险结构实现批 2026-09-21(AdventureTable 建表——大奖励与钥石行值单点)
|
||||
"feats": "feats.tres", # 迭代 12 T1 双层 BD 规则改写型特性基建(FeatTable 定义表 Rule 4 豁免——TreasureItemTable 先例;空表合法态=主时间线零扰动)
|
||||
"forge": "forge.tres", # 迭代 23 T1 锻造工坊实装批(ForgeTable——两根类型轴默认值+六路线行族;攻防所有权切分唯一数据面)
|
||||
}
|
||||
|
||||
var action_economy: ActionEconomyTable
|
||||
@@ -49,6 +50,7 @@ var meta_tree: MetaTreeTable # 迭代 12 T8 类型化持用(消费面走 tre
|
||||
var treasure_items: TreasureItemTable # 迭代 7 T1 类型化持用(消费面走 treasure_* 访问器)
|
||||
var adventure: AdventureTable
|
||||
var feats: FeatTable # 迭代 12 T1 类型化持用(消费面走 feat_* 访问器)
|
||||
var forge: ForgeTable # 迭代 23 T1 锻造工坊配置(默认两轴+六路线行族——消费面走 forge_* 访问器)
|
||||
|
||||
var is_ready := false
|
||||
var _diagnostics: Array[Dictionary] = [] # {severity, category, message}
|
||||
@@ -140,6 +142,7 @@ func load_tables(root: String, collect_only: bool) -> bool:
|
||||
treasure_items = loaded.get("treasure_items")
|
||||
adventure = loaded.get("adventure")
|
||||
feats = loaded.get("feats")
|
||||
forge = loaded.get("forge")
|
||||
meta_tree = loaded.get("meta_tree")
|
||||
is_ready = not has_errors
|
||||
return not has_errors
|
||||
@@ -387,6 +390,48 @@ func _meta_rows(family: String) -> Array:
|
||||
return arr if arr is Array else []
|
||||
|
||||
|
||||
# ---- 锻造工坊(迭代 23 T1——ForgeTable 消费面:两根类型轴默认值+六路线行族;禁自扫行集)----
|
||||
# 设计权威 design/gdd/systems/跨局循环/锻造工坊.md v0.6:默认值归本表常驻持有(hero.tres 两轴已删——
|
||||
# 契约 2);路线行族=攻防数值成长唯一数据面(契约 1)。数值全 provisional 归 M4。
|
||||
|
||||
# 两根类型轴默认值(表未落籍=裸体态兜底 normal/light——与 ForgeTable 缺省值同口径)
|
||||
func forge_default_attack_type() -> String:
|
||||
return String(forge.default_attack_type) if forge != null else "normal"
|
||||
|
||||
|
||||
func forge_default_armor_type() -> String:
|
||||
return String(forge.default_armor_type) if forge != null else "light"
|
||||
|
||||
|
||||
# 六路线行族(副本——调用方禁改)
|
||||
func forge_routes() -> Array:
|
||||
return forge.routes.duplicate() if forge != null else []
|
||||
|
||||
|
||||
# 路线行单点(键 route_id;缺行=空字典)
|
||||
func forge_route(route_id: String) -> Dictionary:
|
||||
for row in forge_routes():
|
||||
if String(row.get("route_id", "")) == route_id:
|
||||
return row
|
||||
return {}
|
||||
|
||||
|
||||
# 按类型轴反查武器路线(attack_type → 路线行;甲路线 id=甲型同值的显式化入口,避免消费侧依赖该巧合)
|
||||
func forge_weapon_route_by_type(attack_type: String) -> Dictionary:
|
||||
for row in forge_routes():
|
||||
if String(row.get("kind", "")) == "weapon" and String(row.get("type_axis", "")) == attack_type:
|
||||
return row
|
||||
return {}
|
||||
|
||||
|
||||
# 按类型轴反查护甲路线(armor_type → 路线行——入战 AC 三层之「甲型基础 AC」取数口)
|
||||
func forge_armor_route_by_type(armor_type: String) -> Dictionary:
|
||||
for row in forge_routes():
|
||||
if String(row.get("kind", "")) == "armor" and String(row.get("type_axis", "")) == armor_type:
|
||||
return row
|
||||
return {}
|
||||
|
||||
|
||||
# 技能行单点读取(敌人技能池批——单位容器执行上报 / 战斗结算兑现的消费面)
|
||||
func skill_row(skill_id: String) -> Dictionary:
|
||||
return skill.row_by_id(skill_id)
|
||||
|
||||
Reference in new issue
Block a user