- git mv 15 件本体;13 个引用文件 34 处路径同步+熵增闸 DESIGN_SUBDIRS 白名单同批改判 - 白名单漏改时熵增闸当场真红(子目录越界拦截能力实录验证),同步后全绿 - game/tests 三件套注释按用户特别授权批后主区直改(不入本批);reports/research 暂存档按吸收即死原则不改 - 文档域闸全绿:gdd_lint/doc_link/doc_term/流水线闸/熵增闸
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 个测试探针场景属测试基建,不入架构主干"
|
||
]
|
||
}
|
||
]
|
||
}
|