- 奇物.md v2.8:专长效果声明换代(挂点→订阅行五处)+feats.tres 行结构字段表换代+版本行。 - 秘宝.md v1.0:效果声明形态节(被动六件订阅行/掘进蓄能受理闸数据化/desc 文案表值化)+版本行。 - 敌人系统.md v0.14:半血解锁判定点=通用事件 enemy_hp_threshold 发射点登记(非 Boss 专属—— Boss 语义留给订阅条件判定;本批零订阅者零行为变化,R6 框架先行登记面)+版本行。 - registry/entities.yaml:专长 data_sources 换代+effect_declaration 新条(四词表封闭/组合规则六族/ 遍历序写死/每战重建时机——效果行为唯一事实源登记)。 - registry/architecture.yaml:core_decisions 新条 effect_engine_interpreter(ADR-0011 候选—— 发布订阅解释器立场+禁拦截器链边界)。 - 06-待办清单:数据驱动批状态=已实施完成收口(五提交号+闸读数+遗留两项+出口报告指路)。 - roadmap:迭代 17 卡⓪行换代(状态=已实施完成待合并)。 - active.md:快照节追加台账 381(预配号——379/380 留并行在飞三线)。 - 出口报告:design/qa/iter17-datadrive-exit-report-2026-10-06.md(各卡提交号含前任两条/六闸读数/ MC 锚名与对拍结论/代拍板八项/遗留人闸两项+实机目检/基线既有闸项声明)。 闸读数终态:冒烟 800 项 0 失败(三闸过)· 单元 17 套全绿 · 探针闸含 click 全绿 · MC 二档对拍 40 局同种子逐位一致(off L1 4/20、formed L1 16/20 与改前逐位同值——契约两套判据全过)· doc 三闸与熵增闸零新增(gdd_lint 2 处与 design/diagrams 越界均 stash 对比实证为基线既有)。 任务书:design/research/任务书-内容数据驱动扩展批-2026-10-06.md §六 T7。
72 lines
5.4 KiB
YAML
72 lines
5.4 KiB
YAML
# 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 实例——战斗结算 编排保证)
|
||
|
||
core_decisions:
|
||
- name: effect_engine_interpreter
|
||
adr: ADR-0011(候选——内容数据驱动扩展批 2026-10-06)
|
||
decision: 内容效果行为=发布订阅解释器(EffectEngine)——结算管线同步 emit 事件(无队列无异步),内容行以「订阅哪个事件 on / 什么条件 when / 什么效果 do」声明订阅,解释器遍历持有订阅集返回按声明序排列的命中,发射点按组合规则施加;旧 23 挂点枚举与按件 id 特判消亡
|
||
note: 事件/效果类型/条件事实/算子四词表封闭于 EffectEngine 常量(单一事实源,schema 校验引用);遍历序=数据表声明序写死保种子复放;订阅重建=每战 begin_battle(中途获得下一战生效);不做通用拦截器链,改写窗口=判定点就地按声明序施加(R2 裁决)
|
||
|
||
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 ⑦⑧ 为表不可变 + 单次加成的回归断言载体
|