Files
gplan-2/design/engineering/architecture/code-architecture.json
T
DKChan af0e28d655 收尾(迭代38批后): 账面换代+反哺点1-16落文+产出物退役(用户裁「反哺落文没有问题、代拍板全部追认、卡②状态可一并更新」)——①待办清单四条完成即整删(效果引擎校验文案计数错误/明细行扩展总型收敛批/奖励节点过时表述清扫批/调试入口写死行必须在发布前删除)+「结算明细日志行序重锚批」随卡④裁点甲出账删除+「闸与探针存量噪声两件」拆注改名(件①产品码类型错随卡⑥出账,保留件②闸壳挂死防护=工程直改待执行,改动面降为工具代码);卡②条目现态由并行会话登记「gdstyle存量债全量清偿」波7承接(原「结构审查未立项小件候审」条目已并入该条),本批不重复回退;②roadmap 迭代38行换代(状态已完成(2026-10-26)/需求卡片列与实现报告列填退役保留字)+顶部当前位迭代位与下一步两行换代+表下加带红合并〔用户特批 2026-10-26〕注记一行;③体验验证清单新增 ㊱ 迭代38 六卡目检总清单五项(含红灯信号与结论回流;卡② 无改动不登记)——反哺点17 前提证伪:根目录 体验验证清单.md 一直存在且被 git 跟踪(414 行、㉖–㟟 逐迭代节俱全),当时误判系 Windows 中文文件名编码显示问题,故两选一裁决作废、直接按既有格式落登记;④反哺落文六处:战斗结算「扩展行」节过渡句换代为单一扩展行型+effect_id 口径(v1.0→v1.1)、08-Alpha版本标准 三选一条目改两渠道均在役(v1.16→v1.17,02-系统清单 指针随动)、ux/battle 调试浮窗与调试变体两处改发布态恒隐+415 历史留痕加口径指引、生涯 调试浮窗两行换代、test-conventions 调试注入两层加发布态注记、code-architecture.json debug 节点副标 DS_DEBUG 门控→发布态恒隐;architecture.md §1.3 与 roadmap 重锚指路句按卡①预期零改动/随②出账;⑤退役删除十件:四份迭代38产出物(实现报告§八落笔清单已逐条出账、审计报告两项阻断均有处置记录、代拍板21条经用户追认、反哺点1-16已落文)+六张已完成需求卡片(levelmap/效果文案/明细收敛/奖励节点/结算行缓冲/调试入口);卡② 结构小件定点修卡与其 WIP 留存随波7 重裁保留在册,卡内对已删 levelmap 卡的链接改指 git 提交 b85b3b45/8ea7cfba;pipeline_gate 绿(51条目/39行/2链)、gdd_lint 绿、文档域闸绿(07 doc_link 基线红转绿)
2026-10-26 19:16:07 +08:00

699 lines
12 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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": "发布态恒隐",
"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 个测试探针场景属测试基建,不入架构主干"
]
}
]
}