Description
// Space Fighters
// [FIRST VIDEO GAME ON TYPED.ART]
//
// How to run:
// 1. Copy everything in this token.
// 2. Open developer console using F12 or inspect element.
// 3. Paste everything in the Console.
// 4. Press Enter.
// 5. The game should load in the same token.
//
const aTags=document.getElementsByTagName("p");let renderer=document.createElement("p");for(let i=0;i<aTags.length;i++)if(aTags[i].textContent.includes("// [FIRST VIDEO GAME ON TYPED.ART]")){renderer=aTags[i];break}document.body.style.backgroundColor="rgb(0,0,0)",document.body.style.height="100vh",renderer.innerHTML=".",renderer.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(()=>{document.body.style.overflowY="hidden"},2500);try{document.getElementsByClassName("header")[0].style.backgroundColor="rgb(0,0,0)",document.getElementsByClassName("page")[0].style.filter="grayscale(0%)"}catch(a){}renderer.style.color="rgb(0,255,0)";const rendererWidth=20,rendererHeight=20,menuTitle="[ENTER] to START",menuDesc="Arrow keys = Move Player",lostTitle="YOU LOST",lostDesc="ENTER to RESTART";let menuIndex=0,playerPositionX=10,playerPositionY=16,entities=[],gameState="Menu",rightInput=!1,leftInput=!1,upInput=!1,downInput=!1,entityCooldown=5,entityCooldownDefault=5;function menuCompute(){renderer.innerHTML="",(menuIndex+=1)>=2&&(menuIndex=0);for(let a=0;a<21;a++){let f=!1,g=!1;if(10==a)for(let b=0;b<21;b++)0==a||20==a||0==b||20==b?renderer.innerHTML+="[]":((b<10-menuDesc.length/4||b>=10+menuDesc.length/4)&&(renderer.innerHTML+=". "),b>10-menuDesc.length/4&&b<10+menuDesc.length/4&& !1==g&&(renderer.innerHTML+=menuDesc,g=!0));else if(9==a){if(0==menuIndex)for(let c=0;c<21;c++)0==a||20==a||0==c||20==c?renderer.innerHTML+="[]":((c<10-menuTitle.length/4||c>=10+menuTitle.length/4)&&(renderer.innerHTML+=". "),c>10-menuTitle.length/4&&c<10+menuTitle.length/4&& !1==f&&(renderer.innerHTML+=menuTitle,f=!0));else for(let d=0;d<21;d++)0==a||20==a||0==d||20==d?renderer.innerHTML+="[]":renderer.innerHTML+=". "}else for(let e=0;e<21;e++)0==a||20==a||0==e||20==e?renderer.innerHTML+="[]":renderer.innerHTML+=". ";renderer.innerHTML+="<br>"}}function lostCompute(){renderer.innerHTML="",(menuIndex+=1)>=2&&(menuIndex=0);for(let a=0;a<21;a++){let f=!1,g=!1;if(10==a)for(let b=0;b<21;b++)0==a||20==a||0==b||20==b?renderer.innerHTML+="[]":((b<10-lostDesc.length/4||b>=10+lostDesc.length/4)&&(renderer.innerHTML+=". "),b>10-lostDesc.length/4&&b<10+lostDesc.length/4&& !1==g&&(renderer.innerHTML+=lostDesc,g=!0));else if(9==a){if(0==menuIndex)for(let c=0;c<21;c++)0==a||20==a||0==c||20==c?renderer.innerHTML+="[]":((c<10-lostTitle.length/4||c>=10+lostTitle.length/4)&&(renderer.innerHTML+=". "),c>10-lostTitle.length/4&&c<10+lostTitle.length/4&& !1==f&&(renderer.innerHTML+=lostTitle,f=!0));else for(let d=0;d<21;d++)0==a||20==a||0==d||20==d?renderer.innerHTML+="[]":renderer.innerHTML+=". "}else for(let e=0;e<21;e++)0==a||20==a||0==e||20==e?renderer.innerHTML+="[]":renderer.innerHTML+=". ";renderer.innerHTML+="<br>"}}function gameCompute(){rightInput&&(playerPositionX+=1)>=20&&(gameState="Lost",lostCompute()),leftInput&&(playerPositionX-=1)<=0&&(gameState="Lost",lostCompute()),downInput&&(playerPositionY+=1)>=20&&(gameState="Lost",lostCompute()),upInput&&(playerPositionY-=1)<=0&&(gameState="Lost",lostCompute());let e=Math.round(playerPositionX),f=Math.round(playerPositionY);for(let a=0;a<entities.length;a++)entities[a].y+=1,entities[a].y>19&&entities.splice(a,1),e==entities[a].x&&f==entities[a].y&&(gameState="Lost",lostCompute()),e==entities[a].x&&f==entities[a].y-1&&(gameState="Lost",lostCompute());renderer.innerHTML="";for(let b=0;b<21;b++){for(let c=0;c<21;c++)if(c==e&&b==f)renderer.innerHTML+="/\\";else{let g=!1;for(let d=0;d<entities.length;d++)c==entities[d].x&&b==entities[d].y&&(renderer.innerHTML+="VV",g=!0),c==entities[d].x&&b==entities[d].y-1&&(renderer.innerHTML+="XX",g=!0);!1==g&&(0==b||20==b||0==c||20==c?renderer.innerHTML+="[]":renderer.innerHTML+=". ")}renderer.innerHTML+="<br>"}}document.body.onkeydown=function(a){"Enter"==a.key&&(playerPositionX=10,playerPositionY=16,entities=[],entityCooldownDefault=5,gameState="Game"),"ArrowRight"==a.key&&(rightInput=!0),"ArrowLeft"==a.key&&(leftInput=!0),"ArrowDown"==a.key&&(downInput=!0),"ArrowUp"==a.key&&(upInput=!0)},document.body.onkeyup=function(a){"ArrowRight"==a.key&&(rightInput=!1),"ArrowLeft"==a.key&&(leftInput=!1),"ArrowDown"==a.key&&(downInput=!1),"ArrowUp"==a.key&&(upInput=!1)},menuCompute(),setInterval(()=>{"Menu"==gameState&&menuCompute(),"Lost"==gameState&&lostCompute()},500),setInterval(()=>{"Game"==gameState&&gameCompute()},50),setInterval(()=>{"Game"==gameState&&(entityCooldown-=1)<=0&&(entities.push({x:Math.round(playerPositionX+(-4+20*Math.random()/2.5)),y:-1}),(entityCooldownDefault-=.2)<=2&&(entityCooldownDefault=2),entityCooldown=entityCooldownDefault)},100)