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:
@@ -21,14 +21,26 @@ const stableJson = (value: unknown): string => {
|
||||
}
|
||||
return JSON.stringify(value) ?? 'null';
|
||||
};
|
||||
const commandIdentityJson = (value: unknown): string => {
|
||||
export const commandIdentityJson = (value: unknown): string => {
|
||||
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
||||
return stableJson(value);
|
||||
}
|
||||
const commandType = String(Reflect.get(value, 'type'));
|
||||
if (
|
||||
value &&
|
||||
typeof value === 'object' &&
|
||||
!Array.isArray(value) &&
|
||||
Reflect.get(value, 'type') === 'npcPossessGeneral'
|
||||
[
|
||||
'npcPossessGeneral',
|
||||
'selectPoolReserve',
|
||||
'selectPoolCreate',
|
||||
'selectPoolReselect',
|
||||
'voteReward',
|
||||
'auctionBid',
|
||||
].includes(commandType)
|
||||
) {
|
||||
const { acceptedGameAt: _acceptedGameAt, ...identity } = value as Record<string, unknown>;
|
||||
const {
|
||||
acceptedGameAt: _acceptedGameAt,
|
||||
acceptedGameTick: _acceptedGameTick,
|
||||
...identity
|
||||
} = value as Record<string, unknown>;
|
||||
return stableJson(identity);
|
||||
}
|
||||
return stableJson(value);
|
||||
|
||||
Reference in New Issue
Block a user