perf: 전투 시뮬레이터 시작 payload를 줄인다
권위 실행 context를 화면 진입 때 한 번 전달하고 준비 응답은 seed base만 반환한다. 반복별 seed 배열은 결정적 파생값으로 대체하되 구형 queue seed 우선순위와 고정 seed 동작을 보존한다.
This commit is contained in:
@@ -266,6 +266,7 @@ describe('battle sim processor', () => {
|
||||
const firstPayload = buildPayload('battle');
|
||||
delete firstPayload.seed;
|
||||
firstPayload.repeatCnt = 2;
|
||||
firstPayload.seedBase = 'ignored-while-legacy-seeds-exist';
|
||||
firstPayload.seeds = ['server-repeat-0', 'server-repeat-1'];
|
||||
const secondPayload = structuredClone(firstPayload);
|
||||
const observedSeeds: string[] = [];
|
||||
@@ -283,6 +284,30 @@ describe('battle sim processor', () => {
|
||||
expect(observedSeeds).toEqual(['server-repeat-0', 'server-repeat-1']);
|
||||
});
|
||||
|
||||
it('expands one seed base deterministically without a repeated seed array', () => {
|
||||
const firstPayload = buildPayload('battle');
|
||||
delete firstPayload.seed;
|
||||
firstPayload.repeatCnt = 2;
|
||||
firstPayload.seedBase = 'server-root';
|
||||
const secondPayload = structuredClone(firstPayload);
|
||||
const observedSeeds: string[] = [];
|
||||
|
||||
const first = processBattleSimJob(firstPayload, {
|
||||
rngFactory: (seed) => {
|
||||
observedSeeds.push(seed);
|
||||
return new RandUtil(LiteHashDRBG.build(seed));
|
||||
},
|
||||
});
|
||||
const second = processBattleSimJob(secondPayload);
|
||||
|
||||
expect(first).toEqual(second);
|
||||
expect(first.repeatCnt).toBe(2);
|
||||
expect(observedSeeds).toEqual([
|
||||
'str(11,server-root)|str(16,battle-simulator)|int(0)',
|
||||
'str(11,server-root)|str(16,battle-simulator)|int(1)',
|
||||
]);
|
||||
});
|
||||
|
||||
it('returns the fixed defender ID order for reorder action', () => {
|
||||
const payload = buildPayload('reorder');
|
||||
const result = processBattleSimJob(payload);
|
||||
|
||||
Reference in New Issue
Block a user