fix(game): 가오픈 장수 삭제 대기를 실제 접수 시각에 맞춘다
미래 정식 오픈에 고정된 게임 시각과 durable input event 접수 시각을 분리한다. 일반 생성과 선택 풀 생성의 삭제 가능 시각 및 최초 접속 시각만 operational 시각을 사용하고 RNG와 턴 배치는 기존 논리 시각을 보존한다.
This commit is contained in:
@@ -690,6 +690,7 @@ export const createGeneralFromSelectionPool = async (options: {
|
||||
uniqueName: string;
|
||||
personality: string;
|
||||
now?: Date;
|
||||
operationalAcceptedAt: Date;
|
||||
seedOwnerIdentity?: string | number;
|
||||
ownerPicture?: string;
|
||||
ownerImageServer?: number;
|
||||
@@ -754,7 +755,7 @@ export const createGeneralFromSelectionPool = async (options: {
|
||||
const nextChangeAt = new Date(
|
||||
now.getTime() + resolveTurnTermMinutes(worldState) * RESELECTION_TURN_MULTIPLIER * 60_000
|
||||
);
|
||||
const prestartDeleteAfter = buildPrestartDeleteAfter(now, worldState.tickSeconds, config);
|
||||
const prestartDeleteAfter = buildPrestartDeleteAfter(options.operationalAcceptedAt, worldState.tickSeconds, config);
|
||||
const showImgLevel = asNumber(config.showImgLevel, 0);
|
||||
const useOwnerPicture =
|
||||
showImgLevel >= 1 && typeof options.ownerPicture === 'string' && options.ownerPicture !== 'default.jpg';
|
||||
@@ -893,8 +894,8 @@ export const createGeneralFromSelectionPool = async (options: {
|
||||
}
|
||||
await db.generalAccessLog.upsert({
|
||||
where: { generalId },
|
||||
update: { userId, lastRefresh: now },
|
||||
create: { generalId, userId, lastRefresh: now },
|
||||
update: { userId, lastRefresh: options.operationalAcceptedAt },
|
||||
create: { generalId, userId, lastRefresh: options.operationalAcceptedAt },
|
||||
});
|
||||
await clearUnusedReservations(db, userId, now, nowTick);
|
||||
await synchronizeSelectionPoolWorld(db, world);
|
||||
|
||||
Reference in New Issue
Block a user