Commit Graph

462 Commits

Author SHA1 Message Date
1ff22dd07d feat: 寻路系统接线 2026-09-15 21:28:52 +08:00
2ba3089c9a docs(phase-07): update tracking after wave 7 2026-09-15 21:14:18 +08:00
30cdb5c68a docs(07-07): complete save code 178 semantic fix plan 2026-09-15 21:13:40 +08:00
95ea6609c6 fix(07-07): #06-09-5 warn code 178 for unloaded save keys
- core.ts loadState: 差集方向改为 loaded.difference(total),178 = 存档出现但未加载的 key
- saveablesRoundTrip.test.ts:322-334 改写为「缺 key 不触发 178、仍触发 177」负向见证并更名
- saveablesRoundTrip.test.ts:337-349 取消 it.skip,承担「多出 key 触发 178」正向见证
2026-09-15 21:10:33 +08:00
115d835b56 docs(phase-07): update tracking after wave 6 2026-09-15 21:01:58 +08:00
9cd9934651 docs(07-06): complete flag/common mover backward fix plan 2026-09-15 21:00:38 +08:00
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
fb5589cc02 docs(phase-07): update tracking after wave 5 2026-09-15 20:50:48 +08:00
cdc95b1d90 docs(07-05): complete map data-fixes plan 2026-09-15 20:50:13 +08:00
620382cc5f fix(07-05): #06-06-1 warn code 128 for an out-of-map dynamic transfer
- transferToDynamic 越界分支由 131 改为 128,对齐两个 transferToStatic* 兄弟分支
- 取消 mapLayer.test.ts 的码 128 用例 skip
2026-09-15 20:45:01 +08:00
3b1b9f1d5c fix(07-05): #06-09-3 restore the dynamic tile num on load
- loadState 先 this.set(save.num),再恢复存档事件
- 取消 saveLoad.test.ts 的 num 恢复用例 skip
2026-09-15 20:43:20 +08:00
b1c20ea07d docs(phase-07): update tracking after wave 4 2026-09-15 20:38:32 +08:00
b55ca28c1c docs(07-04): complete hero data-fixes plan 2026-09-15 20:37:35 +08:00
2d2855c394 chore(07-04): #06-05-3 annotate the retained 147 skip and close windows 25/26
- D-06: equipment.test.ts code-147 case stays it.skip with a Chinese note that 147 is a reserved code, currently unreachable by design; no production code touched
- WINDOWS.md ids 25/26 marked fixed (open_count 13 -> 11); no new ledger entries
2026-09-15 20:34:03 +08:00
2452711edb fix(07-04): #06-05-2 prefer the first empty named slot
- getCouldEquipSlot tests empty === -1 so the first empty named slot wins instead of always replacing the first match
- un-skip the named-slot empty-preference case; canEquipTo string branch untouched
2026-09-15 20:30:32 +08:00
04943416a5 fix(07-04): #06-05-1 refresh final attributes without modifiers
- recalculateAttribute writes the base value into finalAttribute when no modifier is attached
- un-skip the base-only-change case; catchCalculateProgress is intentionally left untouched
2026-09-15 20:29:27 +08:00
02786047d2 fix(07-04): #06-09-2 deep copy the equipment save snapshot
- saveState returns new Map(this.equips) and [...this.slots] so the snapshot is decoupled from the live state
- un-skip the independent-snapshot and container round-trip cases
2026-09-15 20:27:57 +08:00
e7f341095d fix(07-04): #06-09-1 restore equipment modifiers from split save tables
- loadNoCompression reads value entries from state.value instead of state.percentage
- loadDiff seeds this.value/this.percentage from the item.equip base definition before applying save diffs
- un-skip the four correct-expectation EquipmentState round-trip cases (Low/High percentage, NoCompression value, compressed unchanged value)
2026-09-15 20:26:45 +08:00
76a62918d7 docs(phase-07): update tracking after wave 3 2026-09-15 19:05:05 +08:00
7eea41525d docs(07-03): complete replay data-fixes plan 2026-09-15 19:01:34 +08:00
40824cc10b fix(07-03): #06-04-4 shift replay params in the insert direction
- Move paramArray bytes to paramStart + length so later steps keep their data
- Move indexArray entries to index + 1 so get(i) sees the inserted step
- Un-skip both insert order cases
2026-09-15 18:50:30 +08:00
45dde1cb1c fix(07-03): #06-04-3 shift param indexes from the command index on delete
- Add a private getParamRange helper using paramUsed as the last-step sentinel
- Roll back indexArray from the command index instead of the param byte offset
- Un-skip the middle-step delete cases
2026-09-15 18:45:31 +08:00
965e002476 fix(07-03): #06-04-2 round-trip multi-byte and negative bigint parameters
- Encode bigint bytes by bit-shift mask instead of the broken accumulator
- Decode the bigint length prefix and payload bytes unsigned
- Encode negative bigint as dedicated type 8 with magnitude payload
- Un-skip the multi-byte and heterogeneous bigint cases, add focused cases
2026-09-15 18:37:21 +08:00
528b8c91a5 fix(07-03): #06-04-1 round-trip negative int64 and renumber param type codes
- Correct the int64 decode multiplier to 2147483648
- Encode negative int64 as dedicated type 5 with magnitude payload
- Shift float/bigint/long-string/short-string type codes to 6/7/9/length+9
- Un-skip the int64 round-trip case and add negative int64 focused cases
2026-09-15 18:35:18 +08:00
c7e5a643c2 docs(07-03): amend replay plan to dedicated type codes for negative int64/bigint (D-09 round 2) 2026-09-15 18:19:42 +08:00
f0278dff7e docs(07-03): amend replay plan to add negative int64/bigint scope (D-09 approve-both) 2026-09-15 17:58:39 +08:00
4eec9ec22c docs(phase-07): update tracking after wave 2 2026-09-15 17:19:46 +08:00
bcb43f7105 docs(07-02): complete enemy data-fixes plan 2026-09-15 17:19:14 +08:00
ad0d70441b chore(07-02): close windows ledger entry 24
- G-06-03-A (#06-03-1) two skipped tests now green after the reuse
  mapping fix; open_count 15 -> 14, fixed_count 12 -> 13
2026-09-15 17:18:00 +08:00
b70ccbd5f6 fix(07-02): #06-03-1 resolve the reuse mapping in enemy creation
- createEnemy/createEnemyById now resolve prefabs through internalGetPrefab,
  matching getPrefab/deletePrefab/modifyPrefabAttribute behaviour
- add a Chinese invariant comment above createEnemyById covering all
  code/id prefab entry points
- un-skip the two correct-expectation reuse mapping cases in manager.test.ts
  (assertions unchanged) and sync their Chinese comments
2026-09-15 17:16:44 +08:00
657d9720af docs(phase-07): update tracking after wave 1 2026-09-15 17:11:11 +08:00
9177823abe docs(07-01): complete combat data-fixes plan 2026-09-15 17:10:11 +08:00
5d6381ad98 chore(07-01): close windows ledger entries 19/20/21/27
- mark the four combat skipped-test findings fixed after their correct-expectation
  cases were un-skipped and turned green
2026-09-15 17:05:38 +08:00
650b96059d fix(07-01): #06-01-3 abandon the battle only when before returns false
- read the before result into proceed and abandon only on falsy, matching the
  ICombatScript.before contract in types.ts
- un-skip the correct-expectation case and correct the three existing cases that
  encoded the inverted semantics (explicit truthy beforeResult, complementary
  truthy-branch assertion, synced FakeScript comment)
2026-09-15 17:02:57 +08:00
24534fbca6 fix(07-01): #06-01-2 clear enemy-sourced map damage on delete
- register viewStore/damageStore reverse indexes when sourced damage is written
  and re-register them after a refreshIndex recompute (route A)
- deleteEnemy now finds and removes the enemy-sourced damage instead of leaving
  stale entries behind
- un-skip the correct-expectation case in mapDamage.test.ts (#06-01-2)
2026-09-15 17:00:44 +08:00
8225ef129c fix(07-01): #06-01-4 reset enemy views before a full buildup
- reset every EnemyView before a full buildup so repeated builds start from
  the base enemy instead of compounding on the previous result
- un-skip the correct-expectation cases in damage.test.ts (#06-01-4) and
  context.test.ts (#06-15-1)
2026-09-15 16:55:36 +08:00
9e96df4c3b fix(07-01): #06-01-1 align critical info with the yielded next value
- move targetInfo assignment into the damage < referenceDamage branch so the
  reported critical info matches the yielded next value
- un-skip the correct-expectation case in damage.test.ts (#06-01-1)
2026-09-15 16:53:50 +08:00
7ae08c6920 chore(07): remove obsolete phase .gitkeep 2026-09-15 16:28:54 +08:00
817201c213 docs(07): finalize phase plan and record planning state 2026-09-15 16:22:33 +08:00
8d66bc4ae2 fix(07): revise plans based on checker feedback 2026-09-15 16:10:58 +08:00
5a186d4a24 docs(07): create phase plan 2026-09-15 15:55:24 +08:00
46248dc7f8 docs(phase-7): add validation strategy 2026-09-15 14:20:42 +08:00
b0db13120f docs(07): research phase domain 2026-09-15 14:19:01 +08:00
e7f42dd91b docs(state): record phase 7 context session 2026-09-15 14:00:03 +08:00
4ede7fcd96 docs(07): capture phase context 2026-09-15 13:59:51 +08:00
ca1b654bb4 docs(roadmap): add phase 7 for data-side defect fixes
Add Phase 7 (数据端缺陷修复) scoped to fixing data-side suspected bugs surfaced by Phase 6 unit tests, excluding rendering. Register FIX-01, update roadmap progress table and state.
2026-09-15 13:39:48 +08:00
ddb528bc36 docs(06-15): complete combat interface coverage gap-fill plan
- add 06-15-SUMMARY.md (status complete; #06-15-1 correct-expectation skip documented)
- update STATE.md position/metrics/decisions/blockers and ROADMAP.md wave 5 + plan counts
- record blocked skip in WINDOWS.md ledger (entry 27)
2026-09-15 13:23:50 +08:00
d3eb4d2a00 docs(06-15): append coverage-map section for G-06-01-D
- register G-06-01-D -> deleteAura skip case -> context.test.ts -> 06-15
- note the case is a D-05 correct-expectation it.skip blocked by #06-15-1 (same root cause as #06-01-4)
- no new warn/error codes; existing cases and skips untouched
2026-09-15 13:17:41 +08:00
65251f5f42 test(06-15): cover deleteAura via correct-expectation skip and register #06-15-1
- add pplies a global aura after addAura and stops applying it after deleteAura (it.skip, D-05)
- reuse in-file createContextFixture/createEnemy/FakeAura/FakeConverter, no new helpers
- register finding #06-15-1 in 06-TEST-FINDINGS.md (same root cause as #06-01-4)
- unskip-verified: addAura applies (atk 2 -> 5) but deleteAura + buildup stays 5, expected 2
2026-09-15 13:15:51 +08:00
c747cd53d5 docs(06): add gap G-06-01-D and plan 06-15 (deleteAura coverage) 2026-09-15 13:07:12 +08:00