Permettre de rejouer une partie sans recréer la salle #72

Open
opened 2026-07-02 06:24:50 +00:00 by Reliodas · 0 comments
Owner

Constat audit du 2 juillet 2026 : après final-finished (ou finished en première manche si le MJ ne poursuit pas), aucune action ne permet de relancer une partie. Le MJ doit fermer la salle et tout le monde doit rejoindre un nouveau code, ce qui casse le rythme d'une soirée jeu.

Objectif : ajouter une action MJ new-game qui ramène la salle au lobby pour enchaîner une nouvelle partie avec les mêmes participants et le même code.

Tâches :

  • ajouter l'action hôte new-game, validée côté serveur (rôle MJ, statuts autorisés : finished, round2-finished, final-finished) ;
  • réinitialiser l'état de jeu : scores, rôles (les spectateurs éliminés redeviennent candidats), réponses, états de manche 2/finale, chronomètres nettoyés ;
  • retenir drawnQuestionIds entre les parties de la même salle pour éviter de retomber sur les mêmes questions tant que la banque le permet ;
  • mettre à jour les vues MJ/candidat/spectateur avec un bouton « Nouvelle partie » sur les écrans de fin ;
  • synchroniser le contrat d'événements (shared, handlers, client) et docs/Implémentation.md / docs/Regles.md.

Critères d'acceptation :

  • le MJ peut lancer une nouvelle partie depuis l'écran de fin sans fermer la salle ;
  • les candidats et spectateurs reviennent au lobby avec leurs noms et leurs sessions (jetons de reconnexion) intacts ;
  • l'action est refusée pour tout autre rôle ou statut ;
  • aucun chronomètre ni intervalle ne survit à la réinitialisation ;
  • tests : transitions valides/invalides côté serveur, test d'intégration Socket.IO couvrant fin de finale → nouvelle partie, et tests composants pour le bouton.

Dépendances / limites : indépendant de #53 (modération) ; la persistance Redis (#44) doit sérialiser l'état réinitialisé sans champ résiduel.

Constat audit du 2 juillet 2026 : après `final-finished` (ou `finished` en première manche si le MJ ne poursuit pas), aucune action ne permet de relancer une partie. Le MJ doit fermer la salle et tout le monde doit rejoindre un nouveau code, ce qui casse le rythme d'une soirée jeu. Objectif : ajouter une action MJ `new-game` qui ramène la salle au lobby pour enchaîner une nouvelle partie avec les mêmes participants et le même code. Tâches : - [ ] ajouter l'action hôte `new-game`, validée côté serveur (rôle MJ, statuts autorisés : `finished`, `round2-finished`, `final-finished`) ; - [ ] réinitialiser l'état de jeu : scores, rôles (les spectateurs éliminés redeviennent candidats), réponses, états de manche 2/finale, chronomètres nettoyés ; - [ ] retenir `drawnQuestionIds` entre les parties de la même salle pour éviter de retomber sur les mêmes questions tant que la banque le permet ; - [ ] mettre à jour les vues MJ/candidat/spectateur avec un bouton « Nouvelle partie » sur les écrans de fin ; - [ ] synchroniser le contrat d'événements (shared, handlers, client) et `docs/Implémentation.md` / `docs/Regles.md`. Critères d'acceptation : - le MJ peut lancer une nouvelle partie depuis l'écran de fin sans fermer la salle ; - les candidats et spectateurs reviennent au lobby avec leurs noms et leurs sessions (jetons de reconnexion) intacts ; - l'action est refusée pour tout autre rôle ou statut ; - aucun chronomètre ni intervalle ne survit à la réinitialisation ; - tests : transitions valides/invalides côté serveur, test d'intégration Socket.IO couvrant fin de finale → nouvelle partie, et tests composants pour le bouton. Dépendances / limites : indépendant de #53 (modération) ; la persistance Redis (#44) doit sérialiser l'état réinitialisé sans champ résiduel.
Reliodas added this to the 1.0.0-beta milestone 2026-07-02 06:24:50 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: jeux/le-grand-concours#72
No description provided.