docs: 退役 P6-N2/P6-N25 并订正 §4.2 归航设计——删除快照的连带订正

E1-③ 归航实现删除了 _enemy_pos_snapshot 与 EnemyManager.fill_pos_snapshot
(锁定式目标需 entity_id,快照按槽位存位置不含 id),权威文档随之失准,一并订正:

- docs/README.md:P6-N25(快照须为类成员)与 P6-N2(Homing 弹共用快照)双双失去
  约束对象,改为删除线 + ⚠️ 已退役(2026-07-30) 并指向 spec §2.4/§2.7。不删条目,
  避免编号规范留下悬空引用。
- architecture_design.md §4.2:homing 伪代码整段改写为实际算法——冷数据
  homing_strength(弧度/秒)/homing_range/homing_target_id、发射不解析目标首帧惰性
  锁定、仅目标失效时经 _find_nearest_unvisited 重选、wrapf 最短转向 + clampf 限
  角速度 + rotated() 保速率、空场守卫、失败退避+抖动、bounce 协同改写目标并撤销
  退避键。性能数字一律指向 spec §5,不另起一套。
- 冷数据字段表 homing_force → homing_strength/homing_range/homing_target_id。
- EnemyManager API:fill_pos_snapshot 换成实际存在的 get_pos_by_id(含哨兵约定);
  get_nearest_pos 与自动瞄准改为「直接扫描 SoA」,原文称与 homing 快照共用属误述。
- S0 性能表 EnemyManagerCs 行标注该实测含已删除的 fill_pos_snapshot(保留历史数字)。
- MinionManager.fill_pos_snapshot 标注为未实现提案,并纠正其「供 homing 用」的注释。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 17:01:56 +08:00
co-authored by Claude Opus 5
parent d498097005
commit 14136b1223
2 changed files with 77 additions and 34 deletions
+2 -2
View File
@@ -77,7 +77,7 @@ docs_dev/ 开发过程 / 归档文档(工程根目录,见下
| 规范 ID | 位置 | 内容摘要 |
| :--- | :--- | :--- |
| P6-N2 | architecture_design.md §4.2 | Homing 弹共用敌人位置快照 |
| P6-N2 | architecture_design.md §4.2 | ~~Homing 弹共用敌人位置快照~~ ⚠️ **已退役(2026-07-30**:归航改为**按 entity_id 锁定目标**,目标有效时零查询、仅失效时重选,不再需要共用快照。见 spec [`2026-07-30-bullet-homing-design.md`](../docs_dev/specs/2026-07-30-bullet-homing-design.md) §2.4 / §2.7 |
| P6-N3 | architecture_design.md §4.1 | SpellContext 池大小 = 32 |
| P6-N5 | implementation_plan.md §2.2 | CompiledDeck 多项式滚动哈希(顺序敏感,种子含 grid_cols,防换位误判) |
| P6-N6 | implementation_plan.md §2.1 | EventID 12 MINION_EXPIRED |
@@ -96,7 +96,7 @@ docs_dev/ 开发过程 / 归档文档(工程根目录,见下
| P6-N22 | numerical_design.md §1.2 | XP 可行性验证:Level 20 为 20 波通关上限,Level 21+ 服务 Endless |
| P6-N23 | numerical_design.md §1.2 | 商店刷新费用公式:20 + (本波刷新次数 × 10)G,波次结束重置 |
| P6-N24 | architecture_design.md §4.2 | ProjectileDef(生成时模板)vs _bullet_contexts(运行时可变冷状态)职责分离 |
| P6-N25 | architecture_design.md §4.2 | _enemy_pos_snapshot 必须声明为类成员(预分配复用,禁止每帧 var 分配) |
| P6-N25 | architecture_design.md §4.2 | ~~_enemy_pos_snapshot 必须声明为类成员(预分配复用,禁止每帧 var 分配)~~ ⚠️ **已退役(2026-07-30**:约束对象 `_enemy_pos_snapshot` 已删除 —— 归航改用**按 entity_id 锁定目标**,而该快照按槽位存位置、不含 entity_id,支撑不了锁定语义。见 spec [`2026-07-30-bullet-homing-design.md`](../docs_dev/specs/2026-07-30-bullet-homing-design.md) §2.7 |
| P6-N26 | architecture_design.md §8 ADR-R5-N1 | ZoneManager ZONE_STRIDE=8(含 tick_interval+tick_accum),spawn_zone 需 tick_interval 参数 |
| P6-N27 | implementation_plan.md §2.3.C | _visible_flags 类成员 PackedByteArrayhas_point() 赋值须显式 int() 转换 |
| P6-N28 | implementation_plan.md §2.1 | DamageContextPool Autoload 定义(acquire/get_context/release |