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
|
* Change de joueur⋅se en course après une capture
|
||||||
*
|
*
|
||||||
* @throws {401} Non authentifié⋅e
|
* @throws {401} Non authentifié⋅e
|
||||||
|
* @throws {409} La partie n'est pas démarrée
|
||||||
*/
|
*/
|
||||||
@Post('/switch-running-player')
|
@Post('/switch-running-player')
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
|
@ -50,6 +50,22 @@ export class GameService {
|
|||||||
|
|
||||||
async switchRunningPlayer(): Promise<Game> {
|
async switchRunningPlayer(): Promise<Game> {
|
||||||
const game = await this.find()
|
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 newRunnerId = game.currentRun.runnerId == 1 ? 2 : 1
|
||||||
const firstRun = await this.prisma.playerRun.findFirst({ where: { runnerId: newRunnerId } }) !== null
|
const firstRun = await this.prisma.playerRun.findFirst({ where: { runnerId: newRunnerId } }) !== null
|
||||||
const newRun = await this.prisma.playerRun.create({
|
const newRun = await this.prisma.playerRun.create({
|
||||||
|
Loading…
Reference in New Issue
Block a user