5edaea1f21
docs(06): add gap-fill plan 06-14 (G-06-04-C replay read-stream)
2026-09-15 11:02:50 +08:00
b1c6d99e4a
docs(06-12): complete replay + enemy-model coverage gap-fill plan
2026-09-15 10:47:23 +08:00
e2c163899d
test(06-12): register blocked four-facing prefab reuse expectation (G-06-03-A)
...
- add correct-expectation it.skip for four facing codes reusing one prefab
- append 06-12 coverage-gap section to 06-COVERAGE-MAP.md
2026-09-15 10:43:03 +08:00
573402592d
test(06-12): register blocked multi-byte bigint/int64 expectation (G-06-04-A)
2026-09-15 10:40:37 +08:00
0a7f25338f
test(06-12): cover heterogeneous replay sequence read-back (G-06-04-B)
2026-09-15 10:38:51 +08:00
94ab2ddcc6
docs(06-11): complete hero + map coverage gap-fill plan
2026-09-15 10:31:33 +08:00
309f1b1850
test(06-11): cover static-dynamic-move-static full chain (G-06-06-A)
...
- mapLayer.test.ts: both keepEvent branches verified after a real-timer move,
with exact event maps, dirty flags, block write-back and dynamic index updates
- 06-COVERAGE-MAP.md: append the 06-11 gap-fill section (create-or-append)
2026-09-15 10:27:59 +08:00
41da613f0b
test(06-11): cover coexisting map layers of different z-index (G-06-06-C)
...
- gameMap.test.ts: three layers at z-index 1/5/9 keep independent block data and
are judged separately by z-index during compareWith (missing ref marks dirty)
2026-09-15 10:25:17 +08:00
436386ea67
test(06-11): cover multi-slot equipment merge and createMap content generation
...
- equipment.test.ts: G-06-05-A asserts combined atk/def for weapon+armor and keeps the other slot's modifier after unequip
- mapState.test.ts: G-06-06-B writes/reads block, point event, event layer binding and dirty flag on a createMap floor
2026-09-15 10:23:16 +08:00
7cb1aaec92
docs(06-10): complete combat/enemy combination gap-fill plan
...
- add 06-10-SUMMARY.md (status: complete)
- update STATE.md position/metrics/decisions/session
- add ROADMAP Wave 3 gap-fill section and mark 06-10 complete
- append #06-10 findings section (no suspected bugs, no skips)
2026-09-15 10:15:20 +08:00
f01c23eba0
test(06-10): cover maximum-pipeline single-monster final damage (G-06-07-A)
...
- drive real MainDamageCalculator over a monster with 10 top-level specials,
real aura 25, real support 26, common/special query and final effects
- assert one exact {damage,turn} with full per-branch derivation in comments
- add a control asserting the result differs without the support pipeline
- append the 06-10 coverage-map section (create-or-append, no new codes)
2026-09-15 10:10:44 +08:00
ef95cc710f
test(06-10): cover combined effects and cross-enemy nested auras
...
- G-06-01-A: four effect kinds together, assert stage order and final
atk/def/hp/special on the computed enemy
- G-06-01-B: m1 -> A1 -> m2 -> A2 -> all enemies, assert per-enemy final
atk plus A1 range boundary via special 21 ownership
2026-09-15 10:06:26 +08:00
fcba44c756
test(06-10): cover multi-source map damage stacking (G-06-01-C)
...
- add inline createTypedInfo/FakeTypedView/SemanticReducer helpers
- assert separated count and reduced damage/type/extra for sourced+sourced,
sourceless+sourceless, and mixed multi-source combinations
2026-09-15 10:04:12 +08:00
714b791339
docs(06): add gap-fill plans 06-10/06-12/06-13 (D-46)
2026-09-15 09:52:34 +08:00
26458ff534
docs(06-11): fix G-06-06-A keepEvent plan to pre-warm source static tile
2026-09-15 09:49:57 +08:00
174a1d5160
docs(06): record coverage gaps and add D-46 gap-fill decision
2026-09-14 23:06:32 +08:00
d815ec7736
docs(06-07): complete top-level integration plan
2026-09-14 21:11:44 +08:00
9f9dd11223
test(06-07): add small-map replay playback and second-recording comparison
...
- play a recorded small-map route with bounded waiting and recording disabled
- assert a second recording equals the first step-by-step (code and param type/value)
- trigger warn 176 and errors 2001-2008 through the real replay commands
- append 06-07 code coverage map rows and record finding #06-07-1
2026-09-14 21:06:39 +08:00
edd4de34dc
test(06-07): add enemy combination stage 2 multi-special and aura pipelines
...
- combine multiple top-level specials through the real damage calculator
- cover real support recursion, aura base/query combination and stage order
- cover final-effect priority order and damage cache markDirty/deleteEnemy/with
2026-09-14 21:06:29 +08:00
bdeafd5cd2
test(06-07): add enemy damage combination stage 1 baselines
...
- add real-API single-special damage baselines via EnemyManager prefab
- add real EnemyContext single common aura and single guard aura baselines
- inline synthetic fixtures with no production changes
2026-09-14 20:42:00 +08:00
7c415df9e9
docs(06): refresh 06-07 for post-refactor replay API
2026-09-14 20:28:14 +08:00
6d3d4dbaed
fix(state): replace removed noRoute with replaySystem disable/revert in hero events
2026-09-14 20:20:20 +08:00
c08f3f8484
fix(replay): enable recording guard; update tests for replay refactor
2026-09-14 20:14:01 +08:00
17d7c8f46a
refactor: refactor replay system record.
2026-09-14 19:55:20 +08:00
2ff422a682
test(06): restore suite green after replaySystem wiring change
2026-09-14 19:16:32 +08:00
f74646ab0c
docs(06-09): complete save/load independent system plan
2026-09-14 19:01:01 +08:00
502d87ba26
test(06-09): cover CoreState top-level saveables round trips
...
- add data-state/test/saveablesRoundTrip.test.ts: public CoreState.saveState/loadState over 5 saveables x 3 compressions, codes 112/113/177/178
- append 06-09 section to 06-COVERAGE-MAP.md (11 codes, create-or-append)
- register #06-09-1..5 suspected defects and the pre-existing test:ci blocker in 06-TEST-FINDINGS.md
2026-09-14 18:58:01 +08:00
c707c87add
test(06-09): cover map, replay and flag save/load round trips
...
- add map/saveLoad.test.ts: StaticTile/DynamicTile/MapLayer/GameMap/MapState round trips, codes 55/122/124
- add replay/saveLoad.test.ts: ReplayArray and ReplaySystem same-instance round trips
- add flag/saveLoad.test.ts: FlagSystem round trip and separated snapshot
2026-09-14 18:57:51 +08:00
3e29548bfa
test(06-09): cover enemy and hero save/load round trips
...
- add enemy/saveLoad.test.ts: Enemy/special/EnemyManager same-instance round trips across 3 compressions, codes 119/120
- add hero/saveLoad.test.ts: modifier/location/rendering/equipment/equipStore/items/follower/state round trips, codes 58/59
- add 06-SAVE-EXCLUSIONS.md: per-class excluded fields and rationale (D-42)
2026-09-14 18:57:42 +08:00
ccc5fc4f1f
docs(06): cover ReplaySystem in 06-09 replay save/load round trips (D-42)
2026-09-14 18:22:57 +08:00
0c1b1555cb
docs(06): update 06-09 for CoreState save/load entry (D-45)
2026-09-14 18:19:28 +08:00
82205a9dc1
feat: 录像存储
2026-09-14 18:17:37 +08:00
cee843981f
feat: 录像记录 & CoreState 存储接口
2026-09-14 18:09:45 +08:00
5470f7a90e
docs(06-08): complete flag + common unit test plan
2026-09-14 17:04:06 +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
2b6de6df5f
docs(06-06): complete map unit test plan
2026-09-14 16:33:08 +08:00
235eb1a5c9
test(06-06): cover DynamicTileMover async lifecycle (stage 3)
...
- mover.test.ts: successful step and layer reindex, cumulative/diagonal movement, warn 126 on an unexpected move code, lifecycle hook order, concurrent start rejection, initial face direction
2026-09-14 16:28:30 +08:00
b971e145e9
test(06-06): cover map registration, layers and dynamic conversion (stage 2)
...
- mapState.test.ts: createMap/getMap, raw validation codes 60/61/62/63/64, activation, areas, compareWith
- gameMap.test.ts: layer lifecycle, aliases 84, background, event layer 131, dirty, resizeLayer, compareWith
- mapLayer.test.ts: matrix, getMapData 80/81, putMapData 8/9, setMapRef 123, dynamic conversion 127/128/129/130, point events, dirty/compareWith, async doors 46
- eventView extension plus stage 1 files already committed
2026-09-14 16:26:10 +08:00
4cffe90794
test(06-06): cover map tile units and event view (stage 1)
...
- tile.test.ts: MapTileBase num/raw/set, default-event restore, per-tile event view, pointEvent linkage, setFaceDirection binder mapping
- staticTile.test.ts: num/raw/set/raw-miss/shouldSave/toDynamic
- dynamicTile.test.ts: create warn 143, num/raw/set, setPos, face direction, toStatic/toStaticIfSafe, step, delete
- eventView.test.ts: extend per-priority dirty tracking and duplicate priority warn 136
2026-09-14 16:19:09 +08:00
6a6f717b04
docs(06-05): complete hero unit test plan
2026-09-14 16:00:26 +08:00
351111487a
test(06-05): cover HeroMover async movement and HeroRendering (stage 3)
...
- add mover.test.ts: config round-trip, Step/CannotMove/Hit, out-of-bound, terrain bypass, enter/leave order, code 144
- add rendering.test.ts: default alpha, setAlpha hook, hook unload
2026-09-14 15:55:08 +08:00
6d5081abcb
test(06-05): cover hero assembly and item/equipment pipeline (stage 2)
...
- add location/state tests: locator, floor/pos hooks, subsystem assembly, code 116, changeFloor hook order
- add equipment/equipStore/items tests: equip/unequip/replace, compareEquip, instance sorting, item routing, code 146
- add follower tests: add/remove hooks, neighbour links, sync/async gather, code 142
- record suspected bugs #06-05-2/#06-05-3 (named-slot empty check, unreachable code 147) as it.skip
2026-09-14 15:52:32 +08:00
c1781b8102
test(06-05): cover HeroAttribute and hero modifier formulas (stage 1)
...
- add attribute.test.ts: base/final, priority sort, delete, save flag, clone, codes 108/109
- add modifier.test.ts: value/percentage formulas, default priorities, setValue recompute
- record suspected bug #06-05-1 (no-modifier final value stale) as it.skip
2026-09-14 15:43:59 +08:00
730bdd12a8
docs(06-04): complete replay unit test plan
2026-09-14 15:25:42 +08:00
cb9c90abc1
test(06-04): cover ReplaySystem and ReplaySandbox pipeline (stage 3)
...
- system.test.ts:registerCommand/getCommand、重复注册 163、record + onRecordCommand、沙箱创建/reset、释放与实例独立性
- sandbox.test.ts:step/onStep、失败即停 158、157、notExecuted 175、156、startIndex、play/pause/resume/stop、setSpeed
- 06-COVERAGE-MAP.md 追加 06-04 小节(148–163、175)
- 06-TEST-FINDINGS.md 登记 #06-04-1..4
2026-09-14 15:21:49 +08:00
8832159f8c
test(06-04): cover ReplayArray pipeline and replay safety decorators (stage 2)
...
- 读流/缓冲区组合:createReadStream / setReplayArray / rebuildIndexArray / 位宽切换
- 触发告警码 149 / 150 / 154 / 155
- func.ts 播放安全装饰器:begin/nested/end/detail、ignoreReplay、收集外 end
- 触发告警码 159 / 160 / 161 / 162
- insert 带参数组合按正确预期 it.skip(#06-04-4)
2026-09-14 15:15:14 +08:00
dfe14b12ec
test(06-04): add ReplayArray codec and single-operation tests (stage 1)
...
- 单类型编解码:boolean / 各整数位宽 + 浮点 / bigint / string / 多参数
- 单数组操作:add / insert / delete / set / get 单次读回
- 触发告警码 148 / 151 / 152 / 153
- int64、多字节 bigint、中间步 delete 按正确预期 it.skip(#06-04-1..3)
2026-09-14 15:11:36 +08:00
df210980b6
docs(06-03): complete enemy data model unit test plan
2026-09-14 14:44:42 +08:00