{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/nMUvYaYLlYJp79UX61Nw/tYbIzZFLF02sj2V0UXq5/ShooterCanvas.js", "ssg:https://framerusercontent.com/modules/skOg4CuTI73exAdSurJz/PXBabYzMjjkJ5V4NG8Ir/wFiCOxWPH.js"],
  "sourcesContent": ["function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useRef,useEffect,useState}from\"react\";const firebaseConfig={apiKey:\"AIzaSyBtWpWoKfZ1TAc08BZ2qxWmL5gBUvAeqxM\",authDomain:\"crypto-bot-97c66.firebaseapp.com\",databaseURL:\"https://crypto-bot-97c66-default-rtdb.firebaseio.com\",projectId:\"crypto-bot-97c66\",storageBucket:\"crypto-bot-97c66.firebasestorage.app\",messagingSenderId:\"321123798650\",appId:\"1:321123798650:web:bae5e4d6f6e7d4eb5d35c3\",measurementId:\"G-EXW83GZ6GK\"};/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 800\n * @framerIntrinsicHeight 600\n */export function SpaceShooterGame(){const canvasRef=useRef(null);const shipRef=useRef(null);// Game state: \"intro\", \"playing\", \"ended\"\nconst[gameState,setGameState]=useState(\"intro\");const gameStateRef=useRef(gameState);useEffect(()=>{gameStateRef.current=gameState;},[gameState]);// Scores\nconst[score,setScore]=useState(0);const scoreRef=useRef(0);const[bestScore,setBestScore]=useState(0);// Image loading\nconst[imagesLoaded,setImagesLoaded]=useState(0);const totalImages=6;// We'll keep these as refs so they're not reinitialized each render\nconst playing=useRef(false);const gameStarted=useRef(false);const speedMultiplierRef=useRef(1);const enemySeedFrameIntervalRef=useRef(100);const tickRef=useRef(0);const laserTickRef=useRef(0);const moonYRef=useRef(-100);const marsYRef=useRef(-100);const moonTriggered=useRef(false);const marsTriggered=useRef(false);// New: store game start time to delay enemy spawns.\nconst gameStartTimeRef=useRef(0);// Delay (ms) before enemies start spawning\nconst ENEMY_SPAWN_DELAY=100;// Dev bounding box\nconst DEV_MODE=false;// images\nconst enemyImage=new Image;const shipImage=new Image;const laserImage=new Image;const moonImage=new Image;const marsImage=new Image;const peachImage=new Image;// game objects as refs\nconst enemiesRef=useRef([]);const lasersRef=useRef([]);// star background\nconst NUM_STARS=200;let stars=[];useEffect(()=>{// Helper to load a script and return a promise that resolves when loaded\nconst loadScript=src=>{return new Promise((resolve,reject)=>{if(document.querySelector(`script[src=\"${src}\"]`)){console.log(`Script already loaded: ${src}`);return resolve(true);}const script=document.createElement(\"script\");script.src=src;script.async=true;script.onload=()=>{console.log(`Script loaded: ${src}`);resolve(true);};script.onerror=err=>{console.error(`Error loading script: ${src}`,err);reject(err);};document.head.appendChild(script);});};const loadFirebase=async()=>{if(window.firebase&&window.firebase.apps&&window.firebase.apps.length>0){console.log(\"Firebase already loaded:\",firebase.apps);return;}try{console.log(\"Loading Firebase scripts...\");await loadScript(\"https://www.gstatic.com/firebasejs/11.3.0/firebase-app-compat.js\");await loadScript(\"https://www.gstatic.com/firebasejs/11.3.0/firebase-firestore-compat.js\");await loadScript(\"https://www.gstatic.com/firebasejs/11.3.0/firebase-app-check-compat.js\");if(!firebase.apps.length){firebase.initializeApp(firebaseConfig);console.log(\"Firebase initialized with config:\",firebaseConfig);}else{console.log(\"Firebase apps already exist:\",firebase.apps);}// Log current firebase apps to verify initialization\nconsole.log(\"Current Firebase apps:\",firebase.apps);// Activate App Check and log its status\ntry{const appCheck=firebase.appCheck();console.log(\"Retrieved AppCheck instance:\",appCheck);appCheck.activate(\"6LdVONIqAAAAAFUxYL9VUwfQhB0XoAertlIzg7c_\",true);console.log(\"AppCheck activated successfully.\");}catch(err){console.warn(\"Error during AppCheck activation (it may have been already activated):\",err);}}catch(error){console.error(\"Error loading Firebase scripts\",error);}};loadFirebase();},[]);// ===========================\n// Initialization\n// ===========================\nuseEffect(()=>{// Load best score from local storage on mount\nconst storedBest=localStorage.getItem(\"bestScore\");if(storedBest){const parsed=parseInt(storedBest,10);if(!isNaN(parsed)){setBestScore(parsed);}}},[]);useEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;// Set up canvas size (once on mount)\ncanvas.width=canvas.clientWidth;canvas.height=canvas.clientHeight;// Load images in a stable way\nfunction handleImageLoad(){setImagesLoaded(prev=>{const newCount=prev+1;if(newCount===totalImages){console.log(\"All images loaded. Ready to start the game.\");}return newCount;});}enemyImage.src=\"https://framerusercontent.com/images/y2PIMzURobgofykL7Iy0VKYiXU.png\";enemyImage.crossOrigin=\"anonymous\";enemyImage.onload=handleImageLoad;enemyImage.onerror=()=>console.error(\"Failed to load enemy image.\");shipImage.src=\"https://framerusercontent.com/images/p1A4FtLmg0SM68EHfzb7lDbbng.png\";shipImage.onload=handleImageLoad;shipImage.onerror=()=>console.error(\"Failed to load ship image.\");laserImage.src=\"https://framerusercontent.com/images/znKDYcQKheGVIFZyKtE7ORhTbzc.png\";laserImage.onload=handleImageLoad;laserImage.onerror=()=>console.error(\"Failed to load laser image.\");moonImage.src=\"https://framerusercontent.com/images/4V1au4Wc42ob6PJjU3KnmoKe4.png\";moonImage.onload=handleImageLoad;moonImage.onerror=()=>console.error(\"Failed to load moon image.\");marsImage.src=\"https://framerusercontent.com/images/7jUXhC9P3gvzdDogrPeeZPCZUY0.png\";marsImage.onload=handleImageLoad;marsImage.onerror=()=>console.error(\"Failed to load mars image.\");peachImage.src=\"https://framerusercontent.com/images/AdLkfhwzUpEWamfFivWDrcRYDbE.png\";peachImage.onload=handleImageLoad;peachImage.onerror=()=>console.error(\"Failed to load peach image.\");// Create stars once\ncreateStars();// Instantiate ship off-screen\nshipRef.current=new Ship({x:-100,y:-100,ctx});// \"intro\" difficulty defaults\nspeedMultiplierRef.current=6;enemySeedFrameIntervalRef.current=20;// Add pointer events for mobile/desktop\ncanvas.style.touchAction=\"none\"// disable scroll/zoom on drag\n;canvas.addEventListener(\"pointerdown\",handlePointerDown);canvas.addEventListener(\"pointermove\",handlePointerMove);canvas.addEventListener(\"pointerup\",handlePointerUp);canvas.addEventListener(\"pointercancel\",handlePointerUp)// fallback\n;// Start render loop\nplaying.current=true;requestAnimationFrame(renderLoop);// Cleanup\nreturn()=>{playing.current=false;window.removeEventListener(\"keydown\",shipRef.current?.onKeyDown);window.removeEventListener(\"keyup\",shipRef.current?.onKeyUp);canvas.removeEventListener(\"pointerdown\",handlePointerDown);canvas.removeEventListener(\"pointermove\",handlePointerMove);canvas.removeEventListener(\"pointerup\",handlePointerUp);canvas.removeEventListener(\"pointercancel\",handlePointerUp);};// ======== Game Loop ========\nfunction renderLoop(){if(!playing.current)return;// Reflect potential changes in canvas size\nconst w=canvas.clientWidth;const h=canvas.clientHeight;if(canvas.width!==w||canvas.height!==h){canvas.width=w;canvas.height=h;createStars();}// Always draw background and stars\nctx.save();ctx.fillStyle=\"#0d1b2a\";ctx.fillRect(0,0,w,h);ctx.restore();drawStars(ctx,w,h);if(gameStateRef.current===\"playing\"){// Trigger the moon and mars when score conditions are met (only once)\nif(scoreRef.current>=1e3&&!moonTriggered.current){moonTriggered.current=true;moonYRef.current=-moonImage.height;}if(scoreRef.current>=2e3&&!marsTriggered.current){marsTriggered.current=true;marsYRef.current=-marsImage.height;}const moonWidth=200;const moonHeight=moonImage.height/moonImage.width*moonWidth;const marsWidth=240;const marsHeight=marsImage.height/marsImage.width*marsWidth;if(moonTriggered.current&&moonYRef.current<h){moonYRef.current+=1// adjust vertical speed as needed\n;ctx.drawImage(moonImage,0,moonYRef.current,moonWidth,moonHeight);}if(marsTriggered.current&&marsYRef.current<h){marsYRef.current+=1// adjust vertical speed as needed\n;ctx.drawImage(marsImage,w-marsWidth,marsYRef.current,marsWidth,marsHeight);}// Only spawn enemies after ENEMY_SPAWN_DELAY has passed\n// Adjust spawn interval based on score, but cap it to not get too hectic\nconst baseSpawnInterval=80// start faster than 100\n;const minSpawnInterval=15// never go below 40 frames\n;// Increase difficulty every 1000 points, for example\nconst spawnDecrease=Math.floor(scoreRef.current/250)*5;enemySeedFrameIntervalRef.current=Math.max(baseSpawnInterval-spawnDecrease,minSpawnInterval);// Adjust enemy speed multiplier\n// Increase by 0.1 for every 500 points, up to a max of 3\nconst speedIncrease=Math.min(scoreRef.current/250*.25,5);speedMultiplierRef.current=1+speedIncrease;// Only spawn enemies after the spawn delay\nif(Date.now()-gameStartTimeRef.current>=ENEMY_SPAWN_DELAY&&tickRef.current%enemySeedFrameIntervalRef.current===0&&shipRef.current.active){enemiesRef.current.push(new Enemy({ctx,canvasRef}));}// Move ship according to arrow booleans (desktop)\nlet xPos=shipRef.current.x;let yPos=shipRef.current.y;if(shipRef.current.left)xPos-=shipRef.current.speed;if(shipRef.current.right)xPos+=shipRef.current.speed;if(shipRef.current.up)yPos-=shipRef.current.speed;if(shipRef.current.down)yPos+=shipRef.current.speed;// Keep ship within boundaries\nif(gameStarted.current){if(xPos<0)xPos=0;if(xPos>w-shipRef.current.width)xPos=w-shipRef.current.width;if(yPos<0)yPos=0;if(yPos>h-shipRef.current.height)yPos=h-shipRef.current.height;}// lasers: if shooting, add a laser at set intervals\nif(shipRef.current.active&&shipRef.current.shooting){if(laserTickRef.current===0||laserTickRef.current%15===0){if(shipRef.current.bonus===\"peach\"){// Spawn three lasers: one straight, one diagonal left, one diagonal right\nlasersRef.current.push(new Laser({x:shipRef.current.x+shipRef.current.width/2-15,y:shipRef.current.y-20,ctx}));let leftLaser=new Laser({x:shipRef.current.x+shipRef.current.width/2-15,y:shipRef.current.y-20,ctx});leftLaser.dx=-1// adjust diagonal speed as needed\n;lasersRef.current.push(leftLaser);let rightLaser=new Laser({x:shipRef.current.x+shipRef.current.width/2-15,y:shipRef.current.y-20,ctx});rightLaser.dx=1// adjust diagonal speed as needed\n;lasersRef.current.push(rightLaser);}else{lasersRef.current.push(new Laser({x:shipRef.current.x+shipRef.current.width/2-15,y:shipRef.current.y-20,ctx}));}}}// update and draw ship\nif(shipRef.current.active){shipRef.current.update(xPos,yPos);shipRef.current.draw();}// collisions\nhandleShipCollision();handleLaserCollision();// update and draw lasers\nfor(let laser of lasersRef.current){if(!laser.active)continue;laser.x+=laser.dx;laser.update(laser.y-laser.speed);laser.draw();}// update and draw enemies\nfor(let enemy of enemiesRef.current){if(!enemy.active)continue;enemy.update(enemy.x,enemy.y+enemy.speed*speedMultiplierRef.current);enemy.draw();}// cleanup inactive enemies and lasers\nenemyCleanup(h);laserCleanup();if(shipRef.current.shooting)laserTickRef.current++;tickRef.current++;}requestAnimationFrame(renderLoop);}// ======== Pointer Handlers (mobile/desktop) ========\nfunction handlePointerDown(e){if(!shipRef.current.active)return;shipRef.current.shooting=true;laserTickRef.current=0;moveShipToPointer(e);}function handlePointerMove(e){if(!shipRef.current.active)return;if(shipRef.current.shooting){moveShipToPointer(e);}}function handlePointerUp(e){if(shipRef.current.shooting){shipRef.current.shooting=false;}}function moveShipToPointer(e){const canvasRect=canvas.getBoundingClientRect();const pointerX=e.clientX-canvasRect.left;const pointerY=e.clientY-canvasRect.top;// center the ship at pointer\nshipRef.current.x=pointerX-shipRef.current.width/2;shipRef.current.y=pointerY-shipRef.current.height/2;}},[]);// ======== Classes ========\nclass Ship{update(x,y){this.x=x;this.y=y;}draw(){if(!this.active)return;const{ctx}=this;ctx.save();if(DEV_MODE){ctx.fillStyle=\"skyblue\";ctx.fillRect(this.x,this.y,this.width,this.width);}if(this.image&&this.image.complete){ctx.drawImage(this.image,this.x,this.y,this.width,this.height);}else{ctx.fillStyle=this.color;ctx.fillRect(this.x+this.radius-5,this.y,10,this.radius);ctx.fillRect(this.x,this.y+this.radius,this.width,10);ctx.fillRect(this.x,this.y+this.radius+10,10,5);ctx.fillRect(this.x+this.width-10,this.y+this.radius+10,10,5);}ctx.restore();}constructor(options){_define_property(this,\"ctx\",void 0);_define_property(this,\"radius\",void 0);_define_property(this,\"width\",void 0);_define_property(this,\"height\",void 0);_define_property(this,\"color\",void 0);_define_property(this,\"x\",void 0);_define_property(this,\"y\",void 0);_define_property(this,\"left\",void 0);_define_property(this,\"right\",void 0);_define_property(this,\"up\",void 0);_define_property(this,\"down\",void 0);_define_property(this,\"speed\",void 0);_define_property(this,\"active\",void 0);_define_property(this,\"shooting\",void 0);_define_property(this,\"image\",void 0);_define_property(this,\"bonus\",void 0);_define_property(this,\"onKeyDown\",e=>{if(!this.active)return;if(e.key===\"ArrowRight\")this.right=true;else if(e.key===\"ArrowLeft\")this.left=true;else if(e.key===\"ArrowUp\")this.up=true;else if(e.key===\"ArrowDown\")this.down=true;else if(e.code===\"Space\"&&!this.shooting){this.shooting=true;laserTickRef.current=0;}});_define_property(this,\"onKeyUp\",e=>{if(e.key===\"ArrowRight\")this.right=false;else if(e.key===\"ArrowLeft\")this.left=false;else if(e.key===\"ArrowUp\")this.up=false;else if(e.key===\"ArrowDown\")this.down=false;else if(e.code===\"Space\"){this.shooting=false;}});this.ctx=options.ctx;this.radius=40;this.width=this.radius*1.5;this.height=this.width*1.5;this.x=options.x;this.y=options.y;this.color=\"red\";this.left=false;this.right=false;this.up=false;this.down=false;this.speed=10;this.active=true;this.shooting=false;this.image=shipImage;this.bonus=\"\";// Keyboard (desktop)\nwindow.addEventListener(\"keydown\",this.onKeyDown);window.addEventListener(\"keyup\",this.onKeyUp);}}class Laser{update(newY){this.y=newY;}draw(){if(!this.active)return;const{ctx}=this;ctx.save();if(this.image&&this.image.complete){ctx.drawImage(this.image,this.x,this.y,this.width,this.height);}else{ctx.fillStyle=this.color;ctx.fillRect(this.x,this.y,this.width,this.height);}ctx.restore();}constructor(options){_define_property(this,\"ctx\",void 0);_define_property(this,\"x\",void 0);_define_property(this,\"y\",void 0);_define_property(this,\"width\",void 0);_define_property(this,\"height\",void 0);_define_property(this,\"speed\",void 0);_define_property(this,\"color\",void 0);_define_property(this,\"active\",void 0);_define_property(this,\"image\",void 0);_define_property(this,\"dx\",void 0);this.ctx=options.ctx;this.x=options.x;this.y=options.y;this.width=30;this.height=30;this.speed=5;this.color=\"white\";this.active=true;this.image=laserImage;this.dx=0;}}class Enemy{update(x,y){this.x=x;this.y=y;}draw(){if(!this.active)return;const{ctx}=this;if(DEV_MODE){ctx.fillStyle=\"skyblue\";ctx.fillRect(this.x,this.y,this.width,this.width);}ctx.save();if(this.image&&this.image.complete){ctx.drawImage(this.image,this.x,this.y,this.width,this.height);}else{ctx.fillStyle=this.color;ctx.beginPath();ctx.arc(this.x+this.radius,this.y+this.radius,this.radius,0,Math.PI*2);ctx.closePath();ctx.fill();}ctx.restore();}constructor(options){_define_property(this,\"ctx\",void 0);_define_property(this,\"radius\",void 0);_define_property(this,\"width\",void 0);_define_property(this,\"height\",void 0);_define_property(this,\"x\",void 0);_define_property(this,\"y\",void 0);_define_property(this,\"color\",void 0);_define_property(this,\"speed\",void 0);_define_property(this,\"active\",void 0);_define_property(this,\"image\",void 0);_define_property(this,\"type\",void 0);this.ctx=options.ctx;this.radius=randomBetween(10,40);this.width=this.radius*2;this.height=this.width;const c=options.canvasRef.current;let cw=300;if(c)cw=c.clientWidth;this.x=randomBetween(0,cw-this.width);this.y=-this.radius*2;this.color=\"white\";this.speed=2;this.active=true;if(Math.random()<.1){this.type=\"peach\";this.image=peachImage;this.radius=30;this.width=this.radius*2;this.height=this.width;}else{this.image=enemyImage;}}}// =========== Utilities ===========\nfunction randomBetween(min,max){return Math.floor(Math.random()*(max-min+1))+min;}function calcScore(r){return Math.floor(1/r*500);}function hitTest(item1,item2){let collision=true;if(item1.x>item2.x+item2.width||item1.y>item2.y+item2.height||item2.x>item1.x+item1.width||item2.y>item1.y+item1.height){collision=false;}return collision;}function handleLaserCollision(){for(let enemy of enemiesRef.current){if(!enemy.active)continue;for(let laser of lasersRef.current){if(!laser.active)continue;if(hitTest(laser,enemy)){enemy.active=false;laser.active=false;if(enemy.type===\"peach\"){// Activate bonus mode for 10 seconds\nshipRef.current.bonus=\"peach\";setTimeout(()=>{if(shipRef.current)shipRef.current.bonus=\"\";},5e3);}else{speedMultiplierRef.current+=.005;if(enemySeedFrameIntervalRef.current>20){enemySeedFrameIntervalRef.current-=.5;}}const newScore=scoreRef.current+calcScore(enemy.radius);setBestScore(prevBest=>{if(newScore>prevBest){localStorage.setItem(\"bestScore\",newScore.toString());return newScore;}return prevBest;});setScore(newScore);scoreRef.current=newScore;}}}}function handleShipCollision(){if(!shipRef.current?.active)return;for(let enemy of enemiesRef.current){if(!enemy.active)continue;if(hitTest(shipRef.current,enemy)){console.log(\"ship collision\");shipRef.current.active=false;setGameState(\"ended\");submitScore(\"joris\",145);break;}}}async function submitScore(playerName,score){try{await firebase.firestore().collection(\"leaderboard\").add({name:playerName,score:score,timestamp:firebase.firestore.FieldValue.serverTimestamp()});console.log(\"Score submitted!\");}catch(e){console.error(\"Error adding document: \",e);}}// =========== Cleanup ===========\nfunction enemyCleanup(canvasHeight){enemiesRef.current=enemiesRef.current.filter(enemy=>{const visible=enemy.y<canvasHeight+enemy.width;return visible&&enemy.active;});}function laserCleanup(){lasersRef.current=lasersRef.current.filter(laser=>{const visible=laser.y>-laser.height;return visible&&laser.active;});}// =========== Stars ===========\nfunction createStars(){const c=canvasRef.current;if(!c)return;const w=c.clientWidth;const h=c.clientHeight;stars=[];for(let i=0;i<NUM_STARS;i++){const star={x:Math.random()*w,y:Math.random()*h,radius:Math.random()*1.5+.5,alpha:Math.random(),alphaDirection:(Math.random()*.002+.001)*(Math.random()<.5?-1:1),velocity:Math.random()*.5+.1};stars.push(star);}}function drawStars(ctx,w,h){for(let star of stars){star.alpha+=star.alphaDirection*.005;if(star.alpha<=.1||star.alpha>=1){star.alphaDirection*=-1;}star.y+=star.velocity;if(star.y>h){star.y=0;star.x=Math.random()*w;}ctx.save();ctx.fillStyle=`rgba(255, 255, 255, ${star.alpha})`;ctx.beginPath();ctx.arc(star.x,star.y,star.radius,0,Math.PI*2);ctx.closePath();ctx.fill();ctx.restore();}}// =========== Handlers for starting/restarting ===========\nconst handleStartGame=()=>{if(imagesLoaded<totalImages){console.log(\"Images still loading...\");return;}// Clear any existing enemies and lasers\nenemiesRef.current=[];lasersRef.current=[];// Reset tick counters so enemy spawning starts fresh\ntickRef.current=0;laserTickRef.current=0;// Set game state to \"playing\" and record start time\nsetGameState(\"playing\");gameStartTimeRef.current=Date.now();// Reset game state values\nsetScore(0);scoreRef.current=0;speedMultiplierRef.current=1;enemySeedFrameIntervalRef.current=100;gameStarted.current=true;moonTriggered.current=false;marsTriggered.current=false;moonYRef.current=-moonImage.height;marsYRef.current=-marsImage.height;const c=canvasRef.current;shipRef.current.x=c.clientWidth*.5-shipRef.current.width/2;shipRef.current.y=c.clientHeight-shipRef.current.height-30;shipRef.current.active=true;};const handleRestartGame=()=>{gameStartTimeRef.current=Date.now();setGameState(\"playing\");enemiesRef.current=[];lasersRef.current=[];tickRef.current=0;laserTickRef.current=0;setScore(0);scoreRef.current=0;speedMultiplierRef.current=1;enemySeedFrameIntervalRef.current=100;gameStarted.current=true;const c=canvasRef.current;shipRef.current.x=c.clientWidth*.5-shipRef.current.width/2;shipRef.current.y=c.clientHeight-shipRef.current.height-30;shipRef.current.active=true;};return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"calc(100vh - 64px)\",paddingBottom:\"env(safe-area-inset-bottom)\"},children:[/*#__PURE__*/_jsx(\"link\",{href:\"https://fonts.googleapis.com/css?family=Press+Start+2P&display=swap\",rel:\"stylesheet\"}),/*#__PURE__*/_jsx(\"style\",{children:`\n              html, body {\n                margin: 0;\n                padding: 0;\n              }\n              body {\n                color: #ffffff;\n                font-family: \"Press Start 2P\", sans-serif;\n                -webkit-font-smoothing: antialiased;\n                -moz-osx-font-smoothing: grayscale;\n                margin: 0;\n                padding: 0;\n              }\n              canvas {\n                display: block;\n              }\n              h1 {\n                font-size: 3rem;\n                margin-bottom: 0.5em;\n              }\n              ul {\n                margin-bottom: 2rem;\n                list-style: none;\n                padding: 0;\n              }\n              li {\n                color: #ff00dc;\n                font-size: 0.8rem;\n                margin-bottom: 1em;\n                text-transform: uppercase;\n              }\n              .key, button {\n                border: 1px solid currentColor;\n                border-radius: 5px;\n                display: inline-block;\n                padding: 0.8em;\n              }\n              .key--arrow {\n                font-size: 1rem;\n                padding: 0.35em 0.1em 0.6em;\n                position: relative;\n                line-height: 0.15;\n                top: 0.05em;\n              }\n              button {\n                appearance: none;\n                background-color: #ffffff;\n                cursor: pointer;\n                font-family: inherit;\n                font-size: 1rem;\n                outline: none;\n                padding: 0.7em 0.85em 0.6em 1em;\n                text-transform: uppercase;\n                transition: color 0.2s linear, background-color 0.2s linear;\n              }\n              button:focus, button:hover {\n                background-color: black;\n                color: #ff00dc;\n                transition-duration: 0.07s;\n              }\n              .dialogue {\n                align-items: center;\n                background-color: rgba(0, 0, 0, 0.85);\n                bottom: 0;\n                display: flex;\n                justify-content: center;\n                left: 0;\n                position: absolute;\n                right: 0;\n                top: 0;\n              }\n              .dialogue__content {\n                max-width: 31.25rem;\n                padding: 18px;\n                text-align: center;\n              }\n              .key {\n                border-color: white;\n                color: white;\n              }\n              .hud {\n                box-sizing: border-box;\n                display: flex;\n                justify-content: space-between;\n                margin: 0;\n                left: 0;\n                padding: 1rem;\n                position: absolute;\n                top: 0;\n                width: 100%;\n              }\n              @media (max-width: 600px) {\n                h1 {\n                  font-size: 2rem;\n                }\n                li {\n                  font-size: 0.7rem;\n                }\n                .dialogue__content {\n                  max-width: 90%;\n                  margin: 0 auto;\n                }\n              }\n            `}),gameState===\"intro\"&&/*#__PURE__*/_jsx(\"div\",{className:\"dialogue\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"dialogue__content\",style:{textAlign:\"center\"},children:[/*#__PURE__*/_jsx(\"h1\",{children:\"CumRocket Shooter!\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Get ready to blast off into the wildest ride of your life! \uD83D\uDE80\"}),/*#__PURE__*/_jsxs(\"ul\",{style:{listStyle:\"none\",padding:0,margin:\"20px 0\"},children:[/*#__PURE__*/_jsxs(\"li\",{style:{margin:\"10px 0\"},children:[\"Navigate with the\",\" \",/*#__PURE__*/_jsx(\"span\",{className:\"key key--arrow\",children:\"\u2190\"}),\" and\",\" \",/*#__PURE__*/_jsx(\"span\",{className:\"key key--arrow\",children:\"\u2192\"}),\" keys (desktop).\"]}),/*#__PURE__*/_jsx(\"li\",{style:{margin:\"10px 0\"},children:\"Swipe or drag on mobile to move, hold to release your swimmers! \uD83D\uDCA6\"}),/*#__PURE__*/_jsxs(\"li\",{style:{margin:\"10px 0\"},children:[\"Or hit \",/*#__PURE__*/_jsx(\"span\",{className:\"key\",children:\"spacebar\"}),\" to shoot (desktop).\"]})]}),/*#__PURE__*/_jsx(\"p\",{children:\"Remember: In space, no one can hear you moan \uD83D\uDE33\"}),/*#__PURE__*/_jsx(\"button\",{onClick:handleStartGame,style:{marginTop:\"20px\",padding:\"10px 20px\",fontSize:\"1.2em\"},children:\"Blast Off!\"})]})}),gameState===\"ended\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"end-screen\",style:{position:\"absolute\",top:0,left:0,right:0,bottom:0,backgroundColor:\"rgba(0, 0, 0, 0.85)\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\",color:\"#fff\",zIndex:10,textAlign:\"center\",padding:\"20px\",paddingBottom:\"calc(20px + env(safe-area-inset-bottom))\",boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"img\",{src:\"https://framerusercontent.com/images/y2PIMzURobgofykL7Iy0VKYiXU.png\",alt:\"CumRocket Logo\",style:{width:\"75px\",marginBottom:\"20px\"}}),/*#__PURE__*/_jsx(\"h1\",{style:{margin:\"10px 0\"},children:\"Mission Accomplished! \uD83C\uDF89\"}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:\"10px 0\",fontSize:\"1.2em\"},children:[\"Swimmers Released: \",scoreRef.current,\" \uD83D\uDCA6\"]}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:\"10px 0\",fontSize:\"1.2em\"},children:[\"Best Performance: \",bestScore,\" \uD83C\uDFC6\"]}),/*#__PURE__*/_jsx(\"p\",{style:{margin:\"20px 0\",fontSize:\"1.2em\"},children:\"You've made the galaxy a happier place! \uD83C\uDF0C\"}),/*#__PURE__*/_jsx(\"button\",{onClick:handleRestartGame,style:{marginTop:\"20px\",padding:\"10px 20px\",fontSize:\"1.2em\"},children:\"Cum Again!\"})]}),/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\"}}),gameState===\"playing\"&&/*#__PURE__*/_jsxs(\"ul\",{className:\"hud\",children:[/*#__PURE__*/_jsxs(\"li\",{className:\"hud__score\",children:[\"Score: \",/*#__PURE__*/_jsx(\"span\",{children:scoreRef.current})]}),/*#__PURE__*/_jsxs(\"li\",{className:\"hud__best\",children:[\"Best: \",/*#__PURE__*/_jsx(\"span\",{children:bestScore})]})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"SpaceShooterGame\":{\"type\":\"reactComponent\",\"name\":\"SpaceShooterGame\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicWidth\":\"800\",\"framerIntrinsicHeight\":\"600\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShooterCanvas.map", "// Generated by Framer (ae47b7e)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,GeneratedComponentContext,getFonts,PropertyOverrides,useComponentViewport,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import Topbar2 from\"#framer/local/canvasComponent/UGZx4q6tY/UGZx4q6tY.js\";import{SpaceShooterGame}from\"#framer/local/codeFile/yMoiSO4/ShooterCanvas.js\";import metadataProvider from\"#framer/local/webPageMetadata/wFiCOxWPH/wFiCOxWPH.js\";const Topbar2Fonts=getFonts(Topbar2);const SpaceShooterGameFonts=getFonts(SpaceShooterGame);const breakpoints={DqL7L8JNT:\"(min-width: 1200px) and (max-width: 1279px)\",EznrhOLym:\"(min-width: 1280px)\",r2EabjRRm:\"(max-width: 767px)\",ZSbqIN93L:\"(min-width: 768px) and (max-width: 1199px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-FSZOx\";const variantClassNames={DqL7L8JNT:\"framer-v-hqfziy\",EznrhOLym:\"framer-v-rcwv3w\",r2EabjRRm:\"framer-v-4c4evs\",ZSbqIN93L:\"framer-v-1t9j0kl\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value}});};const humanReadableVariantMap={Desktop:\"DqL7L8JNT\",Laptop:\"EznrhOLym\",Phone:\"r2EabjRRm\",Tablet:\"ZSbqIN93L\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"DqL7L8JNT\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,...restProps}=getProps(props);React.useEffect(()=>{const metadata=metadataProvider(undefined,activeLocale);if(metadata.robots){let robotsTag=document.querySelector('meta[name=\"robots\"]');if(robotsTag){robotsTag.setAttribute(\"content\",metadata.robots);}else{robotsTag=document.createElement(\"meta\");robotsTag.setAttribute(\"name\",\"robots\");robotsTag.setAttribute(\"content\",metadata.robots);document.head.appendChild(robotsTag);}}},[undefined,activeLocale]);React.useInsertionEffect(()=>{const metadata=metadataProvider(undefined,activeLocale);document.title=metadata.title||\"\";if(metadata.viewport){document.querySelector('meta[name=\"viewport\"]')?.setAttribute(\"content\",metadata.viewport);}},[undefined,activeLocale]);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const ref1=React.useRef(null);const defaultLayoutId=React.useId();useCustomCursors({});const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{primaryVariantId:\"DqL7L8JNT\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-hqfziy\",className),ref:ref??ref1,style:{...style},children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-14rf0vf\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:64,width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+0+0+0+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-lks9i0-container\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{r2EabjRRm:{variant:\"RNSriNiUQ\"},ZSbqIN93L:{variant:\"RNSriNiUQ\"}},children:/*#__PURE__*/_jsx(Topbar2,{height:\"100%\",id:\"vG4JKD2xn\",layoutId:\"vG4JKD2xn\",style:{height:\"100%\",width:\"100%\"},variant:\"U35O6E0gO\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-9tg6mg-container\",children:/*#__PURE__*/_jsx(SpaceShooterGame,{height:\"100%\",id:\"byhBk9Jui\",layoutId:\"byhBk9Jui\",style:{height:\"100%\",maxWidth:\"100%\",width:\"100%\"},width:\"100%\"})})})]})}),/*#__PURE__*/_jsx(HTMLStyle,{value:\"html body { background: rgb(0, 0, 0); }\"}),/*#__PURE__*/_jsx(\"div\",{id:\"overlay\"})]})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-FSZOx.framer-1vrvhv, .framer-FSZOx .framer-1vrvhv { display: block; }\",\".framer-FSZOx.framer-hqfziy { align-content: center; align-items: center; background-color: #000000; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 1200px; }\",\".framer-FSZOx .framer-14rf0vf { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 100vh; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-FSZOx .framer-lks9i0-container { flex: none; height: 64px; position: relative; width: 100%; z-index: 10; }\",\".framer-FSZOx .framer-9tg6mg-container { flex: 1 0 0px; height: 1px; max-width: 450px; position: relative; width: 100%; z-index: 1; }\",\"@supports (background: -webkit-named-image(i)) and (not (scale:1)) { .framer-FSZOx.framer-hqfziy, .framer-FSZOx .framer-14rf0vf { gap: 0px; } .framer-FSZOx.framer-hqfziy > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-FSZOx.framer-hqfziy > :first-child, .framer-FSZOx .framer-14rf0vf > :first-child { margin-top: 0px; } .framer-FSZOx.framer-hqfziy > :last-child, .framer-FSZOx .framer-14rf0vf > :last-child { margin-bottom: 0px; } .framer-FSZOx .framer-14rf0vf > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } }\",\"@media (min-width: 1280px) { .framer-FSZOx.framer-hqfziy { width: 1280px; }}\",\"@media (min-width: 768px) and (max-width: 1199px) { .framer-FSZOx.framer-hqfziy { width: 768px; }}\",\"@media (max-width: 767px) { .framer-FSZOx.framer-hqfziy { width: 320px; }}\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 800\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"EznrhOLym\":{\"layout\":[\"fixed\",\"auto\"]},\"ZSbqIN93L\":{\"layout\":[\"fixed\",\"auto\"]},\"r2EabjRRm\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n * @framerAcceptsLayoutTemplate true\n * @framerResponsiveScreen\n */const FramerwFiCOxWPH=withCSS(Component,css,\"framer-FSZOx\");export default FramerwFiCOxWPH;FramerwFiCOxWPH.displayName=\"Page\";FramerwFiCOxWPH.defaultProps={height:800,width:1200};addFonts(FramerwFiCOxWPH,[{explicitInter:true,fonts:[]},...Topbar2Fonts,...SpaceShooterGameFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerwFiCOxWPH\",\"slots\":[],\"annotations\":{\"framerResponsiveScreen\":\"\",\"framerContractVersion\":\"1\",\"framerAcceptsLayoutTemplate\":\"true\",\"framerIntrinsicHeight\":\"800\",\"framerIntrinsicWidth\":\"1200\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"EznrhOLym\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"ZSbqIN93L\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"r2EabjRRm\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["_define_property", "obj", "key", "value", "firebaseConfig", "SpaceShooterGame", "canvasRef", "pe", "shipRef", "gameState", "setGameState", "ye", "gameStateRef", "ue", "score", "setScore", "scoreRef", "bestScore", "setBestScore", "imagesLoaded", "setImagesLoaded", "totalImages", "playing", "gameStarted", "speedMultiplierRef", "enemySeedFrameIntervalRef", "tickRef", "laserTickRef", "moonYRef", "marsYRef", "moonTriggered", "marsTriggered", "gameStartTimeRef", "ENEMY_SPAWN_DELAY", "DEV_MODE", "enemyImage", "shipImage", "laserImage", "moonImage", "marsImage", "peachImage", "enemiesRef", "lasersRef", "NUM_STARS", "stars", "loadScript", "src", "resolve", "reject", "script", "err", "window", "appCheck", "error", "storedBest", "parsed", "canvas", "ctx", "handleImageLoad", "prev", "newCount", "createStars", "Ship", "handlePointerDown", "handlePointerMove", "handlePointerUp", "renderLoop", "w", "h", "drawStars", "moonWidth", "moonHeight", "marsWidth", "marsHeight", "baseSpawnInterval", "minSpawnInterval", "spawnDecrease", "speedIncrease", "Enemy", "xPos", "yPos", "Laser", "leftLaser", "rightLaser", "handleShipCollision", "handleLaserCollision", "laser", "enemy", "enemyCleanup", "laserCleanup", "e", "moveShipToPointer", "canvasRect", "pointerX", "pointerY", "x", "y", "options", "newY", "randomBetween", "c", "cw", "min", "max", "calcScore", "r", "hitTest", "item1", "item2", "collision", "newScore", "prevBest", "submitScore", "playerName", "canvasHeight", "i", "star", "handleStartGame", "handleRestartGame", "u", "p", "Topbar2Fonts", "getFonts", "UGZx4q6tY_default", "SpaceShooterGameFonts", "SpaceShooterGame", "breakpoints", "serializationHash", "variantClassNames", "HTMLStyle", "value", "useIsOnFramerCanvas", "p", "humanReadableVariantMap", "getProps", "height", "id", "width", "props", "Component", "Y", "ref", "activeLocale", "setLocale", "useLocaleInfo", "style", "className", "layoutId", "variant", "restProps", "ue", "metadata", "robotsTag", "ie", "baseVariant", "hydratedBaseVariant", "useHydratedBreakpointVariants", "breakpoints", "gestureVariant", "scopingClassNames", "cx", "ref1", "pe", "defaultLayoutId", "ae", "useCustomCursors", "componentViewport", "useComponentViewport", "GeneratedComponentContext", "u", "LayoutGroup", "motion", "ComponentViewportProvider", "Container", "PropertyOverrides2", "UGZx4q6tY_default", "SpaceShooterGame", "css", "FramerwFiCOxWPH", "withCSS", "wFiCOxWPH_default", "addFonts", "Topbar2Fonts", "SpaceShooterGameFonts", "__FramerMetadata__"]
}
