v0.1.6: 时轮与造化(GameClock/RngHub/时节/年轴/保护)
- 统一时轮 GameClock:七 phase 注册制(production/aging/cultivation/missions/ events/diplomacy/epilogue) + 年首三钩子(婚配→岁贡→族簿);advanceMonth 化作薄壳; 新增系统只注册不改本体;alive 守卫、随机序、族簿时序均与重构前逐一等价 - 金钟罩:3 枚 seed × 560 月指纹常驻(重构前后已验证同哈希;时节属有意变更后重固化) - 统一随机 RngHub:开局播种(crypto UV)、音效白噪独立流、引擎 rng 带 nextCount 审计; 全工程拔除逻辑侧 Math.random - 时节系统:春夏秋冬乘子(春田+10%/夏修+5%/秋市+5%/冬闭+8%)入生产与修炼 - 崩溃保护:advance 异常自动存『出险前』档 + 停速提示回档 - 性能预算:dev-only 单 tick>60ms 报最慢 phase - 横轴年表:十年一格大事/生殇聚合 + 春秋原年轴视图 - 测试 197→225(时钟/收集器/四季/年轴/效果全矩阵/死局链/残留防御)
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { stateFingerprint, longRun } from './fingerprint.helper'
|
||||
|
||||
/**
|
||||
* 金钟罩:固定种子长跑 560 月的状态指纹。
|
||||
* 任何改动(重构日程/调平衡/加系统)若改变了确定性序列或结果,此测试立刻报红。
|
||||
* 更新规则:仅当**有意**变更序列逻辑时,三枚 seed 指纹同版更新并注明原因。
|
||||
*/
|
||||
// 0.1.6 基线:GameClock 重构(行为等价)+ 时节系统(有意变更乘子)后重新固化
|
||||
const GOLDEN: Record<string, string> = {
|
||||
'bell-seed-1': '9af71ecb',
|
||||
'bell-seed-2': '34f102fd',
|
||||
'bell-seed-3': '753aca71'
|
||||
}
|
||||
|
||||
describe('金钟罩 · 长跑确定性指纹', () => {
|
||||
for (const [seed, hash] of Object.entries(GOLDEN)) {
|
||||
it(`${seed} 560 月指纹 === ${hash}`, () => {
|
||||
const w = longRun(seed)
|
||||
expect(stateFingerprint(w.state)).toBe(hash)
|
||||
})
|
||||
}
|
||||
|
||||
it('同 seed 两次长跑指纹一致(无状态污染)', () => {
|
||||
const a = stateFingerprint(longRun('bell-seed-1').state)
|
||||
const b = stateFingerprint(longRun('bell-seed-1').state)
|
||||
expect(a).toBe(b)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user