diff --git a/build/custom/ninja.min.js b/build/custom/ninja.min.js index d03e44f29..2e2a0942a 100644 --- a/build/custom/ninja.min.js +++ b/build/custom/ninja.min.js @@ -1,3 +1,3 @@ -/* Ninja Physics for Phaser v2.1.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* Ninja Physics for Phaser v2.0.7 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ Phaser.Physics.Ninja=function(a){this.game=a,this.time=this.game.time,this.gravity=.2,this.bounds=new Phaser.Rectangle(0,0,a.world.width,a.world.height),this.maxObjects=10,this.maxLevels=4,this.quadTree=new Phaser.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels)},Phaser.Physics.Ninja.prototype.constructor=Phaser.Physics.Ninja,Phaser.Physics.Ninja.prototype={enableAABB:function(a,b){this.enable(a,1,0,0,b)},enableCircle:function(a,b,c){this.enable(a,2,0,b,c)},enableTile:function(a,b,c){this.enable(a,3,b,0,c)},enable:function(a,b,c,d,e){if("undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!0),Array.isArray(a))for(var f=a.length;f--;)a[f]instanceof Phaser.Group?this.enable(a[f].children,b,c,d,e):(this.enableBody(a[f],b,c,d),e&&a[f].hasOwnProperty("children")&&a[f].children.length>0&&this.enable(a[f],b,c,d,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c,d,e):(this.enableBody(a,b,c,d),e&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,c,d,!0))},enableBody:function(a,b,c,d){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.Ninja.Body(this,a,b,c,d),a.anchor.set(.5))},setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=[]},convertTilemap:function(a,b,c){b=a.getLayer(b),this.clearTilemapLayerBodies(a,b);for(var d=0,e=a.layers[b].height;e>d;d++)for(var f=0,g=a.layers[b].width;g>f;f++){var h=a.layers[b].data[d][f];if(h&&c.hasOwnProperty(h.index)){var i=new Phaser.Physics.Ninja.Body(this,null,3,c[h.index],0,h.worldX+h.centerX,h.worldY+h.centerY,h.width,h.height);a.layers[b].bodies.push(i)}}return a.layers[b].bodies},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,c,d,e,f){return"undefined"!=typeof b||a.type!==Phaser.GROUP&&a.type!==Phaser.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==Phaser.SPRITE||a.type==Phaser.TILESPRITE?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsSprite(a,b,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideSpriteVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,c,d,e):a.type==Phaser.GROUP?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e):a.type==Phaser.TILEMAPLAYER?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,c,d,e):(b.type==Phaser.GROUP||b.type==Phaser.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,c,d,e):a.type==Phaser.EMITTER&&(b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e)))):void this.collideGroupVsSelf(a,c,d,e,f)},collideSpriteVsSprite:function(a,b,c,d,e,f){this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++)},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length)for(var g=0,h=b.children.length;h>g;g++)b.children[g].exists&&b.children[g].body&&this.separate(a.body,b.children[g].body,d,e,f)&&(c&&c.call(e,a,b.children[g]),this._total++)},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},separate:function(a,b){return a.type!==Phaser.Physics.NINJA||b.type!==Phaser.Physics.NINJA?!1:a.aabb&&b.aabb?a.aabb.collideAABBVsAABB(b.aabb):a.aabb&&b.tile?a.aabb.collideAABBVsTile(b.tile):a.tile&&b.aabb?b.aabb.collideAABBVsTile(a.tile):a.circle&&b.tile?a.circle.collideCircleVsTile(b.tile):a.tile&&b.circle?b.circle.collideCircleVsTile(a.tile):void 0}},Phaser.Physics.Ninja.Body=function(a,b,c,d,e,f,g,h,i){b=b||null,"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=16),this.sprite=b,this.game=a.game,this.type=Phaser.Physics.NINJA,this.system=a,this.aabb=null,this.tile=null,this.circle=null,this.shape=null,this.drag=1,this.friction=.05,this.gravityScale=1,this.bounce=.3,this.velocity=new Phaser.Point,this.facing=Phaser.NONE,this.immovable=!1,this.collideWorldBounds=!0,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.maxSpeed=8,b&&(f=b.x,g=b.y,h=b.width,i=b.height,0===b.anchor.x&&(f+=.5*b.width),0===b.anchor.y&&(g+=.5*b.height)),1===c?(this.aabb=new Phaser.Physics.Ninja.AABB(this,f,g,h,i),this.shape=this.aabb):2===c?(this.circle=new Phaser.Physics.Ninja.Circle(this,f,g,e),this.shape=this.circle):3===c&&(this.tile=new Phaser.Physics.Ninja.Tile(this,f,g,h,i,d),this.shape=this.tile)},Phaser.Physics.Ninja.Body.prototype={preUpdate:function(){this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.shape.integrate(),this.collideWorldBounds&&this.shape.collideWorldBounds()},postUpdate:function(){this.sprite&&(this.sprite.type===Phaser.TILESPRITE?(this.sprite.x=this.shape.pos.x-this.shape.xw,this.sprite.y=this.shape.pos.y-this.shape.yw):(this.sprite.x=this.shape.pos.x,this.sprite.y=this.shape.pos.y)),this.velocity.x<0?this.facing=Phaser.LEFT:this.velocity.x>0&&(this.facing=Phaser.RIGHT),this.velocity.y<0?this.facing=Phaser.UP:this.velocity.y>0&&(this.facing=Phaser.DOWN)},setZeroVelocity:function(){this.shape.oldpos.x=this.shape.pos.x,this.shape.oldpos.y=this.shape.pos.y},moveTo:function(a,b){var c=a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveFrom:function(a,b){var c=-a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveLeft:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveRight:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveUp:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},moveDown:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},reset:function(){this.velocity.set(0),this.shape.pos.x=this.sprite.x,this.shape.pos.y=this.sprite.y,this.shape.oldpos.copyFrom(this.shape.pos)},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.shape.pos.x-this.shape.oldpos.x},deltaY:function(){return this.shape.pos.y-this.shape.oldpos.y},destroy:function(){this.sprite=null,this.system=null,this.aabb=null,this.tile=null,this.circle=null,this.shape.destroy(),this.shape=null}},Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"x",{get:function(){return this.shape.pos.x},set:function(a){this.shape.pos.x=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"y",{get:function(){return this.shape.pos.y},set:function(a){this.shape.pos.y=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"width",{get:function(){return this.shape.width}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"height",{get:function(){return this.shape.height}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"bottom",{get:function(){return this.shape.pos.y+this.shape.yw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"right",{get:function(){return this.shape.pos.x+this.shape.xw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"speed",{get:function(){return Math.sqrt(this.shape.velocity.x*this.shape.velocity.x+this.shape.velocity.y*this.shape.velocity.y)}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"angle",{get:function(){return Math.atan2(this.shape.velocity.y,this.shape.velocity.x)}}),Phaser.Physics.Ninja.Body.render=function(a,b,c,d){c=c||"rgba(0,255,0,0.4)","undefined"==typeof d&&(d=!0),(b.aabb||b.circle)&&b.shape.render(a,b.game.camera.x,b.game.camera.y,c,d)},Phaser.Physics.Ninja.AABB=function(a,b,c,d,e){this.body=a,this.system=a.system,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.oH=0,this.oV=0,this.velocity=new Phaser.Point,this.aabbTileProjections={},this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_FULL]=this.projAABB_Full,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_45DEG]=this.projAABB_45Deg,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONCAVE]=this.projAABB_Concave,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONVEX]=this.projAABB_Convex,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGs]=this.projAABB_22DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGb]=this.projAABB_22DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGs]=this.projAABB_67DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGb]=this.projAABB_67DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_HALF]=this.projAABB_Half},Phaser.Physics.Ninja.AABB.prototype.constructor=Phaser.Physics.Ninja.AABB,Phaser.Physics.Ninja.AABB.COL_NONE=0,Phaser.Physics.Ninja.AABB.COL_AXIS=1,Phaser.Physics.Ninja.AABB.COL_OTHER=2,Phaser.Physics.Ninja.AABB.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},reverse:function(){var a=this.pos.x-this.oldpos.x,b=this.pos.y-this.oldpos.y;this.oldpos.xthis.pos.x&&(this.oldpos.x=this.pos.x-a),this.oldpos.ythis.pos.y&&(this.oldpos.y=this.pos.y-b)},reportCollisionVsBody:function(a,b,c,d,e){var f=this.pos.x-this.oldpos.x,g=this.pos.y-this.oldpos.y,h=f*c+g*d;return this.body.immovable&&e.body.immovable?(a*=.5,b*=.5,this.pos.add(a,b),this.oldpos.set(this.pos.x,this.pos.y),e.pos.subtract(a,b),void e.oldpos.set(e.pos.x,e.pos.y)):void(this.body.immovable||e.body.immovable?this.body.immovable?e.body.immovable||(e.pos.subtract(a,b),0>h&&e.reverse()):(this.pos.subtract(a,b),0>h&&this.reverse()):(a*=.5,b*=.5,this.pos.add(a,b),e.pos.subtract(a,b),0>h&&(this.reverse(),e.reverse())))},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideAABBVsAABB:function(a){var b=this.pos,c=a,d=c.pos.x,e=c.pos.y,f=c.xw,g=c.yw,h=b.x-d,i=f+this.xw-Math.abs(h);if(i>0){var j=b.y-e,k=g+this.yw-Math.abs(j);if(k>0){k>i?0>h?(i*=-1,k=0):k=0:0>j?(i=0,k*=-1):i=0;var l=Math.sqrt(i*i+k*k);return this.reportCollisionVsBody(i,k,i/l,k/l,c),Phaser.Physics.Ninja.AABB.COL_AXIS}}return!1},collideAABBVsTile:function(a){var b=this.pos.x-a.pos.x,c=a.xw+this.xw-Math.abs(b);if(c>0){var d=this.pos.y-a.pos.y,e=a.yw+this.yw-Math.abs(d);if(e>0)return e>c?0>b?(c*=-1,e=0):e=0:0>d?(c=0,e*=-1):c=0,this.resolveTile(c,e,this,a)}return!1},resolveTile:function(a,b,c,d){return 0i){e*=-i,f*=-i;var j=Math.sqrt(e*e+f*f),k=Math.sqrt(a*a+b*b);return j>k?(c.reportCollisionVsWorld(a,b,a/k,b/k,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(e,f,d.signx,d.signy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_45Deg:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-d.pos.x,h=c.pos.y-f*c.yw-d.pos.y,i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.y-f*c.yw,h=d.pos.y-g;if(h*f>0){var i=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw,h=d.pos.x-g;if(h*e>0){var i=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Convex:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=Math.sqrt(g*g+h*h),j=2*d.xw,k=Math.sqrt(j*j+0),l=k-i;if(0>e*g||0>f*h){var m=Math.sqrt(a*a+b*b);return c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS}return l>0?(g/=i,h/=i,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER):Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Concave:function(a,b,c,d){var e=d.signx,f=d.signy,g=d.pos.x+e*d.xw-(c.pos.x-e*c.xw),h=d.pos.y+f*d.yw-(c.pos.y-f*c.yw),i=2*d.xw,j=Math.sqrt(i*i+0),k=Math.sqrt(g*g+h*h),l=k-j;if(l>0){var m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(g/=k,h/=k,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-this.xw-b,g=this.pos.y-this.yw-c;e?(a.fillStyle=d,a.fillRect(f,g,this.width,this.height)):(a.strokeStyle=d,a.strokeRect(f,g,this.width,this.height))}},Phaser.Physics.Ninja.Tile=function(a,b,c,d,e,f){"undefined"==typeof f&&(f=Phaser.Physics.Ninja.Tile.EMPTY),this.body=a,this.system=a.system,this.id=f,this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.id>1&&this.id<30&&(e=d),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.velocity=new Phaser.Point,this.signx=0,this.signy=0,this.sx=0,this.sy=0,this.body.gravityScale=0,this.body.collideWorldBounds=!1,this.id>0&&this.setType(this.id)},Phaser.Physics.Ninja.Tile.prototype.constructor=Phaser.Physics.Ninja.Tile,Phaser.Physics.Ninja.Tile.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},setType:function(a){return a===Phaser.Physics.Ninja.Tile.EMPTY?this.clear():(this.id=a,this.updateType()),this},clear:function(){this.id=Phaser.Physics.Ninja.Tile.EMPTY,this.updateType()},destroy:function(){this.body=null,this.system=null},updateType:function(){if(0===this.id)return this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.signx=0,this.signy=0,this.sx=0,this.sy=0,!0;if(this.idn?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.radius);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.radius-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.radius);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.radius-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideCircleVsTile:function(a){var b=this.pos,c=this.radius,d=a,e=d.pos.x,f=d.pos.y,g=d.xw,h=d.yw,i=b.x-e,j=g+c-Math.abs(i);if(j>0){var k=b.y-f,l=h+c-Math.abs(k);if(l>0)return this.oH=0,this.oV=0,-g>i?this.oH=-1:i>g&&(this.oH=1),-h>k?this.oV=-1:k>h&&(this.oV=1),this.resolveCircleTile(j,l,this.oH,this.oV,this,d)}},resolveCircleTile:function(a,b,c,d,e,f){return 0a){var g=e.pos.x-f.pos.x;return 0>g?(e.reportCollisionVsWorld(-a,0,-1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(a,0,1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}var h=e.pos.y-f.pos.y;return 0>h?(e.reportCollisionVsWorld(0,-b,0,-1,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(0,b,0,1,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS}if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var i=f.pos.x+c*f.xw,j=f.pos.y+d*f.yw,g=e.pos.x-i,h=e.pos.y-j,k=Math.sqrt(g*g+h*h),l=e.radius-k;return l>0?(0===k?(g=c/Math.SQRT2,h=d/Math.SQRT2):(g/=k,h/=k),e.reportCollisionVsWorld(g*l,h*l,g,h,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_45Deg:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.pos.x-j*e.radius-f.pos.x,m=e.pos.y-k*e.radius-f.pos.y,n=l*j+m*k;if(0>n){j*=-n,k*=-n,b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1));var o=Math.sqrt(j*j+k*k);return o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x-h*f.xw),m=e.pos.y-(f.pos.y+d*f.yw),p=l*-k+m*j;if(p*h*i>0){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER }else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x+c*f.xw),m=e.pos.y-(f.pos.y-i*f.yw),p=l*-k+m*j;if(0>p*h*i){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var s=f.pos.x+c*f.xw,t=f.pos.y+d*f.yw,u=e.pos.x-s,v=e.pos.y-t,q=Math.sqrt(u*u+v*v),r=e.radius-q;if(r>0)return 0===q?(u=c/Math.SQRT2,v=d/Math.SQRT2):(u/=q,v/=q),e.reportCollisionVsWorld(u*r,v*r,u,v,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Concave:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c){if(0===d){var j=f.pos.x+h*f.xw-e.pos.x,k=f.pos.y+i*f.yw-e.pos.y,l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=n+e.radius-m;return o>0?(b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)):Phaser.Physics.Ninja.Circle.COL_NONE}if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x-h*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=0,s=d):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x+c*f.xw,q=f.pos.y-i*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c,s=0):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Convex:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(h*c+i*d>0){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Half:function(a,b,c,d,e,f){var g=f.signx,h=f.signy,i=c*g+d*h;if(i>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var j=e.radius,k=e.pos.x-g*j-f.pos.x,l=e.pos.y-h*j-f.pos.y,m=g,n=h,o=k*m+l*n;if(0>o){m*=-o,n*=-o;var p=Math.sqrt(m*m+n*n),q=Math.sqrt(a*a+b*b);return p>q?(e.reportCollisionVsWorld(a,b,a/q,b/q,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(m,n,f.signx,f.signy),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0!==i)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-f.pos.x;if(0>r*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-(f.pos.y+d*f.yw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0!==i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-f.pos.y;if(0>s*h)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-(f.pos.x+c*f.xw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var v=f.pos.x+c*f.xw,w=f.pos.y+d*f.yw,r=e.pos.x-v,s=e.pos.y-w,t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegS:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c){if(0!==d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-f.pos.y,o=m*-k+n*j;if(o*h*i>0){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0===d)if(0>h*c){var t=f.pos.x-h*f.xw,u=f.pos.y,v=e.pos.x-t,w=e.pos.y-u;if(0>w*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x+c*f.xw),n=e.pos.y-(f.pos.y-i*f.yw),o=m*-k+n*j;if(0>o*h*i){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegB:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-(f.pos.y+i*f.yw),q=m*-k+n*j;if(q*h*i>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-(f.pos.x+h*f.xw),n=e.pos.y-f.pos.y;if(0>n*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(0>q*h*i){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0){var t=Math.sqrt(5),j=1*h/t,k=2*i/t,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegS:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(g*c>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y-h*f.yw),o=m*-k+n*j;if(0>o*g*h){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0>h*d){var t=f.pos.x,u=f.pos.y-h*f.yw,v=e.pos.x-t,w=e.pos.y-u;if(0>v*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-g*f.xw),n=e.pos.y-(f.pos.y+d*f.yw),o=m*-k+n*j;if(o*g*h>0){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegB:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>h*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y+h*f.yw);if(0>m*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(q*g*h>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>g*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=Math.sqrt(5),j=2*g/t,k=1*h/t,m=e.pos.x-(f.pos.x+g*f.xw),n=e.pos.y-(f.pos.y-h*f.yw),q=m*-k+n*j;if(0>q*g*h){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(g*c+h*d>0){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-b,g=this.pos.y-c;a.beginPath(),a.arc(f,g,this.radius,0,2*Math.PI,!1),e?(a.fillStyle=d,a.fill()):(a.strokeStyle=d,a.stroke())}}; \ No newline at end of file diff --git a/build/custom/p2.min.js b/build/custom/p2.min.js index ada409fba..fd771b792 100644 --- a/build/custom/p2.min.js +++ b/build/custom/p2.min.js @@ -1,4 +1,4 @@ -/* p2.js custom build for Phaser v2.1.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* p2.js custom build for Phaser v2.0.7 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ !function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define("p2",function(){return this.p2=a()}()):"undefined"!=typeof window?window.p2=a():"undefined"!=typeof global?self.p2=a():"undefined"!=typeof self&&(self.p2=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},g.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},g.cross=function(a,b,c){var d=b[0]*c[1]-b[1]*c[0];return a[0]=a[1]=0,a[2]=d,a},g.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},g.transformMat2=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e,a[1]=c[1]*d+c[3]*e,a},g.transformMat2d=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e+c[4],a[1]=c[1]*d+c[3]*e+c[5],a},g.transformMat3=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[3]*e+c[6],a[1]=c[1]*d+c[4]*e+c[7],a},g.transformMat4=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[4]*e+c[12],a[1]=c[1]*d+c[5]*e+c[13],a},g.forEach=function(){var a=g.create();return function(b,c,d,e,f,g){var h,i;for(c||(c=2),d||(d=0),i=e?Math.min(e*c+d,b.length):b.length,h=d;i>h;h+=c)a[0]=b[h],a[1]=b[h+1],f(a,a,g),b[h]=a[0],b[h+1]=a[1];return b}}(),g.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},"undefined"!=typeof c&&(c.vec2=g)},{}],2:[function(a,b){function c(){}var d=a("./Scalar");b.exports=c,c.lineInt=function(a,b,c){c=c||0;var e,f,g,h,i,j,k,l=[0,0];return e=a[1][1]-a[0][1],f=a[0][0]-a[1][0],g=e*a[0][0]+f*a[0][1],h=b[1][1]-b[0][1],i=b[0][0]-b[1][0],j=h*b[0][0]+i*b[0][1],k=e*i-h*f,d.eq(k,0,c)||(l[0]=(i*g-f*j)/k,l[1]=(e*j-h*g)/k),l},c.segmentsIntersect=function(a,b,c,d){var e=b[0]-a[0],f=b[1]-a[1],g=d[0]-c[0],h=d[1]-c[1];if(g*f-h*e==0)return!1;var i=(e*(c[1]-a[1])+f*(a[0]-c[0]))/(g*f-h*e),j=(g*(a[1]-c[1])+h*(c[0]-a[0]))/(h*e-g*f);return i>=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":5}],3:[function(a,b){function c(){}b.exports=c,c.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},c.left=function(a,b,d){return c.area(a,b,d)>0},c.leftOn=function(a,b,d){return c.area(a,b,d)>=0},c.right=function(a,b,d){return c.area(a,b,d)<0},c.rightOn=function(a,b,d){return c.area(a,b,d)<=0};var d=[],e=[];c.collinear=function(a,b,f,g){if(g){var h=d,i=e;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=f[0]-b[0],i[1]=f[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return g>m}return 0==c.area(a,b,f)},c.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{}],4:[function(a,b){function c(){this.vertices=[]}function d(a,b,c,d,e){e=e||0;var f=b[1]-a[1],h=a[0]-b[0],i=f*a[0]+h*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*h;return g.eq(m,0,e)?[0,0]:[(k*i-h*l)/m,(f*l-j*i)/m]}var e=a("./Line"),f=a("./Point"),g=a("./Scalar");b.exports=c,c.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},c.prototype.first=function(){return this.vertices[0]},c.prototype.last=function(){return this.vertices[this.vertices.length-1]},c.prototype.clear=function(){this.vertices.length=0},c.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},c.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);f.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},c.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},c.prototype.isReflex=function(a){return f.right(this.at(a-1),this.at(a),this.at(a+1))};var h=[],i=[];c.prototype.canSee=function(a,b){var c,d,g=h,j=i;if(f.leftOn(this.at(a+1),this.at(a),this.at(b))&&f.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=f.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&f.leftOn(this.at(a),this.at(b),this.at(k+1))&&f.rightOn(this.at(a),this.at(b),this.at(k))&&(g[0]=this.at(a),g[1]=this.at(b),j[0]=this.at(k),j[1]=this.at(k+1),c=e.lineInt(g,j),f.sqdist(this.at(a),c)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},c.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(e.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),f.left(v.at(x+1),v.at(x),v.at(y+1))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=d(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),f.left(v.at(x-1),v.at(x),l)&&(o=f.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,e.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)f.leftOn(v.at(x-1),v.at(x),v.at(y))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=f.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)f.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":2,"./Point":3,"./Scalar":5}],5:[function(a,b){function c(){}b.exports=c,c.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"~0.4.0","grunt-contrib-jshint":"~0.9.2","grunt-contrib-nodeunit":"~0.1.2","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","z-schema":"~2.4.6"},dependencies:{"poly-decomp":"0.1.0","gl-matrix":"2.1.0"}}},{}],8:[function(a,b){function c(a){this.lowerBound=d.create(),a&&a.lowerBound&&d.copy(this.lowerBound,a.lowerBound),this.upperBound=d.create(),a&&a.upperBound&&d.copy(this.upperBound,a.upperBound)}{var d=a("../math/vec2");a("../utils/Utils")}b.exports=c;var e=d.create();c.prototype.setFromPoints=function(a,b,c){var f=this.lowerBound,g=this.upperBound;d.set(f,Number.MAX_VALUE,Number.MAX_VALUE),d.set(g,-Number.MAX_VALUE,-Number.MAX_VALUE);for(var h=0;hj;j++)i[j]>g[j]&&(g[j]=i[j]),i[j]b;b++)a.lowerBound[b]this.upperBound[b]&&(this.upperBound[b]=a.upperBound[b])},c.prototype.overlaps=function(a){var b=this.lowerBound,c=this.upperBound,d=a.lowerBound,e=a.upperBound;return(d[0]<=c[0]&&c[0]<=e[0]||b[0]<=e[0]&&e[0]<=c[0])&&(d[1]<=c[1]&&c[1]<=e[1]||b[1]<=e[1]&&e[1]<=c[1])}},{"../math/vec2":30,"../utils/Utils":47}],9:[function(a,b){function c(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=c.AABB}var d=a("../math/vec2"),e=a("../objects/Body");b.exports=c,c.AABB=1,c.BOUNDING_CIRCLE=2,c.prototype.setWorld=function(a){this.world=a},c.prototype.getCollisionPairs=function(){throw new Error("getCollisionPairs must be implemented in a subclass!")};var f=d.create();c.boundingRadiusCheck=function(a,b){d.sub(f,a.position,b.position);var c=d.squaredLength(f),e=a.boundingRadius+b.boundingRadius;return e*e>=c},c.aabbCheck=function(a,b){return a.aabbNeedsUpdate&&a.updateAABB(),b.aabbNeedsUpdate&&b.updateAABB(),a.aabb.overlaps(b.aabb)},c.prototype.boundingVolumeCheck=function(a,b){var d;switch(this.boundingVolumeType){case c.BOUNDING_CIRCLE:d=c.boundingRadiusCheck(a,b);break;case c.AABB:d=c.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return d},c.canCollide=function(a,b){return a.motionState===e.STATIC&&b.motionState===e.STATIC?!1:a.motionState===e.KINEMATIC&&b.motionState===e.STATIC||a.motionState===e.STATIC&&b.motionState===e.KINEMATIC?!1:a.motionState===e.KINEMATIC&&b.motionState===e.KINEMATIC?!1:a.sleepState===e.SLEEPING&&b.sleepState===e.SLEEPING?!1:a.sleepState===e.SLEEPING&&b.motionState===e.STATIC||b.sleepState===e.SLEEPING&&a.motionState===e.STATIC?!1:!0},c.NAIVE=1,c.SAP=2},{"../math/vec2":30,"../objects/Body":31}],10:[function(a,b){function c(a){d.apply(this),a=e.defaults(a,{xmin:-100,xmax:100,ymin:-100,ymax:100,nx:10,ny:10}),this.xmin=a.xmin,this.ymin=a.ymin,this.xmax=a.xmax,this.ymax=a.ymax,this.nx=a.nx,this.ny=a.ny,this.binsizeX=(this.xmax-this.xmin)/this.nx,this.binsizeY=(this.ymax-this.ymin)/this.ny}var d=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Particle"),a("../collision/Broadphase")),e=(a("../math/vec2"),a("../utils/Utils"));b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){for(var b=[],c=a.bodies,e=c.length,f=(this.binsizeX,this.binsizeY,this.nx),g=this.ny,h=this.xmin,i=this.ymin,j=this.xmax,k=this.ymax,l=[],m=f*g,n=0;m>n;n++)l.push([]);for(var o=f/(j-h),p=g/(k-i),n=0;n!==e;n++)for(var q=c[n],r=q.aabb,s=Math.max(r.lowerBound[0],h),t=Math.max(r.lowerBound[1],i),u=Math.min(r.upperBound[0],j),v=Math.min(r.upperBound[1],k),w=Math.floor(o*(s-h)),x=Math.floor(p*(t-i)),y=Math.floor(o*(u-h)),z=Math.floor(p*(v-i)),A=w;y>=A;A++)for(var B=x;z>=B;B++){var C=A,D=B,E=C*(g-1)+D;E>=0&&m>E&&l[E].push(q)}for(var n=0;n!==m;n++)for(var F=l[n],A=0,G=F.length;A!==G;A++)for(var q=F[A],B=0;B!==A;B++){var H=F[B];d.canCollide(q,H)&&this.boundingVolumeCheck(q,H)&&b.push(q,H)}return b}},{"../collision/Broadphase":9,"../math/vec2":30,"../shapes/Circle":35,"../shapes/Particle":39,"../shapes/Plane":40,"../utils/Utils":47}],11:[function(a,b){function c(){d.call(this,d.NAIVE)}{var d=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var e=0,f=b.length;e!==f;e++)for(var g=b[e],h=0;e>h;h++){var i=b[h];d.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c}},{"../collision/Broadphase":9,"../math/vec2":30,"../shapes/Circle":35,"../shapes/Particle":39,"../shapes/Plane":40,"../shapes/Shape":42}],12:[function(a,b){function c(){this.contactEquations=[],this.frictionEquations=[],this.enableFriction=!0,this.slipForce=10,this.frictionCoefficient=.3,this.surfaceVelocity=0,this.reuseObjects=!0,this.reusableContactEquations=[],this.reusableFrictionEquations=[],this.restitution=0,this.stiffness=l.DEFAULT_STIFFNESS,this.relaxation=l.DEFAULT_RELAXATION,this.frictionStiffness=l.DEFAULT_STIFFNESS,this.frictionRelaxation=l.DEFAULT_RELAXATION,this.collidingBodiesLastStep=new k}function d(a,b){f.set(a.vertices[0],.5*-b.length,-b.radius),f.set(a.vertices[1],.5*b.length,-b.radius),f.set(a.vertices[2],.5*b.length,b.radius),f.set(a.vertices[3],.5*-b.length,b.radius)}function e(a,b,c,d){for(var e=R,i=S,j=T,k=U,l=a,m=b.vertices,n=null,o=0;o!==m.length+1;o++){var p=m[o%m.length],q=m[(o+1)%m.length];f.rotate(e,p,d),f.rotate(i,q,d),h(e,e,c),h(i,i,c),g(j,e,l),g(k,i,l);var r=f.crossLength(j,k);if(null===n&&(n=r),0>=r*n)return!1;n=r}return!0}var f=a("../math/vec2"),g=f.sub,h=f.add,i=f.dot,j=a("../utils/Utils"),k=a("../utils/TupleDictionary"),l=a("../equations/Equation"),m=a("../equations/ContactEquation"),n=a("../equations/FrictionEquation"),o=a("../shapes/Circle"),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Rectangle"));b.exports=c;var s=f.fromValues(0,1),t=f.fromValues(0,0),u=f.fromValues(0,0),v=f.fromValues(0,0),w=f.fromValues(0,0),x=f.fromValues(0,0),y=f.fromValues(0,0),z=f.fromValues(0,0),A=f.fromValues(0,0),B=f.fromValues(0,0),C=f.fromValues(0,0),D=f.fromValues(0,0),E=f.fromValues(0,0),F=f.fromValues(0,0),G=f.fromValues(0,0),H=f.fromValues(0,0),I=f.fromValues(0,0),J=f.fromValues(0,0),K=f.fromValues(0,0),L=[];c.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},c.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=0;a!==this.contactEquations.length;a++){var b=this.contactEquations[a],c=0|b.bodyA.id,d=0|b.bodyB.id;this.collidingBodiesLastStep.set(c,d,!0)}if(this.reuseObjects){var e=this.contactEquations,f=this.frictionEquations,g=this.reusableFrictionEquations,h=this.reusableContactEquations;j.appendArray(h,e),j.appendArray(g,f)}this.contactEquations.length=this.frictionEquations.length=0},c.prototype.createContactEquation=function(a,b,c,d){var e=this.reusableContactEquations.length?this.reusableContactEquations.pop():new m(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.restitution=this.restitution,e.firstImpact=!this.collidedLastStep(a,b),e.stiffness=this.stiffness,e.relaxation=this.relaxation,e.needsUpdate=!0,e.enabled=!0,e},c.prototype.createFrictionEquation=function(a,b,c,d){var e=this.reusableFrictionEquations.length?this.reusableFrictionEquations.pop():new n(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.setSlipForce(this.slipForce),e.frictionCoefficient=this.frictionCoefficient,e.relativeVelocity=this.surfaceVelocity,e.enabled=!0,e.needsUpdate=!0,e.stiffness=this.frictionStiffness,e.relaxation=this.frictionRelaxation,e},c.prototype.createFrictionFromContact=function(a){var b=this.createFrictionEquation(a.bodyA,a.bodyB,a.shapeA,a.shapeB);return f.copy(b.contactPointA,a.contactPointA),f.copy(b.contactPointB,a.contactPointB),f.rotate90cw(b.t,a.normalA),b.contactEquation=a,b},c.prototype[q.LINE|q.CONVEX]=c.prototype.convexLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.LINE|q.RECTANGLE]=c.prototype.lineRectangle=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var M=new r(1,1),N=f.create();c.prototype[q.CAPSULE|q.CONVEX]=c.prototype[q.CAPSULE|q.RECTANGLE]=c.prototype.convexCapsule=function(a,b,c,e,g,h,i,j,k){var l=N;f.set(l,h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var m=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);f.set(l,-h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var n=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);if(k&&(m||n))return!0;var o=M;d(o,h);var p=this.convexConvex(a,b,c,e,g,o,i,j,k);return p+m+n},c.prototype[q.CAPSULE|q.LINE]=c.prototype.lineCapsule=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var O=f.create(),P=f.create(),Q=new r(1,1);c.prototype[q.CAPSULE|q.CAPSULE]=c.prototype.capsuleCapsule=function(a,b,c,e,g,h,i,j,k){for(var l=O,m=P,n=0,o=0;2>o;o++){f.set(l,(0==o?-1:1)*b.length/2,0),f.rotate(l,l,e),f.add(l,l,c);for(var p=0;2>p;p++){f.set(m,(0==p?-1:1)*h.length/2,0),f.rotate(m,m,j),f.add(m,m,i);var q=this.circleCircle(a,b,l,e,g,h,m,j,k,b.radius,h.radius);if(k&&q)return!0;n+=q}}var r=Q;d(r,b);var s=this.convexCapsule(a,r,c,e,g,h,i,j,k);if(k&&s)return!0;n+=s,d(r,h);var t=this.convexCapsule(g,r,i,j,a,b,c,e,k);return k&&t?!0:n+=t},c.prototype[q.LINE|q.LINE]=c.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.PLANE|q.LINE]=c.prototype.planeLine=function(a,b,c,d,e,j,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L;numContacts=0,f.set(n,-j.length/2,0),f.set(o,j.length/2,0),f.rotate(p,n,l),f.rotate(q,o,l),h(p,p,k),h(q,q,k),f.copy(n,p),f.copy(o,q),g(r,o,n),f.normalize(C,r),f.rotate90cw(F,C),f.rotate(E,s,d),G[0]=n,G[1]=o;for(var H=0;HJ){if(m)return!0;var K=this.createContactEquation(a,e,b,j);numContacts++,f.copy(K.normalA,E),f.normalize(K.normalA,K.normalA),f.scale(D,E,J),g(K.contactPointA,I,D),g(K.contactPointA,K.contactPointA,a.position),g(K.contactPointB,I,k),h(K.contactPointB,K.contactPointB,k),g(K.contactPointB,K.contactPointB,e.position),this.contactEquations.push(K),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(K))}}return numContacts},c.prototype[q.PARTICLE|q.CAPSULE]=c.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},c.prototype[q.CIRCLE|q.LINE]=c.prototype.circleLine=function(a,b,c,d,e,j,k,l,m,n,o){var p=j,q=l,r=e,s=k,H=c,I=a,J=b,n=n||0,o="undefined"!=typeof o?o:J.radius,K=t,M=u,N=v,O=w,P=x,Q=y,R=z,S=A,T=B,U=C,V=D,W=E,X=F,Y=G,Z=L;f.set(S,-p.length/2,0),f.set(T,p.length/2,0),f.rotate(U,S,q),f.rotate(V,T,q),h(U,U,s),h(V,V,s),f.copy(S,U),f.copy(T,V),g(Q,T,S),f.normalize(R,Q),f.rotate90cw(P,R),g(W,H,S);var $=i(W,P);if(g(O,S,s),g(X,H,s),Math.abs($)ab&&bb>_){if(m)return!0;var cb=this.createContactEquation(I,r,b,j);return f.scale(cb.normalA,K,-1),f.normalize(cb.normalA,cb.normalA),f.scale(cb.contactPointA,cb.normalA,o),h(cb.contactPointA,cb.contactPointA,H),g(cb.contactPointA,cb.contactPointA,I.position),g(cb.contactPointB,N,s),h(cb.contactPointB,cb.contactPointB,s),g(cb.contactPointB,cb.contactPointB,r.position),this.contactEquations.push(cb),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(cb)),1}}Z[0]=S,Z[1]=T;for(var db=0;dbW&&(f.copy(Q,O),S=W,f.scale(N,K,W),f.add(N,N,O),R=!0)}}if(R){if(m)return!0;var X=this.createContactEquation(y,q,b,j);return f.sub(X.normalA,Q,s),f.normalize(X.normalA,X.normalA),f.scale(X.contactPointA,X.normalA,n),h(X.contactPointA,X.contactPointA,s),g(X.contactPointA,X.contactPointA,y.position),g(X.contactPointB,N,r),h(X.contactPointB,X.contactPointB,r),g(X.contactPointB,X.contactPointB,q.position),this.contactEquations.push(X),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(X)),1}if(n>0)for(var T=0;TW&&(Q=W,f.scale(N,H,W),f.add(N,N,s),f.copy(P,H),R=!0)}if(R){var X=this.createContactEquation(A,q,b,k);return f.scale(X.normalA,P,-1),f.normalize(X.normalA,X.normalA),f.set(X.contactPointA,0,0),h(X.contactPointA,X.contactPointA,s),g(X.contactPointA,X.contactPointA,A.position),g(X.contactPointB,N,r),h(X.contactPointB,X.contactPointB,r),g(X.contactPointB,X.contactPointB,q.position),this.contactEquations.push(X),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(X)),1}return 0},c.prototype[q.CIRCLE]=c.prototype.circleCircle=function(a,b,c,d,e,i,j,k,l,m,n){var o=a,p=b,q=c,r=e,s=i,u=j,v=t,m=m||p.radius,n=n||s.radius;g(v,c,j);var w=m+n;if(f.squaredLength(v)>w*w)return 0;if(l)return!0;var x=this.createContactEquation(o,r,b,i);return g(x.normalA,u,q),f.normalize(x.normalA,x.normalA),f.scale(x.contactPointA,x.normalA,m),f.scale(x.contactPointB,x.normalA,-n),h(x.contactPointA,x.contactPointA,q),g(x.contactPointA,x.contactPointA,o.position),h(x.contactPointB,x.contactPointB,u),g(x.contactPointB,x.contactPointB,r.position),this.contactEquations.push(x),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x)),1},c.prototype[q.PLANE|q.CONVEX]=c.prototype[q.PLANE|q.RECTANGLE]=c.prototype.planeConvex=function(a,b,d,e,j,k,l,m,n){var o=j,p=l,q=k,r=m,w=a,x=b,y=d,z=e,A=t,B=u,C=v,D=0;f.rotate(B,s,z);for(var E=0;E0)return 0;if(l)return!0;var x=this.createContactEquation(o,m,h,b);return f.copy(x.normalA,v),f.scale(r,x.normalA,w),g(x.contactPointA,n,r),g(x.contactPointA,x.contactPointA,o.position),g(x.contactPointB,n,m.position),this.contactEquations.push(x),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x)),1},c.prototype[q.CIRCLE|q.PARTICLE]=c.prototype.circleParticle=function(a,b,c,d,e,i,j,k,l){var m=a,n=b,o=c,p=e,q=j,r=t;if(g(r,q,o),f.squaredLength(r)>n.radius*n.radius)return 0;if(l)return!0;var s=this.createContactEquation(m,p,b,i);return f.copy(s.normalA,r),f.normalize(s.normalA,s.normalA),f.scale(s.contactPointA,s.normalA,n.radius),h(s.contactPointA,s.contactPointA,o),g(s.contactPointA,s.contactPointA,m.position),g(s.contactPointB,q,p.position),this.contactEquations.push(s),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(s)),1};{var V=new o(1),W=f.create(),X=f.create();f.create()}c.prototype[q.PLANE|q.CAPSULE]=c.prototype.planeCapsule=function(a,b,c,d,e,g,i,j,k){var l=W,m=X,n=V;f.set(l,-g.length/2,0),f.rotate(l,l,j),h(l,l,i),f.set(m,g.length/2,0),f.rotate(m,m,j),h(m,m,i),n.radius=g.radius;var o=this.circlePlane(e,n,l,0,a,b,c,d,k),p=this.circlePlane(e,n,m,0,a,b,c,d,k);return k?o||p:o+p},c.prototype.capsulePlane=function(a,b,c,d,e,f,g,h,i){return console.warn("Narrowphase.prototype.capsulePlane() is deprecated. Use .planeCapsule() instead!"),this.planeCapsule(e,f,g,h,a,b,c,d,i)},c.prototype[q.CIRCLE|q.PLANE]=c.prototype.circlePlane=function(a,b,c,d,e,j,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;g(x,p,r),f.rotate(y,s,w);var A=i(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,j,b);return f.copy(B.normalA,y),f.scale(B.contactPointB,B.normalA,-o.radius),h(B.contactPointB,B.contactPointB,p),g(B.contactPointB,B.contactPointB,n.position),f.scale(z,B.normalA,A),g(B.contactPointA,x,z),h(B.contactPointA,B.contactPointA,r),g(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},c.convexPrecision=1e-7,c.prototype[q.CONVEX]=c.prototype[q.CONVEX|q.RECTANGLE]=c.prototype[q.RECTANGLE]=c.prototype.convexConvex=function(a,b,d,e,j,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o=o||c.convexPrecision,G=c.findSeparatingAxis(b,d,e,k,l,m,p);if(!G)return 0;g(D,l,d),i(p,D)>0&&f.scale(p,p,-1);var H=c.getClosestEdge(b,e,p,!0),I=c.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=d,P=l,Q=e,R=m,S=a,T=j;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];f.rotate(q,W,R),h(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(E,y),f.normalize(E,E),g(D,q,r);var _=i(E,D);o>=_&&X++}if(X>=3){if(n)return!0;var ab=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(ab.normalA,y),f.normalize(ab.normalA,ab.normalA),g(D,q,r);var _=i(ab.normalA,D);f.scale(C,ab.normalA,_),g(ab.contactPointA,q,O),g(ab.contactPointA,ab.contactPointA,C),h(ab.contactPointA,ab.contactPointA,O),g(ab.contactPointA,ab.contactPointA,S.position),g(ab.contactPointB,q,P),h(ab.contactPointB,ab.contactPointB,P),g(ab.contactPointB,ab.contactPointB,T.position),this.contactEquations.push(ab),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(ab))}}}return F};var Y=f.fromValues(0,0);c.projectConvexOntoAxis=function(a,b,c,d,e){var g,h,j=null,k=null,l=Y;f.rotate(l,d,-c);for(var m=0;mj)&&(j=h),(null===k||k>h)&&(k=h);if(k>j){var n=k;k=j,j=n}var o=i(b,d);f.set(e,k+o,j+o)};var Z=f.fromValues(0,0),$=f.fromValues(0,0),_=f.fromValues(0,0),ab=f.fromValues(0,0),bb=f.fromValues(0,0),cb=f.fromValues(0,0);c.findSeparatingAxis=function(a,b,d,e,h,i,j){for(var k=null,l=!1,m=!1,n=Z,o=$,p=_,q=ab,r=bb,s=cb,t=0;2!==t;t++){var u=a,v=d;1===t&&(u=e,v=i);for(var w=0;w!==u.vertices.length;w++){f.rotate(o,u.vertices[w],v),f.rotate(p,u.vertices[(w+1)%u.vertices.length],v),g(n,p,o),f.rotate90cw(q,n),f.normalize(q,q),c.projectConvexOntoAxis(a,b,d,q,r),c.projectConvexOntoAxis(e,h,i,q,s);var x=r,y=s,z=!1;r[0]>s[0]&&(y=r,x=s,z=!0);var A=y[0]-x[1];l=A<=c.convexPrecision,(null===k||A>k)&&(f.copy(j,q),k=A,m=l)}}return m};var db=f.fromValues(0,0),eb=f.fromValues(0,0),fb=f.fromValues(0,0);c.getClosestEdge=function(a,b,c,d){var e=db,h=eb,j=fb;f.rotate(e,c,-b),d&&f.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=0;m!==l;m++){g(h,a.vertices[(m+1)%l],a.vertices[m%l]),f.rotate90cw(j,h),f.normalize(j,j);var n=i(j,e);(-1==k||n>maxDot)&&(k=m%l,maxDot=n)}return k};var gb=f.create(),hb=f.create(),ib=f.create(),jb=f.create(),kb=f.create(),lb=f.create(),mb=f.create(); c.prototype[q.CIRCLE|q.HEIGHTFIELD]=c.prototype.circleHeightfield=function(a,b,c,d,e,i,j,k,l,m){var n=i.data,m=m||b.radius,o=i.elementWidth,p=hb,q=gb,r=kb,s=mb,t=lb,u=ib,v=jb,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;c[1]+mA;A++){f.set(u,A*o,n[A]),f.set(v,(A+1)*o,n[A+1]),f.add(u,u,j),f.add(v,v,j),f.sub(t,v,u),f.rotate(t,t,Math.PI/2),f.normalize(t,t),f.scale(q,t,-m),f.add(q,q,c),f.sub(p,q,u);var C=f.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,f.scale(p,t,-C),f.add(r,q,p),f.copy(s,t);var D=this.createContactEquation(e,a,i,b);f.copy(D.normalA,s),f.scale(D.contactPointB,D.normalA,-m),h(D.contactPointB,D.contactPointB,c),g(D.contactPointB,D.contactPointB,a.position),f.copy(D.contactPointA,r),f.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(f.set(u,A*o,n[A]),f.add(u,u,j),f.sub(p,c,u),f.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){f.set(m,u*l,k[u]),f.set(n,(u+1)*l,k[u+1]),f.add(m,m,h),f.add(n,n,h);var w=100;f.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),f.sub(p.vertices[0],n,o),f.sub(p.vertices[1],m,o),f.copy(p.vertices[2],p.vertices[1]),f.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../shapes/Circle":35,"../shapes/Convex":36,"../shapes/Rectangle":41,"../shapes/Shape":42,"../utils/TupleDictionary":46,"../utils/Utils":47}],13:[function(a,b){function c(){e.call(this,e.SAP),this.axisList=[],this.world=null,this.axisIndex=0;var a=this.axisList;this._addBodyHandler=function(b){a.push(b.body)},this._removeBodyHandler=function(b){var c=a.indexOf(b.body);-1!==c&&a.splice(c,1)}}var d=a("../utils/Utils"),e=a("../collision/Broadphase");b.exports=c,c.prototype=new e,c.prototype.setWorld=function(a){this.axisList.length=0,d.appendArray(this.axisList,a.bodies),a.off("addBody",this._addBodyHandler).off("removeBody",this._removeBodyHandler),a.on("addBody",this._addBodyHandler).on("removeBody",this._removeBodyHandler),this.world=a},c.sortAxisList=function(a,b){b=0|b;for(var c=1,d=a.length;d>c;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},c.prototype.getCollisionPairs=function(){var a=this.axisList,b=this.result,d=this.axisIndex;b.length=0;for(var f=a.length;f--;){var g=a[f];g.aabbNeedsUpdate&&g.updateAABB()}c.sortAxisList(a,d);for(var h=0,i=0|a.length;h!==i;h++)for(var j=a[h],k=h+1;i>k;k++){var l=a[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;e.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&b.push(j,l)}return b}},{"../collision/Broadphase":9,"../utils/Utils":47}],14:[function(a,b){function c(a,b,c,e){this.type=c,e=d.defaults(e,{collideConnected:!0,wakeUpBodies:!0}),this.equations=[],this.bodyA=a,this.bodyB=b,this.collideConnected=e.collideConnected,e.wakeUpBodies&&(a&&a.wakeUp(),b&&b.wakeUp())}b.exports=c;var d=a("../utils/Utils");c.prototype.update=function(){throw new Error("method update() not implmemented in this Constraint subclass!")},c.DISTANCE=1,c.GEAR=2,c.LOCK=3,c.PRISMATIC=4,c.REVOLUTE=5,c.prototype.setStiffness=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.stiffness=a,d.needsUpdate=!0}},c.prototype.setRelaxation=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.relaxation=a,d.needsUpdate=!0}}},{"../utils/Utils":47}],15:[function(a,b){function c(a,b,c,g){g=g||{},d.call(this,a,b,d.DISTANCE,g),this.distance=c,this.localAnchorA=f.create(),this.localAnchorB=f.create();var h,i=this.localAnchorA,j=this.localAnchorB;h="undefined"==typeof g.maxForce?Number.MAX_VALUE:g.maxForce;var k=new e(a,b,-h,h);this.equations=[k];var l=f.create(),m=f.create(),n=f.create(),o=this;k.computeGq=function(){{var a=this.bodyA,b=this.bodyB,c=a.position;b.position}return f.rotate(m,i,a.angle),f.rotate(n,j,b.angle),f.add(l,c,n),f.sub(l,l,m),f.sub(l,l,c),f.sub(l,b.position,a.position),f.length(l)-o.distance},this.setMaxForce(h)}var d=a("./Constraint"),e=a("../equations/Equation"),f=a("../math/vec2");b.exports=c,c.prototype=new d;var g=f.create(),h=f.create(),i=f.create();c.prototype.update=function(){var a=this.equations[0],b=this.bodyA,c=this.bodyB,d=(this.distance,b.position,c.position,a.G);f.rotate(h,this.localAnchorA,b.angle),f.rotate(i,this.localAnchorB,c.angle);f.crossLength(h,g),f.crossLength(i,g);f.sub(g,c.position,b.position),f.normalize(g,g),d[0]=-g[0],d[1]=-g[1],d[3]=g[0],d[4]=g[1]},c.prototype.setMaxForce=function(a){var b=this.equations[0];b.minForce=-a,b.maxForce=a},c.prototype.getMaxForce=function(){var a=this.equations[0];return a.maxForce}},{"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],16:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.GEAR,c),this.equations=[new e(a,b,c)],this.angle="number"==typeof c.angle?c.angle:0,this.ratio="number"==typeof c.ratio?c.ratio:1,"number"==typeof c.maxTorque&&this.setMaxTorque(c.maxTorque)}{var d=a("./Constraint"),e=(a("../equations/Equation"),a("../equations/AngleLockEquation"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.update=function(){var a=this.equations[0];a.ratio!==this.ratio&&a.setRatio(this.ratio),a.angle=this.angle},c.prototype.setMaxTorque=function(a){this.equations[0].setMaxTorque(a)},c.prototype.getMaxTorque=function(){return this.equations[0].maxForce}},{"../equations/AngleLockEquation":20,"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],17:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.LOCK,c);var g="undefined"==typeof c.maxForce?Number.MAX_VALUE:c.maxForce,h=c.localOffsetB||e.fromValues(0,0);h=e.fromValues(h[0],h[1]);var i=c.localAngleB||0,j=new f(a,b,-g,g),k=new f(a,b,-g,g),l=new f(a,b,-g,g),m=e.create(),n=e.create(),o=this;j.computeGq=function(){return e.rotate(m,o.localOffsetB,a.angle),e.sub(n,b.position,a.position),e.sub(n,n,m),n[0]},k.computeGq=function(){return e.rotate(m,o.localOffsetB,a.angle),e.sub(n,b.position,a.position),e.sub(n,n,m),n[1]};var p=e.create(),q=e.create();l.computeGq=function(){return e.rotate(p,o.localOffsetB,b.angle-o.localAngleB),e.scale(p,p,-1),e.sub(n,a.position,b.position),e.add(n,n,p),e.rotate(q,p,-Math.PI/2),e.normalize(q,q),e.dot(n,q)},this.localOffsetB=h,this.localAngleB=i,this.equations.push(j,k,l),this.setMaxForce(g)}var d=a("./Constraint"),e=a("../math/vec2"),f=a("../equations/Equation");b.exports=c,c.prototype=new d,c.prototype.setMaxForce=function(a){for(var b=this.equations,c=0;cc)g.scale(e.normalA,i,-1),g.sub(e.contactPointA,j,h.position),g.sub(e.contactPointB,k,o.position),g.scale(n,i,c),g.add(e.contactPointA,e.contactPointA,n),-1==a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!=u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)g.scale(f.normalA,i,1),g.sub(f.contactPointA,j,h.position),g.sub(f.contactPointB,k,o.position),g.scale(n,i,d),g.sub(f.contactPointB,f.contactPointB,n),-1==a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!=u&&a.splice(u,1)}},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(a,b){function c(a,b,c,n,o){o=o||{},d.call(this,a,c,d.REVOLUTE,o);var p=this.maxForce="undefined"!=typeof o.maxForce?o.maxForce:Number.MAX_VALUE;this.pivotA=h.fromValues(b[0],b[1]),this.pivotB=h.fromValues(n[0],n[1]);var q=this.equations=[new e(a,c,-p,p),new e(a,c,-p,p)],r=q[0],s=q[1],t=this;r.computeGq=function(){return h.rotate(i,t.pivotA,a.angle),h.rotate(j,t.pivotB,c.angle),h.add(m,c.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,k)},s.computeGq=function(){return h.rotate(i,t.pivotA,a.angle),h.rotate(j,t.pivotB,c.angle),h.add(m,c.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,l)},s.minForce=r.minForce=-p,s.maxForce=r.maxForce=p,this.motorEquation=new f(a,c),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new g(a,c),this.lowerLimitEquation=new g(a,c),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var d=a("./Constraint"),e=a("../equations/Equation"),f=a("../equations/RotationalVelocityEquation"),g=a("../equations/RotationalLockEquation"),h=a("../math/vec2");b.exports=c;var i=h.create(),j=h.create(),k=h.fromValues(1,0),l=h.fromValues(0,1),m=h.create();c.prototype=new d,c.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],m=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>m)o.angle=m,-1==e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!=r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1==e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!=r&&e.splice(r,1)}h.rotate(i,c,a.angle),h.rotate(j,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-h.crossLength(i,k),f.G[3]=1,f.G[4]=0,f.G[5]=h.crossLength(j,k),g.G[0]=0,g.G[1]=-1,g.G[2]=-h.crossLength(i,l),g.G[3]=0,g.G[4]=1,g.G[5]=h.crossLength(j,l)},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.motorIsEnabled=function(){return!!this.motorEnabled},c.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},c.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},c.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},c.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":30,"./Equation":22}],21:[function(a,b){function c(a,b){d.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=e.create(),this.penetrationVec=e.create(),this.contactPointB=e.create(),this.normalA=e.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.bodyA,f=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=f.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=e.crossLength(g,l),o=e.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,e.add(k,j,h),e.sub(k,k,i),e.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=e.dot(l,k),p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":30,"./Equation":22}],22:[function(a,b){function c(a,b,d,e){this.minForce="undefined"==typeof d?-Number.MAX_VALUE:d,this.maxForce="undefined"==typeof e?Number.MAX_VALUE:e,this.bodyA=a,this.bodyB=b,this.stiffness=c.DEFAULT_STIFFNESS,this.relaxation=c.DEFAULT_RELAXATION,this.G=new h.ARRAY_TYPE(6);for(var f=0;6>f;f++)this.G[f]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}function d(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e}function e(a){return a.sleepState===i.SLEEPING?0:a.invMass}function f(a){return a.sleepState===i.SLEEPING?0:a.invInertia}b.exports=c;var g=a("../math/vec2"),h=a("../utils/Utils"),i=a("../objects/Body");c.prototype.constructor=c,c.DEFAULT_STIFFNESS=1e6,c.DEFAULT_RELAXATION=4,c.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},c.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var j=g.create(),k=g.create();c.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,e=(b.position,c.position,b.angle),f=c.angle;return d(a,j,e,k,f)+this.offset},c.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,e=b.velocity,f=c.velocity,g=b.angularVelocity,h=c.angularVelocity;return d(a,e,g,f,h)+this.relativeVelocity},c.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,e=b.vlambda,f=c.vlambda,g=b.wlambda,h=c.wlambda;return d(a,e,g,f,h)};var l=g.create(),m=g.create();c.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,h=a.angularForce,i=b.force,j=b.angularForce,k=e(a),n=e(b),o=f(a),p=f(b),q=this.G;return g.scale(l,c,k),g.scale(m,i,n),d(q,l,h*o,m,j*p)},c.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=e(a),d=e(b),g=f(a),h=f(b),i=this.G;return i[0]*i[0]*c+i[1]*i[1]*c+i[2]*i[2]*g+i[3]*i[3]*d+i[4]*i[4]*d+i[5]*i[5]*h};{var n=g.create(),o=g.create(),p=g.create();g.create(),g.create(),g.create()}c.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,d=n,h=o,i=p,j=e(b),k=e(c),l=f(b),m=f(c),q=this.G;h[0]=q[0],h[1]=q[1],i[0]=q[3],i[1]=q[4],g.scale(d,h,j*a),g.add(b.vlambda,b.vlambda,d),b.wlambda+=l*q[2]*a,g.scale(d,i,k*a),g.add(c.vlambda,c.vlambda,d),c.wlambda+=m*q[5]*a},c.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":47}],23:[function(a,b){function c(a,b,c){e.call(this,a,b,-c,c),this.contactPointA=d.create(),this.contactPointB=d.create(),this.t=d.create(),this.contactEquation=null,this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}{var d=a("../math/vec2"),e=a("./Equation");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},c.prototype.getSlipForce=function(){return this.maxForce},c.prototype.computeB=function(a,b,c){var e=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-d.crossLength(e,g),h[3]=g[0],h[4]=g[1],h[5]=d.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":30,"../utils/Utils":47,"./Equation":22}],24:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var e=this.G;e[2]=1,e[5]=-1}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c;var f=e.create(),g=e.create(),h=e.fromValues(1,0),i=e.fromValues(0,1);c.prototype.computeGq=function(){return e.rotate(f,h,this.bodyA.angle+this.angle),e.rotate(g,i,this.bodyB.angle),e.dot(f,g)}},{"../math/vec2":30,"./Equation":22}],25:[function(a,b){function c(a,b){d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":30,"./Equation":22}],26:[function(a,b){var c=function(){};b.exports=c,c.prototype={constructor:c,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{}],27:[function(a,b){function c(a,b,f){if(f=f||{},!(a instanceof d&&b instanceof d))throw new Error("First two arguments must be Material instances.");this.id=c.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof f.friction?Number(f.friction):.3,this.restitution="undefined"!=typeof f.restitution?Number(f.restitution):0,this.stiffness="undefined"!=typeof f.stiffness?Number(f.stiffness):e.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof f.relaxation?Number(f.relaxation):e.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof f.frictionStiffness?Number(f.frictionStiffness):e.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof f.frictionRelaxation?Number(f.frictionRelaxation):e.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof f.surfaceVelocity?Number(f.surfaceVelocity):0}var d=a("./Material"),e=a("../equations/Equation");b.exports=c,c.idCounter=0},{"../equations/Equation":22,"./Material":28}],28:[function(a,b){function c(){this.id=c.idCounter++}b.exports=c,c.idCounter=0},{}],29:[function(a,b){var c={};c.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},c.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var d=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(c._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&c._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return d.push(e[0],e[1],e[2]),d},c._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},c._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=c},{}],30:[function(a,b){var c=a("../../build/vec2").vec2;c.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},c.crossVZ=function(a,b,d){return c.rotate(a,b,-Math.PI/2),c.scale(a,a,d),a},c.crossZV=function(a,b,d){return c.rotate(a,d,Math.PI/2),c.scale(a,a,b),a},c.rotate=function(a,b,c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g},c.rotate90cw=function(a,b){a[0]=b[1],a[1]=-b[0]},c.toLocalFrame=function(a,b,d,e){c.copy(a,b),c.sub(a,a,d),c.rotate(a,a,-e)},c.toGlobalFrame=function(a,b,d,e){c.copy(a,b),c.rotate(a,a,e),c.add(a,a,d)},c.centroid=function(a,b,d,e){return c.add(a,b,d),c.add(a,a,e),c.scale(a,a,1/3),a},b.exports=c},{"../../build/vec2":1}],31:[function(a,b){function c(a){a=a||{},h.call(this),this.id=++c._idCounter,this.world=null,this.shapes=[],this.shapeOffsets=[],this.shapeAngles=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.fixedRotation=!!a.fixedRotation||!1,this.position=d.fromValues(0,0),a.position&&d.copy(this.position,a.position),this.interpolatedPosition=d.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=d.fromValues(0,0),this.previousAngle=0,this.velocity=d.fromValues(0,0),a.velocity&&d.copy(this.velocity,a.velocity),this.vlambda=d.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=d.create(),a.force&&d.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.motionState=0===this.mass?c.STATIC:c.DYNAMIC,this.boundingRadius=0,this.aabb=new g,this.aabbNeedsUpdate=!0,this.allowSleep=!0,this.wantsToSleep=!1,this.sleepState=c.AWAKE,this.sleepSpeedLimit=.2,this.sleepTimeLimit=1,this.gravityScale=1,this.timeLastSleepy=0,this.concavePath=null,this.lastDampingScale=1,this.lastAngularDampingScale=1,this.lastDampingTimeStep=-1,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var d=a("../math/vec2"),e=a("poly-decomp"),f=a("../shapes/Convex"),g=a("../collision/AABB"),h=a("../events/EventEmitter");b.exports=c,c.prototype=new h,c._idCounter=0,c.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},c.prototype.getArea=function(){for(var a=0,b=0;be&&(e=h+i)}this.boundingRadius=e},c.prototype.addShape=function(a,b,c){c=c||0,b=b?d.fromValues(b[0],b[1]):d.fromValues(0,0),this.shapes.push(a),this.shapeOffsets.push(b),this.shapeAngles.push(c),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},c.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.shapeOffsets.splice(b,1),this.shapeAngles.splice(b,1),this.aabbNeedsUpdate=!0,!0):!1},c.prototype.updateMassProperties=function(){if(this.motionState===c.STATIC||this.motionState===c.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,e=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=a[g],i=d.squaredLength(this.shapeOffsets[g]),j=h.computeMomentOfInertia(e);f+=j+e*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass}};var k=d.create();c.prototype.applyForce=function(a,b){var c=k;d.sub(c,b,this.position),d.add(this.force,this.force,a);var e=d.crossLength(c,a);this.angularForce+=e},c.prototype.toLocalFrame=function(a,b){d.toLocalFrame(a,b,this.position,this.angle)},c.prototype.toWorldFrame=function(a,b){d.toGlobalFrame(a,b,this.position,this.angle)},c.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var g=new e.Polygon;if(g.vertices=a,g.makeCCW(),"number"==typeof b.removeCollinearPoints&&g.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!g.isSimple())return!1;this.concavePath=g.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=c.AWAKE):(this.idleTime+=e,this.sleepState=c.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},c.prototype.getVelocityFromPosition=function(a,b){return a=a||d.create(),d.sub(a,this.position,this.previousPosition),d.scale(a,a,1/b),a},c.prototype.getAngularVelocityFromPosition=function(a){return(this.angle-this.previousAngle)/a},c.sleepyEvent={type:"sleepy"},c.sleepEvent={type:"sleep"},c.wakeUpEvent={type:"wakeup"},c.DYNAMIC=1,c.STATIC=2,c.KINEMATIC=4,c.AWAKE=0,c.SLEEPY=1,c.SLEEPING=2},{"../collision/AABB":8,"../events/EventEmitter":26,"../math/vec2":30,"../shapes/Convex":36,"poly-decomp":6}],32:[function(a,b){function c(a,b,c){c=e.defaults(c,{restLength:1,stiffness:100,damping:1,localAnchorA:[0,0],localAnchorB:[0,0]}),this.restLength=c.restLength,this.stiffness=c.stiffness,this.damping=c.damping,this.bodyA=a,this.bodyB=b,this.localAnchorA=d.create(),d.copy(this.localAnchorA,c.localAnchorA),this.localAnchorB=d.create(),d.copy(this.localAnchorB,c.localAnchorB),c.worldAnchorA&&this.setWorldAnchorA(c.worldAnchorA),c.worldAnchorB&&this.setWorldAnchorB(c.worldAnchorB)}var d=a("../math/vec2"),e=a("../utils/Utils");b.exports=c,c.prototype.setWorldAnchorA=function(a){this.bodyA.toLocalFrame(this.localAnchorA,a)},c.prototype.setWorldAnchorB=function(a){this.bodyB.toLocalFrame(this.localAnchorB,a)},c.prototype.getWorldAnchorA=function(a){this.bodyA.toWorldFrame(a,this.localAnchorA)},c.prototype.getWorldAnchorB=function(a){this.bodyB.toWorldFrame(a,this.localAnchorB)};var f=d.create(),g=d.create(),h=d.create(),i=d.create(),j=d.create(),k=d.create(),l=d.create(),m=d.create(),n=d.create();c.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restLength,e=this.bodyA,o=this.bodyB,p=f,q=g,r=h,s=i,t=n,u=j,v=k,w=l,x=m;this.getWorldAnchorA(u),this.getWorldAnchorB(v),d.sub(w,u,e.position),d.sub(x,v,o.position),d.sub(p,v,u);var y=d.len(p);d.normalize(q,p),d.sub(r,o.velocity,e.velocity),d.crossZV(t,o.angularVelocity,x),d.add(r,r,t),d.crossZV(t,e.angularVelocity,w),d.sub(r,r,t),d.scale(s,q,-a*(y-c)-b*d.dot(r,q)),d.sub(e.force,e.force,s),d.add(o.force,o.force,s); var z=d.crossLength(w,s),A=d.crossLength(x,s);e.angularForce-=z,o.angularForce+=A}},{"../math/vec2":30,"../utils/Utils":47}],33:[function(a,b){b.exports={AABB:a("./collision/AABB"),AngleLockEquation:a("./equations/AngleLockEquation"),Body:a("./objects/Body"),Broadphase:a("./collision/Broadphase"),Capsule:a("./shapes/Capsule"),Circle:a("./shapes/Circle"),Constraint:a("./constraints/Constraint"),ContactEquation:a("./equations/ContactEquation"),ContactMaterial:a("./material/ContactMaterial"),Convex:a("./shapes/Convex"),DistanceConstraint:a("./constraints/DistanceConstraint"),Equation:a("./equations/Equation"),EventEmitter:a("./events/EventEmitter"),FrictionEquation:a("./equations/FrictionEquation"),GearConstraint:a("./constraints/GearConstraint"),GridBroadphase:a("./collision/GridBroadphase"),GSSolver:a("./solver/GSSolver"),Heightfield:a("./shapes/Heightfield"),Line:a("./shapes/Line"),LockConstraint:a("./constraints/LockConstraint"),Material:a("./material/Material"),Narrowphase:a("./collision/Narrowphase"),NaiveBroadphase:a("./collision/NaiveBroadphase"),Particle:a("./shapes/Particle"),Plane:a("./shapes/Plane"),RevoluteConstraint:a("./constraints/RevoluteConstraint"),PrismaticConstraint:a("./constraints/PrismaticConstraint"),Rectangle:a("./shapes/Rectangle"),RotationalVelocityEquation:a("./equations/RotationalVelocityEquation"),SAPBroadphase:a("./collision/SAPBroadphase"),Shape:a("./shapes/Shape"),Solver:a("./solver/Solver"),Spring:a("./objects/Spring"),Utils:a("./utils/Utils"),World:a("./world/World"),vec2:a("./math/vec2"),version:a("../package.json").version}},{"../package.json":7,"./collision/AABB":8,"./collision/Broadphase":9,"./collision/GridBroadphase":10,"./collision/NaiveBroadphase":11,"./collision/Narrowphase":12,"./collision/SAPBroadphase":13,"./constraints/Constraint":14,"./constraints/DistanceConstraint":15,"./constraints/GearConstraint":16,"./constraints/LockConstraint":17,"./constraints/PrismaticConstraint":18,"./constraints/RevoluteConstraint":19,"./equations/AngleLockEquation":20,"./equations/ContactEquation":21,"./equations/Equation":22,"./equations/FrictionEquation":23,"./equations/RotationalVelocityEquation":25,"./events/EventEmitter":26,"./material/ContactMaterial":27,"./material/Material":28,"./math/vec2":30,"./objects/Body":31,"./objects/Spring":32,"./shapes/Capsule":34,"./shapes/Circle":35,"./shapes/Convex":36,"./shapes/Heightfield":37,"./shapes/Line":38,"./shapes/Particle":39,"./shapes/Plane":40,"./shapes/Rectangle":41,"./shapes/Shape":42,"./solver/GSSolver":43,"./solver/Solver":44,"./utils/Utils":47,"./world/World":51}],34:[function(a,b){function c(a,b){this.length=a||1,this.radius=b||1,d.call(this,d.CAPSULE)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius,c=this.length+b,d=2*b;return a*(d*d+c*c)/12},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius+this.length/2},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius+2*this.radius*this.length};var f=e.create();c.prototype.computeAABB=function(a,b,c){var d=this.radius;e.set(f,this.length,0),e.rotate(f,f,c),e.set(a.upperBound,Math.max(f[0]+d,-f[0]+d),Math.max(f[1]+d,-f[1]+d)),e.set(a.lowerBound,Math.min(f[0]-d,-f[0]-d),Math.min(f[1]-d,-f[1]-d)),e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b)}},{"../math/vec2":30,"./Shape":42}],35:[function(a,b){function c(a){this.radius=a||1,d.call(this,d.CIRCLE)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},c.prototype.computeAABB=function(a,b){var c=this.radius;e.set(a.upperBound,c,c),e.set(a.lowerBound,-c,-c),b&&(e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b))}},{"../math/vec2":30,"./Shape":42}],36:[function(a,b){function c(a){this.vertices=[];for(var b=0;bg;f=g,g++){var h=this.vertices[f],i=this.vertices[g],j=Math.abs(e.crossLength(h,i)),k=e.dot(i,i)+e.dot(i,h)+e.dot(h,h);b+=j*k,c+=j}return a/6*(b/c)},c.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=e.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},c.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},c.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,d=0;d!==a.length;d++){var e=a[d],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=c.triangleArea(f,g,h);this.area+=i}},c.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c)}},{"../math/polyk":29,"../math/vec2":30,"./Shape":42,"poly-decomp":6}],37:[function(a,b){function c(a,b){if(b=e.defaults(b,{maxValue:null,minValue:null,elementWidth:.1}),null===b.minValue||null===b.maxValue){b.maxValue=a[0],b.minValue=a[0];for(var c=0;c!==a.length;c++){var f=a[c];f>b.maxValue&&(b.maxValue=f),f=v*v)break}for(c.updateMultipliers(k,q,1/a),w=0;w!==l;w++){var y=k[w];if(y instanceof h){var z=y.contactEquation.multiplier*y.frictionCoefficient;y.maxForce=z,y.minForce=-z}}}for(f=0;f!==i;f++){for(v=0,w=0;w!==l;w++){u=k[w];var x=c.iterateEquation(w,u,u.epsilon,s,r,q,p,a,f);v+=Math.abs(x)}if(this.usedIterations++,m>=v*v)break}for(t=0;t!==o;t++)n[t].addConstraintVelocity();c.updateMultipliers(k,q,1/a)}},c.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},c.iterateEquation=function(a,b,c,d,e,f,g,h){var i=d[a],j=e[a],k=f[a],l=b.computeGWlambda(),m=b.maxForce,n=b.minForce;g&&(i=0);var o=j*(i-l-c*k),p=k+o;return n*h>p?o=n*h-k:p>m*h&&(o=m*h-k),f[a]+=o,b.addToWlambda(o),o}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":47,"./Solver":44}],44:[function(a,b){function c(a,b){a=a||{},d.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var d=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=c,c.prototype=new d,c.prototype.solve=function(){throw new Error("Solver.solve should be implemented by subclasses!")};var e={bodies:[]};c.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),e.bodies.length=0,b.getBodies(e.bodies),e.bodies.length&&this.solve(a,e))},c.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},c.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},c.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},c.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},c.prototype.removeAllEquations=function(){this.equations.length=0},c.GS=1,c.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":47}],45:[function(a,b){function c(){this.overlappingLastState=new e,this.overlappingCurrentState=new e,this.recordPool=[],this.tmpDict=new e,this.tmpArray1=[]}function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}{var e=a("./TupleDictionary");a("./Utils")}b.exports=c,c.prototype.tick=function(){for(var a=this.overlappingLastState,b=this.overlappingCurrentState,c=b.keys.length;c--;){var d=b.keys[c];this.recordPool.push(b.getByKey(d))}a.reset(),a.copy(b),b.reset()},c.prototype.setOverlapping=function(a,b,c,e){var f=(this.overlappingLastState,this.overlappingCurrentState);if(!f.get(b.id,e.id)){var g;g=this.recordPool.length?this.recordPool.pop():new d(a,b,c,e),f.set(b.id,e.id,g)}},c.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingLastState,this.overlappingCurrentState,a)},c.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingCurrentState,this.overlappingLastState,a)},c.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},c.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id;return!this.overlappingLastState.get(c,d)&&!!this.overlappingCurrentState.get(c,d)},c.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.keys[d];b.push(e.bodyA,e.bodyB)}return c.reset(),b},d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{"./TupleDictionary":46,"./Utils":47}],46:[function(a,b){function c(){this.data=[],this.keys=[]}var d=a("./Utils");b.exports=c,c.prototype.getKey=function(a,b){return a=0|a,b=0|b,(0|a)===(0|b)?-1:0|((0|a)>(0|b)?a<<16|65535&b:b<<16|65535&a)},c.prototype.getByKey=function(a){return a=0|a,this.data[a]},c.prototype.get=function(a,b){a=0|a,b=0|b;var c=0|this.getKey(a,b);return this.data[c]},c.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");a=0|a,b=0|b;var d=0|this.getKey(a,b);return this.get(a,b)||this.keys.push(d),this.data[d]=c,d},c.prototype.reset=function(){for(var a=this.data,b=this.keys,c=0|b.length;c--;){var d=0|b[c];a[d]=void 0}b.length=0},c.prototype.copy=function(a){this.reset(),d.appendArray(this.keys,a.keys);for(var b=0|a.keys.length;b--;){var c=0|a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":47}],47:[function(a,b){function c(){}b.exports=c,c.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},c.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;e>d;d++)a[d]=a[d+c];a.length=e},c.ARRAY_TYPE=window.Float32Array||Array,c.extend=function(a,b){for(var c in b)a[c]=b[c]},c.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{}],48:[function(a,b){function c(){this.equations=[],this.bodies=[]}var d=a("../objects/Body");b.exports=c,c.prototype.reset=function(){this.equations.length=this.bodies.length=0};var e=[];c.prototype.getBodies=function(a){var b=a||[],c=this.equations;e.length=0;for(var d=0;d!==c.length;d++){var f=c[d];-1===e.indexOf(f.bodyA.id)&&(b.push(f.bodyA),e.push(f.bodyA.id)),-1===e.indexOf(f.bodyB.id)&&(b.push(f.bodyB),e.push(f.bodyB.id))}return b},c.prototype.wantsToSleep=function(){for(var a=0;a=0;v-=2)for(var B=z.length-2;B>=0;B-=2)(A[v]===z[B]&&A[v+1]===z[B+1]||A[v+1]===z[B]&&A[v]===z[B+1])&&z.splice(B,2);var C=p.length;for(v=0;v!==C;v++){var D=p[v];if(!D.collideConnected)for(var B=z.length-2;B>=0;B-=2)(D.bodyA===z[B]&&D.bodyB===z[B+1]||D.bodyB===z[B]&&D.bodyA===z[B+1])&&z.splice(B,2)}this.postBroadphaseEvent.pairs=z,this.emit(this.postBroadphaseEvent),o.reset(this);for(var v=0,E=z.length;v!==E;v+=2)for(var F=z[v],G=z[v+1],I=0,J=F.shapes.length;I!==J;I++)for(var K=F.shapes[I],M=F.shapeOffsets[I],N=F.shapeAngles[I],O=0,Q=G.shapes.length;O!==Q;O++){var R=G.shapes[O],S=G.shapeOffsets[O],T=G.shapeAngles[O],U=this.defaultContactMaterial;if(K.material&&R.material){var V=this.getContactMaterial(K.material,R.material);V&&(U=V)}this.runNarrowphase(o,F,K,M,N,G,R,S,T,U,this.frictionGravity)}for(var v=0;v!==m;v++){var W=i[v];W._wakeUpAfterNarrowphase&&(W.wakeUp(),W._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(P);for(var X=this.endContactEvent,O=P.length;O--;){var Y=P[O];X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.bodyA=Y.bodyA,X.bodyB=Y.bodyA,this.emit(X)}}this.overlapKeeper.tick();var Z=this.preSolveEvent;Z.contactEquations=o.contactEquations,Z.frictionEquations=o.frictionEquations,this.emit(Z);var C=p.length;for(v=0;v!==C;v++)p[v].update();if(o.contactEquations.length||o.frictionEquations.length||p.length)if(this.islandSplit){for(t.equations.length=0,H.appendArray(t.equations,o.contactEquations),H.appendArray(t.equations,o.frictionEquations),v=0;v!==C;v++)H.appendArray(t.equations,p[v].equations);t.split(this);for(var v=0;v!==t.islands.length;v++){var $=t.islands[v];$.equations.length&&l.solveIsland(a,$)}}else{for(l.addEquations(o.contactEquations),l.addEquations(o.frictionEquations),v=0;v!==C;v++)l.addEquations(p[v].equations);this.solveConstraints&&l.solve(a,this),l.removeAllEquations()}for(var v=0;v!==m;v++){var W=i[v];W.sleepState!==s.SLEEPING&&W.motionState!==s.STATIC&&c.integrateBody(W,a)}for(var v=0;v!==m;v++)i[v].setZeroForce();if(f&&(d=performance.now(),e.lastStepTime=d-b),this.emitImpactEvent&&this.has("impact"))for(var _=this.impactEvent,v=0;v!==o.contactEquations.length;v++){var ab=o.contactEquations[v];ab.firstImpact&&(_.bodyA=ab.bodyA,_.bodyB=ab.bodyB,_.shapeA=ab.shapeA,_.shapeB=ab.shapeB,_.contactEquation=ab,this.emit(_))}if(this.enableBodySleeping)for(v=0;v!==m;v++)i[v].sleepTick(this.time,!1,a);else if(this.enableIslandSleeping&&this.islandSplit){for(v=0;v!==m;v++)i[v].sleepTick(this.time,!0,a);for(var v=0;v0,a.frictionCoefficient=k.friction;var o;o=b.motionState===s.STATIC||b.motionState===s.KINEMATIC?f.mass:f.motionState===s.STATIC||f.motionState===s.KINEMATIC?b.mass:b.mass*f.mass/(b.mass+f.mass),a.slipForce=k.friction*l*o,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation;var p=a[c.type|g.type],q=0;if(p){var r=c.sensor||g.sensor,t=a.frictionEquations.length;q=c.type=2*w&&(b._wakeUpAfterNarrowphase=!0)}if(f.allowSleep&&f.motionState===s.DYNAMIC&&f.sleepState===s.SLEEPING&&b.sleepState===s.AWAKE&&b.motionState!==s.STATIC){var x=j.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),y=Math.pow(b.sleepSpeedLimit,2);x>=2*y&&(f._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,f,g),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,g)){var z=this.beginContactEvent;if(z.shapeA=c,z.shapeB=g,z.bodyA=b,z.bodyB=f,z.contactEquations.length=0,"number"==typeof q)for(var A=a.contactEquations.length-q;A1)for(var A=a.frictionEquations.length-u;A width) @@ -44691,6 +44779,13 @@ Phaser.AnimationParser = { uuid )); + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], { + x: frames[i].frame.x, + y: frames[i].frame.y, + width: frames[i].frame.w, + height: frames[i].frame.h + }); + if (frames[i].trimmed) { newFrame.setTrim( @@ -44749,6 +44844,13 @@ Phaser.AnimationParser = { uuid )); + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], { + x: frames[key].frame.x, + y: frames[key].frame.y, + width: frames[key].frame.w, + height: frames[key].frame.h + }); + if (frames[key].trimmed) { newFrame.setTrim( @@ -44828,7 +44930,13 @@ Phaser.AnimationParser = { newFrame = data.addFrame(new Phaser.Frame(i, x, y, width, height, name, uuid)); - // Trimmed? + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], { + x: x, + y: y, + width: width, + height: height + }); + // Trimmed? if (frameX !== null || frameY !== null) { newFrame.setTrim(true, width, height, frameX, frameY, frameWidth, frameHeight); @@ -45099,6 +45207,7 @@ Phaser.Cache.prototype = { this._images[key] = { url: url, data: data, spriteSheet: true, frameWidth: frameWidth, frameHeight: frameHeight, margin: margin, spacing: spacing }; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); this._images[key].frameData = Phaser.AnimationParser.spriteSheet(this.game, key, frameWidth, frameHeight, frameMax, margin, spacing); @@ -45134,6 +45243,7 @@ Phaser.Cache.prototype = { this._images[key] = { url: url, data: data, spriteSheet: true }; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); if (format == Phaser.Loader.TEXTURE_ATLAS_JSON_ARRAY) { @@ -45166,6 +45276,7 @@ Phaser.Cache.prototype = { this._images[key] = { url: url, data: data, spriteSheet: true }; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); Phaser.LoaderParser.bitmapFont(this.game, xmlData, key, xSpacing, ySpacing); @@ -45267,6 +45378,7 @@ Phaser.Cache.prototype = { this._images[key].frame = new Phaser.Frame(0, 0, 0, data.width, data.height, key, this.game.rnd.uuid()); PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); }, diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js index 4e4920edc..6bbc9cf61 100644 --- a/build/custom/phaser-arcade-physics.min.js +++ b/build/custom/phaser-arcade-physics.min.js @@ -1,17 +1,17 @@ -/* Phaser (AP) v2.1.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ -(function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v1.6",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,b.Float32Array=Float32Array||Array,b.Uint16Array=Uint16Array||Array,b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.dontSayHello=!1,b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://pixijs.com %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://pixjs.com");b.dontSayHello=!0}},b.Point=function(a,b){this.x=a||0,this.y=b||0},b.Point.prototype.clone=function(){return new b.Point(this.x,this.y)},b.Point.prototype.set=function(a,b){this.x=a||0,this.y=b||(0!==b?this.x:0)},b.Point.prototype.constructor=b.Point,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this.points=a},b.Polygon.prototype.clone=function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Circle=function(a,b,c){this.x=a||0,this.y=b||0,this.radius=c||0},b.Circle.prototype.clone=function(){return new b.Circle(this.x,this.y,this.radius)},b.Circle.prototype.contains=function(a,b){if(this.radius<=0)return!1;var c=this.x-a,d=this.y-b,e=this.radius*this.radius;return c*=c,d*=d,e>=c+d},b.Circle.prototype.getBounds=function(){return new b.Rectangle(this.x-this.radius,this.y-this.radius,this.width,this.height)},b.Circle.prototype.constructor=b.Circle,b.Ellipse=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Ellipse.prototype.clone=function(){return new b.Ellipse(this.x,this.y,this.width,this.height)},b.Ellipse.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=(a-this.x)/this.width,d=(b-this.y)/this.height;return c*=c,d*=d,1>=c+d},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},b.Ellipse.prototype.constructor=b.Ellipse,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new Float32Array(9));var b=this.array;return a?(b[0]=this.a,b[1]=this.c,b[2]=0,b[3]=this.b,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.b,b[2]=this.tx,b[3]=this.c,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},b.identityMatrix=new b.Matrix,b.determineMatrixArrayType=function(){return"undefined"!=typeof Float32Array?Float32Array:Array},b.Matrix2=b.determineMatrixArrayType(),b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this.color=[],this.dynamic=!0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.setInteractive=function(a){this.interactive=a},Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+" The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.children.indexOf(a),d=this.children.indexOf(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(a>=0&&a0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.getBounds=function(a){if(0===this.children.length)return b.EmptyRectangle;if(a){var c=this.worldTransform;this.worldTransform=a,this.updateTransform(),this.worldTransform=c}for(var d,e,f,g=1/0,h=1/0,i=-1/0,j=-1/0,k=!1,l=0,m=this.children.length;m>l;l++){var n=this.children[l];n.visible&&(k=!0,d=this.children[l].getBounds(a),g=ge?i:e,j=j>f?j:f)}if(!k)return b.EmptyRectangle;var o=this._bounds;return o.x=g,o.y=h,o.width=i-g,o.height=j-h,o},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a.context);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a.context)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,a.baseTexture.hasLoaded?this.onTextureUpdate():(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!==a.baseTexture?(this.textureChange=!0,this.texture=a):this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.c,k=h.b,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),this.texture.valid){a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,0|this.worldTransform.tx,0|this.worldTransform.ty):a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,this.worldTransform.tx,this.worldTransform.ty),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var c=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,d=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)}for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fe?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global};for(var c=0,d=["ms","moz","webkit","o"],e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget=function(){var a={};this.addEventListener=this.on=function(b,c){void 0===a[b]&&(a[b]=[]),-1===a[b].indexOf(c)&&a[b].unshift(c)},this.dispatchEvent=this.emit=function(b){if(a[b.type]&&a[b.type].length)for(var c=a[b.type].length-1;c>=0;c--)a[b.type][c](b)},this.removeEventListener=this.off=function(b,c){if(void 0!==a[b]){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}},this.removeAllEventListeners=function(b){var c=a[b];c&&(c.length=0)}},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return window.console.log("PIXI Warning: shape too complex to fill"),[];for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.attributes=[],this.init()},b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA; +/* Phaser (AP) v2.0.7 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +(function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v1.6",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.dontSayHello=!1,b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://pixijs.com %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://pixjs.com");b.dontSayHello=!0}},b.Point=function(a,b){this.x=a||0,this.y=b||0},b.Point.prototype.clone=function(){return new b.Point(this.x,this.y)},b.Point.prototype.set=function(a,b){this.x=a||0,this.y=b||(0!==b?this.x:0)},b.Point.prototype.constructor=b.Point,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this.points=a},b.Polygon.prototype.clone=function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Circle=function(a,b,c){this.x=a||0,this.y=b||0,this.radius=c||0},b.Circle.prototype.clone=function(){return new b.Circle(this.x,this.y,this.radius)},b.Circle.prototype.contains=function(a,b){if(this.radius<=0)return!1;var c=this.x-a,d=this.y-b,e=this.radius*this.radius;return c*=c,d*=d,e>=c+d},b.Circle.prototype.getBounds=function(){return new b.Rectangle(this.x-this.radius,this.y-this.radius,this.width,this.height)},b.Circle.prototype.constructor=b.Circle,b.Ellipse=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Ellipse.prototype.clone=function(){return new b.Ellipse(this.x,this.y,this.width,this.height)},b.Ellipse.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=(a-this.x)/this.width,d=(b-this.y)/this.height;return c*=c,d*=d,1>=c+d},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},b.Ellipse.prototype.constructor=b.Ellipse,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new Float32Array(9));var b=this.array;return a?(b[0]=this.a,b[1]=this.c,b[2]=0,b[3]=this.b,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.b,b[2]=this.tx,b[3]=this.c,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},b.identityMatrix=new b.Matrix,b.determineMatrixArrayType=function(){return"undefined"!=typeof Float32Array?Float32Array:Array},b.Matrix2=b.determineMatrixArrayType(),b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this.color=[],this.dynamic=!0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.setInteractive=function(a){this.interactive=a},Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+" The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.children.indexOf(a),d=this.children.indexOf(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(a>=0&&a0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.getBounds=function(a){if(0===this.children.length)return b.EmptyRectangle;if(a){var c=this.worldTransform;this.worldTransform=a,this.updateTransform(),this.worldTransform=c}for(var d,e,f,g=1/0,h=1/0,i=-1/0,j=-1/0,k=!1,l=0,m=this.children.length;m>l;l++){var n=this.children[l];n.visible&&(k=!0,d=this.children[l].getBounds(a),g=ge?i:e,j=j>f?j:f)}if(!k)return b.EmptyRectangle;var o=this._bounds;return o.x=g,o.y=h,o.width=i-g,o.height=j-h,o},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a.context);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a.context)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,a.baseTexture.hasLoaded?this.onTextureUpdate():(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!==a.baseTexture?(this.textureChange=!0,this.texture=a):this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.c,k=h.b,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),this.texture.valid){a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,0|this.worldTransform.tx,0|this.worldTransform.ty):a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,this.worldTransform.tx,this.worldTransform.ty),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var c=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,d=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)}for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fe?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global};for(var c=0,d=["ms","moz","webkit","o"],e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget=function(){var a={};this.addEventListener=this.on=function(b,c){void 0===a[b]&&(a[b]=[]),-1===a[b].indexOf(c)&&a[b].unshift(c)},this.dispatchEvent=this.emit=function(b){if(a[b.type]&&a[b.type].length)for(var c=a[b.type].length-1;c>=0;c--)a[b.type][c](b)},this.removeEventListener=this.off=function(b,c){if(void 0!==a[b]){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}},this.removeAllEventListeners=function(b){var c=a[b];c&&(c.length=0)}},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return window.console.log("PIXI Warning: shape too complex to fill"),[];for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.attributes=[],this.init()},b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA; if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]||b.createWebGLTexture(a.value.baseTexture,c)),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec2 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;"," vColor = vec4(color * aColor.x, aColor.x);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j6&&(h.points.length>10?(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g)):(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildPoly(h,g))),h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))):(g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,d)),d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o}var e=a.points,f=e[0],g=e[1],h=e[2],i=e[3],j=e[4],k=[];if(k.push(f,g+j),k=k.concat(d(f,g+i-j,f,g+i,f+j,g+i)),k=k.concat(d(f+h-j,g+i,f+h,g+i,f+h,g+i-j)),k=k.concat(d(f+h,g+j,f+h,g,f+h-j,g)),k=k.concat(d(f+j,g,f,g,f,g+j)),a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6,t=b.PolyK.Triangulate(k),u=0;for(u=0;uk;k++)q.push(e,f,n,o,p,m),q.push(e+Math.sin(j*k)*g,f+Math.cos(j*k)*h,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(e+Math.sin(j*k)*g,f+Math.cos(j*k)*h);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d),n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i)}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.lastIndex=0,this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[],this.lastIndex=0},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.WebGLRenderer=function(a,c,d,e,f,g){b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.transparent=!!e,this.preserveDrawingBuffer=g,this.width=a||800,this.height=c||600,this.view=d||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.contextLost=this.handleContextLost.bind(this),this.contextRestoredLost=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLost,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredLost,!1),this.options={alpha:this.transparent,antialias:!!f,premultipliedAlpha:!!e,stencil:!0,preserveDrawingBuffer:g};var h=null;if(["experimental-webgl","webgl"].forEach(function(a){try{h=h||this.view.getContext(a,this.options)}catch(b){}},this),!h)throw new Error("This browser does not support webGL. Try using the canvas renderer"+this);this.gl=h,this.glContextId=h.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=h,b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[h.SRC_ALPHA,h.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[h.DST_COLOR,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[h.SRC_ALPHA,h.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[h.ONE,h.ONE_MINUS_SRC_ALPHA]),this.projection=new b.Point,this.projection.x=this.width/2,this.projection.y=-this.height/2,this.offset=new b.Point(0,0),this.resize(this.width,this.height),this.contextLost=!1,this.shaderManager=new b.WebGLShaderManager(h),this.spriteBatch=new b.WebGLSpriteBatch(h),this.maskManager=new b.WebGLMaskManager(h),this.filterManager=new b.WebGLFilterManager(h,this.transparent),this.stencilManager=new b.WebGLStencilManager(h),this.blendModeManager=new b.WebGLBlendModeManager(h),this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,h.useProgram(this.shaderManager.defaultShader.program),h.disable(h.DEPTH_TEST),h.disable(h.CULL_FACE),h.enable(h.BLEND),h.colorMask(!0,!0,!0,this.transparent)},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),b.WebGLRenderer.updateTextures(),a.updateTransform(),a._interactive&&(a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)));var c=this.gl;c.viewport(0,0,this.width,this.height),c.bindFramebuffer(c.FRAMEBUFFER,null),this.transparent?c.clearColor(0,0,0,0):c.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),c.clear(c.COLOR_BUFFER_BIT),this.renderDisplayObject(a,this.projection),a.interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this))}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.currentBlendMode=9999,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.updateTextures=function(){var a=0;for(a=0;a=0;c--){var d=a._glTextures[c],e=b.glContexts[c];e&&d&&e.deleteTexture(d)}a._glTextures.length=0},b.WebGLRenderer.updateTextureFrame=function(a){a._updateWebGLuvs()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a,this.height=b,this.view.width=a,this.view.height=b,this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2,this.projection.y=-this.height/2},b.createWebGLTexture=function(a,c){return a.hasLoaded&&(a._glTextures[c.id]=c.createTexture(),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),c.bindTexture(c.TEXTURE_2D,null),a._dirty[c.id]=!1),a._glTextures[c.id]},b.updateWebGLTexture=function(a,c){a._glTextures[c.id]&&(c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1)},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){try{this.gl=this.view.getContext("experimental-webgl",this.options)}catch(a){try{this.gl=this.view.getContext("webgl",this.options)}catch(c){throw new Error(" This browser does not support webGL. Try using the canvas renderer"+this)}}var d=this.gl;d.id=b.WebGLRenderer.glContextId++,this.shaderManager.setContext(d),this.spriteBatch.setContext(d),this.primitiveBatch.setContext(d),this.maskManager.setContext(d),this.filterManager.setContext(d),this.renderSession.gl=this.gl,d.disable(d.DEPTH_TEST),d.disable(d.CULL_FACE),d.enable(d.BLEND),d.colorMask(!0,!0,!0,this.transparent),this.gl.viewport(0,0,this.width,this.height);for(var e in b.TextureCache){var f=b.TextureCache[e].baseTexture;f._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLost),this.view.removeEventListener("webglcontextrestored",this.contextRestoredLost),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.primitiveBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(a){this.gl=a,this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(a){this.maskStack=[],this.maskPosition=0,this.setContext(a),this.reverse=!1,this.count=0},b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.maskStack=null,this.gl=null},b.WebGLStencilManager=function(a){this.stencilStack=[],this.setContext(a),this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimativeShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.maskStack=null,this.gl=null},b.WebGLShaderManager=function(a){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[],this.shaderMap=[];for(var b=0;bd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.setContext(a),this.dirty=!0},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture,c=this.renderSession.blendModeManager.currentBlendMode!==a.blendMode;(b.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size||c)&&(this.flush(),this.currentBaseTexture=b.baseTexture,this.renderSession.blendModeManager.setBlendMode(a.blendMode));var d=b._uvs;if(d){var e,f,g,h,i=a.worldAlpha,j=a.tint,k=this.vertices,l=a.anchor.x,m=a.anchor.y;if(b.trim){var n=b.trim;f=n.x-l*n.width,e=f+b.crop.width,h=n.y-m*n.height,g=h+b.crop.height}else e=b.frame.width*(1-l),f=b.frame.width*-l,g=b.frame.height*(1-m),h=b.frame.height*-m;var o=4*this.currentBatchSize*this.vertSize,p=a.worldTransform,q=p.a,r=p.c,s=p.b,t=p.d,u=p.tx,v=p.ty;k[o++]=q*f+s*h+u,k[o++]=t*h+r*f+v,k[o++]=d.x0,k[o++]=d.y0,k[o++]=i,k[o++]=j,k[o++]=q*e+s*h+u,k[o++]=t*h+r*e+v,k[o++]=d.x1,k[o++]=d.y1,k[o++]=i,k[o++]=j,k[o++]=q*e+s*g+u,k[o++]=t*g+r*e+v,k[o++]=d.x2,k[o++]=d.y2,k[o++]=i,k[o++]=j,k[o++]=q*f+s*g+u,k[o++]=t*g+r*f+v,k[o++]=d.x3,k[o++]=d.y3,k[o++]=i,k[o++]=j,this.currentBatchSize++ }},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture,d=this.renderSession.blendModeManager.currentBlendMode!==a.blendMode;(c.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size||d)&&(this.flush(),this.currentBaseTexture=c.baseTexture,this.renderSession.blendModeManager.setBlendMode(a.blendMode)),a._uvs||(a._uvs=new b.TextureUvs);var e=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var f=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),g=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),h=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),i=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);e.x0=0-f,e.y0=0-g,e.x1=1*h-f,e.y1=0-g,e.x2=1*h-f,e.y2=1*i-g,e.x3=0-f,e.y3=1*i-g;var j=a.worldAlpha,k=a.tint,l=this.vertices,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=a.worldTransform,w=v.a,x=v.c,y=v.b,z=v.d,A=v.tx,B=v.ty;l[u++]=w*r+y*t+A,l[u++]=z*t+x*r+B,l[u++]=e.x0,l[u++]=e.y0,l[u++]=j,l[u++]=k,l[u++]=w*q+y*t+A,l[u++]=z*t+x*q+B,l[u++]=e.x1,l[u++]=e.y1,l[u++]=j,l[u++]=k,l[u++]=w*q+y*s+A,l[u++]=z*s+x*q+B,l[u++]=e.x2,l[u++]=e.y2,l[u++]=j,l[u++]=k,l[u++]=w*r+y*s+A,l[u++]=z*s+x*r+B,l[u++]=e.x3,l[u++]=e.y3,l[u++]=j,l[u++]=k,this.currentBatchSize++},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.renderSession.shaderManager.setShader(this.renderSession.shaderManager.defaultShader),this.dirty){this.dirty=!1,a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var c=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,c.x,c.y);var d=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,d,0),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,d,8),a.vertexAttribPointer(this.shader.colorAttribute,2,a.FLOAT,!1,d,16)}if(a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]||b.createWebGLTexture(this.currentBaseTexture,a)),this.currentBaseTexture._dirty[a.id]&&b.updateWebGLTexture(this.currentBaseTexture,a),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var e=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,e)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var b=4*this.size*this.vertSize,c=6*this.maxSize;this.vertices=new Float32Array(b),this.indices=new Uint16Array(c),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var d=0,e=0;c>d;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||b.createWebGLTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var c=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,c)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(a,b){this.transparent=b,this.filterStack=[],this.offsetX=0,this.offsetY=0,this.setContext(a)},b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,this.renderSession.shaderManager.setShader(this.defaultShader),c.uniform2f(this.defaultShader.projectionVector,h.width/2,-h.height/2),c.uniform2f(this.defaultShader.offsetVector,-h.x,-h.y),c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0&&(b.Texture.frameUpdates.length=0)},b.CanvasRenderer.prototype.resize=function(a,b){this.width=a,this.height=b,this.view.width=a,this.view.height=b},b.CanvasRenderer.prototype.renderDisplayObject=function(a,b){this.renderSession.context=b||this.context,a._renderCanvas(this.renderSession)},b.CanvasRenderer.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.CanvasRenderer.prototype.renderStrip=function(a){var b=this.context,c=a.verticies,d=a.uvs,e=c.length/2;this.count++;for(var f=1;e-2>f;f++){var g=2*f,h=c[g],i=c[g+2],j=c[g+4],k=c[g+1],l=c[g+3],m=c[g+5],n=d[g]*a.texture.width,o=d[g+2]*a.texture.width,p=d[g+4]*a.texture.width,q=d[g+1]*a.texture.height,r=d[g+3]*a.texture.height,s=d[g+5]*a.texture.height;b.save(),b.beginPath(),b.moveTo(h,k),b.lineTo(i,l),b.lineTo(j,m),b.closePath(),b.clip();var t=n*r+q*p+o*s-r*p-q*o-n*s,u=h*r+q*j+i*s-r*j-q*i-h*s,v=n*i+h*p+o*j-i*p-h*o-n*j,w=n*r*j+q*i*p+h*o*s-h*r*p-q*o*j-n*i*s,x=k*r+q*m+l*s-r*m-q*l-k*s,y=n*l+k*p+o*m-l*p-k*o-n*m,z=n*r*m+q*l*p+k*o*s-k*r*p-q*o*m-n*l*s;b.transform(u/t,x/t,v/t,y/t,w/t,z/t),b.drawImage(a.texture.baseTexture.source,0,0),b.restore()}},b.CanvasBuffer=function(a,b){this.width=a,this.height=b,this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.canvas.width=a,this.canvas.height=b},b.CanvasBuffer.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)},b.CanvasBuffer.prototype.resize=function(a,b){this.width=this.canvas.width=a,this.height=this.canvas.height=b},b.CanvasGraphics=function(){},b.CanvasGraphics.renderGraphics=function(a,c){for(var d=a.worldAlpha,e="",f=0;fA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath(),(g.fillColor||0===g.fillColor)&&(c.globalAlpha=g.fillAlpha*d,c.fillStyle=e="#"+("00000"+(0|g.fillColor).toString(16)).substr(-6),c.fill()),g.lineWidth&&(c.globalAlpha=g.lineAlpha*d,c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.points;if(f.type===b.Graphics.POLY){c.beginPath(),c.moveTo(g[0],g[1]);for(var h=1;hz?z:y,c.beginPath(),c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.Graphics=function(){b.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor="black",this.graphicsData=[],this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.currentPath={points:[]},this._webGL=[],this.isMask=!1,this.bounds=null,this.boundsPadding=10,this.dirty=!0},b.Graphics.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Graphics.prototype.constructor=b.Graphics,Object.defineProperty(b.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),b.Graphics.prototype.lineStyle=function(a,c,d){return this.currentPath.points.length||this.graphicsData.pop(),this.lineWidth=a||0,this.lineColor=c||0,this.lineAlpha=arguments.length<3?1:d,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:b.Graphics.POLY},this.graphicsData.push(this.currentPath),this},b.Graphics.prototype.moveTo=function(a,c){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:b.Graphics.POLY},this.currentPath.points.push(a,c),this.graphicsData.push(this.currentPath),this},b.Graphics.prototype.lineTo=function(a,b){return this.currentPath.points.push(a,b),this.dirty=!0,this},b.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){for(var e,f,g=20,h=this.currentPath.points,i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},b.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){for(var g,h,i,j,k,l=20,m=this.currentPath.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},b.Graphics.prototype.arcTo=function(a,b,c,d,e){var f=this.currentPath.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},b.Graphics.prototype.arc=function(a,b,c,d,e,f){var g=a+Math.cos(d)*c,h=b+Math.sin(d)*c,i=this.currentPath.points,j=i[i.length-2],k=i[i.length-1];if((j!==g||k!==h)&&i.push(g,h),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var l=f?-1*(d-e):e-d,m=Math.abs(l)/(2*Math.PI)*40;if(0===l)return this;for(var n=l/(2*m),o=2*n,p=Math.cos(n),q=Math.sin(n),r=m%1/m,s=0;m>=s;s++){var t=s+r*s,u=n+d+o*t,v=Math.cos(u),w=-Math.sin(u);i.push((p*v+q*w)*c+a,(p*-w+q*v)*c+b)}return this.dirty=!0,this},b.Graphics.prototype.drawPath=function(a){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:b.Graphics.POLY},this.graphicsData.push(this.currentPath),this.currentPath.points=this.currentPath.points.concat(a),this.dirty=!0,this},b.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=arguments.length<2?1:b,this},b.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},b.Graphics.prototype.drawRect=function(a,c,d,e){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,e],type:b.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.drawRoundedRect=function(a,c,d,e,f){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,e,f],type:b.Graphics.RREC},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.drawCircle=function(a,c,d){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,d],type:b.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.drawEllipse=function(a,c,d,e){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,e],type:b.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this.bounds=null,this},b.Graphics.prototype.generateTexture=function(){var a=this.getBounds(),c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);return c.context.translate(-a.x,-a.y),b.CanvasGraphics.renderGraphics(this,c.context),d},b.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return this.dirty&&(this._generateCachedSprite(),b.updateWebGLTexture(this._cachedSprite.texture.baseTexture,a.gl),this.dirty=!1),this._cachedSprite.alpha=this.alpha,void b.Sprite.prototype._renderWebGL.call(this._cachedSprite,a); -if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var c=b.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(c[0],c[1])}if(b.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var d=0,e=this.children.length;e>d;d++)this.children[d]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},b.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){var c=a.context,d=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),c.setTransform(d.a,d.c,d.b,d.d,d.tx,d.ty),b.CanvasGraphics.renderGraphics(this,c);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Graphics.prototype.getBounds=function(a){this.bounds||this.updateBounds();var b=this.bounds.x,c=this.bounds.width+this.bounds.x,d=this.bounds.y,e=this.bounds.height+this.bounds.y,f=a||this.worldTransform,g=f.a,h=f.c,i=f.b,j=f.d,k=f.tx,l=f.ty,m=g*c+i*e+k,n=j*e+h*c+l,o=g*b+i*e+k,p=j*e+h*b+l,q=g*b+i*d+k,r=j*d+h*b+l,s=g*c+i*d+k,t=j*d+h*c+l,u=m,v=n,w=m,x=n;w=w>o?o:w,w=w>q?q:w,w=w>s?s:w,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,u=o>u?o:u,u=q>u?q:u,u=s>u?s:u,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v;var y=this._bounds;return y.x=w,y.width=u-w,y.y=x,y.height=v-x,y},b.Graphics.prototype.updateBounds=function(){for(var a,c,d,e,f,g=1/0,h=-1/0,i=1/0,j=-1/0,k=0;kc?c:g,h=c+e>h?c+e:h,i=i>d?c:i,j=d+f>j?d+f:j;else if(m===b.Graphics.CIRC||m===b.Graphics.ELIP)c=a[0],d=a[1],e=a[2]+n/2,f=a[3]+n/2,g=g>c-e?c-e:g,h=c+e>h?c+e:h,i=i>d-f?d-f:i,j=d+f>j?d+f:j;else for(var o=0;oc-n?c-n:g,h=c+n>h?c+n:h,i=i>d-n?d-n:i,j=d+n>j?d+n:j}var p=this.boundsPadding;this.bounds=new b.Rectangle(g-p,i-p,h-g+2*p,j-i+2*p)},b.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);this._cachedSprite=new b.Sprite(d),this._cachedSprite.buffer=c,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),b.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},b.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},b.Graphics.POLY=0,b.Graphics.RECT=1,b.Graphics.CIRC=2,b.Graphics.ELIP=3,b.Graphics.RREC=4,b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader;c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,1),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.verticies,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.verticies),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(c.TRIANGLE_STRIP,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.c,c.b,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.c,c.b,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5],p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3);var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this.width=c||100,this.height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this.mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this.filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this.filters&&a.filterManager.popFilter(),this.mask&&a.maskManager.popMask(a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform;if(c.setTransform(f.a,f.c,f.b,f.d,f.tx,f.ty),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var g=this.tilePosition,h=this.tileScale;for(g.x%=this.tilingTexture.baseTexture.width,g.y%=this.tilingTexture.baseTexture.height,c.scale(h.x,h.y),c.translate(g.x,g.y),c.fillStyle=this.__tilePattern,c.fillRect(-g.x+this.anchor.x*-this._width,-g.y+this.anchor.y*-this._height,this._width/h.x,this._height/h.y),c.scale(1/h.x,1/h.y),c.translate(-g.x,-g.y),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.c,j=g.b,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.texturesToUpdate=[],b.texturesToDestroy=[],b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(b.EventTarget.call(this),this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.id=b.BaseTextureCacheIdGenerator++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,b.texturesToUpdate.push(this);else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.width,d.height=d.source.height;for(var a=0;athis.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&b.Texture.frameUpdates.push(this)},b.Texture.prototype._updateWebGLuvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.Texture.frameUpdates=[],b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e){if(b.EventTarget.call(this),this.width=a||100,this.height=c||100,this.frame=new b.Rectangle(0,0,this.width,this.height),this.crop=new b.Rectangle(0,0,1,1),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTextures=[],this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var f=this.renderer.gl;this.textureBuffer=new b.FilterTexture(f,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[f.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(this.width/2,-this.height/2)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width,this.height),this.baseTexture.source=this.textureBuffer.canvas;b.Texture.frameUpdates.push(this)},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.width=a,this.height=c,this.frame.width=this.width,this.frame.height=this.height,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear()},b.RenderTexture.prototype.renderWebGL=function(a,c,d){var e=this.renderer.gl;e.colorMask(!0,!0,!0,!0),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,this.textureBuffer.frameBuffer),d&&this.textureBuffer.clear();var f=a.children,g=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,a.worldTransform.d=-1,a.worldTransform.ty=-2*this.projection.y,c&&(a.worldTransform.tx=c.x,a.worldTransform.ty-=c.y);for(var h=0,i=f.length;i>h;h++)f[h].updateTransform();b.WebGLRenderer.updateTextures(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),a.worldTransform=g,this.renderer.spriteBatch.dirty=!0},b.RenderTexture.prototype.renderCanvas=function(a,c,d){var e=a.children,f=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,c?(a.worldTransform.tx=c.x,a.worldTransform.ty=c.y):(a.worldTransform.tx=0,a.worldTransform.ty=0);for(var g=0,h=e.length;h>g;g++)e[g].updateTransform();d&&this.textureBuffer.clear();var i=this.textureBuffer.context;this.renderer.renderDisplayObject(a,i),i.setTransform(1,0,0,1,0,0),a.worldTransform=f},b.RenderTexture.tempMatrix=new b.Matrix,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){var a=this,b=b||{VERSION:"2.1.0-dev",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,b.Utils={transposeArray:function(a){for(var b=new Array(a[0].length),c=0;c-1;d--)b[c][d]=a[d][c]}return b},rotateArray:function(a,c){if("string"!=typeof c&&(c=(c%360+360)%360),90===c||-270===c||"rotateLeft"===c)a=b.Utils.transposeArray(a),a=a.reverse();else if(-90===c||270===c||"rotateRight"===c)a=a.reverse(),a=b.Utils.transposeArray(a);else if(180===Math.abs(c)||"rotate180"===c){for(var d=0;d0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(c in a)d=h[c],e=a[c],h!==e&&(k&&e&&(b.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&b.Utils.isPlainObject(d)?d:{},h[c]=b.Utils.extend(k,g,e)):void 0!==e&&(h[c]=e));return h},mixin:function(a,c){if(!a||"object"!=typeof a)return c;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];c[d]=a[d]&&"object"===f?typeof c[d]===f?b.Utils.mixin(a[d],c[d]):b.Utils.mixin(a[d],new e.constructor):a[d]}}return c}},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array){var c=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;b0?.5*c:0},b.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.distanceRounded(this.x,this.y,a.x,a.y):b.Math.distance(this.x,this.y,a.x,a.y)},clone:function(a){return"undefined"==typeof a?a=new b.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,c){return b.Circle.contains(this,a,c)},circumferencePoint:function(a,c,d){return b.Circle.circumferencePoint(this,a,c,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},b.Circle.prototype.constructor=b.Circle,Object.defineProperty(b.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(b.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(b.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(b.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(b.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(b.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),b.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},b.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},b.Circle.intersects=function(a,c){return b.Math.distance(a.x,a.y,c.x,c.y)<=a.radius+c.radius},b.Circle.circumferencePoint=function(a,c,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new b.Point),d===!0&&(c=b.Math.degToRad(c)),e.x=a.x+a.radius*Math.cos(c),e.y=a.y+a.radius*Math.sin(c),e},b.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=b.Circle,b.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},b.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this},clampY:function(a,c){return this.y=b.Math.clamp(this.y,a,c),this},clamp:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this.y=b.Math.clamp(this.y,a,c),this},clone:function(a){return"undefined"==typeof a?a=new b.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,c){return b.Point.distance(this,a,c)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,c,d,e,f){return b.Point.rotate(this,a,c,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},b.Point.prototype.constructor=b.Point,b.Point.add=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x+c.x,d.y=a.y+c.y,d},b.Point.subtract=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x-c.x,d.y=a.y-c.y,d},b.Point.multiply=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x*c.x,d.y=a.y*c.y,d},b.Point.divide=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x/c.x,d.y=a.y/c.y,d},b.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},b.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},b.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},b.Point.negative=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.x,-a.y)},b.Point.multiplyAdd=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+c.x*d,a.y+c.y*d)},b.Point.interpolate=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+(c.x-a.x)*d,a.y+(c.y-a.y)*d)},b.Point.perp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.y,a.x)},b.Point.rperp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(a.y,-a.x)},b.Point.distance=function(a,c,d){return"undefined"==typeof d&&(d=!1),d?b.Math.distanceRounded(a.x,a.y,c.x,c.y):b.Math.distance(a.x,a.y,c.x,c.y)},b.Point.project=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c)/c.getMagnitudeSq();return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.projectUnit=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c);return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.normalRightHand=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-1*a.y,a.x)},b.Point.normalize=function(a,c){"undefined"==typeof c&&(c=new b.Point);var d=a.getMagnitude();return 0!==d&&c.setTo(a.x/d,a.y/d),c},b.Point.rotate=function(a,c,d,e,f,g){return f=f||!1,g=g||null,f&&(e=b.Math.degToRad(e)),null===g&&(g=Math.sqrt((c-a.x)*(c-a.x)+(d-a.y)*(d-a.y))),a.setTo(c+g*Math.cos(e),d+g*Math.sin(e))},b.Point.centroid=function(a,c){if("undefined"==typeof c&&(c=new b.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return c.copyFrom(a[0]),c;for(var e=0;d>e;e++)b.Point.add(c,a[e],c);return c.divide(d,d),c},PIXI.Point=b.Point,b.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},b.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this +if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var c=b.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(c[0],c[1])}if(b.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var d=0,e=this.children.length;e>d;d++)this.children[d]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},b.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){var c=a.context,d=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),c.setTransform(d.a,d.c,d.b,d.d,d.tx,d.ty),b.CanvasGraphics.renderGraphics(this,c);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Graphics.prototype.getBounds=function(a){this.bounds||this.updateBounds();var b=this.bounds.x,c=this.bounds.width+this.bounds.x,d=this.bounds.y,e=this.bounds.height+this.bounds.y,f=a||this.worldTransform,g=f.a,h=f.c,i=f.b,j=f.d,k=f.tx,l=f.ty,m=g*c+i*e+k,n=j*e+h*c+l,o=g*b+i*e+k,p=j*e+h*b+l,q=g*b+i*d+k,r=j*d+h*b+l,s=g*c+i*d+k,t=j*d+h*c+l,u=m,v=n,w=m,x=n;w=w>o?o:w,w=w>q?q:w,w=w>s?s:w,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,u=o>u?o:u,u=q>u?q:u,u=s>u?s:u,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v;var y=this._bounds;return y.x=w,y.width=u-w,y.y=x,y.height=v-x,y},b.Graphics.prototype.updateBounds=function(){for(var a,c,d,e,f,g=1/0,h=-1/0,i=1/0,j=-1/0,k=0;kc?c:g,h=c+e>h?c+e:h,i=i>d?c:i,j=d+f>j?d+f:j;else if(m===b.Graphics.CIRC||m===b.Graphics.ELIP)c=a[0],d=a[1],e=a[2]+n/2,f=a[3]+n/2,g=g>c-e?c-e:g,h=c+e>h?c+e:h,i=i>d-f?d-f:i,j=d+f>j?d+f:j;else for(var o=0;oc-n?c-n:g,h=c+n>h?c+n:h,i=i>d-n?d-n:i,j=d+n>j?d+n:j}var p=this.boundsPadding;this.bounds=new b.Rectangle(g-p,i-p,h-g+2*p,j-i+2*p)},b.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);this._cachedSprite=new b.Sprite(d),this._cachedSprite.buffer=c,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),b.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},b.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},b.Graphics.POLY=0,b.Graphics.RECT=1,b.Graphics.CIRC=2,b.Graphics.ELIP=3,b.Graphics.RREC=4,b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader;c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,1),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.verticies,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.verticies),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(c.TRIANGLE_STRIP,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.c,c.b,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.c,c.b,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5],p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3);var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this.width=c||100,this.height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this.mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this.filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this.filters&&a.filterManager.popFilter(),this.mask&&a.maskManager.popMask(a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform;if(c.setTransform(f.a,f.c,f.b,f.d,f.tx,f.ty),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var g=this.tilePosition,h=this.tileScale;for(g.x%=this.tilingTexture.baseTexture.width,g.y%=this.tilingTexture.baseTexture.height,c.scale(h.x,h.y),c.translate(g.x,g.y),c.fillStyle=this.__tilePattern,c.fillRect(-g.x+this.anchor.x*-this._width,-g.y+this.anchor.y*-this._height,this._width/h.x,this._height/h.y),c.scale(1/h.x,1/h.y),c.translate(-g.x,-g.y),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.c,j=g.b,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.texturesToUpdate=[],b.texturesToDestroy=[],b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(b.EventTarget.call(this),this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.id=b.BaseTextureCacheIdGenerator++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,b.texturesToUpdate.push(this);else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.width,d.height=d.source.height;for(var a=0;athis.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&b.Texture.frameUpdates.push(this)},b.Texture.prototype._updateWebGLuvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.Texture.frameUpdates=[],b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e){if(b.EventTarget.call(this),this.width=a||100,this.height=c||100,this.frame=new b.Rectangle(0,0,this.width,this.height),this.crop=new b.Rectangle(0,0,this.width,this.height),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTextures=[],this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var f=this.renderer.gl;this.textureBuffer=new b.FilterTexture(f,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[f.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(this.width/2,-this.height/2)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width,this.height),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,b.Texture.frameUpdates.push(this)},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear()},b.RenderTexture.prototype.renderWebGL=function(a,c,d){var e=this.renderer.gl;e.colorMask(!0,!0,!0,!0),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,this.textureBuffer.frameBuffer),d&&this.textureBuffer.clear();var f=a.children,g=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,a.worldTransform.d=-1,a.worldTransform.ty=-2*this.projection.y,c&&(a.worldTransform.tx=c.x,a.worldTransform.ty-=c.y);for(var h=0,i=f.length;i>h;h++)f[h].updateTransform();b.WebGLRenderer.updateTextures(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),a.worldTransform=g,this.renderer.spriteBatch.dirty=!0},b.RenderTexture.prototype.renderCanvas=function(a,c,d){var e=a.children,f=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,c?(a.worldTransform.tx=c.x,a.worldTransform.ty=c.y):(a.worldTransform.tx=0,a.worldTransform.ty=0);for(var g=0,h=e.length;h>g;g++)e[g].updateTransform();d&&this.textureBuffer.clear();var i=this.textureBuffer.context;this.renderer.renderDisplayObject(a,i),i.setTransform(1,0,0,1,0,0),a.worldTransform=f},b.RenderTexture.tempMatrix=new b.Matrix,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){var a=this,b=b||{VERSION:"2.0.7-dev",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,b.Utils={transposeArray:function(a){for(var b=new Array(a[0].length),c=0;c-1;d--)b[c][d]=a[d][c]}return b},rotateArray:function(a,c){if("string"!=typeof c&&(c=(c%360+360)%360),90===c||-270===c||"rotateLeft"===c)a=b.Utils.transposeArray(a),a=a.reverse();else if(-90===c||270===c||"rotateRight"===c)a=a.reverse(),a=b.Utils.transposeArray(a);else if(180===Math.abs(c)||"rotate180"===c){for(var d=0;d0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(c in a)d=h[c],e=a[c],h!==e&&(k&&e&&(b.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&b.Utils.isPlainObject(d)?d:{},h[c]=b.Utils.extend(k,g,e)):void 0!==e&&(h[c]=e));return h},mixin:function(a,c){if(!a||"object"!=typeof a)return c;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];c[d]=a[d]&&"object"===f?typeof c[d]===f?b.Utils.mixin(a[d],c[d]):b.Utils.mixin(a[d],new e.constructor):a[d]}}return c}},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array){var c=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;b0?.5*c:0},b.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.distanceRounded(this.x,this.y,a.x,a.y):b.Math.distance(this.x,this.y,a.x,a.y)},clone:function(a){return"undefined"==typeof a?a=new b.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,c){return b.Circle.contains(this,a,c)},circumferencePoint:function(a,c,d){return b.Circle.circumferencePoint(this,a,c,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},b.Circle.prototype.constructor=b.Circle,Object.defineProperty(b.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(b.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(b.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(b.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(b.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(b.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),b.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},b.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},b.Circle.intersects=function(a,c){return b.Math.distance(a.x,a.y,c.x,c.y)<=a.radius+c.radius},b.Circle.circumferencePoint=function(a,c,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new b.Point),d===!0&&(c=b.Math.degToRad(c)),e.x=a.x+a.radius*Math.cos(c),e.y=a.y+a.radius*Math.sin(c),e},b.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=b.Circle,b.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},b.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this},clampY:function(a,c){return this.y=b.Math.clamp(this.y,a,c),this},clamp:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this.y=b.Math.clamp(this.y,a,c),this},clone:function(a){return"undefined"==typeof a?a=new b.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,c){return b.Point.distance(this,a,c)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,c,d,e,f){return b.Point.rotate(this,a,c,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},b.Point.prototype.constructor=b.Point,b.Point.add=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x+c.x,d.y=a.y+c.y,d},b.Point.subtract=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x-c.x,d.y=a.y-c.y,d},b.Point.multiply=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x*c.x,d.y=a.y*c.y,d},b.Point.divide=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x/c.x,d.y=a.y/c.y,d},b.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},b.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},b.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},b.Point.negative=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.x,-a.y)},b.Point.multiplyAdd=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+c.x*d,a.y+c.y*d)},b.Point.interpolate=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+(c.x-a.x)*d,a.y+(c.y-a.y)*d)},b.Point.perp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.y,a.x)},b.Point.rperp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(a.y,-a.x)},b.Point.distance=function(a,c,d){return"undefined"==typeof d&&(d=!1),d?b.Math.distanceRounded(a.x,a.y,c.x,c.y):b.Math.distance(a.x,a.y,c.x,c.y)},b.Point.project=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c)/c.getMagnitudeSq();return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.projectUnit=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c);return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.normalRightHand=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-1*a.y,a.x)},b.Point.normalize=function(a,c){"undefined"==typeof c&&(c=new b.Point);var d=a.getMagnitude();return 0!==d&&c.setTo(a.x/d,a.y/d),c},b.Point.rotate=function(a,c,d,e,f,g){return f=f||!1,g=g||null,f&&(e=b.Math.degToRad(e)),null===g&&(g=Math.sqrt((c-a.x)*(c-a.x)+(d-a.y)*(d-a.y))),a.setTo(c+g*Math.cos(e),d+g*Math.sin(e))},b.Point.centroid=function(a,c){if("undefined"==typeof c&&(c=new b.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return c.copyFrom(a[0]),c;for(var e=0;d>e;e++)b.Point.add(c,a[e],c);return c.divide(d,d),c},PIXI.Point=b.Point,b.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},b.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this },floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,c){return b.Rectangle.inflate(this,a,c)},size:function(a){return b.Rectangle.size(this,a)},clone:function(a){return b.Rectangle.clone(this,a)},contains:function(a,c){return b.Rectangle.contains(this,a,c)},containsRect:function(a){return b.Rectangle.containsRect(this,a)},equals:function(a){return b.Rectangle.equals(this,a)},intersection:function(a,c){return b.Rectangle.intersection(this,a,c)},intersects:function(a,c){return b.Rectangle.intersects(this,a,c)},intersectsRaw:function(a,c,d,e,f){return b.Rectangle.intersectsRaw(this,a,c,d,e,f)},union:function(a,c){return b.Rectangle.union(this,a,c)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(b.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(b.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(b.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:this.y-a}}),Object.defineProperty(b.Rectangle.prototype,"bottomRight",{get:function(){return new b.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(b.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(b.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(b.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(b.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(b.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(b.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(b.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(b.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(b.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(b.Rectangle.prototype,"topLeft",{get:function(){return new b.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(b.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),b.Rectangle.prototype.constructor=b.Rectangle,b.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},b.Rectangle.inflatePoint=function(a,c){return b.Rectangle.inflate(a,c.x,c.y)},b.Rectangle.size=function(a,c){return"undefined"==typeof c||null===c?c=new b.Point(a.width,a.height):c.setTo(a.width,a.height),c},b.Rectangle.clone=function(a,c){return"undefined"==typeof c||null===c?c=new b.Rectangle(a.x,a.y,a.width,a.height):c.setTo(a.x,a.y,a.width,a.height),c},b.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b<=a.right&&c>=a.y&&c<=a.bottom},b.Rectangle.containsRaw=function(a,b,c,d,e,f){return e>=a&&a+c>=e&&f>=b&&b+d>=f},b.Rectangle.containsPoint=function(a,c){return b.Rectangle.contains(a,c.x,c.y)},b.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.right<=b.right&&a.bottom<=b.bottom},b.Rectangle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.width==b.width&&a.height==b.height},b.Rectangle.intersection=function(a,c,d){return"undefined"==typeof d&&(d=new b.Rectangle),b.Rectangle.intersects(a,c)&&(d.x=Math.max(a.x,c.x),d.y=Math.max(a.y,c.y),d.width=Math.min(a.right,c.right)-d.x,d.height=Math.min(a.bottom,c.bottom)-d.y),d},b.Rectangle.intersects=function(a,b){return a.width<=0||a.height<=0||b.width<=0||b.height<=0?!1:!(a.rightb.right||a.y>b.bottom)},b.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||e=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b}},Object.defineProperty(b.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(b.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(b.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(b.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(b.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(b.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),b.Line.intersectsPoints=function(a,c,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new b.Point);var h=c.y-a.y,i=e.y-d.y,j=a.x-c.x,k=d.x-e.x,l=c.x*a.y-a.x*c.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(c.x-a.x)-(e.x-d.x)*(c.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((c.x-a.x)*(a.y-d.y)-(c.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},b.Line.intersects=function(a,c,d,e){return b.Line.intersectsPoints(a.start,a.end,c.start,c.end,d,e)},b.Ellipse=function(a,c,d,e){this.type=b.ELLIPSE,a=a||0,c=c||0,d=d||0,e=e||0,this.x=a,this.y=c,this.width=d,this.height=e},b.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a?a=new b.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,c){return b.Ellipse.contains(this,a,c)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},b.Ellipse.prototype.constructor=b.Ellipse,Object.defineProperty(b.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(b.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=b.Ellipse,b.Polygon=function(a){if(this.type=b.POLYGON,a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this._points=a},b.Polygon.prototype={clone:function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c}},b.Polygon.prototype.constructor=b.Polygon,Object.defineProperty(b.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this._points=a}}),Object.defineProperty(b.Polygon.prototype,"area",{get:function(){var a,b,c,d,e,f=Number.MAX_VALUE,g=0;for(e=0;ethis.deadzone.right&&(this.view.x=this.target.x-this.deadzone.right),this._edge=this.target.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.target.y-this.deadzone.bottom)):(this.view.x=this.target.x-this.view.halfWidth,this.view.y=this.target.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height),this.view.floor()},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},b.Camera.prototype.constructor=b.Camera,Object.defineProperty(b.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(b.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(b.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(b.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),b.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},b.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},b.State.prototype.constructor=b.State,b.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},b.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&("string"==typeof this._pendingState?this.start(this._pendingState,!1,!1):this.add("default",this._pendingState,!0))},add:function(a,c,d){"undefined"==typeof d&&(d=!1);var e;return c instanceof b.State?e=c:"object"==typeof c?(e=c,e.game=this.game):"function"==typeof c&&(e=new c(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){this._pendingState&&this.game.isBooted&&(this.current&&(this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy())),this.setCurrentState(this._pendingState),this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete(),this.current===this._pendingState&&(this._pendingState=null))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),this._args=[]},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===b.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===b.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},b.StateManager.prototype.constructor=b.StateManager,b.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},b.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},b.LinkedList.prototype.constructor=b.LinkedList,b.ArrayList=function(){this.total=0,this.position=0,this.list=[]},b.ArrayList.prototype={add:function(a){return this.exists(a)||(this.list.push(a),this.total++),a},getIndex:function(a){return this.list.indexOf(a)},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),this.total--,a):void 0},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(b.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(b.ArrayList.prototype,"next",{get:function(){return this.position0&&(this.uniforms.mouse.x=a.x.toFixed(2)),a.y>0&&(this.uniforms.mouse.y=a.y.toFixed(2))),this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},b.Filter.prototype.constructor=b.Filter,Object.defineProperty(b.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(b.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),b.Plugin=function(a,b){"undefined"==typeof b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},b.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},b.Plugin.prototype.constructor=b.Plugin,b.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},b.PluginManager.prototype={add:function(a){var b=Array.prototype.splice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},b.PluginManager.prototype.constructor=b.PluginManager,b.Stage=function(a,c,d){this.game=a,this.offset=new b.Point,this.bounds=new b.Rectangle(0,0,c,d),PIXI.Stage.call(this,0),this.name="_stage_root",this.interactive=!1,this.disableVisibilityChange=!1,this.checkOffsetInterval=2500,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._nextOffsetCheck=0,this._backgroundColor=0,a.config&&this.parseConfig(a.config)},b.Stage.prototype=Object.create(PIXI.Stage.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=this.children.length,b=0;a>b;b++)this.children[b].preUpdate()},b.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},b.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}this.checkOffsetInterval!==!1&&this.game.time.now>this._nextOffsetCheck&&(b.Canvas.getOffset(this.game.canvas,this.offset),this.bounds.x=this.offset.x,this.bounds.y=this.offset.y,this._nextOffsetCheck=this.game.time.now+this.checkOffsetInterval)},b.Stage.prototype.parseConfig=function(a){a.checkOffsetInterval&&(this.checkOffsetInterval=a.checkOffsetInterval),a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.fullScreenScaleMode&&(this.fullScreenScaleMode=a.fullScreenScaleMode),a.scaleMode&&(this.scaleMode=a.scaleMode),a.backgroundColor&&(this.backgroundColor=a.backgroundColor)},b.Stage.prototype.boot=function(){b.Canvas.getOffset(this.game.canvas,this.offset),this.bounds.setTo(this.offset.x,this.offset.y,this.game.width,this.game.height);var a=this;this._onChange=function(b){return a.visibilityChange(b)},b.Canvas.setUserSelect(this.game.canvas,"none"),b.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},b.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange },b.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden?this.game.gamePaused(a):this.game.gameResumed(a)))},b.Stage.prototype.setBackgroundColor=function(a){if("string"==typeof a){var c=b.Color.hexToColor(a);this._backgroundColor=b.Color.getColor(c.r,c.g,c.b)}else{var c=b.Color.getRGB(a);this._backgroundColor=a}this.backgroundColorSplit=[c.r/255,c.g/255,c.b/255],this.backgroundColorString=b.Color.RGBtoString(c.r,c.g,c.b,255,"#")},Object.defineProperty(b.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(b.Stage.prototype,"smoothed",{get:function(){return!PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.LINEAR=a?0:1}}),b.Group=function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b.Physics.ARCADE),this.game=a,"undefined"==typeof c&&(c=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):c&&c.addChild(this),this.z=0,this.type=b.GROUP,this.alive=!0,this.exists=!0,this.classType=b.Sprite,this.scale=new b.Point(1,1),this.cursor=null,this.cameraOffset=new b.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},b.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),b.Group.prototype.constructor=b.Group,b.Group.RETURN_NONE=0,b.Group.RETURN_TOTAL=1,b.Group.RETURN_CHILD=2,b.Group.SORT_ASCENDING=-1,b.Group.SORT_DESCENDING=1,b.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},b.Group.prototype.addAt=function(a,b,c){return"undefined"==typeof c&&(c=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChildAt(a,b),this.updateZ(),!c&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},b.Group.prototype.getAt=function(a){return 0>a||a>=this.children.length?-1:this.getChildAt(a)},b.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},b.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},b.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},b.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},b.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},b.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},b.Group.prototype.swap=function(a,b){var c=this.swapChildren(a,b);return c&&this.updateZ(),c},b.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},b.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},b.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},b.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},b.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},b.Group.prototype.replace=function(a,c){var d=this.getIndex(a);if(-1!==d){void 0!==c.parent&&(c.events.onRemovedFromGroup.dispatch(c,this),c.parent.removeChild(c),c.parent instanceof b.Group&&c.parent.updateZ());var e=a;return this.remove(e),this.addAt(c,d),e}},b.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},b.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},b.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},b.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},b.Group.prototype.setAllChildren=function(a,c,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof b.Group?this.children[h].setAllChildren(a,c,d,e,f,g):this.setProperty(this.children[h],a.split("."),c,f,g))},b.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},b.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},b.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},b.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},b.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},b.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},b.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},b.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},b.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},b.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},b.Group.prototype.forEach=function(a,b,c){"undefined"==typeof c&&(c=!1);var d=Array.prototype.splice.call(arguments,3);d.unshift(null);for(var e=0,f=this.children.length;f>e;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},b.Group.prototype.forEachExists=function(a,c){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,b.Group.RETURN_TOTAL,a,c,d)},b.Group.prototype.forEachAlive=function(a,c){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,b.Group.RETURN_TOTAL,a,c,d)},b.Group.prototype.forEachDead=function(a,c){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,b.Group.RETURN_TOTAL,a,c,d)},b.Group.prototype.sort=function(a,c){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof c&&(c=b.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(c===b.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},b.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},b.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},b.Group.prototype.iterate=function(a,c,d,e,f,g){if(d===b.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===c&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===b.Group.RETURN_CHILD))return this.children[i];return d===b.Group.RETURN_TOTAL?h:d===b.Group.RETURN_CHILD?null:void 0},b.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,b.Group.RETURN_CHILD)},b.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,b.Group.RETURN_CHILD)},b.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,b.Group.RETURN_CHILD)},b.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},b.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},b.Group.prototype.countLiving=function(){return this.iterate("alive",!0,b.Group.RETURN_TOTAL)},b.Group.prototype.countDead=function(){return this.iterate("alive",!1,b.Group.RETURN_TOTAL)},b.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,this.game.math.getRandom(this.children,a,b))},b.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},b.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},b.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},b.Group.prototype.destroy=function(a,b){null!==this.game&&("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(b.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,b.Group.RETURN_TOTAL)}}),Object.defineProperty(b.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(b.Group.prototype,"angle",{get:function(){return b.Math.radToDeg(this.rotation)},set:function(a){this.rotation=b.Math.degToRad(a)}}),Object.defineProperty(b.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),b.World=function(a){b.Group.call(this,a,null,"__world",!1),this.bounds=new b.Rectangle(0,0,a.width,a.height),this.camera=null},b.World.prototype=Object.create(b.Group.prototype),b.World.prototype.constructor=b.World,b.World.prototype.boot=function(){this.camera=new b.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},b.World.prototype.setBounds=function(a,b,c,d){cthis.bounds.right&&(a.x=this.bounds.left),e&&a._currentBounds.bottomthis.bounds.bottom&&(a.y=this.bounds.top)):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(b.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){this.bounds.width=a}}),Object.defineProperty(b.World.prototype,"height",{get:function(){return this.bounds.height},set:function(a){this.bounds.height=a}}),Object.defineProperty(b.World.prototype,"centerX",{get:function(){return this.bounds.halfWidth}}),Object.defineProperty(b.World.prototype,"centerY",{get:function(){return this.bounds.halfHeight}}),Object.defineProperty(b.World.prototype,"randomX",{get:function(){return this.bounds.x<0?this.game.rnd.integerInRange(this.bounds.x,this.bounds.width-Math.abs(this.bounds.x)):this.game.rnd.integerInRange(this.bounds.x,this.bounds.width)}}),Object.defineProperty(b.World.prototype,"randomY",{get:function(){return this.bounds.y<0?this.game.rnd.integerInRange(this.bounds.y,this.bounds.height-Math.abs(this.bounds.y)):this.game.rnd.integerInRange(this.bounds.y,this.bounds.height)}}),b.ScaleManager=function(a,c,d){this.game=a,this.width=c,this.height=d,this.minWidth=null,this.maxWidth=null,this.minHeight=null,this.maxHeight=null,this.forceLandscape=!1,this.forcePortrait=!1,this.incorrectOrientation=!1,this.pageAlignHorizontally=!1,this.pageAlignVertically=!1,this.maxIterations=5,this.orientationSprite=null,this.enterLandscape=new b.Signal,this.enterPortrait=new b.Signal,this.enterIncorrectOrientation=new b.Signal,this.leaveIncorrectOrientation=new b.Signal,this.hasResized=new b.Signal,this.fullScreenTarget=this.game.canvas,this.enterFullScreen=new b.Signal,this.leaveFullScreen=new b.Signal,this.orientation=0,window.orientation?this.orientation=window.orientation:window.outerWidth>window.outerHeight&&(this.orientation=90),this.scaleFactor=new b.Point(1,1),this.scaleFactorInversed=new b.Point(1,1),this.margin=new b.Point(0,0),this.bounds=new b.Rectangle(0,0,c,d),this.aspectRatio=0,this.sourceAspectRatio=c/d,this.event=null,this.scaleMode=b.ScaleManager.NO_SCALE,this.fullScreenScaleMode=b.ScaleManager.NO_SCALE,this._startHeight=0,this._width=0,this._height=0,this._check=null;var e=this;window.addEventListener("orientationchange",function(a){return e.checkOrientation(a)},!1),window.addEventListener("resize",function(a){return e.checkResize(a)},!1),this.game.device.cocoonJS||(document.addEventListener("webkitfullscreenchange",function(a){return e.fullScreenChange(a)},!1),document.addEventListener("mozfullscreenchange",function(a){return e.fullScreenChange(a)},!1),document.addEventListener("fullscreenchange",function(a){return e.fullScreenChange(a)},!1))},b.ScaleManager.EXACT_FIT=0,b.ScaleManager.NO_SCALE=1,b.ScaleManager.SHOW_ALL=2,b.ScaleManager.prototype={startFullScreen:function(a){!this.isFullScreen&&this.game.device.fullscreen&&("undefined"!=typeof a&&this.game.renderType===b.CANVAS&&(this.game.stage.smoothed=a),this._width=this.width,this._height=this.height,this.game.device.fullscreenKeyboard?this.fullScreenTarget[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT):this.fullScreenTarget[this.game.device.requestFullscreen]())},stopFullScreen:function(){document[this.game.device.cancelFullscreen]()},fullScreenChange:function(a){this.event=a,this.isFullScreen?(this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?(this.fullScreenTarget.style.width="100%",this.fullScreenTarget.style.height="100%",this.width=window.outerWidth,this.height=window.outerHeight,this.game.input.scale.setTo(this.game.width/this.width,this.game.height/this.height),this.aspectRatio=this.width/this.height,this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.checkResize()):this.fullScreenScaleMode===b.ScaleManager.SHOW_ALL&&(this.setShowAll(),this.refresh()),this.enterFullScreen.dispatch(this.width,this.height)):(this.fullScreenTarget.style.width=this.game.width+"px",this.fullScreenTarget.style.height=this.game.height+"px",this.width=this._width,this.height=this._height,this.game.input.scale.setTo(this.game.width/this.width,this.game.height/this.height),this.aspectRatio=this.width/this.height,this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.leaveFullScreen.dispatch(this.width,this.height))},forceOrientation:function(a,c,d){"undefined"==typeof c&&(c=!1),this.forceLandscape=a,this.forcePortrait=c,"undefined"!=typeof d&&((null===d||this.game.cache.checkImageKey(d)===!1)&&(d="__default"),this.orientationSprite=new b.Image(this.game,this.game.width/2,this.game.height/2,PIXI.TextureCache[d]),this.orientationSprite.anchor.set(.5),this.checkOrientationState(),this.incorrectOrientation?(this.orientationSprite.visible=!0,this.game.world.visible=!1):(this.orientationSprite.visible=!1,this.game.world.visible=!0),this.game.stage.addChild(this.orientationSprite))},checkOrientationState:function(){this.incorrectOrientation?(this.forceLandscape&&window.innerWidth>window.innerHeight||this.forcePortrait&&window.innerHeight>window.innerWidth)&&(this.incorrectOrientation=!1,this.leaveIncorrectOrientation.dispatch(),this.orientationSprite&&(this.orientationSprite.visible=!1,this.game.world.visible=!0),this.scaleMode!==b.ScaleManager.NO_SCALE&&this.refresh()):(this.forceLandscape&&window.innerWidthwindow.outerHeight?90:0,this.isLandscape?this.enterLandscape.dispatch(this.orientation,!0,!1):this.enterPortrait.dispatch(this.orientation,!1,!0),this.scaleMode!==b.ScaleManager.NO_SCALE&&this.refresh(),this.checkOrientationState()},refresh:function(){if(this.game.device.iPad||this.game.device.webApp||this.game.device.desktop||(this.game.device.android&&!this.game.device.chrome?window.scrollTo(0,1):window.scrollTo(0,0)),null===this._check&&this.maxIterations>0){this._iterations=this.maxIterations;var a=this;this._check=window.setInterval(function(){return a.setScreenSize()},10),this.setScreenSize()}},setScreenSize:function(a){"undefined"==typeof a&&(a=!1),this.game.device.iPad||this.game.device.webApp||this.game.device.desktop||(this.game.device.android&&!this.game.device.chrome?window.scrollTo(0,1):window.scrollTo(0,0)),this._iterations--,(a||window.innerHeight>this._startHeight||this._iterations<0)&&(document.documentElement.style.minHeight=window.innerHeight+"px",this.incorrectOrientation?this.setMaximum():this.isFullScreen?this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?this.setExactFit():this.fullScreenScaleMode===b.ScaleManager.SHOW_ALL&&this.setShowAll():this.scaleMode===b.ScaleManager.EXACT_FIT?this.setExactFit():this.scaleMode===b.ScaleManager.SHOW_ALL&&this.setShowAll(),this.setSize(),clearInterval(this._check),this._check=null)},setSize:function(){this.incorrectOrientation||(this.maxWidth&&this.width>this.maxWidth&&(this.width=this.maxWidth),this.maxHeight&&this.height>this.maxHeight&&(this.height=this.maxHeight),this.minWidth&&this.widththis.maxWidth?this.maxWidth:a,this.height=this.maxHeight&&b>this.maxHeight?this.maxHeight:b}},b.ScaleManager.prototype.constructor=b.ScaleManager,Object.defineProperty(b.ScaleManager.prototype,"isFullScreen",{get:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement}}),Object.defineProperty(b.ScaleManager.prototype,"isPortrait",{get:function(){return 0===this.orientation||180===this.orientation}}),Object.defineProperty(b.ScaleManager.prototype,"isLandscape",{get:function(){return 90===this.orientation||-90===this.orientation}}),b.Game=function(a,c,d,e,f,g,h,i){this.id=b.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=b.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this.width=a),"undefined"!=typeof c&&(this.height=c),"undefined"!=typeof d&&(this.renderer=d,this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new b.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new b.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)),this},b.Game.prototype={parseConfig:function(a){this.config=a,a.width&&(this.width=b.Utils.parseDimension(a.width,0)),a.height&&(this.height=b.Utils.parseDimension(a.height,1)),a.renderer&&(this.renderer=a.renderer,this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var c=[(Date.now()*Math.random()).toString()];a.seed&&(c=a.seed),this.rnd=new b.RandomDataGenerator(c);var d=null;a.state&&(d=a.state),this.state=new b.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new b.Signal,this.onResume=new b.Signal,this.onBlur=new b.Signal,this.onFocus=new b.Signal,this.isBooted=!0,this.device=new b.Device(this),this.math=b.Math,this.stage=new b.Stage(this,this.width,this.height),this.setUpRenderer(),this.scale=new b.ScaleManager(this,this.width,this.height),this.device.checkFullScreenSupport(),this.world=new b.World(this),this.add=new b.GameObjectFactory(this),this.make=new b.GameObjectCreator(this),this.cache=new b.Cache(this),this.load=new b.Loader(this),this.time=new b.Time(this),this.tweens=new b.TweenManager(this),this.input=new b.Input(this),this.sound=new b.SoundManager(this),this.physics=new b.Physics(this,this.physicsConfig),this.particles=new b.Particles(this),this.plugins=new b.PluginManager(this),this.net=new b.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new b.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new b.RequestAnimationFrame(this,this.config.forceSetTimeOut):new b.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=b.VERSION,c="Canvas",d="HTML Audio",e=1;if(this.renderType===b.WEBGL?(c="WebGL",e++):this.renderType==b.HEADLESS&&(c="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+c+" | "+d+" %c %c http://phaser.io %c %c ♥%c♥%c♥ ","background: #0cf300","background: #00bc17","color: #ffffff; background: #00711f;","background: #00bc17","background: #0cf300","background: #00bc17"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+c+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.device.trident&&(this.renderType=b.CANVAS),this.canvas=this.config.canvasID?b.Canvas.create(this.width,this.height,this.config.canvasID):b.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=!0),this.renderType===b.HEADLESS||this.renderType===b.CANVAS||this.renderType===b.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===b.AUTO&&(this.renderType=b.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,this.canvas,this.transparent),this.context=this.renderer.context}else this.renderType=b.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,this.canvas,this.transparent,this.antialias,this.preserveDrawingBuffer),this.context=null;this.renderType!==b.HEADLESS&&(this.stage.smoothed=this.antialias,b.Canvas.addToDOM(this.canvas,this.parent,!1),b.Canvas.setTouchAction(this.canvas))},update:function(a){this.time.update(a),this._paused||this.pendingStep?(this.state.pauseUpdate(),this.config.enableDebug&&this.debug.preUpdate()):(this.stepping&&(this.pendingStep=!0),this.config.enableDebug&&this.debug.preUpdate(),this.physics.preUpdate(),this.state.preUpdate(),this.plugins.preUpdate(),this.stage.preUpdate(),this.state.update(),this.stage.update(),this.tweens.update(),this.sound.update(),this.input.update(),this.physics.update(),this.particles.update(),this.plugins.update(),this.stage.postUpdate(),this.plugins.postUpdate()),this.renderType!=b.HEADLESS&&(this.state.preRender(),this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender(),this.device.cocoonJS&&this.renderType===b.CANVAS&&1===this.stage.currentRenderOrderID&&this.context.fillRect(0,0,0,0))},enableStep:function(){this.stepping=!0,this.pendingStep=!1,this.stepCount=0},disableStep:function(){this.stepping=!1,this.pendingStep=!1},step:function(){this.pendingStep=!1,this.stepCount++},destroy:function(){this.raf.stop(),this.input.destroy(),this.state.destroy(),this.physics.destroy(),this.state=null,this.cache=null,this.input=null,this.load=null,this.sound=null,this.stage=null,this.time=null,this.world=null,this.isBooted=!1},gamePaused:function(a){this._paused||(this._paused=!0,this.time.gamePaused(),this.sound.setMute(),this.onPause.dispatch(a))},gameResumed:function(a){this._paused&&!this._codePaused&&(this._paused=!1,this.time.gameResumed(),this.input.reset(),this.sound.unsetMute(),this.onResume.dispatch(a))},focusLoss:function(a){this.onBlur.dispatch(a),this.stage.disableVisibilityChange||this.gamePaused(a)},focusGain:function(a){this.onFocus.dispatch(a),this.stage.disableVisibilityChange||this.gameResumed(a)}},b.Game.prototype.constructor=b.Game,Object.defineProperty(b.Game.prototype,"paused",{get:function(){return this._paused},set:function(a){a===!0?this._paused===!1&&(this._paused=!0,this._codePaused=!0,this.sound.setMute(),this.time.gamePaused(),this.onPause.dispatch(this)):this._paused&&(this._paused=!1,this._codePaused=!1,this.input.reset(),this.sound.unsetMute(),this.time.gameResumed(),this.onResume.dispatch(this)) }}),b.Input=function(a){this.game=a,this.hitCanvas=null,this.hitContext=null,this.moveCallbacks=[],this.moveCallback=null,this.moveCallbackContext=this,this.pollRate=0,this.disabled=!1,this.multiInputOverride=b.Input.MOUSE_TOUCH_COMBINE,this.position=null,this.speed=null,this.circle=null,this.scale=null,this.maxPointers=10,this.currentPointers=0,this.tapRate=200,this.doubleTapRate=300,this.holdRate=2e3,this.justPressedRate=200,this.justReleasedRate=200,this.recordPointerHistory=!1,this.recordRate=100,this.recordLimit=100,this.pointer1=null,this.pointer2=null,this.pointer3=null,this.pointer4=null,this.pointer5=null,this.pointer6=null,this.pointer7=null,this.pointer8=null,this.pointer9=null,this.pointer10=null,this.activePointer=null,this.mousePointer=null,this.mouse=null,this.keyboard=null,this.touch=null,this.mspointer=null,this.gamepad=null,this.resetLocked=!1,this.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.minPriorityID=0,this.interactiveItems=new b.ArrayList,this._localPoint=new b.Point,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=0},b.Input.MOUSE_OVERRIDES_TOUCH=0,b.Input.TOUCH_OVERRIDES_MOUSE=1,b.Input.MOUSE_TOUCH_COMBINE=2,b.Input.prototype={boot:function(){this.mousePointer=new b.Pointer(this.game,0),this.pointer1=new b.Pointer(this.game,1),this.pointer2=new b.Pointer(this.game,2),this.mouse=new b.Mouse(this.game),this.keyboard=new b.Keyboard(this.game),this.touch=new b.Touch(this.game),this.mspointer=new b.MSPointer(this.game),this.gamepad=new b.Gamepad(this.game),this.onDown=new b.Signal,this.onUp=new b.Signal,this.onTap=new b.Signal,this.onHold=new b.Signal,this.scale=new b.Point(1,1),this.speed=new b.Point,this.position=new b.Point,this._oldPosition=new b.Point,this.circle=new b.Circle(0,0,44),this.activePointer=this.mousePointer,this.currentPointers=0,this.hitCanvas=document.createElement("canvas"),this.hitCanvas.width=1,this.hitCanvas.height=1,this.hitContext=this.hitCanvas.getContext("2d"),this.mouse.start(),this.keyboard.start(),this.touch.start(),this.mspointer.start(),this.mousePointer.active=!0},destroy:function(){this.mouse.stop(),this.keyboard.stop(),this.touch.stop(),this.mspointer.stop(),this.gamepad.stop(),this.moveCallbacks=[],this.moveCallback=null},setMoveCallback:function(a,b){this.moveCallback=a,this.moveCallbackContext=b},addMoveCallback:function(a,b){return this.moveCallbacks.push({callback:a,context:b})-1},deleteMoveCallback:function(a){this.moveCallbacks[a]&&this.moveCallbacks.splice(a,1)},addPointer:function(){for(var a=0,c=10;c>0;c--)null===this["pointer"+c]&&(a=c);return 0===a?(console.warn("You can only have 10 Pointer objects"),null):(this["pointer"+a]=new b.Pointer(this.game,a),this["pointer"+a])},update:function(){return this.keyboard.update(),this.pollRate>0&&this._pollCounter=c;c++)this["pointer"+c]&&this["pointer"+c].reset();this.currentPointers=0,"none"!==this.game.canvas.style.cursor&&(this.game.canvas.style.cursor="inherit"),a&&(this.onDown.dispose(),this.onUp.dispose(),this.onTap.dispose(),this.onHold.dispose(),this.onDown=new b.Signal,this.onUp=new b.Signal,this.onTap=new b.Signal,this.onHold=new b.Signal,this.moveCallbacks=[]),this._pollCounter=0}},resetSpeed:function(a,b){this._oldPosition.setTo(a,b),this.speed.setTo(0,0)},startPointer:function(a){if(this.maxPointers<10&&this.totalActivePointers==this.maxPointers)return null;if(this.pointer1.active===!1)return this.pointer1.start(a);if(this.pointer2.active===!1)return this.pointer2.start(a);for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active===!1)return this["pointer"+b].start(a);return null},updatePointer:function(a){if(this.pointer1.active&&this.pointer1.identifier==a.identifier)return this.pointer1.move(a);if(this.pointer2.active&&this.pointer2.identifier==a.identifier)return this.pointer2.move(a);for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active&&this["pointer"+b].identifier==a.identifier)return this["pointer"+b].move(a);return null},stopPointer:function(a){if(this.pointer1.active&&this.pointer1.identifier==a.identifier)return this.pointer1.stop(a);if(this.pointer2.active&&this.pointer2.identifier==a.identifier)return this.pointer2.stop(a);for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active&&this["pointer"+b].identifier==a.identifier)return this["pointer"+b].stop(a);return null},getPointer:function(a){if(a=a||!1,this.pointer1.active==a)return this.pointer1;if(this.pointer2.active==a)return this.pointer2;for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active==a)return this["pointer"+b];return null},getPointerFromIdentifier:function(a){if(this.pointer1.identifier===a)return this.pointer1;if(this.pointer2.identifier===a)return this.pointer2;for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].identifier===a)return this["pointer"+b];return null},getPointerFromId:function(a){if(this.pointer1.pointerId===a)return this.pointer1;if(this.pointer2.pointerId===a)return this.pointer2;for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].pointerId===a)return this["pointer"+b];return null},getLocalPosition:function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.worldTransform,f=1/(e.a*e.d+e.b*-e.c);return d.setTo(e.d*f*c.x+-e.b*f*c.y+(e.ty*e.b-e.tx*e.d)*f,e.a*f*c.y+-e.c*f*c.x+(-e.ty*e.a+e.tx*e.c)*f)},hitTest:function(a,c,d){if(!a.worldVisible)return!1;if(this.getLocalPosition(a,c,this._localPoint),d.copyFrom(this._localPoint),a.hitArea&&a.hitArea.contains)return a.hitArea.contains(this._localPoint.x,this._localPoint.y)?!0:!1;if(a instanceof b.TileSprite){var e=a.width,f=a.height,g=-e*a.anchor.x;if(this._localPoint.x>g&&this._localPoint.xh&&this._localPoint.yg&&this._localPoint.xh&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],c,d))return!0;return!1}},b.Input.prototype.constructor=b.Input,Object.defineProperty(b.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(b.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(b.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter=a;a++)this["pointer"+a]&&this["pointer"+a].active&&this.currentPointers++;return this.currentPointers}}),Object.defineProperty(b.Input.prototype,"worldX",{get:function(){return this.game.camera.view.x+this.x}}),Object.defineProperty(b.Input.prototype,"worldY",{get:function(){return this.game.camera.view.y+this.y}}),b.Key=function(a,c){this.game=a,this.enabled=!0,this.event=null,this.isDown=!1,this.isUp=!0,this.altKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.timeDown=0,this.duration=0,this.timeUp=-2500,this.repeats=0,this.keyCode=c,this.onDown=new b.Signal,this.onHoldCallback=null,this.onHoldContext=null,this.onUp=new b.Signal},b.Key.prototype={update:function(){this.enabled&&this.isDown&&(this.duration=this.game.time.now-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(a){this.enabled&&(this.event=a,this.isDown||(this.altKey=a.altKey,this.ctrlKey=a.ctrlKey,this.shiftKey=a.shiftKey,this.isDown=!0,this.isUp=!1,this.timeDown=this.game.time.now,this.duration=0,this.repeats=0,this.onDown.dispatch(this)))},processKeyUp:function(a){this.enabled&&(this.event=a,this.isUp||(this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=this.game.time.now-this.timeDown,this.onUp.dispatch(this)))},reset:function(a){"undefined"==typeof a&&(a=!0),this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=0,this.enabled=!0,a&&(this.onDown.removeAll(),this.onUp.removeAll(),this.onHoldCallback=null,this.onHoldContext=null)},justPressed:function(a){return"undefined"==typeof a&&(a=50),this.isDown&&this.duration=this.game.input.holdRate&&((this.game.input.multiInputOverride==b.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==b.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==b.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.now>=this._nextDrop&&(this._nextDrop=this.game.time.now+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,c){if(!this.game.input.pollLocked){if("undefined"==typeof c&&(c=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!c&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.stage.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.stage.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===b.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===b.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===b.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;this.game.input.moveCallback&&this.game.input.moveCallback.call(this.game.input.moveCallbackContext,this,this.x,this.y);for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y);if(null!==this.targetObject&&this.targetObject.isDragged===!0)return this.targetObject.update(this)===!1&&(this.targetObject=null),this;if(this._highestRenderOrderID=Number.MAX_SAFE_INTEGER,this._highestRenderObject=null,this._highestInputPriorityID=-1,this.game.input.interactiveItems.total>0){var e=this.game.input.interactiveItems.first;do e&&e.validForInput(this._highestInputPriorityID,this._highestRenderOrderID)&&(!c&&e.checkPointerOver(this)||c&&e.checkPointerDown(this))&&(this._highestRenderOrderID=e.sprite._cache[3],this._highestInputPriorityID=e.priorityID,this._highestRenderObject=e),e=this.game.input.interactiveItems.next;while(null!==e)}return null===this._highestRenderObject?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=this._highestRenderObject,this._highestRenderObject._pointerOverHandler(this)):this.targetObject===this._highestRenderObject?this._highestRenderObject.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=this._highestRenderObject,this.targetObject._pointerOverHandler(this)),this}},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.now,(this.game.input.multiInputOverride===b.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===b.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===b.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.now},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.now},reset:function(){this.isMouse===!1&&(this.active=!1),this.pointerId=null,this.identifier=null,this.isDown=!1,this.isUp=!0,this.totalTouches=0,this._holdSent=!1,this._history.length=0,this._stateReset=!0,this.targetObject&&this.targetObject._releasedHandler(this),this.targetObject=null},resetMovement:function(){this.movementX=0,this.movementY=0}},b.Pointer.prototype.constructor=b.Pointer,Object.defineProperty(b.Pointer.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.now-this.timeDown}}),Object.defineProperty(b.Pointer.prototype,"worldX",{get:function(){return this.game.world.camera.x+this.x}}),Object.defineProperty(b.Pointer.prototype,"worldY",{get:function(){return this.game.world.camera.y+this.y}}),b.Touch=function(a){this.game=a,this.disabled=!1,this.callbackContext=this.game,this.touchStartCallback=null,this.touchMoveCallback=null,this.touchEndCallback=null,this.touchEnterCallback=null,this.touchLeaveCallback=null,this.touchCancelCallback=null,this.preventDefault=!0,this.event=null,this._onTouchStart=null,this._onTouchMove=null,this._onTouchEnd=null,this._onTouchEnter=null,this._onTouchLeave=null,this._onTouchCancel=null,this._onTouchMove=null},b.Touch.prototype={start:function(){if(null===this._onTouchStart){var a=this;this.game.device.touch&&(this._onTouchStart=function(b){return a.onTouchStart(b)},this._onTouchMove=function(b){return a.onTouchMove(b)},this._onTouchEnd=function(b){return a.onTouchEnd(b)},this._onTouchEnter=function(b){return a.onTouchEnter(b)},this._onTouchLeave=function(b){return a.onTouchLeave(b)},this._onTouchCancel=function(b){return a.onTouchCancel(b)},this.game.canvas.addEventListener("touchstart",this._onTouchStart,!1),this.game.canvas.addEventListener("touchmove",this._onTouchMove,!1),this.game.canvas.addEventListener("touchend",this._onTouchEnd,!1),this.game.canvas.addEventListener("touchcancel",this._onTouchCancel,!1),this.game.device.cocoonJS||(this.game.canvas.addEventListener("touchenter",this._onTouchEnter,!1),this.game.canvas.addEventListener("touchleave",this._onTouchLeave,!1)))}},consumeDocumentTouches:function(){this._documentTouchMove=function(a){a.preventDefault()},document.addEventListener("touchmove",this._documentTouchMove,!1)},onTouchStart:function(a){if(this.event=a,this.touchStartCallback&&this.touchStartCallback.call(this.callbackContext,a),!this.game.input.disabled&&!this.disabled){this.preventDefault&&a.preventDefault();for(var b=0;b0&&d>this.deadZone||0>d&&d<-this.deadZone?{axis:c,value:d}:{axis:c,value:0})}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var c=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=a.axes,this._axesLen=a.axes.length;for(var d in a.buttons)d=parseInt(d,10),this._buttons[d]=new b.GamepadButton(this,d);c&&this._padParent.onConnectCallback&&this._padParent.onConnectCallback.call(this._padParent.callbackContext,this.index),c&&this.onConnectCallback&&this.onConnectCallback.call(this.callbackContext)},disconnect:function(){var a=this.connected,b=this.index;this.connected=!1,this.index=null,this._rawPad=void 0;for(var c=0;cd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new b.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new b.Signal,this.sprite.events.onInputOut=new b.Signal,this.sprite.events.onInputDown=new b.Signal,this.sprite.events.onInputUp=new b.Signal,this.sprite.events.onDragStart=new b.Signal,this.sprite.events.onDragStop=new b.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b){return 0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0:!1},checkPointerOver:function(a){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0:!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(this.game.input.hitContext.clearRect(0,0,1,1),null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID==a.id?this.updateDrag(a):this._pointerData[a.id].isOver===!0?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isOver===!1&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.now,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.now,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.now,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.now,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){return a.isUp?(this.stopDrag(a),!1):(this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=a.x+this._dragPoint.x+this.dragOffset.x),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=a.y+this._dragPoint.y+this.dragOffset.y),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=a.x+this._dragPoint.x+this.dragOffset.x),this.allowVerticalDrag&&(this.sprite.y=a.y+this._dragPoint.y+this.dragOffset.y),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0)},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=a.x+(this.sprite.x-b.centerX),this.sprite.y=a.y+(this.sprite.y-b.centerY),this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y)}else this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y);this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},b.InputHandler.prototype.constructor=b.InputHandler,b.Events=function(a){this.parent=a,this.onAddedToGroup=new b.Signal,this.onRemovedFromGroup=new b.Signal,this.onKilled=new b.Signal,this.onRevived=new b.Signal,this.onOutOfBounds=new b.Signal,this.onEnterBounds=new b.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},b.Events.prototype={destroy:function(){this.parent=null,this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},b.Events.prototype.constructor=b.Events,b.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},b.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,c,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new b.Image(this.game,a,c,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,c,d,e,f){return new b.Group(this.game,a,c,d,e,f)},physicsGroup:function(a,c,d,e){return new b.Group(this.game,c,d,e,!0,a)},spriteBatch:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.SpriteBatch(this.game,a,c,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,c,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new b.TileSprite(this.game,a,c,d,e,f,g))},text:function(a,c,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new b.Text(this.game,a,c,d,e))},button:function(a,c,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new b.Button(this.game,a,c,d,e,f,g,h,i,j))},graphics:function(a,c,d){return"undefined"==typeof d&&(d=this.world),d.add(new b.Graphics(this.game,a,c))},emitter:function(a,c,d){return this.game.particles.add(new b.Particles.Arcade.Emitter(this.game,a,c,d))},retroFont:function(a,c,d,e,f,g,h,i,j){return new b.RetroFont(this.game,a,c,d,e,f,g,h,i,j)},bitmapText:function(a,c,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new b.BitmapText(this.game,a,c,d,e,f))},tilemap:function(a,c,d,e,f){return new b.Tilemap(this.game,a,c,d,e,f)},renderTexture:function(a,c,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new b.RenderTexture(this.game,a,c,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,c,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new b.BitmapData(this.game,d,a,c);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var c=Array.prototype.splice.call(arguments,1),a=new b.Filter[a](this.game);return a.init.apply(a,c),a},plugin:function(a){return this.game.plugins.add(a)}},b.GameObjectFactory.prototype.constructor=b.GameObjectFactory,b.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},b.GameObjectCreator.prototype={image:function(a,c,d,e){return new b.Image(this.game,a,c,d,e)},sprite:function(a,c,d,e){return new b.Sprite(this.game,a,c,d,e)},tween:function(a){return new b.Tween(a,this.game)},group:function(a,c,d,e,f){return new b.Group(this.game,null,c,d,e,f)},spriteBatch:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.SpriteBatch(this.game,a,c,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,c,d,e,f,g){return new b.TileSprite(this.game,a,c,d,e,f,g)},text:function(a,c,d,e){return new b.Text(this.game,a,c,d,e)},button:function(a,c,d,e,f,g,h,i,j){return new b.Button(this.game,a,c,d,e,f,g,h,i,j)},graphics:function(a,c){return new b.Graphics(this.game,a,c)},emitter:function(a,c,d){return new b.Particles.Arcade.Emitter(this.game,a,c,d)},retroFont:function(a,c,d,e,f,g,h,i,j){return new b.RetroFont(this.game,a,c,d,e,f,g,h,i,j)},bitmapText:function(a,c,d,e,f){return new b.BitmapText(this.game,a,c,d,e,f)},tilemap:function(a,c,d,e,f){return new b.Tilemap(this.game,a,c,d,e,f)},renderTexture:function(a,c,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new b.RenderTexture(this.game,a,c,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,c,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new b.BitmapData(this.game,d,a,c);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var c=Array.prototype.splice.call(arguments,1),a=new b.Filter[a](this.game);return a.init.apply(a,c),a}},b.GameObjectCreator.prototype.constructor=b.GameObjectCreator,b.BitmapData=function(a,c,d,e){"undefined"==typeof d&&(d=100),"undefined"==typeof e&&(e=100),this.game=a,this.key=c,this.width=d,this.height=e,this.canvas=b.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=b.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this.update=this.refreshBuffer,this._tempR=0,this._tempG=0,this._tempB=0 -},b.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)b.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(c,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},replaceRGB:function(a,c,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=b.Color.packPixel(a,c,d,e);void 0!==j&&j instanceof b.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);this.context.putImageData(this.imageData,0,0),this.dirty=!0},setHSL:function(a,c,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof c||null===c)&&(c=!1),("undefined"==typeof d||null===d)&&(d=!1),a||c||d){"undefined"==typeof e&&(e=new b.Rectangle(0,0,this.width,this.height));for(var f=b.Color.createColor(),g=e.y;g=0&&a<=this.width&&c>=0&&c<=this.height&&(this.pixels[c*this.width+a]=b.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0))},setPixel:function(a,b,c,d,e,f){this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,c,d){d||(d=b.Color.createColor());var e=~~(a+c*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,c,d,e,f){return b.Color.unpackPixel(this.getPixel32(a,c),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},addToWorld:function(a,b){return this.game.add.image(a,b,this)},copyPixels:function(a,c,d,e){"string"==typeof a&&(a=this.game.cache.getImage(a));var f=a,g=0,h=0;if(a instanceof b.Image||a instanceof b.Sprite){f=a.texture.baseTexture.source;var i=a.texture.frame;g=i.x,h=i.y}else a instanceof b.BitmapData&&(f=a.canvas);this.context.drawImage(f,g+c.x,h+c.y,c.width,c.height,d,e,c.width,c.height),this.dirty=!0},draw:function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"string"==typeof a&&(a=this.game.cache.getImage(a));var g=a,h=0,i=0,j=0,k=0;if(a instanceof b.Image||a instanceof b.Sprite){g=a.texture.baseTexture.source;var l=a.texture.frame;h=l.x,i=l.y,j=l.width,k=l.height}else a instanceof b.BitmapData&&(g=a.canvas),j=a.width,k=a.height;"undefined"==typeof e&&(e=j),"undefined"==typeof f&&(f=k),this.context.drawImage(g,h,i,j,k,c,d,e,f),this.dirty=!0},drawSprite:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),this.draw(a,b,c)},alphaMask:function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this);var e=this.context.globalCompositeOperation;"undefined"==typeof d||null===d?this.draw(b):this.draw(b,d.x,d.y,d.width,d.height),this.context.globalCompositeOperation="source-atop","undefined"==typeof c||null===c?this.draw(a):this.draw(a,c.x,c.y,c.width,c.height),this.context.globalCompositeOperation=e,this.update(),this.dirty=!0},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d)},circle:function(a,b,c,d){"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill()},render:function(){!this.disableTextureUpload&&this.game.renderType===b.WEBGL&&this.dirty&&(PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1)}},b.BitmapData.prototype.constructor=b.BitmapData,b.Sprite=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=b.SPRITE,this.z=0,this.events=new b.Events(this),this.animations=new b.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new b.Rectangle,this.loadTexture(e,f)},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Sprite.prototype.update=function(){},b.Sprite.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Sprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a;var d=!0;a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),c))):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),d&&(this._frame=b.Rectangle.clone(this.texture.frame))},b.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.cropRect?this.updateCrop():this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},b.Sprite.prototype.crop=function(a,c){"undefined"==typeof c&&(c=!1),a?(c&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=c&&null===this.cropRect?new b.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},b.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=b.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),c=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-c;this.texture.crop.x=a,this.texture.crop.y=c,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)}},b.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},b.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},b.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},b.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},b.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},b.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},b.Sprite.prototype.overlap=function(a){return b.Rectangle.intersects(this.getBounds(),a.getBounds())},Object.defineProperty(b.Sprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(b.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(b.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(b.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(b.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(b.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Image=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=b.IMAGE,this.z=0,this.events=new b.Events(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.cameraOffset=new b.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new b.Rectangle,this._frameName="",this.loadTexture(e,f)},b.Image.prototype=Object.create(PIXI.Sprite.prototype),b.Image.prototype.constructor=b.Image,b.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Image.prototype.update=function(){},b.Image.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Image.prototype.loadTexture=function(a,c){if(c=c||0,this.key=a,a instanceof b.RenderTexture)this.key=a.key,this.setTexture(a);else if(a instanceof b.BitmapData)this.setTexture(a.texture);else if(a instanceof PIXI.Texture)this.setTexture(a);else if(null===a||"undefined"==typeof a)this.key="__default",this.setTexture(PIXI.TextureCache[this.key]);else if("string"!=typeof a||this.game.cache.checkImageKey(a))if(this.game.cache.isSpriteSheet(a)){var d=this.game.cache.getFrameData(a);this.setTexture("string"==typeof c?new PIXI.Texture(PIXI.BaseTextureCache[a],d.getFrameByName(c)):new PIXI.Texture(PIXI.BaseTextureCache[a],d.getFrame(c)))}else this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a]));else console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]);this._frame=b.Rectangle.clone(this.texture.frame)},b.Image.prototype.resetFrame=b.Sprite.prototype.resetFrame,b.Image.prototype.setFrame=b.Sprite.prototype.setFrame,b.Image.prototype.updateCrop=b.Sprite.prototype.updateCrop,b.Image.prototype.crop=b.Sprite.prototype.crop,b.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},b.Image.prototype.kill=b.Sprite.prototype.kill,b.Image.prototype.destroy=b.Sprite.prototype.destroy,b.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},b.Image.prototype.bringToTop=b.Sprite.prototype.bringToTop,Object.defineProperty(b.Image.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"frame",{get:function(){return this._cache[9]},set:function(a){if(a!==this.frame&&this.game.cache.isSpriteSheet(this.key)){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},b.TileSprite.prototype.update=function(){},b.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},b.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},b.TileSprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a,a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),c)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},b.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.filters&&(this.filters=null),this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},b.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(b.TileSprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(b.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(b.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(b.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Text=function(a,c,d,e,f){c=c||0,d=d||0,e=e||" ",f=f||{},e=0===e.length?" ":e.toString(),this.game=a,this.exists=!0,this.name="",this.type=b.TEXT,this.z=0,this.world=new b.Point(c,d),this._text=e,this._font="",this._fontSize=32,this._fontWeight="normal",this._lineSpacing=0,this.events=new b.Events(this),this.input=null,this.cameraOffset=new b.Point,this.setStyle(f),PIXI.Text.call(this,e,this.style),this.position.set(c,d),this._cache=[0,0,0,0,1,0,1,0,0]},b.Text.prototype=Object.create(PIXI.Text.prototype),b.Text.prototype.constructor=b.Text,b.Text.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Text.prototype.update=function(){},b.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0},b.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},b.Text.prototype.updateText=function(){this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=0;ee?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},b.Graphics.prototype.drawTriangles=function(a,c,d){"undefined"==typeof d&&(d=!1);var e,f=new b.Point,g=new b.Point,h=new b.Point,i=[];if(c)if(a[0]instanceof b.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},b.RetroFont.prototype.buildRetroFontText=function(){var a=0,c=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,c,this.customSpacingX),c+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case b.RetroFont.ALIGN_LEFT:a=0;break;case b.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},b.RetroFont.prototype.pasteLine=function(a,c,d,e){for(var f=new b.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(c,d),this.render(this.stamp,f,!1),c+=this.characterWidth+e,c>this.width))break},b.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},b.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},b.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(b.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(b.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),b.Particle=function(a,c,d,e,f){b.Sprite.call(this,a,c,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},b.Particle.prototype=Object.create(b.Sprite.prototype),b.Particle.prototype.constructor=b.Particle,b.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},b.Particle.prototype.onEmit=function(){},b.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},b.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},b.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},b.Canvas={create:function(a,b,c,d){"undefined"==typeof d&&(d=!1),a=a||256,b=b||256;var e=document.createElement("canvas");return"string"==typeof c&&""!==c&&(e.id=c),e.width=a,e.height=b,e.style.display="block",e},getOffset:function(a,c){c=c||new b.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),c.x=d.left+h-f,c.y=d.top+g-e,c},getAspectRatio:function(a){return a.width/a.height},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},b.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.touch=!1,this.mspointer=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures()},b.Device.LITTLE_ENDIAN=!1,b.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},b.Device.prototype.constructor=b.Device,b.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b; -for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=[],b=0;b0?Math.floor(a):Math.ceil(a)},shear:function(a){return a%1},snapTo:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},snapToInArray:function(a,b,c){if("undefined"==typeof c&&(c=!0),c&&b.sort(),a=f-a?f:e},roundTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},interpolateFloat:function(a,b,c){return(b-a)*c+a},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},normalizeLatitude:function(a){return Math.max(-90,Math.min(90,a))},normalizeLongitude:function(a){return a%360==180?180:(a%=360,-180>a?a+360:a>180?a-360:a)},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),0>=a?!1:a>=100?!0:100*Math.random()>=a?!1:!0},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},maxAdd:function(a,b,c){return a+=b,a>c&&(a=c),a},minSub:function(a,b,c){return a-=b,c>a&&(a=c),a},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,c){return b>a?b:a>c?c:a},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){var c=b?Math.PI/180:1;return this.wrap(a,-180*c,180*c)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0)return a[b+Math.floor(Math.random()*d)]}return null},removeRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0){var e=b+Math.floor(Math.random()*d),f=a.splice(e,1);return f[0]}}return null},floor:function(a){var b=0|a;return a>0?b:b!=a?b-1:b},ceil:function(a){var b=0|a;return a>0&&b!=a?b+1:b},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){for(var b=a.length-1;b>0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,c,d,e){return Math.round(b.Math.distance(a,c,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b},degToRad:function(){var a=Math.PI/180;return function(b){return b*a}}(),radToDeg:function(){var a=180/Math.PI;return function(b){return b*a}}()},b.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},b.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},b.RandomDataGenerator.prototype.constructor=b.RandomDataGenerator,b.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},b.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.level++,this.nodes[0]=new b.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[1]=new b.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[2]=new b.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[3]=new b.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof b.Rectangle)var c=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var c=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?c=c.concat(this.nodes[d].retrieve(a)):(c=c.concat(this.nodes[0].retrieve(a)),c=c.concat(this.nodes[1].retrieve(a)),c=c.concat(this.nodes[2].retrieve(a)),c=c.concat(this.nodes[3].retrieve(a)))),c},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},b.QuadTree.prototype.constructor=b.QuadTree,b.Net=function(a){this.game=a},b.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},b.Net.prototype.constructor=b.Net,b.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},b.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;aa;)this._tweens[a].update(this.game.time.now)?a++:(this._tweens.splice(a,1),b--);return this._add.length>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},b.TweenManager.prototype.constructor=b.TweenManager,b.Tween=function(a,c,d){this._object=a,this.game=c,this._manager=d,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=b.Easing.Linear.None,this._interpolationFunction=b.Math.linearInterpolation,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._paused=!1,this._pausedTime=0,this._codePaused=!1,this.pendingDelete=!1,this.onStart=new b.Signal,this.onLoop=new b.Signal,this.onComplete=new b.Signal,this.isRunning=!1},b.Tween.prototype={to:function(a,b,c,d,e,f,g){b=b||1e3,c=c||null,d=d||!1,e=e||0,f=f||0,g=g||!1,g&&0===f&&(f=1);var h;return this._parent?(h=this._manager.create(this._object),this._lastChild.chain(h),this._lastChild=h):(h=this,this._parent=this,this._lastChild=this),h._repeat=f,h._duration=b,h._valuesEnd=a,null!==c&&(h._easingFunction=c),e>0&&(h._delayTime=e),h._yoyo=g,d?this.start():this},from:function(a,b,c,d,e,f,g){var h={};for(var i in a)h[i]=this._object[i],this._object[i]=a[i];return this.to(h,b,c,d,e,f,g)},start:function(){if(null!==this.game&&null!==this._object){this._manager.add(this),this.isRunning=!0,this._onStartCallbackFired=!1,this._startTime=this.game.time.now+this._delayTime;for(var a in this._valuesEnd){if(Array.isArray(this._valuesEnd[a])){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],Array.isArray(this._valuesStart[a])||(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},generateData:function(a,b){if(null===this.game||null===this._object)return null;this._startTime=0;for(var c in this._valuesEnd){if(Array.isArray(this._valuesEnd[c])){if(0===this._valuesEnd[c].length)continue;this._valuesEnd[c]=[this._object[c]].concat(this._valuesEnd[c])}this._valuesStart[c]=this._object[c],Array.isArray(this._valuesStart[c])||(this._valuesStart[c]*=1),this._valuesStartRepeat[c]=this._valuesStart[c]||0}for(var d=0,e=Math.floor(a*(this._duration/1e3)),f=this._duration/e,g=[];e--;){var c,h=(d-this._startTime)/this._duration;h=h>1?1:h;var i=this._easingFunction(h),j={};for(c in this._valuesEnd){var k=this._valuesStart[c]||0,l=this._valuesEnd[c];l instanceof Array?j[c]=this._interpolationFunction(l,i):("string"==typeof l&&(l=k+parseFloat(l,10)),"number"==typeof l&&(j[c]=k+(l-k)*i))}g.push(j),d+=f}if(this._yoyo){var m=g.slice();m.reverse(),g=g.concat(m)}return"undefined"!=typeof b?b=b.concat(g):g},stop:function(){return this.isRunning=!1,this._onUpdateCallback=null,this._manager.remove(this),this},delay:function(a){return this._delayTime=a,this},repeat:function(a){return this._repeat=a,this},yoyo:function(a){return this._yoyo=a,a&&0===this._repeat&&(this._repeat=1),this},easing:function(a){return this._easingFunction=a,this},interpolation:function(a){return this._interpolationFunction=a,this},chain:function(){return this._chainedTweens=arguments,this},loop:function(){return this._lastChild.chain(this),this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this._codePaused=!0,this._paused=!0,this._pausedTime=this.game.time.now},_pause:function(){this._codePaused||(this._paused=!0,this._pausedTime=this.game.time.now)},resume:function(){this._paused&&(this._paused=!1,this._codePaused=!1,this._startTime+=this.game.time.now-this._pausedTime)},_resume:function(){this._codePaused||(this._startTime+=this.game.time.pauseDuration,this._paused=!1)},update:function(a){if(this.pendingDelete)return!1;if(this._paused||a1?1:c;var d=this._easingFunction(c);for(b in this._valuesEnd){var e=this._valuesStart[b]||0,f=this._valuesEnd[b];f instanceof Array?this._object[b]=this._interpolationFunction(f,d):("string"==typeof f&&(f=e+parseFloat(f,10)),"number"==typeof f&&(this._object[b]=e+(f-e)*d))}if(null!==this._onUpdateCallback&&(this._onUpdateCallback.call(this._onUpdateCallbackContext,this,d),!this.isRunning))return!1;if(1==c){if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(b in this._valuesStartRepeat){if("string"==typeof this._valuesEnd[b]&&(this._valuesStartRepeat[b]=this._valuesStartRepeat[b]+parseFloat(this._valuesEnd[b],10)),this._yoyo){var g=this._valuesStartRepeat[b];this._valuesStartRepeat[b]=this._valuesEnd[b],this._valuesEnd[b]=g}this._valuesStart[b]=this._valuesStartRepeat[b]}return this._yoyo&&(this._reversed=!this._reversed),this._startTime=a+this._delayTime,this.onLoop.dispatch(this._object),!0}this.isRunning=!1,this.onComplete.dispatch(this._object);for(var h=0,i=this._chainedTweens.length;i>h;h++)this._chainedTweens[h].start(a);return!1}return!0}},b.Tween.prototype.constructor=b.Tween,b.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-b.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*b.Easing.Bounce.In(2*a):.5*b.Easing.Bounce.Out(2*a-1)+.5}}},b.Time=function(a){this.game=a,this.time=0,this.now=0,this.elapsed=0,this.pausedTime=0,this.advancedTiming=!1,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.physicsElapsed=0,this.deltaCap=0,this.timeCap=1e3,this.frames=0,this.pauseDuration=0,this.timeToCall=0,this.lastTime=0,this.events=new b.Timer(this.game,!1),this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[],this._len=0,this._i=0},b.Time.prototype={boot:function(){this._started=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var c=new b.Timer(this.game,a);return this._timers.push(c),c},removeAll:function(){for(var a=0;athis.timeCap&&(this.elapsed=1/60),this.physicsElapsed=this.elapsed/1e3||1/60,this.deltaCap>0&&this.physicsElapsed>this.deltaCap&&(this.physicsElapsed=this.deltaCap),this.advancedTiming&&(this.msMin=this.game.math.min(this.msMin,this.elapsed),this.msMax=this.game.math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=this.game.math.min(this.fpsMin,this.fps),this.fpsMax=this.game.math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)),this.time=this.now,this.lastTime=a+this.timeToCall,!this.game.paused)for(this.events.update(this.now),this._i=0,this._len=this._timers.length;this._i0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.now,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.now,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.now;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(b.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(b.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(b.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(b.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),b.Timer.prototype.constructor=b.Timer,b.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},b.TimerEvent.prototype.constructor=b.TimerEvent,b.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a,b){return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,this._frameData?!0:!1},add:function(a,c,d,e,f){return null===this._frameData?void console.warn("No FrameData available for Phaser.Animation "+a):(c=c||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=c&&"number"==typeof c[0]?!0:!1),null===this.sprite.events.onAnimationStart&&(this.sprite.events.onAnimationStart=new b.Signal,this.sprite.events.onAnimationComplete=new b.Signal,this.sprite.events.onAnimationLoop=new b.Signal),this._outputFrames.length=0,this._frameData.getFrameIndexes(c,f,this._outputFrames),this._anims[a]=new b.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a])},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},b.AnimationManager.prototype.constructor=b.AnimationManager,Object.defineProperty(b.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(b.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData?this._frameData.total:-1}}),Object.defineProperty(b.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(b.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))) -}}),Object.defineProperty(b.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,c,d,e,f,g,h){this.game=a,this._parent=c,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new b.Signal,this.onComplete=new b.Signal,this.onLoop=new b.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},b.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart.dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.now-this._timeNextFrame,this._timeLastFrame=this.game.time.now,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.now+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop.dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete.dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},b.Animation.prototype.constructor=b.Animation,Object.defineProperty(b.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.now:this.isPlaying&&(this._timeNextFrame=this.game.time.now+this.delay)}}),Object.defineProperty(b.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(b.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame))}}),Object.defineProperty(b.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),b.Animation.generateFrameNames=function(a,c,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>c)for(var i=c;d>=i;i++)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=c;i>=d;i--)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},b.Frame=function(a,c,d,e,f,g,h){this.index=a,this.x=c,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=b.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},getRect:function(a){return"undefined"==typeof a?a=new b.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},b.Frame.prototype.constructor=b.Frame,b.FrameData=function(){this._frames=[],this._frameNames=[]},b.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},getFrameRange:function(a,b,c){"undefined"==typeof c&&(c=[]);for(var d=a;b>=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},b.FrameData.prototype.constructor=b.FrameData,Object.defineProperty(b.FrameData.prototype,"total",{get:function(){return this._frames.length}}),b.AnimationParser={spriteSheet:function(a,c,d,e,f,g,h){var i=a.cache.getImage(c);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new b.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new b.Frame(r,p,q,d,e,"",s)),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,c){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var d,e=new b.FrameData,f=c.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o,p=new b.FrameData,q=c.getElementsByTagName("SubTexture"),r=0;r0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,c){if("undefined"==typeof c&&(c=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,c)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?(this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect)):(this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect))),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying===!0&&e===!1&&this.override===!1)return this;if(this.isPlaying&&this.override&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null==this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.now-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},b.Sound.prototype.constructor=b.Sound,Object.defineProperty(b.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(b.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(b.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(b.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),b.SoundManager=function(a){this.game=a,this.onSoundDecode=new b.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},b.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a>>0:(a<<24|c<<16|d<<8|e)>>>0},unpackPixel:function(a,c,d,e){return("undefined"==typeof c||null===c)&&(c=b.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),b.Device.LITTLE_ENDIAN?(c.a=(4278190080&a)>>>24,c.b=(16711680&a)>>>16,c.g=(65280&a)>>>8,c.r=255&a):(c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a),c.color=a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a/255+")",d&&b.Color.RGBtoHSL(c.r,c.g,c.b,c),e&&b.Color.RGBtoHSV(c.r,c.g,c.b,c),c},fromRGBA:function(a,c){return c||(c=b.Color.createColor()),c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a+")",c},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,1)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6}return e},HSLtoRGB:function(a,c,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=b.Color.createColor(d,d,d),0!==c){var f=.5>d?d*(1+c):d+c-d*c,g=2*d-f;e.r=b.Color.hueToColor(g,f,a+1/3),e.g=b.Color.hueToColor(g,f,a),e.b=b.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),b.Color.updateColor(e),e},RGBtoHSV:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,255)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6),e},HSVtoRGB:function(a,c,d,e){"undefined"==typeof e&&(e=b.Color.createColor(0,0,0,1,a,c,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-c),l=d*(1-j*c),m=d*(1-(1-j)*c);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),b.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,c,d,e,f,g,h){var i={r:a||0,g:b||0,b:c||0,a:d||1,h:e||0,s:f||0,l:g||0,v:h||0,color:0};return i.rgba="rgba("+i.r+","+i.g+","+i.b+","+i.a+")",i},updateColor:function(a){return a.rgba="rgba("+a.r+","+a.g+","+a.b+","+a.a+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,c,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(c<<8)+d).toString(16).slice(1):"0x"+b.Color.componentToHex(e)+b.Color.componentToHex(a)+b.Color.componentToHex(c)+b.Color.componentToHex(d)},hexToRGB:function(a){var c=b.Color.hexToColor(a);return c?b.Color.getColor32(c.a,c.r,c.g,c.b):void 0},hexToColor:function(a,c){c||(c=b.Color.createColor());var d=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;a=a.replace(d,function(a,b,c,d){return b+b+c+c+d+d});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return e&&(c.r=parseInt(e[1],16),c.g=parseInt(e[2],16),c.b=parseInt(e[3],16)),c -},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,c){"undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSVtoRGB(e/359,a,c));return d},HSLColorWheel:function(a,c){"undefined"==typeof a&&(a=.5),"undefined"==typeof c&&(c=.5);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSLtoRGB(e/359,a,c));return d},interpolateColor:function(a,c,d,e,f){"undefined"==typeof f&&(f=255);var g=b.Color.getRGB(a),h=b.Color.getRGB(c),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return b.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,c,d,e,f,g){var h=b.Color.getRGB(a),i=(c-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return b.Color.getColor(i,j,k)},interpolateRGB:function(a,c,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-c)*i/h+c,l=(g-d)*i/h+d;return b.Color.getColor(j,k,l)},getRandomColor:function(a,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof c&&(c=255),"undefined"==typeof d&&(d=255),c>255||a>c)return b.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(c-a)),f=a+Math.round(Math.random()*(c-a)),g=a+Math.round(Math.random()*(c-a));return b.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var c=b.Color.getRGB(a);return"rgba("+c.r.toString()+","+c.g.toString()+","+c.b.toString()+","+(c.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},getColorInfo:function(a){var c=b.Color.getRGB(a),d=b.Color.RGBtoHexstring(a)+"\n";return d=d.concat("Alpha: "+c.alpha+" Red: "+c.red+" Green: "+c.green+" Blue: "+c.blue)+"\n"},RGBtoHexstring:function(a){var c=b.Color.getRGB(a);return"0x"+b.Color.colorToHexstring(c.alpha)+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},RGBtoWebstring:function(a){var c=b.Color.getRGB(a);return"#"+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},colorToHexstring:function(a){var b="0123456789ABCDEF",c=a%16,d=(a-c)/16,e=b.charAt(d)+b.charAt(c);return e}},b.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},b.Physics.ARCADE=0,b.Physics.P2JS=1,b.Physics.NINJA=2,b.Physics.BOX2D=3,b.Physics.CHIPMUNK=5,b.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!b.Physics.hasOwnProperty("Arcade")||(this.arcade=new b.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&b.Physics.hasOwnProperty("Ninja")&&(this.ninja=new b.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&b.Physics.hasOwnProperty("P2")&&(this.p2=new b.Physics.P2(this.game,this.config))},startSystem:function(a){if(a===b.Physics.ARCADE?this.arcade=new b.Physics.Arcade(this.game):a===b.Physics.P2JS&&(this.p2=new b.Physics.P2(this.game,this.config)),a===b.Physics.NINJA)this.ninja=new b.Physics.Ninja(this.game);else{if(a===b.Physics.BOX2D&&null===this.box2d)throw new Error("The Box2D physics system has not been implemented yet.");if(a===b.Physics.CHIPMUNK&&null===this.chipmunk)throw new Error("The Chipmunk physics system has not been implemented yet.")}},enable:function(a,c,d){"undefined"==typeof c&&(c=b.Physics.ARCADE),"undefined"==typeof d&&(d=!1),c===b.Physics.ARCADE?this.arcade.enable(a):c===b.Physics.P2JS&&this.p2?this.p2.enable(a,d):c===b.Physics.NINJA&&this.ninja&&this.ninja.enableAABB(a)},preUpdate:function(){this.p2&&this.p2.preUpdate()},update:function(){this.p2&&this.p2.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.arcade=null,this.ninja=null,this.p2=null}},b.Physics.prototype.constructor=b.Physics,b.Physics.Arcade=function(a){this.game=a,this.gravity=new b.Point,this.bounds=new b.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.quadTree=new b.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0},b.Physics.Arcade.prototype.constructor=b.Physics.Arcade,b.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,c){"undefined"==typeof c&&(c=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof b.Group?this.enable(a[d].children,c):(this.enableBody(a[d]),c&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof b.Group?this.enable(a.children,c):(this.enableBody(a),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new b.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,c,d,e,f,g){return"undefined"!=typeof c||a.type!==b.GROUP&&a.type!==b.EMITTER?void(a&&c&&a.exists&&c.exists&&(a.type==b.SPRITE||a.type==b.TILESPRITE?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsSprite(a,c,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideSpriteVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,c,d,e,f):a.type==b.GROUP?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f):a.type==b.TILEMAPLAYER?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsTilemapLayer(c,a,d,e,f):(c.type==b.GROUP||c.type==b.EMITTER)&&this.collideGroupVsTilemapLayer(c,a,d,e,f):a.type==b.EMITTER&&(c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:e?!0:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),0!==this._overlap)?(a.overlapX=this._overlap,b.overlapX=this._overlap,c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0)):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),0!==this._overlap)?(a.overlapY=this._overlap,b.overlapY=this._overlap,c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0)):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,c,d,e){if(0!==c.length&&a.exists){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(c);var f=new b.Rectangle(a.x,a.y,1,1),g=[];this._potentials=this.quadTree.retrieve(f);for(var h=0,i=this._potentials.length;i>h;h++)this._potentials[h].hitTest(a.x,a.y)&&(d&&d.call(e,a,this._potentials[h].sprite),g.push(this._potentials[h].sprite));return g}},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*c,Math.sin(this.game.math.degToRad(a))*c)},velocityFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerationFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},b.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=b.Physics.ARCADE,this.enable=!0,this.offset=new b.Point,this.position=new b.Point(a.x,a.y),this.prev=new b.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new b.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new b.Point,this.newVelocity=new b.Point(0,0),this.deltaMax=new b.Point(0,0),this.acceleration=new b.Point,this.drag=new b.Point,this.allowGravity=!0,this.gravity=new b.Point(0,0),this.bounce=new b.Point,this.maxVelocity=new b.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=b.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new b.Point,this.phase=0,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},b.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=b.LEFT:this.deltaX()>0&&(this.facing=b.RIGHT),this.deltaY()<0?this.facing=b.UP:this.deltaY()>0&&(this.facing=b.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,c){return b.Rectangle.contains(this,a,c)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(b.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),b.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},b.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},b.Physics.Arcade.Body.prototype.constructor=b.Physics.Arcade.Body,b.Particles=function(a){this.game=a,this.emitters={},this.ID=0},b.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},b.Particles.prototype.constructor=b.Particles,b.Particles.Arcade={},b.Particles.Arcade.Emitter=function(a,c,d,e){this.maxParticles=e||50,b.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=b.EMITTER,this.area=new b.Rectangle(c,d,1,1),this.minParticleSpeed=new b.Point(-100,-100),this.maxParticleSpeed=new b.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=b.Particle,this.particleDrag=new b.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new b.Point,this.on=!1,this.particleAnchor=new b.Point(.5,.5),this.blendMode=b.blendModes.NORMAL,this.emitX=c,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new b.Point(1,1),this._maxParticleScale=new b.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},b.Particles.Arcade.Emitter.prototype=Object.create(b.Group.prototype),b.Particles.Arcade.Emitter.prototype.constructor=b.Particles.Arcade.Emitter,b.Particles.Arcade.Emitter.prototype.update=function(){if(this.on)if(this._explode){this._counter=0;do this.emitParticle(),this._counter++;while(this._counter=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},b.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},b.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},b.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},b.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},b.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a||e?this._quantity=d:this._quantity+=d,this._counter=0,this._timer=this.game.time.now+c},b.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit()) -},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},b.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},b.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},b.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},b.Particles.Arcade.Emitter.prototype.setAlpha=function(a,c,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=b.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=c,this.autoAlpha=!1,d>0&&a!==c){var g={v:a},h=this.game.make.tween(g).to({v:c},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},b.Particles.Arcade.Emitter.prototype.setScale=function(a,c,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=b.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(c,e),this.autoScale=!1,f>0&&a!==c||d!==e){var i={x:a,y:d},j=this.game.make.tween(i).to({x:c,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},b.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},b.Tile.prototype.constructor=b.Tile,Object.defineProperty(b.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(b.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),b.Tilemap=function(a,c,d,e,f,g){this.game=a,this.key=c;var h=b.TilemapParser.parse(this.game,c,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},b.Tilemap.CSV=0,b.Tilemap.TILED_JSON=1,b.Tilemap.NORTH=0,b.Tilemap.EAST=1,b.Tilemap.SOUTH=2,b.Tilemap.WEST=3,b.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,c,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof c){if("string"!=typeof a)return null;if(c=a,!this.game.cache.checkImageKey(c))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+c+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===b.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+c+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(c)),this.tilesets[a];var i=new b.Tileset(c,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(c)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===c){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createLayer:function(a,c,d,e){"undefined"==typeof c&&(c=this.game.width),"undefined"==typeof d&&(d=this.game.height),"undefined"==typeof e&&(e=this.game.world);var f=a;return"string"==typeof a&&(f=this.getLayerIndex(a)),null===f||f>this.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new b.TilemapLayer(this.game,this,f,c,d))},createBlankLayer:function(a,c,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:c,height:d,widthInPixels:c*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;c>l;l++)h.push(new b.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new b.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b=0&&a=0&&c=0&&c=0&&d-1?this.layers[e].data[d][c].setCollision(!0,!0,!0,!0):this.layers[e].data[d][c].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][c]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},b.Tilemap.prototype.constructor=b.Tilemap,Object.defineProperty(b.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),b.TilemapLayer=function(a,c,d,e,f){this.game=a,this.map=c,this.index=d,this.layer=c.layers[d],this.canvas=b.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),b.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=b.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new b.Point(0,0),this.tileColor="rgb(255, 255, 255)",this.debug=!1,this.debugAlpha=.5,this.debugColor="rgba(0, 255, 0, 1)",this.debugFill=!1,this.debugFillColor="rgba(0, 255, 0, 0.2)",this.debugCallbackColor="rgba(255, 0, 0, 1)",this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this.wrap=!1,this._mc={cw:c.tileWidth,ch:c.tileHeight,ga:1,dx:0,dy:0,dw:0,dh:0,tx:0,ty:0,tw:0,th:0,tl:0,maxX:0,maxY:0,startX:0,startY:0,x:0,y:0,prevX:0,prevY:0},this._results=[],this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Image.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Image.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},b.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},b.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._mc.x+(a-this._mc.x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._mc.x/this.scrollFactorX+(a-this._mc.x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._mc.y+(a-this._mc.y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._mc.y/this.scrollFactorY+(a-this._mc.y)},b.TilemapLayer.prototype.getTileX=function(a){return this.game.math.snapToFloor(this._fixX(a),this.map.tileWidth)/this.map.tileWidth},b.TilemapLayer.prototype.getTileY=function(a){return this.game.math.snapToFloor(this._fixY(a),this.map.tileHeight)/this.map.tileHeight},b.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},b.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=f.length,h=[],i=0;ij;j++)if(e[i].containsPoint(f[j][0],f[j][1])){h.push(e[i]);break}return h},b.TilemapLayer.prototype.getTiles=function(a,b,c,d,e,f){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),a=this._fixX(a),b=this._fixY(b),c>this.layer.widthInPixels&&(c=this.layer.widthInPixels),d>this.layer.heightInPixels&&(d=this.layer.heightInPixels),this._mc.tx=this.game.math.snapToFloor(a,this._mc.cw)/this._mc.cw,this._mc.ty=this.game.math.snapToFloor(b,this._mc.ch)/this._mc.ch,this._mc.tw=(this.game.math.snapToCeil(c,this._mc.cw)+this._mc.cw)/this._mc.cw,this._mc.th=(this.game.math.snapToCeil(d,this._mc.ch)+this._mc.ch)/this._mc.ch,this._results.length=0;for(var g=this._mc.ty;gd;d++){if(this._column=null,0>d&&this.wrap?this._column=this.layer.data[d+this.map.height]:d>=this.map.height&&this.wrap?this._column=this.layer.data[d-this.map.height]:this.layer.data[d]&&(this._column=this.layer.data[d]),this._column)for(var f=this._mc.startX,g=this._mc.startX+this._mc.maxX;g>f;f++){var a=null;0>f&&this.wrap?a=this._column[f+this.map.width]:f>=this.map.width&&this.wrap?a=this._column[f-this.map.width]:this._column[f]&&(a=this._column[f]),a&&a.index>-1&&(c=this.map.tilesets[this.map.tiles[a.index][2]],this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.draw(this.context,Math.floor(this._mc.tx),Math.floor(this._mc.ty),a.index),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._mc.tx),Math.floor(this._mc.ty),this.map.tileWidth,this.map.tileHeight))),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}return this.debug&&(this.context.globalAlpha=1,this.renderDebug()),this.game.renderType===b.WEBGL&&PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1,this.layer.dirty=!1,!0}},b.TilemapLayer.prototype.renderDebug=function(){this._mc.tx=this._mc.dx,this._mc.ty=this._mc.dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._mc.startY,b=this._mc.startY+this._mc.maxY;b>a;a++){if(this._column=null,0>a&&this.wrap?this._column=this.layer.data[a+this.map.height]:a>=this.map.height&&this.wrap?this._column=this.layer.data[a-this.map.height]:this.layer.data[a]&&(this._column=this.layer.data[a]),this._column)for(var c=this._mc.startX,d=this._mc.startX+this._mc.maxX;d>c;c++){var e=null;0>c&&this.wrap?e=this._column[c+this.map.width]:c>=this.map.width&&this.wrap?e=this._column[c-this.map.width]:this._column[c]&&(e=this._column[c]),e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._mc.tx=Math.floor(this._mc.tx),this.debugFill&&this.context.fillRect(this._mc.tx,this._mc.ty,this._mc.cw,this._mc.ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty)),e.faceBottom&&(this.context.moveTo(this._mc.tx,this._mc.ty+this._mc.ch),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),e.faceLeft&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx,this._mc.ty+this._mc.ch)),e.faceRight&&(this.context.moveTo(this._mc.tx+this._mc.cw,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),this.context.stroke()),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._mc.x},set:function(a){a!==this._mc.x&&(this._mc.x=a,this._mc.startX=this.game.math.floor(this._mc.x/this.map.tileWidth),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._mc.y},set:function(a){a!==this._mc.y&&(this._mc.y=a,this._mc.startY=this.game.math.floor(this._mc.y/this.map.tileHeight),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=a,this.dirty=!0}}),b.TilemapParser={parse:function(a,c,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof c)return this.getEmptyData();if(null===c)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(c);if(h){if(h.format===b.Tilemap.CSV)return this.parseCSV(c,h.data,d,e);if(!h.format||h.format===b.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+c)},parseCSV:function(a,c,d,e){var f=this.getEmptyData();c=c.trim();for(var g=[],h=c.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new b.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new b.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=b,this.tileWidth=c,this.tileHeight=d,this.tileMargin=e,this.tileSpacing=f,this.properties=g,this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[] -},b.Tileset.prototype={draw:function(a,b,c,d){this.image&&this.drawCoords[d]&&a.drawImage(this.image,this.drawCoords[d][0],this.drawCoords[d][1],this.tileWidth,this.tileHeight,b,c,this.tileWidth,this.tileHeight)},setImage:function(a){this.image=a,this.rows=Math.round((a.height-this.tileMargin)/(this.tileHeight+this.tileSpacing)),this.columns=Math.round((a.width-this.tileMargin)/(this.tileWidth+this.tileSpacing)),this.total=this.rows*this.columns,this.drawCoords.length=0;for(var b=this.tileMargin,c=this.tileMargin,d=this.firstgid,e=0;em;m++)for(var n=d;h>n;n++)b.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(c,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},replaceRGB:function(a,c,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=b.Color.packPixel(a,c,d,e);void 0!==j&&j instanceof b.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);this.context.putImageData(this.imageData,0,0),this.dirty=!0},setHSL:function(a,c,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof c||null===c)&&(c=!1),("undefined"==typeof d||null===d)&&(d=!1),a||c||d){"undefined"==typeof e&&(e=new b.Rectangle(0,0,this.width,this.height));for(var f=b.Color.createColor(),g=e.y;g=0&&a<=this.width&&c>=0&&c<=this.height&&(this.pixels[c*this.width+a]=b.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0))},setPixel:function(a,b,c,d,e,f){this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,c,d){d||(d=b.Color.createColor());var e=~~(a+c*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,c,d,e,f){return b.Color.unpackPixel(this.getPixel32(a,c),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},addToWorld:function(a,b){return this.game.add.image(a,b,this)},copyPixels:function(a,c,d,e){"string"==typeof a&&(a=this.game.cache.getImage(a));var f=a,g=0,h=0;if(a instanceof b.Image||a instanceof b.Sprite){f=a.texture.baseTexture.source;var i=a.texture.frame;g=i.x,h=i.y}else a instanceof b.BitmapData&&(f=a.canvas);this.context.drawImage(f,g+c.x,h+c.y,c.width,c.height,d,e,c.width,c.height),this.dirty=!0},draw:function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"string"==typeof a&&(a=this.game.cache.getImage(a));var g=a,h=0,i=0,j=0,k=0;if(a instanceof b.Image||a instanceof b.Sprite){g=a.texture.baseTexture.source;var l=a.texture.frame;h=l.x,i=l.y,j=l.width,k=l.height}else a instanceof b.BitmapData&&(g=a.canvas),j=a.width,k=a.height;"undefined"==typeof e&&(e=j),"undefined"==typeof f&&(f=k),this.context.drawImage(g,h,i,j,k,c,d,e,f),this.dirty=!0},drawSprite:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),this.draw(a,b,c)},alphaMask:function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this);var e=this.context.globalCompositeOperation;"undefined"==typeof d||null===d?this.draw(b):this.draw(b,d.x,d.y,d.width,d.height),this.context.globalCompositeOperation="source-atop","undefined"==typeof c||null===c?this.draw(a):this.draw(a,c.x,c.y,c.width,c.height),this.context.globalCompositeOperation=e,this.update(),this.dirty=!0},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d)},circle:function(a,b,c,d){"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill()},render:function(){!this.disableTextureUpload&&this.game.renderType===b.WEBGL&&this.dirty&&(PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1)}},b.BitmapData.prototype.constructor=b.BitmapData,b.Sprite=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=b.SPRITE,this.z=0,this.events=new b.Events(this),this.animations=new b.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new b.Rectangle,this.loadTexture(e,f)},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Sprite.prototype.update=function(){},b.Sprite.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Sprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a;var d=!0;a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),c))):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),d&&(this._frame=b.Rectangle.clone(this.texture.frame))},b.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.cropRect?this.updateCrop():this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},b.Sprite.prototype.crop=function(a,c){"undefined"==typeof c&&(c=!1),a?(c&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=c&&null===this.cropRect?new b.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},b.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=b.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),c=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-c;this.texture.crop.x=a,this.texture.crop.y=c,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)}},b.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},b.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},b.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},b.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},b.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},b.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},b.Sprite.prototype.overlap=function(a){return b.Rectangle.intersects(this.getBounds(),a.getBounds())},Object.defineProperty(b.Sprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(b.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(b.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(b.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(b.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(b.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Image=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=b.IMAGE,this.z=0,this.events=new b.Events(this),this.key=e,this._frame=0,this._frameName="",PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.loadTexture(e,f),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.cameraOffset=new b.Point,this._cache=[0,0,0,0,1,0,1,0,0]},b.Image.prototype=Object.create(PIXI.Sprite.prototype),b.Image.prototype.constructor=b.Image,b.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Image.prototype.update=function(){},b.Image.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Image.prototype.loadTexture=function(a,c){if(c=c||0,a instanceof b.RenderTexture)return this.key=a.key,void this.setTexture(a);if(a instanceof b.BitmapData)return this.key=a,void this.setTexture(a.texture);if(a instanceof PIXI.Texture)return this.key=a,void this.setTexture(a);if(null===a||"undefined"==typeof a)return this.key="__default",void this.setTexture(PIXI.TextureCache[this.key]);if("string"==typeof a&&!this.game.cache.checkImageKey(a))return this.key="__missing",void this.setTexture(PIXI.TextureCache[this.key]);if(this.game.cache.isSpriteSheet(a)){this.key=a;var d=this.game.cache.getFrameData(a);return"string"==typeof c?(this._frame=0,this._frameName=c,void this.setTexture(PIXI.TextureCache[d.getFrameByName(c).uuid])):(this._frame=c,this._frameName="",void this.setTexture(PIXI.TextureCache[d.getFrame(c).uuid]))}return this.key=a,void this.setTexture(PIXI.TextureCache[a])},b.Image.prototype.crop=function(a){if("undefined"==typeof a||null===a)this.texture.hasOwnProperty("sourceWidth")&&this.texture.setFrame(new b.Rectangle(0,0,this.texture.sourceWidth,this.texture.sourceHeight));else if(this.texture instanceof PIXI.Texture){var c={};b.Utils.extend(!0,c,this.texture),c.sourceWidth=c.width,c.sourceHeight=c.height,c.frame=a,c.width=a.width,c.height=a.height,this.texture=c,this.texture.updateFrame=!0,PIXI.Texture.frameUpdates.push(this.texture)}else this.texture.setFrame(a)},b.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},b.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},b.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},b.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},Object.defineProperty(b.Image.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame&&this.game.cache.isSpriteSheet(this.key)){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},b.TileSprite.prototype.update=function(){},b.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},b.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},b.TileSprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a,a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),c)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},b.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.filters&&(this.filters=null),this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},b.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(b.TileSprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(b.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(b.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(b.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Text=function(a,c,d,e,f){c=c||0,d=d||0,e=e||" ",f=f||{},e=0===e.length?" ":e.toString(),this.game=a,this.exists=!0,this.name="",this.type=b.TEXT,this.z=0,this.world=new b.Point(c,d),this._text=e,this._font="",this._fontSize=32,this._fontWeight="normal",this._lineSpacing=0,this.events=new b.Events(this),this.input=null,this.cameraOffset=new b.Point,this.setStyle(f),PIXI.Text.call(this,e,this.style),this.position.set(c,d),this._cache=[0,0,0,0,1,0,1,0,0]},b.Text.prototype=Object.create(PIXI.Text.prototype),b.Text.prototype.constructor=b.Text,b.Text.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Text.prototype.update=function(){},b.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0 +},b.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},b.Text.prototype.updateText=function(){this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=0;ee?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},b.Graphics.prototype.drawTriangles=function(a,c,d){"undefined"==typeof d&&(d=!1);var e,f=new b.Point,g=new b.Point,h=new b.Point,i=[];if(c)if(a[0]instanceof b.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},b.RetroFont.prototype.buildRetroFontText=function(){var a=0,c=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,c,this.customSpacingX),c+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case b.RetroFont.ALIGN_LEFT:a=0;break;case b.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},b.RetroFont.prototype.pasteLine=function(a,c,d,e){for(var f=new b.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(c,d),this.render(this.stamp,f,!1),c+=this.characterWidth+e,c>this.width))break},b.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},b.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},b.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(b.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(b.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),b.Particle=function(a,c,d,e,f){b.Sprite.call(this,a,c,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},b.Particle.prototype=Object.create(b.Sprite.prototype),b.Particle.prototype.constructor=b.Particle,b.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},b.Particle.prototype.onEmit=function(){},b.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},b.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},b.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},b.Canvas={create:function(a,b,c,d){"undefined"==typeof d&&(d=!1),a=a||256,b=b||256;var e=document.createElement("canvas");return"string"==typeof c&&""!==c&&(e.id=c),e.width=a,e.height=b,e.style.display="block",e},getOffset:function(a,c){c=c||new b.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),c.x=d.left+h-f,c.y=d.top+g-e,c},getAspectRatio:function(a){return a.width/a.height},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},b.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.touch=!1,this.mspointer=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures()},b.Device.LITTLE_ENDIAN=!1,b.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},b.Device.prototype.constructor=b.Device,b.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=[],b=0;b0?Math.floor(a):Math.ceil(a)},shear:function(a){return a%1},snapTo:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},snapToInArray:function(a,b,c){if("undefined"==typeof c&&(c=!0),c&&b.sort(),a=f-a?f:e},roundTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},interpolateFloat:function(a,b,c){return(b-a)*c+a},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},normalizeLatitude:function(a){return Math.max(-90,Math.min(90,a))},normalizeLongitude:function(a){return a%360==180?180:(a%=360,-180>a?a+360:a>180?a-360:a)},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),0>=a?!1:a>=100?!0:100*Math.random()>=a?!1:!0},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},maxAdd:function(a,b,c){return a+=b,a>c&&(a=c),a},minSub:function(a,b,c){return a-=b,c>a&&(a=c),a},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,c){return b>a?b:a>c?c:a},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){var c=b?Math.PI/180:1;return this.wrap(a,-180*c,180*c)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0)return a[b+Math.floor(Math.random()*d)]}return null},removeRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0){var e=b+Math.floor(Math.random()*d),f=a.splice(e,1);return f[0]}}return null},floor:function(a){var b=0|a;return a>0?b:b!=a?b-1:b},ceil:function(a){var b=0|a;return a>0&&b!=a?b+1:b},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){for(var b=a.length-1;b>0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,c,d,e){return Math.round(b.Math.distance(a,c,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b},degToRad:function(){var a=Math.PI/180;return function(b){return b*a}}(),radToDeg:function(){var a=180/Math.PI;return function(b){return b*a}}()},b.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},b.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},b.RandomDataGenerator.prototype.constructor=b.RandomDataGenerator,b.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},b.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.level++,this.nodes[0]=new b.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[1]=new b.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[2]=new b.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[3]=new b.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof b.Rectangle)var c=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var c=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?c=c.concat(this.nodes[d].retrieve(a)):(c=c.concat(this.nodes[0].retrieve(a)),c=c.concat(this.nodes[1].retrieve(a)),c=c.concat(this.nodes[2].retrieve(a)),c=c.concat(this.nodes[3].retrieve(a)))),c},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},b.QuadTree.prototype.constructor=b.QuadTree,b.Net=function(a){this.game=a},b.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},b.Net.prototype.constructor=b.Net,b.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},b.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;aa;)this._tweens[a].update(this.game.time.now)?a++:(this._tweens.splice(a,1),b--);return this._add.length>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},b.TweenManager.prototype.constructor=b.TweenManager,b.Tween=function(a,c,d){this._object=a,this.game=c,this._manager=d,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=b.Easing.Linear.None,this._interpolationFunction=b.Math.linearInterpolation,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._paused=!1,this._pausedTime=0,this._codePaused=!1,this.pendingDelete=!1,this.onStart=new b.Signal,this.onLoop=new b.Signal,this.onComplete=new b.Signal,this.isRunning=!1},b.Tween.prototype={to:function(a,b,c,d,e,f,g){b=b||1e3,c=c||null,d=d||!1,e=e||0,f=f||0,g=g||!1,g&&0===f&&(f=1);var h;return this._parent?(h=this._manager.create(this._object),this._lastChild.chain(h),this._lastChild=h):(h=this,this._parent=this,this._lastChild=this),h._repeat=f,h._duration=b,h._valuesEnd=a,null!==c&&(h._easingFunction=c),e>0&&(h._delayTime=e),h._yoyo=g,d?this.start():this},from:function(a,b,c,d,e,f,g){var h={};for(var i in a)h[i]=this._object[i],this._object[i]=a[i];return this.to(h,b,c,d,e,f,g)},start:function(){if(null!==this.game&&null!==this._object){this._manager.add(this),this.isRunning=!0,this._onStartCallbackFired=!1,this._startTime=this.game.time.now+this._delayTime;for(var a in this._valuesEnd){if(Array.isArray(this._valuesEnd[a])){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],Array.isArray(this._valuesStart[a])||(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},generateData:function(a,b){if(null===this.game||null===this._object)return null;this._startTime=0;for(var c in this._valuesEnd){if(Array.isArray(this._valuesEnd[c])){if(0===this._valuesEnd[c].length)continue;this._valuesEnd[c]=[this._object[c]].concat(this._valuesEnd[c])}this._valuesStart[c]=this._object[c],Array.isArray(this._valuesStart[c])||(this._valuesStart[c]*=1),this._valuesStartRepeat[c]=this._valuesStart[c]||0}for(var d=0,e=Math.floor(a*(this._duration/1e3)),f=this._duration/e,g=[];e--;){var c,h=(d-this._startTime)/this._duration;h=h>1?1:h;var i=this._easingFunction(h),j={};for(c in this._valuesEnd){var k=this._valuesStart[c]||0,l=this._valuesEnd[c];l instanceof Array?j[c]=this._interpolationFunction(l,i):("string"==typeof l&&(l=k+parseFloat(l,10)),"number"==typeof l&&(j[c]=k+(l-k)*i))}g.push(j),d+=f}if(this._yoyo){var m=g.slice();m.reverse(),g=g.concat(m)}return"undefined"!=typeof b?b=b.concat(g):g},stop:function(){return this.isRunning=!1,this._onUpdateCallback=null,this._manager.remove(this),this},delay:function(a){return this._delayTime=a,this},repeat:function(a){return this._repeat=a,this},yoyo:function(a){return this._yoyo=a,a&&0===this._repeat&&(this._repeat=1),this},easing:function(a){return this._easingFunction=a,this},interpolation:function(a){return this._interpolationFunction=a,this},chain:function(){return this._chainedTweens=arguments,this},loop:function(){return this._lastChild.chain(this),this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this._codePaused=!0,this._paused=!0,this._pausedTime=this.game.time.now},_pause:function(){this._codePaused||(this._paused=!0,this._pausedTime=this.game.time.now)},resume:function(){this._paused&&(this._paused=!1,this._codePaused=!1,this._startTime+=this.game.time.now-this._pausedTime)},_resume:function(){this._codePaused||(this._startTime+=this.game.time.pauseDuration,this._paused=!1)},update:function(a){if(this.pendingDelete)return!1;if(this._paused||a1?1:c;var d=this._easingFunction(c);for(b in this._valuesEnd){var e=this._valuesStart[b]||0,f=this._valuesEnd[b];f instanceof Array?this._object[b]=this._interpolationFunction(f,d):("string"==typeof f&&(f=e+parseFloat(f,10)),"number"==typeof f&&(this._object[b]=e+(f-e)*d))}if(null!==this._onUpdateCallback&&(this._onUpdateCallback.call(this._onUpdateCallbackContext,this,d),!this.isRunning))return!1;if(1==c){if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(b in this._valuesStartRepeat){if("string"==typeof this._valuesEnd[b]&&(this._valuesStartRepeat[b]=this._valuesStartRepeat[b]+parseFloat(this._valuesEnd[b],10)),this._yoyo){var g=this._valuesStartRepeat[b];this._valuesStartRepeat[b]=this._valuesEnd[b],this._valuesEnd[b]=g}this._valuesStart[b]=this._valuesStartRepeat[b]}return this._yoyo&&(this._reversed=!this._reversed),this._startTime=a+this._delayTime,this.onLoop.dispatch(this._object),!0}this.isRunning=!1,this.onComplete.dispatch(this._object);for(var h=0,i=this._chainedTweens.length;i>h;h++)this._chainedTweens[h].start(a);return!1}return!0}},b.Tween.prototype.constructor=b.Tween,b.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-b.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*b.Easing.Bounce.In(2*a):.5*b.Easing.Bounce.Out(2*a-1)+.5}}},b.Time=function(a){this.game=a,this.time=0,this.now=0,this.elapsed=0,this.pausedTime=0,this.advancedTiming=!1,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.physicsElapsed=0,this.deltaCap=0,this.timeCap=1e3,this.frames=0,this.pauseDuration=0,this.timeToCall=0,this.lastTime=0,this.events=new b.Timer(this.game,!1),this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[],this._len=0,this._i=0},b.Time.prototype={boot:function(){this._started=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var c=new b.Timer(this.game,a);return this._timers.push(c),c},removeAll:function(){for(var a=0;athis.timeCap&&(this.elapsed=1/60),this.physicsElapsed=this.elapsed/1e3||1/60,this.deltaCap>0&&this.physicsElapsed>this.deltaCap&&(this.physicsElapsed=this.deltaCap),this.advancedTiming&&(this.msMin=this.game.math.min(this.msMin,this.elapsed),this.msMax=this.game.math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=this.game.math.min(this.fpsMin,this.fps),this.fpsMax=this.game.math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)),this.time=this.now,this.lastTime=a+this.timeToCall,!this.game.paused)for(this.events.update(this.now),this._i=0,this._len=this._timers.length;this._i0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.now,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.now,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.now;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(b.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(b.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(b.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(b.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),b.Timer.prototype.constructor=b.Timer,b.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},b.TimerEvent.prototype.constructor=b.TimerEvent,b.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a,b){return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,this._frameData?!0:!1},add:function(a,c,d,e,f){return null===this._frameData?void console.warn("No FrameData available for Phaser.Animation "+a):(c=c||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=c&&"number"==typeof c[0]?!0:!1),null===this.sprite.events.onAnimationStart&&(this.sprite.events.onAnimationStart=new b.Signal,this.sprite.events.onAnimationComplete=new b.Signal,this.sprite.events.onAnimationLoop=new b.Signal),this._outputFrames.length=0,this._frameData.getFrameIndexes(c,f,this._outputFrames),this._anims[a]=new b.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a])},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame) +},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},b.AnimationManager.prototype.constructor=b.AnimationManager,Object.defineProperty(b.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(b.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData?this._frameData.total:-1}}),Object.defineProperty(b.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(b.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(b.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,c,d,e,f,g,h){this.game=a,this._parent=c,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new b.Signal,this.onComplete=new b.Signal,this.onLoop=new b.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},b.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart.dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.now-this._timeNextFrame,this._timeLastFrame=this.game.time.now,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.now+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop.dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete.dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},b.Animation.prototype.constructor=b.Animation,Object.defineProperty(b.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.now:this.isPlaying&&(this._timeNextFrame=this.game.time.now+this.delay)}}),Object.defineProperty(b.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(b.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame))}}),Object.defineProperty(b.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),b.Animation.generateFrameNames=function(a,c,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>c)for(var i=c;d>=i;i++)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=c;i>=d;i--)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},b.Frame=function(a,c,d,e,f,g,h){this.index=a,this.x=c,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=b.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},getRect:function(a){return"undefined"==typeof a?a=new b.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},b.Frame.prototype.constructor=b.Frame,b.FrameData=function(){this._frames=[],this._frameNames=[]},b.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},getFrameRange:function(a,b,c){"undefined"==typeof c&&(c=[]);for(var d=a;b>=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},b.FrameData.prototype.constructor=b.FrameData,Object.defineProperty(b.FrameData.prototype,"total",{get:function(){return this._frames.length}}),b.AnimationParser={spriteSheet:function(a,c,d,e,f,g,h){var i=a.cache.getImage(c);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new b.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new b.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[c],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,c){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var d,e=new b.FrameData,f=c.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o,p=new b.FrameData,q=c.getElementsByTagName("SubTexture"),r=0;r0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,c){if("undefined"==typeof c&&(c=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,c)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?(this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect)):(this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect))),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying===!0&&e===!1&&this.override===!1)return this;if(this.isPlaying&&this.override&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null==this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.now-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},b.Sound.prototype.constructor=b.Sound,Object.defineProperty(b.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(b.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(b.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(b.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),b.SoundManager=function(a){this.game=a,this.onSoundDecode=new b.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},b.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a>>0:(a<<24|c<<16|d<<8|e)>>>0},unpackPixel:function(a,c,d,e){return("undefined"==typeof c||null===c)&&(c=b.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),b.Device.LITTLE_ENDIAN?(c.a=(4278190080&a)>>>24,c.b=(16711680&a)>>>16,c.g=(65280&a)>>>8,c.r=255&a):(c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a),c.color=a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a/255+")",d&&b.Color.RGBtoHSL(c.r,c.g,c.b,c),e&&b.Color.RGBtoHSV(c.r,c.g,c.b,c),c},fromRGBA:function(a,c){return c||(c=b.Color.createColor()),c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a+")",c},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,1)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f; +e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6}return e},HSLtoRGB:function(a,c,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=b.Color.createColor(d,d,d),0!==c){var f=.5>d?d*(1+c):d+c-d*c,g=2*d-f;e.r=b.Color.hueToColor(g,f,a+1/3),e.g=b.Color.hueToColor(g,f,a),e.b=b.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),b.Color.updateColor(e),e},RGBtoHSV:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,255)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6),e},HSVtoRGB:function(a,c,d,e){"undefined"==typeof e&&(e=b.Color.createColor(0,0,0,1,a,c,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-c),l=d*(1-j*c),m=d*(1-(1-j)*c);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),b.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,c,d,e,f,g,h){var i={r:a||0,g:b||0,b:c||0,a:d||1,h:e||0,s:f||0,l:g||0,v:h||0,color:0};return i.rgba="rgba("+i.r+","+i.g+","+i.b+","+i.a+")",i},updateColor:function(a){return a.rgba="rgba("+a.r+","+a.g+","+a.b+","+a.a+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,c,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(c<<8)+d).toString(16).slice(1):"0x"+b.Color.componentToHex(e)+b.Color.componentToHex(a)+b.Color.componentToHex(c)+b.Color.componentToHex(d)},hexToRGB:function(a){var c=b.Color.hexToColor(a);return c?b.Color.getColor32(c.a,c.r,c.g,c.b):void 0},hexToColor:function(a,c){c||(c=b.Color.createColor());var d=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;a=a.replace(d,function(a,b,c,d){return b+b+c+c+d+d});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return e&&(c.r=parseInt(e[1],16),c.g=parseInt(e[2],16),c.b=parseInt(e[3],16)),c},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,c){"undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSVtoRGB(e/359,a,c));return d},HSLColorWheel:function(a,c){"undefined"==typeof a&&(a=.5),"undefined"==typeof c&&(c=.5);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSLtoRGB(e/359,a,c));return d},interpolateColor:function(a,c,d,e,f){"undefined"==typeof f&&(f=255);var g=b.Color.getRGB(a),h=b.Color.getRGB(c),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return b.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,c,d,e,f,g){var h=b.Color.getRGB(a),i=(c-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return b.Color.getColor(i,j,k)},interpolateRGB:function(a,c,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-c)*i/h+c,l=(g-d)*i/h+d;return b.Color.getColor(j,k,l)},getRandomColor:function(a,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof c&&(c=255),"undefined"==typeof d&&(d=255),c>255||a>c)return b.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(c-a)),f=a+Math.round(Math.random()*(c-a)),g=a+Math.round(Math.random()*(c-a));return b.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var c=b.Color.getRGB(a);return"rgba("+c.r.toString()+","+c.g.toString()+","+c.b.toString()+","+(c.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},getColorInfo:function(a){var c=b.Color.getRGB(a),d=b.Color.RGBtoHexstring(a)+"\n";return d=d.concat("Alpha: "+c.alpha+" Red: "+c.red+" Green: "+c.green+" Blue: "+c.blue)+"\n"},RGBtoHexstring:function(a){var c=b.Color.getRGB(a);return"0x"+b.Color.colorToHexstring(c.alpha)+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},RGBtoWebstring:function(a){var c=b.Color.getRGB(a);return"#"+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},colorToHexstring:function(a){var b="0123456789ABCDEF",c=a%16,d=(a-c)/16,e=b.charAt(d)+b.charAt(c);return e}},b.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},b.Physics.ARCADE=0,b.Physics.P2JS=1,b.Physics.NINJA=2,b.Physics.BOX2D=3,b.Physics.CHIPMUNK=5,b.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!b.Physics.hasOwnProperty("Arcade")||(this.arcade=new b.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&b.Physics.hasOwnProperty("Ninja")&&(this.ninja=new b.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&b.Physics.hasOwnProperty("P2")&&(this.p2=new b.Physics.P2(this.game,this.config))},startSystem:function(a){if(a===b.Physics.ARCADE?this.arcade=new b.Physics.Arcade(this.game):a===b.Physics.P2JS&&(this.p2=new b.Physics.P2(this.game,this.config)),a===b.Physics.NINJA)this.ninja=new b.Physics.Ninja(this.game);else{if(a===b.Physics.BOX2D&&null===this.box2d)throw new Error("The Box2D physics system has not been implemented yet.");if(a===b.Physics.CHIPMUNK&&null===this.chipmunk)throw new Error("The Chipmunk physics system has not been implemented yet.")}},enable:function(a,c,d){"undefined"==typeof c&&(c=b.Physics.ARCADE),"undefined"==typeof d&&(d=!1),c===b.Physics.ARCADE?this.arcade.enable(a):c===b.Physics.P2JS&&this.p2?this.p2.enable(a,d):c===b.Physics.NINJA&&this.ninja&&this.ninja.enableAABB(a)},preUpdate:function(){this.p2&&this.p2.preUpdate()},update:function(){this.p2&&this.p2.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.arcade=null,this.ninja=null,this.p2=null}},b.Physics.prototype.constructor=b.Physics,b.Physics.Arcade=function(a){this.game=a,this.gravity=new b.Point,this.bounds=new b.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.quadTree=new b.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0},b.Physics.Arcade.prototype.constructor=b.Physics.Arcade,b.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,c){"undefined"==typeof c&&(c=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof b.Group?this.enable(a[d].children,c):(this.enableBody(a[d]),c&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof b.Group?this.enable(a.children,c):(this.enableBody(a),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new b.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,c,d,e,f,g){return"undefined"!=typeof c||a.type!==b.GROUP&&a.type!==b.EMITTER?void(a&&c&&a.exists&&c.exists&&(a.type==b.SPRITE||a.type==b.TILESPRITE?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsSprite(a,c,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideSpriteVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,c,d,e,f):a.type==b.GROUP?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f):a.type==b.TILEMAPLAYER?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsTilemapLayer(c,a,d,e,f):(c.type==b.GROUP||c.type==b.EMITTER)&&this.collideGroupVsTilemapLayer(c,a,d,e,f):a.type==b.EMITTER&&(c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:e?!0:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),0!==this._overlap)?(a.overlapX=this._overlap,b.overlapX=this._overlap,c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0)):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),0!==this._overlap)?(a.overlapY=this._overlap,b.overlapY=this._overlap,c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0)):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,c,d,e){if(0!==c.length&&a.exists){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(c);var f=new b.Rectangle(a.x,a.y,1,1),g=[];this._potentials=this.quadTree.retrieve(f);for(var h=0,i=this._potentials.length;i>h;h++)this._potentials[h].hitTest(a.x,a.y)&&(d&&d.call(e,a,this._potentials[h].sprite),g.push(this._potentials[h].sprite));return g}},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*c,Math.sin(this.game.math.degToRad(a))*c)},velocityFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerationFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},b.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=b.Physics.ARCADE,this.enable=!0,this.offset=new b.Point,this.position=new b.Point(a.x,a.y),this.prev=new b.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new b.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new b.Point,this.newVelocity=new b.Point(0,0),this.deltaMax=new b.Point(0,0),this.acceleration=new b.Point,this.drag=new b.Point,this.allowGravity=!0,this.gravity=new b.Point(0,0),this.bounce=new b.Point,this.maxVelocity=new b.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=b.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new b.Point,this.phase=0,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},b.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=b.LEFT:this.deltaX()>0&&(this.facing=b.RIGHT),this.deltaY()<0?this.facing=b.UP:this.deltaY()>0&&(this.facing=b.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,c){return b.Rectangle.contains(this,a,c)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(b.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),b.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},b.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},b.Physics.Arcade.Body.prototype.constructor=b.Physics.Arcade.Body,b.Particles=function(a){this.game=a,this.emitters={},this.ID=0},b.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},b.Particles.prototype.constructor=b.Particles,b.Particles.Arcade={},b.Particles.Arcade.Emitter=function(a,c,d,e){this.maxParticles=e||50,b.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=b.EMITTER,this.area=new b.Rectangle(c,d,1,1),this.minParticleSpeed=new b.Point(-100,-100),this.maxParticleSpeed=new b.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=b.Particle,this.particleDrag=new b.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new b.Point,this.on=!1,this.particleAnchor=new b.Point(.5,.5),this.blendMode=b.blendModes.NORMAL,this.emitX=c,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new b.Point(1,1),this._maxParticleScale=new b.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},b.Particles.Arcade.Emitter.prototype=Object.create(b.Group.prototype),b.Particles.Arcade.Emitter.prototype.constructor=b.Particles.Arcade.Emitter,b.Particles.Arcade.Emitter.prototype.update=function(){if(this.on)if(this._explode){this._counter=0;do this.emitParticle(),this._counter++;while(this._counter=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++; +return this},b.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},b.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},b.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},b.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},b.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a||e?this._quantity=d:this._quantity+=d,this._counter=0,this._timer=this.game.time.now+c},b.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},b.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},b.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},b.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},b.Particles.Arcade.Emitter.prototype.setAlpha=function(a,c,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=b.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=c,this.autoAlpha=!1,d>0&&a!==c){var g={v:a},h=this.game.make.tween(g).to({v:c},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},b.Particles.Arcade.Emitter.prototype.setScale=function(a,c,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=b.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(c,e),this.autoScale=!1,f>0&&a!==c||d!==e){var i={x:a,y:d},j=this.game.make.tween(i).to({x:c,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},b.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},b.Tile.prototype.constructor=b.Tile,Object.defineProperty(b.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(b.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),b.Tilemap=function(a,c,d,e,f,g){this.game=a,this.key=c;var h=b.TilemapParser.parse(this.game,c,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},b.Tilemap.CSV=0,b.Tilemap.TILED_JSON=1,b.Tilemap.NORTH=0,b.Tilemap.EAST=1,b.Tilemap.SOUTH=2,b.Tilemap.WEST=3,b.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,c,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof c){if("string"!=typeof a)return null;if(c=a,!this.game.cache.checkImageKey(c))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+c+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===b.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+c+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(c)),this.tilesets[a];var i=new b.Tileset(c,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(c)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===c){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createLayer:function(a,c,d,e){"undefined"==typeof c&&(c=this.game.width),"undefined"==typeof d&&(d=this.game.height),"undefined"==typeof e&&(e=this.game.world);var f=a;return"string"==typeof a&&(f=this.getLayerIndex(a)),null===f||f>this.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new b.TilemapLayer(this.game,this,f,c,d))},createBlankLayer:function(a,c,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:c,height:d,widthInPixels:c*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;c>l;l++)h.push(new b.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new b.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b=0&&a=0&&c=0&&c=0&&d-1?this.layers[e].data[d][c].setCollision(!0,!0,!0,!0):this.layers[e].data[d][c].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][c]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},b.Tilemap.prototype.constructor=b.Tilemap,Object.defineProperty(b.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),b.TilemapLayer=function(a,c,d,e,f){this.game=a,this.map=c,this.index=d,this.layer=c.layers[d],this.canvas=b.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),b.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=b.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new b.Point(0,0),this.tileColor="rgb(255, 255, 255)",this.debug=!1,this.debugAlpha=.5,this.debugColor="rgba(0, 255, 0, 1)",this.debugFill=!1,this.debugFillColor="rgba(0, 255, 0, 0.2)",this.debugCallbackColor="rgba(255, 0, 0, 1)",this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this.wrap=!1,this._mc={cw:c.tileWidth,ch:c.tileHeight,ga:1,dx:0,dy:0,dw:0,dh:0,tx:0,ty:0,tw:0,th:0,tl:0,maxX:0,maxY:0,startX:0,startY:0,x:0,y:0,prevX:0,prevY:0},this._results=[],this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Image.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Image.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},b.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},b.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._mc.x+(a-this._mc.x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._mc.x/this.scrollFactorX+(a-this._mc.x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._mc.y+(a-this._mc.y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._mc.y/this.scrollFactorY+(a-this._mc.y)},b.TilemapLayer.prototype.getTileX=function(a){return this.game.math.snapToFloor(this._fixX(a),this.map.tileWidth)/this.map.tileWidth},b.TilemapLayer.prototype.getTileY=function(a){return this.game.math.snapToFloor(this._fixY(a),this.map.tileHeight)/this.map.tileHeight},b.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},b.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=f.length,h=[],i=0;ij;j++)if(e[i].containsPoint(f[j][0],f[j][1])){h.push(e[i]);break}return h},b.TilemapLayer.prototype.getTiles=function(a,b,c,d,e,f){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),a=this._fixX(a),b=this._fixY(b),c>this.layer.widthInPixels&&(c=this.layer.widthInPixels),d>this.layer.heightInPixels&&(d=this.layer.heightInPixels),this._mc.tx=this.game.math.snapToFloor(a,this._mc.cw)/this._mc.cw,this._mc.ty=this.game.math.snapToFloor(b,this._mc.ch)/this._mc.ch,this._mc.tw=(this.game.math.snapToCeil(c,this._mc.cw)+this._mc.cw)/this._mc.cw,this._mc.th=(this.game.math.snapToCeil(d,this._mc.ch)+this._mc.ch)/this._mc.ch,this._results.length=0;for(var g=this._mc.ty;gd;d++){if(this._column=null,0>d&&this.wrap?this._column=this.layer.data[d+this.map.height]:d>=this.map.height&&this.wrap?this._column=this.layer.data[d-this.map.height]:this.layer.data[d]&&(this._column=this.layer.data[d]),this._column)for(var f=this._mc.startX,g=this._mc.startX+this._mc.maxX;g>f;f++){var a=null;0>f&&this.wrap?a=this._column[f+this.map.width]:f>=this.map.width&&this.wrap?a=this._column[f-this.map.width]:this._column[f]&&(a=this._column[f]),a&&a.index>-1&&(c=this.map.tilesets[this.map.tiles[a.index][2]],this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.draw(this.context,Math.floor(this._mc.tx),Math.floor(this._mc.ty),a.index),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._mc.tx),Math.floor(this._mc.ty),this.map.tileWidth,this.map.tileHeight))),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}return this.debug&&(this.context.globalAlpha=1,this.renderDebug()),this.game.renderType===b.WEBGL&&PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1,this.layer.dirty=!1,!0}},b.TilemapLayer.prototype.renderDebug=function(){this._mc.tx=this._mc.dx,this._mc.ty=this._mc.dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._mc.startY,b=this._mc.startY+this._mc.maxY;b>a;a++){if(this._column=null,0>a&&this.wrap?this._column=this.layer.data[a+this.map.height]:a>=this.map.height&&this.wrap?this._column=this.layer.data[a-this.map.height]:this.layer.data[a]&&(this._column=this.layer.data[a]),this._column)for(var c=this._mc.startX,d=this._mc.startX+this._mc.maxX;d>c;c++){var e=null;0>c&&this.wrap?e=this._column[c+this.map.width]:c>=this.map.width&&this.wrap?e=this._column[c-this.map.width]:this._column[c]&&(e=this._column[c]),e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._mc.tx=Math.floor(this._mc.tx),this.debugFill&&this.context.fillRect(this._mc.tx,this._mc.ty,this._mc.cw,this._mc.ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty)),e.faceBottom&&(this.context.moveTo(this._mc.tx,this._mc.ty+this._mc.ch),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),e.faceLeft&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx,this._mc.ty+this._mc.ch)),e.faceRight&&(this.context.moveTo(this._mc.tx+this._mc.cw,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),this.context.stroke()),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._mc.x},set:function(a){a!==this._mc.x&&(this._mc.x=a,this._mc.startX=this.game.math.floor(this._mc.x/this.map.tileWidth),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._mc.y},set:function(a){a!==this._mc.y&&(this._mc.y=a,this._mc.startY=this.game.math.floor(this._mc.y/this.map.tileHeight),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=a,this.dirty=!0}}),b.TilemapParser={parse:function(a,c,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof c)return this.getEmptyData();if(null===c)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(c);if(h){if(h.format===b.Tilemap.CSV)return this.parseCSV(c,h.data,d,e);if(!h.format||h.format===b.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+c)},parseCSV:function(a,c,d,e){var f=this.getEmptyData();c=c.trim();for(var g=[],h=c.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new b.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new b.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=b,this.tileWidth=c,this.tileHeight=d,this.tileMargin=e,this.tileSpacing=f,this.properties=g,this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},b.Tileset.prototype={draw:function(a,b,c,d){this.image&&this.drawCoords[d]&&a.drawImage(this.image,this.drawCoords[d][0],this.drawCoords[d][1],this.tileWidth,this.tileHeight,b,c,this.tileWidth,this.tileHeight)},setImage:function(a){this.image=a,this.rows=Math.round((a.height-this.tileMargin)/(this.tileHeight+this.tileSpacing)),this.columns=Math.round((a.width-this.tileMargin)/(this.tileWidth+this.tileSpacing)),this.total=this.rows*this.columns,this.drawCoords.length=0;for(var b=this.tileMargin,c=this.tileMargin,d=this.firstgid,e=0;e width) @@ -33263,6 +33345,13 @@ Phaser.AnimationParser = { uuid )); + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], { + x: frames[i].frame.x, + y: frames[i].frame.y, + width: frames[i].frame.w, + height: frames[i].frame.h + }); + if (frames[i].trimmed) { newFrame.setTrim( @@ -33321,6 +33410,13 @@ Phaser.AnimationParser = { uuid )); + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], { + x: frames[key].frame.x, + y: frames[key].frame.y, + width: frames[key].frame.w, + height: frames[key].frame.h + }); + if (frames[key].trimmed) { newFrame.setTrim( @@ -33400,7 +33496,13 @@ Phaser.AnimationParser = { newFrame = data.addFrame(new Phaser.Frame(i, x, y, width, height, name, uuid)); - // Trimmed? + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], { + x: x, + y: y, + width: width, + height: height + }); + // Trimmed? if (frameX !== null || frameY !== null) { newFrame.setTrim(true, width, height, frameX, frameY, frameWidth, frameHeight); @@ -33671,6 +33773,7 @@ Phaser.Cache.prototype = { this._images[key] = { url: url, data: data, spriteSheet: true, frameWidth: frameWidth, frameHeight: frameHeight, margin: margin, spacing: spacing }; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); this._images[key].frameData = Phaser.AnimationParser.spriteSheet(this.game, key, frameWidth, frameHeight, frameMax, margin, spacing); @@ -33706,6 +33809,7 @@ Phaser.Cache.prototype = { this._images[key] = { url: url, data: data, spriteSheet: true }; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); if (format == Phaser.Loader.TEXTURE_ATLAS_JSON_ARRAY) { @@ -33738,6 +33842,7 @@ Phaser.Cache.prototype = { this._images[key] = { url: url, data: data, spriteSheet: true }; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); Phaser.LoaderParser.bitmapFont(this.game, xmlData, key, xSpacing, ySpacing); @@ -33839,6 +33944,7 @@ Phaser.Cache.prototype = { this._images[key].frame = new Phaser.Frame(0, 0, 0, data.width, data.height, key, this.game.rnd.uuid()); PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); }, diff --git a/build/custom/phaser-no-libs.min.js b/build/custom/phaser-no-libs.min.js index 391c61431..523c4e73c 100644 --- a/build/custom/phaser-no-libs.min.js +++ b/build/custom/phaser-no-libs.min.js @@ -1,13 +1,13 @@ -/* Phaser (no libs) v2.1.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ -(function(){var a=this,b=b||{VERSION:"2.1.0-dev",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,b.Utils={transposeArray:function(a){for(var b=new Array(a[0].length),c=0;c-1;d--)b[c][d]=a[d][c]}return b},rotateArray:function(a,c){if("string"!=typeof c&&(c=(c%360+360)%360),90===c||-270===c||"rotateLeft"===c)a=b.Utils.transposeArray(a),a=a.reverse();else if(-90===c||270===c||"rotateRight"===c)a=a.reverse(),a=b.Utils.transposeArray(a);else if(180===Math.abs(c)||"rotate180"===c){for(var d=0;d0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(c in a)d=h[c],e=a[c],h!==e&&(k&&e&&(b.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&b.Utils.isPlainObject(d)?d:{},h[c]=b.Utils.extend(k,g,e)):void 0!==e&&(h[c]=e));return h},mixin:function(a,c){if(!a||"object"!=typeof a)return c;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];c[d]=a[d]&&"object"===f?typeof c[d]===f?b.Utils.mixin(a[d],c[d]):b.Utils.mixin(a[d],new e.constructor):a[d]}}return c}},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array){var c=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;b0?.5*c:0},b.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.distanceRounded(this.x,this.y,a.x,a.y):b.Math.distance(this.x,this.y,a.x,a.y)},clone:function(a){return"undefined"==typeof a?a=new b.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,c){return b.Circle.contains(this,a,c)},circumferencePoint:function(a,c,d){return b.Circle.circumferencePoint(this,a,c,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},b.Circle.prototype.constructor=b.Circle,Object.defineProperty(b.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(b.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(b.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(b.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(b.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(b.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),b.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},b.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},b.Circle.intersects=function(a,c){return b.Math.distance(a.x,a.y,c.x,c.y)<=a.radius+c.radius},b.Circle.circumferencePoint=function(a,c,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new b.Point),d===!0&&(c=b.Math.degToRad(c)),e.x=a.x+a.radius*Math.cos(c),e.y=a.y+a.radius*Math.sin(c),e},b.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=b.Circle,b.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},b.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this},clampY:function(a,c){return this.y=b.Math.clamp(this.y,a,c),this},clamp:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this.y=b.Math.clamp(this.y,a,c),this},clone:function(a){return"undefined"==typeof a?a=new b.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,c){return b.Point.distance(this,a,c)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,c,d,e,f){return b.Point.rotate(this,a,c,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},b.Point.prototype.constructor=b.Point,b.Point.add=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x+c.x,d.y=a.y+c.y,d},b.Point.subtract=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x-c.x,d.y=a.y-c.y,d},b.Point.multiply=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x*c.x,d.y=a.y*c.y,d},b.Point.divide=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x/c.x,d.y=a.y/c.y,d},b.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},b.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},b.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},b.Point.negative=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.x,-a.y)},b.Point.multiplyAdd=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+c.x*d,a.y+c.y*d)},b.Point.interpolate=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+(c.x-a.x)*d,a.y+(c.y-a.y)*d)},b.Point.perp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.y,a.x)},b.Point.rperp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(a.y,-a.x)},b.Point.distance=function(a,c,d){return"undefined"==typeof d&&(d=!1),d?b.Math.distanceRounded(a.x,a.y,c.x,c.y):b.Math.distance(a.x,a.y,c.x,c.y)},b.Point.project=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c)/c.getMagnitudeSq();return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.projectUnit=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c);return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.normalRightHand=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-1*a.y,a.x)},b.Point.normalize=function(a,c){"undefined"==typeof c&&(c=new b.Point);var d=a.getMagnitude();return 0!==d&&c.setTo(a.x/d,a.y/d),c},b.Point.rotate=function(a,c,d,e,f,g){return f=f||!1,g=g||null,f&&(e=b.Math.degToRad(e)),null===g&&(g=Math.sqrt((c-a.x)*(c-a.x)+(d-a.y)*(d-a.y))),a.setTo(c+g*Math.cos(e),d+g*Math.sin(e))},b.Point.centroid=function(a,c){if("undefined"==typeof c&&(c=new b.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return c.copyFrom(a[0]),c;for(var e=0;d>e;e++)b.Point.add(c,a[e],c);return c.divide(d,d),c},PIXI.Point=b.Point,b.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},b.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,c){return b.Rectangle.inflate(this,a,c)},size:function(a){return b.Rectangle.size(this,a)},clone:function(a){return b.Rectangle.clone(this,a)},contains:function(a,c){return b.Rectangle.contains(this,a,c)},containsRect:function(a){return b.Rectangle.containsRect(this,a)},equals:function(a){return b.Rectangle.equals(this,a)},intersection:function(a,c){return b.Rectangle.intersection(this,a,c)},intersects:function(a,c){return b.Rectangle.intersects(this,a,c)},intersectsRaw:function(a,c,d,e,f){return b.Rectangle.intersectsRaw(this,a,c,d,e,f)},union:function(a,c){return b.Rectangle.union(this,a,c)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(b.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(b.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(b.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:this.y-a}}),Object.defineProperty(b.Rectangle.prototype,"bottomRight",{get:function(){return new b.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(b.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(b.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(b.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(b.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(b.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(b.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(b.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(b.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(b.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(b.Rectangle.prototype,"topLeft",{get:function(){return new b.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(b.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),b.Rectangle.prototype.constructor=b.Rectangle,b.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},b.Rectangle.inflatePoint=function(a,c){return b.Rectangle.inflate(a,c.x,c.y)},b.Rectangle.size=function(a,c){return"undefined"==typeof c||null===c?c=new b.Point(a.width,a.height):c.setTo(a.width,a.height),c},b.Rectangle.clone=function(a,c){return"undefined"==typeof c||null===c?c=new b.Rectangle(a.x,a.y,a.width,a.height):c.setTo(a.x,a.y,a.width,a.height),c},b.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b<=a.right&&c>=a.y&&c<=a.bottom},b.Rectangle.containsRaw=function(a,b,c,d,e,f){return e>=a&&a+c>=e&&f>=b&&b+d>=f},b.Rectangle.containsPoint=function(a,c){return b.Rectangle.contains(a,c.x,c.y)},b.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.right<=b.right&&a.bottom<=b.bottom},b.Rectangle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.width==b.width&&a.height==b.height},b.Rectangle.intersection=function(a,c,d){return"undefined"==typeof d&&(d=new b.Rectangle),b.Rectangle.intersects(a,c)&&(d.x=Math.max(a.x,c.x),d.y=Math.max(a.y,c.y),d.width=Math.min(a.right,c.right)-d.x,d.height=Math.min(a.bottom,c.bottom)-d.y),d},b.Rectangle.intersects=function(a,b){return a.width<=0||a.height<=0||b.width<=0||b.height<=0?!1:!(a.rightb.right||a.y>b.bottom)},b.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||e=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b}},Object.defineProperty(b.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(b.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(b.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(b.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(b.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(b.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),b.Line.intersectsPoints=function(a,c,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new b.Point);var h=c.y-a.y,i=e.y-d.y,j=a.x-c.x,k=d.x-e.x,l=c.x*a.y-a.x*c.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(c.x-a.x)-(e.x-d.x)*(c.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((c.x-a.x)*(a.y-d.y)-(c.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},b.Line.intersects=function(a,c,d,e){return b.Line.intersectsPoints(a.start,a.end,c.start,c.end,d,e)},b.Ellipse=function(a,c,d,e){this.type=b.ELLIPSE,a=a||0,c=c||0,d=d||0,e=e||0,this.x=a,this.y=c,this.width=d,this.height=e},b.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a?a=new b.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,c){return b.Ellipse.contains(this,a,c)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},b.Ellipse.prototype.constructor=b.Ellipse,Object.defineProperty(b.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(b.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=b.Ellipse,b.Polygon=function(a){if(this.type=b.POLYGON,a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this._points=a},b.Polygon.prototype={clone:function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c}},b.Polygon.prototype.constructor=b.Polygon,Object.defineProperty(b.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this._points=a}}),Object.defineProperty(b.Polygon.prototype,"area",{get:function(){var a,b,c,d,e,f=Number.MAX_VALUE,g=0;for(e=0;ethis.deadzone.right&&(this.view.x=this.target.x-this.deadzone.right),this._edge=this.target.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.target.y-this.deadzone.bottom)):(this.view.x=this.target.x-this.view.halfWidth,this.view.y=this.target.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height),this.view.floor()},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},b.Camera.prototype.constructor=b.Camera,Object.defineProperty(b.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(b.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(b.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(b.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),b.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},b.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},b.State.prototype.constructor=b.State,b.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},b.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&("string"==typeof this._pendingState?this.start(this._pendingState,!1,!1):this.add("default",this._pendingState,!0))},add:function(a,c,d){"undefined"==typeof d&&(d=!1);var e;return c instanceof b.State?e=c:"object"==typeof c?(e=c,e.game=this.game):"function"==typeof c&&(e=new c(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){this._pendingState&&this.game.isBooted&&(this.current&&(this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy())),this.setCurrentState(this._pendingState),this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete(),this.current===this._pendingState&&(this._pendingState=null))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),this._args=[]},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game) +/* Phaser (no libs) v2.0.7 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +(function(){var a=this,b=b||{VERSION:"2.0.7-dev",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,b.Utils={transposeArray:function(a){for(var b=new Array(a[0].length),c=0;c-1;d--)b[c][d]=a[d][c]}return b},rotateArray:function(a,c){if("string"!=typeof c&&(c=(c%360+360)%360),90===c||-270===c||"rotateLeft"===c)a=b.Utils.transposeArray(a),a=a.reverse();else if(-90===c||270===c||"rotateRight"===c)a=a.reverse(),a=b.Utils.transposeArray(a);else if(180===Math.abs(c)||"rotate180"===c){for(var d=0;d0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(c in a)d=h[c],e=a[c],h!==e&&(k&&e&&(b.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&b.Utils.isPlainObject(d)?d:{},h[c]=b.Utils.extend(k,g,e)):void 0!==e&&(h[c]=e));return h},mixin:function(a,c){if(!a||"object"!=typeof a)return c;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];c[d]=a[d]&&"object"===f?typeof c[d]===f?b.Utils.mixin(a[d],c[d]):b.Utils.mixin(a[d],new e.constructor):a[d]}}return c}},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array){var c=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;b0?.5*c:0},b.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.distanceRounded(this.x,this.y,a.x,a.y):b.Math.distance(this.x,this.y,a.x,a.y)},clone:function(a){return"undefined"==typeof a?a=new b.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,c){return b.Circle.contains(this,a,c)},circumferencePoint:function(a,c,d){return b.Circle.circumferencePoint(this,a,c,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},b.Circle.prototype.constructor=b.Circle,Object.defineProperty(b.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(b.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(b.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(b.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(b.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(b.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),b.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},b.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},b.Circle.intersects=function(a,c){return b.Math.distance(a.x,a.y,c.x,c.y)<=a.radius+c.radius},b.Circle.circumferencePoint=function(a,c,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new b.Point),d===!0&&(c=b.Math.degToRad(c)),e.x=a.x+a.radius*Math.cos(c),e.y=a.y+a.radius*Math.sin(c),e},b.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=b.Circle,b.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},b.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this},clampY:function(a,c){return this.y=b.Math.clamp(this.y,a,c),this},clamp:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this.y=b.Math.clamp(this.y,a,c),this},clone:function(a){return"undefined"==typeof a?a=new b.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,c){return b.Point.distance(this,a,c)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,c,d,e,f){return b.Point.rotate(this,a,c,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},b.Point.prototype.constructor=b.Point,b.Point.add=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x+c.x,d.y=a.y+c.y,d},b.Point.subtract=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x-c.x,d.y=a.y-c.y,d},b.Point.multiply=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x*c.x,d.y=a.y*c.y,d},b.Point.divide=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x/c.x,d.y=a.y/c.y,d},b.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},b.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},b.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},b.Point.negative=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.x,-a.y)},b.Point.multiplyAdd=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+c.x*d,a.y+c.y*d)},b.Point.interpolate=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+(c.x-a.x)*d,a.y+(c.y-a.y)*d)},b.Point.perp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.y,a.x)},b.Point.rperp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(a.y,-a.x)},b.Point.distance=function(a,c,d){return"undefined"==typeof d&&(d=!1),d?b.Math.distanceRounded(a.x,a.y,c.x,c.y):b.Math.distance(a.x,a.y,c.x,c.y)},b.Point.project=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c)/c.getMagnitudeSq();return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.projectUnit=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c);return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.normalRightHand=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-1*a.y,a.x)},b.Point.normalize=function(a,c){"undefined"==typeof c&&(c=new b.Point);var d=a.getMagnitude();return 0!==d&&c.setTo(a.x/d,a.y/d),c},b.Point.rotate=function(a,c,d,e,f,g){return f=f||!1,g=g||null,f&&(e=b.Math.degToRad(e)),null===g&&(g=Math.sqrt((c-a.x)*(c-a.x)+(d-a.y)*(d-a.y))),a.setTo(c+g*Math.cos(e),d+g*Math.sin(e))},b.Point.centroid=function(a,c){if("undefined"==typeof c&&(c=new b.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return c.copyFrom(a[0]),c;for(var e=0;d>e;e++)b.Point.add(c,a[e],c);return c.divide(d,d),c},PIXI.Point=b.Point,b.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},b.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,c){return b.Rectangle.inflate(this,a,c)},size:function(a){return b.Rectangle.size(this,a)},clone:function(a){return b.Rectangle.clone(this,a)},contains:function(a,c){return b.Rectangle.contains(this,a,c)},containsRect:function(a){return b.Rectangle.containsRect(this,a)},equals:function(a){return b.Rectangle.equals(this,a)},intersection:function(a,c){return b.Rectangle.intersection(this,a,c)},intersects:function(a,c){return b.Rectangle.intersects(this,a,c)},intersectsRaw:function(a,c,d,e,f){return b.Rectangle.intersectsRaw(this,a,c,d,e,f)},union:function(a,c){return b.Rectangle.union(this,a,c)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(b.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(b.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(b.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:this.y-a}}),Object.defineProperty(b.Rectangle.prototype,"bottomRight",{get:function(){return new b.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(b.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(b.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(b.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(b.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(b.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(b.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(b.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(b.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(b.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(b.Rectangle.prototype,"topLeft",{get:function(){return new b.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(b.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),b.Rectangle.prototype.constructor=b.Rectangle,b.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},b.Rectangle.inflatePoint=function(a,c){return b.Rectangle.inflate(a,c.x,c.y)},b.Rectangle.size=function(a,c){return"undefined"==typeof c||null===c?c=new b.Point(a.width,a.height):c.setTo(a.width,a.height),c},b.Rectangle.clone=function(a,c){return"undefined"==typeof c||null===c?c=new b.Rectangle(a.x,a.y,a.width,a.height):c.setTo(a.x,a.y,a.width,a.height),c},b.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b<=a.right&&c>=a.y&&c<=a.bottom},b.Rectangle.containsRaw=function(a,b,c,d,e,f){return e>=a&&a+c>=e&&f>=b&&b+d>=f},b.Rectangle.containsPoint=function(a,c){return b.Rectangle.contains(a,c.x,c.y)},b.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.right<=b.right&&a.bottom<=b.bottom},b.Rectangle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.width==b.width&&a.height==b.height},b.Rectangle.intersection=function(a,c,d){return"undefined"==typeof d&&(d=new b.Rectangle),b.Rectangle.intersects(a,c)&&(d.x=Math.max(a.x,c.x),d.y=Math.max(a.y,c.y),d.width=Math.min(a.right,c.right)-d.x,d.height=Math.min(a.bottom,c.bottom)-d.y),d},b.Rectangle.intersects=function(a,b){return a.width<=0||a.height<=0||b.width<=0||b.height<=0?!1:!(a.rightb.right||a.y>b.bottom)},b.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||e=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b}},Object.defineProperty(b.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(b.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(b.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(b.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(b.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(b.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),b.Line.intersectsPoints=function(a,c,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new b.Point);var h=c.y-a.y,i=e.y-d.y,j=a.x-c.x,k=d.x-e.x,l=c.x*a.y-a.x*c.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(c.x-a.x)-(e.x-d.x)*(c.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((c.x-a.x)*(a.y-d.y)-(c.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},b.Line.intersects=function(a,c,d,e){return b.Line.intersectsPoints(a.start,a.end,c.start,c.end,d,e)},b.Ellipse=function(a,c,d,e){this.type=b.ELLIPSE,a=a||0,c=c||0,d=d||0,e=e||0,this.x=a,this.y=c,this.width=d,this.height=e},b.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a?a=new b.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,c){return b.Ellipse.contains(this,a,c)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},b.Ellipse.prototype.constructor=b.Ellipse,Object.defineProperty(b.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(b.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=b.Ellipse,b.Polygon=function(a){if(this.type=b.POLYGON,a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this._points=a},b.Polygon.prototype={clone:function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c}},b.Polygon.prototype.constructor=b.Polygon,Object.defineProperty(b.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this._points=a}}),Object.defineProperty(b.Polygon.prototype,"area",{get:function(){var a,b,c,d,e,f=Number.MAX_VALUE,g=0;for(e=0;ethis.deadzone.right&&(this.view.x=this.target.x-this.deadzone.right),this._edge=this.target.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.target.y-this.deadzone.bottom)):(this.view.x=this.target.x-this.view.halfWidth,this.view.y=this.target.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height),this.view.floor()},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},b.Camera.prototype.constructor=b.Camera,Object.defineProperty(b.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(b.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(b.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(b.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),b.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},b.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},b.State.prototype.constructor=b.State,b.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},b.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&("string"==typeof this._pendingState?this.start(this._pendingState,!1,!1):this.add("default",this._pendingState,!0))},add:function(a,c,d){"undefined"==typeof d&&(d=!1);var e;return c instanceof b.State?e=c:"object"==typeof c?(e=c,e.game=this.game):"function"==typeof c&&(e=new c(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){this._pendingState&&this.game.isBooted&&(this.current&&(this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy())),this.setCurrentState(this._pendingState),this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete(),this.current===this._pendingState&&(this._pendingState=null))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),this._args=[]},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game) },resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===b.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===b.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},b.StateManager.prototype.constructor=b.StateManager,b.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},b.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},b.LinkedList.prototype.constructor=b.LinkedList,b.ArrayList=function(){this.total=0,this.position=0,this.list=[]},b.ArrayList.prototype={add:function(a){return this.exists(a)||(this.list.push(a),this.total++),a},getIndex:function(a){return this.list.indexOf(a)},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),this.total--,a):void 0},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(b.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(b.ArrayList.prototype,"next",{get:function(){return this.position0&&(this.uniforms.mouse.x=a.x.toFixed(2)),a.y>0&&(this.uniforms.mouse.y=a.y.toFixed(2))),this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},b.Filter.prototype.constructor=b.Filter,Object.defineProperty(b.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(b.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),b.Plugin=function(a,b){"undefined"==typeof b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},b.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},b.Plugin.prototype.constructor=b.Plugin,b.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},b.PluginManager.prototype={add:function(a){var b=Array.prototype.splice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},b.PluginManager.prototype.constructor=b.PluginManager,b.Stage=function(a,c,d){this.game=a,this.offset=new b.Point,this.bounds=new b.Rectangle(0,0,c,d),PIXI.Stage.call(this,0),this.name="_stage_root",this.interactive=!1,this.disableVisibilityChange=!1,this.checkOffsetInterval=2500,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._nextOffsetCheck=0,this._backgroundColor=0,a.config&&this.parseConfig(a.config)},b.Stage.prototype=Object.create(PIXI.Stage.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=this.children.length,b=0;a>b;b++)this.children[b].preUpdate()},b.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},b.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}this.checkOffsetInterval!==!1&&this.game.time.now>this._nextOffsetCheck&&(b.Canvas.getOffset(this.game.canvas,this.offset),this.bounds.x=this.offset.x,this.bounds.y=this.offset.y,this._nextOffsetCheck=this.game.time.now+this.checkOffsetInterval)},b.Stage.prototype.parseConfig=function(a){a.checkOffsetInterval&&(this.checkOffsetInterval=a.checkOffsetInterval),a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.fullScreenScaleMode&&(this.fullScreenScaleMode=a.fullScreenScaleMode),a.scaleMode&&(this.scaleMode=a.scaleMode),a.backgroundColor&&(this.backgroundColor=a.backgroundColor)},b.Stage.prototype.boot=function(){b.Canvas.getOffset(this.game.canvas,this.offset),this.bounds.setTo(this.offset.x,this.offset.y,this.game.width,this.game.height);var a=this;this._onChange=function(b){return a.visibilityChange(b)},b.Canvas.setUserSelect(this.game.canvas,"none"),b.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},b.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange},b.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden?this.game.gamePaused(a):this.game.gameResumed(a)))},b.Stage.prototype.setBackgroundColor=function(a){if("string"==typeof a){var c=b.Color.hexToColor(a);this._backgroundColor=b.Color.getColor(c.r,c.g,c.b)}else{var c=b.Color.getRGB(a);this._backgroundColor=a}this.backgroundColorSplit=[c.r/255,c.g/255,c.b/255],this.backgroundColorString=b.Color.RGBtoString(c.r,c.g,c.b,255,"#")},Object.defineProperty(b.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(b.Stage.prototype,"smoothed",{get:function(){return!PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.LINEAR=a?0:1}}),b.Group=function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b.Physics.ARCADE),this.game=a,"undefined"==typeof c&&(c=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):c&&c.addChild(this),this.z=0,this.type=b.GROUP,this.alive=!0,this.exists=!0,this.classType=b.Sprite,this.scale=new b.Point(1,1),this.cursor=null,this.cameraOffset=new b.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},b.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),b.Group.prototype.constructor=b.Group,b.Group.RETURN_NONE=0,b.Group.RETURN_TOTAL=1,b.Group.RETURN_CHILD=2,b.Group.SORT_ASCENDING=-1,b.Group.SORT_DESCENDING=1,b.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},b.Group.prototype.addAt=function(a,b,c){return"undefined"==typeof c&&(c=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChildAt(a,b),this.updateZ(),!c&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},b.Group.prototype.getAt=function(a){return 0>a||a>=this.children.length?-1:this.getChildAt(a)},b.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},b.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},b.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},b.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},b.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},b.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},b.Group.prototype.swap=function(a,b){var c=this.swapChildren(a,b);return c&&this.updateZ(),c},b.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},b.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},b.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},b.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},b.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},b.Group.prototype.replace=function(a,c){var d=this.getIndex(a);if(-1!==d){void 0!==c.parent&&(c.events.onRemovedFromGroup.dispatch(c,this),c.parent.removeChild(c),c.parent instanceof b.Group&&c.parent.updateZ());var e=a;return this.remove(e),this.addAt(c,d),e}},b.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},b.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},b.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},b.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},b.Group.prototype.setAllChildren=function(a,c,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof b.Group?this.children[h].setAllChildren(a,c,d,e,f,g):this.setProperty(this.children[h],a.split("."),c,f,g))},b.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},b.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},b.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},b.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},b.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},b.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},b.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},b.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},b.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},b.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},b.Group.prototype.forEach=function(a,b,c){"undefined"==typeof c&&(c=!1);var d=Array.prototype.splice.call(arguments,3);d.unshift(null);for(var e=0,f=this.children.length;f>e;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},b.Group.prototype.forEachExists=function(a,c){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,b.Group.RETURN_TOTAL,a,c,d)},b.Group.prototype.forEachAlive=function(a,c){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,b.Group.RETURN_TOTAL,a,c,d)},b.Group.prototype.forEachDead=function(a,c){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,b.Group.RETURN_TOTAL,a,c,d)},b.Group.prototype.sort=function(a,c){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof c&&(c=b.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(c===b.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},b.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},b.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},b.Group.prototype.iterate=function(a,c,d,e,f,g){if(d===b.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===c&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===b.Group.RETURN_CHILD))return this.children[i];return d===b.Group.RETURN_TOTAL?h:d===b.Group.RETURN_CHILD?null:void 0},b.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,b.Group.RETURN_CHILD)},b.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,b.Group.RETURN_CHILD)},b.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,b.Group.RETURN_CHILD)},b.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},b.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},b.Group.prototype.countLiving=function(){return this.iterate("alive",!0,b.Group.RETURN_TOTAL)},b.Group.prototype.countDead=function(){return this.iterate("alive",!1,b.Group.RETURN_TOTAL)},b.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,this.game.math.getRandom(this.children,a,b))},b.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},b.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},b.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},b.Group.prototype.destroy=function(a,b){null!==this.game&&("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(b.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,b.Group.RETURN_TOTAL)}}),Object.defineProperty(b.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(b.Group.prototype,"angle",{get:function(){return b.Math.radToDeg(this.rotation)},set:function(a){this.rotation=b.Math.degToRad(a)}}),Object.defineProperty(b.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),b.World=function(a){b.Group.call(this,a,null,"__world",!1),this.bounds=new b.Rectangle(0,0,a.width,a.height),this.camera=null},b.World.prototype=Object.create(b.Group.prototype),b.World.prototype.constructor=b.World,b.World.prototype.boot=function(){this.camera=new b.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},b.World.prototype.setBounds=function(a,b,c,d){cthis.bounds.right&&(a.x=this.bounds.left),e&&a._currentBounds.bottomthis.bounds.bottom&&(a.y=this.bounds.top)):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(b.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){this.bounds.width=a}}),Object.defineProperty(b.World.prototype,"height",{get:function(){return this.bounds.height},set:function(a){this.bounds.height=a}}),Object.defineProperty(b.World.prototype,"centerX",{get:function(){return this.bounds.halfWidth}}),Object.defineProperty(b.World.prototype,"centerY",{get:function(){return this.bounds.halfHeight}}),Object.defineProperty(b.World.prototype,"randomX",{get:function(){return this.bounds.x<0?this.game.rnd.integerInRange(this.bounds.x,this.bounds.width-Math.abs(this.bounds.x)):this.game.rnd.integerInRange(this.bounds.x,this.bounds.width)}}),Object.defineProperty(b.World.prototype,"randomY",{get:function(){return this.bounds.y<0?this.game.rnd.integerInRange(this.bounds.y,this.bounds.height-Math.abs(this.bounds.y)):this.game.rnd.integerInRange(this.bounds.y,this.bounds.height)}}),b.ScaleManager=function(a,c,d){this.game=a,this.width=c,this.height=d,this.minWidth=null,this.maxWidth=null,this.minHeight=null,this.maxHeight=null,this.forceLandscape=!1,this.forcePortrait=!1,this.incorrectOrientation=!1,this.pageAlignHorizontally=!1,this.pageAlignVertically=!1,this.maxIterations=5,this.orientationSprite=null,this.enterLandscape=new b.Signal,this.enterPortrait=new b.Signal,this.enterIncorrectOrientation=new b.Signal,this.leaveIncorrectOrientation=new b.Signal,this.hasResized=new b.Signal,this.fullScreenTarget=this.game.canvas,this.enterFullScreen=new b.Signal,this.leaveFullScreen=new b.Signal,this.orientation=0,window.orientation?this.orientation=window.orientation:window.outerWidth>window.outerHeight&&(this.orientation=90),this.scaleFactor=new b.Point(1,1),this.scaleFactorInversed=new b.Point(1,1),this.margin=new b.Point(0,0),this.bounds=new b.Rectangle(0,0,c,d),this.aspectRatio=0,this.sourceAspectRatio=c/d,this.event=null,this.scaleMode=b.ScaleManager.NO_SCALE,this.fullScreenScaleMode=b.ScaleManager.NO_SCALE,this._startHeight=0,this._width=0,this._height=0,this._check=null;var e=this;window.addEventListener("orientationchange",function(a){return e.checkOrientation(a)},!1),window.addEventListener("resize",function(a){return e.checkResize(a)},!1),this.game.device.cocoonJS||(document.addEventListener("webkitfullscreenchange",function(a){return e.fullScreenChange(a)},!1),document.addEventListener("mozfullscreenchange",function(a){return e.fullScreenChange(a)},!1),document.addEventListener("fullscreenchange",function(a){return e.fullScreenChange(a)},!1))},b.ScaleManager.EXACT_FIT=0,b.ScaleManager.NO_SCALE=1,b.ScaleManager.SHOW_ALL=2,b.ScaleManager.prototype={startFullScreen:function(a){!this.isFullScreen&&this.game.device.fullscreen&&("undefined"!=typeof a&&this.game.renderType===b.CANVAS&&(this.game.stage.smoothed=a),this._width=this.width,this._height=this.height,this.game.device.fullscreenKeyboard?this.fullScreenTarget[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT):this.fullScreenTarget[this.game.device.requestFullscreen]())},stopFullScreen:function(){document[this.game.device.cancelFullscreen]()},fullScreenChange:function(a){this.event=a,this.isFullScreen?(this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?(this.fullScreenTarget.style.width="100%",this.fullScreenTarget.style.height="100%",this.width=window.outerWidth,this.height=window.outerHeight,this.game.input.scale.setTo(this.game.width/this.width,this.game.height/this.height),this.aspectRatio=this.width/this.height,this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.checkResize()):this.fullScreenScaleMode===b.ScaleManager.SHOW_ALL&&(this.setShowAll(),this.refresh()),this.enterFullScreen.dispatch(this.width,this.height)):(this.fullScreenTarget.style.width=this.game.width+"px",this.fullScreenTarget.style.height=this.game.height+"px",this.width=this._width,this.height=this._height,this.game.input.scale.setTo(this.game.width/this.width,this.game.height/this.height),this.aspectRatio=this.width/this.height,this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.leaveFullScreen.dispatch(this.width,this.height))},forceOrientation:function(a,c,d){"undefined"==typeof c&&(c=!1),this.forceLandscape=a,this.forcePortrait=c,"undefined"!=typeof d&&((null===d||this.game.cache.checkImageKey(d)===!1)&&(d="__default"),this.orientationSprite=new b.Image(this.game,this.game.width/2,this.game.height/2,PIXI.TextureCache[d]),this.orientationSprite.anchor.set(.5),this.checkOrientationState(),this.incorrectOrientation?(this.orientationSprite.visible=!0,this.game.world.visible=!1):(this.orientationSprite.visible=!1,this.game.world.visible=!0),this.game.stage.addChild(this.orientationSprite))},checkOrientationState:function(){this.incorrectOrientation?(this.forceLandscape&&window.innerWidth>window.innerHeight||this.forcePortrait&&window.innerHeight>window.innerWidth)&&(this.incorrectOrientation=!1,this.leaveIncorrectOrientation.dispatch(),this.orientationSprite&&(this.orientationSprite.visible=!1,this.game.world.visible=!0),this.scaleMode!==b.ScaleManager.NO_SCALE&&this.refresh()):(this.forceLandscape&&window.innerWidthwindow.outerHeight?90:0,this.isLandscape?this.enterLandscape.dispatch(this.orientation,!0,!1):this.enterPortrait.dispatch(this.orientation,!1,!0),this.scaleMode!==b.ScaleManager.NO_SCALE&&this.refresh(),this.checkOrientationState()},refresh:function(){if(this.game.device.iPad||this.game.device.webApp||this.game.device.desktop||(this.game.device.android&&!this.game.device.chrome?window.scrollTo(0,1):window.scrollTo(0,0)),null===this._check&&this.maxIterations>0){this._iterations=this.maxIterations;var a=this;this._check=window.setInterval(function(){return a.setScreenSize()},10),this.setScreenSize()}},setScreenSize:function(a){"undefined"==typeof a&&(a=!1),this.game.device.iPad||this.game.device.webApp||this.game.device.desktop||(this.game.device.android&&!this.game.device.chrome?window.scrollTo(0,1):window.scrollTo(0,0)),this._iterations--,(a||window.innerHeight>this._startHeight||this._iterations<0)&&(document.documentElement.style.minHeight=window.innerHeight+"px",this.incorrectOrientation?this.setMaximum():this.isFullScreen?this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?this.setExactFit():this.fullScreenScaleMode===b.ScaleManager.SHOW_ALL&&this.setShowAll():this.scaleMode===b.ScaleManager.EXACT_FIT?this.setExactFit():this.scaleMode===b.ScaleManager.SHOW_ALL&&this.setShowAll(),this.setSize(),clearInterval(this._check),this._check=null)},setSize:function(){this.incorrectOrientation||(this.maxWidth&&this.width>this.maxWidth&&(this.width=this.maxWidth),this.maxHeight&&this.height>this.maxHeight&&(this.height=this.maxHeight),this.minWidth&&this.widththis.maxWidth?this.maxWidth:a,this.height=this.maxHeight&&b>this.maxHeight?this.maxHeight:b}},b.ScaleManager.prototype.constructor=b.ScaleManager,Object.defineProperty(b.ScaleManager.prototype,"isFullScreen",{get:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement}}),Object.defineProperty(b.ScaleManager.prototype,"isPortrait",{get:function(){return 0===this.orientation||180===this.orientation}}),Object.defineProperty(b.ScaleManager.prototype,"isLandscape",{get:function(){return 90===this.orientation||-90===this.orientation}}),b.Game=function(a,c,d,e,f,g,h,i){this.id=b.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=b.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this.width=a),"undefined"!=typeof c&&(this.height=c),"undefined"!=typeof d&&(this.renderer=d,this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new b.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new b.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)),this},b.Game.prototype={parseConfig:function(a){this.config=a,a.width&&(this.width=b.Utils.parseDimension(a.width,0)),a.height&&(this.height=b.Utils.parseDimension(a.height,1)),a.renderer&&(this.renderer=a.renderer,this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var c=[(Date.now()*Math.random()).toString()];a.seed&&(c=a.seed),this.rnd=new b.RandomDataGenerator(c);var d=null;a.state&&(d=a.state),this.state=new b.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new b.Signal,this.onResume=new b.Signal,this.onBlur=new b.Signal,this.onFocus=new b.Signal,this.isBooted=!0,this.device=new b.Device(this),this.math=b.Math,this.stage=new b.Stage(this,this.width,this.height),this.setUpRenderer(),this.scale=new b.ScaleManager(this,this.width,this.height),this.device.checkFullScreenSupport(),this.world=new b.World(this),this.add=new b.GameObjectFactory(this),this.make=new b.GameObjectCreator(this),this.cache=new b.Cache(this),this.load=new b.Loader(this),this.time=new b.Time(this),this.tweens=new b.TweenManager(this),this.input=new b.Input(this),this.sound=new b.SoundManager(this),this.physics=new b.Physics(this,this.physicsConfig),this.particles=new b.Particles(this),this.plugins=new b.PluginManager(this),this.net=new b.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new b.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new b.RequestAnimationFrame(this,this.config.forceSetTimeOut):new b.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=b.VERSION,c="Canvas",d="HTML Audio",e=1;if(this.renderType===b.WEBGL?(c="WebGL",e++):this.renderType==b.HEADLESS&&(c="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+c+" | "+d+" %c %c http://phaser.io %c %c ♥%c♥%c♥ ","background: #0cf300","background: #00bc17","color: #ffffff; background: #00711f;","background: #00bc17","background: #0cf300","background: #00bc17"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+c+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.device.trident&&(this.renderType=b.CANVAS),this.canvas=this.config.canvasID?b.Canvas.create(this.width,this.height,this.config.canvasID):b.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=!0),this.renderType===b.HEADLESS||this.renderType===b.CANVAS||this.renderType===b.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===b.AUTO&&(this.renderType=b.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,this.canvas,this.transparent),this.context=this.renderer.context}else this.renderType=b.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,this.canvas,this.transparent,this.antialias,this.preserveDrawingBuffer),this.context=null;this.renderType!==b.HEADLESS&&(this.stage.smoothed=this.antialias,b.Canvas.addToDOM(this.canvas,this.parent,!1),b.Canvas.setTouchAction(this.canvas))},update:function(a){this.time.update(a),this._paused||this.pendingStep?(this.state.pauseUpdate(),this.config.enableDebug&&this.debug.preUpdate()):(this.stepping&&(this.pendingStep=!0),this.config.enableDebug&&this.debug.preUpdate(),this.physics.preUpdate(),this.state.preUpdate(),this.plugins.preUpdate(),this.stage.preUpdate(),this.state.update(),this.stage.update(),this.tweens.update(),this.sound.update(),this.input.update(),this.physics.update(),this.particles.update(),this.plugins.update(),this.stage.postUpdate(),this.plugins.postUpdate()),this.renderType!=b.HEADLESS&&(this.state.preRender(),this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender(),this.device.cocoonJS&&this.renderType===b.CANVAS&&1===this.stage.currentRenderOrderID&&this.context.fillRect(0,0,0,0))},enableStep:function(){this.stepping=!0,this.pendingStep=!1,this.stepCount=0},disableStep:function(){this.stepping=!1,this.pendingStep=!1},step:function(){this.pendingStep=!1,this.stepCount++},destroy:function(){this.raf.stop(),this.input.destroy(),this.state.destroy(),this.physics.destroy(),this.state=null,this.cache=null,this.input=null,this.load=null,this.sound=null,this.stage=null,this.time=null,this.world=null,this.isBooted=!1},gamePaused:function(a){this._paused||(this._paused=!0,this.time.gamePaused(),this.sound.setMute(),this.onPause.dispatch(a))},gameResumed:function(a){this._paused&&!this._codePaused&&(this._paused=!1,this.time.gameResumed(),this.input.reset(),this.sound.unsetMute(),this.onResume.dispatch(a))},focusLoss:function(a){this.onBlur.dispatch(a),this.stage.disableVisibilityChange||this.gamePaused(a)},focusGain:function(a){this.onFocus.dispatch(a),this.stage.disableVisibilityChange||this.gameResumed(a)}},b.Game.prototype.constructor=b.Game,Object.defineProperty(b.Game.prototype,"paused",{get:function(){return this._paused},set:function(a){a===!0?this._paused===!1&&(this._paused=!0,this._codePaused=!0,this.sound.setMute(),this.time.gamePaused(),this.onPause.dispatch(this)):this._paused&&(this._paused=!1,this._codePaused=!1,this.input.reset(),this.sound.unsetMute(),this.time.gameResumed(),this.onResume.dispatch(this))}}),b.Input=function(a){this.game=a,this.hitCanvas=null,this.hitContext=null,this.moveCallbacks=[],this.moveCallback=null,this.moveCallbackContext=this,this.pollRate=0,this.disabled=!1,this.multiInputOverride=b.Input.MOUSE_TOUCH_COMBINE,this.position=null,this.speed=null,this.circle=null,this.scale=null,this.maxPointers=10,this.currentPointers=0,this.tapRate=200,this.doubleTapRate=300,this.holdRate=2e3,this.justPressedRate=200,this.justReleasedRate=200,this.recordPointerHistory=!1,this.recordRate=100,this.recordLimit=100,this.pointer1=null,this.pointer2=null,this.pointer3=null,this.pointer4=null,this.pointer5=null,this.pointer6=null,this.pointer7=null,this.pointer8=null,this.pointer9=null,this.pointer10=null,this.activePointer=null,this.mousePointer=null,this.mouse=null,this.keyboard=null,this.touch=null,this.mspointer=null,this.gamepad=null,this.resetLocked=!1,this.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.minPriorityID=0,this.interactiveItems=new b.ArrayList,this._localPoint=new b.Point,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=0},b.Input.MOUSE_OVERRIDES_TOUCH=0,b.Input.TOUCH_OVERRIDES_MOUSE=1,b.Input.MOUSE_TOUCH_COMBINE=2,b.Input.prototype={boot:function(){this.mousePointer=new b.Pointer(this.game,0),this.pointer1=new b.Pointer(this.game,1),this.pointer2=new b.Pointer(this.game,2),this.mouse=new b.Mouse(this.game),this.keyboard=new b.Keyboard(this.game),this.touch=new b.Touch(this.game),this.mspointer=new b.MSPointer(this.game),this.gamepad=new b.Gamepad(this.game),this.onDown=new b.Signal,this.onUp=new b.Signal,this.onTap=new b.Signal,this.onHold=new b.Signal,this.scale=new b.Point(1,1),this.speed=new b.Point,this.position=new b.Point,this._oldPosition=new b.Point,this.circle=new b.Circle(0,0,44),this.activePointer=this.mousePointer,this.currentPointers=0,this.hitCanvas=document.createElement("canvas"),this.hitCanvas.width=1,this.hitCanvas.height=1,this.hitContext=this.hitCanvas.getContext("2d"),this.mouse.start(),this.keyboard.start(),this.touch.start(),this.mspointer.start(),this.mousePointer.active=!0},destroy:function(){this.mouse.stop(),this.keyboard.stop(),this.touch.stop(),this.mspointer.stop(),this.gamepad.stop(),this.moveCallbacks=[],this.moveCallback=null},setMoveCallback:function(a,b){this.moveCallback=a,this.moveCallbackContext=b},addMoveCallback:function(a,b){return this.moveCallbacks.push({callback:a,context:b})-1},deleteMoveCallback:function(a){this.moveCallbacks[a]&&this.moveCallbacks.splice(a,1)},addPointer:function(){for(var a=0,c=10;c>0;c--)null===this["pointer"+c]&&(a=c);return 0===a?(console.warn("You can only have 10 Pointer objects"),null):(this["pointer"+a]=new b.Pointer(this.game,a),this["pointer"+a])},update:function(){return this.keyboard.update(),this.pollRate>0&&this._pollCounter=c;c++)this["pointer"+c]&&this["pointer"+c].reset();this.currentPointers=0,"none"!==this.game.canvas.style.cursor&&(this.game.canvas.style.cursor="inherit"),a&&(this.onDown.dispose(),this.onUp.dispose(),this.onTap.dispose(),this.onHold.dispose(),this.onDown=new b.Signal,this.onUp=new b.Signal,this.onTap=new b.Signal,this.onHold=new b.Signal,this.moveCallbacks=[]),this._pollCounter=0}},resetSpeed:function(a,b){this._oldPosition.setTo(a,b),this.speed.setTo(0,0)},startPointer:function(a){if(this.maxPointers<10&&this.totalActivePointers==this.maxPointers)return null;if(this.pointer1.active===!1)return this.pointer1.start(a);if(this.pointer2.active===!1)return this.pointer2.start(a);for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active===!1)return this["pointer"+b].start(a);return null},updatePointer:function(a){if(this.pointer1.active&&this.pointer1.identifier==a.identifier)return this.pointer1.move(a);if(this.pointer2.active&&this.pointer2.identifier==a.identifier)return this.pointer2.move(a);for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active&&this["pointer"+b].identifier==a.identifier)return this["pointer"+b].move(a);return null},stopPointer:function(a){if(this.pointer1.active&&this.pointer1.identifier==a.identifier)return this.pointer1.stop(a);if(this.pointer2.active&&this.pointer2.identifier==a.identifier)return this.pointer2.stop(a);for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active&&this["pointer"+b].identifier==a.identifier)return this["pointer"+b].stop(a);return null},getPointer:function(a){if(a=a||!1,this.pointer1.active==a)return this.pointer1;if(this.pointer2.active==a)return this.pointer2;for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active==a)return this["pointer"+b];return null},getPointerFromIdentifier:function(a){if(this.pointer1.identifier===a)return this.pointer1;if(this.pointer2.identifier===a)return this.pointer2;for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].identifier===a)return this["pointer"+b];return null},getPointerFromId:function(a){if(this.pointer1.pointerId===a)return this.pointer1;if(this.pointer2.pointerId===a)return this.pointer2;for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].pointerId===a)return this["pointer"+b];return null},getLocalPosition:function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.worldTransform,f=1/(e.a*e.d+e.b*-e.c);return d.setTo(e.d*f*c.x+-e.b*f*c.y+(e.ty*e.b-e.tx*e.d)*f,e.a*f*c.y+-e.c*f*c.x+(-e.ty*e.a+e.tx*e.c)*f)},hitTest:function(a,c,d){if(!a.worldVisible)return!1;if(this.getLocalPosition(a,c,this._localPoint),d.copyFrom(this._localPoint),a.hitArea&&a.hitArea.contains)return a.hitArea.contains(this._localPoint.x,this._localPoint.y)?!0:!1;if(a instanceof b.TileSprite){var e=a.width,f=a.height,g=-e*a.anchor.x;if(this._localPoint.x>g&&this._localPoint.xh&&this._localPoint.yg&&this._localPoint.xh&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],c,d))return!0;return!1}},b.Input.prototype.constructor=b.Input,Object.defineProperty(b.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(b.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(b.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter=a;a++)this["pointer"+a]&&this["pointer"+a].active&&this.currentPointers++;return this.currentPointers}}),Object.defineProperty(b.Input.prototype,"worldX",{get:function(){return this.game.camera.view.x+this.x}}),Object.defineProperty(b.Input.prototype,"worldY",{get:function(){return this.game.camera.view.y+this.y}}),b.Key=function(a,c){this.game=a,this.enabled=!0,this.event=null,this.isDown=!1,this.isUp=!0,this.altKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.timeDown=0,this.duration=0,this.timeUp=-2500,this.repeats=0,this.keyCode=c,this.onDown=new b.Signal,this.onHoldCallback=null,this.onHoldContext=null,this.onUp=new b.Signal},b.Key.prototype={update:function(){this.enabled&&this.isDown&&(this.duration=this.game.time.now-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(a){this.enabled&&(this.event=a,this.isDown||(this.altKey=a.altKey,this.ctrlKey=a.ctrlKey,this.shiftKey=a.shiftKey,this.isDown=!0,this.isUp=!1,this.timeDown=this.game.time.now,this.duration=0,this.repeats=0,this.onDown.dispatch(this)))},processKeyUp:function(a){this.enabled&&(this.event=a,this.isUp||(this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=this.game.time.now-this.timeDown,this.onUp.dispatch(this)))},reset:function(a){"undefined"==typeof a&&(a=!0),this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=0,this.enabled=!0,a&&(this.onDown.removeAll(),this.onUp.removeAll(),this.onHoldCallback=null,this.onHoldContext=null)},justPressed:function(a){return"undefined"==typeof a&&(a=50),this.isDown&&this.duration=this.game.input.holdRate&&((this.game.input.multiInputOverride==b.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==b.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==b.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.now>=this._nextDrop&&(this._nextDrop=this.game.time.now+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,c){if(!this.game.input.pollLocked){if("undefined"==typeof c&&(c=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!c&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.stage.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.stage.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===b.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===b.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===b.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;this.game.input.moveCallback&&this.game.input.moveCallback.call(this.game.input.moveCallbackContext,this,this.x,this.y);for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y);if(null!==this.targetObject&&this.targetObject.isDragged===!0)return this.targetObject.update(this)===!1&&(this.targetObject=null),this;if(this._highestRenderOrderID=Number.MAX_SAFE_INTEGER,this._highestRenderObject=null,this._highestInputPriorityID=-1,this.game.input.interactiveItems.total>0){var e=this.game.input.interactiveItems.first;do e&&e.validForInput(this._highestInputPriorityID,this._highestRenderOrderID)&&(!c&&e.checkPointerOver(this)||c&&e.checkPointerDown(this))&&(this._highestRenderOrderID=e.sprite._cache[3],this._highestInputPriorityID=e.priorityID,this._highestRenderObject=e),e=this.game.input.interactiveItems.next;while(null!==e)}return null===this._highestRenderObject?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=this._highestRenderObject,this._highestRenderObject._pointerOverHandler(this)):this.targetObject===this._highestRenderObject?this._highestRenderObject.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=this._highestRenderObject,this.targetObject._pointerOverHandler(this)),this}},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.now,(this.game.input.multiInputOverride===b.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===b.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===b.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.now},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.now},reset:function(){this.isMouse===!1&&(this.active=!1),this.pointerId=null,this.identifier=null,this.isDown=!1,this.isUp=!0,this.totalTouches=0,this._holdSent=!1,this._history.length=0,this._stateReset=!0,this.targetObject&&this.targetObject._releasedHandler(this),this.targetObject=null},resetMovement:function(){this.movementX=0,this.movementY=0}},b.Pointer.prototype.constructor=b.Pointer,Object.defineProperty(b.Pointer.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.now-this.timeDown}}),Object.defineProperty(b.Pointer.prototype,"worldX",{get:function(){return this.game.world.camera.x+this.x}}),Object.defineProperty(b.Pointer.prototype,"worldY",{get:function(){return this.game.world.camera.y+this.y}}),b.Touch=function(a){this.game=a,this.disabled=!1,this.callbackContext=this.game,this.touchStartCallback=null,this.touchMoveCallback=null,this.touchEndCallback=null,this.touchEnterCallback=null,this.touchLeaveCallback=null,this.touchCancelCallback=null,this.preventDefault=!0,this.event=null,this._onTouchStart=null,this._onTouchMove=null,this._onTouchEnd=null,this._onTouchEnter=null,this._onTouchLeave=null,this._onTouchCancel=null,this._onTouchMove=null},b.Touch.prototype={start:function(){if(null===this._onTouchStart){var a=this;this.game.device.touch&&(this._onTouchStart=function(b){return a.onTouchStart(b)},this._onTouchMove=function(b){return a.onTouchMove(b)},this._onTouchEnd=function(b){return a.onTouchEnd(b)},this._onTouchEnter=function(b){return a.onTouchEnter(b)},this._onTouchLeave=function(b){return a.onTouchLeave(b)},this._onTouchCancel=function(b){return a.onTouchCancel(b)},this.game.canvas.addEventListener("touchstart",this._onTouchStart,!1),this.game.canvas.addEventListener("touchmove",this._onTouchMove,!1),this.game.canvas.addEventListener("touchend",this._onTouchEnd,!1),this.game.canvas.addEventListener("touchcancel",this._onTouchCancel,!1),this.game.device.cocoonJS||(this.game.canvas.addEventListener("touchenter",this._onTouchEnter,!1),this.game.canvas.addEventListener("touchleave",this._onTouchLeave,!1)))}},consumeDocumentTouches:function(){this._documentTouchMove=function(a){a.preventDefault()},document.addEventListener("touchmove",this._documentTouchMove,!1)},onTouchStart:function(a){if(this.event=a,this.touchStartCallback&&this.touchStartCallback.call(this.callbackContext,a),!this.game.input.disabled&&!this.disabled){this.preventDefault&&a.preventDefault();for(var b=0;b0&&d>this.deadZone||0>d&&d<-this.deadZone?{axis:c,value:d}:{axis:c,value:0})}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var c=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=a.axes,this._axesLen=a.axes.length;for(var d in a.buttons)d=parseInt(d,10),this._buttons[d]=new b.GamepadButton(this,d);c&&this._padParent.onConnectCallback&&this._padParent.onConnectCallback.call(this._padParent.callbackContext,this.index),c&&this.onConnectCallback&&this.onConnectCallback.call(this.callbackContext)},disconnect:function(){var a=this.connected,b=this.index;this.connected=!1,this.index=null,this._rawPad=void 0;for(var c=0;cd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new b.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new b.Signal,this.sprite.events.onInputOut=new b.Signal,this.sprite.events.onInputDown=new b.Signal,this.sprite.events.onInputUp=new b.Signal,this.sprite.events.onDragStart=new b.Signal,this.sprite.events.onDragStop=new b.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b){return 0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0:!1},checkPointerOver:function(a){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0:!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(this.game.input.hitContext.clearRect(0,0,1,1),null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID==a.id?this.updateDrag(a):this._pointerData[a.id].isOver===!0?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isOver===!1&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.now,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.now,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.now,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.now,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){return a.isUp?(this.stopDrag(a),!1):(this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=a.x+this._dragPoint.x+this.dragOffset.x),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=a.y+this._dragPoint.y+this.dragOffset.y),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=a.x+this._dragPoint.x+this.dragOffset.x),this.allowVerticalDrag&&(this.sprite.y=a.y+this._dragPoint.y+this.dragOffset.y),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0) -},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=a.x+(this.sprite.x-b.centerX),this.sprite.y=a.y+(this.sprite.y-b.centerY),this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y)}else this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y);this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},b.InputHandler.prototype.constructor=b.InputHandler,b.Events=function(a){this.parent=a,this.onAddedToGroup=new b.Signal,this.onRemovedFromGroup=new b.Signal,this.onKilled=new b.Signal,this.onRevived=new b.Signal,this.onOutOfBounds=new b.Signal,this.onEnterBounds=new b.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},b.Events.prototype={destroy:function(){this.parent=null,this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},b.Events.prototype.constructor=b.Events,b.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},b.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,c,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new b.Image(this.game,a,c,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,c,d,e,f){return new b.Group(this.game,a,c,d,e,f)},physicsGroup:function(a,c,d,e){return new b.Group(this.game,c,d,e,!0,a)},spriteBatch:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.SpriteBatch(this.game,a,c,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,c,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new b.TileSprite(this.game,a,c,d,e,f,g))},text:function(a,c,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new b.Text(this.game,a,c,d,e))},button:function(a,c,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new b.Button(this.game,a,c,d,e,f,g,h,i,j))},graphics:function(a,c,d){return"undefined"==typeof d&&(d=this.world),d.add(new b.Graphics(this.game,a,c))},emitter:function(a,c,d){return this.game.particles.add(new b.Particles.Arcade.Emitter(this.game,a,c,d))},retroFont:function(a,c,d,e,f,g,h,i,j){return new b.RetroFont(this.game,a,c,d,e,f,g,h,i,j)},bitmapText:function(a,c,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new b.BitmapText(this.game,a,c,d,e,f))},tilemap:function(a,c,d,e,f){return new b.Tilemap(this.game,a,c,d,e,f)},renderTexture:function(a,c,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new b.RenderTexture(this.game,a,c,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,c,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new b.BitmapData(this.game,d,a,c);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var c=Array.prototype.splice.call(arguments,1),a=new b.Filter[a](this.game);return a.init.apply(a,c),a},plugin:function(a){return this.game.plugins.add(a)}},b.GameObjectFactory.prototype.constructor=b.GameObjectFactory,b.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},b.GameObjectCreator.prototype={image:function(a,c,d,e){return new b.Image(this.game,a,c,d,e)},sprite:function(a,c,d,e){return new b.Sprite(this.game,a,c,d,e)},tween:function(a){return new b.Tween(a,this.game)},group:function(a,c,d,e,f){return new b.Group(this.game,null,c,d,e,f)},spriteBatch:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.SpriteBatch(this.game,a,c,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,c,d,e,f,g){return new b.TileSprite(this.game,a,c,d,e,f,g)},text:function(a,c,d,e){return new b.Text(this.game,a,c,d,e)},button:function(a,c,d,e,f,g,h,i,j){return new b.Button(this.game,a,c,d,e,f,g,h,i,j)},graphics:function(a,c){return new b.Graphics(this.game,a,c)},emitter:function(a,c,d){return new b.Particles.Arcade.Emitter(this.game,a,c,d)},retroFont:function(a,c,d,e,f,g,h,i,j){return new b.RetroFont(this.game,a,c,d,e,f,g,h,i,j)},bitmapText:function(a,c,d,e,f){return new b.BitmapText(this.game,a,c,d,e,f)},tilemap:function(a,c,d,e,f){return new b.Tilemap(this.game,a,c,d,e,f)},renderTexture:function(a,c,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new b.RenderTexture(this.game,a,c,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,c,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new b.BitmapData(this.game,d,a,c);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var c=Array.prototype.splice.call(arguments,1),a=new b.Filter[a](this.game);return a.init.apply(a,c),a}},b.GameObjectCreator.prototype.constructor=b.GameObjectCreator,b.BitmapData=function(a,c,d,e){"undefined"==typeof d&&(d=100),"undefined"==typeof e&&(e=100),this.game=a,this.key=c,this.width=d,this.height=e,this.canvas=b.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=b.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this.update=this.refreshBuffer,this._tempR=0,this._tempG=0,this._tempB=0},b.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)b.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(c,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},replaceRGB:function(a,c,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=b.Color.packPixel(a,c,d,e);void 0!==j&&j instanceof b.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);this.context.putImageData(this.imageData,0,0),this.dirty=!0},setHSL:function(a,c,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof c||null===c)&&(c=!1),("undefined"==typeof d||null===d)&&(d=!1),a||c||d){"undefined"==typeof e&&(e=new b.Rectangle(0,0,this.width,this.height));for(var f=b.Color.createColor(),g=e.y;g=0&&a<=this.width&&c>=0&&c<=this.height&&(this.pixels[c*this.width+a]=b.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0))},setPixel:function(a,b,c,d,e,f){this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,c,d){d||(d=b.Color.createColor());var e=~~(a+c*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,c,d,e,f){return b.Color.unpackPixel(this.getPixel32(a,c),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},addToWorld:function(a,b){return this.game.add.image(a,b,this)},copyPixels:function(a,c,d,e){"string"==typeof a&&(a=this.game.cache.getImage(a));var f=a,g=0,h=0;if(a instanceof b.Image||a instanceof b.Sprite){f=a.texture.baseTexture.source;var i=a.texture.frame;g=i.x,h=i.y}else a instanceof b.BitmapData&&(f=a.canvas);this.context.drawImage(f,g+c.x,h+c.y,c.width,c.height,d,e,c.width,c.height),this.dirty=!0},draw:function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"string"==typeof a&&(a=this.game.cache.getImage(a));var g=a,h=0,i=0,j=0,k=0;if(a instanceof b.Image||a instanceof b.Sprite){g=a.texture.baseTexture.source;var l=a.texture.frame;h=l.x,i=l.y,j=l.width,k=l.height}else a instanceof b.BitmapData&&(g=a.canvas),j=a.width,k=a.height;"undefined"==typeof e&&(e=j),"undefined"==typeof f&&(f=k),this.context.drawImage(g,h,i,j,k,c,d,e,f),this.dirty=!0},drawSprite:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),this.draw(a,b,c)},alphaMask:function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this);var e=this.context.globalCompositeOperation;"undefined"==typeof d||null===d?this.draw(b):this.draw(b,d.x,d.y,d.width,d.height),this.context.globalCompositeOperation="source-atop","undefined"==typeof c||null===c?this.draw(a):this.draw(a,c.x,c.y,c.width,c.height),this.context.globalCompositeOperation=e,this.update(),this.dirty=!0},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d)},circle:function(a,b,c,d){"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill()},render:function(){!this.disableTextureUpload&&this.game.renderType===b.WEBGL&&this.dirty&&(PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1)}},b.BitmapData.prototype.constructor=b.BitmapData,b.Sprite=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=b.SPRITE,this.z=0,this.events=new b.Events(this),this.animations=new b.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new b.Rectangle,this.loadTexture(e,f)},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Sprite.prototype.update=function(){},b.Sprite.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Sprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a;var d=!0;a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),c))):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),d&&(this._frame=b.Rectangle.clone(this.texture.frame))},b.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.cropRect?this.updateCrop():this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},b.Sprite.prototype.crop=function(a,c){"undefined"==typeof c&&(c=!1),a?(c&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=c&&null===this.cropRect?new b.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},b.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=b.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),c=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-c;this.texture.crop.x=a,this.texture.crop.y=c,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)}},b.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},b.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},b.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},b.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},b.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},b.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},b.Sprite.prototype.overlap=function(a){return b.Rectangle.intersects(this.getBounds(),a.getBounds())},Object.defineProperty(b.Sprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(b.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(b.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(b.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(b.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(b.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Image=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=b.IMAGE,this.z=0,this.events=new b.Events(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.cameraOffset=new b.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new b.Rectangle,this._frameName="",this.loadTexture(e,f)},b.Image.prototype=Object.create(PIXI.Sprite.prototype),b.Image.prototype.constructor=b.Image,b.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Image.prototype.update=function(){},b.Image.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Image.prototype.loadTexture=function(a,c){if(c=c||0,this.key=a,a instanceof b.RenderTexture)this.key=a.key,this.setTexture(a);else if(a instanceof b.BitmapData)this.setTexture(a.texture);else if(a instanceof PIXI.Texture)this.setTexture(a);else if(null===a||"undefined"==typeof a)this.key="__default",this.setTexture(PIXI.TextureCache[this.key]);else if("string"!=typeof a||this.game.cache.checkImageKey(a))if(this.game.cache.isSpriteSheet(a)){var d=this.game.cache.getFrameData(a);this.setTexture("string"==typeof c?new PIXI.Texture(PIXI.BaseTextureCache[a],d.getFrameByName(c)):new PIXI.Texture(PIXI.BaseTextureCache[a],d.getFrame(c)))}else this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a]));else console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]);this._frame=b.Rectangle.clone(this.texture.frame)},b.Image.prototype.resetFrame=b.Sprite.prototype.resetFrame,b.Image.prototype.setFrame=b.Sprite.prototype.setFrame,b.Image.prototype.updateCrop=b.Sprite.prototype.updateCrop,b.Image.prototype.crop=b.Sprite.prototype.crop,b.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},b.Image.prototype.kill=b.Sprite.prototype.kill,b.Image.prototype.destroy=b.Sprite.prototype.destroy,b.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},b.Image.prototype.bringToTop=b.Sprite.prototype.bringToTop,Object.defineProperty(b.Image.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds()) -}}),Object.defineProperty(b.Image.prototype,"frame",{get:function(){return this._cache[9]},set:function(a){if(a!==this.frame&&this.game.cache.isSpriteSheet(this.key)){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},b.TileSprite.prototype.update=function(){},b.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},b.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},b.TileSprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a,a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),c)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},b.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.filters&&(this.filters=null),this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},b.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(b.TileSprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(b.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(b.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(b.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Text=function(a,c,d,e,f){c=c||0,d=d||0,e=e||" ",f=f||{},e=0===e.length?" ":e.toString(),this.game=a,this.exists=!0,this.name="",this.type=b.TEXT,this.z=0,this.world=new b.Point(c,d),this._text=e,this._font="",this._fontSize=32,this._fontWeight="normal",this._lineSpacing=0,this.events=new b.Events(this),this.input=null,this.cameraOffset=new b.Point,this.setStyle(f),PIXI.Text.call(this,e,this.style),this.position.set(c,d),this._cache=[0,0,0,0,1,0,1,0,0]},b.Text.prototype=Object.create(PIXI.Text.prototype),b.Text.prototype.constructor=b.Text,b.Text.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Text.prototype.update=function(){},b.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0},b.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},b.Text.prototype.updateText=function(){this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=0;ee?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},b.Graphics.prototype.drawTriangles=function(a,c,d){"undefined"==typeof d&&(d=!1);var e,f=new b.Point,g=new b.Point,h=new b.Point,i=[];if(c)if(a[0]instanceof b.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},b.RetroFont.prototype.buildRetroFontText=function(){var a=0,c=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,c,this.customSpacingX),c+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case b.RetroFont.ALIGN_LEFT:a=0; -break;case b.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},b.RetroFont.prototype.pasteLine=function(a,c,d,e){for(var f=new b.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(c,d),this.render(this.stamp,f,!1),c+=this.characterWidth+e,c>this.width))break},b.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},b.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},b.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(b.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(b.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),b.Particle=function(a,c,d,e,f){b.Sprite.call(this,a,c,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},b.Particle.prototype=Object.create(b.Sprite.prototype),b.Particle.prototype.constructor=b.Particle,b.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},b.Particle.prototype.onEmit=function(){},b.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},b.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},b.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},b.Canvas={create:function(a,b,c,d){"undefined"==typeof d&&(d=!1),a=a||256,b=b||256;var e=document.createElement("canvas");return"string"==typeof c&&""!==c&&(e.id=c),e.width=a,e.height=b,e.style.display="block",e},getOffset:function(a,c){c=c||new b.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),c.x=d.left+h-f,c.y=d.top+g-e,c},getAspectRatio:function(a){return a.width/a.height},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},b.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.touch=!1,this.mspointer=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures()},b.Device.LITTLE_ENDIAN=!1,b.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},b.Device.prototype.constructor=b.Device,b.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=[],b=0;b0?Math.floor(a):Math.ceil(a)},shear:function(a){return a%1},snapTo:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},snapToInArray:function(a,b,c){if("undefined"==typeof c&&(c=!0),c&&b.sort(),a=f-a?f:e},roundTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},interpolateFloat:function(a,b,c){return(b-a)*c+a},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},normalizeLatitude:function(a){return Math.max(-90,Math.min(90,a))},normalizeLongitude:function(a){return a%360==180?180:(a%=360,-180>a?a+360:a>180?a-360:a)},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),0>=a?!1:a>=100?!0:100*Math.random()>=a?!1:!0},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},maxAdd:function(a,b,c){return a+=b,a>c&&(a=c),a},minSub:function(a,b,c){return a-=b,c>a&&(a=c),a},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,c){return b>a?b:a>c?c:a},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){var c=b?Math.PI/180:1;return this.wrap(a,-180*c,180*c)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0)return a[b+Math.floor(Math.random()*d)]}return null},removeRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0){var e=b+Math.floor(Math.random()*d),f=a.splice(e,1);return f[0]}}return null},floor:function(a){var b=0|a;return a>0?b:b!=a?b-1:b},ceil:function(a){var b=0|a;return a>0&&b!=a?b+1:b},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){for(var b=a.length-1;b>0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,c,d,e){return Math.round(b.Math.distance(a,c,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b},degToRad:function(){var a=Math.PI/180;return function(b){return b*a}}(),radToDeg:function(){var a=180/Math.PI;return function(b){return b*a}}()},b.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},b.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},b.RandomDataGenerator.prototype.constructor=b.RandomDataGenerator,b.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},b.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.level++,this.nodes[0]=new b.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[1]=new b.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[2]=new b.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[3]=new b.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof b.Rectangle)var c=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var c=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?c=c.concat(this.nodes[d].retrieve(a)):(c=c.concat(this.nodes[0].retrieve(a)),c=c.concat(this.nodes[1].retrieve(a)),c=c.concat(this.nodes[2].retrieve(a)),c=c.concat(this.nodes[3].retrieve(a)))),c},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},b.QuadTree.prototype.constructor=b.QuadTree,b.Net=function(a){this.game=a},b.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},b.Net.prototype.constructor=b.Net,b.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},b.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;aa;)this._tweens[a].update(this.game.time.now)?a++:(this._tweens.splice(a,1),b--);return this._add.length>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},b.TweenManager.prototype.constructor=b.TweenManager,b.Tween=function(a,c,d){this._object=a,this.game=c,this._manager=d,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=b.Easing.Linear.None,this._interpolationFunction=b.Math.linearInterpolation,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._paused=!1,this._pausedTime=0,this._codePaused=!1,this.pendingDelete=!1,this.onStart=new b.Signal,this.onLoop=new b.Signal,this.onComplete=new b.Signal,this.isRunning=!1},b.Tween.prototype={to:function(a,b,c,d,e,f,g){b=b||1e3,c=c||null,d=d||!1,e=e||0,f=f||0,g=g||!1,g&&0===f&&(f=1);var h;return this._parent?(h=this._manager.create(this._object),this._lastChild.chain(h),this._lastChild=h):(h=this,this._parent=this,this._lastChild=this),h._repeat=f,h._duration=b,h._valuesEnd=a,null!==c&&(h._easingFunction=c),e>0&&(h._delayTime=e),h._yoyo=g,d?this.start():this},from:function(a,b,c,d,e,f,g){var h={};for(var i in a)h[i]=this._object[i],this._object[i]=a[i];return this.to(h,b,c,d,e,f,g)},start:function(){if(null!==this.game&&null!==this._object){this._manager.add(this),this.isRunning=!0,this._onStartCallbackFired=!1,this._startTime=this.game.time.now+this._delayTime;for(var a in this._valuesEnd){if(Array.isArray(this._valuesEnd[a])){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],Array.isArray(this._valuesStart[a])||(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},generateData:function(a,b){if(null===this.game||null===this._object)return null;this._startTime=0;for(var c in this._valuesEnd){if(Array.isArray(this._valuesEnd[c])){if(0===this._valuesEnd[c].length)continue;this._valuesEnd[c]=[this._object[c]].concat(this._valuesEnd[c])}this._valuesStart[c]=this._object[c],Array.isArray(this._valuesStart[c])||(this._valuesStart[c]*=1),this._valuesStartRepeat[c]=this._valuesStart[c]||0}for(var d=0,e=Math.floor(a*(this._duration/1e3)),f=this._duration/e,g=[];e--;){var c,h=(d-this._startTime)/this._duration;h=h>1?1:h;var i=this._easingFunction(h),j={};for(c in this._valuesEnd){var k=this._valuesStart[c]||0,l=this._valuesEnd[c];l instanceof Array?j[c]=this._interpolationFunction(l,i):("string"==typeof l&&(l=k+parseFloat(l,10)),"number"==typeof l&&(j[c]=k+(l-k)*i))}g.push(j),d+=f}if(this._yoyo){var m=g.slice();m.reverse(),g=g.concat(m)}return"undefined"!=typeof b?b=b.concat(g):g},stop:function(){return this.isRunning=!1,this._onUpdateCallback=null,this._manager.remove(this),this},delay:function(a){return this._delayTime=a,this},repeat:function(a){return this._repeat=a,this},yoyo:function(a){return this._yoyo=a,a&&0===this._repeat&&(this._repeat=1),this},easing:function(a){return this._easingFunction=a,this},interpolation:function(a){return this._interpolationFunction=a,this},chain:function(){return this._chainedTweens=arguments,this},loop:function(){return this._lastChild.chain(this),this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this._codePaused=!0,this._paused=!0,this._pausedTime=this.game.time.now},_pause:function(){this._codePaused||(this._paused=!0,this._pausedTime=this.game.time.now)},resume:function(){this._paused&&(this._paused=!1,this._codePaused=!1,this._startTime+=this.game.time.now-this._pausedTime)},_resume:function(){this._codePaused||(this._startTime+=this.game.time.pauseDuration,this._paused=!1)},update:function(a){if(this.pendingDelete)return!1;if(this._paused||a1?1:c;var d=this._easingFunction(c);for(b in this._valuesEnd){var e=this._valuesStart[b]||0,f=this._valuesEnd[b];f instanceof Array?this._object[b]=this._interpolationFunction(f,d):("string"==typeof f&&(f=e+parseFloat(f,10)),"number"==typeof f&&(this._object[b]=e+(f-e)*d))}if(null!==this._onUpdateCallback&&(this._onUpdateCallback.call(this._onUpdateCallbackContext,this,d),!this.isRunning))return!1;if(1==c){if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(b in this._valuesStartRepeat){if("string"==typeof this._valuesEnd[b]&&(this._valuesStartRepeat[b]=this._valuesStartRepeat[b]+parseFloat(this._valuesEnd[b],10)),this._yoyo){var g=this._valuesStartRepeat[b];this._valuesStartRepeat[b]=this._valuesEnd[b],this._valuesEnd[b]=g}this._valuesStart[b]=this._valuesStartRepeat[b]}return this._yoyo&&(this._reversed=!this._reversed),this._startTime=a+this._delayTime,this.onLoop.dispatch(this._object),!0}this.isRunning=!1,this.onComplete.dispatch(this._object);for(var h=0,i=this._chainedTweens.length;i>h;h++)this._chainedTweens[h].start(a);return!1}return!0}},b.Tween.prototype.constructor=b.Tween,b.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2) -}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-b.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*b.Easing.Bounce.In(2*a):.5*b.Easing.Bounce.Out(2*a-1)+.5}}},b.Time=function(a){this.game=a,this.time=0,this.now=0,this.elapsed=0,this.pausedTime=0,this.advancedTiming=!1,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.physicsElapsed=0,this.deltaCap=0,this.timeCap=1e3,this.frames=0,this.pauseDuration=0,this.timeToCall=0,this.lastTime=0,this.events=new b.Timer(this.game,!1),this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[],this._len=0,this._i=0},b.Time.prototype={boot:function(){this._started=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var c=new b.Timer(this.game,a);return this._timers.push(c),c},removeAll:function(){for(var a=0;athis.timeCap&&(this.elapsed=1/60),this.physicsElapsed=this.elapsed/1e3||1/60,this.deltaCap>0&&this.physicsElapsed>this.deltaCap&&(this.physicsElapsed=this.deltaCap),this.advancedTiming&&(this.msMin=this.game.math.min(this.msMin,this.elapsed),this.msMax=this.game.math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=this.game.math.min(this.fpsMin,this.fps),this.fpsMax=this.game.math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)),this.time=this.now,this.lastTime=a+this.timeToCall,!this.game.paused)for(this.events.update(this.now),this._i=0,this._len=this._timers.length;this._i0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.now,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.now,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.now;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(b.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(b.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(b.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(b.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),b.Timer.prototype.constructor=b.Timer,b.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},b.TimerEvent.prototype.constructor=b.TimerEvent,b.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a,b){return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,this._frameData?!0:!1},add:function(a,c,d,e,f){return null===this._frameData?void console.warn("No FrameData available for Phaser.Animation "+a):(c=c||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=c&&"number"==typeof c[0]?!0:!1),null===this.sprite.events.onAnimationStart&&(this.sprite.events.onAnimationStart=new b.Signal,this.sprite.events.onAnimationComplete=new b.Signal,this.sprite.events.onAnimationLoop=new b.Signal),this._outputFrames.length=0,this._frameData.getFrameIndexes(c,f,this._outputFrames),this._anims[a]=new b.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a])},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},b.AnimationManager.prototype.constructor=b.AnimationManager,Object.defineProperty(b.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(b.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData?this._frameData.total:-1}}),Object.defineProperty(b.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(b.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(b.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,c,d,e,f,g,h){this.game=a,this._parent=c,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new b.Signal,this.onComplete=new b.Signal,this.onLoop=new b.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},b.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart.dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.now-this._timeNextFrame,this._timeLastFrame=this.game.time.now,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.now+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop.dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete.dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},b.Animation.prototype.constructor=b.Animation,Object.defineProperty(b.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.now:this.isPlaying&&(this._timeNextFrame=this.game.time.now+this.delay)}}),Object.defineProperty(b.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(b.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame))}}),Object.defineProperty(b.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),b.Animation.generateFrameNames=function(a,c,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>c)for(var i=c;d>=i;i++)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=c;i>=d;i--)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},b.Frame=function(a,c,d,e,f,g,h){this.index=a,this.x=c,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=b.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},getRect:function(a){return"undefined"==typeof a?a=new b.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},b.Frame.prototype.constructor=b.Frame,b.FrameData=function(){this._frames=[],this._frameNames=[]},b.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},getFrameRange:function(a,b,c){"undefined"==typeof c&&(c=[]);for(var d=a;b>=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},b.FrameData.prototype.constructor=b.FrameData,Object.defineProperty(b.FrameData.prototype,"total",{get:function(){return this._frames.length}}),b.AnimationParser={spriteSheet:function(a,c,d,e,f,g,h){var i=a.cache.getImage(c);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new b.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new b.Frame(r,p,q,d,e,"",s)),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,c){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var d,e=new b.FrameData,f=c.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o,p=new b.FrameData,q=c.getElementsByTagName("SubTexture"),r=0;r0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,c){if("undefined"==typeof c&&(c=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,c)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?(this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect)):(this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect))),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying===!0&&e===!1&&this.override===!1)return this;if(this.isPlaying&&this.override&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null==this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.now-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},b.Sound.prototype.constructor=b.Sound,Object.defineProperty(b.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(b.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(b.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(b.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),b.SoundManager=function(a){this.game=a,this.onSoundDecode=new b.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},b.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a>>0:(a<<24|c<<16|d<<8|e)>>>0},unpackPixel:function(a,c,d,e){return("undefined"==typeof c||null===c)&&(c=b.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),b.Device.LITTLE_ENDIAN?(c.a=(4278190080&a)>>>24,c.b=(16711680&a)>>>16,c.g=(65280&a)>>>8,c.r=255&a):(c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a),c.color=a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a/255+")",d&&b.Color.RGBtoHSL(c.r,c.g,c.b,c),e&&b.Color.RGBtoHSV(c.r,c.g,c.b,c),c},fromRGBA:function(a,c){return c||(c=b.Color.createColor()),c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a+")",c},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,1)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6}return e},HSLtoRGB:function(a,c,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=b.Color.createColor(d,d,d),0!==c){var f=.5>d?d*(1+c):d+c-d*c,g=2*d-f;e.r=b.Color.hueToColor(g,f,a+1/3),e.g=b.Color.hueToColor(g,f,a),e.b=b.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),b.Color.updateColor(e),e},RGBtoHSV:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,255)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6),e},HSVtoRGB:function(a,c,d,e){"undefined"==typeof e&&(e=b.Color.createColor(0,0,0,1,a,c,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-c),l=d*(1-j*c),m=d*(1-(1-j)*c);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),b.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,c,d,e,f,g,h){var i={r:a||0,g:b||0,b:c||0,a:d||1,h:e||0,s:f||0,l:g||0,v:h||0,color:0};return i.rgba="rgba("+i.r+","+i.g+","+i.b+","+i.a+")",i},updateColor:function(a){return a.rgba="rgba("+a.r+","+a.g+","+a.b+","+a.a+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,c,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(c<<8)+d).toString(16).slice(1):"0x"+b.Color.componentToHex(e)+b.Color.componentToHex(a)+b.Color.componentToHex(c)+b.Color.componentToHex(d)},hexToRGB:function(a){var c=b.Color.hexToColor(a);return c?b.Color.getColor32(c.a,c.r,c.g,c.b):void 0},hexToColor:function(a,c){c||(c=b.Color.createColor());var d=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;a=a.replace(d,function(a,b,c,d){return b+b+c+c+d+d});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return e&&(c.r=parseInt(e[1],16),c.g=parseInt(e[2],16),c.b=parseInt(e[3],16)),c},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,c){"undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSVtoRGB(e/359,a,c));return d},HSLColorWheel:function(a,c){"undefined"==typeof a&&(a=.5),"undefined"==typeof c&&(c=.5);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSLtoRGB(e/359,a,c));return d},interpolateColor:function(a,c,d,e,f){"undefined"==typeof f&&(f=255);var g=b.Color.getRGB(a),h=b.Color.getRGB(c),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return b.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,c,d,e,f,g){var h=b.Color.getRGB(a),i=(c-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return b.Color.getColor(i,j,k)},interpolateRGB:function(a,c,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-c)*i/h+c,l=(g-d)*i/h+d;return b.Color.getColor(j,k,l)},getRandomColor:function(a,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof c&&(c=255),"undefined"==typeof d&&(d=255),c>255||a>c)return b.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(c-a)),f=a+Math.round(Math.random()*(c-a)),g=a+Math.round(Math.random()*(c-a));return b.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var c=b.Color.getRGB(a);return"rgba("+c.r.toString()+","+c.g.toString()+","+c.b.toString()+","+(c.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},getColorInfo:function(a){var c=b.Color.getRGB(a),d=b.Color.RGBtoHexstring(a)+"\n";return d=d.concat("Alpha: "+c.alpha+" Red: "+c.red+" Green: "+c.green+" Blue: "+c.blue)+"\n"},RGBtoHexstring:function(a){var c=b.Color.getRGB(a);return"0x"+b.Color.colorToHexstring(c.alpha)+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},RGBtoWebstring:function(a){var c=b.Color.getRGB(a);return"#"+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},colorToHexstring:function(a){var b="0123456789ABCDEF",c=a%16,d=(a-c)/16,e=b.charAt(d)+b.charAt(c);return e}},b.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},b.Physics.ARCADE=0,b.Physics.P2JS=1,b.Physics.NINJA=2,b.Physics.BOX2D=3,b.Physics.CHIPMUNK=5,b.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!b.Physics.hasOwnProperty("Arcade")||(this.arcade=new b.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&b.Physics.hasOwnProperty("Ninja")&&(this.ninja=new b.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&b.Physics.hasOwnProperty("P2")&&(this.p2=new b.Physics.P2(this.game,this.config))},startSystem:function(a){if(a===b.Physics.ARCADE?this.arcade=new b.Physics.Arcade(this.game):a===b.Physics.P2JS&&(this.p2=new b.Physics.P2(this.game,this.config)),a===b.Physics.NINJA)this.ninja=new b.Physics.Ninja(this.game);else{if(a===b.Physics.BOX2D&&null===this.box2d)throw new Error("The Box2D physics system has not been implemented yet.");if(a===b.Physics.CHIPMUNK&&null===this.chipmunk)throw new Error("The Chipmunk physics system has not been implemented yet.")}},enable:function(a,c,d){"undefined"==typeof c&&(c=b.Physics.ARCADE),"undefined"==typeof d&&(d=!1),c===b.Physics.ARCADE?this.arcade.enable(a):c===b.Physics.P2JS&&this.p2?this.p2.enable(a,d):c===b.Physics.NINJA&&this.ninja&&this.ninja.enableAABB(a)},preUpdate:function(){this.p2&&this.p2.preUpdate()},update:function(){this.p2&&this.p2.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.arcade=null,this.ninja=null,this.p2=null}},b.Physics.prototype.constructor=b.Physics,b.Physics.Arcade=function(a){this.game=a,this.gravity=new b.Point,this.bounds=new b.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.quadTree=new b.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0},b.Physics.Arcade.prototype.constructor=b.Physics.Arcade,b.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,c){"undefined"==typeof c&&(c=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof b.Group?this.enable(a[d].children,c):(this.enableBody(a[d]),c&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof b.Group?this.enable(a.children,c):(this.enableBody(a),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new b.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,c,d,e,f,g){return"undefined"!=typeof c||a.type!==b.GROUP&&a.type!==b.EMITTER?void(a&&c&&a.exists&&c.exists&&(a.type==b.SPRITE||a.type==b.TILESPRITE?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsSprite(a,c,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideSpriteVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,c,d,e,f):a.type==b.GROUP?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f):a.type==b.TILEMAPLAYER?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsTilemapLayer(c,a,d,e,f):(c.type==b.GROUP||c.type==b.EMITTER)&&this.collideGroupVsTilemapLayer(c,a,d,e,f):a.type==b.EMITTER&&(c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:e?!0:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),0!==this._overlap)?(a.overlapX=this._overlap,b.overlapX=this._overlap,c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0)):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),0!==this._overlap)?(a.overlapY=this._overlap,b.overlapY=this._overlap,c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0)):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,c,d,e){if(0!==c.length&&a.exists){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(c);var f=new b.Rectangle(a.x,a.y,1,1),g=[];this._potentials=this.quadTree.retrieve(f);for(var h=0,i=this._potentials.length;i>h;h++)this._potentials[h].hitTest(a.x,a.y)&&(d&&d.call(e,a,this._potentials[h].sprite),g.push(this._potentials[h].sprite));return g}},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*c,Math.sin(this.game.math.degToRad(a))*c)},velocityFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerationFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},b.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=b.Physics.ARCADE,this.enable=!0,this.offset=new b.Point,this.position=new b.Point(a.x,a.y),this.prev=new b.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new b.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new b.Point,this.newVelocity=new b.Point(0,0),this.deltaMax=new b.Point(0,0),this.acceleration=new b.Point,this.drag=new b.Point,this.allowGravity=!0,this.gravity=new b.Point(0,0),this.bounce=new b.Point,this.maxVelocity=new b.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=b.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new b.Point,this.phase=0,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0 -},b.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=b.LEFT:this.deltaX()>0&&(this.facing=b.RIGHT),this.deltaY()<0?this.facing=b.UP:this.deltaY()>0&&(this.facing=b.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,c){return b.Rectangle.contains(this,a,c)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(b.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),b.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},b.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},b.Physics.Arcade.Body.prototype.constructor=b.Physics.Arcade.Body,b.Particles=function(a){this.game=a,this.emitters={},this.ID=0},b.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},b.Particles.prototype.constructor=b.Particles,b.Particles.Arcade={},b.Particles.Arcade.Emitter=function(a,c,d,e){this.maxParticles=e||50,b.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=b.EMITTER,this.area=new b.Rectangle(c,d,1,1),this.minParticleSpeed=new b.Point(-100,-100),this.maxParticleSpeed=new b.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=b.Particle,this.particleDrag=new b.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new b.Point,this.on=!1,this.particleAnchor=new b.Point(.5,.5),this.blendMode=b.blendModes.NORMAL,this.emitX=c,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new b.Point(1,1),this._maxParticleScale=new b.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},b.Particles.Arcade.Emitter.prototype=Object.create(b.Group.prototype),b.Particles.Arcade.Emitter.prototype.constructor=b.Particles.Arcade.Emitter,b.Particles.Arcade.Emitter.prototype.update=function(){if(this.on)if(this._explode){this._counter=0;do this.emitParticle(),this._counter++;while(this._counter=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},b.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},b.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},b.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},b.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},b.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a||e?this._quantity=d:this._quantity+=d,this._counter=0,this._timer=this.game.time.now+c},b.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},b.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},b.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},b.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},b.Particles.Arcade.Emitter.prototype.setAlpha=function(a,c,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=b.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=c,this.autoAlpha=!1,d>0&&a!==c){var g={v:a},h=this.game.make.tween(g).to({v:c},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},b.Particles.Arcade.Emitter.prototype.setScale=function(a,c,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=b.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(c,e),this.autoScale=!1,f>0&&a!==c||d!==e){var i={x:a,y:d},j=this.game.make.tween(i).to({x:c,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},b.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},b.Tile.prototype.constructor=b.Tile,Object.defineProperty(b.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(b.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),b.Tilemap=function(a,c,d,e,f,g){this.game=a,this.key=c;var h=b.TilemapParser.parse(this.game,c,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},b.Tilemap.CSV=0,b.Tilemap.TILED_JSON=1,b.Tilemap.NORTH=0,b.Tilemap.EAST=1,b.Tilemap.SOUTH=2,b.Tilemap.WEST=3,b.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,c,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof c){if("string"!=typeof a)return null;if(c=a,!this.game.cache.checkImageKey(c))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+c+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===b.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+c+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(c)),this.tilesets[a];var i=new b.Tileset(c,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(c)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===c){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createLayer:function(a,c,d,e){"undefined"==typeof c&&(c=this.game.width),"undefined"==typeof d&&(d=this.game.height),"undefined"==typeof e&&(e=this.game.world);var f=a;return"string"==typeof a&&(f=this.getLayerIndex(a)),null===f||f>this.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new b.TilemapLayer(this.game,this,f,c,d))},createBlankLayer:function(a,c,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:c,height:d,widthInPixels:c*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;c>l;l++)h.push(new b.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new b.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b=0&&a=0&&c=0&&c=0&&d-1?this.layers[e].data[d][c].setCollision(!0,!0,!0,!0):this.layers[e].data[d][c].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][c]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},b.Tilemap.prototype.constructor=b.Tilemap,Object.defineProperty(b.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),b.TilemapLayer=function(a,c,d,e,f){this.game=a,this.map=c,this.index=d,this.layer=c.layers[d],this.canvas=b.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),b.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=b.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new b.Point(0,0),this.tileColor="rgb(255, 255, 255)",this.debug=!1,this.debugAlpha=.5,this.debugColor="rgba(0, 255, 0, 1)",this.debugFill=!1,this.debugFillColor="rgba(0, 255, 0, 0.2)",this.debugCallbackColor="rgba(255, 0, 0, 1)",this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this.wrap=!1,this._mc={cw:c.tileWidth,ch:c.tileHeight,ga:1,dx:0,dy:0,dw:0,dh:0,tx:0,ty:0,tw:0,th:0,tl:0,maxX:0,maxY:0,startX:0,startY:0,x:0,y:0,prevX:0,prevY:0},this._results=[],this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Image.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Image.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},b.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},b.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._mc.x+(a-this._mc.x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._mc.x/this.scrollFactorX+(a-this._mc.x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._mc.y+(a-this._mc.y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._mc.y/this.scrollFactorY+(a-this._mc.y)},b.TilemapLayer.prototype.getTileX=function(a){return this.game.math.snapToFloor(this._fixX(a),this.map.tileWidth)/this.map.tileWidth -},b.TilemapLayer.prototype.getTileY=function(a){return this.game.math.snapToFloor(this._fixY(a),this.map.tileHeight)/this.map.tileHeight},b.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},b.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=f.length,h=[],i=0;ij;j++)if(e[i].containsPoint(f[j][0],f[j][1])){h.push(e[i]);break}return h},b.TilemapLayer.prototype.getTiles=function(a,b,c,d,e,f){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),a=this._fixX(a),b=this._fixY(b),c>this.layer.widthInPixels&&(c=this.layer.widthInPixels),d>this.layer.heightInPixels&&(d=this.layer.heightInPixels),this._mc.tx=this.game.math.snapToFloor(a,this._mc.cw)/this._mc.cw,this._mc.ty=this.game.math.snapToFloor(b,this._mc.ch)/this._mc.ch,this._mc.tw=(this.game.math.snapToCeil(c,this._mc.cw)+this._mc.cw)/this._mc.cw,this._mc.th=(this.game.math.snapToCeil(d,this._mc.ch)+this._mc.ch)/this._mc.ch,this._results.length=0;for(var g=this._mc.ty;gd;d++){if(this._column=null,0>d&&this.wrap?this._column=this.layer.data[d+this.map.height]:d>=this.map.height&&this.wrap?this._column=this.layer.data[d-this.map.height]:this.layer.data[d]&&(this._column=this.layer.data[d]),this._column)for(var f=this._mc.startX,g=this._mc.startX+this._mc.maxX;g>f;f++){var a=null;0>f&&this.wrap?a=this._column[f+this.map.width]:f>=this.map.width&&this.wrap?a=this._column[f-this.map.width]:this._column[f]&&(a=this._column[f]),a&&a.index>-1&&(c=this.map.tilesets[this.map.tiles[a.index][2]],this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.draw(this.context,Math.floor(this._mc.tx),Math.floor(this._mc.ty),a.index),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._mc.tx),Math.floor(this._mc.ty),this.map.tileWidth,this.map.tileHeight))),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}return this.debug&&(this.context.globalAlpha=1,this.renderDebug()),this.game.renderType===b.WEBGL&&PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1,this.layer.dirty=!1,!0}},b.TilemapLayer.prototype.renderDebug=function(){this._mc.tx=this._mc.dx,this._mc.ty=this._mc.dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._mc.startY,b=this._mc.startY+this._mc.maxY;b>a;a++){if(this._column=null,0>a&&this.wrap?this._column=this.layer.data[a+this.map.height]:a>=this.map.height&&this.wrap?this._column=this.layer.data[a-this.map.height]:this.layer.data[a]&&(this._column=this.layer.data[a]),this._column)for(var c=this._mc.startX,d=this._mc.startX+this._mc.maxX;d>c;c++){var e=null;0>c&&this.wrap?e=this._column[c+this.map.width]:c>=this.map.width&&this.wrap?e=this._column[c-this.map.width]:this._column[c]&&(e=this._column[c]),e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._mc.tx=Math.floor(this._mc.tx),this.debugFill&&this.context.fillRect(this._mc.tx,this._mc.ty,this._mc.cw,this._mc.ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty)),e.faceBottom&&(this.context.moveTo(this._mc.tx,this._mc.ty+this._mc.ch),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),e.faceLeft&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx,this._mc.ty+this._mc.ch)),e.faceRight&&(this.context.moveTo(this._mc.tx+this._mc.cw,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),this.context.stroke()),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._mc.x},set:function(a){a!==this._mc.x&&(this._mc.x=a,this._mc.startX=this.game.math.floor(this._mc.x/this.map.tileWidth),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._mc.y},set:function(a){a!==this._mc.y&&(this._mc.y=a,this._mc.startY=this.game.math.floor(this._mc.y/this.map.tileHeight),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=a,this.dirty=!0}}),b.TilemapParser={parse:function(a,c,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof c)return this.getEmptyData();if(null===c)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(c);if(h){if(h.format===b.Tilemap.CSV)return this.parseCSV(c,h.data,d,e);if(!h.format||h.format===b.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+c)},parseCSV:function(a,c,d,e){var f=this.getEmptyData();c=c.trim();for(var g=[],h=c.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new b.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new b.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=b,this.tileWidth=c,this.tileHeight=d,this.tileMargin=e,this.tileSpacing=f,this.properties=g,this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},b.Tileset.prototype={draw:function(a,b,c,d){this.image&&this.drawCoords[d]&&a.drawImage(this.image,this.drawCoords[d][0],this.drawCoords[d][1],this.tileWidth,this.tileHeight,b,c,this.tileWidth,this.tileHeight)},setImage:function(a){this.image=a,this.rows=Math.round((a.height-this.tileMargin)/(this.tileHeight+this.tileSpacing)),this.columns=Math.round((a.width-this.tileMargin)/(this.tileWidth+this.tileSpacing)),this.total=this.rows*this.columns,this.drawCoords.length=0;for(var b=this.tileMargin,c=this.tileMargin,d=this.firstgid,e=0;ea;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=a.x+(this.sprite.x-b.centerX),this.sprite.y=a.y+(this.sprite.y-b.centerY),this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y)}else this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y);this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},b.InputHandler.prototype.constructor=b.InputHandler,b.Events=function(a){this.parent=a,this.onAddedToGroup=new b.Signal,this.onRemovedFromGroup=new b.Signal,this.onKilled=new b.Signal,this.onRevived=new b.Signal,this.onOutOfBounds=new b.Signal,this.onEnterBounds=new b.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},b.Events.prototype={destroy:function(){this.parent=null,this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},b.Events.prototype.constructor=b.Events,b.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},b.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,c,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new b.Image(this.game,a,c,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,c,d,e,f){return new b.Group(this.game,a,c,d,e,f)},physicsGroup:function(a,c,d,e){return new b.Group(this.game,c,d,e,!0,a)},spriteBatch:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.SpriteBatch(this.game,a,c,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,c,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new b.TileSprite(this.game,a,c,d,e,f,g))},text:function(a,c,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new b.Text(this.game,a,c,d,e))},button:function(a,c,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new b.Button(this.game,a,c,d,e,f,g,h,i,j))},graphics:function(a,c,d){return"undefined"==typeof d&&(d=this.world),d.add(new b.Graphics(this.game,a,c))},emitter:function(a,c,d){return this.game.particles.add(new b.Particles.Arcade.Emitter(this.game,a,c,d))},retroFont:function(a,c,d,e,f,g,h,i,j){return new b.RetroFont(this.game,a,c,d,e,f,g,h,i,j)},bitmapText:function(a,c,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new b.BitmapText(this.game,a,c,d,e,f))},tilemap:function(a,c,d,e,f){return new b.Tilemap(this.game,a,c,d,e,f)},renderTexture:function(a,c,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new b.RenderTexture(this.game,a,c,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,c,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new b.BitmapData(this.game,d,a,c);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var c=Array.prototype.splice.call(arguments,1),a=new b.Filter[a](this.game);return a.init.apply(a,c),a},plugin:function(a){return this.game.plugins.add(a)}},b.GameObjectFactory.prototype.constructor=b.GameObjectFactory,b.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},b.GameObjectCreator.prototype={image:function(a,c,d,e){return new b.Image(this.game,a,c,d,e)},sprite:function(a,c,d,e){return new b.Sprite(this.game,a,c,d,e)},tween:function(a){return new b.Tween(a,this.game)},group:function(a,c,d,e,f){return new b.Group(this.game,null,c,d,e,f)},spriteBatch:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.SpriteBatch(this.game,a,c,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,c,d,e,f,g){return new b.TileSprite(this.game,a,c,d,e,f,g)},text:function(a,c,d,e){return new b.Text(this.game,a,c,d,e)},button:function(a,c,d,e,f,g,h,i,j){return new b.Button(this.game,a,c,d,e,f,g,h,i,j)},graphics:function(a,c){return new b.Graphics(this.game,a,c)},emitter:function(a,c,d){return new b.Particles.Arcade.Emitter(this.game,a,c,d)},retroFont:function(a,c,d,e,f,g,h,i,j){return new b.RetroFont(this.game,a,c,d,e,f,g,h,i,j)},bitmapText:function(a,c,d,e,f){return new b.BitmapText(this.game,a,c,d,e,f)},tilemap:function(a,c,d,e,f){return new b.Tilemap(this.game,a,c,d,e,f)},renderTexture:function(a,c,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new b.RenderTexture(this.game,a,c,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,c,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new b.BitmapData(this.game,d,a,c);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var c=Array.prototype.splice.call(arguments,1),a=new b.Filter[a](this.game);return a.init.apply(a,c),a}},b.GameObjectCreator.prototype.constructor=b.GameObjectCreator,b.BitmapData=function(a,c,d,e){"undefined"==typeof d&&(d=100),"undefined"==typeof e&&(e=100),this.game=a,this.key=c,this.width=d,this.height=e,this.canvas=b.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=b.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this.update=this.refreshBuffer,this._tempR=0,this._tempG=0,this._tempB=0},b.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)b.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(c,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},replaceRGB:function(a,c,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=b.Color.packPixel(a,c,d,e);void 0!==j&&j instanceof b.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);this.context.putImageData(this.imageData,0,0),this.dirty=!0},setHSL:function(a,c,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof c||null===c)&&(c=!1),("undefined"==typeof d||null===d)&&(d=!1),a||c||d){"undefined"==typeof e&&(e=new b.Rectangle(0,0,this.width,this.height));for(var f=b.Color.createColor(),g=e.y;g=0&&a<=this.width&&c>=0&&c<=this.height&&(this.pixels[c*this.width+a]=b.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0))},setPixel:function(a,b,c,d,e,f){this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,c,d){d||(d=b.Color.createColor());var e=~~(a+c*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,c,d,e,f){return b.Color.unpackPixel(this.getPixel32(a,c),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},addToWorld:function(a,b){return this.game.add.image(a,b,this)},copyPixels:function(a,c,d,e){"string"==typeof a&&(a=this.game.cache.getImage(a));var f=a,g=0,h=0;if(a instanceof b.Image||a instanceof b.Sprite){f=a.texture.baseTexture.source;var i=a.texture.frame;g=i.x,h=i.y}else a instanceof b.BitmapData&&(f=a.canvas);this.context.drawImage(f,g+c.x,h+c.y,c.width,c.height,d,e,c.width,c.height),this.dirty=!0},draw:function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"string"==typeof a&&(a=this.game.cache.getImage(a));var g=a,h=0,i=0,j=0,k=0;if(a instanceof b.Image||a instanceof b.Sprite){g=a.texture.baseTexture.source;var l=a.texture.frame;h=l.x,i=l.y,j=l.width,k=l.height}else a instanceof b.BitmapData&&(g=a.canvas),j=a.width,k=a.height;"undefined"==typeof e&&(e=j),"undefined"==typeof f&&(f=k),this.context.drawImage(g,h,i,j,k,c,d,e,f),this.dirty=!0},drawSprite:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),this.draw(a,b,c)},alphaMask:function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this);var e=this.context.globalCompositeOperation;"undefined"==typeof d||null===d?this.draw(b):this.draw(b,d.x,d.y,d.width,d.height),this.context.globalCompositeOperation="source-atop","undefined"==typeof c||null===c?this.draw(a):this.draw(a,c.x,c.y,c.width,c.height),this.context.globalCompositeOperation=e,this.update(),this.dirty=!0},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d)},circle:function(a,b,c,d){"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill()},render:function(){!this.disableTextureUpload&&this.game.renderType===b.WEBGL&&this.dirty&&(PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1)}},b.BitmapData.prototype.constructor=b.BitmapData,b.Sprite=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=b.SPRITE,this.z=0,this.events=new b.Events(this),this.animations=new b.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new b.Rectangle,this.loadTexture(e,f)},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Sprite.prototype.update=function(){},b.Sprite.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Sprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a;var d=!0;a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),c))):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),d&&(this._frame=b.Rectangle.clone(this.texture.frame))},b.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.cropRect?this.updateCrop():this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},b.Sprite.prototype.crop=function(a,c){"undefined"==typeof c&&(c=!1),a?(c&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=c&&null===this.cropRect?new b.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},b.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=b.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),c=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-c;this.texture.crop.x=a,this.texture.crop.y=c,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)}},b.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},b.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},b.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},b.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},b.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},b.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},b.Sprite.prototype.overlap=function(a){return b.Rectangle.intersects(this.getBounds(),a.getBounds())},Object.defineProperty(b.Sprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(b.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(b.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(b.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(b.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(b.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Image=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=b.IMAGE,this.z=0,this.events=new b.Events(this),this.key=e,this._frame=0,this._frameName="",PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.loadTexture(e,f),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.cameraOffset=new b.Point,this._cache=[0,0,0,0,1,0,1,0,0]},b.Image.prototype=Object.create(PIXI.Sprite.prototype),b.Image.prototype.constructor=b.Image,b.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Image.prototype.update=function(){},b.Image.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Image.prototype.loadTexture=function(a,c){if(c=c||0,a instanceof b.RenderTexture)return this.key=a.key,void this.setTexture(a);if(a instanceof b.BitmapData)return this.key=a,void this.setTexture(a.texture);if(a instanceof PIXI.Texture)return this.key=a,void this.setTexture(a);if(null===a||"undefined"==typeof a)return this.key="__default",void this.setTexture(PIXI.TextureCache[this.key]);if("string"==typeof a&&!this.game.cache.checkImageKey(a))return this.key="__missing",void this.setTexture(PIXI.TextureCache[this.key]);if(this.game.cache.isSpriteSheet(a)){this.key=a;var d=this.game.cache.getFrameData(a);return"string"==typeof c?(this._frame=0,this._frameName=c,void this.setTexture(PIXI.TextureCache[d.getFrameByName(c).uuid])):(this._frame=c,this._frameName="",void this.setTexture(PIXI.TextureCache[d.getFrame(c).uuid]))}return this.key=a,void this.setTexture(PIXI.TextureCache[a])},b.Image.prototype.crop=function(a){if("undefined"==typeof a||null===a)this.texture.hasOwnProperty("sourceWidth")&&this.texture.setFrame(new b.Rectangle(0,0,this.texture.sourceWidth,this.texture.sourceHeight));else if(this.texture instanceof PIXI.Texture){var c={};b.Utils.extend(!0,c,this.texture),c.sourceWidth=c.width,c.sourceHeight=c.height,c.frame=a,c.width=a.width,c.height=a.height,this.texture=c,this.texture.updateFrame=!0,PIXI.Texture.frameUpdates.push(this.texture)}else this.texture.setFrame(a)},b.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},b.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},b.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this +},b.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},Object.defineProperty(b.Image.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame&&this.game.cache.isSpriteSheet(this.key)){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},b.TileSprite.prototype.update=function(){},b.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},b.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},b.TileSprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a,a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),c)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},b.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.filters&&(this.filters=null),this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},b.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(b.TileSprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(b.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(b.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(b.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Text=function(a,c,d,e,f){c=c||0,d=d||0,e=e||" ",f=f||{},e=0===e.length?" ":e.toString(),this.game=a,this.exists=!0,this.name="",this.type=b.TEXT,this.z=0,this.world=new b.Point(c,d),this._text=e,this._font="",this._fontSize=32,this._fontWeight="normal",this._lineSpacing=0,this.events=new b.Events(this),this.input=null,this.cameraOffset=new b.Point,this.setStyle(f),PIXI.Text.call(this,e,this.style),this.position.set(c,d),this._cache=[0,0,0,0,1,0,1,0,0]},b.Text.prototype=Object.create(PIXI.Text.prototype),b.Text.prototype.constructor=b.Text,b.Text.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Text.prototype.update=function(){},b.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0},b.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},b.Text.prototype.updateText=function(){this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=0;ee?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},b.Graphics.prototype.drawTriangles=function(a,c,d){"undefined"==typeof d&&(d=!1);var e,f=new b.Point,g=new b.Point,h=new b.Point,i=[];if(c)if(a[0]instanceof b.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},b.RetroFont.prototype.buildRetroFontText=function(){var a=0,c=0; +if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,c,this.customSpacingX),c+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case b.RetroFont.ALIGN_LEFT:a=0;break;case b.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},b.RetroFont.prototype.pasteLine=function(a,c,d,e){for(var f=new b.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(c,d),this.render(this.stamp,f,!1),c+=this.characterWidth+e,c>this.width))break},b.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},b.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},b.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(b.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(b.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),b.Particle=function(a,c,d,e,f){b.Sprite.call(this,a,c,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},b.Particle.prototype=Object.create(b.Sprite.prototype),b.Particle.prototype.constructor=b.Particle,b.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},b.Particle.prototype.onEmit=function(){},b.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},b.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},b.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},b.Canvas={create:function(a,b,c,d){"undefined"==typeof d&&(d=!1),a=a||256,b=b||256;var e=document.createElement("canvas");return"string"==typeof c&&""!==c&&(e.id=c),e.width=a,e.height=b,e.style.display="block",e},getOffset:function(a,c){c=c||new b.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),c.x=d.left+h-f,c.y=d.top+g-e,c},getAspectRatio:function(a){return a.width/a.height},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},b.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.touch=!1,this.mspointer=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures()},b.Device.LITTLE_ENDIAN=!1,b.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},b.Device.prototype.constructor=b.Device,b.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=[],b=0;b0?Math.floor(a):Math.ceil(a)},shear:function(a){return a%1},snapTo:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},snapToInArray:function(a,b,c){if("undefined"==typeof c&&(c=!0),c&&b.sort(),a=f-a?f:e},roundTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},interpolateFloat:function(a,b,c){return(b-a)*c+a},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},normalizeLatitude:function(a){return Math.max(-90,Math.min(90,a))},normalizeLongitude:function(a){return a%360==180?180:(a%=360,-180>a?a+360:a>180?a-360:a)},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),0>=a?!1:a>=100?!0:100*Math.random()>=a?!1:!0},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},maxAdd:function(a,b,c){return a+=b,a>c&&(a=c),a},minSub:function(a,b,c){return a-=b,c>a&&(a=c),a},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,c){return b>a?b:a>c?c:a},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){var c=b?Math.PI/180:1;return this.wrap(a,-180*c,180*c)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0)return a[b+Math.floor(Math.random()*d)]}return null},removeRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0){var e=b+Math.floor(Math.random()*d),f=a.splice(e,1);return f[0]}}return null},floor:function(a){var b=0|a;return a>0?b:b!=a?b-1:b},ceil:function(a){var b=0|a;return a>0&&b!=a?b+1:b},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){for(var b=a.length-1;b>0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,c,d,e){return Math.round(b.Math.distance(a,c,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b},degToRad:function(){var a=Math.PI/180;return function(b){return b*a}}(),radToDeg:function(){var a=180/Math.PI;return function(b){return b*a}}()},b.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},b.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},b.RandomDataGenerator.prototype.constructor=b.RandomDataGenerator,b.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},b.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.level++,this.nodes[0]=new b.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[1]=new b.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[2]=new b.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[3]=new b.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof b.Rectangle)var c=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var c=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?c=c.concat(this.nodes[d].retrieve(a)):(c=c.concat(this.nodes[0].retrieve(a)),c=c.concat(this.nodes[1].retrieve(a)),c=c.concat(this.nodes[2].retrieve(a)),c=c.concat(this.nodes[3].retrieve(a)))),c},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},b.QuadTree.prototype.constructor=b.QuadTree,b.Net=function(a){this.game=a},b.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},b.Net.prototype.constructor=b.Net,b.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},b.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;aa;)this._tweens[a].update(this.game.time.now)?a++:(this._tweens.splice(a,1),b--);return this._add.length>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},b.TweenManager.prototype.constructor=b.TweenManager,b.Tween=function(a,c,d){this._object=a,this.game=c,this._manager=d,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=b.Easing.Linear.None,this._interpolationFunction=b.Math.linearInterpolation,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._paused=!1,this._pausedTime=0,this._codePaused=!1,this.pendingDelete=!1,this.onStart=new b.Signal,this.onLoop=new b.Signal,this.onComplete=new b.Signal,this.isRunning=!1},b.Tween.prototype={to:function(a,b,c,d,e,f,g){b=b||1e3,c=c||null,d=d||!1,e=e||0,f=f||0,g=g||!1,g&&0===f&&(f=1);var h;return this._parent?(h=this._manager.create(this._object),this._lastChild.chain(h),this._lastChild=h):(h=this,this._parent=this,this._lastChild=this),h._repeat=f,h._duration=b,h._valuesEnd=a,null!==c&&(h._easingFunction=c),e>0&&(h._delayTime=e),h._yoyo=g,d?this.start():this},from:function(a,b,c,d,e,f,g){var h={};for(var i in a)h[i]=this._object[i],this._object[i]=a[i];return this.to(h,b,c,d,e,f,g)},start:function(){if(null!==this.game&&null!==this._object){this._manager.add(this),this.isRunning=!0,this._onStartCallbackFired=!1,this._startTime=this.game.time.now+this._delayTime;for(var a in this._valuesEnd){if(Array.isArray(this._valuesEnd[a])){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],Array.isArray(this._valuesStart[a])||(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},generateData:function(a,b){if(null===this.game||null===this._object)return null;this._startTime=0;for(var c in this._valuesEnd){if(Array.isArray(this._valuesEnd[c])){if(0===this._valuesEnd[c].length)continue;this._valuesEnd[c]=[this._object[c]].concat(this._valuesEnd[c])}this._valuesStart[c]=this._object[c],Array.isArray(this._valuesStart[c])||(this._valuesStart[c]*=1),this._valuesStartRepeat[c]=this._valuesStart[c]||0}for(var d=0,e=Math.floor(a*(this._duration/1e3)),f=this._duration/e,g=[];e--;){var c,h=(d-this._startTime)/this._duration;h=h>1?1:h;var i=this._easingFunction(h),j={};for(c in this._valuesEnd){var k=this._valuesStart[c]||0,l=this._valuesEnd[c];l instanceof Array?j[c]=this._interpolationFunction(l,i):("string"==typeof l&&(l=k+parseFloat(l,10)),"number"==typeof l&&(j[c]=k+(l-k)*i))}g.push(j),d+=f}if(this._yoyo){var m=g.slice();m.reverse(),g=g.concat(m)}return"undefined"!=typeof b?b=b.concat(g):g},stop:function(){return this.isRunning=!1,this._onUpdateCallback=null,this._manager.remove(this),this},delay:function(a){return this._delayTime=a,this},repeat:function(a){return this._repeat=a,this},yoyo:function(a){return this._yoyo=a,a&&0===this._repeat&&(this._repeat=1),this},easing:function(a){return this._easingFunction=a,this},interpolation:function(a){return this._interpolationFunction=a,this},chain:function(){return this._chainedTweens=arguments,this},loop:function(){return this._lastChild.chain(this),this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this._codePaused=!0,this._paused=!0,this._pausedTime=this.game.time.now},_pause:function(){this._codePaused||(this._paused=!0,this._pausedTime=this.game.time.now)},resume:function(){this._paused&&(this._paused=!1,this._codePaused=!1,this._startTime+=this.game.time.now-this._pausedTime)},_resume:function(){this._codePaused||(this._startTime+=this.game.time.pauseDuration,this._paused=!1)},update:function(a){if(this.pendingDelete)return!1;if(this._paused||a1?1:c;var d=this._easingFunction(c);for(b in this._valuesEnd){var e=this._valuesStart[b]||0,f=this._valuesEnd[b];f instanceof Array?this._object[b]=this._interpolationFunction(f,d):("string"==typeof f&&(f=e+parseFloat(f,10)),"number"==typeof f&&(this._object[b]=e+(f-e)*d))}if(null!==this._onUpdateCallback&&(this._onUpdateCallback.call(this._onUpdateCallbackContext,this,d),!this.isRunning))return!1;if(1==c){if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(b in this._valuesStartRepeat){if("string"==typeof this._valuesEnd[b]&&(this._valuesStartRepeat[b]=this._valuesStartRepeat[b]+parseFloat(this._valuesEnd[b],10)),this._yoyo){var g=this._valuesStartRepeat[b]; +this._valuesStartRepeat[b]=this._valuesEnd[b],this._valuesEnd[b]=g}this._valuesStart[b]=this._valuesStartRepeat[b]}return this._yoyo&&(this._reversed=!this._reversed),this._startTime=a+this._delayTime,this.onLoop.dispatch(this._object),!0}this.isRunning=!1,this.onComplete.dispatch(this._object);for(var h=0,i=this._chainedTweens.length;i>h;h++)this._chainedTweens[h].start(a);return!1}return!0}},b.Tween.prototype.constructor=b.Tween,b.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-b.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*b.Easing.Bounce.In(2*a):.5*b.Easing.Bounce.Out(2*a-1)+.5}}},b.Time=function(a){this.game=a,this.time=0,this.now=0,this.elapsed=0,this.pausedTime=0,this.advancedTiming=!1,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.physicsElapsed=0,this.deltaCap=0,this.timeCap=1e3,this.frames=0,this.pauseDuration=0,this.timeToCall=0,this.lastTime=0,this.events=new b.Timer(this.game,!1),this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[],this._len=0,this._i=0},b.Time.prototype={boot:function(){this._started=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var c=new b.Timer(this.game,a);return this._timers.push(c),c},removeAll:function(){for(var a=0;athis.timeCap&&(this.elapsed=1/60),this.physicsElapsed=this.elapsed/1e3||1/60,this.deltaCap>0&&this.physicsElapsed>this.deltaCap&&(this.physicsElapsed=this.deltaCap),this.advancedTiming&&(this.msMin=this.game.math.min(this.msMin,this.elapsed),this.msMax=this.game.math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=this.game.math.min(this.fpsMin,this.fps),this.fpsMax=this.game.math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)),this.time=this.now,this.lastTime=a+this.timeToCall,!this.game.paused)for(this.events.update(this.now),this._i=0,this._len=this._timers.length;this._i0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.now,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.now,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.now;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(b.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(b.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(b.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(b.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),b.Timer.prototype.constructor=b.Timer,b.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},b.TimerEvent.prototype.constructor=b.TimerEvent,b.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a,b){return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,this._frameData?!0:!1},add:function(a,c,d,e,f){return null===this._frameData?void console.warn("No FrameData available for Phaser.Animation "+a):(c=c||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=c&&"number"==typeof c[0]?!0:!1),null===this.sprite.events.onAnimationStart&&(this.sprite.events.onAnimationStart=new b.Signal,this.sprite.events.onAnimationComplete=new b.Signal,this.sprite.events.onAnimationLoop=new b.Signal),this._outputFrames.length=0,this._frameData.getFrameIndexes(c,f,this._outputFrames),this._anims[a]=new b.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a])},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},b.AnimationManager.prototype.constructor=b.AnimationManager,Object.defineProperty(b.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(b.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData?this._frameData.total:-1}}),Object.defineProperty(b.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(b.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(b.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,c,d,e,f,g,h){this.game=a,this._parent=c,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new b.Signal,this.onComplete=new b.Signal,this.onLoop=new b.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},b.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart.dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.now-this._timeNextFrame,this._timeLastFrame=this.game.time.now,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.now+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop.dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete.dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},b.Animation.prototype.constructor=b.Animation,Object.defineProperty(b.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.now:this.isPlaying&&(this._timeNextFrame=this.game.time.now+this.delay)}}),Object.defineProperty(b.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(b.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame))}}),Object.defineProperty(b.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),b.Animation.generateFrameNames=function(a,c,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>c)for(var i=c;d>=i;i++)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=c;i>=d;i--)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},b.Frame=function(a,c,d,e,f,g,h){this.index=a,this.x=c,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=b.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},getRect:function(a){return"undefined"==typeof a?a=new b.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},b.Frame.prototype.constructor=b.Frame,b.FrameData=function(){this._frames=[],this._frameNames=[]},b.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},getFrameRange:function(a,b,c){"undefined"==typeof c&&(c=[]);for(var d=a;b>=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},b.FrameData.prototype.constructor=b.FrameData,Object.defineProperty(b.FrameData.prototype,"total",{get:function(){return this._frames.length}}),b.AnimationParser={spriteSheet:function(a,c,d,e,f,g,h){var i=a.cache.getImage(c);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new b.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new b.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[c],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,c){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var d,e=new b.FrameData,f=c.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o,p=new b.FrameData,q=c.getElementsByTagName("SubTexture"),r=0;r0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,c){if("undefined"==typeof c&&(c=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,c)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?(this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect)):(this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect))),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying===!0&&e===!1&&this.override===!1)return this;if(this.isPlaying&&this.override&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null==this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.now-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},b.Sound.prototype.constructor=b.Sound,Object.defineProperty(b.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(b.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(b.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(b.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),b.SoundManager=function(a){this.game=a,this.onSoundDecode=new b.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},b.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a>>0:(a<<24|c<<16|d<<8|e)>>>0},unpackPixel:function(a,c,d,e){return("undefined"==typeof c||null===c)&&(c=b.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),b.Device.LITTLE_ENDIAN?(c.a=(4278190080&a)>>>24,c.b=(16711680&a)>>>16,c.g=(65280&a)>>>8,c.r=255&a):(c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a),c.color=a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a/255+")",d&&b.Color.RGBtoHSL(c.r,c.g,c.b,c),e&&b.Color.RGBtoHSV(c.r,c.g,c.b,c),c},fromRGBA:function(a,c){return c||(c=b.Color.createColor()),c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a+")",c},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,1)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6}return e},HSLtoRGB:function(a,c,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=b.Color.createColor(d,d,d),0!==c){var f=.5>d?d*(1+c):d+c-d*c,g=2*d-f;e.r=b.Color.hueToColor(g,f,a+1/3),e.g=b.Color.hueToColor(g,f,a),e.b=b.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),b.Color.updateColor(e),e},RGBtoHSV:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,255)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6),e},HSVtoRGB:function(a,c,d,e){"undefined"==typeof e&&(e=b.Color.createColor(0,0,0,1,a,c,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-c),l=d*(1-j*c),m=d*(1-(1-j)*c);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),b.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,c,d,e,f,g,h){var i={r:a||0,g:b||0,b:c||0,a:d||1,h:e||0,s:f||0,l:g||0,v:h||0,color:0};return i.rgba="rgba("+i.r+","+i.g+","+i.b+","+i.a+")",i},updateColor:function(a){return a.rgba="rgba("+a.r+","+a.g+","+a.b+","+a.a+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,c,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(c<<8)+d).toString(16).slice(1):"0x"+b.Color.componentToHex(e)+b.Color.componentToHex(a)+b.Color.componentToHex(c)+b.Color.componentToHex(d)},hexToRGB:function(a){var c=b.Color.hexToColor(a);return c?b.Color.getColor32(c.a,c.r,c.g,c.b):void 0},hexToColor:function(a,c){c||(c=b.Color.createColor());var d=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;a=a.replace(d,function(a,b,c,d){return b+b+c+c+d+d});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return e&&(c.r=parseInt(e[1],16),c.g=parseInt(e[2],16),c.b=parseInt(e[3],16)),c},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,c){"undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSVtoRGB(e/359,a,c));return d},HSLColorWheel:function(a,c){"undefined"==typeof a&&(a=.5),"undefined"==typeof c&&(c=.5);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSLtoRGB(e/359,a,c));return d},interpolateColor:function(a,c,d,e,f){"undefined"==typeof f&&(f=255);var g=b.Color.getRGB(a),h=b.Color.getRGB(c),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return b.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,c,d,e,f,g){var h=b.Color.getRGB(a),i=(c-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return b.Color.getColor(i,j,k)},interpolateRGB:function(a,c,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-c)*i/h+c,l=(g-d)*i/h+d;return b.Color.getColor(j,k,l)},getRandomColor:function(a,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof c&&(c=255),"undefined"==typeof d&&(d=255),c>255||a>c)return b.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(c-a)),f=a+Math.round(Math.random()*(c-a)),g=a+Math.round(Math.random()*(c-a));return b.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var c=b.Color.getRGB(a);return"rgba("+c.r.toString()+","+c.g.toString()+","+c.b.toString()+","+(c.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},getColorInfo:function(a){var c=b.Color.getRGB(a),d=b.Color.RGBtoHexstring(a)+"\n";return d=d.concat("Alpha: "+c.alpha+" Red: "+c.red+" Green: "+c.green+" Blue: "+c.blue)+"\n"},RGBtoHexstring:function(a){var c=b.Color.getRGB(a);return"0x"+b.Color.colorToHexstring(c.alpha)+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},RGBtoWebstring:function(a){var c=b.Color.getRGB(a);return"#"+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},colorToHexstring:function(a){var b="0123456789ABCDEF",c=a%16,d=(a-c)/16,e=b.charAt(d)+b.charAt(c);return e}},b.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},b.Physics.ARCADE=0,b.Physics.P2JS=1,b.Physics.NINJA=2,b.Physics.BOX2D=3,b.Physics.CHIPMUNK=5,b.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!b.Physics.hasOwnProperty("Arcade")||(this.arcade=new b.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&b.Physics.hasOwnProperty("Ninja")&&(this.ninja=new b.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&b.Physics.hasOwnProperty("P2")&&(this.p2=new b.Physics.P2(this.game,this.config))},startSystem:function(a){if(a===b.Physics.ARCADE?this.arcade=new b.Physics.Arcade(this.game):a===b.Physics.P2JS&&(this.p2=new b.Physics.P2(this.game,this.config)),a===b.Physics.NINJA)this.ninja=new b.Physics.Ninja(this.game);else{if(a===b.Physics.BOX2D&&null===this.box2d)throw new Error("The Box2D physics system has not been implemented yet.");if(a===b.Physics.CHIPMUNK&&null===this.chipmunk)throw new Error("The Chipmunk physics system has not been implemented yet.")}},enable:function(a,c,d){"undefined"==typeof c&&(c=b.Physics.ARCADE),"undefined"==typeof d&&(d=!1),c===b.Physics.ARCADE?this.arcade.enable(a):c===b.Physics.P2JS&&this.p2?this.p2.enable(a,d):c===b.Physics.NINJA&&this.ninja&&this.ninja.enableAABB(a)},preUpdate:function(){this.p2&&this.p2.preUpdate()},update:function(){this.p2&&this.p2.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.arcade=null,this.ninja=null,this.p2=null}},b.Physics.prototype.constructor=b.Physics,b.Physics.Arcade=function(a){this.game=a,this.gravity=new b.Point,this.bounds=new b.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.quadTree=new b.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0},b.Physics.Arcade.prototype.constructor=b.Physics.Arcade,b.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,c){"undefined"==typeof c&&(c=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof b.Group?this.enable(a[d].children,c):(this.enableBody(a[d]),c&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof b.Group?this.enable(a.children,c):(this.enableBody(a),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new b.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,c,d,e,f,g){return"undefined"!=typeof c||a.type!==b.GROUP&&a.type!==b.EMITTER?void(a&&c&&a.exists&&c.exists&&(a.type==b.SPRITE||a.type==b.TILESPRITE?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsSprite(a,c,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideSpriteVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,c,d,e,f):a.type==b.GROUP?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f):a.type==b.TILEMAPLAYER?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsTilemapLayer(c,a,d,e,f):(c.type==b.GROUP||c.type==b.EMITTER)&&this.collideGroupVsTilemapLayer(c,a,d,e,f):a.type==b.EMITTER&&(c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:e?!0:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),0!==this._overlap)?(a.overlapX=this._overlap,b.overlapX=this._overlap,c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0)):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),0!==this._overlap)?(a.overlapY=this._overlap,b.overlapY=this._overlap,c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0)):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,c,d,e){if(0!==c.length&&a.exists){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(c);var f=new b.Rectangle(a.x,a.y,1,1),g=[];this._potentials=this.quadTree.retrieve(f);for(var h=0,i=this._potentials.length;i>h;h++)this._potentials[h].hitTest(a.x,a.y)&&(d&&d.call(e,a,this._potentials[h].sprite),g.push(this._potentials[h].sprite));return g}},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*c,Math.sin(this.game.math.degToRad(a))*c)},velocityFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerationFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle +},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},b.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=b.Physics.ARCADE,this.enable=!0,this.offset=new b.Point,this.position=new b.Point(a.x,a.y),this.prev=new b.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new b.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new b.Point,this.newVelocity=new b.Point(0,0),this.deltaMax=new b.Point(0,0),this.acceleration=new b.Point,this.drag=new b.Point,this.allowGravity=!0,this.gravity=new b.Point(0,0),this.bounce=new b.Point,this.maxVelocity=new b.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=b.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new b.Point,this.phase=0,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},b.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=b.LEFT:this.deltaX()>0&&(this.facing=b.RIGHT),this.deltaY()<0?this.facing=b.UP:this.deltaY()>0&&(this.facing=b.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,c){return b.Rectangle.contains(this,a,c)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(b.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),b.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},b.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},b.Physics.Arcade.Body.prototype.constructor=b.Physics.Arcade.Body,b.Particles=function(a){this.game=a,this.emitters={},this.ID=0},b.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},b.Particles.prototype.constructor=b.Particles,b.Particles.Arcade={},b.Particles.Arcade.Emitter=function(a,c,d,e){this.maxParticles=e||50,b.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=b.EMITTER,this.area=new b.Rectangle(c,d,1,1),this.minParticleSpeed=new b.Point(-100,-100),this.maxParticleSpeed=new b.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=b.Particle,this.particleDrag=new b.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new b.Point,this.on=!1,this.particleAnchor=new b.Point(.5,.5),this.blendMode=b.blendModes.NORMAL,this.emitX=c,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new b.Point(1,1),this._maxParticleScale=new b.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},b.Particles.Arcade.Emitter.prototype=Object.create(b.Group.prototype),b.Particles.Arcade.Emitter.prototype.constructor=b.Particles.Arcade.Emitter,b.Particles.Arcade.Emitter.prototype.update=function(){if(this.on)if(this._explode){this._counter=0;do this.emitParticle(),this._counter++;while(this._counter=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},b.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},b.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},b.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},b.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},b.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a||e?this._quantity=d:this._quantity+=d,this._counter=0,this._timer=this.game.time.now+c},b.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},b.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},b.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},b.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},b.Particles.Arcade.Emitter.prototype.setAlpha=function(a,c,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=b.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=c,this.autoAlpha=!1,d>0&&a!==c){var g={v:a},h=this.game.make.tween(g).to({v:c},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},b.Particles.Arcade.Emitter.prototype.setScale=function(a,c,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=b.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(c,e),this.autoScale=!1,f>0&&a!==c||d!==e){var i={x:a,y:d},j=this.game.make.tween(i).to({x:c,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},b.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},b.Tile.prototype.constructor=b.Tile,Object.defineProperty(b.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(b.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),b.Tilemap=function(a,c,d,e,f,g){this.game=a,this.key=c;var h=b.TilemapParser.parse(this.game,c,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},b.Tilemap.CSV=0,b.Tilemap.TILED_JSON=1,b.Tilemap.NORTH=0,b.Tilemap.EAST=1,b.Tilemap.SOUTH=2,b.Tilemap.WEST=3,b.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,c,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof c){if("string"!=typeof a)return null;if(c=a,!this.game.cache.checkImageKey(c))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+c+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===b.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+c+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(c)),this.tilesets[a];var i=new b.Tileset(c,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(c)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===c){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createLayer:function(a,c,d,e){"undefined"==typeof c&&(c=this.game.width),"undefined"==typeof d&&(d=this.game.height),"undefined"==typeof e&&(e=this.game.world);var f=a;return"string"==typeof a&&(f=this.getLayerIndex(a)),null===f||f>this.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new b.TilemapLayer(this.game,this,f,c,d))},createBlankLayer:function(a,c,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:c,height:d,widthInPixels:c*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;c>l;l++)h.push(new b.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new b.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b=0&&a=0&&c=0&&c=0&&d-1?this.layers[e].data[d][c].setCollision(!0,!0,!0,!0):this.layers[e].data[d][c].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][c]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null +}},b.Tilemap.prototype.constructor=b.Tilemap,Object.defineProperty(b.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),b.TilemapLayer=function(a,c,d,e,f){this.game=a,this.map=c,this.index=d,this.layer=c.layers[d],this.canvas=b.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),b.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=b.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new b.Point(0,0),this.tileColor="rgb(255, 255, 255)",this.debug=!1,this.debugAlpha=.5,this.debugColor="rgba(0, 255, 0, 1)",this.debugFill=!1,this.debugFillColor="rgba(0, 255, 0, 0.2)",this.debugCallbackColor="rgba(255, 0, 0, 1)",this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this.wrap=!1,this._mc={cw:c.tileWidth,ch:c.tileHeight,ga:1,dx:0,dy:0,dw:0,dh:0,tx:0,ty:0,tw:0,th:0,tl:0,maxX:0,maxY:0,startX:0,startY:0,x:0,y:0,prevX:0,prevY:0},this._results=[],this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Image.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Image.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},b.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},b.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._mc.x+(a-this._mc.x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._mc.x/this.scrollFactorX+(a-this._mc.x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._mc.y+(a-this._mc.y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._mc.y/this.scrollFactorY+(a-this._mc.y)},b.TilemapLayer.prototype.getTileX=function(a){return this.game.math.snapToFloor(this._fixX(a),this.map.tileWidth)/this.map.tileWidth},b.TilemapLayer.prototype.getTileY=function(a){return this.game.math.snapToFloor(this._fixY(a),this.map.tileHeight)/this.map.tileHeight},b.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},b.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=f.length,h=[],i=0;ij;j++)if(e[i].containsPoint(f[j][0],f[j][1])){h.push(e[i]);break}return h},b.TilemapLayer.prototype.getTiles=function(a,b,c,d,e,f){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),a=this._fixX(a),b=this._fixY(b),c>this.layer.widthInPixels&&(c=this.layer.widthInPixels),d>this.layer.heightInPixels&&(d=this.layer.heightInPixels),this._mc.tx=this.game.math.snapToFloor(a,this._mc.cw)/this._mc.cw,this._mc.ty=this.game.math.snapToFloor(b,this._mc.ch)/this._mc.ch,this._mc.tw=(this.game.math.snapToCeil(c,this._mc.cw)+this._mc.cw)/this._mc.cw,this._mc.th=(this.game.math.snapToCeil(d,this._mc.ch)+this._mc.ch)/this._mc.ch,this._results.length=0;for(var g=this._mc.ty;gd;d++){if(this._column=null,0>d&&this.wrap?this._column=this.layer.data[d+this.map.height]:d>=this.map.height&&this.wrap?this._column=this.layer.data[d-this.map.height]:this.layer.data[d]&&(this._column=this.layer.data[d]),this._column)for(var f=this._mc.startX,g=this._mc.startX+this._mc.maxX;g>f;f++){var a=null;0>f&&this.wrap?a=this._column[f+this.map.width]:f>=this.map.width&&this.wrap?a=this._column[f-this.map.width]:this._column[f]&&(a=this._column[f]),a&&a.index>-1&&(c=this.map.tilesets[this.map.tiles[a.index][2]],this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.draw(this.context,Math.floor(this._mc.tx),Math.floor(this._mc.ty),a.index),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._mc.tx),Math.floor(this._mc.ty),this.map.tileWidth,this.map.tileHeight))),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}return this.debug&&(this.context.globalAlpha=1,this.renderDebug()),this.game.renderType===b.WEBGL&&PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1,this.layer.dirty=!1,!0}},b.TilemapLayer.prototype.renderDebug=function(){this._mc.tx=this._mc.dx,this._mc.ty=this._mc.dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._mc.startY,b=this._mc.startY+this._mc.maxY;b>a;a++){if(this._column=null,0>a&&this.wrap?this._column=this.layer.data[a+this.map.height]:a>=this.map.height&&this.wrap?this._column=this.layer.data[a-this.map.height]:this.layer.data[a]&&(this._column=this.layer.data[a]),this._column)for(var c=this._mc.startX,d=this._mc.startX+this._mc.maxX;d>c;c++){var e=null;0>c&&this.wrap?e=this._column[c+this.map.width]:c>=this.map.width&&this.wrap?e=this._column[c-this.map.width]:this._column[c]&&(e=this._column[c]),e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._mc.tx=Math.floor(this._mc.tx),this.debugFill&&this.context.fillRect(this._mc.tx,this._mc.ty,this._mc.cw,this._mc.ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty)),e.faceBottom&&(this.context.moveTo(this._mc.tx,this._mc.ty+this._mc.ch),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),e.faceLeft&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx,this._mc.ty+this._mc.ch)),e.faceRight&&(this.context.moveTo(this._mc.tx+this._mc.cw,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),this.context.stroke()),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._mc.x},set:function(a){a!==this._mc.x&&(this._mc.x=a,this._mc.startX=this.game.math.floor(this._mc.x/this.map.tileWidth),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._mc.y},set:function(a){a!==this._mc.y&&(this._mc.y=a,this._mc.startY=this.game.math.floor(this._mc.y/this.map.tileHeight),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=a,this.dirty=!0}}),b.TilemapParser={parse:function(a,c,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof c)return this.getEmptyData();if(null===c)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(c);if(h){if(h.format===b.Tilemap.CSV)return this.parseCSV(c,h.data,d,e);if(!h.format||h.format===b.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+c)},parseCSV:function(a,c,d,e){var f=this.getEmptyData();c=c.trim();for(var g=[],h=c.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new b.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new b.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=b,this.tileWidth=c,this.tileHeight=d,this.tileMargin=e,this.tileSpacing=f,this.properties=g,this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},b.Tileset.prototype={draw:function(a,b,c,d){this.image&&this.drawCoords[d]&&a.drawImage(this.image,this.drawCoords[d][0],this.drawCoords[d][1],this.tileWidth,this.tileHeight,b,c,this.tileWidth,this.tileHeight)},setImage:function(a){this.image=a,this.rows=Math.round((a.height-this.tileMargin)/(this.tileHeight+this.tileSpacing)),this.columns=Math.round((a.width-this.tileMargin)/(this.tileWidth+this.tileSpacing)),this.total=this.rows*this.columns,this.drawCoords.length=0;for(var b=this.tileMargin,c=this.tileMargin,d=this.firstgid,e=0;e-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://pixijs.com %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://pixjs.com");b.dontSayHello=!0}},b.Point=function(a,b){this.x=a||0,this.y=b||0},b.Point.prototype.clone=function(){return new b.Point(this.x,this.y)},b.Point.prototype.set=function(a,b){this.x=a||0,this.y=b||(0!==b?this.x:0)},b.Point.prototype.constructor=b.Point,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this.points=a},b.Polygon.prototype.clone=function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Circle=function(a,b,c){this.x=a||0,this.y=b||0,this.radius=c||0},b.Circle.prototype.clone=function(){return new b.Circle(this.x,this.y,this.radius)},b.Circle.prototype.contains=function(a,b){if(this.radius<=0)return!1;var c=this.x-a,d=this.y-b,e=this.radius*this.radius;return c*=c,d*=d,e>=c+d},b.Circle.prototype.getBounds=function(){return new b.Rectangle(this.x-this.radius,this.y-this.radius,this.width,this.height)},b.Circle.prototype.constructor=b.Circle,b.Ellipse=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Ellipse.prototype.clone=function(){return new b.Ellipse(this.x,this.y,this.width,this.height)},b.Ellipse.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=(a-this.x)/this.width,d=(b-this.y)/this.height;return c*=c,d*=d,1>=c+d},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},b.Ellipse.prototype.constructor=b.Ellipse,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new Float32Array(9));var b=this.array;return a?(b[0]=this.a,b[1]=this.c,b[2]=0,b[3]=this.b,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.b,b[2]=this.tx,b[3]=this.c,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},b.identityMatrix=new b.Matrix,b.determineMatrixArrayType=function(){return"undefined"!=typeof Float32Array?Float32Array:Array},b.Matrix2=b.determineMatrixArrayType(),b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this.color=[],this.dynamic=!0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.setInteractive=function(a){this.interactive=a},Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+" The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.children.indexOf(a),d=this.children.indexOf(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(a>=0&&a0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.getBounds=function(a){if(0===this.children.length)return b.EmptyRectangle;if(a){var c=this.worldTransform;this.worldTransform=a,this.updateTransform(),this.worldTransform=c}for(var d,e,f,g=1/0,h=1/0,i=-1/0,j=-1/0,k=!1,l=0,m=this.children.length;m>l;l++){var n=this.children[l];n.visible&&(k=!0,d=this.children[l].getBounds(a),g=ge?i:e,j=j>f?j:f)}if(!k)return b.EmptyRectangle;var o=this._bounds;return o.x=g,o.y=h,o.width=i-g,o.height=j-h,o},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a.context);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a.context)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,a.baseTexture.hasLoaded?this.onTextureUpdate():(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!==a.baseTexture?(this.textureChange=!0,this.texture=a):this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.c,k=h.b,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),this.texture.valid){a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,0|this.worldTransform.tx,0|this.worldTransform.ty):a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,this.worldTransform.tx,this.worldTransform.ty),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var c=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,d=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)}for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fe?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global};for(var c=0,d=["ms","moz","webkit","o"],e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget=function(){var a={};this.addEventListener=this.on=function(b,c){void 0===a[b]&&(a[b]=[]),-1===a[b].indexOf(c)&&a[b].unshift(c)},this.dispatchEvent=this.emit=function(b){if(a[b.type]&&a[b.type].length)for(var c=a[b.type].length-1;c>=0;c--)a[b.type][c](b)},this.removeEventListener=this.off=function(b,c){if(void 0!==a[b]){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}},this.removeAllEventListeners=function(b){var c=a[b];c&&(c.length=0)}},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return window.console.log("PIXI Warning: shape too complex to fill"),[];for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.attributes=[],this.init()},b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA; +/* Pixi.js custom build for Phaser v2.0.7 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +(function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v1.6",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.dontSayHello=!1,b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://pixijs.com %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://pixjs.com");b.dontSayHello=!0}},b.Point=function(a,b){this.x=a||0,this.y=b||0},b.Point.prototype.clone=function(){return new b.Point(this.x,this.y)},b.Point.prototype.set=function(a,b){this.x=a||0,this.y=b||(0!==b?this.x:0)},b.Point.prototype.constructor=b.Point,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this.points=a},b.Polygon.prototype.clone=function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Circle=function(a,b,c){this.x=a||0,this.y=b||0,this.radius=c||0},b.Circle.prototype.clone=function(){return new b.Circle(this.x,this.y,this.radius)},b.Circle.prototype.contains=function(a,b){if(this.radius<=0)return!1;var c=this.x-a,d=this.y-b,e=this.radius*this.radius;return c*=c,d*=d,e>=c+d},b.Circle.prototype.getBounds=function(){return new b.Rectangle(this.x-this.radius,this.y-this.radius,this.width,this.height)},b.Circle.prototype.constructor=b.Circle,b.Ellipse=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Ellipse.prototype.clone=function(){return new b.Ellipse(this.x,this.y,this.width,this.height)},b.Ellipse.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=(a-this.x)/this.width,d=(b-this.y)/this.height;return c*=c,d*=d,1>=c+d},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},b.Ellipse.prototype.constructor=b.Ellipse,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new Float32Array(9));var b=this.array;return a?(b[0]=this.a,b[1]=this.c,b[2]=0,b[3]=this.b,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.b,b[2]=this.tx,b[3]=this.c,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},b.identityMatrix=new b.Matrix,b.determineMatrixArrayType=function(){return"undefined"!=typeof Float32Array?Float32Array:Array},b.Matrix2=b.determineMatrixArrayType(),b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this.color=[],this.dynamic=!0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.setInteractive=function(a){this.interactive=a},Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+" The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.children.indexOf(a),d=this.children.indexOf(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(a>=0&&a0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.getBounds=function(a){if(0===this.children.length)return b.EmptyRectangle;if(a){var c=this.worldTransform;this.worldTransform=a,this.updateTransform(),this.worldTransform=c}for(var d,e,f,g=1/0,h=1/0,i=-1/0,j=-1/0,k=!1,l=0,m=this.children.length;m>l;l++){var n=this.children[l];n.visible&&(k=!0,d=this.children[l].getBounds(a),g=ge?i:e,j=j>f?j:f)}if(!k)return b.EmptyRectangle;var o=this._bounds;return o.x=g,o.y=h,o.width=i-g,o.height=j-h,o},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a.context);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a.context)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,a.baseTexture.hasLoaded?this.onTextureUpdate():(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!==a.baseTexture?(this.textureChange=!0,this.texture=a):this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.c,k=h.b,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),this.texture.valid){a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,0|this.worldTransform.tx,0|this.worldTransform.ty):a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,this.worldTransform.tx,this.worldTransform.ty),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var c=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,d=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)}for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fe?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global};for(var c=0,d=["ms","moz","webkit","o"],e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget=function(){var a={};this.addEventListener=this.on=function(b,c){void 0===a[b]&&(a[b]=[]),-1===a[b].indexOf(c)&&a[b].unshift(c)},this.dispatchEvent=this.emit=function(b){if(a[b.type]&&a[b.type].length)for(var c=a[b.type].length-1;c>=0;c--)a[b.type][c](b)},this.removeEventListener=this.off=function(b,c){if(void 0!==a[b]){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}},this.removeAllEventListeners=function(b){var c=a[b];c&&(c.length=0)}},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return window.console.log("PIXI Warning: shape too complex to fill"),[];for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.attributes=[],this.init()},b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA; if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]||b.createWebGLTexture(a.value.baseTexture,c)),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec2 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;"," vColor = vec4(color * aColor.x, aColor.x);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j6&&(h.points.length>10?(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g)):(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildPoly(h,g))),h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))):(g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,d)),d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o}var e=a.points,f=e[0],g=e[1],h=e[2],i=e[3],j=e[4],k=[];if(k.push(f,g+j),k=k.concat(d(f,g+i-j,f,g+i,f+j,g+i)),k=k.concat(d(f+h-j,g+i,f+h,g+i,f+h,g+i-j)),k=k.concat(d(f+h,g+j,f+h,g,f+h-j,g)),k=k.concat(d(f+j,g,f,g,f,g+j)),a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6,t=b.PolyK.Triangulate(k),u=0;for(u=0;uk;k++)q.push(e,f,n,o,p,m),q.push(e+Math.sin(j*k)*g,f+Math.cos(j*k)*h,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(e+Math.sin(j*k)*g,f+Math.cos(j*k)*h);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d),n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i)}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.lastIndex=0,this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[],this.lastIndex=0},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.WebGLRenderer=function(a,c,d,e,f,g){b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.transparent=!!e,this.preserveDrawingBuffer=g,this.width=a||800,this.height=c||600,this.view=d||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.contextLost=this.handleContextLost.bind(this),this.contextRestoredLost=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLost,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredLost,!1),this.options={alpha:this.transparent,antialias:!!f,premultipliedAlpha:!!e,stencil:!0,preserveDrawingBuffer:g};var h=null;if(["experimental-webgl","webgl"].forEach(function(a){try{h=h||this.view.getContext(a,this.options)}catch(b){}},this),!h)throw new Error("This browser does not support webGL. Try using the canvas renderer"+this);this.gl=h,this.glContextId=h.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=h,b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[h.SRC_ALPHA,h.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[h.DST_COLOR,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[h.SRC_ALPHA,h.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[h.ONE,h.ONE_MINUS_SRC_ALPHA]),this.projection=new b.Point,this.projection.x=this.width/2,this.projection.y=-this.height/2,this.offset=new b.Point(0,0),this.resize(this.width,this.height),this.contextLost=!1,this.shaderManager=new b.WebGLShaderManager(h),this.spriteBatch=new b.WebGLSpriteBatch(h),this.maskManager=new b.WebGLMaskManager(h),this.filterManager=new b.WebGLFilterManager(h,this.transparent),this.stencilManager=new b.WebGLStencilManager(h),this.blendModeManager=new b.WebGLBlendModeManager(h),this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,h.useProgram(this.shaderManager.defaultShader.program),h.disable(h.DEPTH_TEST),h.disable(h.CULL_FACE),h.enable(h.BLEND),h.colorMask(!0,!0,!0,this.transparent)},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),b.WebGLRenderer.updateTextures(),a.updateTransform(),a._interactive&&(a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)));var c=this.gl;c.viewport(0,0,this.width,this.height),c.bindFramebuffer(c.FRAMEBUFFER,null),this.transparent?c.clearColor(0,0,0,0):c.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),c.clear(c.COLOR_BUFFER_BIT),this.renderDisplayObject(a,this.projection),a.interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this))}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.currentBlendMode=9999,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.updateTextures=function(){var a=0;for(a=0;a=0;c--){var d=a._glTextures[c],e=b.glContexts[c];e&&d&&e.deleteTexture(d)}a._glTextures.length=0},b.WebGLRenderer.updateTextureFrame=function(a){a._updateWebGLuvs()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a,this.height=b,this.view.width=a,this.view.height=b,this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2,this.projection.y=-this.height/2},b.createWebGLTexture=function(a,c){return a.hasLoaded&&(a._glTextures[c.id]=c.createTexture(),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),c.bindTexture(c.TEXTURE_2D,null),a._dirty[c.id]=!1),a._glTextures[c.id]},b.updateWebGLTexture=function(a,c){a._glTextures[c.id]&&(c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1)},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){try{this.gl=this.view.getContext("experimental-webgl",this.options)}catch(a){try{this.gl=this.view.getContext("webgl",this.options)}catch(c){throw new Error(" This browser does not support webGL. Try using the canvas renderer"+this)}}var d=this.gl;d.id=b.WebGLRenderer.glContextId++,this.shaderManager.setContext(d),this.spriteBatch.setContext(d),this.primitiveBatch.setContext(d),this.maskManager.setContext(d),this.filterManager.setContext(d),this.renderSession.gl=this.gl,d.disable(d.DEPTH_TEST),d.disable(d.CULL_FACE),d.enable(d.BLEND),d.colorMask(!0,!0,!0,this.transparent),this.gl.viewport(0,0,this.width,this.height);for(var e in b.TextureCache){var f=b.TextureCache[e].baseTexture;f._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLost),this.view.removeEventListener("webglcontextrestored",this.contextRestoredLost),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.primitiveBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(a){this.gl=a,this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(a){this.maskStack=[],this.maskPosition=0,this.setContext(a),this.reverse=!1,this.count=0},b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.maskStack=null,this.gl=null},b.WebGLStencilManager=function(a){this.stencilStack=[],this.setContext(a),this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimativeShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.maskStack=null,this.gl=null},b.WebGLShaderManager=function(a){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[],this.shaderMap=[];for(var b=0;bd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.setContext(a),this.dirty=!0},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture,c=this.renderSession.blendModeManager.currentBlendMode!==a.blendMode;(b.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size||c)&&(this.flush(),this.currentBaseTexture=b.baseTexture,this.renderSession.blendModeManager.setBlendMode(a.blendMode));var d=b._uvs;if(d){var e,f,g,h,i=a.worldAlpha,j=a.tint,k=this.vertices,l=a.anchor.x,m=a.anchor.y;if(b.trim){var n=b.trim;f=n.x-l*n.width,e=f+b.crop.width,h=n.y-m*n.height,g=h+b.crop.height}else e=b.frame.width*(1-l),f=b.frame.width*-l,g=b.frame.height*(1-m),h=b.frame.height*-m;var o=4*this.currentBatchSize*this.vertSize,p=a.worldTransform,q=p.a,r=p.c,s=p.b,t=p.d,u=p.tx,v=p.ty;k[o++]=q*f+s*h+u,k[o++]=t*h+r*f+v,k[o++]=d.x0,k[o++]=d.y0,k[o++]=i,k[o++]=j,k[o++]=q*e+s*h+u,k[o++]=t*h+r*e+v,k[o++]=d.x1,k[o++]=d.y1,k[o++]=i,k[o++]=j,k[o++]=q*e+s*g+u,k[o++]=t*g+r*e+v,k[o++]=d.x2,k[o++]=d.y2,k[o++]=i,k[o++]=j,k[o++]=q*f+s*g+u,k[o++]=t*g+r*f+v,k[o++]=d.x3,k[o++]=d.y3,k[o++]=i,k[o++]=j,this.currentBatchSize++ }},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture,d=this.renderSession.blendModeManager.currentBlendMode!==a.blendMode;(c.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size||d)&&(this.flush(),this.currentBaseTexture=c.baseTexture,this.renderSession.blendModeManager.setBlendMode(a.blendMode)),a._uvs||(a._uvs=new b.TextureUvs);var e=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var f=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),g=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),h=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),i=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);e.x0=0-f,e.y0=0-g,e.x1=1*h-f,e.y1=0-g,e.x2=1*h-f,e.y2=1*i-g,e.x3=0-f,e.y3=1*i-g;var j=a.worldAlpha,k=a.tint,l=this.vertices,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=a.worldTransform,w=v.a,x=v.c,y=v.b,z=v.d,A=v.tx,B=v.ty;l[u++]=w*r+y*t+A,l[u++]=z*t+x*r+B,l[u++]=e.x0,l[u++]=e.y0,l[u++]=j,l[u++]=k,l[u++]=w*q+y*t+A,l[u++]=z*t+x*q+B,l[u++]=e.x1,l[u++]=e.y1,l[u++]=j,l[u++]=k,l[u++]=w*q+y*s+A,l[u++]=z*s+x*q+B,l[u++]=e.x2,l[u++]=e.y2,l[u++]=j,l[u++]=k,l[u++]=w*r+y*s+A,l[u++]=z*s+x*r+B,l[u++]=e.x3,l[u++]=e.y3,l[u++]=j,l[u++]=k,this.currentBatchSize++},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.renderSession.shaderManager.setShader(this.renderSession.shaderManager.defaultShader),this.dirty){this.dirty=!1,a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var c=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,c.x,c.y);var d=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,d,0),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,d,8),a.vertexAttribPointer(this.shader.colorAttribute,2,a.FLOAT,!1,d,16)}if(a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]||b.createWebGLTexture(this.currentBaseTexture,a)),this.currentBaseTexture._dirty[a.id]&&b.updateWebGLTexture(this.currentBaseTexture,a),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var e=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,e)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var b=4*this.size*this.vertSize,c=6*this.maxSize;this.vertices=new Float32Array(b),this.indices=new Uint16Array(c),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var d=0,e=0;c>d;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||b.createWebGLTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var c=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,c)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(a,b){this.transparent=b,this.filterStack=[],this.offsetX=0,this.offsetY=0,this.setContext(a)},b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,this.renderSession.shaderManager.setShader(this.defaultShader),c.uniform2f(this.defaultShader.projectionVector,h.width/2,-h.height/2),c.uniform2f(this.defaultShader.offsetVector,-h.x,-h.y),c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0&&(b.Texture.frameUpdates.length=0)},b.CanvasRenderer.prototype.resize=function(a,b){this.width=a,this.height=b,this.view.width=a,this.view.height=b},b.CanvasRenderer.prototype.renderDisplayObject=function(a,b){this.renderSession.context=b||this.context,a._renderCanvas(this.renderSession)},b.CanvasRenderer.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.CanvasRenderer.prototype.renderStrip=function(a){var b=this.context,c=a.verticies,d=a.uvs,e=c.length/2;this.count++;for(var f=1;e-2>f;f++){var g=2*f,h=c[g],i=c[g+2],j=c[g+4],k=c[g+1],l=c[g+3],m=c[g+5],n=d[g]*a.texture.width,o=d[g+2]*a.texture.width,p=d[g+4]*a.texture.width,q=d[g+1]*a.texture.height,r=d[g+3]*a.texture.height,s=d[g+5]*a.texture.height;b.save(),b.beginPath(),b.moveTo(h,k),b.lineTo(i,l),b.lineTo(j,m),b.closePath(),b.clip();var t=n*r+q*p+o*s-r*p-q*o-n*s,u=h*r+q*j+i*s-r*j-q*i-h*s,v=n*i+h*p+o*j-i*p-h*o-n*j,w=n*r*j+q*i*p+h*o*s-h*r*p-q*o*j-n*i*s,x=k*r+q*m+l*s-r*m-q*l-k*s,y=n*l+k*p+o*m-l*p-k*o-n*m,z=n*r*m+q*l*p+k*o*s-k*r*p-q*o*m-n*l*s;b.transform(u/t,x/t,v/t,y/t,w/t,z/t),b.drawImage(a.texture.baseTexture.source,0,0),b.restore()}},b.CanvasBuffer=function(a,b){this.width=a,this.height=b,this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.canvas.width=a,this.canvas.height=b},b.CanvasBuffer.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)},b.CanvasBuffer.prototype.resize=function(a,b){this.width=this.canvas.width=a,this.height=this.canvas.height=b},b.CanvasGraphics=function(){},b.CanvasGraphics.renderGraphics=function(a,c){for(var d=a.worldAlpha,e="",f=0;fA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath(),(g.fillColor||0===g.fillColor)&&(c.globalAlpha=g.fillAlpha*d,c.fillStyle=e="#"+("00000"+(0|g.fillColor).toString(16)).substr(-6),c.fill()),g.lineWidth&&(c.globalAlpha=g.lineAlpha*d,c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.points;if(f.type===b.Graphics.POLY){c.beginPath(),c.moveTo(g[0],g[1]);for(var h=1;hz?z:y,c.beginPath(),c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.Graphics=function(){b.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor="black",this.graphicsData=[],this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.currentPath={points:[]},this._webGL=[],this.isMask=!1,this.bounds=null,this.boundsPadding=10,this.dirty=!0},b.Graphics.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Graphics.prototype.constructor=b.Graphics,Object.defineProperty(b.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),b.Graphics.prototype.lineStyle=function(a,c,d){return this.currentPath.points.length||this.graphicsData.pop(),this.lineWidth=a||0,this.lineColor=c||0,this.lineAlpha=arguments.length<3?1:d,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:b.Graphics.POLY},this.graphicsData.push(this.currentPath),this},b.Graphics.prototype.moveTo=function(a,c){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:b.Graphics.POLY},this.currentPath.points.push(a,c),this.graphicsData.push(this.currentPath),this},b.Graphics.prototype.lineTo=function(a,b){return this.currentPath.points.push(a,b),this.dirty=!0,this},b.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){for(var e,f,g=20,h=this.currentPath.points,i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},b.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){for(var g,h,i,j,k,l=20,m=this.currentPath.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},b.Graphics.prototype.arcTo=function(a,b,c,d,e){var f=this.currentPath.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},b.Graphics.prototype.arc=function(a,b,c,d,e,f){var g=a+Math.cos(d)*c,h=b+Math.sin(d)*c,i=this.currentPath.points,j=i[i.length-2],k=i[i.length-1];if((j!==g||k!==h)&&i.push(g,h),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var l=f?-1*(d-e):e-d,m=Math.abs(l)/(2*Math.PI)*40;if(0===l)return this;for(var n=l/(2*m),o=2*n,p=Math.cos(n),q=Math.sin(n),r=m%1/m,s=0;m>=s;s++){var t=s+r*s,u=n+d+o*t,v=Math.cos(u),w=-Math.sin(u);i.push((p*v+q*w)*c+a,(p*-w+q*v)*c+b)}return this.dirty=!0,this},b.Graphics.prototype.drawPath=function(a){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:b.Graphics.POLY},this.graphicsData.push(this.currentPath),this.currentPath.points=this.currentPath.points.concat(a),this.dirty=!0,this},b.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=arguments.length<2?1:b,this},b.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},b.Graphics.prototype.drawRect=function(a,c,d,e){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,e],type:b.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.drawRoundedRect=function(a,c,d,e,f){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,e,f],type:b.Graphics.RREC},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.drawCircle=function(a,c,d){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,d],type:b.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.drawEllipse=function(a,c,d,e){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,e],type:b.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this.bounds=null,this},b.Graphics.prototype.generateTexture=function(){var a=this.getBounds(),c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);return c.context.translate(-a.x,-a.y),b.CanvasGraphics.renderGraphics(this,c.context),d},b.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return this.dirty&&(this._generateCachedSprite(),b.updateWebGLTexture(this._cachedSprite.texture.baseTexture,a.gl),this.dirty=!1),this._cachedSprite.alpha=this.alpha,void b.Sprite.prototype._renderWebGL.call(this._cachedSprite,a); -if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var c=b.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(c[0],c[1])}if(b.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var d=0,e=this.children.length;e>d;d++)this.children[d]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},b.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){var c=a.context,d=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),c.setTransform(d.a,d.c,d.b,d.d,d.tx,d.ty),b.CanvasGraphics.renderGraphics(this,c);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Graphics.prototype.getBounds=function(a){this.bounds||this.updateBounds();var b=this.bounds.x,c=this.bounds.width+this.bounds.x,d=this.bounds.y,e=this.bounds.height+this.bounds.y,f=a||this.worldTransform,g=f.a,h=f.c,i=f.b,j=f.d,k=f.tx,l=f.ty,m=g*c+i*e+k,n=j*e+h*c+l,o=g*b+i*e+k,p=j*e+h*b+l,q=g*b+i*d+k,r=j*d+h*b+l,s=g*c+i*d+k,t=j*d+h*c+l,u=m,v=n,w=m,x=n;w=w>o?o:w,w=w>q?q:w,w=w>s?s:w,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,u=o>u?o:u,u=q>u?q:u,u=s>u?s:u,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v;var y=this._bounds;return y.x=w,y.width=u-w,y.y=x,y.height=v-x,y},b.Graphics.prototype.updateBounds=function(){for(var a,c,d,e,f,g=1/0,h=-1/0,i=1/0,j=-1/0,k=0;kc?c:g,h=c+e>h?c+e:h,i=i>d?c:i,j=d+f>j?d+f:j;else if(m===b.Graphics.CIRC||m===b.Graphics.ELIP)c=a[0],d=a[1],e=a[2]+n/2,f=a[3]+n/2,g=g>c-e?c-e:g,h=c+e>h?c+e:h,i=i>d-f?d-f:i,j=d+f>j?d+f:j;else for(var o=0;oc-n?c-n:g,h=c+n>h?c+n:h,i=i>d-n?d-n:i,j=d+n>j?d+n:j}var p=this.boundsPadding;this.bounds=new b.Rectangle(g-p,i-p,h-g+2*p,j-i+2*p)},b.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);this._cachedSprite=new b.Sprite(d),this._cachedSprite.buffer=c,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),b.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},b.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},b.Graphics.POLY=0,b.Graphics.RECT=1,b.Graphics.CIRC=2,b.Graphics.ELIP=3,b.Graphics.RREC=4,b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader;c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,1),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.verticies,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.verticies),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(c.TRIANGLE_STRIP,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.c,c.b,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.c,c.b,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5],p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3);var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this.width=c||100,this.height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this.mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this.filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this.filters&&a.filterManager.popFilter(),this.mask&&a.maskManager.popMask(a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform;if(c.setTransform(f.a,f.c,f.b,f.d,f.tx,f.ty),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var g=this.tilePosition,h=this.tileScale;for(g.x%=this.tilingTexture.baseTexture.width,g.y%=this.tilingTexture.baseTexture.height,c.scale(h.x,h.y),c.translate(g.x,g.y),c.fillStyle=this.__tilePattern,c.fillRect(-g.x+this.anchor.x*-this._width,-g.y+this.anchor.y*-this._height,this._width/h.x,this._height/h.y),c.scale(1/h.x,1/h.y),c.translate(-g.x,-g.y),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.c,j=g.b,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.texturesToUpdate=[],b.texturesToDestroy=[],b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(b.EventTarget.call(this),this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.id=b.BaseTextureCacheIdGenerator++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,b.texturesToUpdate.push(this);else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.width,d.height=d.source.height;for(var a=0;athis.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&b.Texture.frameUpdates.push(this)},b.Texture.prototype._updateWebGLuvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.Texture.frameUpdates=[],b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e){if(b.EventTarget.call(this),this.width=a||100,this.height=c||100,this.frame=new b.Rectangle(0,0,this.width,this.height),this.crop=new b.Rectangle(0,0,1,1),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTextures=[],this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var f=this.renderer.gl;this.textureBuffer=new b.FilterTexture(f,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[f.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(this.width/2,-this.height/2)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width,this.height),this.baseTexture.source=this.textureBuffer.canvas;b.Texture.frameUpdates.push(this)},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.width=a,this.height=c,this.frame.width=this.width,this.frame.height=this.height,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear()},b.RenderTexture.prototype.renderWebGL=function(a,c,d){var e=this.renderer.gl;e.colorMask(!0,!0,!0,!0),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,this.textureBuffer.frameBuffer),d&&this.textureBuffer.clear();var f=a.children,g=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,a.worldTransform.d=-1,a.worldTransform.ty=-2*this.projection.y,c&&(a.worldTransform.tx=c.x,a.worldTransform.ty-=c.y);for(var h=0,i=f.length;i>h;h++)f[h].updateTransform();b.WebGLRenderer.updateTextures(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),a.worldTransform=g,this.renderer.spriteBatch.dirty=!0},b.RenderTexture.prototype.renderCanvas=function(a,c,d){var e=a.children,f=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,c?(a.worldTransform.tx=c.x,a.worldTransform.ty=c.y):(a.worldTransform.tx=0,a.worldTransform.ty=0);for(var g=0,h=e.length;h>g;g++)e[g].updateTransform();d&&this.textureBuffer.clear();var i=this.textureBuffer.context;this.renderer.renderDisplayObject(a,i),i.setTransform(1,0,0,1,0,0),a.worldTransform=f},b.RenderTexture.tempMatrix=new b.Matrix,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this); \ No newline at end of file +if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var c=b.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(c[0],c[1])}if(b.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var d=0,e=this.children.length;e>d;d++)this.children[d]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},b.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){var c=a.context,d=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),c.setTransform(d.a,d.c,d.b,d.d,d.tx,d.ty),b.CanvasGraphics.renderGraphics(this,c);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Graphics.prototype.getBounds=function(a){this.bounds||this.updateBounds();var b=this.bounds.x,c=this.bounds.width+this.bounds.x,d=this.bounds.y,e=this.bounds.height+this.bounds.y,f=a||this.worldTransform,g=f.a,h=f.c,i=f.b,j=f.d,k=f.tx,l=f.ty,m=g*c+i*e+k,n=j*e+h*c+l,o=g*b+i*e+k,p=j*e+h*b+l,q=g*b+i*d+k,r=j*d+h*b+l,s=g*c+i*d+k,t=j*d+h*c+l,u=m,v=n,w=m,x=n;w=w>o?o:w,w=w>q?q:w,w=w>s?s:w,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,u=o>u?o:u,u=q>u?q:u,u=s>u?s:u,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v;var y=this._bounds;return y.x=w,y.width=u-w,y.y=x,y.height=v-x,y},b.Graphics.prototype.updateBounds=function(){for(var a,c,d,e,f,g=1/0,h=-1/0,i=1/0,j=-1/0,k=0;kc?c:g,h=c+e>h?c+e:h,i=i>d?c:i,j=d+f>j?d+f:j;else if(m===b.Graphics.CIRC||m===b.Graphics.ELIP)c=a[0],d=a[1],e=a[2]+n/2,f=a[3]+n/2,g=g>c-e?c-e:g,h=c+e>h?c+e:h,i=i>d-f?d-f:i,j=d+f>j?d+f:j;else for(var o=0;oc-n?c-n:g,h=c+n>h?c+n:h,i=i>d-n?d-n:i,j=d+n>j?d+n:j}var p=this.boundsPadding;this.bounds=new b.Rectangle(g-p,i-p,h-g+2*p,j-i+2*p)},b.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);this._cachedSprite=new b.Sprite(d),this._cachedSprite.buffer=c,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),b.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},b.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},b.Graphics.POLY=0,b.Graphics.RECT=1,b.Graphics.CIRC=2,b.Graphics.ELIP=3,b.Graphics.RREC=4,b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader;c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,1),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.verticies,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.verticies),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(c.TRIANGLE_STRIP,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.c,c.b,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.c,c.b,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5],p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3);var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this.width=c||100,this.height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this.mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this.filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this.filters&&a.filterManager.popFilter(),this.mask&&a.maskManager.popMask(a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform;if(c.setTransform(f.a,f.c,f.b,f.d,f.tx,f.ty),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var g=this.tilePosition,h=this.tileScale;for(g.x%=this.tilingTexture.baseTexture.width,g.y%=this.tilingTexture.baseTexture.height,c.scale(h.x,h.y),c.translate(g.x,g.y),c.fillStyle=this.__tilePattern,c.fillRect(-g.x+this.anchor.x*-this._width,-g.y+this.anchor.y*-this._height,this._width/h.x,this._height/h.y),c.scale(1/h.x,1/h.y),c.translate(-g.x,-g.y),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.c,j=g.b,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.texturesToUpdate=[],b.texturesToDestroy=[],b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(b.EventTarget.call(this),this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.id=b.BaseTextureCacheIdGenerator++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,b.texturesToUpdate.push(this);else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.width,d.height=d.source.height;for(var a=0;athis.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&b.Texture.frameUpdates.push(this)},b.Texture.prototype._updateWebGLuvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.Texture.frameUpdates=[],b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e){if(b.EventTarget.call(this),this.width=a||100,this.height=c||100,this.frame=new b.Rectangle(0,0,this.width,this.height),this.crop=new b.Rectangle(0,0,this.width,this.height),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTextures=[],this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var f=this.renderer.gl;this.textureBuffer=new b.FilterTexture(f,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[f.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(this.width/2,-this.height/2)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width,this.height),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,b.Texture.frameUpdates.push(this)},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear()},b.RenderTexture.prototype.renderWebGL=function(a,c,d){var e=this.renderer.gl;e.colorMask(!0,!0,!0,!0),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,this.textureBuffer.frameBuffer),d&&this.textureBuffer.clear();var f=a.children,g=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,a.worldTransform.d=-1,a.worldTransform.ty=-2*this.projection.y,c&&(a.worldTransform.tx=c.x,a.worldTransform.ty-=c.y);for(var h=0,i=f.length;i>h;h++)f[h].updateTransform();b.WebGLRenderer.updateTextures(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),a.worldTransform=g,this.renderer.spriteBatch.dirty=!0},b.RenderTexture.prototype.renderCanvas=function(a,c,d){var e=a.children,f=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,c?(a.worldTransform.tx=c.x,a.worldTransform.ty=c.y):(a.worldTransform.tx=0,a.worldTransform.ty=0);for(var g=0,h=e.length;h>g;g++)e[g].updateTransform();d&&this.textureBuffer.clear();var i=this.textureBuffer.context;this.renderer.renderDisplayObject(a,i),i.setTransform(1,0,0,1,0,0),a.worldTransform=f},b.RenderTexture.tempMatrix=new b.Matrix,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this); \ No newline at end of file diff --git a/build/phaser.js b/build/phaser.js index 437221802..44f2d8149 100644 --- a/build/phaser.js +++ b/build/phaser.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.1.0 "Shienar" - Built: Fri Jul 11 2014 11:53:15 +* v2.0.7 "Shienar" - Built: Fri Jul 11 2014 18:03:07 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -88,8 +88,16 @@ PIXI.scaleModes = { // used to create uids for various pixi objects.. PIXI._UID = 0; -PIXI.Float32Array = Float32Array || Array; -PIXI.Uint16Array = Uint16Array || Array; +if(typeof(Float32Array) != 'undefined') +{ + PIXI.Float32Array = Float32Array; + PIXI.Uint16Array = Uint16Array; +} +else +{ + PIXI.Float32Array = Array; + PIXI.Uint16Array = Array; +} // interaction frequency PIXI.INTERACTION_FREQUENCY = 30; @@ -11213,7 +11221,7 @@ PIXI.RenderTexture = function(width, height, renderer, scaleMode) * @property crop * @type Rectangle */ - this.crop = new PIXI.Rectangle(0, 0, 1, 1); + this.crop = new PIXI.Rectangle(0, 0, this.width, this.height); /** * The base texture object that this texture uses @@ -11250,6 +11258,7 @@ PIXI.RenderTexture = function(width, height, renderer, scaleMode) this.baseTexture.source = this.textureBuffer.canvas; } + this.valid = true; PIXI.Texture.frameUpdates.push(this); @@ -11273,11 +11282,8 @@ PIXI.RenderTexture.prototype.resize = function(width, height, updateBase) return; } - this.width = width; - this.height = height; - - this.frame.width = this.width; - this.frame.height = this.height; + this.width = this.frame.width = this.crop.width = width; + this.height = this.frame.height = this.crop.height = height; if (updateBase) { @@ -11435,7 +11441,7 @@ PIXI.RenderTexture.tempMatrix = new PIXI.Matrix(); * * Phaser - http://phaser.io * -* v2.1.0 "Shienar" - Built: Fri Jul 11 2014 11:53:15 +* v2.0.7 "Shienar" - Built: Fri Jul 11 2014 18:03:07 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -11478,7 +11484,7 @@ PIXI.RenderTexture.tempMatrix = new PIXI.Matrix(); */ var Phaser = Phaser || { - VERSION: '2.1.0-dev', + VERSION: '2.0.7-dev', GAMES: [], AUTO: 0, @@ -31728,8 +31734,22 @@ Phaser.Image = function (game, x, y, key, frame) { */ this.key = key; + /** + * @property {number} _frame - Internal cache var. + * @private + */ + this._frame = 0; + + /** + * @property {string} _frameName - Internal cache var. + * @private + */ + this._frameName = ''; + PIXI.Sprite.call(this, PIXI.TextureCache['__default']); + this.loadTexture(key, frame); + this.position.set(x, y); /** @@ -31757,15 +31777,8 @@ Phaser.Image = function (game, x, y, key, frame) { */ this.cameraOffset = new Phaser.Point(); - /** - * @property {Phaser.Rectangle} cropRect - The Rectangle used to crop the texture. Set this via Sprite.crop. Any time you modify this property directly you must call Sprite.updateCrop. - * @default - */ - this.cropRect = null; - /** * A small internal cache: - * * 0 = previous position.x * 1 = previous position.y * 2 = previous rotation @@ -31775,38 +31788,11 @@ Phaser.Image = function (game, x, y, key, frame) { * 6 = exists (0 = no, 1 = yes) * 7 = fixed to camera (0 = no, 1 = yes) * 8 = destroy phase? (0 = no, 1 = yes) - * 9 = frame index * @property {Array} _cache * @private */ this._cache = [ 0, 0, 0, 0, 1, 0, 1, 0, 0 ]; - /** - * @property {Phaser.Rectangle} _crop - Internal cache var. - * @private - */ - this._crop = null; - - /** - * @property {Phaser.Rectangle} _frame - Internal cache var. - * @private - */ - this._frame = null; - - /** - * @property {Phaser.Rectangle} _bounds - Internal cache var. - * @private - */ - this._bounds = new Phaser.Rectangle(); - - /** - * @property {string} _frameName - Internal cache var. - * @private - */ - this._frameName = ''; - - this.loadTexture(key, frame); - }; Phaser.Image.prototype = Object.create(PIXI.Sprite.prototype); @@ -31904,20 +31890,23 @@ Phaser.Image.prototype.loadTexture = function (key, frame) { frame = frame || 0; - this.key = key; - if (key instanceof Phaser.RenderTexture) { this.key = key.key; this.setTexture(key); + return; } else if (key instanceof Phaser.BitmapData) { + this.key = key; this.setTexture(key.texture); + return; } else if (key instanceof PIXI.Texture) { + this.key = key; this.setTexture(key); + return; } else { @@ -31925,82 +31914,95 @@ Phaser.Image.prototype.loadTexture = function (key, frame) { { this.key = '__default'; this.setTexture(PIXI.TextureCache[this.key]); + return; } else if (typeof key === 'string' && !this.game.cache.checkImageKey(key)) { - console.warn("Texture with key '" + key + "' not found."); this.key = '__missing'; this.setTexture(PIXI.TextureCache[this.key]); + return; } - else - { - if (this.game.cache.isSpriteSheet(key)) - { - var frameData = this.game.cache.getFrameData(key); - if (typeof frame === 'string') - { - this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[key], frameData.getFrameByName(frame))); - } - else - { - this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[key], frameData.getFrame(frame))); - } + if (this.game.cache.isSpriteSheet(key)) + { + this.key = key; + + var frameData = this.game.cache.getFrameData(key); + + if (typeof frame === 'string') + { + this._frame = 0; + this._frameName = frame; + this.setTexture(PIXI.TextureCache[frameData.getFrameByName(frame).uuid]); + return; } else { - this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[key])); + this._frame = frame; + this._frameName = ''; + this.setTexture(PIXI.TextureCache[frameData.getFrame(frame).uuid]); + return; } } + else + { + this.key = key; + this.setTexture(PIXI.TextureCache[key]); + return; + } } - this._frame = Phaser.Rectangle.clone(this.texture.frame); - }; -/** -* Resets the Texture frame dimensions that the Image uses for rendering. -* -* @method Phaser.Image#resetFrame -* @memberof Phaser.Image -*/ -Phaser.Image.prototype.resetFrame = Phaser.Sprite.prototype.resetFrame; - -/** -* Sets the Texture frame the Image uses for rendering. -* This is primarily an internal method used by Image.loadTexture, although you may call it directly. -* -* @method Phaser.Image#setFrame -* @memberof Phaser.Image -* @param {Phaser.Frame} frame - The Frame to be used by the Image texture. -*/ -Phaser.Image.prototype.setFrame = Phaser.Sprite.prototype.setFrame; - -/** -* If you have set a crop rectangle on this Image via Image.crop and since modified the Image.cropRect property (or the rectangle it references) -* then you need to update the crop frame by calling this method. -* -* @method Phaser.Image#updateCrop -* @memberof Phaser.Image -*/ -Phaser.Image.prototype.updateCrop = Phaser.Sprite.prototype.updateCrop; - /** * Crop allows you to crop the texture used to display this Image. -* This modifies the core Image texture frame, so the Image width/height properties will adjust accordingly. -* -* Cropping takes place from the top-left of the Image and can be modified in real-time by either providing an updated rectangle object to Image.crop, -* or by modifying Image.cropRect (or a reference to it) and then calling Image.updateCrop. -* +* Cropping takes place from the top-left of the Image and can be modified in real-time by providing an updated rectangle object. * The rectangle object given to this method can be either a Phaser.Rectangle or any object so long as it has public x, y, width and height properties. -* A reference to the rectangle is stored in Image.cropRect unless the `copy` parameter is `true` in which case the values are duplicated to a local object. +* Please note that the rectangle object given is not duplicated by this method, but rather the Image uses a reference to the rectangle. +* Keep this in mind if assigning a rectangle in a for-loop, or when cleaning up for garbage collection. * * @method Phaser.Image#crop * @memberof Phaser.Image -* @param {Phaser.Rectangle} rect - The Rectangle used during cropping. Pass null or no parameters to clear a previously set crop rectangle. -* @param {boolean} [copy=false] - If false Image.cropRect will be a reference to the given rect. If true it will copy the rect values into a local Image.cropRect object. +* @param {Phaser.Rectangle|object} rect - The Rectangle to crop the Image to. Pass null or no parameters to clear a previously set crop rectangle. */ -Phaser.Image.prototype.crop = Phaser.Sprite.prototype.crop; +Phaser.Image.prototype.crop = function(rect) { + + if (typeof rect === 'undefined' || rect === null) + { + // Clear any crop that may be set + if (this.texture.hasOwnProperty('sourceWidth')) + { + this.texture.setFrame(new Phaser.Rectangle(0, 0, this.texture.sourceWidth, this.texture.sourceHeight)); + } + } + else + { + // Do we need to clone the PIXI.Texture object? + if (this.texture instanceof PIXI.Texture) + { + // Yup, let's rock it ... + var local = {}; + + Phaser.Utils.extend(true, local, this.texture); + + local.sourceWidth = local.width; + local.sourceHeight = local.height; + local.frame = rect; + local.width = rect.width; + local.height = rect.height; + + this.texture = local; + + this.texture.updateFrame = true; + PIXI.Texture.frameUpdates.push(this.texture); + } + else + { + this.texture.setFrame(rect); + } + } + +}; /** * Brings a 'dead' Image back to life, optionally giving it the health value specified. @@ -32036,7 +32038,20 @@ Phaser.Image.prototype.revive = function() { * @memberof Phaser.Image * @return {Phaser.Image} This instance. */ -Phaser.Image.prototype.kill = Phaser.Sprite.prototype.kill; +Phaser.Image.prototype.kill = function() { + + this.alive = false; + this.exists = false; + this.visible = false; + + if (this.events) + { + this.events.onKilled.dispatch(this); + } + + return this; + +}; /** * Destroys the Image. This removes it from its parent group, destroys the input, event and animation handlers if present @@ -32046,7 +32061,64 @@ Phaser.Image.prototype.kill = Phaser.Sprite.prototype.kill; * @memberof Phaser.Image * @param {boolean} [destroyChildren=true] - Should every child of this object have its destroy method called? */ -Phaser.Image.prototype.destroy = Phaser.Sprite.prototype.destroy; +Phaser.Image.prototype.destroy = function(destroyChildren) { + + if (this.game === null || this.destroyPhase) { return; } + + if (typeof destroyChildren === 'undefined') { destroyChildren = true; } + + this._cache[8] = 1; + + if (this.parent) + { + if (this.parent instanceof Phaser.Group) + { + this.parent.remove(this); + } + else + { + this.parent.removeChild(this); + } + } + + if (this.events) + { + this.events.destroy(); + } + + if (this.input) + { + this.input.destroy(); + } + + var i = this.children.length; + + if (destroyChildren) + { + while (i--) + { + this.children[i].destroy(destroyChildren); + } + } + else + { + while (i--) + { + this.removeChild(this.children[i]); + } + } + + this.alive = false; + this.exists = false; + this.visible = false; + + this.filters = null; + this.mask = null; + this.game = null; + + this._cache[8] = 0; + +}; /** * Resets the Image. This places the Image at the given x/y world coordinates and then sets alive, exists, visible and renderable all to true. @@ -32079,7 +32151,16 @@ Phaser.Image.prototype.reset = function(x, y) { * @memberof Phaser.Image * @return {Phaser.Image} This instance. */ -Phaser.Image.prototype.bringToTop = Phaser.Sprite.prototype.bringToTop; +Phaser.Image.prototype.bringToTop = function() { + + if (this.parent) + { + this.parent.bringToTop(this); + } + + return this; + +}; /** * Indicates the rotation of the Image, in degrees, from its original orientation. Values from 0 to 180 represent clockwise rotation; values from 0 to -180 represent counterclockwise rotation. @@ -32198,7 +32279,7 @@ Object.defineProperty(Phaser.Image.prototype, "frame", { get: function() { - return this._cache[9]; + return this._frame; }, @@ -32210,8 +32291,8 @@ Object.defineProperty(Phaser.Image.prototype, "frame", { if (frameData && value < frameData.total && frameData.getFrame(value)) { - this._cache[9] = value; - this.setFrame(frameData.getFrame(value)); + this.setTexture(PIXI.TextureCache[frameData.getFrame(value).uuid]); + this._frame = value; } } @@ -32239,8 +32320,8 @@ Object.defineProperty(Phaser.Image.prototype, "frameName", { if (frameData && frameData.getFrameByName(value)) { + this.setTexture(PIXI.TextureCache[frameData.getFrameByName(value).uuid]); this._frameName = value; - this.setFrame(frameData.getFrameByName(value)); } } @@ -44639,6 +44720,13 @@ Phaser.AnimationParser = { // uuid needed? data.addFrame(new Phaser.Frame(i, x, y, frameWidth, frameHeight, '', uuid)); + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[key], { + x: x, + y: y, + width: frameWidth, + height: frameHeight + }); + x += frameWidth + spacing; if (x + frameWidth > width) @@ -44691,6 +44779,13 @@ Phaser.AnimationParser = { uuid )); + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], { + x: frames[i].frame.x, + y: frames[i].frame.y, + width: frames[i].frame.w, + height: frames[i].frame.h + }); + if (frames[i].trimmed) { newFrame.setTrim( @@ -44749,6 +44844,13 @@ Phaser.AnimationParser = { uuid )); + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], { + x: frames[key].frame.x, + y: frames[key].frame.y, + width: frames[key].frame.w, + height: frames[key].frame.h + }); + if (frames[key].trimmed) { newFrame.setTrim( @@ -44828,7 +44930,13 @@ Phaser.AnimationParser = { newFrame = data.addFrame(new Phaser.Frame(i, x, y, width, height, name, uuid)); - // Trimmed? + PIXI.TextureCache[uuid] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], { + x: x, + y: y, + width: width, + height: height + }); + // Trimmed? if (frameX !== null || frameY !== null) { newFrame.setTrim(true, width, height, frameX, frameY, frameWidth, frameHeight); @@ -45099,6 +45207,7 @@ Phaser.Cache.prototype = { this._images[key] = { url: url, data: data, spriteSheet: true, frameWidth: frameWidth, frameHeight: frameHeight, margin: margin, spacing: spacing }; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); this._images[key].frameData = Phaser.AnimationParser.spriteSheet(this.game, key, frameWidth, frameHeight, frameMax, margin, spacing); @@ -45134,6 +45243,7 @@ Phaser.Cache.prototype = { this._images[key] = { url: url, data: data, spriteSheet: true }; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); if (format == Phaser.Loader.TEXTURE_ATLAS_JSON_ARRAY) { @@ -45166,6 +45276,7 @@ Phaser.Cache.prototype = { this._images[key] = { url: url, data: data, spriteSheet: true }; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); Phaser.LoaderParser.bitmapFont(this.game, xmlData, key, xSpacing, ySpacing); @@ -45267,6 +45378,7 @@ Phaser.Cache.prototype = { this._images[key].frame = new Phaser.Frame(0, 0, 0, data.width, data.height, key, this.game.rnd.uuid()); PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); + PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); }, diff --git a/build/phaser.map b/build/phaser.map index d3cb3ce3d..ec4eeaac1 100644 --- a/build/phaser.map +++ b/build/phaser.map @@ -1 +1 @@ -{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","blendModes","NORMAL","ADD","MULTIPLY","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","scaleModes","DEFAULT","LINEAR","NEAREST","_UID","Float32Array","Array","Uint16Array","INTERACTION_FREQUENCY","AUTO_PREVENT_DEFAULT","RAD_TO_DEG","Math","PI","DEG_TO_RAD","dontSayHello","sayHello","type","navigator","userAgent","toLowerCase","indexOf","args","console","log","apply","window","Point","x","y","prototype","clone","set","constructor","Rectangle","width","height","contains","x1","y1","EmptyRectangle","Polygon","points","slice","call","arguments","p","i","il","length","push","inside","j","xi","yi","xj","yj","intersect","Circle","radius","dx","dy","r2","getBounds","Ellipse","normx","normy","Matrix","a","b","c","d","tx","ty","fromArray","array","toArray","transpose","identityMatrix","determineMatrixArrayType","Matrix2","DisplayObject","position","scale","pivot","rotation","alpha","visible","hitArea","buttonMode","renderable","parent","stage","worldAlpha","_interactive","defaultCursor","worldTransform","color","dynamic","_sr","_cr","filterArea","_bounds","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","setInteractive","interactive","Object","defineProperty","get","value","dirty","item","isMask","_filters","passes","filterPasses","_filterBlock","target","_generateCachedSprite","_destroyCachedSprite","updateTransform","rotationCache","sin","cos","parentTransform","px","py","a00","a01","a10","a11","a02","a12","b00","b01","b10","b11","matrix","getLocalBounds","setStageReference","generateTexture","renderer","bounds","renderTexture","RenderTexture","render","updateCache","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","destroy","DisplayObjectContainer","children","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","index2","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","matrixCache","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","context","tint","blendMode","baseTexture","hasLoaded","onTextureUpdate","onTextureUpdateBind","bind","addEventListener","frame","setTexture","textureChange","cachedTint","w0","w1","h0","h1","x2","y2","x3","y3","x4","y4","currentBlendMode","globalCompositeOperation","blendModesCanvas","valid","globalAlpha","roundPixels","setTransform","smoothProperty","scaleMode","trim","tintedTexture","CanvasTinter","getTintedTexture","drawImage","crop","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","Texture","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","shaderManager","setShader","fastShader","transform","isRotated","childTransform","AbstractFilter","fragmentSrc","uniforms","shaders","padding","FilterBlock","Text","text","style","canvas","document","createElement","getContext","fromCanvas","setText","setStyle","updateText","font","fill","align","stroke","strokeThickness","wordWrap","wordWrapWidth","dropShadow","dropShadowAngle","dropShadowDistance","dropShadowColor","toString","outputText","lines","split","lineWidths","maxLineWidth","lineWidth","measureText","max","lineHeight","determineFontHeight","isCocoonJS","clearRect","strokeStyle","textBaseline","linePositionX","linePositionY","fillStyle","xShadowOffset","yShadowOffset","fillText","strokeText","updateTexture","requiresUpdate","updateWebGLTexture","fontStyle","result","heightCache","body","getElementsByTagName","dummy","dummyText","createTextNode","appendChild","setAttribute","offsetHeight","spaceLeft","words","wordWidth","wordWidthWithSpace","destroyBaseTexture","BitmapText","_pool","fontName","fontSize","parseInt","fonts","size","data","pos","prevCharCode","chars","line","charCode","charCodeAt","test","charAt","charData","kerning","xOffset","yOffset","xAdvance","lineAlignOffsets","alignOffset","lenChildren","lenChars","pop","textWidth","textHeight","Stage","backgroundColor","interactionManager","InteractionManager","setBackgroundColor","setInteractionDelegate","domElement","setTargetDomElement","update","backgroundColorSplit","hex2rgb","hex","substr","backgroundColorString","getMousePosition","mouse","global","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","Date","getTime","timeToCall","id","setTimeout","clearTimeout","requestAnimFrame","rgb2hex","rgb","Function","thisArg","bound","boundArgs","concat","TypeError","F","proto","AjaxRequest","activexmodes","ActiveXObject","XMLHttpRequest","e","canUseNewCanvasBlendModes","fillRect","getImageData","getNextPowerOfTwo","number","EventTarget","listeners","on","listener","unshift","dispatchEvent","emit","event","removeEventListener","off","removeAllEventListeners","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","u","v","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","src","join","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","compileProgram","vertexSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniformLocation","initUniforms","uniform","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","z","w","createWebGLTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","PrimitiveShader","tintColor","attribute","ComplexPrimitiveShader","WebGLGraphics","renderGraphics","graphics","webGLData","projection","offset","primitiveShader","updateGraphics","webGL","_webGL","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","last","uniform2f","uniform3fv","uniform1f","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","switchMode","buildComplexPoly","buildPoly","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","quadraticBezierCurve","fromX","fromY","cpX","cpY","toX","toY","getPt","n1","n2","perc","diff","xa","ya","xb","yb","recPoints","vecPos","triangles","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","sqrt","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","view","transparent","antialias","preserveDrawingBuffer","defaultRenderer","contextLost","handleContextLost","contextRestoredLost","handleContextRestored","options","premultipliedAlpha","stencil","forEach","name","glContextId","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","SRC_ALPHA","DST_ALPHA","DST_COLOR","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","defaultShader","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","colorMask","__stage","removeEvents","updateTextures","_interactiveEventsAdded","setTarget","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","frameUpdates","updateTextureFrame","texturesToDestroy","destroyTexture","texturesToUpdate","glTexture","deleteTexture","_updateWebGLuvs","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","_powerOf2","_dirty","preventDefault","e2","setContext","primitiveBatch","blendModeWebGL","blendFunc","maskStack","maskPosition","reverse","count","maskData","stencilStack","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","EQUAL","DECR","INCR","_currentGraphics","complexPrimativeShader","maxAttibs","attribState","tempAttribState","shaderMap","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","numVerts","numIndices","vertices","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","vertexBuffer","DYNAMIC_DRAW","sprite","blendChange","uvs","_uvs","verticies","aX","aY","x0","y0","renderTilingSprite","tilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","filter","FilterTexture","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","temp","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","framebuffer","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","roundColor","stringColor","tintCache","tintMethod","convertTintToImage","tintImage","Image","toDataURL","tintWithMultiply","tintWithOverlay","tintWithPerPixel","rgbValues","pixelData","pixels","putImageData","step","cacheStepsPerColorChannel","min","canUseMultiply","CanvasRenderer","clearBeforeRender","refresh","screencanvas","renderStripFlat","strip","beginPath","moveTo","lineTo","closePath","renderStrip","u0","u1","u2","v0","v1","v2","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","CanvasBuffer","strokeRect","arc","ellipseData","h","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","quadraticCurveTo","len","rect","currentPath","boundsPadding","destroyCachedSprite","lineStyle","filling","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","atan2","endAngle","anticlockwise","startX","startY","sweep","segs","theta","theta2","cTheta","sTheta","remainder","real","angle","s","drawPath","path","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","canvasBuffer","translate","updateBounds","Strip","colors","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","centerX","centerY","normX","normY","updateFrame","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","refreshTexture","generateTilingTexture","needsUpdate","__tilePattern","createPattern","forcePowerOfTwo","targetWidth","targetHeight","isFrame","newTextureRequired","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","scope","onload","content","onerror","imageUrl","_pixiId","updateSourceImage","newSrc","image","crossOrigin","TextureCacheIdGenerator","FrameCache","noFrame","setFrame","onBaseTextureLoaded","onLoaded","destroyBase","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","updateBase","originalWorldTransform","tempMatrix","exports","module","define","amd","Phaser","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","Utils","transposeArray","rotateArray","direction","parseDimension","dimension","f","innerWidth","innerHeight","shuffle","floor","random","pad","str","dir","padlen","right","ceil","left","isPlainObject","obj","nodeType","hasOwnProperty","extend","copy","copyIsArray","deep","isArray","mixin","from","to","o","childNodes","cloneNode","arg","fun","t","Uint32Array","CheapArray","assert","warn","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","distance","round","distanceRounded","out","circumferencePoint","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","invert","add","subtract","multiply","divide","clampX","clamp","clampY","output","radToDeg","angleSq","rotate","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","interpolate","project","amt","projectUnit","centroid","pointslength","floorAll","inflate","containsRect","intersection","tolerance","intersectsRaw","union","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","Line","fromSprite","startSprite","endSprite","useCenter","center","asSegment","intersectsPoints","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","uc","ua","ub","_points","p1","p2","avgHeight","Number","MAX_VALUE","area","Camera","game","world","screenView","deadzone","atLimit","_edge","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","paused","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","current","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","onLoadComplete","loadComplete","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","preUpdate","removeAll","setCurrentState","totalQueuedFiles","totalQueuedPacks","link","getCurrentState","preRender","renderType","LinkedList","next","prev","first","callAll","entity","ArrayList","list","exists","getIndex","idx","Signal","_bindings","_prevParams","self","dispatch","memorize","_shouldPropagate","active","validateListener","fnName","replace","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","signal","_isOnce","_signal","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","resolution","setResolution","pointer","toFixed","totalElapsedSeconds","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","disableVisibilityChange","checkOffsetInterval","currentRenderOrderID","_hiddenVar","_nextOffsetCheck","_backgroundColor","config","parseConfig","now","Canvas","getOffset","fullScreenScaleMode","_this","_onChange","visibilityChange","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","onpagehide","onpageshow","onblur","onfocus","focusLoss","focusGain","gamePaused","gameResumed","Color","hexToColor","getColor","getRGB","RGBtoString","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","alive","classType","cursor","cameraOffset","enableBodyDebug","_sortProperty","_cache","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","events","onAddedToGroup","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","previous","swap","child1","bringToTop","sendToBack","moveUp","moveDown","xy","oldChild","newChild","onRemovedFromGroup","hasProperty","setProperty","operation","force","checkAlive","checkVisible","setAll","setAllChildren","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","method","methodLength","contextLength","renderOrderID","checkExists","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","startIndex","destroyPhase","removeBetween","destroyChildren","soft","World","setBounds","wrap","useBounds","horizontal","vertical","integerInRange","ScaleManager","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","pageAlignHorizontally","pageAlignVertically","maxIterations","orientationSprite","enterLandscape","enterPortrait","enterIncorrectOrientation","leaveIncorrectOrientation","hasResized","fullScreenTarget","enterFullScreen","leaveFullScreen","orientation","outerWidth","outerHeight","scaleFactor","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","NO_SCALE","_startHeight","_check","checkOrientation","checkResize","device","cocoonJS","fullScreenChange","EXACT_FIT","SHOW_ALL","startFullScreen","isFullScreen","fullscreen","smoothed","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","setShowAll","forceOrientation","orientationImage","checkImageKey","checkOrientationState","isLandscape","iPad","webApp","desktop","android","chrome","scrollTo","_iterations","setInterval","setScreenSize","documentElement","setMaximum","setExactFit","clearInterval","marginLeft","marginTop","multiplier","availableWidth","availableHeight","Game","physicsConfig","isRunning","raf","net","debug","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","enableDebug","RandomDataGenerator","_onBoot","readyState","seed","Device","setUpRenderer","checkFullScreenSupport","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","webAudio","trident","addToDOM","enableStep","disableStep","setMute","unsetMute","hitCanvas","hitContext","moveCallbacks","moveCallback","moveCallbackContext","pollRate","disabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","currentPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","Pointer","Mouse","Keyboard","Touch","MSPointer","Gamepad","setMoveCallback","addMoveCallback","deleteMoveCallback","addPointer","hard","resetSpeed","startPointer","totalActivePointers","updatePointer","identifier","move","stopPointer","getPointer","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","wt","hitTest","localPoint","worldVisible","TileSprite","Key","keycode","enabled","isDown","isUp","altKey","ctrlKey","shiftKey","timeDown","duration","timeUp","repeats","keyCode","onHoldCallback","onHoldContext","processKeyDown","processKeyUp","justPressed","justReleased","pressEvent","onDownCallback","onPressCallback","onUpCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","addCallbacks","onPress","addKey","addKeyCapture","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","A","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","UNDERSCORE","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","INSERT","DELETE","HELP","NUM_LOCK","mouseDownCallback","mouseMoveCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","onMouseOut","onMouseOver","onMouseWheel","withinGame","detail","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_touchedHandler","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","_highestRenderOrderID","MAX_SAFE_INTEGER","_highestRenderObject","_highestInputPriorityID","currentNode","validForInput","checkPointerOver","checkPointerDown","priorityID","_pointerOutHandler","_pointerOverHandler","leave","_releasedHandler","resetMovement","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","changedTouches","_gamepads","SinglePad","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","callbacks","onConnect","onDisconnect","onAxis","onFloat","newPad","connect","_ongamepaddisconnected","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","l","rawPad","setDeadZones","deadZone","buttonCode","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","addButton","getButton","timestamp","rawButtonVal","isNaN","buttons","processButtonDown","processButtonUp","processButtonFloat","axis","axes","processAxisChange","triggerCallback","GamepadButton","disconnectingIndex","axisState","axisCode","buttonValue","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","addedToGroup","removedFromGroup","highestID","highestRenderID","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","checkPixel","_draggedPointerID","updateDrag","startDrag","stopDrag","fixedToCamera","_dragPoint","dragOffset","checkBoundsRect","checkBoundsSprite","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","dragFromCenter","disableDrag","centerOn","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","camerOffset","Events","onKilled","onRevived","onOutOfBounds","onEnterBounds","onAnimationStart","onAnimationComplete","onAnimationLoop","existing","object","group","tween","physicsGroup","audio","loop","tileSprite","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","characterWidth","characterHeight","charsPerRow","xSpacing","ySpacing","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","uuid","addRenderTexture","bitmapData","BitmapData","addBitmapData","Tween","ctx","imageData","ArrayBuffer","textureFrame","Frame","disableTextureUpload","cls","refreshBuffer","_tempR","_tempG","_tempB","loadTexture","getImage","drawSprite","draw","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","addToWorld","copyPixels","sw","sh","alphaMask","sourceRect","maskRect","extract","destination","animations","AnimationManager","autoCull","health","lifespan","checkWorldBounds","outOfBoundsKill","cropRect","_crop","_frame","elapsed","kill","loadFrameData","getFrameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","updateCrop","resetFrame","cw","ch","revive","damage","_outOfBoundsFired","play","frameRate","killOnComplete","overlap","wrapAngle","frameName","P2JS","removeFromWorld","phase","_reset","_frameName","isSpriteSheet","frameData","getFrameByName","getFrame","_scroll","physicsElapsed","autoScroll","stopScroll","safeRemove","_text","_font","_fontSize","_fontWeight","_lineSpacing","parentNode","setShadow","blur","shadowOffsetX","shadowOffsetY","shadowColor","shadowBlur","runWordWrap","lineCap","lineJoin","linePosition","parseFloat","_align","_tint","_onOverFrameName","_onOutFrameName","_onDownFrameName","_onUpFrameName","_onOverFrameID","_onOutFrameID","_onDownFrameID","_onUpFrameID","onOverMouseOnly","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","freezeFrames","forceOut","inputEnabled","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","clearFrames","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","marker","Sound","setState","drawPolygon","poly","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","_temp","renderXY","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","FrameData","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","characterSpacing","lineSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","noCocoon","display","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollLeft","compatMode","pageYOffset","pageXOffset","getAspectRatio","msTouchAction","overflowHidden","getElementById","overflow","translateX","translateY","skewX","skewY","setSmoothingEnabled","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","iOS","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","epiphany","firefox","ie","ieVersion","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","_checkOS","_checkAudio","_checkBrowser","_checkCSS3D","_checkDevice","_checkFeatures","getItem","error","WebGLRenderingContext","maxTouchPoints","msPointerEnabled","pointerEnabled","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","fs","cfs","RegExp","$1","$3","audioElement","canPlayType","Int8Array","Uint8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","isConsoleOpen","profile","profileEnd","forceSetTimeOut","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","avg","truncate","shear","snapTo","gap","snapToFloor","snapToCeil","snapToInArray","arr","low","high","POSITIVE_INFINITY","roundTo","place","base","pow","floorTo","ceilTo","interpolateFloat","weight","angleBetween","angleBetweenPoints","reverseAngle","angleRad","normalizeAngle","normalizeLatitude","lat","normalizeLongitude","lng","chanceRoll","chance","numberArray","maxAdd","minSub","wrapValue","randomSign","isOdd","isEven","minProperty","maxProperty","radians","radianFactor","angleLimit","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","difference","objects","removeRandom","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","stack","shuffleArray","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","degrees","radianToDegreesFactor","seeds","s0","s1","s2","sow","hash","integer","frac","realInRange","between","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","url","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","_pauseAll","_resumeAll","getAll","pendingDelete","_manager","numTweens","isTweening","some","_object","_pause","_resume","pauseAll","resumeAll","manager","_valuesStart","_valuesEnd","_valuesStartRepeat","_duration","_repeat","_yoyo","_reversed","_delayTime","_startTime","_easingFunction","Easing","Linear","None","_interpolationFunction","_chainedTweens","_onStartCallbackFired","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","onStart","onLoop","onComplete","properties","ease","yoyo","_parent","_lastChild","chain","prop","generateData","tick","blob","reversed","times","easing","interpolation","pauseDuration","isFinite","tmp","numChainedTweens","Quadratic","In","Out","InOut","Cubic","Quartic","Quintic","Sinusoidal","Exponential","Circular","Elastic","asin","Back","Bounce","pausedTime","advancedTiming","fps","fpsMin","fpsMax","msMin","msMax","deltaCap","timeCap","Timer","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","useNumericIndex","getFrameIndexes","Animation","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","anim","_frameIndex","isPaused","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","_timeLastFrame","_timeNextFrame","useLocalFrameIndex","frameIndex","dispatchComplete","generateFrameNames","prefix","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","img","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","frameX","frameY","nodeValue","_canvases","_images","_textures","_sounds","_json","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","addDefaultImage","addMissingImage","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","addCanvas","addBinary","binaryData","addSpriteSheet","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","TEXTURE_ATLAS_XML_STARLING","addBitmapFont","xmlData","LoaderParser","bitmapFont","addPhysicsData","addText","addJSON","addImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","getCanvas","getBitmapData","getBitmapFont","getPhysicsData","fixtureKey","fixtures","fixture","checkKey","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","getTilemapData","getFrameByIndex","getTextureFrame","getTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getText","getJSON","getBinary","getKeys","removeCanvas","removeImage","removeSound","removeText","removeJSON","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","isLoading","progress","progressFloat","preloadSprite","baseURL","onLoadStart","onFileStart","onFileComplete","onFileError","_packList","_packIndex","_fileList","_fileIndex","_progressChunk","_xhr","_ajax","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","getAsset","addToFileList","entry","loaded","replaceInFileList","pack","parse","overwrite","script","binary","spritesheet","urls","autoDecode","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","xmlURL","domparser","DOMParser","parseFromString","async","loadXML","atlasJSONArray","atlasURL","atlas","atlasJSONHash","atlasXML","removeFile","loadPack","beginLoad","loadFile","packLoadComplete","xhrLoad","responseText","nextPack","packError","success","onPackComplete","totalLoadedPacks","fileComplete","fileError","getAudioURL","usingWebAudio","usingAudioTag","Audio","XDomainRequest","timeout","dataLoadError","ontimeout","onprogress","jsonLoadComplete","open","send","responseType","extension","lastIndexOf","nextFile","loadNext","response","that","decodeAudioData","onSoundDecode","language","defer","head","csvLoadComplete","xmlLoadComplete","previousIndex","totalLoadedFiles","cacheKey","info","common","getAttribute","letters","textureRect","kernings","second","connectToMaster","markers","autoplay","totalDuration","startTime","currentTime","durationMS","stopTime","pausedPosition","currentMarker","pendingPlayback","override","externalNode","masterGainNode","gainNode","masterGain","createGain","createGainNode","gain","_sound","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_tempLoop","_onDecodedEventDispatched","addMarker","removeMarker","isDecoded","forceRestart","noteOff","createBufferSource","noteGrainOn","decode","muted","prevMarker","mute","_muteVolume","_codeMuted","_unlockSource","noAudio","channels","fakeiOSTouchLock","unlock","disableAudio","disableWebAudio","noteOn","stopAll","soundData","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","inputInfo","spriteBounds","filled","rectangle","spriteInfo","inCamera","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","bodyInfo","renderBodyInfo","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","getColor32","componentToHex","hexToRGB","shorthandRegex","exec","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","getColorInfo","argb","RGBtoHexstring","colorToHexstring","RGBtoWebstring","digits","lsd","msd","hexified","arcade","ninja","box2d","chipmunk","BOX2D","CHIPMUNK","P2","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","TILE_BIAS","forceX","_overlap","_maxOverlap","_velocity1","_velocity2","_newVelocity1","_newVelocity2","_average","_mapData","_result","_total","_angle","_dx","_dy","updateMotion","_velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","_drag","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","overlapOnly","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","collideGroupVsSelf","sprite1","sprite2","separate","_potentials","group1","group2","tilemapLayer","getTiles","tilePadding","separateTile","body1","body2","separateX","separateY","immovable","deltaAbsX","deltaX","embedded","touching","none","overlapX","customSeparateX","bounce","mass","deltaAbsY","deltaY","overlapY","customSeparateY","moves","tile","collisionCallback","collisionCallbackContext","layer","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","blocked","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","getObjectsUnderPointer","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","sourceWidth","sourceHeight","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","_sx","_sy","asx","asy","deltaZ","onFloor","onWall","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_explode","emitParticle","makeParticles","keys","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","setScale","at","Tile","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","layers","tilesets","tiles","collideIndexes","collision","images","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","gid","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createLayer","getLayerIndex","TilemapLayer","indexes","bodies","getImageIndex","getObjectIndex","setTileIndexCallback","getLayer","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","tileColor","debugAlpha","debugColor","debugFill","debugFillColor","debugCallbackColor","scrollFactorX","scrollFactorY","rayStepRate","_mc","ga","dw","dh","tl","prevX","prevY","updateMax","scrollX","scrollY","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coords","wy","wx","lenY","_column","lenX","renderDebug","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","tilewidth","tileheight","opacity","firstgid","tileproperties","tileProperties","imageheight","imagewidth","polyline","polygon","ellipse","drawCoords","setSpacing","enableCircle","enableTile","clearTilemapLayerBodies","convertTilemap","slopeMap","aabb","collideAABBVsAABB","collideAABBVsTile","collideCircleVsTile","shape","friction","gravityScale","maxSpeed","AABB","integrate","xw","yw","setZeroVelocity","oldpos","moveFrom","moveLeft","fx","moveRight","oH","oV","aabbTileProjections","TYPE_FULL","projAABB_Full","TYPE_45DEG","projAABB_45Deg","TYPE_CONCAVE","projAABB_Concave","TYPE_CONVEX","projAABB_Convex","TYPE_22DEGs","projAABB_22DegS","TYPE_22DEGb","projAABB_22DegB","TYPE_67DEGs","projAABB_67DegS","TYPE_67DEGb","projAABB_67DegB","TYPE_HALF","projAABB_Half","COL_NONE","COL_AXIS","COL_OTHER","reportCollisionVsWorld","fy","vx","vy","dp","nx","ny","reportCollisionVsBody","vx1","vy1","dp1","txw","tyw","resolveTile","signx","signy","lenN","lenP","penY","penX","twid","rad","pen","EMPTY","TYPE_EMPTY","setType","updateType","SLOPE_45DEGpn","SQRT2","SLOPE_45DEGnn","SLOPE_45DEGnp","SLOPE_45DEGpp","CONCAVEpn","CONCAVEnn","CONCAVEnp","CONCAVEpp","CONVEXpn","CONVEXnn","CONVEXnp","CONVEXpp","SLOPE_22DEGpnS","slen","SLOPE_22DEGnnS","SLOPE_22DEGnpS","SLOPE_22DEGppS","SLOPE_22DEGpnB","SLOPE_22DEGnnB","SLOPE_22DEGnpB","SLOPE_22DEGppB","SLOPE_67DEGpnS","SLOPE_67DEGnnS","SLOPE_67DEGnpS","SLOPE_67DEGppS","SLOPE_67DEGpnB","SLOPE_67DEGnnB","SLOPE_67DEGnpB","SLOPE_67DEGppB","HALFd","HALFu","HALFl","HALFr","FULL","circleTileProjections","projCircle_Full","projCircle_45Deg","projCircle_Concave","projCircle_Convex","projCircle_22DegS","projCircle_22DegB","projCircle_67DegS","projCircle_67DegB","projCircle_Half","resolveCircleTile","trad","celldp","require",1,"GLMAT_EPSILON","GLMAT_ARRAY_TYPE","setMatrixArrayType","vec2","fromValues","sub","mul","div","squaredDistance","sqrDist","squaredLength","sqrLen","negate","lerp","transformMat2","transformMat2d","transformMat3","transformMat4","vec","fn",2,"Scalar","lineInt","l1","l2","precision","det","eq","segmentsIntersect","q1","q2","da","db","./Scalar",3,"leftOn","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","bc","magA","magB","acos","sqdist",4,"getIntersectionPoint","append","makeCCW","br","isReflex","tmpLine1","tmpLine2","canSee","targetPoly","getCutEdges","tmp1","tmp2","tmpPoly","nDiags","decomp","edges","cutEdges","polys","cutEdge","isSimple","quickDecomp","reflexVertices","steinerPoints","maxlevel","upperInt","lowerInt","upperDist","lowerDist","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","removeCollinearPoints","./Line","./Point",5,6,"./Polygon",7,"description","author","keywords","main","engines","node","repository","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","z-schema","dependencies","poly-decomp","gl-matrix",8,"lowerBound","upperBound","setFromPoints","overlaps","../math/vec2","../utils/Utils",9,"Broadphase","boundingVolumeType","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","d2","boundingRadius","aabbCheck","aabbNeedsUpdate","updateAABB","boundingVolumeCheck","canCollide","motionState","STATIC","KINEMATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",10,"GridBroadphase","defaults","xmin","xmax","ymin","ymax","binsizeX","binsizeY","Ncolliding","bins","Nbins","xmult","ymult","bi","lowerX","lowerY","upperX","upperY","xi1","yi1","xi2","yi2","bin","NbodiesInBin","bj","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane",11,"NaiveBroadphase","../shapes/Shape",12,"Narrowphase","contactEquations","frictionEquations","enableFriction","slipForce","frictionCoefficient","surfaceVelocity","reuseObjects","reusableContactEquations","reusableFrictionEquations","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","collidingBodiesLastStep","TupleDictionary","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","pic_r1","lastCross","crossLength","ContactEquation","FrictionEquation","Convex","Shape","yAxis","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","collidedLastStep","id1","id2","ce","fe","rfe","rce","appendArray","createContactEquation","shapeA","shapeB","firstImpact","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","contactEquation","LINE","CONVEX","convexLine","si","ai","sj","aj","justTest","RECTANGLE","lineRectangle","convexCapsule_tempRect","convexCapsule_tempVec","CAPSULE","convexCapsule","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","circlePosi","circlePosj","numContacts","circleCircle","lineLine","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","lineBody","lineShape","lineOffset","lineAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","circleLine","CIRCLE","lineRadius","circleRadius","circleOffset","circleBody","circleShape","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","pos0","pos1","circleCapsule","convexBody","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","particleBody","convexToparticle","minEdgeNormal","radiusA","radiusB","offsetA","offsetB","planeConvex","numReported","convexPrecision","convexPlane","particlePlane","circleParticle","capsulePlane_tmpCircle","capsulePlane_tmp1","capsulePlane_tmp2","planeCapsule","end1","end2","numContacts1","circlePlane","numContacts2","capsulePlane","planeToCircle","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","angleA","angleB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","edge","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","circleAngle","hfBody","hfShape","hfPos","hfAngle","elementWidth","minCandidateNormal","idxA","idxB","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Convex","../shapes/Rectangle","../utils/TupleDictionary",13,"SAPBroadphase","axisList","axisIndex","_addBodyHandler","_removeBodyHandler","sortAxisList",14,"Constraint","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","eqs","setRelaxation",15,"DistanceConstraint","localAnchorA","localAnchorB","maxForce","ri","rj","computeGq","setMaxForce","minForce","getMaxForce","./Constraint",16,"GearConstraint","AngleLockEquation","setMaxTorque","maxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",17,"LockConstraint","localOffsetB","localAngleB","rot","xAxis",18,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","lowerLimitEnabled","upperLimitEnabled","lowerLimit","upperLimit","upperLimitEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vj","wi","wj","transformedGmult","worldAxisA","worldAnchorA","worldAnchorB","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","../equations/RotationalLockEquation",19,"RevoluteConstraint","pivotA","pivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","getMotorSpeed","../equations/RotationalVelocityEquation",20,"./Equation",21,"computeB","rixn","rjxn","GW","Gq","GiMf","computeGiMf",22,"ARRAY_TYPE","timeStep","Gmult","getBodyInvMass","invMass","getBodyInvInertia","invInertia","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassj","invIi","invIj","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",23,"getSlipForce",24,"worldVectorA","worldVectorB",25,26,"EventEmitter","_listeners","listenerArray",27,"ContactMaterial","materialA","materialB","Material","idCounter","./Material",28,29,"GetArea","sum",30,"crossVZ","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","../../build/vec2",31,"_idCounter","shapes","shapeOffsets","shapeAngles","inertia","fixedRotation","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","timeLastSleepy","concavePath","lastDampingScale","lastAngularDampingScale","lastDampingTimeStep","_wakeUpAfterNarrowphase","updateMassProperties","setDensity","density","totalArea","getArea","shapeAABB","computeAABB","updateBoundingRadius","addShape","removeShape","Icm","computeMomentOfInertia","Body_applyForce_r","applyForce","rotForce","toWorldFrame","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","idleTime","wakeUpEvent","sleep","sleepEvent","sleepTick","dontSleep","speedSquared","speedLimitSquared","SLEEPY","getVelocityFromPosition","store","getAngularVelocityFromPosition","sleepyEvent","../collision/AABB","../events/EventEmitter",32,"Spring","restLength","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f",33,"Capsule","GSSolver","Heightfield","Plane","Solver","../package.json","./collision/AABB","./collision/Broadphase","./collision/GridBroadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/Spring","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Rectangle","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/Utils","./world/World",34,"updateArea","./Shape",35,36,"polyk","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","numer","../math/polyk",37,"maxValue","minValue",38,39,40,41,"./Convex",42,"collisionGroup","collisionMask","material","sensor",43,"GS","iterations","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","solve","sortEquations","iter","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",44,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","addEquation","removeEquation","ISLAND",45,"OverlapKeeper","overlappingLastState","overlappingCurrentState","recordPool","tmpDict","tmpArray1","OverlapKeeperRecord","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./TupleDictionary","./Utils",46,"getKey","dict",47,"howmany",48,"Island","bodyIds",49,"IslandManager","_nodePool","_islandPool","islands","queue","IslandNode","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","neighbors","ni","nj","./Island","./IslandNode",50,51,"springs","disabledBodyCollisionPairs","solver","narrowphase","islandManager","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","doProfiling","lastStepTime","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","bodiesToBeRemoved","fixedStepTime","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","postBroadphaseEvent","pairs","enableBodySleeping","enableIslandSleeping","beginContactEvent","endContactEvent","preSolveEvent","overlappingShapesLastState","overlappingShapesCurrentState","overlapKeeper","v2a","contactMaterialToJSON","pkg","performance","nowOffset","timing","navigationStart","addConstraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","removeConstraint","step_mg","xiw","xjw","interpvelo","timeSinceLastCalled","maxSubSteps","internalStep","internalSteps","h_div_dt","endOverlaps","t0","t1","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","Nshapesi","Nshapesj","runNarrowphase","integrateBody","ev","removeBody","ib_fhMinv","ib_velodt","minv","velo","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","removeSpring","addBody","getBodyById","disableBodyCollision","enableBodyCollision","toJSON","distanceConstraints","revoluteConstraints","prismaticConstraints","lockConstraints","gearConstraints","materials","js","jb","wb","jc","ss","jsonBody","circleShapes","planeShapes","particleShapes","lineShapes","rectangleShapes","convexShapes","capsuleShapes","jsonShape","mats","matId","fromJSON","shapeJSON","id2material","jm","matA","matB","revolute","cs","cms","hitTest_tmp1","hitTest_zero","hitTest_tmp2","pb","ps","pa","zero","NS","setGlobalEquationParameters","parameters","setGlobalStiffness","setGlobalRelaxation","../../package.json","../collision/NaiveBroadphase","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/Constraint","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/Spring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager","useElapsedTime","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","constraint","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createBody","addPolygon","createParticle","convertCollisionObjects","optimize","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","flatten","getFixtureByKey","getGroup","groupID","_ref","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","_groupCallbacksContext","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","setZeroRotation","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","resetDamping","resetMass","clearShapes","shapeChanged","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","loadData","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","updateSpriteTransform","lw","vrot","_j","_ref1","randomPastelHex","drawConvex","drawPlane","drawLine","drawRectangle","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","blendModes","NORMAL","ADD","MULTIPLY","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","scaleModes","DEFAULT","LINEAR","NEAREST","_UID","Float32Array","Uint16Array","Array","INTERACTION_FREQUENCY","AUTO_PREVENT_DEFAULT","RAD_TO_DEG","Math","PI","DEG_TO_RAD","dontSayHello","sayHello","type","navigator","userAgent","toLowerCase","indexOf","args","console","log","apply","window","Point","x","y","prototype","clone","set","constructor","Rectangle","width","height","contains","x1","y1","EmptyRectangle","Polygon","points","slice","call","arguments","p","i","il","length","push","inside","j","xi","yi","xj","yj","intersect","Circle","radius","dx","dy","r2","getBounds","Ellipse","normx","normy","Matrix","a","b","c","d","tx","ty","fromArray","array","toArray","transpose","identityMatrix","determineMatrixArrayType","Matrix2","DisplayObject","position","scale","pivot","rotation","alpha","visible","hitArea","buttonMode","renderable","parent","stage","worldAlpha","_interactive","defaultCursor","worldTransform","color","dynamic","_sr","_cr","filterArea","_bounds","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","setInteractive","interactive","Object","defineProperty","get","value","dirty","item","isMask","_filters","passes","filterPasses","_filterBlock","target","_generateCachedSprite","_destroyCachedSprite","updateTransform","rotationCache","sin","cos","parentTransform","px","py","a00","a01","a10","a11","a02","a12","b00","b01","b10","b11","matrix","getLocalBounds","setStageReference","generateTexture","renderer","bounds","renderTexture","RenderTexture","render","updateCache","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","destroy","DisplayObjectContainer","children","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","index2","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","matrixCache","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","context","tint","blendMode","baseTexture","hasLoaded","onTextureUpdate","onTextureUpdateBind","bind","addEventListener","frame","setTexture","textureChange","cachedTint","w0","w1","h0","h1","x2","y2","x3","y3","x4","y4","currentBlendMode","globalCompositeOperation","blendModesCanvas","valid","globalAlpha","roundPixels","setTransform","smoothProperty","scaleMode","trim","tintedTexture","CanvasTinter","getTintedTexture","drawImage","crop","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","Texture","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","shaderManager","setShader","fastShader","transform","isRotated","childTransform","AbstractFilter","fragmentSrc","uniforms","shaders","padding","FilterBlock","Text","text","style","canvas","document","createElement","getContext","fromCanvas","setText","setStyle","updateText","font","fill","align","stroke","strokeThickness","wordWrap","wordWrapWidth","dropShadow","dropShadowAngle","dropShadowDistance","dropShadowColor","toString","outputText","lines","split","lineWidths","maxLineWidth","lineWidth","measureText","max","lineHeight","determineFontHeight","isCocoonJS","clearRect","strokeStyle","textBaseline","linePositionX","linePositionY","fillStyle","xShadowOffset","yShadowOffset","fillText","strokeText","updateTexture","requiresUpdate","updateWebGLTexture","fontStyle","result","heightCache","body","getElementsByTagName","dummy","dummyText","createTextNode","appendChild","setAttribute","offsetHeight","spaceLeft","words","wordWidth","wordWidthWithSpace","destroyBaseTexture","BitmapText","_pool","fontName","fontSize","parseInt","fonts","size","data","pos","prevCharCode","chars","line","charCode","charCodeAt","test","charAt","charData","kerning","xOffset","yOffset","xAdvance","lineAlignOffsets","alignOffset","lenChildren","lenChars","pop","textWidth","textHeight","Stage","backgroundColor","interactionManager","InteractionManager","setBackgroundColor","setInteractionDelegate","domElement","setTargetDomElement","update","backgroundColorSplit","hex2rgb","hex","substr","backgroundColorString","getMousePosition","mouse","global","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","Date","getTime","timeToCall","id","setTimeout","clearTimeout","requestAnimFrame","rgb2hex","rgb","Function","thisArg","bound","boundArgs","concat","TypeError","F","proto","AjaxRequest","activexmodes","ActiveXObject","XMLHttpRequest","e","canUseNewCanvasBlendModes","fillRect","getImageData","getNextPowerOfTwo","number","EventTarget","listeners","on","listener","unshift","dispatchEvent","emit","event","removeEventListener","off","removeAllEventListeners","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","u","v","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","src","join","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","compileProgram","vertexSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniformLocation","initUniforms","uniform","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","z","w","createWebGLTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","PrimitiveShader","tintColor","attribute","ComplexPrimitiveShader","WebGLGraphics","renderGraphics","graphics","webGLData","projection","offset","primitiveShader","updateGraphics","webGL","_webGL","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","last","uniform2f","uniform3fv","uniform1f","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","switchMode","buildComplexPoly","buildPoly","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","quadraticBezierCurve","fromX","fromY","cpX","cpY","toX","toY","getPt","n1","n2","perc","diff","xa","ya","xb","yb","recPoints","vecPos","triangles","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","sqrt","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","view","transparent","antialias","preserveDrawingBuffer","defaultRenderer","contextLost","handleContextLost","contextRestoredLost","handleContextRestored","options","premultipliedAlpha","stencil","forEach","name","glContextId","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","SRC_ALPHA","DST_ALPHA","DST_COLOR","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","defaultShader","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","colorMask","__stage","removeEvents","updateTextures","_interactiveEventsAdded","setTarget","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","frameUpdates","updateTextureFrame","texturesToDestroy","destroyTexture","texturesToUpdate","glTexture","deleteTexture","_updateWebGLuvs","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","_powerOf2","_dirty","preventDefault","e2","setContext","primitiveBatch","blendModeWebGL","blendFunc","maskStack","maskPosition","reverse","count","maskData","stencilStack","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","EQUAL","DECR","INCR","_currentGraphics","complexPrimativeShader","maxAttibs","attribState","tempAttribState","shaderMap","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","numVerts","numIndices","vertices","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","vertexBuffer","DYNAMIC_DRAW","sprite","blendChange","uvs","_uvs","verticies","aX","aY","x0","y0","renderTilingSprite","tilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","filter","FilterTexture","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","temp","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","framebuffer","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","roundColor","stringColor","tintCache","tintMethod","convertTintToImage","tintImage","Image","toDataURL","tintWithMultiply","tintWithOverlay","tintWithPerPixel","rgbValues","pixelData","pixels","putImageData","step","cacheStepsPerColorChannel","min","canUseMultiply","CanvasRenderer","clearBeforeRender","refresh","screencanvas","renderStripFlat","strip","beginPath","moveTo","lineTo","closePath","renderStrip","u0","u1","u2","v0","v1","v2","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","CanvasBuffer","strokeRect","arc","ellipseData","h","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","quadraticCurveTo","len","rect","currentPath","boundsPadding","destroyCachedSprite","lineStyle","filling","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","atan2","endAngle","anticlockwise","startX","startY","sweep","segs","theta","theta2","cTheta","sTheta","remainder","real","angle","s","drawPath","path","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","canvasBuffer","translate","updateBounds","Strip","colors","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","centerX","centerY","normX","normY","updateFrame","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","refreshTexture","generateTilingTexture","needsUpdate","__tilePattern","createPattern","forcePowerOfTwo","targetWidth","targetHeight","isFrame","newTextureRequired","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","scope","onload","content","onerror","imageUrl","_pixiId","updateSourceImage","newSrc","image","crossOrigin","TextureCacheIdGenerator","FrameCache","noFrame","setFrame","onBaseTextureLoaded","onLoaded","destroyBase","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","updateBase","originalWorldTransform","tempMatrix","exports","module","define","amd","Phaser","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","Utils","transposeArray","rotateArray","direction","parseDimension","dimension","f","innerWidth","innerHeight","shuffle","floor","random","pad","str","dir","padlen","right","ceil","left","isPlainObject","obj","nodeType","hasOwnProperty","extend","copy","copyIsArray","deep","isArray","mixin","from","to","o","childNodes","cloneNode","arg","fun","t","Uint32Array","CheapArray","assert","warn","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","distance","round","distanceRounded","out","circumferencePoint","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","invert","add","subtract","multiply","divide","clampX","clamp","clampY","output","radToDeg","angleSq","rotate","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","interpolate","project","amt","projectUnit","centroid","pointslength","floorAll","inflate","containsRect","intersection","tolerance","intersectsRaw","union","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","Line","fromSprite","startSprite","endSprite","useCenter","center","asSegment","intersectsPoints","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","uc","ua","ub","_points","p1","p2","avgHeight","Number","MAX_VALUE","area","Camera","game","world","screenView","deadzone","atLimit","_edge","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","paused","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","current","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","onLoadComplete","loadComplete","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","preUpdate","removeAll","setCurrentState","totalQueuedFiles","totalQueuedPacks","link","getCurrentState","preRender","renderType","LinkedList","next","prev","first","callAll","entity","ArrayList","list","exists","getIndex","idx","Signal","_bindings","_prevParams","self","dispatch","memorize","_shouldPropagate","active","validateListener","fnName","replace","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","signal","_isOnce","_signal","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","resolution","setResolution","pointer","toFixed","totalElapsedSeconds","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","disableVisibilityChange","checkOffsetInterval","currentRenderOrderID","_hiddenVar","_nextOffsetCheck","_backgroundColor","config","parseConfig","now","Canvas","getOffset","fullScreenScaleMode","_this","_onChange","visibilityChange","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","onpagehide","onpageshow","onblur","onfocus","focusLoss","focusGain","gamePaused","gameResumed","Color","hexToColor","getColor","getRGB","RGBtoString","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","alive","classType","cursor","cameraOffset","enableBodyDebug","_sortProperty","_cache","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","events","onAddedToGroup","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","previous","swap","child1","bringToTop","sendToBack","moveUp","moveDown","xy","oldChild","newChild","onRemovedFromGroup","hasProperty","setProperty","operation","force","checkAlive","checkVisible","setAll","setAllChildren","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","method","methodLength","contextLength","renderOrderID","checkExists","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","startIndex","destroyPhase","removeBetween","destroyChildren","soft","World","setBounds","wrap","useBounds","horizontal","vertical","integerInRange","ScaleManager","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","pageAlignHorizontally","pageAlignVertically","maxIterations","orientationSprite","enterLandscape","enterPortrait","enterIncorrectOrientation","leaveIncorrectOrientation","hasResized","fullScreenTarget","enterFullScreen","leaveFullScreen","orientation","outerWidth","outerHeight","scaleFactor","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","NO_SCALE","_startHeight","_check","checkOrientation","checkResize","device","cocoonJS","fullScreenChange","EXACT_FIT","SHOW_ALL","startFullScreen","isFullScreen","fullscreen","smoothed","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","setShowAll","forceOrientation","orientationImage","checkImageKey","checkOrientationState","isLandscape","iPad","webApp","desktop","android","chrome","scrollTo","_iterations","setInterval","setScreenSize","documentElement","setMaximum","setExactFit","clearInterval","marginLeft","marginTop","multiplier","availableWidth","availableHeight","Game","physicsConfig","isRunning","raf","net","debug","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","enableDebug","RandomDataGenerator","_onBoot","readyState","seed","Device","setUpRenderer","checkFullScreenSupport","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","webAudio","trident","addToDOM","enableStep","disableStep","setMute","unsetMute","hitCanvas","hitContext","moveCallbacks","moveCallback","moveCallbackContext","pollRate","disabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","currentPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","Pointer","Mouse","Keyboard","Touch","MSPointer","Gamepad","setMoveCallback","addMoveCallback","deleteMoveCallback","addPointer","hard","resetSpeed","startPointer","totalActivePointers","updatePointer","identifier","move","stopPointer","getPointer","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","wt","hitTest","localPoint","worldVisible","TileSprite","Key","keycode","enabled","isDown","isUp","altKey","ctrlKey","shiftKey","timeDown","duration","timeUp","repeats","keyCode","onHoldCallback","onHoldContext","processKeyDown","processKeyUp","justPressed","justReleased","pressEvent","onDownCallback","onPressCallback","onUpCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","addCallbacks","onPress","addKey","addKeyCapture","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","A","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","UNDERSCORE","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","INSERT","DELETE","HELP","NUM_LOCK","mouseDownCallback","mouseMoveCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","onMouseOut","onMouseOver","onMouseWheel","withinGame","detail","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_touchedHandler","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","_highestRenderOrderID","MAX_SAFE_INTEGER","_highestRenderObject","_highestInputPriorityID","currentNode","validForInput","checkPointerOver","checkPointerDown","priorityID","_pointerOutHandler","_pointerOverHandler","leave","_releasedHandler","resetMovement","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","changedTouches","_gamepads","SinglePad","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","callbacks","onConnect","onDisconnect","onAxis","onFloat","newPad","connect","_ongamepaddisconnected","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","l","rawPad","setDeadZones","deadZone","buttonCode","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","addButton","getButton","timestamp","rawButtonVal","isNaN","buttons","processButtonDown","processButtonUp","processButtonFloat","axis","axes","processAxisChange","triggerCallback","GamepadButton","disconnectingIndex","axisState","axisCode","buttonValue","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","addedToGroup","removedFromGroup","highestID","highestRenderID","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","checkPixel","_draggedPointerID","updateDrag","startDrag","stopDrag","fixedToCamera","_dragPoint","dragOffset","checkBoundsRect","checkBoundsSprite","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","dragFromCenter","disableDrag","centerOn","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","camerOffset","Events","onKilled","onRevived","onOutOfBounds","onEnterBounds","onAnimationStart","onAnimationComplete","onAnimationLoop","existing","object","group","tween","physicsGroup","audio","loop","tileSprite","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","characterWidth","characterHeight","charsPerRow","xSpacing","ySpacing","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","uuid","addRenderTexture","bitmapData","BitmapData","addBitmapData","Tween","ctx","imageData","ArrayBuffer","textureFrame","Frame","disableTextureUpload","cls","refreshBuffer","_tempR","_tempG","_tempB","loadTexture","getImage","drawSprite","draw","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","addToWorld","copyPixels","sw","sh","alphaMask","sourceRect","maskRect","extract","destination","animations","AnimationManager","autoCull","health","lifespan","checkWorldBounds","outOfBoundsKill","cropRect","_crop","_frame","elapsed","kill","loadFrameData","getFrameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","updateCrop","resetFrame","cw","ch","revive","damage","_outOfBoundsFired","play","frameRate","killOnComplete","overlap","wrapAngle","frameName","P2JS","removeFromWorld","phase","_reset","_frameName","isSpriteSheet","frameData","getFrameByName","getFrame","sourceWidth","sourceHeight","local","_scroll","physicsElapsed","autoScroll","stopScroll","safeRemove","_text","_font","_fontSize","_fontWeight","_lineSpacing","parentNode","setShadow","blur","shadowOffsetX","shadowOffsetY","shadowColor","shadowBlur","runWordWrap","lineCap","lineJoin","linePosition","parseFloat","_align","_tint","_onOverFrameName","_onOutFrameName","_onDownFrameName","_onUpFrameName","_onOverFrameID","_onOutFrameID","_onDownFrameID","_onUpFrameID","onOverMouseOnly","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","freezeFrames","forceOut","inputEnabled","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","clearFrames","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","marker","Sound","setState","drawPolygon","poly","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","_temp","renderXY","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","FrameData","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","characterSpacing","lineSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","noCocoon","display","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollLeft","compatMode","pageYOffset","pageXOffset","getAspectRatio","msTouchAction","overflowHidden","getElementById","overflow","translateX","translateY","skewX","skewY","setSmoothingEnabled","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","iOS","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","epiphany","firefox","ie","ieVersion","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","_checkOS","_checkAudio","_checkBrowser","_checkCSS3D","_checkDevice","_checkFeatures","getItem","error","WebGLRenderingContext","maxTouchPoints","msPointerEnabled","pointerEnabled","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","fs","cfs","RegExp","$1","$3","audioElement","canPlayType","Int8Array","Uint8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","isConsoleOpen","profile","profileEnd","forceSetTimeOut","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","avg","truncate","shear","snapTo","gap","snapToFloor","snapToCeil","snapToInArray","arr","low","high","POSITIVE_INFINITY","roundTo","place","base","pow","floorTo","ceilTo","interpolateFloat","weight","angleBetween","angleBetweenPoints","reverseAngle","angleRad","normalizeAngle","normalizeLatitude","lat","normalizeLongitude","lng","chanceRoll","chance","numberArray","maxAdd","minSub","wrapValue","randomSign","isOdd","isEven","minProperty","maxProperty","radians","radianFactor","angleLimit","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","difference","objects","removeRandom","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","stack","shuffleArray","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","degrees","radianToDegreesFactor","seeds","s0","s1","s2","sow","hash","integer","frac","realInRange","between","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","url","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","_pauseAll","_resumeAll","getAll","pendingDelete","_manager","numTweens","isTweening","some","_object","_pause","_resume","pauseAll","resumeAll","manager","_valuesStart","_valuesEnd","_valuesStartRepeat","_duration","_repeat","_yoyo","_reversed","_delayTime","_startTime","_easingFunction","Easing","Linear","None","_interpolationFunction","_chainedTweens","_onStartCallbackFired","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","onStart","onLoop","onComplete","properties","ease","yoyo","_parent","_lastChild","chain","prop","generateData","tick","blob","reversed","times","easing","interpolation","pauseDuration","isFinite","tmp","numChainedTweens","Quadratic","In","Out","InOut","Cubic","Quartic","Quintic","Sinusoidal","Exponential","Circular","Elastic","asin","Back","Bounce","pausedTime","advancedTiming","fps","fpsMin","fpsMax","msMin","msMax","deltaCap","timeCap","Timer","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","useNumericIndex","getFrameIndexes","Animation","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","anim","_frameIndex","isPaused","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","_timeLastFrame","_timeNextFrame","useLocalFrameIndex","frameIndex","dispatchComplete","generateFrameNames","prefix","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","img","row","column","JSONData","json","newFrame","filename","cacheKey","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","frameX","frameY","nodeValue","_canvases","_images","_textures","_sounds","_json","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","addDefaultImage","addMissingImage","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","addCanvas","addBinary","binaryData","addSpriteSheet","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","TEXTURE_ATLAS_XML_STARLING","addBitmapFont","xmlData","LoaderParser","bitmapFont","addPhysicsData","addText","addJSON","addImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","getCanvas","getBitmapData","getBitmapFont","getPhysicsData","fixtureKey","fixtures","fixture","checkKey","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","getTilemapData","getFrameByIndex","getTextureFrame","getTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getText","getJSON","getBinary","getKeys","removeCanvas","removeImage","removeSound","removeText","removeJSON","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","isLoading","progress","progressFloat","preloadSprite","baseURL","onLoadStart","onFileStart","onFileComplete","onFileError","_packList","_packIndex","_fileList","_fileIndex","_progressChunk","_xhr","_ajax","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","getAsset","addToFileList","entry","loaded","replaceInFileList","pack","parse","overwrite","script","binary","spritesheet","urls","autoDecode","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","xmlURL","domparser","DOMParser","parseFromString","async","loadXML","atlasJSONArray","atlasURL","atlas","atlasJSONHash","atlasXML","removeFile","loadPack","beginLoad","loadFile","packLoadComplete","xhrLoad","responseText","nextPack","packError","success","onPackComplete","totalLoadedPacks","fileComplete","fileError","getAudioURL","usingWebAudio","usingAudioTag","Audio","XDomainRequest","timeout","dataLoadError","ontimeout","onprogress","jsonLoadComplete","open","send","responseType","extension","lastIndexOf","nextFile","loadNext","response","that","decodeAudioData","onSoundDecode","language","defer","head","csvLoadComplete","xmlLoadComplete","previousIndex","totalLoadedFiles","info","common","getAttribute","letters","textureRect","kernings","second","connectToMaster","markers","autoplay","totalDuration","startTime","currentTime","durationMS","stopTime","pausedPosition","currentMarker","pendingPlayback","override","externalNode","masterGainNode","gainNode","masterGain","createGain","createGainNode","gain","_sound","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_tempLoop","_onDecodedEventDispatched","addMarker","removeMarker","isDecoded","forceRestart","noteOff","createBufferSource","noteGrainOn","decode","muted","prevMarker","mute","_muteVolume","_codeMuted","_unlockSource","noAudio","channels","fakeiOSTouchLock","unlock","disableAudio","disableWebAudio","noteOn","stopAll","soundData","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","inputInfo","spriteBounds","filled","rectangle","spriteInfo","inCamera","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","bodyInfo","renderBodyInfo","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","getColor32","componentToHex","hexToRGB","shorthandRegex","exec","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","getColorInfo","argb","RGBtoHexstring","colorToHexstring","RGBtoWebstring","digits","lsd","msd","hexified","arcade","ninja","box2d","chipmunk","BOX2D","CHIPMUNK","P2","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","TILE_BIAS","forceX","_overlap","_maxOverlap","_velocity1","_velocity2","_newVelocity1","_newVelocity2","_average","_mapData","_result","_total","_angle","_dx","_dy","updateMotion","_velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","_drag","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","overlapOnly","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","collideGroupVsSelf","sprite1","sprite2","separate","_potentials","group1","group2","tilemapLayer","getTiles","tilePadding","separateTile","body1","body2","separateX","separateY","immovable","deltaAbsX","deltaX","embedded","touching","none","overlapX","customSeparateX","bounce","mass","deltaAbsY","deltaY","overlapY","customSeparateY","moves","tile","collisionCallback","collisionCallbackContext","layer","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","blocked","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","getObjectsUnderPointer","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","_sx","_sy","asx","asy","deltaZ","onFloor","onWall","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_explode","emitParticle","makeParticles","keys","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","setScale","at","Tile","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","layers","tilesets","tiles","collideIndexes","collision","images","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","gid","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createLayer","getLayerIndex","TilemapLayer","indexes","bodies","getImageIndex","getObjectIndex","setTileIndexCallback","getLayer","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","tileColor","debugAlpha","debugColor","debugFill","debugFillColor","debugCallbackColor","scrollFactorX","scrollFactorY","rayStepRate","_mc","ga","dw","dh","tl","prevX","prevY","updateMax","scrollX","scrollY","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coords","wy","wx","lenY","_column","lenX","renderDebug","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","tilewidth","tileheight","opacity","firstgid","tileproperties","tileProperties","imageheight","imagewidth","polyline","polygon","ellipse","drawCoords","setSpacing","enableCircle","enableTile","clearTilemapLayerBodies","convertTilemap","slopeMap","aabb","collideAABBVsAABB","collideAABBVsTile","collideCircleVsTile","shape","friction","gravityScale","maxSpeed","AABB","integrate","xw","yw","setZeroVelocity","oldpos","moveFrom","moveLeft","fx","moveRight","oH","oV","aabbTileProjections","TYPE_FULL","projAABB_Full","TYPE_45DEG","projAABB_45Deg","TYPE_CONCAVE","projAABB_Concave","TYPE_CONVEX","projAABB_Convex","TYPE_22DEGs","projAABB_22DegS","TYPE_22DEGb","projAABB_22DegB","TYPE_67DEGs","projAABB_67DegS","TYPE_67DEGb","projAABB_67DegB","TYPE_HALF","projAABB_Half","COL_NONE","COL_AXIS","COL_OTHER","reportCollisionVsWorld","fy","vx","vy","dp","nx","ny","reportCollisionVsBody","vx1","vy1","dp1","txw","tyw","resolveTile","signx","signy","lenN","lenP","penY","penX","twid","rad","pen","EMPTY","TYPE_EMPTY","setType","updateType","SLOPE_45DEGpn","SQRT2","SLOPE_45DEGnn","SLOPE_45DEGnp","SLOPE_45DEGpp","CONCAVEpn","CONCAVEnn","CONCAVEnp","CONCAVEpp","CONVEXpn","CONVEXnn","CONVEXnp","CONVEXpp","SLOPE_22DEGpnS","slen","SLOPE_22DEGnnS","SLOPE_22DEGnpS","SLOPE_22DEGppS","SLOPE_22DEGpnB","SLOPE_22DEGnnB","SLOPE_22DEGnpB","SLOPE_22DEGppB","SLOPE_67DEGpnS","SLOPE_67DEGnnS","SLOPE_67DEGnpS","SLOPE_67DEGppS","SLOPE_67DEGpnB","SLOPE_67DEGnnB","SLOPE_67DEGnpB","SLOPE_67DEGppB","HALFd","HALFu","HALFl","HALFr","FULL","circleTileProjections","projCircle_Full","projCircle_45Deg","projCircle_Concave","projCircle_Convex","projCircle_22DegS","projCircle_22DegB","projCircle_67DegS","projCircle_67DegB","projCircle_Half","resolveCircleTile","trad","celldp","require",1,"GLMAT_EPSILON","GLMAT_ARRAY_TYPE","setMatrixArrayType","vec2","fromValues","sub","mul","div","squaredDistance","sqrDist","squaredLength","sqrLen","negate","lerp","transformMat2","transformMat2d","transformMat3","transformMat4","vec","fn",2,"Scalar","lineInt","l1","l2","precision","det","eq","segmentsIntersect","q1","q2","da","db","./Scalar",3,"leftOn","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","bc","magA","magB","acos","sqdist",4,"getIntersectionPoint","append","makeCCW","br","isReflex","tmpLine1","tmpLine2","canSee","targetPoly","getCutEdges","tmp1","tmp2","tmpPoly","nDiags","decomp","edges","cutEdges","polys","cutEdge","isSimple","quickDecomp","reflexVertices","steinerPoints","maxlevel","upperInt","lowerInt","upperDist","lowerDist","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","removeCollinearPoints","./Line","./Point",5,6,"./Polygon",7,"description","author","keywords","main","engines","node","repository","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","z-schema","dependencies","poly-decomp","gl-matrix",8,"lowerBound","upperBound","setFromPoints","overlaps","../math/vec2","../utils/Utils",9,"Broadphase","boundingVolumeType","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","d2","boundingRadius","aabbCheck","aabbNeedsUpdate","updateAABB","boundingVolumeCheck","canCollide","motionState","STATIC","KINEMATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",10,"GridBroadphase","defaults","xmin","xmax","ymin","ymax","binsizeX","binsizeY","Ncolliding","bins","Nbins","xmult","ymult","bi","lowerX","lowerY","upperX","upperY","xi1","yi1","xi2","yi2","bin","NbodiesInBin","bj","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane",11,"NaiveBroadphase","../shapes/Shape",12,"Narrowphase","contactEquations","frictionEquations","enableFriction","slipForce","frictionCoefficient","surfaceVelocity","reuseObjects","reusableContactEquations","reusableFrictionEquations","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","collidingBodiesLastStep","TupleDictionary","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","pic_r1","lastCross","crossLength","ContactEquation","FrictionEquation","Convex","Shape","yAxis","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","collidedLastStep","id1","id2","ce","fe","rfe","rce","appendArray","createContactEquation","shapeA","shapeB","firstImpact","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","contactEquation","LINE","CONVEX","convexLine","si","ai","sj","aj","justTest","RECTANGLE","lineRectangle","convexCapsule_tempRect","convexCapsule_tempVec","CAPSULE","convexCapsule","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","circlePosi","circlePosj","numContacts","circleCircle","lineLine","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","lineBody","lineShape","lineOffset","lineAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","circleLine","CIRCLE","lineRadius","circleRadius","circleOffset","circleBody","circleShape","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","pos0","pos1","circleCapsule","convexBody","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","particleBody","convexToparticle","minEdgeNormal","radiusA","radiusB","offsetA","offsetB","planeConvex","numReported","convexPrecision","convexPlane","particlePlane","circleParticle","capsulePlane_tmpCircle","capsulePlane_tmp1","capsulePlane_tmp2","planeCapsule","end1","end2","numContacts1","circlePlane","numContacts2","capsulePlane","planeToCircle","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","angleA","angleB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","edge","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","circleAngle","hfBody","hfShape","hfPos","hfAngle","elementWidth","minCandidateNormal","idxA","idxB","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Convex","../shapes/Rectangle","../utils/TupleDictionary",13,"SAPBroadphase","axisList","axisIndex","_addBodyHandler","_removeBodyHandler","sortAxisList",14,"Constraint","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","eqs","setRelaxation",15,"DistanceConstraint","localAnchorA","localAnchorB","maxForce","ri","rj","computeGq","setMaxForce","minForce","getMaxForce","./Constraint",16,"GearConstraint","AngleLockEquation","setMaxTorque","maxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",17,"LockConstraint","localOffsetB","localAngleB","rot","xAxis",18,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","lowerLimitEnabled","upperLimitEnabled","lowerLimit","upperLimit","upperLimitEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vj","wi","wj","transformedGmult","worldAxisA","worldAnchorA","worldAnchorB","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","../equations/RotationalLockEquation",19,"RevoluteConstraint","pivotA","pivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","getMotorSpeed","../equations/RotationalVelocityEquation",20,"./Equation",21,"computeB","rixn","rjxn","GW","Gq","GiMf","computeGiMf",22,"ARRAY_TYPE","timeStep","Gmult","getBodyInvMass","invMass","getBodyInvInertia","invInertia","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassj","invIi","invIj","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",23,"getSlipForce",24,"worldVectorA","worldVectorB",25,26,"EventEmitter","_listeners","listenerArray",27,"ContactMaterial","materialA","materialB","Material","idCounter","./Material",28,29,"GetArea","sum",30,"crossVZ","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","../../build/vec2",31,"_idCounter","shapes","shapeOffsets","shapeAngles","inertia","fixedRotation","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","timeLastSleepy","concavePath","lastDampingScale","lastAngularDampingScale","lastDampingTimeStep","_wakeUpAfterNarrowphase","updateMassProperties","setDensity","density","totalArea","getArea","shapeAABB","computeAABB","updateBoundingRadius","addShape","removeShape","Icm","computeMomentOfInertia","Body_applyForce_r","applyForce","rotForce","toWorldFrame","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","idleTime","wakeUpEvent","sleep","sleepEvent","sleepTick","dontSleep","speedSquared","speedLimitSquared","SLEEPY","getVelocityFromPosition","store","getAngularVelocityFromPosition","sleepyEvent","../collision/AABB","../events/EventEmitter",32,"Spring","restLength","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f",33,"Capsule","GSSolver","Heightfield","Plane","Solver","../package.json","./collision/AABB","./collision/Broadphase","./collision/GridBroadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/Spring","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Rectangle","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/Utils","./world/World",34,"updateArea","./Shape",35,36,"polyk","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","numer","../math/polyk",37,"maxValue","minValue",38,39,40,41,"./Convex",42,"collisionGroup","collisionMask","material","sensor",43,"GS","iterations","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","solve","sortEquations","iter","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",44,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","addEquation","removeEquation","ISLAND",45,"OverlapKeeper","overlappingLastState","overlappingCurrentState","recordPool","tmpDict","tmpArray1","OverlapKeeperRecord","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./TupleDictionary","./Utils",46,"getKey","dict",47,"howmany",48,"Island","bodyIds",49,"IslandManager","_nodePool","_islandPool","islands","queue","IslandNode","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","neighbors","ni","nj","./Island","./IslandNode",50,51,"springs","disabledBodyCollisionPairs","solver","narrowphase","islandManager","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","doProfiling","lastStepTime","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","bodiesToBeRemoved","fixedStepTime","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","postBroadphaseEvent","pairs","enableBodySleeping","enableIslandSleeping","beginContactEvent","endContactEvent","preSolveEvent","overlappingShapesLastState","overlappingShapesCurrentState","overlapKeeper","v2a","contactMaterialToJSON","pkg","performance","nowOffset","timing","navigationStart","addConstraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","removeConstraint","step_mg","xiw","xjw","interpvelo","timeSinceLastCalled","maxSubSteps","internalStep","internalSteps","h_div_dt","endOverlaps","t0","t1","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","Nshapesi","Nshapesj","runNarrowphase","integrateBody","ev","removeBody","ib_fhMinv","ib_velodt","minv","velo","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","removeSpring","addBody","getBodyById","disableBodyCollision","enableBodyCollision","toJSON","distanceConstraints","revoluteConstraints","prismaticConstraints","lockConstraints","gearConstraints","materials","js","jb","wb","jc","ss","jsonBody","circleShapes","planeShapes","particleShapes","lineShapes","rectangleShapes","convexShapes","capsuleShapes","jsonShape","mats","matId","fromJSON","shapeJSON","id2material","jm","matA","matB","revolute","cs","cms","hitTest_tmp1","hitTest_zero","hitTest_tmp2","pb","ps","pa","zero","NS","setGlobalEquationParameters","parameters","setGlobalStiffness","setGlobalRelaxation","../../package.json","../collision/NaiveBroadphase","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/Constraint","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/Spring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager","useElapsedTime","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","constraint","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createBody","addPolygon","createParticle","convertCollisionObjects","optimize","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","flatten","getFixtureByKey","getGroup","groupID","_ref","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","_groupCallbacksContext","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","setZeroRotation","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","resetDamping","resetMass","clearShapes","shapeChanged","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","loadData","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","updateSpriteTransform","lw","vrot","_j","_ref1","randomPastelHex","drawConvex","drawPlane","drawLine","drawRectangle","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex"],"mappings":"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"} \ No newline at end of file diff --git a/build/phaser.min.js b/build/phaser.min.js index aa3f36485..925913ccc 100644 --- a/build/phaser.min.js +++ b/build/phaser.min.js @@ -1,25 +1,25 @@ -/* Phaser v2.1.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ +/* Phaser v2.0.7 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ -(function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v1.6",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,b.Float32Array=Float32Array||Array,b.Uint16Array=Uint16Array||Array,b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.dontSayHello=!1,b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://pixijs.com %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://pixjs.com");b.dontSayHello=!0}},b.Point=function(a,b){this.x=a||0,this.y=b||0},b.Point.prototype.clone=function(){return new b.Point(this.x,this.y)},b.Point.prototype.set=function(a,b){this.x=a||0,this.y=b||(0!==b?this.x:0)},b.Point.prototype.constructor=b.Point,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this.points=a},b.Polygon.prototype.clone=function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Circle=function(a,b,c){this.x=a||0,this.y=b||0,this.radius=c||0},b.Circle.prototype.clone=function(){return new b.Circle(this.x,this.y,this.radius)},b.Circle.prototype.contains=function(a,b){if(this.radius<=0)return!1;var c=this.x-a,d=this.y-b,e=this.radius*this.radius;return c*=c,d*=d,e>=c+d},b.Circle.prototype.getBounds=function(){return new b.Rectangle(this.x-this.radius,this.y-this.radius,this.width,this.height)},b.Circle.prototype.constructor=b.Circle,b.Ellipse=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Ellipse.prototype.clone=function(){return new b.Ellipse(this.x,this.y,this.width,this.height)},b.Ellipse.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=(a-this.x)/this.width,d=(b-this.y)/this.height;return c*=c,d*=d,1>=c+d},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},b.Ellipse.prototype.constructor=b.Ellipse,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new Float32Array(9));var b=this.array;return a?(b[0]=this.a,b[1]=this.c,b[2]=0,b[3]=this.b,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.b,b[2]=this.tx,b[3]=this.c,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},b.identityMatrix=new b.Matrix,b.determineMatrixArrayType=function(){return"undefined"!=typeof Float32Array?Float32Array:Array},b.Matrix2=b.determineMatrixArrayType(),b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this.color=[],this.dynamic=!0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.setInteractive=function(a){this.interactive=a},Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+" The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.children.indexOf(a),d=this.children.indexOf(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(a>=0&&a0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.getBounds=function(a){if(0===this.children.length)return b.EmptyRectangle;if(a){var c=this.worldTransform;this.worldTransform=a,this.updateTransform(),this.worldTransform=c}for(var d,e,f,g=1/0,h=1/0,i=-1/0,j=-1/0,k=!1,l=0,m=this.children.length;m>l;l++){var n=this.children[l];n.visible&&(k=!0,d=this.children[l].getBounds(a),g=ge?i:e,j=j>f?j:f)}if(!k)return b.EmptyRectangle;var o=this._bounds;return o.x=g,o.y=h,o.width=i-g,o.height=j-h,o},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a.context);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a.context)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,a.baseTexture.hasLoaded?this.onTextureUpdate():(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!==a.baseTexture?(this.textureChange=!0,this.texture=a):this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.c,k=h.b,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),this.texture.valid){a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,0|this.worldTransform.tx,0|this.worldTransform.ty):a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,this.worldTransform.tx,this.worldTransform.ty),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var c=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,d=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)}for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fe?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global};for(var c=0,d=["ms","moz","webkit","o"],e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget=function(){var a={};this.addEventListener=this.on=function(b,c){void 0===a[b]&&(a[b]=[]),-1===a[b].indexOf(c)&&a[b].unshift(c)},this.dispatchEvent=this.emit=function(b){if(a[b.type]&&a[b.type].length)for(var c=a[b.type].length-1;c>=0;c--)a[b.type][c](b)},this.removeEventListener=this.off=function(b,c){if(void 0!==a[b]){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}},this.removeAllEventListeners=function(b){var c=a[b];c&&(c.length=0)}},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return window.console.log("PIXI Warning: shape too complex to fill"),[];for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.attributes=[],this.init()},b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA; +(function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v1.6",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.dontSayHello=!1,b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://pixijs.com %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://pixjs.com");b.dontSayHello=!0}},b.Point=function(a,b){this.x=a||0,this.y=b||0},b.Point.prototype.clone=function(){return new b.Point(this.x,this.y)},b.Point.prototype.set=function(a,b){this.x=a||0,this.y=b||(0!==b?this.x:0)},b.Point.prototype.constructor=b.Point,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this.points=a},b.Polygon.prototype.clone=function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Circle=function(a,b,c){this.x=a||0,this.y=b||0,this.radius=c||0},b.Circle.prototype.clone=function(){return new b.Circle(this.x,this.y,this.radius)},b.Circle.prototype.contains=function(a,b){if(this.radius<=0)return!1;var c=this.x-a,d=this.y-b,e=this.radius*this.radius;return c*=c,d*=d,e>=c+d},b.Circle.prototype.getBounds=function(){return new b.Rectangle(this.x-this.radius,this.y-this.radius,this.width,this.height)},b.Circle.prototype.constructor=b.Circle,b.Ellipse=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Ellipse.prototype.clone=function(){return new b.Ellipse(this.x,this.y,this.width,this.height)},b.Ellipse.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=(a-this.x)/this.width,d=(b-this.y)/this.height;return c*=c,d*=d,1>=c+d},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},b.Ellipse.prototype.constructor=b.Ellipse,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new Float32Array(9));var b=this.array;return a?(b[0]=this.a,b[1]=this.c,b[2]=0,b[3]=this.b,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.b,b[2]=this.tx,b[3]=this.c,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},b.identityMatrix=new b.Matrix,b.determineMatrixArrayType=function(){return"undefined"!=typeof Float32Array?Float32Array:Array},b.Matrix2=b.determineMatrixArrayType(),b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this.color=[],this.dynamic=!0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.setInteractive=function(a){this.interactive=a},Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+" The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.children.indexOf(a),d=this.children.indexOf(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(a>=0&&a0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.getBounds=function(a){if(0===this.children.length)return b.EmptyRectangle;if(a){var c=this.worldTransform;this.worldTransform=a,this.updateTransform(),this.worldTransform=c}for(var d,e,f,g=1/0,h=1/0,i=-1/0,j=-1/0,k=!1,l=0,m=this.children.length;m>l;l++){var n=this.children[l];n.visible&&(k=!0,d=this.children[l].getBounds(a),g=ge?i:e,j=j>f?j:f)}if(!k)return b.EmptyRectangle;var o=this._bounds;return o.x=g,o.y=h,o.width=i-g,o.height=j-h,o},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a.context);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a.context)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,a.baseTexture.hasLoaded?this.onTextureUpdate():(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!==a.baseTexture?(this.textureChange=!0,this.texture=a):this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.c,k=h.b,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),this.texture.valid){a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,0|this.worldTransform.tx,0|this.worldTransform.ty):a.context.setTransform(this.worldTransform.a,this.worldTransform.c,this.worldTransform.b,this.worldTransform.d,this.worldTransform.tx,this.worldTransform.ty),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var c=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,d=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,c,d,this.texture.crop.width,this.texture.crop.height)}for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fe?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global};for(var c=0,d=["ms","moz","webkit","o"],e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget=function(){var a={};this.addEventListener=this.on=function(b,c){void 0===a[b]&&(a[b]=[]),-1===a[b].indexOf(c)&&a[b].unshift(c)},this.dispatchEvent=this.emit=function(b){if(a[b.type]&&a[b.type].length)for(var c=a[b.type].length-1;c>=0;c--)a[b.type][c](b)},this.removeEventListener=this.off=function(b,c){if(void 0!==a[b]){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}},this.removeAllEventListeners=function(b){var c=a[b];c&&(c.length=0)}},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return window.console.log("PIXI Warning: shape too complex to fill"),[];for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.attributes=[],this.init()},b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA; if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]||b.createWebGLTexture(a.value.baseTexture,c)),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec2 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;"," vColor = vec4(color * aColor.x, aColor.x);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j6&&(h.points.length>10?(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g)):(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildPoly(h,g))),h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))):(g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,d)),d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o}var e=a.points,f=e[0],g=e[1],h=e[2],i=e[3],j=e[4],k=[];if(k.push(f,g+j),k=k.concat(d(f,g+i-j,f,g+i,f+j,g+i)),k=k.concat(d(f+h-j,g+i,f+h,g+i,f+h,g+i-j)),k=k.concat(d(f+h,g+j,f+h,g,f+h-j,g)),k=k.concat(d(f+j,g,f,g,f,g+j)),a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6,t=b.PolyK.Triangulate(k),u=0;for(u=0;uk;k++)q.push(e,f,n,o,p,m),q.push(e+Math.sin(j*k)*g,f+Math.cos(j*k)*h,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(e+Math.sin(j*k)*g,f+Math.cos(j*k)*h);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d),n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i)}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.lastIndex=0,this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[],this.lastIndex=0},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.WebGLRenderer=function(a,c,d,e,f,g){b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.transparent=!!e,this.preserveDrawingBuffer=g,this.width=a||800,this.height=c||600,this.view=d||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.contextLost=this.handleContextLost.bind(this),this.contextRestoredLost=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLost,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredLost,!1),this.options={alpha:this.transparent,antialias:!!f,premultipliedAlpha:!!e,stencil:!0,preserveDrawingBuffer:g};var h=null;if(["experimental-webgl","webgl"].forEach(function(a){try{h=h||this.view.getContext(a,this.options)}catch(b){}},this),!h)throw new Error("This browser does not support webGL. Try using the canvas renderer"+this);this.gl=h,this.glContextId=h.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=h,b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[h.SRC_ALPHA,h.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[h.DST_COLOR,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[h.SRC_ALPHA,h.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[h.ONE,h.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[h.ONE,h.ONE_MINUS_SRC_ALPHA]),this.projection=new b.Point,this.projection.x=this.width/2,this.projection.y=-this.height/2,this.offset=new b.Point(0,0),this.resize(this.width,this.height),this.contextLost=!1,this.shaderManager=new b.WebGLShaderManager(h),this.spriteBatch=new b.WebGLSpriteBatch(h),this.maskManager=new b.WebGLMaskManager(h),this.filterManager=new b.WebGLFilterManager(h,this.transparent),this.stencilManager=new b.WebGLStencilManager(h),this.blendModeManager=new b.WebGLBlendModeManager(h),this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,h.useProgram(this.shaderManager.defaultShader.program),h.disable(h.DEPTH_TEST),h.disable(h.CULL_FACE),h.enable(h.BLEND),h.colorMask(!0,!0,!0,this.transparent)},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),b.WebGLRenderer.updateTextures(),a.updateTransform(),a._interactive&&(a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)));var c=this.gl;c.viewport(0,0,this.width,this.height),c.bindFramebuffer(c.FRAMEBUFFER,null),this.transparent?c.clearColor(0,0,0,0):c.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),c.clear(c.COLOR_BUFFER_BIT),this.renderDisplayObject(a,this.projection),a.interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this))}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.currentBlendMode=9999,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.updateTextures=function(){var a=0;for(a=0;a=0;c--){var d=a._glTextures[c],e=b.glContexts[c];e&&d&&e.deleteTexture(d)}a._glTextures.length=0},b.WebGLRenderer.updateTextureFrame=function(a){a._updateWebGLuvs()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a,this.height=b,this.view.width=a,this.view.height=b,this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2,this.projection.y=-this.height/2},b.createWebGLTexture=function(a,c){return a.hasLoaded&&(a._glTextures[c.id]=c.createTexture(),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),c.bindTexture(c.TEXTURE_2D,null),a._dirty[c.id]=!1),a._glTextures[c.id]},b.updateWebGLTexture=function(a,c){a._glTextures[c.id]&&(c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1)},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){try{this.gl=this.view.getContext("experimental-webgl",this.options)}catch(a){try{this.gl=this.view.getContext("webgl",this.options)}catch(c){throw new Error(" This browser does not support webGL. Try using the canvas renderer"+this)}}var d=this.gl;d.id=b.WebGLRenderer.glContextId++,this.shaderManager.setContext(d),this.spriteBatch.setContext(d),this.primitiveBatch.setContext(d),this.maskManager.setContext(d),this.filterManager.setContext(d),this.renderSession.gl=this.gl,d.disable(d.DEPTH_TEST),d.disable(d.CULL_FACE),d.enable(d.BLEND),d.colorMask(!0,!0,!0,this.transparent),this.gl.viewport(0,0,this.width,this.height);for(var e in b.TextureCache){var f=b.TextureCache[e].baseTexture;f._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLost),this.view.removeEventListener("webglcontextrestored",this.contextRestoredLost),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.primitiveBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(a){this.gl=a,this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(a){this.maskStack=[],this.maskPosition=0,this.setContext(a),this.reverse=!1,this.count=0},b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.maskStack=null,this.gl=null},b.WebGLStencilManager=function(a){this.stencilStack=[],this.setContext(a),this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimativeShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.maskStack=null,this.gl=null},b.WebGLShaderManager=function(a){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[],this.shaderMap=[];for(var b=0;bd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.setContext(a),this.dirty=!0},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture,c=this.renderSession.blendModeManager.currentBlendMode!==a.blendMode;(b.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size||c)&&(this.flush(),this.currentBaseTexture=b.baseTexture,this.renderSession.blendModeManager.setBlendMode(a.blendMode));var d=b._uvs;if(d){var e,f,g,h,i=a.worldAlpha,j=a.tint,k=this.vertices,l=a.anchor.x,m=a.anchor.y;if(b.trim){var n=b.trim;f=n.x-l*n.width,e=f+b.crop.width,h=n.y-m*n.height,g=h+b.crop.height}else e=b.frame.width*(1-l),f=b.frame.width*-l,g=b.frame.height*(1-m),h=b.frame.height*-m;var o=4*this.currentBatchSize*this.vertSize,p=a.worldTransform,q=p.a,r=p.c,s=p.b,t=p.d,u=p.tx,v=p.ty;k[o++]=q*f+s*h+u,k[o++]=t*h+r*f+v,k[o++]=d.x0,k[o++]=d.y0,k[o++]=i,k[o++]=j,k[o++]=q*e+s*h+u,k[o++]=t*h+r*e+v,k[o++]=d.x1,k[o++]=d.y1,k[o++]=i,k[o++]=j,k[o++]=q*e+s*g+u,k[o++]=t*g+r*e+v,k[o++]=d.x2,k[o++]=d.y2,k[o++]=i,k[o++]=j,k[o++]=q*f+s*g+u,k[o++]=t*g+r*f+v,k[o++]=d.x3,k[o++]=d.y3,k[o++]=i,k[o++]=j,this.currentBatchSize++ }},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture,d=this.renderSession.blendModeManager.currentBlendMode!==a.blendMode;(c.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size||d)&&(this.flush(),this.currentBaseTexture=c.baseTexture,this.renderSession.blendModeManager.setBlendMode(a.blendMode)),a._uvs||(a._uvs=new b.TextureUvs);var e=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var f=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),g=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),h=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),i=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);e.x0=0-f,e.y0=0-g,e.x1=1*h-f,e.y1=0-g,e.x2=1*h-f,e.y2=1*i-g,e.x3=0-f,e.y3=1*i-g;var j=a.worldAlpha,k=a.tint,l=this.vertices,m=a.width,n=a.height,o=a.anchor.x,p=a.anchor.y,q=m*(1-o),r=m*-o,s=n*(1-p),t=n*-p,u=4*this.currentBatchSize*this.vertSize,v=a.worldTransform,w=v.a,x=v.c,y=v.b,z=v.d,A=v.tx,B=v.ty;l[u++]=w*r+y*t+A,l[u++]=z*t+x*r+B,l[u++]=e.x0,l[u++]=e.y0,l[u++]=j,l[u++]=k,l[u++]=w*q+y*t+A,l[u++]=z*t+x*q+B,l[u++]=e.x1,l[u++]=e.y1,l[u++]=j,l[u++]=k,l[u++]=w*q+y*s+A,l[u++]=z*s+x*q+B,l[u++]=e.x2,l[u++]=e.y2,l[u++]=j,l[u++]=k,l[u++]=w*r+y*s+A,l[u++]=z*s+x*r+B,l[u++]=e.x3,l[u++]=e.y3,l[u++]=j,l[u++]=k,this.currentBatchSize++},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.renderSession.shaderManager.setShader(this.renderSession.shaderManager.defaultShader),this.dirty){this.dirty=!1,a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var c=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,c.x,c.y);var d=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,d,0),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,d,8),a.vertexAttribPointer(this.shader.colorAttribute,2,a.FLOAT,!1,d,16)}if(a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]||b.createWebGLTexture(this.currentBaseTexture,a)),this.currentBaseTexture._dirty[a.id]&&b.updateWebGLTexture(this.currentBaseTexture,a),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var e=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,e)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var b=4*this.size*this.vertSize,c=6*this.maxSize;this.vertices=new Float32Array(b),this.indices=new Uint16Array(c),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var d=0,e=0;c>d;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||b.createWebGLTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var c=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,c)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(a,b){this.transparent=b,this.filterStack=[],this.offsetX=0,this.offsetY=0,this.setContext(a)},b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,this.renderSession.shaderManager.setShader(this.defaultShader),c.uniform2f(this.defaultShader.projectionVector,h.width/2,-h.height/2),c.uniform2f(this.defaultShader.offsetVector,-h.x,-h.y),c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0&&(b.Texture.frameUpdates.length=0)},b.CanvasRenderer.prototype.resize=function(a,b){this.width=a,this.height=b,this.view.width=a,this.view.height=b},b.CanvasRenderer.prototype.renderDisplayObject=function(a,b){this.renderSession.context=b||this.context,a._renderCanvas(this.renderSession)},b.CanvasRenderer.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.CanvasRenderer.prototype.renderStrip=function(a){var b=this.context,c=a.verticies,d=a.uvs,e=c.length/2;this.count++;for(var f=1;e-2>f;f++){var g=2*f,h=c[g],i=c[g+2],j=c[g+4],k=c[g+1],l=c[g+3],m=c[g+5],n=d[g]*a.texture.width,o=d[g+2]*a.texture.width,p=d[g+4]*a.texture.width,q=d[g+1]*a.texture.height,r=d[g+3]*a.texture.height,s=d[g+5]*a.texture.height;b.save(),b.beginPath(),b.moveTo(h,k),b.lineTo(i,l),b.lineTo(j,m),b.closePath(),b.clip();var t=n*r+q*p+o*s-r*p-q*o-n*s,u=h*r+q*j+i*s-r*j-q*i-h*s,v=n*i+h*p+o*j-i*p-h*o-n*j,w=n*r*j+q*i*p+h*o*s-h*r*p-q*o*j-n*i*s,x=k*r+q*m+l*s-r*m-q*l-k*s,y=n*l+k*p+o*m-l*p-k*o-n*m,z=n*r*m+q*l*p+k*o*s-k*r*p-q*o*m-n*l*s;b.transform(u/t,x/t,v/t,y/t,w/t,z/t),b.drawImage(a.texture.baseTexture.source,0,0),b.restore()}},b.CanvasBuffer=function(a,b){this.width=a,this.height=b,this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.canvas.width=a,this.canvas.height=b},b.CanvasBuffer.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)},b.CanvasBuffer.prototype.resize=function(a,b){this.width=this.canvas.width=a,this.height=this.canvas.height=b},b.CanvasGraphics=function(){},b.CanvasGraphics.renderGraphics=function(a,c){for(var d=a.worldAlpha,e="",f=0;fA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath(),(g.fillColor||0===g.fillColor)&&(c.globalAlpha=g.fillAlpha*d,c.fillStyle=e="#"+("00000"+(0|g.fillColor).toString(16)).substr(-6),c.fill()),g.lineWidth&&(c.globalAlpha=g.lineAlpha*d,c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.points;if(f.type===b.Graphics.POLY){c.beginPath(),c.moveTo(g[0],g[1]);for(var h=1;hz?z:y,c.beginPath(),c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.Graphics=function(){b.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor="black",this.graphicsData=[],this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.currentPath={points:[]},this._webGL=[],this.isMask=!1,this.bounds=null,this.boundsPadding=10,this.dirty=!0},b.Graphics.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Graphics.prototype.constructor=b.Graphics,Object.defineProperty(b.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),b.Graphics.prototype.lineStyle=function(a,c,d){return this.currentPath.points.length||this.graphicsData.pop(),this.lineWidth=a||0,this.lineColor=c||0,this.lineAlpha=arguments.length<3?1:d,this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:b.Graphics.POLY},this.graphicsData.push(this.currentPath),this},b.Graphics.prototype.moveTo=function(a,c){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:b.Graphics.POLY},this.currentPath.points.push(a,c),this.graphicsData.push(this.currentPath),this},b.Graphics.prototype.lineTo=function(a,b){return this.currentPath.points.push(a,b),this.dirty=!0,this},b.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){for(var e,f,g=20,h=this.currentPath.points,i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},b.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){for(var g,h,i,j,k,l=20,m=this.currentPath.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},b.Graphics.prototype.arcTo=function(a,b,c,d,e){var f=this.currentPath.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},b.Graphics.prototype.arc=function(a,b,c,d,e,f){var g=a+Math.cos(d)*c,h=b+Math.sin(d)*c,i=this.currentPath.points,j=i[i.length-2],k=i[i.length-1];if((j!==g||k!==h)&&i.push(g,h),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var l=f?-1*(d-e):e-d,m=Math.abs(l)/(2*Math.PI)*40;if(0===l)return this;for(var n=l/(2*m),o=2*n,p=Math.cos(n),q=Math.sin(n),r=m%1/m,s=0;m>=s;s++){var t=s+r*s,u=n+d+o*t,v=Math.cos(u),w=-Math.sin(u);i.push((p*v+q*w)*c+a,(p*-w+q*v)*c+b)}return this.dirty=!0,this},b.Graphics.prototype.drawPath=function(a){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath=this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[],type:b.Graphics.POLY},this.graphicsData.push(this.currentPath),this.currentPath.points=this.currentPath.points.concat(a),this.dirty=!0,this},b.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=arguments.length<2?1:b,this},b.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},b.Graphics.prototype.drawRect=function(a,c,d,e){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,e],type:b.Graphics.RECT},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.drawRoundedRect=function(a,c,d,e,f){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,e,f],type:b.Graphics.RREC},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.drawCircle=function(a,c,d){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,d],type:b.Graphics.CIRC},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.drawEllipse=function(a,c,d,e){return this.currentPath.points.length||this.graphicsData.pop(),this.currentPath={lineWidth:this.lineWidth,lineColor:this.lineColor,lineAlpha:this.lineAlpha,fillColor:this.fillColor,fillAlpha:this.fillAlpha,fill:this.filling,points:[a,c,d,e],type:b.Graphics.ELIP},this.graphicsData.push(this.currentPath),this.dirty=!0,this},b.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this.bounds=null,this},b.Graphics.prototype.generateTexture=function(){var a=this.getBounds(),c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);return c.context.translate(-a.x,-a.y),b.CanvasGraphics.renderGraphics(this,c.context),d},b.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return this.dirty&&(this._generateCachedSprite(),b.updateWebGLTexture(this._cachedSprite.texture.baseTexture,a.gl),this.dirty=!1),this._cachedSprite.alpha=this.alpha,void b.Sprite.prototype._renderWebGL.call(this._cachedSprite,a); -if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var c=b.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(c[0],c[1])}if(b.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var d=0,e=this.children.length;e>d;d++)this.children[d]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},b.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){var c=a.context,d=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),c.setTransform(d.a,d.c,d.b,d.d,d.tx,d.ty),b.CanvasGraphics.renderGraphics(this,c);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Graphics.prototype.getBounds=function(a){this.bounds||this.updateBounds();var b=this.bounds.x,c=this.bounds.width+this.bounds.x,d=this.bounds.y,e=this.bounds.height+this.bounds.y,f=a||this.worldTransform,g=f.a,h=f.c,i=f.b,j=f.d,k=f.tx,l=f.ty,m=g*c+i*e+k,n=j*e+h*c+l,o=g*b+i*e+k,p=j*e+h*b+l,q=g*b+i*d+k,r=j*d+h*b+l,s=g*c+i*d+k,t=j*d+h*c+l,u=m,v=n,w=m,x=n;w=w>o?o:w,w=w>q?q:w,w=w>s?s:w,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,u=o>u?o:u,u=q>u?q:u,u=s>u?s:u,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v;var y=this._bounds;return y.x=w,y.width=u-w,y.y=x,y.height=v-x,y},b.Graphics.prototype.updateBounds=function(){for(var a,c,d,e,f,g=1/0,h=-1/0,i=1/0,j=-1/0,k=0;kc?c:g,h=c+e>h?c+e:h,i=i>d?c:i,j=d+f>j?d+f:j;else if(m===b.Graphics.CIRC||m===b.Graphics.ELIP)c=a[0],d=a[1],e=a[2]+n/2,f=a[3]+n/2,g=g>c-e?c-e:g,h=c+e>h?c+e:h,i=i>d-f?d-f:i,j=d+f>j?d+f:j;else for(var o=0;oc-n?c-n:g,h=c+n>h?c+n:h,i=i>d-n?d-n:i,j=d+n>j?d+n:j}var p=this.boundsPadding;this.bounds=new b.Rectangle(g-p,i-p,h-g+2*p,j-i+2*p)},b.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);this._cachedSprite=new b.Sprite(d),this._cachedSprite.buffer=c,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),b.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},b.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},b.Graphics.POLY=0,b.Graphics.RECT=1,b.Graphics.CIRC=2,b.Graphics.ELIP=3,b.Graphics.RREC=4,b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader;c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,1),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.verticies,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.verticies),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(c.TRIANGLE_STRIP,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.c,c.b,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.c,c.b,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5],p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3);var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this.width=c||100,this.height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this.mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this.filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this.filters&&a.filterManager.popFilter(),this.mask&&a.maskManager.popMask(a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform;if(c.setTransform(f.a,f.c,f.b,f.d,f.tx,f.ty),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var g=this.tilePosition,h=this.tileScale;for(g.x%=this.tilingTexture.baseTexture.width,g.y%=this.tilingTexture.baseTexture.height,c.scale(h.x,h.y),c.translate(g.x,g.y),c.fillStyle=this.__tilePattern,c.fillRect(-g.x+this.anchor.x*-this._width,-g.y+this.anchor.y*-this._height,this._width/h.x,this._height/h.y),c.scale(1/h.x,1/h.y),c.translate(-g.x,-g.y),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.c,j=g.b,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.texturesToUpdate=[],b.texturesToDestroy=[],b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(b.EventTarget.call(this),this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.id=b.BaseTextureCacheIdGenerator++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,b.texturesToUpdate.push(this);else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.width,d.height=d.source.height;for(var a=0;athis.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&b.Texture.frameUpdates.push(this)},b.Texture.prototype._updateWebGLuvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.Texture.frameUpdates=[],b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e){if(b.EventTarget.call(this),this.width=a||100,this.height=c||100,this.frame=new b.Rectangle(0,0,this.width,this.height),this.crop=new b.Rectangle(0,0,1,1),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTextures=[],this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var f=this.renderer.gl;this.textureBuffer=new b.FilterTexture(f,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[f.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(this.width/2,-this.height/2)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width,this.height),this.baseTexture.source=this.textureBuffer.canvas;b.Texture.frameUpdates.push(this)},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.width=a,this.height=c,this.frame.width=this.width,this.frame.height=this.height,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear()},b.RenderTexture.prototype.renderWebGL=function(a,c,d){var e=this.renderer.gl;e.colorMask(!0,!0,!0,!0),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,this.textureBuffer.frameBuffer),d&&this.textureBuffer.clear();var f=a.children,g=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,a.worldTransform.d=-1,a.worldTransform.ty=-2*this.projection.y,c&&(a.worldTransform.tx=c.x,a.worldTransform.ty-=c.y);for(var h=0,i=f.length;i>h;h++)f[h].updateTransform();b.WebGLRenderer.updateTextures(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),a.worldTransform=g,this.renderer.spriteBatch.dirty=!0},b.RenderTexture.prototype.renderCanvas=function(a,c,d){var e=a.children,f=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,c?(a.worldTransform.tx=c.x,a.worldTransform.ty=c.y):(a.worldTransform.tx=0,a.worldTransform.ty=0);for(var g=0,h=e.length;h>g;g++)e[g].updateTransform();d&&this.textureBuffer.clear();var i=this.textureBuffer.context;this.renderer.renderDisplayObject(a,i),i.setTransform(1,0,0,1,0,0),a.worldTransform=f},b.RenderTexture.tempMatrix=new b.Matrix,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){var a=this,b=b||{VERSION:"2.1.0-dev",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,b.Utils={transposeArray:function(a){for(var b=new Array(a[0].length),c=0;c-1;d--)b[c][d]=a[d][c]}return b},rotateArray:function(a,c){if("string"!=typeof c&&(c=(c%360+360)%360),90===c||-270===c||"rotateLeft"===c)a=b.Utils.transposeArray(a),a=a.reverse();else if(-90===c||270===c||"rotateRight"===c)a=a.reverse(),a=b.Utils.transposeArray(a);else if(180===Math.abs(c)||"rotate180"===c){for(var d=0;d0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(c in a)d=h[c],e=a[c],h!==e&&(k&&e&&(b.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&b.Utils.isPlainObject(d)?d:{},h[c]=b.Utils.extend(k,g,e)):void 0!==e&&(h[c]=e));return h},mixin:function(a,c){if(!a||"object"!=typeof a)return c;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];c[d]=a[d]&&"object"===f?typeof c[d]===f?b.Utils.mixin(a[d],c[d]):b.Utils.mixin(a[d],new e.constructor):a[d]}}return c}},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array){var c=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;b0?.5*c:0},b.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.distanceRounded(this.x,this.y,a.x,a.y):b.Math.distance(this.x,this.y,a.x,a.y)},clone:function(a){return"undefined"==typeof a?a=new b.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,c){return b.Circle.contains(this,a,c)},circumferencePoint:function(a,c,d){return b.Circle.circumferencePoint(this,a,c,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},b.Circle.prototype.constructor=b.Circle,Object.defineProperty(b.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(b.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(b.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(b.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(b.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(b.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),b.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},b.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},b.Circle.intersects=function(a,c){return b.Math.distance(a.x,a.y,c.x,c.y)<=a.radius+c.radius},b.Circle.circumferencePoint=function(a,c,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new b.Point),d===!0&&(c=b.Math.degToRad(c)),e.x=a.x+a.radius*Math.cos(c),e.y=a.y+a.radius*Math.sin(c),e},b.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=b.Circle,b.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},b.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this},clampY:function(a,c){return this.y=b.Math.clamp(this.y,a,c),this},clamp:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this.y=b.Math.clamp(this.y,a,c),this},clone:function(a){return"undefined"==typeof a?a=new b.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,c){return b.Point.distance(this,a,c)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,c,d,e,f){return b.Point.rotate(this,a,c,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},b.Point.prototype.constructor=b.Point,b.Point.add=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x+c.x,d.y=a.y+c.y,d},b.Point.subtract=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x-c.x,d.y=a.y-c.y,d},b.Point.multiply=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x*c.x,d.y=a.y*c.y,d},b.Point.divide=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x/c.x,d.y=a.y/c.y,d},b.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},b.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},b.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},b.Point.negative=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.x,-a.y)},b.Point.multiplyAdd=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+c.x*d,a.y+c.y*d)},b.Point.interpolate=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+(c.x-a.x)*d,a.y+(c.y-a.y)*d)},b.Point.perp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.y,a.x)},b.Point.rperp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(a.y,-a.x)},b.Point.distance=function(a,c,d){return"undefined"==typeof d&&(d=!1),d?b.Math.distanceRounded(a.x,a.y,c.x,c.y):b.Math.distance(a.x,a.y,c.x,c.y)},b.Point.project=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c)/c.getMagnitudeSq();return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.projectUnit=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c);return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.normalRightHand=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-1*a.y,a.x)},b.Point.normalize=function(a,c){"undefined"==typeof c&&(c=new b.Point);var d=a.getMagnitude();return 0!==d&&c.setTo(a.x/d,a.y/d),c},b.Point.rotate=function(a,c,d,e,f,g){return f=f||!1,g=g||null,f&&(e=b.Math.degToRad(e)),null===g&&(g=Math.sqrt((c-a.x)*(c-a.x)+(d-a.y)*(d-a.y))),a.setTo(c+g*Math.cos(e),d+g*Math.sin(e))},b.Point.centroid=function(a,c){if("undefined"==typeof c&&(c=new b.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return c.copyFrom(a[0]),c;for(var e=0;d>e;e++)b.Point.add(c,a[e],c);return c.divide(d,d),c},PIXI.Point=b.Point,b.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},b.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this +if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var c=b.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(c[0],c[1])}if(b.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var d=0,e=this.children.length;e>d;d++)this.children[d]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},b.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){var c=a.context,d=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a.context),c.setTransform(d.a,d.c,d.b,d.d,d.tx,d.ty),b.CanvasGraphics.renderGraphics(this,c);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a.context)}},b.Graphics.prototype.getBounds=function(a){this.bounds||this.updateBounds();var b=this.bounds.x,c=this.bounds.width+this.bounds.x,d=this.bounds.y,e=this.bounds.height+this.bounds.y,f=a||this.worldTransform,g=f.a,h=f.c,i=f.b,j=f.d,k=f.tx,l=f.ty,m=g*c+i*e+k,n=j*e+h*c+l,o=g*b+i*e+k,p=j*e+h*b+l,q=g*b+i*d+k,r=j*d+h*b+l,s=g*c+i*d+k,t=j*d+h*c+l,u=m,v=n,w=m,x=n;w=w>o?o:w,w=w>q?q:w,w=w>s?s:w,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,u=o>u?o:u,u=q>u?q:u,u=s>u?s:u,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v;var y=this._bounds;return y.x=w,y.width=u-w,y.y=x,y.height=v-x,y},b.Graphics.prototype.updateBounds=function(){for(var a,c,d,e,f,g=1/0,h=-1/0,i=1/0,j=-1/0,k=0;kc?c:g,h=c+e>h?c+e:h,i=i>d?c:i,j=d+f>j?d+f:j;else if(m===b.Graphics.CIRC||m===b.Graphics.ELIP)c=a[0],d=a[1],e=a[2]+n/2,f=a[3]+n/2,g=g>c-e?c-e:g,h=c+e>h?c+e:h,i=i>d-f?d-f:i,j=d+f>j?d+f:j;else for(var o=0;oc-n?c-n:g,h=c+n>h?c+n:h,i=i>d-n?d-n:i,j=d+n>j?d+n:j}var p=this.boundsPadding;this.bounds=new b.Rectangle(g-p,i-p,h-g+2*p,j-i+2*p)},b.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);this._cachedSprite=new b.Sprite(d),this._cachedSprite.buffer=c,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),b.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},b.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},b.Graphics.POLY=0,b.Graphics.RECT=1,b.Graphics.CIRC=2,b.Graphics.ELIP=3,b.Graphics.RREC=4,b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader;c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,1),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.verticies,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.verticies),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]||b.createWebGLTexture(this.texture.baseTexture,c)),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(c.TRIANGLE_STRIP,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.c,c.b,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.c,c.b,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5],p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3);var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this.width=c||100,this.height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this.mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this.filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this.filters&&a.filterManager.popFilter(),this.mask&&a.maskManager.popMask(a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform;if(c.setTransform(f.a,f.c,f.b,f.d,f.tx,f.ty),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var g=this.tilePosition,h=this.tileScale;for(g.x%=this.tilingTexture.baseTexture.width,g.y%=this.tilingTexture.baseTexture.height,c.scale(h.x,h.y),c.translate(g.x,g.y),c.fillStyle=this.__tilePattern,c.fillRect(-g.x+this.anchor.x*-this._width,-g.y+this.anchor.y*-this._height,this._width/h.x,this._height/h.y),c.scale(1/h.x,1/h.y),c.translate(-g.x,-g.y),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.c,j=g.b,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.texturesToUpdate=[],b.texturesToDestroy=[],b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(b.EventTarget.call(this),this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.id=b.BaseTextureCacheIdGenerator++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,b.texturesToUpdate.push(this);else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.width,d.height=d.source.height;for(var a=0;athis.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&b.Texture.frameUpdates.push(this)},b.Texture.prototype._updateWebGLuvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.Texture.frameUpdates=[],b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e){if(b.EventTarget.call(this),this.width=a||100,this.height=c||100,this.frame=new b.Rectangle(0,0,this.width,this.height),this.crop=new b.Rectangle(0,0,this.width,this.height),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTextures=[],this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var f=this.renderer.gl;this.textureBuffer=new b.FilterTexture(f,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[f.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(this.width/2,-this.height/2)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width,this.height),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,b.Texture.frameUpdates.push(this)},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear()},b.RenderTexture.prototype.renderWebGL=function(a,c,d){var e=this.renderer.gl;e.colorMask(!0,!0,!0,!0),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,this.textureBuffer.frameBuffer),d&&this.textureBuffer.clear();var f=a.children,g=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,a.worldTransform.d=-1,a.worldTransform.ty=-2*this.projection.y,c&&(a.worldTransform.tx=c.x,a.worldTransform.ty-=c.y);for(var h=0,i=f.length;i>h;h++)f[h].updateTransform();b.WebGLRenderer.updateTextures(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),a.worldTransform=g,this.renderer.spriteBatch.dirty=!0},b.RenderTexture.prototype.renderCanvas=function(a,c,d){var e=a.children,f=a.worldTransform;a.worldTransform=b.RenderTexture.tempMatrix,c?(a.worldTransform.tx=c.x,a.worldTransform.ty=c.y):(a.worldTransform.tx=0,a.worldTransform.ty=0);for(var g=0,h=e.length;h>g;g++)e[g].updateTransform();d&&this.textureBuffer.clear();var i=this.textureBuffer.context;this.renderer.renderDisplayObject(a,i),i.setTransform(1,0,0,1,0,0),a.worldTransform=f},b.RenderTexture.tempMatrix=new b.Matrix,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){var a=this,b=b||{VERSION:"2.0.7-dev",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,b.Utils={transposeArray:function(a){for(var b=new Array(a[0].length),c=0;c-1;d--)b[c][d]=a[d][c]}return b},rotateArray:function(a,c){if("string"!=typeof c&&(c=(c%360+360)%360),90===c||-270===c||"rotateLeft"===c)a=b.Utils.transposeArray(a),a=a.reverse();else if(-90===c||270===c||"rotateRight"===c)a=a.reverse(),a=b.Utils.transposeArray(a);else if(180===Math.abs(c)||"rotate180"===c){for(var d=0;d0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(c in a)d=h[c],e=a[c],h!==e&&(k&&e&&(b.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&b.Utils.isPlainObject(d)?d:{},h[c]=b.Utils.extend(k,g,e)):void 0!==e&&(h[c]=e));return h},mixin:function(a,c){if(!a||"object"!=typeof a)return c;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];c[d]=a[d]&&"object"===f?typeof c[d]===f?b.Utils.mixin(a[d],c[d]):b.Utils.mixin(a[d],new e.constructor):a[d]}}return c}},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array){var c=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;b0?.5*c:0},b.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.distanceRounded(this.x,this.y,a.x,a.y):b.Math.distance(this.x,this.y,a.x,a.y)},clone:function(a){return"undefined"==typeof a?a=new b.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,c){return b.Circle.contains(this,a,c)},circumferencePoint:function(a,c,d){return b.Circle.circumferencePoint(this,a,c,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},b.Circle.prototype.constructor=b.Circle,Object.defineProperty(b.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(b.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(b.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(b.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(b.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(b.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),b.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},b.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},b.Circle.intersects=function(a,c){return b.Math.distance(a.x,a.y,c.x,c.y)<=a.radius+c.radius},b.Circle.circumferencePoint=function(a,c,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new b.Point),d===!0&&(c=b.Math.degToRad(c)),e.x=a.x+a.radius*Math.cos(c),e.y=a.y+a.radius*Math.sin(c),e},b.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=b.Circle,b.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},b.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this},clampY:function(a,c){return this.y=b.Math.clamp(this.y,a,c),this},clamp:function(a,c){return this.x=b.Math.clamp(this.x,a,c),this.y=b.Math.clamp(this.y,a,c),this},clone:function(a){return"undefined"==typeof a?a=new b.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,c){return b.Point.distance(this,a,c)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,c){return"undefined"==typeof c&&(c=!1),c?b.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,c,d,e,f){return b.Point.rotate(this,a,c,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},b.Point.prototype.constructor=b.Point,b.Point.add=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x+c.x,d.y=a.y+c.y,d},b.Point.subtract=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x-c.x,d.y=a.y-c.y,d},b.Point.multiply=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x*c.x,d.y=a.y*c.y,d},b.Point.divide=function(a,c,d){return"undefined"==typeof d&&(d=new b.Point),d.x=a.x/c.x,d.y=a.y/c.y,d},b.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},b.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},b.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},b.Point.negative=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.x,-a.y)},b.Point.multiplyAdd=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+c.x*d,a.y+c.y*d)},b.Point.interpolate=function(a,c,d,e){return"undefined"==typeof e&&(e=new b.Point),e.setTo(a.x+(c.x-a.x)*d,a.y+(c.y-a.y)*d)},b.Point.perp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-a.y,a.x)},b.Point.rperp=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(a.y,-a.x)},b.Point.distance=function(a,c,d){return"undefined"==typeof d&&(d=!1),d?b.Math.distanceRounded(a.x,a.y,c.x,c.y):b.Math.distance(a.x,a.y,c.x,c.y)},b.Point.project=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c)/c.getMagnitudeSq();return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.projectUnit=function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.dot(c);return 0!==e&&d.setTo(e*c.x,e*c.y),d},b.Point.normalRightHand=function(a,c){return"undefined"==typeof c&&(c=new b.Point),c.setTo(-1*a.y,a.x)},b.Point.normalize=function(a,c){"undefined"==typeof c&&(c=new b.Point);var d=a.getMagnitude();return 0!==d&&c.setTo(a.x/d,a.y/d),c},b.Point.rotate=function(a,c,d,e,f,g){return f=f||!1,g=g||null,f&&(e=b.Math.degToRad(e)),null===g&&(g=Math.sqrt((c-a.x)*(c-a.x)+(d-a.y)*(d-a.y))),a.setTo(c+g*Math.cos(e),d+g*Math.sin(e))},b.Point.centroid=function(a,c){if("undefined"==typeof c&&(c=new b.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return c.copyFrom(a[0]),c;for(var e=0;d>e;e++)b.Point.add(c,a[e],c);return c.divide(d,d),c},PIXI.Point=b.Point,b.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},b.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this },floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,c){return b.Rectangle.inflate(this,a,c)},size:function(a){return b.Rectangle.size(this,a)},clone:function(a){return b.Rectangle.clone(this,a)},contains:function(a,c){return b.Rectangle.contains(this,a,c)},containsRect:function(a){return b.Rectangle.containsRect(this,a)},equals:function(a){return b.Rectangle.equals(this,a)},intersection:function(a,c){return b.Rectangle.intersection(this,a,c)},intersects:function(a,c){return b.Rectangle.intersects(this,a,c)},intersectsRaw:function(a,c,d,e,f){return b.Rectangle.intersectsRaw(this,a,c,d,e,f)},union:function(a,c){return b.Rectangle.union(this,a,c)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(b.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(b.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(b.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:this.y-a}}),Object.defineProperty(b.Rectangle.prototype,"bottomRight",{get:function(){return new b.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(b.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(b.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(b.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(b.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(b.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(b.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(b.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(b.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(b.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(b.Rectangle.prototype,"topLeft",{get:function(){return new b.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(b.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),b.Rectangle.prototype.constructor=b.Rectangle,b.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},b.Rectangle.inflatePoint=function(a,c){return b.Rectangle.inflate(a,c.x,c.y)},b.Rectangle.size=function(a,c){return"undefined"==typeof c||null===c?c=new b.Point(a.width,a.height):c.setTo(a.width,a.height),c},b.Rectangle.clone=function(a,c){return"undefined"==typeof c||null===c?c=new b.Rectangle(a.x,a.y,a.width,a.height):c.setTo(a.x,a.y,a.width,a.height),c},b.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b<=a.right&&c>=a.y&&c<=a.bottom},b.Rectangle.containsRaw=function(a,b,c,d,e,f){return e>=a&&a+c>=e&&f>=b&&b+d>=f},b.Rectangle.containsPoint=function(a,c){return b.Rectangle.contains(a,c.x,c.y)},b.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.right<=b.right&&a.bottom<=b.bottom},b.Rectangle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.width==b.width&&a.height==b.height},b.Rectangle.intersection=function(a,c,d){return"undefined"==typeof d&&(d=new b.Rectangle),b.Rectangle.intersects(a,c)&&(d.x=Math.max(a.x,c.x),d.y=Math.max(a.y,c.y),d.width=Math.min(a.right,c.right)-d.x,d.height=Math.min(a.bottom,c.bottom)-d.y),d},b.Rectangle.intersects=function(a,b){return a.width<=0||a.height<=0||b.width<=0||b.height<=0?!1:!(a.rightb.right||a.y>b.bottom)},b.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||e=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b}},Object.defineProperty(b.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(b.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(b.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(b.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(b.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(b.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(b.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(b.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),b.Line.intersectsPoints=function(a,c,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new b.Point);var h=c.y-a.y,i=e.y-d.y,j=a.x-c.x,k=d.x-e.x,l=c.x*a.y-a.x*c.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(c.x-a.x)-(e.x-d.x)*(c.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((c.x-a.x)*(a.y-d.y)-(c.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},b.Line.intersects=function(a,c,d,e){return b.Line.intersectsPoints(a.start,a.end,c.start,c.end,d,e)},b.Ellipse=function(a,c,d,e){this.type=b.ELLIPSE,a=a||0,c=c||0,d=d||0,e=e||0,this.x=a,this.y=c,this.width=d,this.height=e},b.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a?a=new b.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,c){return b.Ellipse.contains(this,a,c)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},b.Ellipse.prototype.constructor=b.Ellipse,Object.defineProperty(b.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(b.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},b.Ellipse.prototype.getBounds=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=b.Ellipse,b.Polygon=function(a){if(this.type=b.POLYGON,a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this._points=a},b.Polygon.prototype={clone:function(){for(var a=[],c=0;cb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c}},b.Polygon.prototype.constructor=b.Polygon,Object.defineProperty(b.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var c=[],d=0,e=a.length;e>d;d+=2)c.push(new b.Point(a[d],a[d+1]));a=c}this._points=a}}),Object.defineProperty(b.Polygon.prototype,"area",{get:function(){var a,b,c,d,e,f=Number.MAX_VALUE,g=0;for(e=0;ethis.deadzone.right&&(this.view.x=this.target.x-this.deadzone.right),this._edge=this.target.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.target.y-this.deadzone.bottom)):(this.view.x=this.target.x-this.view.halfWidth,this.view.y=this.target.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height),this.view.floor()},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},b.Camera.prototype.constructor=b.Camera,Object.defineProperty(b.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(b.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(b.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(b.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),b.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},b.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},b.State.prototype.constructor=b.State,b.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},b.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&("string"==typeof this._pendingState?this.start(this._pendingState,!1,!1):this.add("default",this._pendingState,!0))},add:function(a,c,d){"undefined"==typeof d&&(d=!1);var e;return c instanceof b.State?e=c:"object"==typeof c?(e=c,e.game=this.game):"function"==typeof c&&(e=new c(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){this._pendingState&&this.game.isBooted&&(this.current&&(this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy())),this.setCurrentState(this._pendingState),this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete(),this.current===this._pendingState&&(this._pendingState=null))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),this._args=[]},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===b.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===b.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},b.StateManager.prototype.constructor=b.StateManager,b.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},b.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},b.LinkedList.prototype.constructor=b.LinkedList,b.ArrayList=function(){this.total=0,this.position=0,this.list=[]},b.ArrayList.prototype={add:function(a){return this.exists(a)||(this.list.push(a),this.total++),a},getIndex:function(a){return this.list.indexOf(a)},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),this.total--,a):void 0},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(b.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(b.ArrayList.prototype,"next",{get:function(){return this.position0&&(this.uniforms.mouse.x=a.x.toFixed(2)),a.y>0&&(this.uniforms.mouse.y=a.y.toFixed(2))),this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},b.Filter.prototype.constructor=b.Filter,Object.defineProperty(b.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(b.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),b.Plugin=function(a,b){"undefined"==typeof b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},b.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},b.Plugin.prototype.constructor=b.Plugin,b.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},b.PluginManager.prototype={add:function(a){var b=Array.prototype.splice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},b.PluginManager.prototype.constructor=b.PluginManager,b.Stage=function(a,c,d){this.game=a,this.offset=new b.Point,this.bounds=new b.Rectangle(0,0,c,d),PIXI.Stage.call(this,0),this.name="_stage_root",this.interactive=!1,this.disableVisibilityChange=!1,this.checkOffsetInterval=2500,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._nextOffsetCheck=0,this._backgroundColor=0,a.config&&this.parseConfig(a.config)},b.Stage.prototype=Object.create(PIXI.Stage.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=this.children.length,b=0;a>b;b++)this.children[b].preUpdate()},b.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},b.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}this.checkOffsetInterval!==!1&&this.game.time.now>this._nextOffsetCheck&&(b.Canvas.getOffset(this.game.canvas,this.offset),this.bounds.x=this.offset.x,this.bounds.y=this.offset.y,this._nextOffsetCheck=this.game.time.now+this.checkOffsetInterval)},b.Stage.prototype.parseConfig=function(a){a.checkOffsetInterval&&(this.checkOffsetInterval=a.checkOffsetInterval),a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.fullScreenScaleMode&&(this.fullScreenScaleMode=a.fullScreenScaleMode),a.scaleMode&&(this.scaleMode=a.scaleMode),a.backgroundColor&&(this.backgroundColor=a.backgroundColor)},b.Stage.prototype.boot=function(){b.Canvas.getOffset(this.game.canvas,this.offset),this.bounds.setTo(this.offset.x,this.offset.y,this.game.width,this.game.height);var a=this;this._onChange=function(b){return a.visibilityChange(b)},b.Canvas.setUserSelect(this.game.canvas,"none"),b.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},b.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange },b.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden?this.game.gamePaused(a):this.game.gameResumed(a)))},b.Stage.prototype.setBackgroundColor=function(a){if("string"==typeof a){var c=b.Color.hexToColor(a);this._backgroundColor=b.Color.getColor(c.r,c.g,c.b)}else{var c=b.Color.getRGB(a);this._backgroundColor=a}this.backgroundColorSplit=[c.r/255,c.g/255,c.b/255],this.backgroundColorString=b.Color.RGBtoString(c.r,c.g,c.b,255,"#")},Object.defineProperty(b.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(b.Stage.prototype,"smoothed",{get:function(){return!PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.LINEAR=a?0:1}}),b.Group=function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b.Physics.ARCADE),this.game=a,"undefined"==typeof c&&(c=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):c&&c.addChild(this),this.z=0,this.type=b.GROUP,this.alive=!0,this.exists=!0,this.classType=b.Sprite,this.scale=new b.Point(1,1),this.cursor=null,this.cameraOffset=new b.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},b.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),b.Group.prototype.constructor=b.Group,b.Group.RETURN_NONE=0,b.Group.RETURN_TOTAL=1,b.Group.RETURN_CHILD=2,b.Group.SORT_ASCENDING=-1,b.Group.SORT_DESCENDING=1,b.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},b.Group.prototype.addAt=function(a,b,c){return"undefined"==typeof c&&(c=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChildAt(a,b),this.updateZ(),!c&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},b.Group.prototype.getAt=function(a){return 0>a||a>=this.children.length?-1:this.getChildAt(a)},b.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},b.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},b.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},b.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},b.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},b.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},b.Group.prototype.swap=function(a,b){var c=this.swapChildren(a,b);return c&&this.updateZ(),c},b.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},b.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},b.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},b.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},b.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},b.Group.prototype.replace=function(a,c){var d=this.getIndex(a);if(-1!==d){void 0!==c.parent&&(c.events.onRemovedFromGroup.dispatch(c,this),c.parent.removeChild(c),c.parent instanceof b.Group&&c.parent.updateZ());var e=a;return this.remove(e),this.addAt(c,d),e}},b.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},b.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},b.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},b.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},b.Group.prototype.setAllChildren=function(a,c,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof b.Group?this.children[h].setAllChildren(a,c,d,e,f,g):this.setProperty(this.children[h],a.split("."),c,f,g))},b.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},b.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},b.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},b.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},b.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},b.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},b.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},b.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},b.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},b.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},b.Group.prototype.forEach=function(a,b,c){"undefined"==typeof c&&(c=!1);var d=Array.prototype.splice.call(arguments,3);d.unshift(null);for(var e=0,f=this.children.length;f>e;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},b.Group.prototype.forEachExists=function(a,c){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,b.Group.RETURN_TOTAL,a,c,d)},b.Group.prototype.forEachAlive=function(a,c){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,b.Group.RETURN_TOTAL,a,c,d)},b.Group.prototype.forEachDead=function(a,c){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,b.Group.RETURN_TOTAL,a,c,d)},b.Group.prototype.sort=function(a,c){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof c&&(c=b.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(c===b.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},b.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},b.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},b.Group.prototype.iterate=function(a,c,d,e,f,g){if(d===b.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===c&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===b.Group.RETURN_CHILD))return this.children[i];return d===b.Group.RETURN_TOTAL?h:d===b.Group.RETURN_CHILD?null:void 0},b.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,b.Group.RETURN_CHILD)},b.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,b.Group.RETURN_CHILD)},b.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,b.Group.RETURN_CHILD)},b.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},b.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},b.Group.prototype.countLiving=function(){return this.iterate("alive",!0,b.Group.RETURN_TOTAL)},b.Group.prototype.countDead=function(){return this.iterate("alive",!1,b.Group.RETURN_TOTAL)},b.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,this.game.math.getRandom(this.children,a,b))},b.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},b.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},b.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},b.Group.prototype.destroy=function(a,b){null!==this.game&&("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(b.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,b.Group.RETURN_TOTAL)}}),Object.defineProperty(b.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(b.Group.prototype,"angle",{get:function(){return b.Math.radToDeg(this.rotation)},set:function(a){this.rotation=b.Math.degToRad(a)}}),Object.defineProperty(b.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),b.World=function(a){b.Group.call(this,a,null,"__world",!1),this.bounds=new b.Rectangle(0,0,a.width,a.height),this.camera=null},b.World.prototype=Object.create(b.Group.prototype),b.World.prototype.constructor=b.World,b.World.prototype.boot=function(){this.camera=new b.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},b.World.prototype.setBounds=function(a,b,c,d){cthis.bounds.right&&(a.x=this.bounds.left),e&&a._currentBounds.bottomthis.bounds.bottom&&(a.y=this.bounds.top)):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(b.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){this.bounds.width=a}}),Object.defineProperty(b.World.prototype,"height",{get:function(){return this.bounds.height},set:function(a){this.bounds.height=a}}),Object.defineProperty(b.World.prototype,"centerX",{get:function(){return this.bounds.halfWidth}}),Object.defineProperty(b.World.prototype,"centerY",{get:function(){return this.bounds.halfHeight}}),Object.defineProperty(b.World.prototype,"randomX",{get:function(){return this.bounds.x<0?this.game.rnd.integerInRange(this.bounds.x,this.bounds.width-Math.abs(this.bounds.x)):this.game.rnd.integerInRange(this.bounds.x,this.bounds.width)}}),Object.defineProperty(b.World.prototype,"randomY",{get:function(){return this.bounds.y<0?this.game.rnd.integerInRange(this.bounds.y,this.bounds.height-Math.abs(this.bounds.y)):this.game.rnd.integerInRange(this.bounds.y,this.bounds.height)}}),b.ScaleManager=function(a,c,d){this.game=a,this.width=c,this.height=d,this.minWidth=null,this.maxWidth=null,this.minHeight=null,this.maxHeight=null,this.forceLandscape=!1,this.forcePortrait=!1,this.incorrectOrientation=!1,this.pageAlignHorizontally=!1,this.pageAlignVertically=!1,this.maxIterations=5,this.orientationSprite=null,this.enterLandscape=new b.Signal,this.enterPortrait=new b.Signal,this.enterIncorrectOrientation=new b.Signal,this.leaveIncorrectOrientation=new b.Signal,this.hasResized=new b.Signal,this.fullScreenTarget=this.game.canvas,this.enterFullScreen=new b.Signal,this.leaveFullScreen=new b.Signal,this.orientation=0,window.orientation?this.orientation=window.orientation:window.outerWidth>window.outerHeight&&(this.orientation=90),this.scaleFactor=new b.Point(1,1),this.scaleFactorInversed=new b.Point(1,1),this.margin=new b.Point(0,0),this.bounds=new b.Rectangle(0,0,c,d),this.aspectRatio=0,this.sourceAspectRatio=c/d,this.event=null,this.scaleMode=b.ScaleManager.NO_SCALE,this.fullScreenScaleMode=b.ScaleManager.NO_SCALE,this._startHeight=0,this._width=0,this._height=0,this._check=null;var e=this;window.addEventListener("orientationchange",function(a){return e.checkOrientation(a)},!1),window.addEventListener("resize",function(a){return e.checkResize(a)},!1),this.game.device.cocoonJS||(document.addEventListener("webkitfullscreenchange",function(a){return e.fullScreenChange(a)},!1),document.addEventListener("mozfullscreenchange",function(a){return e.fullScreenChange(a)},!1),document.addEventListener("fullscreenchange",function(a){return e.fullScreenChange(a)},!1))},b.ScaleManager.EXACT_FIT=0,b.ScaleManager.NO_SCALE=1,b.ScaleManager.SHOW_ALL=2,b.ScaleManager.prototype={startFullScreen:function(a){!this.isFullScreen&&this.game.device.fullscreen&&("undefined"!=typeof a&&this.game.renderType===b.CANVAS&&(this.game.stage.smoothed=a),this._width=this.width,this._height=this.height,this.game.device.fullscreenKeyboard?this.fullScreenTarget[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT):this.fullScreenTarget[this.game.device.requestFullscreen]())},stopFullScreen:function(){document[this.game.device.cancelFullscreen]()},fullScreenChange:function(a){this.event=a,this.isFullScreen?(this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?(this.fullScreenTarget.style.width="100%",this.fullScreenTarget.style.height="100%",this.width=window.outerWidth,this.height=window.outerHeight,this.game.input.scale.setTo(this.game.width/this.width,this.game.height/this.height),this.aspectRatio=this.width/this.height,this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.checkResize()):this.fullScreenScaleMode===b.ScaleManager.SHOW_ALL&&(this.setShowAll(),this.refresh()),this.enterFullScreen.dispatch(this.width,this.height)):(this.fullScreenTarget.style.width=this.game.width+"px",this.fullScreenTarget.style.height=this.game.height+"px",this.width=this._width,this.height=this._height,this.game.input.scale.setTo(this.game.width/this.width,this.game.height/this.height),this.aspectRatio=this.width/this.height,this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.leaveFullScreen.dispatch(this.width,this.height))},forceOrientation:function(a,c,d){"undefined"==typeof c&&(c=!1),this.forceLandscape=a,this.forcePortrait=c,"undefined"!=typeof d&&((null===d||this.game.cache.checkImageKey(d)===!1)&&(d="__default"),this.orientationSprite=new b.Image(this.game,this.game.width/2,this.game.height/2,PIXI.TextureCache[d]),this.orientationSprite.anchor.set(.5),this.checkOrientationState(),this.incorrectOrientation?(this.orientationSprite.visible=!0,this.game.world.visible=!1):(this.orientationSprite.visible=!1,this.game.world.visible=!0),this.game.stage.addChild(this.orientationSprite))},checkOrientationState:function(){this.incorrectOrientation?(this.forceLandscape&&window.innerWidth>window.innerHeight||this.forcePortrait&&window.innerHeight>window.innerWidth)&&(this.incorrectOrientation=!1,this.leaveIncorrectOrientation.dispatch(),this.orientationSprite&&(this.orientationSprite.visible=!1,this.game.world.visible=!0),this.scaleMode!==b.ScaleManager.NO_SCALE&&this.refresh()):(this.forceLandscape&&window.innerWidthwindow.outerHeight?90:0,this.isLandscape?this.enterLandscape.dispatch(this.orientation,!0,!1):this.enterPortrait.dispatch(this.orientation,!1,!0),this.scaleMode!==b.ScaleManager.NO_SCALE&&this.refresh(),this.checkOrientationState()},refresh:function(){if(this.game.device.iPad||this.game.device.webApp||this.game.device.desktop||(this.game.device.android&&!this.game.device.chrome?window.scrollTo(0,1):window.scrollTo(0,0)),null===this._check&&this.maxIterations>0){this._iterations=this.maxIterations;var a=this;this._check=window.setInterval(function(){return a.setScreenSize()},10),this.setScreenSize()}},setScreenSize:function(a){"undefined"==typeof a&&(a=!1),this.game.device.iPad||this.game.device.webApp||this.game.device.desktop||(this.game.device.android&&!this.game.device.chrome?window.scrollTo(0,1):window.scrollTo(0,0)),this._iterations--,(a||window.innerHeight>this._startHeight||this._iterations<0)&&(document.documentElement.style.minHeight=window.innerHeight+"px",this.incorrectOrientation?this.setMaximum():this.isFullScreen?this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?this.setExactFit():this.fullScreenScaleMode===b.ScaleManager.SHOW_ALL&&this.setShowAll():this.scaleMode===b.ScaleManager.EXACT_FIT?this.setExactFit():this.scaleMode===b.ScaleManager.SHOW_ALL&&this.setShowAll(),this.setSize(),clearInterval(this._check),this._check=null)},setSize:function(){this.incorrectOrientation||(this.maxWidth&&this.width>this.maxWidth&&(this.width=this.maxWidth),this.maxHeight&&this.height>this.maxHeight&&(this.height=this.maxHeight),this.minWidth&&this.widththis.maxWidth?this.maxWidth:a,this.height=this.maxHeight&&b>this.maxHeight?this.maxHeight:b}},b.ScaleManager.prototype.constructor=b.ScaleManager,Object.defineProperty(b.ScaleManager.prototype,"isFullScreen",{get:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement}}),Object.defineProperty(b.ScaleManager.prototype,"isPortrait",{get:function(){return 0===this.orientation||180===this.orientation}}),Object.defineProperty(b.ScaleManager.prototype,"isLandscape",{get:function(){return 90===this.orientation||-90===this.orientation}}),b.Game=function(a,c,d,e,f,g,h,i){this.id=b.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=b.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this.width=a),"undefined"!=typeof c&&(this.height=c),"undefined"!=typeof d&&(this.renderer=d,this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new b.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new b.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)),this},b.Game.prototype={parseConfig:function(a){this.config=a,a.width&&(this.width=b.Utils.parseDimension(a.width,0)),a.height&&(this.height=b.Utils.parseDimension(a.height,1)),a.renderer&&(this.renderer=a.renderer,this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var c=[(Date.now()*Math.random()).toString()];a.seed&&(c=a.seed),this.rnd=new b.RandomDataGenerator(c);var d=null;a.state&&(d=a.state),this.state=new b.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new b.Signal,this.onResume=new b.Signal,this.onBlur=new b.Signal,this.onFocus=new b.Signal,this.isBooted=!0,this.device=new b.Device(this),this.math=b.Math,this.stage=new b.Stage(this,this.width,this.height),this.setUpRenderer(),this.scale=new b.ScaleManager(this,this.width,this.height),this.device.checkFullScreenSupport(),this.world=new b.World(this),this.add=new b.GameObjectFactory(this),this.make=new b.GameObjectCreator(this),this.cache=new b.Cache(this),this.load=new b.Loader(this),this.time=new b.Time(this),this.tweens=new b.TweenManager(this),this.input=new b.Input(this),this.sound=new b.SoundManager(this),this.physics=new b.Physics(this,this.physicsConfig),this.particles=new b.Particles(this),this.plugins=new b.PluginManager(this),this.net=new b.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new b.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new b.RequestAnimationFrame(this,this.config.forceSetTimeOut):new b.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=b.VERSION,c="Canvas",d="HTML Audio",e=1;if(this.renderType===b.WEBGL?(c="WebGL",e++):this.renderType==b.HEADLESS&&(c="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+c+" | "+d+" %c %c http://phaser.io %c %c ♥%c♥%c♥ ","background: #0cf300","background: #00bc17","color: #ffffff; background: #00711f;","background: #00bc17","background: #0cf300","background: #00bc17"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+c+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.device.trident&&(this.renderType=b.CANVAS),this.canvas=this.config.canvasID?b.Canvas.create(this.width,this.height,this.config.canvasID):b.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=!0),this.renderType===b.HEADLESS||this.renderType===b.CANVAS||this.renderType===b.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===b.AUTO&&(this.renderType=b.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,this.canvas,this.transparent),this.context=this.renderer.context}else this.renderType=b.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,this.canvas,this.transparent,this.antialias,this.preserveDrawingBuffer),this.context=null;this.renderType!==b.HEADLESS&&(this.stage.smoothed=this.antialias,b.Canvas.addToDOM(this.canvas,this.parent,!1),b.Canvas.setTouchAction(this.canvas))},update:function(a){this.time.update(a),this._paused||this.pendingStep?(this.state.pauseUpdate(),this.config.enableDebug&&this.debug.preUpdate()):(this.stepping&&(this.pendingStep=!0),this.config.enableDebug&&this.debug.preUpdate(),this.physics.preUpdate(),this.state.preUpdate(),this.plugins.preUpdate(),this.stage.preUpdate(),this.state.update(),this.stage.update(),this.tweens.update(),this.sound.update(),this.input.update(),this.physics.update(),this.particles.update(),this.plugins.update(),this.stage.postUpdate(),this.plugins.postUpdate()),this.renderType!=b.HEADLESS&&(this.state.preRender(),this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender(),this.device.cocoonJS&&this.renderType===b.CANVAS&&1===this.stage.currentRenderOrderID&&this.context.fillRect(0,0,0,0))},enableStep:function(){this.stepping=!0,this.pendingStep=!1,this.stepCount=0},disableStep:function(){this.stepping=!1,this.pendingStep=!1},step:function(){this.pendingStep=!1,this.stepCount++},destroy:function(){this.raf.stop(),this.input.destroy(),this.state.destroy(),this.physics.destroy(),this.state=null,this.cache=null,this.input=null,this.load=null,this.sound=null,this.stage=null,this.time=null,this.world=null,this.isBooted=!1},gamePaused:function(a){this._paused||(this._paused=!0,this.time.gamePaused(),this.sound.setMute(),this.onPause.dispatch(a))},gameResumed:function(a){this._paused&&!this._codePaused&&(this._paused=!1,this.time.gameResumed(),this.input.reset(),this.sound.unsetMute(),this.onResume.dispatch(a))},focusLoss:function(a){this.onBlur.dispatch(a),this.stage.disableVisibilityChange||this.gamePaused(a)},focusGain:function(a){this.onFocus.dispatch(a),this.stage.disableVisibilityChange||this.gameResumed(a)}},b.Game.prototype.constructor=b.Game,Object.defineProperty(b.Game.prototype,"paused",{get:function(){return this._paused},set:function(a){a===!0?this._paused===!1&&(this._paused=!0,this._codePaused=!0,this.sound.setMute(),this.time.gamePaused(),this.onPause.dispatch(this)):this._paused&&(this._paused=!1,this._codePaused=!1,this.input.reset(),this.sound.unsetMute(),this.time.gameResumed(),this.onResume.dispatch(this)) }}),b.Input=function(a){this.game=a,this.hitCanvas=null,this.hitContext=null,this.moveCallbacks=[],this.moveCallback=null,this.moveCallbackContext=this,this.pollRate=0,this.disabled=!1,this.multiInputOverride=b.Input.MOUSE_TOUCH_COMBINE,this.position=null,this.speed=null,this.circle=null,this.scale=null,this.maxPointers=10,this.currentPointers=0,this.tapRate=200,this.doubleTapRate=300,this.holdRate=2e3,this.justPressedRate=200,this.justReleasedRate=200,this.recordPointerHistory=!1,this.recordRate=100,this.recordLimit=100,this.pointer1=null,this.pointer2=null,this.pointer3=null,this.pointer4=null,this.pointer5=null,this.pointer6=null,this.pointer7=null,this.pointer8=null,this.pointer9=null,this.pointer10=null,this.activePointer=null,this.mousePointer=null,this.mouse=null,this.keyboard=null,this.touch=null,this.mspointer=null,this.gamepad=null,this.resetLocked=!1,this.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.minPriorityID=0,this.interactiveItems=new b.ArrayList,this._localPoint=new b.Point,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=0},b.Input.MOUSE_OVERRIDES_TOUCH=0,b.Input.TOUCH_OVERRIDES_MOUSE=1,b.Input.MOUSE_TOUCH_COMBINE=2,b.Input.prototype={boot:function(){this.mousePointer=new b.Pointer(this.game,0),this.pointer1=new b.Pointer(this.game,1),this.pointer2=new b.Pointer(this.game,2),this.mouse=new b.Mouse(this.game),this.keyboard=new b.Keyboard(this.game),this.touch=new b.Touch(this.game),this.mspointer=new b.MSPointer(this.game),this.gamepad=new b.Gamepad(this.game),this.onDown=new b.Signal,this.onUp=new b.Signal,this.onTap=new b.Signal,this.onHold=new b.Signal,this.scale=new b.Point(1,1),this.speed=new b.Point,this.position=new b.Point,this._oldPosition=new b.Point,this.circle=new b.Circle(0,0,44),this.activePointer=this.mousePointer,this.currentPointers=0,this.hitCanvas=document.createElement("canvas"),this.hitCanvas.width=1,this.hitCanvas.height=1,this.hitContext=this.hitCanvas.getContext("2d"),this.mouse.start(),this.keyboard.start(),this.touch.start(),this.mspointer.start(),this.mousePointer.active=!0},destroy:function(){this.mouse.stop(),this.keyboard.stop(),this.touch.stop(),this.mspointer.stop(),this.gamepad.stop(),this.moveCallbacks=[],this.moveCallback=null},setMoveCallback:function(a,b){this.moveCallback=a,this.moveCallbackContext=b},addMoveCallback:function(a,b){return this.moveCallbacks.push({callback:a,context:b})-1},deleteMoveCallback:function(a){this.moveCallbacks[a]&&this.moveCallbacks.splice(a,1)},addPointer:function(){for(var a=0,c=10;c>0;c--)null===this["pointer"+c]&&(a=c);return 0===a?(console.warn("You can only have 10 Pointer objects"),null):(this["pointer"+a]=new b.Pointer(this.game,a),this["pointer"+a])},update:function(){return this.keyboard.update(),this.pollRate>0&&this._pollCounter=c;c++)this["pointer"+c]&&this["pointer"+c].reset();this.currentPointers=0,"none"!==this.game.canvas.style.cursor&&(this.game.canvas.style.cursor="inherit"),a&&(this.onDown.dispose(),this.onUp.dispose(),this.onTap.dispose(),this.onHold.dispose(),this.onDown=new b.Signal,this.onUp=new b.Signal,this.onTap=new b.Signal,this.onHold=new b.Signal,this.moveCallbacks=[]),this._pollCounter=0}},resetSpeed:function(a,b){this._oldPosition.setTo(a,b),this.speed.setTo(0,0)},startPointer:function(a){if(this.maxPointers<10&&this.totalActivePointers==this.maxPointers)return null;if(this.pointer1.active===!1)return this.pointer1.start(a);if(this.pointer2.active===!1)return this.pointer2.start(a);for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active===!1)return this["pointer"+b].start(a);return null},updatePointer:function(a){if(this.pointer1.active&&this.pointer1.identifier==a.identifier)return this.pointer1.move(a);if(this.pointer2.active&&this.pointer2.identifier==a.identifier)return this.pointer2.move(a);for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active&&this["pointer"+b].identifier==a.identifier)return this["pointer"+b].move(a);return null},stopPointer:function(a){if(this.pointer1.active&&this.pointer1.identifier==a.identifier)return this.pointer1.stop(a);if(this.pointer2.active&&this.pointer2.identifier==a.identifier)return this.pointer2.stop(a);for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active&&this["pointer"+b].identifier==a.identifier)return this["pointer"+b].stop(a);return null},getPointer:function(a){if(a=a||!1,this.pointer1.active==a)return this.pointer1;if(this.pointer2.active==a)return this.pointer2;for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].active==a)return this["pointer"+b];return null},getPointerFromIdentifier:function(a){if(this.pointer1.identifier===a)return this.pointer1;if(this.pointer2.identifier===a)return this.pointer2;for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].identifier===a)return this["pointer"+b];return null},getPointerFromId:function(a){if(this.pointer1.pointerId===a)return this.pointer1;if(this.pointer2.pointerId===a)return this.pointer2;for(var b=3;10>=b;b++)if(this["pointer"+b]&&this["pointer"+b].pointerId===a)return this["pointer"+b];return null},getLocalPosition:function(a,c,d){"undefined"==typeof d&&(d=new b.Point);var e=a.worldTransform,f=1/(e.a*e.d+e.b*-e.c);return d.setTo(e.d*f*c.x+-e.b*f*c.y+(e.ty*e.b-e.tx*e.d)*f,e.a*f*c.y+-e.c*f*c.x+(-e.ty*e.a+e.tx*e.c)*f)},hitTest:function(a,c,d){if(!a.worldVisible)return!1;if(this.getLocalPosition(a,c,this._localPoint),d.copyFrom(this._localPoint),a.hitArea&&a.hitArea.contains)return a.hitArea.contains(this._localPoint.x,this._localPoint.y)?!0:!1;if(a instanceof b.TileSprite){var e=a.width,f=a.height,g=-e*a.anchor.x;if(this._localPoint.x>g&&this._localPoint.xh&&this._localPoint.yg&&this._localPoint.xh&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],c,d))return!0;return!1}},b.Input.prototype.constructor=b.Input,Object.defineProperty(b.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(b.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(b.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter=a;a++)this["pointer"+a]&&this["pointer"+a].active&&this.currentPointers++;return this.currentPointers}}),Object.defineProperty(b.Input.prototype,"worldX",{get:function(){return this.game.camera.view.x+this.x}}),Object.defineProperty(b.Input.prototype,"worldY",{get:function(){return this.game.camera.view.y+this.y}}),b.Key=function(a,c){this.game=a,this.enabled=!0,this.event=null,this.isDown=!1,this.isUp=!0,this.altKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.timeDown=0,this.duration=0,this.timeUp=-2500,this.repeats=0,this.keyCode=c,this.onDown=new b.Signal,this.onHoldCallback=null,this.onHoldContext=null,this.onUp=new b.Signal},b.Key.prototype={update:function(){this.enabled&&this.isDown&&(this.duration=this.game.time.now-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(a){this.enabled&&(this.event=a,this.isDown||(this.altKey=a.altKey,this.ctrlKey=a.ctrlKey,this.shiftKey=a.shiftKey,this.isDown=!0,this.isUp=!1,this.timeDown=this.game.time.now,this.duration=0,this.repeats=0,this.onDown.dispatch(this)))},processKeyUp:function(a){this.enabled&&(this.event=a,this.isUp||(this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=this.game.time.now-this.timeDown,this.onUp.dispatch(this)))},reset:function(a){"undefined"==typeof a&&(a=!0),this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=0,this.enabled=!0,a&&(this.onDown.removeAll(),this.onUp.removeAll(),this.onHoldCallback=null,this.onHoldContext=null)},justPressed:function(a){return"undefined"==typeof a&&(a=50),this.isDown&&this.duration=this.game.input.holdRate&&((this.game.input.multiInputOverride==b.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==b.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==b.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.now>=this._nextDrop&&(this._nextDrop=this.game.time.now+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,c){if(!this.game.input.pollLocked){if("undefined"==typeof c&&(c=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!c&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.stage.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.stage.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===b.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===b.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===b.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;this.game.input.moveCallback&&this.game.input.moveCallback.call(this.game.input.moveCallbackContext,this,this.x,this.y);for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y);if(null!==this.targetObject&&this.targetObject.isDragged===!0)return this.targetObject.update(this)===!1&&(this.targetObject=null),this;if(this._highestRenderOrderID=Number.MAX_SAFE_INTEGER,this._highestRenderObject=null,this._highestInputPriorityID=-1,this.game.input.interactiveItems.total>0){var e=this.game.input.interactiveItems.first;do e&&e.validForInput(this._highestInputPriorityID,this._highestRenderOrderID)&&(!c&&e.checkPointerOver(this)||c&&e.checkPointerDown(this))&&(this._highestRenderOrderID=e.sprite._cache[3],this._highestInputPriorityID=e.priorityID,this._highestRenderObject=e),e=this.game.input.interactiveItems.next;while(null!==e)}return null===this._highestRenderObject?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=this._highestRenderObject,this._highestRenderObject._pointerOverHandler(this)):this.targetObject===this._highestRenderObject?this._highestRenderObject.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=this._highestRenderObject,this.targetObject._pointerOverHandler(this)),this}},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.now,(this.game.input.multiInputOverride===b.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===b.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===b.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.now},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.now},reset:function(){this.isMouse===!1&&(this.active=!1),this.pointerId=null,this.identifier=null,this.isDown=!1,this.isUp=!0,this.totalTouches=0,this._holdSent=!1,this._history.length=0,this._stateReset=!0,this.targetObject&&this.targetObject._releasedHandler(this),this.targetObject=null},resetMovement:function(){this.movementX=0,this.movementY=0}},b.Pointer.prototype.constructor=b.Pointer,Object.defineProperty(b.Pointer.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.now-this.timeDown}}),Object.defineProperty(b.Pointer.prototype,"worldX",{get:function(){return this.game.world.camera.x+this.x}}),Object.defineProperty(b.Pointer.prototype,"worldY",{get:function(){return this.game.world.camera.y+this.y}}),b.Touch=function(a){this.game=a,this.disabled=!1,this.callbackContext=this.game,this.touchStartCallback=null,this.touchMoveCallback=null,this.touchEndCallback=null,this.touchEnterCallback=null,this.touchLeaveCallback=null,this.touchCancelCallback=null,this.preventDefault=!0,this.event=null,this._onTouchStart=null,this._onTouchMove=null,this._onTouchEnd=null,this._onTouchEnter=null,this._onTouchLeave=null,this._onTouchCancel=null,this._onTouchMove=null},b.Touch.prototype={start:function(){if(null===this._onTouchStart){var a=this;this.game.device.touch&&(this._onTouchStart=function(b){return a.onTouchStart(b)},this._onTouchMove=function(b){return a.onTouchMove(b)},this._onTouchEnd=function(b){return a.onTouchEnd(b)},this._onTouchEnter=function(b){return a.onTouchEnter(b)},this._onTouchLeave=function(b){return a.onTouchLeave(b)},this._onTouchCancel=function(b){return a.onTouchCancel(b)},this.game.canvas.addEventListener("touchstart",this._onTouchStart,!1),this.game.canvas.addEventListener("touchmove",this._onTouchMove,!1),this.game.canvas.addEventListener("touchend",this._onTouchEnd,!1),this.game.canvas.addEventListener("touchcancel",this._onTouchCancel,!1),this.game.device.cocoonJS||(this.game.canvas.addEventListener("touchenter",this._onTouchEnter,!1),this.game.canvas.addEventListener("touchleave",this._onTouchLeave,!1)))}},consumeDocumentTouches:function(){this._documentTouchMove=function(a){a.preventDefault()},document.addEventListener("touchmove",this._documentTouchMove,!1)},onTouchStart:function(a){if(this.event=a,this.touchStartCallback&&this.touchStartCallback.call(this.callbackContext,a),!this.game.input.disabled&&!this.disabled){this.preventDefault&&a.preventDefault();for(var b=0;b0&&d>this.deadZone||0>d&&d<-this.deadZone?{axis:c,value:d}:{axis:c,value:0})}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var c=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=a.axes,this._axesLen=a.axes.length;for(var d in a.buttons)d=parseInt(d,10),this._buttons[d]=new b.GamepadButton(this,d);c&&this._padParent.onConnectCallback&&this._padParent.onConnectCallback.call(this._padParent.callbackContext,this.index),c&&this.onConnectCallback&&this.onConnectCallback.call(this.callbackContext)},disconnect:function(){var a=this.connected,b=this.index;this.connected=!1,this.index=null,this._rawPad=void 0;for(var c=0;cd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new b.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new b.Signal,this.sprite.events.onInputOut=new b.Signal,this.sprite.events.onInputDown=new b.Signal,this.sprite.events.onInputUp=new b.Signal,this.sprite.events.onDragStart=new b.Signal,this.sprite.events.onDragStop=new b.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b){return 0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0:!1},checkPointerOver:function(a){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0:!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(this.game.input.hitContext.clearRect(0,0,1,1),null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID==a.id?this.updateDrag(a):this._pointerData[a.id].isOver===!0?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isOver===!1&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.now,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.now,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.now,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.now,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){return a.isUp?(this.stopDrag(a),!1):(this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=a.x+this._dragPoint.x+this.dragOffset.x),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=a.y+this._dragPoint.y+this.dragOffset.y),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=a.x+this._dragPoint.x+this.dragOffset.x),this.allowVerticalDrag&&(this.sprite.y=a.y+this._dragPoint.y+this.dragOffset.y),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0)},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=a.x+(this.sprite.x-b.centerX),this.sprite.y=a.y+(this.sprite.y-b.centerY),this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y)}else this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y);this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},b.InputHandler.prototype.constructor=b.InputHandler,b.Events=function(a){this.parent=a,this.onAddedToGroup=new b.Signal,this.onRemovedFromGroup=new b.Signal,this.onKilled=new b.Signal,this.onRevived=new b.Signal,this.onOutOfBounds=new b.Signal,this.onEnterBounds=new b.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},b.Events.prototype={destroy:function(){this.parent=null,this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},b.Events.prototype.constructor=b.Events,b.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},b.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,c,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new b.Image(this.game,a,c,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,c,d,e,f){return new b.Group(this.game,a,c,d,e,f)},physicsGroup:function(a,c,d,e){return new b.Group(this.game,c,d,e,!0,a)},spriteBatch:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.SpriteBatch(this.game,a,c,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,c,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new b.TileSprite(this.game,a,c,d,e,f,g))},text:function(a,c,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new b.Text(this.game,a,c,d,e))},button:function(a,c,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new b.Button(this.game,a,c,d,e,f,g,h,i,j))},graphics:function(a,c,d){return"undefined"==typeof d&&(d=this.world),d.add(new b.Graphics(this.game,a,c))},emitter:function(a,c,d){return this.game.particles.add(new b.Particles.Arcade.Emitter(this.game,a,c,d))},retroFont:function(a,c,d,e,f,g,h,i,j){return new b.RetroFont(this.game,a,c,d,e,f,g,h,i,j)},bitmapText:function(a,c,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new b.BitmapText(this.game,a,c,d,e,f))},tilemap:function(a,c,d,e,f){return new b.Tilemap(this.game,a,c,d,e,f)},renderTexture:function(a,c,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new b.RenderTexture(this.game,a,c,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,c,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new b.BitmapData(this.game,d,a,c);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var c=Array.prototype.splice.call(arguments,1),a=new b.Filter[a](this.game);return a.init.apply(a,c),a},plugin:function(a){return this.game.plugins.add(a)}},b.GameObjectFactory.prototype.constructor=b.GameObjectFactory,b.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},b.GameObjectCreator.prototype={image:function(a,c,d,e){return new b.Image(this.game,a,c,d,e)},sprite:function(a,c,d,e){return new b.Sprite(this.game,a,c,d,e)},tween:function(a){return new b.Tween(a,this.game)},group:function(a,c,d,e,f){return new b.Group(this.game,null,c,d,e,f)},spriteBatch:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.SpriteBatch(this.game,a,c,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,c,d,e,f,g){return new b.TileSprite(this.game,a,c,d,e,f,g)},text:function(a,c,d,e){return new b.Text(this.game,a,c,d,e)},button:function(a,c,d,e,f,g,h,i,j){return new b.Button(this.game,a,c,d,e,f,g,h,i,j)},graphics:function(a,c){return new b.Graphics(this.game,a,c)},emitter:function(a,c,d){return new b.Particles.Arcade.Emitter(this.game,a,c,d)},retroFont:function(a,c,d,e,f,g,h,i,j){return new b.RetroFont(this.game,a,c,d,e,f,g,h,i,j)},bitmapText:function(a,c,d,e,f){return new b.BitmapText(this.game,a,c,d,e,f)},tilemap:function(a,c,d,e,f){return new b.Tilemap(this.game,a,c,d,e,f)},renderTexture:function(a,c,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new b.RenderTexture(this.game,a,c,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,c,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new b.BitmapData(this.game,d,a,c);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var c=Array.prototype.splice.call(arguments,1),a=new b.Filter[a](this.game);return a.init.apply(a,c),a}},b.GameObjectCreator.prototype.constructor=b.GameObjectCreator,b.BitmapData=function(a,c,d,e){"undefined"==typeof d&&(d=100),"undefined"==typeof e&&(e=100),this.game=a,this.key=c,this.width=d,this.height=e,this.canvas=b.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=b.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this.update=this.refreshBuffer,this._tempR=0,this._tempG=0,this._tempB=0 -},b.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)b.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(c,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},replaceRGB:function(a,c,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=b.Color.packPixel(a,c,d,e);void 0!==j&&j instanceof b.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);this.context.putImageData(this.imageData,0,0),this.dirty=!0},setHSL:function(a,c,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof c||null===c)&&(c=!1),("undefined"==typeof d||null===d)&&(d=!1),a||c||d){"undefined"==typeof e&&(e=new b.Rectangle(0,0,this.width,this.height));for(var f=b.Color.createColor(),g=e.y;g=0&&a<=this.width&&c>=0&&c<=this.height&&(this.pixels[c*this.width+a]=b.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0))},setPixel:function(a,b,c,d,e,f){this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,c,d){d||(d=b.Color.createColor());var e=~~(a+c*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,c,d,e,f){return b.Color.unpackPixel(this.getPixel32(a,c),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},addToWorld:function(a,b){return this.game.add.image(a,b,this)},copyPixels:function(a,c,d,e){"string"==typeof a&&(a=this.game.cache.getImage(a));var f=a,g=0,h=0;if(a instanceof b.Image||a instanceof b.Sprite){f=a.texture.baseTexture.source;var i=a.texture.frame;g=i.x,h=i.y}else a instanceof b.BitmapData&&(f=a.canvas);this.context.drawImage(f,g+c.x,h+c.y,c.width,c.height,d,e,c.width,c.height),this.dirty=!0},draw:function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"string"==typeof a&&(a=this.game.cache.getImage(a));var g=a,h=0,i=0,j=0,k=0;if(a instanceof b.Image||a instanceof b.Sprite){g=a.texture.baseTexture.source;var l=a.texture.frame;h=l.x,i=l.y,j=l.width,k=l.height}else a instanceof b.BitmapData&&(g=a.canvas),j=a.width,k=a.height;"undefined"==typeof e&&(e=j),"undefined"==typeof f&&(f=k),this.context.drawImage(g,h,i,j,k,c,d,e,f),this.dirty=!0},drawSprite:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),this.draw(a,b,c)},alphaMask:function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this);var e=this.context.globalCompositeOperation;"undefined"==typeof d||null===d?this.draw(b):this.draw(b,d.x,d.y,d.width,d.height),this.context.globalCompositeOperation="source-atop","undefined"==typeof c||null===c?this.draw(a):this.draw(a,c.x,c.y,c.width,c.height),this.context.globalCompositeOperation=e,this.update(),this.dirty=!0},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d)},circle:function(a,b,c,d){"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill()},render:function(){!this.disableTextureUpload&&this.game.renderType===b.WEBGL&&this.dirty&&(PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1)}},b.BitmapData.prototype.constructor=b.BitmapData,b.Sprite=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=b.SPRITE,this.z=0,this.events=new b.Events(this),this.animations=new b.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new b.Rectangle,this.loadTexture(e,f)},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Sprite.prototype.update=function(){},b.Sprite.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Sprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a;var d=!0;a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),c))):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),d&&(this._frame=b.Rectangle.clone(this.texture.frame))},b.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.cropRect?this.updateCrop():this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},b.Sprite.prototype.crop=function(a,c){"undefined"==typeof c&&(c=!1),a?(c&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=c&&null===this.cropRect?new b.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},b.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=b.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),c=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-c;this.texture.crop.x=a,this.texture.crop.y=c,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)}},b.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},b.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},b.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},b.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},b.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},b.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},b.Sprite.prototype.overlap=function(a){return b.Rectangle.intersects(this.getBounds(),a.getBounds())},Object.defineProperty(b.Sprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(b.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(b.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(b.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(b.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(b.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Image=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=b.IMAGE,this.z=0,this.events=new b.Events(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.cameraOffset=new b.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new b.Rectangle,this._frameName="",this.loadTexture(e,f)},b.Image.prototype=Object.create(PIXI.Sprite.prototype),b.Image.prototype.constructor=b.Image,b.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Image.prototype.update=function(){},b.Image.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Image.prototype.loadTexture=function(a,c){if(c=c||0,this.key=a,a instanceof b.RenderTexture)this.key=a.key,this.setTexture(a);else if(a instanceof b.BitmapData)this.setTexture(a.texture);else if(a instanceof PIXI.Texture)this.setTexture(a);else if(null===a||"undefined"==typeof a)this.key="__default",this.setTexture(PIXI.TextureCache[this.key]);else if("string"!=typeof a||this.game.cache.checkImageKey(a))if(this.game.cache.isSpriteSheet(a)){var d=this.game.cache.getFrameData(a);this.setTexture("string"==typeof c?new PIXI.Texture(PIXI.BaseTextureCache[a],d.getFrameByName(c)):new PIXI.Texture(PIXI.BaseTextureCache[a],d.getFrame(c)))}else this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a]));else console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]);this._frame=b.Rectangle.clone(this.texture.frame)},b.Image.prototype.resetFrame=b.Sprite.prototype.resetFrame,b.Image.prototype.setFrame=b.Sprite.prototype.setFrame,b.Image.prototype.updateCrop=b.Sprite.prototype.updateCrop,b.Image.prototype.crop=b.Sprite.prototype.crop,b.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},b.Image.prototype.kill=b.Sprite.prototype.kill,b.Image.prototype.destroy=b.Sprite.prototype.destroy,b.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},b.Image.prototype.bringToTop=b.Sprite.prototype.bringToTop,Object.defineProperty(b.Image.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"frame",{get:function(){return this._cache[9]},set:function(a){if(a!==this.frame&&this.game.cache.isSpriteSheet(this.key)){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},b.TileSprite.prototype.update=function(){},b.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},b.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},b.TileSprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a,a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),c)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},b.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.filters&&(this.filters=null),this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},b.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(b.TileSprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(b.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(b.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(b.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Text=function(a,c,d,e,f){c=c||0,d=d||0,e=e||" ",f=f||{},e=0===e.length?" ":e.toString(),this.game=a,this.exists=!0,this.name="",this.type=b.TEXT,this.z=0,this.world=new b.Point(c,d),this._text=e,this._font="",this._fontSize=32,this._fontWeight="normal",this._lineSpacing=0,this.events=new b.Events(this),this.input=null,this.cameraOffset=new b.Point,this.setStyle(f),PIXI.Text.call(this,e,this.style),this.position.set(c,d),this._cache=[0,0,0,0,1,0,1,0,0]},b.Text.prototype=Object.create(PIXI.Text.prototype),b.Text.prototype.constructor=b.Text,b.Text.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Text.prototype.update=function(){},b.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0},b.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},b.Text.prototype.updateText=function(){this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=0;ee?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},b.Graphics.prototype.drawTriangles=function(a,c,d){"undefined"==typeof d&&(d=!1);var e,f=new b.Point,g=new b.Point,h=new b.Point,i=[];if(c)if(a[0]instanceof b.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},b.RetroFont.prototype.buildRetroFontText=function(){var a=0,c=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,c,this.customSpacingX),c+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case b.RetroFont.ALIGN_LEFT:a=0;break;case b.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},b.RetroFont.prototype.pasteLine=function(a,c,d,e){for(var f=new b.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(c,d),this.render(this.stamp,f,!1),c+=this.characterWidth+e,c>this.width))break},b.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},b.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},b.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(b.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(b.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),b.Particle=function(a,c,d,e,f){b.Sprite.call(this,a,c,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},b.Particle.prototype=Object.create(b.Sprite.prototype),b.Particle.prototype.constructor=b.Particle,b.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},b.Particle.prototype.onEmit=function(){},b.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},b.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},b.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},b.Canvas={create:function(a,b,c,d){"undefined"==typeof d&&(d=!1),a=a||256,b=b||256;var e=document.createElement("canvas");return"string"==typeof c&&""!==c&&(e.id=c),e.width=a,e.height=b,e.style.display="block",e},getOffset:function(a,c){c=c||new b.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),c.x=d.left+h-f,c.y=d.top+g-e,c},getAspectRatio:function(a){return a.width/a.height},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},b.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.touch=!1,this.mspointer=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures()},b.Device.LITTLE_ENDIAN=!1,b.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},b.Device.prototype.constructor=b.Device,b.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b; -for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=[],b=0;b0?Math.floor(a):Math.ceil(a)},shear:function(a){return a%1},snapTo:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},snapToInArray:function(a,b,c){if("undefined"==typeof c&&(c=!0),c&&b.sort(),a=f-a?f:e},roundTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},interpolateFloat:function(a,b,c){return(b-a)*c+a},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},normalizeLatitude:function(a){return Math.max(-90,Math.min(90,a))},normalizeLongitude:function(a){return a%360==180?180:(a%=360,-180>a?a+360:a>180?a-360:a)},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),0>=a?!1:a>=100?!0:100*Math.random()>=a?!1:!0},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},maxAdd:function(a,b,c){return a+=b,a>c&&(a=c),a},minSub:function(a,b,c){return a-=b,c>a&&(a=c),a},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,c){return b>a?b:a>c?c:a},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){var c=b?Math.PI/180:1;return this.wrap(a,-180*c,180*c)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0)return a[b+Math.floor(Math.random()*d)]}return null},removeRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0){var e=b+Math.floor(Math.random()*d),f=a.splice(e,1);return f[0]}}return null},floor:function(a){var b=0|a;return a>0?b:b!=a?b-1:b},ceil:function(a){var b=0|a;return a>0&&b!=a?b+1:b},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){for(var b=a.length-1;b>0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,c,d,e){return Math.round(b.Math.distance(a,c,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b},degToRad:function(){var a=Math.PI/180;return function(b){return b*a}}(),radToDeg:function(){var a=180/Math.PI;return function(b){return b*a}}()},b.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},b.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},b.RandomDataGenerator.prototype.constructor=b.RandomDataGenerator,b.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},b.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.level++,this.nodes[0]=new b.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[1]=new b.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[2]=new b.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[3]=new b.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof b.Rectangle)var c=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var c=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?c=c.concat(this.nodes[d].retrieve(a)):(c=c.concat(this.nodes[0].retrieve(a)),c=c.concat(this.nodes[1].retrieve(a)),c=c.concat(this.nodes[2].retrieve(a)),c=c.concat(this.nodes[3].retrieve(a)))),c},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},b.QuadTree.prototype.constructor=b.QuadTree,b.Net=function(a){this.game=a},b.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},b.Net.prototype.constructor=b.Net,b.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},b.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;aa;)this._tweens[a].update(this.game.time.now)?a++:(this._tweens.splice(a,1),b--);return this._add.length>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},b.TweenManager.prototype.constructor=b.TweenManager,b.Tween=function(a,c,d){this._object=a,this.game=c,this._manager=d,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=b.Easing.Linear.None,this._interpolationFunction=b.Math.linearInterpolation,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._paused=!1,this._pausedTime=0,this._codePaused=!1,this.pendingDelete=!1,this.onStart=new b.Signal,this.onLoop=new b.Signal,this.onComplete=new b.Signal,this.isRunning=!1},b.Tween.prototype={to:function(a,b,c,d,e,f,g){b=b||1e3,c=c||null,d=d||!1,e=e||0,f=f||0,g=g||!1,g&&0===f&&(f=1);var h;return this._parent?(h=this._manager.create(this._object),this._lastChild.chain(h),this._lastChild=h):(h=this,this._parent=this,this._lastChild=this),h._repeat=f,h._duration=b,h._valuesEnd=a,null!==c&&(h._easingFunction=c),e>0&&(h._delayTime=e),h._yoyo=g,d?this.start():this},from:function(a,b,c,d,e,f,g){var h={};for(var i in a)h[i]=this._object[i],this._object[i]=a[i];return this.to(h,b,c,d,e,f,g)},start:function(){if(null!==this.game&&null!==this._object){this._manager.add(this),this.isRunning=!0,this._onStartCallbackFired=!1,this._startTime=this.game.time.now+this._delayTime;for(var a in this._valuesEnd){if(Array.isArray(this._valuesEnd[a])){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],Array.isArray(this._valuesStart[a])||(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},generateData:function(a,b){if(null===this.game||null===this._object)return null;this._startTime=0;for(var c in this._valuesEnd){if(Array.isArray(this._valuesEnd[c])){if(0===this._valuesEnd[c].length)continue;this._valuesEnd[c]=[this._object[c]].concat(this._valuesEnd[c])}this._valuesStart[c]=this._object[c],Array.isArray(this._valuesStart[c])||(this._valuesStart[c]*=1),this._valuesStartRepeat[c]=this._valuesStart[c]||0}for(var d=0,e=Math.floor(a*(this._duration/1e3)),f=this._duration/e,g=[];e--;){var c,h=(d-this._startTime)/this._duration;h=h>1?1:h;var i=this._easingFunction(h),j={};for(c in this._valuesEnd){var k=this._valuesStart[c]||0,l=this._valuesEnd[c];l instanceof Array?j[c]=this._interpolationFunction(l,i):("string"==typeof l&&(l=k+parseFloat(l,10)),"number"==typeof l&&(j[c]=k+(l-k)*i))}g.push(j),d+=f}if(this._yoyo){var m=g.slice();m.reverse(),g=g.concat(m)}return"undefined"!=typeof b?b=b.concat(g):g},stop:function(){return this.isRunning=!1,this._onUpdateCallback=null,this._manager.remove(this),this},delay:function(a){return this._delayTime=a,this},repeat:function(a){return this._repeat=a,this},yoyo:function(a){return this._yoyo=a,a&&0===this._repeat&&(this._repeat=1),this},easing:function(a){return this._easingFunction=a,this},interpolation:function(a){return this._interpolationFunction=a,this},chain:function(){return this._chainedTweens=arguments,this},loop:function(){return this._lastChild.chain(this),this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this._codePaused=!0,this._paused=!0,this._pausedTime=this.game.time.now},_pause:function(){this._codePaused||(this._paused=!0,this._pausedTime=this.game.time.now)},resume:function(){this._paused&&(this._paused=!1,this._codePaused=!1,this._startTime+=this.game.time.now-this._pausedTime)},_resume:function(){this._codePaused||(this._startTime+=this.game.time.pauseDuration,this._paused=!1)},update:function(a){if(this.pendingDelete)return!1;if(this._paused||a1?1:c;var d=this._easingFunction(c);for(b in this._valuesEnd){var e=this._valuesStart[b]||0,f=this._valuesEnd[b];f instanceof Array?this._object[b]=this._interpolationFunction(f,d):("string"==typeof f&&(f=e+parseFloat(f,10)),"number"==typeof f&&(this._object[b]=e+(f-e)*d))}if(null!==this._onUpdateCallback&&(this._onUpdateCallback.call(this._onUpdateCallbackContext,this,d),!this.isRunning))return!1;if(1==c){if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(b in this._valuesStartRepeat){if("string"==typeof this._valuesEnd[b]&&(this._valuesStartRepeat[b]=this._valuesStartRepeat[b]+parseFloat(this._valuesEnd[b],10)),this._yoyo){var g=this._valuesStartRepeat[b];this._valuesStartRepeat[b]=this._valuesEnd[b],this._valuesEnd[b]=g}this._valuesStart[b]=this._valuesStartRepeat[b]}return this._yoyo&&(this._reversed=!this._reversed),this._startTime=a+this._delayTime,this.onLoop.dispatch(this._object),!0}this.isRunning=!1,this.onComplete.dispatch(this._object);for(var h=0,i=this._chainedTweens.length;i>h;h++)this._chainedTweens[h].start(a);return!1}return!0}},b.Tween.prototype.constructor=b.Tween,b.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-b.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*b.Easing.Bounce.In(2*a):.5*b.Easing.Bounce.Out(2*a-1)+.5}}},b.Time=function(a){this.game=a,this.time=0,this.now=0,this.elapsed=0,this.pausedTime=0,this.advancedTiming=!1,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.physicsElapsed=0,this.deltaCap=0,this.timeCap=1e3,this.frames=0,this.pauseDuration=0,this.timeToCall=0,this.lastTime=0,this.events=new b.Timer(this.game,!1),this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[],this._len=0,this._i=0},b.Time.prototype={boot:function(){this._started=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var c=new b.Timer(this.game,a);return this._timers.push(c),c},removeAll:function(){for(var a=0;athis.timeCap&&(this.elapsed=1/60),this.physicsElapsed=this.elapsed/1e3||1/60,this.deltaCap>0&&this.physicsElapsed>this.deltaCap&&(this.physicsElapsed=this.deltaCap),this.advancedTiming&&(this.msMin=this.game.math.min(this.msMin,this.elapsed),this.msMax=this.game.math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=this.game.math.min(this.fpsMin,this.fps),this.fpsMax=this.game.math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)),this.time=this.now,this.lastTime=a+this.timeToCall,!this.game.paused)for(this.events.update(this.now),this._i=0,this._len=this._timers.length;this._i0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.now,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.now,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.now;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(b.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(b.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(b.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(b.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),b.Timer.prototype.constructor=b.Timer,b.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},b.TimerEvent.prototype.constructor=b.TimerEvent,b.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a,b){return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,this._frameData?!0:!1},add:function(a,c,d,e,f){return null===this._frameData?void console.warn("No FrameData available for Phaser.Animation "+a):(c=c||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=c&&"number"==typeof c[0]?!0:!1),null===this.sprite.events.onAnimationStart&&(this.sprite.events.onAnimationStart=new b.Signal,this.sprite.events.onAnimationComplete=new b.Signal,this.sprite.events.onAnimationLoop=new b.Signal),this._outputFrames.length=0,this._frameData.getFrameIndexes(c,f,this._outputFrames),this._anims[a]=new b.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a])},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},b.AnimationManager.prototype.constructor=b.AnimationManager,Object.defineProperty(b.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(b.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData?this._frameData.total:-1}}),Object.defineProperty(b.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(b.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))) -}}),Object.defineProperty(b.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,c,d,e,f,g,h){this.game=a,this._parent=c,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new b.Signal,this.onComplete=new b.Signal,this.onLoop=new b.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},b.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart.dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.now-this._timeNextFrame,this._timeLastFrame=this.game.time.now,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.now+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop.dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete.dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},b.Animation.prototype.constructor=b.Animation,Object.defineProperty(b.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.now:this.isPlaying&&(this._timeNextFrame=this.game.time.now+this.delay)}}),Object.defineProperty(b.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(b.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame))}}),Object.defineProperty(b.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),b.Animation.generateFrameNames=function(a,c,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>c)for(var i=c;d>=i;i++)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=c;i>=d;i--)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},b.Frame=function(a,c,d,e,f,g,h){this.index=a,this.x=c,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=b.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},getRect:function(a){return"undefined"==typeof a?a=new b.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},b.Frame.prototype.constructor=b.Frame,b.FrameData=function(){this._frames=[],this._frameNames=[]},b.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},getFrameRange:function(a,b,c){"undefined"==typeof c&&(c=[]);for(var d=a;b>=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},b.FrameData.prototype.constructor=b.FrameData,Object.defineProperty(b.FrameData.prototype,"total",{get:function(){return this._frames.length}}),b.AnimationParser={spriteSheet:function(a,c,d,e,f,g,h){var i=a.cache.getImage(c);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new b.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new b.Frame(r,p,q,d,e,"",s)),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,c){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var d,e=new b.FrameData,f=c.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o,p=new b.FrameData,q=c.getElementsByTagName("SubTexture"),r=0;r0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,c){if("undefined"==typeof c&&(c=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,c)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?(this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect)):(this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect))),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying===!0&&e===!1&&this.override===!1)return this;if(this.isPlaying&&this.override&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null==this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.now-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},b.Sound.prototype.constructor=b.Sound,Object.defineProperty(b.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(b.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(b.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(b.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),b.SoundManager=function(a){this.game=a,this.onSoundDecode=new b.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},b.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a>>0:(a<<24|c<<16|d<<8|e)>>>0},unpackPixel:function(a,c,d,e){return("undefined"==typeof c||null===c)&&(c=b.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),b.Device.LITTLE_ENDIAN?(c.a=(4278190080&a)>>>24,c.b=(16711680&a)>>>16,c.g=(65280&a)>>>8,c.r=255&a):(c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a),c.color=a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a/255+")",d&&b.Color.RGBtoHSL(c.r,c.g,c.b,c),e&&b.Color.RGBtoHSV(c.r,c.g,c.b,c),c},fromRGBA:function(a,c){return c||(c=b.Color.createColor()),c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a+")",c},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,1)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6}return e},HSLtoRGB:function(a,c,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=b.Color.createColor(d,d,d),0!==c){var f=.5>d?d*(1+c):d+c-d*c,g=2*d-f;e.r=b.Color.hueToColor(g,f,a+1/3),e.g=b.Color.hueToColor(g,f,a),e.b=b.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),b.Color.updateColor(e),e},RGBtoHSV:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,255)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6),e},HSVtoRGB:function(a,c,d,e){"undefined"==typeof e&&(e=b.Color.createColor(0,0,0,1,a,c,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-c),l=d*(1-j*c),m=d*(1-(1-j)*c);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),b.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,c,d,e,f,g,h){var i={r:a||0,g:b||0,b:c||0,a:d||1,h:e||0,s:f||0,l:g||0,v:h||0,color:0};return i.rgba="rgba("+i.r+","+i.g+","+i.b+","+i.a+")",i},updateColor:function(a){return a.rgba="rgba("+a.r+","+a.g+","+a.b+","+a.a+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,c,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(c<<8)+d).toString(16).slice(1):"0x"+b.Color.componentToHex(e)+b.Color.componentToHex(a)+b.Color.componentToHex(c)+b.Color.componentToHex(d)},hexToRGB:function(a){var c=b.Color.hexToColor(a);return c?b.Color.getColor32(c.a,c.r,c.g,c.b):void 0},hexToColor:function(a,c){c||(c=b.Color.createColor());var d=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;a=a.replace(d,function(a,b,c,d){return b+b+c+c+d+d});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return e&&(c.r=parseInt(e[1],16),c.g=parseInt(e[2],16),c.b=parseInt(e[3],16)),c -},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,c){"undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSVtoRGB(e/359,a,c));return d},HSLColorWheel:function(a,c){"undefined"==typeof a&&(a=.5),"undefined"==typeof c&&(c=.5);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSLtoRGB(e/359,a,c));return d},interpolateColor:function(a,c,d,e,f){"undefined"==typeof f&&(f=255);var g=b.Color.getRGB(a),h=b.Color.getRGB(c),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return b.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,c,d,e,f,g){var h=b.Color.getRGB(a),i=(c-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return b.Color.getColor(i,j,k)},interpolateRGB:function(a,c,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-c)*i/h+c,l=(g-d)*i/h+d;return b.Color.getColor(j,k,l)},getRandomColor:function(a,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof c&&(c=255),"undefined"==typeof d&&(d=255),c>255||a>c)return b.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(c-a)),f=a+Math.round(Math.random()*(c-a)),g=a+Math.round(Math.random()*(c-a));return b.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var c=b.Color.getRGB(a);return"rgba("+c.r.toString()+","+c.g.toString()+","+c.b.toString()+","+(c.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},getColorInfo:function(a){var c=b.Color.getRGB(a),d=b.Color.RGBtoHexstring(a)+"\n";return d=d.concat("Alpha: "+c.alpha+" Red: "+c.red+" Green: "+c.green+" Blue: "+c.blue)+"\n"},RGBtoHexstring:function(a){var c=b.Color.getRGB(a);return"0x"+b.Color.colorToHexstring(c.alpha)+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},RGBtoWebstring:function(a){var c=b.Color.getRGB(a);return"#"+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},colorToHexstring:function(a){var b="0123456789ABCDEF",c=a%16,d=(a-c)/16,e=b.charAt(d)+b.charAt(c);return e}},b.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},b.Physics.ARCADE=0,b.Physics.P2JS=1,b.Physics.NINJA=2,b.Physics.BOX2D=3,b.Physics.CHIPMUNK=5,b.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!b.Physics.hasOwnProperty("Arcade")||(this.arcade=new b.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&b.Physics.hasOwnProperty("Ninja")&&(this.ninja=new b.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&b.Physics.hasOwnProperty("P2")&&(this.p2=new b.Physics.P2(this.game,this.config))},startSystem:function(a){if(a===b.Physics.ARCADE?this.arcade=new b.Physics.Arcade(this.game):a===b.Physics.P2JS&&(this.p2=new b.Physics.P2(this.game,this.config)),a===b.Physics.NINJA)this.ninja=new b.Physics.Ninja(this.game);else{if(a===b.Physics.BOX2D&&null===this.box2d)throw new Error("The Box2D physics system has not been implemented yet.");if(a===b.Physics.CHIPMUNK&&null===this.chipmunk)throw new Error("The Chipmunk physics system has not been implemented yet.")}},enable:function(a,c,d){"undefined"==typeof c&&(c=b.Physics.ARCADE),"undefined"==typeof d&&(d=!1),c===b.Physics.ARCADE?this.arcade.enable(a):c===b.Physics.P2JS&&this.p2?this.p2.enable(a,d):c===b.Physics.NINJA&&this.ninja&&this.ninja.enableAABB(a)},preUpdate:function(){this.p2&&this.p2.preUpdate()},update:function(){this.p2&&this.p2.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.arcade=null,this.ninja=null,this.p2=null}},b.Physics.prototype.constructor=b.Physics,b.Physics.Arcade=function(a){this.game=a,this.gravity=new b.Point,this.bounds=new b.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.quadTree=new b.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0},b.Physics.Arcade.prototype.constructor=b.Physics.Arcade,b.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,c){"undefined"==typeof c&&(c=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof b.Group?this.enable(a[d].children,c):(this.enableBody(a[d]),c&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof b.Group?this.enable(a.children,c):(this.enableBody(a),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new b.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,c,d,e,f,g){return"undefined"!=typeof c||a.type!==b.GROUP&&a.type!==b.EMITTER?void(a&&c&&a.exists&&c.exists&&(a.type==b.SPRITE||a.type==b.TILESPRITE?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsSprite(a,c,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideSpriteVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,c,d,e,f):a.type==b.GROUP?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f):a.type==b.TILEMAPLAYER?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsTilemapLayer(c,a,d,e,f):(c.type==b.GROUP||c.type==b.EMITTER)&&this.collideGroupVsTilemapLayer(c,a,d,e,f):a.type==b.EMITTER&&(c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:e?!0:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),0!==this._overlap)?(a.overlapX=this._overlap,b.overlapX=this._overlap,c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0)):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),0!==this._overlap)?(a.overlapY=this._overlap,b.overlapY=this._overlap,c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0)):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,c,d,e){if(0!==c.length&&a.exists){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(c);var f=new b.Rectangle(a.x,a.y,1,1),g=[];this._potentials=this.quadTree.retrieve(f);for(var h=0,i=this._potentials.length;i>h;h++)this._potentials[h].hitTest(a.x,a.y)&&(d&&d.call(e,a,this._potentials[h].sprite),g.push(this._potentials[h].sprite));return g}},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*c,Math.sin(this.game.math.degToRad(a))*c)},velocityFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerationFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},b.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=b.Physics.ARCADE,this.enable=!0,this.offset=new b.Point,this.position=new b.Point(a.x,a.y),this.prev=new b.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new b.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new b.Point,this.newVelocity=new b.Point(0,0),this.deltaMax=new b.Point(0,0),this.acceleration=new b.Point,this.drag=new b.Point,this.allowGravity=!0,this.gravity=new b.Point(0,0),this.bounce=new b.Point,this.maxVelocity=new b.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=b.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new b.Point,this.phase=0,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},b.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=b.LEFT:this.deltaX()>0&&(this.facing=b.RIGHT),this.deltaY()<0?this.facing=b.UP:this.deltaY()>0&&(this.facing=b.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,c){return b.Rectangle.contains(this,a,c)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(b.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),b.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},b.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},b.Physics.Arcade.Body.prototype.constructor=b.Physics.Arcade.Body,b.Particles=function(a){this.game=a,this.emitters={},this.ID=0},b.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},b.Particles.prototype.constructor=b.Particles,b.Particles.Arcade={},b.Particles.Arcade.Emitter=function(a,c,d,e){this.maxParticles=e||50,b.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=b.EMITTER,this.area=new b.Rectangle(c,d,1,1),this.minParticleSpeed=new b.Point(-100,-100),this.maxParticleSpeed=new b.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=b.Particle,this.particleDrag=new b.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new b.Point,this.on=!1,this.particleAnchor=new b.Point(.5,.5),this.blendMode=b.blendModes.NORMAL,this.emitX=c,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new b.Point(1,1),this._maxParticleScale=new b.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},b.Particles.Arcade.Emitter.prototype=Object.create(b.Group.prototype),b.Particles.Arcade.Emitter.prototype.constructor=b.Particles.Arcade.Emitter,b.Particles.Arcade.Emitter.prototype.update=function(){if(this.on)if(this._explode){this._counter=0;do this.emitParticle(),this._counter++;while(this._counter=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},b.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},b.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},b.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},b.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},b.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a||e?this._quantity=d:this._quantity+=d,this._counter=0,this._timer=this.game.time.now+c},b.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit()) -},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},b.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},b.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},b.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},b.Particles.Arcade.Emitter.prototype.setAlpha=function(a,c,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=b.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=c,this.autoAlpha=!1,d>0&&a!==c){var g={v:a},h=this.game.make.tween(g).to({v:c},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},b.Particles.Arcade.Emitter.prototype.setScale=function(a,c,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=b.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(c,e),this.autoScale=!1,f>0&&a!==c||d!==e){var i={x:a,y:d},j=this.game.make.tween(i).to({x:c,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},b.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},b.Tile.prototype.constructor=b.Tile,Object.defineProperty(b.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(b.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),b.Tilemap=function(a,c,d,e,f,g){this.game=a,this.key=c;var h=b.TilemapParser.parse(this.game,c,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},b.Tilemap.CSV=0,b.Tilemap.TILED_JSON=1,b.Tilemap.NORTH=0,b.Tilemap.EAST=1,b.Tilemap.SOUTH=2,b.Tilemap.WEST=3,b.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,c,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof c){if("string"!=typeof a)return null;if(c=a,!this.game.cache.checkImageKey(c))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+c+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===b.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+c+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(c)),this.tilesets[a];var i=new b.Tileset(c,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(c)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===c){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createLayer:function(a,c,d,e){"undefined"==typeof c&&(c=this.game.width),"undefined"==typeof d&&(d=this.game.height),"undefined"==typeof e&&(e=this.game.world);var f=a;return"string"==typeof a&&(f=this.getLayerIndex(a)),null===f||f>this.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new b.TilemapLayer(this.game,this,f,c,d))},createBlankLayer:function(a,c,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:c,height:d,widthInPixels:c*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;c>l;l++)h.push(new b.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new b.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b=0&&a=0&&c=0&&c=0&&d-1?this.layers[e].data[d][c].setCollision(!0,!0,!0,!0):this.layers[e].data[d][c].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][c]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},b.Tilemap.prototype.constructor=b.Tilemap,Object.defineProperty(b.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),b.TilemapLayer=function(a,c,d,e,f){this.game=a,this.map=c,this.index=d,this.layer=c.layers[d],this.canvas=b.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),b.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=b.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new b.Point(0,0),this.tileColor="rgb(255, 255, 255)",this.debug=!1,this.debugAlpha=.5,this.debugColor="rgba(0, 255, 0, 1)",this.debugFill=!1,this.debugFillColor="rgba(0, 255, 0, 0.2)",this.debugCallbackColor="rgba(255, 0, 0, 1)",this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this.wrap=!1,this._mc={cw:c.tileWidth,ch:c.tileHeight,ga:1,dx:0,dy:0,dw:0,dh:0,tx:0,ty:0,tw:0,th:0,tl:0,maxX:0,maxY:0,startX:0,startY:0,x:0,y:0,prevX:0,prevY:0},this._results=[],this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Image.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Image.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},b.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},b.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._mc.x+(a-this._mc.x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._mc.x/this.scrollFactorX+(a-this._mc.x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._mc.y+(a-this._mc.y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._mc.y/this.scrollFactorY+(a-this._mc.y)},b.TilemapLayer.prototype.getTileX=function(a){return this.game.math.snapToFloor(this._fixX(a),this.map.tileWidth)/this.map.tileWidth},b.TilemapLayer.prototype.getTileY=function(a){return this.game.math.snapToFloor(this._fixY(a),this.map.tileHeight)/this.map.tileHeight},b.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},b.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=f.length,h=[],i=0;ij;j++)if(e[i].containsPoint(f[j][0],f[j][1])){h.push(e[i]);break}return h},b.TilemapLayer.prototype.getTiles=function(a,b,c,d,e,f){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),a=this._fixX(a),b=this._fixY(b),c>this.layer.widthInPixels&&(c=this.layer.widthInPixels),d>this.layer.heightInPixels&&(d=this.layer.heightInPixels),this._mc.tx=this.game.math.snapToFloor(a,this._mc.cw)/this._mc.cw,this._mc.ty=this.game.math.snapToFloor(b,this._mc.ch)/this._mc.ch,this._mc.tw=(this.game.math.snapToCeil(c,this._mc.cw)+this._mc.cw)/this._mc.cw,this._mc.th=(this.game.math.snapToCeil(d,this._mc.ch)+this._mc.ch)/this._mc.ch,this._results.length=0;for(var g=this._mc.ty;gd;d++){if(this._column=null,0>d&&this.wrap?this._column=this.layer.data[d+this.map.height]:d>=this.map.height&&this.wrap?this._column=this.layer.data[d-this.map.height]:this.layer.data[d]&&(this._column=this.layer.data[d]),this._column)for(var f=this._mc.startX,g=this._mc.startX+this._mc.maxX;g>f;f++){var a=null;0>f&&this.wrap?a=this._column[f+this.map.width]:f>=this.map.width&&this.wrap?a=this._column[f-this.map.width]:this._column[f]&&(a=this._column[f]),a&&a.index>-1&&(c=this.map.tilesets[this.map.tiles[a.index][2]],this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.draw(this.context,Math.floor(this._mc.tx),Math.floor(this._mc.ty),a.index),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._mc.tx),Math.floor(this._mc.ty),this.map.tileWidth,this.map.tileHeight))),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}return this.debug&&(this.context.globalAlpha=1,this.renderDebug()),this.game.renderType===b.WEBGL&&PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1,this.layer.dirty=!1,!0}},b.TilemapLayer.prototype.renderDebug=function(){this._mc.tx=this._mc.dx,this._mc.ty=this._mc.dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._mc.startY,b=this._mc.startY+this._mc.maxY;b>a;a++){if(this._column=null,0>a&&this.wrap?this._column=this.layer.data[a+this.map.height]:a>=this.map.height&&this.wrap?this._column=this.layer.data[a-this.map.height]:this.layer.data[a]&&(this._column=this.layer.data[a]),this._column)for(var c=this._mc.startX,d=this._mc.startX+this._mc.maxX;d>c;c++){var e=null;0>c&&this.wrap?e=this._column[c+this.map.width]:c>=this.map.width&&this.wrap?e=this._column[c-this.map.width]:this._column[c]&&(e=this._column[c]),e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._mc.tx=Math.floor(this._mc.tx),this.debugFill&&this.context.fillRect(this._mc.tx,this._mc.ty,this._mc.cw,this._mc.ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty)),e.faceBottom&&(this.context.moveTo(this._mc.tx,this._mc.ty+this._mc.ch),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),e.faceLeft&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx,this._mc.ty+this._mc.ch)),e.faceRight&&(this.context.moveTo(this._mc.tx+this._mc.cw,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),this.context.stroke()),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._mc.x},set:function(a){a!==this._mc.x&&(this._mc.x=a,this._mc.startX=this.game.math.floor(this._mc.x/this.map.tileWidth),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._mc.y},set:function(a){a!==this._mc.y&&(this._mc.y=a,this._mc.startY=this.game.math.floor(this._mc.y/this.map.tileHeight),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=a,this.dirty=!0}}),b.TilemapParser={parse:function(a,c,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof c)return this.getEmptyData();if(null===c)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(c);if(h){if(h.format===b.Tilemap.CSV)return this.parseCSV(c,h.data,d,e);if(!h.format||h.format===b.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+c)},parseCSV:function(a,c,d,e){var f=this.getEmptyData();c=c.trim();for(var g=[],h=c.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new b.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new b.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=b,this.tileWidth=c,this.tileHeight=d,this.tileMargin=e,this.tileSpacing=f,this.properties=g,this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[] -},b.Tileset.prototype={draw:function(a,b,c,d){this.image&&this.drawCoords[d]&&a.drawImage(this.image,this.drawCoords[d][0],this.drawCoords[d][1],this.tileWidth,this.tileHeight,b,c,this.tileWidth,this.tileHeight)},setImage:function(a){this.image=a,this.rows=Math.round((a.height-this.tileMargin)/(this.tileHeight+this.tileSpacing)),this.columns=Math.round((a.width-this.tileMargin)/(this.tileWidth+this.tileSpacing)),this.total=this.rows*this.columns,this.drawCoords.length=0;for(var b=this.tileMargin,c=this.tileMargin,d=this.firstgid,e=0;e0&&this.enable(a[f],b,c,d,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c,d,e):(this.enableBody(a,b,c,d),e&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,c,d,!0))},enableBody:function(a,b,c,d){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.Ninja.Body(this,a,b,c,d),a.anchor.set(.5))},setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=[]},convertTilemap:function(a,b,c){b=a.getLayer(b),this.clearTilemapLayerBodies(a,b);for(var d=0,e=a.layers[b].height;e>d;d++)for(var f=0,g=a.layers[b].width;g>f;f++){var h=a.layers[b].data[d][f];if(h&&c.hasOwnProperty(h.index)){var i=new Phaser.Physics.Ninja.Body(this,null,3,c[h.index],0,h.worldX+h.centerX,h.worldY+h.centerY,h.width,h.height);a.layers[b].bodies.push(i)}}return a.layers[b].bodies},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,c,d,e,f){return"undefined"!=typeof b||a.type!==Phaser.GROUP&&a.type!==Phaser.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==Phaser.SPRITE||a.type==Phaser.TILESPRITE?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsSprite(a,b,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideSpriteVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,c,d,e):a.type==Phaser.GROUP?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e):a.type==Phaser.TILEMAPLAYER?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,c,d,e):(b.type==Phaser.GROUP||b.type==Phaser.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,c,d,e):a.type==Phaser.EMITTER&&(b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e)))):void this.collideGroupVsSelf(a,c,d,e,f)},collideSpriteVsSprite:function(a,b,c,d,e,f){this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++)},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length)for(var g=0,h=b.children.length;h>g;g++)b.children[g].exists&&b.children[g].body&&this.separate(a.body,b.children[g].body,d,e,f)&&(c&&c.call(e,a,b.children[g]),this._total++)},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},separate:function(a,b){return a.type!==Phaser.Physics.NINJA||b.type!==Phaser.Physics.NINJA?!1:a.aabb&&b.aabb?a.aabb.collideAABBVsAABB(b.aabb):a.aabb&&b.tile?a.aabb.collideAABBVsTile(b.tile):a.tile&&b.aabb?b.aabb.collideAABBVsTile(a.tile):a.circle&&b.tile?a.circle.collideCircleVsTile(b.tile):a.tile&&b.circle?b.circle.collideCircleVsTile(a.tile):void 0}},Phaser.Physics.Ninja.Body=function(a,b,c,d,e,f,g,h,i){b=b||null,"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=16),this.sprite=b,this.game=a.game,this.type=Phaser.Physics.NINJA,this.system=a,this.aabb=null,this.tile=null,this.circle=null,this.shape=null,this.drag=1,this.friction=.05,this.gravityScale=1,this.bounce=.3,this.velocity=new Phaser.Point,this.facing=Phaser.NONE,this.immovable=!1,this.collideWorldBounds=!0,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.maxSpeed=8,b&&(f=b.x,g=b.y,h=b.width,i=b.height,0===b.anchor.x&&(f+=.5*b.width),0===b.anchor.y&&(g+=.5*b.height)),1===c?(this.aabb=new Phaser.Physics.Ninja.AABB(this,f,g,h,i),this.shape=this.aabb):2===c?(this.circle=new Phaser.Physics.Ninja.Circle(this,f,g,e),this.shape=this.circle):3===c&&(this.tile=new Phaser.Physics.Ninja.Tile(this,f,g,h,i,d),this.shape=this.tile)},Phaser.Physics.Ninja.Body.prototype={preUpdate:function(){this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.shape.integrate(),this.collideWorldBounds&&this.shape.collideWorldBounds()},postUpdate:function(){this.sprite&&(this.sprite.type===Phaser.TILESPRITE?(this.sprite.x=this.shape.pos.x-this.shape.xw,this.sprite.y=this.shape.pos.y-this.shape.yw):(this.sprite.x=this.shape.pos.x,this.sprite.y=this.shape.pos.y)),this.velocity.x<0?this.facing=Phaser.LEFT:this.velocity.x>0&&(this.facing=Phaser.RIGHT),this.velocity.y<0?this.facing=Phaser.UP:this.velocity.y>0&&(this.facing=Phaser.DOWN)},setZeroVelocity:function(){this.shape.oldpos.x=this.shape.pos.x,this.shape.oldpos.y=this.shape.pos.y},moveTo:function(a,b){var c=a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveFrom:function(a,b){var c=-a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveLeft:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveRight:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveUp:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},moveDown:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},reset:function(){this.velocity.set(0),this.shape.pos.x=this.sprite.x,this.shape.pos.y=this.sprite.y,this.shape.oldpos.copyFrom(this.shape.pos)},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.shape.pos.x-this.shape.oldpos.x},deltaY:function(){return this.shape.pos.y-this.shape.oldpos.y},destroy:function(){this.sprite=null,this.system=null,this.aabb=null,this.tile=null,this.circle=null,this.shape.destroy(),this.shape=null}},Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"x",{get:function(){return this.shape.pos.x},set:function(a){this.shape.pos.x=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"y",{get:function(){return this.shape.pos.y},set:function(a){this.shape.pos.y=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"width",{get:function(){return this.shape.width}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"height",{get:function(){return this.shape.height}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"bottom",{get:function(){return this.shape.pos.y+this.shape.yw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"right",{get:function(){return this.shape.pos.x+this.shape.xw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"speed",{get:function(){return Math.sqrt(this.shape.velocity.x*this.shape.velocity.x+this.shape.velocity.y*this.shape.velocity.y)}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"angle",{get:function(){return Math.atan2(this.shape.velocity.y,this.shape.velocity.x)}}),Phaser.Physics.Ninja.Body.render=function(a,b,c,d){c=c||"rgba(0,255,0,0.4)","undefined"==typeof d&&(d=!0),(b.aabb||b.circle)&&b.shape.render(a,b.game.camera.x,b.game.camera.y,c,d)},Phaser.Physics.Ninja.AABB=function(a,b,c,d,e){this.body=a,this.system=a.system,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.oH=0,this.oV=0,this.velocity=new Phaser.Point,this.aabbTileProjections={},this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_FULL]=this.projAABB_Full,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_45DEG]=this.projAABB_45Deg,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONCAVE]=this.projAABB_Concave,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONVEX]=this.projAABB_Convex,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGs]=this.projAABB_22DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGb]=this.projAABB_22DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGs]=this.projAABB_67DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGb]=this.projAABB_67DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_HALF]=this.projAABB_Half},Phaser.Physics.Ninja.AABB.prototype.constructor=Phaser.Physics.Ninja.AABB,Phaser.Physics.Ninja.AABB.COL_NONE=0,Phaser.Physics.Ninja.AABB.COL_AXIS=1,Phaser.Physics.Ninja.AABB.COL_OTHER=2,Phaser.Physics.Ninja.AABB.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},reverse:function(){var a=this.pos.x-this.oldpos.x,b=this.pos.y-this.oldpos.y;this.oldpos.xthis.pos.x&&(this.oldpos.x=this.pos.x-a),this.oldpos.ythis.pos.y&&(this.oldpos.y=this.pos.y-b)},reportCollisionVsBody:function(a,b,c,d,e){var f=this.pos.x-this.oldpos.x,g=this.pos.y-this.oldpos.y,h=f*c+g*d;return this.body.immovable&&e.body.immovable?(a*=.5,b*=.5,this.pos.add(a,b),this.oldpos.set(this.pos.x,this.pos.y),e.pos.subtract(a,b),void e.oldpos.set(e.pos.x,e.pos.y)):void(this.body.immovable||e.body.immovable?this.body.immovable?e.body.immovable||(e.pos.subtract(a,b),0>h&&e.reverse()):(this.pos.subtract(a,b),0>h&&this.reverse()):(a*=.5,b*=.5,this.pos.add(a,b),e.pos.subtract(a,b),0>h&&(this.reverse(),e.reverse())))},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideAABBVsAABB:function(a){var b=this.pos,c=a,d=c.pos.x,e=c.pos.y,f=c.xw,g=c.yw,h=b.x-d,i=f+this.xw-Math.abs(h);if(i>0){var j=b.y-e,k=g+this.yw-Math.abs(j);if(k>0){k>i?0>h?(i*=-1,k=0):k=0:0>j?(i=0,k*=-1):i=0;var l=Math.sqrt(i*i+k*k);return this.reportCollisionVsBody(i,k,i/l,k/l,c),Phaser.Physics.Ninja.AABB.COL_AXIS}}return!1},collideAABBVsTile:function(a){var b=this.pos.x-a.pos.x,c=a.xw+this.xw-Math.abs(b);if(c>0){var d=this.pos.y-a.pos.y,e=a.yw+this.yw-Math.abs(d);if(e>0)return e>c?0>b?(c*=-1,e=0):e=0:0>d?(c=0,e*=-1):c=0,this.resolveTile(c,e,this,a)}return!1},resolveTile:function(a,b,c,d){return 0i){e*=-i,f*=-i;var j=Math.sqrt(e*e+f*f),k=Math.sqrt(a*a+b*b);return j>k?(c.reportCollisionVsWorld(a,b,a/k,b/k,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(e,f,d.signx,d.signy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_45Deg:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-d.pos.x,h=c.pos.y-f*c.yw-d.pos.y,i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.y-f*c.yw,h=d.pos.y-g;if(h*f>0){var i=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw,h=d.pos.x-g;if(h*e>0){var i=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Convex:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=Math.sqrt(g*g+h*h),j=2*d.xw,k=Math.sqrt(j*j+0),l=k-i;if(0>e*g||0>f*h){var m=Math.sqrt(a*a+b*b);return c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS}return l>0?(g/=i,h/=i,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER):Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Concave:function(a,b,c,d){var e=d.signx,f=d.signy,g=d.pos.x+e*d.xw-(c.pos.x-e*c.xw),h=d.pos.y+f*d.yw-(c.pos.y-f*c.yw),i=2*d.xw,j=Math.sqrt(i*i+0),k=Math.sqrt(g*g+h*h),l=k-j;if(l>0){var m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(g/=k,h/=k,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-this.xw-b,g=this.pos.y-this.yw-c;e?(a.fillStyle=d,a.fillRect(f,g,this.width,this.height)):(a.strokeStyle=d,a.strokeRect(f,g,this.width,this.height))}},Phaser.Physics.Ninja.Tile=function(a,b,c,d,e,f){"undefined"==typeof f&&(f=Phaser.Physics.Ninja.Tile.EMPTY),this.body=a,this.system=a.system,this.id=f,this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.id>1&&this.id<30&&(e=d),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.velocity=new Phaser.Point,this.signx=0,this.signy=0,this.sx=0,this.sy=0,this.body.gravityScale=0,this.body.collideWorldBounds=!1,this.id>0&&this.setType(this.id)},Phaser.Physics.Ninja.Tile.prototype.constructor=Phaser.Physics.Ninja.Tile,Phaser.Physics.Ninja.Tile.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},setType:function(a){return a===Phaser.Physics.Ninja.Tile.EMPTY?this.clear():(this.id=a,this.updateType()),this},clear:function(){this.id=Phaser.Physics.Ninja.Tile.EMPTY,this.updateType()},destroy:function(){this.body=null,this.system=null},updateType:function(){if(0===this.id)return this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.signx=0,this.signy=0,this.sx=0,this.sy=0,!0;if(this.idn?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.radius);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.radius-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.radius);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.radius-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideCircleVsTile:function(a){var b=this.pos,c=this.radius,d=a,e=d.pos.x,f=d.pos.y,g=d.xw,h=d.yw,i=b.x-e,j=g+c-Math.abs(i);if(j>0){var k=b.y-f,l=h+c-Math.abs(k);if(l>0)return this.oH=0,this.oV=0,-g>i?this.oH=-1:i>g&&(this.oH=1),-h>k?this.oV=-1:k>h&&(this.oV=1),this.resolveCircleTile(j,l,this.oH,this.oV,this,d)}},resolveCircleTile:function(a,b,c,d,e,f){return 0a){var g=e.pos.x-f.pos.x;return 0>g?(e.reportCollisionVsWorld(-a,0,-1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(a,0,1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}var h=e.pos.y-f.pos.y;return 0>h?(e.reportCollisionVsWorld(0,-b,0,-1,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(0,b,0,1,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS}if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS; -var i=f.pos.x+c*f.xw,j=f.pos.y+d*f.yw,g=e.pos.x-i,h=e.pos.y-j,k=Math.sqrt(g*g+h*h),l=e.radius-k;return l>0?(0===k?(g=c/Math.SQRT2,h=d/Math.SQRT2):(g/=k,h/=k),e.reportCollisionVsWorld(g*l,h*l,g,h,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_45Deg:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.pos.x-j*e.radius-f.pos.x,m=e.pos.y-k*e.radius-f.pos.y,n=l*j+m*k;if(0>n){j*=-n,k*=-n,b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1));var o=Math.sqrt(j*j+k*k);return o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x-h*f.xw),m=e.pos.y-(f.pos.y+d*f.yw),p=l*-k+m*j;if(p*h*i>0){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x+c*f.xw),m=e.pos.y-(f.pos.y-i*f.yw),p=l*-k+m*j;if(0>p*h*i){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var s=f.pos.x+c*f.xw,t=f.pos.y+d*f.yw,u=e.pos.x-s,v=e.pos.y-t,q=Math.sqrt(u*u+v*v),r=e.radius-q;if(r>0)return 0===q?(u=c/Math.SQRT2,v=d/Math.SQRT2):(u/=q,v/=q),e.reportCollisionVsWorld(u*r,v*r,u,v,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Concave:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c){if(0===d){var j=f.pos.x+h*f.xw-e.pos.x,k=f.pos.y+i*f.yw-e.pos.y,l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=n+e.radius-m;return o>0?(b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)):Phaser.Physics.Ninja.Circle.COL_NONE}if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x-h*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=0,s=d):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x+c*f.xw,q=f.pos.y-i*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c,s=0):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Convex:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(h*c+i*d>0){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Half:function(a,b,c,d,e,f){var g=f.signx,h=f.signy,i=c*g+d*h;if(i>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var j=e.radius,k=e.pos.x-g*j-f.pos.x,l=e.pos.y-h*j-f.pos.y,m=g,n=h,o=k*m+l*n;if(0>o){m*=-o,n*=-o;var p=Math.sqrt(m*m+n*n),q=Math.sqrt(a*a+b*b);return p>q?(e.reportCollisionVsWorld(a,b,a/q,b/q,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(m,n,f.signx,f.signy),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0!==i)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-f.pos.x;if(0>r*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-(f.pos.y+d*f.yw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0!==i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-f.pos.y;if(0>s*h)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-(f.pos.x+c*f.xw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var v=f.pos.x+c*f.xw,w=f.pos.y+d*f.yw,r=e.pos.x-v,s=e.pos.y-w,t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegS:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c){if(0!==d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-f.pos.y,o=m*-k+n*j;if(o*h*i>0){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0===d)if(0>h*c){var t=f.pos.x-h*f.xw,u=f.pos.y,v=e.pos.x-t,w=e.pos.y-u;if(0>w*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x+c*f.xw),n=e.pos.y-(f.pos.y-i*f.yw),o=m*-k+n*j;if(0>o*h*i){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegB:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-(f.pos.y+i*f.yw),q=m*-k+n*j;if(q*h*i>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-(f.pos.x+h*f.xw),n=e.pos.y-f.pos.y;if(0>n*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(0>q*h*i){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0){var t=Math.sqrt(5),j=1*h/t,k=2*i/t,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegS:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(g*c>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y-h*f.yw),o=m*-k+n*j;if(0>o*g*h){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0>h*d){var t=f.pos.x,u=f.pos.y-h*f.yw,v=e.pos.x-t,w=e.pos.y-u;if(0>v*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-g*f.xw),n=e.pos.y-(f.pos.y+d*f.yw),o=m*-k+n*j;if(o*g*h>0){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegB:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>h*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y+h*f.yw);if(0>m*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(q*g*h>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>g*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=Math.sqrt(5),j=2*g/t,k=1*h/t,m=e.pos.x-(f.pos.x+g*f.xw),n=e.pos.y-(f.pos.y-h*f.yw),q=m*-k+n*j;if(0>q*g*h){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(g*c+h*d>0){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-b,g=this.pos.y-c;a.beginPath(),a.arc(f,g,this.radius,0,2*Math.PI,!1),e?(a.fillStyle=d,a.fill()):(a.strokeStyle=d,a.stroke())}},!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define("p2",function(){return this.p2=a()}()):"undefined"!=typeof window?window.p2=a():"undefined"!=typeof global?self.p2=a():"undefined"!=typeof self&&(self.p2=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},g.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},g.cross=function(a,b,c){var d=b[0]*c[1]-b[1]*c[0];return a[0]=a[1]=0,a[2]=d,a},g.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},g.transformMat2=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e,a[1]=c[1]*d+c[3]*e,a},g.transformMat2d=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e+c[4],a[1]=c[1]*d+c[3]*e+c[5],a},g.transformMat3=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[3]*e+c[6],a[1]=c[1]*d+c[4]*e+c[7],a},g.transformMat4=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[4]*e+c[12],a[1]=c[1]*d+c[5]*e+c[13],a},g.forEach=function(){var a=g.create();return function(b,c,d,e,f,g){var h,i;for(c||(c=2),d||(d=0),i=e?Math.min(e*c+d,b.length):b.length,h=d;i>h;h+=c)a[0]=b[h],a[1]=b[h+1],f(a,a,g),b[h]=a[0],b[h+1]=a[1];return b}}(),g.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},"undefined"!=typeof c&&(c.vec2=g)},{}],2:[function(a,b){function c(){}var d=a("./Scalar");b.exports=c,c.lineInt=function(a,b,c){c=c||0;var e,f,g,h,i,j,k,l=[0,0];return e=a[1][1]-a[0][1],f=a[0][0]-a[1][0],g=e*a[0][0]+f*a[0][1],h=b[1][1]-b[0][1],i=b[0][0]-b[1][0],j=h*b[0][0]+i*b[0][1],k=e*i-h*f,d.eq(k,0,c)||(l[0]=(i*g-f*j)/k,l[1]=(e*j-h*g)/k),l},c.segmentsIntersect=function(a,b,c,d){var e=b[0]-a[0],f=b[1]-a[1],g=d[0]-c[0],h=d[1]-c[1];if(g*f-h*e==0)return!1;var i=(e*(c[1]-a[1])+f*(a[0]-c[0]))/(g*f-h*e),j=(g*(a[1]-c[1])+h*(c[0]-a[0]))/(h*e-g*f);return i>=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":5}],3:[function(a,b){function c(){}b.exports=c,c.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},c.left=function(a,b,d){return c.area(a,b,d)>0},c.leftOn=function(a,b,d){return c.area(a,b,d)>=0},c.right=function(a,b,d){return c.area(a,b,d)<0},c.rightOn=function(a,b,d){return c.area(a,b,d)<=0};var d=[],e=[];c.collinear=function(a,b,f,g){if(g){var h=d,i=e;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=f[0]-b[0],i[1]=f[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return g>m}return 0==c.area(a,b,f)},c.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{}],4:[function(a,b){function c(){this.vertices=[]}function d(a,b,c,d,e){e=e||0;var f=b[1]-a[1],h=a[0]-b[0],i=f*a[0]+h*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*h;return g.eq(m,0,e)?[0,0]:[(k*i-h*l)/m,(f*l-j*i)/m]}var e=a("./Line"),f=a("./Point"),g=a("./Scalar");b.exports=c,c.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},c.prototype.first=function(){return this.vertices[0]},c.prototype.last=function(){return this.vertices[this.vertices.length-1]},c.prototype.clear=function(){this.vertices.length=0},c.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},c.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);f.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},c.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},c.prototype.isReflex=function(a){return f.right(this.at(a-1),this.at(a),this.at(a+1))};var h=[],i=[];c.prototype.canSee=function(a,b){var c,d,g=h,j=i;if(f.leftOn(this.at(a+1),this.at(a),this.at(b))&&f.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=f.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&f.leftOn(this.at(a),this.at(b),this.at(k+1))&&f.rightOn(this.at(a),this.at(b),this.at(k))&&(g[0]=this.at(a),g[1]=this.at(b),j[0]=this.at(k),j[1]=this.at(k+1),c=e.lineInt(g,j),f.sqdist(this.at(a),c)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},c.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(e.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),f.left(v.at(x+1),v.at(x),v.at(y+1))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=d(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),f.left(v.at(x-1),v.at(x),l)&&(o=f.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,e.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)f.leftOn(v.at(x-1),v.at(x),v.at(y))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=f.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)f.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":2,"./Point":3,"./Scalar":5}],5:[function(a,b){function c(){}b.exports=c,c.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"~0.4.0","grunt-contrib-jshint":"~0.9.2","grunt-contrib-nodeunit":"~0.1.2","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","z-schema":"~2.4.6"},dependencies:{"poly-decomp":"0.1.0","gl-matrix":"2.1.0"}}},{}],8:[function(a,b){function c(a){this.lowerBound=d.create(),a&&a.lowerBound&&d.copy(this.lowerBound,a.lowerBound),this.upperBound=d.create(),a&&a.upperBound&&d.copy(this.upperBound,a.upperBound)}{var d=a("../math/vec2");a("../utils/Utils")}b.exports=c;var e=d.create();c.prototype.setFromPoints=function(a,b,c){var f=this.lowerBound,g=this.upperBound;d.set(f,Number.MAX_VALUE,Number.MAX_VALUE),d.set(g,-Number.MAX_VALUE,-Number.MAX_VALUE);for(var h=0;hj;j++)i[j]>g[j]&&(g[j]=i[j]),i[j]b;b++)a.lowerBound[b]this.upperBound[b]&&(this.upperBound[b]=a.upperBound[b])},c.prototype.overlaps=function(a){var b=this.lowerBound,c=this.upperBound,d=a.lowerBound,e=a.upperBound;return(d[0]<=c[0]&&c[0]<=e[0]||b[0]<=e[0]&&e[0]<=c[0])&&(d[1]<=c[1]&&c[1]<=e[1]||b[1]<=e[1]&&e[1]<=c[1])}},{"../math/vec2":30,"../utils/Utils":47}],9:[function(a,b){function c(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=c.AABB}var d=a("../math/vec2"),e=a("../objects/Body");b.exports=c,c.AABB=1,c.BOUNDING_CIRCLE=2,c.prototype.setWorld=function(a){this.world=a},c.prototype.getCollisionPairs=function(){throw new Error("getCollisionPairs must be implemented in a subclass!")};var f=d.create();c.boundingRadiusCheck=function(a,b){d.sub(f,a.position,b.position);var c=d.squaredLength(f),e=a.boundingRadius+b.boundingRadius;return e*e>=c},c.aabbCheck=function(a,b){return a.aabbNeedsUpdate&&a.updateAABB(),b.aabbNeedsUpdate&&b.updateAABB(),a.aabb.overlaps(b.aabb)},c.prototype.boundingVolumeCheck=function(a,b){var d;switch(this.boundingVolumeType){case c.BOUNDING_CIRCLE:d=c.boundingRadiusCheck(a,b);break;case c.AABB:d=c.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return d},c.canCollide=function(a,b){return a.motionState===e.STATIC&&b.motionState===e.STATIC?!1:a.motionState===e.KINEMATIC&&b.motionState===e.STATIC||a.motionState===e.STATIC&&b.motionState===e.KINEMATIC?!1:a.motionState===e.KINEMATIC&&b.motionState===e.KINEMATIC?!1:a.sleepState===e.SLEEPING&&b.sleepState===e.SLEEPING?!1:a.sleepState===e.SLEEPING&&b.motionState===e.STATIC||b.sleepState===e.SLEEPING&&a.motionState===e.STATIC?!1:!0},c.NAIVE=1,c.SAP=2},{"../math/vec2":30,"../objects/Body":31}],10:[function(a,b){function c(a){d.apply(this),a=e.defaults(a,{xmin:-100,xmax:100,ymin:-100,ymax:100,nx:10,ny:10}),this.xmin=a.xmin,this.ymin=a.ymin,this.xmax=a.xmax,this.ymax=a.ymax,this.nx=a.nx,this.ny=a.ny,this.binsizeX=(this.xmax-this.xmin)/this.nx,this.binsizeY=(this.ymax-this.ymin)/this.ny}var d=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Particle"),a("../collision/Broadphase")),e=(a("../math/vec2"),a("../utils/Utils"));b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){for(var b=[],c=a.bodies,e=c.length,f=(this.binsizeX,this.binsizeY,this.nx),g=this.ny,h=this.xmin,i=this.ymin,j=this.xmax,k=this.ymax,l=[],m=f*g,n=0;m>n;n++)l.push([]);for(var o=f/(j-h),p=g/(k-i),n=0;n!==e;n++)for(var q=c[n],r=q.aabb,s=Math.max(r.lowerBound[0],h),t=Math.max(r.lowerBound[1],i),u=Math.min(r.upperBound[0],j),v=Math.min(r.upperBound[1],k),w=Math.floor(o*(s-h)),x=Math.floor(p*(t-i)),y=Math.floor(o*(u-h)),z=Math.floor(p*(v-i)),A=w;y>=A;A++)for(var B=x;z>=B;B++){var C=A,D=B,E=C*(g-1)+D;E>=0&&m>E&&l[E].push(q)}for(var n=0;n!==m;n++)for(var F=l[n],A=0,G=F.length;A!==G;A++)for(var q=F[A],B=0;B!==A;B++){var H=F[B];d.canCollide(q,H)&&this.boundingVolumeCheck(q,H)&&b.push(q,H)}return b}},{"../collision/Broadphase":9,"../math/vec2":30,"../shapes/Circle":35,"../shapes/Particle":39,"../shapes/Plane":40,"../utils/Utils":47}],11:[function(a,b){function c(){d.call(this,d.NAIVE)}{var d=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var e=0,f=b.length;e!==f;e++)for(var g=b[e],h=0;e>h;h++){var i=b[h];d.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c}},{"../collision/Broadphase":9,"../math/vec2":30,"../shapes/Circle":35,"../shapes/Particle":39,"../shapes/Plane":40,"../shapes/Shape":42}],12:[function(a,b){function c(){this.contactEquations=[],this.frictionEquations=[],this.enableFriction=!0,this.slipForce=10,this.frictionCoefficient=.3,this.surfaceVelocity=0,this.reuseObjects=!0,this.reusableContactEquations=[],this.reusableFrictionEquations=[],this.restitution=0,this.stiffness=l.DEFAULT_STIFFNESS,this.relaxation=l.DEFAULT_RELAXATION,this.frictionStiffness=l.DEFAULT_STIFFNESS,this.frictionRelaxation=l.DEFAULT_RELAXATION,this.collidingBodiesLastStep=new k}function d(a,b){f.set(a.vertices[0],.5*-b.length,-b.radius),f.set(a.vertices[1],.5*b.length,-b.radius),f.set(a.vertices[2],.5*b.length,b.radius),f.set(a.vertices[3],.5*-b.length,b.radius)}function e(a,b,c,d){for(var e=R,i=S,j=T,k=U,l=a,m=b.vertices,n=null,o=0;o!==m.length+1;o++){var p=m[o%m.length],q=m[(o+1)%m.length];f.rotate(e,p,d),f.rotate(i,q,d),h(e,e,c),h(i,i,c),g(j,e,l),g(k,i,l);var r=f.crossLength(j,k);if(null===n&&(n=r),0>=r*n)return!1;n=r}return!0}var f=a("../math/vec2"),g=f.sub,h=f.add,i=f.dot,j=a("../utils/Utils"),k=a("../utils/TupleDictionary"),l=a("../equations/Equation"),m=a("../equations/ContactEquation"),n=a("../equations/FrictionEquation"),o=a("../shapes/Circle"),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Rectangle"));b.exports=c;var s=f.fromValues(0,1),t=f.fromValues(0,0),u=f.fromValues(0,0),v=f.fromValues(0,0),w=f.fromValues(0,0),x=f.fromValues(0,0),y=f.fromValues(0,0),z=f.fromValues(0,0),A=f.fromValues(0,0),B=f.fromValues(0,0),C=f.fromValues(0,0),D=f.fromValues(0,0),E=f.fromValues(0,0),F=f.fromValues(0,0),G=f.fromValues(0,0),H=f.fromValues(0,0),I=f.fromValues(0,0),J=f.fromValues(0,0),K=f.fromValues(0,0),L=[];c.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},c.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=0;a!==this.contactEquations.length;a++){var b=this.contactEquations[a],c=0|b.bodyA.id,d=0|b.bodyB.id;this.collidingBodiesLastStep.set(c,d,!0)}if(this.reuseObjects){var e=this.contactEquations,f=this.frictionEquations,g=this.reusableFrictionEquations,h=this.reusableContactEquations;j.appendArray(h,e),j.appendArray(g,f)}this.contactEquations.length=this.frictionEquations.length=0},c.prototype.createContactEquation=function(a,b,c,d){var e=this.reusableContactEquations.length?this.reusableContactEquations.pop():new m(a,b); -return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.restitution=this.restitution,e.firstImpact=!this.collidedLastStep(a,b),e.stiffness=this.stiffness,e.relaxation=this.relaxation,e.needsUpdate=!0,e.enabled=!0,e},c.prototype.createFrictionEquation=function(a,b,c,d){var e=this.reusableFrictionEquations.length?this.reusableFrictionEquations.pop():new n(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.setSlipForce(this.slipForce),e.frictionCoefficient=this.frictionCoefficient,e.relativeVelocity=this.surfaceVelocity,e.enabled=!0,e.needsUpdate=!0,e.stiffness=this.frictionStiffness,e.relaxation=this.frictionRelaxation,e},c.prototype.createFrictionFromContact=function(a){var b=this.createFrictionEquation(a.bodyA,a.bodyB,a.shapeA,a.shapeB);return f.copy(b.contactPointA,a.contactPointA),f.copy(b.contactPointB,a.contactPointB),f.rotate90cw(b.t,a.normalA),b.contactEquation=a,b},c.prototype[q.LINE|q.CONVEX]=c.prototype.convexLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.LINE|q.RECTANGLE]=c.prototype.lineRectangle=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var M=new r(1,1),N=f.create();c.prototype[q.CAPSULE|q.CONVEX]=c.prototype[q.CAPSULE|q.RECTANGLE]=c.prototype.convexCapsule=function(a,b,c,e,g,h,i,j,k){var l=N;f.set(l,h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var m=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);f.set(l,-h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var n=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);if(k&&(m||n))return!0;var o=M;d(o,h);var p=this.convexConvex(a,b,c,e,g,o,i,j,k);return p+m+n},c.prototype[q.CAPSULE|q.LINE]=c.prototype.lineCapsule=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var O=f.create(),P=f.create(),Q=new r(1,1);c.prototype[q.CAPSULE|q.CAPSULE]=c.prototype.capsuleCapsule=function(a,b,c,e,g,h,i,j,k){for(var l=O,m=P,n=0,o=0;2>o;o++){f.set(l,(0==o?-1:1)*b.length/2,0),f.rotate(l,l,e),f.add(l,l,c);for(var p=0;2>p;p++){f.set(m,(0==p?-1:1)*h.length/2,0),f.rotate(m,m,j),f.add(m,m,i);var q=this.circleCircle(a,b,l,e,g,h,m,j,k,b.radius,h.radius);if(k&&q)return!0;n+=q}}var r=Q;d(r,b);var s=this.convexCapsule(a,r,c,e,g,h,i,j,k);if(k&&s)return!0;n+=s,d(r,h);var t=this.convexCapsule(g,r,i,j,a,b,c,e,k);return k&&t?!0:n+=t},c.prototype[q.LINE|q.LINE]=c.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.PLANE|q.LINE]=c.prototype.planeLine=function(a,b,c,d,e,j,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L;numContacts=0,f.set(n,-j.length/2,0),f.set(o,j.length/2,0),f.rotate(p,n,l),f.rotate(q,o,l),h(p,p,k),h(q,q,k),f.copy(n,p),f.copy(o,q),g(r,o,n),f.normalize(C,r),f.rotate90cw(F,C),f.rotate(E,s,d),G[0]=n,G[1]=o;for(var H=0;HJ){if(m)return!0;var K=this.createContactEquation(a,e,b,j);numContacts++,f.copy(K.normalA,E),f.normalize(K.normalA,K.normalA),f.scale(D,E,J),g(K.contactPointA,I,D),g(K.contactPointA,K.contactPointA,a.position),g(K.contactPointB,I,k),h(K.contactPointB,K.contactPointB,k),g(K.contactPointB,K.contactPointB,e.position),this.contactEquations.push(K),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(K))}}return numContacts},c.prototype[q.PARTICLE|q.CAPSULE]=c.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},c.prototype[q.CIRCLE|q.LINE]=c.prototype.circleLine=function(a,b,c,d,e,j,k,l,m,n,o){var p=j,q=l,r=e,s=k,H=c,I=a,J=b,n=n||0,o="undefined"!=typeof o?o:J.radius,K=t,M=u,N=v,O=w,P=x,Q=y,R=z,S=A,T=B,U=C,V=D,W=E,X=F,Y=G,Z=L;f.set(S,-p.length/2,0),f.set(T,p.length/2,0),f.rotate(U,S,q),f.rotate(V,T,q),h(U,U,s),h(V,V,s),f.copy(S,U),f.copy(T,V),g(Q,T,S),f.normalize(R,Q),f.rotate90cw(P,R),g(W,H,S);var $=i(W,P);if(g(O,S,s),g(X,H,s),Math.abs($)ab&&bb>_){if(m)return!0;var cb=this.createContactEquation(I,r,b,j);return f.scale(cb.normalA,K,-1),f.normalize(cb.normalA,cb.normalA),f.scale(cb.contactPointA,cb.normalA,o),h(cb.contactPointA,cb.contactPointA,H),g(cb.contactPointA,cb.contactPointA,I.position),g(cb.contactPointB,N,s),h(cb.contactPointB,cb.contactPointB,s),g(cb.contactPointB,cb.contactPointB,r.position),this.contactEquations.push(cb),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(cb)),1}}Z[0]=S,Z[1]=T;for(var db=0;dbW&&(f.copy(Q,O),S=W,f.scale(N,K,W),f.add(N,N,O),R=!0)}}if(R){if(m)return!0;var X=this.createContactEquation(y,q,b,j);return f.sub(X.normalA,Q,s),f.normalize(X.normalA,X.normalA),f.scale(X.contactPointA,X.normalA,n),h(X.contactPointA,X.contactPointA,s),g(X.contactPointA,X.contactPointA,y.position),g(X.contactPointB,N,r),h(X.contactPointB,X.contactPointB,r),g(X.contactPointB,X.contactPointB,q.position),this.contactEquations.push(X),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(X)),1}if(n>0)for(var T=0;TW&&(Q=W,f.scale(N,H,W),f.add(N,N,s),f.copy(P,H),R=!0)}if(R){var X=this.createContactEquation(A,q,b,k);return f.scale(X.normalA,P,-1),f.normalize(X.normalA,X.normalA),f.set(X.contactPointA,0,0),h(X.contactPointA,X.contactPointA,s),g(X.contactPointA,X.contactPointA,A.position),g(X.contactPointB,N,r),h(X.contactPointB,X.contactPointB,r),g(X.contactPointB,X.contactPointB,q.position),this.contactEquations.push(X),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(X)),1}return 0},c.prototype[q.CIRCLE]=c.prototype.circleCircle=function(a,b,c,d,e,i,j,k,l,m,n){var o=a,p=b,q=c,r=e,s=i,u=j,v=t,m=m||p.radius,n=n||s.radius;g(v,c,j);var w=m+n;if(f.squaredLength(v)>w*w)return 0;if(l)return!0;var x=this.createContactEquation(o,r,b,i);return g(x.normalA,u,q),f.normalize(x.normalA,x.normalA),f.scale(x.contactPointA,x.normalA,m),f.scale(x.contactPointB,x.normalA,-n),h(x.contactPointA,x.contactPointA,q),g(x.contactPointA,x.contactPointA,o.position),h(x.contactPointB,x.contactPointB,u),g(x.contactPointB,x.contactPointB,r.position),this.contactEquations.push(x),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x)),1},c.prototype[q.PLANE|q.CONVEX]=c.prototype[q.PLANE|q.RECTANGLE]=c.prototype.planeConvex=function(a,b,d,e,j,k,l,m,n){var o=j,p=l,q=k,r=m,w=a,x=b,y=d,z=e,A=t,B=u,C=v,D=0;f.rotate(B,s,z);for(var E=0;E0)return 0;if(l)return!0;var x=this.createContactEquation(o,m,h,b);return f.copy(x.normalA,v),f.scale(r,x.normalA,w),g(x.contactPointA,n,r),g(x.contactPointA,x.contactPointA,o.position),g(x.contactPointB,n,m.position),this.contactEquations.push(x),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x)),1},c.prototype[q.CIRCLE|q.PARTICLE]=c.prototype.circleParticle=function(a,b,c,d,e,i,j,k,l){var m=a,n=b,o=c,p=e,q=j,r=t;if(g(r,q,o),f.squaredLength(r)>n.radius*n.radius)return 0;if(l)return!0;var s=this.createContactEquation(m,p,b,i);return f.copy(s.normalA,r),f.normalize(s.normalA,s.normalA),f.scale(s.contactPointA,s.normalA,n.radius),h(s.contactPointA,s.contactPointA,o),g(s.contactPointA,s.contactPointA,m.position),g(s.contactPointB,q,p.position),this.contactEquations.push(s),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(s)),1};{var V=new o(1),W=f.create(),X=f.create();f.create()}c.prototype[q.PLANE|q.CAPSULE]=c.prototype.planeCapsule=function(a,b,c,d,e,g,i,j,k){var l=W,m=X,n=V;f.set(l,-g.length/2,0),f.rotate(l,l,j),h(l,l,i),f.set(m,g.length/2,0),f.rotate(m,m,j),h(m,m,i),n.radius=g.radius;var o=this.circlePlane(e,n,l,0,a,b,c,d,k),p=this.circlePlane(e,n,m,0,a,b,c,d,k);return k?o||p:o+p},c.prototype.capsulePlane=function(a,b,c,d,e,f,g,h,i){return console.warn("Narrowphase.prototype.capsulePlane() is deprecated. Use .planeCapsule() instead!"),this.planeCapsule(e,f,g,h,a,b,c,d,i)},c.prototype[q.CIRCLE|q.PLANE]=c.prototype.circlePlane=function(a,b,c,d,e,j,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;g(x,p,r),f.rotate(y,s,w);var A=i(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,j,b);return f.copy(B.normalA,y),f.scale(B.contactPointB,B.normalA,-o.radius),h(B.contactPointB,B.contactPointB,p),g(B.contactPointB,B.contactPointB,n.position),f.scale(z,B.normalA,A),g(B.contactPointA,x,z),h(B.contactPointA,B.contactPointA,r),g(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},c.convexPrecision=1e-7,c.prototype[q.CONVEX]=c.prototype[q.CONVEX|q.RECTANGLE]=c.prototype[q.RECTANGLE]=c.prototype.convexConvex=function(a,b,d,e,j,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o=o||c.convexPrecision,G=c.findSeparatingAxis(b,d,e,k,l,m,p);if(!G)return 0;g(D,l,d),i(p,D)>0&&f.scale(p,p,-1);var H=c.getClosestEdge(b,e,p,!0),I=c.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=d,P=l,Q=e,R=m,S=a,T=j;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];f.rotate(q,W,R),h(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(E,y),f.normalize(E,E),g(D,q,r);var _=i(E,D);o>=_&&X++}if(X>=3){if(n)return!0;var ab=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(ab.normalA,y),f.normalize(ab.normalA,ab.normalA),g(D,q,r);var _=i(ab.normalA,D);f.scale(C,ab.normalA,_),g(ab.contactPointA,q,O),g(ab.contactPointA,ab.contactPointA,C),h(ab.contactPointA,ab.contactPointA,O),g(ab.contactPointA,ab.contactPointA,S.position),g(ab.contactPointB,q,P),h(ab.contactPointB,ab.contactPointB,P),g(ab.contactPointB,ab.contactPointB,T.position),this.contactEquations.push(ab),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(ab))}}}return F};var Y=f.fromValues(0,0);c.projectConvexOntoAxis=function(a,b,c,d,e){var g,h,j=null,k=null,l=Y;f.rotate(l,d,-c);for(var m=0;mj)&&(j=h),(null===k||k>h)&&(k=h);if(k>j){var n=k;k=j,j=n}var o=i(b,d);f.set(e,k+o,j+o)};var Z=f.fromValues(0,0),$=f.fromValues(0,0),_=f.fromValues(0,0),ab=f.fromValues(0,0),bb=f.fromValues(0,0),cb=f.fromValues(0,0);c.findSeparatingAxis=function(a,b,d,e,h,i,j){for(var k=null,l=!1,m=!1,n=Z,o=$,p=_,q=ab,r=bb,s=cb,t=0;2!==t;t++){var u=a,v=d;1===t&&(u=e,v=i);for(var w=0;w!==u.vertices.length;w++){f.rotate(o,u.vertices[w],v),f.rotate(p,u.vertices[(w+1)%u.vertices.length],v),g(n,p,o),f.rotate90cw(q,n),f.normalize(q,q),c.projectConvexOntoAxis(a,b,d,q,r),c.projectConvexOntoAxis(e,h,i,q,s);var x=r,y=s,z=!1;r[0]>s[0]&&(y=r,x=s,z=!0);var A=y[0]-x[1];l=A<=c.convexPrecision,(null===k||A>k)&&(f.copy(j,q),k=A,m=l)}}return m};var db=f.fromValues(0,0),eb=f.fromValues(0,0),fb=f.fromValues(0,0);c.getClosestEdge=function(a,b,c,d){var e=db,h=eb,j=fb;f.rotate(e,c,-b),d&&f.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=0;m!==l;m++){g(h,a.vertices[(m+1)%l],a.vertices[m%l]),f.rotate90cw(j,h),f.normalize(j,j);var n=i(j,e);(-1==k||n>maxDot)&&(k=m%l,maxDot=n)}return k};var gb=f.create(),hb=f.create(),ib=f.create(),jb=f.create(),kb=f.create(),lb=f.create(),mb=f.create();c.prototype[q.CIRCLE|q.HEIGHTFIELD]=c.prototype.circleHeightfield=function(a,b,c,d,e,i,j,k,l,m){var n=i.data,m=m||b.radius,o=i.elementWidth,p=hb,q=gb,r=kb,s=mb,t=lb,u=ib,v=jb,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;c[1]+mA;A++){f.set(u,A*o,n[A]),f.set(v,(A+1)*o,n[A+1]),f.add(u,u,j),f.add(v,v,j),f.sub(t,v,u),f.rotate(t,t,Math.PI/2),f.normalize(t,t),f.scale(q,t,-m),f.add(q,q,c),f.sub(p,q,u);var C=f.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,f.scale(p,t,-C),f.add(r,q,p),f.copy(s,t);var D=this.createContactEquation(e,a,i,b);f.copy(D.normalA,s),f.scale(D.contactPointB,D.normalA,-m),h(D.contactPointB,D.contactPointB,c),g(D.contactPointB,D.contactPointB,a.position),f.copy(D.contactPointA,r),f.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(f.set(u,A*o,n[A]),f.add(u,u,j),f.sub(p,c,u),f.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){f.set(m,u*l,k[u]),f.set(n,(u+1)*l,k[u+1]),f.add(m,m,h),f.add(n,n,h);var w=100;f.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),f.sub(p.vertices[0],n,o),f.sub(p.vertices[1],m,o),f.copy(p.vertices[2],p.vertices[1]),f.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../shapes/Circle":35,"../shapes/Convex":36,"../shapes/Rectangle":41,"../shapes/Shape":42,"../utils/TupleDictionary":46,"../utils/Utils":47}],13:[function(a,b){function c(){e.call(this,e.SAP),this.axisList=[],this.world=null,this.axisIndex=0;var a=this.axisList;this._addBodyHandler=function(b){a.push(b.body)},this._removeBodyHandler=function(b){var c=a.indexOf(b.body);-1!==c&&a.splice(c,1)}}var d=a("../utils/Utils"),e=a("../collision/Broadphase");b.exports=c,c.prototype=new e,c.prototype.setWorld=function(a){this.axisList.length=0,d.appendArray(this.axisList,a.bodies),a.off("addBody",this._addBodyHandler).off("removeBody",this._removeBodyHandler),a.on("addBody",this._addBodyHandler).on("removeBody",this._removeBodyHandler),this.world=a},c.sortAxisList=function(a,b){b=0|b;for(var c=1,d=a.length;d>c;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},c.prototype.getCollisionPairs=function(){var a=this.axisList,b=this.result,d=this.axisIndex;b.length=0;for(var f=a.length;f--;){var g=a[f];g.aabbNeedsUpdate&&g.updateAABB()}c.sortAxisList(a,d);for(var h=0,i=0|a.length;h!==i;h++)for(var j=a[h],k=h+1;i>k;k++){var l=a[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;e.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&b.push(j,l)}return b}},{"../collision/Broadphase":9,"../utils/Utils":47}],14:[function(a,b){function c(a,b,c,e){this.type=c,e=d.defaults(e,{collideConnected:!0,wakeUpBodies:!0}),this.equations=[],this.bodyA=a,this.bodyB=b,this.collideConnected=e.collideConnected,e.wakeUpBodies&&(a&&a.wakeUp(),b&&b.wakeUp())}b.exports=c;var d=a("../utils/Utils");c.prototype.update=function(){throw new Error("method update() not implmemented in this Constraint subclass!")},c.DISTANCE=1,c.GEAR=2,c.LOCK=3,c.PRISMATIC=4,c.REVOLUTE=5,c.prototype.setStiffness=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.stiffness=a,d.needsUpdate=!0}},c.prototype.setRelaxation=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.relaxation=a,d.needsUpdate=!0}}},{"../utils/Utils":47}],15:[function(a,b){function c(a,b,c,g){g=g||{},d.call(this,a,b,d.DISTANCE,g),this.distance=c,this.localAnchorA=f.create(),this.localAnchorB=f.create();var h,i=this.localAnchorA,j=this.localAnchorB;h="undefined"==typeof g.maxForce?Number.MAX_VALUE:g.maxForce;var k=new e(a,b,-h,h);this.equations=[k];var l=f.create(),m=f.create(),n=f.create(),o=this;k.computeGq=function(){{var a=this.bodyA,b=this.bodyB,c=a.position;b.position}return f.rotate(m,i,a.angle),f.rotate(n,j,b.angle),f.add(l,c,n),f.sub(l,l,m),f.sub(l,l,c),f.sub(l,b.position,a.position),f.length(l)-o.distance},this.setMaxForce(h)}var d=a("./Constraint"),e=a("../equations/Equation"),f=a("../math/vec2");b.exports=c,c.prototype=new d;var g=f.create(),h=f.create(),i=f.create();c.prototype.update=function(){var a=this.equations[0],b=this.bodyA,c=this.bodyB,d=(this.distance,b.position,c.position,a.G);f.rotate(h,this.localAnchorA,b.angle),f.rotate(i,this.localAnchorB,c.angle);f.crossLength(h,g),f.crossLength(i,g);f.sub(g,c.position,b.position),f.normalize(g,g),d[0]=-g[0],d[1]=-g[1],d[3]=g[0],d[4]=g[1]},c.prototype.setMaxForce=function(a){var b=this.equations[0];b.minForce=-a,b.maxForce=a},c.prototype.getMaxForce=function(){var a=this.equations[0];return a.maxForce}},{"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],16:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.GEAR,c),this.equations=[new e(a,b,c)],this.angle="number"==typeof c.angle?c.angle:0,this.ratio="number"==typeof c.ratio?c.ratio:1,"number"==typeof c.maxTorque&&this.setMaxTorque(c.maxTorque)}{var d=a("./Constraint"),e=(a("../equations/Equation"),a("../equations/AngleLockEquation"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.update=function(){var a=this.equations[0];a.ratio!==this.ratio&&a.setRatio(this.ratio),a.angle=this.angle},c.prototype.setMaxTorque=function(a){this.equations[0].setMaxTorque(a)},c.prototype.getMaxTorque=function(){return this.equations[0].maxForce}},{"../equations/AngleLockEquation":20,"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],17:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.LOCK,c);var g="undefined"==typeof c.maxForce?Number.MAX_VALUE:c.maxForce,h=c.localOffsetB||e.fromValues(0,0);h=e.fromValues(h[0],h[1]);var i=c.localAngleB||0,j=new f(a,b,-g,g),k=new f(a,b,-g,g),l=new f(a,b,-g,g),m=e.create(),n=e.create(),o=this;j.computeGq=function(){return e.rotate(m,o.localOffsetB,a.angle),e.sub(n,b.position,a.position),e.sub(n,n,m),n[0]},k.computeGq=function(){return e.rotate(m,o.localOffsetB,a.angle),e.sub(n,b.position,a.position),e.sub(n,n,m),n[1]};var p=e.create(),q=e.create();l.computeGq=function(){return e.rotate(p,o.localOffsetB,b.angle-o.localAngleB),e.scale(p,p,-1),e.sub(n,a.position,b.position),e.add(n,n,p),e.rotate(q,p,-Math.PI/2),e.normalize(q,q),e.dot(n,q)},this.localOffsetB=h,this.localAngleB=i,this.equations.push(j,k,l),this.setMaxForce(g)}var d=a("./Constraint"),e=a("../math/vec2"),f=a("../equations/Equation");b.exports=c,c.prototype=new d,c.prototype.setMaxForce=function(a){for(var b=this.equations,c=0;cc)g.scale(e.normalA,i,-1),g.sub(e.contactPointA,j,h.position),g.sub(e.contactPointB,k,o.position),g.scale(n,i,c),g.add(e.contactPointA,e.contactPointA,n),-1==a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!=u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)g.scale(f.normalA,i,1),g.sub(f.contactPointA,j,h.position),g.sub(f.contactPointB,k,o.position),g.scale(n,i,d),g.sub(f.contactPointB,f.contactPointB,n),-1==a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!=u&&a.splice(u,1)}},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(a,b){function c(a,b,c,n,o){o=o||{},d.call(this,a,c,d.REVOLUTE,o);var p=this.maxForce="undefined"!=typeof o.maxForce?o.maxForce:Number.MAX_VALUE;this.pivotA=h.fromValues(b[0],b[1]),this.pivotB=h.fromValues(n[0],n[1]);var q=this.equations=[new e(a,c,-p,p),new e(a,c,-p,p)],r=q[0],s=q[1],t=this;r.computeGq=function(){return h.rotate(i,t.pivotA,a.angle),h.rotate(j,t.pivotB,c.angle),h.add(m,c.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,k)},s.computeGq=function(){return h.rotate(i,t.pivotA,a.angle),h.rotate(j,t.pivotB,c.angle),h.add(m,c.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,l)},s.minForce=r.minForce=-p,s.maxForce=r.maxForce=p,this.motorEquation=new f(a,c),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new g(a,c),this.lowerLimitEquation=new g(a,c),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var d=a("./Constraint"),e=a("../equations/Equation"),f=a("../equations/RotationalVelocityEquation"),g=a("../equations/RotationalLockEquation"),h=a("../math/vec2");b.exports=c;var i=h.create(),j=h.create(),k=h.fromValues(1,0),l=h.fromValues(0,1),m=h.create();c.prototype=new d,c.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],m=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>m)o.angle=m,-1==e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!=r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1==e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!=r&&e.splice(r,1)}h.rotate(i,c,a.angle),h.rotate(j,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-h.crossLength(i,k),f.G[3]=1,f.G[4]=0,f.G[5]=h.crossLength(j,k),g.G[0]=0,g.G[1]=-1,g.G[2]=-h.crossLength(i,l),g.G[3]=0,g.G[4]=1,g.G[5]=h.crossLength(j,l)},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.motorIsEnabled=function(){return!!this.motorEnabled},c.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},c.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},c.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},c.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":30,"./Equation":22}],21:[function(a,b){function c(a,b){d.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=e.create(),this.penetrationVec=e.create(),this.contactPointB=e.create(),this.normalA=e.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.bodyA,f=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=f.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=e.crossLength(g,l),o=e.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,e.add(k,j,h),e.sub(k,k,i),e.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=e.dot(l,k),p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":30,"./Equation":22}],22:[function(a,b){function c(a,b,d,e){this.minForce="undefined"==typeof d?-Number.MAX_VALUE:d,this.maxForce="undefined"==typeof e?Number.MAX_VALUE:e,this.bodyA=a,this.bodyB=b,this.stiffness=c.DEFAULT_STIFFNESS,this.relaxation=c.DEFAULT_RELAXATION,this.G=new h.ARRAY_TYPE(6);for(var f=0;6>f;f++)this.G[f]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}function d(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e}function e(a){return a.sleepState===i.SLEEPING?0:a.invMass}function f(a){return a.sleepState===i.SLEEPING?0:a.invInertia}b.exports=c;var g=a("../math/vec2"),h=a("../utils/Utils"),i=a("../objects/Body");c.prototype.constructor=c,c.DEFAULT_STIFFNESS=1e6,c.DEFAULT_RELAXATION=4,c.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},c.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var j=g.create(),k=g.create();c.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,e=(b.position,c.position,b.angle),f=c.angle;return d(a,j,e,k,f)+this.offset -},c.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,e=b.velocity,f=c.velocity,g=b.angularVelocity,h=c.angularVelocity;return d(a,e,g,f,h)+this.relativeVelocity},c.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,e=b.vlambda,f=c.vlambda,g=b.wlambda,h=c.wlambda;return d(a,e,g,f,h)};var l=g.create(),m=g.create();c.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,h=a.angularForce,i=b.force,j=b.angularForce,k=e(a),n=e(b),o=f(a),p=f(b),q=this.G;return g.scale(l,c,k),g.scale(m,i,n),d(q,l,h*o,m,j*p)},c.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=e(a),d=e(b),g=f(a),h=f(b),i=this.G;return i[0]*i[0]*c+i[1]*i[1]*c+i[2]*i[2]*g+i[3]*i[3]*d+i[4]*i[4]*d+i[5]*i[5]*h};{var n=g.create(),o=g.create(),p=g.create();g.create(),g.create(),g.create()}c.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,d=n,h=o,i=p,j=e(b),k=e(c),l=f(b),m=f(c),q=this.G;h[0]=q[0],h[1]=q[1],i[0]=q[3],i[1]=q[4],g.scale(d,h,j*a),g.add(b.vlambda,b.vlambda,d),b.wlambda+=l*q[2]*a,g.scale(d,i,k*a),g.add(c.vlambda,c.vlambda,d),c.wlambda+=m*q[5]*a},c.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":47}],23:[function(a,b){function c(a,b,c){e.call(this,a,b,-c,c),this.contactPointA=d.create(),this.contactPointB=d.create(),this.t=d.create(),this.contactEquation=null,this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}{var d=a("../math/vec2"),e=a("./Equation");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},c.prototype.getSlipForce=function(){return this.maxForce},c.prototype.computeB=function(a,b,c){var e=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-d.crossLength(e,g),h[3]=g[0],h[4]=g[1],h[5]=d.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":30,"../utils/Utils":47,"./Equation":22}],24:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var e=this.G;e[2]=1,e[5]=-1}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c;var f=e.create(),g=e.create(),h=e.fromValues(1,0),i=e.fromValues(0,1);c.prototype.computeGq=function(){return e.rotate(f,h,this.bodyA.angle+this.angle),e.rotate(g,i,this.bodyB.angle),e.dot(f,g)}},{"../math/vec2":30,"./Equation":22}],25:[function(a,b){function c(a,b){d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":30,"./Equation":22}],26:[function(a,b){var c=function(){};b.exports=c,c.prototype={constructor:c,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{}],27:[function(a,b){function c(a,b,f){if(f=f||{},!(a instanceof d&&b instanceof d))throw new Error("First two arguments must be Material instances.");this.id=c.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof f.friction?Number(f.friction):.3,this.restitution="undefined"!=typeof f.restitution?Number(f.restitution):0,this.stiffness="undefined"!=typeof f.stiffness?Number(f.stiffness):e.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof f.relaxation?Number(f.relaxation):e.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof f.frictionStiffness?Number(f.frictionStiffness):e.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof f.frictionRelaxation?Number(f.frictionRelaxation):e.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof f.surfaceVelocity?Number(f.surfaceVelocity):0}var d=a("./Material"),e=a("../equations/Equation");b.exports=c,c.idCounter=0},{"../equations/Equation":22,"./Material":28}],28:[function(a,b){function c(){this.id=c.idCounter++}b.exports=c,c.idCounter=0},{}],29:[function(a,b){var c={};c.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},c.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var d=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(c._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&c._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return d.push(e[0],e[1],e[2]),d},c._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},c._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=c},{}],30:[function(a,b){var c=a("../../build/vec2").vec2;c.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},c.crossVZ=function(a,b,d){return c.rotate(a,b,-Math.PI/2),c.scale(a,a,d),a},c.crossZV=function(a,b,d){return c.rotate(a,d,Math.PI/2),c.scale(a,a,b),a},c.rotate=function(a,b,c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g},c.rotate90cw=function(a,b){a[0]=b[1],a[1]=-b[0]},c.toLocalFrame=function(a,b,d,e){c.copy(a,b),c.sub(a,a,d),c.rotate(a,a,-e)},c.toGlobalFrame=function(a,b,d,e){c.copy(a,b),c.rotate(a,a,e),c.add(a,a,d)},c.centroid=function(a,b,d,e){return c.add(a,b,d),c.add(a,a,e),c.scale(a,a,1/3),a},b.exports=c},{"../../build/vec2":1}],31:[function(a,b){function c(a){a=a||{},h.call(this),this.id=++c._idCounter,this.world=null,this.shapes=[],this.shapeOffsets=[],this.shapeAngles=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.fixedRotation=!!a.fixedRotation||!1,this.position=d.fromValues(0,0),a.position&&d.copy(this.position,a.position),this.interpolatedPosition=d.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=d.fromValues(0,0),this.previousAngle=0,this.velocity=d.fromValues(0,0),a.velocity&&d.copy(this.velocity,a.velocity),this.vlambda=d.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=d.create(),a.force&&d.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.motionState=0===this.mass?c.STATIC:c.DYNAMIC,this.boundingRadius=0,this.aabb=new g,this.aabbNeedsUpdate=!0,this.allowSleep=!0,this.wantsToSleep=!1,this.sleepState=c.AWAKE,this.sleepSpeedLimit=.2,this.sleepTimeLimit=1,this.gravityScale=1,this.timeLastSleepy=0,this.concavePath=null,this.lastDampingScale=1,this.lastAngularDampingScale=1,this.lastDampingTimeStep=-1,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var d=a("../math/vec2"),e=a("poly-decomp"),f=a("../shapes/Convex"),g=a("../collision/AABB"),h=a("../events/EventEmitter");b.exports=c,c.prototype=new h,c._idCounter=0,c.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},c.prototype.getArea=function(){for(var a=0,b=0;be&&(e=h+i)}this.boundingRadius=e},c.prototype.addShape=function(a,b,c){c=c||0,b=b?d.fromValues(b[0],b[1]):d.fromValues(0,0),this.shapes.push(a),this.shapeOffsets.push(b),this.shapeAngles.push(c),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},c.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.shapeOffsets.splice(b,1),this.shapeAngles.splice(b,1),this.aabbNeedsUpdate=!0,!0):!1},c.prototype.updateMassProperties=function(){if(this.motionState===c.STATIC||this.motionState===c.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,e=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=a[g],i=d.squaredLength(this.shapeOffsets[g]),j=h.computeMomentOfInertia(e);f+=j+e*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass}};var k=d.create();c.prototype.applyForce=function(a,b){var c=k;d.sub(c,b,this.position),d.add(this.force,this.force,a);var e=d.crossLength(c,a);this.angularForce+=e},c.prototype.toLocalFrame=function(a,b){d.toLocalFrame(a,b,this.position,this.angle)},c.prototype.toWorldFrame=function(a,b){d.toGlobalFrame(a,b,this.position,this.angle)},c.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var g=new e.Polygon;if(g.vertices=a,g.makeCCW(),"number"==typeof b.removeCollinearPoints&&g.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!g.isSimple())return!1;this.concavePath=g.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=c.AWAKE):(this.idleTime+=e,this.sleepState=c.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},c.prototype.getVelocityFromPosition=function(a,b){return a=a||d.create(),d.sub(a,this.position,this.previousPosition),d.scale(a,a,1/b),a},c.prototype.getAngularVelocityFromPosition=function(a){return(this.angle-this.previousAngle)/a},c.sleepyEvent={type:"sleepy"},c.sleepEvent={type:"sleep"},c.wakeUpEvent={type:"wakeup"},c.DYNAMIC=1,c.STATIC=2,c.KINEMATIC=4,c.AWAKE=0,c.SLEEPY=1,c.SLEEPING=2},{"../collision/AABB":8,"../events/EventEmitter":26,"../math/vec2":30,"../shapes/Convex":36,"poly-decomp":6}],32:[function(a,b){function c(a,b,c){c=e.defaults(c,{restLength:1,stiffness:100,damping:1,localAnchorA:[0,0],localAnchorB:[0,0]}),this.restLength=c.restLength,this.stiffness=c.stiffness,this.damping=c.damping,this.bodyA=a,this.bodyB=b,this.localAnchorA=d.create(),d.copy(this.localAnchorA,c.localAnchorA),this.localAnchorB=d.create(),d.copy(this.localAnchorB,c.localAnchorB),c.worldAnchorA&&this.setWorldAnchorA(c.worldAnchorA),c.worldAnchorB&&this.setWorldAnchorB(c.worldAnchorB)}var d=a("../math/vec2"),e=a("../utils/Utils");b.exports=c,c.prototype.setWorldAnchorA=function(a){this.bodyA.toLocalFrame(this.localAnchorA,a)},c.prototype.setWorldAnchorB=function(a){this.bodyB.toLocalFrame(this.localAnchorB,a)},c.prototype.getWorldAnchorA=function(a){this.bodyA.toWorldFrame(a,this.localAnchorA)},c.prototype.getWorldAnchorB=function(a){this.bodyB.toWorldFrame(a,this.localAnchorB)};var f=d.create(),g=d.create(),h=d.create(),i=d.create(),j=d.create(),k=d.create(),l=d.create(),m=d.create(),n=d.create();c.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restLength,e=this.bodyA,o=this.bodyB,p=f,q=g,r=h,s=i,t=n,u=j,v=k,w=l,x=m;this.getWorldAnchorA(u),this.getWorldAnchorB(v),d.sub(w,u,e.position),d.sub(x,v,o.position),d.sub(p,v,u);var y=d.len(p);d.normalize(q,p),d.sub(r,o.velocity,e.velocity),d.crossZV(t,o.angularVelocity,x),d.add(r,r,t),d.crossZV(t,e.angularVelocity,w),d.sub(r,r,t),d.scale(s,q,-a*(y-c)-b*d.dot(r,q)),d.sub(e.force,e.force,s),d.add(o.force,o.force,s);var z=d.crossLength(w,s),A=d.crossLength(x,s);e.angularForce-=z,o.angularForce+=A}},{"../math/vec2":30,"../utils/Utils":47}],33:[function(a,b){b.exports={AABB:a("./collision/AABB"),AngleLockEquation:a("./equations/AngleLockEquation"),Body:a("./objects/Body"),Broadphase:a("./collision/Broadphase"),Capsule:a("./shapes/Capsule"),Circle:a("./shapes/Circle"),Constraint:a("./constraints/Constraint"),ContactEquation:a("./equations/ContactEquation"),ContactMaterial:a("./material/ContactMaterial"),Convex:a("./shapes/Convex"),DistanceConstraint:a("./constraints/DistanceConstraint"),Equation:a("./equations/Equation"),EventEmitter:a("./events/EventEmitter"),FrictionEquation:a("./equations/FrictionEquation"),GearConstraint:a("./constraints/GearConstraint"),GridBroadphase:a("./collision/GridBroadphase"),GSSolver:a("./solver/GSSolver"),Heightfield:a("./shapes/Heightfield"),Line:a("./shapes/Line"),LockConstraint:a("./constraints/LockConstraint"),Material:a("./material/Material"),Narrowphase:a("./collision/Narrowphase"),NaiveBroadphase:a("./collision/NaiveBroadphase"),Particle:a("./shapes/Particle"),Plane:a("./shapes/Plane"),RevoluteConstraint:a("./constraints/RevoluteConstraint"),PrismaticConstraint:a("./constraints/PrismaticConstraint"),Rectangle:a("./shapes/Rectangle"),RotationalVelocityEquation:a("./equations/RotationalVelocityEquation"),SAPBroadphase:a("./collision/SAPBroadphase"),Shape:a("./shapes/Shape"),Solver:a("./solver/Solver"),Spring:a("./objects/Spring"),Utils:a("./utils/Utils"),World:a("./world/World"),vec2:a("./math/vec2"),version:a("../package.json").version}},{"../package.json":7,"./collision/AABB":8,"./collision/Broadphase":9,"./collision/GridBroadphase":10,"./collision/NaiveBroadphase":11,"./collision/Narrowphase":12,"./collision/SAPBroadphase":13,"./constraints/Constraint":14,"./constraints/DistanceConstraint":15,"./constraints/GearConstraint":16,"./constraints/LockConstraint":17,"./constraints/PrismaticConstraint":18,"./constraints/RevoluteConstraint":19,"./equations/AngleLockEquation":20,"./equations/ContactEquation":21,"./equations/Equation":22,"./equations/FrictionEquation":23,"./equations/RotationalVelocityEquation":25,"./events/EventEmitter":26,"./material/ContactMaterial":27,"./material/Material":28,"./math/vec2":30,"./objects/Body":31,"./objects/Spring":32,"./shapes/Capsule":34,"./shapes/Circle":35,"./shapes/Convex":36,"./shapes/Heightfield":37,"./shapes/Line":38,"./shapes/Particle":39,"./shapes/Plane":40,"./shapes/Rectangle":41,"./shapes/Shape":42,"./solver/GSSolver":43,"./solver/Solver":44,"./utils/Utils":47,"./world/World":51}],34:[function(a,b){function c(a,b){this.length=a||1,this.radius=b||1,d.call(this,d.CAPSULE)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius,c=this.length+b,d=2*b;return a*(d*d+c*c)/12},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius+this.length/2},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius+2*this.radius*this.length};var f=e.create();c.prototype.computeAABB=function(a,b,c){var d=this.radius;e.set(f,this.length,0),e.rotate(f,f,c),e.set(a.upperBound,Math.max(f[0]+d,-f[0]+d),Math.max(f[1]+d,-f[1]+d)),e.set(a.lowerBound,Math.min(f[0]-d,-f[0]-d),Math.min(f[1]-d,-f[1]-d)),e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b)}},{"../math/vec2":30,"./Shape":42}],35:[function(a,b){function c(a){this.radius=a||1,d.call(this,d.CIRCLE)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},c.prototype.computeAABB=function(a,b){var c=this.radius;e.set(a.upperBound,c,c),e.set(a.lowerBound,-c,-c),b&&(e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b))}},{"../math/vec2":30,"./Shape":42}],36:[function(a,b){function c(a){this.vertices=[];for(var b=0;bg;f=g,g++){var h=this.vertices[f],i=this.vertices[g],j=Math.abs(e.crossLength(h,i)),k=e.dot(i,i)+e.dot(i,h)+e.dot(h,h);b+=j*k,c+=j}return a/6*(b/c)},c.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=e.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},c.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},c.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,d=0;d!==a.length;d++){var e=a[d],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=c.triangleArea(f,g,h);this.area+=i}},c.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c)}},{"../math/polyk":29,"../math/vec2":30,"./Shape":42,"poly-decomp":6}],37:[function(a,b){function c(a,b){if(b=e.defaults(b,{maxValue:null,minValue:null,elementWidth:.1}),null===b.minValue||null===b.maxValue){b.maxValue=a[0],b.minValue=a[0];for(var c=0;c!==a.length;c++){var f=a[c];f>b.maxValue&&(b.maxValue=f),f=v*v)break}for(c.updateMultipliers(k,q,1/a),w=0;w!==l;w++){var y=k[w];if(y instanceof h){var z=y.contactEquation.multiplier*y.frictionCoefficient;y.maxForce=z,y.minForce=-z}}}for(f=0;f!==i;f++){for(v=0,w=0;w!==l;w++){u=k[w];var x=c.iterateEquation(w,u,u.epsilon,s,r,q,p,a,f);v+=Math.abs(x)}if(this.usedIterations++,m>=v*v)break}for(t=0;t!==o;t++)n[t].addConstraintVelocity();c.updateMultipliers(k,q,1/a)}},c.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},c.iterateEquation=function(a,b,c,d,e,f,g,h){var i=d[a],j=e[a],k=f[a],l=b.computeGWlambda(),m=b.maxForce,n=b.minForce;g&&(i=0);var o=j*(i-l-c*k),p=k+o;return n*h>p?o=n*h-k:p>m*h&&(o=m*h-k),f[a]+=o,b.addToWlambda(o),o}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":47,"./Solver":44}],44:[function(a,b){function c(a,b){a=a||{},d.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var d=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=c,c.prototype=new d,c.prototype.solve=function(){throw new Error("Solver.solve should be implemented by subclasses!")};var e={bodies:[]};c.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),e.bodies.length=0,b.getBodies(e.bodies),e.bodies.length&&this.solve(a,e))},c.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},c.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},c.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},c.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},c.prototype.removeAllEquations=function(){this.equations.length=0},c.GS=1,c.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":47}],45:[function(a,b){function c(){this.overlappingLastState=new e,this.overlappingCurrentState=new e,this.recordPool=[],this.tmpDict=new e,this.tmpArray1=[]}function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}{var e=a("./TupleDictionary");a("./Utils")}b.exports=c,c.prototype.tick=function(){for(var a=this.overlappingLastState,b=this.overlappingCurrentState,c=b.keys.length;c--;){var d=b.keys[c];this.recordPool.push(b.getByKey(d))}a.reset(),a.copy(b),b.reset()},c.prototype.setOverlapping=function(a,b,c,e){var f=(this.overlappingLastState,this.overlappingCurrentState);if(!f.get(b.id,e.id)){var g;g=this.recordPool.length?this.recordPool.pop():new d(a,b,c,e),f.set(b.id,e.id,g)}},c.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingLastState,this.overlappingCurrentState,a)},c.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingCurrentState,this.overlappingLastState,a)},c.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},c.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id;return!this.overlappingLastState.get(c,d)&&!!this.overlappingCurrentState.get(c,d)},c.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.keys[d];b.push(e.bodyA,e.bodyB)}return c.reset(),b},d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{"./TupleDictionary":46,"./Utils":47}],46:[function(a,b){function c(){this.data=[],this.keys=[]}var d=a("./Utils");b.exports=c,c.prototype.getKey=function(a,b){return a=0|a,b=0|b,(0|a)===(0|b)?-1:0|((0|a)>(0|b)?a<<16|65535&b:b<<16|65535&a)},c.prototype.getByKey=function(a){return a=0|a,this.data[a]},c.prototype.get=function(a,b){a=0|a,b=0|b;var c=0|this.getKey(a,b);return this.data[c]},c.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");a=0|a,b=0|b;var d=0|this.getKey(a,b);return this.get(a,b)||this.keys.push(d),this.data[d]=c,d},c.prototype.reset=function(){for(var a=this.data,b=this.keys,c=0|b.length;c--;){var d=0|b[c];a[d]=void 0}b.length=0},c.prototype.copy=function(a){this.reset(),d.appendArray(this.keys,a.keys);for(var b=0|a.keys.length;b--;){var c=0|a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":47}],47:[function(a,b){function c(){}b.exports=c,c.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},c.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;e>d;d++)a[d]=a[d+c];a.length=e},c.ARRAY_TYPE=window.Float32Array||Array,c.extend=function(a,b){for(var c in b)a[c]=b[c]},c.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{}],48:[function(a,b){function c(){this.equations=[],this.bodies=[]}var d=a("../objects/Body");b.exports=c,c.prototype.reset=function(){this.equations.length=this.bodies.length=0};var e=[];c.prototype.getBodies=function(a){var b=a||[],c=this.equations;e.length=0;for(var d=0;d!==c.length;d++){var f=c[d];-1===e.indexOf(f.bodyA.id)&&(b.push(f.bodyA),e.push(f.bodyA.id)),-1===e.indexOf(f.bodyB.id)&&(b.push(f.bodyB),e.push(f.bodyB.id))}return b},c.prototype.wantsToSleep=function(){for(var a=0;a=0;v-=2)for(var B=z.length-2;B>=0;B-=2)(A[v]===z[B]&&A[v+1]===z[B+1]||A[v+1]===z[B]&&A[v]===z[B+1])&&z.splice(B,2);var C=p.length;for(v=0;v!==C;v++){var D=p[v];if(!D.collideConnected)for(var B=z.length-2;B>=0;B-=2)(D.bodyA===z[B]&&D.bodyB===z[B+1]||D.bodyB===z[B]&&D.bodyA===z[B+1])&&z.splice(B,2)}this.postBroadphaseEvent.pairs=z,this.emit(this.postBroadphaseEvent),o.reset(this);for(var v=0,E=z.length;v!==E;v+=2)for(var F=z[v],G=z[v+1],I=0,J=F.shapes.length;I!==J;I++)for(var K=F.shapes[I],M=F.shapeOffsets[I],N=F.shapeAngles[I],O=0,Q=G.shapes.length;O!==Q;O++){var R=G.shapes[O],S=G.shapeOffsets[O],T=G.shapeAngles[O],U=this.defaultContactMaterial;if(K.material&&R.material){var V=this.getContactMaterial(K.material,R.material);V&&(U=V)}this.runNarrowphase(o,F,K,M,N,G,R,S,T,U,this.frictionGravity)}for(var v=0;v!==m;v++){var W=i[v];W._wakeUpAfterNarrowphase&&(W.wakeUp(),W._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(P);for(var X=this.endContactEvent,O=P.length;O--;){var Y=P[O];X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.bodyA=Y.bodyA,X.bodyB=Y.bodyA,this.emit(X)}}this.overlapKeeper.tick();var Z=this.preSolveEvent;Z.contactEquations=o.contactEquations,Z.frictionEquations=o.frictionEquations,this.emit(Z);var C=p.length;for(v=0;v!==C;v++)p[v].update();if(o.contactEquations.length||o.frictionEquations.length||p.length)if(this.islandSplit){for(t.equations.length=0,H.appendArray(t.equations,o.contactEquations),H.appendArray(t.equations,o.frictionEquations),v=0;v!==C;v++)H.appendArray(t.equations,p[v].equations);t.split(this);for(var v=0;v!==t.islands.length;v++){var $=t.islands[v];$.equations.length&&l.solveIsland(a,$)}}else{for(l.addEquations(o.contactEquations),l.addEquations(o.frictionEquations),v=0;v!==C;v++)l.addEquations(p[v].equations);this.solveConstraints&&l.solve(a,this),l.removeAllEquations()}for(var v=0;v!==m;v++){var W=i[v];W.sleepState!==s.SLEEPING&&W.motionState!==s.STATIC&&c.integrateBody(W,a)}for(var v=0;v!==m;v++)i[v].setZeroForce();if(f&&(d=performance.now(),e.lastStepTime=d-b),this.emitImpactEvent&&this.has("impact"))for(var _=this.impactEvent,v=0;v!==o.contactEquations.length;v++){var ab=o.contactEquations[v];ab.firstImpact&&(_.bodyA=ab.bodyA,_.bodyB=ab.bodyB,_.shapeA=ab.shapeA,_.shapeB=ab.shapeB,_.contactEquation=ab,this.emit(_))}if(this.enableBodySleeping)for(v=0;v!==m;v++)i[v].sleepTick(this.time,!1,a);else if(this.enableIslandSleeping&&this.islandSplit){for(v=0;v!==m;v++)i[v].sleepTick(this.time,!0,a);for(var v=0;v0,a.frictionCoefficient=k.friction;var o;o=b.motionState===s.STATIC||b.motionState===s.KINEMATIC?f.mass:f.motionState===s.STATIC||f.motionState===s.KINEMATIC?b.mass:b.mass*f.mass/(b.mass+f.mass),a.slipForce=k.friction*l*o,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation;var p=a[c.type|g.type],q=0;if(p){var r=c.sensor||g.sensor,t=a.frictionEquations.length;q=c.type=2*w&&(b._wakeUpAfterNarrowphase=!0)}if(f.allowSleep&&f.motionState===s.DYNAMIC&&f.sleepState===s.SLEEPING&&b.sleepState===s.AWAKE&&b.motionState!==s.STATIC){var x=j.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),y=Math.pow(b.sleepSpeedLimit,2);x>=2*y&&(f._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,f,g),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,g)){var z=this.beginContactEvent;if(z.shapeA=c,z.shapeB=g,z.bodyA=b,z.bodyB=f,z.contactEquations.length=0,"number"==typeof q)for(var A=a.contactEquations.length-q;A1)for(var A=a.frictionEquations.length-u;A=0;b--)this.removeConstraint(a[b]);for(var d=this.bodies,b=d.length-1;b>=0;b--)this.removeBody(d[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);c.apply(this)},c.prototype.clone=function(){var a=new c;return a.fromJSON(this.toJSON()),a};var S=j.create(),T=j.fromValues(0,0),U=j.fromValues(0,0);c.prototype.hitTest=function(a,b,c){c=c||0;var d=new s({position:a}),e=new q,f=a,g=0,h=S,i=T,l=U;d.addShape(e);for(var n=this.narrowphase,r=[],t=0,u=b.length;t!==u;t++)for(var v=b[t],w=0,x=v.shapes.length;w!==x;w++){var y=v.shapes[w],z=v.shapeOffsets[w]||i,A=v.shapeAngles[w]||0;j.rotate(h,z,v.angle),j.add(h,h,v.position);var B=A+v.angle;(y instanceof k&&n.circleParticle(v,y,h,B,d,e,f,g,!0)||y instanceof m&&n.particleConvex(d,e,f,g,v,y,h,B,!0)||y instanceof o&&n.particlePlane(d,e,f,g,v,y,h,B,!0)||y instanceof p&&n.particleCapsule(d,e,f,g,v,y,h,B,!0)||y instanceof q&&j.squaredLength(j.sub(l,h,a))0&&this.enable(a[d],b,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c):(this.enableBody(a,b),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback)for(var b=a.pairs.length;b-=2;)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.shapeB,a.shapeA,a.contactEquations)},endContactHandler:function(a){this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.shapeB,a.shapeA)},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){var b=this.everythingCollisionGroup.mask;"undefined"==typeof a&&(b=this.boundsCollisionGroup.mask),this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b)},setBounds:function(a,b,c,d,e,f,g,h,i){"undefined"==typeof e&&(e=!0),"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=!0),"undefined"==typeof h&&(h=!0),"undefined"==typeof i&&(i=!0),this.walls.left&&this.world.removeBody(this.walls.left),this.walls.right&&this.world.removeBody(this.walls.right),this.walls.top&&this.world.removeBody(this.walls.top),this.walls.bottom&&this.world.removeBody(this.walls.bottom),e&&(this.walls.left=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:1.5707963267948966}),this.walls.left.addShape(new p2.Plane),i&&(this.walls.left.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.left)),f&&(this.walls.right=new p2.Body({mass:0,position:[this.pxmi(a+c),this.pxmi(b)],angle:-1.5707963267948966}),this.walls.right.addShape(new p2.Plane),i&&(this.walls.right.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.right)),g&&(this.walls.top=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:-3.141592653589793}),this.walls.top.addShape(new p2.Plane),i&&(this.walls.top.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.top)),h&&(this.walls.bottom=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b+d)]}),this.walls.bottom.addShape(new p2.Plane),i&&(this.walls.bottom.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.bottom))},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||this.world.step(this.useElapsedTime?this.game.time.physicsElapsed:this.frameRate)},clear:function(){this.world.clear(),this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this._collisionGroupID=2,this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0) -},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return this.world.addSpring(a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return this.world.removeSpring(a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,c,d){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.DistanceConstraint(this,a,b,c,d)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,c,d){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.GearConstraint(this,a,b,c,d)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,c,d,e){return a=this.getBody(a),c=this.getBody(c),a&&c?this.addConstraint(new Phaser.Physics.P2.RevoluteConstraint(this,a,b,c,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,c,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.LockConstraint(this,a,b,c,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,c,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.PrismaticConstraint(this,a,b,c,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var c=new Phaser.Physics.P2.Material(a);return this.materials.push(c),"undefined"!=typeof b&&b.setMaterial(c),c},createContactMaterial:function(a,b,c){"undefined"==typeof a&&(a=this.createMaterial()),"undefined"==typeof b&&(b=this.createMaterial());var d=new Phaser.Physics.P2.ContactMaterial(a,b,c);return this.addContactMaterial(d)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof Phaser.Physics.P2.Body?a.data:a.body&&a.body.type===Phaser.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b].parent);return a},hitTest:function(a,b,c,d){"undefined"==typeof b&&(b=this.world.bodies),"undefined"==typeof c&&(c=5),"undefined"==typeof d&&(d=!1);for(var e=[this.pxmi(a.x),this.pxmi(a.y)],f=[],g=b.length;g--;)b[g]instanceof Phaser.Physics.P2.Body&&(!d||b[g].data.motionState!==p2.Body.STATIC)?f.push(b[g].data):b[g]instanceof p2.Body&&b[g].parent&&(!d||b[g].motionState!==p2.Body.STATIC)?f.push(b[g]):b[g]instanceof Phaser.Sprite&&b[g].hasOwnProperty("body")&&(!d||b[g].body.data.motionState!==p2.Body.STATIC)&&f.push(b[g].body.data);return this.world.hitTest(e,f,c)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var c=new Phaser.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(c),a&&this.setCollisionGroup(a,c),c},setCollisionGroup:function(a,b){if(a instanceof Phaser.Group)for(var c=0;ce;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(Phaser.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"defaultFriction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"defaultRestitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(Phaser.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"enableBodySleeping",{get:function(){return this.world.enableBodySleeping},set:function(a){this.world.enableBodySleeping=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),Phaser.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},Phaser.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},Phaser.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},Phaser.Physics.P2.PointProxy.prototype.constructor=Phaser.Physics.P2.PointProxy,Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.world.pxm(a)}}),Phaser.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},Phaser.Physics.P2.InversePointProxy.prototype.constructor=Phaser.Physics.P2.InversePointProxy,Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.world.pxm(-a)}}),Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.world.pxm(-a)}}),Phaser.Physics.P2.Body=function(a,b,c,d,e){b=b||null,c=c||0,d=d||0,"undefined"==typeof e&&(e=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=Phaser.Physics.P2JS,this.offset=new Phaser.Point,this.data=new p2.Body({position:[this.world.pxmi(c),this.world.pxmi(d)],mass:e}),this.data.parent=this,this.velocity=new Phaser.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new Phaser.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new Phaser.Point,this.onBeginContact=new Phaser.Signal,this.onEndContact=new Phaser.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},Phaser.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbacksContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if("undefined"==typeof b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if("undefined"==typeof c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass()},applyDamping:function(a){this.data.applyDamping(a)},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle)},reset:function(a,b,c,d){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}else b instanceof p2.Plane?this.drawPlane(j,i[0]*this.ppu,-i[1]*this.ppu,c,f,5*g,10*g,10*g,100*this.ppu,a):b instanceof p2.Line?this.drawLine(j,b.length*this.ppu,f,g):b instanceof p2.Rectangle&&this.drawRectangle(j,i[0]*this.ppu,-i[1]*this.ppu,a,b.width*this.ppu,b.height*this.ppu,f,c,g);d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){"undefined"==typeof i&&(i=1),"undefined"==typeof g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){"undefined"==typeof g&&(g=1),"undefined"==typeof f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){"undefined"==typeof d&&(d=1),"undefined"==typeof c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if("undefined"==typeof f&&(f=1),"undefined"==typeof d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for("undefined"==typeof e&&(e=1),"undefined"==typeof c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;"undefined"==typeof f&&(f=1),"undefined"==typeof d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.len?b:b+"0"}}),Phaser.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=100),"undefined"==typeof f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),p2.Spring.call(this,b,c,k)},Phaser.Physics.P2.Spring.prototype=Object.create(p2.Spring.prototype),Phaser.Physics.P2.Spring.prototype.constructor=Phaser.Physics.P2.Spring,Phaser.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},Phaser.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),Phaser.Physics.P2.Material.prototype.constructor=Phaser.Physics.P2.Material,Phaser.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},Phaser.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),Phaser.Physics.P2.ContactMaterial.prototype.constructor=Phaser.Physics.P2.ContactMaterial,Phaser.Physics.P2.CollisionGroup=function(a){this.mask=a},Phaser.Physics.P2.DistanceConstraint=function(a,b,c,d,e){"undefined"==typeof d&&(d=100),this.game=a.game,this.world=a,d=a.pxm(d),p2.DistanceConstraint.call(this,b,c,d,{maxForce:e})},Phaser.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),Phaser.Physics.P2.DistanceConstraint.prototype.constructor=Phaser.Physics.P2.DistanceConstraint,Phaser.Physics.P2.GearConstraint=function(a,b,c,d,e){"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},Phaser.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),Phaser.Physics.P2.GearConstraint.prototype.constructor=Phaser.Physics.P2.GearConstraint,Phaser.Physics.P2.LockConstraint=function(a,b,c,d,e,f){"undefined"==typeof d&&(d=[0,0]),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},Phaser.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),Phaser.Physics.P2.LockConstraint.prototype.constructor=Phaser.Physics.P2.LockConstraint,Phaser.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=[0,0]),"undefined"==typeof f&&(f=[0,0]),"undefined"==typeof g&&(g=[0,0]),"undefined"==typeof h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d}; -p2.PrismaticConstraint.call(this,b,c,i)},Phaser.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),Phaser.Physics.P2.PrismaticConstraint.prototype.constructor=Phaser.Physics.P2.PrismaticConstraint,Phaser.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f){"undefined"==typeof f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],p2.RevoluteConstraint.call(this,b,c,d,e,{maxForce:f})},Phaser.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),Phaser.Physics.P2.RevoluteConstraint.prototype.constructor=Phaser.Physics.P2.RevoluteConstraint; +},b.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)b.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(c,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)},replaceRGB:function(a,c,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=b.Color.packPixel(a,c,d,e);void 0!==j&&j instanceof b.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);this.context.putImageData(this.imageData,0,0),this.dirty=!0},setHSL:function(a,c,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof c||null===c)&&(c=!1),("undefined"==typeof d||null===d)&&(d=!1),a||c||d){"undefined"==typeof e&&(e=new b.Rectangle(0,0,this.width,this.height));for(var f=b.Color.createColor(),g=e.y;g=0&&a<=this.width&&c>=0&&c<=this.height&&(this.pixels[c*this.width+a]=b.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0))},setPixel:function(a,b,c,d,e,f){this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,c,d){d||(d=b.Color.createColor());var e=~~(a+c*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,c,d,e,f){return b.Color.unpackPixel(this.getPixel32(a,c),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},addToWorld:function(a,b){return this.game.add.image(a,b,this)},copyPixels:function(a,c,d,e){"string"==typeof a&&(a=this.game.cache.getImage(a));var f=a,g=0,h=0;if(a instanceof b.Image||a instanceof b.Sprite){f=a.texture.baseTexture.source;var i=a.texture.frame;g=i.x,h=i.y}else a instanceof b.BitmapData&&(f=a.canvas);this.context.drawImage(f,g+c.x,h+c.y,c.width,c.height,d,e,c.width,c.height),this.dirty=!0},draw:function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"string"==typeof a&&(a=this.game.cache.getImage(a));var g=a,h=0,i=0,j=0,k=0;if(a instanceof b.Image||a instanceof b.Sprite){g=a.texture.baseTexture.source;var l=a.texture.frame;h=l.x,i=l.y,j=l.width,k=l.height}else a instanceof b.BitmapData&&(g=a.canvas),j=a.width,k=a.height;"undefined"==typeof e&&(e=j),"undefined"==typeof f&&(f=k),this.context.drawImage(g,h,i,j,k,c,d,e,f),this.dirty=!0},drawSprite:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),this.draw(a,b,c)},alphaMask:function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this);var e=this.context.globalCompositeOperation;"undefined"==typeof d||null===d?this.draw(b):this.draw(b,d.x,d.y,d.width,d.height),this.context.globalCompositeOperation="source-atop","undefined"==typeof c||null===c?this.draw(a):this.draw(a,c.x,c.y,c.width,c.height),this.context.globalCompositeOperation=e,this.update(),this.dirty=!0},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d)},circle:function(a,b,c,d){"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill()},render:function(){!this.disableTextureUpload&&this.game.renderType===b.WEBGL&&this.dirty&&(PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1)}},b.BitmapData.prototype.constructor=b.BitmapData,b.Sprite=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=b.SPRITE,this.z=0,this.events=new b.Events(this),this.animations=new b.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new b.Rectangle,this.loadTexture(e,f)},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Sprite.prototype.update=function(){},b.Sprite.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Sprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a;var d=!0;a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),c))):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),d&&(this._frame=b.Rectangle.clone(this.texture.frame))},b.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.cropRect?this.updateCrop():this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},b.Sprite.prototype.crop=function(a,c){"undefined"==typeof c&&(c=!1),a?(c&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=c&&null===this.cropRect?new b.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},b.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=b.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),c=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-c;this.texture.crop.x=a,this.texture.crop.y=c,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)}},b.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},b.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},b.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},b.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},b.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},b.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},b.Sprite.prototype.overlap=function(a){return b.Rectangle.intersects(this.getBounds(),a.getBounds())},Object.defineProperty(b.Sprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(b.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(b.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(b.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(b.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(b.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Image=function(a,c,d,e,f){c=c||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=b.IMAGE,this.z=0,this.events=new b.Events(this),this.key=e,this._frame=0,this._frameName="",PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.loadTexture(e,f),this.position.set(c,d),this.world=new b.Point(c,d),this.autoCull=!1,this.input=null,this.cameraOffset=new b.Point,this._cache=[0,0,0,0,1,0,1,0,0]},b.Image.prototype=Object.create(PIXI.Sprite.prototype),b.Image.prototype.constructor=b.Image,b.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Image.prototype.update=function(){},b.Image.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Image.prototype.loadTexture=function(a,c){if(c=c||0,a instanceof b.RenderTexture)return this.key=a.key,void this.setTexture(a);if(a instanceof b.BitmapData)return this.key=a,void this.setTexture(a.texture);if(a instanceof PIXI.Texture)return this.key=a,void this.setTexture(a);if(null===a||"undefined"==typeof a)return this.key="__default",void this.setTexture(PIXI.TextureCache[this.key]);if("string"==typeof a&&!this.game.cache.checkImageKey(a))return this.key="__missing",void this.setTexture(PIXI.TextureCache[this.key]);if(this.game.cache.isSpriteSheet(a)){this.key=a;var d=this.game.cache.getFrameData(a);return"string"==typeof c?(this._frame=0,this._frameName=c,void this.setTexture(PIXI.TextureCache[d.getFrameByName(c).uuid])):(this._frame=c,this._frameName="",void this.setTexture(PIXI.TextureCache[d.getFrame(c).uuid]))}return this.key=a,void this.setTexture(PIXI.TextureCache[a])},b.Image.prototype.crop=function(a){if("undefined"==typeof a||null===a)this.texture.hasOwnProperty("sourceWidth")&&this.texture.setFrame(new b.Rectangle(0,0,this.texture.sourceWidth,this.texture.sourceHeight));else if(this.texture instanceof PIXI.Texture){var c={};b.Utils.extend(!0,c,this.texture),c.sourceWidth=c.width,c.sourceHeight=c.height,c.frame=a,c.width=a.width,c.height=a.height,this.texture=c,this.texture.updateFrame=!0,PIXI.Texture.frameUpdates.push(this.texture)}else this.texture.setFrame(a)},b.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},b.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},b.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},b.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},Object.defineProperty(b.Image.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(b.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(b.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(b.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(b.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame&&this.game.cache.isSpriteSheet(this.key)){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},b.TileSprite.prototype.update=function(){},b.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},b.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},b.TileSprite.prototype.loadTexture=function(a,c){c=c||0,this.key=a,a instanceof b.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof b.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),c)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},b.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed&&(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH),this.game.renderType===b.WEBGL&&PIXI.WebGLRenderer.updateTextureFrame(this.texture)},b.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.filters&&(this.filters=null),this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},b.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(b.TileSprite.prototype,"angle",{get:function(){return b.Math.wrapAngle(b.Math.radToDeg(this.rotation))},set:function(a){this.rotation=b.Math.degToRad(b.Math.wrapAngle(a))}}),Object.defineProperty(b.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(b.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(b.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(b.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===b.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===b.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(b.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new b.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(b.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===b.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(b.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),b.Text=function(a,c,d,e,f){c=c||0,d=d||0,e=e||" ",f=f||{},e=0===e.length?" ":e.toString(),this.game=a,this.exists=!0,this.name="",this.type=b.TEXT,this.z=0,this.world=new b.Point(c,d),this._text=e,this._font="",this._fontSize=32,this._fontWeight="normal",this._lineSpacing=0,this.events=new b.Events(this),this.input=null,this.cameraOffset=new b.Point,this.setStyle(f),PIXI.Text.call(this,e,this.style),this.position.set(c,d),this._cache=[0,0,0,0,1,0,1,0,0]},b.Text.prototype=Object.create(PIXI.Text.prototype),b.Text.prototype.constructor=b.Text,b.Text.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this.getBounds())),this.world.setTo(this.game.camera.x+this.worldTransform[2],this.game.camera.y+this.worldTransform[5]),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},b.Text.prototype.update=function(){},b.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},b.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.parent&&(this.parent instanceof b.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var c=this.children.length;if(a)for(;c--;)this.children[c].destroy(a);else for(;c--;)this.removeChild(this.children[c]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},b.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0 +},b.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},b.Text.prototype.updateText=function(){this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=0;ee?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},b.Graphics.prototype.drawTriangles=function(a,c,d){"undefined"==typeof d&&(d=!1);var e,f=new b.Point,g=new b.Point,h=new b.Point,i=[];if(c)if(a[0]instanceof b.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},b.RetroFont.prototype.buildRetroFontText=function(){var a=0,c=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,c,this.customSpacingX),c+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case b.RetroFont.ALIGN_LEFT:a=0;break;case b.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},b.RetroFont.prototype.pasteLine=function(a,c,d,e){for(var f=new b.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(c,d),this.render(this.stamp,f,!1),c+=this.characterWidth+e,c>this.width))break},b.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},b.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},b.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(b.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(b.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),b.Particle=function(a,c,d,e,f){b.Sprite.call(this,a,c,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},b.Particle.prototype=Object.create(b.Sprite.prototype),b.Particle.prototype.constructor=b.Particle,b.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},b.Particle.prototype.onEmit=function(){},b.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},b.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},b.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},b.Canvas={create:function(a,b,c,d){"undefined"==typeof d&&(d=!1),a=a||256,b=b||256;var e=document.createElement("canvas");return"string"==typeof c&&""!==c&&(e.id=c),e.width=a,e.height=b,e.style.display="block",e},getOffset:function(a,c){c=c||new b.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),c.x=d.left+h-f,c.y=d.top+g-e,c},getAspectRatio:function(a){return a.width/a.height},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},b.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.touch=!1,this.mspointer=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures()},b.Device.LITTLE_ENDIAN=!1,b.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},b.Device.prototype.constructor=b.Device,b.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=[],b=0;b0?Math.floor(a):Math.ceil(a)},shear:function(a){return a%1},snapTo:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return"undefined"==typeof c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},snapToInArray:function(a,b,c){if("undefined"==typeof c&&(c=!0),c&&b.sort(),a=f-a?f:e},roundTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},interpolateFloat:function(a,b,c){return(b-a)*c+a},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},normalizeLatitude:function(a){return Math.max(-90,Math.min(90,a))},normalizeLongitude:function(a){return a%360==180?180:(a%=360,-180>a?a+360:a>180?a-360:a)},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),0>=a?!1:a>=100?!0:100*Math.random()>=a?!1:!0},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},maxAdd:function(a,b,c){return a+=b,a>c&&(a=c),a},minSub:function(a,b,c){return a-=b,c>a&&(a=c),a},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,c){return b>a?b:a>c?c:a},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){var c=b?Math.PI/180:1;return this.wrap(a,-180*c,180*c)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0)return a[b+Math.floor(Math.random()*d)]}return null},removeRandom:function(a,b,c){if("undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),null!=a){var d=c;if((0===d||d>a.length-b)&&(d=a.length-b),d>0){var e=b+Math.floor(Math.random()*d),f=a.splice(e,1);return f[0]}}return null},floor:function(a){var b=0|a;return a>0?b:b!=a?b-1:b},ceil:function(a){var b=0|a;return a>0&&b!=a?b+1:b},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){for(var b=a.length-1;b>0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,c,d,e){return Math.round(b.Math.distance(a,c,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b},degToRad:function(){var a=Math.PI/180;return function(b){return b*a}}(),radToDeg:function(){var a=180/Math.PI;return function(b){return b*a}}()},b.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},b.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},b.RandomDataGenerator.prototype.constructor=b.RandomDataGenerator,b.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},b.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.level++,this.nodes[0]=new b.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[1]=new b.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[2]=new b.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level),this.nodes[3]=new b.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof b.Rectangle)var c=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var c=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?c=c.concat(this.nodes[d].retrieve(a)):(c=c.concat(this.nodes[0].retrieve(a)),c=c.concat(this.nodes[1].retrieve(a)),c=c.concat(this.nodes[2].retrieve(a)),c=c.concat(this.nodes[3].retrieve(a)))),c},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},b.QuadTree.prototype.constructor=b.QuadTree,b.Net=function(a){this.game=a},b.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},b.Net.prototype.constructor=b.Net,b.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},b.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;aa;)this._tweens[a].update(this.game.time.now)?a++:(this._tweens.splice(a,1),b--);return this._add.length>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},b.TweenManager.prototype.constructor=b.TweenManager,b.Tween=function(a,c,d){this._object=a,this.game=c,this._manager=d,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=b.Easing.Linear.None,this._interpolationFunction=b.Math.linearInterpolation,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._paused=!1,this._pausedTime=0,this._codePaused=!1,this.pendingDelete=!1,this.onStart=new b.Signal,this.onLoop=new b.Signal,this.onComplete=new b.Signal,this.isRunning=!1},b.Tween.prototype={to:function(a,b,c,d,e,f,g){b=b||1e3,c=c||null,d=d||!1,e=e||0,f=f||0,g=g||!1,g&&0===f&&(f=1);var h;return this._parent?(h=this._manager.create(this._object),this._lastChild.chain(h),this._lastChild=h):(h=this,this._parent=this,this._lastChild=this),h._repeat=f,h._duration=b,h._valuesEnd=a,null!==c&&(h._easingFunction=c),e>0&&(h._delayTime=e),h._yoyo=g,d?this.start():this},from:function(a,b,c,d,e,f,g){var h={};for(var i in a)h[i]=this._object[i],this._object[i]=a[i];return this.to(h,b,c,d,e,f,g)},start:function(){if(null!==this.game&&null!==this._object){this._manager.add(this),this.isRunning=!0,this._onStartCallbackFired=!1,this._startTime=this.game.time.now+this._delayTime;for(var a in this._valuesEnd){if(Array.isArray(this._valuesEnd[a])){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],Array.isArray(this._valuesStart[a])||(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},generateData:function(a,b){if(null===this.game||null===this._object)return null;this._startTime=0;for(var c in this._valuesEnd){if(Array.isArray(this._valuesEnd[c])){if(0===this._valuesEnd[c].length)continue;this._valuesEnd[c]=[this._object[c]].concat(this._valuesEnd[c])}this._valuesStart[c]=this._object[c],Array.isArray(this._valuesStart[c])||(this._valuesStart[c]*=1),this._valuesStartRepeat[c]=this._valuesStart[c]||0}for(var d=0,e=Math.floor(a*(this._duration/1e3)),f=this._duration/e,g=[];e--;){var c,h=(d-this._startTime)/this._duration;h=h>1?1:h;var i=this._easingFunction(h),j={};for(c in this._valuesEnd){var k=this._valuesStart[c]||0,l=this._valuesEnd[c];l instanceof Array?j[c]=this._interpolationFunction(l,i):("string"==typeof l&&(l=k+parseFloat(l,10)),"number"==typeof l&&(j[c]=k+(l-k)*i))}g.push(j),d+=f}if(this._yoyo){var m=g.slice();m.reverse(),g=g.concat(m)}return"undefined"!=typeof b?b=b.concat(g):g},stop:function(){return this.isRunning=!1,this._onUpdateCallback=null,this._manager.remove(this),this},delay:function(a){return this._delayTime=a,this},repeat:function(a){return this._repeat=a,this},yoyo:function(a){return this._yoyo=a,a&&0===this._repeat&&(this._repeat=1),this},easing:function(a){return this._easingFunction=a,this},interpolation:function(a){return this._interpolationFunction=a,this},chain:function(){return this._chainedTweens=arguments,this},loop:function(){return this._lastChild.chain(this),this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this._codePaused=!0,this._paused=!0,this._pausedTime=this.game.time.now},_pause:function(){this._codePaused||(this._paused=!0,this._pausedTime=this.game.time.now)},resume:function(){this._paused&&(this._paused=!1,this._codePaused=!1,this._startTime+=this.game.time.now-this._pausedTime)},_resume:function(){this._codePaused||(this._startTime+=this.game.time.pauseDuration,this._paused=!1)},update:function(a){if(this.pendingDelete)return!1;if(this._paused||a1?1:c;var d=this._easingFunction(c);for(b in this._valuesEnd){var e=this._valuesStart[b]||0,f=this._valuesEnd[b];f instanceof Array?this._object[b]=this._interpolationFunction(f,d):("string"==typeof f&&(f=e+parseFloat(f,10)),"number"==typeof f&&(this._object[b]=e+(f-e)*d))}if(null!==this._onUpdateCallback&&(this._onUpdateCallback.call(this._onUpdateCallbackContext,this,d),!this.isRunning))return!1;if(1==c){if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(b in this._valuesStartRepeat){if("string"==typeof this._valuesEnd[b]&&(this._valuesStartRepeat[b]=this._valuesStartRepeat[b]+parseFloat(this._valuesEnd[b],10)),this._yoyo){var g=this._valuesStartRepeat[b];this._valuesStartRepeat[b]=this._valuesEnd[b],this._valuesEnd[b]=g}this._valuesStart[b]=this._valuesStartRepeat[b]}return this._yoyo&&(this._reversed=!this._reversed),this._startTime=a+this._delayTime,this.onLoop.dispatch(this._object),!0}this.isRunning=!1,this.onComplete.dispatch(this._object);for(var h=0,i=this._chainedTweens.length;i>h;h++)this._chainedTweens[h].start(a);return!1}return!0}},b.Tween.prototype.constructor=b.Tween,b.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-b.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*b.Easing.Bounce.In(2*a):.5*b.Easing.Bounce.Out(2*a-1)+.5}}},b.Time=function(a){this.game=a,this.time=0,this.now=0,this.elapsed=0,this.pausedTime=0,this.advancedTiming=!1,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.physicsElapsed=0,this.deltaCap=0,this.timeCap=1e3,this.frames=0,this.pauseDuration=0,this.timeToCall=0,this.lastTime=0,this.events=new b.Timer(this.game,!1),this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[],this._len=0,this._i=0},b.Time.prototype={boot:function(){this._started=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var c=new b.Timer(this.game,a);return this._timers.push(c),c},removeAll:function(){for(var a=0;athis.timeCap&&(this.elapsed=1/60),this.physicsElapsed=this.elapsed/1e3||1/60,this.deltaCap>0&&this.physicsElapsed>this.deltaCap&&(this.physicsElapsed=this.deltaCap),this.advancedTiming&&(this.msMin=this.game.math.min(this.msMin,this.elapsed),this.msMax=this.game.math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=this.game.math.min(this.fpsMin,this.fps),this.fpsMax=this.game.math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)),this.time=this.now,this.lastTime=a+this.timeToCall,!this.game.paused)for(this.events.update(this.now),this._i=0,this._len=this._timers.length;this._i0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.now,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.now,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.now;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(b.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(b.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(b.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(b.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),b.Timer.prototype.constructor=b.Timer,b.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},b.TimerEvent.prototype.constructor=b.TimerEvent,b.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a,b){return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,this._frameData?!0:!1},add:function(a,c,d,e,f){return null===this._frameData?void console.warn("No FrameData available for Phaser.Animation "+a):(c=c||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=c&&"number"==typeof c[0]?!0:!1),null===this.sprite.events.onAnimationStart&&(this.sprite.events.onAnimationStart=new b.Signal,this.sprite.events.onAnimationComplete=new b.Signal,this.sprite.events.onAnimationLoop=new b.Signal),this._outputFrames.length=0,this._frameData.getFrameIndexes(c,f,this._outputFrames),this._anims[a]=new b.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.currentFrame=this.currentAnim.currentFrame,this.sprite.__tilePattern&&(this.sprite.__tilePattern=!1,this.tilingTexture=!1),this._anims[a])},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()===!0?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame) +},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._frameData=null,this._frameIndex=0,this.currentAnim=null,this.currentFrame=null}},b.AnimationManager.prototype.constructor=b.AnimationManager,Object.defineProperty(b.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(b.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData?this._frameData.total:-1}}),Object.defineProperty(b.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(b.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this._frameIndex:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&(this._frameIndex=a,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)))}}),Object.defineProperty(b.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1))):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,c,d,e,f,g,h){this.game=a,this._parent=c,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new b.Signal,this.onComplete=new b.Signal,this.onLoop=new b.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},b.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events.onAnimationStart.dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.now,this._timeNextFrame=this.game.time.now+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.now-this._timeNextFrame,this._timeLastFrame=this.game.time.now,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.now+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length&&(this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop.dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this)):this.complete()),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),!0):!1},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setFrame(this.currentFrame),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)))},destroy:function(){this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose()},complete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete.dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},b.Animation.prototype.constructor=b.Animation,Object.defineProperty(b.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.now:this.isPlaying&&(this._timeNextFrame=this.game.time.now+this.delay)}}),Object.defineProperty(b.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(b.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame))}}),Object.defineProperty(b.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),b.Animation.generateFrameNames=function(a,c,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>c)for(var i=c;d>=i;i++)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=c;i>=d;i--)h="number"==typeof f?b.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},b.Frame=function(a,c,d,e,f,g,h){this.index=a,this.x=c,this.y=d,this.width=e,this.height=f,this.name=g,this.uuid=h,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=b.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},getRect:function(a){return"undefined"==typeof a?a=new b.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},b.Frame.prototype.constructor=b.Frame,b.FrameData=function(){this._frames=[],this._frameNames=[]},b.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},getFrameRange:function(a,b,c){"undefined"==typeof c&&(c=[]);for(var d=a;b>=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;dd;d++)c.push(b?this.getFrame(a[d]):this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0,e=this._frames.length;e>d;d++)c.push(this._frames[d].index);else for(var d=0,e=a.length;e>d;d++)b?c.push(a[d]):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c}},b.FrameData.prototype.constructor=b.FrameData,Object.defineProperty(b.FrameData.prototype,"total",{get:function(){return this._frames.length}}),b.AnimationParser={spriteSheet:function(a,c,d,e,f,g,h){var i=a.cache.getImage(c);if(null==i)return null;var j=i.width,k=i.height;0>=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new b.FrameData,p=g,q=g,r=0;n>r;r++){var s=a.rnd.uuid();o.addFrame(new b.Frame(r,p,q,d,e,"",s)),PIXI.TextureCache[s]=new PIXI.Texture(PIXI.BaseTextureCache[c],{x:p,y:q,width:d,height:e}),p+=d+h,p+d>j&&(p=g,q+=e+h)}return o},JSONData:function(a,c){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var d,e=new b.FrameData,f=c.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o,p=new b.FrameData,q=c.getElementsByTagName("SubTexture"),r=0;r0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._packIndex=0,this.loadPack()):this.beginLoad())},beginLoad:function(){this.progress=0,this.progressFloat=0,this.hasLoaded=!1,this.isLoading=!0,this.onLoadStart.dispatch(this._fileList.length),this._fileList.length>0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.isLoading=!1,this.onLoadComplete.dispatch())},loadPack:function(){if(!this._packList[this._packIndex])return void console.warn("Phaser.Loader loadPackList invalid index "+this._packIndex);var a=this._packList[this._packIndex];null!==a.data?this.packLoadComplete(this._packIndex,!1):this.xhrLoad(this._packIndex,this.baseURL+a.url,"text","packLoadComplete","packLoadError")},packLoadComplete:function(a,c){if("undefined"==typeof c&&(c=!0),!this._packList[a])return void console.warn("Phaser.Loader packLoadComplete invalid index "+a);var d=this._packList[a];if(d.loaded=!0,c)var e=JSON.parse(this._xhr.responseText);else var e=this._packList[a].data;if(e[d.key])for(var f,g=0;g100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?(this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect)):(this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite.crop(this.preloadSprite.rect))),this.onFileComplete.dispatch(this.progress,this._fileList[a].key,b,this.totalLoadedFiles(),this._fileList.length),this.totalQueuedFiles()>0?(this._fileIndex++,this.loadFile()):(this.hasLoaded=!0,this.isLoading=!1,this.removeAll(),this.onLoadComplete.dispatch())},totalLoadedFiles:function(){for(var a=0,b=0;b=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},play:function(a,b,c,d,e){if("undefined"==typeof a&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying===!0&&e===!1&&this.override===!1)return this;if(this.isPlaying&&this.override&&(this.usingWebAudio?"undefined"==typeof this._sound.stop?this._sound.noteOff(0):this._sound.stop(0):this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0)),this.currentMarker=a,""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null==this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this.loop&&""===a&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.now,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,this.duration):this._sound.start(0,a,this.duration)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.now-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",this.paused||this.onStop.dispatch(this,b)},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},b.Sound.prototype.constructor=b.Sound,Object.defineProperty(b.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(b.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(b.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(b.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),b.SoundManager=function(a){this.game=a,this.onSoundDecode=new b.Signal,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this.context=null,this.usingWebAudio=!0,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32},b.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?(this.game.input.touch.callbackContext=this,this.game.input.touch.touchStartCallback=this.unlock,this.game.input.mouse.callbackContext=this,this.game.input.mouse.mouseDownCallback=this.unlock,this.touchLocked=!0):this.touchLocked=!1,window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.usingWebAudio=!1,void(this.noAudio=!0);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingWebAudio=!1,this.usingAudioTag=!0,void(this.noAudio=!1)}if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.noAudio=!0}window.Audio&&null===this.context&&(this.usingWebAudio=!1,this.usingAudioTag=!0,this.noAudio=!1),null!==this.context&&(this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination))},unlock:function(){if(this.touchLocked!==!1)if(this.game.device.webAudio===!1||window.PhaserGlobal&&window.PhaserGlobal.disableWebAudio===!0)this.touchLocked=!1,this._unlockSource=null,this.game.input.touch.callbackContext=null,this.game.input.touch.touchStartCallback=null,this.game.input.mouse.callbackContext=null,this.game.input.mouse.mouseDownCallback=null;else{var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),this._unlockSource.noteOn(0)}},stopAll:function(){for(var a=0;a>>0:(a<<24|c<<16|d<<8|e)>>>0},unpackPixel:function(a,c,d,e){return("undefined"==typeof c||null===c)&&(c=b.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),b.Device.LITTLE_ENDIAN?(c.a=(4278190080&a)>>>24,c.b=(16711680&a)>>>16,c.g=(65280&a)>>>8,c.r=255&a):(c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a),c.color=a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a/255+")",d&&b.Color.RGBtoHSL(c.r,c.g,c.b,c),e&&b.Color.RGBtoHSV(c.r,c.g,c.b,c),c},fromRGBA:function(a,c){return c||(c=b.Color.createColor()),c.r=(4278190080&a)>>>24,c.g=(16711680&a)>>>16,c.b=(65280&a)>>>8,c.a=255&a,c.rgba="rgba("+c.r+","+c.g+","+c.b+","+c.a+")",c},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,1)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f; +e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6}return e},HSLtoRGB:function(a,c,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=b.Color.createColor(d,d,d),0!==c){var f=.5>d?d*(1+c):d+c-d*c,g=2*d-f;e.r=b.Color.hueToColor(g,f,a+1/3),e.g=b.Color.hueToColor(g,f,a),e.b=b.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),b.Color.updateColor(e),e},RGBtoHSV:function(a,c,d,e){e||(e=b.Color.createColor(a,c,d,255)),a/=255,c/=255,d/=255;var f=Math.min(a,c,d),g=Math.max(a,c,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(c-d)/h+(d>c?6:0):g===c?e.h=(d-a)/h+2:g===d&&(e.h=(a-c)/h+4),e.h/=6),e},HSVtoRGB:function(a,c,d,e){"undefined"==typeof e&&(e=b.Color.createColor(0,0,0,1,a,c,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-c),l=d*(1-j*c),m=d*(1-(1-j)*c);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),b.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,c,d,e,f,g,h){var i={r:a||0,g:b||0,b:c||0,a:d||1,h:e||0,s:f||0,l:g||0,v:h||0,color:0};return i.rgba="rgba("+i.r+","+i.g+","+i.b+","+i.a+")",i},updateColor:function(a){return a.rgba="rgba("+a.r+","+a.g+","+a.b+","+a.a+")",a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,c,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(c<<8)+d).toString(16).slice(1):"0x"+b.Color.componentToHex(e)+b.Color.componentToHex(a)+b.Color.componentToHex(c)+b.Color.componentToHex(d)},hexToRGB:function(a){var c=b.Color.hexToColor(a);return c?b.Color.getColor32(c.a,c.r,c.g,c.b):void 0},hexToColor:function(a,c){c||(c=b.Color.createColor());var d=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;a=a.replace(d,function(a,b,c,d){return b+b+c+c+d+d});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return e&&(c.r=parseInt(e[1],16),c.g=parseInt(e[2],16),c.b=parseInt(e[3],16)),c},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,c){"undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSVtoRGB(e/359,a,c));return d},HSLColorWheel:function(a,c){"undefined"==typeof a&&(a=.5),"undefined"==typeof c&&(c=.5);for(var d=[],e=0;359>=e;e++)d.push(b.Color.HSLtoRGB(e/359,a,c));return d},interpolateColor:function(a,c,d,e,f){"undefined"==typeof f&&(f=255);var g=b.Color.getRGB(a),h=b.Color.getRGB(c),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return b.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,c,d,e,f,g){var h=b.Color.getRGB(a),i=(c-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return b.Color.getColor(i,j,k)},interpolateRGB:function(a,c,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-c)*i/h+c,l=(g-d)*i/h+d;return b.Color.getColor(j,k,l)},getRandomColor:function(a,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof c&&(c=255),"undefined"==typeof d&&(d=255),c>255||a>c)return b.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(c-a)),f=a+Math.round(Math.random()*(c-a)),g=a+Math.round(Math.random()*(c-a));return b.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var c=b.Color.getRGB(a);return"rgba("+c.r.toString()+","+c.g.toString()+","+c.b.toString()+","+(c.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},getColorInfo:function(a){var c=b.Color.getRGB(a),d=b.Color.RGBtoHexstring(a)+"\n";return d=d.concat("Alpha: "+c.alpha+" Red: "+c.red+" Green: "+c.green+" Blue: "+c.blue)+"\n"},RGBtoHexstring:function(a){var c=b.Color.getRGB(a);return"0x"+b.Color.colorToHexstring(c.alpha)+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},RGBtoWebstring:function(a){var c=b.Color.getRGB(a);return"#"+b.Color.colorToHexstring(c.red)+b.Color.colorToHexstring(c.green)+b.Color.colorToHexstring(c.blue)},colorToHexstring:function(a){var b="0123456789ABCDEF",c=a%16,d=(a-c)/16,e=b.charAt(d)+b.charAt(c);return e}},b.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.parseConfig()},b.Physics.ARCADE=0,b.Physics.P2JS=1,b.Physics.NINJA=2,b.Physics.BOX2D=3,b.Physics.CHIPMUNK=5,b.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!b.Physics.hasOwnProperty("Arcade")||(this.arcade=new b.Physics.Arcade(this.game),this.game.time.deltaCap=.2),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&b.Physics.hasOwnProperty("Ninja")&&(this.ninja=new b.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&b.Physics.hasOwnProperty("P2")&&(this.p2=new b.Physics.P2(this.game,this.config))},startSystem:function(a){if(a===b.Physics.ARCADE?this.arcade=new b.Physics.Arcade(this.game):a===b.Physics.P2JS&&(this.p2=new b.Physics.P2(this.game,this.config)),a===b.Physics.NINJA)this.ninja=new b.Physics.Ninja(this.game);else{if(a===b.Physics.BOX2D&&null===this.box2d)throw new Error("The Box2D physics system has not been implemented yet.");if(a===b.Physics.CHIPMUNK&&null===this.chipmunk)throw new Error("The Chipmunk physics system has not been implemented yet.")}},enable:function(a,c,d){"undefined"==typeof c&&(c=b.Physics.ARCADE),"undefined"==typeof d&&(d=!1),c===b.Physics.ARCADE?this.arcade.enable(a):c===b.Physics.P2JS&&this.p2?this.p2.enable(a,d):c===b.Physics.NINJA&&this.ninja&&this.ninja.enableAABB(a)},preUpdate:function(){this.p2&&this.p2.preUpdate()},update:function(){this.p2&&this.p2.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear()},destroy:function(){this.p2&&this.p2.destroy(),this.arcade=null,this.ninja=null,this.p2=null}},b.Physics.prototype.constructor=b.Physics,b.Physics.Arcade=function(a){this.game=a,this.gravity=new b.Point,this.bounds=new b.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.TILE_BIAS=16,this.forceX=!1,this.quadTree=new b.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._overlap=0,this._maxOverlap=0,this._velocity1=0,this._velocity2=0,this._newVelocity1=0,this._newVelocity2=0,this._average=0,this._mapData=[],this._result=!1,this._total=0,this._angle=0,this._dx=0,this._dy=0},b.Physics.Arcade.prototype.constructor=b.Physics.Arcade,b.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,c){"undefined"==typeof c&&(c=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof b.Group?this.enable(a[d].children,c):(this.enableBody(a[d]),c&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof b.Group?this.enable(a.children,c):(this.enableBody(a),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new b.Physics.Arcade.Body(a))},updateMotion:function(a){this._velocityDelta=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity,a.angularVelocity+=this._velocityDelta,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return f=f||1e4,1==a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2==a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(this._drag=e*this.game.time.physicsElapsed,c-this._drag>0?c-=this._drag:c+this._drag<0?c+=this._drag:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,c,d,e,f,g){return"undefined"!=typeof c||a.type!==b.GROUP&&a.type!==b.EMITTER?void(a&&c&&a.exists&&c.exists&&(a.type==b.SPRITE||a.type==b.TILESPRITE?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsSprite(a,c,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideSpriteVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,c,d,e,f):a.type==b.GROUP?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f):a.type==b.TILEMAPLAYER?c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsTilemapLayer(c,a,d,e,f):(c.type==b.GROUP||c.type==b.EMITTER)&&this.collideGroupVsTilemapLayer(c,a,d,e,f):a.type==b.EMITTER&&(c.type==b.SPRITE||c.type==b.TILESPRITE?this.collideSpriteVsGroup(c,a,d,e,f,g):c.type==b.GROUP||c.type==b.EMITTER?this.collideGroupVsGroup(a,c,d,e,f,g):c.type==b.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,c,d,e,f)))):void this.collideGroupVsSelf(a,d,e,f,g)},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length&&a.body){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b),this._potentials=this.quadTree.retrieve(a);for(var g=0,h=this._potentials.length;h>g;g++)this.separate(a.body,this._potentials[g],d,e,f)&&(c&&c.call(e,a,this._potentials[g].sprite),this._total++)}},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body&&(this._mapData=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1),0!==this._mapData.length))for(var f=0;ff;f++)a.children[f].exists&&this.collideSpriteVsTilemapLayer(a.children[f],b,c,d,e)},separate:function(a,b,c,d,e){return a.enable&&b.enable&&this.intersects(a,b)?c&&c.call(d,a.sprite,b.sprite)===!1?!1:e?!0:(this._result=this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS,0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(this._overlap=a.right-b.x,this._overlap>this._maxOverlap||a.checkCollision.right===!1||b.checkCollision.left===!1?this._overlap=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()this._maxOverlap||a.checkCollision.left===!1||b.checkCollision.right===!1?this._overlap=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),0!==this._overlap)?(a.overlapX=this._overlap,b.overlapX=this._overlap,c||a.customSeparateX||b.customSeparateX?!0:(this._velocity1=a.velocity.x,this._velocity2=b.velocity.x,a.immovable||b.immovable?a.immovable?b.immovable||(b.x+=this._overlap,b.velocity.x=this._velocity1-this._velocity2*b.bounce.x):(a.x=a.x-this._overlap,a.velocity.x=this._velocity2-this._velocity1*a.bounce.x):(this._overlap*=.5,a.x=a.x-this._overlap,b.x+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.x=this._average+this._newVelocity1*a.bounce.x,b.velocity.x=this._average+this._newVelocity2*b.bounce.x),!0)):!1)},separateY:function(a,b,c){return a.immovable&&b.immovable?!1:(this._overlap=0,this.intersects(a,b)&&(this._maxOverlap=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS,0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(this._overlap=a.bottom-b.y,this._overlap>this._maxOverlap||a.checkCollision.down===!1||b.checkCollision.up===!1?this._overlap=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()this._maxOverlap||a.checkCollision.up===!1||b.checkCollision.down===!1?this._overlap=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),0!==this._overlap)?(a.overlapY=this._overlap,b.overlapY=this._overlap,c||a.customSeparateY||b.customSeparateY?!0:(this._velocity1=a.velocity.y,this._velocity2=b.velocity.y,a.immovable||b.immovable?a.immovable?b.immovable||(b.y+=this._overlap,b.velocity.y=this._velocity1-this._velocity2*b.bounce.y,a.moves&&(b.x+=a.x-a.prev.x)):(a.y=a.y-this._overlap,a.velocity.y=this._velocity2-this._velocity1*a.bounce.y,b.moves&&(a.x+=b.x-b.prev.x)):(this._overlap*=.5,a.y=a.y-this._overlap,b.y+=this._overlap,this._newVelocity1=Math.sqrt(this._velocity2*this._velocity2*b.mass/a.mass)*(this._velocity2>0?1:-1),this._newVelocity2=Math.sqrt(this._velocity1*this._velocity1*a.mass/b.mass)*(this._velocity1>0?1:-1),this._average=.5*(this._newVelocity1+this._newVelocity2),this._newVelocity1-=this._average,this._newVelocity2-=this._average,a.velocity.y=this._average+this._newVelocity1*a.bounce.y,b.velocity.y=this._average+this._newVelocity2*b.bounce.y),!0)):!1)},separateTile:function(a,b,c){if(!b.enable||!c.intersects(b.position.x,b.position.y,b.right,b.bottom))return!1;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var d=0,e=0,f=0,g=1;if(b.deltaAbsX()>b.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationX(a,c),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&this.processTileSeparationY(a,c),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y},getObjectsUnderPointer:function(a,c,d,e){if(0!==c.length&&a.exists){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(c);var f=new b.Rectangle(a.x,a.y,1,1),g=[];this._potentials=this.quadTree.retrieve(f);for(var h=0,i=this._potentials.length;i>h;h++)this._potentials[h].hitTest(a.x,a.y)&&(d&&d.call(e,a,this._potentials[h].sprite),g.push(this._potentials[h].sprite));return g}},moveToObject:function(a,b,c,d){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=0),this._angle=Math.atan2(b.y-a.y,b.x-a.x),d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*c,a.body.velocity.y=Math.sin(this._angle)*c,this._angle},moveToPointer:function(a,b,c,d){return"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0),this._angle=this.angleToPointer(a,c),d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(this._angle)*b,a.body.velocity.y=Math.sin(this._angle)*b,this._angle},moveToXY:function(a,b,c,d,e){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0),this._angle=Math.atan2(c-a.y,b-a.x),e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(this._angle)*d,a.body.velocity.y=Math.sin(this._angle)*d,this._angle},velocityFromAngle:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*c,Math.sin(this.game.math.degToRad(a))*c)},velocityFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerationFromRotation:function(a,c,d){return"undefined"==typeof c&&(c=60),d=d||new b.Point,d.setTo(Math.cos(a)*c,Math.sin(a)*c)},accelerateToObject:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleBetween(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToPointer:function(a,b,c,d,e){return"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3),this._angle=this.angleToPointer(a,b),a.body.acceleration.setTo(Math.cos(this._angle)*c,Math.sin(this._angle)*c),a.body.maxVelocity.setTo(d,e),this._angle},accelerateToXY:function(a,b,c,d,e,f){return"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3),this._angle=this.angleToXY(a,b,c),a.body.acceleration.setTo(Math.cos(this._angle)*d,Math.sin(this._angle)*d),a.body.maxVelocity.setTo(e,f),this._angle},distanceBetween:function(a,b){return this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToXY:function(a,b,c){return this._dx=a.x-b,this._dy=a.y-c,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},distanceToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=a.x-b.x,this._dy=a.y-b.y,Math.sqrt(this._dx*this._dx+this._dy*this._dy)},angleBetween:function(a,b){return this._dx=b.x-a.x,this._dy=b.y-a.y,Math.atan2(this._dy,this._dx)},angleToXY:function(a,b,c){return this._dx=b-a.x,this._dy=c-a.y,Math.atan2(this._dy,this._dx)},angleToPointer:function(a,b){return b=b||this.game.input.activePointer,this._dx=b.worldX-a.x,this._dy=b.worldY-a.y,Math.atan2(this._dy,this._dx)}},b.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=b.Physics.ARCADE,this.enable=!0,this.offset=new b.Point,this.position=new b.Point(a.x,a.y),this.prev=new b.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height,this.width=a.width,this.height=a.height,this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new b.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new b.Point,this.newVelocity=new b.Point(0,0),this.deltaMax=new b.Point(0,0),this.acceleration=new b.Point,this.drag=new b.Point,this.allowGravity=!0,this.gravity=new b.Point(0,0),this.bounce=new b.Point,this.maxVelocity=new b.Point(1e4,1e4),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=b.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new b.Point,this.phase=0,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},b.Physics.Arcade.Body.prototype={updateBounds:function(){var a=Math.abs(this.sprite.scale.x),b=Math.abs(this.sprite.scale.y);(a!==this._sx||b!==this._sy)&&(this.width=this.sourceWidth*a,this.height=this.sourceHeight*b,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this._sx=a,this._sy=b,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this._reset=!0)},preUpdate:function(){this.enable&&(this.phase=1,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||1===this.sprite._cache[4])&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&2!==this.phase&&(this.phase=2,this.deltaX()<0?this.facing=b.LEFT:this.deltaX()>0&&(this.facing=b.RIGHT),this.deltaY()<0?this.facing=b.UP:this.deltaY()>0&&(this.facing=b.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.x+=this._dx,this.sprite.y+=this._dy),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,c){return b.Rectangle.contains(this,a,c)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(b.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(b.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),b.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},b.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},b.Physics.Arcade.Body.prototype.constructor=b.Physics.Arcade.Body,b.Particles=function(a){this.game=a,this.emitters={},this.ID=0},b.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},b.Particles.prototype.constructor=b.Particles,b.Particles.Arcade={},b.Particles.Arcade.Emitter=function(a,c,d,e){this.maxParticles=e||50,b.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=b.EMITTER,this.area=new b.Rectangle(c,d,1,1),this.minParticleSpeed=new b.Point(-100,-100),this.maxParticleSpeed=new b.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=b.Particle,this.particleDrag=new b.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new b.Point,this.on=!1,this.particleAnchor=new b.Point(.5,.5),this.blendMode=b.blendModes.NORMAL,this.emitX=c,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new b.Point(1,1),this._maxParticleScale=new b.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._explode=!0,this._frames=null},b.Particles.Arcade.Emitter.prototype=Object.create(b.Group.prototype),b.Particles.Arcade.Emitter.prototype.constructor=b.Particles.Arcade.Emitter,b.Particles.Arcade.Emitter.prototype.update=function(){if(this.on)if(this._explode){this._counter=0;do this.emitParticle(),this._counter++;while(this._counter=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency);for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b;c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++; +return this},b.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},b.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},b.Particles.Arcade.Emitter.prototype.explode=function(a,b){this.start(!0,a,0,b,!1)},b.Particles.Arcade.Emitter.prototype.flow=function(a,b,c){this.start(!1,a,b,c,!0)},b.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a||e?this._quantity=d:this._quantity+=d,this._counter=0,this._timer=this.game.time.now+c},b.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);null!==a&&(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.integerInRange(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit())},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},b.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},b.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},b.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},b.Particles.Arcade.Emitter.prototype.setAlpha=function(a,c,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=b.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=c,this.autoAlpha=!1,d>0&&a!==c){var g={v:a},h=this.game.make.tween(g).to({v:c},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},b.Particles.Arcade.Emitter.prototype.setScale=function(a,c,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=b.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(c,e),this.autoScale=!1,f>0&&a!==c||d!==e){var i={x:a,y:d},j=this.game.make.tween(i).to({x:c,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},b.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},b.Tile.prototype.constructor=b.Tile,Object.defineProperty(b.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(b.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),b.Tilemap=function(a,c,d,e,f,g){this.game=a,this.key=c;var h=b.TilemapParser.parse(this.game,c,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},b.Tilemap.CSV=0,b.Tilemap.TILED_JSON=1,b.Tilemap.NORTH=0,b.Tilemap.EAST=1,b.Tilemap.SOUTH=2,b.Tilemap.WEST=3,b.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,c,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof c){if("string"!=typeof a)return null;if(c=a,!this.game.cache.checkImageKey(c))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+c+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===b.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+c+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(c)),this.tilesets[a];var i=new b.Tileset(c,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(c)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pl;l++)if(this.objects[a][l].gid===c){k=new i(this.game,this.objects[a][l].x,this.objects[a][l].y,d,e),k.name=this.objects[a][l].name,k.visible=this.objects[a][l].visible,k.autoCull=g,k.exists=f,j&&(k.y-=k.height),h.add(k);for(var n in this.objects[a][l].properties)h.set(k,n,this.objects[a][l].properties[n],!1,!1,0,!0)}},createLayer:function(a,c,d,e){"undefined"==typeof c&&(c=this.game.width),"undefined"==typeof d&&(d=this.game.height),"undefined"==typeof e&&(e=this.game.world);var f=a;return"string"==typeof a&&(f=this.getLayerIndex(a)),null===f||f>this.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new b.TilemapLayer(this.game,this,f,c,d))},createBlankLayer:function(a,c,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:c,height:d,widthInPixels:c*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;c>l;l++)h.push(new b.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new b.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;he;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d,e){if("undefined"==typeof c&&(c=!0),"undefined"==typeof e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b=0&&a=0&&c=0&&c=0&&d-1?this.layers[e].data[d][c].setCollision(!0,!0,!0,!0):this.layers[e].data[d][c].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][c]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=c[1].x-a,f=c[1].y-b,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},b.Tilemap.prototype.constructor=b.Tilemap,Object.defineProperty(b.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),b.TilemapLayer=function(a,c,d,e,f){this.game=a,this.map=c,this.index=d,this.layer=c.layers[d],this.canvas=b.Canvas.create(e,f,"",!0),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new b.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),b.Image.call(this,this.game,0,0,this.texture,this.textureFrame),this.name="",this.type=b.TILEMAPLAYER,this.fixedToCamera=!0,this.cameraOffset=new b.Point(0,0),this.tileColor="rgb(255, 255, 255)",this.debug=!1,this.debugAlpha=.5,this.debugColor="rgba(0, 255, 0, 1)",this.debugFill=!1,this.debugFillColor="rgba(0, 255, 0, 0.2)",this.debugCallbackColor="rgba(255, 0, 0, 1)",this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this.wrap=!1,this._mc={cw:c.tileWidth,ch:c.tileHeight,ga:1,dx:0,dy:0,dw:0,dh:0,tx:0,ty:0,tw:0,th:0,tl:0,maxX:0,maxY:0,startX:0,startY:0,x:0,y:0,prevX:0,prevY:0},this._results=[],this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Image.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Image.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},b.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels,this.layer.heightInPixels)},b.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._mc.x+(a-this._mc.x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._mc.x/this.scrollFactorX+(a-this._mc.x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._mc.y+(a-this._mc.y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._mc.y/this.scrollFactorY+(a-this._mc.y)},b.TilemapLayer.prototype.getTileX=function(a){return this.game.math.snapToFloor(this._fixX(a),this.map.tileWidth)/this.map.tileWidth},b.TilemapLayer.prototype.getTileY=function(a){return this.game.math.snapToFloor(this._fixY(a),this.map.tileHeight)/this.map.tileHeight},b.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},b.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){("undefined"==typeof b||null===b)&&(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=f.length,h=[],i=0;ij;j++)if(e[i].containsPoint(f[j][0],f[j][1])){h.push(e[i]);break}return h},b.TilemapLayer.prototype.getTiles=function(a,b,c,d,e,f){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),a=this._fixX(a),b=this._fixY(b),c>this.layer.widthInPixels&&(c=this.layer.widthInPixels),d>this.layer.heightInPixels&&(d=this.layer.heightInPixels),this._mc.tx=this.game.math.snapToFloor(a,this._mc.cw)/this._mc.cw,this._mc.ty=this.game.math.snapToFloor(b,this._mc.ch)/this._mc.ch,this._mc.tw=(this.game.math.snapToCeil(c,this._mc.cw)+this._mc.cw)/this._mc.cw,this._mc.th=(this.game.math.snapToCeil(d,this._mc.ch)+this._mc.ch)/this._mc.ch,this._results.length=0;for(var g=this._mc.ty;gd;d++){if(this._column=null,0>d&&this.wrap?this._column=this.layer.data[d+this.map.height]:d>=this.map.height&&this.wrap?this._column=this.layer.data[d-this.map.height]:this.layer.data[d]&&(this._column=this.layer.data[d]),this._column)for(var f=this._mc.startX,g=this._mc.startX+this._mc.maxX;g>f;f++){var a=null;0>f&&this.wrap?a=this._column[f+this.map.width]:f>=this.map.width&&this.wrap?a=this._column[f-this.map.width]:this._column[f]&&(a=this._column[f]),a&&a.index>-1&&(c=this.map.tilesets[this.map.tiles[a.index][2]],this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.draw(this.context,Math.floor(this._mc.tx),Math.floor(this._mc.ty),a.index),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._mc.tx),Math.floor(this._mc.ty),this.map.tileWidth,this.map.tileHeight))),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}return this.debug&&(this.context.globalAlpha=1,this.renderDebug()),this.game.renderType===b.WEBGL&&PIXI.updateWebGLTexture(this.baseTexture,this.game.renderer.gl),this.dirty=!1,this.layer.dirty=!1,!0}},b.TilemapLayer.prototype.renderDebug=function(){this._mc.tx=this._mc.dx,this._mc.ty=this._mc.dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._mc.startY,b=this._mc.startY+this._mc.maxY;b>a;a++){if(this._column=null,0>a&&this.wrap?this._column=this.layer.data[a+this.map.height]:a>=this.map.height&&this.wrap?this._column=this.layer.data[a-this.map.height]:this.layer.data[a]&&(this._column=this.layer.data[a]),this._column)for(var c=this._mc.startX,d=this._mc.startX+this._mc.maxX;d>c;c++){var e=null;0>c&&this.wrap?e=this._column[c+this.map.width]:c>=this.map.width&&this.wrap?e=this._column[c-this.map.width]:this._column[c]&&(e=this._column[c]),e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._mc.tx=Math.floor(this._mc.tx),this.debugFill&&this.context.fillRect(this._mc.tx,this._mc.ty,this._mc.cw,this._mc.ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty)),e.faceBottom&&(this.context.moveTo(this._mc.tx,this._mc.ty+this._mc.ch),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),e.faceLeft&&(this.context.moveTo(this._mc.tx,this._mc.ty),this.context.lineTo(this._mc.tx,this._mc.ty+this._mc.ch)),e.faceRight&&(this.context.moveTo(this._mc.tx+this._mc.cw,this._mc.ty),this.context.lineTo(this._mc.tx+this._mc.cw,this._mc.ty+this._mc.ch)),this.context.stroke()),this._mc.tx+=this.map.tileWidth}this._mc.tx=this._mc.dx,this._mc.ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._mc.x},set:function(a){a!==this._mc.x&&(this._mc.x=a,this._mc.startX=this.game.math.floor(this._mc.x/this.map.tileWidth),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._mc.y},set:function(a){a!==this._mc.y&&(this._mc.y=a,this._mc.startY=this.game.math.floor(this._mc.y/this.map.tileHeight),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=a,this.dirty=!0}}),b.TilemapParser={parse:function(a,c,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof c)return this.getEmptyData();if(null===c)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(c);if(h){if(h.format===b.Tilemap.CSV)return this.parseCSV(c,h.data,d,e);if(!h.format||h.format===b.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+c)},parseCSV:function(a,c,d,e){var f=this.getEmptyData();c=c.trim();for(var g=[],h=c.split("\n"),i=h.length,j=0,k=0;kk;k++)i.push(a.layers[f].data[k]>0?new b.Tile(g,a.layers[f].data[k],h,j.length,a.tilewidth,a.tileheight):new b.Tile(g,-1,h,j.length,a.tilewidth,a.tileheight)),h++,h===a.layers[f].width&&(j.push(i),h=0,i=[]);g.data=j,e.push(g)}d.layers=e;for(var m=[],f=0;ft;t++)if(a.layers[f].objects[t].gid){var u={gid:a.layers[f].objects[t].gid,name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};r[a.layers[f].name].push(u)}else if(a.layers[f].objects[t].polyline){var u={name:a.layers[f].objects[t].name,x:a.layers[f].objects[t].x,y:a.layers[f].objects[t].y,width:a.layers[f].objects[t].width,height:a.layers[f].objects[t].height,visible:a.layers[f].objects[t].visible,properties:a.layers[f].objects[t].properties};u.polyline=[];for(var v=0;v=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=b,this.tileWidth=c,this.tileHeight=d,this.tileMargin=e,this.tileSpacing=f,this.properties=g,this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},b.Tileset.prototype={draw:function(a,b,c,d){this.image&&this.drawCoords[d]&&a.drawImage(this.image,this.drawCoords[d][0],this.drawCoords[d][1],this.tileWidth,this.tileHeight,b,c,this.tileWidth,this.tileHeight)},setImage:function(a){this.image=a,this.rows=Math.round((a.height-this.tileMargin)/(this.tileHeight+this.tileSpacing)),this.columns=Math.round((a.width-this.tileMargin)/(this.tileWidth+this.tileSpacing)),this.total=this.rows*this.columns,this.drawCoords.length=0;for(var b=this.tileMargin,c=this.tileMargin,d=this.firstgid,e=0;e0&&this.enable(a[f],b,c,d,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c,d,e):(this.enableBody(a,b,c,d),e&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,c,d,!0))},enableBody:function(a,b,c,d){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.Ninja.Body(this,a,b,c,d),a.anchor.set(.5))},setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=[]},convertTilemap:function(a,b,c){b=a.getLayer(b),this.clearTilemapLayerBodies(a,b);for(var d=0,e=a.layers[b].height;e>d;d++)for(var f=0,g=a.layers[b].width;g>f;f++){var h=a.layers[b].data[d][f];if(h&&c.hasOwnProperty(h.index)){var i=new Phaser.Physics.Ninja.Body(this,null,3,c[h.index],0,h.worldX+h.centerX,h.worldY+h.centerY,h.width,h.height);a.layers[b].bodies.push(i)}}return a.layers[b].bodies},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._result=!1,this._total=0,Array.isArray(b))for(var f=0,g=b.length;g>f;f++)this.collideHandler(a,b[f],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},collideHandler:function(a,b,c,d,e,f){return"undefined"!=typeof b||a.type!==Phaser.GROUP&&a.type!==Phaser.EMITTER?void(a&&b&&a.exists&&b.exists&&(a.type==Phaser.SPRITE||a.type==Phaser.TILESPRITE?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsSprite(a,b,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideSpriteVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,c,d,e):a.type==Phaser.GROUP?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e):a.type==Phaser.TILEMAPLAYER?b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsTilemapLayer(b,a,c,d,e):(b.type==Phaser.GROUP||b.type==Phaser.EMITTER)&&this.collideGroupVsTilemapLayer(b,a,c,d,e):a.type==Phaser.EMITTER&&(b.type==Phaser.SPRITE||b.type==Phaser.TILESPRITE?this.collideSpriteVsGroup(b,a,c,d,e,f):b.type==Phaser.GROUP||b.type==Phaser.EMITTER?this.collideGroupVsGroup(a,b,c,d,e,f):b.type==Phaser.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,c,d,e)))):void this.collideGroupVsSelf(a,c,d,e,f)},collideSpriteVsSprite:function(a,b,c,d,e,f){this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++)},collideSpriteVsGroup:function(a,b,c,d,e,f){if(0!==b.length)for(var g=0,h=b.children.length;h>g;g++)b.children[g].exists&&b.children[g].body&&this.separate(a.body,b.children[g].body,d,e,f)&&(c&&c.call(e,a,b.children[g]),this._total++)},collideGroupVsSelf:function(a,b,c,d,e){if(0!==a.length)for(var f=a.children.length,g=0;f>g;g++)for(var h=g+1;f>=h;h++)a.children[g]&&a.children[h]&&a.children[g].exists&&a.children[h].exists&&this.collideSpriteVsSprite(a.children[g],a.children[h],b,c,d,e)},collideGroupVsGroup:function(a,b,c,d,e,f){if(0!==a.length&&0!==b.length)for(var g=0,h=a.children.length;h>g;g++)a.children[g].exists&&this.collideSpriteVsGroup(a.children[g],b,c,d,e,f)},separate:function(a,b){return a.type!==Phaser.Physics.NINJA||b.type!==Phaser.Physics.NINJA?!1:a.aabb&&b.aabb?a.aabb.collideAABBVsAABB(b.aabb):a.aabb&&b.tile?a.aabb.collideAABBVsTile(b.tile):a.tile&&b.aabb?b.aabb.collideAABBVsTile(a.tile):a.circle&&b.tile?a.circle.collideCircleVsTile(b.tile):a.tile&&b.circle?b.circle.collideCircleVsTile(a.tile):void 0}},Phaser.Physics.Ninja.Body=function(a,b,c,d,e,f,g,h,i){b=b||null,"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=16),this.sprite=b,this.game=a.game,this.type=Phaser.Physics.NINJA,this.system=a,this.aabb=null,this.tile=null,this.circle=null,this.shape=null,this.drag=1,this.friction=.05,this.gravityScale=1,this.bounce=.3,this.velocity=new Phaser.Point,this.facing=Phaser.NONE,this.immovable=!1,this.collideWorldBounds=!0,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.maxSpeed=8,b&&(f=b.x,g=b.y,h=b.width,i=b.height,0===b.anchor.x&&(f+=.5*b.width),0===b.anchor.y&&(g+=.5*b.height)),1===c?(this.aabb=new Phaser.Physics.Ninja.AABB(this,f,g,h,i),this.shape=this.aabb):2===c?(this.circle=new Phaser.Physics.Ninja.Circle(this,f,g,e),this.shape=this.circle):3===c&&(this.tile=new Phaser.Physics.Ninja.Tile(this,f,g,h,i,d),this.shape=this.tile)},Phaser.Physics.Ninja.Body.prototype={preUpdate:function(){this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.shape.integrate(),this.collideWorldBounds&&this.shape.collideWorldBounds()},postUpdate:function(){this.sprite&&(this.sprite.type===Phaser.TILESPRITE?(this.sprite.x=this.shape.pos.x-this.shape.xw,this.sprite.y=this.shape.pos.y-this.shape.yw):(this.sprite.x=this.shape.pos.x,this.sprite.y=this.shape.pos.y)),this.velocity.x<0?this.facing=Phaser.LEFT:this.velocity.x>0&&(this.facing=Phaser.RIGHT),this.velocity.y<0?this.facing=Phaser.UP:this.velocity.y>0&&(this.facing=Phaser.DOWN)},setZeroVelocity:function(){this.shape.oldpos.x=this.shape.pos.x,this.shape.oldpos.y=this.shape.pos.y},moveTo:function(a,b){var c=a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveFrom:function(a,b){var c=-a*this.game.time.physicsElapsed,b=this.game.math.degToRad(b);this.shape.pos.x=this.shape.oldpos.x+c*Math.cos(b),this.shape.pos.y=this.shape.oldpos.y+c*Math.sin(b)},moveLeft:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveRight:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.x=this.shape.oldpos.x+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.x-this.shape.oldpos.x+b))},moveUp:function(a){var b=-a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},moveDown:function(a){var b=a*this.game.time.physicsElapsed;this.shape.pos.y=this.shape.oldpos.y+Math.min(this.maxSpeed,Math.max(-this.maxSpeed,this.shape.pos.y-this.shape.oldpos.y+b))},reset:function(){this.velocity.set(0),this.shape.pos.x=this.sprite.x,this.shape.pos.y=this.sprite.y,this.shape.oldpos.copyFrom(this.shape.pos)},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.shape.pos.x-this.shape.oldpos.x},deltaY:function(){return this.shape.pos.y-this.shape.oldpos.y},destroy:function(){this.sprite=null,this.system=null,this.aabb=null,this.tile=null,this.circle=null,this.shape.destroy(),this.shape=null}},Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"x",{get:function(){return this.shape.pos.x},set:function(a){this.shape.pos.x=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"y",{get:function(){return this.shape.pos.y},set:function(a){this.shape.pos.y=a}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"width",{get:function(){return this.shape.width}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"height",{get:function(){return this.shape.height}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"bottom",{get:function(){return this.shape.pos.y+this.shape.yw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"right",{get:function(){return this.shape.pos.x+this.shape.xw}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"speed",{get:function(){return Math.sqrt(this.shape.velocity.x*this.shape.velocity.x+this.shape.velocity.y*this.shape.velocity.y)}}),Object.defineProperty(Phaser.Physics.Ninja.Body.prototype,"angle",{get:function(){return Math.atan2(this.shape.velocity.y,this.shape.velocity.x)}}),Phaser.Physics.Ninja.Body.render=function(a,b,c,d){c=c||"rgba(0,255,0,0.4)","undefined"==typeof d&&(d=!0),(b.aabb||b.circle)&&b.shape.render(a,b.game.camera.x,b.game.camera.y,c,d)},Phaser.Physics.Ninja.AABB=function(a,b,c,d,e){this.body=a,this.system=a.system,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.oH=0,this.oV=0,this.velocity=new Phaser.Point,this.aabbTileProjections={},this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_FULL]=this.projAABB_Full,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_45DEG]=this.projAABB_45Deg,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONCAVE]=this.projAABB_Concave,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_CONVEX]=this.projAABB_Convex,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGs]=this.projAABB_22DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_22DEGb]=this.projAABB_22DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGs]=this.projAABB_67DegS,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_67DEGb]=this.projAABB_67DegB,this.aabbTileProjections[Phaser.Physics.Ninja.Tile.TYPE_HALF]=this.projAABB_Half},Phaser.Physics.Ninja.AABB.prototype.constructor=Phaser.Physics.Ninja.AABB,Phaser.Physics.Ninja.AABB.COL_NONE=0,Phaser.Physics.Ninja.AABB.COL_AXIS=1,Phaser.Physics.Ninja.AABB.COL_OTHER=2,Phaser.Physics.Ninja.AABB.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},reverse:function(){var a=this.pos.x-this.oldpos.x,b=this.pos.y-this.oldpos.y;this.oldpos.xthis.pos.x&&(this.oldpos.x=this.pos.x-a),this.oldpos.ythis.pos.y&&(this.oldpos.y=this.pos.y-b)},reportCollisionVsBody:function(a,b,c,d,e){var f=this.pos.x-this.oldpos.x,g=this.pos.y-this.oldpos.y,h=f*c+g*d;return this.body.immovable&&e.body.immovable?(a*=.5,b*=.5,this.pos.add(a,b),this.oldpos.set(this.pos.x,this.pos.y),e.pos.subtract(a,b),void e.oldpos.set(e.pos.x,e.pos.y)):void(this.body.immovable||e.body.immovable?this.body.immovable?e.body.immovable||(e.pos.subtract(a,b),0>h&&e.reverse()):(this.pos.subtract(a,b),0>h&&this.reverse()):(a*=.5,b*=.5,this.pos.add(a,b),e.pos.subtract(a,b),0>h&&(this.reverse(),e.reverse())))},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideAABBVsAABB:function(a){var b=this.pos,c=a,d=c.pos.x,e=c.pos.y,f=c.xw,g=c.yw,h=b.x-d,i=f+this.xw-Math.abs(h);if(i>0){var j=b.y-e,k=g+this.yw-Math.abs(j);if(k>0){k>i?0>h?(i*=-1,k=0):k=0:0>j?(i=0,k*=-1):i=0;var l=Math.sqrt(i*i+k*k);return this.reportCollisionVsBody(i,k,i/l,k/l,c),Phaser.Physics.Ninja.AABB.COL_AXIS}}return!1},collideAABBVsTile:function(a){var b=this.pos.x-a.pos.x,c=a.xw+this.xw-Math.abs(b);if(c>0){var d=this.pos.y-a.pos.y,e=a.yw+this.yw-Math.abs(d);if(e>0)return e>c?0>b?(c*=-1,e=0):e=0:0>d?(c=0,e*=-1):c=0,this.resolveTile(c,e,this,a)}return!1},resolveTile:function(a,b,c,d){return 0i){e*=-i,f*=-i;var j=Math.sqrt(e*e+f*f),k=Math.sqrt(a*a+b*b);return j>k?(c.reportCollisionVsWorld(a,b,a/k,b/k,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(e,f,d.signx,d.signy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_45Deg:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-d.pos.x,h=c.pos.y-f*c.yw-d.pos.y,i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.y-f*c.yw,h=d.pos.y-g;if(h*f>0){var i=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(0,h,0,h/p,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_22DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegS:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw,h=d.pos.x-g;if(h*e>0){var i=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),j=c.pos.y-f*c.yw-(d.pos.y+f*d.yw),k=d.sx,l=d.sy,m=i*k+j*l;if(0>m){k*=-m,l*=-m;var n=Math.sqrt(k*k+l*l),o=Math.sqrt(a*a+b*b),p=Math.abs(h);return n>o?o>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(a,b,a/o,b/o,d),Phaser.Physics.Ninja.AABB.COL_AXIS):n>p?(c.reportCollisionVsWorld(h,0,h/p,0,d),Phaser.Physics.Ninja.AABB.COL_OTHER):(c.reportCollisionVsWorld(k,l,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_67DegB:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x+e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=d.sx,j=d.sy,k=g*i+h*j;if(0>k){i*=-k,j*=-k;var l=Math.sqrt(i*i+j*j),m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(c.reportCollisionVsWorld(i,j,d.sx,d.sy,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Convex:function(a,b,c,d){var e=d.signx,f=d.signy,g=c.pos.x-e*c.xw-(d.pos.x-e*d.xw),h=c.pos.y-f*c.yw-(d.pos.y-f*d.yw),i=Math.sqrt(g*g+h*h),j=2*d.xw,k=Math.sqrt(j*j+0),l=k-i;if(0>e*g||0>f*h){var m=Math.sqrt(a*a+b*b);return c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS}return l>0?(g/=i,h/=i,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER):Phaser.Physics.Ninja.AABB.COL_NONE},projAABB_Concave:function(a,b,c,d){var e=d.signx,f=d.signy,g=d.pos.x+e*d.xw-(c.pos.x-e*c.xw),h=d.pos.y+f*d.yw-(c.pos.y-f*c.yw),i=2*d.xw,j=Math.sqrt(i*i+0),k=Math.sqrt(g*g+h*h),l=k-j;if(l>0){var m=Math.sqrt(a*a+b*b);return l>m?(c.reportCollisionVsWorld(a,b,a/m,b/m,d),Phaser.Physics.Ninja.AABB.COL_AXIS):(g/=k,h/=k,c.reportCollisionVsWorld(g*l,h*l,g,h,d),Phaser.Physics.Ninja.AABB.COL_OTHER)}return Phaser.Physics.Ninja.AABB.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-this.xw-b,g=this.pos.y-this.yw-c;e?(a.fillStyle=d,a.fillRect(f,g,this.width,this.height)):(a.strokeStyle=d,a.strokeRect(f,g,this.width,this.height))}},Phaser.Physics.Ninja.Tile=function(a,b,c,d,e,f){"undefined"==typeof f&&(f=Phaser.Physics.Ninja.Tile.EMPTY),this.body=a,this.system=a.system,this.id=f,this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.pos=new Phaser.Point(b,c),this.oldpos=new Phaser.Point(b,c),this.id>1&&this.id<30&&(e=d),this.xw=Math.abs(d/2),this.yw=Math.abs(e/2),this.width=d,this.height=e,this.velocity=new Phaser.Point,this.signx=0,this.signy=0,this.sx=0,this.sy=0,this.body.gravityScale=0,this.body.collideWorldBounds=!1,this.id>0&&this.setType(this.id)},Phaser.Physics.Ninja.Tile.prototype.constructor=Phaser.Physics.Ninja.Tile,Phaser.Physics.Ninja.Tile.prototype={integrate:function(){var a=this.pos.x,b=this.pos.y;this.pos.x+=this.body.drag*this.pos.x-this.body.drag*this.oldpos.x,this.pos.y+=this.body.drag*this.pos.y-this.body.drag*this.oldpos.y+this.system.gravity*this.body.gravityScale,this.velocity.set(this.pos.x-a,this.pos.y-b),this.oldpos.set(a,b)},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.xw);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.xw-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.yw);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.yw-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},reportCollisionVsWorld:function(a,b,c,d){var e,f,g,h,i,j=this.pos,k=this.oldpos,l=j.x-k.x,m=j.y-k.y,n=l*c+m*d,o=n*c,p=n*d,q=l-o,r=m-p;0>n?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},setType:function(a){return a===Phaser.Physics.Ninja.Tile.EMPTY?this.clear():(this.id=a,this.updateType()),this},clear:function(){this.id=Phaser.Physics.Ninja.Tile.EMPTY,this.updateType()},destroy:function(){this.body=null,this.system=null},updateType:function(){if(0===this.id)return this.type=Phaser.Physics.Ninja.Tile.TYPE_EMPTY,this.signx=0,this.signy=0,this.sx=0,this.sy=0,!0;if(this.idn?(h=q*this.body.friction,i=r*this.body.friction,e=1+this.body.bounce,f=o*e,g=p*e,1===c?this.body.touching.left=!0:-1===c&&(this.body.touching.right=!0),1===d?this.body.touching.up=!0:-1===d&&(this.body.touching.down=!0)):f=g=h=i=0,j.x+=a,j.y+=b,k.x+=a+f+h,k.y+=b+g+i},collideWorldBounds:function(){var a=this.system.bounds.x-(this.pos.x-this.radius);a>0?this.reportCollisionVsWorld(a,0,1,0,null):(a=this.pos.x+this.radius-this.system.bounds.right,a>0&&this.reportCollisionVsWorld(-a,0,-1,0,null));var b=this.system.bounds.y-(this.pos.y-this.radius);b>0?this.reportCollisionVsWorld(0,b,0,1,null):(b=this.pos.y+this.radius-this.system.bounds.bottom,b>0&&this.reportCollisionVsWorld(0,-b,0,-1,null))},collideCircleVsTile:function(a){var b=this.pos,c=this.radius,d=a,e=d.pos.x,f=d.pos.y,g=d.xw,h=d.yw,i=b.x-e,j=g+c-Math.abs(i);if(j>0){var k=b.y-f,l=h+c-Math.abs(k);if(l>0)return this.oH=0,this.oV=0,-g>i?this.oH=-1:i>g&&(this.oH=1),-h>k?this.oV=-1:k>h&&(this.oV=1),this.resolveCircleTile(j,l,this.oH,this.oV,this,d)}},resolveCircleTile:function(a,b,c,d,e,f){return 0a){var g=e.pos.x-f.pos.x;return 0>g?(e.reportCollisionVsWorld(-a,0,-1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(a,0,1,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}var h=e.pos.y-f.pos.y;return 0>h?(e.reportCollisionVsWorld(0,-b,0,-1,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(0,b,0,1,f),Phaser.Physics.Ninja.Circle.COL_AXIS)}return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS}if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var i=f.pos.x+c*f.xw,j=f.pos.y+d*f.yw,g=e.pos.x-i,h=e.pos.y-j,k=Math.sqrt(g*g+h*h),l=e.radius-k;return l>0?(0===k?(g=c/Math.SQRT2,h=d/Math.SQRT2):(g/=k,h/=k),e.reportCollisionVsWorld(g*l,h*l,g,h,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_45Deg:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.pos.x-j*e.radius-f.pos.x,m=e.pos.y-k*e.radius-f.pos.y,n=l*j+m*k;if(0>n){j*=-n,k*=-n,b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1));var o=Math.sqrt(j*j+k*k);return o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x-h*f.xw),m=e.pos.y-(f.pos.y+d*f.yw),p=l*-k+m*j;if(p*h*i>0){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.pos.x-(f.pos.x+c*f.xw),m=e.pos.y-(f.pos.y-i*f.yw),p=l*-k+m*j;if(0>p*h*i){var q=Math.sqrt(l*l+m*m),r=e.radius-q;if(r>0)return l/=q,m/=q,e.reportCollisionVsWorld(l*r,m*r,l,m,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var n=l*j+m*k,r=e.radius-Math.abs(n);if(r>0)return e.reportCollisionVsWorld(j*r,k*r,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var s=f.pos.x+c*f.xw,t=f.pos.y+d*f.yw,u=e.pos.x-s,v=e.pos.y-t,q=Math.sqrt(u*u+v*v),r=e.radius-q;if(r>0)return 0===q?(u=c/Math.SQRT2,v=d/Math.SQRT2):(u/=q,v/=q),e.reportCollisionVsWorld(u*r,v*r,u,v,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Concave:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c){if(0===d){var j=f.pos.x+h*f.xw-e.pos.x,k=f.pos.y+i*f.yw-e.pos.y,l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=n+e.radius-m;return o>0?(b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)):Phaser.Physics.Ninja.Circle.COL_NONE}if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x-h*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=0,s=d):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=f.pos.x+c*f.xw,q=f.pos.y-i*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c,s=0):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{if(h*c+i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Convex:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),o>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(h*c+i*d>0){var j=e.pos.x-(f.pos.x-h*f.xw),k=e.pos.y-(f.pos.y-i*f.yw),l=2*f.xw,m=Math.sqrt(l*l+0),n=Math.sqrt(j*j+k*k),o=m+e.radius-n;if(o>0)return j/=n,k/=n,e.reportCollisionVsWorld(j*o,k*o,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var p=f.pos.x+c*f.xw,q=f.pos.y+d*f.yw,r=e.pos.x-p,s=e.pos.y-q,n=Math.sqrt(r*r+s*s),o=e.radius-n;if(o>0)return 0===n?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=n,s/=n),e.reportCollisionVsWorld(r*o,s*o,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_Half:function(a,b,c,d,e,f){var g=f.signx,h=f.signy,i=c*g+d*h;if(i>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var j=e.radius,k=e.pos.x-g*j-f.pos.x,l=e.pos.y-h*j-f.pos.y,m=g,n=h,o=k*m+l*n;if(0>o){m*=-o,n*=-o;var p=Math.sqrt(m*m+n*n),q=Math.sqrt(a*a+b*b);return p>q?(e.reportCollisionVsWorld(a,b,a/q,b/q,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(m,n,f.signx,f.signy),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0!==i)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-f.pos.x;if(0>r*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-(f.pos.y+d*f.yw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else if(0===d){if(0!==i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var s=e.pos.y-f.pos.y;if(0>s*h)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var r=e.pos.x-(f.pos.x+c*f.xw),t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=g/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var v=f.pos.x+c*f.xw,w=f.pos.y+d*f.yw,r=e.pos.x-v,s=e.pos.y-w,t=Math.sqrt(r*r+s*s),u=e.radius-t;if(u>0)return 0===t?(r=c/Math.SQRT2,s=d/Math.SQRT2):(r/=t,s/=t),e.reportCollisionVsWorld(r*u,s*u,r,s,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegS:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(i*d>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c){if(0!==d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-f.pos.y,o=m*-k+n*j;if(o*h*i>0){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0===d)if(0>h*c){var t=f.pos.x-h*f.xw,u=f.pos.y,v=e.pos.x-t,w=e.pos.y-u;if(0>w*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x+c*f.xw),n=e.pos.y-(f.pos.y-i*f.yw),o=m*-k+n*j;if(0>o*h*i){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_22DegB:function(a,b,c,d,e,f){var g,h=f.signx,i=f.signy;if(0===c)if(0===d){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(g=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(g=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>g?(e.reportCollisionVsWorld(a,b,a/g,b/g,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>i*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-h*f.xw),n=e.pos.y-(f.pos.y+i*f.yw),q=m*-k+n*j;if(q*h*i>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>h*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-(f.pos.x+h*f.xw),n=e.pos.y-f.pos.y;if(0>n*i)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(0>q*h*i){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(h*c+i*d>0){var t=Math.sqrt(5),j=1*h/t,k=2*i/t,l=e.radius,m=e.pos.x-j*l-(f.pos.x-h*f.xw),n=e.pos.y-k*l-(f.pos.y+i*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegS:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(g*c>0)return Phaser.Physics.Ninja.Circle.COL_NONE;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y-h*f.yw),o=m*-k+n*j;if(0>o*g*h){var p=Math.sqrt(m*m+n*n),q=l-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{m-=l*j,n-=l*k;var r=m*j+n*k;if(0>r){j*=-r,k*=-r;var s=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),s>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}}else if(0>h*d){var t=f.pos.x,u=f.pos.y-h*f.yw,v=e.pos.x-t,w=e.pos.y-u;if(0>v*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var j=f.sx,k=f.sy,m=e.pos.x-(f.pos.x-g*f.xw),n=e.pos.y-(f.pos.y+d*f.yw),o=m*-k+n*j;if(o*g*h>0){var p=Math.sqrt(m*m+n*n),q=e.radius-p;if(q>0)return m/=p,n/=p,e.reportCollisionVsWorld(m*q,n*q,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var r=m*j+n*k,q=e.radius-Math.abs(r);if(q>0)return e.reportCollisionVsWorld(j*q,k*q,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(0===d)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=f.pos.x+c*f.xw,u=f.pos.y+d*f.yw,v=e.pos.x-t,w=e.pos.y-u,p=Math.sqrt(v*v+w*w),q=e.radius-p;if(q>0)return 0===p?(v=c/Math.SQRT2,w=d/Math.SQRT2):(v/=p,w/=p),e.reportCollisionVsWorld(v*q,w*q,v,w,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},projCircle_67DegB:function(a,b,c,d,e,f){var g=f.signx,h=f.signy;if(0===c)if(0===d){var i,j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;if(0>o){j*=-o,k*=-o;var p=Math.sqrt(j*j+k*k);return b>a?(i=a,b=0,e.pos.x-f.pos.x<0&&(a*=-1)):(i=b,a=0,e.pos.y-f.pos.y<0&&(b*=-1)),p>i?(e.reportCollisionVsWorld(a,b,a/i,b/i,f),Phaser.Physics.Ninja.Circle.COL_AXIS):(e.reportCollisionVsWorld(j,k,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER)}}else{if(0>h*d)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var m=e.pos.x-f.pos.x,n=e.pos.y-(f.pos.y+h*f.yw);if(0>m*g)return e.reportCollisionVsWorld(0,b*d,0,d,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var j=f.sx,k=f.sy,q=m*-k+n*j;if(q*g*h>0){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,j,k,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else if(0===d){if(0>g*c)return e.reportCollisionVsWorld(a*c,0,c,0,f),Phaser.Physics.Ninja.Circle.COL_AXIS;var t=Math.sqrt(5),j=2*g/t,k=1*h/t,m=e.pos.x-(f.pos.x+g*f.xw),n=e.pos.y-(f.pos.y-h*f.yw),q=m*-k+n*j;if(0>q*g*h){var r=Math.sqrt(m*m+n*n),s=e.radius-r;if(s>0)return m/=r,n/=r,e.reportCollisionVsWorld(m*s,n*s,m,n,f),Phaser.Physics.Ninja.Circle.COL_OTHER}else{var o=m*j+n*k,s=e.radius-Math.abs(o);if(s>0)return e.reportCollisionVsWorld(j*s,k*s,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER}}else{if(g*c+h*d>0){var j=f.sx,k=f.sy,l=e.radius,m=e.pos.x-j*l-(f.pos.x+g*f.xw),n=e.pos.y-k*l-(f.pos.y-h*f.yw),o=m*j+n*k;return 0>o?(e.reportCollisionVsWorld(-j*o,-k*o,f.sx,f.sy,f),Phaser.Physics.Ninja.Circle.COL_OTHER):Phaser.Physics.Ninja.Circle.COL_NONE}var u=f.pos.x+c*f.xw,v=f.pos.y+d*f.yw,w=e.pos.x-u,x=e.pos.y-v,r=Math.sqrt(w*w+x*x),s=e.radius-r;if(s>0)return 0===r?(w=c/Math.SQRT2,x=d/Math.SQRT2):(w/=r,x/=r),e.reportCollisionVsWorld(w*s,x*s,w,x,f),Phaser.Physics.Ninja.Circle.COL_OTHER}return Phaser.Physics.Ninja.Circle.COL_NONE},destroy:function(){this.body=null,this.system=null},render:function(a,b,c,d,e){var f=this.pos.x-b,g=this.pos.y-c;a.beginPath(),a.arc(f,g,this.radius,0,2*Math.PI,!1),e?(a.fillStyle=d,a.fill()):(a.strokeStyle=d,a.stroke())}},!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define("p2",function(){return this.p2=a()}()):"undefined"!=typeof window?window.p2=a():"undefined"!=typeof global?self.p2=a():"undefined"!=typeof self&&(self.p2=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},g.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},g.cross=function(a,b,c){var d=b[0]*c[1]-b[1]*c[0];return a[0]=a[1]=0,a[2]=d,a},g.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},g.transformMat2=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e,a[1]=c[1]*d+c[3]*e,a},g.transformMat2d=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e+c[4],a[1]=c[1]*d+c[3]*e+c[5],a},g.transformMat3=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[3]*e+c[6],a[1]=c[1]*d+c[4]*e+c[7],a},g.transformMat4=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[4]*e+c[12],a[1]=c[1]*d+c[5]*e+c[13],a},g.forEach=function(){var a=g.create();return function(b,c,d,e,f,g){var h,i;for(c||(c=2),d||(d=0),i=e?Math.min(e*c+d,b.length):b.length,h=d;i>h;h+=c)a[0]=b[h],a[1]=b[h+1],f(a,a,g),b[h]=a[0],b[h+1]=a[1];return b}}(),g.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},"undefined"!=typeof c&&(c.vec2=g)},{}],2:[function(a,b){function c(){}var d=a("./Scalar");b.exports=c,c.lineInt=function(a,b,c){c=c||0;var e,f,g,h,i,j,k,l=[0,0];return e=a[1][1]-a[0][1],f=a[0][0]-a[1][0],g=e*a[0][0]+f*a[0][1],h=b[1][1]-b[0][1],i=b[0][0]-b[1][0],j=h*b[0][0]+i*b[0][1],k=e*i-h*f,d.eq(k,0,c)||(l[0]=(i*g-f*j)/k,l[1]=(e*j-h*g)/k),l},c.segmentsIntersect=function(a,b,c,d){var e=b[0]-a[0],f=b[1]-a[1],g=d[0]-c[0],h=d[1]-c[1];if(g*f-h*e==0)return!1;var i=(e*(c[1]-a[1])+f*(a[0]-c[0]))/(g*f-h*e),j=(g*(a[1]-c[1])+h*(c[0]-a[0]))/(h*e-g*f);return i>=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":5}],3:[function(a,b){function c(){}b.exports=c,c.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},c.left=function(a,b,d){return c.area(a,b,d)>0},c.leftOn=function(a,b,d){return c.area(a,b,d)>=0},c.right=function(a,b,d){return c.area(a,b,d)<0},c.rightOn=function(a,b,d){return c.area(a,b,d)<=0};var d=[],e=[];c.collinear=function(a,b,f,g){if(g){var h=d,i=e;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=f[0]-b[0],i[1]=f[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return g>m}return 0==c.area(a,b,f)},c.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{}],4:[function(a,b){function c(){this.vertices=[]}function d(a,b,c,d,e){e=e||0;var f=b[1]-a[1],h=a[0]-b[0],i=f*a[0]+h*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*h;return g.eq(m,0,e)?[0,0]:[(k*i-h*l)/m,(f*l-j*i)/m]}var e=a("./Line"),f=a("./Point"),g=a("./Scalar");b.exports=c,c.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},c.prototype.first=function(){return this.vertices[0]},c.prototype.last=function(){return this.vertices[this.vertices.length-1]},c.prototype.clear=function(){this.vertices.length=0},c.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},c.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);f.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},c.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},c.prototype.isReflex=function(a){return f.right(this.at(a-1),this.at(a),this.at(a+1))};var h=[],i=[];c.prototype.canSee=function(a,b){var c,d,g=h,j=i;if(f.leftOn(this.at(a+1),this.at(a),this.at(b))&&f.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=f.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&f.leftOn(this.at(a),this.at(b),this.at(k+1))&&f.rightOn(this.at(a),this.at(b),this.at(k))&&(g[0]=this.at(a),g[1]=this.at(b),j[0]=this.at(k),j[1]=this.at(k+1),c=e.lineInt(g,j),f.sqdist(this.at(a),c)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},c.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(e.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),f.left(v.at(x+1),v.at(x),v.at(y+1))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=d(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),f.left(v.at(x-1),v.at(x),l)&&(o=f.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,e.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)f.leftOn(v.at(x-1),v.at(x),v.at(y))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=f.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)f.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":2,"./Point":3,"./Scalar":5}],5:[function(a,b){function c(){}b.exports=c,c.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"~0.4.0","grunt-contrib-jshint":"~0.9.2","grunt-contrib-nodeunit":"~0.1.2","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","z-schema":"~2.4.6"},dependencies:{"poly-decomp":"0.1.0","gl-matrix":"2.1.0"}}},{}],8:[function(a,b){function c(a){this.lowerBound=d.create(),a&&a.lowerBound&&d.copy(this.lowerBound,a.lowerBound),this.upperBound=d.create(),a&&a.upperBound&&d.copy(this.upperBound,a.upperBound)}{var d=a("../math/vec2");a("../utils/Utils")}b.exports=c;var e=d.create();c.prototype.setFromPoints=function(a,b,c){var f=this.lowerBound,g=this.upperBound;d.set(f,Number.MAX_VALUE,Number.MAX_VALUE),d.set(g,-Number.MAX_VALUE,-Number.MAX_VALUE);for(var h=0;hj;j++)i[j]>g[j]&&(g[j]=i[j]),i[j]b;b++)a.lowerBound[b]this.upperBound[b]&&(this.upperBound[b]=a.upperBound[b])},c.prototype.overlaps=function(a){var b=this.lowerBound,c=this.upperBound,d=a.lowerBound,e=a.upperBound;return(d[0]<=c[0]&&c[0]<=e[0]||b[0]<=e[0]&&e[0]<=c[0])&&(d[1]<=c[1]&&c[1]<=e[1]||b[1]<=e[1]&&e[1]<=c[1])}},{"../math/vec2":30,"../utils/Utils":47}],9:[function(a,b){function c(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=c.AABB}var d=a("../math/vec2"),e=a("../objects/Body");b.exports=c,c.AABB=1,c.BOUNDING_CIRCLE=2,c.prototype.setWorld=function(a){this.world=a},c.prototype.getCollisionPairs=function(){throw new Error("getCollisionPairs must be implemented in a subclass!")};var f=d.create();c.boundingRadiusCheck=function(a,b){d.sub(f,a.position,b.position);var c=d.squaredLength(f),e=a.boundingRadius+b.boundingRadius;return e*e>=c},c.aabbCheck=function(a,b){return a.aabbNeedsUpdate&&a.updateAABB(),b.aabbNeedsUpdate&&b.updateAABB(),a.aabb.overlaps(b.aabb)},c.prototype.boundingVolumeCheck=function(a,b){var d;switch(this.boundingVolumeType){case c.BOUNDING_CIRCLE:d=c.boundingRadiusCheck(a,b);break;case c.AABB:d=c.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return d},c.canCollide=function(a,b){return a.motionState===e.STATIC&&b.motionState===e.STATIC?!1:a.motionState===e.KINEMATIC&&b.motionState===e.STATIC||a.motionState===e.STATIC&&b.motionState===e.KINEMATIC?!1:a.motionState===e.KINEMATIC&&b.motionState===e.KINEMATIC?!1:a.sleepState===e.SLEEPING&&b.sleepState===e.SLEEPING?!1:a.sleepState===e.SLEEPING&&b.motionState===e.STATIC||b.sleepState===e.SLEEPING&&a.motionState===e.STATIC?!1:!0},c.NAIVE=1,c.SAP=2},{"../math/vec2":30,"../objects/Body":31}],10:[function(a,b){function c(a){d.apply(this),a=e.defaults(a,{xmin:-100,xmax:100,ymin:-100,ymax:100,nx:10,ny:10}),this.xmin=a.xmin,this.ymin=a.ymin,this.xmax=a.xmax,this.ymax=a.ymax,this.nx=a.nx,this.ny=a.ny,this.binsizeX=(this.xmax-this.xmin)/this.nx,this.binsizeY=(this.ymax-this.ymin)/this.ny}var d=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Particle"),a("../collision/Broadphase")),e=(a("../math/vec2"),a("../utils/Utils"));b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){for(var b=[],c=a.bodies,e=c.length,f=(this.binsizeX,this.binsizeY,this.nx),g=this.ny,h=this.xmin,i=this.ymin,j=this.xmax,k=this.ymax,l=[],m=f*g,n=0;m>n;n++)l.push([]);for(var o=f/(j-h),p=g/(k-i),n=0;n!==e;n++)for(var q=c[n],r=q.aabb,s=Math.max(r.lowerBound[0],h),t=Math.max(r.lowerBound[1],i),u=Math.min(r.upperBound[0],j),v=Math.min(r.upperBound[1],k),w=Math.floor(o*(s-h)),x=Math.floor(p*(t-i)),y=Math.floor(o*(u-h)),z=Math.floor(p*(v-i)),A=w;y>=A;A++)for(var B=x;z>=B;B++){var C=A,D=B,E=C*(g-1)+D;E>=0&&m>E&&l[E].push(q)}for(var n=0;n!==m;n++)for(var F=l[n],A=0,G=F.length;A!==G;A++)for(var q=F[A],B=0;B!==A;B++){var H=F[B];d.canCollide(q,H)&&this.boundingVolumeCheck(q,H)&&b.push(q,H)}return b}},{"../collision/Broadphase":9,"../math/vec2":30,"../shapes/Circle":35,"../shapes/Particle":39,"../shapes/Plane":40,"../utils/Utils":47}],11:[function(a,b){function c(){d.call(this,d.NAIVE)}{var d=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var e=0,f=b.length;e!==f;e++)for(var g=b[e],h=0;e>h;h++){var i=b[h];d.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c}},{"../collision/Broadphase":9,"../math/vec2":30,"../shapes/Circle":35,"../shapes/Particle":39,"../shapes/Plane":40,"../shapes/Shape":42}],12:[function(a,b){function c(){this.contactEquations=[],this.frictionEquations=[],this.enableFriction=!0,this.slipForce=10,this.frictionCoefficient=.3,this.surfaceVelocity=0,this.reuseObjects=!0,this.reusableContactEquations=[],this.reusableFrictionEquations=[],this.restitution=0,this.stiffness=l.DEFAULT_STIFFNESS,this.relaxation=l.DEFAULT_RELAXATION,this.frictionStiffness=l.DEFAULT_STIFFNESS,this.frictionRelaxation=l.DEFAULT_RELAXATION,this.collidingBodiesLastStep=new k +}function d(a,b){f.set(a.vertices[0],.5*-b.length,-b.radius),f.set(a.vertices[1],.5*b.length,-b.radius),f.set(a.vertices[2],.5*b.length,b.radius),f.set(a.vertices[3],.5*-b.length,b.radius)}function e(a,b,c,d){for(var e=R,i=S,j=T,k=U,l=a,m=b.vertices,n=null,o=0;o!==m.length+1;o++){var p=m[o%m.length],q=m[(o+1)%m.length];f.rotate(e,p,d),f.rotate(i,q,d),h(e,e,c),h(i,i,c),g(j,e,l),g(k,i,l);var r=f.crossLength(j,k);if(null===n&&(n=r),0>=r*n)return!1;n=r}return!0}var f=a("../math/vec2"),g=f.sub,h=f.add,i=f.dot,j=a("../utils/Utils"),k=a("../utils/TupleDictionary"),l=a("../equations/Equation"),m=a("../equations/ContactEquation"),n=a("../equations/FrictionEquation"),o=a("../shapes/Circle"),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Rectangle"));b.exports=c;var s=f.fromValues(0,1),t=f.fromValues(0,0),u=f.fromValues(0,0),v=f.fromValues(0,0),w=f.fromValues(0,0),x=f.fromValues(0,0),y=f.fromValues(0,0),z=f.fromValues(0,0),A=f.fromValues(0,0),B=f.fromValues(0,0),C=f.fromValues(0,0),D=f.fromValues(0,0),E=f.fromValues(0,0),F=f.fromValues(0,0),G=f.fromValues(0,0),H=f.fromValues(0,0),I=f.fromValues(0,0),J=f.fromValues(0,0),K=f.fromValues(0,0),L=[];c.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},c.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=0;a!==this.contactEquations.length;a++){var b=this.contactEquations[a],c=0|b.bodyA.id,d=0|b.bodyB.id;this.collidingBodiesLastStep.set(c,d,!0)}if(this.reuseObjects){var e=this.contactEquations,f=this.frictionEquations,g=this.reusableFrictionEquations,h=this.reusableContactEquations;j.appendArray(h,e),j.appendArray(g,f)}this.contactEquations.length=this.frictionEquations.length=0},c.prototype.createContactEquation=function(a,b,c,d){var e=this.reusableContactEquations.length?this.reusableContactEquations.pop():new m(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.restitution=this.restitution,e.firstImpact=!this.collidedLastStep(a,b),e.stiffness=this.stiffness,e.relaxation=this.relaxation,e.needsUpdate=!0,e.enabled=!0,e},c.prototype.createFrictionEquation=function(a,b,c,d){var e=this.reusableFrictionEquations.length?this.reusableFrictionEquations.pop():new n(a,b);return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.setSlipForce(this.slipForce),e.frictionCoefficient=this.frictionCoefficient,e.relativeVelocity=this.surfaceVelocity,e.enabled=!0,e.needsUpdate=!0,e.stiffness=this.frictionStiffness,e.relaxation=this.frictionRelaxation,e},c.prototype.createFrictionFromContact=function(a){var b=this.createFrictionEquation(a.bodyA,a.bodyB,a.shapeA,a.shapeB);return f.copy(b.contactPointA,a.contactPointA),f.copy(b.contactPointB,a.contactPointB),f.rotate90cw(b.t,a.normalA),b.contactEquation=a,b},c.prototype[q.LINE|q.CONVEX]=c.prototype.convexLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.LINE|q.RECTANGLE]=c.prototype.lineRectangle=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var M=new r(1,1),N=f.create();c.prototype[q.CAPSULE|q.CONVEX]=c.prototype[q.CAPSULE|q.RECTANGLE]=c.prototype.convexCapsule=function(a,b,c,e,g,h,i,j,k){var l=N;f.set(l,h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var m=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);f.set(l,-h.length/2,0),f.rotate(l,l,j),f.add(l,l,i);var n=this.circleConvex(g,h,l,j,a,b,c,e,k,h.radius);if(k&&(m||n))return!0;var o=M;d(o,h);var p=this.convexConvex(a,b,c,e,g,o,i,j,k);return p+m+n},c.prototype[q.CAPSULE|q.LINE]=c.prototype.lineCapsule=function(a,b,c,d,e,f,g,h,i){return i?!1:0};var O=f.create(),P=f.create(),Q=new r(1,1);c.prototype[q.CAPSULE|q.CAPSULE]=c.prototype.capsuleCapsule=function(a,b,c,e,g,h,i,j,k){for(var l=O,m=P,n=0,o=0;2>o;o++){f.set(l,(0==o?-1:1)*b.length/2,0),f.rotate(l,l,e),f.add(l,l,c);for(var p=0;2>p;p++){f.set(m,(0==p?-1:1)*h.length/2,0),f.rotate(m,m,j),f.add(m,m,i);var q=this.circleCircle(a,b,l,e,g,h,m,j,k,b.radius,h.radius);if(k&&q)return!0;n+=q}}var r=Q;d(r,b);var s=this.convexCapsule(a,r,c,e,g,h,i,j,k);if(k&&s)return!0;n+=s,d(r,h);var t=this.convexCapsule(g,r,i,j,a,b,c,e,k);return k&&t?!0:n+=t},c.prototype[q.LINE|q.LINE]=c.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[q.PLANE|q.LINE]=c.prototype.planeLine=function(a,b,c,d,e,j,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L;numContacts=0,f.set(n,-j.length/2,0),f.set(o,j.length/2,0),f.rotate(p,n,l),f.rotate(q,o,l),h(p,p,k),h(q,q,k),f.copy(n,p),f.copy(o,q),g(r,o,n),f.normalize(C,r),f.rotate90cw(F,C),f.rotate(E,s,d),G[0]=n,G[1]=o;for(var H=0;HJ){if(m)return!0;var K=this.createContactEquation(a,e,b,j);numContacts++,f.copy(K.normalA,E),f.normalize(K.normalA,K.normalA),f.scale(D,E,J),g(K.contactPointA,I,D),g(K.contactPointA,K.contactPointA,a.position),g(K.contactPointB,I,k),h(K.contactPointB,K.contactPointB,k),g(K.contactPointB,K.contactPointB,e.position),this.contactEquations.push(K),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(K))}}return numContacts},c.prototype[q.PARTICLE|q.CAPSULE]=c.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},c.prototype[q.CIRCLE|q.LINE]=c.prototype.circleLine=function(a,b,c,d,e,j,k,l,m,n,o){var p=j,q=l,r=e,s=k,H=c,I=a,J=b,n=n||0,o="undefined"!=typeof o?o:J.radius,K=t,M=u,N=v,O=w,P=x,Q=y,R=z,S=A,T=B,U=C,V=D,W=E,X=F,Y=G,Z=L;f.set(S,-p.length/2,0),f.set(T,p.length/2,0),f.rotate(U,S,q),f.rotate(V,T,q),h(U,U,s),h(V,V,s),f.copy(S,U),f.copy(T,V),g(Q,T,S),f.normalize(R,Q),f.rotate90cw(P,R),g(W,H,S);var $=i(W,P);if(g(O,S,s),g(X,H,s),Math.abs($)ab&&bb>_){if(m)return!0;var cb=this.createContactEquation(I,r,b,j);return f.scale(cb.normalA,K,-1),f.normalize(cb.normalA,cb.normalA),f.scale(cb.contactPointA,cb.normalA,o),h(cb.contactPointA,cb.contactPointA,H),g(cb.contactPointA,cb.contactPointA,I.position),g(cb.contactPointB,N,s),h(cb.contactPointB,cb.contactPointB,s),g(cb.contactPointB,cb.contactPointB,r.position),this.contactEquations.push(cb),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(cb)),1}}Z[0]=S,Z[1]=T;for(var db=0;dbW&&(f.copy(Q,O),S=W,f.scale(N,K,W),f.add(N,N,O),R=!0)}}if(R){if(m)return!0;var X=this.createContactEquation(y,q,b,j);return f.sub(X.normalA,Q,s),f.normalize(X.normalA,X.normalA),f.scale(X.contactPointA,X.normalA,n),h(X.contactPointA,X.contactPointA,s),g(X.contactPointA,X.contactPointA,y.position),g(X.contactPointB,N,r),h(X.contactPointB,X.contactPointB,r),g(X.contactPointB,X.contactPointB,q.position),this.contactEquations.push(X),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(X)),1}if(n>0)for(var T=0;TW&&(Q=W,f.scale(N,H,W),f.add(N,N,s),f.copy(P,H),R=!0)}if(R){var X=this.createContactEquation(A,q,b,k);return f.scale(X.normalA,P,-1),f.normalize(X.normalA,X.normalA),f.set(X.contactPointA,0,0),h(X.contactPointA,X.contactPointA,s),g(X.contactPointA,X.contactPointA,A.position),g(X.contactPointB,N,r),h(X.contactPointB,X.contactPointB,r),g(X.contactPointB,X.contactPointB,q.position),this.contactEquations.push(X),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(X)),1}return 0},c.prototype[q.CIRCLE]=c.prototype.circleCircle=function(a,b,c,d,e,i,j,k,l,m,n){var o=a,p=b,q=c,r=e,s=i,u=j,v=t,m=m||p.radius,n=n||s.radius;g(v,c,j);var w=m+n;if(f.squaredLength(v)>w*w)return 0;if(l)return!0;var x=this.createContactEquation(o,r,b,i);return g(x.normalA,u,q),f.normalize(x.normalA,x.normalA),f.scale(x.contactPointA,x.normalA,m),f.scale(x.contactPointB,x.normalA,-n),h(x.contactPointA,x.contactPointA,q),g(x.contactPointA,x.contactPointA,o.position),h(x.contactPointB,x.contactPointB,u),g(x.contactPointB,x.contactPointB,r.position),this.contactEquations.push(x),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x)),1},c.prototype[q.PLANE|q.CONVEX]=c.prototype[q.PLANE|q.RECTANGLE]=c.prototype.planeConvex=function(a,b,d,e,j,k,l,m,n){var o=j,p=l,q=k,r=m,w=a,x=b,y=d,z=e,A=t,B=u,C=v,D=0;f.rotate(B,s,z);for(var E=0;E0)return 0;if(l)return!0;var x=this.createContactEquation(o,m,h,b);return f.copy(x.normalA,v),f.scale(r,x.normalA,w),g(x.contactPointA,n,r),g(x.contactPointA,x.contactPointA,o.position),g(x.contactPointB,n,m.position),this.contactEquations.push(x),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x)),1},c.prototype[q.CIRCLE|q.PARTICLE]=c.prototype.circleParticle=function(a,b,c,d,e,i,j,k,l){var m=a,n=b,o=c,p=e,q=j,r=t;if(g(r,q,o),f.squaredLength(r)>n.radius*n.radius)return 0;if(l)return!0;var s=this.createContactEquation(m,p,b,i);return f.copy(s.normalA,r),f.normalize(s.normalA,s.normalA),f.scale(s.contactPointA,s.normalA,n.radius),h(s.contactPointA,s.contactPointA,o),g(s.contactPointA,s.contactPointA,m.position),g(s.contactPointB,q,p.position),this.contactEquations.push(s),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(s)),1};{var V=new o(1),W=f.create(),X=f.create();f.create()}c.prototype[q.PLANE|q.CAPSULE]=c.prototype.planeCapsule=function(a,b,c,d,e,g,i,j,k){var l=W,m=X,n=V;f.set(l,-g.length/2,0),f.rotate(l,l,j),h(l,l,i),f.set(m,g.length/2,0),f.rotate(m,m,j),h(m,m,i),n.radius=g.radius;var o=this.circlePlane(e,n,l,0,a,b,c,d,k),p=this.circlePlane(e,n,m,0,a,b,c,d,k);return k?o||p:o+p},c.prototype.capsulePlane=function(a,b,c,d,e,f,g,h,i){return console.warn("Narrowphase.prototype.capsulePlane() is deprecated. Use .planeCapsule() instead!"),this.planeCapsule(e,f,g,h,a,b,c,d,i)},c.prototype[q.CIRCLE|q.PLANE]=c.prototype.circlePlane=function(a,b,c,d,e,j,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;g(x,p,r),f.rotate(y,s,w);var A=i(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,j,b);return f.copy(B.normalA,y),f.scale(B.contactPointB,B.normalA,-o.radius),h(B.contactPointB,B.contactPointB,p),g(B.contactPointB,B.contactPointB,n.position),f.scale(z,B.normalA,A),g(B.contactPointA,x,z),h(B.contactPointA,B.contactPointA,r),g(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},c.convexPrecision=1e-7,c.prototype[q.CONVEX]=c.prototype[q.CONVEX|q.RECTANGLE]=c.prototype[q.RECTANGLE]=c.prototype.convexConvex=function(a,b,d,e,j,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o=o||c.convexPrecision,G=c.findSeparatingAxis(b,d,e,k,l,m,p);if(!G)return 0;g(D,l,d),i(p,D)>0&&f.scale(p,p,-1);var H=c.getClosestEdge(b,e,p,!0),I=c.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=d,P=l,Q=e,R=m,S=a,T=j;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];f.rotate(q,W,R),h(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(E,y),f.normalize(E,E),g(D,q,r);var _=i(E,D);o>=_&&X++}if(X>=3){if(n)return!0;var ab=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(s,$,Q),h(r,r,O),h(s,s,O),g(y,s,r),f.rotate90cw(ab.normalA,y),f.normalize(ab.normalA,ab.normalA),g(D,q,r);var _=i(ab.normalA,D);f.scale(C,ab.normalA,_),g(ab.contactPointA,q,O),g(ab.contactPointA,ab.contactPointA,C),h(ab.contactPointA,ab.contactPointA,O),g(ab.contactPointA,ab.contactPointA,S.position),g(ab.contactPointB,q,P),h(ab.contactPointB,ab.contactPointB,P),g(ab.contactPointB,ab.contactPointB,T.position),this.contactEquations.push(ab),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(ab))}}}return F};var Y=f.fromValues(0,0);c.projectConvexOntoAxis=function(a,b,c,d,e){var g,h,j=null,k=null,l=Y;f.rotate(l,d,-c);for(var m=0;mj)&&(j=h),(null===k||k>h)&&(k=h);if(k>j){var n=k;k=j,j=n}var o=i(b,d);f.set(e,k+o,j+o)};var Z=f.fromValues(0,0),$=f.fromValues(0,0),_=f.fromValues(0,0),ab=f.fromValues(0,0),bb=f.fromValues(0,0),cb=f.fromValues(0,0);c.findSeparatingAxis=function(a,b,d,e,h,i,j){for(var k=null,l=!1,m=!1,n=Z,o=$,p=_,q=ab,r=bb,s=cb,t=0;2!==t;t++){var u=a,v=d;1===t&&(u=e,v=i);for(var w=0;w!==u.vertices.length;w++){f.rotate(o,u.vertices[w],v),f.rotate(p,u.vertices[(w+1)%u.vertices.length],v),g(n,p,o),f.rotate90cw(q,n),f.normalize(q,q),c.projectConvexOntoAxis(a,b,d,q,r),c.projectConvexOntoAxis(e,h,i,q,s);var x=r,y=s,z=!1;r[0]>s[0]&&(y=r,x=s,z=!0);var A=y[0]-x[1];l=A<=c.convexPrecision,(null===k||A>k)&&(f.copy(j,q),k=A,m=l)}}return m};var db=f.fromValues(0,0),eb=f.fromValues(0,0),fb=f.fromValues(0,0);c.getClosestEdge=function(a,b,c,d){var e=db,h=eb,j=fb;f.rotate(e,c,-b),d&&f.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=0;m!==l;m++){g(h,a.vertices[(m+1)%l],a.vertices[m%l]),f.rotate90cw(j,h),f.normalize(j,j);var n=i(j,e);(-1==k||n>maxDot)&&(k=m%l,maxDot=n)}return k};var gb=f.create(),hb=f.create(),ib=f.create(),jb=f.create(),kb=f.create(),lb=f.create(),mb=f.create();c.prototype[q.CIRCLE|q.HEIGHTFIELD]=c.prototype.circleHeightfield=function(a,b,c,d,e,i,j,k,l,m){var n=i.data,m=m||b.radius,o=i.elementWidth,p=hb,q=gb,r=kb,s=mb,t=lb,u=ib,v=jb,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;c[1]+mA;A++){f.set(u,A*o,n[A]),f.set(v,(A+1)*o,n[A+1]),f.add(u,u,j),f.add(v,v,j),f.sub(t,v,u),f.rotate(t,t,Math.PI/2),f.normalize(t,t),f.scale(q,t,-m),f.add(q,q,c),f.sub(p,q,u);var C=f.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,f.scale(p,t,-C),f.add(r,q,p),f.copy(s,t);var D=this.createContactEquation(e,a,i,b);f.copy(D.normalA,s),f.scale(D.contactPointB,D.normalA,-m),h(D.contactPointB,D.contactPointB,c),g(D.contactPointB,D.contactPointB,a.position),f.copy(D.contactPointA,r),f.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(f.set(u,A*o,n[A]),f.add(u,u,j),f.sub(p,c,u),f.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){f.set(m,u*l,k[u]),f.set(n,(u+1)*l,k[u+1]),f.add(m,m,h),f.add(n,n,h);var w=100;f.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),f.sub(p.vertices[0],n,o),f.sub(p.vertices[1],m,o),f.copy(p.vertices[2],p.vertices[1]),f.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../shapes/Circle":35,"../shapes/Convex":36,"../shapes/Rectangle":41,"../shapes/Shape":42,"../utils/TupleDictionary":46,"../utils/Utils":47}],13:[function(a,b){function c(){e.call(this,e.SAP),this.axisList=[],this.world=null,this.axisIndex=0;var a=this.axisList;this._addBodyHandler=function(b){a.push(b.body)},this._removeBodyHandler=function(b){var c=a.indexOf(b.body);-1!==c&&a.splice(c,1)}}var d=a("../utils/Utils"),e=a("../collision/Broadphase");b.exports=c,c.prototype=new e,c.prototype.setWorld=function(a){this.axisList.length=0,d.appendArray(this.axisList,a.bodies),a.off("addBody",this._addBodyHandler).off("removeBody",this._removeBodyHandler),a.on("addBody",this._addBodyHandler).on("removeBody",this._removeBodyHandler),this.world=a},c.sortAxisList=function(a,b){b=0|b;for(var c=1,d=a.length;d>c;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},c.prototype.getCollisionPairs=function(){var a=this.axisList,b=this.result,d=this.axisIndex;b.length=0;for(var f=a.length;f--;){var g=a[f];g.aabbNeedsUpdate&&g.updateAABB()}c.sortAxisList(a,d);for(var h=0,i=0|a.length;h!==i;h++)for(var j=a[h],k=h+1;i>k;k++){var l=a[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;e.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&b.push(j,l)}return b}},{"../collision/Broadphase":9,"../utils/Utils":47}],14:[function(a,b){function c(a,b,c,e){this.type=c,e=d.defaults(e,{collideConnected:!0,wakeUpBodies:!0}),this.equations=[],this.bodyA=a,this.bodyB=b,this.collideConnected=e.collideConnected,e.wakeUpBodies&&(a&&a.wakeUp(),b&&b.wakeUp())}b.exports=c;var d=a("../utils/Utils");c.prototype.update=function(){throw new Error("method update() not implmemented in this Constraint subclass!")},c.DISTANCE=1,c.GEAR=2,c.LOCK=3,c.PRISMATIC=4,c.REVOLUTE=5,c.prototype.setStiffness=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.stiffness=a,d.needsUpdate=!0}},c.prototype.setRelaxation=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.relaxation=a,d.needsUpdate=!0}}},{"../utils/Utils":47}],15:[function(a,b){function c(a,b,c,g){g=g||{},d.call(this,a,b,d.DISTANCE,g),this.distance=c,this.localAnchorA=f.create(),this.localAnchorB=f.create();var h,i=this.localAnchorA,j=this.localAnchorB;h="undefined"==typeof g.maxForce?Number.MAX_VALUE:g.maxForce;var k=new e(a,b,-h,h);this.equations=[k];var l=f.create(),m=f.create(),n=f.create(),o=this;k.computeGq=function(){{var a=this.bodyA,b=this.bodyB,c=a.position;b.position}return f.rotate(m,i,a.angle),f.rotate(n,j,b.angle),f.add(l,c,n),f.sub(l,l,m),f.sub(l,l,c),f.sub(l,b.position,a.position),f.length(l)-o.distance},this.setMaxForce(h)}var d=a("./Constraint"),e=a("../equations/Equation"),f=a("../math/vec2");b.exports=c,c.prototype=new d;var g=f.create(),h=f.create(),i=f.create();c.prototype.update=function(){var a=this.equations[0],b=this.bodyA,c=this.bodyB,d=(this.distance,b.position,c.position,a.G);f.rotate(h,this.localAnchorA,b.angle),f.rotate(i,this.localAnchorB,c.angle);f.crossLength(h,g),f.crossLength(i,g);f.sub(g,c.position,b.position),f.normalize(g,g),d[0]=-g[0],d[1]=-g[1],d[3]=g[0],d[4]=g[1]},c.prototype.setMaxForce=function(a){var b=this.equations[0];b.minForce=-a,b.maxForce=a},c.prototype.getMaxForce=function(){var a=this.equations[0];return a.maxForce}},{"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],16:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.GEAR,c),this.equations=[new e(a,b,c)],this.angle="number"==typeof c.angle?c.angle:0,this.ratio="number"==typeof c.ratio?c.ratio:1,"number"==typeof c.maxTorque&&this.setMaxTorque(c.maxTorque)}{var d=a("./Constraint"),e=(a("../equations/Equation"),a("../equations/AngleLockEquation"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.update=function(){var a=this.equations[0];a.ratio!==this.ratio&&a.setRatio(this.ratio),a.angle=this.angle},c.prototype.setMaxTorque=function(a){this.equations[0].setMaxTorque(a)},c.prototype.getMaxTorque=function(){return this.equations[0].maxForce}},{"../equations/AngleLockEquation":20,"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],17:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.LOCK,c);var g="undefined"==typeof c.maxForce?Number.MAX_VALUE:c.maxForce,h=c.localOffsetB||e.fromValues(0,0);h=e.fromValues(h[0],h[1]);var i=c.localAngleB||0,j=new f(a,b,-g,g),k=new f(a,b,-g,g),l=new f(a,b,-g,g),m=e.create(),n=e.create(),o=this;j.computeGq=function(){return e.rotate(m,o.localOffsetB,a.angle),e.sub(n,b.position,a.position),e.sub(n,n,m),n[0]},k.computeGq=function(){return e.rotate(m,o.localOffsetB,a.angle),e.sub(n,b.position,a.position),e.sub(n,n,m),n[1]};var p=e.create(),q=e.create();l.computeGq=function(){return e.rotate(p,o.localOffsetB,b.angle-o.localAngleB),e.scale(p,p,-1),e.sub(n,a.position,b.position),e.add(n,n,p),e.rotate(q,p,-Math.PI/2),e.normalize(q,q),e.dot(n,q)},this.localOffsetB=h,this.localAngleB=i,this.equations.push(j,k,l),this.setMaxForce(g)}var d=a("./Constraint"),e=a("../math/vec2"),f=a("../equations/Equation");b.exports=c,c.prototype=new d,c.prototype.setMaxForce=function(a){for(var b=this.equations,c=0;cc)g.scale(e.normalA,i,-1),g.sub(e.contactPointA,j,h.position),g.sub(e.contactPointB,k,o.position),g.scale(n,i,c),g.add(e.contactPointA,e.contactPointA,n),-1==a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!=u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)g.scale(f.normalA,i,1),g.sub(f.contactPointA,j,h.position),g.sub(f.contactPointB,k,o.position),g.scale(n,i,d),g.sub(f.contactPointB,f.contactPointB,n),-1==a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!=u&&a.splice(u,1)}},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(a,b){function c(a,b,c,n,o){o=o||{},d.call(this,a,c,d.REVOLUTE,o);var p=this.maxForce="undefined"!=typeof o.maxForce?o.maxForce:Number.MAX_VALUE;this.pivotA=h.fromValues(b[0],b[1]),this.pivotB=h.fromValues(n[0],n[1]);var q=this.equations=[new e(a,c,-p,p),new e(a,c,-p,p)],r=q[0],s=q[1],t=this;r.computeGq=function(){return h.rotate(i,t.pivotA,a.angle),h.rotate(j,t.pivotB,c.angle),h.add(m,c.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,k)},s.computeGq=function(){return h.rotate(i,t.pivotA,a.angle),h.rotate(j,t.pivotB,c.angle),h.add(m,c.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,l)},s.minForce=r.minForce=-p,s.maxForce=r.maxForce=p,this.motorEquation=new f(a,c),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new g(a,c),this.lowerLimitEquation=new g(a,c),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var d=a("./Constraint"),e=a("../equations/Equation"),f=a("../equations/RotationalVelocityEquation"),g=a("../equations/RotationalLockEquation"),h=a("../math/vec2");b.exports=c;var i=h.create(),j=h.create(),k=h.fromValues(1,0),l=h.fromValues(0,1),m=h.create();c.prototype=new d,c.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],m=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>m)o.angle=m,-1==e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!=r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1==e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!=r&&e.splice(r,1)}h.rotate(i,c,a.angle),h.rotate(j,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-h.crossLength(i,k),f.G[3]=1,f.G[4]=0,f.G[5]=h.crossLength(j,k),g.G[0]=0,g.G[1]=-1,g.G[2]=-h.crossLength(i,l),g.G[3]=0,g.G[4]=1,g.G[5]=h.crossLength(j,l)},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.motorIsEnabled=function(){return!!this.motorEnabled},c.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},c.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},c.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},c.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":30,"./Equation":22}],21:[function(a,b){function c(a,b){d.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=e.create(),this.penetrationVec=e.create(),this.contactPointB=e.create(),this.normalA=e.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null +}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.bodyA,f=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=f.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=e.crossLength(g,l),o=e.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,e.add(k,j,h),e.sub(k,k,i),e.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=e.dot(l,k),p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":30,"./Equation":22}],22:[function(a,b){function c(a,b,d,e){this.minForce="undefined"==typeof d?-Number.MAX_VALUE:d,this.maxForce="undefined"==typeof e?Number.MAX_VALUE:e,this.bodyA=a,this.bodyB=b,this.stiffness=c.DEFAULT_STIFFNESS,this.relaxation=c.DEFAULT_RELAXATION,this.G=new h.ARRAY_TYPE(6);for(var f=0;6>f;f++)this.G[f]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}function d(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e}function e(a){return a.sleepState===i.SLEEPING?0:a.invMass}function f(a){return a.sleepState===i.SLEEPING?0:a.invInertia}b.exports=c;var g=a("../math/vec2"),h=a("../utils/Utils"),i=a("../objects/Body");c.prototype.constructor=c,c.DEFAULT_STIFFNESS=1e6,c.DEFAULT_RELAXATION=4,c.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},c.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var j=g.create(),k=g.create();c.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,e=(b.position,c.position,b.angle),f=c.angle;return d(a,j,e,k,f)+this.offset},c.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,e=b.velocity,f=c.velocity,g=b.angularVelocity,h=c.angularVelocity;return d(a,e,g,f,h)+this.relativeVelocity},c.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,e=b.vlambda,f=c.vlambda,g=b.wlambda,h=c.wlambda;return d(a,e,g,f,h)};var l=g.create(),m=g.create();c.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,h=a.angularForce,i=b.force,j=b.angularForce,k=e(a),n=e(b),o=f(a),p=f(b),q=this.G;return g.scale(l,c,k),g.scale(m,i,n),d(q,l,h*o,m,j*p)},c.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=e(a),d=e(b),g=f(a),h=f(b),i=this.G;return i[0]*i[0]*c+i[1]*i[1]*c+i[2]*i[2]*g+i[3]*i[3]*d+i[4]*i[4]*d+i[5]*i[5]*h};{var n=g.create(),o=g.create(),p=g.create();g.create(),g.create(),g.create()}c.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,d=n,h=o,i=p,j=e(b),k=e(c),l=f(b),m=f(c),q=this.G;h[0]=q[0],h[1]=q[1],i[0]=q[3],i[1]=q[4],g.scale(d,h,j*a),g.add(b.vlambda,b.vlambda,d),b.wlambda+=l*q[2]*a,g.scale(d,i,k*a),g.add(c.vlambda,c.vlambda,d),c.wlambda+=m*q[5]*a},c.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":47}],23:[function(a,b){function c(a,b,c){e.call(this,a,b,-c,c),this.contactPointA=d.create(),this.contactPointB=d.create(),this.t=d.create(),this.contactEquation=null,this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}{var d=a("../math/vec2"),e=a("./Equation");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},c.prototype.getSlipForce=function(){return this.maxForce},c.prototype.computeB=function(a,b,c){var e=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-d.crossLength(e,g),h[3]=g[0],h[4]=g[1],h[5]=d.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":30,"../utils/Utils":47,"./Equation":22}],24:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var e=this.G;e[2]=1,e[5]=-1}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c;var f=e.create(),g=e.create(),h=e.fromValues(1,0),i=e.fromValues(0,1);c.prototype.computeGq=function(){return e.rotate(f,h,this.bodyA.angle+this.angle),e.rotate(g,i,this.bodyB.angle),e.dot(f,g)}},{"../math/vec2":30,"./Equation":22}],25:[function(a,b){function c(a,b){d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":30,"./Equation":22}],26:[function(a,b){var c=function(){};b.exports=c,c.prototype={constructor:c,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{}],27:[function(a,b){function c(a,b,f){if(f=f||{},!(a instanceof d&&b instanceof d))throw new Error("First two arguments must be Material instances.");this.id=c.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof f.friction?Number(f.friction):.3,this.restitution="undefined"!=typeof f.restitution?Number(f.restitution):0,this.stiffness="undefined"!=typeof f.stiffness?Number(f.stiffness):e.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof f.relaxation?Number(f.relaxation):e.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof f.frictionStiffness?Number(f.frictionStiffness):e.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof f.frictionRelaxation?Number(f.frictionRelaxation):e.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof f.surfaceVelocity?Number(f.surfaceVelocity):0}var d=a("./Material"),e=a("../equations/Equation");b.exports=c,c.idCounter=0},{"../equations/Equation":22,"./Material":28}],28:[function(a,b){function c(){this.id=c.idCounter++}b.exports=c,c.idCounter=0},{}],29:[function(a,b){var c={};c.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},c.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var d=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(c._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&c._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return d.push(e[0],e[1],e[2]),d},c._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},c._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=c},{}],30:[function(a,b){var c=a("../../build/vec2").vec2;c.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},c.crossVZ=function(a,b,d){return c.rotate(a,b,-Math.PI/2),c.scale(a,a,d),a},c.crossZV=function(a,b,d){return c.rotate(a,d,Math.PI/2),c.scale(a,a,b),a},c.rotate=function(a,b,c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g},c.rotate90cw=function(a,b){a[0]=b[1],a[1]=-b[0]},c.toLocalFrame=function(a,b,d,e){c.copy(a,b),c.sub(a,a,d),c.rotate(a,a,-e)},c.toGlobalFrame=function(a,b,d,e){c.copy(a,b),c.rotate(a,a,e),c.add(a,a,d)},c.centroid=function(a,b,d,e){return c.add(a,b,d),c.add(a,a,e),c.scale(a,a,1/3),a},b.exports=c},{"../../build/vec2":1}],31:[function(a,b){function c(a){a=a||{},h.call(this),this.id=++c._idCounter,this.world=null,this.shapes=[],this.shapeOffsets=[],this.shapeAngles=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.fixedRotation=!!a.fixedRotation||!1,this.position=d.fromValues(0,0),a.position&&d.copy(this.position,a.position),this.interpolatedPosition=d.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=d.fromValues(0,0),this.previousAngle=0,this.velocity=d.fromValues(0,0),a.velocity&&d.copy(this.velocity,a.velocity),this.vlambda=d.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=d.create(),a.force&&d.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.motionState=0===this.mass?c.STATIC:c.DYNAMIC,this.boundingRadius=0,this.aabb=new g,this.aabbNeedsUpdate=!0,this.allowSleep=!0,this.wantsToSleep=!1,this.sleepState=c.AWAKE,this.sleepSpeedLimit=.2,this.sleepTimeLimit=1,this.gravityScale=1,this.timeLastSleepy=0,this.concavePath=null,this.lastDampingScale=1,this.lastAngularDampingScale=1,this.lastDampingTimeStep=-1,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var d=a("../math/vec2"),e=a("poly-decomp"),f=a("../shapes/Convex"),g=a("../collision/AABB"),h=a("../events/EventEmitter");b.exports=c,c.prototype=new h,c._idCounter=0,c.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},c.prototype.getArea=function(){for(var a=0,b=0;be&&(e=h+i)}this.boundingRadius=e},c.prototype.addShape=function(a,b,c){c=c||0,b=b?d.fromValues(b[0],b[1]):d.fromValues(0,0),this.shapes.push(a),this.shapeOffsets.push(b),this.shapeAngles.push(c),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},c.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.shapeOffsets.splice(b,1),this.shapeAngles.splice(b,1),this.aabbNeedsUpdate=!0,!0):!1},c.prototype.updateMassProperties=function(){if(this.motionState===c.STATIC||this.motionState===c.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,e=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=a[g],i=d.squaredLength(this.shapeOffsets[g]),j=h.computeMomentOfInertia(e);f+=j+e*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass}};var k=d.create();c.prototype.applyForce=function(a,b){var c=k;d.sub(c,b,this.position),d.add(this.force,this.force,a);var e=d.crossLength(c,a);this.angularForce+=e},c.prototype.toLocalFrame=function(a,b){d.toLocalFrame(a,b,this.position,this.angle)},c.prototype.toWorldFrame=function(a,b){d.toGlobalFrame(a,b,this.position,this.angle)},c.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var g=new e.Polygon;if(g.vertices=a,g.makeCCW(),"number"==typeof b.removeCollinearPoints&&g.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!g.isSimple())return!1;this.concavePath=g.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=c.AWAKE):(this.idleTime+=e,this.sleepState=c.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},c.prototype.getVelocityFromPosition=function(a,b){return a=a||d.create(),d.sub(a,this.position,this.previousPosition),d.scale(a,a,1/b),a},c.prototype.getAngularVelocityFromPosition=function(a){return(this.angle-this.previousAngle)/a},c.sleepyEvent={type:"sleepy"},c.sleepEvent={type:"sleep"},c.wakeUpEvent={type:"wakeup"},c.DYNAMIC=1,c.STATIC=2,c.KINEMATIC=4,c.AWAKE=0,c.SLEEPY=1,c.SLEEPING=2},{"../collision/AABB":8,"../events/EventEmitter":26,"../math/vec2":30,"../shapes/Convex":36,"poly-decomp":6}],32:[function(a,b){function c(a,b,c){c=e.defaults(c,{restLength:1,stiffness:100,damping:1,localAnchorA:[0,0],localAnchorB:[0,0]}),this.restLength=c.restLength,this.stiffness=c.stiffness,this.damping=c.damping,this.bodyA=a,this.bodyB=b,this.localAnchorA=d.create(),d.copy(this.localAnchorA,c.localAnchorA),this.localAnchorB=d.create(),d.copy(this.localAnchorB,c.localAnchorB),c.worldAnchorA&&this.setWorldAnchorA(c.worldAnchorA),c.worldAnchorB&&this.setWorldAnchorB(c.worldAnchorB)}var d=a("../math/vec2"),e=a("../utils/Utils");b.exports=c,c.prototype.setWorldAnchorA=function(a){this.bodyA.toLocalFrame(this.localAnchorA,a)},c.prototype.setWorldAnchorB=function(a){this.bodyB.toLocalFrame(this.localAnchorB,a)},c.prototype.getWorldAnchorA=function(a){this.bodyA.toWorldFrame(a,this.localAnchorA)},c.prototype.getWorldAnchorB=function(a){this.bodyB.toWorldFrame(a,this.localAnchorB)};var f=d.create(),g=d.create(),h=d.create(),i=d.create(),j=d.create(),k=d.create(),l=d.create(),m=d.create(),n=d.create();c.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restLength,e=this.bodyA,o=this.bodyB,p=f,q=g,r=h,s=i,t=n,u=j,v=k,w=l,x=m;this.getWorldAnchorA(u),this.getWorldAnchorB(v),d.sub(w,u,e.position),d.sub(x,v,o.position),d.sub(p,v,u);var y=d.len(p);d.normalize(q,p),d.sub(r,o.velocity,e.velocity),d.crossZV(t,o.angularVelocity,x),d.add(r,r,t),d.crossZV(t,e.angularVelocity,w),d.sub(r,r,t),d.scale(s,q,-a*(y-c)-b*d.dot(r,q)),d.sub(e.force,e.force,s),d.add(o.force,o.force,s);var z=d.crossLength(w,s),A=d.crossLength(x,s);e.angularForce-=z,o.angularForce+=A}},{"../math/vec2":30,"../utils/Utils":47}],33:[function(a,b){b.exports={AABB:a("./collision/AABB"),AngleLockEquation:a("./equations/AngleLockEquation"),Body:a("./objects/Body"),Broadphase:a("./collision/Broadphase"),Capsule:a("./shapes/Capsule"),Circle:a("./shapes/Circle"),Constraint:a("./constraints/Constraint"),ContactEquation:a("./equations/ContactEquation"),ContactMaterial:a("./material/ContactMaterial"),Convex:a("./shapes/Convex"),DistanceConstraint:a("./constraints/DistanceConstraint"),Equation:a("./equations/Equation"),EventEmitter:a("./events/EventEmitter"),FrictionEquation:a("./equations/FrictionEquation"),GearConstraint:a("./constraints/GearConstraint"),GridBroadphase:a("./collision/GridBroadphase"),GSSolver:a("./solver/GSSolver"),Heightfield:a("./shapes/Heightfield"),Line:a("./shapes/Line"),LockConstraint:a("./constraints/LockConstraint"),Material:a("./material/Material"),Narrowphase:a("./collision/Narrowphase"),NaiveBroadphase:a("./collision/NaiveBroadphase"),Particle:a("./shapes/Particle"),Plane:a("./shapes/Plane"),RevoluteConstraint:a("./constraints/RevoluteConstraint"),PrismaticConstraint:a("./constraints/PrismaticConstraint"),Rectangle:a("./shapes/Rectangle"),RotationalVelocityEquation:a("./equations/RotationalVelocityEquation"),SAPBroadphase:a("./collision/SAPBroadphase"),Shape:a("./shapes/Shape"),Solver:a("./solver/Solver"),Spring:a("./objects/Spring"),Utils:a("./utils/Utils"),World:a("./world/World"),vec2:a("./math/vec2"),version:a("../package.json").version}},{"../package.json":7,"./collision/AABB":8,"./collision/Broadphase":9,"./collision/GridBroadphase":10,"./collision/NaiveBroadphase":11,"./collision/Narrowphase":12,"./collision/SAPBroadphase":13,"./constraints/Constraint":14,"./constraints/DistanceConstraint":15,"./constraints/GearConstraint":16,"./constraints/LockConstraint":17,"./constraints/PrismaticConstraint":18,"./constraints/RevoluteConstraint":19,"./equations/AngleLockEquation":20,"./equations/ContactEquation":21,"./equations/Equation":22,"./equations/FrictionEquation":23,"./equations/RotationalVelocityEquation":25,"./events/EventEmitter":26,"./material/ContactMaterial":27,"./material/Material":28,"./math/vec2":30,"./objects/Body":31,"./objects/Spring":32,"./shapes/Capsule":34,"./shapes/Circle":35,"./shapes/Convex":36,"./shapes/Heightfield":37,"./shapes/Line":38,"./shapes/Particle":39,"./shapes/Plane":40,"./shapes/Rectangle":41,"./shapes/Shape":42,"./solver/GSSolver":43,"./solver/Solver":44,"./utils/Utils":47,"./world/World":51}],34:[function(a,b){function c(a,b){this.length=a||1,this.radius=b||1,d.call(this,d.CAPSULE)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius,c=this.length+b,d=2*b;return a*(d*d+c*c)/12},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius+this.length/2},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius+2*this.radius*this.length};var f=e.create();c.prototype.computeAABB=function(a,b,c){var d=this.radius;e.set(f,this.length,0),e.rotate(f,f,c),e.set(a.upperBound,Math.max(f[0]+d,-f[0]+d),Math.max(f[1]+d,-f[1]+d)),e.set(a.lowerBound,Math.min(f[0]-d,-f[0]-d),Math.min(f[1]-d,-f[1]-d)),e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b)}},{"../math/vec2":30,"./Shape":42}],35:[function(a,b){function c(a){this.radius=a||1,d.call(this,d.CIRCLE)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},c.prototype.computeAABB=function(a,b){var c=this.radius;e.set(a.upperBound,c,c),e.set(a.lowerBound,-c,-c),b&&(e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b))}},{"../math/vec2":30,"./Shape":42}],36:[function(a,b){function c(a){this.vertices=[];for(var b=0;bg;f=g,g++){var h=this.vertices[f],i=this.vertices[g],j=Math.abs(e.crossLength(h,i)),k=e.dot(i,i)+e.dot(i,h)+e.dot(h,h);b+=j*k,c+=j}return a/6*(b/c)},c.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=e.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},c.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},c.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,d=0;d!==a.length;d++){var e=a[d],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=c.triangleArea(f,g,h);this.area+=i}},c.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c)}},{"../math/polyk":29,"../math/vec2":30,"./Shape":42,"poly-decomp":6}],37:[function(a,b){function c(a,b){if(b=e.defaults(b,{maxValue:null,minValue:null,elementWidth:.1}),null===b.minValue||null===b.maxValue){b.maxValue=a[0],b.minValue=a[0];for(var c=0;c!==a.length;c++){var f=a[c];f>b.maxValue&&(b.maxValue=f),f=v*v)break}for(c.updateMultipliers(k,q,1/a),w=0;w!==l;w++){var y=k[w];if(y instanceof h){var z=y.contactEquation.multiplier*y.frictionCoefficient;y.maxForce=z,y.minForce=-z}}}for(f=0;f!==i;f++){for(v=0,w=0;w!==l;w++){u=k[w];var x=c.iterateEquation(w,u,u.epsilon,s,r,q,p,a,f);v+=Math.abs(x)}if(this.usedIterations++,m>=v*v)break}for(t=0;t!==o;t++)n[t].addConstraintVelocity();c.updateMultipliers(k,q,1/a)}},c.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},c.iterateEquation=function(a,b,c,d,e,f,g,h){var i=d[a],j=e[a],k=f[a],l=b.computeGWlambda(),m=b.maxForce,n=b.minForce;g&&(i=0);var o=j*(i-l-c*k),p=k+o;return n*h>p?o=n*h-k:p>m*h&&(o=m*h-k),f[a]+=o,b.addToWlambda(o),o}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":47,"./Solver":44}],44:[function(a,b){function c(a,b){a=a||{},d.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var d=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=c,c.prototype=new d,c.prototype.solve=function(){throw new Error("Solver.solve should be implemented by subclasses!")};var e={bodies:[]};c.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),e.bodies.length=0,b.getBodies(e.bodies),e.bodies.length&&this.solve(a,e))},c.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},c.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},c.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},c.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},c.prototype.removeAllEquations=function(){this.equations.length=0},c.GS=1,c.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":47}],45:[function(a,b){function c(){this.overlappingLastState=new e,this.overlappingCurrentState=new e,this.recordPool=[],this.tmpDict=new e,this.tmpArray1=[]}function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}{var e=a("./TupleDictionary");a("./Utils")}b.exports=c,c.prototype.tick=function(){for(var a=this.overlappingLastState,b=this.overlappingCurrentState,c=b.keys.length;c--;){var d=b.keys[c];this.recordPool.push(b.getByKey(d))}a.reset(),a.copy(b),b.reset()},c.prototype.setOverlapping=function(a,b,c,e){var f=(this.overlappingLastState,this.overlappingCurrentState);if(!f.get(b.id,e.id)){var g;g=this.recordPool.length?this.recordPool.pop():new d(a,b,c,e),f.set(b.id,e.id,g)}},c.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingLastState,this.overlappingCurrentState,a)},c.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingCurrentState,this.overlappingLastState,a)},c.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},c.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id;return!this.overlappingLastState.get(c,d)&&!!this.overlappingCurrentState.get(c,d)},c.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.keys[d]; +b.push(e.bodyA,e.bodyB)}return c.reset(),b},d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{"./TupleDictionary":46,"./Utils":47}],46:[function(a,b){function c(){this.data=[],this.keys=[]}var d=a("./Utils");b.exports=c,c.prototype.getKey=function(a,b){return a=0|a,b=0|b,(0|a)===(0|b)?-1:0|((0|a)>(0|b)?a<<16|65535&b:b<<16|65535&a)},c.prototype.getByKey=function(a){return a=0|a,this.data[a]},c.prototype.get=function(a,b){a=0|a,b=0|b;var c=0|this.getKey(a,b);return this.data[c]},c.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");a=0|a,b=0|b;var d=0|this.getKey(a,b);return this.get(a,b)||this.keys.push(d),this.data[d]=c,d},c.prototype.reset=function(){for(var a=this.data,b=this.keys,c=0|b.length;c--;){var d=0|b[c];a[d]=void 0}b.length=0},c.prototype.copy=function(a){this.reset(),d.appendArray(this.keys,a.keys);for(var b=0|a.keys.length;b--;){var c=0|a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":47}],47:[function(a,b){function c(){}b.exports=c,c.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},c.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;e>d;d++)a[d]=a[d+c];a.length=e},c.ARRAY_TYPE=window.Float32Array||Array,c.extend=function(a,b){for(var c in b)a[c]=b[c]},c.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{}],48:[function(a,b){function c(){this.equations=[],this.bodies=[]}var d=a("../objects/Body");b.exports=c,c.prototype.reset=function(){this.equations.length=this.bodies.length=0};var e=[];c.prototype.getBodies=function(a){var b=a||[],c=this.equations;e.length=0;for(var d=0;d!==c.length;d++){var f=c[d];-1===e.indexOf(f.bodyA.id)&&(b.push(f.bodyA),e.push(f.bodyA.id)),-1===e.indexOf(f.bodyB.id)&&(b.push(f.bodyB),e.push(f.bodyB.id))}return b},c.prototype.wantsToSleep=function(){for(var a=0;a=0;v-=2)for(var B=z.length-2;B>=0;B-=2)(A[v]===z[B]&&A[v+1]===z[B+1]||A[v+1]===z[B]&&A[v]===z[B+1])&&z.splice(B,2);var C=p.length;for(v=0;v!==C;v++){var D=p[v];if(!D.collideConnected)for(var B=z.length-2;B>=0;B-=2)(D.bodyA===z[B]&&D.bodyB===z[B+1]||D.bodyB===z[B]&&D.bodyA===z[B+1])&&z.splice(B,2)}this.postBroadphaseEvent.pairs=z,this.emit(this.postBroadphaseEvent),o.reset(this);for(var v=0,E=z.length;v!==E;v+=2)for(var F=z[v],G=z[v+1],I=0,J=F.shapes.length;I!==J;I++)for(var K=F.shapes[I],M=F.shapeOffsets[I],N=F.shapeAngles[I],O=0,Q=G.shapes.length;O!==Q;O++){var R=G.shapes[O],S=G.shapeOffsets[O],T=G.shapeAngles[O],U=this.defaultContactMaterial;if(K.material&&R.material){var V=this.getContactMaterial(K.material,R.material);V&&(U=V)}this.runNarrowphase(o,F,K,M,N,G,R,S,T,U,this.frictionGravity)}for(var v=0;v!==m;v++){var W=i[v];W._wakeUpAfterNarrowphase&&(W.wakeUp(),W._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(P);for(var X=this.endContactEvent,O=P.length;O--;){var Y=P[O];X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.bodyA=Y.bodyA,X.bodyB=Y.bodyA,this.emit(X)}}this.overlapKeeper.tick();var Z=this.preSolveEvent;Z.contactEquations=o.contactEquations,Z.frictionEquations=o.frictionEquations,this.emit(Z);var C=p.length;for(v=0;v!==C;v++)p[v].update();if(o.contactEquations.length||o.frictionEquations.length||p.length)if(this.islandSplit){for(t.equations.length=0,H.appendArray(t.equations,o.contactEquations),H.appendArray(t.equations,o.frictionEquations),v=0;v!==C;v++)H.appendArray(t.equations,p[v].equations);t.split(this);for(var v=0;v!==t.islands.length;v++){var $=t.islands[v];$.equations.length&&l.solveIsland(a,$)}}else{for(l.addEquations(o.contactEquations),l.addEquations(o.frictionEquations),v=0;v!==C;v++)l.addEquations(p[v].equations);this.solveConstraints&&l.solve(a,this),l.removeAllEquations()}for(var v=0;v!==m;v++){var W=i[v];W.sleepState!==s.SLEEPING&&W.motionState!==s.STATIC&&c.integrateBody(W,a)}for(var v=0;v!==m;v++)i[v].setZeroForce();if(f&&(d=performance.now(),e.lastStepTime=d-b),this.emitImpactEvent&&this.has("impact"))for(var _=this.impactEvent,v=0;v!==o.contactEquations.length;v++){var ab=o.contactEquations[v];ab.firstImpact&&(_.bodyA=ab.bodyA,_.bodyB=ab.bodyB,_.shapeA=ab.shapeA,_.shapeB=ab.shapeB,_.contactEquation=ab,this.emit(_))}if(this.enableBodySleeping)for(v=0;v!==m;v++)i[v].sleepTick(this.time,!1,a);else if(this.enableIslandSleeping&&this.islandSplit){for(v=0;v!==m;v++)i[v].sleepTick(this.time,!0,a);for(var v=0;v0,a.frictionCoefficient=k.friction;var o;o=b.motionState===s.STATIC||b.motionState===s.KINEMATIC?f.mass:f.motionState===s.STATIC||f.motionState===s.KINEMATIC?b.mass:b.mass*f.mass/(b.mass+f.mass),a.slipForce=k.friction*l*o,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation;var p=a[c.type|g.type],q=0;if(p){var r=c.sensor||g.sensor,t=a.frictionEquations.length;q=c.type=2*w&&(b._wakeUpAfterNarrowphase=!0)}if(f.allowSleep&&f.motionState===s.DYNAMIC&&f.sleepState===s.SLEEPING&&b.sleepState===s.AWAKE&&b.motionState!==s.STATIC){var x=j.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),y=Math.pow(b.sleepSpeedLimit,2);x>=2*y&&(f._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,f,g),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,g)){var z=this.beginContactEvent;if(z.shapeA=c,z.shapeB=g,z.bodyA=b,z.bodyB=f,z.contactEquations.length=0,"number"==typeof q)for(var A=a.contactEquations.length-q;A1)for(var A=a.frictionEquations.length-u;A=0;b--)this.removeConstraint(a[b]);for(var d=this.bodies,b=d.length-1;b>=0;b--)this.removeBody(d[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);c.apply(this)},c.prototype.clone=function(){var a=new c;return a.fromJSON(this.toJSON()),a};var S=j.create(),T=j.fromValues(0,0),U=j.fromValues(0,0);c.prototype.hitTest=function(a,b,c){c=c||0;var d=new s({position:a}),e=new q,f=a,g=0,h=S,i=T,l=U;d.addShape(e);for(var n=this.narrowphase,r=[],t=0,u=b.length;t!==u;t++)for(var v=b[t],w=0,x=v.shapes.length;w!==x;w++){var y=v.shapes[w],z=v.shapeOffsets[w]||i,A=v.shapeAngles[w]||0;j.rotate(h,z,v.angle),j.add(h,h,v.position);var B=A+v.angle;(y instanceof k&&n.circleParticle(v,y,h,B,d,e,f,g,!0)||y instanceof m&&n.particleConvex(d,e,f,g,v,y,h,B,!0)||y instanceof o&&n.particlePlane(d,e,f,g,v,y,h,B,!0)||y instanceof p&&n.particleCapsule(d,e,f,g,v,y,h,B,!0)||y instanceof q&&j.squaredLength(j.sub(l,h,a))0&&this.enable(a[d],b,!0));else a instanceof Phaser.Group?this.enable(a.children,b,c):(this.enableBody(a,b),c&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback)for(var b=a.pairs.length;b-=2;)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.shapeB,a.shapeA,a.contactEquations)},endContactHandler:function(a){this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.shapeB,a.shapeA)},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){var b=this.everythingCollisionGroup.mask;"undefined"==typeof a&&(b=this.boundsCollisionGroup.mask),this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b)},setBounds:function(a,b,c,d,e,f,g,h,i){"undefined"==typeof e&&(e=!0),"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=!0),"undefined"==typeof h&&(h=!0),"undefined"==typeof i&&(i=!0),this.walls.left&&this.world.removeBody(this.walls.left),this.walls.right&&this.world.removeBody(this.walls.right),this.walls.top&&this.world.removeBody(this.walls.top),this.walls.bottom&&this.world.removeBody(this.walls.bottom),e&&(this.walls.left=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:1.5707963267948966}),this.walls.left.addShape(new p2.Plane),i&&(this.walls.left.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.left)),f&&(this.walls.right=new p2.Body({mass:0,position:[this.pxmi(a+c),this.pxmi(b)],angle:-1.5707963267948966}),this.walls.right.addShape(new p2.Plane),i&&(this.walls.right.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.right)),g&&(this.walls.top=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:-3.141592653589793}),this.walls.top.addShape(new p2.Plane),i&&(this.walls.top.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.top)),h&&(this.walls.bottom=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b+d)]}),this.walls.bottom.addShape(new p2.Plane),i&&(this.walls.bottom.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.bottom)) +},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||this.world.step(this.useElapsedTime?this.game.time.physicsElapsed:this.frameRate)},clear:function(){this.world.clear(),this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this._collisionGroupID=2,this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return this.world.addSpring(a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return this.world.removeSpring(a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,c,d){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.DistanceConstraint(this,a,b,c,d)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,c,d){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.GearConstraint(this,a,b,c,d)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,c,d,e){return a=this.getBody(a),c=this.getBody(c),a&&c?this.addConstraint(new Phaser.Physics.P2.RevoluteConstraint(this,a,b,c,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,c,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.LockConstraint(this,a,b,c,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,c,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new Phaser.Physics.P2.PrismaticConstraint(this,a,b,c,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var c=new Phaser.Physics.P2.Material(a);return this.materials.push(c),"undefined"!=typeof b&&b.setMaterial(c),c},createContactMaterial:function(a,b,c){"undefined"==typeof a&&(a=this.createMaterial()),"undefined"==typeof b&&(b=this.createMaterial());var d=new Phaser.Physics.P2.ContactMaterial(a,b,c);return this.addContactMaterial(d)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof Phaser.Physics.P2.Body?a.data:a.body&&a.body.type===Phaser.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b].parent);return a},hitTest:function(a,b,c,d){"undefined"==typeof b&&(b=this.world.bodies),"undefined"==typeof c&&(c=5),"undefined"==typeof d&&(d=!1);for(var e=[this.pxmi(a.x),this.pxmi(a.y)],f=[],g=b.length;g--;)b[g]instanceof Phaser.Physics.P2.Body&&(!d||b[g].data.motionState!==p2.Body.STATIC)?f.push(b[g].data):b[g]instanceof p2.Body&&b[g].parent&&(!d||b[g].motionState!==p2.Body.STATIC)?f.push(b[g]):b[g]instanceof Phaser.Sprite&&b[g].hasOwnProperty("body")&&(!d||b[g].body.data.motionState!==p2.Body.STATIC)&&f.push(b[g].body.data);return this.world.hitTest(e,f,c)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var c=new Phaser.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(c),a&&this.setCollisionGroup(a,c),c},setCollisionGroup:function(a,b){if(a instanceof Phaser.Group)for(var c=0;ce;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(Phaser.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"defaultFriction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"defaultRestitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(Phaser.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"enableBodySleeping",{get:function(){return this.world.enableBodySleeping},set:function(a){this.world.enableBodySleeping=a}}),Object.defineProperty(Phaser.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),Phaser.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},Phaser.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},Phaser.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},Phaser.Physics.P2.PointProxy.prototype.constructor=Phaser.Physics.P2.PointProxy,Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.world.pxm(a)}}),Phaser.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},Phaser.Physics.P2.InversePointProxy.prototype.constructor=Phaser.Physics.P2.InversePointProxy,Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.world.pxm(-a)}}),Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.world.pxm(-a)}}),Phaser.Physics.P2.Body=function(a,b,c,d,e){b=b||null,c=c||0,d=d||0,"undefined"==typeof e&&(e=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=Phaser.Physics.P2JS,this.offset=new Phaser.Point,this.data=new p2.Body({position:[this.world.pxmi(c),this.world.pxmi(d)],mass:e}),this.data.parent=this,this.velocity=new Phaser.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new Phaser.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new Phaser.Point,this.onBeginContact=new Phaser.Signal,this.onEndContact=new Phaser.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},Phaser.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbacksContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if("undefined"==typeof b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if("undefined"==typeof c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass()},applyDamping:function(a){this.data.applyDamping(a)},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle)},reset:function(a,b,c,d){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}else b instanceof p2.Plane?this.drawPlane(j,i[0]*this.ppu,-i[1]*this.ppu,c,f,5*g,10*g,10*g,100*this.ppu,a):b instanceof p2.Line?this.drawLine(j,b.length*this.ppu,f,g):b instanceof p2.Rectangle&&this.drawRectangle(j,i[0]*this.ppu,-i[1]*this.ppu,a,b.width*this.ppu,b.height*this.ppu,f,c,g);d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){"undefined"==typeof i&&(i=1),"undefined"==typeof g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){"undefined"==typeof g&&(g=1),"undefined"==typeof f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){"undefined"==typeof d&&(d=1),"undefined"==typeof c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if("undefined"==typeof f&&(f=1),"undefined"==typeof d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for("undefined"==typeof e&&(e=1),"undefined"==typeof c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;"undefined"==typeof f&&(f=1),"undefined"==typeof d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.len?b:b+"0"}}),Phaser.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=100),"undefined"==typeof f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),p2.Spring.call(this,b,c,k)},Phaser.Physics.P2.Spring.prototype=Object.create(p2.Spring.prototype),Phaser.Physics.P2.Spring.prototype.constructor=Phaser.Physics.P2.Spring,Phaser.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},Phaser.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),Phaser.Physics.P2.Material.prototype.constructor=Phaser.Physics.P2.Material,Phaser.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},Phaser.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),Phaser.Physics.P2.ContactMaterial.prototype.constructor=Phaser.Physics.P2.ContactMaterial,Phaser.Physics.P2.CollisionGroup=function(a){this.mask=a},Phaser.Physics.P2.DistanceConstraint=function(a,b,c,d,e){"undefined"==typeof d&&(d=100),this.game=a.game,this.world=a,d=a.pxm(d),p2.DistanceConstraint.call(this,b,c,d,{maxForce:e})},Phaser.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),Phaser.Physics.P2.DistanceConstraint.prototype.constructor=Phaser.Physics.P2.DistanceConstraint,Phaser.Physics.P2.GearConstraint=function(a,b,c,d,e){"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},Phaser.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),Phaser.Physics.P2.GearConstraint.prototype.constructor=Phaser.Physics.P2.GearConstraint,Phaser.Physics.P2.LockConstraint=function(a,b,c,d,e,f){"undefined"==typeof d&&(d=[0,0]),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])]; +var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},Phaser.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),Phaser.Physics.P2.LockConstraint.prototype.constructor=Phaser.Physics.P2.LockConstraint,Phaser.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=[0,0]),"undefined"==typeof f&&(f=[0,0]),"undefined"==typeof g&&(g=[0,0]),"undefined"==typeof h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},Phaser.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),Phaser.Physics.P2.PrismaticConstraint.prototype.constructor=Phaser.Physics.P2.PrismaticConstraint,Phaser.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f){"undefined"==typeof f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],p2.RevoluteConstraint.call(this,b,c,d,e,{maxForce:f})},Phaser.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),Phaser.Physics.P2.RevoluteConstraint.prototype.constructor=Phaser.Physics.P2.RevoluteConstraint; //# sourceMappingURL=phaser.map \ No newline at end of file