docs(04-04): complete 勇士渲染修正 plan

This commit is contained in:
unanmed 2026-09-19 17:00:07 +08:00
parent 0ad933368c
commit 7a17accf66
3 changed files with 15 additions and 11 deletions

View File

@ -181,7 +181,7 @@ Plans:
3. 移动端(窄屏)布局下,同一场景正常显示且可操作
4. 数据端与渲染端保持双端分离——数据端无 DOM,仍可在 Node 环境跑回放验证
**Plans**: 4 plans(第一步·只读对账已完成;第二步·勇士移动接口探索(只读)已完成;第三步·勇士本体适配已执行;第四步·勇士渲染修正(04-03 人工审查反馈 D-24..D-28,D-29 修订为注入 `IFaceManager`)已规划,待执行 — 04-CONTEXT D-01/D-02/D-13/D-17/D-18/D-19/D-20/D-21/D-22/D-24..D-29;其余渲染适配与移动端/桌面端双布局待后续增量另行规划)
**Plans**: 4/4 plans executed(第一步·只读对账已完成;第二步·勇士移动接口探索(只读)已完成;第三步·勇士本体适配已执行;第四步·勇士渲染修正(04-03 人工审查反馈 D-24..D-28,D-29 修订为注入 `IFaceManager`)已规划,待执行 — 04-CONTEXT D-01/D-02/D-13/D-17/D-18/D-19/D-20/D-21/D-22/D-24..D-29;其余渲染适配与移动端/桌面端双布局待后续增量另行规划)
Plans:
**Wave 1**
@ -198,7 +198,7 @@ Plans:
**Wave 4** *(blocked on Wave 3 completion)*
- [ ] 04-04-PLAN.md — 勇士渲染修正(04-03 人工审查反馈 D-24..D-29):`render/map/extension/{hero,types,manager}.ts` 注入 `IFaceManager`(`faceManager`;`degrade`/`next` 走 `Dir4FaceHandler`、`movement` 走勇士 `mover.faceHandler`(Dir8)——D-24/D-29)并替换三个弃用 helper;`IMapExtensionManager.addHero(state, layer, faceManager)` 新增参数(D-29,改 `types.ts` 接口签名);拆分 `MapHeroLocationHook` / `MapHeroMoverHook` 且 `onSetPos` 无条件(D-25)、补 `AnimDir`(D-26)、改 `@motajs/animate` 的 `ExcitationCurve2D`(D-27)、保留存量 `state` 用法(D-28);不新增数据端接口,排除 D-18/D-19/D-22
- [x] 04-04-PLAN.md — 勇士渲染修正(04-03 人工审查反馈 D-24..D-29):`render/map/extension/{hero,types,manager}.ts` 注入 `IFaceManager`(`faceManager`;`degrade`/`next` 走 `Dir4FaceHandler`、`movement` 走勇士 `mover.faceHandler`(Dir8)——D-24/D-29)并替换三个弃用 helper;`IMapExtensionManager.addHero(state, layer, faceManager)` 新增参数(D-29,改 `types.ts` 接口签名);拆分 `MapHeroLocationHook` / `MapHeroMoverHook` 且 `onSetPos` 无条件(D-25)、补 `AnimDir`(D-26)、改 `@motajs/animate` 的 `ExcitationCurve2D`(D-27)、保留存量 `state` 用法(D-28);不新增数据端接口,排除 D-18/D-19/D-22
**UI hint**: yes
@ -393,7 +393,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7
| 1. 事件系统 | 13/13 | In Progress| |
| 2. 寻路系统 | 5/5 | In Progress| |
| 3. 数据端完成 | 19/19 | Complete | 2026-09-12 |
| 4. 渲染适配与双布局 | 3/4 | In Progress| |
| 4. 渲染适配与双布局 | 4/4 | In Progress| |
| 5. Legacy 移植 | 0/TBD | Not started | - |
| 6. 单元测试 | 18/18 | In Progress| |
| 7. 数据端缺陷修复 | 15/16 | 暂缓 (Deferred) | - |

View File

