chore: W1 项目骨架 — 基线 v1.0 架构落盘(Godot 4.7.2 / gl_compatibility)

架构基线:docs/architecture/2026-10-19-F-architecture.md(v1.0)
范围:WRATH OF THE DEAD《怨返》单人挂机 · GDScript · 1280×720 · 12 班底数据驱动

- 骨架:project.godot(4.7 + GL Compatibility)、架构 §2.1 完整目录树(含占位说明)、
  .gitignore/.gitattributes(LF 纪律)、README.md、CLAUDE.md、export_presets.cfg 占位、
  pipeline/README.md(3ds Max 侧契约)
- 数据管线段 1:data/sheets/generators.csv(GDD §3.1 十二班底逐值抄录)
  + data/schema/generators.schema.json(v0)+ src/tools/sheet_importer.gd
  (import_all/import_sheet/validate + ImportReport + .tres stub + 行号/列名/原因失败策略)
  + src/tools/import_main.gd(CI CLI 入口)+ data/build/generators.json(字节级确定性产物)
- 探针:P1(SCREEN_TEXTURE/CanvasLayer 排序)与 P3(NoiseTexture2D seamless)场景代码与
  截图/统计工具;实测手册与结论模板在工作区 docs/engineering/(随仓库外文档树)
- CI:数据门激活(import_all + schema validate + build 漂移门);单测/sim/导出 W3+ 注释占位;
  4.7.2 headless CLI 行为标注待本机验证

待用户侧:P1/P3 实测回填结论;P6 字体许可 / P7 GPU 实测;look-dev 游魂初版(Max 侧)
This commit is contained in:
程基岩(engineering-lead) committed 2026-10-19 15:13:10 +08:00
commit 856326a766
42 files changed
+1814

No files matched your search

