merge: 代码实现架构图合入主干(2026-10-09 用户目检通过——code-architecture HTML+JSON 两件落 design/dev/architecture/;worktree g-plan2-codearch 分支 codearch-diagram 7974e4a 交付,showcase 9/9 闸+三视口无溢出+视觉判官四轮 4/4 pass)

This commit is contained in:
DKChan committed 2026-10-09 16:18:39 +08:00
commit f92d3796b8
2 files changed
+16020

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,698 @@
{
"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": "pause_overlay.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 个测试探针场景属测试基建,不入架构主干"
]
}
]
}