TypeScript 97.6%
SQL 1.4%
JavaScript 0.5%
1import { LINES_25, defineGame, scatterSym, sym, wildSym } from "@spinza/game-core";23/**4 * GAME 08 — MIDNIGHT TOKYO5 * Futuristic Tokyo nightlife. 5×3, 25 paylines, stacked neon wilds, random6 * Night Multiplier / Neon Respin drops, Shibuya free spins.7 */8export const midnightTokyo = defineGame({9 slug: "midnight-tokyo",10 name: "Midnight Tokyo",11 version: "1.0.0",12 tagline: "The city never dims. Neither do the wilds.",13 description:14 "Rain on neon, a rooftop above Shibuya and reels that glow magenta and cyan. Neon Wilds often stack to fill a whole reel, and on any spin the night can drop a ×2 or ×3 Night Multiplier or fire a Neon Respin that scatters extra wilds across the grid. Three Shibuya Signs start the free spins.",15 theme: "futuristic Tokyo nightlife",16 tags: ["lines", "stacked-wilds", "feature-drops", "free-spins"],17 grid: { reels: 5, rows: 3 },18 payModel: { type: "lines", lines: LINES_25 },19 rtp: 0.96,20 volatility: "medium",21 maxMultiplier: 3000,22 symbols: [23 wildSym("W", "Neon Wild", [0, 1.6, 1.6, 1.6, 0], { shape: "bolt", color: "#ff2bd6", accent: "#22d3ee", glow: 1 }),24 scatterSym("S", "Shibuya Sign", 1.3, { shape: "star", color: "#22d3ee", accent: "#ffffff", glow: 0.9 }),25 sym("P1", "Kitsune Mask", "premium", { 3: 112, 4: 420, 5: 1400 }, 2.6, { shape: "mask", color: "#ff2bd6", accent: "#ffffff", glow: 0.9 }),26 sym("H1", "Neon Katana", "high", { 3: 56, 4: 168, 5: 560 }, 3.8, { shape: "katana", color: "#22d3ee", accent: "#e0fbff", glow: 0.6 }),27 sym("H2", "Cyber Koi", "high", { 3: 42, 4: 140, 5: 420 }, 4.2, { shape: "fish", color: "#a855f7", accent: "#f3e8ff", glow: 0.6 }),28 sym("M1", "Ramen Bowl", "mid", { 3: 28, 4: 84, 5: 280 }, 5.5, { shape: "circle", color: "#fb7185", accent: "#ffe4e6", glow: 0.3 }),29 sym("M2", "Synth Cassette", "mid", { 3: 22, 4: 70, 5: 225 }, 6, { shape: "cassette", color: "#facc15", accent: "#fef9c3", glow: 0.3 }),30 sym("L1", "Torii Gate", "low", { 3: 14, 4: 42, 5: 140 }, 9, { shape: "torii", color: "#f472b6", accent: "#ffffff" }),31 sym("L2", "Paper Lantern", "low", { 3: 14, 4: 42, 5: 140 }, 9, { shape: "lantern", color: "#67e8f9", accent: "#ffffff" }),32 sym("L3", "Kanji Sign", "low", { 3: 11, 4: 34, 5: 112 }, 10, { shape: "code", color: "#c084fc", label: "夜" }),33 sym("L4", "Vending Token", "low", { 3: 11, 4: 34, 5: 112 }, 10, { shape: "coin", color: "#fbbf24", accent: "#fff7ed", label: "¥" }),34 ],35 betDivisor: 25,36 wild: { id: "W", stacked: 0.35 },37 scatter: { id: "S", triggers: { 3: 10, 4: 12, 5: 15 }, retrigger: true },38 randomFeatures: {39 chance: 0.06,40 features: [41 { type: "spinMultiplier", values: [2, 3], weights: [70, 30], weight: 60, label: "Night Multiplier" },42 { type: "addWilds", min: 1, max: 3, weight: 40, label: "Neon Respin" },43 ],44 },45 presentation: {46 palette: { primary: "#ff2bd6", secondary: "#22d3ee", glow: "#a855f7", bg: "#08030f", surface: "#150a24" },47 particles: "sparks",48 ambience: "city",49 frame: "neon",50 backdrop: "skyline",51 },52 rules: [53 "Wins pay left to right on 25 fixed paylines, highest win per line.",54 "The Neon Wild substitutes for every symbol except the Shibuya Sign (reels 2–4) and has a 35% chance to stack across its whole reel.",55 "Feature drops can hit any spin: Night Multiplier multiplies all wins by ×2 or ×3; Neon Respin adds 1 to 3 extra wilds.",56 "3, 4 or 5 Shibuya Signs award 10, 12 or 15 free spins with retriggers.",57 "Maximum win per round: 3,000× the bet.",58 ],59});60