स्पीड मोड और तीसरा पासा
खेलने का एक तेज़ और ज़्यादा खुला अंदाज़ — छोटी बारी, जहाँ चाहें वहाँ निर्माण करें, और एक तीसरा पासा जो आपको पूरे बोर्ड पर टेलीपोर्ट कर सकता है।

आसान शब्दों में
समय कम है पर पूरा खेल खेलना है? स्पीड मोड ही जवाब है। बारियाँ ज़्यादा कसी हुई घड़ी पर चलती हैं — हर बारी करीब 45 सेकंड की — इसलिए पूरा मैच कहीं जल्दी निपट जाता है, और यह दबाव सबको चौकन्ना रखता है।
निर्माण भी ज़्यादा खुला है। क्लासिक खेल में आपको घरों को एक रंग समूह में बराबर बाँटना पड़ता है, हर बारी में एक। स्पीड में आप सब कुछ एक ही सड़क में झोंक सकते हैं और एक ही बार में जितना खरीद सकें उतना बना सकते हैं। और अगर आप कोई संपत्ति बंधक रखते हैं, तो एक टाइमर उल्टी गिनती शुरू कर देता है: समय रहते उसे वापस खरीद लें, वरना वह बैंक के पास लौट जाती है।
सबसे बड़ी खूबी है तीसरा पासा, जो राउंड 7 से चाल में शामिल हो जाता है। यह बोर्ड पर आपके घूमने का तरीका बदल देता है:
- कोई संख्या आपकी चाल में जुड़ जाती है — दो सफेद पासे और तीसरा, इसलिए आप और दूर तक जाते हैं।
- बस आपको अपनी चाल चुनने देती है: पूरा जोड़ लें, या सिर्फ़ सफेद पासों में से एक।
- An "X" (Mr. Monopoly) आपको सबसे नज़दीकी खाली संपत्ति पर भेजता है, या उस सबसे नज़दीकी प्रतिद्वंद्वी के पास जिसे आपको भुगतान करना पड़ता।
- एक ट्रिपल — तीनों पासे एक जैसे — आपको बोर्ड के किसी भी खाने पर टेलीपोर्ट करने देता है, फिर दोबारा पासा फेंकने।
तकनीकी जानकारी
सभी मोड एक ही इंजन साझा करते हैं। एक नया modes.ts MODE_CONFIGS रखता है — हर मोड के लिए शुरुआती नकदी, बारी का टाइमर, राउंड की सीमा, कर का समय और असमान निर्माण की अनुमति है या नहीं — और डेमन शुरुआत में खेल का मोड पढ़ता है, उपयुक्त कॉन्फ़िग चुनता है, और उसे initializeGame में भेजता है। प्रति-बारी समय-सीमा मोड के turnSeconds का उपयोग करती है; क्लासिक एडमिन द्वारा समायोज्य आधार मान बनाए रखता है।
// 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,
},
// ...
};तीसरा पासा speed-die.ts में अलग रखा गया है — SpeedFace टाइप, rollSpeedDie, busOptions, isSpeedTriple और नज़दीकी-संपत्ति वाले सहायक — यह कोई फ़ॉर्क नहीं है। साझा रिड्यूसर इसे तभी बुलाता है जब state.mode === "speed", और सामान्य गति तथा लैंडिंग कोड का दोबारा उपयोग करता है, इसलिए क्लासिक अछूता रहता है और इंजन के सभी पुराने टेस्ट हरे बने रहते हैं।
इस पासे के लिए किसी डेटाबेस माइग्रेशन की ज़रूरत नहीं पड़ी: नई स्थिति (आख़िरी स्पीड फेस, लंबित बस / टेलीपोर्ट / दोबारा रोल) engine_state JSON में रहती है, और पासे का मान एक वैकल्पिक dice_rolled.speedDie पेलोड फ़ील्ड पर सवार होता है — कोई नया इवेंट प्रकार नहीं। माइग्रेशन 0024 ने सिर्फ़ create_game को ढीला किया ताकि वह "speed" मोड स्वीकार करे; एनम और कॉलम पहले से मौजूद थे।
