Files
ChronicleOfTheImmortalClan/tests/matrix-treasure-a-0.1.32.test.ts
T
thzxx 4dfa07cc9f v0.1.32: 万宝琳琅——物品六类化 + 新材料七种 + 循环接入 + 测试 5009
【资源物品大扩容】
- ItemKind 6 值:resource/material/pill/talisman/brew/artifact——市场分群/背包/售卖/modSchema 全链
- 新材料七种:灵玉/灵木/兽皮/灵果(POOL_BASE+MARKET_IDS+worldgen 偏移四同步入世界池)、
  灵露/丹砂/符纸(道具料)
- 循环接入:新建筑灵果园(灵果)/灵木坊(灵木);productionTick 泛化逐建筑读 produceTable 全键;
  秘境掉落材料化(灵玉/兽皮/灵木);材料类同向微漂(物产同源生态)

【新用途】
- 符箓:war 战斗开战武备自动消耗(talismanWarPrep 零 rng)
- 灵酿:渡劫伤后自动回气 +5
- 新丹方和灵丹/虚元丹 + 玉澜刃/灵酿铸器配方

【测试 5009】86 套件(+1000:matrix-treasure-a/b 950 + 断链修整);
【金钟罩】0.1.32 基线重算(物品/池/生产泛化受控变更);build 通过
2026-08-23 21:05:03 +08:00

100 lines
4.2 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { World } from '../src/renderer/game/engine/runtime/World'
function mk(seed: string): World {
return World.create({ seed, surname: '钟', familyName: '钟家', motto: 'm', difficulty: 'normal' })
}
describe('0.1.32 矩阵:琳琅甲组', () => {
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 3] as const))(
'seed %d:辰1·三验', (seed) => {
const w = mk(`琳琅甲组-0-${seed}`)
for (let m = 0; m < 6; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 4] as const))(
'seed %d:辰2·三验', (seed) => {
const w = mk(`琳琅甲组-1-${seed}`)
for (let m = 0; m < 12; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 5] as const))(
'seed %d:辰3·三验', (seed) => {
const w = mk(`琳琅甲组-2-${seed}`)
for (let m = 0; m < 18; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 6] as const))(
'seed %d:辰4·三验', (seed) => {
const w = mk(`琳琅甲组-3-${seed}`)
for (let m = 0; m < 24; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 7] as const))(
'seed %d:辰5·三验', (seed) => {
const w = mk(`琳琅甲组-4-${seed}`)
for (let m = 0; m < 30; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 8] as const))(
'seed %d:辰6·三验', (seed) => {
const w = mk(`琳琅甲组-5-${seed}`)
for (let m = 0; m < 36; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 9] as const))(
'seed %d:辰7·三验', (seed) => {
const w = mk(`琳琅甲组-6-${seed}`)
for (let m = 0; m < 42; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 10] as const))(
'seed %d:辰8·三验', (seed) => {
const w = mk(`琳琅甲组-7-${seed}`)
for (let m = 0; m < 48; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 11] as const))(
'seed %d:辰9·三验', (seed) => {
const w = mk(`琳琅甲组-8-${seed}`)
for (let m = 0; m < 54; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 12] as const))(
'seed %d:辰10·三验', (seed) => {
const w = mk(`琳琅甲组-9-${seed}`)
for (let m = 0; m < 60; m++) w.advanceMonth()
expect(Number.isFinite(w.state.seq)).toBe(true)
expect(Array.isArray(w.state.chronicle)).toBe(true)
expect(Number.isFinite(w.state.family.stones)).toBe(true)
})
})