fix: Ref 게임 로직과 시나리오 풀 호환을 보정
월 경계, 전투 기술 상한, 연감과 베팅·설문·경매 정산 순서를 Ref 계약에 맞춘다.\n\n시나리오 일반 풀을 ENGINE mutation과 logical tick 기반으로 직렬화하고 914·915 catalog 및 조건부 100기 pool 실행 경계를 추가한다.\n\n경매 worker는 세대별 durable event만 만들고 ENGINE이 row lock 후 상태 전이와 정산을 단일 transaction으로 소유한다.
This commit is contained in:
@@ -62,3 +62,34 @@ describe('SPoolUnderU30 resource', () => {
|
||||
await expect(loadGeneralPoolEntries('SPoolUnknown')).rejects.toThrow('Unsupported general pool');
|
||||
});
|
||||
});
|
||||
|
||||
describe('SPoolUnderU100 resource', () => {
|
||||
it('preserves all 4,682 historical candidates and Ref A100 identifiers', async () => {
|
||||
const entries = await loadGeneralPoolEntries('SPoolUnderU100');
|
||||
|
||||
expect(entries).toHaveLength(4_682);
|
||||
expect(new Set(entries.map((entry) => entry.uniqueName)).size).toBe(4_682);
|
||||
expect(entries[0]).toMatchObject({
|
||||
uniqueName: 'A1000001',
|
||||
info: {
|
||||
uniqueName: 'A1000001',
|
||||
generalName: '1·조민',
|
||||
leadership: 85,
|
||||
strength: 69,
|
||||
intel: 12,
|
||||
specialDomestic: 'che_event_무쌍',
|
||||
dex: [54_691, 398_024, 31_027, 89_301, 24_687],
|
||||
sourcePhase: 1,
|
||||
sourceServerId: 'che_180628_z9X4',
|
||||
sourceGeneralNo: 3,
|
||||
event100Growth: true,
|
||||
},
|
||||
});
|
||||
expect(entries.at(-1)).toMatchObject({
|
||||
uniqueName: 'A1004682',
|
||||
info: { generalName: '99·푸른양귀비', sourcePhase: 99 },
|
||||
});
|
||||
expect(entries.filter((entry) => (entry.info.dex as number[]).every((value) => value === 0))).toHaveLength(512);
|
||||
expect(entries.filter((entry) => entry.info.specialDomestic === null)).toHaveLength(4);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user