fix: per-player phase state so 2nd player can still play after 1st played

This commit is contained in:
kevin.lhereec committed 2026-08-17 11:50:27 +02:00
1 parent 78adeb7920
commit 25ab76c4ac
3 files changed
+25 -14

No files matched your search

+11 -1
View File
@@ -30,6 +30,7 @@ export class GameScene extends Phaser.Scene {
this.handCards = []
this.selectedCard = null
this.resolveObjects = []
this._canPlay = false // true uniquement quand c'est la phase 'selecting' locale
}
create() {
@@ -164,7 +165,10 @@ export class GameScene extends Phaser.Scene {
}
_playSelectedCard() {
if (!this.selectedCard || this.store.phase !== 'selecting') return
if (!this.selectedCard || !this._canPlay) return
// Bloquer immédiatement pour éviter le double clic
this._canPlay = false
this.socket.emit('play-card', {
roomId: this.roomId,
@@ -286,6 +290,7 @@ export class GameScene extends Phaser.Scene {
this.turnText.setText(`Tour ${state.currentTurn} / ${state.maxTurns}`)
if (state.phase === 'selecting') {
this._canPlay = true
this.resolveObjects.forEach(o => o.destroy())
this.resolveObjects = []
this.phaseText.setText('Sélectionnez une carte')
@@ -293,8 +298,13 @@ export class GameScene extends Phaser.Scene {
}
if (state.phase === 'waiting') {
this._canPlay = false
this.phaseText.setText('En attente des autres joueurs...')
}
if (state.phase === 'resolve' || state.phase === 'end') {
this._canPlay = false
}
})
this.socket.on('round-result', ({ playedCards, attrResults }) => {