Commit Graph

191 Commits

Author SHA1 Message Date
f0fd63cda1 feat: 自定义加载 src 下的内容 2026-10-27 22:06:57 +08:00
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
551e63de9a test(08-09): drop removed hook controller .load() in shared fixture
addHook now auto-loads; the returned controller exposes only unload().
2026-10-07 19:13:51 +08:00
ff9fd77880 test(08-09): align data-state integration and perf tests to shipped shapes
- dataClosure: local CoreState helper, Record equip.value, ReplayCommandResult/Active commands, natural sandbox step

- enemyCombination: local CoreState helper

- perf: CoreState loadStarter assembly, Record equip.value, addLayer('event')
2026-10-07 19:13:15 +08:00
827e11c7a4 test(08-09): align remaining data-state integration and perf tests
- delete tileLegacy.test.ts (tested removed data-state/src/legacy; authorized retirement)

- dataClosure: local CoreState helper, Record equip.value, ReplayCommandResult/Active commands, natural sandbox step

- enemyCombination: local CoreState helper

- perf: CoreState loadStarter assembly, Record equip.value, addLayer('event')
2026-10-07 19:13:00 +08:00
98118fac14 test(08-09): align shared fixture and core playback integration tests
- closed-loop: assemble CoreState via loadStarter contract, setFloor(real IGameMap) at both call sites

- coreNode: local createCoreState helper, addLayer('event')

- replayPlayback: drop useMapState, DefaultPassPredicateImpl(state), inject Dir4FaceHandler, setFloor(real map), ReplayCommandResult assertions

- saveablesRoundTrip: real map setFloor, addLayer('event'), Record equip.value, align container restore to uid/value
2026-10-07 19:01:48 +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
e4d392330c fix(07-11): #06-17-4/5/6 add top-level same-reference integration assertions
- CoreState 三档往返中断言装备实例、flag 字段与 follower 实例跨读档为同一实例
- 同时断言其数值/位置仍等于存档点(同引用不改变恢复结果)
- 新增 registerIdentityEquipment 夹具,既有夹具与断言未改动
2026-09-17 13:57:46 +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
5317b2f1e3 test(06-18): add whole-map critical timing and total/avg summary table
Adds a third metric that calls the real calculateCritical for every monster on
the merged map and fully consumes the generator, plus a second console.table
with monsters / total ms (sampled median of one full-map sweep) / avg ms.
avg ms equals total ms divided by the monster count.
2026-09-16 20:39:45 +08:00
c193c4e9a9 test(06-18): add merged real-map scenario perf for buildup and map damage
Merges the first 1/5/13 real 13x13 maps into one grid-tiled map
(13x13, 39x26, 52x52 with 11/79/204 monsters), builds the scene from a real
CoreState (real converters/reducer/calculator/final effect), assigns 12 real
Enemy prefabs (3 CommonAura ranges + GuardAura) via a seeded mulberry32, and
records buildup + map damage build timings with performance.mark/measure.
Zero assertions.
2026-09-16 20:33:18 +08:00
6c4d3709d3 test(06-18): migrate 5 existing perf files to performance.mark/measure
- measureCase sampling loop now pairs mark(startTag)/mark(endTag) with
  measure(measureName, startTag, endTag) and clears marks/measures per sample
- tag names derive from caseName+scale so they never collide across cases
- WARMUP_RUNS/SAMPLE_RUNS/median/min/p95/toFixed(3)/columns unchanged
2026-09-16 20:26:42 +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
940e31f293 test(07-09): #06-17-2 combat-side same-reference hero attribute regression
- migrate the top-level snapshot assertion to heroSave.attribute.values.hp
- add CoreState enemyContext.getBindedHero() regressions: same live attribute before/after load, no rebinding, across all compressions
2026-09-16 18:47:39 +08:00
a44c5d8918 test(06-17): stage 3 complete Low/High compression and reach 27 rows
- expand COMPRESSIONS to NoCompression / LowCompression / HighCompression so the matrix is 3 map counts x 3 compressions x 3 timing items = 27 rows
- keep measureCase, fixture build order, side load and 06-16 files untouched; still zero assertions
- one full run: 5 perf files / 45 tests passed, 0 WARNING/ERROR codes, saveablesReal.perf.ts (27 tests) in 379ms -- no case approaches the 30000ms testTimeout
2026-09-16 16:21:26 +08:00