merge: 垂直切片转正——工程目录迁为 game/(用户拍板 2026-09-24,台账 150;冲突解决=并行伤害管线批 damage_controller 按其内容落 game/ 新路径,旧路径入树经重命名追踪归一)
This commit is contained in:
commit
6cfeae021c
222 files changed
+66
-63
No files matched your search
@@ -30,7 +30,7 @@
|
||||
- `design/archive/gdd-2026-09-14/` — 旧版 GDD 归档(只读参考,不作事实引用)
|
||||
- `design/registry/` — 跨系统事实登记(术语规范名、已锁数值)
|
||||
- `production/` — stage、session-state、roadmap、gate-checks、qa
|
||||
- `prototypes/dungeon-sweeper-vertical-slice/` — 垂直切片(概念 demo 已删,验证报告留档 `docs/prototype-report-minesweeper-battle-concept.md`)
|
||||
- `game/` — 游戏工程本体(垂直切片转正 2026-09-24 结构批;概念 demo 已删,验证报告留档 `docs/prototype-report-minesweeper-battle-concept.md`)
|
||||
- `docs/` — 规范与参考文档(权威清单见下方导航)
|
||||
|
||||
## 规范导航(动手前先查表)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
一句话定位:**三关、按关配置的棋盘、一套格面资源池、一套状态表、一套商店配置**——刚好撑起一次完整的"扫雷决策 → 战斗兑现"循环,除此之外一律不做。
|
||||
|
||||
> **体例说明(2026-09-17 数值纪律收口批)**:本文件只写内容规模的结构框架——几个维度、各分几档、扩展走什么流程。具体种数、行数与幅度数值一律不在此抄录,事实源为准:数据表读 `prototypes/dungeon-sweeper-vertical-slice/data/tables/*.tres`,实体登记读 `design/registry/entities.yaml`;现行行数与面值以表和 registry 为准。
|
||||
> **体例说明(2026-09-17 数值纪律收口批)**:本文件只写内容规模的结构框架——几个维度、各分几档、扩展走什么流程。具体种数、行数与幅度数值一律不在此抄录,事实源为准:数据表读 `game/data/tables/*.tres`,实体登记读 `design/registry/entities.yaml`;现行行数与面值以表和 registry 为准。
|
||||
|
||||
## 关卡
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
|
||||
## 调参表
|
||||
|
||||
本系统是全项目行值最多的系统。数值纪律(2026-09-17 降级批定稿):**正文与调参表只定规则、取值域与口径,具体行值一律读配置表(切片 `prototypes/dungeon-sweeper-vertical-slice/data/tables/` 的 enemy / skills / hero / board_gen / reward / settlement / status_effects 等),已锁数值以 [registry 的对应条目](../../../registry/entities.yaml) 为准,本文不登记具体数值——防双写失同步**(切片 `.tres` 数值压缩批后文档行值滞后,双写失同步已被实证)。
|
||||
本系统是全项目行值最多的系统。数值纪律(2026-09-17 降级批定稿):**正文与调参表只定规则、取值域与口径,具体行值一律读配置表(切片 `game/data/tables/` 的 enemy / skills / hero / board_gen / reward / settlement / status_effects 等),已锁数值以 [registry 的对应条目](../../../registry/entities.yaml) 为准,本文不登记具体数值——防双写失同步**(切片 `.tres` 数值压缩批后文档行值滞后,双写失同步已被实证)。
|
||||
|
||||
首发行值几乎全部 provisional,其中加难相关数值处于 provisional-pending-scan(扫描未执行);完整行集读表,不在此整表搬运。
|
||||
|
||||
|
||||
@@ -79,9 +79,9 @@
|
||||
清图槽(clear_default 池,clear_blast)独立于格面资源——作用域为整张板,不挂任何一格。
|
||||
|
||||
引用(代码事实源):
|
||||
- `prototypes/dungeon-sweeper-vertical-slice/core/reward_economy.gd#roll_board`:`_rollable_rows()` 第 207-213 行收 `pool_tag=cell & polarity=positive & weight>0` 全集;循环第 65-67 行对 `eligible` 清单(全部非封锁格)一视同仁。
|
||||
- `prototypes/dungeon-sweeper-vertical-slice/core/minesweeper_rules.gd#_do_dig` 第 256-264 行:chain/dig 通道 `cell_revealed` 事件 `resource=true` 字段对安全格与雷格一致——注释明确"安全格与雷格一视同仁(雷格亦携带,负向兑付归 战斗结算 极性路由)"。
|
||||
- `prototypes/dungeon-sweeper-vertical-slice/data/tables/reward.tres`:9 行正向行 weight 现行值读 `data/tables/reward.tres`。
|
||||
- `game/core/reward_economy.gd#roll_board`:`_rollable_rows()` 第 207-213 行收 `pool_tag=cell & polarity=positive & weight>0` 全集;循环第 65-67 行对 `eligible` 清单(全部非封锁格)一视同仁。
|
||||
- `game/core/minesweeper_rules.gd#_do_dig` 第 256-264 行:chain/dig 通道 `cell_revealed` 事件 `resource=true` 字段对安全格与雷格一致——注释明确"安全格与雷格一视同仁(雷格亦携带,负向兑付归 战斗结算 极性路由)"。
|
||||
- `game/data/tables/reward.tres`:9 行正向行 weight 现行值读 `data/tables/reward.tres`。
|
||||
|
||||
候选集合具体行值(power / power_min / power_max / stacks / effect_id)随行更新——以 `data/tables/reward.tres` 为现行值源;GDD 表格只锁行集与权重分布语义。负向 9 行(enrage / off_guard / heal_backlash / enemy_alert / ap_drain / sapped / pierce_snare / magic_recoil / gp_loss——2026-09-20 八型批 ambush_double→enemy_alert 换装 + ap_drain 新增、同日 GP+商店房批 +gp_loss)weight=0 不参与摇号,按(类型, 极性)查表取用,不在候选集合内。
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(现行:酋
|
||||
|
||||
## 调参表
|
||||
|
||||
配置表共三张。数值纪律(2026-09-17 降级批定稿):**本文只锁字段、取值域与规则,行值一律读配置表(切片 `prototypes/dungeon-sweeper-vertical-slice/data/tables/` 的 enemy / skills / hero 表)与 [registry 的 enemy / hero / skill 条目](../../../registry/entities.yaml),不在本文登记具体数值——防双写失同步**;曲线调参所有权归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)。
|
||||
配置表共三张。数值纪律(2026-09-17 降级批定稿):**本文只锁字段、取值域与规则,行值一律读配置表(切片 `game/data/tables/` 的 enemy / skills / hero 表)与 [registry 的 enemy / hero / skill 条目](../../../registry/entities.yaml),不在本文登记具体数值——防双写失同步**;曲线调参所有权归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)。
|
||||
|
||||
敌人表(按关卡坐标存放,每坐标行集恰一敌种):
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
### 挖、插旗、移动:每个动作怎么才算合法
|
||||
|
||||
玩家对棋盘只做三件事:挖未开格、插旗,以及移动小人(玩家摆在棋盘上的探险者棋子)。前两个是付费动作,按标准动作价计费(价目见 `prototypes/dungeon-sweeper-vertical-slice/data/tables/action_economy.tres`;每轮的决策预算,账本归[行动经济](行动经济.md));本文只管棋盘面这一半,总纲只有一条:付费动作只能作用于小人周围一圈 8 格(8 向相邻)之内。
|
||||
玩家对棋盘只做三件事:挖未开格、插旗,以及移动小人(玩家摆在棋盘上的探险者棋子)。前两个是付费动作,按标准动作价计费(价目见 `game/data/tables/action_economy.tres`;每轮的决策预算,账本归[行动经济](行动经济.md));本文只管棋盘面这一半,总纲只有一条:付费动作只能作用于小人周围一圈 8 格(8 向相邻)之内。
|
||||
|
||||
移动不花行动点:点任何已开格,小人沿已探明区一次走到位,"已探明区"包括踩过的雷格残址。点击已开格的唯一含义就是移动——本作没有经典扫雷里"双击数字格一键翻开周围"的 chord(双击快开),每一格的兑现都必须花行动点。
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
## 设计目的
|
||||
|
||||
每场战斗里,玩家真正在花的钱只有一种:行动点(AP)。行动经济就是这本账——每轮发给你固定的行动点,挖格、插旗按统一价目计费(价目见 `prototypes/dungeon-sweeper-vertical-slice/data/tables/action_economy.tres`),花完这一轮就结束了。没有这本账,"挖这一格值不值"就没有统一的价格语言。
|
||||
每场战斗里,玩家真正在花的钱只有一种:行动点(AP)。行动经济就是这本账——每轮发给你固定的行动点,挖格、插旗按统一价目计费(价目见 `game/data/tables/action_economy.tres`),花完这一轮就结束了。没有这本账,"挖这一格值不值"就没有统一的价格语言。
|
||||
|
||||
它还要给"我不想赌了"一个体面的出口:主动停手能把剩余行动点 1:1 存进储备池,攒够了可以当场换掉整张雷图。推理本身不收钱——连锁展开免费——花钱的只是"兑现"这个动作。
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
|
||||
配置表为单行全局表;已锁数值以 [registry 的 action_economy 条目](../../../registry/entities.yaml) 为准。
|
||||
|
||||
| 参数 | 域 | 现行值(统一见 `prototypes/dungeon-sweeper-vertical-slice/data/tables/action_economy.tres`) | 说明 |
|
||||
| 参数 | 域 | 现行值(统一见 `game/data/tables/action_economy.tres`) | 说明 |
|
||||
|---|---|---|---|
|
||||
| ap_per_round | int [1, 32] | 表值 | 每轮行动点;兼作停手转存的规模旋钮 |
|
||||
| dig_ap_cost | int [1, 8] | 表值 | 挖单格成本(下限 1:为 0 则预算系统失效) |
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
**日期**:2026-09-19
|
||||
**性质**:只读对账作业——履行 06 待办「清图支配性保守地板缺口」的对账义务(用户指令:从难度曲线调参批提前执行)。本报告不动任何数值;调参建议仅呈报,拍板归用户。
|
||||
**判式权威**:[registry entities.yaml `clause5_dominance`](../registry/entities.yaml)(挖穿残余池计价,模型本体不变)
|
||||
**配套工具**:`tools/clear_dominance_audit.py`(重算器,判式全参数可配——难度曲线调参批的常设重跑入口)+ `prototypes/.../smoke/board_stat_probe.gd`(实测板形统计探针)
|
||||
**配套工具**:`tools/clear_dominance_audit.py`(重算器,判式全参数可配——难度曲线调参批的常设重跑入口)+ `game/smoke/board_stat_probe.gd`(实测板形统计探针)
|
||||
**归属**:[难度曲线与Boss](../gdd/systems/冒险循环/难度曲线与Boss.md)(裁决方)× [地图战斗资源](../gdd/systems/战斗循环/地图战斗资源.md)(清图奖励供给方)× [行动经济](../gdd/systems/排雷循环/行动经济.md)(契约本体)× [战斗结算](../gdd/systems/战斗循环/战斗结算.md)(对账责任方)
|
||||
|
||||
---
|
||||
|
||||
@@ -140,11 +140,11 @@
|
||||
|
||||
| 文件 | 动作 | 内容 |
|
||||
|---|---|---|
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/tables/shop.tres` | 新建 | 商品三行(属性键 / 档位 flat 值 / 首价 / 递增步长 / 刷新费 / 单店刷新限次);行值 provisional 归难度曲线 |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/schemas/shop_table.gd` | 新建 | schema + 校验(商品属性键 ∈ {atk, max_hp, armor_class};价格域 [1,999];刷新限次域) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/tables/level.tres` | 修改 | L2 行集 +1 商店房节点(中段插位、连线 rewiring、六检全绿);L1 零改动 |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/schemas/level_table.gd` | 修改 | type 词表 {battle, boss, reward, rest} +shop |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/tables/reward.tres`、`data/schemas/reward_table.gd` | 〔条件〕零改动(推荐)/ 九型扩两行 + 词表(备选) | 推荐方案下本批不碰格面池 |
|
||||
| `game/data/tables/shop.tres` | 新建 | 商品三行(属性键 / 档位 flat 值 / 首价 / 递增步长 / 刷新费 / 单店刷新限次);行值 provisional 归难度曲线 |
|
||||
| `game/data/schemas/shop_table.gd` | 新建 | schema + 校验(商品属性键 ∈ {atk, max_hp, armor_class};价格域 [1,999];刷新限次域) |
|
||||
| `game/data/tables/level.tres` | 修改 | L2 行集 +1 商店房节点(中段插位、连线 rewiring、六检全绿);L1 零改动 |
|
||||
| `game/data/schemas/level_table.gd` | 修改 | type 词表 {battle, boss, reward, rest} +shop |
|
||||
| `game/data/tables/reward.tres`、`data/schemas/reward_table.gd` | 〔条件〕零改动(推荐)/ 九型扩两行 + 词表(备选) | 推荐方案下本批不碰格面池 |
|
||||
|
||||
### B 集:切片代码(互斥文件集 B)
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
|
||||
| 文件 | 动作 | 内容 |
|
||||
|---|---|---|
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/smoke/smoke_all.gd` | 修改 | 新断言组:GP 入账恰一次/战(普通 2 / Boss 5);购买扣费与覆盖值生效(买攻后攻击合计读数);购血上限与当前生命同步;刷新限次被拒;GP 冒险末清零;L2 图六检全绿含商店房 |
|
||||
| `game/smoke/smoke_all.gd` | 修改 | 新断言组:GP 入账恰一次/战(普通 2 / Boss 5);购买扣费与覆盖值生效(买攻后攻击合计读数);购血上限与当前生命同步;刷新限次被拒;GP 冒险末清零;L2 图六检全绿含商店房 |
|
||||
| `smoke/level_autoplay.gd` | 修改 | 商店房遍历(进店-购买-离开路径的自动玩家支持 + 贪心购买画像) |
|
||||
| `smoke/level_monte_carlo.gd` | 修改 | shop 开关参数(off/on 双格)+ 确定性购买画像;分层读数列(通关率按 shop 态分列) |
|
||||
| `production/qa/mc-shop-baseline-2026-09-XX.md` | 新建 | 分层基线报告(N、画像、双格对照,对齐 mc-reinvest-baseline 口径) |
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
### 2.1 A1:reward 表 11 行逐行行值
|
||||
|
||||
事实源 = `prototypes/dungeon-sweeper-vertical-slice/data/tables/reward.tres`(行号指该文件):
|
||||
事实源 = `game/data/tables/reward.tres`(行号指该文件):
|
||||
|
||||
| # | reward_id | cell_type | polarity | power | power_min/max | weight | stacks | effect_id | display_name | pool_tag | tier |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
@@ -298,22 +298,22 @@ v0.6 先例用「零改动」避开连带(`reward.tres:134`);v0.7 先例
|
||||
|
||||
| 文件(§3 清单) | 本报告引用的关键行 |
|
||||
|---|---|
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/core/reward_economy.gd` | 6, 36-81(roll_board), 62-67, 70-77, 165-172(polarity_row), 177-190(equivalence_supply/tier_min_buff), 184, 195-213(weighted_pick/_rollable_rows) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/core/minesweeper_rules.gd` | 10(信号), 100-103(initial 通道), 124-137(不变式), 236-274(_do_dig), 258-259, 262-271(resource 通道) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/core/board_data.gd` | 14(variants), 15(biome), 81-86(safe_cells), 90-103(compute_r0) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/core/battle_orchestrator.gd` | 75, 131-161(_install_new_board/roll_board 调用), 166-178(facts 缓冲), 200-260(授予段/极性路由), 253-260, 264-269 |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/schemas/reward_table.gd` | 13-16(枚举), 53-59(weight/stacks 域), 57, 70-84(区间/中点锚), 86-102(字典完整性/池护栏) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/tables/reward.tres` | #7-122(11 行), 124-145(注释段:同池声明 125 / 频次 126 / 换装 133-135 / 压缩批 137-145) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/tables/status_effects.tres` | #7-88(九行), 90-113(批注:减伤墙/换装/技能池/压缩) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/tables/board_gen.tres` | #7-139(12 行板参数), 141-154(调参登记) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/data/tables/action_economy.tres` | 7-14(行值), 16-23(AP 压速批注——差异化前提注记 18-19) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/smoke/reward_expectation.gd` | 4, 9, 21-72(频次实测/口径注——过期基准 4,71-72) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/smoke/monte_carlo.gd` | 8, 28, 54-68(读数口径) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/smoke/experiment_density.gd` | 59-69(FakeDB——零 reward 耦合) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/smoke/level_monte_carlo.gd` | 45-48, 100-109(带口径/完美档断言) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/smoke/level_autoplay.gd` | 18-21, 85-89(mine_hits 埋点), 122-191(双策略档驱动) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/smoke/smoke_all.gd` | 91, 1244-1321(负向字典直验——1255-1256, 1284), 1326-1367(资源面断言——1347,1349,1365-1367) |
|
||||
| `prototypes/dungeon-sweeper-vertical-slice/smoke/auto_player.gd` | 7(同种子回放等价性), 31-48(完美策略档) |
|
||||
| `game/core/reward_economy.gd` | 6, 36-81(roll_board), 62-67, 70-77, 165-172(polarity_row), 177-190(equivalence_supply/tier_min_buff), 184, 195-213(weighted_pick/_rollable_rows) |
|
||||
| `game/core/minesweeper_rules.gd` | 10(信号), 100-103(initial 通道), 124-137(不变式), 236-274(_do_dig), 258-259, 262-271(resource 通道) |
|
||||
| `game/core/board_data.gd` | 14(variants), 15(biome), 81-86(safe_cells), 90-103(compute_r0) |
|
||||
| `game/core/battle_orchestrator.gd` | 75, 131-161(_install_new_board/roll_board 调用), 166-178(facts 缓冲), 200-260(授予段/极性路由), 253-260, 264-269 |
|
||||
| `game/data/schemas/reward_table.gd` | 13-16(枚举), 53-59(weight/stacks 域), 57, 70-84(区间/中点锚), 86-102(字典完整性/池护栏) |
|
||||
| `game/data/tables/reward.tres` | #7-122(11 行), 124-145(注释段:同池声明 125 / 频次 126 / 换装 133-135 / 压缩批 137-145) |
|
||||
| `game/data/tables/status_effects.tres` | #7-88(九行), 90-113(批注:减伤墙/换装/技能池/压缩) |
|
||||
| `game/data/tables/board_gen.tres` | #7-139(12 行板参数), 141-154(调参登记) |
|
||||
| `game/data/tables/action_economy.tres` | 7-14(行值), 16-23(AP 压速批注——差异化前提注记 18-19) |
|
||||
| `game/smoke/reward_expectation.gd` | 4, 9, 21-72(频次实测/口径注——过期基准 4,71-72) |
|
||||
| `game/smoke/monte_carlo.gd` | 8, 28, 54-68(读数口径) |
|
||||
| `game/smoke/experiment_density.gd` | 59-69(FakeDB——零 reward 耦合) |
|
||||
| `game/smoke/level_monte_carlo.gd` | 45-48, 100-109(带口径/完美档断言) |
|
||||
| `game/smoke/level_autoplay.gd` | 18-21, 85-89(mine_hits 埋点), 122-191(双策略档驱动) |
|
||||
| `game/smoke/smoke_all.gd` | 91, 1244-1321(负向字典直验——1255-1256, 1284), 1326-1367(资源面断言——1347,1349,1365-1367) |
|
||||
| `game/smoke/auto_player.gd` | 7(同种子回放等价性), 31-48(完美策略档) |
|
||||
| `design/gdd/systems/战斗循环/地图战斗资源.md` | 9, 52-61(摇号纪律——61 雷安同池行), 70-88(候选集合), 90-100(极性矩阵), 104-118(五型字典), 122-124(负向即时), 128-141(清图), 153, 157, 187, 191-205(调参表指路化), **207(结构冻结七项)**, 209-217(验收标准——212), 225-234(版本历史 v0.4-v0.8) |
|
||||
| `design/gdd/systems/战斗循环/战斗结算.md` | 103(对账唯一责任方), 124(极性路由兑付), 142(伏击溢出), 146(标错类型化), 180(奖励定义分离) |
|
||||
| `design/gdd/systems/战斗循环/增益状态.md` | 132, 138(九行), 154-161(状态行表), 163(四池对称), 165(当量锚), 214-221(调参表) |
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
| # | 条件 | 判据 |
|
||||
|---|---|---|
|
||||
| 1 | AC 批 smoke 全绿 | `smoke_all.gd` 零失败(AC 批会话交付后执行) |
|
||||
| 2 | 日志分析器可用 | `prototypes/dungeon-sweeper-vertical-slice/tools/log_analysis.py` 可运行;对 AC 落批日志能激活掷点面(FIELD_CANDIDATES 命中,或按其数据质量观测面补一行字段适配) |
|
||||
| 2 | 日志分析器可用 | `game/tools/log_analysis.py` 可运行;对 AC 落批日志能激活掷点面(FIELD_CANDIDATES 命中,或按其数据质量观测面补一行字段适配) |
|
||||
| 3 | MC 双档可跑 | `smoke/level_monte_carlo.gd` 以策略 both 跑通零报错;完美档零踩雷构造断言通过 |
|
||||
| 4 | 工作区无半成品 | git status 干净(`core/rng_service.gd` 等在飞改动已收编提交) |
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
### 2.1 模拟批(主数据源)
|
||||
|
||||
- 工具:`prototypes/dungeon-sweeper-vertical-slice/smoke/level_monte_carlo.gd`
|
||||
- 工具:`game/smoke/level_monte_carlo.gd`
|
||||
- 配置:N=30、种子 4200+30(4200–4229,逐局 seed0+i)、策略 both(normal + perfect 双档一次跑齐)——与 2026-09-16 历史坐标同种子同口径。
|
||||
- 阶段一读数格:基线格 atk+0%/hp+0%(零天赋,生死带判据格)。
|
||||
- 阶段二加跑满配格 atk+100%/hp+100%(天赋成人态;F4 复验格,已拍板 i①)。
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
- Review Mode: solo(`production/review-mode.txt`,2026-09-12 用户拍板——TD/LP 门禁按 solo 跳过,用户授权架构产出自主推进、迭代期回调)
|
||||
- GDDs Covered: game-concept · game-pillars · systems-index · d2-data-config · a3-action-economy · a4-terrain-variation · b3-status-effect · a1-board-generation · a2-minesweeper-rules · b2-enemy-system · b4-reward-item-economy · b1-settlement(12 份;A5/C1–C4/B5/D3–D6 未设计,按 systems-index 依赖分层预留)
|
||||
- ADRs Referenced: 无(0 份现存)——本文档 Phase 5/6 列出的实现期裁决项即为首批 ADR 候选
|
||||
- Implementation Evidence: 垂直切片 `prototypes/dungeon-sweeper-vertical-slice/`(2026-09-10 起,冒烟 88/88、三 UI 探针 PASS)——本文档的分层/所有权/数据流均经切片实现验证,非纯纸面设计
|
||||
- Implementation Evidence: 垂直切片 `game/`(2026-09-10 起,冒烟 88/88、三 UI 探针 PASS)——本文档的分层/所有权/数据流均经切片实现验证,非纯纸面设计
|
||||
- Technical Director Sign-Off: 2026-09-12 — APPROVED WITH CONDITIONS(条件:Required ADRs 于正式工程骨架搭建前定稿;`.claude/docs/director-gates.md` 缺失已登记技术债)
|
||||
- Lead Programmer Feasibility: SKIPPED — Solo mode
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 代码架构审查报告 — 代码组织与封装
|
||||
|
||||
> 日期:2026-09-13
|
||||
> 载体:`prototypes/dungeon-sweeper-vertical-slice/`(9707 行 GDScript:core 12 文件 / data 11 / presentation 28 / smoke 10)
|
||||
> 载体:`game/`(9707 行 GDScript:core 12 文件 / data 11 / presentation 28 / smoke 10)
|
||||
> 基线:`docs/architecture/architecture.md` v1.0 + ADR-0001~0005 + `docs/code-conventions.md`
|
||||
> 触发:用户在 code-review 之后要求补充「代码组织问题 + 封装问题」专项审查
|
||||
> 审查方式:core/presentation 关键文件全读 + S1–S8 静态规则逐条 grep 验证 + 跨层引用面扫描
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
> 生效:2026-09-11 · 来源:用户在垂直切片评审中逐一指出的真实陋习与缺陷,全部成文。
|
||||
> 每条规则附本项目真实反面案例(标注缺陷编号/日期)——规则不是抽象美德,是踩过的坑。
|
||||
> 约束范围:`prototypes/` 与正式 `production` 代码同尺度;与 CLAUDE.md「硬性红线」节既有硬约束
|
||||
> 约束范围:`game/`(原 prototypes/ 垂直切片,2026-09-24 转正)代码同尺度;与 CLAUDE.md「硬性红线」节既有硬约束
|
||||
> (数值表单点 / RNG 封闭流 / Core 零 UI / fail-fast / spec-AC 一致性)并行生效,冲突以用户裁决为准。
|
||||
|
||||
**写任何代码前必须通读本文件。**
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 222 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user