feat(0.1.14-P3): 世界自进化 WorldSim(五大闭环)+ 引擎时钟合一

- WorldSim(engine/sim/WorldSim.ts + worldsim-data.ts):
  A 资源循环市场(库存池/再平衡/价格弹性——Market 行情联动 sim.mult)
  B NPC 聚合演化(宗主换代/境界成长/势力=境界+财力+兵员;换代计数)
  C 秘境灵气(探索消耗/恢复)+ 灵气潮汐(6年周期×修炼倍率)
  D 灾年签(旱涝蝗疫兽寒,联动市场池)
  E 天下快讯(节流 24 月滚动 120 条,世界动态 feed)
- 相位:新增 worldsim(diplomacy 后 epilogue 前);capabilities 加「天下演序」卡可停用
- 时钟合一:World.clock = Kernel.clock(单一时钟驱动,消除双时钟漂移)
- 发现并修复:worldsim 注册被文件搬迁覆盖丢失(修改纪律验证中招——已补回);
  WorldSim 内 Math.random 根除(改 w.rng)
- fingerprint 纳入 worldSim 概要(市场/灵脉/潮汐/换代/快讯数)
- 金钟罩三档重固化(0.1.14 正式基线,受控变更)
- 验证:35 套件/967 测试全绿;typecheck 0 error
This commit is contained in:
2026-08-23 13:31:34 +08:00
parent 8dfdaf843a
commit 5dd5d6b558
16 changed files with 370 additions and 45 deletions
+3 -3
View File
@@ -16,12 +16,12 @@ function baseWorld(seed: string): World {
}
describe('GameClock 统一时轮', () => {
it('个 phase 全被注册且顺序固定', () => {
it('个 phase 全被注册且顺序固定(含 worldsim', () => {
const clock = buildClock()
const clock2 = new GameClock()
clock2.register('production', () => undefined)
expect(clock.subscriptionCount()).toBeGreaterThanOrEqual(10)
expect(PHASE_ORDER.length).toBe(7)
expect(PHASE_ORDER.length).toBe(8)
expect(clock2.subscriptionCount()).toBe(1)
})
@@ -34,7 +34,7 @@ describe('GameClock 统一时轮', () => {
it('stepMonthly 返回各 phase 耗时统计(性能预算通道)', () => {
const w = baseWorld('clk-a')
const report = w.clock.stepMonthly(w)
expect(report.length).toBe(7)
expect(report.length).toBe(8)
for (const r of report) {
expect(PHASE_ORDER).toContain(r.phase)
expect(typeof r.ms).toBe('number')