9f058650c1
fix(07-06): #06-08-1 keep backward steps on the same axis
...
- Special 后退分支基准由 getCurrentDirection() 改为 this.faceDirection,避免被本步写入的反方向改写而在多步之间摆动
- 前进分支保持既有 getCurrentDirection() 语义不变
- 同步 IObjectMover.backward jsdoc 与 getCurrentDirection/prepareStep 注释措辞(D-11)
- 取消 mover.test.ts 多步后退用例的 it.skip,断言一字未改(D-10)
2026-09-15 20:57:13 +08:00
6699df9eee
test(06-08): extend ObjectMover coverage across its public surface (stage 3)
...
- cover setPos/setFaceDir/setMoveDir/jump/stepFace/forward/backward/speed/face/animDir/push/clear/start
- add controller stop and start-while-moving contract checks with real timers and await onEnd
- mark the multi-step backward case as skipped suspected bug #06-08-1
2026-09-14 17:00:13 +08:00
2cb9bba3ce
test(06-08): cover FlagSystem, FaceManager handlers and RoleFaceBinder (stage 2)
...
- add system.test.ts covering the full FlagSystem public surface and warn code 111
- add faceManager.test.ts covering FaceManager registry plus Dir4/Dir8 handlers
- add face.test.ts covering RoleFaceBinder malloc/bind/query and error codes 43/44
2026-09-14 16:56:17 +08:00
7394a2591c
test(06-08): cover common direction utils and MapLocIndexer (stage 1)
...
- add utils.test.ts covering getFaceMovement/degradeFace/nextFaceDirection/fromDirectionString for all directions
- add indexer.test.ts covering MapLocIndexer coordinate/index round-trip and setWidth stride
2026-09-14 16:51:59 +08:00
a66be585d1
feat(event): rework built-ins and centralize trigger collection
...
- rename deleteBlock -> removeBlock (dynamic tiles need dynamic:true),
moveHeroStep -> stepHero; touchFront steps forward and lets the mover bump
- GameEventSystem.collectEvent owns point/tile source collection; moverImpl
enter/leave/hit reuse it with OnEnter/OnLeave/OnTouch
- IBlockEventEnv gains required system field and nullable heroFloor
- MapLayer.removeBlock added and setBlock guarded by inMap; GameMap owns floorId
- IObjectMover.push accepts readonly steps
- update event/eventDispatch tests to the current implementation (fixtures
supply system, hero location snapshots, renamed registrations)
Verified: data type gate 0 in-scope; vitest 19 files / 112 tests pass; prettier
and eslint clean on touched files.
2026-09-13 20:37:32 +08:00
b86a060759
feat: 移动器新增 push 方法
2026-09-13 19:01:57 +08:00
64b97bc515
fix(03-05): close data package type and cycle boundaries
2026-09-10 17:40:29 +08:00
cbcaec83dc
refactor(02-02): comply with updated style rules, extract finder and drop temp function consts
2026-09-09 17:44:31 +08:00
e1f61013ac
fix(02-02): repair mover step-end coordinate writeback condition per approved P1 decision
2026-09-09 17:09:37 +08:00
9477b2c78a
test(02-01): 铺设 L0 mover 坐标回写回归测试脚手架(skip 状态)
...
- 4 个 it.skip 用例:x 正交 / y 正交 / 斜向 / 传送步的 setPos 回写
- 测试桩逐字复刻 eventDispatch.test.ts 模式(main/location stub + getOrInsertComputed polyfill)
- 最小 ObjectMover 子类驱动 moveProgress,零新依赖;待 02-02 修复 mover.ts:651 后翻绿
2026-09-09 15:33:18 +08:00
1717400945
refactor: 触发器
2026-07-27 18:04:05 +08:00
f4c77d152f
feat: 楼层切换
2026-07-26 20:22:36 +08:00
e72ad36e8d
refactor: 存档系统迁移至 L0
2026-07-01 20:53:29 +08:00
c4bcecdf8a
feat: 勇士撞击行为
2026-06-29 19:57:46 +08:00
0508dfb9e4
feat: 地形通行性判断
2026-06-28 22:42:27 +08:00
13e778d072
fix: Mover 可以直接设置位置和朝向
2026-06-28 16:00:59 +08:00
fadcc98864
refactor: 跟随者与勇士移动
2026-06-27 20:33:49 +08:00
8f4c4b7df2
refactor: 将 Layer 0 单独放到一个包
2026-05-17 21:32:23 +08:00