- 术语表 v1.13:GP 唯一正式命名(删「局内金币」别名)+旗/控制词条更名封印/控制+封印定性由「插旗的对外表达」更正为正式动作名(全库统一、非比喻)+禁用字面从对外命名扩为全库+删「机制文档内部用语不受限」条款+退役词对照表补三行(金币→GP/插旗→封印/旗→封印印记)+危险格词条「被旗控制」→「被封印控制」+B3 豁免例举去旗 - 机检扩容 tools/doc_term_audit.py:RETIRED_TERMS 新增 金币→GP、插旗|标旗→封印 两行(DEFAULT_DIRS 不变,game/ 扫描归代码批);拔旗|撤旗行继任措辞随批换代(插旗不可逆→封印不可逆) - GDD 全域正文换代约 200 行/31 文件:金币→GP(金币袋→GP 袋)、插旗/标旗→封印、雷格/惩罚格→危险格(2026-10-11 退役批存量补扫)、旗概念→封印印记(旗判定→封印判定/标中旗→封印标中/标错旗→标错封印/旗格→封印格/旗位→封印位等复合词系);00-游戏概念「封印降级为类型风味词」定性翻转;修订记录/版本历史/禁令引举/更名记载等留档行零动 - registry/entities.yaml(信标网络可达性/事件序/回执驱动三处)+art 五件(art-bible 封印印记六处/comfyui 背旗→背负封印印记/两清单)+dev 七件(architecture 旗集→封印集/code-conventions-cases/test-conventions/架构图 html json 四件)随批换代 - tools 四脚本注释与图内标注换代(clear_dominance_audit/render_sample_sheet×2/analyze_playtest;代码标识符零动归代码批) - design/qa/代码术语审计报告-2026-10-18.md 随批入库(本批参考素材,06:578 引用闭合 doc_link 死链) - 06-待办清单/术语表两在途脏件(代码术语批 06 登记+A 表头「不用→禁用」)随批一并入库 自检:doc_term_audit --strict 零疑似现行(45 文件 434 命中全留档类);文档域六闸验收通过无新增红(gdd_lint R3 对 00 正文修订注记一次打回已去注记化改写;doc_link 死链经报告入库闭合);正文残留仅 06:73「拔旗」一处(件派生动词白名单豁免语境、机检同款豁免,设计意图记录不动)
699 lines
12 KiB
JSON
699 lines
12 KiB
JSON
{
|
||
"schema_version": 1,
|
||
"diagram_type": "architecture",
|
||
"meta": {
|
||
"title": "游戏代码实现架构(Godot 场景·脚本·运行时树)",
|
||
"output": "code-architecture.html",
|
||
"quality_profile": "showcase",
|
||
"locale": "zh-CN",
|
||
"viewBox": [
|
||
1320,
|
||
760
|
||
]
|
||
},
|
||
"components": [
|
||
{
|
||
"id": "config_db",
|
||
"type": "database",
|
||
"label": "ConfigDB 配置库",
|
||
"sublabel": "core/config_db.gd",
|
||
"pos": [
|
||
1140,
|
||
168
|
||
],
|
||
"size": [
|
||
140,
|
||
44
|
||
]
|
||
},
|
||
{
|
||
"id": "rng_service",
|
||
"type": "backend",
|
||
"label": "RngService 随机流",
|
||
"sublabel": "core/rng_service.gd",
|
||
"pos": [
|
||
1140,
|
||
222
|
||
],
|
||
"size": [
|
||
140,
|
||
44
|
||
]
|
||
},
|
||
{
|
||
"id": "main",
|
||
"type": "frontend",
|
||
"label": "组合根 Main",
|
||
"sublabel": "main.gd · 运行时建树",
|
||
"tag": "main.tscn",
|
||
"pos": [
|
||
480,
|
||
60
|
||
],
|
||
"size": [
|
||
200,
|
||
72
|
||
]
|
||
},
|
||
{
|
||
"id": "level_map",
|
||
"type": "frontend",
|
||
"label": "关卡地图屏",
|
||
"sublabel": "三停点选路",
|
||
"pos": [
|
||
1060,
|
||
60
|
||
],
|
||
"size": [
|
||
180,
|
||
70
|
||
],
|
||
"tag": "level_map_screen.gd"
|
||
},
|
||
{
|
||
"id": "stage",
|
||
"type": "frontend",
|
||
"label": "战斗展示区",
|
||
"sublabel": "站桩·回合·战斗日志",
|
||
"pos": [
|
||
40,
|
||
260
|
||
],
|
||
"size": [
|
||
170,
|
||
88
|
||
],
|
||
"tag": "battle_stage_view.gd"
|
||
},
|
||
{
|
||
"id": "hero",
|
||
"type": "frontend",
|
||
"label": "角色信息区",
|
||
"sublabel": "攻防·秘宝槽·特性",
|
||
"pos": [
|
||
250,
|
||
260
|
||
],
|
||
"size": [
|
||
170,
|
||
88
|
||
],
|
||
"tag": "hero_info_panel_view.gd"
|
||
},
|
||
{
|
||
"id": "board",
|
||
"type": "frontend",
|
||
"label": "棋盘区",
|
||
"sublabel": "棋盘·AP条·气泡·特效",
|
||
"pos": [
|
||
510,
|
||
260
|
||
],
|
||
"size": [
|
||
170,
|
||
88
|
||
],
|
||
"tag": "board_zone_view.gd"
|
||
},
|
||
{
|
||
"id": "shop_camp",
|
||
"type": "frontend",
|
||
"label": "商店·营地浮层",
|
||
"sublabel": "商品卡·三柜台",
|
||
"pos": [
|
||
730,
|
||
260
|
||
],
|
||
"size": [
|
||
170,
|
||
88
|
||
],
|
||
"tag": "ui_assembler.gd 拼装"
|
||
},
|
||
{
|
||
"id": "settle",
|
||
"type": "frontend",
|
||
"label": "结算特效",
|
||
"sublabel": "跨区飞行演出",
|
||
"pos": [
|
||
918,
|
||
260
|
||
],
|
||
"size": [
|
||
170,
|
||
88
|
||
],
|
||
"tag": "settlement_fx_view.gd"
|
||
},
|
||
{
|
||
"id": "pause",
|
||
"type": "frontend",
|
||
"label": "状态面板",
|
||
"sublabel": "只读入口",
|
||
"pos": [
|
||
120,
|
||
420
|
||
],
|
||
"size": [
|
||
152,
|
||
56
|
||
],
|
||
"tag": "status_panel.gd"
|
||
},
|
||
{
|
||
"id": "settings",
|
||
"type": "frontend",
|
||
"label": "设置浮层",
|
||
"sublabel": "音量·全屏·减动效",
|
||
"pos": [
|
||
288,
|
||
420
|
||
],
|
||
"size": [
|
||
152,
|
||
56
|
||
],
|
||
"tag": "settings_overlay.gd"
|
||
},
|
||
{
|
||
"id": "career",
|
||
"type": "frontend",
|
||
"label": "生涯浮层",
|
||
"sublabel": "六类九项汇总",
|
||
"pos": [
|
||
464,
|
||
420
|
||
],
|
||
"size": [
|
||
152,
|
||
56
|
||
],
|
||
"tag": "career_overlay.gd"
|
||
},
|
||
{
|
||
"id": "curio",
|
||
"type": "frontend",
|
||
"label": "三选一浮层",
|
||
"sublabel": "通关停点·三卡点选",
|
||
"pos": [
|
||
632,
|
||
420
|
||
],
|
||
"size": [
|
||
152,
|
||
56
|
||
],
|
||
"tag": "curio_pick_overlay.gd"
|
||
},
|
||
{
|
||
"id": "confirm",
|
||
"type": "frontend",
|
||
"label": "确认对话框",
|
||
"sublabel": "通用确认弹窗",
|
||
"pos": [
|
||
800,
|
||
420
|
||
],
|
||
"size": [
|
||
152,
|
||
56
|
||
],
|
||
"tag": "confirm_dialog.gd"
|
||
},
|
||
{
|
||
"id": "debug",
|
||
"type": "frontend",
|
||
"label": "调试浮窗",
|
||
"sublabel": "DS_DEBUG 门控",
|
||
"pos": [
|
||
968,
|
||
420
|
||
],
|
||
"size": [
|
||
152,
|
||
56
|
||
],
|
||
"tag": "debug_overlay.gd"
|
||
},
|
||
{
|
||
"id": "save",
|
||
"type": "database",
|
||
"label": "存档管理",
|
||
"pos": [
|
||
96,
|
||
554
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "save_manager.gd"
|
||
},
|
||
{
|
||
"id": "meta",
|
||
"type": "database",
|
||
"label": "元进度",
|
||
"pos": [
|
||
244,
|
||
554
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "meta_progression.gd"
|
||
},
|
||
{
|
||
"id": "orch",
|
||
"type": "backend",
|
||
"label": "战斗编排器",
|
||
"pos": [
|
||
383,
|
||
554
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "battle_orchestrator.gd"
|
||
},
|
||
{
|
||
"id": "rules",
|
||
"type": "backend",
|
||
"label": "扫雷规则",
|
||
"pos": [
|
||
540,
|
||
554
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "minesweeper_rules.gd"
|
||
},
|
||
{
|
||
"id": "boardgen",
|
||
"type": "backend",
|
||
"label": "棋盘生成",
|
||
"pos": [
|
||
688,
|
||
554
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "board_generator.gd"
|
||
},
|
||
{
|
||
"id": "boarddata",
|
||
"type": "database",
|
||
"label": "棋盘数据",
|
||
"pos": [
|
||
836,
|
||
554
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "board_data.gd"
|
||
},
|
||
{
|
||
"id": "effects",
|
||
"type": "backend",
|
||
"label": "效果引擎",
|
||
"pos": [
|
||
984,
|
||
554
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "effect_engine.gd"
|
||
},
|
||
{
|
||
"id": "adventure",
|
||
"type": "backend",
|
||
"label": "冒险运行器",
|
||
"pos": [
|
||
1132,
|
||
554
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "adventure_runner.gd"
|
||
},
|
||
{
|
||
"id": "levelrun",
|
||
"type": "backend",
|
||
"label": "关卡运行器",
|
||
"pos": [
|
||
96,
|
||
616
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "level_runner.gd"
|
||
},
|
||
{
|
||
"id": "dmgctl",
|
||
"type": "backend",
|
||
"label": "伤害控制",
|
||
"pos": [
|
||
244,
|
||
616
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "damage_controller.gd"
|
||
},
|
||
{
|
||
"id": "dgmath",
|
||
"type": "backend",
|
||
"label": "伤害公式",
|
||
"pos": [
|
||
392,
|
||
616
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "damage_math.gd"
|
||
},
|
||
{
|
||
"id": "reward",
|
||
"type": "backend",
|
||
"label": "奖励经济",
|
||
"pos": [
|
||
540,
|
||
616
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "reward_economy.gd"
|
||
},
|
||
{
|
||
"id": "lottery",
|
||
"type": "backend",
|
||
"label": "技能抽奖",
|
||
"pos": [
|
||
688,
|
||
616
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "skill_lottery.gd"
|
||
},
|
||
{
|
||
"id": "attune",
|
||
"type": "backend",
|
||
"label": "同调",
|
||
"pos": [
|
||
836,
|
||
616
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "attunement.gd"
|
||
},
|
||
{
|
||
"id": "action",
|
||
"type": "backend",
|
||
"label": "行动经济",
|
||
"pos": [
|
||
984,
|
||
616
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "action_economy.gd"
|
||
},
|
||
{
|
||
"id": "feats",
|
||
"type": "backend",
|
||
"label": "特长引擎",
|
||
"pos": [
|
||
1132,
|
||
616
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "feats_engine.gd"
|
||
},
|
||
{
|
||
"id": "status",
|
||
"type": "backend",
|
||
"label": "状态容器",
|
||
"pos": [
|
||
96,
|
||
678
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "status_container.gd"
|
||
},
|
||
{
|
||
"id": "units",
|
||
"type": "backend",
|
||
"label": "单位容器",
|
||
"pos": [
|
||
244,
|
||
678
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "unit_container.gd"
|
||
},
|
||
{
|
||
"id": "treasure",
|
||
"type": "database",
|
||
"label": "秘宝数据",
|
||
"pos": [
|
||
392,
|
||
678
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "treasure_items.gd"
|
||
},
|
||
{
|
||
"id": "resolver",
|
||
"type": "backend",
|
||
"label": "配置解析",
|
||
"pos": [
|
||
540,
|
||
678
|
||
],
|
||
"size": [
|
||
130,
|
||
48
|
||
],
|
||
"sublabel": "config_db_resolver.gd"
|
||
},
|
||
{
|
||
"id": "xvalid",
|
||
"type": "backend",
|
||
"label": "配置交叉校验",
|
||
"pos": [
|
||
688,
|
||
678
|
||
],
|
||
"size": [
|
||
170,
|
||
48
|
||
],
|
||
"sublabel": "config_db_cross_validator.gd"
|
||
}
|
||
],
|
||
"boundaries": [
|
||
{
|
||
"kind": "region",
|
||
"label": "战斗主界面(UiAssembler 拼装)",
|
||
"wraps": [
|
||
"stage",
|
||
"hero",
|
||
"board",
|
||
"shop_camp",
|
||
"settle"
|
||
]
|
||
},
|
||
{
|
||
"kind": "region",
|
||
"label": "浮层与对话框(组合根挂载)",
|
||
"wraps": [
|
||
"pause",
|
||
"settings",
|
||
"career",
|
||
"curio",
|
||
"confirm",
|
||
"debug"
|
||
]
|
||
},
|
||
{
|
||
"kind": "region",
|
||
"label": "逻辑层 core/(21 件·名称清单)",
|
||
"wraps": [
|
||
"save",
|
||
"meta",
|
||
"orch",
|
||
"rules",
|
||
"boardgen",
|
||
"boarddata",
|
||
"effects",
|
||
"adventure",
|
||
"levelrun",
|
||
"dmgctl",
|
||
"dgmath",
|
||
"reward",
|
||
"lottery",
|
||
"attune",
|
||
"action",
|
||
"feats",
|
||
"status",
|
||
"units",
|
||
"treasure",
|
||
"resolver",
|
||
"xvalid"
|
||
]
|
||
}
|
||
],
|
||
"connections": [
|
||
{
|
||
"id": "main-stage",
|
||
"from": "main",
|
||
"to": "stage",
|
||
"fromSide": "bottom",
|
||
"toSide": "top"
|
||
},
|
||
{
|
||
"id": "main-hero",
|
||
"from": "main",
|
||
"to": "hero",
|
||
"fromSide": "bottom",
|
||
"toSide": "top"
|
||
},
|
||
{
|
||
"id": "board-main",
|
||
"from": "board",
|
||
"to": "main",
|
||
"label": "翻开·封印·和弦",
|
||
"fromSide": "top",
|
||
"toSide": "bottom"
|
||
},
|
||
{
|
||
"id": "hero-board",
|
||
"from": "hero",
|
||
"to": "board",
|
||
"label": "秘宝两步交互",
|
||
"fromSide": "right",
|
||
"toSide": "left"
|
||
},
|
||
{
|
||
"id": "main-save",
|
||
"from": "main",
|
||
"to": "save",
|
||
"label": "存档读写",
|
||
"variant": "dashed",
|
||
"fromSide": "left",
|
||
"toSide": "top",
|
||
"via": [
|
||
[
|
||
28,
|
||
96
|
||
],
|
||
[
|
||
28,
|
||
512
|
||
],
|
||
[
|
||
161,
|
||
512
|
||
]
|
||
],
|
||
"labelSegment": 0
|
||
},
|
||
{
|
||
"id": "orch-stage",
|
||
"from": "orch",
|
||
"to": "stage",
|
||
"label": "结算回流",
|
||
"variant": "emphasis",
|
||
"fromSide": "top",
|
||
"toSide": "bottom",
|
||
"via": [
|
||
[
|
||
448,
|
||
376
|
||
],
|
||
[
|
||
125,
|
||
376
|
||
]
|
||
],
|
||
"labelSegment": 1
|
||
},
|
||
{
|
||
"id": "main-levelmap",
|
||
"from": "main",
|
||
"to": "level_map",
|
||
"label": "挂载",
|
||
"fromSide": "right",
|
||
"toSide": "left"
|
||
}
|
||
],
|
||
"cards": [
|
||
{
|
||
"dot": "cyan",
|
||
"title": "组合根与建树",
|
||
"items": [
|
||
"main.tscn 全场景仅 1 个节点,整棵界面树由 main.gd 运行时搭建(1392 行)",
|
||
"战斗界面由 UiAssembler 拼装;商店/营地浮层即拼装于战斗根内",
|
||
"元进度账本与存档同由组合根持有(main.gd preload)"
|
||
]
|
||
},
|
||
{
|
||
"dot": "emerald",
|
||
"title": "战斗动作链",
|
||
"items": [
|
||
"棋盘区 翻开/封印/和弦 → 组合根 → 战斗编排器规则判定",
|
||
"结算回流:血量攻防→角色信息区 · 受击演出→展示区 · AP 扣减与提示→棋盘区",
|
||
"秘宝槽点击走两步交互:角色信息区 → 棋盘区/即刻生效"
|
||
]
|
||
},
|
||
{
|
||
"dot": "rose",
|
||
"title": "逻辑层与边界",
|
||
"items": [
|
||
"core/ 21 件仅列名称,源码出处见各节点 sources 指针",
|
||
"ConfigDB/RngService 两单例经 project.godot autoload 全局供给",
|
||
"smoke/ 下 13 个测试探针场景属测试基建,不入架构主干"
|
||
]
|
||
}
|
||
]
|
||
}
|