docs(architecture): 代码实现架构图 archify 交付——code-architecture HTML+可编辑 JSON 两件(showcase 9/9 闸 0错0警+三视口无溢出+视觉判官四轮收敛后 4/4 pass;节点=场景/autoload/视图/逻辑层 36 件全部实读自 game/ 工程,逻辑层 21 件仅列名;七条动作边含翻开·插旗·和弦→组合根→战斗编排器→结算回流主链;smoke 探针 13 场景不入图;单例层以裸节点+卡片承载语义)
This commit is contained in:
1 parent
e621abf9e5
commit
7974e4a074
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 个测试探针场景属测试基建,不入架构主干"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in new issue
Block a user