diff --git a/build/custom/phaser-no-libs.js b/build/custom/phaser-no-libs.js index a0ca665c0..2d9e2caec 100644 --- a/build/custom/phaser-no-libs.js +++ b/build/custom/phaser-no-libs.js @@ -7,7 +7,7 @@ * * Phaser - http://www.phaser.io * -* v2.0.0 "Aes Sedai" - Built: Fri Feb 28 2014 18:53:23 +* v2.0.0 "Aes Sedai" - Built: Fri Feb 28 2014 19:43:09 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -5315,6 +5315,11 @@ Phaser.Stage = function (game, width, height) { */ this.exists = true; + /** + * @property {number} currentRenderOrderID - Reset each frame, keeps a count of the total number of objects updated. + */ + this.currentRenderOrderID = 0; + /** * @property {string} hiddenVar - The page visibility API event name. * @private @@ -5358,9 +5363,10 @@ Phaser.Stage.prototype.preUpdate = function () { this.currentRenderOrderID = 0; - var i = this.children.length; + // This can't loop in reverse, we need the orderID to be in sequence + var len = this.children.length; - while (i--) + for (var i = 0; i < len; i++) { this.children[i].preUpdate(); } @@ -7058,11 +7064,6 @@ Phaser.World = function (game) { * @property {Phaser.Camera} camera - Camera instance. */ this.camera = null; - - /** - * @property {number} currentRenderOrderID - Reset each frame, keeps a count of the total number of objects updated. - */ - this.currentRenderOrderID = 0; } @@ -11227,7 +11228,7 @@ Phaser.Pointer.prototype = { } // Work out which object is on the top - this._highestRenderOrderID = -1; + this._highestRenderOrderID = Number.MAX_SAFE_INTEGER; this._highestRenderObject = null; this._highestInputPriorityID = -1; @@ -11239,11 +11240,11 @@ Phaser.Pointer.prototype = { do { // If the object is using pixelPerfect checks, or has a higher InputManager.PriorityID OR if the priority ID is the same as the current highest AND it has a higher renderOrderID, then set it to the top - if (currentNode.pixelPerfectClick || currentNode.pixelPerfectOver || currentNode.priorityID > this._highestInputPriorityID || (currentNode.priorityID === this._highestInputPriorityID && currentNode.sprite.renderOrderID > this._highestRenderOrderID)) + if (currentNode.pixelPerfectClick || currentNode.pixelPerfectOver || currentNode.priorityID > this._highestInputPriorityID || (currentNode.priorityID === this._highestInputPriorityID && currentNode.sprite._cache[3] < this._highestRenderOrderID)) { if ((!fromClick && currentNode.checkPointerOver(this)) || (fromClick && currentNode.checkPointerDown(this))) { - this._highestRenderOrderID = currentNode.sprite.renderOrderID; + this._highestRenderOrderID = currentNode.sprite._cache[3]; // renderOrderID this._highestInputPriorityID = currentNode.priorityID; this._highestRenderObject = currentNode; } @@ -15965,14 +15966,15 @@ Phaser.Sprite.prototype.preUpdate = function() { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; } this.animations.update(); - if (this.body) + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) { - // this.body.preUpdate(); + this.children[i].preUpdate(); } return true; @@ -15981,6 +15983,7 @@ Phaser.Sprite.prototype.preUpdate = function() { /** * Override and use this function in your own custom objects to handle any update requirements you may have. +* Remember if this Sprite has any children you should call update on them too. * * @method Phaser.Sprite#update * @memberof Phaser.Sprite @@ -16017,6 +16020,12 @@ Phaser.Sprite.prototype.postUpdate = function() { this.position.y = this.game.camera.view.y + this.cameraOffset.y; } + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].postUpdate(); + } + }; /** @@ -16852,7 +16861,7 @@ Phaser.Image.prototype.preUpdate = function() { if (!this.exists || !this.parent.exists) { - this.renderOrderID = -1; + this._cache[3] = -1; return false; } @@ -16866,7 +16875,13 @@ Phaser.Image.prototype.preUpdate = function() { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; + } + + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].preUpdate(); } return true; @@ -16903,6 +16918,12 @@ Phaser.Image.prototype.postUpdate = function() { this.position.y = this.game.camera.view.y + this.cameraOffset.y; } + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].postUpdate(); + } + } /** @@ -17615,6 +17636,17 @@ Phaser.TileSprite.prototype.preUpdate = function() { this.tilePosition.y += this._scroll.y * this.game.time.physicsElapsed; } + if (this.visible) + { + this._cache[3] = this.game.stage.currentRenderOrderID++; + } + + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].preUpdate(); + } + return true; } @@ -17644,6 +17676,12 @@ Phaser.TileSprite.prototype.postUpdate = function() { this.position.y = this.game.camera.view.y + this.cameraOffset.y; } + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].postUpdate(); + } + } /** @@ -18107,7 +18145,13 @@ Phaser.Text.prototype.preUpdate = function () { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; + } + + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].preUpdate(); } return true; @@ -18136,6 +18180,12 @@ Phaser.Text.prototype.postUpdate = function () { this.position.y = this.game.camera.view.y + this.cameraOffset.y; } + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].postUpdate(); + } + } /** @@ -18967,7 +19017,7 @@ Phaser.BitmapText.prototype.preUpdate = function () { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; } return true; @@ -19997,7 +20047,7 @@ Phaser.Graphics.prototype.preUpdate = function () { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; } return true; diff --git a/build/custom/phaser-no-libs.min.js b/build/custom/phaser-no-libs.min.js index 8dd52a3c2..f7fd2e3d6 100644 --- a/build/custom/phaser-no-libs.min.js +++ b/build/custom/phaser-no-libs.min.js @@ -1,11 +1,11 @@ /* Phaser (no libs) v2.0.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ (function(){var a=this,b=b||{VERSION:"<%= version %>",DEV_VERSION:"2.0",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,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,BITMAPFONT:18,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,DYNAMIC:1,STATIC:2,KINEMATIC:4,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}};PIXI.InteractionManager=function(){},b.Utils={parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},shuffle: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},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=Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=Array(g+1).join(c)+a+Array(f+1).join(c);break;default:a+=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&&!hasOwn.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}},"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)}),b.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.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.distanceRound(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.radToDeg(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},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)},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},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.distance=function(a,c,d){return"undefined"==typeof d&&(d=!1),d?b.Math.distanceRound(a.x,a.y,c.x,c.y):b.Math.distance(a.x,a.y,c.x,c.y)},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))},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+")}]"},get halfWidth(){return Math.round(this.width/2)},get halfHeight(){return Math.round(this.height/2)},get bottom(){return this.y+this.height},set bottom(a){this.height=a<=this.y?0:this.y-a},get bottomRight(){return new b.Point(this.right,this.bottom)},set bottomRight(a){this.right=a.x,this.bottom=a.y},get left(){return this.x},set left(a){this.width=a>=this.right?0:this.right-a,this.x=a},get right(){return this.x+this.width},set right(a){this.width=a<=this.x?0:this.x+a},get volume(){return this.width*this.height},get perimeter(){return 2*this.width+2*this.height},get centerX(){return this.x+this.halfWidth},set centerX(a){this.x=a-this.halfWidth},get centerY(){return this.y+this.halfHeight},set centerY(a){this.y=a-this.halfHeight},get top(){return this.y},set top(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a},get topLeft(){return new b.Point(this.x,this.y)},set topLeft(a){this.x=a.x,this.y=a.y},get empty(){return!this.width||!this.height},set empty(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?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?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}},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.x-this.start.x,this.end.y-this.start.y)}}),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))}}),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){if(Math.pow(g.x-c.x+(g.y-c.y),2)>Math.pow(a.x-c.x+(a.y-c.y),2))return null;if(Math.pow(g.x-a.x+(g.y-a.y),2)>Math.pow(a.x-c.x+(a.y-c.y),2))return null;if(Math.pow(g.x-e.x+(g.y-e.y),2)>Math.pow(d.x-e.x+(d.y-e.y),2))return null;if(Math.pow(g.x-d.x+(g.y-d.y),2)>Math.pow(d.x-e.x+(d.y-e.y),2))return 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=!0)}return c}},b.Polygon.prototype.constructor=b.Polygon,PIXI.Polygon=b.Polygon,b.Camera=function(a,c,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new b.Rectangle(d,e,f,g),this.screenView=new b.Rectangle(d,e,f,g),this.bounds=new b.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.atLimit={x:!1,y:!1},this.target=null,this._edge=0,this.displayObject=null},b.Camera.FOLLOW_LOCKON=0,b.Camera.FOLLOW_PLATFORMER=1,b.Camera.FOLLOW_TOPDOWN=2,b.Camera.FOLLOW_TOPDOWN_TIGHT=3,b.Camera.prototype={follow:function(a,c){"undefined"==typeof c&&(c=b.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(c){case b.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new b.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case b.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new b.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case b.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new b.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case b.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this.deadzone?(this._edge=this.target.x-this.deadzone.x,this.view.x>this._edge&&(this.view.x=this._edge),this._edge=this.target.x+this.target.width-this.deadzone.x-this.deadzone.width,this.view.xthis._edge&&(this.view.y=this._edge),this._edge=this.target.y+this.target.height-this.deadzone.y-this.deadzone.height,this.view.ythis.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.ythis.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(){},destroy: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.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.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.onDestroyCallback=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)))},dummy:function(){},preUpdate:function(){this._pendingState&&this.game.isBooted&&(this.current&&this.onShutDownCallback.call(this.callbackContext,this.game),this._clearWorld&&(this.game.tweens.removeAll(),this.game.world.destroy(),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()?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.game.physics&&(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.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)},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.onDestroyCallback=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)},remove:function(a){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),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.Signal=function(){this._bindings=[],this._prevParams=null;var a=this;this.dispatch=function(){b.Signal.prototype.dispatch.apply(a,arguments)}},b.Signal.prototype={memorize:!1,_shouldPropagate:!0,active:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,c,d,e){var f,g=this._indexOfListener(a,d);if(-1!==g){if(f=this._bindings[g],f.isOnce()!==c)throw new Error("You cannot add"+(c?"":"Once")+"() then add"+(c?"Once":"")+"() the same listener without removing the relationship first.")}else f=new b.SignalBinding(this,a,c,d,e),this._addBinding(f);return this.memorize&&this._prevParams&&f.execute(this._prevParams),f},_addBinding:function(a){var b=this._bindings.length;do--b;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){return this.validateListener(a,"add"),this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){return this.validateListener(a,"addOnce"),this._registerListener(a,!0,b,c)},remove:function(a,b){this.validateListener(a,"remove");var c=this._indexOfListener(a,b);return-1!==c&&(this._bindings[c]._destroy(),this._bindings.splice(c,1)),a},removeAll:function(){for(var a=this._bindings.length;a--;)this._bindings[a]._destroy();this._bindings.length=0},getNumListeners:function(){return this._bindings.length},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active){var a,b=Array.prototype.slice.call(arguments),c=this._bindings.length;if(this.memorize&&(this._prevParams=b),c){a=this._bindings.slice(),this._shouldPropagate=!0;do c--;while(a[c]&&this._shouldPropagate&&a[c].execute(b)!==!1)}}},forget:function(){this._prevParams=null},dispose:function(){this.removeAll(),delete this._bindings,delete this._prevParams},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},b.Signal.prototype.constructor=b.Signal,b.SignalBinding=function(a,b,c,d,e){this._listener=b,this._isOnce=c,this.context=d,this._signal=a,this._priority=e||0},b.SignalBinding.prototype={active:!0,params:null,execute:function(a){var b,c;return this.active&&this._listener&&(c=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,c),this._isOnce&&this.detach()),b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},b.SignalBinding.prototype.constructor=b.SignalBinding,b.Filter=function(a,c,d){this.game=a,this.type=b.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms={time:{type:"1f",value:0},resolution:{type:"2f",value:{x:256,y:256}},mouse:{type:"2f",value:{x:0,y:0}}},this.fragmentSrc=d||[]},b.Filter.prototype={init:function(){},setResolution:function(a,b){this.uniforms.resolution.value.x=a,this.uniforms.resolution.value.y=b},update:function(a){"undefined"!=typeof a&&(a.x>0&&(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,b){this.game=a,this._parent=b,this.plugins=[],this._pluginsLength=0},b.PluginManager.prototype={add:function(a){var b=!1;return"function"==typeof a?a=new a(this.game,this._parent):(a.game=this.game,a.parent=this._parent),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,b=!0),"function"==typeof a.update&&(a.hasUpdate=!0,b=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,b=!0),"function"==typeof a.render&&(a.hasRender=!0,b=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,b=!0),b?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._pluginsLength=this.plugins.push(a),"function"==typeof a.init&&a.init(),a):null -},remove:function(a){if(0!==this._pluginsLength)for(this._p=0;this._pthis._nextOffsetCheck&&(b.Canvas.getOffset(this.game.canvas,this.offset),this._nextOffsetCheck=this.game.time.now+this.checkOffsetInterval)},b.Stage.prototype.parseConfig=function(a){this.game.canvas=a.canvasID?b.Canvas.create(this.game.width,this.game.height,a.canvasID):b.Canvas.create(this.game.width,this.game.height),a.canvasStyle?this.game.canvas.stlye=a.canvasStyle:this.game.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",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=new b.Rectangle(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&&(window.onpagehide=this._onChange,window.onpageshow=this._onChange),window.onblur=this._onChange,window.onfocus=this._onChange},b.Stage.prototype.visibilityChange=function(a){return this.disableVisibilityChange?void 0:"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.gamePaused(a.timeStamp):("pageshow"===a.type||"focus"===a.type)&&this.game.gameResumed(a.timeStamp)):void(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden?this.game.gamePaused(a.timeStamp):this.game.gameResumed(a.timeStamp))},b.Stage.prototype.setBackgroundColor=function(a){this._backgroundColor=a||0,this.backgroundColorSplit=PIXI.hex2rgb(this.backgroundColor);var b=this._backgroundColor.toString(16);b="000000".substr(0,6-b.length)+b,this.backgroundColorString="#"+b},Object.defineProperty(b.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this._backgroundColor=a,this.game.transparent===!1&&("string"==typeof a&&(a=b.Color.hexToRGB(a)),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){"undefined"==typeof e&&(e=!1),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.type=b.GROUP,this.alive=!0,this.exists=!0,this.scale=new b.Point(1,1),this.cursor=null,this._cursorIndex=0,this.cameraOffset=new b.Point,this._cache=new Int16Array([0,0,0,0,1,0,1,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){return a.parent!==this&&(this.addChild(a),a.events&&a.events.onAddedToGroup.dispatch(a,this)),null===this.cursor&&(this.cursor=a),a},b.Group.prototype.addAt=function(a,b){return a.parent!==this&&(this.addChildAt(a,b),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,c,d,e,f){"undefined"==typeof f&&(f=!0);var g=new b.Sprite(this.game,a,c,d,e);return g.exists=f,g.visible=f,g.alive=f,this.addChild(g),g.events&&g.events.onAddedToGroup.dispatch(g,this),null===this.cursor&&(this.cursor=g),g},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.next=function(){this.cursor&&(this._cursorIndex===this.children.length?this._cursorIndex=0:this._cursorIndex++,this.cursor=this.children[this._cursorIndex])},b.Group.prototype.previous=function(){this.cursor&&(0===this._cursorIndex?this._cursorIndex=this.children.length-1:this._cursorIndex--,this.cursor=this.children[this._cursorIndex])},b.Group.prototype.swap=function(a,b){return this.swapChildren(a,b)},b.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a),this.addAt(a,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(b,c)}return a},b.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},b.Group.prototype.replace=function(a,b){var c=this.getIndex(a);-1!==c&&(void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b)),this.removeChild(a),this.addChildAt(b,c),b.events.onAddedToGroup.dispatch(b,this),this.cursor===a&&(this.cursor=b))},b.Group.prototype.setProperty=function(a,b,c,d){d=d||0;var e=b.length;1==e?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==e?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==e?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==e&&(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))},b.Group.prototype.set=function(a,b,c,d,e,f){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)},b.Group.prototype.setAll=function(a,b,c,d,e){a=a.split("."),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),e=e||0;for(var f=0,g=this.children.length;g>f;f++)(!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&this.setProperty(this.children[f],a,b,e)},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){"undefined"==typeof a&&(a="y"),"undefined"==typeof c&&(c=b.Group.SORT_ASCENDING)},b.Group.prototype.sortHandler=function(){},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.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){return 0!==this.children.length?(a.events&&a.events.onRemovedFromGroup.dispatch(a,this),this.removeChild(a),this.cursor===a&&this.next(),!0):void 0},b.Group.prototype.removeAll=function(){if(0!==this.children.length){do this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this),this.removeChild(this.children[0]);while(this.children.length>0);this.cursor=null}},b.Group.prototype.removeBetween=function(a,b){if(0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var c=a;b>c;c++)this.children[c].events&&this.children[c].events.onRemovedFromGroup.dispatch(this.children[c],this),this.removeChild(this.children[c]),this.cursor===child&&(this.cursor=null)}},b.Group.prototype.destroy=function(a){if(null!==this.game){if("undefined"==typeof a&&(a=!0),a){if(this.children.length>0)do this.children[0].parent&&this.children[0].destroy(a);while(this.children.length>0)}else this.removeAll();this.parent.removeChild(this),this.game=null,this.exists=!1,this.cursor=null}},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,this.currentRenderOrderID=0},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.game.camera=this.camera,this.game.stage.addChild(this)},b.World.prototype.setBounds=function(a,b,c,d){cwindow.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.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;var e=this;window.addEventListener("orientationchange",function(a){return e.checkOrientation(a)},!1),window.addEventListener("resize",function(a){return e.checkResize(a)},!1),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.game.canvas[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT):this.game.canvas[this.game.device.requestFullscreen]())},stopFullScreen:function(){this.game.canvas[this.game.device.cancelFullscreen]()},fullScreenChange:function(a){this.event=a,this.isFullScreen?(this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?(this.game.canvas.style.width="100%",this.game.canvas.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.game.canvas.style.width=this.game.width+"px",this.game.canvas.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,b,c){"undefined"==typeof b&&(b=!1),this.forceLandscape=a,this.forcePortrait=b,"undefined"!=typeof c&&((null==c||this.game.cache.checkImageKey(c)===!1)&&(c="__default"),this.orientationSprite=new PIXI.Sprite(PIXI.TextureCache[c]),this.orientationSprite.anchor.x=.5,this.orientationSprite.anchor.y=.5,this.orientationSprite.position.x=this.game.width/2,this.orientationSprite.position.y=this.game.height/2,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===!1&&this.game.device.webApp===!1&&this.game.device.desktop===!1&&(this.game.device.android&&this.game.device.chrome===!1?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===!1&&this.game.device.webApp===!1&&this.game.device.desktop===!1&&(this.game.device.android&&this.game.device.chrome===!1?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===!0?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===!1&&(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.renderer=b.AUTO,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._paused=!1,this._codePaused=!1,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[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.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.physicsConfig&&(this.physicsConfig=a.physicsConfig);var c=null;a.state&&(c=a.state),this.state=new b.StateManager(this,c)},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.isBooted=!0,this.device=new b.Device(this),this.math=b.Math,this.rnd=new b.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.stage=new b.Stage(this,this.width,this.height),this.scale=new b.ScaleManager(this,this.width,this.height),this.setUpRenderer(),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.World(this,this.physicsConfig),this.particles=new b.Particles(this),this.plugins=new b.PluginManager(this,this),this.net=new b.Net(this),this.debug=new b.Utils.Debug(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.input.boot(),this.sound.boot(),this.state.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.DEV_VERSION,c="Canvas",d="HTML Audio";if(this.renderType==b.WEBGL?c="WebGL":this.renderType==b.HEADLESS&&(c="Headless"),this.device.webAudio&&(d="WebAudio"),this.device.chrome){var e=["%c %c %c Phaser v"+a+" - Renderer: "+c+" - Audio: "+d+" %c %c ","background: #00bff3","background: #0072bc","color: #ffffff; background: #003471","background: #0072bc","background: #00bff3"];console.log.apply(console,e)}else console.log("Phaser v"+a+" - Renderer: "+c+" - Audio: "+d)},setUpRenderer:function(){if(this.device.trident&&(this.renderType=b.CANVAS),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.context=null;this.stage.smoothed=this.antialias,b.Canvas.addToDOM(this.canvas,this.parent,!0),b.Canvas.setTouchAction(this.canvas)},update:function(a){this.time.update(a),this._paused?(this.input.update(),this.renderType!==b.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender())):(this.pendingStep||(this.stepping&&(this.pendingStep=!0),this.state.preUpdate(),this.plugins.preUpdate(),this.stage.preUpdate(),this.stage.update(),this.tweens.update(),this.sound.update(),this.input.update(),this.state.update(),this.physics.update(),this.particles.update(),this.plugins.update(),this.stage.postUpdate(),this.plugins.postUpdate()),this.renderType!==b.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender()))},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.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(a),this.sound.setMute(),this.onPause.dispatch(this))},gameResumed:function(a){this._paused&&!this._codePaused&&(this._paused=!1,this.time.gameResumed(a),this.input.reset(),this.sound.unsetMute(),this.onResume.dispatch(this))}},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.mute=!0,this.time.gamePaused(),this.onPause.dispatch(this)):this._paused&&(this._paused=!1,this._codePaused=!1,this.input.reset(),this.sound.mute=!1,this.time.gameResumed(),this.onResume.dispatch(this))}}),b.Input=function(a){this.game=a,this.hitCanvas=null,this.hitContext=null,this.moveCallback=null,this.moveCallbackContext=this,this.pollRate=0,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=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.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.interactiveItems=new b.LinkedList,this._localPoint=new b.Point -},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.moveCallback=null},setMoveCallback:function(a,b){this.moveCallback=a,this.moveCallbackContext=b},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===!0&&(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.interactiveItems.callAll("reset")),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},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.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.isDown&&(this.duration=this.game.time.now-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(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(){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(){this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=this.game.time.now-this.timeDown},justPressed:function(a){return"undefined"==typeof a&&(a=2500),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.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.game.paused)return this;if(this.game.input.moveCallback&&this.game.input.moveCallback.call(this.game.input.moveCallbackContext,this,this.x,this.y),null!==this.targetObject&&this.targetObject.isDragged===!0)return this.targetObject.update(this)===!1&&(this.targetObject=null),this;if(this._highestRenderOrderID=-1,this._highestRenderObject=null,this._highestInputPriorityID=-1,this.game.input.interactiveItems.total>0){var d=this.game.input.interactiveItems.next;do(d.pixelPerfectClick||d.pixelPerfectOver||d.priorityID>this._highestInputPriorityID||d.priorityID===this._highestInputPriorityID&&d.sprite.renderOrderID>this._highestRenderOrderID)&&(!c&&d.checkPointerOver(this)||c&&d.checkPointerDown(this))&&(this._highestRenderOrderID=d.sprite.renderOrderID,this._highestInputPriorityID=d.priorityID,this._highestRenderObject=d),d=d.next;while(null!=d)}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){if(this._stateReset)return void a.preventDefault();if(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.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.total>0){var c=this.game.input.interactiveItems.next;do c&&c._releasedHandler(this),c=c.next;while(null!=c)}return this.targetObject&&this.targetObject._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.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}},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(){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("touchenter",this._onTouchEnter,!1),this.game.canvas.addEventListener("touchleave",this._onTouchLeave,!1),this.game.canvas.addEventListener("touchcancel",this._onTouchCancel,!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&&e>this.deadZone||0>e&&e<-this.deadZone?{axis:d,value:e}:{axis:d,value:0})}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this._connected;this._index=a.index,this._connected=!0,this._rawPad=a,this._rawButtons=a.buttons,this._axes=a.axes,b&&this._padParent.onConnectCallback&&this._padParent.onConnectCallback.call(this._padParent.callbackContext,this._index),b&&this.onConnectCallback&&this.onConnectCallback.call(this.callbackContext)},disconnect:function(){var a=this._connected;this._connected=!1,this._rawPad=void 0,this._rawButtons=[],this._buttons=[];var b=this._index;this._index=null,a&&this._padParent.onDisconnectCallback&&this._padParent.onDisconnectCallback.call(this._padParent.callbackContext,b),a&&this.onDisconnectCallback&&this.onDisconnectCallback.call(this.callbackContext)},processAxisChange:function(a){this.game.input.disabled||this.game.input.gamepad.disabled||this._axes[a.axis]!==a.value&&(this._axes[a.axis]=a.value,this._padParent.onAxisCallback&&this._padParent.onAxisCallback.call(this._padParent.callbackContext,a,this._index),this.onAxisCallback&&this.onAxisCallback.call(this.callbackContext,a))},processButtonDown:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onDownCallback&&this._padParent.onDownCallback.call(this._padParent.callbackContext,a,b,this._index),this.onDownCallback&&this.onDownCallback.call(this.callbackContext,a,b),this._buttons[a]&&this._buttons[a].isDown?this._buttons[a].duration=this.game.time.now-this._buttons[a].timeDown:this._buttons[a]?(this._buttons[a].isDown=!0,this._buttons[a].timeDown=this.game.time.now,this._buttons[a].duration=0,this._buttons[a].value=b):this._buttons[a]={isDown:!0,timeDown:this.game.time.now,timeUp:0,duration:0,value:b},this._hotkeys[a]&&this._hotkeys[a].processButtonDown(b))},processButtonUp:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onUpCallback&&this._padParent.onUpCallback.call(this._padParent.callbackContext,a,b,this._index),this.onUpCallback&&this.onUpCallback.call(this.callbackContext,a,b),this._hotkeys[a]&&this._hotkeys[a].processButtonUp(b),this._buttons[a]?(this._buttons[a].isDown=!1,this._buttons[a].timeUp=this.game.time.now,this._buttons[a].value=b):this._buttons[a]={isDown:!1,timeDown:this.game.time.now,timeUp:this.game.time.now,duration:0,value:b})},processButtonFloat:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onFloatCallback&&this._padParent.onFloatCallback.call(this._padParent.callbackContext,a,b,this._index),this.onFloatCallback&&this.onFloatCallback.call(this.callbackContext,a,b),this._buttons[a]?this._buttons[a].value=b:this._buttons[a]={value:b},this._hotkeys[a]&&this._hotkeys[a].processButtonFloat(b))},axis:function(a){return this._axes[a]?this._axes[a]:!1},isDown:function(a){return this._buttons[a]?this._buttons[a].isDown:!1},justReleased:function(a,b){return"undefined"==typeof b&&(b=250),this._buttons[a]&&this._buttons[a].isDown===!1&&this.game.time.now-this._buttons[a].timeUpd;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.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},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.enabled&&(this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},pointerX:function(a){return a=a||0,this._pointerData[a].x},pointerY:function(a){return a=a||0,this._pointerData[a].y},pointerDown:function(a){return a=a||0,this._pointerData[a].isDown},pointerUp:function(a){return a=a||0,this._pointerData[a].isUp},pointerTimeDown:function(a){return a=a||0,this._pointerData[a].timeDown},pointerTimeUp:function(a){return a=a||0,this._pointerData[a].timeUp},pointerOver:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOver;for(var b=0;10>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 this.enabled===!1||this.sprite.visible===!1||this.sprite.parent.visible===!1?!1: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===!1||this.sprite.visible===!1||this.sprite.parent.visible===!1?!1: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?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.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.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.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.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default")),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){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):this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y)):this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y),this.updateDrag(a),this.bringToTop&&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.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.sprite.events.onInputUp.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){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof snapOffsetX&&(snapOffsetX=0),"undefined"==typeof snapOffsetY&&(snapOffsetY=0),this.snapX=a,this.snapY=b,this.snapOffsetX=snapOffsetX,this.snapOffsetY=snapOffsetY,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.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){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.Group(this.game,a,c,d)},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))},bitmapFont:function(a,c,d,e,f,g,h,i,j){return new b.BitmapFont(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){return new b.Tilemap(this.game,a,c)},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){"undefined"==typeof d&&(d=!1),("undefined"==typeof key||""===key)&&(key=this.game.rnd.uuid());var e=new b.BitmapData(this.game,key,a,c);return d&&this.game.cache.addBitmapData(key,e),e},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.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 this.game.tweens.create(a)},group:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.Group(this.game,a,c,d)},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)},bitmapFont:function(a,c,d,e,f,g,h,i,j){return new b.BitmapFont(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){return new b.Tilemap(this.game,a,c)},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){"undefined"==typeof d&&(d=!1),("undefined"==typeof key||""===key)&&(key=this.game.rnd.uuid());var e=new b.BitmapData(this.game,key,a,c);return d&&this.game.cache.addBitmapData(key,e),e},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.pixels=this.imageData.data.buffer?this.imageData.data.buffer: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.type=b.BITMAPDATA,this._dirty=!1},b.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;b=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=f<<24|e<<16|d<<8|c,this.context.putImageData(this.imageData,0,0),this._dirty=!0)},setPixel:function(a,b,c,d,e){this.setPixel32(a,b,c,d,e,255)},getPixel:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.data32[b*this.width+a]:void 0},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.data32[b*this.width+a]:void 0},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},copyPixels:function(a,b,c,d){"string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height)},draw:function(a,b,c){"string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,0,0,a.width,a.height,b,c,a.width,a.height)},alphaMask:function(a,b){var c=this.context.globalCompositeOperation;"string"==typeof b&&(b=this.game.cache.getImage(b)),b&&this.context.drawImage(b,0,0),this.context.globalCompositeOperation="source-atop","string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,0,0),this.context.globalCompositeOperation=c},render:function(){this._dirty&&(this.game.renderType===b.WEBGL&&PIXI.texturesToUpdate.push(this.baseTexture),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.events=new b.Events(this),this.animations=new b.AnimationManager(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.body=null,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this._cache=new Int16Array([0,0,0,0,1,0,1,0]),this._bounds=new b.Rectangle},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4])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._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;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;return this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.world.currentRenderOrderID++),this.animations.update(),this.body,!0},b.Sprite.prototype.update=function(){},b.Sprite.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key._dirty&&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.position.y=this.game.camera.view.y+this.cameraOffset.y)},b.Sprite.prototype.loadTexture=function(a,c){return c=c||0,a instanceof b.RenderTexture?(this.key=a.key,void this.setTexture(a)):a instanceof b.BitmapData?(this.key=a.key,void this.setTexture(a.texture)):a instanceof PIXI.Texture?(this.key=a,void this.setTexture(a)):null===a||"undefined"==typeof a?(this.key="__default",void this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?this.game.cache.isSpriteSheet(a)?(this.key=a,this.animations.loadFrameData(this.game.cache.getFrameData(a)),"string"==typeof c?this.frameName=c:this.frame=c,void 0):(this.key=a,void this.setTexture(PIXI.TextureCache[a])):(this.key="__missing",void this.setTexture(PIXI.TextureCache[this.key]))},b.Sprite.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.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){"undefined"==typeof a&&(a=!0),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.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null}},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},b.Sprite.prototype.bringToTop=function(a){return"undefined"==typeof a&&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},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.stop()}}),Object.defineProperty(b.Sprite.prototype,"physicsEnabled",{get:function(){return null!==this.body},set:function(a){a?null===this.body&&(this.body=new b.Physics.Body(this.game,this,this.x,this.y,1),this.anchor.set(.5)):this.body&&this.body.destroy()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&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)}}),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.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=new Int16Array([0,0,0,0,1,0,1,0])},b.Image.prototype=Object.create(PIXI.Sprite.prototype),b.Image.prototype.constructor=b.Image,b.Image.prototype.preUpdate=function(){return this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.exists&&this.parent.exists?(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.world.currentRenderOrderID++),!0):(this.renderOrderID=-1,!1)},b.Image.prototype.update=function(){},b.Image.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key._dirty&&this.key.render(),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)},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.key,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){"undefined"==typeof a&&(a=!0),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}},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(a){return"undefined"==typeof a&&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&&ae?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.BitmapFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.BitmapFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.BitmapFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.BitmapFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.BitmapFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.BitmapFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.BitmapFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.BitmapFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.BitmapFont.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.BitmapFont.prototype.resize=function(a,b){if(this.width=a,this.height=b,this.frame.width=this.width,this.frame.height=this.height,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.renderer.type===PIXI.WEBGL_RENDERER){this.projection.x=this.width/2,this.projection.y=-this.height/2;var c=this.renderer.gl;c.bindTexture(c.TEXTURE_2D,this.baseTexture._glTextures[c.id]),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,this.width,this.height,0,c.RGBA,c.UNSIGNED_BYTE,null)}else this.textureBuffer.resize(this.width,this.height);PIXI.Texture.frameUpdates.push(this)},b.BitmapFont.prototype.buildBitmapFontText=function(){var a=0,c=0;if(this.multiLine){var d=this._text.split("\n"); -this.fixedWidth>0?this.resize(fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY),this.textureBuffer.clear();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(fixedWidth,this.characterHeight):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight),this.textureBuffer.clear(),this.align){case b.BitmapFont.ALIGN_LEFT:a=0;break;case b.BitmapFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.BitmapFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.pasteLine(this._text,a,0,this.customSpacingX)}},b.BitmapFont.prototype.pasteLine=function(a,c,d){for(var e=new b.Point,f=0;f=0&&(this.stamp.frame=this.grabData[a.charCodeAt(f)],e.set(c,d),this.render(this.stamp,e,!1),c+=this.characterWidth+this.customSpacingX,c>this.width))break},b.BitmapFont.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.BitmapFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},Object.defineProperty(b.BitmapFont.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.buildBitmapFontText())}}),b.Canvas={create:function(a,b,c,d){if("undefined"==typeof d&&(d=!1),a=a||256,b=b||256,d)var e=document.createElement("canvas");else var e=document.createElement(navigator.isCocoonJS?"screencanvas":"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.patchAndroidClearRectBug=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!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.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.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkOS()},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),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0)},_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},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0,this.typedArray=!0):(this.littleEndian=!1,this.typedArray=!1),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(this.vibration=!0)},_checkCSS3D:function(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),this.css3D=void 0!==a&&a.length>0&&"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.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(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},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)},nearestAngleBetween:function(a,b,c){"undefined"==typeof c&&(c=!0);var d=c?Math.PI:180;return a=this.normalizeAngle(a,c),b=this.normalizeAngle(b,c),-d/2>a&&b>d/2&&(a+=2*d),-d/2>b&&a>d/2&&(b+=2*d),b-a},interpolateAngles:function(a,b,c,d,e){return"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=null),a=this.normalizeAngle(a,d),b=this.normalizeAngleToAnother(b,a,d),"function"==typeof e?e(c,a,b-a,1):this.interpolateFloat(a,b,c)},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},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},max:function(){for(var a=1,b=0,c=arguments.length;c>a;a++)arguments[b]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){return this.wrap(a,-180,180)},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)},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},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: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 b>=a?0:a>=c?1:(a=(a-b)/(c-b),a*a*(3-2*a))},smootherstep:function(a,b,c){return b>=a?0:a>=c?1:(a=(a-b)/(c-b),a*a*a*(a*(6*a-15)+10))},sign:function(a){return 0>a?-1:a>0?1:0},p2px:function(a){return a*=20},px2p:function(a){return.05*a},p2pxi:function(a){return a*=-20},px2pi:function(a){return a*-.05},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(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)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*a.length)]},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.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){this._object=a,this.game=c,this._manager=this.game.tweens,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;for(var d in a)this._valuesStart[d]=parseFloat(a[d],10);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;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},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(this._valuesEnd[a]instanceof Array){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],this._valuesStart[a]instanceof Array==!1&&(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},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,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),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._reversed=!this._reversed}this._valuesStart[b]=this._valuesStartRepeat[b]}return 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.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()},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._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.physicsElapsed=1*(this.elapsed/1e3),!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 -},update:function(a){if(this.paused)return!0;for(this._now=a,this._len=this.events.length,this._i=0;this._i=this.nextTick&&this._len>0){for(this._i=0;this._i=this.events[this._i].tick;){var b=this._now-this.events[this._i].tick,c=this._now+this.events[this._i].delay-b;0>c&&(c=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=c,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=c,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args),this.events.splice(this._i,1),this._len--),this._i++}this.events.length>0?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&!this.expired&&(this._pauseStarted=this.game.time.now,this.paused=!0,this._codePaused=!0)},_pause:function(){this.running&&!this.expired&&(this._pauseStarted=this.game.time.now,this.paused=!0)},resume:function(){if(this.running&&!this.expired){for(var a=this.game.time.now-this._pauseStarted,b=0;bthis._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._now-this._started}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return.001*this.ms}}),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.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a){this._frameData=a,this.frame=0,this.isLoaded=!0},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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__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){if(this._anims[a]){if(this.currentAnim!=this._anims[a])return this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d);if(this.currentAnim.isPlaying===!1)return this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)}},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},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(){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._frameIndex=a,this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),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._frameIndex=this.currentFrame.index,this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,b,c,d,e,f,g){this.game=a,this._parent=b,this._frameData=d,this.name=c,this._frames=[],this._frames=this._frames.concat(e),this.delay=1e3/f,this.looped=g,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.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.looped=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events&&this._parent.events.onAnimationStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,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])},stop:function(a){"undefined"==typeof a&&(a=!1),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,a&&(this.currentFrame=this._frameData.getFrame(this._frames[0]))},onPause:function(){this.isPlaying&&(this._frameDiff=this._timeNextFrame-this.game.time.now)},onResume:function(){this.isPlaying&&(this._timeNextFrame=this.game.time.now+this._frameDiff)},update:function(){return this.isPaused?!1:this.isPlaying===!0&&this.game.time.now>=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.looped?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this._parent.events.onAnimationLoop.dispatch(this._parent,this)):this.onComplete():(this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1))),!0):!1},destroy:function(){this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this)},onComplete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events&&this._parent.events.onAnimationComplete.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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]))}}),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},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.width=b,this.height=c,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,d){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var e,f=new b.FrameData,g=c.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new b.FrameData,r=c.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.onLoadComplete.dispatch()))},loadFile:function(){if(!this._fileList[this._fileIndex])return void console.warn("Phaser.Loader loadFile invalid index "+this._fileIndex);var a=this._fileList[this._fileIndex],c=this;switch(a.type){case"image":case"spritesheet":case"textureatlas":case"bitmapfont":a.data=new Image,a.data.name=a.key,a.data.onload=function(){return c.fileComplete(c._fileIndex)},a.data.onerror=function(){return c.fileError(c._fileIndex)},this.crossOrigin&&(a.data.crossOrigin=this.crossOrigin),a.data.src=this.baseURL+a.url;break;case"audio":a.url=this.getAudioURL(a.url),null!==a.url?this.game.sound.usingWebAudio?(this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send()):this.game.sound.usingAudioTag&&(this.game.sound.touchLocked?(a.data=new Audio,a.data.name=a.key,a.data.preload="auto",a.data.src=this.baseURL+a.url,this.fileComplete(this._fileIndex)):(a.data=new Audio,a.data.name=a.key,a.data.onerror=function(){return c.fileError(c._fileIndex) -},a.data.preload="auto",a.data.src=this.baseURL+a.url,a.data.addEventListener("canplaythrough",b.GAMES[this.game.id].load.fileComplete(this._fileIndex),!1),a.data.load())):this.fileError(this._fileIndex);break;case"json":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return c.jsonLoadComplete(c._fileIndex)},this._xhr.send();break;case"tilemap":if(this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",a.format===b.Tilemap.TILED_JSON)this._xhr.onload=function(){return c.jsonLoadComplete(c._fileIndex)};else{if(a.format!==b.Tilemap.CSV)throw new Error("Phaser.Loader. Invalid Tilemap format: "+a.format);this._xhr.onload=function(){return c.csvLoadComplete(c._fileIndex)}}this._xhr.onerror=function(){return c.dataLoadError(c._fileIndex)},this._xhr.send();break;case"text":case"script":case"physics":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send();break;case"binary":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send()}},getAudioURL:function(a){var b;"string"==typeof a&&(a=[a]);for(var c=0;c100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.crop.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.crop.height=Math.floor(this.preloadSprite.height/100*this.progress)),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&&(console.log(this.currentMarker,"has hit duration"),this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):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(a=a||"",b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),"undefined"==typeof e&&(e=!0),this.isPlaying!==!0||e!==!1||this.override!==!1){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 void console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist");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,this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else 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;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.input: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}},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.stop(),this.isPlaying=!1,this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this))},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.input: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(){this.isPlaying&&this._sound&&(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.isPlaying=!1;var a=this.currentMarker;this.currentMarker="",this.onStop.dispatch(this,a)}},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},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.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)}window.AudioContext?this.context=new window.AudioContext:window.webkitAudioContext?this.context=new window.webkitAudioContext:window.Audio?(this.usingWebAudio=!1,this.usingAudioTag=!0):(this.usingWebAudio=!1,this.noAudio=!0),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;a255)return b.Color.getColor(255,255,255);if(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{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a}},getWebRGB:function(a){var b=(a>>>24)/255,c=a>>16&255,d=a>>8&255,e=255&a;return"rgba("+c.toString()+","+d.toString()+","+e.toString()+","+b.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}},b.Physics={},b.Physics.LIME_CORONA_JSON=0,p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,b.Physics.World=function(a,c){this.game=a,"undefined"==typeof c&&(c={gravity:[0,0],broadphase:new p2.SAPBroadphase}),this.world=new p2.World(c),this.materials=[],this.gravity=new b.Physics.InversePointProxy(a,this.world.gravity),this.bounds=null,this._wallShapes=[null,null,null,null],this.onBodyAdded=new b.Signal,this.onBodyRemoved=new b.Signal,this.onSpringAdded=new b.Signal,this.onSpringRemoved=new b.Signal,this.onConstraintAdded=new b.Signal,this.onConstraintRemoved=new b.Signal,this.onContactMaterialAdded=new b.Signal,this.onContactMaterialRemoved=new b.Signal,this.onPostStep=new b.Signal,this.onPostBroadphase=new b.Signal,this.onImpact=new b.Signal,this.onBeginContact=new b.Signal,this.onEndContact=new b.Signal,this.world.on("postStep",this.postStepHandler,this),this.world.on("postBroadphase",this.postBroadphaseHandler,this),this.world.on("impact",this.impactHandler,this),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this._collisionGroupID=2,this.nothingCollisionGroup=new b.Physics.CollisionGroup(1),this.boundsCollisionGroup=new b.Physics.CollisionGroup(2),this.everythingCollisionGroup=new b.Physics.CollisionGroup(2147483648),this.boundsCollidesWith=[],this.setBoundsToWorld(!0,!0,!0,!0,!1) -},b.Physics.World.prototype={postStepHandler:function(){},postBroadphaseHandler:function(a){for(var b=0;b1&&a.bodyB.id>1},endContactHandler:function(a){a.bodyA.id>1&&a.bodyB.id>1},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._wallShapes[0]&&(this._wallShapes[0].material=a),c&&this._wallShapes[1]&&(this._wallShapes[1].material=a),d&&this._wallShapes[2]&&(this._wallShapes[2].material=a),e&&this._wallShapes[3]&&(this._wallShapes[3].material=a)},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);var j=c/2,k=d/2,l=j+a,m=k+b;if(null!==this.bounds){this.world.removeBody(this.bounds);for(var n=this.bounds.shapes.length;n--;){var o=this.bounds.shapes[n];this.bounds.removeShape(o)}this.bounds.position[0]=this.game.math.px2pi(l),this.bounds.position[1]=this.game.math.px2pi(m)}else this.bounds=new p2.Body({mass:0,position:[this.game.math.px2pi(l),this.game.math.px2pi(m)]});e&&(this._wallShapes[0]=new p2.Plane,i&&(this._wallShapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[0],[this.game.math.px2pi(-j),0],1.5707963267948966)),f&&(this._wallShapes[1]=new p2.Plane,i&&(this._wallShapes[1].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[1],[this.game.math.px2pi(j),0],-1.5707963267948966)),g&&(this._wallShapes[2]=new p2.Plane,i&&(this._wallShapes[2].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[2],[0,this.game.math.px2pi(-k)],-3.141592653589793)),h&&(this._wallShapes[3]=new p2.Plane,i&&(this._wallShapes[3].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[3],[0,this.game.math.px2pi(k)])),this.world.addBody(this.bounds)},update:function(){this.world.step(1/60)},destroy:function(){this.world.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 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},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.setMaterial(a)},createMaterial:function(a,c){a=a||"";var d=new b.Physics.Material(a);return this.materials.push(d),"undefined"!=typeof c&&c.setMaterial(d),d},createContactMaterial:function(a,c,d){"undefined"==typeof a&&(a=this.createMaterial()),"undefined"==typeof c&&(c=this.createMaterial());var e=new b.Physics.ContactMaterial(a,c,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b]);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.springs[b]);return a},hitTest:function(){},toJSON:function(){this.world.toJSON()},createCollisionGroup:function(){var a=Math.pow(2,this._collisionGroupID);this._wallShapes[0]&&(this._wallShapes[0].collisionMask=this._wallShapes[0].collisionMask|a),this._wallShapes[1]&&(this._wallShapes[1].collisionMask=this._wallShapes[1].collisionMask|a),this._wallShapes[2]&&(this._wallShapes[2].collisionMask=this._wallShapes[2].collisionMask|a),this._wallShapes[3]&&(this._wallShapes[3].collisionMask=this._wallShapes[3].collisionMask|a),this._collisionGroupID++;var c=new b.Physics.CollisionGroup(a);return this.collisionGroups.push(c),c},createBody:function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1);var h=new b.Physics.Body(this.game,null,a,c,d);if(g){var i=h.addPolygon(f,g);if(!i)return!1}return e&&this.world.addBody(h.data),h},createParticle:function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1);var h=new b.Physics.Body(this.game,null,a,c,d);if(g){var i=h.addPolygon(f,g);if(!i)return!1}return e&&this.world.addBody(h.data),h}},Object.defineProperty(b.Physics.World.prototype,"friction",{get:function(){return this.world.defaultFriction},set:function(a){this.world.defaultFriction=a}}),Object.defineProperty(b.Physics.World.prototype,"restituion",{get:function(){return this.world.defaultRestitution},set:function(a){this.world.defaultRestitution=a}}),Object.defineProperty(b.Physics.World.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(b.Physics.World.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(b.Physics.World.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(b.Physics.World.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(b.Physics.World.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(b.Physics.World.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(b.Physics.World.prototype,"enableBodySleeping",{get:function(){return this.world.enableBodySleeping},set:function(a){this.world.enableBodySleeping=a}}),b.Physics.PointProxy=function(a,b){this.game=a,this.destination=b},b.Physics.PointProxy.prototype.constructor=b.Physics.PointProxy,Object.defineProperty(b.Physics.PointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.game.math.px2p(a)}}),Object.defineProperty(b.Physics.PointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.game.math.px2p(a)}}),b.Physics.InversePointProxy=function(a,b){this.game=a,this.destination=b},b.Physics.InversePointProxy.prototype.constructor=b.Physics.InversePointProxy,Object.defineProperty(b.Physics.InversePointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.game.math.px2p(-a)}}),Object.defineProperty(b.Physics.InversePointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.game.math.px2p(-a)}}),b.Physics.Body=function(a,c,d,e,f){c=c||null,d=d||0,e=e||0,"undefined"==typeof f&&(f=1),this.game=a,this.sprite=c,this.offset=new b.Point,this.data=new p2.Body({position:[this.px2pi(d),this.px2pi(e)],mass:f}),this.data.parent=this,this.velocity=new b.Physics.InversePointProxy(this.game,this.data.velocity),this.force=new b.Physics.InversePointProxy(this.game,this.data.force),this.gravity=new b.Point,this.collideWorldBounds=!0,this.onImpact=new b.Signal,this.collidesWith=[],this._bodyCallbacks=[],this._bodyCallbackContext=[],this._groupCallbacks=[],this._groupCallbackContext=[],c&&(this.setRectangleFromSprite(c),this.game.physics.addBody(this))},b.Physics.Body.prototype={createBodyCallback:function(a,b,c){this._bodyCallbacks[a.data.id]=b,this._bodyCallbackContext[a.data.id]=c},createGroupCallback:function(a,b,c){this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c},getCollisionMask:function(){var a=0;this.collideWorldBounds&&(a=this.game.physics.boundsCollisionGroup.mask);for(var b=0;b=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,shapes.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&&(shapes.collisionGroup=null),b&&(shapes.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.px2p(b),this.px2p(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.px2p(-a)},rotateRight:function(a){this.data.angularVelocity=this.px2p(a)},moveForward:function(a){var b=this.px2pi(-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.px2pi(-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.px2pi(-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.px2pi(-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.px2pi(-a)},moveRight:function(a){this.data.velocity[0]=this.px2pi(a)},moveUp:function(a){this.data.velocity[1]=this.px2pi(-a)},moveDown:function(a){this.data.velocity[1]=this.px2pi(a)},preUpdate:function(){},postUpdate:function(){this.sprite.x=this.p2pxi(this.data.position[0]),this.sprite.y=this.p2pxi(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(){this.data.world!==this.game.physics.world&&this.game.physics.addBody(this)},removeFromWorld:function(){this.data.world===this.game.physics.world&&this.game.physics.removeBody(this)},destroy:function(){this.removeFromWorld(),this.clearShapes(),this.sprite=null},clearShapes:function(){for(var a=this.data.shapes.length-1;a>=0;a--){var b=this.data.shapes[a];this.data.removeShape(b)}},addShape:function(a,b,c,d){return"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),this.data.addShape(a,[this.px2pi(b),this.px2pi(c)],d),a},addCircle:function(a,b,c,d){var e=new p2.Circle(this.px2p(a));return this.addShape(e,b,c,d)},addRectangle:function(a,b,c,d,e){var f=new p2.Rectangle(this.px2p(a),this.px2p(b));return this.addShape(f,c,d,e)},addPlane:function(a,b,c){var d=new p2.Plane;return this.addShape(d,a,b,c)},addParticle:function(a,b,c){var d=new p2.Particle;return this.addShape(d,a,b,c)},addLine:function(a,b,c,d){var e=new p2.Line(this.px2p(a));return this.addShape(e,b,c,d)},addCapsule:function(a,b,c,d,e){var f=new p2.Capsule(this.px2p(a),b);return this.addShape(f,c,d,e)},addPolygon:function(a,b){a=a||{},b=Array.prototype.slice.call(arguments,1);var c=[];if(1===b.length&&Array.isArray(b[0]))c=b[0].slice(0);else if(Array.isArray(b[0]))c=b[0].slice(0);else if("number"==typeof b[0])for(var d=0,e=b.length;e>d;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},loadPolygon:function(a,b,c){var d=this.game.cache.getPhysicsData(a,b);if(1===d.length){for(var e=[],f=0,g=d.shape.length;g>f;f+=2)e.push([d.shape[f],d.shape[f+1]]);return this.addPolygon(c,e)}for(var h=p2.vec2.create(),f=0;f=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency)},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=this.maxParticles),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1);for(var g,h=0,i=a,j=c;d>h;)null===this.particleClass&&("object"==typeof a&&(i=this.game.rnd.pick(a)),"object"==typeof c&&(j=this.game.rnd.pick(c)),g=new b.Sprite(this.game,0,0,i,j)),e?(g.body.checkCollision.any=!0,g.body.checkCollision.none=!1):g.body.checkCollision.none=!0,g.body.collideWorldBounds=f,g.exists=!1,g.visible=!1,g.anchor.setTo(.5,.5),this.add(g),h++;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.start=function(a,b,c,d){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=250),"undefined"==typeof d&&(d=0),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a?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);if(null!=a){if(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.lifespan=this.lifespan,a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.minParticleSpeed.x!=this.maxParticleSpeed.x?this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x):this.minParticleSpeed.x,a.body.velocity.y=this.minParticleSpeed.y!=this.maxParticleSpeed.y?this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y):this.minParticleSpeed.y,a.body.gravity.y=this.gravity,a.body.angularVelocity=this.minRotation!=this.maxRotation?this.game.rnd.integerInRange(this.minRotation,this.maxRotation):this.minRotation,1!==this.minParticleScale||1!==this.maxParticleScale){var b=this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale);a.scale.setTo(b,b)}a.body.friction=this.particleFriction,a.body.angularDrag=this.angularDrag}},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.width=a,this.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.at=function(a){a.center&&(this.emitX=a.center.x,this.emitY=a.center.y)},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.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.width=e,this.height=f,this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collides=!1,this.collideNone=!0,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={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,this.collideNone=a||b||c||d?!1:!0},resetCollision:function(){this.collideNone=!0,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collides=a.collides,this.collideNone=a.collideNone,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,"canCollide",{get:function(){return this.collides||this.collisionCallback||this.layer.callbacks[this.index]}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.x}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.x+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.y}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.y+this.height}}),b.Tilemap=function(a,c){this.game=a,this.key=c;var d=b.TilemapParser.parse(this.game,c);null!==d&&(this.width=d.width,this.height=d.height,this.tileWidth=d.tileWidth,this.tileHeight=d.tileHeight,this.orientation=d.orientation,this.version=d.version,this.properties=d.properties,this.widthInPixels=d.widthInPixels,this.heightInPixels=d.heightInPixels,this.layers=d.layers,this.tilesets=d.tilesets,this.tiles=d.tiles,this.objects=d.objects,this.collision=d.collision,this.images=d.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.prototype={create:function(a,c,d){for(var e=[],f=0;d>f;f++){e[f]=[];for(var g=0;c>g;g++)e[f][g]=0}this.layers.push({name:a,width:c,height:d,alpha:1,visible:!0,tileMargin:0,tileSpacing:0,format:b.Tilemap.CSV,data:e,indexes:[],dirty:!0}),this.currentLayer=this.layers.length-1},addTilesetImage:function(a,b){if("undefined"==typeof b){if("string"!=typeof a)return!1;b=a}return"string"==typeof a&&(a=this.getTilesetIndex(a)),this.tilesets[a]?(this.tilesets[a].image=this.game.cache.getImage(b),!0):!1},createFromObjects:function(a,b,c,d,e,f,g){if("undefined"==typeof e&&(e=!0),"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=this.game.world),!this.objects[a])return void console.warn("Tilemap.createFromObjects: Invalid objectgroup name given: "+a);for(var h,i=0,j=this.objects[a].length;j>i;i++)if(this.objects[a][i].gid===b){h=g.create(this.objects[a][i].x,this.objects[a][i].y,c,d,e),h.anchor.setTo(0,1),h.name=this.objects[a][i].name,h.visible=this.objects[a][i].visible,h.autoCull=f;for(property in this.objects[a][i].properties)g.set(h,property,this.objects[a][i].properties[property],!1,!1,0)}},clearPhysicsBodies:function(a){a=this.getLayer(a);for(var b=this.layers[a].bodies.length;b--;)this.layers[a].bodies[b].destroy()},generateCollisionData:function(a,b){a=this.getLayer(a),"undefined"==typeof b&&(b=!0),this.layers[a].bodies.length>0&&this.clearPhysicsBodies(a),this.layers[a].bodies.length=[];for(var c=0,d=0,e=0,f=0,g=this.layers[a].height;g>f;f++){c=0;for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];if(j)if(right=this.getTileRight(a,h,f),0===c&&(d=j.x*j.width,e=j.y*j.height,c=j.width),right&&right.collides)c+=j.width;else{var k=this.game.physics.createBody(d,e,0,!1);k.addRectangle(c,j.height,c/2,j.height/2,0),b&&this.game.physics.addBody(k),this.layers[a].bodies.push(k),c=0}}}return this.layers[a].bodies},createCollisionObjects:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=[],d=0,e=this.collision[a].length;e>d;d++){var f=this.collision[a][d],g=this.game.physics.createBody(f.x,f.y,0,b,{},f.polyline);g&&c.push(g)}return c},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))},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;hd;d++)this.setCollisionByIndex(a[d],b,c,!1);this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d){if("undefined"==typeof c&&(c=!0),d=this.getLayer(d),!(a>b)){for(var e=a;b>=e;e++)this.setCollisionByIndex(e,c,d,!1);this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c){"undefined"==typeof b&&(b=!0),c=this.getLayer(c);for(var d=0,e=this.tiles.length;e>d;d++)-1===a.indexOf(d)&&this.setCollisionByIndex(d,b,c,!1);this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0);for(var e=0;ef;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),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&&c=0&&d=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,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.Sprite.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._cw=c.tileWidth,this._ch=c.tileHeight,this._ga=1,this._dx=0,this._dy=0,this._dw=0,this._dh=0,this._tx=0,this._ty=0,this._tw=0,this._th=0,this._tl=0,this._maxX=0,this._maxY=0,this._startX=0,this._startY=0,this._results=[],this._x=0,this._y=0,this._prevX=0,this._prevY=0,this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Sprite.prototype),b.TilemapLayer.prototype=b.Utils.extend(!0,b.TilemapLayer.prototype,b.Sprite.prototype,PIXI.Sprite.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Sprite.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render()},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._x+(a-this._x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._x/this.scrollFactorX+(a-this._x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._y+(a-this._y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._y/this.scrollFactorY+(a-this._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.getTiles=function(a,b,c,d,e){"undefined"==typeof e&&(e=!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._tx=this.game.math.snapToFloor(a,this._cw)/this._cw,this._ty=this.game.math.snapToFloor(b,this._ch)/this._ch,this._tw=(this.game.math.snapToCeil(c,this._cw)+this._cw)/this._cw,this._th=(this.game.math.snapToCeil(d,this._ch)+this._ch)/this._ch,this._results.length=0;for(var f=this._ty;fthis.layer.width&&(this._maxX=this.layer.width),this._maxY>this.layer.height&&(this._maxY=this.layer.height)),this.dirty=!0},b.TilemapLayer.prototype.render=function(){if(this.layer.dirty&&(this.dirty=!0),this.dirty&&this.visible){this._prevX=this._dx,this._prevY=this._dy,this._dx=-(this._x-this._startX*this.map.tileWidth),this._dy=-(this._y-this._startY*this.map.tileHeight),this._tx=this._dx,this._ty=this._dy,this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.fillStyle=this.tileColor;var a,c;this.debug&&(this.context.globalAlpha=this.debugAlpha);for(var d=this._startY,e=this._startY+this._maxY;e>d;d++){this._column=this.layer.data[d];for(var f=this._startX,g=this._startX+this._maxX;g>f;f++)this._column[f]&&(a=this._column[f],this.map.tiles[a.index]&&(c=this.map.tilesets[this.map.tiles[a.index][2]],c.image?(this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.tileWidth!==this.map.tileWidth||c.tileHeight!==this.map.tileHeight?this.context.drawImage(this.map.tilesets[this.map.tiles[a.index][2]].image,this.map.tiles[a.index][0],this.map.tiles[a.index][1],c.tileWidth,c.tileHeight,Math.floor(this._tx),Math.floor(this._ty)-(c.tileHeight-this.map.tileHeight),c.tileWidth,c.tileHeight):this.context.drawImage(this.map.tilesets[this.map.tiles[a.index][2]].image,this.map.tiles[a.index][0],this.map.tiles[a.index][1],this.map.tileWidth,this.map.tileHeight,Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight))):this.context.fillRect(Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight))),this._tx+=this.map.tileWidth;this._tx=this._dx,this._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._tx=this._dx,this._ty=this._dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._startY,b=this._startY+this._maxY;b>a;a++){this._column=this.layer.data[a];for(var c=this._startX,d=this._startX+this._maxX;d>c;c++){var e=this._column[c];e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._tx=Math.floor(this._tx),this.debugFill&&this.context.fillRect(this._tx,this._ty,this._cw,this._ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._tx,this._ty),this.context.lineTo(this._tx+this._cw,this._ty)),e.faceBottom&&(this.context.moveTo(this._tx,this._ty+this._ch),this.context.lineTo(this._tx+this._cw,this._ty+this._ch)),e.faceLeft&&(this.context.moveTo(this._tx,this._ty),this.context.lineTo(this._tx,this._ty+this._ch)),e.faceRight&&(this.context.moveTo(this._tx+this._cw,this._ty),this.context.lineTo(this._tx+this._cw,this._ty+this._ch)),this.context.stroke()),e&&(e.collisionCallback||e.layer.callbacks[e.index])&&(this.context.fillStyle=this.debugCallbackColor,this.context.fillRect(this._tx,this._ty,this._cw,this._ch),this.context.fillStyle=this.debugFillColor),this._tx+=this.map.tileWidth}this._tx=this._dx,this._ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._x},set:function(a){a!==this._x&&a>=0&&this.layer.widthInPixels>this.width&&(this._x=a,this._x>this.layer.widthInPixels-this.width&&(this._x=this.layer.widthInPixels-this.width),this._startX=this.game.math.floor(this._x/this.map.tileWidth),this._startX<0&&(this._startX=0),this._startX+this._maxX>this.layer.width&&(this._startX=this.layer.width-this._maxX),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._y},set:function(a){a!==this._y&&a>=0&&this.layer.heightInPixels>this.height&&(this._y=a,this._y>this.layer.heightInPixels-this.height&&(this._y=this.layer.heightInPixels-this.height),this._startY=this.game.math.floor(this._y/this.map.tileHeight),this._startY<0&&(this._startY=0),this._startY+this._maxY>this.layer.height&&(this._startY=this.layer.height-this._maxY),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._cw},set:function(a){this._cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._ch},set:function(a){this._ch=a,this.dirty=!0}}),b.TilemapParser={tileset:function(a,c,d,e,f,g,h,i,j){var k=a.cache.getTilesetImage(c);if(null===k)return console.warn("Phaser.TilemapParser.tileSet: Invalid image key given"),null;var l=k.width,m=k.height;return-1===h&&(h=Math.round(l/d)),-1===i&&(i=Math.round(m/e)),-1===j&&(j=h*i),0===l||0===m||d>l||e>m||0===j?(console.warn("Phaser.TilemapParser.tileSet: width/height zero or width/height < given tileWidth/tileHeight"),null):new b.Tileset(k,c,d,e,f,g,h,i,j)},parse:function(a,c){var d=a.cache.getTilemapData(c);return d?d.format===b.Tilemap.CSV?this.parseCSV(d.data):d.format===b.Tilemap.TILED_JSON?this.parseTiledJSON(d.data):void 0:this.getEmptyData()},parseCSV:function(a){a=a.trim();for(var b=[],c=a.split("\n"),d=c.length,e=0,f=0;fj;j++)h.push(a.layers[e].data[j]>0?new b.Tile(f,a.layers[e].data[j],g,i.length,a.tilewidth,a.tileheight):null),g++,g===a.layers[e].width&&(i.push(h),g=0,h=[]);f.data=i,d.push(f)}c.layers=d;for(var l=[],e=0;ep;p++)if(a.layers[e].objects[p].gid){var q={gid:a.layers[e].objects[p].gid,name:a.layers[e].objects[p].name,x:a.layers[e].objects[p].x,y:a.layers[e].objects[p].y,visible:a.layers[e].objects[p].visible,properties:a.layers[e].objects[p].properties};n[a.layers[e].name].push(q)}else if(a.layers[e].objects[p].polyline){var q={name:a.layers[e].objects[p].name,x:a.layers[e].objects[p].x,y:a.layers[e].objects[p].y,width:a.layers[e].objects[p].width,height:a.layers[e].objects[p].height,visible:a.layers[e].objects[p].visible,properties:a.layers[e].objects[p].properties};q.polyline=[];for(var r=0;rb;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._nextOffsetCheck=this.game.time.now+this.checkOffsetInterval)},b.Stage.prototype.parseConfig=function(a){this.game.canvas=a.canvasID?b.Canvas.create(this.game.width,this.game.height,a.canvasID):b.Canvas.create(this.game.width,this.game.height),a.canvasStyle?this.game.canvas.stlye=a.canvasStyle:this.game.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",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=new b.Rectangle(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&&(window.onpagehide=this._onChange,window.onpageshow=this._onChange),window.onblur=this._onChange,window.onfocus=this._onChange},b.Stage.prototype.visibilityChange=function(a){return this.disableVisibilityChange?void 0:"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.gamePaused(a.timeStamp):("pageshow"===a.type||"focus"===a.type)&&this.game.gameResumed(a.timeStamp)):void(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden?this.game.gamePaused(a.timeStamp):this.game.gameResumed(a.timeStamp))},b.Stage.prototype.setBackgroundColor=function(a){this._backgroundColor=a||0,this.backgroundColorSplit=PIXI.hex2rgb(this.backgroundColor);var b=this._backgroundColor.toString(16);b="000000".substr(0,6-b.length)+b,this.backgroundColorString="#"+b},Object.defineProperty(b.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this._backgroundColor=a,this.game.transparent===!1&&("string"==typeof a&&(a=b.Color.hexToRGB(a)),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){"undefined"==typeof e&&(e=!1),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.type=b.GROUP,this.alive=!0,this.exists=!0,this.scale=new b.Point(1,1),this.cursor=null,this._cursorIndex=0,this.cameraOffset=new b.Point,this._cache=new Int16Array([0,0,0,0,1,0,1,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){return a.parent!==this&&(this.addChild(a),a.events&&a.events.onAddedToGroup.dispatch(a,this)),null===this.cursor&&(this.cursor=a),a},b.Group.prototype.addAt=function(a,b){return a.parent!==this&&(this.addChildAt(a,b),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,c,d,e,f){"undefined"==typeof f&&(f=!0);var g=new b.Sprite(this.game,a,c,d,e);return g.exists=f,g.visible=f,g.alive=f,this.addChild(g),g.events&&g.events.onAddedToGroup.dispatch(g,this),null===this.cursor&&(this.cursor=g),g},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.next=function(){this.cursor&&(this._cursorIndex===this.children.length?this._cursorIndex=0:this._cursorIndex++,this.cursor=this.children[this._cursorIndex])},b.Group.prototype.previous=function(){this.cursor&&(0===this._cursorIndex?this._cursorIndex=this.children.length-1:this._cursorIndex--,this.cursor=this.children[this._cursorIndex])},b.Group.prototype.swap=function(a,b){return this.swapChildren(a,b)},b.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a),this.addAt(a,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(b,c)}return a},b.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},b.Group.prototype.replace=function(a,b){var c=this.getIndex(a);-1!==c&&(void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b)),this.removeChild(a),this.addChildAt(b,c),b.events.onAddedToGroup.dispatch(b,this),this.cursor===a&&(this.cursor=b))},b.Group.prototype.setProperty=function(a,b,c,d){d=d||0;var e=b.length;1==e?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==e?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==e?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==e&&(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))},b.Group.prototype.set=function(a,b,c,d,e,f){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)},b.Group.prototype.setAll=function(a,b,c,d,e){a=a.split("."),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),e=e||0;for(var f=0,g=this.children.length;g>f;f++)(!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&this.setProperty(this.children[f],a,b,e)},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){"undefined"==typeof a&&(a="y"),"undefined"==typeof c&&(c=b.Group.SORT_ASCENDING)},b.Group.prototype.sortHandler=function(){},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.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){return 0!==this.children.length?(a.events&&a.events.onRemovedFromGroup.dispatch(a,this),this.removeChild(a),this.cursor===a&&this.next(),!0):void 0},b.Group.prototype.removeAll=function(){if(0!==this.children.length){do this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this),this.removeChild(this.children[0]);while(this.children.length>0);this.cursor=null}},b.Group.prototype.removeBetween=function(a,b){if(0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var c=a;b>c;c++)this.children[c].events&&this.children[c].events.onRemovedFromGroup.dispatch(this.children[c],this),this.removeChild(this.children[c]),this.cursor===child&&(this.cursor=null)}},b.Group.prototype.destroy=function(a){if(null!==this.game){if("undefined"==typeof a&&(a=!0),a){if(this.children.length>0)do this.children[0].parent&&this.children[0].destroy(a);while(this.children.length>0)}else this.removeAll();this.parent.removeChild(this),this.game=null,this.exists=!1,this.cursor=null}},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.game.camera=this.camera,this.game.stage.addChild(this)},b.World.prototype.setBounds=function(a,b,c,d){cwindow.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.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;var e=this;window.addEventListener("orientationchange",function(a){return e.checkOrientation(a)},!1),window.addEventListener("resize",function(a){return e.checkResize(a)},!1),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.game.canvas[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT):this.game.canvas[this.game.device.requestFullscreen]())},stopFullScreen:function(){this.game.canvas[this.game.device.cancelFullscreen]()},fullScreenChange:function(a){this.event=a,this.isFullScreen?(this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?(this.game.canvas.style.width="100%",this.game.canvas.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.game.canvas.style.width=this.game.width+"px",this.game.canvas.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,b,c){"undefined"==typeof b&&(b=!1),this.forceLandscape=a,this.forcePortrait=b,"undefined"!=typeof c&&((null==c||this.game.cache.checkImageKey(c)===!1)&&(c="__default"),this.orientationSprite=new PIXI.Sprite(PIXI.TextureCache[c]),this.orientationSprite.anchor.x=.5,this.orientationSprite.anchor.y=.5,this.orientationSprite.position.x=this.game.width/2,this.orientationSprite.position.y=this.game.height/2,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===!1&&this.game.device.webApp===!1&&this.game.device.desktop===!1&&(this.game.device.android&&this.game.device.chrome===!1?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===!1&&this.game.device.webApp===!1&&this.game.device.desktop===!1&&(this.game.device.android&&this.game.device.chrome===!1?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===!0?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===!1&&(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.renderer=b.AUTO,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._paused=!1,this._codePaused=!1,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[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.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.physicsConfig&&(this.physicsConfig=a.physicsConfig);var c=null;a.state&&(c=a.state),this.state=new b.StateManager(this,c)},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.isBooted=!0,this.device=new b.Device(this),this.math=b.Math,this.rnd=new b.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.stage=new b.Stage(this,this.width,this.height),this.scale=new b.ScaleManager(this,this.width,this.height),this.setUpRenderer(),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.World(this,this.physicsConfig),this.particles=new b.Particles(this),this.plugins=new b.PluginManager(this,this),this.net=new b.Net(this),this.debug=new b.Utils.Debug(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.input.boot(),this.sound.boot(),this.state.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.DEV_VERSION,c="Canvas",d="HTML Audio";if(this.renderType==b.WEBGL?c="WebGL":this.renderType==b.HEADLESS&&(c="Headless"),this.device.webAudio&&(d="WebAudio"),this.device.chrome){var e=["%c %c %c Phaser v"+a+" - Renderer: "+c+" - Audio: "+d+" %c %c ","background: #00bff3","background: #0072bc","color: #ffffff; background: #003471","background: #0072bc","background: #00bff3"];console.log.apply(console,e)}else console.log("Phaser v"+a+" - Renderer: "+c+" - Audio: "+d)},setUpRenderer:function(){if(this.device.trident&&(this.renderType=b.CANVAS),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.context=null;this.stage.smoothed=this.antialias,b.Canvas.addToDOM(this.canvas,this.parent,!0),b.Canvas.setTouchAction(this.canvas)},update:function(a){this.time.update(a),this._paused?(this.input.update(),this.renderType!==b.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender())):(this.pendingStep||(this.stepping&&(this.pendingStep=!0),this.state.preUpdate(),this.plugins.preUpdate(),this.stage.preUpdate(),this.stage.update(),this.tweens.update(),this.sound.update(),this.input.update(),this.state.update(),this.physics.update(),this.particles.update(),this.plugins.update(),this.stage.postUpdate(),this.plugins.postUpdate()),this.renderType!==b.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender()))},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.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(a),this.sound.setMute(),this.onPause.dispatch(this))},gameResumed:function(a){this._paused&&!this._codePaused&&(this._paused=!1,this.time.gameResumed(a),this.input.reset(),this.sound.unsetMute(),this.onResume.dispatch(this))}},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.mute=!0,this.time.gamePaused(),this.onPause.dispatch(this)):this._paused&&(this._paused=!1,this._codePaused=!1,this.input.reset(),this.sound.mute=!1,this.time.gameResumed(),this.onResume.dispatch(this))}}),b.Input=function(a){this.game=a,this.hitCanvas=null,this.hitContext=null,this.moveCallback=null,this.moveCallbackContext=this,this.pollRate=0,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=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.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.interactiveItems=new b.LinkedList,this._localPoint=new b.Point +},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.moveCallback=null},setMoveCallback:function(a,b){this.moveCallback=a,this.moveCallbackContext=b},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===!0&&(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.interactiveItems.callAll("reset")),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},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.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.isDown&&(this.duration=this.game.time.now-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(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(){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(){this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=this.game.time.now-this.timeDown},justPressed:function(a){return"undefined"==typeof a&&(a=2500),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.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.game.paused)return this;if(this.game.input.moveCallback&&this.game.input.moveCallback.call(this.game.input.moveCallbackContext,this,this.x,this.y),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 d=this.game.input.interactiveItems.next;do(d.pixelPerfectClick||d.pixelPerfectOver||d.priorityID>this._highestInputPriorityID||d.priorityID===this._highestInputPriorityID&&d.sprite._cache[3]=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.total>0){var c=this.game.input.interactiveItems.next;do c&&c._releasedHandler(this),c=c.next;while(null!=c)}return this.targetObject&&this.targetObject._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.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}},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(){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("touchenter",this._onTouchEnter,!1),this.game.canvas.addEventListener("touchleave",this._onTouchLeave,!1),this.game.canvas.addEventListener("touchcancel",this._onTouchCancel,!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&&e>this.deadZone||0>e&&e<-this.deadZone?{axis:d,value:e}:{axis:d,value:0})}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this._connected;this._index=a.index,this._connected=!0,this._rawPad=a,this._rawButtons=a.buttons,this._axes=a.axes,b&&this._padParent.onConnectCallback&&this._padParent.onConnectCallback.call(this._padParent.callbackContext,this._index),b&&this.onConnectCallback&&this.onConnectCallback.call(this.callbackContext)},disconnect:function(){var a=this._connected;this._connected=!1,this._rawPad=void 0,this._rawButtons=[],this._buttons=[];var b=this._index;this._index=null,a&&this._padParent.onDisconnectCallback&&this._padParent.onDisconnectCallback.call(this._padParent.callbackContext,b),a&&this.onDisconnectCallback&&this.onDisconnectCallback.call(this.callbackContext)},processAxisChange:function(a){this.game.input.disabled||this.game.input.gamepad.disabled||this._axes[a.axis]!==a.value&&(this._axes[a.axis]=a.value,this._padParent.onAxisCallback&&this._padParent.onAxisCallback.call(this._padParent.callbackContext,a,this._index),this.onAxisCallback&&this.onAxisCallback.call(this.callbackContext,a))},processButtonDown:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onDownCallback&&this._padParent.onDownCallback.call(this._padParent.callbackContext,a,b,this._index),this.onDownCallback&&this.onDownCallback.call(this.callbackContext,a,b),this._buttons[a]&&this._buttons[a].isDown?this._buttons[a].duration=this.game.time.now-this._buttons[a].timeDown:this._buttons[a]?(this._buttons[a].isDown=!0,this._buttons[a].timeDown=this.game.time.now,this._buttons[a].duration=0,this._buttons[a].value=b):this._buttons[a]={isDown:!0,timeDown:this.game.time.now,timeUp:0,duration:0,value:b},this._hotkeys[a]&&this._hotkeys[a].processButtonDown(b))},processButtonUp:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onUpCallback&&this._padParent.onUpCallback.call(this._padParent.callbackContext,a,b,this._index),this.onUpCallback&&this.onUpCallback.call(this.callbackContext,a,b),this._hotkeys[a]&&this._hotkeys[a].processButtonUp(b),this._buttons[a]?(this._buttons[a].isDown=!1,this._buttons[a].timeUp=this.game.time.now,this._buttons[a].value=b):this._buttons[a]={isDown:!1,timeDown:this.game.time.now,timeUp:this.game.time.now,duration:0,value:b})},processButtonFloat:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onFloatCallback&&this._padParent.onFloatCallback.call(this._padParent.callbackContext,a,b,this._index),this.onFloatCallback&&this.onFloatCallback.call(this.callbackContext,a,b),this._buttons[a]?this._buttons[a].value=b:this._buttons[a]={value:b},this._hotkeys[a]&&this._hotkeys[a].processButtonFloat(b))},axis:function(a){return this._axes[a]?this._axes[a]:!1},isDown:function(a){return this._buttons[a]?this._buttons[a].isDown:!1},justReleased:function(a,b){return"undefined"==typeof b&&(b=250),this._buttons[a]&&this._buttons[a].isDown===!1&&this.game.time.now-this._buttons[a].timeUpd;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.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},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.enabled&&(this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},pointerX:function(a){return a=a||0,this._pointerData[a].x},pointerY:function(a){return a=a||0,this._pointerData[a].y},pointerDown:function(a){return a=a||0,this._pointerData[a].isDown},pointerUp:function(a){return a=a||0,this._pointerData[a].isUp},pointerTimeDown:function(a){return a=a||0,this._pointerData[a].timeDown},pointerTimeUp:function(a){return a=a||0,this._pointerData[a].timeUp},pointerOver:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOver;for(var b=0;10>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 this.enabled===!1||this.sprite.visible===!1||this.sprite.parent.visible===!1?!1: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===!1||this.sprite.visible===!1||this.sprite.parent.visible===!1?!1: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?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.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.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.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.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default")),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){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):this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y)):this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y),this.updateDrag(a),this.bringToTop&&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.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.sprite.events.onInputUp.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){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof snapOffsetX&&(snapOffsetX=0),"undefined"==typeof snapOffsetY&&(snapOffsetY=0),this.snapX=a,this.snapY=b,this.snapOffsetX=snapOffsetX,this.snapOffsetY=snapOffsetY,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.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){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.Group(this.game,a,c,d)},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))},bitmapFont:function(a,c,d,e,f,g,h,i,j){return new b.BitmapFont(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){return new b.Tilemap(this.game,a,c)},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){"undefined"==typeof d&&(d=!1),("undefined"==typeof key||""===key)&&(key=this.game.rnd.uuid());var e=new b.BitmapData(this.game,key,a,c);return d&&this.game.cache.addBitmapData(key,e),e},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.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 this.game.tweens.create(a)},group:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.Group(this.game,a,c,d)},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)},bitmapFont:function(a,c,d,e,f,g,h,i,j){return new b.BitmapFont(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){return new b.Tilemap(this.game,a,c)},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){"undefined"==typeof d&&(d=!1),("undefined"==typeof key||""===key)&&(key=this.game.rnd.uuid());var e=new b.BitmapData(this.game,key,a,c);return d&&this.game.cache.addBitmapData(key,e),e},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.pixels=this.imageData.data.buffer?this.imageData.data.buffer: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.type=b.BITMAPDATA,this._dirty=!1},b.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;b=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=f<<24|e<<16|d<<8|c,this.context.putImageData(this.imageData,0,0),this._dirty=!0)},setPixel:function(a,b,c,d,e){this.setPixel32(a,b,c,d,e,255)},getPixel:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.data32[b*this.width+a]:void 0},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.data32[b*this.width+a]:void 0},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},copyPixels:function(a,b,c,d){"string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height)},draw:function(a,b,c){"string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,0,0,a.width,a.height,b,c,a.width,a.height)},alphaMask:function(a,b){var c=this.context.globalCompositeOperation;"string"==typeof b&&(b=this.game.cache.getImage(b)),b&&this.context.drawImage(b,0,0),this.context.globalCompositeOperation="source-atop","string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,0,0),this.context.globalCompositeOperation=c},render:function(){this._dirty&&(this.game.renderType===b.WEBGL&&PIXI.texturesToUpdate.push(this.baseTexture),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.events=new b.Events(this),this.animations=new b.AnimationManager(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.body=null,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this._cache=new Int16Array([0,0,0,0,1,0,1,0]),this._bounds=new b.Rectangle},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4])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._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;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();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._dirty&&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.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Sprite.prototype.loadTexture=function(a,c){return c=c||0,a instanceof b.RenderTexture?(this.key=a.key,void this.setTexture(a)):a instanceof b.BitmapData?(this.key=a.key,void this.setTexture(a.texture)):a instanceof PIXI.Texture?(this.key=a,void this.setTexture(a)):null===a||"undefined"==typeof a?(this.key="__default",void this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?this.game.cache.isSpriteSheet(a)?(this.key=a,this.animations.loadFrameData(this.game.cache.getFrameData(a)),"string"==typeof c?this.frameName=c:this.frame=c,void 0):(this.key=a,void this.setTexture(PIXI.TextureCache[a])):(this.key="__missing",void this.setTexture(PIXI.TextureCache[this.key]))},b.Sprite.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.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){"undefined"==typeof a&&(a=!0),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.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null}},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},b.Sprite.prototype.bringToTop=function(a){return"undefined"==typeof a&&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},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.stop()}}),Object.defineProperty(b.Sprite.prototype,"physicsEnabled",{get:function(){return null!==this.body},set:function(a){a?null===this.body&&(this.body=new b.Physics.Body(this.game,this,this.x,this.y,1),this.anchor.set(.5)):this.body&&this.body.destroy()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&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)}}),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.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=new Int16Array([0,0,0,0,1,0,1,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._dirty&&this.key.render(),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,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.key,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){"undefined"==typeof a&&(a=!0),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}},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(a){return"undefined"==typeof a&&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(){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){return c=c||0,a instanceof b.RenderTexture?(this.key=a.key,void this.setTexture(a)):a instanceof b.BitmapData?(this.key=a.key,void this.setTexture(a.texture)):a instanceof PIXI.Texture?(this.key=a,void this.setTexture(a)):null===a||"undefined"==typeof a?(this.key="__default",void this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?this.game.cache.isSpriteSheet(a)?(this.key=a,this.animations.loadFrameData(this.game.cache.getFrameData(a)),"string"==typeof c?this.frameName=c:this.frame=c,void 0):(this.key=a,void this.setTexture(PIXI.TextureCache[a])):(this.key="__missing",void this.setTexture(PIXI.TextureCache[this.key]))},b.TileSprite.prototype.destroy=function(a){if(null!==this.game){"undefined"==typeof a&&(a=!0),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}},b.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},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,"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.stop()}}),b.Text=function(a,c,d,e,f){c=c||0,d=d||0,e=e||"",f=f||"",this.game=a,this.exists=!0,this.name="",this.type=b.TEXT,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,PIXI.Text.call(this,e,f),this.position.set(c,d),this._cache=new Int16Array([0,0,0,0,1,0,1,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.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.Text.prototype.destroy=function(a){if(null!==this.game){"undefined"==typeof a&&(a=!0),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}},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]+" ")}d?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.BitmapFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.BitmapFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.BitmapFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.BitmapFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.BitmapFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.BitmapFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.BitmapFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.BitmapFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.BitmapFont.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.BitmapFont.prototype.resize=function(a,b){if(this.width=a,this.height=b,this.frame.width=this.width,this.frame.height=this.height,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.renderer.type===PIXI.WEBGL_RENDERER){this.projection.x=this.width/2,this.projection.y=-this.height/2;var c=this.renderer.gl;c.bindTexture(c.TEXTURE_2D,this.baseTexture._glTextures[c.id]),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,this.width,this.height,0,c.RGBA,c.UNSIGNED_BYTE,null)}else this.textureBuffer.resize(this.width,this.height);PIXI.Texture.frameUpdates.push(this)},b.BitmapFont.prototype.buildBitmapFontText=function(){var a=0,c=0;if(this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY),this.textureBuffer.clear();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(fixedWidth,this.characterHeight):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight),this.textureBuffer.clear(),this.align){case b.BitmapFont.ALIGN_LEFT:a=0;break;case b.BitmapFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.BitmapFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.pasteLine(this._text,a,0,this.customSpacingX)}},b.BitmapFont.prototype.pasteLine=function(a,c,d){for(var e=new b.Point,f=0;f=0&&(this.stamp.frame=this.grabData[a.charCodeAt(f)],e.set(c,d),this.render(this.stamp,e,!1),c+=this.characterWidth+this.customSpacingX,c>this.width))break},b.BitmapFont.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.BitmapFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},Object.defineProperty(b.BitmapFont.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.buildBitmapFontText())}}),b.Canvas={create:function(a,b,c,d){if("undefined"==typeof d&&(d=!1),a=a||256,b=b||256,d)var e=document.createElement("canvas");else var e=document.createElement(navigator.isCocoonJS?"screencanvas":"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.patchAndroidClearRectBug=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!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.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.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkOS()},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),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0)},_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},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0,this.typedArray=!0):(this.littleEndian=!1,this.typedArray=!1),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(this.vibration=!0)},_checkCSS3D:function(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),this.css3D=void 0!==a&&a.length>0&&"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.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(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},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)},nearestAngleBetween:function(a,b,c){"undefined"==typeof c&&(c=!0);var d=c?Math.PI:180;return a=this.normalizeAngle(a,c),b=this.normalizeAngle(b,c),-d/2>a&&b>d/2&&(a+=2*d),-d/2>b&&a>d/2&&(b+=2*d),b-a},interpolateAngles:function(a,b,c,d,e){return"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=null),a=this.normalizeAngle(a,d),b=this.normalizeAngleToAnother(b,a,d),"function"==typeof e?e(c,a,b-a,1):this.interpolateFloat(a,b,c)},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},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},max:function(){for(var a=1,b=0,c=arguments.length;c>a;a++)arguments[b]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){return this.wrap(a,-180,180)},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)},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},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: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 b>=a?0:a>=c?1:(a=(a-b)/(c-b),a*a*(3-2*a))},smootherstep:function(a,b,c){return b>=a?0:a>=c?1:(a=(a-b)/(c-b),a*a*a*(a*(6*a-15)+10))},sign:function(a){return 0>a?-1:a>0?1:0},p2px:function(a){return a*=20},px2p:function(a){return.05*a},p2pxi:function(a){return a*=-20},px2pi:function(a){return a*-.05},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(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)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*a.length)]},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.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){this._object=a,this.game=c,this._manager=this.game.tweens,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;for(var d in a)this._valuesStart[d]=parseFloat(a[d],10);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;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},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(this._valuesEnd[a]instanceof Array){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],this._valuesStart[a]instanceof Array==!1&&(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},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,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),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._reversed=!this._reversed}this._valuesStart[b]=this._valuesStartRepeat[b]}return 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.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()},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._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.physicsElapsed=1*(this.elapsed/1e3),!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},update:function(a){if(this.paused)return!0;for(this._now=a,this._len=this.events.length,this._i=0;this._i=this.nextTick&&this._len>0){for(this._i=0;this._i=this.events[this._i].tick;){var b=this._now-this.events[this._i].tick,c=this._now+this.events[this._i].delay-b;0>c&&(c=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=c,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=c,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args),this.events.splice(this._i,1),this._len--),this._i++}this.events.length>0?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&!this.expired&&(this._pauseStarted=this.game.time.now,this.paused=!0,this._codePaused=!0)},_pause:function(){this.running&&!this.expired&&(this._pauseStarted=this.game.time.now,this.paused=!0)},resume:function(){if(this.running&&!this.expired){for(var a=this.game.time.now-this._pauseStarted,b=0;bthis._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._now-this._started}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return.001*this.ms}}),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.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a){this._frameData=a,this.frame=0,this.isLoaded=!0},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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__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){if(this._anims[a]){if(this.currentAnim!=this._anims[a])return this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d);if(this.currentAnim.isPlaying===!1)return this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)}},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},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(){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._frameIndex=a,this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),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._frameIndex=this.currentFrame.index,this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,b,c,d,e,f,g){this.game=a,this._parent=b,this._frameData=d,this.name=c,this._frames=[],this._frames=this._frames.concat(e),this.delay=1e3/f,this.looped=g,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.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.looped=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events&&this._parent.events.onAnimationStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,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])},stop:function(a){"undefined"==typeof a&&(a=!1),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,a&&(this.currentFrame=this._frameData.getFrame(this._frames[0]))},onPause:function(){this.isPlaying&&(this._frameDiff=this._timeNextFrame-this.game.time.now)},onResume:function(){this.isPlaying&&(this._timeNextFrame=this.game.time.now+this._frameDiff)},update:function(){return this.isPaused?!1:this.isPlaying===!0&&this.game.time.now>=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.looped?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this._parent.events.onAnimationLoop.dispatch(this._parent,this)):this.onComplete():(this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1))),!0):!1},destroy:function(){this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this)},onComplete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events&&this._parent.events.onAnimationComplete.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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]))}}),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},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.width=b,this.height=c,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,d){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var e,f=new b.FrameData,g=c.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new b.FrameData,r=c.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.onLoadComplete.dispatch()))},loadFile:function(){if(!this._fileList[this._fileIndex])return void console.warn("Phaser.Loader loadFile invalid index "+this._fileIndex);var a=this._fileList[this._fileIndex],c=this;switch(a.type){case"image":case"spritesheet":case"textureatlas":case"bitmapfont":a.data=new Image,a.data.name=a.key,a.data.onload=function(){return c.fileComplete(c._fileIndex) +},a.data.onerror=function(){return c.fileError(c._fileIndex)},this.crossOrigin&&(a.data.crossOrigin=this.crossOrigin),a.data.src=this.baseURL+a.url;break;case"audio":a.url=this.getAudioURL(a.url),null!==a.url?this.game.sound.usingWebAudio?(this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send()):this.game.sound.usingAudioTag&&(this.game.sound.touchLocked?(a.data=new Audio,a.data.name=a.key,a.data.preload="auto",a.data.src=this.baseURL+a.url,this.fileComplete(this._fileIndex)):(a.data=new Audio,a.data.name=a.key,a.data.onerror=function(){return c.fileError(c._fileIndex)},a.data.preload="auto",a.data.src=this.baseURL+a.url,a.data.addEventListener("canplaythrough",b.GAMES[this.game.id].load.fileComplete(this._fileIndex),!1),a.data.load())):this.fileError(this._fileIndex);break;case"json":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return c.jsonLoadComplete(c._fileIndex)},this._xhr.send();break;case"tilemap":if(this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",a.format===b.Tilemap.TILED_JSON)this._xhr.onload=function(){return c.jsonLoadComplete(c._fileIndex)};else{if(a.format!==b.Tilemap.CSV)throw new Error("Phaser.Loader. Invalid Tilemap format: "+a.format);this._xhr.onload=function(){return c.csvLoadComplete(c._fileIndex)}}this._xhr.onerror=function(){return c.dataLoadError(c._fileIndex)},this._xhr.send();break;case"text":case"script":case"physics":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send();break;case"binary":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send()}},getAudioURL:function(a){var b;"string"==typeof a&&(a=[a]);for(var c=0;c100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.crop.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.crop.height=Math.floor(this.preloadSprite.height/100*this.progress)),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&&(console.log(this.currentMarker,"has hit duration"),this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):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(a=a||"",b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),"undefined"==typeof e&&(e=!0),this.isPlaying!==!0||e!==!1||this.override!==!1){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 void console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist");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,this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else 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;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.input: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}},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.stop(),this.isPlaying=!1,this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this))},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.input: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(){this.isPlaying&&this._sound&&(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.isPlaying=!1;var a=this.currentMarker;this.currentMarker="",this.onStop.dispatch(this,a)}},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},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.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)}window.AudioContext?this.context=new window.AudioContext:window.webkitAudioContext?this.context=new window.webkitAudioContext:window.Audio?(this.usingWebAudio=!1,this.usingAudioTag=!0):(this.usingWebAudio=!1,this.noAudio=!0),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;a255)return b.Color.getColor(255,255,255); +if(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{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a}},getWebRGB:function(a){var b=(a>>>24)/255,c=a>>16&255,d=a>>8&255,e=255&a;return"rgba("+c.toString()+","+d.toString()+","+e.toString()+","+b.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}},b.Physics={},b.Physics.LIME_CORONA_JSON=0,p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,b.Physics.World=function(a,c){this.game=a,"undefined"==typeof c&&(c={gravity:[0,0],broadphase:new p2.SAPBroadphase}),this.world=new p2.World(c),this.materials=[],this.gravity=new b.Physics.InversePointProxy(a,this.world.gravity),this.bounds=null,this._wallShapes=[null,null,null,null],this.onBodyAdded=new b.Signal,this.onBodyRemoved=new b.Signal,this.onSpringAdded=new b.Signal,this.onSpringRemoved=new b.Signal,this.onConstraintAdded=new b.Signal,this.onConstraintRemoved=new b.Signal,this.onContactMaterialAdded=new b.Signal,this.onContactMaterialRemoved=new b.Signal,this.onPostStep=new b.Signal,this.onPostBroadphase=new b.Signal,this.onImpact=new b.Signal,this.onBeginContact=new b.Signal,this.onEndContact=new b.Signal,this.world.on("postStep",this.postStepHandler,this),this.world.on("postBroadphase",this.postBroadphaseHandler,this),this.world.on("impact",this.impactHandler,this),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this._collisionGroupID=2,this.nothingCollisionGroup=new b.Physics.CollisionGroup(1),this.boundsCollisionGroup=new b.Physics.CollisionGroup(2),this.everythingCollisionGroup=new b.Physics.CollisionGroup(2147483648),this.boundsCollidesWith=[],this.setBoundsToWorld(!0,!0,!0,!0,!1)},b.Physics.World.prototype={postStepHandler:function(){},postBroadphaseHandler:function(a){for(var b=0;b1&&a.bodyB.id>1},endContactHandler:function(a){a.bodyA.id>1&&a.bodyB.id>1},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._wallShapes[0]&&(this._wallShapes[0].material=a),c&&this._wallShapes[1]&&(this._wallShapes[1].material=a),d&&this._wallShapes[2]&&(this._wallShapes[2].material=a),e&&this._wallShapes[3]&&(this._wallShapes[3].material=a)},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);var j=c/2,k=d/2,l=j+a,m=k+b;if(null!==this.bounds){this.world.removeBody(this.bounds);for(var n=this.bounds.shapes.length;n--;){var o=this.bounds.shapes[n];this.bounds.removeShape(o)}this.bounds.position[0]=this.game.math.px2pi(l),this.bounds.position[1]=this.game.math.px2pi(m)}else this.bounds=new p2.Body({mass:0,position:[this.game.math.px2pi(l),this.game.math.px2pi(m)]});e&&(this._wallShapes[0]=new p2.Plane,i&&(this._wallShapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[0],[this.game.math.px2pi(-j),0],1.5707963267948966)),f&&(this._wallShapes[1]=new p2.Plane,i&&(this._wallShapes[1].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[1],[this.game.math.px2pi(j),0],-1.5707963267948966)),g&&(this._wallShapes[2]=new p2.Plane,i&&(this._wallShapes[2].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[2],[0,this.game.math.px2pi(-k)],-3.141592653589793)),h&&(this._wallShapes[3]=new p2.Plane,i&&(this._wallShapes[3].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[3],[0,this.game.math.px2pi(k)])),this.world.addBody(this.bounds)},update:function(){this.world.step(1/60)},destroy:function(){this.world.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 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},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.setMaterial(a)},createMaterial:function(a,c){a=a||"";var d=new b.Physics.Material(a);return this.materials.push(d),"undefined"!=typeof c&&c.setMaterial(d),d},createContactMaterial:function(a,c,d){"undefined"==typeof a&&(a=this.createMaterial()),"undefined"==typeof c&&(c=this.createMaterial());var e=new b.Physics.ContactMaterial(a,c,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b]);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.springs[b]);return a},hitTest:function(){},toJSON:function(){this.world.toJSON()},createCollisionGroup:function(){var a=Math.pow(2,this._collisionGroupID);this._wallShapes[0]&&(this._wallShapes[0].collisionMask=this._wallShapes[0].collisionMask|a),this._wallShapes[1]&&(this._wallShapes[1].collisionMask=this._wallShapes[1].collisionMask|a),this._wallShapes[2]&&(this._wallShapes[2].collisionMask=this._wallShapes[2].collisionMask|a),this._wallShapes[3]&&(this._wallShapes[3].collisionMask=this._wallShapes[3].collisionMask|a),this._collisionGroupID++;var c=new b.Physics.CollisionGroup(a);return this.collisionGroups.push(c),c},createBody:function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1);var h=new b.Physics.Body(this.game,null,a,c,d);if(g){var i=h.addPolygon(f,g);if(!i)return!1}return e&&this.world.addBody(h.data),h},createParticle:function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1);var h=new b.Physics.Body(this.game,null,a,c,d);if(g){var i=h.addPolygon(f,g);if(!i)return!1}return e&&this.world.addBody(h.data),h}},Object.defineProperty(b.Physics.World.prototype,"friction",{get:function(){return this.world.defaultFriction},set:function(a){this.world.defaultFriction=a}}),Object.defineProperty(b.Physics.World.prototype,"restituion",{get:function(){return this.world.defaultRestitution},set:function(a){this.world.defaultRestitution=a}}),Object.defineProperty(b.Physics.World.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(b.Physics.World.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(b.Physics.World.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(b.Physics.World.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(b.Physics.World.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(b.Physics.World.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(b.Physics.World.prototype,"enableBodySleeping",{get:function(){return this.world.enableBodySleeping},set:function(a){this.world.enableBodySleeping=a}}),b.Physics.PointProxy=function(a,b){this.game=a,this.destination=b},b.Physics.PointProxy.prototype.constructor=b.Physics.PointProxy,Object.defineProperty(b.Physics.PointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.game.math.px2p(a)}}),Object.defineProperty(b.Physics.PointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.game.math.px2p(a)}}),b.Physics.InversePointProxy=function(a,b){this.game=a,this.destination=b},b.Physics.InversePointProxy.prototype.constructor=b.Physics.InversePointProxy,Object.defineProperty(b.Physics.InversePointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.game.math.px2p(-a)}}),Object.defineProperty(b.Physics.InversePointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.game.math.px2p(-a)}}),b.Physics.Body=function(a,c,d,e,f){c=c||null,d=d||0,e=e||0,"undefined"==typeof f&&(f=1),this.game=a,this.sprite=c,this.offset=new b.Point,this.data=new p2.Body({position:[this.px2pi(d),this.px2pi(e)],mass:f}),this.data.parent=this,this.velocity=new b.Physics.InversePointProxy(this.game,this.data.velocity),this.force=new b.Physics.InversePointProxy(this.game,this.data.force),this.gravity=new b.Point,this.collideWorldBounds=!0,this.onImpact=new b.Signal,this.collidesWith=[],this._bodyCallbacks=[],this._bodyCallbackContext=[],this._groupCallbacks=[],this._groupCallbackContext=[],c&&(this.setRectangleFromSprite(c),this.game.physics.addBody(this))},b.Physics.Body.prototype={createBodyCallback:function(a,b,c){this._bodyCallbacks[a.data.id]=b,this._bodyCallbackContext[a.data.id]=c},createGroupCallback:function(a,b,c){this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c},getCollisionMask:function(){var a=0;this.collideWorldBounds&&(a=this.game.physics.boundsCollisionGroup.mask);for(var b=0;b=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,shapes.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&&(shapes.collisionGroup=null),b&&(shapes.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.px2p(b),this.px2p(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.px2p(-a)},rotateRight:function(a){this.data.angularVelocity=this.px2p(a)},moveForward:function(a){var b=this.px2pi(-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.px2pi(-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.px2pi(-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.px2pi(-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.px2pi(-a)},moveRight:function(a){this.data.velocity[0]=this.px2pi(a)},moveUp:function(a){this.data.velocity[1]=this.px2pi(-a)},moveDown:function(a){this.data.velocity[1]=this.px2pi(a)},preUpdate:function(){},postUpdate:function(){this.sprite.x=this.p2pxi(this.data.position[0]),this.sprite.y=this.p2pxi(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(){this.data.world!==this.game.physics.world&&this.game.physics.addBody(this)},removeFromWorld:function(){this.data.world===this.game.physics.world&&this.game.physics.removeBody(this)},destroy:function(){this.removeFromWorld(),this.clearShapes(),this.sprite=null},clearShapes:function(){for(var a=this.data.shapes.length-1;a>=0;a--){var b=this.data.shapes[a];this.data.removeShape(b)}},addShape:function(a,b,c,d){return"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),this.data.addShape(a,[this.px2pi(b),this.px2pi(c)],d),a},addCircle:function(a,b,c,d){var e=new p2.Circle(this.px2p(a));return this.addShape(e,b,c,d)},addRectangle:function(a,b,c,d,e){var f=new p2.Rectangle(this.px2p(a),this.px2p(b));return this.addShape(f,c,d,e)},addPlane:function(a,b,c){var d=new p2.Plane;return this.addShape(d,a,b,c)},addParticle:function(a,b,c){var d=new p2.Particle;return this.addShape(d,a,b,c)},addLine:function(a,b,c,d){var e=new p2.Line(this.px2p(a));return this.addShape(e,b,c,d)},addCapsule:function(a,b,c,d,e){var f=new p2.Capsule(this.px2p(a),b);return this.addShape(f,c,d,e)},addPolygon:function(a,b){a=a||{},b=Array.prototype.slice.call(arguments,1);var c=[];if(1===b.length&&Array.isArray(b[0]))c=b[0].slice(0);else if(Array.isArray(b[0]))c=b[0].slice(0);else if("number"==typeof b[0])for(var d=0,e=b.length;e>d;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},loadPolygon:function(a,b,c){var d=this.game.cache.getPhysicsData(a,b);if(1===d.length){for(var e=[],f=0,g=d.shape.length;g>f;f+=2)e.push([d.shape[f],d.shape[f+1]]);return this.addPolygon(c,e)}for(var h=p2.vec2.create(),f=0;f=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency)},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=this.maxParticles),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1);for(var g,h=0,i=a,j=c;d>h;)null===this.particleClass&&("object"==typeof a&&(i=this.game.rnd.pick(a)),"object"==typeof c&&(j=this.game.rnd.pick(c)),g=new b.Sprite(this.game,0,0,i,j)),e?(g.body.checkCollision.any=!0,g.body.checkCollision.none=!1):g.body.checkCollision.none=!0,g.body.collideWorldBounds=f,g.exists=!1,g.visible=!1,g.anchor.setTo(.5,.5),this.add(g),h++;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.start=function(a,b,c,d){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=250),"undefined"==typeof d&&(d=0),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a?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);if(null!=a){if(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.lifespan=this.lifespan,a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.minParticleSpeed.x!=this.maxParticleSpeed.x?this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x):this.minParticleSpeed.x,a.body.velocity.y=this.minParticleSpeed.y!=this.maxParticleSpeed.y?this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y):this.minParticleSpeed.y,a.body.gravity.y=this.gravity,a.body.angularVelocity=this.minRotation!=this.maxRotation?this.game.rnd.integerInRange(this.minRotation,this.maxRotation):this.minRotation,1!==this.minParticleScale||1!==this.maxParticleScale){var b=this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale);a.scale.setTo(b,b)}a.body.friction=this.particleFriction,a.body.angularDrag=this.angularDrag}},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.width=a,this.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.at=function(a){a.center&&(this.emitX=a.center.x,this.emitY=a.center.y)},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.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.width=e,this.height=f,this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collides=!1,this.collideNone=!0,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={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,this.collideNone=a||b||c||d?!1:!0},resetCollision:function(){this.collideNone=!0,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collides=a.collides,this.collideNone=a.collideNone,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,"canCollide",{get:function(){return this.collides||this.collisionCallback||this.layer.callbacks[this.index]}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.x}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.x+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.y}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.y+this.height}}),b.Tilemap=function(a,c){this.game=a,this.key=c;var d=b.TilemapParser.parse(this.game,c);null!==d&&(this.width=d.width,this.height=d.height,this.tileWidth=d.tileWidth,this.tileHeight=d.tileHeight,this.orientation=d.orientation,this.version=d.version,this.properties=d.properties,this.widthInPixels=d.widthInPixels,this.heightInPixels=d.heightInPixels,this.layers=d.layers,this.tilesets=d.tilesets,this.tiles=d.tiles,this.objects=d.objects,this.collision=d.collision,this.images=d.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.prototype={create:function(a,c,d){for(var e=[],f=0;d>f;f++){e[f]=[];for(var g=0;c>g;g++)e[f][g]=0}this.layers.push({name:a,width:c,height:d,alpha:1,visible:!0,tileMargin:0,tileSpacing:0,format:b.Tilemap.CSV,data:e,indexes:[],dirty:!0}),this.currentLayer=this.layers.length-1},addTilesetImage:function(a,b){if("undefined"==typeof b){if("string"!=typeof a)return!1;b=a}return"string"==typeof a&&(a=this.getTilesetIndex(a)),this.tilesets[a]?(this.tilesets[a].image=this.game.cache.getImage(b),!0):!1},createFromObjects:function(a,b,c,d,e,f,g){if("undefined"==typeof e&&(e=!0),"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=this.game.world),!this.objects[a])return void console.warn("Tilemap.createFromObjects: Invalid objectgroup name given: "+a);for(var h,i=0,j=this.objects[a].length;j>i;i++)if(this.objects[a][i].gid===b){h=g.create(this.objects[a][i].x,this.objects[a][i].y,c,d,e),h.anchor.setTo(0,1),h.name=this.objects[a][i].name,h.visible=this.objects[a][i].visible,h.autoCull=f;for(property in this.objects[a][i].properties)g.set(h,property,this.objects[a][i].properties[property],!1,!1,0)}},clearPhysicsBodies:function(a){a=this.getLayer(a);for(var b=this.layers[a].bodies.length;b--;)this.layers[a].bodies[b].destroy()},generateCollisionData:function(a,b){a=this.getLayer(a),"undefined"==typeof b&&(b=!0),this.layers[a].bodies.length>0&&this.clearPhysicsBodies(a),this.layers[a].bodies.length=[];for(var c=0,d=0,e=0,f=0,g=this.layers[a].height;g>f;f++){c=0;for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];if(j)if(right=this.getTileRight(a,h,f),0===c&&(d=j.x*j.width,e=j.y*j.height,c=j.width),right&&right.collides)c+=j.width;else{var k=this.game.physics.createBody(d,e,0,!1);k.addRectangle(c,j.height,c/2,j.height/2,0),b&&this.game.physics.addBody(k),this.layers[a].bodies.push(k),c=0}}}return this.layers[a].bodies},createCollisionObjects:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=[],d=0,e=this.collision[a].length;e>d;d++){var f=this.collision[a][d],g=this.game.physics.createBody(f.x,f.y,0,b,{},f.polyline);g&&c.push(g)}return c},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))},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;hd;d++)this.setCollisionByIndex(a[d],b,c,!1);this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d){if("undefined"==typeof c&&(c=!0),d=this.getLayer(d),!(a>b)){for(var e=a;b>=e;e++)this.setCollisionByIndex(e,c,d,!1);this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c){"undefined"==typeof b&&(b=!0),c=this.getLayer(c);for(var d=0,e=this.tiles.length;e>d;d++)-1===a.indexOf(d)&&this.setCollisionByIndex(d,b,c,!1);this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0);for(var e=0;ef;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),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&&c=0&&d=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,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.Sprite.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._cw=c.tileWidth,this._ch=c.tileHeight,this._ga=1,this._dx=0,this._dy=0,this._dw=0,this._dh=0,this._tx=0,this._ty=0,this._tw=0,this._th=0,this._tl=0,this._maxX=0,this._maxY=0,this._startX=0,this._startY=0,this._results=[],this._x=0,this._y=0,this._prevX=0,this._prevY=0,this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Sprite.prototype),b.TilemapLayer.prototype=b.Utils.extend(!0,b.TilemapLayer.prototype,b.Sprite.prototype,PIXI.Sprite.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Sprite.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render()},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._x+(a-this._x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._x/this.scrollFactorX+(a-this._x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._y+(a-this._y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._y/this.scrollFactorY+(a-this._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.getTiles=function(a,b,c,d,e){"undefined"==typeof e&&(e=!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._tx=this.game.math.snapToFloor(a,this._cw)/this._cw,this._ty=this.game.math.snapToFloor(b,this._ch)/this._ch,this._tw=(this.game.math.snapToCeil(c,this._cw)+this._cw)/this._cw,this._th=(this.game.math.snapToCeil(d,this._ch)+this._ch)/this._ch,this._results.length=0;for(var f=this._ty;fthis.layer.width&&(this._maxX=this.layer.width),this._maxY>this.layer.height&&(this._maxY=this.layer.height)),this.dirty=!0},b.TilemapLayer.prototype.render=function(){if(this.layer.dirty&&(this.dirty=!0),this.dirty&&this.visible){this._prevX=this._dx,this._prevY=this._dy,this._dx=-(this._x-this._startX*this.map.tileWidth),this._dy=-(this._y-this._startY*this.map.tileHeight),this._tx=this._dx,this._ty=this._dy,this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.fillStyle=this.tileColor;var a,c;this.debug&&(this.context.globalAlpha=this.debugAlpha);for(var d=this._startY,e=this._startY+this._maxY;e>d;d++){this._column=this.layer.data[d];for(var f=this._startX,g=this._startX+this._maxX;g>f;f++)this._column[f]&&(a=this._column[f],this.map.tiles[a.index]&&(c=this.map.tilesets[this.map.tiles[a.index][2]],c.image?(this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.tileWidth!==this.map.tileWidth||c.tileHeight!==this.map.tileHeight?this.context.drawImage(this.map.tilesets[this.map.tiles[a.index][2]].image,this.map.tiles[a.index][0],this.map.tiles[a.index][1],c.tileWidth,c.tileHeight,Math.floor(this._tx),Math.floor(this._ty)-(c.tileHeight-this.map.tileHeight),c.tileWidth,c.tileHeight):this.context.drawImage(this.map.tilesets[this.map.tiles[a.index][2]].image,this.map.tiles[a.index][0],this.map.tiles[a.index][1],this.map.tileWidth,this.map.tileHeight,Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight))):this.context.fillRect(Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight))),this._tx+=this.map.tileWidth;this._tx=this._dx,this._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._tx=this._dx,this._ty=this._dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._startY,b=this._startY+this._maxY;b>a;a++){this._column=this.layer.data[a];for(var c=this._startX,d=this._startX+this._maxX;d>c;c++){var e=this._column[c];e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._tx=Math.floor(this._tx),this.debugFill&&this.context.fillRect(this._tx,this._ty,this._cw,this._ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._tx,this._ty),this.context.lineTo(this._tx+this._cw,this._ty)),e.faceBottom&&(this.context.moveTo(this._tx,this._ty+this._ch),this.context.lineTo(this._tx+this._cw,this._ty+this._ch)),e.faceLeft&&(this.context.moveTo(this._tx,this._ty),this.context.lineTo(this._tx,this._ty+this._ch)),e.faceRight&&(this.context.moveTo(this._tx+this._cw,this._ty),this.context.lineTo(this._tx+this._cw,this._ty+this._ch)),this.context.stroke()),e&&(e.collisionCallback||e.layer.callbacks[e.index])&&(this.context.fillStyle=this.debugCallbackColor,this.context.fillRect(this._tx,this._ty,this._cw,this._ch),this.context.fillStyle=this.debugFillColor),this._tx+=this.map.tileWidth}this._tx=this._dx,this._ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._x},set:function(a){a!==this._x&&a>=0&&this.layer.widthInPixels>this.width&&(this._x=a,this._x>this.layer.widthInPixels-this.width&&(this._x=this.layer.widthInPixels-this.width),this._startX=this.game.math.floor(this._x/this.map.tileWidth),this._startX<0&&(this._startX=0),this._startX+this._maxX>this.layer.width&&(this._startX=this.layer.width-this._maxX),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._y},set:function(a){a!==this._y&&a>=0&&this.layer.heightInPixels>this.height&&(this._y=a,this._y>this.layer.heightInPixels-this.height&&(this._y=this.layer.heightInPixels-this.height),this._startY=this.game.math.floor(this._y/this.map.tileHeight),this._startY<0&&(this._startY=0),this._startY+this._maxY>this.layer.height&&(this._startY=this.layer.height-this._maxY),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._cw},set:function(a){this._cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._ch},set:function(a){this._ch=a,this.dirty=!0}}),b.TilemapParser={tileset:function(a,c,d,e,f,g,h,i,j){var k=a.cache.getTilesetImage(c);if(null===k)return console.warn("Phaser.TilemapParser.tileSet: Invalid image key given"),null;var l=k.width,m=k.height;return-1===h&&(h=Math.round(l/d)),-1===i&&(i=Math.round(m/e)),-1===j&&(j=h*i),0===l||0===m||d>l||e>m||0===j?(console.warn("Phaser.TilemapParser.tileSet: width/height zero or width/height < given tileWidth/tileHeight"),null):new b.Tileset(k,c,d,e,f,g,h,i,j)},parse:function(a,c){var d=a.cache.getTilemapData(c);return d?d.format===b.Tilemap.CSV?this.parseCSV(d.data):d.format===b.Tilemap.TILED_JSON?this.parseTiledJSON(d.data):void 0:this.getEmptyData()},parseCSV:function(a){a=a.trim();for(var b=[],c=a.split("\n"),d=c.length,e=0,f=0;fj;j++)h.push(a.layers[e].data[j]>0?new b.Tile(f,a.layers[e].data[j],g,i.length,a.tilewidth,a.tileheight):null),g++,g===a.layers[e].width&&(i.push(h),g=0,h=[]);f.data=i,d.push(f)}c.layers=d;for(var l=[],e=0;ep;p++)if(a.layers[e].objects[p].gid){var q={gid:a.layers[e].objects[p].gid,name:a.layers[e].objects[p].name,x:a.layers[e].objects[p].x,y:a.layers[e].objects[p].y,visible:a.layers[e].objects[p].visible,properties:a.layers[e].objects[p].properties};n[a.layers[e].name].push(q)}else if(a.layers[e].objects[p].polyline){var q={name:a.layers[e].objects[p].name,x:a.layers[e].objects[p].x,y:a.layers[e].objects[p].y,width:a.layers[e].objects[p].width,height:a.layers[e].objects[p].height,visible:a.layers[e].objects[p].visible,properties:a.layers[e].objects[p].properties};q.polyline=[];for(var r=0;r this._highestInputPriorityID || (currentNode.priorityID === this._highestInputPriorityID && currentNode.sprite.renderOrderID > this._highestRenderOrderID)) + if (currentNode.pixelPerfectClick || currentNode.pixelPerfectOver || currentNode.priorityID > this._highestInputPriorityID || (currentNode.priorityID === this._highestInputPriorityID && currentNode.sprite._cache[3] < this._highestRenderOrderID)) { if ((!fromClick && currentNode.checkPointerOver(this)) || (fromClick && currentNode.checkPointerDown(this))) { - this._highestRenderOrderID = currentNode.sprite.renderOrderID; + this._highestRenderOrderID = currentNode.sprite._cache[3]; // renderOrderID this._highestInputPriorityID = currentNode.priorityID; this._highestRenderObject = currentNode; } @@ -36223,14 +36224,15 @@ Phaser.Sprite.prototype.preUpdate = function() { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; } this.animations.update(); - if (this.body) + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) { - // this.body.preUpdate(); + this.children[i].preUpdate(); } return true; @@ -36239,6 +36241,7 @@ Phaser.Sprite.prototype.preUpdate = function() { /** * Override and use this function in your own custom objects to handle any update requirements you may have. +* Remember if this Sprite has any children you should call update on them too. * * @method Phaser.Sprite#update * @memberof Phaser.Sprite @@ -36275,6 +36278,12 @@ Phaser.Sprite.prototype.postUpdate = function() { this.position.y = this.game.camera.view.y + this.cameraOffset.y; } + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].postUpdate(); + } + }; /** @@ -37110,7 +37119,7 @@ Phaser.Image.prototype.preUpdate = function() { if (!this.exists || !this.parent.exists) { - this.renderOrderID = -1; + this._cache[3] = -1; return false; } @@ -37124,7 +37133,13 @@ Phaser.Image.prototype.preUpdate = function() { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; + } + + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].preUpdate(); } return true; @@ -37161,6 +37176,12 @@ Phaser.Image.prototype.postUpdate = function() { this.position.y = this.game.camera.view.y + this.cameraOffset.y; } + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].postUpdate(); + } + } /** @@ -37873,6 +37894,17 @@ Phaser.TileSprite.prototype.preUpdate = function() { this.tilePosition.y += this._scroll.y * this.game.time.physicsElapsed; } + if (this.visible) + { + this._cache[3] = this.game.stage.currentRenderOrderID++; + } + + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].preUpdate(); + } + return true; } @@ -37902,6 +37934,12 @@ Phaser.TileSprite.prototype.postUpdate = function() { this.position.y = this.game.camera.view.y + this.cameraOffset.y; } + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].postUpdate(); + } + } /** @@ -38365,7 +38403,13 @@ Phaser.Text.prototype.preUpdate = function () { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; + } + + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].preUpdate(); } return true; @@ -38394,6 +38438,12 @@ Phaser.Text.prototype.postUpdate = function () { this.position.y = this.game.camera.view.y + this.cameraOffset.y; } + // Update any Children + for (var i = 0, len = this.children.length; i < len; i++) + { + this.children[i].postUpdate(); + } + } /** @@ -39225,7 +39275,7 @@ Phaser.BitmapText.prototype.preUpdate = function () { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; } return true; @@ -40255,7 +40305,7 @@ Phaser.Graphics.prototype.preUpdate = function () { if (this.visible) { - this._cache[3] = this.game.world.currentRenderOrderID++; + this._cache[3] = this.game.stage.currentRenderOrderID++; } return true; diff --git a/build/phaser.map b/build/phaser.map index 05a64a7da..6730ae369 100644 --- a/build/phaser.map +++ b/build/phaser.map @@ -1 +1 @@ -{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["e","exports","module","define","amd","window","p2","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"mat2","mat2Identity","Float32Array","GLMAT_EPSILON","create","clone","out","copy","identity","transpose","a1","invert","a0","a2","a3","det","adjoint","determinant","multiply","b","b0","b1","b2","b3","mul","rotate","rad","Math","sin","c","cos","scale","v","v0","v1","str",2,"vec2","fromValues","x","y","set","add","subtract","sub","divide","div","min","max","distance","sqrt","dist","squaredDistance","sqrDist","len","squaredLength","sqrLen","negate","normalize","dot","cross","z","lerp","ax","ay","transformMat2","m","forEach","vec","stride","offset","count","fn","arg","l",3,"Line","Scalar","lineInt","l1","l2","precision","c1","c2","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar",4,"Point","area","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","magA","magB","angle","acos","sqdist",5,"Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","j","targetPoly","k","getCutEdges","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point",6,"abs",7,"./Polygon",8,"name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","jshint","nodeunit","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-concat","grunt-contrib-uglify","grunt-browserify","browserify","dependencies","underscore","poly-decomp","gl-matrix","jsonschema",9,"AABB","options","lowerBound","upperBound","setFromPoints","points","position","aabb","extend","overlaps","u1","u2","../math/vec2","../utils/Utils",10,"Broadphase","world","Body","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","d2","boundingRadius","aabbCheck","aabbNeedsUpdate","updateAABB","canCollide","motionState","STATIC","KINEMATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",11,"GridBroadphase","xmin","xmax","ymin","ymax","nx","ny","apply","binsizeX","binsizeY","Circle","Plane","Particle","getBinIndex","xi","floor","yi","collidingBodies","bodies","Ncolliding","bins","Nbins","xmult","ymult","bi","si","shape","undefined","radius","xi1","yi1","xi2","yi2","PI","bin","NbodiesInBin","bj","sj","circleCircle","circleParticle","circlePlane","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane",12,"NaiveBroadphase","useBoundingBoxes","check","../shapes/Shape",13,"Narrowphase","contactEquations","frictionEquations","enableFriction","slipForce","frictionCoefficient","surfaceVelocity","reuseObjects","reusableContactEquations","reusableFrictionEquations","restitution","collidingBodiesLastStep","keys","clearObject","obj","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","point","verts","lastCross","crossLength","Utils","ContactEquation","FrictionEquation","Shape","Rectangle","yAxis","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","collidedLastStep","id1","id","id2","reset","key","ce","fe","rfe","rce","appendArray","createContactEquation","shapeA","shapeB","firstImpact","enabled","allowSleep","DYNAMIC","SLEEPY","wakeUp","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","ri","rj","ni","contactEquation","LINE","CONVEX","convexLine","ai","xj","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","rect","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","pos","pos0","pos1","circleCapsule","convexBody","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","particleBody","convexToparticle","minEdgeNormal","radiusA","radiusB","offsetA","offsetB","planeConvex","numReported","convexPlane","particlePlane","capsulePlane_tmpCircle","capsulePlane_tmp1","capsulePlane_tmp2","planeCapsule","end1","end2","circle","numContacts1","numContacts2","capsulePlane","planeToCircle","temp","contact","convexPrecision","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","angleA","angleB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","halfPi","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","circleAngle","hfBody","hfShape","hfPos","hfAngle","data","w","elementWidth","minCandidateNormal","idxA","idxB","ceil","minDist","../equations/ContactEquation","../equations/FrictionEquation","../shapes/Rectangle",14,"QuadTree","bounds","pointQuad","maxDepth","maxChildren","Node","BoundsNode","root","depth","children","nodes","stuckChildren","insert","item","retrieve","items","numAdded","r2","classConstructor","TOP_LEFT","TOP_RIGHT","BOTTOM_LEFT","BOTTOM_RIGHT","index","findIndex","subdivide","width","top","height","bx","by","b_w_h","b_h_h","bx_b_w_h","by_b_h_h","getChildren","concat",15,"SAPBroadphase","axisListX","axisListY","_addBodyHandler","body","_removeBodyHandler","idx","off","on","sortAxisListX","sortAxisListY","preliminaryList","bodiesX","bodiesY","axisIndex","checkBounds",16,"Constraint","equations","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE",17,"DistanceConstraint","maxForce","Equation","computeGq","setMaxForce","update","G","minForce","getMaxForce","../equations/Equation","./Constraint",18,"GearConstraint","AngleLockEquation","ratio","setRatio","../equations/AngleLockEquation",19,"LockConstraint","localOffsetB","localAngleB","rot","g","xAxis",20,"PrismaticConstraint","localAnchorA","localAxisA","localAnchorB","trans","gg","disableRotationalLock","RotationalLockEquation","velocity","lowerLimitEnabled","upperLimitEnabled","lowerLimit","upperLimit","upperLimitEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","that","computeGW","vi","vj","wi","angularVelocity","wj","transformedGmult","worldAxisA","worldAnchorA","worldAnchorB","orientedAnchorA","orientedAnchorB","eqs","relPosition","enableMotor","disableMotor","../equations/RotationalLockEquation",21,"RevoluteConstraint","pivotA","pivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation",22,"constructor","./Equation",23,"computeB","h","rixn","rjxn","GW","Gq","GiMf","computeGiMf","B","../math/mat2",24,"stiffness","relaxation","ARRAY_TYPE","eps","updateSpookParams","multiplier","Gmult","timeStep","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","force","ti","angularForce","fj","tj","invMassi","invMass","invMassj","invIi","invInertia","invIj","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC",25,26,"worldVectorA","worldVectorB",27,28,"EventEmitter","listener","context","_listeners","listeners","has","emit","event","listenerArray","target",29,"ContactMaterial","materialA","materialB","Material","idCounter","friction","frictionStiffness","frictionRelaxation","./Material",30,31,"../../node_modules/gl-matrix/src/gl-matrix/mat2",32,"PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom",33,"getX","getY","crossVZ","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","centroid","../../node_modules/gl-matrix/src/gl-matrix/vec2",34,"_idCounter","shapes","shapeOffsets","shapeAngles","mass","inertia","fixedRotation","interpolatedPosition","damping","angularDamping","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","timeLastSleepy","concavePath","lastDampingScale","lastAngularDampingScale","lastDampingTimeStep","updateMassProperties","Convex","setDensity","density","totalArea","getArea","shapeAABB","computeAABB","updateBoundingRadius","addShape","removeShape","I","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","dt","pow","wakeUpEvent","sleep","sleepEvent","sleepTick","time","speedSquared","speedLimitSquared","sleepyEvent","../collision/AABB","../events/EventEmitter","../shapes/Convex",35,"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",36,"Capsule","GSSolver","Heightfield","Island","IslandSolver","Solver","World","../package.json","./collision/AABB","./collision/Broadphase","./collision/GridBroadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/QuadTree","./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/IslandSolver","./solver/Solver","./utils/Utils","./world/World",37,"updateArea","./Shape",38,39,"triangles","polyk","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","denom","numer","p0","../math/polyk",40,"maxValue",41,42,43,44,"./Convex",45,"collisionGroup","collisionMask","material","sensor",46,"GS","iterations","tolerance","debug","arrayStep","lambda","Bs","invCs","useGlobalEquationParameters","useZeroRHS","useNormalForceForFriction","skipFrictionIterations","setArrayZero","array","solve","sortEquations","iter","maxIter","skipFrictionIter","tolSquared","Neq","Nbodies","useGlobalParams","deltalambdaTot","_eps","iterateEquation","useNormal","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"getBodies","bodyIds","solver","removeAllEquations","numEquations","addEquation","islandBodies","numBodies",48,"subsolver","ISLAND","numIslands","_nodePool","_islandPool","beforeSolveIslandEvent","island","getUnvisitedNode","Nnodes","visited","visitFunc","bds","Neqs","bfs","queue","child","tmpArray2","tmpArray3","tmpArray4","islandPool","_workers","_workerData","_workerIslandGroups","nj","islands","../solver/Island",49,"equationSortFunction","sort","addEquations","removeEquation",50,"howmany",51,"springs","narrowphase","gravity","doProfiling","lastStepTime","broadphase","constraints","defaultFriction","defaultRestitution","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","fixedStepTime","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","postBroadphaseEvent","pairs","enableBodySleeping","beginContactEvent","endContactEvent","preSolveEvent","overlappingShapesLastState","overlappingShapesCurrentState","overlappingShapeLookup","pkg","currentVersion","split","join","performance","now","nowOffset","Date","timing","navigationStart","Object","addConstraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","removeConstraint","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","internalSteps","t0","t1","Nsprings","np","mg","glen","Nresults","Nshapesi","Nshapesj","mu","runNarrowphase","current","Nconstraints","integrateBody","ev","ib_fhMinv","ib_velodt","minv","velo","aiw","ajw","reducedMass","resolver","addSpring","removeSpring","addBody","removeBody","getBodyById","toJSON","v2a","json","jc","error","ss","jsonShapes","jsonShape","upgradeJSON","JSON","parse","stringify","localAxisB","fromJSON","id2material","jb","jss","js","jm","cs","cms","hitTest_tmp1","hitTest_zero","hitTest_tmp2","hitTest","pb","ps","pa","zero","NS","../../package.json","../collision/NaiveBroadphase","../collision/Narrowphase","../constraints/DistanceConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/Spring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","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","INTERACTION_FREQUENCY","AUTO_PREVENT_DEFAULT","RAD_TO_DEG","DEG_TO_RAD","contains","x1","y1","EmptyRectangle","arguments","il","inside","yj","intersect","Ellipse","normx","normy","getBounds","determineMatrixArrayType","Matrix2","Matrix","tx","ty","fromArray","toArray","identityMatrix","DisplayObject","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","defineProperty","get","dirty","isMask","_filters","passes","filterPasses","_filterBlock","_generateCachedSprite","_destroyCachedSprite","updateTransform","rotationCache","parentTransform","a00","a01","a10","a11","a02","a12","b00","b01","b10","b11","matrix","getLocalBounds","setStageReference","generateTexture","renderer","renderTexture","RenderTexture","render","updateCache","_renderCachedSprite","renderSession","gl","Sprite","_renderWebGL","_cachedSprite","_renderCanvas","texture","resize","tempFilters","filters","destroy","DisplayObjectContainer","addChild","addChildAt","removeChild","swapChildren","child2","index1","index2","getChildAt","removeStageReference","matrixCache","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","spriteBatch","stop","maskManager","pushMask","mask","start","flush","filterManager","pushFilter","popFilter","popMask","anchor","_width","_height","tint","blendMode","baseTexture","hasLoaded","onTextureUpdate","onTextureUpdateBind","bind","addEventListener","frame","setTexture","textureChange","cachedTint","updateFrame","w0","w1","h0","h1","x2","y2","x3","y3","x4","y4","currentBlendMode","globalCompositeOperation","blendModesCanvas","source","globalAlpha","transform","roundPixels","setTransform","smoothProperty","scaleMode","tintedTexture","CanvasTinter","getTintedTexture","drawImage","trim","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","Texture","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","shaderManager","activateShader","fastShader","begin","defaultShader","isRotated","childTransform","FilterBlock","Text","text","style","canvas","document","createElement","getContext","fromCanvas","setText","setStyle","updateText","font","fill","align","stroke","strokeThickness","wordWrap","wordWrapWidth","toString","outputText","lines","lineWidths","maxLineWidth","lineWidth","measureText","lineHeight","determineFontHeight","navigator","isCocoonJS","clearRect","fillStyle","strokeStyle","textBaseline","linePosition","strokeText","fillText","updateTexture","requiresUpdate","updateWebGLTexture","fontStyle","heightCache","getElementsByTagName","dummy","dummyText","createTextNode","appendChild","setAttribute","offsetHeight","spaceLeft","words","wordWidth","wordWidthWithSpace","destroyTexture","BitmapText","_pool","fontName","fontSize","parseInt","fonts","size","prevCharCode","chars","line","charCode","charCodeAt","test","charAt","charData","kerning","xOffset","yOffset","xAdvance","lineAlignOffsets","alignOffset","lenChildren","lenChars","textWidth","textHeight","Stage","backgroundColor","interactionManager","InteractionManager","setBackgroundColor","setInteractionDelegate","domElement","setTargetDomElement","backgroundColorSplit","hex2rgb","hex","substr","backgroundColorString","getMousePosition","mouse","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","getTime","timeToCall","setTimeout","clearTimeout","requestAnimFrame","rgb2hex","rgb","Function","thisArg","bound","args","boundArgs","TypeError","F","proto","AjaxRequest","activexmodes","ActiveXObject","XMLHttpRequest","canUseNewCanvasBlendModes","fillRect","getImageData","getNextPowerOfTwo","number","EventTarget","dispatchEvent","removeEventListener","removeAllEventListeners","sign","log","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","src","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","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","uniforms","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","createWebGLTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","PrimitiveShader","tintColor","attribute","WebGLGraphics","renderGraphics","graphics","projection","primitiveShader","_webGL","indices","lastIndex","buffer","createBuffer","indexBuffer","webGL","clearDirty","updateGraphics","activatePrimitiveShader","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","uniform2f","uniform3fv","uniform1f","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","drawElements","TRIANGLE_STRIP","UNSIGNED_SHORT","deactivatePrimitiveShader","graphicsData","Graphics","POLY","buildPoly","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","glPoints","bufferData","STATIC_DRAW","glIndicies","Uint16Array","webGLData","rectData","fillColor","fillAlpha","vertPos","tempPoints","totalSegs","seg","vecPos","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","lineColor","lineAlpha","glContexts","WebGLRenderer","view","transparent","antialias","defaultRenderer","contextLost","handleContextLost","contextRestoredLost","handleContextRestored","premultipliedAlpha","stencil","e2","glContextId","blendModesWebGL","SRC_ALPHA","DST_ALPHA","DST_COLOR","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","drawCount","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","colorMask","__stage","removeEvents","updateTextures","_interactiveEventsAdded","setTarget","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","end","frameUpdates","updateTextureFrame","texturesToDestroy","texturesToUpdate","glTexture","deleteTexture","_updateWebGLuvs","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","_powerOf2","preventDefault","setContext","maskStack","maskPosition","maskData","STENCIL_TEST","stencilFunc","ALWAYS","stencilOp","KEEP","INCR","NOTEQUAL","DECR","maxAttibs","attribState","tempAttribState","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","currentShader","vertSize","numVerts","numIndices","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","vertexBuffer","DYNAMIC_DRAW","sprite","setBlendMode","uvs","_uvs","verticies","aX","aY","x0","y0","renderTilingSprite","tilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","bufferSubData","subarray","TRIANGLES","TEXTURE0","blendModeWebGL","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","filter","FilterTexture","padidng","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","shaders","colorBuffer","colorArray","createFramebuffer","framebuffer","framebufferTexture2D","COLOR_ATTACHMENT0","deleteFramebuffer","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","roundColor","stringColor","tintCache","tintMethod","convertTintToImage","tintImage","Image","toDataURL","tintWithMultiply","tintWithOverlay","tintWithPerPixel","rgbValues","pixelData","pixels","putImageData","cacheStepsPerColorChannel","canUseMultiply","CanvasRenderer","clearBeforeRender","refresh","renderStripFlat","strip","beginPath","moveTo","lineTo","closePath","renderStrip","u0","v2","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","CanvasBuffer","strokeRect","arc","ellipseData","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","currentPath","boundsPadding","destroyCachedSprite","lineStyle","filling","beginFill","endFill","drawRect","drawCircle","drawEllipse","canvasBuffer","translate","updateBounds","TilingSprite","refreshTexture","generateTilingTexture","needsUpdate","__tilePattern","createPattern","forcePowerOfTwo","targetWidth","targetHeight","isFrame","newTextureRequired","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","scope","onload","content","imageUrl","updateSourceImage","newSrc","image","crossOrigin","_pixiId","TextureCacheIdGenerator","FrameCache","noFrame","setFrame","onBaseTextureLoaded","onLoaded","destroyBase","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","originalWorldTransform","tempMatrix","Phaser","DEV_VERSION","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","BITMAPFONT","NONE","LEFT","RIGHT","UP","DOWN","parseDimension","dimension","innerWidth","innerHeight","shuffle","random","pad","dir","padlen","isPlainObject","nodeType","hasOwn","copyIsArray","deep","isArray","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","round","distanceRound","circumferencePoint","asDegrees","offsetPoint","bottom","equals","intersects","radToDeg","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","clampX","clamp","clampY","output","getMagnitude","setMagnitude","magnitude","isZero","degToRad","floorAll","inflate","containsRect","intersection","intersectsRaw","union","empty",{"end":{"file":"phaser.js","comments_before":[],"nlb":false,"endpos":618597,"pos":618588,"col":8,"line":21964,"value":"halfWidth","type":"name"},"start":{"file":"phaser.js","comments_before":[],"nlb":false,"endpos":618597,"pos":618588,"col":8,"line":21964,"value":"halfWidth","type":"name"},"name":"halfWidth"},"bottomRight","volume","perimeter","centerX","centerY","topLeft","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","fromSprite","startSprite","endSprite","useCenter","center","asSegment","intersectsPoints","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","atan2","Camera","game","screenView","deadzone","atLimit","_edge","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","focusOn","setPosition","focusOnXY","updateTarget","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","paused","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","onLoadComplete","loadComplete","state","autoStart","newState","isBooted","remove","callbackContext","onDestroyCallback","clearWorld","clearCache","checkState","preUpdate","removeAll","setCurrentState","totalQueuedFiles","valid","link","getCurrentState","preRender","renderType","LinkedList","next","prev","total","callAll","entity","Signal","_bindings","_prevParams","dispatch","memorize","_shouldPropagate","active","validateListener","fnName","replace","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","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","_parent","plugins","_pluginsLength","plugin","_p","postUpdate","disableVisibilityChange","checkOffsetInterval","exists","_hiddenVar","_nextOffsetCheck","_backgroundColor","config","parseConfig","Canvas","currentRenderOrderID","getOffset","stlye","fullScreenScaleMode","_this","_onChange","visibilityChange","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","onpagehide","onpageshow","onblur","onfocus","gamePaused","timeStamp","gameResumed","Color","hexToRGB","Group","addToStage","alive","cursor","_cursorIndex","cameraOffset","_cache","Int16Array","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","events","onAddedToGroup","addAt","getAt","createMultiple","quantity","previous","swap","child1","bringToTop","getIndex","sendToBottom","moveUp","moveDown","oldChild","newChild","onRemovedFromGroup","setProperty","operation","checkAlive","checkVisible","setAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","method","methodLength","contextLength","renderOrderID","checkExists","forEachExists","iterate","forEachAlive","forEachDead","order","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","countLiving","countDead","getRandom","startIndex","removeBetween","endIndex","destroyChildren","setBounds","integerInRange","ScaleManager","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","pageAlignHorizontally","pageAlignVertically","maxIterations","orientationSprite","enterLandscape","enterPortrait","enterIncorrectOrientation","leaveIncorrectOrientation","hasResized","enterFullScreen","leaveFullScreen","orientation","outerWidth","outerHeight","scaleFactor","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","NO_SCALE","_startHeight","checkOrientation","checkResize","fullScreenChange","EXACT_FIT","SHOW_ALL","startFullScreen","isFullScreen","device","fullscreen","smoothed","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","setShowAll","forceOrientation","orientationImage","checkImageKey","checkOrientationState","isLandscape","iPad","webApp","desktop","android","chrome","scrollTo","_check","_iterations","setInterval","setScreenSize","documentElement","setMaximum","setExactFit","clearInterval","marginLeft","marginTop","availableWidth","availableHeight","Game","physicsConfig","isRunning","raf","net","stepping","pendingStep","stepCount","_paused","_codePaused","_onBoot","readyState","Device","RandomDataGenerator","setUpRenderer","checkFullScreenSupport","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Physics","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","webAudio","trident","addToDOM","enableStep","disableStep","setMute","unsetMute","mute","hitCanvas","hitContext","moveCallback","moveCallbackContext","pollRate","_pollCounter","_oldPosition","_x","_y","disabled","multiInputOverride","MOUSE_TOUCH_COMBINE","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","onDown","onUp","onTap","onHold","interactiveItems","_localPoint","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","Pointer","Mouse","Keyboard","Touch","MSPointer","Gamepad","setMoveCallback","addPointer","hard","resetSpeed","startPointer","totalActivePointers","updatePointer","identifier","move","stopPointer","getPointer","getPointerFromIdentifier","getLocalPosition","wt","worldVisible","TileSprite","Key","keycode","isDown","isUp","altKey","ctrlKey","shiftKey","timeDown","duration","timeUp","repeats","keyCode","onHoldCallback","onHoldContext","processKeyDown","processKeyUp","justPressed","justReleased","_keys","_capture","_onKeyDown","_onKeyUp","onDownCallback","onUpCallback","addCallbacks","addKey","addKeyCapture","createCursorKeys","up","down","removeKeyCapture","clearCaptures","A","C","D","E","H","J","K","L","M","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","capture","button","locked","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","onMouseDown","onMouseMove","onMouseUp","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerId","_holdSent","_history","_nextDrop","_stateReset","withinGame","clientX","clientY","pageX","pageY","screenX","screenY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","_touchedHandler","shift","fromClick","pollLocked","isDragged","_highestRenderOrderID","_highestRenderObject","_highestInputPriorityID","currentNode","pixelPerfectClick","pixelPerfectOver","priorityID","checkPointerOver","checkPointerDown","_pointerOutHandler","_pointerOverHandler","leave","_releasedHandler","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","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","callbacks","onConnect","onDisconnect","onAxis","onFloat","newPad","connect","_ongamepaddisconnected","removedPad","disconnect","_pollGamepads","_connected","pollStatus","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","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","padParent","_padParent","_index","_rawPad","_prevTimestamp","_rawButtons","_buttons","_axes","_hotkeys","addButton","GamepadButton","timestamp","buttons","buttonValue","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axisState","axisCode","buttoncode","InputHandler","useHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","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","onAnimationStart","onAnimationComplete","onAnimationLoop","existing","object","group","tween","audio","loop","tileSprite","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","bitmapFont","characterWidth","characterHeight","charsPerRow","xSpacing","ySpacing","BitmapFont","bitmapText","tilemap","tilesets","Tilemap","addToCache","uuid","addRenderTexture","bitmapData","BitmapData","addBitmapData","ctx","imageData","textureFrame","Frame","_dirty","loadTexture","refreshBuffer","Int32Array","setPixel32","red","green","blue","setPixel","getPixel","data32","getPixel32","getPixels","copyPixels","destX","destY","getImage","draw","alphaMask","animations","AnimationManager","_frame","_frameName","autoCull","health","lifespan","checkWorldBounds","outOfBoundsKill","elapsed","kill","isSpriteSheet","loadFrameData","getFrameData","frameName","crop","hasOwnProperty","sourceWidth","sourceHeight","local","revive","damage","_outOfBoundsFired","play","frameRate","killOnComplete","wrapAngle","addToWorld","removeFromWorld","frameData","getFrameByName","getFrame","_scroll","physicsElapsed","autoScroll","stopScroll","_text","_font","_fontSize","_fontWeight","_lineSpacing","parentNode","setShadow","blur","shadowOffsetX","shadowOffsetY","shadowColor","shadowBlur","runWordWrap","parseFloat","_align","_tint","_onOverFrameName","_onOutFrameName","_onDownFrameName","_onUpFrameName","_onOverFrameID","_onOutFrameID","_onDownFrameID","_onUpFrameID","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","_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","buildBitmapFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","char","code","newText","toUpperCase","noCocoon","display","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollLeft","compatMode","pageYOffset","pageXOffset","getAspectRatio","msTouchAction","overflowHidden","getElementById","overflow","translateX","translateY","skewX","skewY","setSmoothingEnabled","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","patchAndroidClearRectBug","iOS","cocoonJS","ejecta","chromeOS","linux","macOS","windows","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","quirksMode","arora","epiphany","firefox","ie","ieVersion","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","iPhone","iPhone4","pixelRatio","littleEndian","_checkAudio","_checkBrowser","_checkCSS3D","_checkDevice","_checkFeatures","_checkOS","ua","getItem","WebGLRenderingContext","maxTouchPoints","msPointerEnabled","pointerEnabled","fs","cfs","RegExp","$1","$2","audioElement","canPlayType","toLowerCase","Int8Array","vibrate","webkitVibrate","mozVibrate","msVibrate","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","_i","avg","truncate","shear","snapTo","gap","snapToFloor","snapToCeil","snapToInArray","arr","low","high","POSITIVE_INFINITY","roundTo","place","base","floorTo","ceilTo","interpolateFloat","weight","angleBetween","angleBetweenPoints","point1","point2","reverseAngle","angleRad","normalizeAngle","normalizeLatitude","lat","normalizeLongitude","lng","nearestAngleBetween","radians","rd","interpolateAngles","ease","normalizeAngleToAnother","chanceRoll","chance","numberArray","maxAdd","minSub","wrap","range","wrapValue","diff","randomSign","isOdd","isEven","minProperty","maxProperty","angleLimit","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","factorial","p3","t2","t3","difference","objects","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","stack","shuffleArray","distancePow","distanceRounded","clampBottom","within","mapLinear","smoothstep","smootherstep","p2px","px2p","p2pxi","px2pi","degreeToRadiansFactor","degrees","radianToDegreesFactor","seeds","s0","s1","s2","sow","hash","seed","integer","frac","real","realInRange","pick","ary","weightedPick","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","_pauseAll","_resumeAll","getAll","pendingDelete","Tween","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","field","onStart","onLoop","onComplete","properties","yoyo","_lastChild","chain","times","easing","interpolation","pauseDuration","isFinite","numChainedTweens","Quadratic","In","Out","InOut","Cubic","Quartic","Quintic","Sinusoidal","Exponential","Circular","Elastic","asin","Back","Bounce","pausedTime","advancedTiming","fps","fpsMin","fpsMax","msMin","msMax","frames","Timer","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","_len","autoDestroy","timer","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","_now","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","newTick","ms","currentFrame","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","useNumericIndex","getFrameIndexes","Animation","currentAnim","validateFrames","checkFrameName","isPlaying","resetFrame","getAnimation","refreshFrame","_frameIndex","isPaused","looped","_frames","isFinished","_pauseStartTime","_frameDiff","_frameSkip","_timeLastFrame","_timeNextFrame","restart","generateFrameNames","prefix","suffix","zeroPad","rotated","rotationDirection","trimmed","sourceSizeW","sourceSizeH","spriteSourceSizeX","spriteSourceSizeY","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destWidth","destHeight","getRect","_frameNames","getFrameRange","getFrames","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","img","row","column","JSONData","cacheKey","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","frameX","frameY","nodeValue","_canvases","_images","_textures","_sounds","_json","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","addDefaultImage","addMissingImage","onSoundUnlock","TEXTURE","SOUND","PHYSICS","BINARY","addCanvas","addBinary","binaryData","addBitmapFont","addSpriteSheet","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","TEXTURE_ATLAS_XML_STARLING","xmlData","LoaderParser","addPhysicsData","addText","addJSON","addImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","getCanvas","getBitmapData","getBitmapFont","getPhysicsData","getTilemapData","getFrameByIndex","getTextureFrame","getTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getText","getJSON","getBinary","getKeys","removeCanvas","removeImage","removeSound","removeText","removeJSON","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","_fileList","_fileIndex","_progressChunk","_xhr","isLoading","progress","progressFloat","preloadSprite","baseURL","onFileComplete","onFileError","onLoadStart","PHYSICS_LIME_CORONA","setPreloadSprite","direction","checkKeyExists","getAssetIndex","getAsset","addToFileList","entry","loaded","prop","replaceInFileList","overwrite","script","binary","spritesheet","urls","autoDecode","mapDataURL","CSV","TILED_JSON","dataURL","jsonData","LIME_CORONA_JSON","textureURL","xmlURL","domparser","DOMParser","parseFromString","async","loadXML","atlasJSONArray","atlasURL","atlas","atlasJSONHash","atlasXML","removeFile","loadFile","fileComplete","onerror","fileError","getAudioURL","usingWebAudio","open","responseType","send","usingAudioTag","Audio","jsonLoadComplete","csvLoadComplete","dataLoadError","extension","lastIndexOf","nextFile","loadNext","xmlLoadComplete","response","decodeAudioData","onSoundDecode","responseText","language","defer","head","previousIndex","success","totalLoadedFiles","ajaxRequest","innerHTML","info","common","getAttribute","letters","textureRect","kernings","second","connectToMaster","_volume","markers","_buffer","_muted","autoplay","totalDuration","startTime","currentTime","stopTime","pausedPosition","currentMarker","pendingPlayback","override","externalNode","masterGainNode","masterGain","gainNode","createGain","createGainNode","gain","_sound","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","addMarker","durationMS","removeMarker","_tempMarker","_tempPosition","_tempVolume","_tempLoop","forceRestart","noteOff","createBufferSource","noteGrainOn","decode","muted","prevMarker","_muteVolume","_codeMuted","_unlockSource","noAudio","channels","fakeiOSTouchLock","unlock","disableAudio","disableWebAudio","destination","noteOn","stopAll","soundData","playbackState","PLAYING_STATE","FINISHED_STATE","columnWidth","renderShadow","currentAlpha","currentColor","splitline","renderSoundInfo","isDecoded","renderCameraInfo","renderPointer","hideIfUp","downColor","upColor","worldX","worldY","renderSpriteInputInfo","renderKey","renderInputInfo","renderSpriteBounds","filled","renderRectangle","renderSpriteInfo","inCamera","renderSpriteCoords","renderLine","renderLineInfo","renderPointInfo","renderPixel","renderPoint","renderCircle","renderText","renderBodyInfo","renderPhysicsBody","renderShapeRectangle","renderShapeLine","renderShapeConvex","renderShapeCircle","bodyAngle","getColor32","getColor","hex16","getColorInfo","argb","getRGB","hsl","RGBtoHSV","RGBtoHexstring","hue","saturation","lightness","colorToHexstring","RGBtoWebstring","digits","lsd","msd","hexified","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","g1","g2","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","materials","InversePointProxy","_wallShapes","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","onPostStep","onPostBroadphase","onImpact","onBeginContact","onEndContact","postStepHandler","postBroadphaseHandler","impactHandler","beginContactHandler","endContactHandler","collisionGroups","_collisionGroupID","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","hw","hh","constraint","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","createCollisionGroup","bitmask","createBody","addPolygon","createParticle","PointProxy","collideWorldBounds","collidesWith","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","clearCollision","clearGroup","clearMask","collides","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","resetDamping","resetMass","clearShapes","addCircle","addRectangle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","loadPolygon","loadData","worldA","worldB","localA","localB","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","particleClass","particleFriction","angularDrag","bounce","_quantity","_timer","_counter","_explode","emitX","emitY","emitParticle","makeParticles","collide","particle","rndKey","rndFrame","checkCollision","any","none","explode","setXSpeed","setYSpeed","setRotation","Tile","layer","scanned","faceTop","faceBottom","faceLeft","faceRight","collideNone","collideLeft","collideRight","collideUp","collideDown","collisionCallback","collisionCallbackContext","setCollisionCallback","setCollision","resetCollision","tile","TilemapParser","tileWidth","tileHeight","widthInPixels","heightInPixels","layers","tiles","collision","images","currentLayer","debugMap","_results","_tempA","_tempB","tileMargin","tileSpacing","indexes","addTilesetImage","tileset","getTilesetIndex","createFromObjects","gid","clearPhysicsBodies","getLayer","generateCollisionData","sx","sy","getTileRight","createCollisionObjects","polyline","createLayer","getLayerIndex","TilemapLayer","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","recalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","putTile","putTileWorldXY","getTile","getTileWorldXY","paste","tileblock","diffX","diffY","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","tileColor","debugAlpha","debugColor","debugFill","debugFillColor","debugCallbackColor","scrollFactorX","scrollFactorY","_cw","_ch","_ga","_dx","_dy","_dw","_dh","_tx","_ty","_tw","_th","_tl","_maxX","_maxY","_startX","_startY","_prevX","_prevY","updateMax","scrollX","scrollY","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getTiles","wy","wx","_wx","_wy","lenY","_column","lenX","renderDebug","rows","columns","getTilesetImage","Tileset","parseCSV","parseTiledJSON","getEmptyData","tilewidth","tileheight","opacity","newSet","firstgid","tileproperties","tileProperties","imageheight","imagewidth","countX","countY","setSpacing"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["e","exports","module","define","amd","window","p2","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"mat2","mat2Identity","Float32Array","GLMAT_EPSILON","create","clone","out","copy","identity","transpose","a1","invert","a0","a2","a3","det","adjoint","determinant","multiply","b","b0","b1","b2","b3","mul","rotate","rad","Math","sin","c","cos","scale","v","v0","v1","str",2,"vec2","fromValues","x","y","set","add","subtract","sub","divide","div","min","max","distance","sqrt","dist","squaredDistance","sqrDist","len","squaredLength","sqrLen","negate","normalize","dot","cross","z","lerp","ax","ay","transformMat2","m","forEach","vec","stride","offset","count","fn","arg","l",3,"Line","Scalar","lineInt","l1","l2","precision","c1","c2","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar",4,"Point","area","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","magA","magB","angle","acos","sqdist",5,"Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","j","targetPoly","k","getCutEdges","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point",6,"abs",7,"./Polygon",8,"name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","jshint","nodeunit","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-concat","grunt-contrib-uglify","grunt-browserify","browserify","dependencies","underscore","poly-decomp","gl-matrix","jsonschema",9,"AABB","options","lowerBound","upperBound","setFromPoints","points","position","aabb","extend","overlaps","u1","u2","../math/vec2","../utils/Utils",10,"Broadphase","world","Body","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","d2","boundingRadius","aabbCheck","aabbNeedsUpdate","updateAABB","canCollide","motionState","STATIC","KINEMATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",11,"GridBroadphase","xmin","xmax","ymin","ymax","nx","ny","apply","binsizeX","binsizeY","Circle","Plane","Particle","getBinIndex","xi","floor","yi","collidingBodies","bodies","Ncolliding","bins","Nbins","xmult","ymult","bi","si","shape","undefined","radius","xi1","yi1","xi2","yi2","PI","bin","NbodiesInBin","bj","sj","circleCircle","circleParticle","circlePlane","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane",12,"NaiveBroadphase","useBoundingBoxes","check","../shapes/Shape",13,"Narrowphase","contactEquations","frictionEquations","enableFriction","slipForce","frictionCoefficient","surfaceVelocity","reuseObjects","reusableContactEquations","reusableFrictionEquations","restitution","collidingBodiesLastStep","keys","clearObject","obj","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","point","verts","lastCross","crossLength","Utils","ContactEquation","FrictionEquation","Shape","Rectangle","yAxis","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","collidedLastStep","id1","id","id2","reset","key","ce","fe","rfe","rce","appendArray","createContactEquation","shapeA","shapeB","firstImpact","enabled","allowSleep","DYNAMIC","SLEEPY","wakeUp","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","ri","rj","ni","contactEquation","LINE","CONVEX","convexLine","ai","xj","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","rect","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","pos","pos0","pos1","circleCapsule","convexBody","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","particleBody","convexToparticle","minEdgeNormal","radiusA","radiusB","offsetA","offsetB","planeConvex","numReported","convexPlane","particlePlane","capsulePlane_tmpCircle","capsulePlane_tmp1","capsulePlane_tmp2","planeCapsule","end1","end2","circle","numContacts1","numContacts2","capsulePlane","planeToCircle","temp","contact","convexPrecision","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","angleA","angleB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","halfPi","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","circleAngle","hfBody","hfShape","hfPos","hfAngle","data","w","elementWidth","minCandidateNormal","idxA","idxB","ceil","minDist","../equations/ContactEquation","../equations/FrictionEquation","../shapes/Rectangle",14,"QuadTree","bounds","pointQuad","maxDepth","maxChildren","Node","BoundsNode","root","depth","children","nodes","stuckChildren","insert","item","retrieve","items","numAdded","r2","classConstructor","TOP_LEFT","TOP_RIGHT","BOTTOM_LEFT","BOTTOM_RIGHT","index","findIndex","subdivide","width","top","height","bx","by","b_w_h","b_h_h","bx_b_w_h","by_b_h_h","getChildren","concat",15,"SAPBroadphase","axisListX","axisListY","_addBodyHandler","body","_removeBodyHandler","idx","off","on","sortAxisListX","sortAxisListY","preliminaryList","bodiesX","bodiesY","axisIndex","checkBounds",16,"Constraint","equations","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE",17,"DistanceConstraint","maxForce","Equation","computeGq","setMaxForce","update","G","minForce","getMaxForce","../equations/Equation","./Constraint",18,"GearConstraint","AngleLockEquation","ratio","setRatio","../equations/AngleLockEquation",19,"LockConstraint","localOffsetB","localAngleB","rot","g","xAxis",20,"PrismaticConstraint","localAnchorA","localAxisA","localAnchorB","trans","gg","disableRotationalLock","RotationalLockEquation","velocity","lowerLimitEnabled","upperLimitEnabled","lowerLimit","upperLimit","upperLimitEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","that","computeGW","vi","vj","wi","angularVelocity","wj","transformedGmult","worldAxisA","worldAnchorA","worldAnchorB","orientedAnchorA","orientedAnchorB","eqs","relPosition","enableMotor","disableMotor","../equations/RotationalLockEquation",21,"RevoluteConstraint","pivotA","pivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation",22,"constructor","./Equation",23,"computeB","h","rixn","rjxn","GW","Gq","GiMf","computeGiMf","B","../math/mat2",24,"stiffness","relaxation","ARRAY_TYPE","eps","updateSpookParams","multiplier","Gmult","timeStep","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","force","ti","angularForce","fj","tj","invMassi","invMass","invMassj","invIi","invInertia","invIj","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC",25,26,"worldVectorA","worldVectorB",27,28,"EventEmitter","listener","context","_listeners","listeners","has","emit","event","listenerArray","target",29,"ContactMaterial","materialA","materialB","Material","idCounter","friction","frictionStiffness","frictionRelaxation","./Material",30,31,"../../node_modules/gl-matrix/src/gl-matrix/mat2",32,"PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom",33,"getX","getY","crossVZ","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","centroid","../../node_modules/gl-matrix/src/gl-matrix/vec2",34,"_idCounter","shapes","shapeOffsets","shapeAngles","mass","inertia","fixedRotation","interpolatedPosition","damping","angularDamping","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","timeLastSleepy","concavePath","lastDampingScale","lastAngularDampingScale","lastDampingTimeStep","updateMassProperties","Convex","setDensity","density","totalArea","getArea","shapeAABB","computeAABB","updateBoundingRadius","addShape","removeShape","I","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","dt","pow","wakeUpEvent","sleep","sleepEvent","sleepTick","time","speedSquared","speedLimitSquared","sleepyEvent","../collision/AABB","../events/EventEmitter","../shapes/Convex",35,"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",36,"Capsule","GSSolver","Heightfield","Island","IslandSolver","Solver","World","../package.json","./collision/AABB","./collision/Broadphase","./collision/GridBroadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/QuadTree","./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/IslandSolver","./solver/Solver","./utils/Utils","./world/World",37,"updateArea","./Shape",38,39,"triangles","polyk","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","denom","numer","p0","../math/polyk",40,"maxValue",41,42,43,44,"./Convex",45,"collisionGroup","collisionMask","material","sensor",46,"GS","iterations","tolerance","debug","arrayStep","lambda","Bs","invCs","useGlobalEquationParameters","useZeroRHS","useNormalForceForFriction","skipFrictionIterations","setArrayZero","array","solve","sortEquations","iter","maxIter","skipFrictionIter","tolSquared","Neq","Nbodies","useGlobalParams","deltalambdaTot","_eps","iterateEquation","useNormal","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"getBodies","bodyIds","solver","removeAllEquations","numEquations","addEquation","islandBodies","numBodies",48,"subsolver","ISLAND","numIslands","_nodePool","_islandPool","beforeSolveIslandEvent","island","getUnvisitedNode","Nnodes","visited","visitFunc","bds","Neqs","bfs","queue","child","tmpArray2","tmpArray3","tmpArray4","islandPool","_workers","_workerData","_workerIslandGroups","nj","islands","../solver/Island",49,"equationSortFunction","sort","addEquations","removeEquation",50,"howmany",51,"springs","narrowphase","gravity","doProfiling","lastStepTime","broadphase","constraints","defaultFriction","defaultRestitution","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","fixedStepTime","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","postBroadphaseEvent","pairs","enableBodySleeping","beginContactEvent","endContactEvent","preSolveEvent","overlappingShapesLastState","overlappingShapesCurrentState","overlappingShapeLookup","pkg","currentVersion","split","join","performance","now","nowOffset","Date","timing","navigationStart","Object","addConstraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","removeConstraint","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","internalSteps","t0","t1","Nsprings","np","mg","glen","Nresults","Nshapesi","Nshapesj","mu","runNarrowphase","current","Nconstraints","integrateBody","ev","ib_fhMinv","ib_velodt","minv","velo","aiw","ajw","reducedMass","resolver","addSpring","removeSpring","addBody","removeBody","getBodyById","toJSON","v2a","json","jc","error","ss","jsonShapes","jsonShape","upgradeJSON","JSON","parse","stringify","localAxisB","fromJSON","id2material","jb","jss","js","jm","cs","cms","hitTest_tmp1","hitTest_zero","hitTest_tmp2","hitTest","pb","ps","pa","zero","NS","../../package.json","../collision/NaiveBroadphase","../collision/Narrowphase","../constraints/DistanceConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/Spring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","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","INTERACTION_FREQUENCY","AUTO_PREVENT_DEFAULT","RAD_TO_DEG","DEG_TO_RAD","contains","x1","y1","EmptyRectangle","arguments","il","inside","yj","intersect","Ellipse","normx","normy","getBounds","determineMatrixArrayType","Matrix2","Matrix","tx","ty","fromArray","toArray","identityMatrix","DisplayObject","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","defineProperty","get","dirty","isMask","_filters","passes","filterPasses","_filterBlock","_generateCachedSprite","_destroyCachedSprite","updateTransform","rotationCache","parentTransform","a00","a01","a10","a11","a02","a12","b00","b01","b10","b11","matrix","getLocalBounds","setStageReference","generateTexture","renderer","renderTexture","RenderTexture","render","updateCache","_renderCachedSprite","renderSession","gl","Sprite","_renderWebGL","_cachedSprite","_renderCanvas","texture","resize","tempFilters","filters","destroy","DisplayObjectContainer","addChild","addChildAt","removeChild","swapChildren","child2","index1","index2","getChildAt","removeStageReference","matrixCache","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","spriteBatch","stop","maskManager","pushMask","mask","start","flush","filterManager","pushFilter","popFilter","popMask","anchor","_width","_height","tint","blendMode","baseTexture","hasLoaded","onTextureUpdate","onTextureUpdateBind","bind","addEventListener","frame","setTexture","textureChange","cachedTint","updateFrame","w0","w1","h0","h1","x2","y2","x3","y3","x4","y4","currentBlendMode","globalCompositeOperation","blendModesCanvas","source","globalAlpha","transform","roundPixels","setTransform","smoothProperty","scaleMode","tintedTexture","CanvasTinter","getTintedTexture","drawImage","trim","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","Texture","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","shaderManager","activateShader","fastShader","begin","defaultShader","isRotated","childTransform","FilterBlock","Text","text","style","canvas","document","createElement","getContext","fromCanvas","setText","setStyle","updateText","font","fill","align","stroke","strokeThickness","wordWrap","wordWrapWidth","toString","outputText","lines","lineWidths","maxLineWidth","lineWidth","measureText","lineHeight","determineFontHeight","navigator","isCocoonJS","clearRect","fillStyle","strokeStyle","textBaseline","linePosition","strokeText","fillText","updateTexture","requiresUpdate","updateWebGLTexture","fontStyle","heightCache","getElementsByTagName","dummy","dummyText","createTextNode","appendChild","setAttribute","offsetHeight","spaceLeft","words","wordWidth","wordWidthWithSpace","destroyTexture","BitmapText","_pool","fontName","fontSize","parseInt","fonts","size","prevCharCode","chars","line","charCode","charCodeAt","test","charAt","charData","kerning","xOffset","yOffset","xAdvance","lineAlignOffsets","alignOffset","lenChildren","lenChars","textWidth","textHeight","Stage","backgroundColor","interactionManager","InteractionManager","setBackgroundColor","setInteractionDelegate","domElement","setTargetDomElement","backgroundColorSplit","hex2rgb","hex","substr","backgroundColorString","getMousePosition","mouse","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","getTime","timeToCall","setTimeout","clearTimeout","requestAnimFrame","rgb2hex","rgb","Function","thisArg","bound","args","boundArgs","TypeError","F","proto","AjaxRequest","activexmodes","ActiveXObject","XMLHttpRequest","canUseNewCanvasBlendModes","fillRect","getImageData","getNextPowerOfTwo","number","EventTarget","dispatchEvent","removeEventListener","removeAllEventListeners","sign","log","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","src","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","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","uniforms","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","createWebGLTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","PrimitiveShader","tintColor","attribute","WebGLGraphics","renderGraphics","graphics","projection","primitiveShader","_webGL","indices","lastIndex","buffer","createBuffer","indexBuffer","webGL","clearDirty","updateGraphics","activatePrimitiveShader","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","uniform2f","uniform3fv","uniform1f","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","drawElements","TRIANGLE_STRIP","UNSIGNED_SHORT","deactivatePrimitiveShader","graphicsData","Graphics","POLY","buildPoly","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","glPoints","bufferData","STATIC_DRAW","glIndicies","Uint16Array","webGLData","rectData","fillColor","fillAlpha","vertPos","tempPoints","totalSegs","seg","vecPos","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","lineColor","lineAlpha","glContexts","WebGLRenderer","view","transparent","antialias","defaultRenderer","contextLost","handleContextLost","contextRestoredLost","handleContextRestored","premultipliedAlpha","stencil","e2","glContextId","blendModesWebGL","SRC_ALPHA","DST_ALPHA","DST_COLOR","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","drawCount","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","colorMask","__stage","removeEvents","updateTextures","_interactiveEventsAdded","setTarget","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","end","frameUpdates","updateTextureFrame","texturesToDestroy","texturesToUpdate","glTexture","deleteTexture","_updateWebGLuvs","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","_powerOf2","preventDefault","setContext","maskStack","maskPosition","maskData","STENCIL_TEST","stencilFunc","ALWAYS","stencilOp","KEEP","INCR","NOTEQUAL","DECR","maxAttibs","attribState","tempAttribState","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","currentShader","vertSize","numVerts","numIndices","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","vertexBuffer","DYNAMIC_DRAW","sprite","setBlendMode","uvs","_uvs","verticies","aX","aY","x0","y0","renderTilingSprite","tilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","bufferSubData","subarray","TRIANGLES","TEXTURE0","blendModeWebGL","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","filter","FilterTexture","padidng","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","shaders","colorBuffer","colorArray","createFramebuffer","framebuffer","framebufferTexture2D","COLOR_ATTACHMENT0","deleteFramebuffer","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","roundColor","stringColor","tintCache","tintMethod","convertTintToImage","tintImage","Image","toDataURL","tintWithMultiply","tintWithOverlay","tintWithPerPixel","rgbValues","pixelData","pixels","putImageData","cacheStepsPerColorChannel","canUseMultiply","CanvasRenderer","clearBeforeRender","refresh","renderStripFlat","strip","beginPath","moveTo","lineTo","closePath","renderStrip","u0","v2","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","CanvasBuffer","strokeRect","arc","ellipseData","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","currentPath","boundsPadding","destroyCachedSprite","lineStyle","filling","beginFill","endFill","drawRect","drawCircle","drawEllipse","canvasBuffer","translate","updateBounds","TilingSprite","refreshTexture","generateTilingTexture","needsUpdate","__tilePattern","createPattern","forcePowerOfTwo","targetWidth","targetHeight","isFrame","newTextureRequired","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","scope","onload","content","imageUrl","updateSourceImage","newSrc","image","crossOrigin","_pixiId","TextureCacheIdGenerator","FrameCache","noFrame","setFrame","onBaseTextureLoaded","onLoaded","destroyBase","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","originalWorldTransform","tempMatrix","Phaser","DEV_VERSION","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","BITMAPFONT","NONE","LEFT","RIGHT","UP","DOWN","parseDimension","dimension","innerWidth","innerHeight","shuffle","random","pad","dir","padlen","isPlainObject","nodeType","hasOwn","copyIsArray","deep","isArray","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","round","distanceRound","circumferencePoint","asDegrees","offsetPoint","bottom","equals","intersects","radToDeg","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","clampX","clamp","clampY","output","getMagnitude","setMagnitude","magnitude","isZero","degToRad","floorAll","inflate","containsRect","intersection","intersectsRaw","union","empty",{"end":{"file":"phaser.js","comments_before":[],"nlb":false,"endpos":618597,"pos":618588,"col":8,"line":21964,"value":"halfWidth","type":"name"},"start":{"file":"phaser.js","comments_before":[],"nlb":false,"endpos":618597,"pos":618588,"col":8,"line":21964,"value":"halfWidth","type":"name"},"name":"halfWidth"},"bottomRight","volume","perimeter","centerX","centerY","topLeft","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","fromSprite","startSprite","endSprite","useCenter","center","asSegment","intersectsPoints","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","atan2","Camera","game","screenView","deadzone","atLimit","_edge","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","focusOn","setPosition","focusOnXY","updateTarget","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","paused","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","onLoadComplete","loadComplete","state","autoStart","newState","isBooted","remove","callbackContext","onDestroyCallback","clearWorld","clearCache","checkState","preUpdate","removeAll","setCurrentState","totalQueuedFiles","valid","link","getCurrentState","preRender","renderType","LinkedList","next","prev","total","callAll","entity","Signal","_bindings","_prevParams","dispatch","memorize","_shouldPropagate","active","validateListener","fnName","replace","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","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","_parent","plugins","_pluginsLength","plugin","_p","postUpdate","disableVisibilityChange","checkOffsetInterval","exists","currentRenderOrderID","_hiddenVar","_nextOffsetCheck","_backgroundColor","config","parseConfig","Canvas","getOffset","stlye","fullScreenScaleMode","_this","_onChange","visibilityChange","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","onpagehide","onpageshow","onblur","onfocus","gamePaused","timeStamp","gameResumed","Color","hexToRGB","Group","addToStage","alive","cursor","_cursorIndex","cameraOffset","_cache","Int16Array","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","events","onAddedToGroup","addAt","getAt","createMultiple","quantity","previous","swap","child1","bringToTop","getIndex","sendToBottom","moveUp","moveDown","oldChild","newChild","onRemovedFromGroup","setProperty","operation","checkAlive","checkVisible","setAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","method","methodLength","contextLength","renderOrderID","checkExists","forEachExists","iterate","forEachAlive","forEachDead","order","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","countLiving","countDead","getRandom","startIndex","removeBetween","endIndex","destroyChildren","setBounds","integerInRange","ScaleManager","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","pageAlignHorizontally","pageAlignVertically","maxIterations","orientationSprite","enterLandscape","enterPortrait","enterIncorrectOrientation","leaveIncorrectOrientation","hasResized","enterFullScreen","leaveFullScreen","orientation","outerWidth","outerHeight","scaleFactor","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","NO_SCALE","_startHeight","checkOrientation","checkResize","fullScreenChange","EXACT_FIT","SHOW_ALL","startFullScreen","isFullScreen","device","fullscreen","smoothed","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","setShowAll","forceOrientation","orientationImage","checkImageKey","checkOrientationState","isLandscape","iPad","webApp","desktop","android","chrome","scrollTo","_check","_iterations","setInterval","setScreenSize","documentElement","setMaximum","setExactFit","clearInterval","marginLeft","marginTop","availableWidth","availableHeight","Game","physicsConfig","isRunning","raf","net","stepping","pendingStep","stepCount","_paused","_codePaused","_onBoot","readyState","Device","RandomDataGenerator","setUpRenderer","checkFullScreenSupport","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Physics","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","webAudio","trident","addToDOM","enableStep","disableStep","setMute","unsetMute","mute","hitCanvas","hitContext","moveCallback","moveCallbackContext","pollRate","_pollCounter","_oldPosition","_x","_y","disabled","multiInputOverride","MOUSE_TOUCH_COMBINE","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","onDown","onUp","onTap","onHold","interactiveItems","_localPoint","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","Pointer","Mouse","Keyboard","Touch","MSPointer","Gamepad","setMoveCallback","addPointer","hard","resetSpeed","startPointer","totalActivePointers","updatePointer","identifier","move","stopPointer","getPointer","getPointerFromIdentifier","getLocalPosition","wt","worldVisible","TileSprite","Key","keycode","isDown","isUp","altKey","ctrlKey","shiftKey","timeDown","duration","timeUp","repeats","keyCode","onHoldCallback","onHoldContext","processKeyDown","processKeyUp","justPressed","justReleased","_keys","_capture","_onKeyDown","_onKeyUp","onDownCallback","onUpCallback","addCallbacks","addKey","addKeyCapture","createCursorKeys","up","down","removeKeyCapture","clearCaptures","A","C","D","E","H","J","K","L","M","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","capture","button","locked","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","onMouseDown","onMouseMove","onMouseUp","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerId","_holdSent","_history","_nextDrop","_stateReset","withinGame","clientX","clientY","pageX","pageY","screenX","screenY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","_touchedHandler","shift","fromClick","pollLocked","isDragged","_highestRenderOrderID","MAX_SAFE_INTEGER","_highestRenderObject","_highestInputPriorityID","currentNode","pixelPerfectClick","pixelPerfectOver","priorityID","checkPointerOver","checkPointerDown","_pointerOutHandler","_pointerOverHandler","leave","_releasedHandler","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","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","callbacks","onConnect","onDisconnect","onAxis","onFloat","newPad","connect","_ongamepaddisconnected","removedPad","disconnect","_pollGamepads","_connected","pollStatus","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","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","padParent","_padParent","_index","_rawPad","_prevTimestamp","_rawButtons","_buttons","_axes","_hotkeys","addButton","GamepadButton","timestamp","buttons","buttonValue","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axisState","axisCode","buttoncode","InputHandler","useHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","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","onAnimationStart","onAnimationComplete","onAnimationLoop","existing","object","group","tween","audio","loop","tileSprite","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","bitmapFont","characterWidth","characterHeight","charsPerRow","xSpacing","ySpacing","BitmapFont","bitmapText","tilemap","tilesets","Tilemap","addToCache","uuid","addRenderTexture","bitmapData","BitmapData","addBitmapData","ctx","imageData","textureFrame","Frame","_dirty","loadTexture","refreshBuffer","Int32Array","setPixel32","red","green","blue","setPixel","getPixel","data32","getPixel32","getPixels","copyPixels","destX","destY","getImage","draw","alphaMask","animations","AnimationManager","_frame","_frameName","autoCull","health","lifespan","checkWorldBounds","outOfBoundsKill","elapsed","kill","isSpriteSheet","loadFrameData","getFrameData","frameName","crop","hasOwnProperty","sourceWidth","sourceHeight","local","revive","damage","_outOfBoundsFired","play","frameRate","killOnComplete","wrapAngle","addToWorld","removeFromWorld","frameData","getFrameByName","getFrame","_scroll","physicsElapsed","autoScroll","stopScroll","_text","_font","_fontSize","_fontWeight","_lineSpacing","parentNode","setShadow","blur","shadowOffsetX","shadowOffsetY","shadowColor","shadowBlur","runWordWrap","parseFloat","_align","_tint","_onOverFrameName","_onOutFrameName","_onDownFrameName","_onUpFrameName","_onOverFrameID","_onOutFrameID","_onDownFrameID","_onUpFrameID","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","_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","buildBitmapFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","char","code","newText","toUpperCase","noCocoon","display","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollLeft","compatMode","pageYOffset","pageXOffset","getAspectRatio","msTouchAction","overflowHidden","getElementById","overflow","translateX","translateY","skewX","skewY","setSmoothingEnabled","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","patchAndroidClearRectBug","iOS","cocoonJS","ejecta","chromeOS","linux","macOS","windows","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","quirksMode","arora","epiphany","firefox","ie","ieVersion","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","iPhone","iPhone4","pixelRatio","littleEndian","_checkAudio","_checkBrowser","_checkCSS3D","_checkDevice","_checkFeatures","_checkOS","ua","getItem","WebGLRenderingContext","maxTouchPoints","msPointerEnabled","pointerEnabled","fs","cfs","RegExp","$1","$2","audioElement","canPlayType","toLowerCase","Int8Array","vibrate","webkitVibrate","mozVibrate","msVibrate","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","_i","avg","truncate","shear","snapTo","gap","snapToFloor","snapToCeil","snapToInArray","arr","low","high","POSITIVE_INFINITY","roundTo","place","base","floorTo","ceilTo","interpolateFloat","weight","angleBetween","angleBetweenPoints","point1","point2","reverseAngle","angleRad","normalizeAngle","normalizeLatitude","lat","normalizeLongitude","lng","nearestAngleBetween","radians","rd","interpolateAngles","ease","normalizeAngleToAnother","chanceRoll","chance","numberArray","maxAdd","minSub","wrap","range","wrapValue","diff","randomSign","isOdd","isEven","minProperty","maxProperty","angleLimit","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","factorial","p3","t2","t3","difference","objects","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","stack","shuffleArray","distancePow","distanceRounded","clampBottom","within","mapLinear","smoothstep","smootherstep","p2px","px2p","p2pxi","px2pi","degreeToRadiansFactor","degrees","radianToDegreesFactor","seeds","s0","s1","s2","sow","hash","seed","integer","frac","real","realInRange","pick","ary","weightedPick","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","_pauseAll","_resumeAll","getAll","pendingDelete","Tween","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","field","onStart","onLoop","onComplete","properties","yoyo","_lastChild","chain","times","easing","interpolation","pauseDuration","isFinite","numChainedTweens","Quadratic","In","Out","InOut","Cubic","Quartic","Quintic","Sinusoidal","Exponential","Circular","Elastic","asin","Back","Bounce","pausedTime","advancedTiming","fps","fpsMin","fpsMax","msMin","msMax","frames","Timer","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","_len","autoDestroy","timer","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","_now","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","newTick","ms","currentFrame","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","useNumericIndex","getFrameIndexes","Animation","currentAnim","validateFrames","checkFrameName","isPlaying","resetFrame","getAnimation","refreshFrame","_frameIndex","isPaused","looped","_frames","isFinished","_pauseStartTime","_frameDiff","_frameSkip","_timeLastFrame","_timeNextFrame","restart","generateFrameNames","prefix","suffix","zeroPad","rotated","rotationDirection","trimmed","sourceSizeW","sourceSizeH","spriteSourceSizeX","spriteSourceSizeY","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destWidth","destHeight","getRect","_frameNames","getFrameRange","getFrames","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","img","row","column","JSONData","cacheKey","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","frameX","frameY","nodeValue","_canvases","_images","_textures","_sounds","_json","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","addDefaultImage","addMissingImage","onSoundUnlock","TEXTURE","SOUND","PHYSICS","BINARY","addCanvas","addBinary","binaryData","addBitmapFont","addSpriteSheet","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","TEXTURE_ATLAS_XML_STARLING","xmlData","LoaderParser","addPhysicsData","addText","addJSON","addImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","getCanvas","getBitmapData","getBitmapFont","getPhysicsData","getTilemapData","getFrameByIndex","getTextureFrame","getTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getText","getJSON","getBinary","getKeys","removeCanvas","removeImage","removeSound","removeText","removeJSON","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","_fileList","_fileIndex","_progressChunk","_xhr","isLoading","progress","progressFloat","preloadSprite","baseURL","onFileComplete","onFileError","onLoadStart","PHYSICS_LIME_CORONA","setPreloadSprite","direction","checkKeyExists","getAssetIndex","getAsset","addToFileList","entry","loaded","prop","replaceInFileList","overwrite","script","binary","spritesheet","urls","autoDecode","mapDataURL","CSV","TILED_JSON","dataURL","jsonData","LIME_CORONA_JSON","textureURL","xmlURL","domparser","DOMParser","parseFromString","async","loadXML","atlasJSONArray","atlasURL","atlas","atlasJSONHash","atlasXML","removeFile","loadFile","fileComplete","onerror","fileError","getAudioURL","usingWebAudio","open","responseType","send","usingAudioTag","Audio","jsonLoadComplete","csvLoadComplete","dataLoadError","extension","lastIndexOf","nextFile","loadNext","xmlLoadComplete","response","decodeAudioData","onSoundDecode","responseText","language","defer","head","previousIndex","success","totalLoadedFiles","ajaxRequest","innerHTML","info","common","getAttribute","letters","textureRect","kernings","second","connectToMaster","_volume","markers","_buffer","_muted","autoplay","totalDuration","startTime","currentTime","stopTime","pausedPosition","currentMarker","pendingPlayback","override","externalNode","masterGainNode","masterGain","gainNode","createGain","createGainNode","gain","_sound","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","addMarker","durationMS","removeMarker","_tempMarker","_tempPosition","_tempVolume","_tempLoop","forceRestart","noteOff","createBufferSource","noteGrainOn","decode","muted","prevMarker","_muteVolume","_codeMuted","_unlockSource","noAudio","channels","fakeiOSTouchLock","unlock","disableAudio","disableWebAudio","destination","noteOn","stopAll","soundData","playbackState","PLAYING_STATE","FINISHED_STATE","columnWidth","renderShadow","currentAlpha","currentColor","splitline","renderSoundInfo","isDecoded","renderCameraInfo","renderPointer","hideIfUp","downColor","upColor","worldX","worldY","renderSpriteInputInfo","renderKey","renderInputInfo","renderSpriteBounds","filled","renderRectangle","renderSpriteInfo","inCamera","renderSpriteCoords","renderLine","renderLineInfo","renderPointInfo","renderPixel","renderPoint","renderCircle","renderText","renderBodyInfo","renderPhysicsBody","renderShapeRectangle","renderShapeLine","renderShapeConvex","renderShapeCircle","bodyAngle","getColor32","getColor","hex16","getColorInfo","argb","getRGB","hsl","RGBtoHSV","RGBtoHexstring","hue","saturation","lightness","colorToHexstring","RGBtoWebstring","digits","lsd","msd","hexified","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","g1","g2","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","materials","InversePointProxy","_wallShapes","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","onPostStep","onPostBroadphase","onImpact","onBeginContact","onEndContact","postStepHandler","postBroadphaseHandler","impactHandler","beginContactHandler","endContactHandler","collisionGroups","_collisionGroupID","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","hw","hh","constraint","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","createCollisionGroup","bitmask","createBody","addPolygon","createParticle","PointProxy","collideWorldBounds","collidesWith","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","clearCollision","clearGroup","clearMask","collides","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","resetDamping","resetMass","clearShapes","addCircle","addRectangle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","loadPolygon","loadData","worldA","worldB","localA","localB","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","particleClass","particleFriction","angularDrag","bounce","_quantity","_timer","_counter","_explode","emitX","emitY","emitParticle","makeParticles","collide","particle","rndKey","rndFrame","checkCollision","any","none","explode","setXSpeed","setYSpeed","setRotation","Tile","layer","scanned","faceTop","faceBottom","faceLeft","faceRight","collideNone","collideLeft","collideRight","collideUp","collideDown","collisionCallback","collisionCallbackContext","setCollisionCallback","setCollision","resetCollision","tile","TilemapParser","tileWidth","tileHeight","widthInPixels","heightInPixels","layers","tiles","collision","images","currentLayer","debugMap","_results","_tempA","_tempB","tileMargin","tileSpacing","indexes","addTilesetImage","tileset","getTilesetIndex","createFromObjects","gid","clearPhysicsBodies","getLayer","generateCollisionData","sx","sy","getTileRight","createCollisionObjects","polyline","createLayer","getLayerIndex","TilemapLayer","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","recalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","putTile","putTileWorldXY","getTile","getTileWorldXY","paste","tileblock","diffX","diffY","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","tileColor","debugAlpha","debugColor","debugFill","debugFillColor","debugCallbackColor","scrollFactorX","scrollFactorY","_cw","_ch","_ga","_dx","_dy","_dw","_dh","_tx","_ty","_tw","_th","_tl","_maxX","_maxY","_startX","_startY","_prevX","_prevY","updateMax","scrollX","scrollY","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getTiles","wy","wx","_wx","_wy","lenY","_column","lenX","renderDebug","rows","columns","getTilesetImage","Tileset","parseCSV","parseTiledJSON","getEmptyData","tilewidth","tileheight","opacity","newSet","firstgid","tileproperties","tileProperties","imageheight","imagewidth","countX","countY","setSpacing"],"mappings":"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"} \ No newline at end of file diff --git a/build/phaser.min.js b/build/phaser.min.js index bdc01f09b..f7f2af66c 100644 --- a/build/phaser.min.js +++ b/build/phaser.min.js @@ -7,13 +7,13 @@ if(c[1]-m>y)return l?!1:0;c[1]+mA;A++){g.set(u,A*o,n[ },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(){this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));"," gl_FragColor = gl_FragColor * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","uniform vec2 offsetVector;","varying float 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);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"]},b.StripShader.prototype.init=function(){var a=b.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.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader=function(a){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.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d=c.gl,e=c.projection,f=c.offset,g=c.shaderManager.primitiveShader;a._webGL[d.id]||(a._webGL[d.id]={points:[],indices:[],lastIndex:0,buffer:d.createBuffer(),indexBuffer:d.createBuffer()});var h=a._webGL[d.id];a.dirty&&(a.dirty=!1,a.clearDirty&&(a.clearDirty=!1,h.lastIndex=0,h.points=[],h.indices=[]),b.WebGLGraphics.updateGraphics(a,d)),c.shaderManager.activatePrimitiveShader(),d.blendFunc(d.ONE,d.ONE_MINUS_SRC_ALPHA),d.uniformMatrix3fv(g.translationMatrix,!1,a.worldTransform.toArray(!0)),d.uniform2f(g.projectionVector,e.x,-e.y),d.uniform2f(g.offsetVector,-f.x,-f.y),d.uniform3fv(g.tintColor,b.hex2rgb(a.tint)),d.uniform1f(g.alpha,a.worldAlpha),d.bindBuffer(d.ARRAY_BUFFER,h.buffer),d.vertexAttribPointer(g.aVertexPosition,2,d.FLOAT,!1,24,0),d.vertexAttribPointer(g.colorAttribute,4,d.FLOAT,!1,24,8),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,h.indexBuffer),d.drawElements(d.TRIANGLE_STRIP,h.indices.length,d.UNSIGNED_SHORT,0),c.shaderManager.deactivatePrimitiveShader()},b.WebGLGraphics.updateGraphics=function(a,c){for(var d=a._webGL[c.id],e=d.lastIndex;e3&&b.WebGLGraphics.buildPoly(f,d),f.lineWidth>0&&b.WebGLGraphics.buildLine(f,d)):f.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(f,d):(f.type===b.Graphics.CIRC||f.type===b.Graphics.ELIP)&&b.WebGLGraphics.buildCircle(f,d)}d.lastIndex=a.graphicsData.length,d.glPoints=new Float32Array(d.points),c.bindBuffer(c.ARRAY_BUFFER,d.buffer),c.bufferData(c.ARRAY_BUFFER,d.glPoints,c.STATIC_DRAW),d.glIndicies=new Uint16Array(d.indices),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,d.indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,d.glIndicies,c.STATIC_DRAW)},b.WebGLGraphics.buildRectangle=function(a,c){var d=a.points,e=d[0],f=d[1],g=d[2],h=d[3];if(a.fill){var i=b.hex2rgb(a.fillColor),j=a.fillAlpha,k=i[0]*j,l=i[1]*j,m=i[2]*j,n=c.points,o=c.indices,p=n.length/6;n.push(e,f),n.push(k,l,m,j),n.push(e+g,f),n.push(k,l,m,j),n.push(e,f+h),n.push(k,l,m,j),n.push(e+g,f+h),n.push(k,l,m,j),o.push(p,p,p+1,p+2,p+3,p+3)}if(a.lineWidth){var q=a.points;a.points=[e,f,e+g,f,e+g,f+h,e,f+h,e,f],b.WebGLGraphics.buildLine(a,c),a.points=q}},b.WebGLGraphics.buildCircle=function(a,c){var d=a.points,e=d[0],f=d[1],g=d[2],h=d[3],i=40,j=2*Math.PI/i,k=0;if(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;for(r.push(s),k=0;i+1>k;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.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.glContexts=[],b.WebGLRenderer=function(a,c,d,e,f){b.defaultRenderer||(b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.transparent=!!e,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};try{this.gl=this.view.getContext("experimental-webgl",this.options)}catch(g){try{this.gl=this.view.getContext("webgl",this.options)}catch(h){throw new Error(" This browser does not support webGL. Try using the canvas renderer"+this)}}var i=this.gl;this.glContextId=i.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=i,b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[i.SRC_ALPHA,i.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[i.SRC_ALPHA,i.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[i.ONE,i.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[i.ONE,i.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(i),this.spriteBatch=new b.WebGLSpriteBatch(i),this.maskManager=new b.WebGLMaskManager(i),this.filterManager=new b.WebGLFilterManager(i,this.transparent),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.spriteBatch=this.spriteBatch,this.renderSession.renderer=this,i.useProgram(this.shaderManager.defaultShader.program),i.disable(i.DEPTH_TEST),i.disable(i.CULL_FACE),i.enable(i.BLEND),i.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,b,c){this.renderSession.drawCount=0,this.renderSession.currentBlendMode=9999,this.renderSession.projection=b,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,c),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.updateFrame=!1,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,!0),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._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,!0),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))},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.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.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.WebGLMaskManager=function(a){this.maskStack=[],this.maskPosition=0,this.setContext(a)},b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=this.gl;0===this.maskStack.length&&(d.enable(d.STENCIL_TEST),d.stencilFunc(d.ALWAYS,1,1)),this.maskStack.push(a),d.colorMask(!1,!1,!1,!0),d.stencilOp(d.KEEP,d.KEEP,d.INCR),b.WebGLGraphics.renderGraphics(a,c),d.colorMask(!0,!0,!0,!0),d.stencilFunc(d.NOTEQUAL,0,this.maskStack.length),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)},b.WebGLMaskManager.prototype.popMask=function(a){var c=this.gl,d=this.maskStack.pop();d&&(c.colorMask(!1,!1,!1,!1),c.stencilOp(c.KEEP,c.KEEP,c.DECR),b.WebGLGraphics.renderGraphics(d,a),c.colorMask(!0,!0,!0,!0),c.stencilFunc(c.NOTEQUAL,0,this.maskStack.length),c.stencilOp(c.KEEP,c.KEEP,c.KEEP)),0===this.maskStack.length&&c.disable(c.STENCIL_TEST)},b.WebGLMaskManager.prototype.destroy=function(){this.maskStack=null,this.gl=null},b.WebGLShaderManager=function(a){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];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)},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;(b.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size)&&(this.flush(),this.currentBaseTexture=b.baseTexture),a.blendMode!==this.currentBlendMode&&this.setBlendMode(a.blendMode);var c=a._uvs||a.texture._uvs;if(c){var d,e,f,g,h=a.worldAlpha,i=a.tint,j=this.vertices,k=a.anchor.x,l=a.anchor.y;if(a.texture.trim){var m=a.texture.trim;e=m.x-k*m.width,d=e+b.frame.width,g=m.y-l*m.height,f=g+b.frame.height}else d=b.frame.width*(1-k),e=b.frame.width*-k,f=b.frame.height*(1-l),g=b.frame.height*-l;var n=4*this.currentBatchSize*this.vertSize,o=a.worldTransform,p=o.a,q=o.c,r=o.b,s=o.d,t=o.tx,u=o.ty;j[n++]=p*e+r*g+t,j[n++]=s*g+q*e+u,j[n++]=c.x0,j[n++]=c.y0,j[n++]=h,j[n++]=i,j[n++]=p*d+r*g+t,j[n++]=s*g+q*d+u,j[n++]=c.x1,j[n++]=c.y1,j[n++]=h,j[n++]=i,j[n++]=p*d+r*f+t,j[n++]=s*f+q*d+u,j[n++]=c.x2,j[n++]=c.y2,j[n++]=h,j[n++]=i,j[n++]=p*e+r*f+t,j[n++]=s*f+q*e+u,j[n++]=c.x3,j[n++]=c.y3,j[n++]=h,j[n++]=i,this.currentBatchSize++}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;(c.baseTexture!==this.currentBaseTexture||this.currentBatchSize>=this.size)&&(this.flush(),this.currentBaseTexture=c.baseTexture),a.blendMode!==this.currentBlendMode&&this.setBlendMode(a.blendMode),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.worldAlpha,j=a.tint,k=this.vertices,l=a.width,m=a.height,n=a.anchor.x,o=a.anchor.y,p=l*(1-n),q=l*-n,r=m*(1-o),s=m*-o,t=4*this.currentBatchSize*this.vertSize,u=a.worldTransform,v=u.a,w=u.c,x=u.b,y=u.d,z=u.tx,A=u.ty;k[t++]=v*q+x*s+z,k[t++]=y*s+w*q+A,k[t++]=d.x0,k[t++]=d.y0,k[t++]=i,k[t++]=j,k[t++]=v*p+x*s+z,k[t++]=y*s+w*p+A,k[t++]=d.x1,k[t++]=d.y1,k[t++]=i,k[t++]=j,k[t++]=v*p+x*r+z,k[t++]=y*r+w*p+A,k[t++]=d.x2,k[t++]=d.y2,k[t++]=i,k[t++]=j,k[t++]=v*q+x*r+z,k[t++]=y*r+w*q+A,k[t++]=d.x3,k[t++]=d.y3,k[t++]=i,k[t++]=j,this.currentBatchSize++},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]||b.createWebGLTexture(this.currentBaseTexture,a)),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.WebGLSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLSpriteBatch.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 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),this.currentBlendMode!==b.blendModes.NORMAL&&this.setBlendMode(b.blendModes.NORMAL)},b.WebGLSpriteBatch.prototype.setBlendMode=function(a){this.flush(),this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];this.gl.blendFunc(c[0],c[1])},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),this.currentBlendMode=99999},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.currentBlendMode&&this.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.frame.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.frame.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 c=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,c.x,c.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var d=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,d,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,d,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,d,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,d,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,d,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,d,36),this.currentBlendMode!==b.blendModes.NORMAL&&this.setBlendMode(b.blendModes.NORMAL)},b.WebGLFastSpriteBatch.prototype.setBlendMode=function(a){this.flush(),this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];this.gl.blendFunc(c[0],c[1])},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;this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a.target.filterArea.x,this.offsetY+=a.target.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),a.target.filterArea=a.target.getBounds();var h=a.target.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,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.target.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;f1&&(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;hd;d++)this.children[d]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(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]),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)}},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=-1/0,v=-1/0,w=1/0,x=1/0;w=w>m?m:w,w=w>o?o:w,w=w>q?q:w,w=w>s?s:w,x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,u=m>u?m:u,u=o>u?o:u,u=q>u?q:u,u=s>u?s:u,v=n>v?n:v,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)},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.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.onTextureUpdate=function(){this.updateFrame=!0},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=this.worldTransform;c.setTransform(d.a,d.c,d.b,d.d,d.tx,d.ty),(!this.__tilePattern||this.refreshTexture)&&(this.generateTilingTexture(!1),this.tilingTexture&&(this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat"))),this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),c.beginPath();var e=this.tilePosition,f=this.tileScale;e.x%=this.tilingTexture.baseTexture.width,e.y%=this.tilingTexture.baseTexture.height,c.scale(f.x,f.y),c.translate(e.x,e.y),c.fillStyle=this.__tilePattern,c.fillRect(-e.x,-e.y,this.width/f.x,this.height/f.y),c.scale(1/f.x,1/f.y),c.translate(-e.x,-e.y),c.closePath(),this._mask&&a.maskManager.popMask(a.context)}},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){var c=this.texture;if(c.baseTexture.hasLoaded){var d,e,f=c.baseTexture,g=c.frame,h=g.width!==f.width||g.height!==f.height,i=!1;if(a?(d=b.getNextPowerOfTwo(g.width),e=b.getNextPowerOfTwo(g.height),g.width!==d&&g.height!==e&&(i=!0)):h&&(d=g.width,e=g.height,i=!0),i){var j;this.tilingTexture&&this.tilingTexture.isTiling?(j=this.tilingTexture.canvasBuffer,j.resize(d,e),this.tilingTexture.baseTexture.width=d,this.tilingTexture.baseTexture.height=e,this.tilingTexture.needsUpdate=!0):(j=new b.CanvasBuffer(d,e),this.tilingTexture=b.Texture.fromCanvas(j.canvas),this.tilingTexture.canvasBuffer=j,this.tilingTexture.isTiling=!0),j.context.drawImage(c.baseTexture.source,g.x,g.y,g.width,g.height,0,0,d,e),this.tileScaleOffset.x=g.width/d,this.tileScaleOffset.y=g.height/e}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=c;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._glTextures=[],a){if(this.source.complete||this.source.getContext)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,b.texturesToUpdate.push(d),d.dispatchEvent({type:"loaded",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.destroy=function(){this.imageUrl&&(delete b.BaseTextureCache[this.imageUrl],this.imageUrl=null,this.source.src=null),this.source=null,b.texturesToDestroy.push(this)},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(c=!c,!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c){if(b.EventTarget.call(this),c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=null,this.scope=this,this._uvs=null,a.hasLoaded)this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c);else{var d=this;a.addEventListener("loaded",function(){d.onBaseTextureLoaded()})}},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.scope.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy()},b.Texture.prototype.setFrame=function(a){if(this.frame=a,this.width=a.width,this.height=a.height,a.x+a.width>this.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.updateFrame=!0,b.Texture.frameUpdates.push(this)},b.Texture.prototype._updateWebGLuvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.frame,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.y4=0},b.RenderTexture=function(a,c,d){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.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTextures=[],this.baseTexture.hasLoaded=!0,this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var e=this.renderer.gl;this.textureBuffer=new b.FilterTexture(e,this.width,this.height),this.baseTexture._glTextures[e.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){if(this.width=a,this.height=c,this.frame.width=this.width,this.frame.height=this.height,this.renderer.type===b.WEBGL_RENDERER){this.projection.x=this.width/2,this.projection.y=-this.height/2;var d=this.renderer.gl;d.bindTexture(d.TEXTURE_2D,this.baseTexture._glTextures[d.id]),d.texImage2D(d.TEXTURE_2D,0,d.RGBA,this.width,this.height,0,d.RGBA,d.UNSIGNED_BYTE,null)}else this.textureBuffer.resize(this.width,this.height);b.Texture.frameUpdates.push(this)},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.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),a.worldTransform=g},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);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(b):a.PIXI=b}.call(this),function(){var a=this,b=b||{VERSION:"<%= version %>",DEV_VERSION:"2.0",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,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,BITMAPFONT:18,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,DYNAMIC:1,STATIC:2,KINEMATIC:4,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}};PIXI.InteractionManager=function(){},b.Utils={parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},shuffle: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},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=Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f; a=Array(g+1).join(c)+a+Array(f+1).join(c);break;default:a+=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&&!hasOwn.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}},"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)}),b.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.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.distanceRound(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.radToDeg(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},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)},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},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.distance=function(a,c,d){return"undefined"==typeof d&&(d=!1),d?b.Math.distanceRound(a.x,a.y,c.x,c.y):b.Math.distance(a.x,a.y,c.x,c.y)},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))},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+")}]"},get halfWidth(){return Math.round(this.width/2)},get halfHeight(){return Math.round(this.height/2)},get bottom(){return this.y+this.height},set bottom(a){this.height=a<=this.y?0:this.y-a},get bottomRight(){return new b.Point(this.right,this.bottom)},set bottomRight(a){this.right=a.x,this.bottom=a.y},get left(){return this.x},set left(a){this.width=a>=this.right?0:this.right-a,this.x=a},get right(){return this.x+this.width},set right(a){this.width=a<=this.x?0:this.x+a},get volume(){return this.width*this.height},get perimeter(){return 2*this.width+2*this.height},get centerX(){return this.x+this.halfWidth},set centerX(a){this.x=a-this.halfWidth},get centerY(){return this.y+this.halfHeight},set centerY(a){this.y=a-this.halfHeight},get top(){return this.y},set top(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a},get topLeft(){return new b.Point(this.x,this.y)},set topLeft(a){this.x=a.x,this.y=a.y},get empty(){return!this.width||!this.height},set empty(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?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?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}},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.x-this.start.x,this.end.y-this.start.y)}}),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))}}),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){if(Math.pow(g.x-c.x+(g.y-c.y),2)>Math.pow(a.x-c.x+(a.y-c.y),2))return null;if(Math.pow(g.x-a.x+(g.y-a.y),2)>Math.pow(a.x-c.x+(a.y-c.y),2))return null;if(Math.pow(g.x-e.x+(g.y-e.y),2)>Math.pow(d.x-e.x+(d.y-e.y),2))return null;if(Math.pow(g.x-d.x+(g.y-d.y),2)>Math.pow(d.x-e.x+(d.y-e.y),2))return 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=!0)}return c}},b.Polygon.prototype.constructor=b.Polygon,PIXI.Polygon=b.Polygon,b.Camera=function(a,c,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new b.Rectangle(d,e,f,g),this.screenView=new b.Rectangle(d,e,f,g),this.bounds=new b.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.atLimit={x:!1,y:!1},this.target=null,this._edge=0,this.displayObject=null},b.Camera.FOLLOW_LOCKON=0,b.Camera.FOLLOW_PLATFORMER=1,b.Camera.FOLLOW_TOPDOWN=2,b.Camera.FOLLOW_TOPDOWN_TIGHT=3,b.Camera.prototype={follow:function(a,c){"undefined"==typeof c&&(c=b.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(c){case b.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new b.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case b.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new b.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case b.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new b.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case b.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this.deadzone?(this._edge=this.target.x-this.deadzone.x,this.view.x>this._edge&&(this.view.x=this._edge),this._edge=this.target.x+this.target.width-this.deadzone.x-this.deadzone.width,this.view.xthis._edge&&(this.view.y=this._edge),this._edge=this.target.y+this.target.height-this.deadzone.y-this.deadzone.height,this.view.ythis.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.ythis.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(){},destroy: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.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.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.onDestroyCallback=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)))},dummy:function(){},preUpdate:function(){this._pendingState&&this.game.isBooted&&(this.current&&this.onShutDownCallback.call(this.callbackContext,this.game),this._clearWorld&&(this.game.tweens.removeAll(),this.game.world.destroy(),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()?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.game.physics&&(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.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)},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.onDestroyCallback=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)},remove:function(a){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),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.Signal=function(){this._bindings=[],this._prevParams=null;var a=this;this.dispatch=function(){b.Signal.prototype.dispatch.apply(a,arguments)}},b.Signal.prototype={memorize:!1,_shouldPropagate:!0,active:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,c,d,e){var f,g=this._indexOfListener(a,d);if(-1!==g){if(f=this._bindings[g],f.isOnce()!==c)throw new Error("You cannot add"+(c?"":"Once")+"() then add"+(c?"Once":"")+"() the same listener without removing the relationship first.")}else f=new b.SignalBinding(this,a,c,d,e),this._addBinding(f);return this.memorize&&this._prevParams&&f.execute(this._prevParams),f},_addBinding:function(a){var b=this._bindings.length;do--b;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){return this.validateListener(a,"add"),this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){return this.validateListener(a,"addOnce"),this._registerListener(a,!0,b,c)},remove:function(a,b){this.validateListener(a,"remove");var c=this._indexOfListener(a,b);return-1!==c&&(this._bindings[c]._destroy(),this._bindings.splice(c,1)),a},removeAll:function(){for(var a=this._bindings.length;a--;)this._bindings[a]._destroy();this._bindings.length=0},getNumListeners:function(){return this._bindings.length},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active){var a,b=Array.prototype.slice.call(arguments),c=this._bindings.length;if(this.memorize&&(this._prevParams=b),c){a=this._bindings.slice(),this._shouldPropagate=!0;do c--;while(a[c]&&this._shouldPropagate&&a[c].execute(b)!==!1)}}},forget:function(){this._prevParams=null},dispose:function(){this.removeAll(),delete this._bindings,delete this._prevParams},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},b.Signal.prototype.constructor=b.Signal,b.SignalBinding=function(a,b,c,d,e){this._listener=b,this._isOnce=c,this.context=d,this._signal=a,this._priority=e||0},b.SignalBinding.prototype={active:!0,params:null,execute:function(a){var b,c;return this.active&&this._listener&&(c=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,c),this._isOnce&&this.detach()),b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},b.SignalBinding.prototype.constructor=b.SignalBinding,b.Filter=function(a,c,d){this.game=a,this.type=b.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms={time:{type:"1f",value:0},resolution:{type:"2f",value:{x:256,y:256}},mouse:{type:"2f",value:{x:0,y:0}}},this.fragmentSrc=d||[]},b.Filter.prototype={init:function(){},setResolution:function(a,b){this.uniforms.resolution.value.x=a,this.uniforms.resolution.value.y=b},update:function(a){"undefined"!=typeof a&&(a.x>0&&(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,b){this.game=a,this._parent=b,this.plugins=[],this._pluginsLength=0},b.PluginManager.prototype={add:function(a){var b=!1;return"function"==typeof a?a=new a(this.game,this._parent):(a.game=this.game,a.parent=this._parent),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,b=!0),"function"==typeof a.update&&(a.hasUpdate=!0,b=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,b=!0),"function"==typeof a.render&&(a.hasRender=!0,b=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,b=!0),b?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._pluginsLength=this.plugins.push(a),"function"==typeof a.init&&a.init(),a):null},remove:function(a){if(0!==this._pluginsLength)for(this._p=0;this._pthis._nextOffsetCheck&&(b.Canvas.getOffset(this.game.canvas,this.offset),this._nextOffsetCheck=this.game.time.now+this.checkOffsetInterval)},b.Stage.prototype.parseConfig=function(a){this.game.canvas=a.canvasID?b.Canvas.create(this.game.width,this.game.height,a.canvasID):b.Canvas.create(this.game.width,this.game.height),a.canvasStyle?this.game.canvas.stlye=a.canvasStyle:this.game.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",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=new b.Rectangle(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&&(window.onpagehide=this._onChange,window.onpageshow=this._onChange),window.onblur=this._onChange,window.onfocus=this._onChange},b.Stage.prototype.visibilityChange=function(a){return this.disableVisibilityChange?void 0:"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.gamePaused(a.timeStamp):("pageshow"===a.type||"focus"===a.type)&&this.game.gameResumed(a.timeStamp)):void(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden?this.game.gamePaused(a.timeStamp):this.game.gameResumed(a.timeStamp))},b.Stage.prototype.setBackgroundColor=function(a){this._backgroundColor=a||0,this.backgroundColorSplit=PIXI.hex2rgb(this.backgroundColor);var b=this._backgroundColor.toString(16);b="000000".substr(0,6-b.length)+b,this.backgroundColorString="#"+b},Object.defineProperty(b.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this._backgroundColor=a,this.game.transparent===!1&&("string"==typeof a&&(a=b.Color.hexToRGB(a)),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){"undefined"==typeof e&&(e=!1),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.type=b.GROUP,this.alive=!0,this.exists=!0,this.scale=new b.Point(1,1),this.cursor=null,this._cursorIndex=0,this.cameraOffset=new b.Point,this._cache=new Int16Array([0,0,0,0,1,0,1,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){return a.parent!==this&&(this.addChild(a),a.events&&a.events.onAddedToGroup.dispatch(a,this)),null===this.cursor&&(this.cursor=a),a},b.Group.prototype.addAt=function(a,b){return a.parent!==this&&(this.addChildAt(a,b),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,c,d,e,f){"undefined"==typeof f&&(f=!0);var g=new b.Sprite(this.game,a,c,d,e);return g.exists=f,g.visible=f,g.alive=f,this.addChild(g),g.events&&g.events.onAddedToGroup.dispatch(g,this),null===this.cursor&&(this.cursor=g),g},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.next=function(){this.cursor&&(this._cursorIndex===this.children.length?this._cursorIndex=0:this._cursorIndex++,this.cursor=this.children[this._cursorIndex])},b.Group.prototype.previous=function(){this.cursor&&(0===this._cursorIndex?this._cursorIndex=this.children.length-1:this._cursorIndex--,this.cursor=this.children[this._cursorIndex])},b.Group.prototype.swap=function(a,b){return this.swapChildren(a,b)},b.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a),this.addAt(a,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(b,c)}return a},b.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},b.Group.prototype.replace=function(a,b){var c=this.getIndex(a);-1!==c&&(void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b)),this.removeChild(a),this.addChildAt(b,c),b.events.onAddedToGroup.dispatch(b,this),this.cursor===a&&(this.cursor=b))},b.Group.prototype.setProperty=function(a,b,c,d){d=d||0;var e=b.length;1==e?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==e?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==e?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==e&&(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))},b.Group.prototype.set=function(a,b,c,d,e,f){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)},b.Group.prototype.setAll=function(a,b,c,d,e){a=a.split("."),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),e=e||0;for(var f=0,g=this.children.length;g>f;f++)(!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&this.setProperty(this.children[f],a,b,e)},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){"undefined"==typeof a&&(a="y"),"undefined"==typeof c&&(c=b.Group.SORT_ASCENDING)},b.Group.prototype.sortHandler=function(){},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.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){return 0!==this.children.length?(a.events&&a.events.onRemovedFromGroup.dispatch(a,this),this.removeChild(a),this.cursor===a&&this.next(),!0):void 0},b.Group.prototype.removeAll=function(){if(0!==this.children.length){do this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this),this.removeChild(this.children[0]);while(this.children.length>0);this.cursor=null}},b.Group.prototype.removeBetween=function(a,b){if(0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var c=a;b>c;c++)this.children[c].events&&this.children[c].events.onRemovedFromGroup.dispatch(this.children[c],this),this.removeChild(this.children[c]),this.cursor===child&&(this.cursor=null)}},b.Group.prototype.destroy=function(a){if(null!==this.game){if("undefined"==typeof a&&(a=!0),a){if(this.children.length>0)do this.children[0].parent&&this.children[0].destroy(a);while(this.children.length>0)}else this.removeAll();this.parent.removeChild(this),this.game=null,this.exists=!1,this.cursor=null}},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,this.currentRenderOrderID=0},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.game.camera=this.camera,this.game.stage.addChild(this)},b.World.prototype.setBounds=function(a,b,c,d){cwindow.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.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;var e=this;window.addEventListener("orientationchange",function(a){return e.checkOrientation(a)},!1),window.addEventListener("resize",function(a){return e.checkResize(a)},!1),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.game.canvas[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT):this.game.canvas[this.game.device.requestFullscreen]())},stopFullScreen:function(){this.game.canvas[this.game.device.cancelFullscreen]()},fullScreenChange:function(a){this.event=a,this.isFullScreen?(this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?(this.game.canvas.style.width="100%",this.game.canvas.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.game.canvas.style.width=this.game.width+"px",this.game.canvas.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,b,c){"undefined"==typeof b&&(b=!1),this.forceLandscape=a,this.forcePortrait=b,"undefined"!=typeof c&&((null==c||this.game.cache.checkImageKey(c)===!1)&&(c="__default"),this.orientationSprite=new PIXI.Sprite(PIXI.TextureCache[c]),this.orientationSprite.anchor.x=.5,this.orientationSprite.anchor.y=.5,this.orientationSprite.position.x=this.game.width/2,this.orientationSprite.position.y=this.game.height/2,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===!1&&this.game.device.webApp===!1&&this.game.device.desktop===!1&&(this.game.device.android&&this.game.device.chrome===!1?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===!1&&this.game.device.webApp===!1&&this.game.device.desktop===!1&&(this.game.device.android&&this.game.device.chrome===!1?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===!0?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===!1&&(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.renderer=b.AUTO,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._paused=!1,this._codePaused=!1,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[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.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.physicsConfig&&(this.physicsConfig=a.physicsConfig);var c=null;a.state&&(c=a.state),this.state=new b.StateManager(this,c)},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.isBooted=!0,this.device=new b.Device(this),this.math=b.Math,this.rnd=new b.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.stage=new b.Stage(this,this.width,this.height),this.scale=new b.ScaleManager(this,this.width,this.height),this.setUpRenderer(),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.World(this,this.physicsConfig),this.particles=new b.Particles(this),this.plugins=new b.PluginManager(this,this),this.net=new b.Net(this),this.debug=new b.Utils.Debug(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.input.boot(),this.sound.boot(),this.state.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.DEV_VERSION,c="Canvas",d="HTML Audio";if(this.renderType==b.WEBGL?c="WebGL":this.renderType==b.HEADLESS&&(c="Headless"),this.device.webAudio&&(d="WebAudio"),this.device.chrome){var e=["%c %c %c Phaser v"+a+" - Renderer: "+c+" - Audio: "+d+" %c %c ","background: #00bff3","background: #0072bc","color: #ffffff; background: #003471","background: #0072bc","background: #00bff3"];console.log.apply(console,e)}else console.log("Phaser v"+a+" - Renderer: "+c+" - Audio: "+d)},setUpRenderer:function(){if(this.device.trident&&(this.renderType=b.CANVAS),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.context=null;this.stage.smoothed=this.antialias,b.Canvas.addToDOM(this.canvas,this.parent,!0),b.Canvas.setTouchAction(this.canvas)},update:function(a){this.time.update(a),this._paused?(this.input.update(),this.renderType!==b.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender())):(this.pendingStep||(this.stepping&&(this.pendingStep=!0),this.state.preUpdate(),this.plugins.preUpdate(),this.stage.preUpdate(),this.stage.update(),this.tweens.update(),this.sound.update(),this.input.update(),this.state.update(),this.physics.update(),this.particles.update(),this.plugins.update(),this.stage.postUpdate(),this.plugins.postUpdate()),this.renderType!==b.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender()))},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.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(a),this.sound.setMute(),this.onPause.dispatch(this))},gameResumed:function(a){this._paused&&!this._codePaused&&(this._paused=!1,this.time.gameResumed(a),this.input.reset(),this.sound.unsetMute(),this.onResume.dispatch(this))}},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.mute=!0,this.time.gamePaused(),this.onPause.dispatch(this)):this._paused&&(this._paused=!1,this._codePaused=!1,this.input.reset(),this.sound.mute=!1,this.time.gameResumed(),this.onResume.dispatch(this))}}),b.Input=function(a){this.game=a,this.hitCanvas=null,this.hitContext=null,this.moveCallback=null,this.moveCallbackContext=this,this.pollRate=0,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=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.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.interactiveItems=new b.LinkedList,this._localPoint=new b.Point},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.moveCallback=null},setMoveCallback:function(a,b){this.moveCallback=a,this.moveCallbackContext=b},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===!0&&(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.interactiveItems.callAll("reset")),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},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.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.isDown&&(this.duration=this.game.time.now-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(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(){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(){this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=this.game.time.now-this.timeDown},justPressed:function(a){return"undefined"==typeof a&&(a=2500),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.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.game.paused)return this;if(this.game.input.moveCallback&&this.game.input.moveCallback.call(this.game.input.moveCallbackContext,this,this.x,this.y),null!==this.targetObject&&this.targetObject.isDragged===!0)return this.targetObject.update(this)===!1&&(this.targetObject=null),this;if(this._highestRenderOrderID=-1,this._highestRenderObject=null,this._highestInputPriorityID=-1,this.game.input.interactiveItems.total>0){var d=this.game.input.interactiveItems.next;do(d.pixelPerfectClick||d.pixelPerfectOver||d.priorityID>this._highestInputPriorityID||d.priorityID===this._highestInputPriorityID&&d.sprite.renderOrderID>this._highestRenderOrderID)&&(!c&&d.checkPointerOver(this)||c&&d.checkPointerDown(this))&&(this._highestRenderOrderID=d.sprite.renderOrderID,this._highestInputPriorityID=d.priorityID,this._highestRenderObject=d),d=d.next;while(null!=d)}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){if(this._stateReset)return void a.preventDefault();if(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.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.total>0){var c=this.game.input.interactiveItems.next;do c&&c._releasedHandler(this),c=c.next;while(null!=c)}return this.targetObject&&this.targetObject._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.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}},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(){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("touchenter",this._onTouchEnter,!1),this.game.canvas.addEventListener("touchleave",this._onTouchLeave,!1),this.game.canvas.addEventListener("touchcancel",this._onTouchCancel,!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&&e>this.deadZone||0>e&&e<-this.deadZone?{axis:d,value:e}:{axis:d,value:0})}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this._connected;this._index=a.index,this._connected=!0,this._rawPad=a,this._rawButtons=a.buttons,this._axes=a.axes,b&&this._padParent.onConnectCallback&&this._padParent.onConnectCallback.call(this._padParent.callbackContext,this._index),b&&this.onConnectCallback&&this.onConnectCallback.call(this.callbackContext)},disconnect:function(){var a=this._connected;this._connected=!1,this._rawPad=void 0,this._rawButtons=[],this._buttons=[];var b=this._index;this._index=null,a&&this._padParent.onDisconnectCallback&&this._padParent.onDisconnectCallback.call(this._padParent.callbackContext,b),a&&this.onDisconnectCallback&&this.onDisconnectCallback.call(this.callbackContext)},processAxisChange:function(a){this.game.input.disabled||this.game.input.gamepad.disabled||this._axes[a.axis]!==a.value&&(this._axes[a.axis]=a.value,this._padParent.onAxisCallback&&this._padParent.onAxisCallback.call(this._padParent.callbackContext,a,this._index),this.onAxisCallback&&this.onAxisCallback.call(this.callbackContext,a))},processButtonDown:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onDownCallback&&this._padParent.onDownCallback.call(this._padParent.callbackContext,a,b,this._index),this.onDownCallback&&this.onDownCallback.call(this.callbackContext,a,b),this._buttons[a]&&this._buttons[a].isDown?this._buttons[a].duration=this.game.time.now-this._buttons[a].timeDown:this._buttons[a]?(this._buttons[a].isDown=!0,this._buttons[a].timeDown=this.game.time.now,this._buttons[a].duration=0,this._buttons[a].value=b):this._buttons[a]={isDown:!0,timeDown:this.game.time.now,timeUp:0,duration:0,value:b},this._hotkeys[a]&&this._hotkeys[a].processButtonDown(b))},processButtonUp:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onUpCallback&&this._padParent.onUpCallback.call(this._padParent.callbackContext,a,b,this._index),this.onUpCallback&&this.onUpCallback.call(this.callbackContext,a,b),this._hotkeys[a]&&this._hotkeys[a].processButtonUp(b),this._buttons[a]?(this._buttons[a].isDown=!1,this._buttons[a].timeUp=this.game.time.now,this._buttons[a].value=b):this._buttons[a]={isDown:!1,timeDown:this.game.time.now,timeUp:this.game.time.now,duration:0,value:b})},processButtonFloat:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onFloatCallback&&this._padParent.onFloatCallback.call(this._padParent.callbackContext,a,b,this._index),this.onFloatCallback&&this.onFloatCallback.call(this.callbackContext,a,b),this._buttons[a]?this._buttons[a].value=b:this._buttons[a]={value:b},this._hotkeys[a]&&this._hotkeys[a].processButtonFloat(b))},axis:function(a){return this._axes[a]?this._axes[a]:!1},isDown:function(a){return this._buttons[a]?this._buttons[a].isDown:!1},justReleased:function(a,b){return"undefined"==typeof b&&(b=250),this._buttons[a]&&this._buttons[a].isDown===!1&&this.game.time.now-this._buttons[a].timeUpd;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.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},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.enabled&&(this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},pointerX:function(a){return a=a||0,this._pointerData[a].x},pointerY:function(a){return a=a||0,this._pointerData[a].y},pointerDown:function(a){return a=a||0,this._pointerData[a].isDown},pointerUp:function(a){return a=a||0,this._pointerData[a].isUp},pointerTimeDown:function(a){return a=a||0,this._pointerData[a].timeDown},pointerTimeUp:function(a){return a=a||0,this._pointerData[a].timeUp},pointerOver:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOver;for(var b=0;10>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 this.enabled===!1||this.sprite.visible===!1||this.sprite.parent.visible===!1?!1: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===!1||this.sprite.visible===!1||this.sprite.parent.visible===!1?!1: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?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.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.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.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.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default")),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){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):this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y)):this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y),this.updateDrag(a),this.bringToTop&&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.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.sprite.events.onInputUp.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){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof snapOffsetX&&(snapOffsetX=0),"undefined"==typeof snapOffsetY&&(snapOffsetY=0),this.snapX=a,this.snapY=b,this.snapOffsetX=snapOffsetX,this.snapOffsetY=snapOffsetY,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.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){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.Group(this.game,a,c,d)},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))},bitmapFont:function(a,c,d,e,f,g,h,i,j){return new b.BitmapFont(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){return new b.Tilemap(this.game,a,c)},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){"undefined"==typeof d&&(d=!1),("undefined"==typeof key||""===key)&&(key=this.game.rnd.uuid());var e=new b.BitmapData(this.game,key,a,c);return d&&this.game.cache.addBitmapData(key,e),e},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.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 this.game.tweens.create(a)},group:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.Group(this.game,a,c,d)},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)},bitmapFont:function(a,c,d,e,f,g,h,i,j){return new b.BitmapFont(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){return new b.Tilemap(this.game,a,c)},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){"undefined"==typeof d&&(d=!1),("undefined"==typeof key||""===key)&&(key=this.game.rnd.uuid());var e=new b.BitmapData(this.game,key,a,c);return d&&this.game.cache.addBitmapData(key,e),e},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.pixels=this.imageData.data.buffer?this.imageData.data.buffer: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.type=b.BITMAPDATA,this._dirty=!1},b.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;b=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=f<<24|e<<16|d<<8|c,this.context.putImageData(this.imageData,0,0),this._dirty=!0)},setPixel:function(a,b,c,d,e){this.setPixel32(a,b,c,d,e,255)},getPixel:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.data32[b*this.width+a]:void 0},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.data32[b*this.width+a]:void 0},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},copyPixels:function(a,b,c,d){"string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height)},draw:function(a,b,c){"string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,0,0,a.width,a.height,b,c,a.width,a.height)},alphaMask:function(a,b){var c=this.context.globalCompositeOperation;"string"==typeof b&&(b=this.game.cache.getImage(b)),b&&this.context.drawImage(b,0,0),this.context.globalCompositeOperation="source-atop","string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,0,0),this.context.globalCompositeOperation=c},render:function(){this._dirty&&(this.game.renderType===b.WEBGL&&PIXI.texturesToUpdate.push(this.baseTexture),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.events=new b.Events(this),this.animations=new b.AnimationManager(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.body=null,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this._cache=new Int16Array([0,0,0,0,1,0,1,0]),this._bounds=new b.Rectangle},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4])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._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;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;return this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.world.currentRenderOrderID++),this.animations.update(),this.body,!0},b.Sprite.prototype.update=function(){},b.Sprite.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key._dirty&&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.position.y=this.game.camera.view.y+this.cameraOffset.y)},b.Sprite.prototype.loadTexture=function(a,c){return c=c||0,a instanceof b.RenderTexture?(this.key=a.key,void this.setTexture(a)):a instanceof b.BitmapData?(this.key=a.key,void this.setTexture(a.texture)):a instanceof PIXI.Texture?(this.key=a,void this.setTexture(a)):null===a||"undefined"==typeof a?(this.key="__default",void this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?this.game.cache.isSpriteSheet(a)?(this.key=a,this.animations.loadFrameData(this.game.cache.getFrameData(a)),"string"==typeof c?this.frameName=c:this.frame=c,void 0):(this.key=a,void this.setTexture(PIXI.TextureCache[a])):(this.key="__missing",void this.setTexture(PIXI.TextureCache[this.key]))},b.Sprite.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.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){"undefined"==typeof a&&(a=!0),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.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null}},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},b.Sprite.prototype.bringToTop=function(a){return"undefined"==typeof a&&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},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.stop()}}),Object.defineProperty(b.Sprite.prototype,"physicsEnabled",{get:function(){return null!==this.body},set:function(a){a?null===this.body&&(this.body=new b.Physics.Body(this.game,this,this.x,this.y,1),this.anchor.set(.5)):this.body&&this.body.destroy()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&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)}}),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.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=new Int16Array([0,0,0,0,1,0,1,0])},b.Image.prototype=Object.create(PIXI.Sprite.prototype),b.Image.prototype.constructor=b.Image,b.Image.prototype.preUpdate=function(){return this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.exists&&this.parent.exists?(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.world.currentRenderOrderID++),!0):(this.renderOrderID=-1,!1)},b.Image.prototype.update=function(){},b.Image.prototype.postUpdate=function(){this.key instanceof b.BitmapData&&this.key._dirty&&this.key.render(),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)},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.key,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){"undefined"==typeof a&&(a=!0),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}},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(a){return"undefined"==typeof a&&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&&ae?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.BitmapFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.BitmapFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.BitmapFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.BitmapFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.BitmapFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.BitmapFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.BitmapFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.BitmapFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.BitmapFont.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.BitmapFont.prototype.resize=function(a,b){if(this.width=a,this.height=b,this.frame.width=this.width,this.frame.height=this.height,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.renderer.type===PIXI.WEBGL_RENDERER){this.projection.x=this.width/2,this.projection.y=-this.height/2;var c=this.renderer.gl;c.bindTexture(c.TEXTURE_2D,this.baseTexture._glTextures[c.id]),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,this.width,this.height,0,c.RGBA,c.UNSIGNED_BYTE,null)}else this.textureBuffer.resize(this.width,this.height);PIXI.Texture.frameUpdates.push(this)},b.BitmapFont.prototype.buildBitmapFontText=function(){var a=0,c=0;if(this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY),this.textureBuffer.clear();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(fixedWidth,this.characterHeight):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight),this.textureBuffer.clear(),this.align){case b.BitmapFont.ALIGN_LEFT:a=0;break;case b.BitmapFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.BitmapFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.pasteLine(this._text,a,0,this.customSpacingX)}},b.BitmapFont.prototype.pasteLine=function(a,c,d){for(var e=new b.Point,f=0;f=0&&(this.stamp.frame=this.grabData[a.charCodeAt(f)],e.set(c,d),this.render(this.stamp,e,!1),c+=this.characterWidth+this.customSpacingX,c>this.width))break},b.BitmapFont.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.BitmapFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},Object.defineProperty(b.BitmapFont.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.buildBitmapFontText())}}),b.Canvas={create:function(a,b,c,d){if("undefined"==typeof d&&(d=!1),a=a||256,b=b||256,d)var e=document.createElement("canvas");else var e=document.createElement(navigator.isCocoonJS?"screencanvas":"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.patchAndroidClearRectBug=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!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.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.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkOS()},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),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0)},_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},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0,this.typedArray=!0):(this.littleEndian=!1,this.typedArray=!1),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(this.vibration=!0)},_checkCSS3D:function(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),this.css3D=void 0!==a&&a.length>0&&"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.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(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},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)},nearestAngleBetween:function(a,b,c){"undefined"==typeof c&&(c=!0);var d=c?Math.PI:180;return a=this.normalizeAngle(a,c),b=this.normalizeAngle(b,c),-d/2>a&&b>d/2&&(a+=2*d),-d/2>b&&a>d/2&&(b+=2*d),b-a},interpolateAngles:function(a,b,c,d,e){return"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=null),a=this.normalizeAngle(a,d),b=this.normalizeAngleToAnother(b,a,d),"function"==typeof e?e(c,a,b-a,1):this.interpolateFloat(a,b,c)},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},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},max:function(){for(var a=1,b=0,c=arguments.length;c>a;a++)arguments[b]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){return this.wrap(a,-180,180)},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)},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},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: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 b>=a?0:a>=c?1:(a=(a-b)/(c-b),a*a*(3-2*a))},smootherstep:function(a,b,c){return b>=a?0:a>=c?1:(a=(a-b)/(c-b),a*a*a*(a*(6*a-15)+10))},sign:function(a){return 0>a?-1:a>0?1:0},p2px:function(a){return a*=20},px2p:function(a){return.05*a},p2pxi:function(a){return a*=-20},px2pi:function(a){return a*-.05},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(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)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*a.length)]},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.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){this._object=a,this.game=c,this._manager=this.game.tweens,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;for(var d in a)this._valuesStart[d]=parseFloat(a[d],10);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;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},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(this._valuesEnd[a]instanceof Array){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],this._valuesStart[a]instanceof Array==!1&&(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},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,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),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._reversed=!this._reversed}this._valuesStart[b]=this._valuesStartRepeat[b]}return 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.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()},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._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.physicsElapsed=1*(this.elapsed/1e3),!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},update:function(a){if(this.paused)return!0;for(this._now=a,this._len=this.events.length,this._i=0;this._i=this.nextTick&&this._len>0){for(this._i=0;this._i=this.events[this._i].tick;){var b=this._now-this.events[this._i].tick,c=this._now+this.events[this._i].delay-b; -0>c&&(c=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=c,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=c,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args),this.events.splice(this._i,1),this._len--),this._i++}this.events.length>0?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&!this.expired&&(this._pauseStarted=this.game.time.now,this.paused=!0,this._codePaused=!0)},_pause:function(){this.running&&!this.expired&&(this._pauseStarted=this.game.time.now,this.paused=!0)},resume:function(){if(this.running&&!this.expired){for(var a=this.game.time.now-this._pauseStarted,b=0;bthis._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._now-this._started}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return.001*this.ms}}),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.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a){this._frameData=a,this.frame=0,this.isLoaded=!0},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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__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){if(this._anims[a]){if(this.currentAnim!=this._anims[a])return this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d);if(this.currentAnim.isPlaying===!1)return this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)}},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},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(){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._frameIndex=a,this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),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._frameIndex=this.currentFrame.index,this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,b,c,d,e,f,g){this.game=a,this._parent=b,this._frameData=d,this.name=c,this._frames=[],this._frames=this._frames.concat(e),this.delay=1e3/f,this.looped=g,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.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.looped=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events&&this._parent.events.onAnimationStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,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])},stop:function(a){"undefined"==typeof a&&(a=!1),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,a&&(this.currentFrame=this._frameData.getFrame(this._frames[0]))},onPause:function(){this.isPlaying&&(this._frameDiff=this._timeNextFrame-this.game.time.now)},onResume:function(){this.isPlaying&&(this._timeNextFrame=this.game.time.now+this._frameDiff)},update:function(){return this.isPaused?!1:this.isPlaying===!0&&this.game.time.now>=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.looped?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this._parent.events.onAnimationLoop.dispatch(this._parent,this)):this.onComplete():(this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1))),!0):!1},destroy:function(){this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this)},onComplete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events&&this._parent.events.onAnimationComplete.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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]))}}),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},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.width=b,this.height=c,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,d){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var e,f=new b.FrameData,g=c.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new b.FrameData,r=c.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.onLoadComplete.dispatch()))},loadFile:function(){if(!this._fileList[this._fileIndex])return void console.warn("Phaser.Loader loadFile invalid index "+this._fileIndex);var a=this._fileList[this._fileIndex],c=this;switch(a.type){case"image":case"spritesheet":case"textureatlas":case"bitmapfont":a.data=new Image,a.data.name=a.key,a.data.onload=function(){return c.fileComplete(c._fileIndex)},a.data.onerror=function(){return c.fileError(c._fileIndex)},this.crossOrigin&&(a.data.crossOrigin=this.crossOrigin),a.data.src=this.baseURL+a.url;break;case"audio":a.url=this.getAudioURL(a.url),null!==a.url?this.game.sound.usingWebAudio?(this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send()):this.game.sound.usingAudioTag&&(this.game.sound.touchLocked?(a.data=new Audio,a.data.name=a.key,a.data.preload="auto",a.data.src=this.baseURL+a.url,this.fileComplete(this._fileIndex)):(a.data=new Audio,a.data.name=a.key,a.data.onerror=function(){return c.fileError(c._fileIndex)},a.data.preload="auto",a.data.src=this.baseURL+a.url,a.data.addEventListener("canplaythrough",b.GAMES[this.game.id].load.fileComplete(this._fileIndex),!1),a.data.load())):this.fileError(this._fileIndex);break;case"json":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return c.jsonLoadComplete(c._fileIndex) -},this._xhr.send();break;case"tilemap":if(this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",a.format===b.Tilemap.TILED_JSON)this._xhr.onload=function(){return c.jsonLoadComplete(c._fileIndex)};else{if(a.format!==b.Tilemap.CSV)throw new Error("Phaser.Loader. Invalid Tilemap format: "+a.format);this._xhr.onload=function(){return c.csvLoadComplete(c._fileIndex)}}this._xhr.onerror=function(){return c.dataLoadError(c._fileIndex)},this._xhr.send();break;case"text":case"script":case"physics":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send();break;case"binary":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send()}},getAudioURL:function(a){var b;"string"==typeof a&&(a=[a]);for(var c=0;c100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.crop.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.crop.height=Math.floor(this.preloadSprite.height/100*this.progress)),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&&(console.log(this.currentMarker,"has hit duration"),this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):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(a=a||"",b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),"undefined"==typeof e&&(e=!0),this.isPlaying!==!0||e!==!1||this.override!==!1){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 void console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist");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,this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else 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;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.input: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}},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.stop(),this.isPlaying=!1,this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this))},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.input: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(){this.isPlaying&&this._sound&&(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.isPlaying=!1;var a=this.currentMarker;this.currentMarker="",this.onStop.dispatch(this,a)}},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},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.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)}window.AudioContext?this.context=new window.AudioContext:window.webkitAudioContext?this.context=new window.webkitAudioContext:window.Audio?(this.usingWebAudio=!1,this.usingAudioTag=!0):(this.usingWebAudio=!1,this.noAudio=!0),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;a255)return b.Color.getColor(255,255,255);if(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{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a}},getWebRGB:function(a){var b=(a>>>24)/255,c=a>>16&255,d=a>>8&255,e=255&a;return"rgba("+c.toString()+","+d.toString()+","+e.toString()+","+b.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}},b.Physics={},b.Physics.LIME_CORONA_JSON=0,p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,b.Physics.World=function(a,c){this.game=a,"undefined"==typeof c&&(c={gravity:[0,0],broadphase:new p2.SAPBroadphase}),this.world=new p2.World(c),this.materials=[],this.gravity=new b.Physics.InversePointProxy(a,this.world.gravity),this.bounds=null,this._wallShapes=[null,null,null,null],this.onBodyAdded=new b.Signal,this.onBodyRemoved=new b.Signal,this.onSpringAdded=new b.Signal,this.onSpringRemoved=new b.Signal,this.onConstraintAdded=new b.Signal,this.onConstraintRemoved=new b.Signal,this.onContactMaterialAdded=new b.Signal,this.onContactMaterialRemoved=new b.Signal,this.onPostStep=new b.Signal,this.onPostBroadphase=new b.Signal,this.onImpact=new b.Signal,this.onBeginContact=new b.Signal,this.onEndContact=new b.Signal,this.world.on("postStep",this.postStepHandler,this),this.world.on("postBroadphase",this.postBroadphaseHandler,this),this.world.on("impact",this.impactHandler,this),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this._collisionGroupID=2,this.nothingCollisionGroup=new b.Physics.CollisionGroup(1),this.boundsCollisionGroup=new b.Physics.CollisionGroup(2),this.everythingCollisionGroup=new b.Physics.CollisionGroup(2147483648),this.boundsCollidesWith=[],this.setBoundsToWorld(!0,!0,!0,!0,!1) -},b.Physics.World.prototype={postStepHandler:function(){},postBroadphaseHandler:function(a){for(var b=0;b1&&a.bodyB.id>1},endContactHandler:function(a){a.bodyA.id>1&&a.bodyB.id>1},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._wallShapes[0]&&(this._wallShapes[0].material=a),c&&this._wallShapes[1]&&(this._wallShapes[1].material=a),d&&this._wallShapes[2]&&(this._wallShapes[2].material=a),e&&this._wallShapes[3]&&(this._wallShapes[3].material=a)},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);var j=c/2,k=d/2,l=j+a,m=k+b;if(null!==this.bounds){this.world.removeBody(this.bounds);for(var n=this.bounds.shapes.length;n--;){var o=this.bounds.shapes[n];this.bounds.removeShape(o)}this.bounds.position[0]=this.game.math.px2pi(l),this.bounds.position[1]=this.game.math.px2pi(m)}else this.bounds=new p2.Body({mass:0,position:[this.game.math.px2pi(l),this.game.math.px2pi(m)]});e&&(this._wallShapes[0]=new p2.Plane,i&&(this._wallShapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[0],[this.game.math.px2pi(-j),0],1.5707963267948966)),f&&(this._wallShapes[1]=new p2.Plane,i&&(this._wallShapes[1].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[1],[this.game.math.px2pi(j),0],-1.5707963267948966)),g&&(this._wallShapes[2]=new p2.Plane,i&&(this._wallShapes[2].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[2],[0,this.game.math.px2pi(-k)],-3.141592653589793)),h&&(this._wallShapes[3]=new p2.Plane,i&&(this._wallShapes[3].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[3],[0,this.game.math.px2pi(k)])),this.world.addBody(this.bounds)},update:function(){this.world.step(1/60)},destroy:function(){this.world.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 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},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.setMaterial(a)},createMaterial:function(a,c){a=a||"";var d=new b.Physics.Material(a);return this.materials.push(d),"undefined"!=typeof c&&c.setMaterial(d),d},createContactMaterial:function(a,c,d){"undefined"==typeof a&&(a=this.createMaterial()),"undefined"==typeof c&&(c=this.createMaterial());var e=new b.Physics.ContactMaterial(a,c,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b]);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.springs[b]);return a},hitTest:function(){},toJSON:function(){this.world.toJSON()},createCollisionGroup:function(){var a=Math.pow(2,this._collisionGroupID);this._wallShapes[0]&&(this._wallShapes[0].collisionMask=this._wallShapes[0].collisionMask|a),this._wallShapes[1]&&(this._wallShapes[1].collisionMask=this._wallShapes[1].collisionMask|a),this._wallShapes[2]&&(this._wallShapes[2].collisionMask=this._wallShapes[2].collisionMask|a),this._wallShapes[3]&&(this._wallShapes[3].collisionMask=this._wallShapes[3].collisionMask|a),this._collisionGroupID++;var c=new b.Physics.CollisionGroup(a);return this.collisionGroups.push(c),c},createBody:function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1);var h=new b.Physics.Body(this.game,null,a,c,d);if(g){var i=h.addPolygon(f,g);if(!i)return!1}return e&&this.world.addBody(h.data),h},createParticle:function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1);var h=new b.Physics.Body(this.game,null,a,c,d);if(g){var i=h.addPolygon(f,g);if(!i)return!1}return e&&this.world.addBody(h.data),h}},Object.defineProperty(b.Physics.World.prototype,"friction",{get:function(){return this.world.defaultFriction},set:function(a){this.world.defaultFriction=a}}),Object.defineProperty(b.Physics.World.prototype,"restituion",{get:function(){return this.world.defaultRestitution},set:function(a){this.world.defaultRestitution=a}}),Object.defineProperty(b.Physics.World.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(b.Physics.World.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(b.Physics.World.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(b.Physics.World.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(b.Physics.World.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(b.Physics.World.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(b.Physics.World.prototype,"enableBodySleeping",{get:function(){return this.world.enableBodySleeping},set:function(a){this.world.enableBodySleeping=a}}),b.Physics.PointProxy=function(a,b){this.game=a,this.destination=b},b.Physics.PointProxy.prototype.constructor=b.Physics.PointProxy,Object.defineProperty(b.Physics.PointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.game.math.px2p(a)}}),Object.defineProperty(b.Physics.PointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.game.math.px2p(a)}}),b.Physics.InversePointProxy=function(a,b){this.game=a,this.destination=b},b.Physics.InversePointProxy.prototype.constructor=b.Physics.InversePointProxy,Object.defineProperty(b.Physics.InversePointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.game.math.px2p(-a)}}),Object.defineProperty(b.Physics.InversePointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.game.math.px2p(-a)}}),b.Physics.Body=function(a,c,d,e,f){c=c||null,d=d||0,e=e||0,"undefined"==typeof f&&(f=1),this.game=a,this.sprite=c,this.offset=new b.Point,this.data=new p2.Body({position:[this.px2pi(d),this.px2pi(e)],mass:f}),this.data.parent=this,this.velocity=new b.Physics.InversePointProxy(this.game,this.data.velocity),this.force=new b.Physics.InversePointProxy(this.game,this.data.force),this.gravity=new b.Point,this.collideWorldBounds=!0,this.onImpact=new b.Signal,this.collidesWith=[],this._bodyCallbacks=[],this._bodyCallbackContext=[],this._groupCallbacks=[],this._groupCallbackContext=[],c&&(this.setRectangleFromSprite(c),this.game.physics.addBody(this))},b.Physics.Body.prototype={createBodyCallback:function(a,b,c){this._bodyCallbacks[a.data.id]=b,this._bodyCallbackContext[a.data.id]=c},createGroupCallback:function(a,b,c){this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c},getCollisionMask:function(){var a=0;this.collideWorldBounds&&(a=this.game.physics.boundsCollisionGroup.mask);for(var b=0;b=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,shapes.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&&(shapes.collisionGroup=null),b&&(shapes.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.px2p(b),this.px2p(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.px2p(-a)},rotateRight:function(a){this.data.angularVelocity=this.px2p(a)},moveForward:function(a){var b=this.px2pi(-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.px2pi(-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.px2pi(-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.px2pi(-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.px2pi(-a)},moveRight:function(a){this.data.velocity[0]=this.px2pi(a)},moveUp:function(a){this.data.velocity[1]=this.px2pi(-a)},moveDown:function(a){this.data.velocity[1]=this.px2pi(a)},preUpdate:function(){},postUpdate:function(){this.sprite.x=this.p2pxi(this.data.position[0]),this.sprite.y=this.p2pxi(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(){this.data.world!==this.game.physics.world&&this.game.physics.addBody(this)},removeFromWorld:function(){this.data.world===this.game.physics.world&&this.game.physics.removeBody(this)},destroy:function(){this.removeFromWorld(),this.clearShapes(),this.sprite=null},clearShapes:function(){for(var a=this.data.shapes.length-1;a>=0;a--){var b=this.data.shapes[a];this.data.removeShape(b)}},addShape:function(a,b,c,d){return"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),this.data.addShape(a,[this.px2pi(b),this.px2pi(c)],d),a},addCircle:function(a,b,c,d){var e=new p2.Circle(this.px2p(a));return this.addShape(e,b,c,d)},addRectangle:function(a,b,c,d,e){var f=new p2.Rectangle(this.px2p(a),this.px2p(b));return this.addShape(f,c,d,e)},addPlane:function(a,b,c){var d=new p2.Plane;return this.addShape(d,a,b,c)},addParticle:function(a,b,c){var d=new p2.Particle;return this.addShape(d,a,b,c)},addLine:function(a,b,c,d){var e=new p2.Line(this.px2p(a));return this.addShape(e,b,c,d)},addCapsule:function(a,b,c,d,e){var f=new p2.Capsule(this.px2p(a),b);return this.addShape(f,c,d,e)},addPolygon:function(a,b){a=a||{},b=Array.prototype.slice.call(arguments,1);var c=[];if(1===b.length&&Array.isArray(b[0]))c=b[0].slice(0);else if(Array.isArray(b[0]))c=b[0].slice(0);else if("number"==typeof b[0])for(var d=0,e=b.length;e>d;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},loadPolygon:function(a,b,c){var d=this.game.cache.getPhysicsData(a,b);if(1===d.length){for(var e=[],f=0,g=d.shape.length;g>f;f+=2)e.push([d.shape[f],d.shape[f+1]]);return this.addPolygon(c,e)}for(var h=p2.vec2.create(),f=0;f=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency)},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=this.maxParticles),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1);for(var g,h=0,i=a,j=c;d>h;)null===this.particleClass&&("object"==typeof a&&(i=this.game.rnd.pick(a)),"object"==typeof c&&(j=this.game.rnd.pick(c)),g=new b.Sprite(this.game,0,0,i,j)),e?(g.body.checkCollision.any=!0,g.body.checkCollision.none=!1):g.body.checkCollision.none=!0,g.body.collideWorldBounds=f,g.exists=!1,g.visible=!1,g.anchor.setTo(.5,.5),this.add(g),h++;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.start=function(a,b,c,d){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=250),"undefined"==typeof d&&(d=0),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a?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);if(null!=a){if(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.lifespan=this.lifespan,a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.minParticleSpeed.x!=this.maxParticleSpeed.x?this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x):this.minParticleSpeed.x,a.body.velocity.y=this.minParticleSpeed.y!=this.maxParticleSpeed.y?this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y):this.minParticleSpeed.y,a.body.gravity.y=this.gravity,a.body.angularVelocity=this.minRotation!=this.maxRotation?this.game.rnd.integerInRange(this.minRotation,this.maxRotation):this.minRotation,1!==this.minParticleScale||1!==this.maxParticleScale){var b=this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale);a.scale.setTo(b,b)}a.body.friction=this.particleFriction,a.body.angularDrag=this.angularDrag}},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.width=a,this.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.at=function(a){a.center&&(this.emitX=a.center.x,this.emitY=a.center.y)},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.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.width=e,this.height=f,this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collides=!1,this.collideNone=!0,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={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,this.collideNone=a||b||c||d?!1:!0},resetCollision:function(){this.collideNone=!0,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collides=a.collides,this.collideNone=a.collideNone,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,"canCollide",{get:function(){return this.collides||this.collisionCallback||this.layer.callbacks[this.index]}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.x}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.x+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.y}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.y+this.height}}),b.Tilemap=function(a,c){this.game=a,this.key=c;var d=b.TilemapParser.parse(this.game,c);null!==d&&(this.width=d.width,this.height=d.height,this.tileWidth=d.tileWidth,this.tileHeight=d.tileHeight,this.orientation=d.orientation,this.version=d.version,this.properties=d.properties,this.widthInPixels=d.widthInPixels,this.heightInPixels=d.heightInPixels,this.layers=d.layers,this.tilesets=d.tilesets,this.tiles=d.tiles,this.objects=d.objects,this.collision=d.collision,this.images=d.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.prototype={create:function(a,c,d){for(var e=[],f=0;d>f;f++){e[f]=[];for(var g=0;c>g;g++)e[f][g]=0}this.layers.push({name:a,width:c,height:d,alpha:1,visible:!0,tileMargin:0,tileSpacing:0,format:b.Tilemap.CSV,data:e,indexes:[],dirty:!0}),this.currentLayer=this.layers.length-1},addTilesetImage:function(a,b){if("undefined"==typeof b){if("string"!=typeof a)return!1;b=a}return"string"==typeof a&&(a=this.getTilesetIndex(a)),this.tilesets[a]?(this.tilesets[a].image=this.game.cache.getImage(b),!0):!1},createFromObjects:function(a,b,c,d,e,f,g){if("undefined"==typeof e&&(e=!0),"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=this.game.world),!this.objects[a])return void console.warn("Tilemap.createFromObjects: Invalid objectgroup name given: "+a);for(var h,i=0,j=this.objects[a].length;j>i;i++)if(this.objects[a][i].gid===b){h=g.create(this.objects[a][i].x,this.objects[a][i].y,c,d,e),h.anchor.setTo(0,1),h.name=this.objects[a][i].name,h.visible=this.objects[a][i].visible,h.autoCull=f;for(property in this.objects[a][i].properties)g.set(h,property,this.objects[a][i].properties[property],!1,!1,0)}},clearPhysicsBodies:function(a){a=this.getLayer(a);for(var b=this.layers[a].bodies.length;b--;)this.layers[a].bodies[b].destroy()},generateCollisionData:function(a,b){a=this.getLayer(a),"undefined"==typeof b&&(b=!0),this.layers[a].bodies.length>0&&this.clearPhysicsBodies(a),this.layers[a].bodies.length=[];for(var c=0,d=0,e=0,f=0,g=this.layers[a].height;g>f;f++){c=0;for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];if(j)if(right=this.getTileRight(a,h,f),0===c&&(d=j.x*j.width,e=j.y*j.height,c=j.width),right&&right.collides)c+=j.width;else{var k=this.game.physics.createBody(d,e,0,!1);k.addRectangle(c,j.height,c/2,j.height/2,0),b&&this.game.physics.addBody(k),this.layers[a].bodies.push(k),c=0}}}return this.layers[a].bodies},createCollisionObjects:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=[],d=0,e=this.collision[a].length;e>d;d++){var f=this.collision[a][d],g=this.game.physics.createBody(f.x,f.y,0,b,{},f.polyline);g&&c.push(g)}return c},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))},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;hd;d++)this.setCollisionByIndex(a[d],b,c,!1);this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d){if("undefined"==typeof c&&(c=!0),d=this.getLayer(d),!(a>b)){for(var e=a;b>=e;e++)this.setCollisionByIndex(e,c,d,!1);this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c){"undefined"==typeof b&&(b=!0),c=this.getLayer(c);for(var d=0,e=this.tiles.length;e>d;d++)-1===a.indexOf(d)&&this.setCollisionByIndex(d,b,c,!1);this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0);for(var e=0;ef;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),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&&c=0&&d=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,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.Sprite.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._cw=c.tileWidth,this._ch=c.tileHeight,this._ga=1,this._dx=0,this._dy=0,this._dw=0,this._dh=0,this._tx=0,this._ty=0,this._tw=0,this._th=0,this._tl=0,this._maxX=0,this._maxY=0,this._startX=0,this._startY=0,this._results=[],this._x=0,this._y=0,this._prevX=0,this._prevY=0,this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Sprite.prototype),b.TilemapLayer.prototype=b.Utils.extend(!0,b.TilemapLayer.prototype,b.Sprite.prototype,PIXI.Sprite.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Sprite.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render()},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._x+(a-this._x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._x/this.scrollFactorX+(a-this._x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._y+(a-this._y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._y/this.scrollFactorY+(a-this._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.getTiles=function(a,b,c,d,e){"undefined"==typeof e&&(e=!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._tx=this.game.math.snapToFloor(a,this._cw)/this._cw,this._ty=this.game.math.snapToFloor(b,this._ch)/this._ch,this._tw=(this.game.math.snapToCeil(c,this._cw)+this._cw)/this._cw,this._th=(this.game.math.snapToCeil(d,this._ch)+this._ch)/this._ch,this._results.length=0;for(var f=this._ty;fthis.layer.width&&(this._maxX=this.layer.width),this._maxY>this.layer.height&&(this._maxY=this.layer.height)),this.dirty=!0},b.TilemapLayer.prototype.render=function(){if(this.layer.dirty&&(this.dirty=!0),this.dirty&&this.visible){this._prevX=this._dx,this._prevY=this._dy,this._dx=-(this._x-this._startX*this.map.tileWidth),this._dy=-(this._y-this._startY*this.map.tileHeight),this._tx=this._dx,this._ty=this._dy,this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.fillStyle=this.tileColor;var a,c;this.debug&&(this.context.globalAlpha=this.debugAlpha);for(var d=this._startY,e=this._startY+this._maxY;e>d;d++){this._column=this.layer.data[d];for(var f=this._startX,g=this._startX+this._maxX;g>f;f++)this._column[f]&&(a=this._column[f],this.map.tiles[a.index]&&(c=this.map.tilesets[this.map.tiles[a.index][2]],c.image?(this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.tileWidth!==this.map.tileWidth||c.tileHeight!==this.map.tileHeight?this.context.drawImage(this.map.tilesets[this.map.tiles[a.index][2]].image,this.map.tiles[a.index][0],this.map.tiles[a.index][1],c.tileWidth,c.tileHeight,Math.floor(this._tx),Math.floor(this._ty)-(c.tileHeight-this.map.tileHeight),c.tileWidth,c.tileHeight):this.context.drawImage(this.map.tilesets[this.map.tiles[a.index][2]].image,this.map.tiles[a.index][0],this.map.tiles[a.index][1],this.map.tileWidth,this.map.tileHeight,Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight))):this.context.fillRect(Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight))),this._tx+=this.map.tileWidth;this._tx=this._dx,this._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._tx=this._dx,this._ty=this._dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._startY,b=this._startY+this._maxY;b>a;a++){this._column=this.layer.data[a];for(var c=this._startX,d=this._startX+this._maxX;d>c;c++){var e=this._column[c];e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._tx=Math.floor(this._tx),this.debugFill&&this.context.fillRect(this._tx,this._ty,this._cw,this._ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._tx,this._ty),this.context.lineTo(this._tx+this._cw,this._ty)),e.faceBottom&&(this.context.moveTo(this._tx,this._ty+this._ch),this.context.lineTo(this._tx+this._cw,this._ty+this._ch)),e.faceLeft&&(this.context.moveTo(this._tx,this._ty),this.context.lineTo(this._tx,this._ty+this._ch)),e.faceRight&&(this.context.moveTo(this._tx+this._cw,this._ty),this.context.lineTo(this._tx+this._cw,this._ty+this._ch)),this.context.stroke()),e&&(e.collisionCallback||e.layer.callbacks[e.index])&&(this.context.fillStyle=this.debugCallbackColor,this.context.fillRect(this._tx,this._ty,this._cw,this._ch),this.context.fillStyle=this.debugFillColor),this._tx+=this.map.tileWidth}this._tx=this._dx,this._ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._x},set:function(a){a!==this._x&&a>=0&&this.layer.widthInPixels>this.width&&(this._x=a,this._x>this.layer.widthInPixels-this.width&&(this._x=this.layer.widthInPixels-this.width),this._startX=this.game.math.floor(this._x/this.map.tileWidth),this._startX<0&&(this._startX=0),this._startX+this._maxX>this.layer.width&&(this._startX=this.layer.width-this._maxX),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._y},set:function(a){a!==this._y&&a>=0&&this.layer.heightInPixels>this.height&&(this._y=a,this._y>this.layer.heightInPixels-this.height&&(this._y=this.layer.heightInPixels-this.height),this._startY=this.game.math.floor(this._y/this.map.tileHeight),this._startY<0&&(this._startY=0),this._startY+this._maxY>this.layer.height&&(this._startY=this.layer.height-this._maxY),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._cw},set:function(a){this._cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._ch},set:function(a){this._ch=a,this.dirty=!0}}),b.TilemapParser={tileset:function(a,c,d,e,f,g,h,i,j){var k=a.cache.getTilesetImage(c);if(null===k)return console.warn("Phaser.TilemapParser.tileSet: Invalid image key given"),null;var l=k.width,m=k.height;return-1===h&&(h=Math.round(l/d)),-1===i&&(i=Math.round(m/e)),-1===j&&(j=h*i),0===l||0===m||d>l||e>m||0===j?(console.warn("Phaser.TilemapParser.tileSet: width/height zero or width/height < given tileWidth/tileHeight"),null):new b.Tileset(k,c,d,e,f,g,h,i,j)},parse:function(a,c){var d=a.cache.getTilemapData(c);return d?d.format===b.Tilemap.CSV?this.parseCSV(d.data):d.format===b.Tilemap.TILED_JSON?this.parseTiledJSON(d.data):void 0:this.getEmptyData()},parseCSV:function(a){a=a.trim();for(var b=[],c=a.split("\n"),d=c.length,e=0,f=0;fj;j++)h.push(a.layers[e].data[j]>0?new b.Tile(f,a.layers[e].data[j],g,i.length,a.tilewidth,a.tileheight):null),g++,g===a.layers[e].width&&(i.push(h),g=0,h=[]);f.data=i,d.push(f)}c.layers=d;for(var l=[],e=0;ep;p++)if(a.layers[e].objects[p].gid){var q={gid:a.layers[e].objects[p].gid,name:a.layers[e].objects[p].name,x:a.layers[e].objects[p].x,y:a.layers[e].objects[p].y,visible:a.layers[e].objects[p].visible,properties:a.layers[e].objects[p].properties};n[a.layers[e].name].push(q)}else if(a.layers[e].objects[p].polyline){var q={name:a.layers[e].objects[p].name,x:a.layers[e].objects[p].x,y:a.layers[e].objects[p].y,width:a.layers[e].objects[p].width,height:a.layers[e].objects[p].height,visible:a.layers[e].objects[p].visible,properties:a.layers[e].objects[p].properties};q.polyline=[];for(var r=0;rb;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._nextOffsetCheck=this.game.time.now+this.checkOffsetInterval)},b.Stage.prototype.parseConfig=function(a){this.game.canvas=a.canvasID?b.Canvas.create(this.game.width,this.game.height,a.canvasID):b.Canvas.create(this.game.width,this.game.height),a.canvasStyle?this.game.canvas.stlye=a.canvasStyle:this.game.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",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=new b.Rectangle(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&&(window.onpagehide=this._onChange,window.onpageshow=this._onChange),window.onblur=this._onChange,window.onfocus=this._onChange},b.Stage.prototype.visibilityChange=function(a){return this.disableVisibilityChange?void 0:"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.gamePaused(a.timeStamp):("pageshow"===a.type||"focus"===a.type)&&this.game.gameResumed(a.timeStamp)):void(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden?this.game.gamePaused(a.timeStamp):this.game.gameResumed(a.timeStamp))},b.Stage.prototype.setBackgroundColor=function(a){this._backgroundColor=a||0,this.backgroundColorSplit=PIXI.hex2rgb(this.backgroundColor);var b=this._backgroundColor.toString(16);b="000000".substr(0,6-b.length)+b,this.backgroundColorString="#"+b},Object.defineProperty(b.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this._backgroundColor=a,this.game.transparent===!1&&("string"==typeof a&&(a=b.Color.hexToRGB(a)),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){"undefined"==typeof e&&(e=!1),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.type=b.GROUP,this.alive=!0,this.exists=!0,this.scale=new b.Point(1,1),this.cursor=null,this._cursorIndex=0,this.cameraOffset=new b.Point,this._cache=new Int16Array([0,0,0,0,1,0,1,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){return a.parent!==this&&(this.addChild(a),a.events&&a.events.onAddedToGroup.dispatch(a,this)),null===this.cursor&&(this.cursor=a),a},b.Group.prototype.addAt=function(a,b){return a.parent!==this&&(this.addChildAt(a,b),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,c,d,e,f){"undefined"==typeof f&&(f=!0);var g=new b.Sprite(this.game,a,c,d,e);return g.exists=f,g.visible=f,g.alive=f,this.addChild(g),g.events&&g.events.onAddedToGroup.dispatch(g,this),null===this.cursor&&(this.cursor=g),g},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.next=function(){this.cursor&&(this._cursorIndex===this.children.length?this._cursorIndex=0:this._cursorIndex++,this.cursor=this.children[this._cursorIndex])},b.Group.prototype.previous=function(){this.cursor&&(0===this._cursorIndex?this._cursorIndex=this.children.length-1:this._cursorIndex--,this.cursor=this.children[this._cursorIndex])},b.Group.prototype.swap=function(a,b){return this.swapChildren(a,b)},b.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a),this.addAt(a,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(b,c)}return a},b.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},b.Group.prototype.replace=function(a,b){var c=this.getIndex(a);-1!==c&&(void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b)),this.removeChild(a),this.addChildAt(b,c),b.events.onAddedToGroup.dispatch(b,this),this.cursor===a&&(this.cursor=b))},b.Group.prototype.setProperty=function(a,b,c,d){d=d||0;var e=b.length;1==e?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==e?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==e?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==e&&(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))},b.Group.prototype.set=function(a,b,c,d,e,f){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)},b.Group.prototype.setAll=function(a,b,c,d,e){a=a.split("."),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),e=e||0;for(var f=0,g=this.children.length;g>f;f++)(!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&this.setProperty(this.children[f],a,b,e)},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){"undefined"==typeof a&&(a="y"),"undefined"==typeof c&&(c=b.Group.SORT_ASCENDING)},b.Group.prototype.sortHandler=function(){},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.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){return 0!==this.children.length?(a.events&&a.events.onRemovedFromGroup.dispatch(a,this),this.removeChild(a),this.cursor===a&&this.next(),!0):void 0},b.Group.prototype.removeAll=function(){if(0!==this.children.length){do this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this),this.removeChild(this.children[0]);while(this.children.length>0);this.cursor=null}},b.Group.prototype.removeBetween=function(a,b){if(0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var c=a;b>c;c++)this.children[c].events&&this.children[c].events.onRemovedFromGroup.dispatch(this.children[c],this),this.removeChild(this.children[c]),this.cursor===child&&(this.cursor=null)}},b.Group.prototype.destroy=function(a){if(null!==this.game){if("undefined"==typeof a&&(a=!0),a){if(this.children.length>0)do this.children[0].parent&&this.children[0].destroy(a);while(this.children.length>0)}else this.removeAll();this.parent.removeChild(this),this.game=null,this.exists=!1,this.cursor=null}},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.game.camera=this.camera,this.game.stage.addChild(this)},b.World.prototype.setBounds=function(a,b,c,d){cwindow.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.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;var e=this;window.addEventListener("orientationchange",function(a){return e.checkOrientation(a)},!1),window.addEventListener("resize",function(a){return e.checkResize(a)},!1),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.game.canvas[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT):this.game.canvas[this.game.device.requestFullscreen]())},stopFullScreen:function(){this.game.canvas[this.game.device.cancelFullscreen]()},fullScreenChange:function(a){this.event=a,this.isFullScreen?(this.fullScreenScaleMode===b.ScaleManager.EXACT_FIT?(this.game.canvas.style.width="100%",this.game.canvas.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.game.canvas.style.width=this.game.width+"px",this.game.canvas.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,b,c){"undefined"==typeof b&&(b=!1),this.forceLandscape=a,this.forcePortrait=b,"undefined"!=typeof c&&((null==c||this.game.cache.checkImageKey(c)===!1)&&(c="__default"),this.orientationSprite=new PIXI.Sprite(PIXI.TextureCache[c]),this.orientationSprite.anchor.x=.5,this.orientationSprite.anchor.y=.5,this.orientationSprite.position.x=this.game.width/2,this.orientationSprite.position.y=this.game.height/2,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===!1&&this.game.device.webApp===!1&&this.game.device.desktop===!1&&(this.game.device.android&&this.game.device.chrome===!1?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===!1&&this.game.device.webApp===!1&&this.game.device.desktop===!1&&(this.game.device.android&&this.game.device.chrome===!1?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===!0?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===!1&&(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.renderer=b.AUTO,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._paused=!1,this._codePaused=!1,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[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.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.physicsConfig&&(this.physicsConfig=a.physicsConfig);var c=null;a.state&&(c=a.state),this.state=new b.StateManager(this,c)},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.isBooted=!0,this.device=new b.Device(this),this.math=b.Math,this.rnd=new b.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.stage=new b.Stage(this,this.width,this.height),this.scale=new b.ScaleManager(this,this.width,this.height),this.setUpRenderer(),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.World(this,this.physicsConfig),this.particles=new b.Particles(this),this.plugins=new b.PluginManager(this,this),this.net=new b.Net(this),this.debug=new b.Utils.Debug(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.input.boot(),this.sound.boot(),this.state.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.DEV_VERSION,c="Canvas",d="HTML Audio";if(this.renderType==b.WEBGL?c="WebGL":this.renderType==b.HEADLESS&&(c="Headless"),this.device.webAudio&&(d="WebAudio"),this.device.chrome){var e=["%c %c %c Phaser v"+a+" - Renderer: "+c+" - Audio: "+d+" %c %c ","background: #00bff3","background: #0072bc","color: #ffffff; background: #003471","background: #0072bc","background: #00bff3"];console.log.apply(console,e)}else console.log("Phaser v"+a+" - Renderer: "+c+" - Audio: "+d)},setUpRenderer:function(){if(this.device.trident&&(this.renderType=b.CANVAS),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.context=null;this.stage.smoothed=this.antialias,b.Canvas.addToDOM(this.canvas,this.parent,!0),b.Canvas.setTouchAction(this.canvas)},update:function(a){this.time.update(a),this._paused?(this.input.update(),this.renderType!==b.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender())):(this.pendingStep||(this.stepping&&(this.pendingStep=!0),this.state.preUpdate(),this.plugins.preUpdate(),this.stage.preUpdate(),this.stage.update(),this.tweens.update(),this.sound.update(),this.input.update(),this.state.update(),this.physics.update(),this.particles.update(),this.plugins.update(),this.stage.postUpdate(),this.plugins.postUpdate()),this.renderType!==b.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(),this.state.render(),this.plugins.postRender()))},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.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(a),this.sound.setMute(),this.onPause.dispatch(this))},gameResumed:function(a){this._paused&&!this._codePaused&&(this._paused=!1,this.time.gameResumed(a),this.input.reset(),this.sound.unsetMute(),this.onResume.dispatch(this))}},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.mute=!0,this.time.gamePaused(),this.onPause.dispatch(this)):this._paused&&(this._paused=!1,this._codePaused=!1,this.input.reset(),this.sound.mute=!1,this.time.gameResumed(),this.onResume.dispatch(this))}}),b.Input=function(a){this.game=a,this.hitCanvas=null,this.hitContext=null,this.moveCallback=null,this.moveCallbackContext=this,this.pollRate=0,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=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.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.interactiveItems=new b.LinkedList,this._localPoint=new b.Point},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.moveCallback=null},setMoveCallback:function(a,b){this.moveCallback=a,this.moveCallbackContext=b},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===!0&&(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.interactiveItems.callAll("reset")),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},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.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.isDown&&(this.duration=this.game.time.now-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(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(){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(){this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.now,this.duration=this.game.time.now-this.timeDown},justPressed:function(a){return"undefined"==typeof a&&(a=2500),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.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.game.paused)return this;if(this.game.input.moveCallback&&this.game.input.moveCallback.call(this.game.input.moveCallbackContext,this,this.x,this.y),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 d=this.game.input.interactiveItems.next;do(d.pixelPerfectClick||d.pixelPerfectOver||d.priorityID>this._highestInputPriorityID||d.priorityID===this._highestInputPriorityID&&d.sprite._cache[3]=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.total>0){var c=this.game.input.interactiveItems.next;do c&&c._releasedHandler(this),c=c.next;while(null!=c)}return this.targetObject&&this.targetObject._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.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}},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(){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("touchenter",this._onTouchEnter,!1),this.game.canvas.addEventListener("touchleave",this._onTouchLeave,!1),this.game.canvas.addEventListener("touchcancel",this._onTouchCancel,!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&&e>this.deadZone||0>e&&e<-this.deadZone?{axis:d,value:e}:{axis:d,value:0})}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this._connected;this._index=a.index,this._connected=!0,this._rawPad=a,this._rawButtons=a.buttons,this._axes=a.axes,b&&this._padParent.onConnectCallback&&this._padParent.onConnectCallback.call(this._padParent.callbackContext,this._index),b&&this.onConnectCallback&&this.onConnectCallback.call(this.callbackContext)},disconnect:function(){var a=this._connected;this._connected=!1,this._rawPad=void 0,this._rawButtons=[],this._buttons=[];var b=this._index;this._index=null,a&&this._padParent.onDisconnectCallback&&this._padParent.onDisconnectCallback.call(this._padParent.callbackContext,b),a&&this.onDisconnectCallback&&this.onDisconnectCallback.call(this.callbackContext)},processAxisChange:function(a){this.game.input.disabled||this.game.input.gamepad.disabled||this._axes[a.axis]!==a.value&&(this._axes[a.axis]=a.value,this._padParent.onAxisCallback&&this._padParent.onAxisCallback.call(this._padParent.callbackContext,a,this._index),this.onAxisCallback&&this.onAxisCallback.call(this.callbackContext,a))},processButtonDown:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onDownCallback&&this._padParent.onDownCallback.call(this._padParent.callbackContext,a,b,this._index),this.onDownCallback&&this.onDownCallback.call(this.callbackContext,a,b),this._buttons[a]&&this._buttons[a].isDown?this._buttons[a].duration=this.game.time.now-this._buttons[a].timeDown:this._buttons[a]?(this._buttons[a].isDown=!0,this._buttons[a].timeDown=this.game.time.now,this._buttons[a].duration=0,this._buttons[a].value=b):this._buttons[a]={isDown:!0,timeDown:this.game.time.now,timeUp:0,duration:0,value:b},this._hotkeys[a]&&this._hotkeys[a].processButtonDown(b))},processButtonUp:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onUpCallback&&this._padParent.onUpCallback.call(this._padParent.callbackContext,a,b,this._index),this.onUpCallback&&this.onUpCallback.call(this.callbackContext,a,b),this._hotkeys[a]&&this._hotkeys[a].processButtonUp(b),this._buttons[a]?(this._buttons[a].isDown=!1,this._buttons[a].timeUp=this.game.time.now,this._buttons[a].value=b):this._buttons[a]={isDown:!1,timeDown:this.game.time.now,timeUp:this.game.time.now,duration:0,value:b})},processButtonFloat:function(a,b){this.game.input.disabled||this.game.input.gamepad.disabled||(this._padParent.onFloatCallback&&this._padParent.onFloatCallback.call(this._padParent.callbackContext,a,b,this._index),this.onFloatCallback&&this.onFloatCallback.call(this.callbackContext,a,b),this._buttons[a]?this._buttons[a].value=b:this._buttons[a]={value:b},this._hotkeys[a]&&this._hotkeys[a].processButtonFloat(b))},axis:function(a){return this._axes[a]?this._axes[a]:!1},isDown:function(a){return this._buttons[a]?this._buttons[a].isDown:!1},justReleased:function(a,b){return"undefined"==typeof b&&(b=250),this._buttons[a]&&this._buttons[a].isDown===!1&&this.game.time.now-this._buttons[a].timeUpd;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.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},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.enabled&&(this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},pointerX:function(a){return a=a||0,this._pointerData[a].x},pointerY:function(a){return a=a||0,this._pointerData[a].y},pointerDown:function(a){return a=a||0,this._pointerData[a].isDown},pointerUp:function(a){return a=a||0,this._pointerData[a].isUp},pointerTimeDown:function(a){return a=a||0,this._pointerData[a].timeDown},pointerTimeUp:function(a){return a=a||0,this._pointerData[a].timeUp},pointerOver:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOver;for(var b=0;10>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 this.enabled===!1||this.sprite.visible===!1||this.sprite.parent.visible===!1?!1: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===!1||this.sprite.visible===!1||this.sprite.parent.visible===!1?!1: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?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.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.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.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.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default")),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){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):this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y)):this._dragPoint.setTo(this.sprite.x-a.x,this.sprite.y-a.y),this.updateDrag(a),this.bringToTop&&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.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.sprite.events.onInputUp.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){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof snapOffsetX&&(snapOffsetX=0),"undefined"==typeof snapOffsetY&&(snapOffsetY=0),this.snapX=a,this.snapY=b,this.snapOffsetX=snapOffsetX,this.snapOffsetY=snapOffsetY,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.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){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.Group(this.game,a,c,d)},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))},bitmapFont:function(a,c,d,e,f,g,h,i,j){return new b.BitmapFont(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){return new b.Tilemap(this.game,a,c)},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){"undefined"==typeof d&&(d=!1),("undefined"==typeof key||""===key)&&(key=this.game.rnd.uuid());var e=new b.BitmapData(this.game,key,a,c);return d&&this.game.cache.addBitmapData(key,e),e},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.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 this.game.tweens.create(a)},group:function(a,c,d){return"undefined"==typeof c&&(c="group"),"undefined"==typeof d&&(d=!1),new b.Group(this.game,a,c,d)},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)},bitmapFont:function(a,c,d,e,f,g,h,i,j){return new b.BitmapFont(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){return new b.Tilemap(this.game,a,c)},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){"undefined"==typeof d&&(d=!1),("undefined"==typeof key||""===key)&&(key=this.game.rnd.uuid());var e=new b.BitmapData(this.game,key,a,c);return d&&this.game.cache.addBitmapData(key,e),e},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.pixels=this.imageData.data.buffer?this.imageData.data.buffer: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.type=b.BITMAPDATA,this._dirty=!1},b.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;b=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=f<<24|e<<16|d<<8|c,this.context.putImageData(this.imageData,0,0),this._dirty=!0)},setPixel:function(a,b,c,d,e){this.setPixel32(a,b,c,d,e,255)},getPixel:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.data32[b*this.width+a]:void 0},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.data32[b*this.width+a]:void 0},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},copyPixels:function(a,b,c,d){"string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height)},draw:function(a,b,c){"string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,0,0,a.width,a.height,b,c,a.width,a.height)},alphaMask:function(a,b){var c=this.context.globalCompositeOperation;"string"==typeof b&&(b=this.game.cache.getImage(b)),b&&this.context.drawImage(b,0,0),this.context.globalCompositeOperation="source-atop","string"==typeof a&&(a=this.game.cache.getImage(a)),a&&this.context.drawImage(a,0,0),this.context.globalCompositeOperation=c},render:function(){this._dirty&&(this.game.renderType===b.WEBGL&&PIXI.texturesToUpdate.push(this.baseTexture),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.events=new b.Events(this),this.animations=new b.AnimationManager(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.body=null,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new b.Point,this._cache=new Int16Array([0,0,0,0,1,0,1,0]),this._bounds=new b.Rectangle},b.Sprite.prototype=Object.create(PIXI.Sprite.prototype),b.Sprite.prototype.constructor=b.Sprite,b.Sprite.prototype.preUpdate=function(){if(1===this._cache[4])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._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;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();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._dirty&&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.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,c=this.children.length;c>a;a++)this.children[a].postUpdate()},b.Sprite.prototype.loadTexture=function(a,c){return c=c||0,a instanceof b.RenderTexture?(this.key=a.key,void this.setTexture(a)):a instanceof b.BitmapData?(this.key=a.key,void this.setTexture(a.texture)):a instanceof PIXI.Texture?(this.key=a,void this.setTexture(a)):null===a||"undefined"==typeof a?(this.key="__default",void this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?this.game.cache.isSpriteSheet(a)?(this.key=a,this.animations.loadFrameData(this.game.cache.getFrameData(a)),"string"==typeof c?this.frameName=c:this.frame=c,void 0):(this.key=a,void this.setTexture(PIXI.TextureCache[a])):(this.key="__missing",void this.setTexture(PIXI.TextureCache[this.key]))},b.Sprite.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.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){"undefined"==typeof a&&(a=!0),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.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null}},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},b.Sprite.prototype.bringToTop=function(a){return"undefined"==typeof a&&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},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.stop()}}),Object.defineProperty(b.Sprite.prototype,"physicsEnabled",{get:function(){return null!==this.body},set:function(a){a?null===this.body&&(this.body=new b.Physics.Body(this.game,this,this.x,this.y,1),this.anchor.set(.5)):this.body&&this.body.destroy()}}),Object.defineProperty(b.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&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)}}),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.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=new Int16Array([0,0,0,0,1,0,1,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._dirty&&this.key.render(),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,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.key,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){"undefined"==typeof a&&(a=!0),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}},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(a){return"undefined"==typeof a&&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(){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){return c=c||0,a instanceof b.RenderTexture?(this.key=a.key,void this.setTexture(a)):a instanceof b.BitmapData?(this.key=a.key,void this.setTexture(a.texture)):a instanceof PIXI.Texture?(this.key=a,void this.setTexture(a)):null===a||"undefined"==typeof a?(this.key="__default",void this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?this.game.cache.isSpriteSheet(a)?(this.key=a,this.animations.loadFrameData(this.game.cache.getFrameData(a)),"string"==typeof c?this.frameName=c:this.frame=c,void 0):(this.key=a,void this.setTexture(PIXI.TextureCache[a])):(this.key="__missing",void this.setTexture(PIXI.TextureCache[this.key]))},b.TileSprite.prototype.destroy=function(a){if(null!==this.game){"undefined"==typeof a&&(a=!0),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}},b.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},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,"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.stop()}}),b.Text=function(a,c,d,e,f){c=c||0,d=d||0,e=e||"",f=f||"",this.game=a,this.exists=!0,this.name="",this.type=b.TEXT,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,PIXI.Text.call(this,e,f),this.position.set(c,d),this._cache=new Int16Array([0,0,0,0,1,0,1,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.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.Text.prototype.destroy=function(a){if(null!==this.game){"undefined"==typeof a&&(a=!0),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}},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]+" ")}d?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",b.BitmapFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",b.BitmapFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",b.BitmapFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",b.BitmapFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",b.BitmapFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",b.BitmapFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",b.BitmapFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",b.BitmapFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",b.BitmapFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},b.BitmapFont.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.BitmapFont.prototype.resize=function(a,b){if(this.width=a,this.height=b,this.frame.width=this.width,this.frame.height=this.height,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.renderer.type===PIXI.WEBGL_RENDERER){this.projection.x=this.width/2,this.projection.y=-this.height/2;var c=this.renderer.gl;c.bindTexture(c.TEXTURE_2D,this.baseTexture._glTextures[c.id]),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,this.width,this.height,0,c.RGBA,c.UNSIGNED_BYTE,null)}else this.textureBuffer.resize(this.width,this.height); +PIXI.Texture.frameUpdates.push(this)},b.BitmapFont.prototype.buildBitmapFontText=function(){var a=0,c=0;if(this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY),this.textureBuffer.clear();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(fixedWidth,this.characterHeight):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight),this.textureBuffer.clear(),this.align){case b.BitmapFont.ALIGN_LEFT:a=0;break;case b.BitmapFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case b.BitmapFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.pasteLine(this._text,a,0,this.customSpacingX)}},b.BitmapFont.prototype.pasteLine=function(a,c,d){for(var e=new b.Point,f=0;f=0&&(this.stamp.frame=this.grabData[a.charCodeAt(f)],e.set(c,d),this.render(this.stamp,e,!1),c+=this.characterWidth+this.customSpacingX,c>this.width))break},b.BitmapFont.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.BitmapFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},Object.defineProperty(b.BitmapFont.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.buildBitmapFontText())}}),b.Canvas={create:function(a,b,c,d){if("undefined"==typeof d&&(d=!1),a=a||256,b=b||256,d)var e=document.createElement("canvas");else var e=document.createElement(navigator.isCocoonJS?"screencanvas":"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.patchAndroidClearRectBug=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.ejecta=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!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.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.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkOS()},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),(this.windows||this.macOS||this.linux&&this.silk===!1)&&(this.desktop=!0)},_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},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0,this.typedArray=!0):(this.littleEndian=!1,this.typedArray=!1),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(this.vibration=!0)},_checkCSS3D:function(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),this.css3D=void 0!==a&&a.length>0&&"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.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(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},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)},nearestAngleBetween:function(a,b,c){"undefined"==typeof c&&(c=!0);var d=c?Math.PI:180;return a=this.normalizeAngle(a,c),b=this.normalizeAngle(b,c),-d/2>a&&b>d/2&&(a+=2*d),-d/2>b&&a>d/2&&(b+=2*d),b-a},interpolateAngles:function(a,b,c,d,e){return"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=null),a=this.normalizeAngle(a,d),b=this.normalizeAngleToAnother(b,a,d),"function"==typeof e?e(c,a,b-a,1):this.interpolateFloat(a,b,c)},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},randomSign:function(){return Math.random()>.5?1:-1},isOdd:function(a){return 1&a},isEven:function(a){return 1&a?!1:!0},max:function(){for(var a=1,b=0,c=arguments.length;c>a;a++)arguments[b]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){return this.wrap(a,-180,180)},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)},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},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: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 b>=a?0:a>=c?1:(a=(a-b)/(c-b),a*a*(3-2*a))},smootherstep:function(a,b,c){return b>=a?0:a>=c?1:(a=(a-b)/(c-b),a*a*a*(a*(6*a-15)+10))},sign:function(a){return 0>a?-1:a>0?1:0},p2px:function(a){return a*=20},px2p:function(a){return.05*a},p2pxi:function(a){return a*=-20},px2pi:function(a){return a*-.05},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(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)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*a.length)]},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.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){this._object=a,this.game=c,this._manager=this.game.tweens,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;for(var d in a)this._valuesStart[d]=parseFloat(a[d],10);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;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},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(this._valuesEnd[a]instanceof Array){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],this._valuesStart[a]instanceof Array==!1&&(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},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,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),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._reversed=!this._reversed}this._valuesStart[b]=this._valuesStartRepeat[b]}return 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.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()},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._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.physicsElapsed=1*(this.elapsed/1e3),!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},update:function(a){if(this.paused)return!0;for(this._now=a,this._len=this.events.length,this._i=0;this._i=this.nextTick&&this._len>0){for(this._i=0;this._i=this.events[this._i].tick;){var b=this._now-this.events[this._i].tick,c=this._now+this.events[this._i].delay-b;0>c&&(c=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=c,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=c,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args),this.events.splice(this._i,1),this._len--),this._i++}this.events.length>0?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&!this.expired&&(this._pauseStarted=this.game.time.now,this.paused=!0,this._codePaused=!0)},_pause:function(){this.running&&!this.expired&&(this._pauseStarted=this.game.time.now,this.paused=!0)},resume:function(){if(this.running&&!this.expired){for(var a=this.game.time.now-this._pauseStarted,b=0;bthis._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._now-this._started}}),Object.defineProperty(b.Timer.prototype,"seconds",{get:function(){return.001*this.ms}}),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.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},b.AnimationManager.prototype={loadFrameData:function(a){this._frameData=a,this.frame=0,this.isLoaded=!0},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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__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){if(this._anims[a]){if(this.currentAnim!=this._anims[a])return this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentAnim.play(b,c,d);if(this.currentAnim.isPlaying===!1)return this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)}},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},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(){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._frameIndex=a,this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),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._frameIndex=this.currentFrame.index,this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this.sprite.__tilePattern&&(this.__tilePattern=!1,this.tilingTexture=!1)):console.warn("Cannot set frameName: "+a)}}),b.Animation=function(a,b,c,d,e,f,g){this.game=a,this._parent=b,this._frameData=d,this.name=c,this._frames=[],this._frames=this._frames.concat(e),this.delay=1e3/f,this.looped=g,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.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.looped=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1),this._parent.events&&this._parent.events.onAnimationStart.dispatch(this._parent,this),this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,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])},stop:function(a){"undefined"==typeof a&&(a=!1),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,a&&(this.currentFrame=this._frameData.getFrame(this._frames[0]))},onPause:function(){this.isPlaying&&(this._frameDiff=this._timeNextFrame-this.game.time.now)},onResume:function(){this.isPlaying&&(this._timeNextFrame=this.game.time.now+this._frameDiff)},update:function(){return this.isPaused?!1:this.isPlaying===!0&&this.game.time.now>=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.looped?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1)),this._parent.events.onAnimationLoop.dispatch(this._parent,this)):this.onComplete():(this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(this._parent.setTexture(PIXI.TextureCache[this.currentFrame.uuid]),this._parent.__tilePattern&&(this._parent.__tilePattern=!1,this._parent.tilingTexture=!1))),!0):!1},destroy:function(){this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this)},onComplete:function(){this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events&&this._parent.events.onAnimationComplete.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.setTexture(PIXI.TextureCache[this.currentFrame.uuid]))}}),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},b.Frame.prototype={setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.width=b,this.height=c,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,d){if(!c.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(c);for(var e,f=new b.FrameData,g=c.frames,h=0;h tag");for(var e,f,g,h,i,j,k,l,m,n,o,p,q=new b.FrameData,r=c.getElementsByTagName("SubTexture"),s=0;s0)for(var c=0;c0)for(var c=0;c0)for(var c=0;c0?(this._fileIndex=0,this._progressChunk=100/this._fileList.length,this.loadFile()):(this.progress=100,this.progressFloat=100,this.hasLoaded=!0,this.onLoadComplete.dispatch()))},loadFile:function(){if(!this._fileList[this._fileIndex])return void console.warn("Phaser.Loader loadFile invalid index "+this._fileIndex);var a=this._fileList[this._fileIndex],c=this;switch(a.type){case"image":case"spritesheet":case"textureatlas":case"bitmapfont":a.data=new Image,a.data.name=a.key,a.data.onload=function(){return c.fileComplete(c._fileIndex)},a.data.onerror=function(){return c.fileError(c._fileIndex)},this.crossOrigin&&(a.data.crossOrigin=this.crossOrigin),a.data.src=this.baseURL+a.url;break;case"audio":a.url=this.getAudioURL(a.url),null!==a.url?this.game.sound.usingWebAudio?(this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex) +},this._xhr.send()):this.game.sound.usingAudioTag&&(this.game.sound.touchLocked?(a.data=new Audio,a.data.name=a.key,a.data.preload="auto",a.data.src=this.baseURL+a.url,this.fileComplete(this._fileIndex)):(a.data=new Audio,a.data.name=a.key,a.data.onerror=function(){return c.fileError(c._fileIndex)},a.data.preload="auto",a.data.src=this.baseURL+a.url,a.data.addEventListener("canplaythrough",b.GAMES[this.game.id].load.fileComplete(this._fileIndex),!1),a.data.load())):this.fileError(this._fileIndex);break;case"json":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return c.jsonLoadComplete(c._fileIndex)},this._xhr.send();break;case"tilemap":if(this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",a.format===b.Tilemap.TILED_JSON)this._xhr.onload=function(){return c.jsonLoadComplete(c._fileIndex)};else{if(a.format!==b.Tilemap.CSV)throw new Error("Phaser.Loader. Invalid Tilemap format: "+a.format);this._xhr.onload=function(){return c.csvLoadComplete(c._fileIndex)}}this._xhr.onerror=function(){return c.dataLoadError(c._fileIndex)},this._xhr.send();break;case"text":case"script":case"physics":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="text",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send();break;case"binary":this._xhr.open("GET",this.baseURL+a.url,!0),this._xhr.responseType="arraybuffer",this._xhr.onload=function(){return c.fileComplete(c._fileIndex)},this._xhr.onerror=function(){return c.fileError(c._fileIndex)},this._xhr.send()}},getAudioURL:function(a){var b;"string"==typeof a&&(a=[a]);for(var c=0;c100&&(this.progress=100),null!==this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.crop.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.crop.height=Math.floor(this.preloadSprite.height/100*this.progress)),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&&(console.log(this.currentMarker,"has hit duration"),this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.now):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(a=a||"",b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),"undefined"==typeof e&&(e=!0),this.isPlaying!==!0||e!==!1||this.override!==!1){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 void console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist");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,this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else 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;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.input: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}},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.stop(),this.isPlaying=!1,this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.now,this.onPause.dispatch(this))},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.input: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(){this.isPlaying&&this._sound&&(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.isPlaying=!1;var a=this.currentMarker;this.currentMarker="",this.onStop.dispatch(this,a)}},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},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.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)}window.AudioContext?this.context=new window.AudioContext:window.webkitAudioContext?this.context=new window.webkitAudioContext:window.Audio?(this.usingWebAudio=!1,this.usingAudioTag=!0):(this.usingWebAudio=!1,this.noAudio=!0),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;a255)return b.Color.getColor(255,255,255);if(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{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a}},getWebRGB:function(a){var b=(a>>>24)/255,c=a>>16&255,d=a>>8&255,e=255&a;return"rgba("+c.toString()+","+d.toString()+","+e.toString()+","+b.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}},b.Physics={},b.Physics.LIME_CORONA_JSON=0,p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,b.Physics.World=function(a,c){this.game=a,"undefined"==typeof c&&(c={gravity:[0,0],broadphase:new p2.SAPBroadphase}),this.world=new p2.World(c),this.materials=[],this.gravity=new b.Physics.InversePointProxy(a,this.world.gravity),this.bounds=null,this._wallShapes=[null,null,null,null],this.onBodyAdded=new b.Signal,this.onBodyRemoved=new b.Signal,this.onSpringAdded=new b.Signal,this.onSpringRemoved=new b.Signal,this.onConstraintAdded=new b.Signal,this.onConstraintRemoved=new b.Signal,this.onContactMaterialAdded=new b.Signal,this.onContactMaterialRemoved=new b.Signal,this.onPostStep=new b.Signal,this.onPostBroadphase=new b.Signal,this.onImpact=new b.Signal,this.onBeginContact=new b.Signal,this.onEndContact=new b.Signal,this.world.on("postStep",this.postStepHandler,this),this.world.on("postBroadphase",this.postBroadphaseHandler,this),this.world.on("impact",this.impactHandler,this),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this._collisionGroupID=2,this.nothingCollisionGroup=new b.Physics.CollisionGroup(1),this.boundsCollisionGroup=new b.Physics.CollisionGroup(2),this.everythingCollisionGroup=new b.Physics.CollisionGroup(2147483648),this.boundsCollidesWith=[],this.setBoundsToWorld(!0,!0,!0,!0,!1)},b.Physics.World.prototype={postStepHandler:function(){},postBroadphaseHandler:function(a){for(var b=0;b1&&a.bodyB.id>1},endContactHandler:function(a){a.bodyA.id>1&&a.bodyB.id>1},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._wallShapes[0]&&(this._wallShapes[0].material=a),c&&this._wallShapes[1]&&(this._wallShapes[1].material=a),d&&this._wallShapes[2]&&(this._wallShapes[2].material=a),e&&this._wallShapes[3]&&(this._wallShapes[3].material=a)},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);var j=c/2,k=d/2,l=j+a,m=k+b;if(null!==this.bounds){this.world.removeBody(this.bounds);for(var n=this.bounds.shapes.length;n--;){var o=this.bounds.shapes[n];this.bounds.removeShape(o)}this.bounds.position[0]=this.game.math.px2pi(l),this.bounds.position[1]=this.game.math.px2pi(m)}else this.bounds=new p2.Body({mass:0,position:[this.game.math.px2pi(l),this.game.math.px2pi(m)]});e&&(this._wallShapes[0]=new p2.Plane,i&&(this._wallShapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[0],[this.game.math.px2pi(-j),0],1.5707963267948966)),f&&(this._wallShapes[1]=new p2.Plane,i&&(this._wallShapes[1].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[1],[this.game.math.px2pi(j),0],-1.5707963267948966)),g&&(this._wallShapes[2]=new p2.Plane,i&&(this._wallShapes[2].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[2],[0,this.game.math.px2pi(-k)],-3.141592653589793)),h&&(this._wallShapes[3]=new p2.Plane,i&&(this._wallShapes[3].collisionGroup=this.boundsCollisionGroup.mask),this.bounds.addShape(this._wallShapes[3],[0,this.game.math.px2pi(k)])),this.world.addBody(this.bounds)},update:function(){this.world.step(1/60)},destroy:function(){this.world.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 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},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.setMaterial(a)},createMaterial:function(a,c){a=a||"";var d=new b.Physics.Material(a);return this.materials.push(d),"undefined"!=typeof c&&c.setMaterial(d),d},createContactMaterial:function(a,c,d){"undefined"==typeof a&&(a=this.createMaterial()),"undefined"==typeof c&&(c=this.createMaterial());var e=new b.Physics.ContactMaterial(a,c,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b]);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.springs[b]);return a},hitTest:function(){},toJSON:function(){this.world.toJSON()},createCollisionGroup:function(){var a=Math.pow(2,this._collisionGroupID);this._wallShapes[0]&&(this._wallShapes[0].collisionMask=this._wallShapes[0].collisionMask|a),this._wallShapes[1]&&(this._wallShapes[1].collisionMask=this._wallShapes[1].collisionMask|a),this._wallShapes[2]&&(this._wallShapes[2].collisionMask=this._wallShapes[2].collisionMask|a),this._wallShapes[3]&&(this._wallShapes[3].collisionMask=this._wallShapes[3].collisionMask|a),this._collisionGroupID++;var c=new b.Physics.CollisionGroup(a);return this.collisionGroups.push(c),c},createBody:function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1);var h=new b.Physics.Body(this.game,null,a,c,d);if(g){var i=h.addPolygon(f,g);if(!i)return!1}return e&&this.world.addBody(h.data),h},createParticle:function(a,c,d,e,f,g){"undefined"==typeof e&&(e=!1);var h=new b.Physics.Body(this.game,null,a,c,d);if(g){var i=h.addPolygon(f,g);if(!i)return!1}return e&&this.world.addBody(h.data),h}},Object.defineProperty(b.Physics.World.prototype,"friction",{get:function(){return this.world.defaultFriction},set:function(a){this.world.defaultFriction=a}}),Object.defineProperty(b.Physics.World.prototype,"restituion",{get:function(){return this.world.defaultRestitution},set:function(a){this.world.defaultRestitution=a}}),Object.defineProperty(b.Physics.World.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(b.Physics.World.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(b.Physics.World.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(b.Physics.World.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(b.Physics.World.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(b.Physics.World.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(b.Physics.World.prototype,"enableBodySleeping",{get:function(){return this.world.enableBodySleeping},set:function(a){this.world.enableBodySleeping=a}}),b.Physics.PointProxy=function(a,b){this.game=a,this.destination=b},b.Physics.PointProxy.prototype.constructor=b.Physics.PointProxy,Object.defineProperty(b.Physics.PointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.game.math.px2p(a)}}),Object.defineProperty(b.Physics.PointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.game.math.px2p(a)}}),b.Physics.InversePointProxy=function(a,b){this.game=a,this.destination=b},b.Physics.InversePointProxy.prototype.constructor=b.Physics.InversePointProxy,Object.defineProperty(b.Physics.InversePointProxy.prototype,"x",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=this.game.math.px2p(-a)}}),Object.defineProperty(b.Physics.InversePointProxy.prototype,"y",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=this.game.math.px2p(-a)}}),b.Physics.Body=function(a,c,d,e,f){c=c||null,d=d||0,e=e||0,"undefined"==typeof f&&(f=1),this.game=a,this.sprite=c,this.offset=new b.Point,this.data=new p2.Body({position:[this.px2pi(d),this.px2pi(e)],mass:f}),this.data.parent=this,this.velocity=new b.Physics.InversePointProxy(this.game,this.data.velocity),this.force=new b.Physics.InversePointProxy(this.game,this.data.force),this.gravity=new b.Point,this.collideWorldBounds=!0,this.onImpact=new b.Signal,this.collidesWith=[],this._bodyCallbacks=[],this._bodyCallbackContext=[],this._groupCallbacks=[],this._groupCallbackContext=[],c&&(this.setRectangleFromSprite(c),this.game.physics.addBody(this))},b.Physics.Body.prototype={createBodyCallback:function(a,b,c){this._bodyCallbacks[a.data.id]=b,this._bodyCallbackContext[a.data.id]=c},createGroupCallback:function(a,b,c){this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c},getCollisionMask:function(){var a=0;this.collideWorldBounds&&(a=this.game.physics.boundsCollisionGroup.mask);for(var b=0;b=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,shapes.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&&(shapes.collisionGroup=null),b&&(shapes.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.px2p(b),this.px2p(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.px2p(-a)},rotateRight:function(a){this.data.angularVelocity=this.px2p(a)},moveForward:function(a){var b=this.px2pi(-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.px2pi(-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.px2pi(-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.px2pi(-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.px2pi(-a)},moveRight:function(a){this.data.velocity[0]=this.px2pi(a)},moveUp:function(a){this.data.velocity[1]=this.px2pi(-a)},moveDown:function(a){this.data.velocity[1]=this.px2pi(a)},preUpdate:function(){},postUpdate:function(){this.sprite.x=this.p2pxi(this.data.position[0]),this.sprite.y=this.p2pxi(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(){this.data.world!==this.game.physics.world&&this.game.physics.addBody(this)},removeFromWorld:function(){this.data.world===this.game.physics.world&&this.game.physics.removeBody(this)},destroy:function(){this.removeFromWorld(),this.clearShapes(),this.sprite=null},clearShapes:function(){for(var a=this.data.shapes.length-1;a>=0;a--){var b=this.data.shapes[a];this.data.removeShape(b)}},addShape:function(a,b,c,d){return"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),this.data.addShape(a,[this.px2pi(b),this.px2pi(c)],d),a},addCircle:function(a,b,c,d){var e=new p2.Circle(this.px2p(a));return this.addShape(e,b,c,d)},addRectangle:function(a,b,c,d,e){var f=new p2.Rectangle(this.px2p(a),this.px2p(b));return this.addShape(f,c,d,e)},addPlane:function(a,b,c){var d=new p2.Plane;return this.addShape(d,a,b,c)},addParticle:function(a,b,c){var d=new p2.Particle;return this.addShape(d,a,b,c)},addLine:function(a,b,c,d){var e=new p2.Line(this.px2p(a));return this.addShape(e,b,c,d)},addCapsule:function(a,b,c,d,e){var f=new p2.Capsule(this.px2p(a),b);return this.addShape(f,c,d,e)},addPolygon:function(a,b){a=a||{},b=Array.prototype.slice.call(arguments,1);var c=[];if(1===b.length&&Array.isArray(b[0]))c=b[0].slice(0);else if(Array.isArray(b[0]))c=b[0].slice(0);else if("number"==typeof b[0])for(var d=0,e=b.length;e>d;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},loadPolygon:function(a,b,c){var d=this.game.cache.getPhysicsData(a,b);if(1===d.length){for(var e=[],f=0,g=d.shape.length;g>f;f+=2)e.push([d.shape[f],d.shape[f+1]]);return this.addPolygon(c,e)}for(var h=p2.vec2.create(),f=0;f=this._timer&&(this.emitParticle(),this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1),this._timer=this.game.time.now+this.frequency)},b.Particles.Arcade.Emitter.prototype.makeParticles=function(a,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=this.maxParticles),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1);for(var g,h=0,i=a,j=c;d>h;)null===this.particleClass&&("object"==typeof a&&(i=this.game.rnd.pick(a)),"object"==typeof c&&(j=this.game.rnd.pick(c)),g=new b.Sprite(this.game,0,0,i,j)),e?(g.body.checkCollision.any=!0,g.body.checkCollision.none=!1):g.body.checkCollision.none=!0,g.body.collideWorldBounds=f,g.exists=!1,g.visible=!1,g.anchor.setTo(.5,.5),this.add(g),h++;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.start=function(a,b,c,d){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=250),"undefined"==typeof d&&(d=0),this.revive(),this.visible=!0,this.on=!0,this._explode=a,this.lifespan=b,this.frequency=c,a?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);if(null!=a){if(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.lifespan=this.lifespan,a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.minParticleSpeed.x!=this.maxParticleSpeed.x?this.game.rnd.integerInRange(this.minParticleSpeed.x,this.maxParticleSpeed.x):this.minParticleSpeed.x,a.body.velocity.y=this.minParticleSpeed.y!=this.maxParticleSpeed.y?this.game.rnd.integerInRange(this.minParticleSpeed.y,this.maxParticleSpeed.y):this.minParticleSpeed.y,a.body.gravity.y=this.gravity,a.body.angularVelocity=this.minRotation!=this.maxRotation?this.game.rnd.integerInRange(this.minRotation,this.maxRotation):this.minRotation,1!==this.minParticleScale||1!==this.maxParticleScale){var b=this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale);a.scale.setTo(b,b)}a.body.friction=this.particleFriction,a.body.angularDrag=this.angularDrag}},b.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.width=a,this.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.at=function(a){a.center&&(this.emitX=a.center.x,this.emitY=a.center.y)},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.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.width/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.height/2)}}),Object.defineProperty(b.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.height/2)}}),b.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.width=e,this.height=f,this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collides=!1,this.collideNone=!0,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},b.Tile.prototype={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,this.collideNone=a||b||c||d?!1:!0},resetCollision:function(){this.collideNone=!0,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collides=a.collides,this.collideNone=a.collideNone,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,"canCollide",{get:function(){return this.collides||this.collisionCallback||this.layer.callbacks[this.index]}}),Object.defineProperty(b.Tile.prototype,"left",{get:function(){return this.x}}),Object.defineProperty(b.Tile.prototype,"right",{get:function(){return this.x+this.width}}),Object.defineProperty(b.Tile.prototype,"top",{get:function(){return this.y}}),Object.defineProperty(b.Tile.prototype,"bottom",{get:function(){return this.y+this.height}}),b.Tilemap=function(a,c){this.game=a,this.key=c;var d=b.TilemapParser.parse(this.game,c);null!==d&&(this.width=d.width,this.height=d.height,this.tileWidth=d.tileWidth,this.tileHeight=d.tileHeight,this.orientation=d.orientation,this.version=d.version,this.properties=d.properties,this.widthInPixels=d.widthInPixels,this.heightInPixels=d.heightInPixels,this.layers=d.layers,this.tilesets=d.tilesets,this.tiles=d.tiles,this.objects=d.objects,this.collision=d.collision,this.images=d.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.prototype={create:function(a,c,d){for(var e=[],f=0;d>f;f++){e[f]=[];for(var g=0;c>g;g++)e[f][g]=0}this.layers.push({name:a,width:c,height:d,alpha:1,visible:!0,tileMargin:0,tileSpacing:0,format:b.Tilemap.CSV,data:e,indexes:[],dirty:!0}),this.currentLayer=this.layers.length-1},addTilesetImage:function(a,b){if("undefined"==typeof b){if("string"!=typeof a)return!1;b=a}return"string"==typeof a&&(a=this.getTilesetIndex(a)),this.tilesets[a]?(this.tilesets[a].image=this.game.cache.getImage(b),!0):!1},createFromObjects:function(a,b,c,d,e,f,g){if("undefined"==typeof e&&(e=!0),"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=this.game.world),!this.objects[a])return void console.warn("Tilemap.createFromObjects: Invalid objectgroup name given: "+a);for(var h,i=0,j=this.objects[a].length;j>i;i++)if(this.objects[a][i].gid===b){h=g.create(this.objects[a][i].x,this.objects[a][i].y,c,d,e),h.anchor.setTo(0,1),h.name=this.objects[a][i].name,h.visible=this.objects[a][i].visible,h.autoCull=f;for(property in this.objects[a][i].properties)g.set(h,property,this.objects[a][i].properties[property],!1,!1,0)}},clearPhysicsBodies:function(a){a=this.getLayer(a);for(var b=this.layers[a].bodies.length;b--;)this.layers[a].bodies[b].destroy()},generateCollisionData:function(a,b){a=this.getLayer(a),"undefined"==typeof b&&(b=!0),this.layers[a].bodies.length>0&&this.clearPhysicsBodies(a),this.layers[a].bodies.length=[];for(var c=0,d=0,e=0,f=0,g=this.layers[a].height;g>f;f++){c=0;for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];if(j)if(right=this.getTileRight(a,h,f),0===c&&(d=j.x*j.width,e=j.y*j.height,c=j.width),right&&right.collides)c+=j.width;else{var k=this.game.physics.createBody(d,e,0,!1);k.addRectangle(c,j.height,c/2,j.height/2,0),b&&this.game.physics.addBody(k),this.layers[a].bodies.push(k),c=0}}}return this.layers[a].bodies},createCollisionObjects:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=[],d=0,e=this.collision[a].length;e>d;d++){var f=this.collision[a][d],g=this.game.physics.createBody(f.x,f.y,0,b,{},f.polyline);g&&c.push(g)}return c},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))},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;hd;d++)this.setCollisionByIndex(a[d],b,c,!1); +this.calculateFaces(c)},setCollisionBetween:function(a,b,c,d){if("undefined"==typeof c&&(c=!0),d=this.getLayer(d),!(a>b)){for(var e=a;b>=e;e++)this.setCollisionByIndex(e,c,d,!1);this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c){"undefined"==typeof b&&(b=!0),c=this.getLayer(c);for(var d=0,e=this.tiles.length;e>d;d++)-1===a.indexOf(d)&&this.setCollisionByIndex(d,b,c,!1);this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0);for(var e=0;ef;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),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&&c=0&&d=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,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.Sprite.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._cw=c.tileWidth,this._ch=c.tileHeight,this._ga=1,this._dx=0,this._dy=0,this._dw=0,this._dh=0,this._tx=0,this._ty=0,this._tw=0,this._th=0,this._tl=0,this._maxX=0,this._maxY=0,this._startX=0,this._startY=0,this._results=[],this._x=0,this._y=0,this._prevX=0,this._prevY=0,this.updateMax()},b.TilemapLayer.prototype=Object.create(b.Sprite.prototype),b.TilemapLayer.prototype=b.Utils.extend(!0,b.TilemapLayer.prototype,b.Sprite.prototype,PIXI.Sprite.prototype),b.TilemapLayer.prototype.constructor=b.TilemapLayer,b.TilemapLayer.prototype.postUpdate=function(){b.Sprite.prototype.postUpdate.call(this),this.scrollX=this.game.camera.x*this.scrollFactorX,this.scrollY=this.game.camera.y*this.scrollFactorY,this.render()},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._x+(a-this._x/this.scrollFactorX)},b.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._x/this.scrollFactorX+(a-this._x)},b.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._y+(a-this._y/this.scrollFactorY)},b.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._y/this.scrollFactorY+(a-this._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.getTiles=function(a,b,c,d,e){"undefined"==typeof e&&(e=!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._tx=this.game.math.snapToFloor(a,this._cw)/this._cw,this._ty=this.game.math.snapToFloor(b,this._ch)/this._ch,this._tw=(this.game.math.snapToCeil(c,this._cw)+this._cw)/this._cw,this._th=(this.game.math.snapToCeil(d,this._ch)+this._ch)/this._ch,this._results.length=0;for(var f=this._ty;fthis.layer.width&&(this._maxX=this.layer.width),this._maxY>this.layer.height&&(this._maxY=this.layer.height)),this.dirty=!0},b.TilemapLayer.prototype.render=function(){if(this.layer.dirty&&(this.dirty=!0),this.dirty&&this.visible){this._prevX=this._dx,this._prevY=this._dy,this._dx=-(this._x-this._startX*this.map.tileWidth),this._dy=-(this._y-this._startY*this.map.tileHeight),this._tx=this._dx,this._ty=this._dy,this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.fillStyle=this.tileColor;var a,c;this.debug&&(this.context.globalAlpha=this.debugAlpha);for(var d=this._startY,e=this._startY+this._maxY;e>d;d++){this._column=this.layer.data[d];for(var f=this._startX,g=this._startX+this._maxX;g>f;f++)this._column[f]&&(a=this._column[f],this.map.tiles[a.index]&&(c=this.map.tilesets[this.map.tiles[a.index][2]],c.image?(this.debug===!1&&a.alpha!==this.context.globalAlpha&&(this.context.globalAlpha=a.alpha),c.tileWidth!==this.map.tileWidth||c.tileHeight!==this.map.tileHeight?this.context.drawImage(this.map.tilesets[this.map.tiles[a.index][2]].image,this.map.tiles[a.index][0],this.map.tiles[a.index][1],c.tileWidth,c.tileHeight,Math.floor(this._tx),Math.floor(this._ty)-(c.tileHeight-this.map.tileHeight),c.tileWidth,c.tileHeight):this.context.drawImage(this.map.tilesets[this.map.tiles[a.index][2]].image,this.map.tiles[a.index][0],this.map.tiles[a.index][1],this.map.tileWidth,this.map.tileHeight,Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight),a.debug&&(this.context.fillStyle="rgba(0, 255, 0, 0.4)",this.context.fillRect(Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight))):this.context.fillRect(Math.floor(this._tx),Math.floor(this._ty),this.map.tileWidth,this.map.tileHeight))),this._tx+=this.map.tileWidth;this._tx=this._dx,this._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._tx=this._dx,this._ty=this._dy,this.context.strokeStyle=this.debugColor,this.context.fillStyle=this.debugFillColor;for(var a=this._startY,b=this._startY+this._maxY;b>a;a++){this._column=this.layer.data[a];for(var c=this._startX,d=this._startX+this._maxX;d>c;c++){var e=this._column[c];e&&(e.faceTop||e.faceBottom||e.faceLeft||e.faceRight)&&(this._tx=Math.floor(this._tx),this.debugFill&&this.context.fillRect(this._tx,this._ty,this._cw,this._ch),this.context.beginPath(),e.faceTop&&(this.context.moveTo(this._tx,this._ty),this.context.lineTo(this._tx+this._cw,this._ty)),e.faceBottom&&(this.context.moveTo(this._tx,this._ty+this._ch),this.context.lineTo(this._tx+this._cw,this._ty+this._ch)),e.faceLeft&&(this.context.moveTo(this._tx,this._ty),this.context.lineTo(this._tx,this._ty+this._ch)),e.faceRight&&(this.context.moveTo(this._tx+this._cw,this._ty),this.context.lineTo(this._tx+this._cw,this._ty+this._ch)),this.context.stroke()),e&&(e.collisionCallback||e.layer.callbacks[e.index])&&(this.context.fillStyle=this.debugCallbackColor,this.context.fillRect(this._tx,this._ty,this._cw,this._ch),this.context.fillStyle=this.debugFillColor),this._tx+=this.map.tileWidth}this._tx=this._dx,this._ty+=this.map.tileHeight}},Object.defineProperty(b.TilemapLayer.prototype,"scrollX",{get:function(){return this._x},set:function(a){a!==this._x&&a>=0&&this.layer.widthInPixels>this.width&&(this._x=a,this._x>this.layer.widthInPixels-this.width&&(this._x=this.layer.widthInPixels-this.width),this._startX=this.game.math.floor(this._x/this.map.tileWidth),this._startX<0&&(this._startX=0),this._startX+this._maxX>this.layer.width&&(this._startX=this.layer.width-this._maxX),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"scrollY",{get:function(){return this._y},set:function(a){a!==this._y&&a>=0&&this.layer.heightInPixels>this.height&&(this._y=a,this._y>this.layer.heightInPixels-this.height&&(this._y=this.layer.heightInPixels-this.height),this._startY=this.game.math.floor(this._y/this.map.tileHeight),this._startY<0&&(this._startY=0),this._startY+this._maxY>this.layer.height&&(this._startY=this.layer.height-this._maxY),this.dirty=!0)}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._cw},set:function(a){this._cw=a,this.dirty=!0}}),Object.defineProperty(b.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._ch},set:function(a){this._ch=a,this.dirty=!0}}),b.TilemapParser={tileset:function(a,c,d,e,f,g,h,i,j){var k=a.cache.getTilesetImage(c);if(null===k)return console.warn("Phaser.TilemapParser.tileSet: Invalid image key given"),null;var l=k.width,m=k.height;return-1===h&&(h=Math.round(l/d)),-1===i&&(i=Math.round(m/e)),-1===j&&(j=h*i),0===l||0===m||d>l||e>m||0===j?(console.warn("Phaser.TilemapParser.tileSet: width/height zero or width/height < given tileWidth/tileHeight"),null):new b.Tileset(k,c,d,e,f,g,h,i,j)},parse:function(a,c){var d=a.cache.getTilemapData(c);return d?d.format===b.Tilemap.CSV?this.parseCSV(d.data):d.format===b.Tilemap.TILED_JSON?this.parseTiledJSON(d.data):void 0:this.getEmptyData()},parseCSV:function(a){a=a.trim();for(var b=[],c=a.split("\n"),d=c.length,e=0,f=0;fj;j++)h.push(a.layers[e].data[j]>0?new b.Tile(f,a.layers[e].data[j],g,i.length,a.tilewidth,a.tileheight):null),g++,g===a.layers[e].width&&(i.push(h),g=0,h=[]);f.data=i,d.push(f)}c.layers=d;for(var l=[],e=0;ep;p++)if(a.layers[e].objects[p].gid){var q={gid:a.layers[e].objects[p].gid,name:a.layers[e].objects[p].name,x:a.layers[e].objects[p].x,y:a.layers[e].objects[p].y,visible:a.layers[e].objects[p].visible,properties:a.layers[e].objects[p].properties};n[a.layers[e].name].push(q)}else if(a.layers[e].objects[p].polyline){var q={name:a.layers[e].objects[p].name,x:a.layers[e].objects[p].x,y:a.layers[e].objects[p].y,width:a.layers[e].objects[p].width,height:a.layers[e].objects[p].height,visible:a.layers[e].objects[p].visible,properties:a.layers[e].objects[p].properties};q.polyline=[];for(var r=0;r this._highestInputPriorityID || (currentNode.priorityID === this._highestInputPriorityID && currentNode.sprite.renderOrderID > this._highestRenderOrderID)) + if (currentNode.pixelPerfectClick || currentNode.pixelPerfectOver || currentNode.priorityID > this._highestInputPriorityID || (currentNode.priorityID === this._highestInputPriorityID && currentNode.sprite._cache[3] < this._highestRenderOrderID)) { if ((!fromClick && currentNode.checkPointerOver(this)) || (fromClick && currentNode.checkPointerDown(this))) { - this._highestRenderOrderID = currentNode.sprite.renderOrderID; + this._highestRenderOrderID = currentNode.sprite._cache[3]; // renderOrderID this._highestInputPriorityID = currentNode.priorityID; this._highestRenderObject = currentNode; }