@ -4,16 +4,16 @@ milestone: v1.0
current_phase: 04
current_phase_name: 渲染适配与双布局
status: executing
stopped_at: Completed 04-03-PLAN.md(勇士本体被动适配:绑定 IHeroLocation + 订阅现有钩子,三文件机器门禁全绿)
last_updated: "2026-09-19T05:12:50.217Z"
stopped_at: Completed 04-04-PLAN.md(勇士渲染修正:注入 IFaceManager、拆钩子类、补 AnimDir、换 @motajs/animate,三文件机器门禁全绿;REND-01/REND-02 保持 Pending)
last_updated: "2026-09-19T08:59:27.618Z"
last_activity: 2026-09-18
last_activity_desc: Phase 04 execution started
state_head: bac3e46fba57ea42fa39460810e8dc8c4c8a406c
state_head: 0ad933368c4b2245bba179acdcda4a7b45e5eb7c
progress:
total_phases: 7
completed_phases: 0
total_plans: 75
completed_plans: 73
completed_plans: 74
milestone_name: milestone
---
@ -29,7 +29,7 @@ See: .planning/PROJECT.md (updated 2026-09-17)
## Current Position
Phase: 04 (渲染适配与双布局) — READY TO EXECUTE
Plan: 3 of 4
Plan: 4 of 4
Status: Ready to execute
Last activity: 2026-09-18 — Phase 04 execution started
@ -99,6 +99,7 @@ Progress: [█████░░░░░] 50%
| Phase 04 P01 | 11min | 3 tasks | 1 files |
| Phase 04 P2 | 23min | 4 tasks | 1 files |
| Phase 04 P3 | 40min | 4 tasks | 3 files |
| Phase 04 P4 | ~45min | 4 tasks | 3 files |
## Accumulated Context
@ -225,6 +226,9 @@ Recent decisions affecting current work:
- [Phase 04]: [Phase 04]: 04-03:渲染端勇士本体绑定 IHeroLocation,经 hero.addHook / hero.mover.addHook 订阅数据端现有钩子(D-21),不新增数据端接口、不改数据端文件
- [Phase 04]: [Phase 04]: 04-03:IMapHeroRenderer 按 D-20 删除 8 个外部驱动成员声明,勇士渲染改为完全被动;对应类内实现方法保留并只由钩子回调调用
- [Phase 04]: [Phase 04]: 04-03:D-18 贴图别名 hero.image 只做最小编译桥接(读取收敛为一处 + 既有 // @ts-expect-error 惯用法标注),不重设贴图来源;D-18 / D-22 成员逐字保留
- [Phase 04]: [Phase 04]: 04-04:MapHeroRenderer 注入 IFaceManager(faceManager 字段 + 派生 dir4),degrade/next 走 Dir4FaceHandler(FaceGroup.Dir4),movement 走 hero.mover.faceHandler(Dir8);IMapExtensionManager.addHero 新增 faceManager 形参并由 manager.ts 转发(D-24/D-29)
- [Phase 04]: [Phase 04]: 04-04:MapHeroHook 拆为 MapHeroLocationHook(onSetPos 无条件、只出现一次,承载 D-18/D-22 多余方法)与 MapHeroMoverHook(onMoveStart/onMoveEnd/onStepEnd/onSetFaceDir),各自注册各自 controller;onStepEnd 的 AnimDir 分支按 step.dir 设置动画方向(D-25/D-26)
- [Phase 04]: [Phase 04]: 04-04:hero.ts 弃用 mutate-animate 的 TimingFn<2>,改用 @motajs/animate 的 ExcitationCurve2D;D-28 存量 state.roleFace.getFaceOf 三处与 import 逐字保留;types.ts 单行 addHero 签名与 manager.ts 单行构造调用按仓库惯例加 // prettier-ignore 以同时满足计划的单行静态门禁与 prettier
### Roadmap Evolution
@ -262,6 +266,6 @@ None yet.
## Session Continuity
Last session: 2026-09-18T08:00:17.538Z
Stopped at: Completed 04-03-PLAN.md(勇士本体被动适配:绑定 IHeroLocation + 订阅现有钩子,三文件机器门禁全绿)
Last session: 2026-09-19T08:59:26.713Z
Stopped at: Completed 04-04-PLAN.md(勇士渲染修正:注入 IFaceManager、拆钩子类、补 AnimDir、换 @motajs/animate,三文件机器门禁全绿;REND-01/REND-02 保持 Pending)
Resume file: None

View File

@ -44,5 +44,5 @@
"label": "Advance to the next step",
"reason": "Phase 04 of 7 · executing"
},
"updated_at": "2026-09-19T05:12:50.312Z"
"updated_at": "2026-09-19T08:58:48.919Z"
}