diff --git a/apps/server/src/domains/game/application/useCases/reportBombHitUseCase.ts b/apps/server/src/domains/game/application/useCases/reportBombHitUseCase.ts index 927f8ba..cac9fbc 100644 --- a/apps/server/src/domains/game/application/useCases/reportBombHitUseCase.ts +++ b/apps/server/src/domains/game/application/useCases/reportBombHitUseCase.ts @@ -44,8 +44,8 @@ } const targetPlayerId = input.payload.targetPlayerId; - if (targetPlayerId && botHitReaction.applyBotHitStun(targetPlayerId, input.nowMs)) { - return; + if (targetPlayerId) { + botHitReaction.applyBotHitStun(targetPlayerId, input.nowMs); } publishPlayerDeadFromBombHit(roomId, input, output); diff --git a/apps/server/src/domains/game/loop/GameLoop.ts b/apps/server/src/domains/game/loop/GameLoop.ts index 633959d..35e3df8 100644 --- a/apps/server/src/domains/game/loop/GameLoop.ts +++ b/apps/server/src/domains/game/loop/GameLoop.ts @@ -109,13 +109,14 @@ } private processSingleTick(): void { - const nowMs = performance.now(); + const monotonicNowMs = performance.now(); + const wallClockNowMs = Date.now(); const elapsedMs = Math.max( 0, - Math.round(nowMs - this.startMonotonicTimeMs), + Math.round(monotonicNowMs - this.startMonotonicTimeMs), ); const gridColorsSnapshot = this.mapStore.getGridColorsSnapshot(); - this.updateBotPlayers(nowMs, elapsedMs, gridColorsSnapshot); + this.updateBotPlayers(wallClockNowMs, elapsedMs, gridColorsSnapshot); const tickData = this.buildTickData(); this.onTick(tickData); }