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
7012aa49fc
test(06-03): cover EnemyManager registry, prefab, reuse and dirty (stage 3)
...
- registry/attribute defaults incl. error 53 for non-serializable values
- prefab add/get/create/delete/change and reuse mapping reads
- modifyPrefabAttribute callback and index rebuild
- comparer lifecycle: warn 117 on repeat compareWith, warn 118 without comparer
- skip #06-03-1 (createEnemy does not resolve reuse mapping) per D-05
2026-09-14 14:39:41 +08:00
ff752713b9
test(06-03): cover Enemy special CRUD and clone/copyFrom (stage 2)
...
- enemy.test.ts: addSpecial/get/has/iterate, duplicate warn 96, delete by object/code, clone/copyFrom independence
- special.test.ts: clone value independence and deepEqualsTo code/value rules, NonePropertySpecial clone
2026-09-14 14:35:24 +08:00
965868c219
test(06-03): add Enemy attribute and special unit tests (stage 1)
...
- enemy.test.ts: attribute get/set/add independence and cloneAttributes deep copy
- special.test.ts: CommonSerializableSpecial value/name/description and NonePropertySpecial units
- fixtures inline, legacy and save/load excluded per D-30/D-32
2026-09-14 14:32:40 +08:00
e03fd3cb69
docs(06): add D-44 lint/type quality gate
2026-09-14 14:14:37 +08:00
d9ac8a6007
fix(06): add D-44 lint+type quality gate to all plans
2026-09-14 14:13:58 +08:00
136a9845d6
test(06): fix lint and type errors in data-layer test files
2026-09-14 14:03:25 +08:00
693b337e24
docs(06-02): complete enemy top-level implementation unit test plan
...
- record the D-43 staged execution (component -> pipeline -> integration) of data-state/src/enemy
- add the 06-02 coverage-map section (warn code 137 -> enemy/calculator.ts)
- update STATE/ROADMAP to 2/9 phase-06 plans summarized
2026-09-14 13:38:25 +08:00
e72231d9fa
test(06-02): close GuardAura converter and capability coverage gap
...
- add a normal case for GuardAuraConverter.convert (code 26 -> GuardAura)
- assert GuardAura priority/couldApplyBase/couldApplySpecial/range/applySpecial
- keeps D-30 per-public-method coverage symmetric with CommonAura
2026-09-14 13:35:51 +08:00
06bf4996ee
docs(06-01): complete combat unit test plan
2026-09-14 13:02:13 +08:00
a9b6e7290c
test(06-01): stage 3 integration coverage for combat, damage and map damage
...
- add D-26 attribute-to-damage linkage and getCalculator coverage in damage.test.ts
- cover markEnemyDirty refresh and unregistered delete in mapDamage.test.ts
- cover off-map handler and standalone computed enemy in combat.test.ts
- register suspected buildup compounding bug as #06-01-4 it.skip with a findings entry
- complete the 06-COVERAGE-MAP.md code rows for 106/107/102/103/104/138/139/140/141
2026-09-14 12:58:46 +08:00
f536901733
test(06-01): stage 2 pipeline coverage for EnemyContext
...
- cover full buildup aura conversion and one/two-layer nested auras
- assert four-stage order specials -> base -> query -> final with forward-only visibility
- cover local requestRefresh, needTotallyRefresh full fallback, and warn codes 97/98/99/100/101/110
- fill the 06-COVERAGE-MAP.md rows for the stage 2 warning codes
2026-09-14 12:52:29 +08:00
2e4e6d739d
test(06-01): stage 1 component-level EnemyContext coverage
...
- cover every public EnemyContext method (registry, converters, effect registrations, attachments, dirty, lifecycle)
- apply single fake auras over Full/Rect/Manhattan ranges and assert out-of-range enemies stay unchanged
- add shared 06-COVERAGE-MAP.md skeleton with the code -> module -> case header protocol
2026-09-14 12:49:29 +08:00
ef5e4e9180
chore(06): mark superseded 06-01/06-02 summaries per D-29
2026-09-14 12:42:13 +08:00
85f7b1053b
fix(06): restage all plans per D-43 (component -> combination -> integration), drop tracer-first
2026-09-14 12:34:49 +08:00
feb2f8181d
docs(06): create phase plan
2026-09-14 11:16:56 +08:00
fe4e410cf4
fix(06): revise plans based on checker feedback
2026-09-14 11:04:33 +08:00
384e5673ad
docs(06): capture phase context
2026-09-14 10:33:56 +08:00
8b1297ad95
docs(state): record phase 6 context session
2026-09-14 10:02:15 +08:00
b59f8783d5
docs(06): capture phase context
2026-09-14 10:01:55 +08:00
bcac8a97e4
docs(06-02): complete enemy top-level implementation unit test plan
2026-09-14 09:10:05 +08:00
7b956705d3
test(06-02): cover map damage views, converter and reducer
...
- Zone/Repulse/Laser/Between/Ambush views: range params, damage info, guards
- MainMapDamageConverter: per-special view order and laser face lookup
- MainMapDamageReducer: sum, max-damage type and catch/repulse union
2026-09-14 09:06:59 +08:00
b36a4ee8a9
test(06-02): cover aura converters and special registration
...
- CommonAura/CommonAuraConverter: range selection, buff math, capabilities
- GuardAura/GuardAuraConverter: 3x3 range, guard locator registration, own-locator and missing-source no-ops
- registerSpecials: code 0-27 registered once, guard default, name/description generation
2026-09-14 09:05:34 +08:00
5b76cf4dc9
test(06-02): cover damage calculator, final effect and comparer
...
- MainDamageCalculator: base, defeat, all special branches, guard recursion/warn 137, negative-damage flag, critical limit
- MainEnemyFinalEffect: solid/mimic/unchanged branches and priority
- MainEnemyComparer: base attributes, special count/code/value deep equality
2026-09-14 09:04:23 +08:00
50d868760a
docs(06-01): record plan self-check
2026-09-14 08:55:21 +08:00