TypeScript 97.6%
SQL 1.4%
JavaScript 0.5%
1import { LINES_20, defineGame, scatterSym, sym, wildSym } from "@spinza/game-core";23/**4 * GAME 12 — ROYAL CIRCUIT5 * Luxury motorsport. 5×3, 20 paylines, Race Laps meter that opens the Pit-Stop6 * Bonus, Turbo wilds with a ×2/×3 boost, Chequered Flag free spins.7 */8export const royalCircuit = defineGame({9 slug: "royal-circuit",10 name: "Royal Circuit",11 version: "1.0.0",12 tagline: "Eight laps to the pit lane. Boost on every straight.",13 description:14 "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.",15 theme: "luxury motorsport",16 tags: ["lines", "meter", "bonus", "multiplier-wilds", "free-spins"],17 grid: { reels: 5, rows: 3 },18 payModel: { type: "lines", lines: LINES_20 },19 rtp: 0.96,20 volatility: "medium",21 maxMultiplier: 3000,22 symbols: [23 wildSym("W", "Turbo Wild", [0, 1.8, 1.8, 1.8, 0], { shape: "bolt", color: "#ffd166", accent: "#ef4444", glow: 1 }),24 scatterSym("S", "Chequered Flag", 1.3, { shape: "flag", color: "#f8fafc", accent: "#111827", glow: 0.9 }),25 sym("LAP", "Lap Counter", "special", null, 0.9, { shape: "gauge", color: "#22d3ee", accent: "#ffffff", glow: 0.8 }, { kind: "charge" }),26 sym("P1", "Royal Hypercar", "premium", { 3: 60, 4: 225, 5: 750 }, 2.6, { shape: "crown", color: "#ffd166", accent: "#fff7d6", glow: 0.9 }),27 sym("H1", "Champion Helmet", "high", { 3: 30, 4: 90, 5: 300 }, 3.8, { shape: "helmet", color: "#ef4444", accent: "#fecaca", glow: 0.6 }),28 sym("H2", "Gold Trophy", "high", { 3: 22, 4: 75, 5: 225 }, 4.2, { shape: "trophy", color: "#f59e0b", accent: "#fef3c7", glow: 0.6 }),29 sym("M1", "Racing Tyre", "mid", { 3: 15, 4: 45, 5: 150 }, 5.5, { shape: "wheel", color: "#374151", accent: "#9ca3af", glow: 0.3 }),30 sym("M2", "Fuel Can", "mid", { 3: 12, 4: 38, 5: 120 }, 6, { shape: "barrel", color: "#10b981", accent: "#d1fae5", glow: 0.3 }),31 sym("L1", "Pit Wrench", "low", { 3: 7.5, 4: 22, 5: 75 }, 9, { shape: "valve", color: "#fbbf24", accent: "#fff7ed" }),32 sym("L2", "Traffic Cone", "low", { 3: 7.5, 4: 22, 5: 75 }, 9, { shape: "warning", color: "#ef4444", accent: "#ffffff" }),33 sym("L3", "Stopwatch", "low", { 3: 6, 4: 18, 5: 60 }, 10, { shape: "hourglass", color: "#22d3ee", accent: "#ffffff" }),34 sym("L4", "Grid Marker", "low", { 3: 6, 4: 18, 5: 60 }, 10, { shape: "code", color: "#e5e7eb", label: "P1" }),35 ],36 betDivisor: 20,37 wild: { id: "W", multiplier: { values: [2, 3], weights: [70, 30], combine: "multiply" } },38 scatter: { id: "S", triggers: { 3: 8, 4: 12, 5: 15 }, retrigger: true },39 meter: {40 id: "laps",41 name: "Race Laps",42 symbolId: "LAP",43 max: 8,44 onFull: { type: "pickBonus", bonusId: "pit-stop", label: "Pit-Stop Bonus" },45 },46 pickBonuses: [47 {48 id: "pit-stop",49 name: "Pit-Stop Bonus",50 cells: 8,51 picks: 3,52 prizes: { values: [1, 2, 3, 5, 10, 20], weights: [30, 25, 20, 15, 8, 2] },53 },54 ],55 presentation: {56 palette: { primary: "#ffd166", secondary: "#ef4444", glow: "#22d3ee", bg: "#07070a", surface: "#131318" },57 particles: "sparks",58 ambience: "race",59 frame: "carbon",60 backdrop: "track",61 },62 rules: [63 "Wins pay left to right on 20 fixed paylines, highest win per line.",64 "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.",65 "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.",66 "The lap meter keeps its progress between rounds and during free spins.",67 "3, 4 or 5 Chequered Flags award 8, 12 or 15 free spins with retriggers.",68 "Maximum win per round: 3,000× the bet.",69 ],70});71