{"version":3,"sources":["shaders/TerminalShader.js","shaders/StarFieldShader.js","RoomModel2.js","TypistModel.js","components/LoadingSplash.js","Scene.js","components/Introduction.js","components/Window.js","components/Progress.js","components/TodoList.js","components/JukeBox.js","components/Social.js","components/Livestream.js","components/Alert.js","components/TextParticleSystem.js","components/MobileIntroduction.js","App.js","index.js"],"names":["TerminalShader","uniforms","u_time","type","value","u_speed","u_resolution","Vector2","vertexShader","fragmentShader","StarFieldShader","time","speed","colorA","Vector3","colorB","resolution","RoomModel2","props","group","useRef","wallRef","screenRef","useFrame","visualEffects","starWall","level","current","material","starSpeed","dehumanLevel","useGLTF","nodes","materials","wallMaterial","attach","color","Side_Wall","roughness","metalness","screenMaterial","Screen","args","side","ref","dispose","name","position","rotation","geometry","Floor","scale","Math","PI","Back_Wall","voidLevel","Door_188","DoorFrameWood","Door_188_1","DoorWood","Door_188_2","DoorKnob","Ceiling","Side_Table","SideTable","PosterOne","PosterTwo","DeskLeg001","DeskDrawerTop001","group122835016","group122835016_1","DeskDrawerTop002","DeskDrawerTop","DeskHandle001","DeskWall002","DeskHandle","DeskDrawerFront001","DeskHandle002","DeskDrawerFront002","DeskLeg","DeskWall001","DeskWall003","DeskWall004","DeskLegBase","DeskDrawerFront","DeskWall","DeskSurface","Computer","Computer_mat1","ChairBackBar001","ChairBackBar002","ChairBaseX","ChairBackBar003","ChairBack","ChairAdjustPedal","ChairSeat","group1306767648","group1306767648_1","group1306767648_2","group1665730989","group1665730989_1","group1665730989_2","ChairBackBar","ChairUnderSeat","group1933021004","group1933021004_1","group1933021004_2","ChairCentreMainBar","ChairAdjustTip","group2136273154","group2136273154_1","group2136273154_2","model001_1","StandFrame","model001_2","StandImage","model001_3","StandBack","model001_4","StandWindow","preload","TypistModel","animations","actions","useAnimations","useEffect","Typing","loop","play","eyeMaterial","Eyes","pantMaterial","Pants","shirtMaterial","Shirt","hairMaterial","Hair","skinMaterial","Skin","wireframe","emissive","r","g","b","object","Bone","Cylinder002","skeleton","Cylinder002_1","Cylinder002_2","Cylinder002_3","Cylinder002_4","LoadingSplash","roundedProgress","useProgress","progress","toPrecision","Html","className","CameraMovement","state","cameraDetails","positionNumber","THREE","camera","fov","lerp","lookAt","updateProjectionMatrix","Scene","lightmodeLighting","intensity","angle","penumbra","darkmodeLighting","distance","glitchLighting","gl","alpha","onCreated","fallback","cameraPosition","Introduction","dismissAlert","bind","this","onClick","hideIntroduction","React","Component","Window","minimised","toggleMinimise","setState","windowClasses","alert","windowClass","handle","bounds","windowTitle","notMinimisable","noExitButton","windowClose","children","Progress","levelTitle","levelSubtitle","experienceRequired","requirements","classes","showLevelUpButton","experience","clickEffect","style","width","levelUp","TODO_MESSAGES","MUST_DO_MESSAGES","COMMANDS","ENCOURAGEMENT_MESSAGES","ListItem","index","checked","isChecked","onChange","onToggle","onKeyUp","message","TodoList","toggleListItem","event","listItemIndex","parseInt","currentTarget","getAttribute","newListItems","listItems","boundingRectangle","getBoundingClientRect","effectSpawnPosition","x","y","checkIfAllItemsTicked","addExperience","length","createNewListItems","i","push","encouragementMessage","clickedItems","messageNumber","attemptToClose","prevProps","todoListLength","floor","random","replacedItemIndex","customToDoMessage","newMessage","callAlert","title","dismissal","map","item","exitButton","VIDEO_PLAYLIST","id","artist","PlaylistItem","nowPlaying","href","rel","target","JukeBox","startedPlaying","playlistDisplayed","playlistIndex","videoPlayingId","togglePlaylistDisplay","playNextSong","playPreviousSong","onPlayerReady","onStartedPlaying","playVideo","welcomed","bassDrop","setInterval","getCurrentTime","setVisualEffect","setTimeout","opts","height","playerVars","autoplay","fs","modestbranding","controls","origin","window","location","playlistItems","song","playlistShowMessage","videoId","onEnd","onReady","onPlay","onPause","gradient","POSTS","Social","textInput","preventDefault","showHint","postCharacterIndex","postNumber","post","substring","postFinished","key","xOffset","submitPost","refreshReady","postsSubmitted","notificationTab","notifications","general","messages","hearts","followers","socialCapital","influence","demands","adoration","watchers","handleSubmitButton","handleRefreshButton","getLotteryNumbers","toggleFollowerNotifications","toggleGeneralNotifications","toggleMessageNotifications","toggleHeartNotifications","generalNotifications","messageNotifications","heartNotifications","followerNotifications","result","lotteryNumbers","toString","number","classNames","lotteryDivs","textboxDefaultMessage","MessageNotification","GeneralNotification","HeartNotification","FollowerNotification","onKeyDown","defaultValue","usernames","suggestions","ChatMessage","author","Livestream","scrollToBottom","endOfMessages","scrollIntoView","streamerImage","chatMessages","viewers","createRef","postHeartMessage","ceil","streamerImageInterval","viewerInterval","round","chatInterval","username","generateMessage","reducedMessages","splice","clearInterval","messageLength","innerText","timeOutTime","classList","add","remove","streamerImageURL","chatOptions","option","src","alt","div","Alert","backgroundClass","display","TextParticleSystem","particles","amount","element","document","createElement","setAttribute","top","left","content","createTextNode","appendChild","getElementById","MobileIntroduction","background","padding","EXPERIENCE_REQUIREMENTS","App","showIntroduction","textParticleSystem","displayNewAlert","toggleEffect","alertObject","undefined","spawnExperience","innerWidth","ReactDOM","render"],"mappings":"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","file":"static/js/main.1e502e46.chunk.js","sourcesContent":["//Based on the shader by Book of Shaders\n\nimport { Vector2 } from \"three\";\n\nconst TerminalShader = {\n uniforms: {\n u_time: {type: \"f\", value: 0.1},\n u_speed: {type: \"f\", value: 0.5},\n u_resolution: {type: \"vec2\", value: new Vector2(450.0, 450.0)},\n },\n vertexShader: `\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n `,\n fragmentShader: `\n uniform vec2 u_resolution;\n uniform float u_time;\n uniform float u_speed;\n\n float random (in float x) {\n return fract(sin(x)*1e4);\n }\n\n float random (in vec2 st) {\n return fract(sin(dot(st.xy, vec2(12.9898,78.233)))* 43758.5453123);\n }\n\n float pattern(vec2 st, vec2 v, float t) {\n vec2 p = floor(st+v);\n return step(t, random(100.+p*.000001)+random(p.x)*0.5 );\n }\n\n void main() {\n vec2 st = gl_FragCoord.xy/u_resolution.xy;\n st.x *= u_resolution.x/u_resolution.y;\n\n float xSkew = 0.0;\n float ySkew = -0.3;\n float rotation = 0.2;\n\n mat3 trans = mat3(\n 1.0 , tan(xSkew), 0.0,\n tan(ySkew), 1.0, 0.0,\n 0.0 , 0.0, 1.0\n );\n\n mat2 rotate = mat2(\n cos(rotation), -sin(rotation),\n sin(rotation), cos(rotation)\n );\n\n st = (trans * (vec3(st.xy, 0.0))).xy;\n st = rotate * st.xy; \n\n vec2 grid = vec2(100.0,50.);\n st *= grid;\n\n vec2 ipos = floor(st); // integer\n vec2 fpos = fract(st); // fraction\n\n vec2 vel = vec2(u_time*u_speed*max(grid.x,grid.y)); // time\n vel *= vec2(-1.,0.0) * random(1.0+ipos.y); // direction\n\n // Assign a random value base on the integer coord\n vec2 offset = vec2(0.1,0.);\n\n vec3 color = vec3(0.);\n color.r = pattern(st+offset,vel,0.5);\n color.g = pattern(st,vel,0.5);\n color.b = pattern(st-offset,vel,0.5);\n\n // Margins\n color *= step(0.2,fpos.y);\n\n gl_FragColor = vec4(0.0, color.x * 0.8, 0.0 ,1.0);\n }\n `\n};\n\nexport { TerminalShader };","//Based on the shader by BonsaiDen, I've tweaked it to add motion\n//https://gist.github.com/BonsaiDen/ad7075c9bc415da9393a\n\n//Other interesting StarField shaders\n//https://www.shadertoy.com/view/lsc3z4\n//https://github.com/JesseSolomon/starfield/blob/main/public/fragment.glsl\n\nimport { Vector2, Vector3 } from \"three\";\n\nconst StarFieldShader = {\n uniforms: {\n time: {type: \"f\", value: 0.1},\n speed: {type: \"f\", value: 1.0},\n colorA: { type: \"vec3\", value: new Vector3(0.0, 0.0, 1.0)},\n colorB: { type: \"vec3\", value: new Vector3(1.0, 0.0, 0.0)},\n resolution: {type: \"vec2\", value: new Vector2(1000.0, 800.0)},\n },\n vertexShader: `\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n `,\n fragmentShader: `\n varying vec2 vUv;\n\n uniform vec2 resolution;\n uniform float time;\n uniform float speed;\n uniform vec3 colorA; \n uniform vec3 colorB; \n \n vec3 mod289(vec3 x) {\n return x - floor(x * (1.0 / 239.0)) * 239.0;\n }\n\n vec2 mod289(vec2 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n }\n\n vec3 permute(vec3 x) {\n return mod289(((x*34.0)+1.0)*x);\n }\n\n float snoise(vec2 v) {\n\n const vec4 C = vec4(0.211324865405187, // (3.0-sqrt(3.0))/6.0\n 0.366025403784439, // 0.5*(sqrt(3.0)-1.0)\n -0.577350269189626, // -1.0 + 2.0 * C.x\n 0.024390243902439); // 1.0 / 41.0\n // First corner\n vec2 i = floor(v + dot(v, C.yy) );\n vec2 x0 = v - i + dot(i, C.xx);\n\n vec2 i1;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n\n i = mod289(i); // Avoid truncation effects in permutation\n vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))\n + i.x + vec3(0.0, i1.x, 1.0 ));\n\n vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0);\n m = m*m ;\n m = m*m ;\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n\n return 151.0 * dot(m, g); //tweak 152.0 to get more / less stars\n }\n\n float star(vec2 p) {\n return step(0.49, smoothstep(0.80, 1.0, snoise(p))); \n }\n\n void main(void) {\n \n vec2 p = gl_FragCoord.xy;\n\n //This controls the speed and direction of the star layers\n vec2 o = vec2(cameraPosition.x * time * speed * 0.5, cameraPosition.y * 0.5);\n\n // star layers\n float s1 = star(p + floor(o * 1.1));\n float s2 = star(p + floor(o * 0.75) + vec2(-20.0, 10.0));\n float s3 = star(p + floor(o * 0.5) + vec2(-75.0, 25.0));\n \n float g = smoothstep(0.10, 1.0,snoise(p));\n if (s1 > 0.0) {\n s1 -= g * 0.25;\n }\n if (s2 > 0.0) {\n s2 += g * 0.75;\n }\n \n if (s3 > 0.0) {\n s3 += g * 0.5;\n }\n\n // Time varying pixel color from the rainbow shader\n vec3 col = 0.1 + 0.5*cos(time * speed * 0.01 + vUv.xyx + vec3(0,2,4));\n \n float val = (s1 * 1.0 + s2 * 0.50 + s3 * 0.25);\n\n if (val < 0.01) {\n gl_FragColor = vec4(col, 1.0);\n } else {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n }\n \n }\n `\n};\n\nexport { StarFieldShader };","/*\nAuto-generated by: https://github.com/pmndrs/gltfjsx\n*/\n\nimport React, { useRef } from 'react';\nimport { useGLTF } from '@react-three/drei';\nimport { useFrame } from \"@react-three/fiber\";\nimport { TerminalShader } from './shaders/TerminalShader';\nimport { StarFieldShader } from './shaders/StarFieldShader';\n\nexport default function RoomModel2(props) {\n const group = useRef()\n const wallRef = useRef()\n const screenRef = useRef()\n\n useFrame(() => {\n if (props.visualEffects.starWall && props.level < 3) {\n wallRef.current.material.uniforms.speed.value = props.visualEffects.starSpeed;\n wallRef.current.material.uniforms.time.value += 1.0;\n }\n if (props.visualEffects.dehumanLevel > 3) {\n screenRef.current.material.uniforms.u_time.value += 0.01;\n }\n });\n \n const { nodes, materials } = useGLTF('/room2.glb')\n\n /*\n useEffect(()=>{\n console.log(nodes.Side_Wall.material);\n })\n */\n\n let wallMaterial = \n\n let screenMaterial = \n\n\n if (props.visualEffects.starWall && props.level < 3){\n wallMaterial = \n }\n if (props.visualEffects.dehumanLevel > 0){\n wallMaterial = \n }\n if (props.visualEffects.dehumanLevel > 3){\n screenMaterial = \n }\n\n return (\n \n \n \n \n { wallMaterial }\n \n \n { wallMaterial }\n \n \n { wallMaterial }\n \n \n {screenMaterial}\n \n \n { (props.visualEffects.voidLevel > 1) ? null : <>\n \n \n \n \n \n }\n \n { (props.visualEffects.voidLevel > 1) ? null : <>\n }\n\n\n { (props.visualEffects.dehumanLevel > 1) ? null : <>\n \n \n { props.visualEffects.starWall ? null : <>\n \n \n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n }\n \n { (props.visualEffects.dehumanLevel > 5) ? null :\n }\n\n { (props.visualEffects.dehumanLevel > 3) ? null : <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n { (props.visualEffects.voidLevel > 2) ? null : <>\n \n \n \n \n \n \n }\n \n \n )\n}\n\nuseGLTF.preload('/room2.glb')\n\n/*\n\n */","import React, { useRef, useEffect } from 'react'\nimport { useGLTF, useAnimations } from '@react-three/drei'\n\nexport default function TypistModel(props) {\n const group = useRef()\n const { nodes, materials, animations } = useGLTF('/typist.glb')\n const { actions } = useAnimations(animations, group)\n\n useEffect(() => { \n actions.Typing.loop = 2202; \n //LoopPingPong, see https://github.com/mrdoob/three.js/blob/master/src/constants.js\n \n actions.Typing.play();\n });\n\n let eyeMaterial = materials.Eyes;\n let pantMaterial = materials.Pants;\n let shirtMaterial = materials.Shirt;\n let hairMaterial = materials.Hair;\n let skinMaterial = materials.Skin;\n\n if (props.level === 3) {\n\n if (props.visualEffects.dehumanLevel > 1) {\n shirtMaterial.wireframe = true;\n shirtMaterial.emissive = { r: 0.0, g: 0.5, b: 0.0 };\n }\n\n if (props.visualEffects.dehumanLevel > 2) {\n eyeMaterial.color = { r: 0.0, g: 0.0, b: 1.0 };\n eyeMaterial.emissive = { r: 0.0, g: 0.0, b: 1.0 };\n }\n\n if (props.visualEffects.dehumanLevel > 3) {\n hairMaterial.wireframe = true;\n hairMaterial.emissive = { r: 0.0, g: 0.5, b: 0.0 };\n }\n\n if (props.visualEffects.dehumanLevel > 4) {\n pantMaterial.wireframe = true;\n pantMaterial.emissive = { r: 0.0, g: 0.5, b: 0.0 };\n }\n\n if (props.visualEffects.dehumanLevel > 6) {\n skinMaterial.wireframe = true;\n skinMaterial.emissive = { r: 0.0, g: 0.5, b: 0.0 };\n }\n\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nuseGLTF.preload('/typist.glb')\n","import React from 'react';\nimport { useProgress, Html } from '@react-three/drei';\n\nexport default function LoadingSplash() {\n const { progress } = useProgress()\n const roundedProgress = progress.toPrecision(3);\n return (\n \n
\n
\n

LOADING...

\n

{roundedProgress}% loaded

\n
\n
\n \n )\n}\n\n","import RoomModel2 from './RoomModel2';\nimport TypistModel from './TypistModel';\nimport LoadingSplash from './components/LoadingSplash';\n\nimport * as THREE from 'three'\nimport React, { Suspense } from 'react';\nimport { Canvas, useFrame } from '@react-three/fiber';\nimport { Stats } from '@react-three/drei';\n\nfunction CameraMovement(props) {\n\n useFrame((state) => {\n\n const step = 0.1;\n const cameraDetails = {};\n\n let positionNumber = props.position;\n if (props.level === 1) positionNumber = 0;\n if (props.level === 2) positionNumber = 1;\n if (props.level === 3) positionNumber = 2;\n\n //Let the camera change from default if flow effect playing.\n if (props.position === 3) positionNumber = 3;\n\n switch (positionNumber) {\n case 0: //Default, looks a bit weird with the door.\n cameraDetails[\"position\"] = new THREE.Vector3(3, 2, -1);\n cameraDetails[\"fov\"] = 30;\n break;\n case 1: //Close up for starwall flow effect. No door visible.\n cameraDetails[\"position\"] = new THREE.Vector3(2, 2, -0.5);\n cameraDetails[\"fov\"] = 25;\n break;\n case 2: //Looking down, surveillance style\n cameraDetails[\"position\"] = new THREE.Vector3(3.0, 2.7, 1);\n cameraDetails[\"fov\"] = 17;\n break;\n case 3: //Close up for starwall flow effect. No door visible.\n cameraDetails[\"position\"] = new THREE.Vector3(2, 2, -0.5);\n cameraDetails[\"fov\"] = 25;\n break;\n default:\n cameraDetails[\"position\"] = new THREE.Vector3(1.4, 1.9, -0.1);\n cameraDetails[\"fov\"] = 30;\n break;\n }\n\n state.camera.fov = THREE.MathUtils.lerp(state.camera.fov, cameraDetails.fov, step);\n state.camera.position.lerp(cameraDetails.position, step);\n state.camera.lookAt(-1.7, 1.6, -3.1);\n state.camera.updateProjectionMatrix();\n\n });\n\n return null;\n}\n\nexport default function Scene(props) {\n\n const lightmodeLighting = <>\n \n \n \n ;\n\n const darkmodeLighting = <>\n \n \n \n ;\n\n const glitchLighting = <>\n \n \n \n ;\n\n return (\n <>\n state.camera.lookAt(-1.7, 1.6, -3.1)} \n camera={{ position: [3, 2, -1], fov: 30 }}\n >\n }>\n \n \n \n \n \n \n { props.level === 1 ? lightmodeLighting : null}\n { props.level === 2 ? darkmodeLighting : null}\n { props.level === 3 ? glitchLighting : null}\n\n \n { true ? null : }\n \n \n )\n}","import React from 'react';\n\nclass Introduction extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.dismissAlert = this.dismissAlert.bind(this);\n }\n\n dismissAlert(){\n this.props.dismissAlert();\n }\n\n render() {\n return (\n
\n
\n

YOU-ARE.ONLINE

\n

Desktop Edition

\n

\n Please set your volume to a low level.\n

\n \n
\n
\n );\n }\n\n}\n\nexport default Introduction;\n\n","import React from 'react';\nimport Draggable from 'react-draggable';\nimport { VscChromeClose, VscArrowRight, VscChromeMaximize, VscChromeMinimize } from 'react-icons/vsc';\nimport { GrAlert } from 'react-icons/gr';\n\nclass Window extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n minimised: false,\n }\n\n this.toggleMinimise = this.toggleMinimise.bind(this);\n }\n\n toggleMinimise(){\n this.setState( state => ({\n minimised: !state.minimised,\n }));\n }\n\n render() {\n\n let windowClasses = \"window \";\n\n if ( this.props.alert ) {\n switch (this.props.level) {\n case 1:\n windowClasses += \"alert alert--light\";\n break;\n case 2:\n windowClasses += \"alert alert--dark\";\n break;\n case 3:\n windowClasses += \"alert alert--glitch\";\n break;\n default:\n }\n } else {\n \n switch (this.props.level) {\n case 1:\n windowClasses += \"window--light \";\n break;\n case 2:\n windowClasses += \"window--dark \";\n break;\n case 3:\n windowClasses += \"window--glitch \";\n break;\n default:\n }\n \n }\n\n windowClasses += this.props.windowClass;\n\n return (\n \n
\n
\n\n { this.props.alert ?\n
\n {this.props.windowTitle}\n
\n :\n
\n {this.props.windowTitle}\n
\n }\n\n { this.props.notMinimisable ? null :\n
\n { this.state.minimised ? \n : }\n
\n }\n\n { this.props.noExitButton ? null :\n
\n \n
\n }\n
\n \n\n { (this.state.minimised && !this.props.notMinimisable) ? null :\n
\n {this.props.children}\n
\n }\n
\n
\n )\n }\n\n}\n\nexport default Window;","import React from 'react';\nimport Window from './Window';\n\nclass Progress extends React.Component {\n\n render() {\n\n let levelTitle = \"Level One\", levelSubtitle = \"Light Mode\";\n let experienceRequired = this.props.requirements[this.props.level];\n\n if (this.props.level === 2){\n levelTitle = \"Level Two\";\n levelSubtitle = \"Dark Mode\";\n }\n if (this.props.level === 3){\n levelTitle = \"Level Three\";\n levelSubtitle = \"Terminal\";\n }\n\n if (this.props.level === 4){\n levelTitle = \"THE END\";\n levelSubtitle = \"It's over\";\n }\n \n let classes = \"progress \";\n\n switch (this.props.level) {\n case 1:\n classes += \"progress--light \";\n break;\n case 2:\n classes += \"progress--dark \";\n break;\n case 3:\n classes += \"progress--glitch \";\n break;\n default:\n }\n\n let showLevelUpButton = false;\n let experience = this.props.experience;\n if (this.props.experience > experienceRequired){\n experience = experienceRequired;\n showLevelUpButton = true;\n }\n \n let windowTitle = \"Progress Bar\";\n if (this.props.level === 2) windowTitle = \"KPI Progress\";\n if (this.props.level === 3) windowTitle = \"Progress.exe\";\n\n return (\n \n
{levelTitle}
\n
{levelSubtitle}
\n
\n
\n
\n
\n
{this.props.experience} Experience
\n
{experienceRequired} to Progress
\n\n { showLevelUpButton ? \n
\n \n
\n : null}\n
\n );\n }\n\n}\n\nexport default Progress;","import React from 'react';\nimport Window from './Window';\n\nconst TODO_MESSAGES = [\n \"Contemplate life.\",\n \"Find inner peace.\",\n \"Practice stillness.\",\n \"Take a deep breath.\",\n \"Feel my emotions.\",\n \"Take time for rest.\",\n \"Go outside.\",\n \"Practice compassion.\",\n \"Plan for the future.\",\n \"Be kind to myself.\",\n \"Accept reality, openly.\",\n];\n\nconst MUST_DO_MESSAGES = [\n \"Get a degree\",\n \"Find life purpose\",\n \"Find the dream job\",\n \"Get a raise\",\n \"Have sex\",\n \"Write a book\",\n \"Build online presence\",\n \"Learn to draw\",\n \"Find a partner\",\n \"Improve my diet\",\n \"Cook a fancy meal\",\n \"Go vegan\",\n \"Practice my singing\",\n \"Play an instrument\",\n \"Write thoughtful poetry\",\n \"Learn to paint\",\n \"Make meaningful friendships\",\n \"Fight for peace\",\n \"Save the environment\",\n \"Be better\",\n \"Be better\",\n \"Be better\",\n \"Be better\",\n \"Be better\",\n \"Be better\",\n \"Be better\",\n]\n\nconst COMMANDS = [\n \"Live a meaningful life!\",\n \"Stop wasting time online!\",\n \"Break the cycle!\",\n \"Look at the screen!\",\n \"Ignore the tension!\",\n \"Drown the discomfort!\",\n \"Sell the dreams of society!\",\n \"FIND LOVE.\",\n \"FORGIVE MYSELF.\",\n \"LET GO.\",\n \"BE FREE.\",\n \"STOP.\",\n \"STOP.\",\n \"STOP.\",\n \"STOP.\",\n \"STOP.\",\n \"STOP.\",\n \"STOP.\",\n]\n\nconst ENCOURAGEMENT_MESSAGES = [\n \"Be productive! ðŸĪ‘\",\n \"#Motivated! 😎\",\n \"Life goooooals! ðŸĪŠ\",\n \"You're doing great! 😜\",\n \"Click those boxes! ðŸąâ€ðŸ’ŧ\"\n]\n\nconst ITEMS_TO_CLICK = 8;\n\nconst ListItem = props => (\n \n)\n\nclass TodoList extends React.Component {\n\n constructor(props) {\n super(props);\n\n let newListItems = [];\n for (let i = 0; i < 5; i++) {\n newListItems.push({ message: \"Tick this!\", checked: false});\n }\n\n this.state = { \n listItems: newListItems,\n encouragementMessage: \"Complete the todo list! ðŸĨ°\",\n clickedItems: 0,\n level: 0,\n messageNumber: 0,\n };\n\n this.toggleListItem = this.toggleListItem.bind(this);\n this.checkIfAllItemsTicked = this.checkIfAllItemsTicked.bind(this);\n this.attemptToClose = this.attemptToClose.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n\n //https://www.pluralsight.com/guides/prop-changes-in-react-component\n if (prevProps.level !== this.props.level) {\n this.createNewListItems();\n }\n \n }\n\n createNewListItems() {\n this.setState({ listItems: [] });\n let newListItems = [];\n const todoListLength = 5 + Math.floor(Math.random() * 3); \n const replacedItemIndex = Math.floor(Math.random() * todoListLength);\n\n for (let i = 0; i < todoListLength; i++) {\n\n if (i === replacedItemIndex) {\n let customToDoMessage;\n switch(this.props.level) {\n case 1:\n customToDoMessage = TODO_MESSAGES[this.state.messageNumber % TODO_MESSAGES.length];\n break;\n case 2:\n customToDoMessage = MUST_DO_MESSAGES[this.state.messageNumber % MUST_DO_MESSAGES.length];\n break;\n case 3:\n customToDoMessage = COMMANDS[this.state.messageNumber % COMMANDS.length];\n break;\n default:\n } \n newListItems.push({ message: customToDoMessage, checked: false});\n } else {\n switch(this.props.level) {\n case 1:\n newListItems.push({ message: \"Tick this!\", checked: false});\n break;\n case 2:\n newListItems.push({ message: \"Do this!\", checked: false});\n break;\n case 3:\n newListItems.push({ message: \"Don't stop!\", checked: false});\n break;\n default:\n }\n }\n }\n\n this.setState(state => ({\n messageNumber: state.messageNumber += 1,\n listItems: newListItems\n }));\n }\n\n checkIfAllItemsTicked() {\n for (let i = 0; i < this.state.listItems.length; i++) {\n if ( this.state.listItems[i].checked === false) {\n return false;\n }\n }\n\n this.setState(state => ({\n clickedItems: state.clickedItems + state.listItems.length\n }));\n\n if (this.state.clickedItems > ITEMS_TO_CLICK) {\n this.setState(state => ({\n level: state.level + 1,\n clickedItems: 0\n }));\n this.levelUp();\n }\n\n return true;\n }\n\n levelUp() {\n const newMessage = ENCOURAGEMENT_MESSAGES[this.state.level % ENCOURAGEMENT_MESSAGES.length];\n\n this.setState({\n encouragementMessage: newMessage\n })\n }\n\n toggleListItem = event => {\n\n const listItemIndex = parseInt(event.currentTarget.getAttribute(\"index\"));\n const newListItems = this.state.listItems;\n newListItems[listItemIndex].checked = !newListItems[listItemIndex].checked;\n\n const boundingRectangle = event.currentTarget.getBoundingClientRect();\n const effectSpawnPosition = {x: boundingRectangle.x - 60, y: boundingRectangle.y}\n\n this.setState({\n listItems: newListItems\n })\n\n if (this.checkIfAllItemsTicked()) {\n this.props.addExperience(this.state.listItems.length, effectSpawnPosition);\n this.createNewListItems();\n } else {\n if (newListItems[listItemIndex].checked){\n this.props.addExperience(this.props.level, effectSpawnPosition);\n } else {\n this.props.addExperience(-this.props.level, effectSpawnPosition);\n }\n }\n \n }\n\n attemptToClose() {\n\n this.props.callAlert({\n title: \"We're not done yet.\",\n message: \"Tick the empty boxes, don't click the red cross!\",\n dismissal: \"Tick this!\",\n });\n\n }\n\n render() {\n\n let classes = \"todo-list \";\n\n switch (this.props.level) {\n case 1:\n classes += \"todo-list--light \";\n break;\n case 2:\n classes += \"todo-list--dark \";\n break;\n case 3:\n classes += \"todo-list--glitch \";\n break;\n default:\n }\n\n const listItems = this.state.listItems.map((item, index) => \n \n );\n\n let windowTitle = \"Todo List\";\n if (this.props.level === 2) windowTitle = \"Must Do List\";\n if (this.props.level === 3) windowTitle = \"Command-List.exe\";\n\n return (\n \n
\n {listItems}\n

{this.state.encouragementMessage}

\n
\n
\n );\n }\n}\n\nexport default TodoList;","import React from 'react';\nimport Window from './Window';\nimport YouTube from 'react-youtube';\nimport Marquee from \"react-fast-marquee\";\nimport { IoMdSkipBackward, IoMdSkipForward, IoIosMusicalNotes } from 'react-icons/io';\nimport { AiFillCaretDown, AiFillCaretUp } from 'react-icons/ai';\nimport { RiExternalLinkLine } from 'react-icons/ri';\n\nconst VIDEO_PLAYLIST = [\n //Introduction - deliberately cut off at start.\n { id: \"k1BneeJTDcU\", name: \"Welcome to the Internet\", artist: \"Bo Burnham\"},\n { id: \"-lSXMvF0wsk\", name: \"Do It\", artist: \"Rootkit, Terlia, Shia LaBeouf\"},\n { id: \"hX0T9JCYJMg\", name: \"Working for Google\", artist: \"Hey Geronimo\" },\n { id: \"irfXSw55DUo\", name: \"Modern Gas\", artist: \"LOOK MUM NO COMPUTER\"},\n { id: \"bOjVPS7plJU\", name: \"Extremely Online\", artist: \"MC Frontalot\" },\n { id: \"Irp0uwdsM3Y\", name: \"Not Human\", artist: \"Elegant Slims\" },\n { id: \"T3usOhr_gWY\", name: \"Content\", artist: \"Joywave\" },\n { id: \"OVwGnJ8Jd5w\", name: \"Fake\", artist: \"That Handsome Devil\" },\n { id: \"IWwUfaW-bPg\", name: \"You Are Not Alone\", artist: \"Kashuks\" }\n];\n\nfunction PlaylistItem(props) {\n\n let classes = \"jukebox__playlist-item\";\n\n if (props.nowPlaying) {\n classes += \" jukebox__playlist-item-selected\";\n }\n\n return (\n
\n { props.nowPlaying ? \n
\n : <>\n }\n \n
{props.artist}
\n
\n );\n}\n\nclass JukeBox extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = { \n startedPlaying: false,\n playlistDisplayed: false,\n playlistIndex: 0,\n videoPlayingId: \"k1BneeJTDcU\"\n };\n\n this.togglePlaylistDisplay = this.togglePlaylistDisplay.bind(this);\n this.playNextSong = this.playNextSong.bind(this);\n this.playPreviousSong = this.playPreviousSong.bind(this);\n this.attemptToClose = this.attemptToClose.bind(this);\n this.onPlayerReady = this.onPlayerReady.bind(this);\n this.onStartedPlaying = this.onStartedPlaying.bind(this);\n }\n\n onPlayerReady(event){\n // access to player in all event handlers via event.target\n event.target.playVideo();\n let welcomed = false;\n let bassDrop = false;\n\n setInterval(() => {\n\n if (welcomed === false && event.target.getCurrentTime() > 2.9 && this.state.playlistIndex === 0){\n welcomed = true;\n this.playNextSong();\n }\n\n if (bassDrop === false && this.state.playlistIndex === 1 && \n event.target.getCurrentTime() > 44.5 && event.target.getCurrentTime() < 45.5) \n {\n bassDrop = true;\n this.props.setVisualEffect(\"starWall\", true);\n this.props.setVisualEffect(\"cameraPosition\", 3);\n\n setTimeout(() => {\n this.props.setVisualEffect(\"cameraPosition\", 0);\n\n setTimeout(() => {\n this.props.setVisualEffect(\"starWall\", false);\n bassDrop = false;\n }, 22000);\n \n }, 22000);\n }\n\n if (bassDrop === false && this.state.playlistIndex === 1 && \n event.target.getCurrentTime() > 132.0 && event.target.getCurrentTime() < 133) \n {\n bassDrop = true;\n this.props.setVisualEffect(\"starWall\", true);\n this.props.setVisualEffect(\"cameraPosition\", 3);\n this.props.setVisualEffect(\"starSpeed\", 1.5);\n\n setTimeout(() => {\n this.props.setVisualEffect(\"cameraPosition\", 0);\n\n setTimeout(() => {\n this.props.setVisualEffect(\"starWall\", false);\n bassDrop = false;\n }, 22000);\n\n }, 22000);\n }\n\n if (this.state.playlistIndex === 5 && //make walls black\n event.target.getCurrentTime() > 26.0 && event.target.getCurrentTime() < 27) {\n this.props.setVisualEffect(\"dehumanLevel\", 1);\n }\n\n if (this.state.playlistIndex === 5 && //hide posters\n event.target.getCurrentTime() > 44.0 && event.target.getCurrentTime() < 45) {\n this.props.setVisualEffect(\"dehumanLevel\", 2);\n }\n\n if (this.state.playlistIndex === 5 && //electric blue \n event.target.getCurrentTime() > 62.0 && event.target.getCurrentTime() < 63) {\n this.props.setVisualEffect(\"dehumanLevel\", 3);\n }\n\n \n if (this.state.playlistIndex === 5 && //hide head\n event.target.getCurrentTime() > 96.0 && event.target.getCurrentTime() < 97) {\n this.props.setVisualEffect(\"dehumanLevel\", 4);\n }\n\n if (this.state.playlistIndex === 5 && //not human (chorus)\n event.target.getCurrentTime() > 107.0 && event.target.getCurrentTime() < 108) {\n this.props.setVisualEffect(\"dehumanLevel\", 5);\n }\n\n if (this.state.playlistIndex === 5 && //not human (chorus)\n event.target.getCurrentTime() > 164.0 && event.target.getCurrentTime() < 165) {\n this.props.setVisualEffect(\"dehumanLevel\", 6);\n }\n\n if (this.state.playlistIndex === 5 && //not human (chorus)\n event.target.getCurrentTime() > 175.5 && event.target.getCurrentTime() < 176) {\n this.props.setVisualEffect(\"dehumanLevel\", 7);\n }\n\n }, 250);\n\n }\n\n componentDidUpdate(prevProps) {\n\n if (prevProps.level !== this.props.level) {\n\n if (this.props.level === 3){\n this.setState({\n playlistIndex: 5,\n videoPlayingId: VIDEO_PLAYLIST[5].id,\n });\n }\n\n if (this.props.level === 4){\n this.setState({\n playlistIndex: 8,\n videoPlayingId: VIDEO_PLAYLIST[8].id,\n });\n }\n\n }\n \n }\n\n onPause(event){\n //Makes the music un-pausable\n //Apologies, this is part of the artwork\n event.target.playVideo();\n }\n\n onStartedPlaying(){\n\n if (this.state.startedPlaying === false){\n this.setState({\n startedPlaying: true,\n });\n }\n\n }\n\n playNextSong(){\n this.setState( state => ({\n playlistIndex: (state.playlistIndex + 1) % VIDEO_PLAYLIST.length,\n videoPlayingId: VIDEO_PLAYLIST[(state.playlistIndex + 1) % VIDEO_PLAYLIST.length].id\n }))\n }\n\n playPreviousSong(){\n this.setState( state => ({\n playlistIndex: (state.playlistIndex + VIDEO_PLAYLIST.length - 1) % VIDEO_PLAYLIST.length,\n videoPlayingId: VIDEO_PLAYLIST[(state.playlistIndex + VIDEO_PLAYLIST.length - 1) % VIDEO_PLAYLIST.length].id\n }))\n }\n\n togglePlaylistDisplay() {\n\n if (this.state.playlistDisplayed) {\n this.setState({ playlistDisplayed: false });\n } else {\n this.setState({ playlistDisplayed: true });\n }\n\n }\n\n attemptToClose() {\n\n this.props.callAlert({\n title: `Alert!`,\n message: \"Don't stop the music!\",\n dismissal: \"Pardon?\",\n });\n\n }\n\n render(){\n let opts = {\n height: '169',\n width: '300',\n playerVars: {\n // https://developers.google.com/youtube/player_parameters\n autoplay: 1,\n fs: 0, //disable fullscreen button from showing.\n modestbranding: 1,\n controls: 1,\n origin: window.location.origin,\n },\n };\n\n if (this.props.level === 4){\n opts = {\n height: '500',\n width: '800',\n playerVars: {\n autoplay: 1,\n fs: 0,\n modestbranding: 1,\n origin: window.location.origin,\n },\n };\n }\n\n const playlistItems = VIDEO_PLAYLIST.map((song, index) => \n \n );\n\n const playlistShowMessage = this.state.playlistDisplayed \n ? <>Hide Playlist\n : <>View Playlist\n\n let classes = \"jukebox \";\n\n switch (this.props.level) {\n case 1:\n classes += \"jukebox--light \";\n break;\n case 2:\n classes += \"jukebox--dark \";\n break;\n case 3:\n classes += \"jukebox--glitch \";\n break;\n case 4:\n classes += \"jukebox--end \";\n break;\n default:\n }\n\n let windowTitle = \"Music Player\";\n if (this.props.level === 2) windowTitle = \"Sound Machine\";\n if (this.props.level === 3) windowTitle = \"Noise-Box.exe\";\n \n return (\n \n
\n { this.state.startedPlaying ? null :\n
\n

CLICK HERE!

\n
}\n\n \n\n { this.state.startedPlaying ? <>\n \n

\n Now Playing: \n {VIDEO_PLAYLIST[this.state.playlistIndex].name}\n by \n {VIDEO_PLAYLIST[this.state.playlistIndex].artist}\n \n

\n
\n \n
\n\n { (this.state.playlistIndex !== 0 && this.state.playlistIndex !== 5) ? \n
\n \n
: null}\n { (this.state.playlistIndex !== 0 && this.state.playlistIndex !== 5) ? \n
\n \n
: null}\n\n
\n {playlistShowMessage}\n
\n
\n
\n {playlistItems}\n
\n : null }\n\n
\n
\n );\n }\n}\n\nexport default JukeBox;","import React from 'react';\nimport Window from './Window';\nimport { BsBellFill, BsFillEnvelopeFill, BsHeartFill, BsPeopleFill } from 'react-icons/bs';\nimport { IoReloadSharp } from 'react-icons/io5';\n\nconst POSTS = [\n \"Hello world! #myfirstcontent ðŸĨ°\", //silcon valley floats gently into our introductions\n \"Today's net art should capture the totality of the internet, by any memes possible.\",\n \"When consuming content, we lose our sense of self and become a part of the internet machine.\",\n \"The most important product tech companies develop is your attachment.\",\n \"The early web was made by its users, the modern web is passive.\",\n \"On Twitter, your life is reduced to series of tweets.\",\n \"Demands on your attention remove your ability to attend\",\n `Go online / Abandon thought\n Lose yourself / In one and nought #poetry`,\n \"I'm so many moves ahead of you I've wandered off to the pub and I've ordered a pint :)\",\n \"Offending others is bad, and if that offends you I don't care 😒\",\n \"#poetry #poetry #poetry #poetry #poetry #poetry ... sometimes it just hits different.\",\n \"Online content overconsumed physically hurts us, if we acknowledge the headache.\",\n \"Young content producers operate on a whole new level of tiredness; crypt-status.\",\n \"Be five things at once! No, wait - be EVERYTHING at once! ... but don't be yourself.\",\n \"Behold! The democracy of numbers on a screen, as alotted by the general populus.\",\n \"Coded, conditioned, part of the algorithm. Where does the internet end and the user begin?\",\n `\"Maybe I'm just an algorithm with a given name\" #content @Joywave`,\n \"The user only exists online. Their sole purpose, to unfold the designs we've created.\",\n \"Most net art is fundamentally broken, because our humanity is broken as we engage with it.\",\n \"Our presence is reduced to intrigue, button pressing, breif enjoyment of colour.\",\n \"This is why creative websites often don't fit the 'art' description.\",\n `\"This is a distraction, from what is really happening\" #fake @ThatHandsomeDevil`,\n \"Our hidden discomforts call us closer, they echo of past intimacy.\",\n \"We're all looking for security. For love from others, and ourselves.\",\n \"Life has always been more beautiful and engaging than anything I've found online.\",\n \"The longer you stay the worse it gets.\",\n];\n\nclass Social extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n post: \"\",\n postFinished: false,\n refreshReady: false,\n postsSubmitted: 0,\n postCharacterIndex: 0,\n postNumber: 0,\n showHint: true,\n notificationTab: null,\n notifications: {\n general: 0,\n messages: 0,\n hearts: 0,\n followers: 0\n },\n socialCapital: {\n influence: 0,\n demands: 0,\n adoration: 0,\n watchers: 0\n }\n \n }\n\n this.attemptToClose = this.attemptToClose.bind(this);\n this.textInput = this.textInput.bind(this);\n this.submitPost = this.submitPost.bind(this);\n this.handleSubmitButton = this.handleSubmitButton.bind(this);\n this.handleRefreshButton = this.handleRefreshButton.bind(this);\n this.getLotteryNumbers = this.getLotteryNumbers.bind(this);\n this.toggleFollowerNotifications = this.toggleFollowerNotifications.bind(this);\n this.toggleGeneralNotifications = this.toggleGeneralNotifications.bind(this);\n this.toggleMessageNotifications = this.toggleMessageNotifications.bind(this);\n this.toggleHeartNotifications = this.toggleHeartNotifications.bind(this);\n }\n\n attemptToClose(){\n\n this.props.callAlert({\n title: \"Wait!\",\n message: \"What if someone needs you?\",\n dismissal: \"I'll stay online\",\n });\n\n }\n\n handleSubmitButton(event){\n\n if (this.state.postFinished){\n const boundingRectangle = event.currentTarget.getBoundingClientRect();\n const xOffset = -80 + Math.random() * 160;\n const effectSpawnPosition = {x: boundingRectangle.x + xOffset, y: boundingRectangle.y - 30}\n\n this.props.addExperience(1, effectSpawnPosition);\n this.submitPost();\n }\n\n }\n\n handleRefreshButton(){\n\n if (this.state.refreshReady && (this.state.postsSubmitted > 0)){\n\n const generalNotifications = Math.floor(Math.random() * 3 + Math.random() * 4 * this.state.postsSubmitted);\n const messageNotifications = Math.floor(Math.random() * 1 + Math.random() * 1 * this.state.postsSubmitted);\n const heartNotifications = Math.floor(Math.random() * 8 + Math.random() * 10 * this.state.postsSubmitted);\n const followerNotifications = Math.floor(Math.random() * 2 + Math.random() * 2 * this.state.postsSubmitted);\n\n this.setState(state => ({\n refreshReady: false,\n postsSubmitted: 0,\n notificationTab: null,\n notifications: {\n general: state.notifications.general + generalNotifications,\n messages: state.notifications.messages + messageNotifications,\n hearts: state.notifications.hearts + heartNotifications,\n followers: state.notifications.followers + followerNotifications\n }\n }));\n\n }\n\n }\n\n submitPost(){\n\n this.setState(state => ({\n refreshReady: true,\n showHint: true,\n postFinished: false,\n post: \"\",\n postNumber: (state.postNumber + 1) % POSTS.length,\n postsSubmitted: state.postsSubmitted + 1,\n postCharacterIndex: 0,\n }))\n\n }\n\n textInput = event => {\n event.preventDefault();\n\n if (this.state.showHint) {\n this.setState({\n showHint: false,\n })\n }\n\n if (this.state.postCharacterIndex < POSTS[this.state.postNumber].length){\n this.setState(state => ({\n post: state.post + POSTS[state.postNumber].substring(state.postCharacterIndex, state.postCharacterIndex + 1),\n postCharacterIndex: state.postCharacterIndex + 1,\n }))\n } \n\n if (this.state.postCharacterIndex >= POSTS[this.state.postNumber].length - 1){\n this.setState({\n postFinished: true\n })\n }\n\n if (event.key === \"Enter\" && this.state.postFinished){\n const boundingRectangle = event.currentTarget.getBoundingClientRect();\n const xOffset = Math.random() * 160;\n const effectSpawnPosition = {x: boundingRectangle.x + xOffset, y: boundingRectangle.y + 40}\n\n this.props.addExperience(this.props.level, effectSpawnPosition);\n this.submitPost();\n }\n\n }\n\n getLotteryNumbers(result){\n\n let lotteryNumbers = [result.toString()];\n\n for (let i = 0; i < 9; i++){\n let number = Math.floor(Math.random() * 10).toString();\n if (result > 9) number = number + Math.floor(1 + Math.random() * 9).toString();\n if (result > 99) number = number + Math.floor(1 + Math.random() * 9).toString();\n\n lotteryNumbers.push(number);\n }\n lotteryNumbers.push(result.toString());\n\n let classNames = \"social__notification__bubble__lottery-number \";\n\n //Resets the CSS animation, spinning the numbers again.\n //See codegraveyard.js for other attempts\n if (!this.state.refreshReady) {\n classNames += \"social__notification__bubble__lottery-spin\";\n }\n\n const lotteryDivs = lotteryNumbers.map((number) => \n
{number}
\n );\n\n return (\n
\n {lotteryDivs}\n
\n );\n }\n\n toggleGeneralNotifications(event) {\n\n if (this.state.notifications.general > 0){\n const boundingRectangle = event.currentTarget.getBoundingClientRect();\n const xOffset = -20 + Math.random() * 40;\n const effectSpawnPosition = {x: boundingRectangle.x + xOffset, y: boundingRectangle.y - 20}\n this.props.addExperience(this.state.notifications.general, effectSpawnPosition);\n }\n\n if (this.state.notificationTab !== \"general\"){\n this.setState(state => ({\n socialCapital: {\n influence: state.socialCapital.influence + state.notifications.general,\n demands: state.socialCapital.demands,\n adoration: state.socialCapital.adoration,\n watchers: state.socialCapital.watchers\n },\n notifications: {\n general: 0,\n messages: state.notifications.messages,\n followers: state.notifications.followers,\n hearts: state.notifications.hearts,\n },\n notificationTab: \"general\"\n }))\n } else {\n this.setState({\n notificationTab: \"null\"\n })\n }\n\n }\n\n toggleMessageNotifications(event) {\n\n if (this.state.notifications.messages > 0){\n const boundingRectangle = event.currentTarget.getBoundingClientRect();\n const xOffset = -20 + Math.random() * 40;\n const effectSpawnPosition = {x: boundingRectangle.x + xOffset, y: boundingRectangle.y - 20}\n this.props.addExperience(this.state.notifications.messages * 2, effectSpawnPosition);\n }\n\n if (this.state.notificationTab !== \"messages\"){\n this.setState(state => ({\n socialCapital: {\n influence: state.socialCapital.influence,\n demands: state.socialCapital.demands + state.notifications.messages,\n adoration: state.socialCapital.adoration,\n watchers: state.socialCapital.watchers\n },\n notifications: {\n general: state.notifications.general,\n messages: 0,\n followers: state.notifications.followers,\n hearts: state.notifications.hearts,\n },\n notificationTab: \"messages\"\n }))\n } else {\n this.setState({\n notificationTab: \"null\"\n })\n }\n\n }\n\n toggleHeartNotifications(event) {\n\n if (this.state.notifications.hearts > 0){\n const boundingRectangle = event.currentTarget.getBoundingClientRect();\n const xOffset = -20 + Math.random() * 40;\n const effectSpawnPosition = {x: boundingRectangle.x + xOffset, y: boundingRectangle.y - 20}\n this.props.addExperience(this.state.notifications.hearts, effectSpawnPosition);\n }\n\n if (this.state.notificationTab !== \"hearts\"){\n this.setState(state => ({\n socialCapital: {\n influence: state.socialCapital.influence,\n demands: state.socialCapital.demands,\n adoration: state.socialCapital.adoration + state.notifications.hearts,\n watchers: state.socialCapital.watchers\n },\n notifications: {\n general: state.notifications.general,\n messages: state.notifications.messages,\n followers: state.notifications.followers,\n hearts: 0,\n },\n notificationTab: \"hearts\"\n }))\n } else {\n this.setState({\n notificationTab: \"null\"\n })\n }\n\n }\n\n toggleFollowerNotifications(event) {\n\n if (this.state.notifications.followers > 0){\n const boundingRectangle = event.currentTarget.getBoundingClientRect();\n const xOffset = -20 + Math.random() * 40;\n const effectSpawnPosition = {x: boundingRectangle.x + xOffset, y: boundingRectangle.y - 20}\n this.props.addExperience(this.state.notifications.followers, effectSpawnPosition);\n }\n\n\n if (this.state.notificationTab !== \"followers\"){\n this.setState(state => ({\n socialCapital: {\n influence: state.socialCapital.influence,\n demands: state.socialCapital.demands,\n adoration: state.socialCapital.adoration,\n watchers: state.socialCapital.watchers + state.notifications.followers\n },\n notifications: {\n general: state.notifications.general,\n messages: state.notifications.messages,\n followers: 0,\n hearts: state.notifications.hearts,\n },\n notificationTab: \"followers\"\n }))\n } else {\n this.setState({\n notificationTab: \"null\"\n })\n }\n\n }\n\n render() {\n\n const textboxDefaultMessage = this.state.showHint ?

Type here...

: <>;\n\n const MessageNotification = this.state.notifications.messages > 0 ?\n
\n {this.state.notifications.messages}\n {this.getLotteryNumbers(this.state.notifications.messages)}\n
: <>\n\n const GeneralNotification = this.state.notifications.general > 0 ?\n
\n {this.state.notifications.general}\n {this.getLotteryNumbers(this.state.notifications.general)}\n
: <>\n\n const HeartNotification = this.state.notifications.hearts > 0 ?\n
\n {this.state.notifications.hearts}\n {this.getLotteryNumbers(this.state.notifications.hearts)}\n
: <>\n\n const FollowerNotification = this.state.notifications.followers > 0 ?\n
\n {this.state.notifications.followers}\n {this.getLotteryNumbers(this.state.notifications.followers)}\n
: <>\n\n let notificationTab;\n\n switch (this.state.notificationTab) {\n case \"general\":\n notificationTab =
\n

You have {this.state.socialCapital.influence} influence.

\n
\n break;\n case \"messages\":\n notificationTab =
\n

{this.state.socialCapital.demands} accounts want your personal, private attention.

\n
\n break;\n case \"hearts\":\n notificationTab =
\n

You are worth {this.state.socialCapital.adoration} hearts.

\n
\n break;\n case \"followers\":\n notificationTab =
\n

{this.state.socialCapital.watchers} observers are watching you.

\n
\n break;\n default:\n notificationTab = <>;\n }\n\n let classes = \"social \";\n\n switch (this.props.level) {\n case 1:\n classes += \"social--light \";\n break;\n case 2:\n classes += \"social--dark \";\n break;\n case 3:\n classes += \"social--glitch \";\n break;\n default:\n }\n\n let windowTitle = \"Social Media\";\n if (this.props.level === 2) windowTitle = \"Content Creator\";\n if (this.props.level === 3) windowTitle = \"Net-Spammer.exe\";\n\n return (\n \n {textboxDefaultMessage}\n \n
\n Submit content!\n Press enter to submit faster!\n
\n
\n
\n \n {GeneralNotification}\n
\n
\n \n {MessageNotification}\n
\n
\n \n {HeartNotification}\n
\n
\n \n {FollowerNotification}\n
\n
\n
\n { this.state.refreshReady ? <>Refresh Notifications : <>Refresh Notifications}\n
\n {notificationTab}\n
\n );\n }\n\n}\n\nexport default Social;","import React from 'react';\nimport Window from './Window';\nimport { BsHeartFill } from 'react-icons/bs';\n\nconst usernames = [\n \"Asher\",\n \"Aviservic\",\n \"Backland\",\n \"Crooklack\",\n \"Czarfini\",\n \"Gilector\",\n \"Ginodyme\",\n \"GodzillaLand\",\n \"Linklect\",\n \"Luminda\",\n \"LummoFraser\",\n \"Manneyer\",\n \"MaxIte\",\n \"Megadsca\",\n \"NayborActive\",\n \"Netwolfch\",\n \"QuantActually\",\n \"Razuri\",\n \"RecipeEvents\",\n \"RosaWwjd\",\n \"ShcamMon\",\n \"SlipkBugs\",\n \"Sozotyp\",\n \"Suryonlo\",\n \"Targetroom\",\n \"Trueferra\",\n \"Vanstated\",\n \"Webloger\",\n \"WillowsScary\",\n \"YugiDigy\"\n]\n\nconst messages = [\n \"âĪïļ\",\n \"💖\",\n \"💕\",\n \"💘\",\n \"💗\"\n]\n\nconst suggestions = [\n \"💋\",\n \"ðŸĨĩ\",\n \"😍\",\n \"🍆\",\n \"🍑\",\n \"😈\",\n]\n\n//Streamer images thanks to \n//https://unsplash.com/@higorrss (1, 2, 3)\n//https://unsplash.com/@uusaez (4)\n//https://www.pexels.com/@rodnae-prod (5)\n\nfunction ChatMessage(props) {\n return (\n
\n
{props.author}
\n
:
\n
{props.message}
\n
\n )\n}\n\nclass Livestream extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n streamerImage: 0,\n chatMessages: [],\n viewers: 12,\n hearts: 1,\n }\n\n this.endOfMessages = React.createRef();\n\n this.attemptToClose = this.attemptToClose.bind(this);\n this.postHeartMessage = this.postHeartMessage.bind(this);\n }\n\n generateMessage(){\n const length = Math.ceil(Math.random() * 5);\n let message = \"\";\n\n for (let i = 0; i < length; i++){\n if (this.props.level === 2) {\n message += messages[Math.floor(Math.random()*messages.length)];\n } else {\n message += suggestions[Math.floor(Math.random()*suggestions.length)];\n }\n }\n\n return message;\n }\n\n componentDidMount(){\n\n this.streamerImageInterval = setInterval(() => {\n this.setState( state => ({\n streamerImage: ( state.streamerImage + 1 ) % 5,\n }))\n }, 5000);\n\n this.viewerInterval = setInterval(() => {\n this.setState( state => ({\n viewers: ( state.viewers + Math.round(Math.random() * 5 - 2) ),\n }))\n }, 2000);\n\n this.chatInterval = setInterval(() => {\n if (Math.random() > 0.8) {\n let newMessage = { \n username: usernames[Math.floor(Math.random()*usernames.length)],\n message: this.generateMessage()\n }\n\n this.setState(state => ({\n chatMessages: [...state.chatMessages, newMessage],\n hearts: state.hearts + newMessage.message.length / 2,\n }))\n\n if (this.state.chatMessages.length > 20){\n const reducedMessages = [...this.state.chatMessages];\n reducedMessages.splice(-10);\n this.setState({\n chatMessages: reducedMessages\n })\n }\n\n }\n }, 500);\n\n }\n\n componentWillUnmount(){\n clearInterval(this.streamerImageInterval);\n clearInterval(this.viewerInterval);\n clearInterval(this.chatInterval);\n }\n\n postHeartMessage(event) {\n\n let messageLength = Math.ceil(Math.random() * 4);\n let message = \"\";\n\n for (let i = 0; i < messageLength; i++){\n message += event.target.innerText;\n }\n\n let newMessage = { \n username: \"You\",\n message: message,\n }\n this.setState(state => ({\n chatMessages: [...state.chatMessages, newMessage]\n }))\n\n this.setState( state => ({\n hearts: ( state.hearts + messageLength ),\n }))\n\n const boundingRectangle = event.currentTarget.getBoundingClientRect();\n const effectSpawnPosition = {x: boundingRectangle.x + 5, y: boundingRectangle.y - 15}\n this.props.addExperience(messageLength * this.props.level, effectSpawnPosition);\n\n const timeOutTime = 2000 + Math.floor(Math.random() * 5000);\n event.target.classList.add(\"livestream__chat-button--deactivated\");\n setTimeout(()=>{\n event.target.classList.remove(\"livestream__chat-button--deactivated\");\n }, timeOutTime)\n }\n\n attemptToClose(){\n\n this.props.callAlert({\n title: \"Don't leave me...\",\n message: \"Stay with the crowd, we're all watching.\",\n dismissal: \"âĪïļ\",\n });\n\n }\n\n scrollToBottom = () => {\n if (this.endOfMessages != null)\n this.endOfMessages.scrollIntoView(); //{ behavior: \"smooth\" }\n }\n \n componentDidUpdate() {\n this.scrollToBottom();\n }\n\n render() {\n\n let classes = \"livestream \";\n\n switch (this.props.level) {\n case 1:\n classes += \"livestream--light \";\n break;\n case 2:\n classes += \"livestream--dark \";\n break;\n case 3:\n classes += \"livestream--glitch \";\n break;\n default:\n }\n\n const chatMessages = this.state.chatMessages.map((message, index) => \n \n );\n\n let streamerImageURL;\n switch (this.state.streamerImage) {\n case 0:\n streamerImageURL = \"/img/streamer1.jpg\"\n break;\n case 1:\n streamerImageURL = \"/img/streamer4.jpg\"\n break;\n case 2:\n streamerImageURL = \"/img/streamer3.jpg\"\n break;\n case 3:\n streamerImageURL = \"/img/streamer2.jpg\"\n break;\n case 4:\n streamerImageURL = \"/img/streamer5.jpg\"\n break;\n default:\n }\n\n let windowTitle =\"Lovestreamer\";\n let chatOptions = messages.map((option) =>
{option}
)\n if (this.props.level === 3){\n windowTitle =\"Lovestreamer.exe\";\n chatOptions = suggestions.map((option, index) =>
{option}
)\n }\n\n return (\n \n
\n \"Online\n
{this.state.viewers + \" watchers\"}
\n
LIVE
\n
{this.state.hearts}
\n
\n
\n {chatMessages}\n
{ this.endOfMessages = div; }}>
\n
\n
\n {chatOptions}\n
\n
\n );\n }\n \n}\n \nexport default Livestream;","import React from 'react';\nimport Window from './Window';\n\nclass Alert extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.dismissAlert = this.dismissAlert.bind(this);\n }\n\n dismissAlert(){\n this.props.dismissAlert();\n }\n\n render() {\n\n let classes = \"alert \";\n let backgroundClass = \"alert__background \";\n\n switch (this.props.level) {\n case 1:\n classes += \"alert--light \";\n backgroundClass += \"alert__background--light\";\n break;\n case 2:\n classes += \"alert--dark \";\n backgroundClass += \"alert__background--dark\";\n break;\n case 3:\n classes += \"alert--glitch \";\n backgroundClass += \"alert__background--glitch\";\n break;\n default:\n }\n\n if ( this.props.alert.display ) {\n return (\n
\n \n

{this.props.alert.message}

\n \n
\n
\n );\n } else {\n return null;\n }\n }\n\n}\n\nexport default Alert;","import React from 'react';\n\nclass TextParticleSystem extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n particles: [],\n }\n\n }\n\n spawnExperience(amount, effectSpawnPosition) {\n\n const element = document.createElement(\"div\");\n element.classList.add(\"text-particle-system__particle\");\n let message = \"\";\n\n switch (this.props.level) {\n case 1:\n element.setAttribute(\"light\", \"\");\n break;\n case 2:\n element.setAttribute(\"dark\", \"\");\n break;\n case 3:\n element.setAttribute(\"glitch\", \"\");\n break;\n default:\n }\n\n if (amount > 0){\n element.classList.add(\"text-particle-system__particle--positive\");\n message += \"+\" + amount + \" EXP\";\n }\n if (amount === 0) {\n element.classList.add(\"text-particle-system__particle--neutral\");\n message += amount + \" EXP\";\n }\n if (amount < 0) {\n element.classList.add(\"text-particle-system__particle--negative\");\n message += amount + \" EXP\";\n }\n\n element.style.top = effectSpawnPosition.y + \"px\";\n element.style.left = effectSpawnPosition.x + \"px\";\n\n const content = document.createTextNode(message);\n \n element.appendChild(content);\n const container = document.getElementById(\"TextParticleSystem\");\n container.appendChild(element)\n\n setTimeout(() => {\n element.remove();\n }, 2000)\n }\n\n render() {\n return (\n
\n );\n }\n\n\n}\n\nexport default TextParticleSystem;","import React from 'react';\n\nclass MobileIntroduction extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.dismissAlert = this.dismissAlert.bind(this);\n }\n\n dismissAlert(){\n this.props.dismissAlert();\n }\n\n render() {\n return (\n
\n
\n

YOU ARE ONLINE

\n

Mobile Edition

\n

\n This website sadly doesn't support mobile devices. \n Please visit it on a desktop computer, or...\n

\n Read more about the piece.\n

\n
\n
\n );\n }\n\n}\n\nexport default MobileIntroduction;\n\n","import React from 'react';\nimport Scene from './Scene';\n\nimport Introduction from './components/Introduction';\nimport Progress from './components/Progress';\nimport TodoList from './components/TodoList';\nimport JukeBox from './components/JukeBox';\nimport Social from './components/Social';\nimport Livestream from './components/Livestream';\nimport Alert from './components/Alert';\nimport TextParticleSystem from './components/TextParticleSystem';\nimport MobileIntroduction from './components/MobileIntroduction';\n\nimport './styles/main.scss';\n\nconst EXPERIENCE_REQUIREMENTS = [ 0, 120, 240, 360 ];\n\nclass App extends React.Component {\n constructor(props){\n super(props);\n\n this.state = {\n //visual effect state variables\n cameraPosition: 0,\n starWall: false,\n starSpeed: 0.5,\n voidLevel: 1,\n dehumanLevel: 0,\n\n showIntroduction: true,\n experience: 0,\n level: 1,\n alert: { \n title: \"Alert!\",\n message: \"Alert message!\",\n dismissal: \"Dismiss\",\n display: false,\n }\n }\n\n this.textParticleSystem = React.createRef();\n\n this.dismissAlert = this.dismissAlert.bind(this);\n this.displayNewAlert = this.displayNewAlert.bind(this);\n this.addExperience = this.addExperience.bind(this);\n this.toggleEffect = this.toggleEffect.bind(this);\n this.hideIntroduction = this.hideIntroduction.bind(this);\n this.setVisualEffect = this.setVisualEffect.bind(this);\n this.levelUp = this.levelUp.bind(this);\n }\n\n toggleEffect(){\n this.setState(state => ({\n experience: state.experience + 20\n }));\n }\n\n setVisualEffect(key, value){\n this.setState({ [key]: value });\n }\n\n hideIntroduction(){\n this.setState({\n showIntroduction: false,\n })\n }\n\n dismissAlert(){\n this.setState({\n alert: {\n display: false\n }\n })\n }\n\n levelUp(){\n if (this.state.experience >= EXPERIENCE_REQUIREMENTS[this.state.level]) {\n this.setState(state => ({ \n experience: 0, \n level: state.level + 1, \n voidLevel: state.voidLevel + 1 \n }));\n } \n }\n\n displayNewAlert(alertObject){\n this.setState({\n alert: {\n title: alertObject.title,\n message: alertObject.message,\n dismissal: alertObject.dismissal,\n display: true\n }\n })\n }\n\n addExperience(amount, effectSpawnPosition){\n if (effectSpawnPosition === undefined) return;\n\n this.setState(state => ({ experience: state.experience + amount }));\n \n this.textParticleSystem.current.spawnExperience(amount, effectSpawnPosition);\n }\n\n render(){\n\n const visualEffects = {\n starWall: this.state.starWall,\n cameraPosition: this.state.cameraPosition,\n starSpeed: this.state.starSpeed,\n voidLevel: this.state.voidLevel,\n dehumanLevel: this.state.dehumanLevel,\n }\n\n if (window.innerWidth < 800){\n return (<>\n \n )\n }\n\n return (\n <>\n \n\n { this.state.showIntroduction ? : null}\n \n \n \n \n\n { ((this.state.experience >= 60) || (this.state.level > 1)) ? \n : null }\n\n { (this.state.level > 1) ? \n : null }\n\n \n \n \n )\n }\n\n}\n\nexport default App;","import ReactDOM from 'react-dom'\nimport React from 'react'\nimport './styles.css'\nimport App from './App'\n\nReactDOM.render(, document.getElementById('root'));\n\n//What is strictmode?\n\n/*\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n*/\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\n//reportWebVitals();\n"],"sourceRoot":""}