From 50a9f3369c6fca62dce5c94f027c0eb06b43add9 Mon Sep 17 00:00:00 2001 From: Emmy D'Anello Date: Sun, 8 Dec 2024 22:40:51 +0100 Subject: [PATCH] =?UTF-8?q?Si=20un=20d=C3=A9fi=20=C3=A9tait=20en=20cours?= =?UTF-8?q?=20lors=20d'une=20capture,=20on=20le=20cl=C3=B4t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/game/game.controller.ts | 1 + server/src/game/game.service.ts | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/server/src/game/game.controller.ts b/server/src/game/game.controller.ts index d384a9e..6eb35e4 100644 --- a/server/src/game/game.controller.ts +++ b/server/src/game/game.controller.ts @@ -39,6 +39,7 @@ export class GameController { * Change de joueur⋅se en course après une capture * * @throws {401} Non authentifié⋅e + * @throws {409} La partie n'est pas démarrée */ @Post('/switch-running-player') @UseGuards(JwtAuthGuard) diff --git a/server/src/game/game.service.ts b/server/src/game/game.service.ts index 9f5159f..45b8ddc 100644 --- a/server/src/game/game.service.ts +++ b/server/src/game/game.service.ts @@ -50,6 +50,22 @@ export class GameService { async switchRunningPlayer(): Promise { const game = await this.find() + if (!game.started) + throw new ConflictException("La partie n'a pas encore démarré.") + + // Clôture de l'éventuel défi en cours, qui n'a alors pas été réussi + await this.prisma.challengeAction.updateMany({ + where: { + playerId: game.currentRun.runnerId, + runId: game.currentRunId, + active: true, + }, + data: { + active: false, + success: false, + }, + }) + const newRunnerId = game.currentRun.runnerId == 1 ? 2 : 1 const firstRun = await this.prisma.playerRun.findFirst({ where: { runnerId: newRunnerId } }) !== null const newRun = await this.prisma.playerRun.create({