Files
gplan-2/docs/registry/architecture.yaml
T
DKChan 4e004cd832 docs: 系统更名批 + 可选类删除后 UI 文档收口
更名批(用户拍板 2026-09-16):奖励道具经济→地图战斗资源(定义已双向化——格面承载、
战斗结算生效)、辅助道具→魔法道具(已非纯数值道具,信息/妙用向);两 GDD 文件 git mv,
GDD 全树 + registry + UX/美术/研究/文档全仓口径同步;英文代号 REWARD_ITEM_ECONOMY /
AUXILIARY_ITEMS 暂沿用;版本历史旧行按约定保留旧名。
UI 收口批:battle.md / HUD框架.md 按代码现实收口——四区布局、五段结算、10 类明细行,
删 E 区道具面板、道具窗口态、query_inventory 登记与旧空态/囤刀措辞;魔法道具预留义务行
保留(库存条/指向交互/叠加层随其 P0 批设计);02-系统清单 地图战斗资源概要行与
architecture.md B4 行改现行口径。
验证:残留 grep 现行条款零命中;全量 smoke 211 项 0 失败 + 四 UI 探针通过。
2026-09-16 01:20:38 +08:00

66 lines
4.6 KiB
YAML
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.
# Architecture Registry — Dungeon Sweeper
# 生成:2026-09-12(/architecture-decision solo 批:ADR-0001~0004;用户授权代决)
# 规则:只增不改;立场变更 = 旧条目标 status: superseded_by + 新增条目(永改既有条目)
# 命名注记(2026-09-15):A1–D6 系统代号已清偿为中文规范名(对照表见 design/gdd/02-系统清单.md);interfaces 两条目键名同批改领域命名(a2_event_surface→minesweeper_event_surface、b1_settlement_trigger→settlement_trigger)。
# 设计层立场(状态归属/接口契约/锚验收)登记在 design/registry/entities.yaml——本文件只登记实现级架构立场
interfaces:
- name: minesweeper_event_surface
adr: ADR-0001
signals: [cell_revealed, flag_judged, round_end_board]
note: GDD 概念名 round_end 的 排雷玩法 实现实名 = round_end_board;行动经济 直发 = round_end_stopped(payload 同构)
- name: settlement_trigger
adr: ADR-0001
contract: 战斗结算 订阅 行动经济 相位→Waiting 触发结算;只读 last_round_end + 相位观测量;不依赖事件到达序
- name: presentation_subscription_rule
adr: ADR-0001
contract: 呈现层永不直接订阅 排雷玩法/行动经济——只订 战斗结算 步骤流 / level_runner(切片缺陷②教训固化)
api_decisions:
- name: renderer
adr: ADR-0002
decision: gl_compatibility(Forward+ 否决——D3D12 新驱动线降险;战斗表现 出现 HDR 2D 需求时复议)
- name: window_base
adr: ADR-0002
decision: 1280×800 基座 + stretch canvas_items + aspect expand(全部键显式落盘,防引擎默认漂移)
- name: autoload_set
adr: ADR-0003
decision: 仅 {ConfigDB, RngService}(定名锁定);战斗编排器等核心类由组合根按局实例化,非 autoload
- name: board_rendering
adr: ADR-0003
decision: MVP 沿用切片 GridContainer + 逐格控件形态(探针耦合事实);_draw() 迁移 = HUD框架 正式化候选工作项(含三探针改造 + push_input 端到端探针 + 命中测试自建)
- name: cjk_font
adr: ADR-0003
decision: CJK 字体随包发行并设 theme 默认字体(运行时默认字体无 CJK 字形)——HUD框架 正式化硬性前置 + 导出 checklist 项
- name: test_carrier
adr: ADR-0004
decision: 双载体(--headless --script 逻辑冒烟 + headless 场景探针)+ 静态扫描域 S1–S8 + CI 外部 wall-clock 超时;gdUnit4 deferred(数据配置 OQ1 关闭形态)
- name: save_contract
adr: ADR-0005
decision: SCHEMA_VERSION 比较逻辑归 存档序列化(存档版本 > 当前 = 拒读);RNG 快照 = master_seed + 各流 scope 计数器 + 意图/窗口选择序列,切出须在 scope 事件边界外(无在飞 open_stream 实例——战斗结算 编排保证)
forbidden_patterns:
- pattern: autoload_global_event_bus
adr: ADR-0001
detail: 否决中心事件总线——组合根直连 signal 接线
- pattern: lambda_capture_self_cross_lifetime
adr: ADR-0001
detail: core↔core 信号连接只许方法 Callable;发射者禁持有订阅者反向引用(防循环引用/生命周期延长)
- pattern: bare_autoload_global_identifier_in_core
adr: ADR-0004
detail: core/ 禁裸引用 ConfigDB/RngService 全局标识符(--script 模式不注册——parse error;构造注入 only)
- pattern: global_rand_functions_in_gameplay
adr: ADR-0004
detail: randi()/randf()/randf_range() 与 randomize() 同禁(全局 RNG 绕开 RngService——数据配置 Rule 5 补全)
- pattern: core_extends_control_or_tscn_preload
adr: ADR-0004
detail: core/ 禁 extends Control/Node2D、禁 .tscn preload(数据配置 Rule 7)
- pattern: second_caller_of_battle_domain_apis
adr: ADR-0004
detail: 敌人系统/增益状态/地图战斗资源 战斗域 API 唯一调用方 = 战斗结算;排雷玩法/增益状态/地图战斗资源 零相互直调(静态扫描 S7——战斗结算 AC-43)
- name: hero_override_parameter_passing
adr: ADR-0009(候选——切片机制正式化批)
decision: 主角加成值经 encounter 显式参数传入(begin_battle 增 hero_atk/hero_max_hp 字段;敌人系统.spawn 增 atk_override/max_hp_override 参数,-1 = 表值兜底)——db.hero 表值运行期只读(切片原表写通道 _apply_hero_override/runner 写表废除)
note: 2026-09-13 E4 收口;接口漂移 = 敌人系统.spawn 签名 +2 参数、战斗结算 encounter +2 字段(正式侧 战斗结算/敌人系统 GDD 修订随 ADR-0009 批);ui_tune_probe ⑦⑧ 为表不可变 + 单次加成的回归断言载体