{"version":3,"sources":["webpack:///./src/app/game/sound.ts","webpack:///./src/app/game/level.ts","webpack:///./src/app/game/player.ts","webpack:///./src async","webpack:///./src/main.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/game/boot.ts","webpack:///./src/app/game/level01.ts","webpack:///./src/app/game/level02.ts","webpack:///./src/app/game/main.ts","webpack:///./src/app/game/preloader.ts","webpack:///./src/environments/environment.ts","webpack:///./src/polyfills.ts","webpack:///./src/app/game/game.ts"],"names":[],"mappings":"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AAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM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","file":"main.bundle.js","sourcesContent":["import { zGame } from './game'\r\n\r\nexport class zSound extends Phaser.Sound {\r\n static looping: Phaser.Sound[] = new Array();\r\n zgame: zGame;\r\n afterDeath: boolean;\r\n constructor(game, key) {\r\n super(game, key);\r\n this.zgame = game;\r\n this.zgame.sound.add(key);\r\n }\r\n playSound() {\r\n if (this.isPlaying) {\r\n return;\r\n }\r\n // if broken or dead don't play sound\r\n // unless it's after death sound\r\n if ((this.zgame.currPlayer.isDead ||\r\n this.zgame.currPlayer.isBroken) && (!this.afterDeath)) {\r\n return;\r\n }\r\n this.play();\r\n\r\n }\r\n stopSound() {\r\n if (this.isPlaying)\r\n this.stop();\r\n }\r\n static shutdown() {\r\n for (let i = 0; i < zSound.looping.length; i++) {\r\n zSound.looping[i].stop();\r\n }\r\n }\r\n\r\n // update does not process here\r\n}\r\nexport class zSawBuzz extends zSound {\r\n constructor(game) {\r\n super(game, 'saw');\r\n this.volume = .5;\r\n }\r\n\r\n}\r\nexport class zWheelRoll extends zSound {\r\n constructor(game) {\r\n super(game, 'skateboard_roll');\r\n this.volume = 3;\r\n }\r\n\r\n}\r\nexport class zWheelBumps extends zSound {\r\n constructor(game) {\r\n super(game, 'skateboard_bumpy');\r\n this.volume = .25;\r\n }\r\n\r\n}\r\n\r\n\r\nexport class zWheelClack extends zSound {\r\n constructor(game) {\r\n super(game, 'wheel_clack');\r\n this.volume = .25;\r\n }\r\n\r\n}\r\nexport class zBoneSnap extends zSound {\r\n constructor(game) {\r\n super(game, 'bone_snap');\r\n this.volume = .10;\r\n this.afterDeath = true;\r\n }\r\n\r\n}\r\nexport class zBodyThud extends zSound {\r\n constructor(game) {\r\n super(game, 'body_thud');\r\n this.volume = 1;\r\n }\r\n\r\n}\r\n\r\nexport class zWheelScratch extends zSound {\r\n constructor(game) {\r\n super(game, 'wheel_scratch');\r\n this.volume = .08;\r\n }\r\n\r\n}\r\n\r\nexport class zDing extends zSound {\r\n constructor(game) {\r\n super(game, 'ding');\r\n this.volume = .25;\r\n this.afterDeath = true;\r\n }\r\n\r\n}\r\n\r\nexport class zWheelSlope extends zSound {\r\n constructor(game) {\r\n super(game, 'skateboard_slope');\r\n this.volume = 2;\r\n }\r\n\r\n}\r\nexport class zBoing extends zSound {\r\n constructor(game) {\r\n super(game, 'boing');\r\n this.volume = 1;\r\n }\r\n\r\n}\r\nexport class zSplat extends zSound {\r\n constructor(game) {\r\n super(game, 'splat');\r\n this.volume = .25;\r\n this.afterDeath = true;\r\n }\r\n\r\n}\r\nexport class zSquirt extends zSound {\r\n constructor(game: Phaser.Game) {\r\n super(game, 'squirt');\r\n this.volume = .25;\r\n this.loop = true;\r\n zSound.looping.push(this);\r\n this.afterDeath = true;\r\n }\r\n}\r\nexport class zUnlock extends zSound {\r\n constructor(game) {\r\n super(game, 'unlock');\r\n this.volume = .75;\r\n }\r\n}\r\n\r\nexport class zMusic01 extends zSound {\r\n constructor(game: Phaser.Game) {\r\n super(game, 'music01');\r\n this.volume = 0;\r\n this.loop = true;\r\n zSound.looping.push(this);\r\n // fade in\r\n this.onPlay.add(() => {\r\n this.game.time.events.repeat(Phaser.Timer.SECOND * .05, 20, () => {\r\n this.volume += .05;\r\n });\r\n })\r\n }\r\n}\r\n\r\nexport class zBubbles extends zSound {\r\n zgame: zGame;\r\n constructor(game) {\r\n super(game, 'bubbles');\r\n this.volume = 2;\r\n this.loop = true;\r\n zSound.looping.push(this);\r\n \r\n // zSound.looping.push(this);\r\n // this.onPlay.add(() => {\r\n // console.log('onplay')\r\n // this.loop = true;\r\n // let t = this.zgame.time.create(true);\r\n // t.repeat(Phaser.Timer.SECOND * .1, 10, () => {\r\n // this.volume += .1;\r\n // console.log('vol',this.volume)\r\n // });\r\n // t.start();\r\n // })\r\n // this.onStop.add(() => {\r\n // console.log('onstop')\r\n // this.loop = false;\r\n // this.playSound\r\n // let t = this.zgame.time.create(true);\r\n // t.repeat(Phaser.Timer.SECOND * .1, 10, () => {\r\n // this.volume -= .1;\r\n // console.log('vol',this.volume)\r\n \r\n // })\r\n // t.onComplete.add(() => {\r\n // this.stopSound();\r\n // });\r\n // t.start();\r\n // })\r\n\r\n }\r\n\r\n\r\n}\r\n\r\nexport class zServo {\r\n startfx: zSound;\r\n middlefx: zSound;\r\n endfx: zSound;\r\n playOnCamera: boolean;\r\n isOnCamera: boolean;\r\n constructor(game) {\r\n this.startfx = new zSound(game, 'servo_start');\r\n this.middlefx = new zSound(game, 'servo_middle');\r\n this.endfx = new zSound(game, 'servo_end');\r\n this.startfx.volume = .3;\r\n this.middlefx.volume = .3;\r\n this.middlefx.loop = true;\r\n zSound.looping.push(this.middlefx);\r\n this.endfx.volume = .3;\r\n\r\n this.startfx.onStop.add(() => {\r\n if (this.isOnCamera)\r\n this.middlefx.playSound();\r\n })\r\n }\r\n\r\n playStart() {\r\n if (this.isOnCamera)\r\n this.startfx.playSound();\r\n }\r\n playStop() {\r\n this.middlefx.stopSound();\r\n if (this.isOnCamera)\r\n this.endfx.playSound();\r\n }\r\n offCamera() {\r\n if (this.isOnCamera) {\r\n console.log('off camera');\r\n this.isOnCamera = false;\r\n this.startfx.stopSound();\r\n this.middlefx.stopSound();\r\n this.endfx.stopSound();\r\n }\r\n }\r\n onCamera() {\r\n if (!this.isOnCamera) {\r\n console.log('on camera');\r\n this.isOnCamera = true;\r\n if (this.playOnCamera) {\r\n this.middlefx.playSound();\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/game/sound.ts","/// \r\n/// \r\n/// \r\nimport { zGame } from './game'\r\nimport { zPlayer } from './player'\r\nimport {\r\n zSound, zSawBuzz, zServo, zWheelSlope, zBoing, zUnlock,\r\n zBubbles\r\n} from './sound'\r\n\r\n//const gravityY = 2000//1800;\r\n//const friction = .4;\r\nconst debug = false;\r\n\r\n\r\n\r\nexport class zLevel extends Phaser.State {\r\n\r\n zgame: zGame;\r\n zplayer: zPlayer;\r\n\r\n // common buttons\r\n restartButton: zRestartButton;\r\n clearButton: zClearButton;\r\n //padButton: zPadButton; \r\n setWorldValues(){\r\n this.game.physics.box2d.mass = 1;\r\n //this.game.physics.box2d.gravity.y = 1400; //400; // real gravity 1400\r\n\r\n this.zgame.gravityYptm = (2000 / this.zgame.physics.box2d.ptmRatio) * -1;\r\n this.game.physics.box2d.world.SetGravity({ x: 0, y: this.zgame.gravityYptm });\r\n //this.game.physics.box2d.world.gravity.y = 1400;\r\n this.game.physics.box2d.restitution = 0.2;//0.4;\r\n this.game.physics.box2d.friction = .4; //100 \r\n this.game.physics.box2d.positionIterations = 12//3;\r\n this.game.physics.box2d.velocityIterations = 8//8;\r\n\r\n }\r\n\r\n create() {\r\n this.zgame = this.game;\r\n\r\n zGame.gameOver = false;\r\n\r\n this.world.setBounds(0, 0, this.zgame.worldWidth, this.zgame.worldWidth);\r\n this.physics.startSystem(Phaser.Physics.BOX2D);\r\n //left, right, top, bottom, collisionCategory, collisionMask\r\n this.game.physics.box2d.setBoundsToWorld(true, true, true, true);\r\n\r\n this.setWorldValues();\r\n\r\n this.game.physics.box2d.debugDraw.shapes = true;\r\n this.game.physics.box2d.debugDraw.joints = true;\r\n //this.game.physics.box2d.debugDraw.aabbs = true;\r\n //this.game.physics.box2d.debugDraw.pairs = true;\r\n //this.game.physics.box2d.debugDraw.centerOfMass = true;\r\n\r\n // force initial resize\r\n this.zgame.screenResized = true;\r\n\r\n\r\n //place text around the board\r\n // for (var x = 500; x < this.zgame.worldWidth; x += 500) {\r\n // for (var y = 500; y < this.zgame.worldHeight; y += 500) {\r\n // this.game.add.text(x, y, 'x:' + x + ',y:' + y, null);\r\n // }\r\n // }\r\n\r\n\r\n\r\n }\r\n \r\n render() {\r\n if (debug) {\r\n this.game.debug.box2dWorld();\r\n }\r\n }\r\n\r\n update() {\r\n\r\n if (this.zgame.cursors.down.isDown) {\r\n this.zgame.currPlayer.duck(true);\r\n } else {\r\n this.zgame.currPlayer.duck(false);\r\n }\r\n\r\n if (this.zgame.screenResized) {\r\n this.zgame.screenResized = false;\r\n\r\n // recreate button in correct place on the screen\r\n if (this.restartButton) this.restartButton.destroy();\r\n this.restartButton = new zRestartButton(this.zgame, 80, 40);\r\n\r\n if (this.clearButton) this.clearButton.destroy();\r\n this.clearButton = new zClearButton(this.zgame, this.zgame.screenWidth - 80, 40);\r\n\r\n // if (this.padButton) this.padButton.destroy();\r\n // this.padButton = new zPadButton(this.zgame);\r\n }\r\n }\r\n shutdown() {\r\n zSound.shutdown();\r\n }\r\n\r\n}\r\n\r\n// city paralax background\r\n\r\n// export class zBackGround extends Phaser.TileSprite {\r\n// zgame: zGame;\r\n// constructor(zg: zGame, w, h) {\r\n// super(zg, 0, 0, w, h, 'citytiles');\r\n// this.zgame = zg;\r\n// //let bk = this.zgame.add.sprite(0,0,'city', null, this); \r\n// this.scale.set(1.1, 1.075);\r\n// this.game.add.existing(this);\r\n// }\r\n// update() {\r\n// // get board location\r\n// let px = -this.zgame.camera.x * .1;\r\n// let py = -this.zgame.camera.y * .1;\r\n// this.x = px;\r\n// this.y = py;\r\n// }\r\n\r\n// }\r\n\r\nexport class zParalax extends Phaser.Sprite{\r\n zgame: zGame;\r\n constructor(game:Phaser.Game,image:string ) {\r\n super(game,0,0,image);\r\n //this.fixedToCamera = true;\r\n this.game.add.existing(this);\r\n this.scale.set(2,2);\r\n this.anchor.set(0,0)\r\n }\r\n\r\n update() {\r\n // get board location\r\n //console.log(this.game.camera.x, this.game.camera.y)\r\n this.x = this.game.camera.x - (this.game.camera.x * .05);\r\n this.y = this.game.camera.y - (this.game.camera.y * .05);\r\n // let px = -this.game.camera.x * .1;\r\n // let py = -this.game.camera.y * .1;\r\n // this.x = px;\r\n // this.y = py;\r\n }\r\n}\r\n\r\n\r\nexport class zRestartButton extends Phaser.Button {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y, 'restartbutton', () => {\r\n this.game.state.start((this.game).currLevel);\r\n });\r\n this.fixedToCamera = true;\r\n this.anchor.setTo(.5);\r\n this.z = -99;\r\n this.game.add.existing(this);\r\n }\r\n}\r\nexport class zClearButton extends Phaser.Button {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y, 'clearbutton', () => {\r\n localStorage.removeItem('savPos');\r\n this.game.state.start((this.game).currLevel);\r\n });\r\n this.fixedToCamera = true;\r\n this.anchor.setTo(.5);\r\n this.z = -99;\r\n this.game.add.existing(this);\r\n }\r\n}\r\nexport class zPadButton extends Phaser.Sprite {\r\n zgame: zGame;\r\n constructor(game: Phaser.Game) {\r\n super(game, (game).screenWidth / 2, ((game).screenHeight) - 100, 'arrows');\r\n this.zgame = game;\r\n this.fixedToCamera = true;\r\n this.anchor.setTo(.5);\r\n this.z = -99;\r\n this.inputEnabled = true;\r\n\r\n this.events.onInputDown.add(() => {\r\n this.doInput(true);\r\n });\r\n this.events.onInputUp.add(() => {\r\n this.doInput(false);\r\n });\r\n\r\n this.game.add.existing(this);\r\n }\r\n\r\n doInput(down: boolean) {\r\n\r\n let x = this.x - this.zgame.camera.x - this.zgame.input.activePointer.x;\r\n let y = this.y - this.zgame.camera.y - this.zgame.input.activePointer.y;\r\n\r\n if (y > 0) { // up arrow\r\n this.zgame.cursors.up.isDown = down;\r\n } else if (y < 0) {\r\n if (x > 40) { // left arrow\r\n this.zgame.cursors.left.isDown = down;\r\n } else if (x < -40) { // right arrow\r\n this.zgame.cursors.right.isDown = down;\r\n } else { // down arrow\r\n this.zgame.cursors.down.isDown = down;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class zWall extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, x: number, y: number, w: number, h: number) {\r\n super(game, x, y);\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(w, h);\r\n this.body.static = true;\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n }\r\n}\r\n\r\n\r\n\r\nexport class zPlatform extends Phaser.TileSprite {\r\n constructor(game: Phaser.Game, x: number, y: number, w: number, h: number,\r\n friction: number = -1, angle: number = 0) {\r\n super(game, x, y, w, h, 'brick01');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(w, h);\r\n this.body.static = true;\r\n this.body.setCollisionCategory((game).grCG);\r\n if (friction > -1) {\r\n this.body.friction = friction;\r\n }\r\n this.body.angle = angle;\r\n this.game.add.existing(this);\r\n }\r\n\r\n}\r\n\r\nexport class zSavePoint extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n // y: of the floor that flag will be on\r\n y -= 65;\r\n\r\n let graphics = game.add.graphics(0, 0);\r\n graphics.beginFill(0xffff00);\r\n graphics.drawRect(x, y, 5, 100);\r\n graphics.endFill();\r\n graphics.beginFill(0xff0000);\r\n graphics.drawRect(x, y, 20, 20);\r\n graphics.endFill();\r\n let texture = graphics.generateTexture();\r\n graphics.destroy();\r\n super(game, x, y, texture);\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(5, 100, -7);\r\n this.body.static = true;\r\n this.body.setCollisionCategory((game).savCat);\r\n this.game.add.existing(this);\r\n }\r\n}\r\n\r\nexport class zLift extends Phaser.Sprite {\r\n origX: number;\r\n origY: number;\r\n sprung: boolean;\r\n servo: zServo;\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n let graphics = game.add.graphics(0, 0);\r\n graphics.beginFill(0x001a33);\r\n graphics.drawRect(x - 150, y - 5, 300, 5);\r\n graphics.drawRect(x - 145, y - 10, 5, 5);\r\n graphics.drawRect(x + 145, y - 10, 5, 5);\r\n graphics.endFill();\r\n let texture = graphics.generateTexture();\r\n graphics.destroy();\r\n\r\n // y: is the floor that list will be on\r\n y -= 20;\r\n super(game, x, y, texture);\r\n game.physics.box2d.enable(this);\r\n this.origX = x;\r\n this.origY = y;\r\n this.body.setRectangle(300, 5);\r\n this.body.addRectangle(5, 5, 145, -5);\r\n this.body.addRectangle(5, 5, -145, -5);\r\n this.body.kinematic = true;\r\n this.servo = new zServo(game);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.body.setCategoryContactCallback((game).boCG, (body1, body2, fixture1, fixture2, begin) => {\r\n if (!this.sprung && begin) {\r\n console.log('contact spring')\r\n this.sprung = true;\r\n game.time.events.add(Phaser.Timer.SECOND * 2, () => {\r\n body1.velocity.y = -800;\r\n this.servo.playStart();\r\n });\r\n }\r\n });\r\n this.checkWorldBounds = true;\r\n\r\n this.events.onOutOfBounds.add(() => {\r\n this.body.velocity.y = 0;\r\n this.body.x = this.origX;\r\n this.body.y = this.origY;\r\n this.sprung = false;\r\n this.servo.playStop();\r\n });\r\n\r\n this.game.add.existing(this);\r\n }\r\n update() {\r\n if (!this.inCamera) {\r\n this.servo.offCamera();\r\n } else {\r\n this.servo.onCamera();\r\n }\r\n }\r\n}\r\n\r\nexport class zSaw extends Phaser.Sprite {\r\n zgame: zGame;\r\n buzz: zSawBuzz;\r\n rotOn: boolean;\r\n flip: boolean;\r\n constructor(game: Phaser.Game, x: number, y: number, flip: boolean = false) {\r\n // y: of the floor that flag will be on \r\n super(game, x, y, 'saw');\r\n this.zgame = game;\r\n this.flip = flip;\r\n game.physics.box2d.enable(this);\r\n this.body.setCircle(300);\r\n this.body.friction = 1000;\r\n this.body.kinematic = true;\r\n this.body.setCollisionCategory(this.zgame.deathCat);\r\n this.scale.setTo(flip ? -2 : 2, 2);\r\n this.buzz = new zSawBuzz(game);\r\n\r\n this.game.add.existing(this);\r\n }\r\n update() {\r\n if (this.inCamera) {\r\n if (!this.rotOn) {\r\n this.rotOn = true;\r\n if (this.flip)\r\n this.body.rotateLeft(1000);\r\n else\r\n this.body.rotateRight(1000);\r\n this.buzz.playSound();\r\n }\r\n } else {\r\n if (this.rotOn) {\r\n this.rotOn = false;\r\n this.body.setZeroRotation();\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class zSawDown extends zSaw {\r\n tweenOn: boolean;\r\n tweenDown: Phaser.Tween;\r\n tweenUp: Phaser.Tween;\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n // y: of the floor that flag will be on\r\n y -= 500; // move the up for tween \r\n super(game, x, y);\r\n\r\n this.tweenDown = game.add.tween(this.body).to({ y: '+500' }, 500,\r\n Phaser.Easing.Exponential.In, false);\r\n this.tweenUp = game.add.tween(this.body).to({ y: '-500' }, 500,\r\n Phaser.Easing.Exponential.In, false);\r\n }\r\n update() {\r\n super.update();\r\n // compute distance to saw\r\n let dx = this.body.x - this.zgame.currPlayer.getX();\r\n let dy = this.body.y - this.zgame.currPlayer.getY();\r\n let sr = Math.floor(Math.sqrt(dx * dx + dy * dy));\r\n let pv = Math.floor(Math.abs(this.zgame.currPlayer.getXV()));\r\n\r\n let twdist = (pv * .5) + 600;\r\n\r\n if (sr < twdist && !this.tweenOn) {\r\n this.tweenOn = true;\r\n this.tweenDown.start();\r\n console.log('saw down');\r\n }\r\n if (sr > twdist && this.tweenOn) {\r\n this.tweenOn = false;\r\n this.tweenUp.start();\r\n }\r\n\r\n }\r\n}\r\n\r\nexport class zSlope45Right extends Phaser.Sprite {\r\n zgame: zGame;\r\n slopefx: zWheelSlope;\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n // y: of the floor that flag will be on \r\n // x: right wall \r\n y -= 1000;\r\n x -= 1000;\r\n super(game, x, y, 'slope45');\r\n this.zgame = game;\r\n this.slopefx = new zWheelSlope(game);\r\n game.physics.box2d.enable(this);\r\n let body = this.body;\r\n body.clearFixtures();\r\n\r\n let virts: number[] = new Array();\r\n let curve = [{ x: 0, y: 1000 }, { x: 750, y: 1000 }, { x: 1000, y: 750 }, { x: 1000, y: 0 }];\r\n for (var t = 0; t < 1; t += .01) {\r\n let p = jsBezier.pointOnCurve(curve, t);\r\n virts.push(p.x);\r\n virts.push(p.y);\r\n }\r\n\r\n body.addChain(virts);\r\n\r\n body.static = true;\r\n body.setCollisionCategory(this.zgame.grCG);\r\n this.anchor.setTo(0, 0);\r\n let gs = body.addRectangle(200, 200, 800, 800)\r\n gs.SetSensor(true);\r\n body.setFixtureContactCallback(gs, (body1, body2, fixture1, fixture2, begin) => {\r\n if (begin && this.zgame.currPlayer.onGroundCount > 0) {\r\n this.slopefx.playSound();\r\n }\r\n }, null)\r\n this.game.add.existing(this);\r\n\r\n }\r\n\r\n}\r\n\r\nexport class zSlope45Left extends Phaser.Sprite {\r\n zgame: zGame;\r\n slopefx: zWheelSlope;\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n // y: of the floor that flag will be on \r\n // x: right wall \r\n y -= 1000;\r\n super(game, x, y, 'slope45');\r\n this.zgame = game;\r\n this.slopefx = new zWheelSlope(game);\r\n game.physics.box2d.enable(this);\r\n let body = this.body;\r\n body.clearFixtures();\r\n let virts: number[] = new Array();\r\n let curve = [{ x: 0, y: 0 }, { x: 0, y: 750 }, { x: 250, y: 1000 }, { x: 1000, y: 1000 }];\r\n\r\n for (var t = 0; t < 1; t += .01) {\r\n let p = jsBezier.pointOnCurve(curve, t);\r\n virts.push(p.x);\r\n virts.push(p.y);\r\n }\r\n\r\n body.addChain(virts);\r\n\r\n body.static = true;\r\n body.setCollisionCategory(this.zgame.grCG);\r\n this.anchor.setTo(1, 0);\r\n this.scale.setTo(-1, 1);\r\n let gs = body.addRectangle(200, 200, 200, 800)\r\n gs.SetSensor(true);\r\n body.setFixtureContactCallback(gs, (body1, body2, fixture1, fixture2, begin) => {\r\n if (begin && this.zgame.currPlayer.onGroundCount > 0) {\r\n this.slopefx.playSound();\r\n }\r\n }, null)\r\n this.game.add.existing(this);\r\n }\r\n}\r\n\r\nexport class zBumps extends Phaser.Sprite {\r\n zgame: zGame;\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n // y: is the floor\r\n y -= 90;\r\n super(game, x, y, 'bumps01');\r\n this.zgame = game;\r\n game.physics.box2d.enable(this);\r\n this.body.clearFixtures();\r\n this.body.loadPolygon('bumps01', 'bumps01');\r\n this.body.static = true;\r\n this.body.restitution = .3\r\n this.body.friction = 1;\r\n this.body.setCollisionCategory(this.zgame.grCG);\r\n this.anchor.setTo(0, 0);\r\n this.game.add.existing(this);\r\n }\r\n}\r\n\r\nexport class zMover extends Phaser.Sprite {\r\n zgame: zGame;\r\n leftX: number;\r\n rightX: number;\r\n still: boolean;\r\n delay: boolean;\r\n goRight: boolean;\r\n servo: zServo;\r\n constructor(game: Phaser.Game, x: number, y: number, left: number, right: number, goRight: boolean) {\r\n\r\n let graphics = game.add.graphics(0, 0);\r\n graphics.beginFill(0x001a33);\r\n graphics.drawRect(x - 150, y - 5, 300, 20);\r\n graphics.drawRect(x - 145, y - 10, 5, 5);\r\n graphics.drawRect(x + 145, y - 10, 5, 5);\r\n graphics.endFill();\r\n let texture = graphics.generateTexture();\r\n graphics.destroy();\r\n\r\n\r\n super(game, x, y, texture);\r\n this.zgame = game;\r\n this.leftX = left;\r\n this.rightX = right;\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(300, 20);\r\n this.body.addRectangle(5, 5, 145, -15);\r\n this.body.addRectangle(5, 5, -145, -15);\r\n this.body.kinematic = true;\r\n this.body.setCollisionCategory(this.zgame.grCG);\r\n this.goRight = goRight;\r\n this.still = false;\r\n this.delay = false;\r\n this.servo = new zServo(game);\r\n this.servo.playOnCamera = true;\r\n this.game.add.existing(this);\r\n }\r\n update() {\r\n if (!this.still) {\r\n if (this.body.x <= this.leftX && !this.goRight) {\r\n // stop, and reverse\r\n this.still = true;\r\n this.goRight = true;\r\n } else if (this.body.x >= this.rightX && this.goRight) {\r\n // stop and reverse\r\n this.still = true;\r\n this.goRight = false;\r\n }\r\n if (this.goRight) {\r\n this.body.moveRight(500);\r\n } else {\r\n this.body.moveLeft(500);\r\n }\r\n } else if (!this.delay) {\r\n // stopped..delaying\r\n this.body.setZeroVelocity();\r\n this.delay = true;\r\n this.servo.playStop();\r\n this.game.time.events.add(Phaser.Timer.SECOND * 2, () => {\r\n this.still = false;\r\n this.delay = false;\r\n this.servo.playStart();\r\n });\r\n }\r\n\r\n if (this.inCamera) {\r\n this.servo.onCamera();\r\n } else {\r\n this.servo.offCamera();\r\n }\r\n }\r\n shutdown() {\r\n //this.servo.offCamera();\r\n }\r\n}\r\n\r\nexport class zSpikes extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y, 'spikes');\r\n game.physics.box2d.enable(this);\r\n this.body.clearFixtures();\r\n this.body.loadPolygon('spikes', 'spikes');\r\n this.body.static = true;\r\n this.body.friction = 1;\r\n this.body.setCollisionCategory((game).deathCat);\r\n this.anchor.setTo(0, 0)\r\n this.game.add.existing(this);\r\n // add bricks under spikes \r\n new zPlatform(game, x + this.width / 2, y + this.height + 15, this.width, 35)\r\n }\r\n}\r\n\r\n\r\nclass zDoor extends Phaser.Sprite {\r\n zparent: zTrapDoor;\r\n constructor(game: Phaser.Game, x: number, y: number, zp: zTrapDoor) {\r\n let graphics = game.add.graphics(0, 0);\r\n graphics.beginFill(0x001a33);\r\n graphics.drawRect(x, y, 300, 20);\r\n graphics.endFill();\r\n let texture = graphics.generateTexture();\r\n graphics.destroy();\r\n super(game, x, y, texture);\r\n this.zparent = zp;\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(300, 20);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.body.setCollisionMask((game).zoCG | (game).boCG);\r\n this.body.setCategoryContactCallback((game).boCG, (body1, body2, fixture1, fixture2, begin) => {\r\n if (begin) {\r\n this.zparent.openLock = true;\r\n }\r\n });\r\n this.game.add.existing(this);\r\n }\r\n}\r\n\r\nclass zHinge extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(5, 5);\r\n this.body.static = true;\r\n this.game.add.existing(this);\r\n }\r\n}\r\n\r\nclass zLock extends Phaser.Sprite {\r\n zparent: zTrapDoor;\r\n lockOpened: boolean;\r\n unlock: zUnlock\r\n constructor(game: Phaser.Game, x: number, y: number, zp: zTrapDoor) {\r\n super(game, x, y);\r\n this.zparent = zp;\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(5, 5);\r\n this.body.kinematic = true;\r\n this.body.setCollisionCategory((game).passCat);\r\n this.unlock = new zUnlock(game);\r\n this.game.add.existing(this);\r\n }\r\n\r\n update() {\r\n if (this.zparent.openLock && !this.lockOpened) {\r\n this.lockOpened = true;\r\n this.game.time.events.add(Phaser.Timer.SECOND * 2, () => {\r\n console.log('open lock');\r\n this.game.physics.box2d.world.DestroyJoint(this.zparent.lockJoint);\r\n this.unlock.playSound();\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport class zTrapDoor {\r\n door: zDoor;\r\n hinge: zHinge;\r\n lock: zLock;\r\n hingeJoint: box2d.b2RevoluteJoint;\r\n lockJoint: box2d.b2RevoluteJoint;\r\n openLock: boolean;\r\n\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n this.door = new zDoor(game, x, y, this);\r\n this.hinge = new zHinge(game, x - 150, y)\r\n this.lock = new zLock(game, x + 150, y, this)\r\n this.hingeJoint = game.physics.box2d.revoluteJoint(this.door, this.hinge,\r\n -150, 0, 0, 0, 0, 0, false, -90, 0, true)\r\n this.lockJoint = game.physics.box2d.revoluteJoint(this.door, this.lock,\r\n 150, 0, 0, 0, 0, 0, false, 0, 0, true)\r\n }\r\n\r\n}\r\n\r\nexport class zMattress extends Phaser.Sprite {\r\n boing: zBoing;\r\n constructor(game: Phaser.Game, x: number, y: number, angle: number = 0) {\r\n super(game, x, y, 'mattress');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(500, 50, 0, -10);\r\n this.body.kinematic = true;\r\n this.body.setCollisionCategory((game).bounceCat);\r\n this.body.friction = 0;\r\n this.body.restitution = 0;//1.5;\r\n this.body.angle = angle;\r\n this.scale.setTo(.8, .8);\r\n this.game.add.existing(this);\r\n this.body.setCategoryPostsolveCallback((game).boCG, this.callback);\r\n this.body.setCategoryPostsolveCallback((game).zoCG, this.callback);\r\n this.boing = new zBoing(game);\r\n }\r\n\r\n callback = (body1, body2, fixture1, fixture2, contact, impulseInfo) => {\r\n if (impulseInfo.count > 0) {\r\n var b2b1: box2d.b2Body = body1.data;\r\n var b2b2: box2d.b2Body = body2.data;\r\n var imp: box2d.b2Vec2 = new box2d.b2Vec2();\r\n imp.x = .01;//impulseInfo.normalImpulses[0] * -.005;\r\n imp.y = .01;//impulseInfo.normalImpulses[0] * -.005;\r\n (this.game).currPlayer.applyImpulse(imp, contact.m_manifold.points[0].localPoint);\r\n this.boing.playSound();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class zJumpRight extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, x: number, y: number, a: number = 0) {\r\n y -= 150;\r\n super(game, x, y, 'jump');\r\n game.physics.box2d.enable(this);\r\n this.body.clearFixtures();\r\n this.body.loadPolygon('jump_right', 'jump_right');\r\n this.body.static = true;\r\n this.body.angle = a;\r\n this.body.setCollisionCategory((game).grCG);\r\n this.anchor.setTo(-0.03, -0.08);\r\n this.game.add.existing(this);\r\n }\r\n}\r\nexport class zJumpLeft extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, x: number, y: number, a: number = 0) {\r\n y -= 150;\r\n super(game, x, y, 'jump');\r\n game.physics.box2d.enable(this);\r\n this.body.clearFixtures();\r\n this.body.loadPolygon('jump_left', 'jump_left');\r\n this.body.static = true;\r\n this.body.angle = a;\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n }\r\n}\r\n\r\nconst flyPower = 6500;\r\nconst wallBuff = 100;\r\nexport class zFly extends Phaser.TileSprite {\r\n zgame: zGame;\r\n bbody: Phaser.Physics.Box2D.Body;\r\n contact: boolean;\r\n flyOn: boolean;\r\n emitter: Phaser.Particles.Arcade.Emitter;\r\n bubbles: zBubbles;\r\n\r\n constructor(game: Phaser.Game, x: number, y: number, w: number, h: number) {\r\n super(game, x, y, w, h, 'brick01');\r\n this.zgame = this.game;\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(w, h);\r\n this.body.kinematic = true;\r\n this.bubbles = new zBubbles(game);\r\n this.body.setCollisionCategory(this.zgame.grCG);\r\n this.body.setCategoryContactCallback(this.zgame.boCG, (body1, body2, fixture1, fixture2, begin) => {\r\n if (begin) {\r\n if (this.flyOn) {\r\n this.contact = this.flyOn = false;\r\n }\r\n if (!this.contact) {\r\n this.contact = true;\r\n this.game.time.events.add(Phaser.Timer.SECOND * 2, () => {\r\n this.flyOn = true;\r\n })\r\n }\r\n }\r\n });\r\n\r\n this.emitter = game.add.emitter(x, y, 300);\r\n\r\n this.emitter.makeParticles('corona');\r\n this.emitter.enableBody = true;\r\n this.emitter.physicsBodyType = Phaser.Physics.BOX2D;\r\n this.emitter.setYSpeed(-1000, 0);\r\n this.emitter.setXSpeed(-100, 100);\r\n this.emitter.setRotation(0, 0);\r\n this.emitter.setAlpha(0.3, 0.8);\r\n this.emitter.width = 300;\r\n\r\n //\tfalse means don't explode all the sprites at once, but instead release at a rate of one particle per 100ms\r\n //\tThe 5000 value is the lifespan of each particle before it's killed\r\n this.emitter.start(false, 5000, 100);\r\n this.emitter.on = false;\r\n\r\n this.game.add.existing(this);\r\n\r\n }\r\n update() {\r\n if (!this.bbody) {\r\n this.bbody = this.zgame.currPlayer.getBoardBody();\r\n }\r\n if (this.bbody.x + wallBuff > (this.body.x - this.width / 2) &&\r\n this.bbody.x - wallBuff < (this.body.x + this.width / 2) &&\r\n this.body.y > this.bbody.y && this.flyOn) {\r\n this.bbody.thrust(flyPower);\r\n this.emitter.on = true;\r\n this.bubbles.playSound();\r\n\r\n } else {\r\n this.emitter.on = false;\r\n this.bubbles.stopSound();\r\n }\r\n }\r\n}\r\n\r\nconst xgzone = 150;\r\nconst gravx = 900;\r\n\r\nexport class zTube extends zPlatform {\r\n // this plateform is the floor\r\n zgame: zGame;\r\n leftWall: zPlatform;\r\n rightWall: zPlatform;\r\n rightSlope: zSlope45Right;\r\n leftSlope: zSlope45Left;\r\n bbody: Phaser.Physics.Box2D.Body;\r\n gravXptm: number;\r\n curXptm: number;\r\n\r\n //xgravitx: number = 0;\r\n //gy: number;\r\n\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n // this sprite is the floor\r\n super(game, x, y, 3000, 35)\r\n this.zgame = game;\r\n\r\n this.leftWall = new zPlatform(this.zgame, x - 1500, y - 800, 35, 2400); //left\r\n this.rightWall = new zPlatform(this.zgame, x + 1500, y - 800, 35, 2400); // right\r\n this.rightSlope = new zSlope45Right(this.zgame, x + 1485, y - 16)\r\n this.leftSlope = new zSlope45Left(this.zgame, x - 1490, y - 16)\r\n\r\n this.leftWall.body.friction = .1\r\n this.rightWall.body.friction = .1\r\n this.rightSlope.body.friction = .1\r\n this.leftSlope.body.friction = .1\r\n this.body.friction = .1\r\n \r\n this.gravXptm = (gravx / this.zgame.physics.box2d.ptmRatio) * -1;\r\n this.curXptm = 0;\r\n }\r\n update() {\r\n if (!this.bbody) {\r\n this.bbody = this.zgame.currPlayer.getBoardBody();\r\n }\r\n\r\n if (this.bbody.y > this.y - this.rightWall.height + 100)\r\n if (this.bbody.x < this.leftWall.x + xgzone && this.bbody.x > this.leftWall.x) {\r\n if (-this.gravXptm != this.curXptm) {\r\n console.log('gravity on');\r\n this.curXptm = -this.gravXptm;\r\n this.zgame.physics.box2d.world.SetGravity({ x: this.curXptm, y: this.zgame.gravityYptm });\r\n }\r\n } else if (this.bbody.x > this.rightWall.x - xgzone && this.bbody.x < this.rightWall.x) {\r\n if (this.gravXptm != this.curXptm) {\r\n console.log('gravity on');\r\n this.curXptm = this.gravXptm;\r\n this.zgame.physics.box2d.world.SetGravity({ x: this.curXptm, y: this.zgame.gravityYptm });\r\n }\r\n } else {\r\n if (this.curXptm != 0) {\r\n this.curXptm = 0;\r\n console.log('gravity off');\r\n this.zgame.physics.box2d.world.SetGravity({ x: this.curXptm, y: this.zgame.gravityYptm });\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class zRubeWall extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n super(game, 0, 0);\r\n body.sprite = this;\r\n this.body = body;\r\n\r\n this.anchor.setTo(.5, .5);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n\r\n }\r\n}\r\n\r\nexport class zRubeBrick extends Phaser.Sprite {\r\n ts: Phaser.TileSprite;\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n super(game, 0, 0);\r\n body.sprite = this;\r\n this.body = body;\r\n let rect = body.data.m_fixtureList.m_shape;\r\n let width = rect.m_vertices[0].x * 2 * 50;\r\n this.ts = this.game.add.tileSprite(body.x, body.y, width, 35, 'brick01')\r\n this.ts.anchor.set(.5, .5);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n }\r\n}\r\n\r\n\r\nexport class zRubeJumpSmallRight extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n body.angle = 0;\r\n body.y = body.y - 75;\r\n super(game, 0, 0, 'jump');\r\n body.sprite = this;\r\n this.body = body;\r\n this.anchor.setTo(1, 0);\r\n this.body.clearFixtures();\r\n let virts: number[] = new Array();\r\n let curve = [{ x: 0, y: 0 }, { x: 0, y: 30 }, { x: 150, y: 125 }, { x: 300, y: 125 }];\r\n for (var t = 0; t < 1; t += .05) {\r\n let p = jsBezier.pointOnCurve(curve, t);\r\n virts.push(p.x);\r\n virts.push(p.y);\r\n }\r\n body.addChain(virts);\r\n body.addEdge(0, 0, 0, 125);\r\n this.scale.setTo(-1, 1);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n\r\n }\r\n}\r\nexport class zRubeJumpSmallLeft extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n body.angle = 0;\r\n body.y = body.y - 75;\r\n super(game, 0, 0, 'jump');\r\n body.sprite = this;\r\n this.body = body;\r\n this.anchor.setTo(1, 0);\r\n this.body.clearFixtures();\r\n let virts: number[] = new Array();\r\n let curve = [{ x: 0, y: 0 }, { x: 0, y: 30 }, { x: -150, y: 125 }, { x: -300, y: 125 }];\r\n for (var t = 0; t < 1; t += .05) {\r\n let p = jsBezier.pointOnCurve(curve, t);\r\n virts.push(p.x);\r\n virts.push(p.y);\r\n }\r\n body.addChain(virts);\r\n body.addEdge(0, 0, 0, 125);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n\r\n }\r\n}\r\n\r\nexport class zRubeJumpBigRight extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n body.angle = 0;\r\n body.y = body.y - 250;\r\n super(game, 0, 0, 'bigjump');\r\n body.sprite = this;\r\n this.body = body;\r\n this.anchor.setTo(0, 0);\r\n this.body.clearFixtures();\r\n let virts: number[] = new Array();\r\n let curve = [{ x: 0, y: 0 }, { x: 0, y: 50 }, { x: 300, y: 300 }, { x: 600, y: 300 }];\r\n for (var t = 0; t < 1; t += .01) {\r\n let p = jsBezier.pointOnCurve(curve, t);\r\n virts.push(p.x);\r\n virts.push(p.y);\r\n }\r\n body.addChain(virts);\r\n body.addEdge(0, 0, 0, 300);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n\r\n }\r\n}\r\n\r\nexport class zRubeJumpBigLeft extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n body.angle = 0;\r\n body.y = body.y - 250;\r\n super(game, 0, 0, 'bigjump');\r\n body.sprite = this;\r\n this.body = body;\r\n this.anchor.setTo(0, 0);\r\n this.body.clearFixtures();\r\n let virts: number[] = new Array();\r\n let curve = [{ x: 0, y: 0 }, { x: 0, y: 50 }, { x: -300, y: 300 }, { x: -600, y: 300 }];\r\n for (var t = 0; t < 1; t += .01) {\r\n let p = jsBezier.pointOnCurve(curve, t);\r\n virts.push(p.x);\r\n virts.push(p.y);\r\n }\r\n body.addChain(virts);\r\n body.addEdge(0, 0, 0, 300);\r\n this.scale.setTo(-1, 1);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n\r\n }\r\n}\r\n\r\nexport class zRubeMoverVirt extends Phaser.Sprite {\r\n zgame: zGame;\r\n topY: number;\r\n botY: number;\r\n servo: zServo;\r\n initUp: boolean;\r\n goUp: boolean;\r\n goUpVect: box2d.b2Vec2;\r\n initDown: boolean;\r\n goDown: boolean;\r\n goDownVect: box2d.b2Vec2;\r\n body: Phaser.Physics.Box2D.Body;\r\n\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body, top: number) {\r\n super(game, body.x, body.y);\r\n this.zgame = game;\r\n this.topY = top;\r\n this.botY = body.y - 7;\r\n this.goUpVect = new box2d.b2Vec2(0, 10);\r\n this.goDownVect = new box2d.b2Vec2(0, -10);\r\n body.sprite = this;\r\n this.body = body;\r\n this.anchor.setTo(.5, .5)\r\n this.servo = new zServo(game);\r\n this.servo.isOnCamera = true;\r\n this.game.add.existing(this);\r\n body.setCategoryContactCallback(this.zgame.boCG,\r\n (body1, body2, fixture1, fixture2, begin) => {\r\n if (begin && !this.initUp) {\r\n this.initUp = true\r\n this.game.time.events.add(Phaser.Timer.SECOND * 2, () => {\r\n this.goUp = true;\r\n this.servo.playStart();\r\n })\r\n }\r\n }, null)\r\n\r\n let shape = body.data.m_fixtureList.m_shape;\r\n\r\n let g = game.add.graphics(0, 0);\r\n let wid = shape.m_vertices[0].x * 2 * 50;\r\n let hid = shape.m_vertices[0].y * 2 * 50;\r\n g.beginFill(0x001a33);\r\n g.drawRect(-wid, -7, wid, 7); // draw base\r\n g.drawRect(-7, -(hid), 7, (hid)); // edge\r\n g.drawRect(-wid, -(hid), 7, (hid)); // edge\r\n g.endFill();\r\n let texture = g.generateTexture();\r\n g.destroy();\r\n this.loadTexture(texture);\r\n\r\n }\r\n update() {\r\n\r\n if (this.body.y <= this.topY && this.goUp) {\r\n this.goUp = false;\r\n this.servo.playStop();\r\n this.game.time.events.add(Phaser.Timer.SECOND * 2, () => {\r\n this.goDown = true;\r\n this.servo.playStart();\r\n })\r\n } else if (this.body.y >= this.botY && this.goDown) {\r\n this.goDown = false;\r\n this.initUp = false;\r\n this.servo.playStop();\r\n }\r\n\r\n if (this.goUp) {\r\n this.body.data.SetLinearVelocity(this.goUpVect);\r\n } else if (this.goDown) {\r\n this.body.data.SetLinearVelocity(this.goDownVect);\r\n } else {\r\n this.body.setZeroVelocity();\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n\r\nexport class zRubSaw extends Phaser.Sprite {\r\n zgame: zGame;\r\n buzz: zSawBuzz;\r\n body: Phaser.Physics.Box2D.Body;\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n super(game, body.x, body.y, 'saw');\r\n this.zgame = game;\r\n body.sprite = this;\r\n this.body = body;\r\n this.buzz = new zSawBuzz(game);\r\n this.game.add.existing(this);\r\n this.anchor.setTo(.5, .5)\r\n this.scale.setTo(2, 2)\r\n }\r\n\r\n update() {\r\n \r\n if (this.inCamera) {\r\n this.body.rotateRight(1000);\r\n this.buzz.playSound();\r\n }\r\n\r\n if (!this.inCamera) {\r\n this.body.setZeroRotation();\r\n }\r\n }\r\n}\r\n\r\nexport class zRubSwingSaw extends Phaser.Sprite {\r\n zgame: zGame;\r\n buzz: zSawBuzz;\r\n body: Phaser.Physics.Box2D.Body;\r\n joint: box2d.b2DistanceJoint;\r\n arm: Phaser.Graphics;\r\n anchA: box2d.b2Vec2;\r\n anchB: box2d.b2Vec2;\r\n cameraOnce: boolean;\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body, joint: box2d.b2DistanceJoint) {\r\n super(game, body.x, body.y, 'saw');\r\n this.zgame = game;\r\n this.joint = joint;\r\n let v = new box2d.b2Vec2\r\n\r\n body.sprite = this;\r\n this.body = body;\r\n this.buzz = new zSawBuzz(game);\r\n this.game.add.existing(this);\r\n this.anchor.setTo(.5, .5)\r\n\r\n this.arm = game.add.graphics(0, 0);\r\n let anch = new box2d.b2Vec2();\r\n this.joint.GetLocalAnchorB(anch);\r\n\r\n let bodyB: Phaser.Physics.Box2D.Body = this.joint.GetBodyB().parent;\r\n this.anchB = new box2d.b2Vec2(bodyB.x - (anch.x * 50), bodyB.y - (anch.y * 50));\r\n\r\n }\r\n\r\n update() {\r\n\r\n // debugger\r\n let bodyA: Phaser.Physics.Box2D.Body = this.joint.GetBodyA().parent;\r\n this.anchA = new box2d.b2Vec2(bodyA.x, bodyA.y);\r\n\r\n this.arm.clear();\r\n this.arm.lineStyle(10, 0x4d3300, 1);\r\n this.arm.moveTo(this.anchA.x, this.anchA.y);\r\n this.arm.lineTo(this.anchB.x, this.anchB.y);\r\n this.arm.endFill();\r\n\r\n if (this.inCamera) {\r\n if (!this.cameraOnce){\r\n this.cameraOnce = true;\r\n }else{ \r\n this.body.rotateRight(1000);\r\n this.buzz.playSound();\r\n }\r\n }else{\r\n this.body.setZeroRotation();\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nexport class zRubeRollingSaw extends Phaser.Sprite {\r\n zgame: zGame;\r\n buzz: zSawBuzz;\r\n cameraOnce: boolean;\r\n //body: Phaser.Physics.Box2D.Body; this will break stuff\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n super(game, body.x, body.y, 'saw');\r\n game.physics.box2d.enable(this);\r\n this.zgame = game;\r\n let f = body.data.m_fixtureList.m_shape;\r\n this.body.setCircle(f.m_radius * 50);\r\n this.body.rotateRight(300);\r\n this.body.setCollisionCategory(this.zgame.deathCat);\r\n this.body.setCollisionMask(this.zgame.grCG | this.zgame.zoCG | this.zgame.boCG);\r\n this.scale.setTo(2, 2)\r\n this.buzz = new zSawBuzz(game); \r\n this.game.add.existing(this);\r\n }\r\n update() {\r\n if (this.inCamera){ // first in cameara is bullshit.\r\n if (!this.cameraOnce){\r\n this.cameraOnce = true;\r\n }else{\r\n this.buzz.playSound(); \r\n }\r\n\r\n }\r\n }\r\n}\r\n\r\nexport class zRubeJumpSuperLeft extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n body.angle = 0;\r\n body.y = body.y - 260;\r\n super(game, 0, 0, 'superjump');\r\n body.sprite = this;\r\n this.body = body;\r\n this.anchor.setTo(1, 0);\r\n this.body.clearFixtures();\r\n let virts: number[] = new Array();\r\n let curve = [{ x: 0, y: 0 }, { x: 0, y: 50 }, { x: -400, y: 300 }, { x: -800, y: 300 }];\r\n for (var t = 0; t < 1; t += .01) {\r\n let p = jsBezier.pointOnCurve(curve, t);\r\n virts.push(p.x);\r\n virts.push(p.y);\r\n }\r\n body.addChain(virts);\r\n body.addEdge(0, 0, 0, 300);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n\r\n }\r\n}\r\n\r\nexport class zRubeJumpSuperRight extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n body.angle = 0;\r\n body.y = body.y - 260;\r\n super(game, 0, 0, 'superjump');\r\n body.sprite = this;\r\n this.body = body;\r\n this.anchor.setTo(1, 0);\r\n this.body.clearFixtures();\r\n let virts: number[] = new Array();\r\n let curve = [{ x: 0, y: 0 }, { x: 0, y: 50 }, { x: 400, y: 300 }, { x: 800, y: 300 }];\r\n for (var t = 0; t < 1; t += .01) {\r\n let p = jsBezier.pointOnCurve(curve, t);\r\n virts.push(p.x);\r\n virts.push(p.y);\r\n }\r\n body.addChain(virts);\r\n body.addEdge(0, 0, 0, 300);\r\n this.scale.setTo(-1, 1);\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n\r\n }\r\n}\r\n\r\n\r\nexport class zRubeFloorPoppers extends Phaser.Sprite {\r\n constructor(game: Phaser.Game, body: Phaser.Physics.Box2D.Body) {\r\n super(game, 0, 0);\r\n body.sprite = this;\r\n this.body = body;\r\n this.anchor.setTo(.5, .5)\r\n let ts1 = game.add.tileSprite(-4780, -90, 60, 220, 'brick01');\r\n ts1.anchor.set(.5, .5);\r\n this.addChild(ts1);\r\n let ts2 = game.add.tileSprite(-2785, -90, 3475, 220, 'brick01');\r\n ts2.anchor.set(.5, .5);\r\n this.addChild(ts2);\r\n let ts3 = game.add.tileSprite(300, -90, 2300, 220, 'brick01');\r\n ts3.anchor.set(.5, .5);\r\n this.addChild(ts3);\r\n let ts4 = game.add.tileSprite(2550, -90, 1800, 220, 'brick01');\r\n ts4.anchor.set(.5, .5);\r\n this.addChild(ts4);\r\n let ts5 = game.add.tileSprite(4230, -90, 1165, 220, 'brick01');\r\n ts5.anchor.set(.5, .5);\r\n this.addChild(ts5);\r\n\r\n this.body.setCollisionCategory((game).grCG);\r\n this.game.add.existing(this);\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/game/level.ts","\r\n/// \r\n/// \r\nimport { zGame } from './game'\r\nimport {\r\n zBodyThud, zBoneSnap, zWheelClack, zWheelRoll, zWheelScratch,\r\n zWheelBumps, zDing, zSquirt, zSplat\r\n} from './sound'\r\n\r\nconst breakForce = 120; //80\r\nconst board_mass = 140;\r\nconst player_mass = 1 //.1\r\nexport class zPlayer {\r\n zgame: zGame;\r\n\r\n onGroundCount: number = 0;\r\n isDead: boolean = false;\r\n isBroken: boolean = false;\r\n initBleeding: boolean = false;\r\n isBleeding: boolean = false;\r\n isDucked: boolean = false;\r\n initDeath: boolean = false;\r\n\r\n parts: zPlayerPart[];\r\n joints: box2d.b2Joint[];\r\n\r\n // body parts\r\n private head: zBodyHead;\r\n private torso: zBodyTorso;\r\n\r\n private pelvis: zBodyPelvis;\r\n private uarmr: zBodyUArmR;\r\n private uarml: zBodyUArmL;\r\n private larmr: zBodyLArmR;\r\n private larml: zBodyLArmL;\r\n private ulegr: zBodyULegR;\r\n private ulegl: zBodyULegL;\r\n\r\n private llegr: zBodyLLegR;\r\n private llegl: zBodyLLegL;\r\n\r\n private neck: box2d.b2RevoluteJoint;\r\n private spine: box2d.b2RevoluteJoint;\r\n private sholdr: box2d.b2RevoluteJoint;\r\n private sholdl: box2d.b2RevoluteJoint;\r\n private elbr: box2d.b2RevoluteJoint;\r\n private elbl: box2d.b2RevoluteJoint;\r\n private hipr: box2d.b2RevoluteJoint;\r\n private hipl: box2d.b2RevoluteJoint;\r\n private kneer: box2d.b2RevoluteJoint;\r\n private kneel: box2d.b2RevoluteJoint;\r\n private footl: box2d.b2RevoluteJoint;\r\n private footr: box2d.b2RevoluteJoint;\r\n\r\n private truck1: box2d.b2WheelJoint;\r\n private truck2: box2d.b2WheelJoint;\r\n\r\n private board: zBoardBoard;\r\n private wheel1: zBoardWheel;\r\n private wheel2: zBoardWheel;\r\n\r\n // player sounds\r\n snap: zBoneSnap;\r\n squirt: zSquirt;\r\n splat: zSplat;\r\n\r\n constructor(zg: zGame, x: number, y: number) {\r\n this.zgame = zg;\r\n this.parts = new Array();\r\n this.joints = new Array();\r\n //this.emitters = new Array();\r\n // former are behind latter\r\n this.pelvis = new zBodyPelvis(this.zgame, 0, 0);\r\n this.parts.push(this.pelvis);\r\n\r\n this.torso = new zBodyTorso(this.zgame, 0, 0);\r\n this.parts.push(this.torso);\r\n\r\n this.head = new zBodyHead(this.zgame, 0, 0);\r\n this.parts.push(this.head);\r\n\r\n this.ulegr = new zBodyULegR(this.zgame, 0, 0);\r\n this.llegr = new zBodyLLegR(this.zgame, 0, 0);\r\n this.parts.push(this.ulegr);\r\n this.parts.push(this.llegr);\r\n\r\n this.ulegl = new zBodyULegL(this.zgame, 0, 0);\r\n this.llegl = new zBodyLLegL(this.zgame, 0, 0);\r\n this.parts.push(this.ulegl);\r\n this.parts.push(this.llegl);\r\n\r\n this.uarml = new zBodyUArmL(this.zgame, 0, 0);\r\n this.larml = new zBodyLArmL(this.zgame, 0, 0);\r\n this.parts.push(this.uarml);\r\n this.parts.push(this.larml);\r\n\r\n this.uarmr = new zBodyUArmR(this.zgame, 0, 0);\r\n this.larmr = new zBodyLArmR(this.zgame, 0, 0);\r\n this.parts.push(this.uarmr);\r\n this.parts.push(this.larmr);\r\n\r\n this.board = new zBoardBoard(this.zgame, 0, 0);\r\n this.wheel1 = new zBoardWheel(this.zgame, 0, 0);\r\n this.wheel2 = new zBoardWheel(this.zgame, 0, 0);\r\n this.parts.push(this.board);\r\n this.parts.push(this.wheel1);\r\n this.parts.push(this.wheel2);\r\n\r\n // need to arrange parts before applying joints\r\n this.head.body.x = x; // initial position\r\n this.head.body.y = y; // initial position\r\n this.torso.body.x = this.head.body.x;\r\n this.torso.body.y = this.head.body.y + this.head.radius + (this.torso.height / 2);\r\n this.pelvis.body.x = this.head.body.x;\r\n this.pelvis.body.y = this.torso.body.y + (this.torso.height / 2) + (this.pelvis.height / 2)\r\n\r\n this.uarmr.body.x = this.torso.body.x - (this.torso.width / 2) - (this.uarmr.width / 2);\r\n this.uarmr.body.y = this.torso.body.y - (this.torso.height / 2);\r\n this.larmr.body.x = this.uarmr.body.x - (this.larmr.width / 2) - (this.uarmr.width / 2);\r\n this.larmr.body.y = this.uarmr.body.y + (this.uarmr.height / 2);\r\n\r\n this.uarml.body.x = this.torso.body.x + (this.torso.width / 2) + (this.uarml.width / 2);\r\n this.uarml.body.y = this.torso.body.y - (this.torso.height / 2);\r\n this.larml.body.x = this.uarml.body.x + (this.larml.width / 2) + (this.uarml.width / 2);\r\n this.larml.body.y = this.uarml.body.y + (this.uarml.height / 2);\r\n\r\n this.ulegr.body.x = this.pelvis.body.x - (this.pelvis.width / 3);\r\n this.ulegr.body.y = this.pelvis.body.y + (this.pelvis.height / 2);\r\n this.ulegl.body.x = this.pelvis.body.x + (this.pelvis.width / 3);\r\n this.ulegl.body.y = this.pelvis.body.y + (this.pelvis.height / 2);\r\n\r\n this.llegr.body.x = this.ulegr.body.x;\r\n this.llegr.body.y = this.ulegr.body.y + (this.ulegr.height / 2) + (this.llegr.height / 2);\r\n this.llegl.body.x = this.ulegl.body.x;\r\n this.llegl.body.y = this.ulegl.body.y + (this.ulegl.height / 2) + (this.llegl.height / 2);\r\n\r\n // board\r\n this.board.body.x = this.head.body.x;\r\n this.board.body.y = this.llegl.body.y + this.llegl.height / 2;\r\n\r\n this.wheel1.body.x = this.board.body.x - (this.board.width / 3);\r\n this.wheel1.body.y = this.board.body.y + this.wheel1.radius;\r\n\r\n this.wheel2.body.x = this.board.body.x + (this.board.width / 3);\r\n this.wheel2.body.y = this.board.body.y + this.wheel2.radius;\r\n\r\n // joints\r\n this.neck = this.addJoint(this.head, this.torso,\r\n 0, this.head.radius, 0, -(this.torso.height / 2) + 8);\r\n\r\n this.spine = this.addJoint(this.torso, this.pelvis,\r\n 0, (this.torso.height / 2) - 12, 0, -(this.pelvis.height / 2));\r\n\r\n this.sholdl = this.addJoint(this.torso, this.uarml,\r\n (this.torso.width / 2) - 5, -(this.torso.height / 2) + 10, -(this.uarml.width / 2), 0);\r\n\r\n this.elbl = this.addJoint(this.uarml, this.larml,\r\n (this.uarml.width / 2) - 5, 0, -(this.larml.width / 2) + 5, -5);\r\n\r\n this.sholdr = this.addJoint(this.torso, this.uarmr,\r\n -(this.torso.width / 2) + 5, -(this.torso.height / 2) + 6, (this.uarmr.width / 2), 0);\r\n\r\n this.elbr = this.addJoint(this.uarmr, this.larmr,\r\n -(this.uarmr.width / 2) + 5, 0, (this.larml.width / 2), -5);\r\n\r\n this.hipl = this.addJoint(this.pelvis, this.ulegl,\r\n this.pelvis.width / 3, 0, 0, -(this.ulegl.height / 2));\r\n\r\n this.hipr = this.addJoint(this.pelvis, this.ulegr,\r\n -(this.pelvis.width / 3), 0, 0, -(this.ulegr.height / 2));\r\n\r\n this.kneel = this.addJoint(this.ulegl, this.llegl,\r\n 0, (this.ulegl.height / 2) - 5, 0, -20);\r\n\r\n this.kneer = this.addJoint(this.ulegr, this.llegr,\r\n 0, (this.ulegr.height / 2) - 5, 0, -20);\r\n\r\n this.footl = this.addJoint(this.llegl, this.board,\r\n 0, (this.ulegl.height / 2) + this.board.height, (this.board.width * .1), 10);\r\n\r\n this.footr = this.addJoint(this.llegr, this.board,\r\n 0, (this.ulegr.height / 2) + this.board.height, -(this.board.width * .1), 10);\r\n\r\n this.defaultLimits();\r\n\r\n // add blood\r\n this.addBlood(this.head, this.neck, 0, -this.head.radius, 180);\r\n this.addBlood(this.torso, this.neck, 0, -(this.torso.height / 2), 0);\r\n this.addBlood(this.torso, this.sholdl, 0, -this.torso.height / 2, 50);\r\n this.addBlood(this.torso, this.sholdr, 0, -this.torso.height / 2, -50);\r\n this.addBlood(this.torso, this.spine, 0, -(this.torso.height / 2) - 10, 180);\r\n this.addBlood(this.pelvis, this.spine, 0, -this.pelvis.height / 2, 0);\r\n this.addBlood(this.pelvis, this.hipl, 0, -this.pelvis.height / 2, -160);\r\n this.addBlood(this.pelvis, this.hipr, 0, -this.pelvis.height / 2, 160);\r\n this.addBlood(this.ulegr, this.kneer, 0, -this.ulegr.height / 2, -180);\r\n this.addBlood(this.ulegl, this.kneel, 0, -this.ulegl.height / 2, -180);\r\n\r\n // wheels\r\n // make sure these are the LAST TWO joints added.\r\n const truckHeight = 12// -8;\r\n this.truck1 = this.addWheel(this.board, this.wheel1,\r\n -(this.board.width * .3), truckHeight, 0, 0);\r\n this.truck2 = this.addWheel(this.board, this.wheel2,\r\n (this.board.width * .3), truckHeight, 0, 0);\r\n\r\n this.zgame.camera.follow(this.board);\r\n\r\n // sounds\r\n\r\n this.snap = new zBoneSnap(this.zgame);\r\n this.squirt = new zSquirt(this.zgame);\r\n this.splat = new zSplat(this.zgame);\r\n }\r\n\r\n\r\n private addJoint(sp1: zPlayerPart, sp2: zPlayerPart,\r\n sp1x: number, sp1y: number, sp2x: number, sp2y: number): box2d.b2RevoluteJoint {\r\n let rj: box2d.b2RevoluteJoint = this.zgame.physics.box2d.revoluteJoint(sp1, sp2,\r\n sp1x, sp1y, sp2x, sp2y, 0, 0, false, 0, 0, true);\r\n this.joints.push(rj);\r\n return rj;\r\n }\r\n\r\n private addWheel(sp1: Phaser.Sprite, sp2: Phaser.Sprite,\r\n // sp1x: number, sp1y: number, sp2x: number, sp2y: number): box2d.b2RevoluteJoint {\r\n // let rj: box2d.b2RevoluteJoint = this.zgame.physics.box2d.revoluteJoint(sp1, sp2,\r\n // sp1x, sp1y, sp2x, sp2y, 0, 0, false, 0, 0, false);\r\n\r\n // this.joints.push(rj);\r\n // return rj;\r\n sp1x: number, sp1y: number, sp2x: number, sp2y: number): box2d.b2WheelJoint {\r\n const frequency = 48;\r\n const damping = 0; //0\r\n let wj: box2d.b2WheelJoint = this.zgame.physics.box2d.wheelJoint(sp1, sp2,\r\n sp1x, sp1y, sp2x, sp2y, 0, 1, frequency, damping);\r\n this.joints.push(wj);\r\n return wj;\r\n }\r\n\r\n private addBlood(spr: zPlayerPart, jnt: box2d.b2RevoluteJoint, x: number, y: number, a: number) {\r\n let be = this.zgame.add.emitter(0, 0, 30); // max particles\r\n be.makeParticles('drop');\r\n be.enableBody = true;\r\n be.physicsBodyType = Phaser.Physics.BOX2D;\r\n be.setYSpeed(-300, 10);\r\n be.setXSpeed(-50, 50);\r\n be.setScale(1.5, .25, 1.5, .25, 1000);\r\n be.emitX = x;\r\n be.emitY = y;\r\n be.angle = a;\r\n spr.addChild(be);\r\n\r\n\r\n if (!jnt.m_userData) {\r\n jnt.m_userData = [];\r\n }\r\n jnt.m_userData.push(be);\r\n }\r\n\r\n getX() {\r\n return this.torso.body.x\r\n }\r\n getY() {\r\n return this.torso.body.y\r\n }\r\n getXV() {\r\n return this.torso.body.velocity.x;\r\n }\r\n movePlayer(x: number, y: number) {\r\n this.head.body.x = x;\r\n this.head.body.y = y;\r\n }\r\n\r\n defaultLimits() {\r\n this.spine.SetLimits(-Math.PI / 32, Math.PI / 32);\r\n this.neck.SetLimits(-Math.PI / 8, Math.PI / 8);\r\n this.sholdr.SetLimits(-Math.PI / 2, Math.PI / 8);\r\n this.sholdl.SetLimits(-Math.PI / 8, Math.PI / 2);\r\n this.elbr.SetLimits(-Math.PI / 8, Math.PI / 8);\r\n this.elbl.SetLimits(-Math.PI / 8, Math.PI / 8);\r\n this.hipr.SetLimits(-Math.PI / 16, Math.PI / 16);\r\n this.hipl.SetLimits(-Math.PI / 16, Math.PI / 16);\r\n this.kneer.SetLimits(-Math.PI / 16, Math.PI / 16);\r\n this.kneel.SetLimits(-Math.PI / 16, Math.PI / 16);\r\n this.footr.SetLimits(-Math.PI / 32, Math.PI / 32);\r\n this.footl.SetLimits(-Math.PI / 32, Math.PI / 32);\r\n }\r\n\r\n breakTest() {\r\n if (this.isBroken) return;\r\n // wheel trucks are the last two joints added...\r\n // in this case we don't want to break those ever...\r\n for (let i = 0, l = this.joints.length - 2; i < l; i++) {\r\n let j: box2d.b2Joint = this.joints[i];\r\n let v = new box2d.b2Vec2();\r\n let f = j.GetReactionForce(1, v);\r\n let fsq = f.LengthSquared();\r\n if (fsq > breakForce) { //100\r\n console.log('break');\r\n\r\n this.isBroken = true;\r\n\r\n // emit blood if joint has user data\r\n if (j.m_userData && j.m_userData.length) {\r\n for (let i = 0, l = j.m_userData.length; i < l; i++) {\r\n j.m_userData[i].start(false, 1000, 0);\r\n this.initBleeding = true;\r\n }\r\n }\r\n this.snap.playSound();\r\n this.zgame.physics.box2d.world.DestroyJoint(j);\r\n }\r\n }\r\n }\r\n\r\n duck(toDuck: boolean) {\r\n if (toDuck) {\r\n if (this.isDucked) return;\r\n this.isDucked = true;\r\n this.spine.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.neck.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.sholdr.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.sholdl.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.elbr.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.elbl.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.hipr.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.hipl.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.kneer.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.kneel.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.footr.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n this.footl.SetLimits(-Math.PI / 2, Math.PI / 2);\r\n } else {\r\n if (!this.isDucked) return;\r\n this.isDucked = false;\r\n this.defaultLimits();\r\n }\r\n }\r\n\r\n die() { // touched deathCat\r\n\r\n if (this.isDead) return;\r\n console.log('die');\r\n this.initDeath = false;\r\n this.isDead = true;\r\n for (let j = 0, l = this.joints.length; j < l; j++) {\r\n // emit blood if joint has user data\r\n let jnt = this.joints[j];\r\n if (jnt.m_userData && jnt.m_userData.length) {\r\n for (let i = 0, l = jnt.m_userData.length; i < l; i++) {\r\n jnt.m_userData[i].start(false, 1000, 0);\r\n }\r\n }\r\n this.zgame.physics.box2d.world.DestroyJoint(jnt);\r\n };\r\n this.splat.playSound();\r\n this.squirt.playSound();\r\n }\r\n\r\n getBoardBody() {\r\n return this.board.body;\r\n }\r\n\r\n applyImpulse(impulse: box2d.b2Vec2, point: box2d.b2Vec2) {\r\n for (let p = 0, l = this.parts.length; p < l; p++) {\r\n this.parts[p].body.data.ApplyLinearImpulse(impulse, point);\r\n };\r\n }\r\n}\r\n\r\n\r\nclass zPlayerPart extends Phaser.Sprite {\r\n zgame: zGame;\r\n initBreakTest: boolean;\r\n\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.zgame = game;\r\n game.physics.box2d.enable(this);\r\n this.body.setCategoryContactCallback(this.zgame.deathCat, (body1, body2, fixture1, fixture2, begin) => {\r\n if (begin) {\r\n this.zgame.currPlayer.initDeath = true;\r\n }\r\n\r\n });\r\n this.game.add.existing(this);\r\n }\r\n update() {\r\n\r\n if (this.initBreakTest) {\r\n this.initBreakTest = false;\r\n this.zgame.currPlayer.breakTest()\r\n }\r\n if (this.zgame.currPlayer.initDeath) {\r\n this.zgame.currPlayer.die();\r\n }\r\n if (this.zgame.currPlayer.initBleeding) {\r\n this.zgame.currPlayer.initBleeding = false;\r\n this.zgame.currPlayer.isBleeding = true;\r\n this.zgame.currPlayer.squirt.playSound();\r\n }\r\n\r\n if ((this.zgame.currPlayer.isDead || this.zgame.currPlayer.isBroken) && !zGame.gameOver) {\r\n zGame.gameOver = true;\r\n this.zgame.camera.follow(null);\r\n\r\n let txt = this.zgame.add.text(0, 0, \"You're UnDead. Try Again\",\r\n {\r\n font: \"48px Arial\", fill: \"yellow\", align: \"center\"\r\n });\r\n txt.anchor.setTo(0.5)\r\n txt.fixedToCamera = true;\r\n txt.cameraOffset.setTo(this.zgame.screenWidth / 2, this.zgame.screenHeight / 2);\r\n }\r\n if (this.zgame.currPlayer.getBoardBody().x < 0 && !zGame.gameOver) {\r\n zGame.gameOver = true;\r\n this.zgame.camera.follow(null);\r\n localStorage.removeItem('savPos'); // clear storage\r\n let txt = this.zgame.add.text(0, 0, \"You Win!. Try Again\",\r\n {\r\n font: \"48px Arial\", fill: \"lightgreen\", align: \"center\"\r\n });\r\n txt.anchor.setTo(0.5)\r\n txt.fixedToCamera = true;\r\n txt.cameraOffset.setTo(this.zgame.screenWidth / 2, this.zgame.screenHeight / 2);\r\n }\r\n\r\n if (!this.inCamera) {\r\n if (this.zgame.currPlayer.isBleeding)\r\n this.zgame.currPlayer.squirt.stopSound();\r\n }\r\n }\r\n\r\n}\r\n\r\nclass zBoardPart extends zPlayerPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.body.mass = board_mass;\r\n }\r\n setCollides() {\r\n this.body.setCollisionCategory(this.zgame.boCG);\r\n this.body.setCollisionMask(this.zgame.grCG | this.zgame.zoCG | this.zgame.deathCat | this.zgame.bounceCat);\r\n }\r\n}\r\nconst makeThud = 5;\r\nclass zBodyPart extends zPlayerPart {\r\n thud: zBodyThud;\r\n surfaceKey: string;\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.thud = new zBodyThud(game);\r\n this.body.mass = player_mass;\r\n this.body.setCategoryPostsolveCallback(this.zgame.grCG, this.callback);\r\n }\r\n // only body gets break test, and not on bounceCat\r\n callback = (body1, body2, fixture1, fixture2, contact, impulseInfo) => {\r\n this.surfaceKey = body2.sprite.key;\r\n if (impulseInfo.count > 0) {\r\n this.initBreakTest = true;\r\n if (impulseInfo.normalImpulses[0] > makeThud) {\r\n this.thud.playSound();\r\n }\r\n // if (this.key == 'head')\r\n // this.thud.playSound();\r\n }\r\n }\r\n setCollides() {\r\n this.body.setCollisionCategory(this.zgame.zoCG);\r\n this.body.setCollisionMask(this.zgame.grCG | this.zgame.boCG | this.zgame.deathCat | this.zgame.bounceCat);\r\n }\r\n}\r\n\r\n\r\nclass zBodyHead extends zBodyPart {\r\n radius: number;\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('head');\r\n this.radius = 15;\r\n this.body.setCircle(10); //12\r\n this.setCollides();\r\n this.scale.setTo(.7, .7);\r\n }\r\n}\r\n\r\nclass zBodyTorso extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('torso');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(24, 30); //40\r\n this.setCollides();\r\n this.scale.setTo(.8, .8);\r\n }\r\n}\r\nclass zBodyPelvis extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('pelvis');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(26, 12);\r\n this.scale.setTo(.8, .8)\r\n this.setCollides();\r\n }\r\n}\r\n\r\nclass zBodyUArmL extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('uarml');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(25, 7); //25\r\n this.setCollides();\r\n this.scale.setTo(.8, .8)\r\n }\r\n}\r\nclass zBodyLArmL extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('larml');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(35, 7, -3, -7);\r\n this.setCollides();\r\n this.scale.setTo(.8, .8)\r\n }\r\n}\r\nclass zBodyUArmR extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('uarmr');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(25, 7); //30\r\n this.setCollides();\r\n this.scale.setTo(.8, .8)\r\n }\r\n}\r\nclass zBodyLArmR extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('larmr');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(35, 7, 5, -7);\r\n this.setCollides();\r\n this.scale.setTo(.8, .8)\r\n }\r\n}\r\nclass zBodyULegR extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('ulegr');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(10, 25);\r\n this.setCollides();\r\n this.scale.setTo(.8, .6)\r\n }\r\n}\r\nclass zBodyLLegR extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('llegr');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(10, 30);\r\n this.setCollides();\r\n this.scale.setTo(.8, .6)\r\n }\r\n}\r\nclass zBodyULegL extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('ulegl');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(10, 25);\r\n this.setCollides();\r\n this.scale.setTo(.8, .6)\r\n }\r\n}\r\nclass zBodyLLegL extends zBodyPart {\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('llegl');\r\n game.physics.box2d.enable(this);\r\n this.body.setRectangle(10, 30);\r\n this.setCollides();\r\n this.scale.setTo(.8, .6)\r\n }\r\n}\r\n\r\nconst defPower = 5000;\r\nconst maxPower = 50000;\r\nconst incrPower = 200;\r\nconst sensorBuff = 4;\r\nconst makeSoundImpulse = 3;\r\nconst makeWheelSpin = 5;\r\nclass zBoardWheel extends zBoardPart {\r\n radius: number;\r\n power: number = defPower;\r\n scratchCount: number;\r\n clack: zWheelClack;\r\n scratch: zWheelScratch;\r\n roll: zWheelRoll;\r\n bumps: zWheelBumps;\r\n surfaceKey: string;\r\n surfaceSav: string;\r\n\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('wheel');\r\n this.radius = 8;\r\n this.body.setCircle(this.radius);\r\n this.body.angularDamping = .5;\r\n this.scale.setTo(.8, .8)\r\n this.setCollides();\r\n this.clack = new zWheelClack(game);\r\n this.scratch = new zWheelScratch(game);\r\n this.roll = new zWheelRoll(game);\r\n this.bumps = new zWheelBumps(game);\r\n\r\n // when removing these sensors.. something horrible happens to the wheels! \r\n let gs = this.body.addCircle(this.radius + sensorBuff, 0, 0)\r\n gs.SetSensor(true);\r\n this.body.setCategoryPostsolveCallback((game).grCG,\r\n (body1, body2, fixture1, fixture2, contact, impulseInfo) => {\r\n this.surfaceKey = body2.sprite.key;\r\n if (impulseInfo.count > 0) {\r\n if (impulseInfo.normalImpulses[0] > makeSoundImpulse) {\r\n if (!(this.surfaceKey == 'slope45' || this.surfaceKey == 'bumps01')) {\r\n this.clack.playSound();\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n update() {\r\n\r\n if (this.zgame.cursors.left.isDown && this.zgame.currPlayer.onGroundCount > 0) {\r\n if (this.power < maxPower) {\r\n this.power += incrPower;\r\n }\r\n this.body.rotateLeft(this.power);\r\n if (!this.scratchCount) {\r\n this.scratchCount++;\r\n this.scratch.playSound();\r\n }\r\n }\r\n\r\n if (this.zgame.cursors.right.isDown && this.zgame.currPlayer.onGroundCount > 0) {\r\n if (this.power < maxPower) {\r\n this.power += incrPower;\r\n }\r\n this.body.rotateRight(this.power);\r\n if (!this.scratchCount) {\r\n this.scratchCount++;\r\n this.scratch.playSound();\r\n }\r\n }\r\n\r\n if ((!this.zgame.cursors.left.isDown && !this.zgame.cursors.right.isDown) ||\r\n this.zgame.currPlayer.onGroundCount < 1) {\r\n this.power = defPower;\r\n this.scratchCount = 0;\r\n }\r\n\r\n if (Math.abs(this.body.angularVelocity) > makeWheelSpin && this.zgame.currPlayer.onGroundCount > 0) {\r\n if (this.surfaceKey != this.surfaceSav) {\r\n this.roll.stopSound();\r\n this.bumps.stopSound();\r\n }\r\n\r\n if (this.surfaceKey == 'brick01')\r\n this.roll.playSound();\r\n if (this.surfaceKey == 'bumps01')\r\n this.bumps.playSound();\r\n\r\n\r\n this.surfaceSav = this.surfaceKey;\r\n\r\n } else {\r\n this.roll.stopSound();\r\n this.bumps.stopSound();\r\n }\r\n\r\n }\r\n}\r\n\r\nconst rotPower = 300;\r\nclass zBoardBoard extends zBoardPart {\r\n width: number;\r\n height: number;\r\n ding: zDing;\r\n constructor(game: Phaser.Game, x: number, y: number) {\r\n super(game, x, y);\r\n this.loadTexture('skateboard');\r\n this.body.setRectangle(130, 14, 0, -3); //150\r\n this.setCollides();\r\n this.ding = new zDing(game);\r\n let gs = this.body.addRectangle(10, 50, 0, 25); \r\n gs.SetSensor(true);\r\n this.body.setFixtureContactCallback(gs, (body1, body2, fixture1, fixture2, begin) => {\r\n if (begin) {\r\n if (fixture2.m_filter.categoryBits == this.zgame.savCat) {\r\n console.log('save point');\r\n this.ding.playSound();\r\n localStorage.setItem('savPos', JSON.stringify({\r\n x: body2.x + 100,\r\n y: body2.y - 160\r\n }));\r\n\r\n } else if (fixture2.m_filter.categoryBits == this.zgame.grCG) {\r\n this.zgame.currPlayer.onGroundCount++;\r\n //console.log('ground count', this.zgame.currPlayer.onGroundCount);\r\n\r\n }\r\n } else {\r\n if (fixture2.m_filter.categoryBits == this.zgame.grCG) {\r\n this.zgame.currPlayer.onGroundCount--;\r\n //console.log('ground count', this.zgame.currPlayer.onGroundCount);\r\n\r\n }\r\n }\r\n\r\n })\r\n\r\n this.scale.setTo(.7, .6);\r\n }\r\n\r\n update() {\r\n if (this.zgame.cursors.left.isDown) {\r\n if (this.zgame.currPlayer.onGroundCount < 1) {\r\n this.body.rotateLeft(rotPower);\r\n }\r\n }\r\n\r\n if (this.zgame.cursors.right.isDown) {\r\n if (this.zgame.currPlayer.onGroundCount < 1) {\r\n this.body.rotateRight(rotPower);\r\n }\r\n }\r\n\r\n if (this.zgame.cursors.up.isDown && this.zgame.currPlayer.onGroundCount >= 1) {\r\n this.body.thrust(8500);\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/game/player.ts","function webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 345;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src async\n// module id = 345\n// module chunks = 0","import './polyfills.ts';\n\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { enableProdMode } from '@angular/core';\nimport { environment } from './environments/environment';\nimport { AppModule } from './app/app.module';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts","import { Component, OnInit } from '@angular/core';\nimport { zGame } from './game/game'\n\n\n@Component({\n selector: 'app-root',\n template: `
`, \n})\nexport class AppComponent implements OnInit {\n game:any;\n ngOnInit(){\n this.game = new zGame();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HttpModule } from '@angular/http';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n FormsModule,\n HttpModule\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","\r\n/// \r\nimport { zGame } from './game'\r\n\r\nexport class Boot extends Phaser.State {\r\n\r\n preload() {\r\n\r\n }\r\n\r\n create() {\r\n\r\n // Disable multitouch\r\n this.input.maxPointers = 2;\r\n\r\n this.game.scale.scaleMode = Phaser.ScaleManager.RESIZE;\r\n this.scale.pageAlignHorizontally = true;\r\n this.scale.pageAlignVertically = true;\r\n this.scale.fullScreenScaleMode = Phaser.ScaleManager.RESIZE;\r\n // must be init by user\r\n //this.game.scale.startFullScreen();\r\n // Pause if browser tab loses focus\r\n this.stage.disableVisibilityChange = false;\r\n\r\n // if (this.game.device.desktop) {\r\n // // Desktop settings\r\n // } else {\r\n // // Mobile settings\r\n // }\r\n\r\n\r\n (this.game).cursors = this.input.keyboard.createCursorKeys();\r\n\r\n\r\n this.game.state.start(\"Preloader\");\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/game/boot.ts","/// \r\n/// \r\nimport {\r\n zLevel, zWall, zPlatform, zSavePoint, zLift, zSawDown,\r\n zSlope45Right, zBumps, zMover, zSpikes, zTrapDoor,\r\n zMattress, zJumpRight, zJumpLeft, zSaw, zFly, zTube, zSlope45Left,\r\n zParalax\r\n} from './level'\r\nimport { zPlayer } from './player'\r\nimport { zMusic01 } from './sound'\r\nimport { zGame } from './game'\r\n\r\nexport class zLevel01 extends zLevel {\r\n\r\n create() {\r\n super.create();\r\n this.zgame.currLevel =\"Level01\"\r\n localStorage.setItem('currLevel', this.zgame.currLevel);\r\n\r\n this.game.stage.backgroundColor = '#000000';\r\n new zParalax(this.zgame,'darkcity1');\r\n\r\n // left\r\n new zWall(this.zgame, 0, (this.zgame.worldHeight - 500) / 2,\r\n 20, this.zgame.worldHeight - 500);\r\n // right\r\n new zWall(this.zgame, this.zgame.worldWidth, this.zgame.worldHeight / 2, 20, this.zgame.worldHeight);\r\n // top\r\n new zWall(this.zgame, this.zgame.worldWidth / 2, 0, this.zgame.worldWidth, 20);\r\n\r\n for (let i = 0; i < 20; i++) {\r\n new zSpikes(this.zgame, 0 + (500 * i), 6825);\r\n }\r\n //launch \r\n new zPlatform(this.zgame, 150, 300, 300, 35);\r\n\r\n //ramps\r\n new zPlatform(this.zgame, 600, 600, 500, 35, 0, -45);\r\n new zPlatform(this.zgame, 200, 1200, 500, 35, 0, 45);\r\n new zPlatform(this.zgame, 600, 1800, 500, 35, 0, -45);\r\n new zPlatform(this.zgame, 200, 2400, 500, 35, 0, 45);\r\n new zPlatform(this.zgame, 600, 3000, 500, 35, 0, -45);\r\n new zPlatform(this.zgame, 200, 3600, 500, 35, 0, 45);\r\n\r\n // //level with lift\r\n new zPlatform(this.zgame, 2000, 4200, 4000, 35);\r\n\r\n // savepoint\r\n new zSavePoint(this.zgame, 1000, 4200);\r\n\r\n // lift\r\n new zLift(this.zgame, 3850, 4200);\r\n\r\n // get off the lift\r\n new zPlatform(this.zgame, 7000, 500, 5600, 35);\r\n\r\n new zSavePoint(this.zgame, 5000, 500);\r\n\r\n new zSawDown(this.zgame, 7600, 80);\r\n\r\n\r\n new zPlatform(this.zgame, 7500, 2000, 5000, 35);\r\n\r\n\r\n new zSlope45Right(this.zgame, this.zgame.worldWidth, 2000)\r\n\r\n new zBumps(this.zgame, 6300, 2000);\r\n\r\n new zSavePoint(this.zgame, 5500, 2000);\r\n\r\n new zMover(this.zgame, 6000, 2300, 4800, this.zgame.worldWidth - 500, false);\r\n\r\n // spikes\r\n for (let i = 0; i < 10; i++) {\r\n new zSpikes(this.zgame, 4640 + (500 * i), 2500);\r\n }\r\n\r\n new zSavePoint(this.zgame, 9670, 2310);\r\n\r\n new zTrapDoor(this.game, 9820, 2300)\r\n\r\n new zMattress(this.zgame, 9750, 3800, -30);\r\n\r\n new zPlatform(this.zgame, 4650, 3800, 35, 2500);\r\n\r\n //saw\r\n new zPlatform(this.zgame, 7000, 4000, 4000, 35);\r\n\r\n new zSaw(this.zgame, 7600, 3585);\r\n //new zSawDown(this.zgame, 7600, 3600);\r\n\r\n new zSavePoint(this.zgame, 5500, 4000);\r\n\r\n // slant w/ jump\r\n new zPlatform(this.game, 6000, 5300, 2550, 35, -1, 25);\r\n\r\n new zJumpRight(this.zgame, 6920, 5715, 25);\r\n\r\n // spikes\r\n for (let i = 0; i < 3; i++) {\r\n new zSpikes(this.zgame, 7250 + (500 * i), 6000);\r\n }\r\n\r\n //new zSaw(this.zgame, this.zgame.worldWidth - 200, 5200, true);\r\n new zSpikes(this.zgame, this.zgame.worldWidth - 500, 5200);\r\n\r\n // landing\r\n new zPlatform(this.zgame, this.zgame.worldWidth - 150, 6500, 300, 35);\r\n new zSavePoint(this.zgame, this.zgame.worldWidth - 200, 6500);\r\n\r\n new zMover(this.zgame, 8000, 6500, 4100, this.zgame.worldWidth - 475, true);\r\n\r\n //new zSaw(this.zgame, 5500, 6100);\r\n new zSawDown(this.zgame, 5500, 6090);\r\n\r\n new zFly(this.zgame, 3775, 6500, 300, 35);\r\n\r\n new zSavePoint(this.zgame, 3700, 6500);\r\n\r\n // fly channel\r\n new zPlatform(this.zgame, 3550, 5700, 35, 2400); //left\r\n new zPlatform(this.zgame, 4000, 5250, 35, 2100); // right\r\n\r\n // top right of tube\r\n new zPlatform(this.zgame, 3415, 4500, 300, 35);\r\n new zSavePoint(this.zgame, 3300, 4500);\r\n\r\n new zTube(this.zgame, 1780, 6500);\r\n\r\n new zMattress(this.zgame, 50, this.zgame.worldHeight - 200, -30);\r\n\r\n // player is last\r\n let savPos;\r\n if (localStorage.getItem('savPos')) {\r\n savPos = JSON.parse(localStorage.getItem('savPos'));\r\n } else {\r\n savPos = { x: 100, y: 100 };\r\n }\r\n\r\n this.zplayer = new zPlayer(this.zgame, savPos.x, savPos.y);\r\n this.zgame.currPlayer = this.zplayer;\r\n\r\n new zMusic01(this.zgame).playSound();\r\n\r\n }\r\n\r\n update() {\r\n super.update();\r\n if (this.zgame.currPlayer.getBoardBody().x < 0 && !zGame.gameOver) {\r\n zGame.gameOver = true;\r\n this.zgame.camera.follow(null);\r\n localStorage.removeItem('savPos'); // clear storage\r\n let txt = this.zgame.add.text(0, 0, \"Level 1 Completed!\\nGet ready for Level 2.\",\r\n {\r\n font: \"48px Arial\", fill: \"lightgreen\", align: \"center\"\r\n });\r\n txt.anchor.setTo(0.5)\r\n txt.fixedToCamera = true;\r\n txt.cameraOffset.setTo(this.zgame.screenWidth / 2, this.zgame.screenHeight / 2);\r\n this.game.time.events.add(Phaser.Timer.SECOND * 2, () => { \r\n this.game.state.start(\"Level02\");\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/game/level01.ts","/// \r\n/// \r\nimport {\r\n zLevel, zRubeWall, zRubeBrick, zRubeJumpSmallRight, zRubeJumpSmallLeft,\r\n zRubeJumpBigRight, zRubeJumpBigLeft, zRubeMoverVirt, zRubeRollingSaw,\r\n zRubeJumpSuperLeft, zRubeJumpSuperRight, zSpikes, zRubSaw, zSavePoint, zRubSwingSaw,\r\n zRubeFloorPoppers, zParalax\r\n} from './level'\r\nimport { zPlayer } from './player'\r\nimport { zMusic01 } from './sound'\r\nimport { zGame } from './game'\r\n\r\nexport class zLevel02 extends zLevel {\r\n firstReached: boolean = false;\r\n secondReached: boolean = false;\r\n thirdReached: boolean = false;\r\n initRollSaw: boolean = false;\r\n initSwingSaws: boolean = false;\r\n rollSaw: zRubeRollingSaw;\r\n exitVirt: zRubeMoverVirt;\r\n swingSaws: zRubSwingSaw[] = new Array();\r\n scene: any;\r\n\r\n create() {\r\n super.create(); \r\n\r\n this.firstReached = false;\r\n this.secondReached = false;\r\n this.thirdReached = false;\r\n this.initRollSaw = false;\r\n this.initSwingSaws = false;\r\n\r\n this.zgame.currLevel = 'Level02';\r\n localStorage.setItem('currLevel', this.zgame.currLevel);\r\n\r\n this.game.stage.backgroundColor = '#000000';\r\n\r\n new zParalax(this.zgame,'darkcity2');\r\n\r\n\r\n\r\n this.scene = new Phaser.Physics.Box2D.RubeScene('floor', this.game);\r\n\r\n this.scene.load(0, 0, () => {\r\n\r\n // need to reset world values after scene load...\r\n\r\n this.setWorldValues();\r\n\r\n new zRubeWall(this.game, this.scene.getBody('top_wall'));\r\n new zRubeWall(this.game, this.scene.getBody('left_wall'));\r\n new zRubeBrick(this.game, this.scene.getBody('bot_wall'));\r\n new zRubeWall(this.game, this.scene.getBody('right_wall'));\r\n new zRubeWall(this.game, this.scene.getBody('right_wall'));\r\n\r\n // ground floor - jumps\r\n\r\n let saws: Phaser.Physics.Box2D.Body[] = this.scene.getBodies('jump_saw');\r\n saws.forEach((saw) => {\r\n new zRubSaw(this.zgame, saw);\r\n })\r\n\r\n\r\n new zRubeJumpSmallRight(this.game, this.scene.getBody('small_jump_right'));\r\n new zRubeJumpSmallLeft(this.game, this.scene.getBody('small_jump_left'));\r\n\r\n new zRubeJumpSuperRight(this.game, this.scene.getBody('big_jump_right'));\r\n new zRubeJumpSuperLeft(this.game, this.scene.getBody('big_jump_left'));\r\n\r\n new zRubeMoverVirt(this.game, this.scene.getBody('lift01'), 5440);\r\n\r\n \r\n // first floor - swinging saws\r\n let fst_flr = new zRubeBrick(this.game, this.scene.getBody('first_floor'));\r\n \r\n new zRubeMoverVirt(this.game, this.scene.getBody('lift02'), 4280);\r\n\r\n new zSavePoint(this.zgame, 750, 5443);\r\n\r\n let swsaws = this.scene.getBodies('swing_saw');\r\n for (let i = 0, l = swsaws.length; i < l; i++) {\r\n let saw = swsaws[i];\r\n saw.data.SetActive(false);\r\n saw.data.SetAwake(false);\r\n }\r\n\r\n fst_flr.body.setCategoryContactCallback(this.zgame.boCG,\r\n (body1, body2, fixture1, fixture2, begin) => {\r\n if (begin && !this.firstReached) {\r\n this.firstReached = true;\r\n }\r\n }, null)\r\n\r\n // second floor - rolling saw and poppers\r\n\r\n let rolling_saw: Phaser.Physics.Box2D.Body = this.scene.getBody('rolling_saw');\r\n rolling_saw.data.SetActive(false);\r\n\r\n let scnd_flr = new zRubeFloorPoppers(this.game, this.scene.getBody('second_floor'));\r\n scnd_flr.body.setCategoryContactCallback(this.zgame.boCG,\r\n (body1, body2, fixture1, fixture2, begin) => {\r\n if (begin && !this.secondReached) {\r\n this.secondReached = true;\r\n }\r\n }, this)\r\n\r\n new zRubeBrick(this.game, this.scene.getBody('popper_bot'));\r\n new zSavePoint(this.zgame, 9300, 4300);\r\n\r\n // third floor - jump on virt\r\n\r\n let thrd_flr = new zRubeBrick(this.game, this.scene.getBody('third_floor'));\r\n\r\n new zSavePoint(this.zgame, 1000, 2500);\r\n\r\n // poppers\r\n new zRubeMoverVirt(this.game, this.scene.getBody('popper01'), 4290);\r\n new zRubeMoverVirt(this.game, this.scene.getBody('popper02'), 4290);\r\n new zRubeMoverVirt(this.game, this.scene.getBody('popper03'), 4290);\r\n\r\n new zRubeMoverVirt(this.game, this.scene.getBody('popper_lift'), 2500);\r\n\r\n for (let i = 0; i < 6; i++) {\r\n new zSpikes(this.zgame, 3500 + (500 * i), 2370);\r\n }\r\n\r\n new zRubeJumpSuperLeft(this.game, this.scene.getBody('super_jump_left'));\r\n new zRubeJumpSuperRight(this.game, this.scene.getBody('super_jump_right'));\r\n\r\n this.exitVirt = new zRubeMoverVirt(this.game, this.scene.getBody('lift_exit'), -500);\r\n\r\n\r\n\r\n // player is last\r\n let savPos;\r\n if (localStorage.getItem('savPos')) {\r\n savPos = JSON.parse(localStorage.getItem('savPos'));\r\n } else {\r\n savPos = { x: 9700, y: 6700 };\r\n }\r\n this.zplayer = new zPlayer(this.zgame, savPos.x, savPos.y);\r\n //this.zplayer = new zPlayer(this.zgame,9300, 4000);\r\n this.zgame.currPlayer = this.zplayer;\r\n\r\n new zMusic01(this.zgame).playSound();\r\n\r\n });\r\n\r\n //new zMusic01(this.zgame).playSound();\r\n\r\n }\r\n update() {\r\n super.update();\r\n if (this.firstReached && !this.initSwingSaws) {\r\n this.initSwingSaws = true;\r\n let swsaws = this.scene.getBodies('swing_saw');\r\n let swjnts: box2d.b2DistanceJoint[] = this.scene.getJoints('saw_joints');\r\n for (let i = 0, l = swsaws.length; i < l; i++) {\r\n let saw = swsaws[i];\r\n let jnt = swjnts[i];\r\n this.swingSaws.push(new zRubSwingSaw(this.zgame, saw, jnt));\r\n saw.data.SetActive(true);\r\n saw.data.SetAwake(true);\r\n }\r\n }\r\n\r\n if (this.secondReached && !this.initRollSaw) {\r\n this.initRollSaw = true;\r\n this.rollSaw = new zRubeRollingSaw(this.game, this.scene.getBody('rolling_saw'));\r\n }\r\n\r\n if (this.rollSaw && this.rollSaw.x - this.rollSaw.width > this.zgame.worldWidth) {\r\n this.rollSaw.destroy();\r\n this.rollSaw = new zRubeRollingSaw(this.game, this.scene.getBody('rolling_saw'));\r\n }\r\n\r\n if (this.zgame.currPlayer.getBoardBody().y < -100 && !zGame.gameOver) {\r\n zGame.gameOver = true;\r\n this.zgame.camera.follow(null);\r\n localStorage.removeItem('savPos'); // clear storage\r\n let txt = this.zgame.add.text(0, 0, \"Level 2 Completed!\\nThat's all the levels for now :-(\",\r\n {\r\n font: \"48px Arial\", fill: \"lightgreen\", align: \"center\"\r\n });\r\n txt.anchor.setTo(0.5)\r\n txt.fixedToCamera = true;\r\n txt.cameraOffset.setTo(this.zgame.screenWidth / 2, this.zgame.screenHeight / 2);\r\n\r\n this.exitVirt.goUp = false;\r\n this.exitVirt.body.setZeroVelocity();\r\n\r\n this.game.time.events.add(Phaser.Timer.SECOND * 2, () => {\r\n this.zgame.currLevel = 'Level01';\r\n localStorage.setItem('currLevel', this.zgame.currLevel);\r\n this.game.state.start('Main');\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/game/level02.ts","/// \r\n\r\nimport { zGame } from './game'\r\n\r\n\r\nexport class Main extends Phaser.State {\r\n zgame: zGame;\r\n create() {\r\n let tgrp = this.game.add.group();\r\n\r\n this.game.stage.backgroundColor = '#1e003f';\r\n\r\n this.zgame = this.game;\r\n\r\n let img = this.zgame.add.image(0,0, 'zomboard');\r\n img.anchor.set(.5);\r\n tgrp.add(img);\r\n\r\n let title = this.game.add.text(400, -200, 'Zombie\\nSkateboard\\nPark',\r\n { font: \"70px Arial Black\", align: \"center\", fontWeight: \"bold\" });\r\n title.anchor.set(0.5);\r\n\r\n var grd = title.context.createLinearGradient(0, 0, 0, title.height);\r\n // Add in 2 color stops\r\n grd.addColorStop(0, '#8ED6FF');\r\n grd.addColorStop(1, '#004CB3');\r\n\r\n // And apply to the Text\r\n title.fill = grd;\r\n\r\n title.stroke = '#000000';\r\n title.strokeThickness = 8;\r\n tgrp.add(title);\r\n\r\n let instruct = this.game.add.text(400, 100,\r\n `Control player with Arrow keys or touch pads.\\nOn the ground control board speed. In the air control player spin.\r\n \\nUse your board as a sheild to protect your zombie from breakage.\r\n \\nSave your progress by crossing savepoint flags. \"Restart\" to resume progress. \"Clear Savepoints\" to start from beginning.\" `,\r\n { font: \"20px Arial\", align: \"center\", fill: \"#ffffff\", \"wordWrap\": true, \"wordWrapWidth\": 440 });\r\n instruct.anchor.set(0.5);\r\n\r\n tgrp.add(instruct);\r\n\r\n let button = this.game.add.button(400, 320, 'greybtnlrg', () => {\r\n if (localStorage.getItem('currLevel')) {\r\n this.zgame.currLevel = localStorage.getItem('currLevel');\r\n } else {\r\n this.zgame.currLevel = \"Level01\";\r\n }\r\n this.game.state.start(this.zgame.currLevel);\r\n });\r\n let btntxt = this.game.add.text(0, 0, \" Play Now \",\r\n { font: \"35px Arial\", fill: \"#000000\", align: \"center\", fontWeight: \"bold\" });\r\n btntxt.anchor.set(.5);\r\n btntxt.setShadow(4, 4, \"#333333\", 4);\r\n button.addChild(btntxt);\r\n\r\n button.anchor.set(0.5);\r\n tgrp.add(button);\r\n \r\n tgrp.x = (this.zgame.screenWidth/2) -300;\r\n tgrp.y = (this.zgame.screenHeight/2);\r\n\r\n }\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/game/main.ts","/// \r\nimport { zGame } from './game'\r\n\r\n\r\nexport class Preloader extends Phaser.State {\r\n zgame: zGame;\r\n\r\n preload() {\r\n // backgrounds\r\n this.game.load.image(\"darkcity1\", \"./assets/images/dark_city.png\");\r\n this.game.load.image(\"darkcity2\", \"./assets/images/dark_city2.png\"); \r\n\r\n // main screen\r\n this.game.load.image(\"zomboard\", \"./assets/images/zombieandboard2.png\");\r\n this.game.load.image(\"greybtnlrg\", \"./assets/images/greybuttonlarge.png\");\r\n this.game.load.image(\"greybtn\", \"./assets/images/greybutton.png\");\r\n \r\n // levels\r\n this.game.load.image(\"arrows\", \"./assets/images/arrows.png\");\r\n this.game.load.image(\"brick01\", \"./assets/images/brick01.png\");\r\n this.game.load.image(\"cement01\", \"./assets/images/cement01.png\");\r\n this.game.load.image(\"mattress\", \"./assets/images/mattress.png\");\r\n this.game.load.image(\"saw\", \"./assets/images/saw.png\");\r\n this.game.load.image(\"slope45\", \"./assets/images/slope45.png\");\r\n this.game.load.image(\"bumps01\", \"./assets/images/bumps01.png\");\r\n this.game.load.image(\"spikes\", \"./assets/images/spikes.png\");\r\n this.game.load.image(\"jump\", \"./assets/images/jump.png\");\r\n this.game.load.image(\"bigjump\", \"./assets/images/bigjump.png\");\r\n this.game.load.image(\"superjump\", \"./assets/images/superjump.png\");\r\n this.game.load.image(\"bloody\", \"./assets/images/bloody.jpg\");\r\n this.game.load.image(\"skateboard\", \"./assets/images/skateboard.png\");\r\n this.game.load.image(\"wheel\", \"./assets/images/wheel.png\");\r\n this.game.load.image(\"head\", \"./assets/images/head.png\");\r\n this.game.load.image(\"torso\", \"./assets/images/torso.png\");\r\n this.game.load.image(\"uarml\", \"./assets/images/uarml.png\");\r\n this.game.load.image(\"larml\", \"./assets/images/larml.png\");\r\n this.game.load.image(\"uarmr\", \"./assets/images/uarmr.png\");\r\n this.game.load.image(\"larmr\", \"./assets/images/larmr.png\");\r\n this.game.load.image(\"pelvis\", \"./assets/images/pelvis.png\");\r\n this.game.load.image(\"ulegl\", \"./assets/images/ulegl.png\");\r\n this.game.load.image(\"llegl\", \"./assets/images/llegl.png\");\r\n this.game.load.image(\"ulegr\", \"./assets/images/ulegr.png\");\r\n this.game.load.image(\"llegr\", \"./assets/images/llegr.png\");\r\n this.game.load.image(\"drop\", \"./assets/images/red_drop.png\");\r\n this.game.load.image('corona', 'assets/images/bubble.png');\r\n\r\n this.game.load.physics(\"slope45\", \"./assets/images/slope45.json\");\r\n this.game.load.physics(\"slope45left\", \"./assets/images/slope45left.json\");\r\n this.game.load.physics(\"bumps01\", \"./assets/images/bumps01.json\");\r\n this.game.load.physics(\"spikes\", \"./assets/images/spikes.json\");\r\n this.game.load.physics(\"jump_right\", \"./assets/images/jump_right.json\");\r\n this.game.load.physics(\"jump_left\", \"./assets/images/jump_left.json\");\r\n\r\n this.game.load.spritesheet('restartbutton', './assets/images/restartbutton.png', 120, 62);\r\n this.game.load.spritesheet('clearbutton', './assets/images/clearbutton.png', 120, 62);\r\n\r\n // audio\r\n this.game.load.audio('skateboard_roll', 'assets/audio/skateboard_roll.mp3');\r\n this.game.load.audio('wheel_clack', 'assets/audio/wheel_clack.mp3');\r\n this.game.load.audio('wheel_scratch', 'assets/audio/wheel_scratch.mp3');\r\n this.game.load.audio('bone_snap', 'assets/audio/bone_snap.mp3');\r\n this.game.load.audio('body_thud', 'assets/audio/body_thud.mp3');\r\n this.game.load.audio('saw', 'assets/audio/saw.mp3');\r\n this.game.load.audio('ding', 'assets/audio/ding.mp3');\r\n this.game.load.audio('skateboard_bumpy', 'assets/audio/skateboard_bumpy.mp3');\r\n this.game.load.audio('servo_start', 'assets/audio/servo_start.mp3');\r\n this.game.load.audio('servo_middle', 'assets/audio/servo_middle.mp3');\r\n this.game.load.audio('servo_end', 'assets/audio/servo_end.mp3');\r\n this.game.load.audio('skateboard_slope', 'assets/audio/skateboard_slope.mp3');\r\n this.game.load.audio('boing', 'assets/audio/boing.mp3');\r\n this.game.load.audio('music01', 'assets/audio/music01.mp3');\r\n this.game.load.audio('squirt', 'assets/audio/squirt2.mp3');\r\n this.game.load.audio('splat', 'assets/audio/splat.mp3');\r\n this.game.load.audio('unlock', 'assets/audio/unlock.mp3');\r\n this.game.load.audio('bubbles', 'assets/audio/bubbles.mp3');\r\n\r\n this.game.load.text('floor', 'assets/scenes/floor.json');\r\n\r\n }\r\n\r\n create() {\r\n this.zgame = this.game;\r\n\r\n this.game.state.start(\"Main\");\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/game/preloader.ts","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `angular-cli.json`.\n\nexport const environment = {\n production: false\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","// This file includes polyfills needed by Angular and is loaded before\n// the app. You can add your own extra polyfills to this file.\nimport 'core-js/es6/symbol';\nimport 'core-js/es6/object';\nimport 'core-js/es6/function';\nimport 'core-js/es6/parse-int';\nimport 'core-js/es6/parse-float';\nimport 'core-js/es6/number';\nimport 'core-js/es6/math';\nimport 'core-js/es6/string';\nimport 'core-js/es6/date';\nimport 'core-js/es6/array';\nimport 'core-js/es6/regexp';\nimport 'core-js/es6/map';\nimport 'core-js/es6/set';\nimport 'core-js/es6/reflect';\n\nimport 'core-js/es7/reflect';\nimport 'zone.js/dist/zone';\n\n\n\n// WEBPACK FOOTER //\n// ./src/polyfills.ts","/// \r\nimport { Boot } from './boot'\r\nimport { Preloader } from './preloader'\r\nimport { Main } from './main'\r\nimport { zLevel01 } from './level01'\r\nimport { zLevel02 } from './level02'\r\nimport { zPlayer } from './player'\r\n\r\ndeclare var window: any;\r\n\r\nexport class zGame extends Phaser.Game {\r\n\r\n worldWidth: number = 10000;\r\n worldHeight: number = 7000;\r\n //worldWidth: number = 1024;\r\n //worldHeight: number = 768;\r\n\r\n halfWidth: number;\r\n halfHeight: number;\r\n\r\n screenWidth: number = window.innerWidth;\r\n screenHeight: number = window.innerHeight;\r\n\r\n static gameOver:boolean = false;\r\n\r\n gravityYptm:number;\r\n\r\n // flag to adjusts things when screen is resized.\r\n screenResized: boolean;\r\n\r\n zoCG: number = 1;\r\n boCG: number = 2;\r\n grCG: number = 4;\r\n deathCat: number = 8;\r\n savCat: number = 16;\r\n passCat: number = 32;\r\n bounceCat: number = 64;\r\n cursors: Phaser.CursorKeys;\r\n\r\n // current player\r\n currPlayer: zPlayer;\r\n currLevel: string;\r\n\r\n adjusting: boolean;\r\n // cursor keys\r\n\r\n constructor() {\r\n // cannot use this.params\r\n super(1024, 768, Phaser.AUTO, 'content');\r\n\r\n this.halfWidth = this.worldWidth/2;\r\n this.halfHeight = this.worldHeight/2;\r\n\r\n window.addEventListener('resize', () => {\r\n if (!this.adjusting) {\r\n this.adjusting = true; \r\n // update every half second \r\n setTimeout(() => {\r\n this.adjusting = false; \r\n this.scale.refresh();\r\n this.screenWidth = window.innerWidth;\r\n this.screenHeight = window.innerHeight;\r\n this.screenResized = true;\r\n }, 500);\r\n }\r\n });\r\n\r\n this.state.add(\"Boot\", Boot);\r\n this.state.add(\"Preloader\", Preloader);\r\n this.state.add(\"Main\", Main);\r\n this.state.add(\"Level01\", zLevel01);\r\n this.state.add(\"Level02\", zLevel02);\r\n\r\n this.state.start(\"Boot\");\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/game/game.ts"],"sourceRoot":""}