import { LINES_20, defineGame, scatterSym, sym, wildSym } from "@spinza/game-core"; /** * GAME 15 — MOONBASE 77 * Retro lunar colony. 5×3, 20 paylines, floating Gravity Wilds that drift one * reel left on every Orbital Bonus spin. */ export const moonbase77 = defineGame({ slug: "moonbase-77", name: "Moonbase 77", version: "1.0.0", tagline: "Low gravity. Wilds that drift.", description: "Welcome to a 1970s vision of the Moon: chrome domes, orange suits and a reel set under one-sixth gravity. Gravity Wilds float onto the grid at random, and inside the Orbital Bonus they keep drifting one reel to the left on every spin until they float off the edge. Three Orbital Beacons put you into orbit.", theme: "retro lunar colony", tags: ["lines", "random-wilds", "moving-wilds", "free-spins"], grid: { reels: 5, rows: 3 }, payModel: { type: "lines", lines: LINES_20 }, rtp: 0.96, volatility: "medium", maxMultiplier: 2500, symbols: [ wildSym("W", "Gravity Wild", [0, 1.6, 1.6, 1.6, 0], { shape: "moon", color: "#e5e7eb", accent: "#fb923c", glow: 1 }), scatterSym("S", "Orbital Beacon", 1.3, { shape: "star", color: "#fb923c", accent: "#ffffff", glow: 0.9 }), sym("P1", "Commander 77", "premium", { 3: 96, 4: 360, 5: 1200 }, 2.6, { shape: "letter", color: "#fb923c", accent: "#fff7ed", label: "77", glow: 0.9 }), sym("H1", "Lunar Rover", "high", { 3: 48, 4: 144, 5: 480 }, 3.8, { shape: "rocket", color: "#e5e7eb", accent: "#fb923c", glow: 0.6 }), sym("H2", "Habitat Dome", "high", { 3: 36, 4: 120, 5: 360 }, 4.2, { shape: "igloo", color: "#22d3ee", accent: "#cffafe", glow: 0.6 }), sym("M1", "Oxygen Tank", "mid", { 3: 24, 4: 72, 5: 240 }, 5.5, { shape: "barrel", color: "#60a5fa", accent: "#dbeafe", glow: 0.3 }), sym("M2", "Comm Satellite", "mid", { 3: 19, 4: 60, 5: 190 }, 6, { shape: "satellite", color: "#1e3a8a", accent: "#fbbf24", glow: 0.3 }), sym("L1", "Moon Rock", "low", { 3: 12, 4: 36, 5: 120 }, 9, { shape: "meteor", color: "#9ca3af", glow: 0.1 }), sym("L2", "Blue Planet", "low", { 3: 12, 4: 36, 5: 120 }, 9, { shape: "planet", color: "#a8a29e", glow: 0.1 }), sym("L3", "Regolith Shard", "low", { 3: 10, 4: 30, 5: 96 }, 10, { shape: "crystal", color: "#78716c", accent: "#d6d3d1", glow: 0.1 }), sym("L4", "Ice Core", "low", { 3: 10, 4: 30, 5: 96 }, 10, { shape: "snow", color: "#bae6fd", glow: 0.2 }), ], betDivisor: 20, wild: { id: "W", floating: { chance: 0.1, min: 1, max: 3, freeSpinsChance: 0.25 }, moving: true }, scatter: { id: "S", triggers: { 3: 10, 4: 12, 5: 15 }, retrigger: true }, presentation: { palette: { primary: "#fb923c", secondary: "#22d3ee", glow: "#e5e7eb", bg: "#050508", surface: "#101018" }, particles: "stars", ambience: "lunar", frame: "metal", backdrop: "moon", }, rules: [ "Wins pay left to right on 20 fixed paylines, highest win per line.", "The Gravity Wild substitutes for every symbol except the Orbital Beacon (reels 2–4).", "On any spin 1 to 3 Gravity Wilds may float onto the grid (10% chance; 25% during the Orbital Bonus).", "3, 4 or 5 Orbital Beacons award 10, 12 or 15 Orbital Bonus spins with retriggers.", "During the Orbital Bonus every wild drifts one reel to the left on each spin until it leaves the grid.", "Maximum win per round: 2,500× the bet.", ], });