c5b0a255ba
fix: 注释与实现错位问题
2026-10-26 22:18:30 +08:00
a7dc542671
fix: IDataCommon 漏写 enemyStore
2026-10-20 21:25:16 +08:00
e6f4346924
refactor: 插件系统结构
2026-10-20 20:44:33 +08:00
3f74d5f25e
feat: 完善内置特殊属性
2026-10-16 20:30:04 +08:00
a0e402728e
refactor: 数据端用户结构
2026-10-16 17:29:51 +08:00
d1ebca0b16
chore: 调整加载接口
2026-10-14 20:41:14 +08:00
2f3d3387a0
refactor: 插件系统 & 数据端顶层移植
2026-10-14 20:32:46 +08:00
a15b79b29f
feat: 商店系统实现
2026-10-12 19:17:06 +08:00
c1ebd25892
refactor: 怪物特殊属性适应新接口
2026-10-12 17:05:58 +08:00
7140ae6987
feat: 商店接口
2026-10-10 19:35:44 +08:00
751f206829
feat: 添加裸怪物临界计算
2026-10-10 18:45:29 +08:00
77a8adc05d
feat: 特殊光环描述
2026-10-10 17:42:34 +08:00
1bcdcc3677
refactor: 特殊属性定义方式
2026-10-09 20:09:51 +08:00
8fb16a103d
refactor: 删除 setAttributeDefaults 接口
2026-10-08 19:17:54 +08:00
47c6e2c8db
test(08-10): cover data-system/data-state gap codes and add loader tests
...
- eventDispatch: assert codes 171 (missing event id) and 172 (non-boolean reduce result)
- path/system: assert code 182 when binding a foreign CoreState layer
- data-state event: assert code 1001 for an unknown setBlock tile
- loader: new loader.test.ts covering PrefixedJSONCProcessor 66/67, DefaultDataLoaderHook 69/success, and MotaDataLoader public surface (66/67/68/69; 68 recorded unreachable)
2026-10-08 14:45:10 +08:00
1ef95cd36b
test(08-08): align core/event/commands tests to shipped interfaces
...
- coreEventLayer: redirect to MapState.fromRaw real event-layer assembly
- event: CoreState config constructor + addLayer('event') + setFloor(map)
- commands: CoreState config constructor; expected values aligned to
ReplayCommandResult (Success/Failed) instead of boolean
- commands.ts: user-fixed boolean assertParameter and 'boolean' paramTypes,
plus user-authorized // Parameter: comments to JS typeof semantics
2026-10-07 18:04:01 +08:00
36d8b4fb3c
test(08-01): migrate data-layer tests into __test__ dirs
...
Move 65 *.test.ts + 6 *.perf.ts across data-{common,base,system,state} into sibling __test__/ (data-state/test -> data-state/__test__), incl. fixtures/floors.json and non-test helpers; rewrite Rule A relative specifiers (+1 depth), keep Rule B unchanged; sync script/test-data-node.ts require paths. Gates: test:ci=66 files, test:perf=6 files, eslint clean, zero config/production changes.
2026-10-04 17:34:09 +08:00
ce459d9e2d
chore: 调整部分错误
2026-10-04 15:44:52 +08:00
bbdea04393
refactor: 地图前半部分
2026-09-28 23:36:54 +08:00
2198734f81
refactor: replay system
2026-09-23 18:25:31 +08:00
4e305e392a
refactor(type): material types.
2026-09-21 19:16:33 +08:00
50bd679fad
feat: 渲染端配置加载
2026-09-21 10:09:20 +08:00
d65b107819
refactor: 渲染端配置文件
2026-09-20 23:49:27 +08:00
cc434a6c66
refactor: 加载系统重构
2026-09-20 20:53:46 +08:00
d12790280a
feat: 完成数据端数据类型的构建
2026-09-20 19:11:43 +08:00
ed0b95b1c4
feat: CoreState 配置添加 loadStarter
2026-09-18 20:36:03 +08:00
f5a6ed8cf6
refactor: 加载系统
2026-09-18 20:30:40 +08:00
ae5a956492
chore: 删除 IDirectionMapper,全换成 IFaceHandler
2026-09-18 08:26:57 +08:00
4aaea68b65
refactor: 寻路系统改进
2026-09-17 21:21:08 +08:00
e9e9939bd8
refactor: 删除 data-state 中的 legacy 文件夹
2026-09-17 19:37:30 +08:00
a2a8e6ec35
refactor: ReplaySystem.route -> ReplaySystem.array,修复 disabled 标记在 setReplayArray 中清零可能导致意外记录的问题
2026-09-17 19:18:30 +08:00
a027b04d14
chore: 清空类型错误
2026-09-17 18:38:29 +08:00
e2e27d9ff2
refactor: 删除 data-fallback
2026-09-17 18:24:07 +08:00
10755475a4
refactor: 删除 legacy-plugin-data
2026-09-17 18:21:35 +08:00
7121c93914
test: update replay command assertions after ReplayCode rename
...
49aacb0 renamed ReplayMoveCommand -> ReplayMove (and siblings); sync the two stale expectations in data-state/src/replay/commands.test.ts (constructor names + core.ts source assertions).
2026-09-17 13:15:30 +08:00
fe595b7983
refactor: 存档系统应处于渲染层
2026-09-16 21:54:12 +08:00
49aacb087a
refactor: 调整录像命名
2026-09-16 21:51:19 +08:00
513a9c354c
fix: 读档的 executor 未执行
2026-09-16 21:44:52 +08:00
b2626bd438
fix(07-09): keep hero attribute instance stable and clear generic variance
...
- HeroAttribute.loadState replaces its private base object; the HeroAttribute wrapper identity is preserved so equipment/combat references stay valid across load (#06-17-1/#06-17-2).
- Clone the incoming base attribute in the constructor so the shared HERO_DEFAULT_ATTRIBUTE is no longer mutated across CoreState instances.
- Use any for the hero position in combat handler/aura/enemy-view generics to clear the 45 new type errors introduced by HeroAttribute implementing ISaveableContent.
2026-09-16 19:35:54 +08:00
1ff22dd07d
feat: 寻路系统接线
2026-09-15 21:28:52 +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
25e8c0662a
test(06): normalize CRLF line endings for enemy comparer/special tests
2026-09-15 13:00:04 +08:00
6d3d4dbaed
fix(state): replace removed noRoute with replaySystem disable/revert in hero events
2026-09-14 20:20:20 +08:00
82205a9dc1
feat: 录像存储
2026-09-14 18:17:37 +08:00
cee843981f
feat: 录像记录 & CoreState 存储接口
2026-09-14 18:09:45 +08:00
136a9845d6
test(06): fix lint and type errors in data-layer test files
2026-09-14 14:03: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
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