Le Mode Rapide et le troisième dé
Une façon de jouer plus rapide et plus décontractée : des tours plus courts, construire où l’on veut, et un troisième dé capable de vous téléporter à travers le plateau.

En clair
Peu de temps, mais l’envie d’une partie complète ? Le Mode Rapide est la réponse. Les tours s’enchaînent sur un chrono plus serré — environ 45 secondes chacun — si bien qu’une partie entière se termine bien plus tôt, et la pression tient tout le monde en haleine.
La construction est plus libre, elle aussi. Dans une partie classique, vous devez répartir les maisons uniformément sur un groupe de couleur, une par tour. En Mode Rapide, vous pouvez tout investir dans une seule rue et construire autant que vos moyens le permettent en une seule fois. Et si vous hypothéquez une propriété, un compte à rebours se déclenche : rachetez-la à temps, sinon elle retourne à la banque.
La grande nouveauté, c’est le troisième dé, qui rejoint le lancer à partir du tour 7. Il change votre façon de vous déplacer sur le plateau :
- Un chiffre s’ajoute à votre lancer — les deux dés blancs plus le troisième, donc vous allez plus loin.
- Un Bus vous laisse choisir votre déplacement : prendre la somme complète, ou un seul des dés blancs.
- An "X" (Mr. Monopoly) vous envoie vers la propriété libre la plus proche, ou vers l’adversaire le plus proche à qui vous devriez payer.
- Un triple — les trois dés identiques — vous permet de vous téléporter sur n’importe quelle case du plateau, puis de relancer.
Pour les curieux techniques
Les modes partagent un seul moteur. Un nouveau modes.ts contient MODE_CONFIGS — pour chaque mode : argent de départ, minuteur de tour, plafond de tours, moment de la taxe et autorisation ou non de la construction inégale — et le démon lit le mode de la partie au démarrage, choisit la configuration et la transmet à initializeGame. L’échéance par tour utilise le turnSeconds du mode ; le Classique conserve la base réglable par l’administrateur.
// packages/game-engine/src/modes.ts
export const MODE_CONFIGS: Record<GameMode, ModeConfig> = {
classic: { startingCash: 15000, unevenBuild: false, turnSeconds: 90 },
speed: {
startingCash: 30000,
unevenBuild: true, // build any property, multiple per turn
turnSeconds: 45,
speedDie: true,
speedDieFromRound: 7,
},
// ...
};Le troisième dé est isolé dans speed-die.ts — le type SpeedFace, rollSpeedDie, busOptions, isSpeedTriple et les utilitaires de propriété la plus proche — et NON un fork. Le réducteur partagé ne l’appelle que lorsque state.mode === "speed", en réutilisant le code normal de déplacement et d’arrivée, si bien que le Classique reste intact et que tous les tests précédents du moteur restent au vert.
Aucune migration de base de données n’a été nécessaire pour le dé : le nouvel état (dernière face rapide, bus / téléportation / relance en attente) vit dans le JSON de engine_state, et la valeur du dé voyage dans un champ optionnel de la charge utile dice_rolled.speedDie — sans nouveau type d’événement. La migration 0024 a seulement assoupli create_game pour accepter le mode "speed" ; l’énumération et les colonnes existaient déjà.
