-
Notifications
You must be signed in to change notification settings - Fork 3
/
compiled.js.map
1 lines (1 loc) · 66.3 KB
/
compiled.js.map
1
{"version":3,"file":"compiled.js","sources":["states/menus/level_select/level_select.js","states/menus/main/main_menu.js","states/GameMenu.js","states/Game.js","states/GameOver.js","states/Credits.js","states/Options.js","states/LevelComplete.js","states/Boot.js","index.js"],"sourcesContent":["\nclass LevelSelect {\n\n constructor(context){\n this.context = context\n this.theGame = this.context.theGame\n this.create_level_select()\n }\n\n create_level_select(){\n \n \n this.lvl_select_bg = this.theGame.add.sprite(0, 0, 'atlas')\n \n this.lvl_select_bg.alignIn(this.theGame.camera.view, Phaser.CENTER)\n this.level1Button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.level1, this, 'lvl2.png', 'lvl1.png');\n this.level1Button.anchor.setTo(0.5)\n this.level2Button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.level2, this, 'lvl4.png', 'lvl3.png');\n this.level2Button.anchor.setTo(-0.8, 0.5)\n this.level3Button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.level3, this, 'lvl6.png', 'lvl5.png');\n this.level3Button.anchor.setTo(-2.1, 0.5)\n this.level4Button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.level4, this, 'lvl8.png', 'lvl7.png');\n this.level4Button.anchor.setTo(-3.4, 0.5)\n this.lvl_select_bg.addChild(this.level1Button);\n this.lvl_select_bg.addChild(this.level2Button);\n this.lvl_select_bg.addChild(this.level3Button);\n this.lvl_select_bg.addChild(this.level4Button);\n this.lvl_select_bg.frameName = \"level_select_bg.png\"\n\n\n\n }\n\n level1(){\n this.startLevel(0)\n }\n level2(){\n this.startLevel(1)\n }\n level3(){\n this.startLevel(2)\n }\n level4(){\n this.startLevel(3)\n }\n startLevel(lvl){\n console.log(this)\n this.theGame.theLevel = lvl\n this.theGame.state.start(\"Game\")\n }\n\n}\n\nexport default LevelSelect","import LevelSelect from '../level_select/level_select.js'\n\nclass MainMenu{\n\n constructor(context){\n this.context = context\n this.theGame = this.context.theGame\n this.width = this.theGame._width\n this.height = this.theGame._height\n this.create_main_menu()\n }\n\n create_main_menu(){\n\n // this.button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.startGame, this, 'play_button2.png', 'play_button1.png');\n // this.button.frameName = \"play_button1.png\"\n // this.button.x = this.width/2 - (this.button.texture.frame.width/2) \n // this.button.y = this.height/2 - (this.button.texture.frame.height/2)\n \n this.levelSelect = new LevelSelect(this)\n\n //this.menu_features = new MainMenu(this)\n }\n\n startGame(){\n //console.log('starting game')\n this.theGame.state.start(\"Game\");\n \n }\n\n}\n\nexport default MainMenu","import MainMenu from './menus/main/main_menu'\n\nclass GameMenu extends Phaser.State {\n\n init() {\n this.theGame = this.game.state.game\n this.width = this.theGame._width\n this.height = this.theGame._height\n \n }\n\n create() {\n\n // this.theGame.add.sprite(0, 0, 'menu_bg')\n // this.button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.startGame, this, 1, 0, 2);\n // this.button.frameName = \"play_button1.png\"\n // this.button.x = this.width/2 - (this.button.texture.frame.width/2) \n // this.button.y = this.height/2 - (this.button.texture.frame.height/2)\n \n this.menu_features = new MainMenu(this)\n\n }\n\n update() {\n \n \n }\n\n render(){\n \n }\n\n startGame(){\n //console.log('starting game')\n //this.theGame.state.start(\"Game\");\n \n }\n \n}\n\nexport default GameMenu","\n\nclass Game extends Phaser.State {\n\n init() {\n this.theGame = this.game.state.game\n this.w = this.theGame.width\n this.h = this.theGame.height\n this.selectedTilesArray = []\n this.selected = false\n this.deadEnds = []\n this.alreadyMatched = []\n this.currentCell = null\n this.cycles = 0\n this.done = false\n this.level = this.theGame.theLevel\n \n\n \n }\n\n preload() {\n\n \n }\n\n create() {\n \n \n this.theTileMap = this.theGame.add.tilemap('map2')\n this.theTileMap.addTilesetImage('tiles');\n this.layer1 = this.theTileMap.createLayer(this.level)\n this.trucks = this.theGame.add.group()\n this.layer1.exists = true\n this.theTileMap.setLayer(this.layer1)\n this.currentLayerIndex = this.theTileMap.getLayer(this.theTileMap.currentLayer)\n \n //this.layer2 = this.theTileMap.createLayer(1)\n //this.theTileMap.setLayer(this.layer1)\n this.currentLayerIndex = this.level\n console.log(this.currentLayerIndex)\n \n //this.layer1.resizeWorld();\n // this.theTileMap.setPreventRecalculate(true)\n // this.theTileMap.shuffle(1, 1, 4, 4, this.currentLayerIndex)\n \n\n this.theGame.input.onDown.add(this.getTileProperties, this);\n\n this.theTileMap.forEach((tile)=>{\n \n if(tile.properties){\n\n if(tile.properties.type === \"source\"){\n this.sourceBlock = tile\n this.firstInChain = this.theTileMap.getTileRight(this.currentLayerIndex, this.sourceBlock.x, this.sourceBlock.y)\n }\n\n if(tile.properties.type === \"destination\"){\n this.destinationBlock = tile\n }\n\n }\n \n \n }, this, 0, 0, 6, 6,this.currentLayerIndex)\n \n this.selector = this.theGame.add.sprite(0, 0, 'atlas', this.currentLayerIndex);\n this.selector.frameName = \"selector.png\"\n this.selector.visible = false\n\n this.marker = this.theGame.add.sprite(0, 0, 'atlas', this.currentLayerIndex)\n this.marker.frameName = \"marker.png\"\n this.marker.anchor.setTo(0)\n this.theGame.input.addMoveCallback(this.updateMarker, this);\n\n \n this.startTime = new Date();\n this.totalTime = 120;\n this.timeElapsed = 0;\n \n this.createTimer();\n \n this.gameTimer = this.theGame.time.events.loop(100, ()=>{this.updateTimer()} );\n\n this.backButton = this.theGame.add.button(0, 0, \"atlas\", this.openMenu, this, 'menu_button2.png', 'menu_button1.png');\n this.backButton.anchor.setTo(0.5)\n this.backButton.alignIn(this.theGame.camera.view, Phaser.TOP_LEFT)\n this.backButton.bringToTop()\n\n this.truck = this.theGame.add.sprite(this.sourceBlock.worldX, this.sourceBlock.worldY, 'environment', this.currentLayerIndex);\n this.truck.frameName = \"truck1.png\"\n\n this.truck.animations.add('truck');\n this.truck.animations.play('truck', 30, true);\n \n // this.theTileMap.shuffle(1, 1, 4, 4, this.currentLayerIndex)\n \n\n\n }\n\n update() {\n\n \n }\n\n render(){\n \n }\n\n checkForRoadStart(){\n \n var startCell = this.theTileMap.getTileRight(this.currentLayerIndex, this.sourceBlock.x, this.sourceBlock.y)\n \n if(startCell){\n // if(startCell.properties.left === true){\n this.currentCell = null\n this.alreadyMatched = []\n this.deadEnds = []\n this.alreadyMatched[0] = startCell\n this.cycles = 0\n this.traversePath(startCell)\n \n \n }\n }\n\n traversePath(currentCell){\n\n\n this.trucks.forEach((truck)=>{\n \n if(truck){\n \n var x = this.layer1.getTileX(truck.x)\n var y = this.layer1.getTileY(truck.y)\n var tileUnderneath = this.theTileMap.getTile(x, y, this.layer1)\n if(tileUnderneath.properties.type === \"connector\" && this.alreadyMatched.includes(tileUnderneath)){\n return\n }\n else{\n truck.destroy()\n }\n }\n \n }, this)\n\n \n if(currentCell){\n\n if(currentCell.properties.type === 'connector'){\n var theTile = currentCell\n\n var truck = this.theGame.add.sprite(this.sourceBlock.worldX, this.sourceBlock.worldY, 'environment', this.currentLayerIndex);\n truck.frameName = \"truck1.png\"\n\n truck.animations.add('truck');\n truck.animations.play('truck', 30, true);\n truck.x = theTile.worldX\n truck.y = theTile.worldY\n \n this.trucks.add(truck)\n }\n \n\n }\n \n \n \n\n if(this.done === false){\n \n var foundMatches = this.testConnections(currentCell, this.alreadyMatched)\n\n if(this.done === true){\n\n return\n }\n \n this.cycles = this.cycles + 1\n\n var foundMatches = this.testConnections(currentCell, this.alreadyMatched)\n \n if(!foundMatches){\n \n \n if(!this.deadEnds.includes(currentCell)){\n \n if(currentCell){\n this.deadEnds.push(currentCell)\n }\n \n }\n else{\n \n }\n \n\n if(this.cycles < 20){\n\n if(this.alreadyMatched.length){\n currentCell = this.alreadyMatched[this.alreadyMatched.length]\n this.traversePath(currentCell)\n }\n \n }\n else{\n \n console.log('cycle limit reached, dead end') \n \n }\n \n }\n else{\n \n this.alreadyMatched.push(currentCell)\n currentCell = null\n\n if(foundMatches && foundMatches.length){\n\n for(var i = 0; i <= foundMatches.length; i++){\n\n if(foundMatches[i]){\n currentCell = foundMatches[i]\n }\n } \n\n }\n\n if(currentCell){\n \n if(this.cycles < 20){\n this.traversePath(currentCell)\n }\n else{\n console.log('cycle limit reached')\n }\n \n }\n \n }\n }\n \n }\n\n testConnections(theTile, alreadyMatched){\n\n var matches = []\n\n if(theTile && theTile.properties){\n\n\n \n var above = this.theTileMap.getTileAbove(this.currentLayerIndex, theTile.x, theTile.y)\n var below = this.theTileMap.getTileBelow(this.currentLayerIndex, theTile.x, theTile.y)\n var left = this.theTileMap.getTileLeft(this.currentLayerIndex, theTile.x, theTile.y)\n var right = this.theTileMap.getTileRight(this.currentLayerIndex, theTile.x, theTile.y)\n\n var theTileProps = theTile.properties\n\n if(above){\n var aboveProps = above.properties\n }\n\n if(below){\n var belowProps = below.properties\n }\n\n if(left){\n var leftProps = left.properties\n }\n \n if(right){\n var rightProps = right.properties\n }\n \n if(aboveProps){\n if(aboveProps.bottom === true && theTileProps.top === true){\n \n if(!alreadyMatched.includes(above) && !this.deadEnds.includes(above)){\n matches.push(above)\n \n } \n \n }\n \n }\n\n if(belowProps){\n\n if(belowProps.top === true && theTileProps.bottom === true){\n \n if(!alreadyMatched.includes(below) && !this.deadEnds.includes(below)){\n matches.push(below)\n \n } \n \n }\n \n }\n\n if(leftProps){\n\n if(leftProps.right === true && theTileProps.left === true){\n \n if(!alreadyMatched.includes(left) && !this.deadEnds.includes(left)){\n matches.push(left)\n \n } \n\n }\n\n }\n\n if(rightProps){\n console.log(rightProps)\n if(rightProps.left === true && theTileProps.right === true){\n\n if(!alreadyMatched.includes(right) && !this.deadEnds.includes(right)){\n \n \n \n matches.push(right)\n \n if(rightProps.type === \"destination\"){\n console.log('donne')\n this.truck.x = this.destinationBlock.worldX\n this.truck.y = this.destinationBlock.worldY\n this.currentCell = null\n this.alreadyMatched = []\n \n this.cycles = 0\n this.done = true\n\n //this.level = this.level + 1\n \n //this.change_level()\n \n this.levelComplete()\n return\n }\n } \n \n \n }\n\n } \n \n if(matches.length){\n return matches\n }\n else{\n return null\n } \n \n }\n }\n\n getTileProperties() {\n\n var x = this.layer1.getTileX(this.theGame.input.activePointer.worldX);\n var y = this.layer1.getTileY(this.theGame.input.activePointer.worldY);\n var tile = this.theTileMap.getTile(x, y);\n\n if(!this.selectedTilesArray.length){\n \n if(tile.properties.type === \"connector\" || tile.properties.type === \"blank\"){\n this.selectedTilesArray[0] = tile\n this.selected = true\n \n this.create_selector(tile.worldX, tile.worldY)\n return\n }\n }\n \n if(this.selected === true){\n if(!tile){\n console.log('drop selection')\n }\n\n if(tile){\n \n if(tile.properties.type === \"connector\" || tile.properties.type === \"blank\"){\n \n this.selectedTilesArray[1] = tile\n \n this.swap()\n\n this.remove_selector()\n\n return\n }\n }\n }\n \n \n }\n\n swap(){\n\n var tile1 = this.selectedTilesArray[0]\n var tile1Copy = new Phaser.Tile(this.currentLayerIndex)\n \n var tile2 = this.selectedTilesArray[1] \n var tile2Copy = new Phaser.Tile(this.currentLayerIndex)\n\n var performSwap = true\n\n for (var prop in tile2) {\n if (tile2.hasOwnProperty(prop)) {\n tile2Copy[prop] = tile2[prop];\n }\n }\n\n for (var prop in tile1) {\n if (tile1.hasOwnProperty(prop)) {\n tile1Copy[prop] = tile1[prop];\n }\n }\n\n \n if(performSwap){\n \n this.theTileMap.putTile(tile1, tile2Copy.x, tile2Copy.y, this.currentLayerIndex)\n this.theTileMap.putTile(tile2Copy, tile1Copy.x, tile1Copy.y, this.currentLayerIndex)\n this.selectedTilesArray = []\n this.selected = false\n\n this.done = false\n this.checkForRoadStart()\n\n }\n\n } \n\n create_selector(x, y){\n\n if(this.selector && x && y){\n this.selector.bringToTop()\n this.selector.z = 20\n this.selector.x = x\n this.selector.y = y\n this.selector.visible = true\n }\n\n else{\n \n }\n \n \n \n }\n \n remove_selector(){\n this.selector.visible = false\n }\n\n change_level(){\n\n this.layer1.destroy()\n\n this.layer1 = this.theTileMap.createLayer(this.level)\n \n this.layer1.exists = true\n this.theTileMap.setLayer(this.layer1)\n this.currentLayerIndex = this.theTileMap.getLayer(this.theTileMap.currentLayer)\n this.selector.bringToTop()\n\n this.selectedTilesArray = []\n this.selected = false\n this.deadEnds = []\n this.alreadyMatched = []\n this.currentCell = null\n this.cycles = 0\n this.done = false\n \n\n this.theTileMap.forEach((tile)=>{\n \n if(tile.properties){\n\n if(tile.properties.type === \"source\"){\n this.sourceBlock = tile\n this.firstInChain = this.theTileMap.getTileRight(this.currentLayerIndex, this.sourceBlock.x, this.sourceBlock.y)\n }\n\n if(tile.properties.type === \"destination\"){\n this.destinationBlock = tile\n }\n\n }\n \n \n }, this, 0, 0, 6, 6, this.currentLayerIndex)\n\n console.log(this.sourceBlock)\n }\n\n updateMarker() {\n\n this.marker.x = this.layer1.getTileX(this.theGame.input.activePointer.worldX) * 64;\n this.marker.y = this.layer1.getTileY(this.theGame.input.activePointer.worldY) * 64;\n \n }\n\n createTimer(){\n \n this.timeLabel = this.theGame.add.bitmapText(10, 100, 'gem','00:00',18);\n this.timeLabel.alignIn(this.theGame.camera.view, Phaser.TOP_RIGHT)\n this.timeLabel.anchor.setTo(0.5, 0);\n this.timeLabel.align = 'center';\n \n \n }\n\n updateTimer(){\n \n var currentTime = new Date();\n var timeDifference = this.startTime.getTime() - currentTime.getTime();\n \n //Time elapsed in seconds\n this.timeElapsed = Math.abs(timeDifference / 1000);\n \n //Time remaining in seconds\n var timeRemaining = this.timeElapsed\n \n //Convert seconds into minutes and seconds\n var minutes = Math.floor(timeRemaining / 60);\n var seconds = Math.floor(timeRemaining) - (60 * minutes);\n \n //Display minutes, add a 0 to the start if less than 10\n var result = (minutes < 10) ? \"0\" + minutes : minutes;\n \n //Display seconds, add a 0 to the start if less than 10\n result += (seconds < 10) ? \":0\" + seconds : \":\" + seconds;\n \n this.timeLabel.text = result;\n this.theGame.score = result\n \n }\n\n openMenu(){\n this.theGame.state.start(\"GameMenu\")\n }\n\n levelComplete(){\n \n this.theGame.time.events.add(Phaser.Timer.SECOND, ()=>{this.theGame.state.start(\"LevelComplete\")}, this);\n }\n \n}\n\nexport default Game\n\n\n\n \n","class GameOver extends Phaser.State {\n\n init() {\n \n \n }\n\n preload() {\n\n \n }\n\n create() {\n\n\n }\n\n update() {\n \n \n }\n\n render(){\n \n }\n \n}\n\nexport default GameOver","class Credits extends Phaser.State {\n\n init() {\n this.theGame = this.game.state.game\n this.score = 0\n \n }\n\n preload() {\n\n }\n\n create() {\n \n this.cursors = this.theGame.input.keyboard.createCursorKeys();\n \n // We're going to be using physics, so enable the Arcade Physics system\n this.theGame.physics.startSystem(Phaser.Physics.ARCADE);\n // A simple background for our this.theGame\n this.theGame.add.sprite(0, 0, 'sky');\n // The platforms group contains the ground and the 2 ledges we can jump on\n this.platforms = this.theGame.add.group();\n // We will enable physics for any object that is created in group\n this.platforms.enableBody = true;\n // Here we create the ground.\n this.ground = this.platforms.create(0, this.theGame.world.height - 64, 'ground');\n // Scale it to fit the width of the this.theGame (the original sprite is 400x32 in size)\n this.ground.scale.setTo(2, 2);\n // This stops it from falling away when you jump on it\n this.ground.body.immovable = true;\n // Now let's create two ledges\n this.ledge = this.platforms.create(400, 480, 'ground');\n this.ledge.body.immovable = true;\n this.ledge = this.platforms.create(-100, 440, 'ground');\n this.ledge.body.immovable = true;\n this.ledge = this.platforms.create(200, 400, 'ground');\n this.ledge.scale.setTo(.2,.5)\n this.ledge.body.immovable = true;\n // ready player one\n // The player and its settings\n this.player = this.theGame.add.sprite(32, this.theGame.world.height - 150, 'dude');\n // We need to enable physics on the player\n this.theGame.physics.arcade.enable(this.player);\n // Player physics properties. Give the little guy a slight bounce.\n this.player.body.bounce.y = 0.2;\n this.player.body.gravity.y = 900;\n this.player.body.collideWorldBounds = true;\n // Our two animations, walking left and right.\n this.player.animations.add('left', [0, 1, 2, 3], 10, true);\n this.player.animations.add('right', [5, 6, 7, 8], 10, true);\n //add some stars\n this.stars = this.theGame.add.group();\n this.stars.enableBody = true;\n\n // Here we'll create 12 of them evenly spaced apart\n for (var i = 0; i < 12; i++)\n {\n // Create a star inside of the 'stars' group\n var star = this.stars.create(i * 70, 0, 'star');\n // Let gravity do its thing\n star.body.gravity.y = 900;\n // This just gives each star a slightly random bounce value\n star.body.bounce.y = 0.7 + Math.random() * 0.2;\n }\n //gui\n this.scoreText = this.theGame.add.text(650, 0, \"score: 0\", { font: \"18px Arial\", fill: \"#ffffff\", align: \"right\" });\n this.scoreText.fixedToCamera = true;\n this.scoreText.cameraOffset.setTo(650, 0);\n \n\n //move sprite to cursor\n this.seeker = this.theGame.add.sprite(400, 300, '../assets/images/diamond.png');\n this.seeker.anchor.setTo(0.5, 0.5);\n\n // Enable Arcade Physics for the sprite\n this.theGame.physics.enable(this.seeker, Phaser.Physics.ARCADE);\n\n // Tell it we don't want physics to manage the rotation\n this.seeker.body.allowRotation = false;\n\n //pause menu\n this.pause_menu()\n\n }\n\n update() {\n this.theGame.world.setBounds(0, 0, 1920, 1920);\n // Notice that the sprite doesn't have any momentum at all,\n // it's all just set by the camera follow type.\n // 0.1 is the amount of linear interpolation to use.\n // The smaller the value, the smooth the camera (and the longer it takes to catch up)\n this.theGame.camera.follow(this.player, Phaser.Camera.FOLLOW_LOCKON, 0.1, 0.1);\n // Collide the player and the stars with the this.platforms\n var hitPlatform = this.theGame.physics.arcade.collide(this.player, this.platforms);\n // Reset the players velocity (movement)\n this.player.body.velocity.x = 0;\n if (this.cursors.left.isDown)\n {\n // Move to the left\n this.player.body.velocity.x = -150;\n this.player.animations.play('left');\n }\n else if (this.cursors.right.isDown)\n {\n // Move to the right\n this.player.body.velocity.x = 150;\n this.player.animations.play('right');\n }\n else\n {\n // Stand still\n this.player.animations.stop();\n this.player.frame = 4;\n }\n // Allow the player to jump if they are touching the ground.\n if (this.cursors.up.isDown && this.player.body.touching.down && hitPlatform)\n {\n this.player.body.velocity.y = -350;\n }\n //stars\n this.theGame.physics.arcade.collide(this.stars, this.platforms);\n this.theGame.physics.arcade.overlap(this.player, this.stars, this.collectStar, null, this);\n\n //seeker\n this.seeker.rotation = this.theGame.physics.arcade.moveToPointer(this.seeker, 60, this.theGame.input.activePointer, 500);\n \n }\n\n render(){\n var debug = this.theGame.debug;\n debug.scale(20, 20, '#fff');\n debug.phaser(10, 580);\n }\n\n pause_menu(){\n\n //pause menu\n var w = 800, h = 600;\n \n add_pause_button(this)\n\n console.log(this.theGame)\n\n var self = this\n\n function paused(){\n\n // When the paus button is pressed, we pause the this.theGame\n self.theGame.paused = true;\n self.pause_button.destroy();\n // Then add the menu\n self.menu = self.theGame.add.sprite(w/2, h/2, 'menu');\n var xPos = self.theGame.camera.x\n var yPos = self.theGame.camera.y\n\n // And a label to illustrate which menu item was chosen. (self is not necessary)\n self.choiceLabel = self.theGame.add.text(w/2, h-150, 'Click outside menu to continue', { font: '30px Arial', fill: '#fff' });\n self.menu.x = xPos + w/2 - ( 270/2 )\n self.menu.y = yPos + h/2 - ( 180/2 )\n\n self.menu.x = self.theGame.camera.x + w/2 - ( 270/2 )\n self.menu.y = self.theGame.camera.y + h/2 - ( 180/2 )\n\n self.choiceLabel.x = self.menu.x \n self.choiceLabel.y = self.menu.y + h/3.5\n\n self.resume_button = self.theGame.add.button(self.theGame.world.centerX, self.theGame.world.centerY, 'resumeButton', unpause, self, 1, 0, 2);\n self.resume_button.x = xPos + w/2 - 32\n self.resume_button.y = yPos + 20\n\n\n self.theGame.input.onDown.add(menuClick, self);\n // And finally the method that handels the pause menu\n \n function menuClick(event){\n \n // Only act if paused\n if(self.theGame.paused){\n // Calculate the corners of the menu\n var x1 = w/2 - 270/2, x2 = w/2 + 270/2,\n y1 = h/2 - 180/2, y2 = h/2 + 180/2;\n // Check if the click was inside the menu\n if(event.x > x1 && event.x < x2 && event.y > y1 && event.y < y2 ){\n // The choicemap is an array that will help us see which item was clicked\n var choiceMap = ['one', 'two', 'three', 'four', 'five', 'six'];\n // Get menu local coordinates for the click\n var x = event.x - x1,\n y = event.y - y1;\n // Calculate the choice \n var choice = Math.floor(x / 90) + 3*Math.floor(y / 90);\n // Display the choice\n self.choiceLabel.text = 'You chose menu item: ' + choiceMap[choice];\n \n }\n \n }\n }\n \n function unpause(event){\n \n self.resume_button.setFrames(0, 1, 2);\n // Only act if paused\n if(self.theGame.paused){\n\n // Remove the menu and the label\n self.menu.destroy();\n self.choiceLabel.destroy();\n self.resume_button.destroy();\n self.theGame.paused = false;\n add_pause_button(self)\n \n }\n \n } \n \n }\n\n function add_pause_button(self){\n \n self.pause_button = self.theGame.add.button(self.theGame.world.centerX, self.theGame.world.centerY, 'pauseButton', paused, this, 1, 0, 2)\n self.pause_button.fixedToCamera = true\n self.pause_button.cameraOffset.setTo(w/2-32, 20);\n }\n }\n\n collectStar(player, star) {\n // Removes the star from the screen\n star.kill();\n // Add and update the score\n this.score += 10;\n console.log(this.score)\n this.scoreText.text = 'score: ' + this.score;\n }\n \n}\n\nexport default Credits","class Options extends Phaser.State {\n\n init() {\n \n \n }\n\n preload() {\n\n \n }\n\n create() {\n\n\n }\n\n update() {\n \n \n }\n\n render(){\n \n }\n \n}\n\nexport default Options","class LevelComplete extends Phaser.State {\n\n init() {\n this.theGame = this.game.state.game\n this.score = this.theGame.completionTime\n }\n\n preload() {\n\n \n }\n\n create() {\n\n \n this.lvl_select_bg = this.theGame.add.sprite(0, 0, 'atlas')\n this.lvl_select_bg.alignIn(this.theGame.camera.view, Phaser.BOTTOM_CENTER)\n this.level1Button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.level1, this, 'lvl2.png', 'lvl1.png');\n this.level1Button.anchor.setTo(0.5)\n this.level2Button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.level2, this, 'lvl4.png', 'lvl3.png');\n this.level2Button.anchor.setTo(-0.8, 0.5)\n this.level3Button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.level3, this, 'lvl6.png', 'lvl5.png');\n this.level3Button.anchor.setTo(-2.1, 0.5)\n this.level4Button = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.level4, this, 'lvl8.png', 'lvl7.png');\n this.level4Button.anchor.setTo(-3.4, 0.5)\n this.lvl_select_bg.addChild(this.level1Button);\n this.lvl_select_bg.addChild(this.level2Button);\n this.lvl_select_bg.addChild(this.level3Button);\n this.lvl_select_bg.addChild(this.level4Button);\n this.lvl_select_bg.frameName = \"level_select_bg.png\"\n this.scoreText = this.theGame.add.bitmapText(10, 100, 'gem','00:00',42);\n this.scoreText.text = this.theGame.score\n this.scoreText.alignIn(this.theGame.camera.view, Phaser.CENTER)\n this.nextButton = this.theGame.add.button(this.width/2, this.height/2, \"atlas\", this.next_level, this, 'next_button2.png', 'next_button1.png');\n this.nextButton.alignIn(this.theGame.camera.view, Phaser.TOP_CENTER)\n \n\n }\n\n level1(){\n this.startLevel(0)\n }\n\n level2(){\n this.startLevel(1)\n }\n\n level3(){\n this.startLevel(2)\n }\n\n level4(){\n this.startLevel(3)\n }\n\n next_level(){\n console.log('next level')\n if(this.theGame.theLevel < 4){\n this.theGame.theLevel = this.theGame.theLevel + 1\n }\n if(this.theGame.theLevel === 4){\n this.theGame.theLevel = 0\n }\n\n console.log(this.theGame.theLevel)\n \n this.startLevel(this.theGame.theLevel)\n }\n\n startLevel(lvl){\n \n this.theGame.theLevel = lvl\n this.theGame.state.start(\"Game\")\n }\n\n}\n\nexport default LevelComplete\n","import GameMenu from \"./GameMenu\"\nimport Game from \"./Game\"\nimport GameOver from \"./GameOver\"\nimport Credits from \"./Credits\"\nimport Options from \"./Options\"\nimport LevelComplete from \"./LevelComplete\"\n\nclass Boot extends Phaser.State {\n\n init() {\n this.theGame = this.game.state.game\n this.addedStates = false\n this.theGame.load.onLoadStart.add(this.loadStart, this);\n this.theGame.load.onFileComplete.add(this.fileComplete, this);\n this.theGame.load.onLoadComplete.add(this.loadComplete, this);\n \n this.theGame.scale.aspectRatio = 1\n console.log(this.theGame.scale.aspectRatio)\n console.log(this.theGame)\n \n }\n\n preload() {\n this.theGame.load.tilemap('map2', 'assets/images/tilemap_2.json', null, Phaser.Tilemap.TILED_JSON);\n this.theGame.load.tilemap('map3', 'assets/images/tilemap_3.json', null, Phaser.Tilemap.TILED_JSON);\n this.theGame.load.image('tiles', './assets/images/tilemap.png');\n this.theGame.load.atlas('atlas', 'assets/images/atlas.png', 'assets/images/atlas.json');\n this.theGame.load.atlas('environment', 'assets/images/environment.png', 'assets/images/environment.json');\n this.theGame.load.image('button_bg', './assets/images/button_background.png');\n this.theGame.load.image('sky', './assets/images/sky.png');\n this.theGame.load.image('ground', './assets/images/platform.png');\n this.theGame.load.image('star', './assets/images/star.png');\n this.theGame.load.spritesheet('dude', './assets/images/dude.png', 32, 48);\n this.theGame.load.spritesheet('resumeButton', './assets/pause_menu/resume_button.png', 32, 32);\n this.theGame.load.spritesheet('pauseButton', './assets/pause_menu/pause_button.png', 32, 32);\n this.theGame.load.image('menu', './assets/images/number-buttons-90x90.png', 270, 180);\n this.theGame.load.bitmapFont('carrier_command', 'assets/fonts/carrier_command.png', 'assets/fonts/carrier_command.xml');\n this.theGame.load.bitmapFont('gem', 'assets/fonts/gem.png', 'assets/fonts/gem.xml');\n this.theGame.load.spritesheet('menu_start_button', './assets/main_menu/play_button.png', 128, 32)\n this.theGame.load.image('menu_bg', './assets/main_menu/menu_bg.png')\n }\n\n create() {\n\n this.bmpText = this.theGame.add.bitmapText(10, 100, 'gem','LOADING...',34);\n\n // bmpText.inputEnabled = true;\n\n // bmpText.input.enableDrag();\n\n this.addGameStates();\n this.addGameMusic();\n\n //just leaving this here for later, will come in handy maybe\n // Register the keys.\n\t this.leftKey = this.theGame.input.keyboard.addKey(Phaser.Keyboard.LEFT);\n\t this.rightKey = this.theGame.input.keyboard.addKey(Phaser.Keyboard.RIGHT);\n this.spaceKey = this.theGame.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR);\n \n\n \n }\n\n update(){\n\n if(this.addedStates && this.filesLoaded){\n this.theGame.state.start(\"GameMenu\");\n //this.theGame.state.start(\"Game\");\n }\n\n }\n\n addGameStates(){\n \n this.theGame.state.add(\"GameMenu\",GameMenu);\n this.theGame.state.add(\"Game\",Game);\n this.theGame.state.add(\"GameOver\",GameOver);\n this.theGame.state.add(\"Credits\",Credits);\n this.theGame.state.add(\"Options\",Options);\n this.theGame.state.add(\"LevelComplete\", LevelComplete)\n\n this.addedStates = true\n\n }\n \n addGameMusic(){\n // music = game.add.audio('dangerous');\n // music.loop = true;\n // music.play();\n }\n\n loadStart() {\n\n console.log('loading')\n \n }\n \n \n fileComplete(progress, cacheKey, success, totalLoaded, totalFiles) {\n //http://phaser.io/examples/v2/loader/load-events\n // text.setText(\"File Complete: \" + progress + \"% - \" + totalLoaded + \" out of \" + totalFiles);\n console.log(progress)\n \n }\n \n loadComplete(){\n this.filesLoaded = true\n }\n \n}\n\nexport default Boot","//import Scene1 from './states/Scene1.js';\n// import Preload from 'states/Preload';\n// import GameTitle from 'states/GameTitle';\n// import Main from 'states/Main';\n// import GameOver from 'states/GameOver';\nimport Boot from './states/Boot'\n\nclass Game extends Phaser.Game {\n \n constructor() {\n \n super({renderer: Phaser.AUTO,\n width: 384,\n height: 384,\n aspectRatio: 1,\n crisp: true,\n roundPixels: true,\n alignH: true,\n alignV: true,\n scaleH: 1,\n scaleV: 1,\n trimH: 0,\n trimV: 0,\n scaleMode: Phaser.ScaleManager.SHOW_ALL,\n antialias: true });\n \n this.state.add('Boot', Boot, false);\n this.state.start('Boot');\n }\n \n}\n \nnew Game();\n \n\n \n\n\n\n\n"],"names":["LevelSelect","context","theGame","create_level_select","lvl_select_bg","add","sprite","alignIn","camera","view","Phaser","CENTER","level1Button","button","width","height","level1","anchor","setTo","level2Button","level2","level3Button","level3","level4Button","level4","addChild","frameName","startLevel","lvl","log","theLevel","state","start","MainMenu","_width","_height","create_main_menu","levelSelect","GameMenu","game","menu_features","State","Game","w","h","selectedTilesArray","selected","deadEnds","alreadyMatched","currentCell","cycles","done","level","theTileMap","tilemap","addTilesetImage","layer1","createLayer","trucks","group","exists","setLayer","currentLayerIndex","getLayer","currentLayer","input","onDown","getTileProperties","forEach","tile","properties","type","sourceBlock","firstInChain","getTileRight","x","y","destinationBlock","selector","visible","marker","addMoveCallback","updateMarker","startTime","Date","totalTime","timeElapsed","createTimer","gameTimer","time","events","loop","updateTimer","backButton","openMenu","TOP_LEFT","bringToTop","truck","worldX","worldY","animations","play","startCell","traversePath","getTileX","getTileY","tileUnderneath","getTile","includes","destroy","theTile","foundMatches","testConnections","push","length","i","matches","above","getTileAbove","below","getTileBelow","left","getTileLeft","right","theTileProps","aboveProps","belowProps","leftProps","rightProps","bottom","top","levelComplete","activePointer","create_selector","swap","remove_selector","tile1","tile1Copy","Tile","tile2","tile2Copy","performSwap","prop","hasOwnProperty","putTile","checkForRoadStart","z","timeLabel","bitmapText","TOP_RIGHT","align","currentTime","timeDifference","getTime","Math","abs","timeRemaining","minutes","floor","seconds","result","text","score","Timer","SECOND","GameOver","Credits","cursors","keyboard","createCursorKeys","physics","startSystem","Physics","ARCADE","platforms","enableBody","ground","create","world","scale","body","immovable","ledge","player","arcade","enable","bounce","gravity","collideWorldBounds","stars","star","random","scoreText","font","fill","fixedToCamera","cameraOffset","seeker","allowRotation","pause_menu","setBounds","follow","Camera","FOLLOW_LOCKON","hitPlatform","collide","velocity","isDown","stop","frame","up","touching","down","overlap","collectStar","rotation","moveToPointer","debug","phaser","self","paused","pause_button","menu","xPos","yPos","choiceLabel","resume_button","centerX","centerY","unpause","menuClick","event","x1","x2","y1","y2","choiceMap","choice","setFrames","add_pause_button","kill","Options","LevelComplete","completionTime","BOTTOM_CENTER","nextButton","next_level","TOP_CENTER","Boot","addedStates","load","onLoadStart","loadStart","onFileComplete","fileComplete","onLoadComplete","loadComplete","aspectRatio","Tilemap","TILED_JSON","image","atlas","spritesheet","bitmapFont","bmpText","addGameStates","addGameMusic","leftKey","addKey","Keyboard","LEFT","rightKey","RIGHT","spaceKey","SPACEBAR","filesLoaded","progress","cacheKey","success","totalLoaded","totalFiles","renderer","AUTO","ScaleManager","SHOW_ALL"],"mappings":"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"}