Si un défi était en cours lors d'une capture, on le clôt
This commit is contained in:
parent
31c44eab6e
commit
50a9f3369c
@ -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)
|
||||
|
@ -50,6 +50,22 @@ export class GameService {
|
||||
|
||||
async switchRunningPlayer(): Promise<Game> {
|
||||
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({
|
||||
|
Loading…
Reference in New Issue
Block a user