+149
View File
@@ -0,0 +1,149 @@
{
"sheet": "generators",
"schema_version": 0,
"columns": [
"id",
"display_cn",
"display_en",
"base_cost",
"cost_ratio",
"base_rate",
"unlock_hall",
"unlock_gate",
"sprite_row"
],
"rows": [
{
"id": "gen_01_youhun",
"display_cn": "游魂",
"display_en": "Wandering Souls",
"base_cost": 15,
"cost_ratio": 1.13,
"base_rate": 0.1,
"unlock_hall": "none",
"unlock_gate": "none",
"sprite_row": "res://assets/sprites/units/gen_01_youhun"
},
{
"id": "gen_02_yinbing",
"display_cn": "阴兵",
"display_en": "Ghost Soldiers",
"base_cost": 120,
"cost_ratio": 1.14,
"base_rate": 1,
"unlock_hall": "none",
"unlock_gate": "none",
"sprite_row": "res://assets/sprites/units/gen_02_yinbing"
},
{
"id": "gen_03_guizu",
"display_cn": "鬼卒班",
"display_en": "Ghost Constables",
"base_cost": 1200,
"cost_ratio": 1.15,
"base_rate": 8,
"unlock_hall": "hall_01_qinguang",
"unlock_gate": "up_gate_guizu",
"sprite_row": "res://assets/sprites/units/gen_03_guizu"
},
{
"id": "gen_04_biliao",
"display_cn": "勾魂笔僚",
"display_en": "Death-Scribe Clerks",
"base_cost": 12000,
"cost_ratio": 1.15,
"base_rate": 50,
"unlock_hall": "hall_02_chujiang",
"unlock_gate": "up_gate_biliao",
"sprite_row": "res://assets/sprites/units/gen_04_biliao"
},
{
"id": "gen_05_tangpu",
"display_cn": "孟婆汤铺",
"display_en": "Meng Po's Soup Stall",
"base_cost": 120000,
"cost_ratio": 1.16,
"base_rate": 400,
"unlock_hall": "hall_03_songdi",
"unlock_gate": "up_gate_tangpu",
"sprite_row": "res://assets/sprites/units/gen_05_tangpu"
},
{
"id": "gen_06_nanmin",
"display_cn": "枉死城难民团",
"display_en": "Refugee Camp of the Wrongfully Dead",
"base_cost": 1200000,
"cost_ratio": 1.16,
"base_rate": 3000,
"unlock_hall": "hall_04_wuguan",
"unlock_gate": "up_gate_nanmin",
"sprite_row": "res://assets/sprites/units/gen_06_nanmin"
},
{
"id": "gen_07_shuban",
"display_cn": "阴律司书办",
"display_en": "Clerks of the Nether Court",
"base_cost": 12000000,
"cost_ratio": 1.17,
"base_rate": 24000,
"unlock_hall": "hall_05_yama",
"unlock_gate": "up_gate_shuban",
"sprite_row": "res://assets/sprites/units/gen_07_shuban"
},
{
"id": "gen_08_bingfang",
"display_cn": "幽都兵坊",
"display_en": "Armory of the Dark Capital",
"base_cost": 120000000,
"cost_ratio": 1.17,
"base_rate": 180000,
"unlock_hall": "hall_06_biancheng",
"unlock_gate": "up_gate_bingfang",
"sprite_row": "res://assets/sprites/units/gen_08_bingfang"
},
{
"id": "gen_09_wodi",
"display_cn": "十殿卧底",
"display_en": "Sleeper Agents in the Ten Courts",
"base_cost": 1200000000,
"cost_ratio": 1.18,
"base_rate": 1400000,
"unlock_hall": "hall_07_taishan",
"unlock_gate": "up_gate_wodi",
"sprite_row": "res://assets/sprites/units/gen_09_wodi"
},
{
"id": "gen_10_xingzhe",
"display_cn": "轮回裂隙行者",
"display_en": "Rift Walkers of the Wheel",
"base_cost": 12000000000,
"cost_ratio": 1.18,
"base_rate": 11000000,
"unlock_hall": "hall_08_dushi",
"unlock_gate": "up_gate_xingzhe",
"sprite_row": "res://assets/sprites/units/gen_10_xingzhe"
},
{
"id": "gen_11_yinhun",
"display_cn": "六道引魂人",
"display_en": "Soul Guides of the Six Paths",
"base_cost": 120000000000,
"cost_ratio": 1.19,
"base_rate": 85000000,
"unlock_hall": "hall_09_pingdeng",
"unlock_gate": "up_gate_yinhun",
"sprite_row": "res://assets/sprites/units/gen_11_yinhun"
},
{
"id": "gen_12_tianzi",
"display_cn": "幽冥天子",
"display_en": "Emperor of the Netherworld",
"base_cost": 1200000000000,
"cost_ratio": 1.2,
"base_rate": 650000000,
"unlock_hall": "none",
"unlock_gate": "up_gate_tianzi",
"sprite_row": "res://assets/sprites/units/gen_12_tianzi"
}
]
}
+84
View File
@@ -0,0 +1,84 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "generators.schema.json",
"title": "generators 表 schema v0(十二班底发生器,数值抄录自 GDD §3.1)",
"description": "架构 §3.2 CSV 规范落盘。数值列禁千分位;引用列填目标 ID 或 none;ID 一旦分配永不重编号。v0 仅做单表校验:unlock_hall/unlock_gate 引用的 halls.csv / upgrades.csv 目标表 W2 落盘,届时激活跨表引用完整性校验。",
"x-supported-keywords": [
"type", "properties", "required", "items", "enum", "pattern",
"minimum", "maximum", "minLength", "minItems", "maxItems",
"additionalProperties", "const"
],
"x-unique": ["id"],
"type": "object",
"required": ["sheet", "schema_version", "columns", "rows"],
"properties": {
"sheet": { "const": "generators" },
"schema_version": { "const": 0 },
"columns": {
"type": "array",
"items": { "type": "string" },
"minItems": 9
},
"rows": {
"type": "array",
"minItems": 12,
"items": {
"type": "object",
"required": [
"id", "display_cn", "display_en", "base_cost",
"cost_ratio", "base_rate", "unlock_hall", "unlock_gate", "sprite_row"
],
"properties": {
"id": {
"type": "string",
"pattern": "^gen_[0-9]{2}_[a-z0-9]+$",
"description": "稳定字符串 ID;永不重编号、永不复用(年更=加行)"
},
"display_cn": {
"type": "string",
"minLength": 1,
"description": "简体名(GDD §3.1 班底名)"
},
"display_en": {
"type": "string",
"minLength": 1,
"description": "英文名——W1 工程侧临时译名,待文策渊按 GDD §8.4 glossary 口径确认后回填"
},
"base_cost": {
"type": "number",
"minimum": 1,
"description": "C0(GDD §3.1);整数写法,禁千分位与 K/M/B/T 后缀"
},
"cost_ratio": {
"type": "number",
"minimum": 1,
"maximum": 2,
"description": "r(1.13→1.20,GDD §3.1)"
},
"base_rate": {
"type": "number",
"minimum": 0,
"description": "rate/s(GDD §3.1);阴德/秒"
},
"unlock_hall": {
"type": "string",
"pattern": "^(none|hall_[0-9]{2}_[a-z]+)$",
"description": "殿门闸门 ID(halls.csv 行 ID)或 none"
},
"unlock_gate": {
"type": "string",
"pattern": "^(none|up_gate_[a-z0-9_]+)$",
"description": "路引闸门 ID(upgrades.csv 行 ID)或 none;gen_12 的敕封前置(宿慧≥60 且转世≥2)属 upgrades.csv 行内规则,W2 建模"
},
"sprite_row": {
"type": "string",
"pattern": "^res://assets/sprites/[a-z_]+/[a-z0-9_]+$",
"description": "★ ADR-3:唯一允许的逐资产代码 = sprite 路径前缀(Max 侧命名 <unit_id>_<l|r>_<frame>.png)"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
+13
View File
@@ -0,0 +1,13 @@
id,display_cn,display_en,base_cost,cost_ratio,base_rate,unlock_hall,unlock_gate,sprite_row
gen_01_youhun,游魂,Wandering Souls,15,1.13,0.1,none,none,res://assets/sprites/units/gen_01_youhun
gen_02_yinbing,阴兵,Ghost Soldiers,120,1.14,1,none,none,res://assets/sprites/units/gen_02_yinbing
gen_03_guizu,鬼卒班,Ghost Constables,1200,1.15,8,hall_01_qinguang,up_gate_guizu,res://assets/sprites/units/gen_03_guizu
gen_04_biliao,勾魂笔僚,Death-Scribe Clerks,12000,1.15,50,hall_02_chujiang,up_gate_biliao,res://assets/sprites/units/gen_04_biliao
gen_05_tangpu,孟婆汤铺,Meng Po's Soup Stall,120000,1.16,400,hall_03_songdi,up_gate_tangpu,res://assets/sprites/units/gen_05_tangpu
gen_06_nanmin,枉死城难民团,Refugee Camp of the Wrongfully Dead,1200000,1.16,3000,hall_04_wuguan,up_gate_nanmin,res://assets/sprites/units/gen_06_nanmin
gen_07_shuban,阴律司书办,Clerks of the Nether Court,12000000,1.17,24000,hall_05_yama,up_gate_shuban,res://assets/sprites/units/gen_07_shuban
gen_08_bingfang,幽都兵坊,Armory of the Dark Capital,120000000,1.17,180000,hall_06_biancheng,up_gate_bingfang,res://assets/sprites/units/gen_08_bingfang
gen_09_wodi,十殿卧底,Sleeper Agents in the Ten Courts,1200000000,1.18,1400000,hall_07_taishan,up_gate_wodi,res://assets/sprites/units/gen_09_wodi
gen_10_xingzhe,轮回裂隙行者,Rift Walkers of the Wheel,12000000000,1.18,11000000,hall_08_dushi,up_gate_xingzhe,res://assets/sprites/units/gen_10_xingzhe
gen_11_yinhun,六道引魂人,Soul Guides of the Six Paths,120000000000,1.19,85000000,hall_09_pingdeng,up_gate_yinhun,res://assets/sprites/units/gen_11_yinhun
gen_12_tianzi,幽冥天子,Emperor of the Netherworld,1200000000000,1.20,650000000,none,up_gate_tianzi,res://assets/sprites/units/gen_12_tianzi
1 id display_cn display_en base_cost cost_ratio base_rate unlock_hall unlock_gate sprite_row
2 gen_01_youhun 游魂 Wandering Souls 15 1.13 0.1 none none res://assets/sprites/units/gen_01_youhun
3 gen_02_yinbing 阴兵 Ghost Soldiers 120 1.14 1 none none res://assets/sprites/units/gen_02_yinbing
4 gen_03_guizu 鬼卒班 Ghost Constables 1200 1.15 8 hall_01_qinguang up_gate_guizu res://assets/sprites/units/gen_03_guizu
5 gen_04_biliao 勾魂笔僚 Death-Scribe Clerks 12000 1.15 50 hall_02_chujiang up_gate_biliao res://assets/sprites/units/gen_04_biliao
6 gen_05_tangpu 孟婆汤铺 Meng Po's Soup Stall 120000 1.16 400 hall_03_songdi up_gate_tangpu res://assets/sprites/units/gen_05_tangpu
7 gen_06_nanmin 枉死城难民团 Refugee Camp of the Wrongfully Dead 1200000 1.16 3000 hall_04_wuguan up_gate_nanmin res://assets/sprites/units/gen_06_nanmin
8 gen_07_shuban 阴律司书办 Clerks of the Nether Court 12000000 1.17 24000 hall_05_yama up_gate_shuban res://assets/sprites/units/gen_07_shuban
9 gen_08_bingfang 幽都兵坊 Armory of the Dark Capital 120000000 1.17 180000 hall_06_biancheng up_gate_bingfang res://assets/sprites/units/gen_08_bingfang
10 gen_09_wodi 十殿卧底 Sleeper Agents in the Ten Courts 1200000000 1.18 1400000 hall_07_taishan up_gate_wodi res://assets/sprites/units/gen_09_wodi
11 gen_10_xingzhe 轮回裂隙行者 Rift Walkers of the Wheel 12000000000 1.18 11000000 hall_08_dushi up_gate_xingzhe res://assets/sprites/units/gen_10_xingzhe
12 gen_11_yinhun 六道引魂人 Soul Guides of the Six Paths 120000000000 1.19 85000000 hall_09_pingdeng up_gate_yinhun res://assets/sprites/units/gen_11_yinhun
13 gen_12_tianzi 幽冥天子 Emperor of the Netherworld 1200000000000 1.20 650000000 none up_gate_tianzi res://assets/sprites/units/gen_12_tianzi