import { LINES_20, defineGame, scatterSym, sym, wildSym } from "@spinza/game-core"; /** * GAME 12 — ROYAL CIRCUIT * Luxury motorsport. 5×3, 20 paylines, Race Laps meter that opens the Pit-Stop * Bonus, Turbo wilds with a ×2/×3 boost, Chequered Flag free spins. */ export const royalCircuit = defineGame({ slug: "royal-circuit", name: "Royal Circuit", version: "1.0.0", tagline: "Eight laps to the pit lane. Boost on every straight.", description: "Gold-trimmed hypercars scream around a night circuit built for royalty. Turbo Wilds carry a ×2 or ×3 boost that multiplies every line they complete, and each Lap Counter you collect moves you round the track; eight laps bring you into the Pit-Stop Bonus for three reveals worth up to 20× the bet each. Chequered Flags start the free spins.", theme: "luxury motorsport", tags: ["lines", "meter", "bonus", "multiplier-wilds", "free-spins"], grid: { reels: 5, rows: 3 }, payModel: { type: "lines", lines: LINES_20 }, rtp: 0.96, volatility: "medium", maxMultiplier: 3000, symbols: [ wildSym("W", "Turbo Wild", [0, 1.8, 1.8, 1.8, 0], { shape: "bolt", color: "#ffd166", accent: "#ef4444", glow: 1 }), scatterSym("S", "Chequered Flag", 1.3, { shape: "flag", color: "#f8fafc", accent: "#111827", glow: 0.9 }), sym("LAP", "Lap Counter", "special", null, 0.9, { shape: "gauge", color: "#22d3ee", accent: "#ffffff", glow: 0.8 }, { kind: "charge" }), sym("P1", "Royal Hypercar", "premium", { 3: 60, 4: 225, 5: 750 }, 2.6, { shape: "crown", color: "#ffd166", accent: "#fff7d6", glow: 0.9 }), sym("H1", "Champion Helmet", "high", { 3: 30, 4: 90, 5: 300 }, 3.8, { shape: "helmet", color: "#ef4444", accent: "#fecaca", glow: 0.6 }), sym("H2", "Gold Trophy", "high", { 3: 22, 4: 75, 5: 225 }, 4.2, { shape: "trophy", color: "#f59e0b", accent: "#fef3c7", glow: 0.6 }), sym("M1", "Racing Tyre", "mid", { 3: 15, 4: 45, 5: 150 }, 5.5, { shape: "wheel", color: "#374151", accent: "#9ca3af", glow: 0.3 }), sym("M2", "Fuel Can", "mid", { 3: 12, 4: 38, 5: 120 }, 6, { shape: "barrel", color: "#10b981", accent: "#d1fae5", glow: 0.3 }), sym("L1", "Pit Wrench", "low", { 3: 7.5, 4: 22, 5: 75 }, 9, { shape: "valve", color: "#fbbf24", accent: "#fff7ed" }), sym("L2", "Traffic Cone", "low", { 3: 7.5, 4: 22, 5: 75 }, 9, { shape: "warning", color: "#ef4444", accent: "#ffffff" }), sym("L3", "Stopwatch", "low", { 3: 6, 4: 18, 5: 60 }, 10, { shape: "hourglass", color: "#22d3ee", accent: "#ffffff" }), sym("L4", "Grid Marker", "low", { 3: 6, 4: 18, 5: 60 }, 10, { shape: "code", color: "#e5e7eb", label: "P1" }), ], betDivisor: 20, wild: { id: "W", multiplier: { values: [2, 3], weights: [70, 30], combine: "multiply" } }, scatter: { id: "S", triggers: { 3: 8, 4: 12, 5: 15 }, retrigger: true }, meter: { id: "laps", name: "Race Laps", symbolId: "LAP", max: 8, onFull: { type: "pickBonus", bonusId: "pit-stop", label: "Pit-Stop Bonus" }, }, pickBonuses: [ { id: "pit-stop", name: "Pit-Stop Bonus", cells: 8, picks: 3, prizes: { values: [1, 2, 3, 5, 10, 20], weights: [30, 25, 20, 15, 8, 2] }, }, ], presentation: { palette: { primary: "#ffd166", secondary: "#ef4444", glow: "#22d3ee", bg: "#07070a", surface: "#131318" }, particles: "sparks", ambience: "race", frame: "carbon", backdrop: "track", }, rules: [ "Wins pay left to right on 20 fixed paylines, highest win per line.", "The Turbo Wild substitutes for every symbol except Chequered Flags and Lap Counters (reels 2–4) and carries a ×2 or ×3 boost; boosts on the same line multiply together.", "Every Lap Counter that lands adds one lap to the Race Laps meter. At 8 laps the Pit-Stop Bonus opens: 3 reveals from 8 cells worth 1× to 20× the bet.", "The lap meter keeps its progress between rounds and during free spins.", "3, 4 or 5 Chequered Flags award 8, 12 or 15 free spins with retriggers.", "Maximum win per round: 3,000× the bet.", ], });