النمط السريع والنرد الثالث
طريقة لعب أسرع وأكثر مرونة — أدوار أقصر، وبناء أينما تشاء، ونرد ثالث قادر على نقلك آنيًا عبر اللوح.

بكلمات بسيطة
وقتك ضيق لكنك ما زلت تريد لعبة كاملة؟ النمط السريع هو الحل. تجري الأدوار وفق توقيت أكثر إحكامًا — نحو 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"؛ أما النوع التعدادي والأعمدة فكانت موجودة سلفًا.
