2014-04-29 21:00:16 +00:00
/* Phaser v2.0.5 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */
2014-02-28 09:30:53 +00:00
2014-04-29 14:39:53 +00:00
( function ( ) { var a = this , b = b || { } ; b . WEBGL _RENDERER = 0 , b . CANVAS _RENDERER = 1 , b . VERSION = "v1.5.2" , b . blendModes = { NORMAL : 0 , ADD : 1 , MULTIPLY : 2 , SCREEN : 3 , OVERLAY : 4 , DARKEN : 5 , LIGHTEN : 6 , COLOR _DODGE : 7 , COLOR _BURN : 8 , HARD _LIGHT : 9 , SOFT _LIGHT : 10 , DIFFERENCE : 11 , EXCLUSION : 12 , HUE : 13 , SATURATION : 14 , COLOR : 15 , LUMINOSITY : 16 } , b . scaleModes = { DEFAULT : 0 , LINEAR : 0 , NEAREST : 1 } , b . INTERACTION _FREQUENCY = 30 , b . AUTO _PREVENT _DEFAULT = ! 0 , b . RAD _TO _DEG = 180 / Math . PI , b . DEG _TO _RAD = Math . PI / 180 , b . Point = function ( a , b ) { this . x = a || 0 , this . y = b || 0 } , b . Point . prototype . clone = function ( ) { return new b . Point ( this . x , this . y ) } , b . Point . prototype . constructor = b . Point , b . Point . prototype . set = function ( a , b ) { this . x = a || 0 , this . y = b || ( 0 !== b ? this . x : 0 ) } , b . Rectangle = function ( a , b , c , d ) { this . x = a || 0 , this . y = b || 0 , this . width = c || 0 , this . height = d || 0 } , b . Rectangle . prototype . clone = function ( ) { return new b . Rectangle ( this . x , this . y , this . width , this . height ) } , b . Rectangle . prototype . contains = function ( a , b ) { if ( this . width <= 0 || this . height <= 0 ) return ! 1 ; var c = this . x ; if ( a >= c && a <= c + this . width ) { var d = this . y ; if ( b >= d && b <= d + this . height ) return ! 0 } return ! 1 } , b . Rectangle . prototype . constructor = b . Rectangle , b . EmptyRectangle = new b . Rectangle ( 0 , 0 , 0 , 0 ) , b . Polygon = function ( a ) { if ( a instanceof Array || ( a = Array . prototype . slice . call ( arguments ) ) , "number" == typeof a [ 0 ] ) { for ( var c = [ ] , d = 0 , e = a . length ; e > d ; d += 2 ) c . push ( new b . Point ( a [ d ] , a [ d + 1 ] ) ) ; a = c } this . points = a } , b . Polygon . prototype . clone = function ( ) { for ( var a = [ ] , c = 0 ; c < this . points . length ; c ++ ) a . push ( this . points [ c ] . clone ( ) ) ; return new b . Polygon ( a ) } , b . Polygon . prototype . contains = function ( a , b ) { for ( var c = ! 1 , d = 0 , e = this . points . length - 1 ; d < this . points . length ; e = d ++ ) { var f = this . points [ d ] . x , g = this . points [ d ] . y , h = this . points [ e ] . x , i = this . points [ e ] . y , j = g > b != i > b && ( h - f ) * ( b - g ) / ( i - g ) + f > a ; j && ( c = ! c ) } return c } , b . Polygon . prototype . constructor = b . Polygon , b . Circle = function ( a , b , c ) { this . x = a || 0 , this . y = b || 0 , this . radius = c || 0 } , b . Circle . prototype . clone = function ( ) { return new b . Circle ( this . x , this . y , this . radius ) } , b . Circle . prototype . contains = function ( a , b ) { if ( this . radius <= 0 ) return ! 1 ; var c = this . x - a , d = this . y - b , e = this . radius * this . radius ; return c *= c , d *= d , e >= c + d } , b . Circle . prototype . constructor = b . Circle , b . Ellipse = function ( a , b , c , d ) { this . x = a || 0 , this . y = b || 0 , this . width = c || 0 , this . height = d || 0 } , b . Ellipse . prototype . clone = function ( ) { return new b . Ellipse ( this . x , this . y , this . width , this . height ) } , b . Ellipse . prototype . contains = function ( a , b ) { if ( this . width <= 0 || this . height <= 0 ) return ! 1 ; var c = ( a - this . x ) / this . width , d = ( b - this . y ) / this . height ; return c *= c , d *= d , 1 >= c + d } , b . Ellipse . prototype . getBounds = function ( ) { return new b . Rectangle ( this . x , this . y , this . width , this . height ) } , b . Ellipse . prototype . constructor = b . Ellipse , b . determineMatrixArrayType = function ( ) { return "undefined" != typeof Float32Array ? Float32Array : Array } , b . Matrix2 = b . determineMatrixArrayType ( ) , b . Matrix = function ( ) { this . a = 1 , this . b = 0 , this . c = 0 , this . d = 1 , this . tx = 0 , this . ty = 0 } , b . Matrix . prototype . fromArray = function ( a ) { this . a = a [ 0 ] , this . b = a [ 1 ] , this . c = a [ 3 ] , this . d = a [ 4 ] , this . tx = a [ 2 ] , this . ty = a [ 5 ] } , b . Matrix . prototype . toArray = function ( a ) { this . array || ( this . array = new Float32Array ( 9 ) ) ; var b = this . array ; return a ? ( this . array [ 0 ] = this . a , this . array [ 1 ] = this . c , this . array [ 2 ] = 0 , this . array [ 3 ] = this . b , this . array [ 4 ] = this . d , this . array [ 5 ] = 0 , this . array [ 6 ] = this . tx , this . array [ 7 ] = this . ty , this . array [ 8 ] = 1 ) : ( this . array [ 0 ] = this . a , this . array [ 1 ] = this . b , this . array [ 2 ] = this . tx , this . array [ 3 ] = this . c , this . array [ 4 ] = this . d , this . array [ 5 ] = this . ty , this . array [ 6 ] = 0 , this . array [ 7 ] = 0 , this . array [ 8 ] = 1 ) , b } , b . identityMatrix = new b . Matrix , b . DisplayObject = function ( ) { this . position = new b . Point , this . scale = new b . Point ( 1 , 1 ) , this . pivot = new b . Point ( 0 , 0 ) , this . rotation = 0 , this . alpha = 1 , this . visible = ! 0 , this . hitArea = null , this . buttonMode = ! 1 , this . renderable = ! 1 , this . parent = null , this . stage = null , this . worldAlpha = 1 , this . _interactive = ! 1 , this . defaultCursor = "pointer" , this . worldTransform = new b . Matrix , this . color = [ ] , this . dynamic = ! 0 , this . _sr = 0 , this . _cr = 1 , this . filterArea = null , this . _bounds = new b . Rectangle ( 0 , 0 , 1 , 1 ) , this . _currentBounds = null , this . _mask = null , this . _cacheAsBitmap = ! 1 , this . _cacheIsDirty = ! 1 } , b . DisplayObject . prototype . constructor = b . DisplayObject , b . DisplayObject . prototype . setInteractive = function ( a ) { this . interactive = a } , Object . defineProp
} , b . PixiShader . prototype . destroy = function ( ) { this . gl . deleteProgram ( this . program ) , this . uniforms = null , this . gl = null , this . attributes = null } , b . PixiShader . defaultVertexSrc = [ "attribute vec2 aVertexPosition;" , "attribute vec2 aTextureCoord;" , "attribute vec2 aColor;" , "uniform vec2 projectionVector;" , "uniform vec2 offsetVector;" , "varying vec2 vTextureCoord;" , "varying vec4 vColor;" , "const vec2 center = vec2(-1.0, 1.0);" , "void main(void) {" , " gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);" , " vTextureCoord = aTextureCoord;" , " vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;" , " vColor = vec4(color * aColor.x, aColor.x);" , "}" ] , b . PixiFastShader = function ( a ) { this . gl = a , this . program = null , this . fragmentSrc = [ "precision lowp float;" , "varying vec2 vTextureCoord;" , "varying float vColor;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;" , "}" ] , this . vertexSrc = [ "attribute vec2 aVertexPosition;" , "attribute vec2 aPositionCoord;" , "attribute vec2 aScale;" , "attribute float aRotation;" , "attribute vec2 aTextureCoord;" , "attribute float aColor;" , "uniform vec2 projectionVector;" , "uniform vec2 offsetVector;" , "uniform mat3 uMatrix;" , "varying vec2 vTextureCoord;" , "varying float vColor;" , "const vec2 center = vec2(-1.0, 1.0);" , "void main(void) {" , " vec2 v;" , " vec2 sv = aVertexPosition * aScale;" , " v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);" , " v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);" , " v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;" , " gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);" , " vTextureCoord = aTextureCoord;" , " vColor = aColor;" , "}" ] , this . textureCount = 0 , this . init ( ) } , b . PixiFastShader . prototype . init = function ( ) { var a = this . gl , c = b . compileProgram ( a , this . vertexSrc , this . fragmentSrc ) ; a . useProgram ( c ) , this . uSampler = a . getUniformLocation ( c , "uSampler" ) , this . projectionVector = a . getUniformLocation ( c , "projectionVector" ) , this . offsetVector = a . getUniformLocation ( c , "offsetVector" ) , this . dimensions = a . getUniformLocation ( c , "dimensions" ) , this . uMatrix = a . getUniformLocation ( c , "uMatrix" ) , this . aVertexPosition = a . getAttribLocation ( c , "aVertexPosition" ) , this . aPositionCoord = a . getAttribLocation ( c , "aPositionCoord" ) , this . aScale = a . getAttribLocation ( c , "aScale" ) , this . aRotation = a . getAttribLocation ( c , "aRotation" ) , this . aTextureCoord = a . getAttribLocation ( c , "aTextureCoord" ) , this . colorAttribute = a . getAttribLocation ( c , "aColor" ) , - 1 === this . colorAttribute && ( this . colorAttribute = 2 ) , this . attributes = [ this . aVertexPosition , this . aPositionCoord , this . aScale , this . aRotation , this . aTextureCoord , this . colorAttribute ] , this . program = c } , b . PixiFastShader . prototype . destroy = function ( ) { this . gl . deleteProgram ( this . program ) , this . uniforms = null , this . gl = null , this . attributes = null } , b . StripShader = function ( ) { 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 , " a
2014-05-20 09:02:23 +00:00
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 ; j < c . filterPasses . length - 1 ; j ++ ) { var k = c . filterPasses [ j ] ; a . bindFramebuffer ( a . FRAMEBUFFER , i . frameBuffer ) , a . activeTexture ( a . TEXTURE0 ) , a . bindTexture ( a . TEXTURE _2D , h . texture ) , this . applyFilterPass ( k , d , d . width , d . height ) ; var l = h ; h = i , i = l } a . enable ( a . BLEND ) , e = h , this . texturePool . push ( i ) } var m = c . filterPasses [ c . filterPasses . length - 1 ] ; this . offsetX -= d . x , this . offsetY -= d . y ; var n = this . width , o = this . height , p = 0 , q = 0 , r = this . buffer ; if ( 0 === this . filterStack . length ) a . colorMask ( ! 0 , ! 0 , ! 0 , ! 0 ) ; else { var s = this . filterStack [ this . filterStack . length - 1 ] ; d = s . _filterArea , n = d . width , o = d . height , p = d . x , q = d . y , r = s . _glFilterTexture . frameBuffer } f . x = n / 2 , f . y = - o / 2 , g . x = p , g . y = q , d = c . _filterArea ; var t = d . x - p , u = d . y - q ; a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , this . vertexArray [ 0 ] = t , this . vertexArray [ 1 ] = u + d . height , this . vertexArray [ 2 ] = t + d . width , this . vertexArray [ 3 ] = u + d . height , this . vertexArray [ 4 ] = t , this . vertexArray [ 5 ] = u , this . vertexArray [ 6 ] = t + d . width , this . vertexArray [ 7 ] = u , 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 ) , a . viewport ( 0 , 0 , n , o ) , a . bindFramebuffer ( a . FRAMEBUFFER , r ) , a . activeTexture ( a . TEXTURE0 ) , a . bindTexture ( a . TEXTURE _2D , e . texture ) , this . applyFilterPass ( m , d , n , o ) , a . useProgram ( this . defaultShader . program ) , a . uniform2f ( this . defaultShader . projectionVector , n / 2 , - o / 2 ) , a . uniform2f ( this . defaultShader . offsetVector , - p , - q ) , this . texturePool . push ( e ) , c . _glFilterTexture = null } , b . WebGLFilterManager . prototype . applyFilterPass = function ( a , c , d , e ) { var f = this . gl , g = a . shaders [ f . id ] ; g || ( g = new b . PixiShader ( f ) , g . fragmentSrc = a . fragmentSrc , g . uniforms = a . uniforms , g . init ( ) , a . shaders [ f . id ] = g ) , f . useProgram ( g . program ) , f . uniform2f ( g . projectionVector , d / 2 , - e / 2 ) , f . uniform2f ( g . offsetVector , 0 , 0 ) , a . uniforms . dimensions && ( a . uniforms . dimensions . value [ 0 ] = this . width , a . uniforms . dimensions . value [ 1 ] = this . height , a . uniforms . dimensions . value [ 2 ] = this . vertexArray [ 0 ] , a . uniforms . dimensions . value [ 3 ] = this . vertexArray [ 5 ] ) , g . syncUniforms ( ) , f . bindBuffer ( f . ARRAY _BUFFER , this . vertexBuffer ) , f . vertexAttribPointer ( g . aVertexPosition , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ARRAY _BUFFER , this . uvBuffer ) , f . vertexAttribPointer ( g . aTextureCoord , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ARRAY _BUFFER , this . colorBuffer ) , f . vertexAttribPointer ( g . colorAttribute , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , f . drawElements ( f . TRIANGLES , 6 , f . UNSIGNED _SHORT , 0 ) , this . renderSession . drawCount ++ } , b . WebGLFilterManager . prototype . initShaderBuffers = function ( ) { var a = this . gl ; this . vertexBuffer = a . createBuffer ( ) , this . uvBuffer = a . createBuffer ( ) , this . colorBuffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , this . vertexArray = new Float32Array ( [ 0 , 0 , 1 , 0 , 0 , 1 , 1 , 1 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . vertexArray , a . STATIC _DRAW ) , this . uvArray = new Float32Array ( [ 0 , 0 , 1 , 0 , 0 , 1 , 1 , 1 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . uvBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . uvArray , a . STATIC _DRAW ) , this . colorArray = new Float32Array ( [ 1 , 16777215 , 1 , 16777215 , 1 , 16777215 , 1 , 16777215 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . colorBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . colorArray , a . STATIC _DRAW ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , new Uint16Array ( [ 0 , 1 , 2 , 1 , 3 , 2 ] ) , a . STATIC _DRAW ) } , b . WebGLFilterManager . prototype . destroy = function ( ) { var a = this . gl ; this . filterStack = null , this . offsetX = 0 , this . offsetY = 0 ; for ( var b = 0 ; b < this . texturePool . length ; b ++ ) this . texturePool . destroy ( ) ; this . texturePool = null , a . deleteBuffer ( this . vertexBuffer ) , a . deleteBuffer ( this . uvBuffer ) , a . deleteBuffer ( this . colorBuffer ) , a . deleteBuffer ( this . indexBuffer ) } , b . FilterTexture = function ( a , c , d , e ) { this . gl = a , this . frameBuffer = a . createFramebuffer ( ) , this . texture = a . createTexture ( ) , e = e || b . scaleModes . DEFAULT , a . bindTexture ( a . TEX
} , 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 ( "PIXI" , function ( ) { return a . PIXI = b } ( ) ) : a . PIXI = b } ) . call ( this ) , function ( ) { var a = this , b = b || { VERSION : "2.0.5" , GAMES : [ ] , AUTO : 0 , CANVAS : 1 , WEBGL : 2 , HEADLESS : 3 , NONE : 0 , LEFT : 1 , RIGHT : 2 , UP : 3 , DOWN : 4 , SPRITE : 0 , BUTTON : 1 , IMAGE : 2 , GRAPHICS : 3 , TEXT : 4 , TILESPRITE : 5 , BITMAPTEXT : 6 , GROUP : 7 , RENDERTEXTURE : 8 , TILEMAP : 9 , TILEMAPLAYER : 10 , EMITTER : 11 , POLYGON : 12 , BITMAPDATA : 13 , CANVAS _FILTER : 14 , WEBGL _FILTER : 15 , ELLIPSE : 16 , SPRITEBATCH : 17 , RETROFONT : 18 , POINTER : 19 , blendModes : { NORMAL : 0 , ADD : 1 , MULTIPLY : 2 , SCREEN : 3 , OVERLAY : 4 , DARKEN : 5 , LIGHTEN : 6 , COLOR _DODGE : 7 , COLOR _BURN : 8 , HARD _LIGHT : 9 , SOFT _LIGHT : 10 , DIFFERENCE : 11 , EXCLUSION : 12 , HUE : 13 , SATURATION : 14 , COLOR : 15 , LUMINOSITY : 16 } , scaleModes : { DEFAULT : 0 , LINEAR : 0 , NEAREST : 1 } } ; if ( PIXI . InteractionManager = PIXI . InteractionManager || function ( ) { } , b . Utils = { transposeArray : function ( a ) { for ( var b = new Array ( a [ 0 ] . length ) , c = 0 ; c < a [ 0 ] . length ; c ++ ) { b [ c ] = new Array ( a . length - 1 ) ; for ( var d = a . length - 1 ; d > - 1 ; d -- ) b [ c ] [ d ] = a [ d ] [ c ] } return b } , rotateArray : function ( a , c ) { if ( "string" != typeof c && ( c = ( c % 360 + 360 ) % 360 ) , 90 === c || - 270 === c || "rotateLeft" === c ) a = b . Utils . transposeArray ( a ) , a = a . reverse ( ) ; else if ( - 90 === c || 270 === c || "rotateRight" === c ) a = a . reverse ( ) , a = b . Utils . transposeArray ( a ) ; else if ( 180 === Math . abs ( c ) || "rotate180" === c ) { for ( var d = 0 ; d < a . length ; d ++ ) a [ d ] . reverse ( ) ; a = a . reverse ( ) } return a } , 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 = new Array ( b + 1 - a . length ) . join ( c ) + a ; break ; case 3 : var f = Math . ceil ( ( e = b - a . length ) / 2 ) , g = e - f ; a = new Array ( g + 1 ) . join ( c ) + a + new Array ( f + 1 ) . join ( c ) ; break ; default : a += new Array ( b + 1 - a . length ) . join ( c ) } return a } , isPlainObject : function ( a ) { if ( "object" != typeof a || a . nodeType || a === a . window ) return ! 1 ; try { if ( a . constructor && ! { } . hasOwnProperty . call ( a . constructor . prototype , "isPrototypeOf" ) ) return ! 1 } catch ( b ) { return ! 1 } return ! 0 } , extend : function ( ) { var a , c , d , e , f , g , h = arguments [ 0 ] || { } , i = 1 , j = arguments . length , k = ! 1 ; for ( "boolean" == typeof h && ( k = h , h = arguments [ 1 ] || { } , i = 2 ) , j === i && ( h = this , -- i ) ; j > i ; i ++ ) if ( null != ( a = arguments [ i ] ) ) for ( c in a ) d = h [ c ] , e = a [ c ] , h !== e && ( k && e && ( b . Utils . isPlainObject ( e ) || ( f = Array . isArray ( e ) ) ) ? ( f ? ( f = ! 1 , g = d && Array . isArray ( d ) ? d : [ ] ) : g = d && b . Utils . isPlainObject ( d ) ? d : { } , h [ c ] = b . Utils . extend ( k , g , e ) ) : void 0 !== e && ( h [ c ] = e ) ) ; return h } } , "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 )
} , getCurrentState : function ( ) { return this . states [ this . current ] } , loadComplete : function ( ) { this . _created === ! 1 && this . onCreateCallback ? ( this . _created = ! 0 , this . onCreateCallback . call ( this . callbackContext , this . game ) ) : this . _created = ! 0 } , pause : function ( ) { this . _created && this . onPausedCallback && this . onPausedCallback . call ( this . callbackContext , this . game ) } , resume : function ( ) { this . _created && this . onResumedCallback && this . onResumedCallback . call ( this . callbackContext , this . game ) } , update : function ( ) { this . _created && this . onUpdateCallback ? this . onUpdateCallback . call ( this . callbackContext , this . game ) : this . onLoadUpdateCallback && this . onLoadUpdateCallback . call ( this . callbackContext , this . game ) } , pauseUpdate : function ( ) { this . _created && this . onPauseUpdateCallback ? this . onPauseUpdateCallback . call ( this . callbackContext , this . game ) : this . onLoadUpdateCallback && this . onLoadUpdateCallback . call ( this . callbackContext , this . game ) } , preRender : function ( ) { this . onPreRenderCallback && this . onPreRenderCallback . call ( this . callbackContext , this . game ) } , render : function ( ) { this . _created && this . onRenderCallback ? ( this . game . renderType === b . CANVAS && ( this . game . context . save ( ) , this . game . context . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) ) , this . onRenderCallback . call ( this . callbackContext , this . game ) , this . game . renderType === b . CANVAS && this . game . context . restore ( ) ) : this . onLoadRenderCallback && this . onLoadRenderCallback . call ( this . callbackContext , this . game ) } , destroy : function ( ) { this . callbackContext = null , this . onInitCallback = null , this . onShutDownCallback = null , this . onPreloadCallback = null , this . onLoadRenderCallback = null , this . onLoadUpdateCallback = null , this . onCreateCallback = null , this . onUpdateCallback = null , this . onRenderCallback = null , this . onPausedCallback = null , this . onResumedCallback = null , this . onPauseUpdateCallback = null , this . game = null , this . states = { } , this . _pendingState = null } } , b . StateManager . prototype . constructor = b . StateManager , b . LinkedList = function ( ) { this . next = null , this . prev = null , this . first = null , this . last = null , this . total = 0 } , b . LinkedList . prototype = { add : function ( a ) { return 0 === this . total && null === this . first && null === this . last ? ( this . first = a , this . last = a , this . next = a , a . prev = this , this . total ++ , a ) : ( this . last . next = a , a . prev = this . last , this . last = a , this . total ++ , a ) } , reset : function ( ) { this . first = null , this . last = null , this . next = null , this . prev = null , this . total = 0 } , remove : function ( a ) { return 1 === this . total ? ( this . reset ( ) , void ( a . next = a . prev = null ) ) : ( a === this . first ? this . first = this . first . next : a === this . last && ( this . last = this . last . prev ) , a . prev && ( a . prev . next = a . next ) , a . next && ( a . next . prev = a . prev ) , a . next = a . prev = null , null === this . first && ( this . last = null ) , void this . total -- ) } , callAll : function ( a ) { if ( this . first && this . last ) { var b = this . first ; do b && b [ a ] && b [ a ] . call ( b ) , b = b . next ; while ( b != this . last . next ) } } } , b . LinkedList . prototype . constructor = b . LinkedList , b . ArrayList = function ( ) { this . total = 0 , this . position = 0 , this . list = [ ] } , b . ArrayList . prototype = { add : function ( a ) { return this . exists ( a ) || ( this . list . push ( a ) , this . total ++ ) , a } , getIndex : function ( a ) { return this . list . indexOf ( a ) } , exists : function ( a ) { return this . list . indexOf ( a ) > - 1 } , reset : function ( ) { this . list . length = 0 , this . total = 0 } , remove : function ( a ) { var b = this . list . indexOf ( a ) ; return b > - 1 ? ( this . list . splice ( b , 1 ) , this . total -- , a ) : void 0 } , callAll : function ( a ) { for ( var b = Array . prototype . splice . call ( arguments , 1 ) , c = this . list . length ; c -- ; ) this . list [ c ] && this . list [ c ] [ a ] && this . list [ c ] [ a ] . apply ( this . list [ c ] , b ) } } , Object . defineProperty ( b . ArrayList . prototype , "first" , { get : function ( ) { return this . position = 0 , this . total > 0 ? this . list [ 0 ] : null } } ) , Object . defineProperty ( b . ArrayList . prototype , "next" , { get : function ( ) { return this . position < this . total ? ( this . position ++ , this . list [ this . position ] ) : null } } ) , b . ArrayList . prototype . constructor = b . ArrayList , 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
} , 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 . innerWidth < window . innerHeight || this . forcePortrait && window . innerHeight < window . innerWidth ) && ( this . incorrectOrientation = ! 0 , this . enterIncorrectOrientation . dispatch ( ) , this . orientationSprite && this . orientationSprite . visible === ! 1 && ( this . orientationSprite . visible = ! 0 , this . game . world . visible = ! 1 ) , this . scaleMode !== b . ScaleManager . NO _SCALE && this . refresh ( ) ) } , checkOrientation : function ( a ) { this . event = a , this . orientation = window . orientation , this . isLandscape ? this . enterLandscape . dispatch ( this . orientation , ! 0 , ! 1 ) : this . enterPortrait . dispatch ( this . orientation , ! 1 , ! 0 ) , this . scaleMode !== b . ScaleManager . NO _SCALE && this . refresh ( ) } , checkResize : function ( a ) { this . event = a , this . orientation = window . outerWidth > window . outerHeight ? 90 : 0 , this . isLandscape ? this . enterLandscape . dispatch ( this . orientation , ! 0 , ! 1 ) : this . enterPortrait . dispatch ( this . orientation , ! 1 , ! 0 ) , this . scaleMode !== b . ScaleManager . NO _SCALE && this . refresh ( ) , this . checkOrientationState ( ) } , refresh : function ( ) { if ( this . game . device . iPad || this . game . device . webApp || this . game . device . desktop || ( this . game . device . android && ! this . game . device . chrome ? window . scrollTo ( 0 , 1 ) : window . scrollTo ( 0 , 0 ) ) , null === this . _check && this . maxIterations > 0 ) { this . _iterations = this . maxIterations ; var a = this ; this . _check = window . setInterval ( function ( ) { return a . setScreenSize ( ) } , 10 ) , this . setScreenSize ( ) } } , setScreenSize : function ( a ) { "undefined" == typeof a && ( a = ! 1 ) , this . game . device . iPad || this . game . device . webApp || this . game . device . desktop || ( this . game . device . android && ! this . game . device . chrome ? window . scrollTo ( 0 , 1 ) : window . scrollTo ( 0 , 0 ) ) , this . _iterations -- , ( a || window . innerHeight > this . _startHeight || this . _iterations < 0 ) && ( document . documentElement . style . minHeight = window . innerHeight + "px" , this . incorrectOrientation ? this . setMaximum ( ) : this . isFullScreen ? this . fullScreenScaleMode === b . ScaleManager . EXACT _FIT ? this . setExactFit ( ) : this . fullScreenScaleMode === b . ScaleManager . SHOW _ALL && this . setShowAll ( ) : this . scaleMode === b . ScaleManager . EXACT _FIT ? this . setExactFit ( ) : this . scaleMode === b . ScaleManager . SHOW _ALL && this . setShowAll ( ) , this . setSize ( ) , clearInterval ( this . _check ) , this . _check = null ) } , setSize : function ( ) { this . incorrectOrientation || ( this . maxWidth && this . width > this . maxWidth && ( this . width = this . maxWidth ) , this . maxHeight && this . height > this . maxHeight && ( this . height = this . maxHeight ) , this . minWidth && this . width < this . minWidth && ( this . width = this . minWidth ) , this . minHeight && this . height < this . minHeight && ( this . height = this . minHeight ) ) , this . game . canvas . style . width = this . width + "px" , this . game . canvas . style . height = this . height + "px" , this . game . input . scale . setTo ( this . game . width / this . width , this . game . height / this . height ) , this . pageAlignHorizontally && ( this . width < window . innerWidth && ! this . incorrectOrientation ? ( this . margin . x = Math . round ( ( window . innerWidth - this . width ) / 2 ) , this . game . canvas . style . marginLeft = this . margin . x + "px" ) : ( this . margin . x = 0 , this . game . canvas . style . marginLeft = "0px" ) ) , this . pageAlignVertically && ( this . height < window . innerHeight && ! this . incorrectOrientation ? ( this . margin . y = Math . round ( ( window . innerHeight - this . height ) / 2 ) , this . game . canvas . style . marginTop = this . margin . y + "px" ) : ( this . margin . y = 0 , this . game . canvas . style . marginTop = "0px" ) ) , b . Canvas . getOffset ( this . game . canvas , this . game . stage . offset ) , this . bounds . setTo ( this . game . stage . offset . x , this . game . stage . offset . y , this . width , 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 . scaleFactorInversed . x = this . width / this . game . width , this . scaleFactorInversed . y = this . height / this . game . height , this . hasResized . dispatch ( this . width , this . height ) , this . checkOrientationState ( ) } , setMaximum : function ( ) { this . width = window . innerWidth , this . height = window . innerHeight } , setShowAll : function ( ) { var a = Math . min ( window . i
} } , b . MSPointer . prototype . constructor = b . MSPointer , b . Pointer = function ( a , c ) { this . game = a , this . id = c , this . type = b . POINTER , this . exists = ! 0 , this . identifier = 0 , this . pointerId = null , this . target = null , this . button = null , this . _holdSent = ! 1 , this . _history = [ ] , this . _nextDrop = 0 , this . _stateReset = ! 1 , this . withinGame = ! 1 , this . clientX = - 1 , this . clientY = - 1 , this . pageX = - 1 , this . pageY = - 1 , this . screenX = - 1 , this . screenY = - 1 , this . rawMovementX = 0 , this . rawMovementY = 0 , this . movementX = 0 , this . movementY = 0 , this . x = - 1 , this . y = - 1 , this . isMouse = ! 1 , this . isDown = ! 1 , this . isUp = ! 0 , this . timeDown = 0 , this . timeUp = 0 , this . previousTapTime = 0 , this . totalTouches = 0 , this . msSinceLastClick = Number . MAX _VALUE , this . targetObject = null , this . active = ! 1 , this . position = new b . Point , this . positionDown = new b . Point , this . positionUp = new b . Point , this . circle = new b . Circle ( 0 , 0 , 44 ) , 0 === c && ( this . isMouse = ! 0 ) } , b . Pointer . prototype = { start : function ( a ) { return a . pointerId && ( this . pointerId = a . pointerId ) , this . identifier = a . identifier , this . target = a . target , "undefined" != typeof a . button && ( this . button = a . button ) , this . _history = [ ] , this . active = ! 0 , this . withinGame = ! 0 , this . isDown = ! 0 , this . isUp = ! 1 , this . msSinceLastClick = this . game . time . now - this . timeDown , this . timeDown = this . game . time . now , this . _holdSent = ! 1 , this . move ( a , ! 0 ) , this . positionDown . setTo ( this . x , 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 . x = this . x , this . game . input . y = this . y , this . game . input . position . setTo ( this . x , this . y ) , this . game . input . onDown . dispatch ( this , a ) , this . game . input . resetSpeed ( this . x , this . y ) ) , this . _stateReset = ! 1 , this . totalTouches ++ , this . isMouse || this . game . input . currentPointers ++ , null !== this . targetObject && this . targetObject . _touchedHandler ( this ) , this } , update : function ( ) { this . active && ( this . _holdSent === ! 1 && this . duration >= this . game . input . holdRate && ( ( this . game . input . multiInputOverride == b . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride == b . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride == b . Input . TOUCH _OVERRIDES _MOUSE && 0 === this . game . input . currentPointers ) && this . game . input . onHold . dispatch ( this ) , this . _holdSent = ! 0 ) , this . game . input . recordPointerHistory && this . game . time . now >= this . _nextDrop && ( this . _nextDrop = this . game . time . now + this . game . input . recordRate , this . _history . push ( { x : this . position . x , y : this . position . y } ) , this . _history . length > this . game . input . recordLimit && this . _history . shift ( ) ) ) } , move : function ( a , c ) { if ( ! this . game . input . pollLocked ) { if ( "undefined" == typeof c && ( c = ! 1 ) , "undefined" != typeof a . button && ( this . button = a . button ) , this . clientX = a . clientX , this . clientY = a . clientY , this . pageX = a . pageX , this . pageY = a . pageY , this . screenX = a . screenX , this . screenY = a . screenY , this . isMouse && this . game . input . mouse . locked && ! c && ( this . rawMovementX = a . movementX || a . mozMovementX || a . webkitMovementX || 0 , this . rawMovementY = a . movementY || a . mozMovementY || a . webkitMovementY || 0 , this . movementX += this . rawMovementX , this . movementY += this . rawMovementY ) , this . x = ( this . pageX - this . game . stage . offset . x ) * this . game . input . scale . x , this . y = ( this . pageY - this . game . stage . offset . y ) * this . game . input . scale . y , this . position . setTo ( this . x , this . y ) , this . circle . x = this . x , this . circle . y = this . y , ( this . game . input . multiInputOverride === b . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride === b . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride === b . Input . TOUCH _OVERRIDES _MOUSE && 0 === this . game . input . currentPointers ) && ( this . game . input . activePointer = this , this . game . input . x = this . x , this . game . input . y = this . y , this . game . input . position . setTo ( this . game . input . x , this . game . input . y ) , this . game . input . circle . x = this . game . input . x , this . game . input . circle . y = this . game . input . y ) , this . withinGame = this . game . scale . bounds . contains ( this . pageX , this . pageY ) , this . game . paused ) return this ; this . game . input . moveCallback && this . game . input . moveCallback . call ( this . game . input . moveCallbackContext , this , this . x , this . y ) ; for ( var d = this . game . input . moveCallbacks . length ; d -- ; ) this . game . input . moveCallbacks [ d ] . callback . call ( this . game . input . moveCallbacks [ d ] . context , this , this . x , this . y ) ; if ( null !==
else if ( this . dragFromCenter ) { var b = this . sprite . getBounds ( ) ; this . sprite . x = a . x + ( this . sprite . x - b . centerX ) , this . sprite . y = a . y + ( this . sprite . y - b . centerY ) , this . _dragPoint . setTo ( this . sprite . x - a . x , this . sprite . y - a . y ) } else this . _dragPoint . setTo ( this . sprite . x - a . x , this . sprite . y - a . y ) ; this . updateDrag ( a ) , this . bringToTop && ( this . _dragPhase = ! 0 , this . sprite . bringToTop ( ) ) , this . sprite . events . onDragStart . dispatch ( this . sprite , a ) } , stopDrag : function ( a ) { this . isDragged = ! 1 , this . _draggedPointerID = - 1 , this . _pointerData [ a . id ] . isDragged = ! 1 , this . _dragPhase = ! 1 , this . snapOnRelease && ( this . sprite . fixedToCamera ? ( this . sprite . cameraOffset . x = Math . round ( ( this . sprite . cameraOffset . x - this . snapOffsetX % this . snapX ) / this . snapX ) * this . snapX + this . snapOffsetX % this . snapX , this . sprite . cameraOffset . y = Math . round ( ( this . sprite . cameraOffset . y - this . snapOffsetY % this . snapY ) / this . snapY ) * this . snapY + this . snapOffsetY % this . snapY ) : ( this . sprite . x = Math . round ( ( this . sprite . x - this . snapOffsetX % this . snapX ) / this . snapX ) * this . snapX + this . snapOffsetX % this . snapX , this . sprite . y = Math . round ( ( this . sprite . y - this . snapOffsetY % this . snapY ) / this . snapY ) * this . snapY + this . snapOffsetY % this . snapY ) ) , this . sprite . events . onDragStop . dispatch ( this . sprite , a ) , this . checkPointerOver ( a ) === ! 1 && this . _pointerOutHandler ( a ) } , setDragLock : function ( a , b ) { "undefined" == typeof a && ( a = ! 0 ) , "undefined" == typeof b && ( b = ! 0 ) , this . allowHorizontalDrag = a , this . allowVerticalDrag = b } , enableSnap : function ( a , b , c , d , e , f ) { "undefined" == typeof c && ( c = ! 0 ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = 0 ) , this . snapX = a , this . snapY = b , this . snapOffsetX = e , this . snapOffsetY = f , this . snapOnDrag = c , this . snapOnRelease = d } , disableSnap : function ( ) { this . snapOnDrag = ! 1 , this . snapOnRelease = ! 1 } , checkBoundsRect : function ( ) { this . sprite . fixedToCamera ? ( this . sprite . cameraOffset . x < this . boundsRect . left ? this . sprite . cameraOffset . x = this . boundsRect . cameraOffset . x : this . sprite . cameraOffset . x + this . sprite . width > this . boundsRect . right && ( this . sprite . cameraOffset . x = this . boundsRect . right - this . sprite . width ) , this . sprite . cameraOffset . y < this . boundsRect . top ? this . sprite . cameraOffset . y = this . boundsRect . top : this . sprite . cameraOffset . y + this . sprite . height > this . boundsRect . bottom && ( this . sprite . cameraOffset . y = this . boundsRect . bottom - this . sprite . height ) ) : ( this . sprite . x < this . boundsRect . left ? this . sprite . x = this . boundsRect . x : this . sprite . x + this . sprite . width > this . boundsRect . right && ( this . sprite . x = this . boundsRect . right - this . sprite . width ) , this . sprite . y < this . boundsRect . top ? this . sprite . y = this . boundsRect . top : this . sprite . y + this . sprite . height > this . boundsRect . bottom && ( this . sprite . y = this . boundsRect . bottom - this . sprite . height ) ) } , checkBoundsSprite : function ( ) { this . sprite . fixedToCamera && this . boundsSprite . fixedToCamera ? ( this . sprite . cameraOffset . x < this . boundsSprite . camerOffset . x ? this . sprite . cameraOffset . x = this . boundsSprite . camerOffset . x : this . sprite . cameraOffset . x + this . sprite . width > this . boundsSprite . camerOffset . x + this . boundsSprite . width && ( this . sprite . cameraOffset . x = this . boundsSprite . camerOffset . x + this . boundsSprite . width - this . sprite . width ) , this . sprite . cameraOffset . y < this . boundsSprite . camerOffset . y ? this . sprite . cameraOffset . y = this . boundsSprite . camerOffset . y : this . sprite . cameraOffset . y + this . sprite . height > this . boundsSprite . camerOffset . y + this . boundsSprite . height && ( this . sprite . cameraOffset . y = this . boundsSprite . camerOffset . y + this . boundsSprite . height - this . sprite . height ) ) : ( this . sprite . x < this . boundsSprite . x ? this . sprite . x = this . boundsSprite . x : this . sprite . x + this . sprite . width > this . boundsSprite . x + this . boundsSprite . width && ( this . sprite . x = this . boundsSprite . x + this . boundsSprite . width - this . sprite . width ) , this . sprite . y < this . boundsSprite . y ? this . sprite . y = this . boundsSprite . y : this . sprite . y + this . sprite . height > this . boundsSprite . y + this . boundsSprite . height && ( this . sprite . y = this . boundsSprite . y + this . boundsSprite . height - this . sprite . height ) ) } } , b . InputHandler . prototype . constructor = b . InputHandler , b . Events = function ( a ) { this . parent = a , this . onAddedToGroup = new b . Signal , this . onRemovedFromGroup = new b . Signal , this . onKilled = new b . Signal , this . onRevived = new b . Signal , this . onOutOfBounds = new b . Signal , this . onEnterBounds = new b . Signal , this . onInputOver = null , this . onInputOut = null ,
for ( var a = 0 , b = this . children . length ; b > a ; a ++ ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , b . TileSprite . prototype . update = function ( ) { } , b . TileSprite . prototype . postUpdate = function ( ) { this . exists && this . body && this . body . postUpdate ( ) , 1 === this . _cache [ 7 ] && ( this . position . x = this . game . camera . view . x + this . cameraOffset . x , this . position . y = this . game . camera . view . y + this . cameraOffset . y ) ; for ( var a = 0 , b = this . children . length ; b > a ; a ++ ) this . children [ a ] . postUpdate ( ) } , b . TileSprite . prototype . autoScroll = function ( a , b ) { this . _scroll . set ( a , b ) } , b . TileSprite . prototype . stopScroll = function ( ) { this . _scroll . set ( 0 , 0 ) } , b . TileSprite . prototype . loadTexture = function ( a , c ) { return c = c || 0 , a instanceof b . RenderTexture ? ( this . key = a . key , void this . setTexture ( a ) ) : a instanceof b . BitmapData ? ( this . key = a , 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 && ! this . destroyPhase ) { "undefined" == typeof a && ( a = ! 0 ) , this . _cache [ 8 ] = 1 , this . filters && ( this . filters = null ) , this . parent && ( this . parent instanceof b . Group ? this . parent . remove ( this ) : this . parent . removeChild ( this ) ) , this . animations . destroy ( ) , this . events . destroy ( ) ; var c = this . children . length ; if ( a ) for ( ; c -- ; ) this . children [ c ] . destroy ( a ) ; else for ( ; c -- ; ) this . removeChild ( this . children [ c ] ) ; this . exists = ! 1 , this . visible = ! 1 , this . filters = null , this . mask = null , this . game = null , this . _cache [ 8 ] = 0 } } , b . TileSprite . prototype . play = function ( a , b , c , d ) { return this . animations . play ( a , b , c , d ) } , b . TileSprite . prototype . reset = function ( a , b ) { return this . world . setTo ( a , b ) , this . position . x = a , this . position . y = b , this . alive = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . renderable = ! 0 , this . _outOfBoundsFired = ! 1 , this . tilePosition . x = 0 , this . tilePosition . y = 0 , this . body && this . body . reset ( a , b , ! 1 , ! 1 ) , this . _cache [ 4 ] = 1 , this } , Object . defineProperty ( b . TileSprite . prototype , "angle" , { get : function ( ) { return b . Math . wrapAngle ( b . Math . radToDeg ( this . rotation ) ) } , set : function ( a ) { this . rotation = b . Math . degToRad ( b . Math . wrapAngle ( a ) ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "frame" , { get : function ( ) { return this . animations . frame } , set : function ( a ) { a !== this . animations . frame && ( this . animations . frame = a ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "frameName" , { get : function ( ) { return this . animations . frameName } , set : function ( a ) { a !== this . animations . frameName && ( this . animations . frameName = a ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "fixedToCamera" , { get : function ( ) { return ! ! this . _cache [ 7 ] } , set : function ( a ) { a ? ( this . _cache [ 7 ] = 1 , this . cameraOffset . set ( this . x , this . y ) ) : this . _cache [ 7 ] = 0 } } ) , Object . defineProperty ( b . TileSprite . prototype , "exists" , { get : function ( ) { return ! ! this . _cache [ 6 ] } , set : function ( a ) { a ? ( this . _cache [ 6 ] = 1 , this . body && this . body . type === b . Physics . P2JS && this . body . addToWorld ( ) , this . visible = ! 0 ) : ( this . _cache [ 6 ] = 0 , this . body && this . body . type === b . Physics . P2JS && ( this . body . safeRemove = ! 0 ) , this . visible = ! 1 ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "inputEnabled" , { get : function ( ) { return this . input && this . input . enabled } , set : function ( a ) { a ? null === this . input ? ( this . input = new b . InputHandler ( this ) , this . input . start ( ) ) : this . input && ! this . input . enabled && this . input . start ( ) : this . input && this . input . enabled && this . input . stop ( ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "x" , { get : function ( ) { return this . position . x } , set : function ( a ) { this . position . x = a , this . body && this . body . type === b . Physics . ARCADE && 2 === this . body . phase && ( this . body . _reset = 1 ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "y" , { get : function ( ) { return this . position . y } , set : function ( a ) { this . position . y = a , this . body && this . body . type === b . Physics . ARCADE && 2 === this . body . phase && ( this . body . _reset = 1 ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "destroyPhase" , { get : functio
} , setImageRenderingBicubic : function ( a ) { return a . style [ "image-rendering" ] = "auto" , a . style . msInterpolationMode = "bicubic" , a } } , b . Device = function ( a ) { this . game = a , this . desktop = ! 1 , this . iOS = ! 1 , this . cocoonJS = ! 1 , this . ejecta = ! 1 , this . crosswalk = ! 1 , this . android = ! 1 , this . chromeOS = ! 1 , this . linux = ! 1 , this . macOS = ! 1 , this . windows = ! 1 , this . windowsPhone = ! 1 , this . canvas = ! 1 , this . file = ! 1 , this . fileSystem = ! 1 , this . localStorage = ! 1 , this . webGL = ! 1 , this . worker = ! 1 , this . touch = ! 1 , this . mspointer = ! 1 , this . css3D = ! 1 , this . pointerLock = ! 1 , this . typedArray = ! 1 , this . vibration = ! 1 , this . getUserMedia = ! 1 , this . quirksMode = ! 1 , this . arora = ! 1 , this . chrome = ! 1 , this . epiphany = ! 1 , this . firefox = ! 1 , this . ie = ! 1 , this . ieVersion = 0 , this . trident = ! 1 , this . tridentVersion = 0 , this . mobileSafari = ! 1 , this . midori = ! 1 , this . opera = ! 1 , this . safari = ! 1 , this . webApp = ! 1 , this . silk = ! 1 , this . audioData = ! 1 , this . webAudio = ! 1 , this . ogg = ! 1 , this . opus = ! 1 , this . mp3 = ! 1 , this . wav = ! 1 , this . m4a = ! 1 , this . webm = ! 1 , this . iPhone = ! 1 , this . iPhone4 = ! 1 , this . iPad = ! 1 , this . pixelRatio = 0 , this . littleEndian = ! 1 , this . support32bit = ! 1 , this . fullscreen = ! 1 , this . requestFullscreen = "" , this . cancelFullscreen = "" , this . fullscreenKeyboard = ! 1 , this . _checkAudio ( ) , this . _checkBrowser ( ) , this . _checkCSS3D ( ) , this . _checkDevice ( ) , this . _checkFeatures ( ) , this . _checkOS ( ) } , b . Device . LITTLE _ENDIAN = ! 1 , b . Device . prototype = { _checkOS : function ( ) { var a = navigator . userAgent ; /Android/ . test ( a ) ? this . android = ! 0 : /CrOS/ . test ( a ) ? this . chromeOS = ! 0 : /iP[ao]d|iPhone/i . test ( a ) ? this . iOS = ! 0 : /Linux/ . test ( a ) ? this . linux = ! 0 : /Mac OS/ . test ( a ) ? this . macOS = ! 0 : /Windows/ . test ( a ) && ( this . windows = ! 0 , /Windows Phone/i . test ( a ) && ( this . windowsPhone = ! 0 ) ) , ( this . windows || this . macOS || this . linux && this . silk === ! 1 ) && ( this . desktop = ! 0 ) , ( this . windowsPhone || /Windows NT/i . test ( a ) && /Touch/i . test ( a ) ) && ( this . desktop = ! 1 ) } , _checkFeatures : function ( ) { this . canvas = ! ! window . CanvasRenderingContext2D || this . cocoonJS ; try { this . localStorage = ! ! localStorage . getItem } catch ( a ) { this . localStorage = ! 1 } this . file = ! ! ( window . File && window . FileReader && window . FileList && window . Blob ) , this . fileSystem = ! ! window . requestFileSystem , this . webGL = function ( ) { try { var a = document . createElement ( "canvas" ) ; return ! ! window . WebGLRenderingContext && ( a . getContext ( "webgl" ) || a . getContext ( "experimental-webgl" ) ) } catch ( b ) { return ! 1 } } ( ) , this . webGL = null === this . webGL || this . webGL === ! 1 ? ! 1 : ! 0 , this . worker = ! ! window . Worker , ( "ontouchstart" in document . documentElement || window . navigator . maxTouchPoints && window . navigator . maxTouchPoints > 1 ) && ( this . touch = ! 0 ) , ( window . navigator . msPointerEnabled || window . navigator . pointerEnabled ) && ( this . mspointer = ! 0 ) , this . pointerLock = "pointerLockElement" in document || "mozPointerLockElement" in document || "webkitPointerLockElement" in document , this . quirksMode = "CSS1Compat" === document . compatMode ? ! 1 : ! 0 , this . getUserMedia = ! ! ( navigator . getUserMedia || navigator . webkitGetUserMedia || navigator . mozGetUserMedia || navigator . msGetUserMedia ) } , checkFullScreenSupport : function ( ) { for ( var a = [ "requestFullscreen" , "requestFullScreen" , "webkitRequestFullscreen" , "webkitRequestFullScreen" , "msRequestFullscreen" , "msRequestFullScreen" , "mozRequestFullScreen" , "mozRequestFullscreen" ] , b = 0 ; b < a . length ; b ++ ) this . game . canvas [ a [ b ] ] && ( this . fullscreen = ! 0 , this . requestFullscreen = a [ b ] ) ; var c = [ "cancelFullScreen" , "exitFullscreen" , "webkitCancelFullScreen" , "webkitExitFullscreen" , "msCancelFullScreen" , "msExitFullscreen" , "mozCancelFullScreen" , "mozExitFullscreen" ] ; if ( this . fullscreen ) for ( var b = 0 ; b < c . length ; b ++ ) this . game . canvas [ c [ b ] ] && ( this . cancelFullscreen = c [ b ] ) ; window . Element && Element . ALLOW _KEYBOARD _INPUT && ( this . fullscreenKeyboard = ! 0 ) } , _checkBrowser : function ( ) { var a = navigator . userAgent ; /Arora/ . test ( a ) ? this . arora = ! 0 : /Chrome/ . test ( a ) ? this . chrome = ! 0 : /Epiphany/ . test ( a ) ? this . epiphany = ! 0 : /Firefox/ . test ( a ) ? this . firefox = ! 0 : /Mobile Safari/ . test ( a ) ? this . mobileSafari = ! 0 : /MSIE (\d+\.\d+);/ . test ( a ) ? ( this . ie = ! 0 , this . ieVersion = parseInt ( RegExp . $1 , 10 ) ) : /Midori/ . test ( a ) ? this . midori = ! 0 : /Opera/ . test ( a ) ? this . opera = ! 0 : /Safari/ . test ( a ) ? this . safari = ! 0 : /Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/ . test ( a ) && ( this . ie = ! 0 , this . trident = ! 0 , this . tridentVersion = parseInt ( RegExp . $1 , 10 ) , this . ieVersion = parseInt ( RegExp . $3 , 10 ) ) , /Silk/ . test ( a ) && ( this . silk = ! 0 ) , navigator . standalone && ( this . webApp = ! 0 ) , naviga
return ! 1 } , order : function ( ) { this . events . length > 0 && ( this . events . sort ( this . sortHandler ) , this . nextTick = this . events [ 0 ] . tick ) } , sortHandler : function ( a , b ) { return a . tick < b . tick ? - 1 : a . tick > b . tick ? 1 : 0 } , clearPendingEvents : function ( ) { for ( this . _i = this . events . length ; this . _i -- ; ) this . events [ this . _i ] . pendingDelete && this . events . splice ( this . _i , 1 ) ; this . _len = this . events . length , this . _i = 0 } , update : function ( a ) { if ( this . paused ) return ! 0 ; if ( this . elapsed = a - this . _now , this . _now = a , this . elapsed > this . timeCap && this . adjustEvents ( a - this . elapsed ) , this . _marked = 0 , this . clearPendingEvents ( ) , this . running && this . _now >= this . nextTick && this . _len > 0 ) { for ( ; this . _i < this . _len && this . running && this . _now >= this . events [ this . _i ] . tick ; ) this . _newTick = this . _now + this . events [ this . _i ] . delay - ( this . _now - this . events [ this . _i ] . tick ) , this . _newTick < 0 && ( this . _newTick = this . _now + this . events [ this . _i ] . delay ) , this . events [ this . _i ] . loop === ! 0 ? ( this . events [ this . _i ] . tick = this . _newTick , this . events [ this . _i ] . callback . apply ( this . events [ this . _i ] . callbackContext , this . events [ this . _i ] . args ) ) : this . events [ this . _i ] . repeatCount > 0 ? ( this . events [ this . _i ] . repeatCount -- , this . events [ this . _i ] . tick = this . _newTick , this . events [ this . _i ] . callback . apply ( this . events [ this . _i ] . callbackContext , this . events [ this . _i ] . args ) ) : ( this . _marked ++ , this . events [ this . _i ] . pendingDelete = ! 0 , this . events [ this . _i ] . callback . apply ( this . events [ this . _i ] . callbackContext , this . events [ this . _i ] . args ) ) , this . _i ++ ; this . events . length > this . _marked ? this . order ( ) : ( this . expired = ! 0 , this . onComplete . dispatch ( this ) ) } return this . expired && this . autoDestroy ? ! 1 : ! 0 } , pause : function ( ) { this . running && ( this . _codePaused = ! 0 , this . paused || ( this . _pauseStarted = this . game . time . now , this . paused = ! 0 ) ) } , _pause : function ( ) { ! this . paused && this . running && ( this . _pauseStarted = this . game . time . now , this . paused = ! 0 ) } , adjustEvents : function ( a ) { for ( var b = 0 ; b < this . events . length ; b ++ ) if ( ! this . events [ b ] . pendingDelete ) { var c = this . events [ b ] . tick - a ; 0 > c && ( c = 0 ) , this . events [ b ] . tick = this . _now + c } var d = this . nextTick - a ; this . nextTick = 0 > d ? this . _now : this . _now + d } , resume : function ( ) { if ( this . paused ) { var a = this . game . time . now ; this . _pauseTotal += a - this . _now , this . _now = a , this . adjustEvents ( this . _pauseStarted ) , this . paused = ! 1 , this . _codePaused = ! 1 } } , _resume : function ( ) { this . _codePaused || this . resume ( ) } , removeAll : function ( ) { this . onComplete . removeAll ( ) , this . events . length = 0 , this . _len = 0 , this . _i = 0 } , destroy : function ( ) { this . onComplete . removeAll ( ) , this . running = ! 1 , this . events = [ ] , this . _len = 0 , this . _i = 0 } } , Object . defineProperty ( b . Timer . prototype , "next" , { get : function ( ) { return this . nextTick } } ) , Object . defineProperty ( b . Timer . prototype , "duration" , { get : function ( ) { return this . running && this . nextTick > this . _now ? this . nextTick - this . _now : 0 } } ) , Object . defineProperty ( b . Timer . prototype , "length" , { get : function ( ) { return this . events . length } } ) , Object . defineProperty ( b . Timer . prototype , "ms" , { get : function ( ) { return this . _now - this . _started - this . _pauseTotal } } ) , 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 . currentAnim = 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 . _o
} , bitmapFont : function ( a , b , c , d , e , f ) { if ( "undefined" == typeof c && ( c = null ) , "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = 0 ) , c ) this . addToFileList ( "bitmapfont" , a , b , { xmlURL : c , xSpacing : e , ySpacing : f } ) ; else if ( "string" == typeof d ) { var g ; try { if ( window . DOMParser ) { var h = new DOMParser ; g = h . parseFromString ( d , "text/xml" ) } else g = new ActiveXObject ( "Microsoft.XMLDOM" ) , g . async = "false" , g . loadXML ( d ) } catch ( i ) { g = void 0 } if ( ! g || ! g . documentElement || g . getElementsByTagName ( "parsererror" ) . length ) throw new Error ( "Phaser.Loader. Invalid Bitmap Font XML given" ) ; this . addToFileList ( "bitmapfont" , a , b , { xmlURL : null , xmlData : g , xSpacing : e , ySpacing : f } ) } return this } , atlasJSONArray : function ( a , c , d , e ) { return this . atlas ( a , c , d , e , b . Loader . TEXTURE _ATLAS _JSON _ARRAY ) } , atlasJSONHash : function ( a , c , d , e ) { return this . atlas ( a , c , d , e , b . Loader . TEXTURE _ATLAS _JSON _HASH ) } , atlasXML : function ( a , c , d , e ) { return this . atlas ( a , c , d , e , b . Loader . TEXTURE _ATLAS _XML _STARLING ) } , atlas : function ( a , c , d , e , f ) { if ( "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = null ) , "undefined" == typeof f && ( f = b . Loader . TEXTURE _ATLAS _JSON _ARRAY ) , d ) this . addToFileList ( "textureatlas" , a , c , { atlasURL : d , format : f } ) ; else { switch ( f ) { case b . Loader . TEXTURE _ATLAS _JSON _ARRAY : "string" == typeof e && ( e = JSON . parse ( e ) ) ; break ; case b . Loader . TEXTURE _ATLAS _XML _STARLING : if ( "string" == typeof e ) { var g ; try { if ( window . DOMParser ) { var h = new DOMParser ; g = h . parseFromString ( e , "text/xml" ) } else g = new ActiveXObject ( "Microsoft.XMLDOM" ) , g . async = "false" , g . loadXML ( e ) } catch ( i ) { g = void 0 } if ( ! g || ! g . documentElement || g . getElementsByTagName ( "parsererror" ) . length ) throw new Error ( "Phaser.Loader. Invalid Texture Atlas XML given" ) ; e = g } } this . addToFileList ( "textureatlas" , a , c , { atlasURL : null , atlasData : e , format : f } ) } return this } , removeFile : function ( a , b ) { var c = this . getAsset ( a , b ) ; c !== ! 1 && this . _fileList . splice ( c . index , 1 ) } , removeAll : function ( ) { this . _fileList . length = 0 } , start : function ( ) { this . isLoading || ( this . progress = 0 , this . progressFloat = 0 , this . hasLoaded = ! 1 , this . isLoading = ! 0 , this . onLoadStart . dispatch ( this . _fileList . length ) , this . _fileList . length > 0 ? ( this . _fileIndex = 0 , this . _progressChunk = 100 / this . _fileList . length , this . loadFile ( ) ) : ( this . progress = 100 , this . progressFloat = 100 , this . hasLoaded = ! 0 , this . 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 ( this . onFileStart . dispatch ( this . progress , a . key ) , 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" : window . XDomainRequest ? ( this . _ajax = new window . XDomainRequest , this . _ajax . timeout = 3e3 , this . _ajax . onerror = function ( ) { return c . dataLoadError ( c . _fileIndex ) } , this . _ajax . ontimeout = function ( ) { return c . dataLoadError ( c . _fileIndex ) } , this . _ajax . onprogress = function ( ) { } , this . _ajax . onload = function ( ) { return c . jsonLoadComplete ( c . _fileIndex ) } , this . _ajax . open ( "GET" , this . baseURL + a . url , ! 0 ) , this . _ajax . send ( ) ) : ( this . _xhr . open ( "GET" , this . baseURL + a . url , ! 0 ) , this . _xhr . responseType = "text" , this . _xhr . onload = function ( ) {
} , text : function ( a , b , c , d , e ) { d = d || "rgb(255,255,255)" , e = e || "16px Courier" , this . start ( ) , this . context . font = e , this . renderShadow && ( this . context . fillStyle = "rgb(0,0,0)" , this . context . fillText ( a , b + 1 , c + 1 ) ) , this . context . fillStyle = d , this . context . fillText ( a , b , c ) , this . stop ( ) } , quadTree : function ( a , b ) { b = b || "rgba(255,0,0,0.3)" , this . start ( ) ; var c = a . bounds ; if ( 0 === a . nodes . length ) { this . context . strokeStyle = b , this . context . strokeRect ( c . x , c . y , c . width , c . height ) , this . text ( "size: " + a . objects . length , c . x + 4 , c . y + 16 , "rgb(0,200,0)" , "12px Courier" ) , this . context . strokeStyle = "rgb(0,255,0)" ; for ( var d = 0 ; d < a . objects . length ; d ++ ) this . context . strokeRect ( a . objects [ d ] . x , a . objects [ d ] . y , a . objects [ d ] . width , a . objects [ d ] . height ) } else for ( var d = 0 ; d < a . nodes . length ; d ++ ) this . quadTree ( a . nodes [ d ] ) ; this . stop ( ) } , body : function ( a , c , d ) { a . body && a . body . type === b . Physics . ARCADE && ( this . start ( ) , b . Physics . Arcade . Body . render ( this . context , a . body , c , d ) , this . stop ( ) ) } , bodyInfo : function ( a , c , d , e ) { a . body && a . body . type === b . Physics . ARCADE && ( this . start ( c , d , e , 210 ) , b . Physics . Arcade . Body . renderBodyInfo ( this , a . body ) , this . stop ( ) ) } } , b . Utils . Debug . prototype . constructor = b . Utils . Debug , b . Color = { packPixel : function ( a , c , d , e ) { return b . Device . LITTLE _ENDIAN ? e << 24 | d << 16 | c << 8 | a : a << 24 | c << 16 | d << 8 | e } , unpackPixel : function ( a , c , d , e ) { return ( "undefined" == typeof c || null === c ) && ( c = b . Color . createColor ( ) ) , ( "undefined" == typeof d || null === d ) && ( d = ! 1 ) , ( "undefined" == typeof e || null === e ) && ( e = ! 1 ) , b . Device . LITTLE _ENDIAN ? ( c . a = ( 4278190080 & a ) >>> 24 , c . b = ( 16711680 & a ) >>> 16 , c . g = ( 65280 & a ) >>> 8 , c . r = 255 & a ) : ( c . r = ( 4278190080 & a ) >>> 24 , c . g = ( 16711680 & a ) >>> 16 , c . b = ( 65280 & a ) >>> 8 , c . a = 255 & a ) , c . color = a , c . rgba = "rgba(" + c . r + "," + c . g + "," + c . b + "," + c . a / 255 + ")" , d && b . Color . RGBtoHSL ( c . r , c . g , c . b , c ) , e && b . Color . RGBtoHSV ( c . r , c . g , c . b , c ) , c } , fromRGBA : function ( a , c ) { return c || ( c = b . Color . createColor ( ) ) , c . r = ( 4278190080 & a ) >>> 24 , c . g = ( 16711680 & a ) >>> 16 , c . b = ( 65280 & a ) >>> 8 , c . a = 255 & a , c . rgba = "rgba(" + c . r + "," + c . g + "," + c . b + "," + c . a + ")" , c } , toRGBA : function ( a , b , c , d ) { return a << 24 | b << 16 | c << 8 | d } , RGBtoHSL : function ( a , c , d , e ) { e || ( e = b . Color . createColor ( a , c , d , 1 ) ) , a /= 255 , c /= 255 , d /= 255 ; var f = Math . min ( a , c , d ) , g = Math . max ( a , c , d ) ; if ( e . h = 0 , e . s = 0 , e . l = ( g + f ) / 2 , g !== f ) { var h = g - f ; e . s = e . l > . 5 ? h / ( 2 - g - f ) : h / ( g + f ) , g === a ? e . h = ( c - d ) / h + ( d > c ? 6 : 0 ) : g === c ? e . h = ( d - a ) / h + 2 : g === d && ( e . h = ( a - c ) / h + 4 ) , e . h /= 6 } return e } , HSLtoRGB : function ( a , c , d , e ) { if ( e ? ( e . r = d , e . g = d , e . b = d ) : e = b . Color . createColor ( d , d , d ) , 0 !== c ) { var f = . 5 > d ? d * ( 1 + c ) : d + c - d * c , g = 2 * d - f ; e . r = b . Color . hueToColor ( g , f , a + 1 / 3 ) , e . g = b . Color . hueToColor ( g , f , a ) , e . b = b . Color . hueToColor ( g , f , a - 1 / 3 ) } return e . r = Math . floor ( 255 * e . r | 0 ) , e . g = Math . floor ( 255 * e . g | 0 ) , e . b = Math . floor ( 255 * e . b | 0 ) , b . Color . updateColor ( e ) , e } , RGBtoHSV : function ( a , c , d , e ) { e || ( e = b . Color . createColor ( a , c , d , 255 ) ) , a /= 255 , c /= 255 , d /= 255 ; var f = Math . min ( a , c , d ) , g = Math . max ( a , c , d ) , h = g - f ; return e . h = 0 , e . s = 0 === g ? 0 : h / g , e . v = g , g !== f && ( g === a ? e . h = ( c - d ) / h + ( d > c ? 6 : 0 ) : g === c ? e . h = ( d - a ) / h + 2 : g === d && ( e . h = ( a - c ) / h + 4 ) , e . h /= 6 ) , e } , HSVtoRGB : function ( a , c , d , e ) { "undefined" == typeof e && ( e = b . Color . createColor ( 0 , 0 , 0 , 1 , a , c , 0 , d ) ) ; var f , g , h , i = Math . floor ( 6 * a ) , j = 6 * a - i , k = d * ( 1 - c ) , l = d * ( 1 - j * c ) , m = d * ( 1 - ( 1 - j ) * c ) ; switch ( i % 6 ) { case 0 : f = d , g = m , h = k ; break ; case 1 : f = l , g = d , h = k ; break ; case 2 : f = k , g = d , h = m ; break ; case 3 : f = k , g = l , h = d ; break ; case 4 : f = m , g = k , h = d ; break ; case 5 : f = d , g = k , h = l } return e . r = Math . floor ( 255 * f ) , e . g = Math . floor ( 255 * g ) , e . b = Math . floor ( 255 * h ) , b . Color . updateColor ( e ) , e } , hueToColor : function ( a , b , c ) { return 0 > c && ( c += 1 ) , c > 1 && ( c -= 1 ) , 1 / 6 > c ? a + 6 * ( b - a ) * c : . 5 > c ? b : 2 / 3 > c ? a + ( b - a ) * ( 2 / 3 - c ) * 6 : a } , createColor : function ( a , b , c , d , e , f , g , h ) { var i = { r : a || 0 , g : b || 0 , b : c || 0 , a : d || 1 , h : e || 0 , s : f || 0 , l : g || 0 , v : h || 0 , color : 0 } ; return i . rgba = "rgba(" + i . r + "," + i . g + "," + i . b + "," + i . a + ")" , i } , updateColor : function ( a ) { return a . rgba = "rgba(" + a . r + "," + a . g + "," + a . b + "," + a . a + ")" , a } , getColor32 : function ( a , b , c , d ) { return a << 24 | b << 16 | c << 8 | d } , getColor : function ( a , b , c ) { return a << 16 | b << 8 | c } , RGBtoString : function ( a , c , d , e , f ) { return "undefined" == typeof e && ( e = 255 ) , "undefined" == typeof f && ( f = "#" ) , "#" === f ? "#" + ( ( 1 << 24 ) + ( a << 16 ) + ( c << 8 ) + d ) . toString ( 16 ) . slice ( 1 ) : "0x" + b . Color . componentToHex ( e ) + b . Color . componentToHex ( a ) + b . Color . componentToHex ( c ) + b . Color . componentToHex ( d ) } , hexToRGB : function ( a ) { var c = b . Color . hexToColor ( a ) ; return c ? b . Color . getColor32 ( c . a , c . r , c . g , c . b ) : void 0 } , hexToColor : function ( a , c ) { c
} , b . Particles . Arcade . Emitter . prototype = Object . create ( b . Group . prototype ) , b . Particles . Arcade . Emitter . prototype . constructor = b . Particles . Arcade . Emitter , b . Particles . Arcade . Emitter . prototype . update = function ( ) { if ( this . on ) if ( this . _explode ) { this . _counter = 0 ; do this . emitParticle ( ) , this . _counter ++ ; while ( this . _counter < this . _quantity ) ; this . on = ! 1 } else this . game . time . now >= this . _timer && ( this . emitParticle ( ) , this . _counter ++ , this . _quantity > 0 && this . _counter >= this . _quantity && ( this . on = ! 1 ) , this . _timer = this . game . time . now + this . frequency ) ; for ( var a = this . children . length ; a -- ; ) this . children [ a ] . exists && this . children [ a ] . update ( ) } , b . Particles . Arcade . Emitter . prototype . makeParticles = function ( a , b , c , d , e ) { "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = this . maxParticles ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = ! 1 ) ; var f , g = 0 , h = a , i = b ; for ( this . _frames = b ; c > g ; ) Array . isArray ( a ) && ( h = this . game . rnd . pick ( a ) ) , Array . isArray ( b ) && ( i = this . game . rnd . pick ( b ) ) , f = new this . particleClass ( this . game , 0 , 0 , h , i ) , this . game . physics . arcade . enable ( f , ! 1 ) , d ? ( f . body . checkCollision . any = ! 0 , f . body . checkCollision . none = ! 1 ) : f . body . checkCollision . none = ! 0 , f . body . collideWorldBounds = e , f . exists = ! 1 , f . visible = ! 1 , f . anchor . copyFrom ( this . particleAnchor ) , this . add ( f ) , g ++ ; return this } , b . Particles . Arcade . Emitter . prototype . kill = function ( ) { this . on = ! 1 , this . alive = ! 1 , this . exists = ! 1 } , b . Particles . Arcade . Emitter . prototype . revive = function ( ) { this . alive = ! 0 , this . exists = ! 0 } , b . Particles . Arcade . Emitter . prototype . start = function ( a , b , c , d ) { "undefined" == typeof a && ( a = ! 0 ) , "undefined" == typeof b && ( b = 0 ) , ( "undefined" == typeof c || null === 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 ) ; null !== a && ( this . width > 1 || this . height > 1 ? a . reset ( this . game . rnd . integerInRange ( this . left , this . right ) , this . game . rnd . integerInRange ( this . top , this . bottom ) ) : a . reset ( this . emitX , this . emitY ) , a . angle = 0 , a . lifespan = this . lifespan , this . particleBringToTop ? this . bringToTop ( a ) : this . particleSendToBack && this . sendToBack ( a ) , this . autoScale ? a . setScaleData ( this . scaleData ) : 1 !== this . minParticleScale || 1 !== this . maxParticleScale ? a . scale . set ( this . game . rnd . realInRange ( this . minParticleScale , this . maxParticleScale ) ) : ( this . _minParticleScale . x !== this . _maxParticleScale . x || this . _minParticleScale . y !== this . _maxParticleScale . y ) && a . scale . set ( this . game . rnd . realInRange ( this . _minParticleScale . x , this . _maxParticleScale . x ) , this . game . rnd . realInRange ( this . _minParticleScale . y , this . _maxParticleScale . y ) ) , a . frame = Array . isArray ( "object" === this . _frames ) ? this . game . rnd . pick ( this . _frames ) : this . _frames , this . autoAlpha ? a . setAlphaData ( this . alphaData ) : a . alpha = this . game . rnd . realInRange ( this . minParticleAlpha , this . maxParticleAlpha ) , a . blendMode = this . blendMode , a . body . updateBounds ( ) , a . body . bounce . setTo ( this . bounce . x , this . bounce . y ) , a . body . velocity . x = this . game . rnd . integerInRange ( this . minParticleSpeed . x , this . maxParticleSpeed . x ) , a . body . velocity . y = this . game . rnd . integerInRange ( this . minParticleSpeed . y , this . maxParticleSpeed . y ) , a . body . angularVelocity = this . game . rnd . integerInRange ( this . minRotation , this . maxRotation ) , a . body . gravity . y = this . gravity , a . body . drag . x = this . particleDrag . x , a . body . drag . y = this . particleDrag . y , a . body . angularDrag = this . angularDrag , a . onEmit ( ) ) } , b . Particles . Arcade . Emitter . prototype . setSize = function ( a , b ) { this . 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 . setAlpha = function ( a , c , d , e , f ) { if ( "undefined" == typeof a && ( a = 1 ) , "undefined" == typeof c && ( c = 1 ) , "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = b . Easing . Linear . None ) , "undefined" == typeof f && ( f = ! 1 ) , this . minParticleAlpha = a
a . layers [ f ] . properties && ( n . properties = a . layers [ f ] . properties ) , m . push ( n ) } d . images = m ; for ( var o = [ ] , f = 0 ; f < a . tilesets . length ; f ++ ) { var p = a . tilesets [ f ] , q = new b . Tileset ( p . name , p . firstgid , p . tilewidth , p . tileheight , p . margin , p . spacing , p . properties ) ; p . tileproperties && ( q . tileProperties = p . tileproperties ) , q . rows = Math . round ( ( p . imageheight - p . margin ) / ( p . tileheight + p . spacing ) ) , q . columns = Math . round ( ( p . imagewidth - p . margin ) / ( p . tilewidth + p . spacing ) ) , q . total = q . rows * q . columns , q . rows % 1 !== 0 || q . columns % 1 !== 0 ? console . warn ( "TileSet image dimensions do not match expected dimensions. Tileset width/height must be evenly divisible by Tilemap tile width/height." ) : o . push ( q ) } d . tilesets = o ; for ( var r = { } , s = { } , f = 0 ; f < a . layers . length ; f ++ ) if ( "objectgroup" === a . layers [ f ] . type ) { r [ a . layers [ f ] . name ] = [ ] , s [ a . layers [ f ] . name ] = [ ] ; for ( var t = 0 , l = a . layers [ f ] . objects . length ; l > t ; t ++ ) if ( a . layers [ f ] . objects [ t ] . gid ) { var u = { gid : a . layers [ f ] . objects [ t ] . gid , name : a . layers [ f ] . objects [ t ] . name , x : a . layers [ f ] . objects [ t ] . x , y : a . layers [ f ] . objects [ t ] . y , visible : a . layers [ f ] . objects [ t ] . visible , properties : a . layers [ f ] . objects [ t ] . properties } ; r [ a . layers [ f ] . name ] . push ( u ) } else if ( a . layers [ f ] . objects [ t ] . polyline ) { var u = { name : a . layers [ f ] . objects [ t ] . name , x : a . layers [ f ] . objects [ t ] . x , y : a . layers [ f ] . objects [ t ] . y , width : a . layers [ f ] . objects [ t ] . width , height : a . layers [ f ] . objects [ t ] . height , visible : a . layers [ f ] . objects [ t ] . visible , properties : a . layers [ f ] . objects [ t ] . properties } ; u . polyline = [ ] ; for ( var v = 0 ; v < a . layers [ f ] . objects [ t ] . polyline . length ; v ++ ) u . polyline . push ( [ a . layers [ f ] . objects [ t ] . polyline [ v ] . x , a . layers [ f ] . objects [ t ] . polyline [ v ] . y ] ) ; s [ a . layers [ f ] . name ] . push ( u ) } else if ( a . layers [ f ] . objects [ t ] . polygon ) { var u = c ( a . layers [ f ] . objects [ t ] , [ "name" , "x" , "y" , "visible" , "properties" ] ) ; u . polygon = [ ] ; for ( var v = 0 ; v < a . layers [ f ] . objects [ t ] . polygon . length ; v ++ ) u . polygon . push ( [ a . layers [ f ] . objects [ t ] . polygon [ v ] . x , a . layers [ f ] . objects [ t ] . polygon [ v ] . y ] ) ; r [ a . layers [ f ] . name ] . push ( u ) } else if ( a . layers [ f ] . objects [ t ] . ellipse ) { var u = c ( a . layers [ f ] . objects [ t ] , [ "name" , "ellipse" , "x" , "y" , "width" , "height" , "visible" , "properties" ] ) ; r [ a . layers [ f ] . name ] . push ( u ) } else { var u = c ( a . layers [ f ] . objects [ t ] , [ "name" , "x" , "y" , "width" , "height" , "visible" , "properties" ] ) ; u . rectangle = ! 0 , r [ a . layers [ f ] . name ] . push ( u ) } } d . objects = r , d . collision = s , d . tiles = [ ] ; for ( var f = 0 ; f < d . tilesets . length ; f ++ ) for ( var p = d . tilesets [ f ] , h = p . tileMargin , w = p . tileMargin , x = 0 , y = 0 , z = 0 , k = p . firstgid ; k < p . firstgid + p . total && ( d . tiles [ k ] = [ h , w , f ] , h += p . tileWidth + p . tileSpacing , x ++ , x !== p . total ) && ( y ++ , y !== p . columns || ( h = p . tileMargin , w += p . tileHeight + p . tileSpacing , y = 0 , z ++ , z !== p . rows ) ) ; k ++ ) ; return d } } , b . Tileset = function ( a , b , c , d , e , f , g ) { ( "undefined" == typeof c || 0 >= c ) && ( c = 32 ) , ( "undefined" == typeof d || 0 >= d ) && ( d = 32 ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = 0 ) , this . name = a , this . firstgid = b , this . tileWidth = c , this . tileHeight = d , this . tileMargin = e , this . tileSpacing = f , this . properties = g , this . image = null , this . rows = 0 , this . columns = 0 , this . total = 0 , this . drawCoords = [ ] } , b . Tileset . prototype = { draw : function ( a , b , c , d ) { this . image && this . drawCoords [ d ] && a . drawImage ( this . image , this . drawCoords [ d ] [ 0 ] , this . drawCoords [ d ] [ 1 ] , this . tileWidth , this . tileHeight , b , c , this . tileWidth , this . tileHeight ) } , setImage : function ( a ) { this . image = a , this . rows = Math . round ( ( a . height - this . tileMargin ) / ( this . tileHeight + this . tileSpacing ) ) , this . columns = Math . round ( ( a . width - this . tileMargin ) / ( this . tileWidth + this . tileSpacing ) ) , this . total = this . rows * this . columns , this . drawCoords . length = 0 ; for ( var b = this . tileMargin , c = this . tileMargin , d = this . firstgid , e = 0 ; e < this . rows ; e ++ ) { for ( var f = 0 ; f < this . columns ; f ++ ) this . drawCoords [ d ] = [ b , c ] , b += this . tileWidth + this . tileSpacing , d ++ ; b = this . tileMargin , c += this . tileHeight + this . tileSpacing } } , setSpacing : function ( a , b ) { this . tileMargin = a , this . tileSpacing = b , this . setImage ( this . image ) } } , b . Tileset . prototype . constructor = b . Tileset , "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = b ) , exports . Phaser = b ) : "undefined" != typeof define && define . amd ? define ( "Phaser" , function ( ) { return a . Phaser = b } ( ) ) : a . Phaser = b } . call ( this ) , Phaser . Physics . Ninja = function ( a ) { this . game = a , this . time = this . game . time , this . gravity = . 2 , this . bounds = new Phaser . Rectangle ( 0 , 0 , a . world .
} , Phaser . Physics . Ninja . Circle . prototype . constructor = Phaser . Physics . Ninja . Circle , Phaser . Physics . Ninja . Circle . COL _NONE = 0 , Phaser . Physics . Ninja . Circle . COL _AXIS = 1 , Phaser . Physics . Ninja . Circle . COL _OTHER = 2 , Phaser . Physics . Ninja . Circle . prototype = { integrate : function ( ) { var a = this . pos . x , b = this . pos . y ; this . pos . x += this . body . drag * this . pos . x - this . body . drag * this . oldpos . x , this . pos . y += this . body . drag * this . pos . y - this . body . drag * this . oldpos . y + this . system . gravity * this . body . gravityScale , this . velocity . set ( this . pos . x - a , this . pos . y - b ) , this . oldpos . set ( a , b ) } , reportCollisionVsWorld : function ( a , b , c , d ) { var e , f , g , h , i , j = this . pos , k = this . oldpos , l = j . x - k . x , m = j . y - k . y , n = l * c + m * d , o = n * c , p = n * d , q = l - o , r = m - p ; 0 > n ? ( h = q * this . body . friction , i = r * this . body . friction , e = 1 + this . body . bounce , f = o * e , g = p * e , 1 === c ? this . body . touching . left = ! 0 : - 1 === c && ( this . body . touching . right = ! 0 ) , 1 === d ? this . body . touching . up = ! 0 : - 1 === d && ( this . body . touching . down = ! 0 ) ) : f = g = h = i = 0 , j . x += a , j . y += b , k . x += a + f + h , k . y += b + g + i } , collideWorldBounds : function ( ) { var a = this . system . bounds . x - ( this . pos . x - this . radius ) ; a > 0 ? this . reportCollisionVsWorld ( a , 0 , 1 , 0 , null ) : ( a = this . pos . x + this . radius - this . system . bounds . right , a > 0 && this . reportCollisionVsWorld ( - a , 0 , - 1 , 0 , null ) ) ; var b = this . system . bounds . y - ( this . pos . y - this . radius ) ; b > 0 ? this . reportCollisionVsWorld ( 0 , b , 0 , 1 , null ) : ( b = this . pos . y + this . radius - this . system . bounds . bottom , b > 0 && this . reportCollisionVsWorld ( 0 , - b , 0 , - 1 , null ) ) } , collideCircleVsTile : function ( a ) { var b = this . pos , c = this . radius , d = a , e = d . pos . x , f = d . pos . y , g = d . xw , h = d . yw , i = b . x - e , j = g + c - Math . abs ( i ) ; if ( j > 0 ) { var k = b . y - f , l = h + c - Math . abs ( k ) ; if ( l > 0 ) return this . oH = 0 , this . oV = 0 , - g > i ? this . oH = - 1 : i > g && ( this . oH = 1 ) , - h > k ? this . oV = - 1 : k > h && ( this . oV = 1 ) , this . resolveCircleTile ( j , l , this . oH , this . oV , this , d ) } } , resolveCircleTile : function ( a , b , c , d , e , f ) { return 0 < f . id ? this . circleTileProjections [ f . type ] ( a , b , c , d , e , f ) : ! 1 } , projCircle _Full : function ( a , b , c , d , e , f ) { if ( 0 === c ) { if ( 0 === d ) { if ( b > a ) { var g = e . pos . x - f . pos . x ; return 0 > g ? ( e . reportCollisionVsWorld ( - a , 0 , - 1 , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) : ( e . reportCollisionVsWorld ( a , 0 , 1 , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) } var h = e . pos . y - f . pos . y ; return 0 > h ? ( e . reportCollisionVsWorld ( 0 , - b , 0 , - 1 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) : ( e . reportCollisionVsWorld ( 0 , b , 0 , 1 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) } return e . reportCollisionVsWorld ( 0 , b * d , 0 , d , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS } if ( 0 === d ) return e . reportCollisionVsWorld ( a * c , 0 , c , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var i = f . pos . x + c * f . xw , j = f . pos . y + d * f . yw , g = e . pos . x - i , h = e . pos . y - j , k = Math . sqrt ( g * g + h * h ) , l = e . radius - k ; return l > 0 ? ( 0 === k ? ( g = c / Math . SQRT2 , h = d / Math . SQRT2 ) : ( g /= k , h /= k ) , e . reportCollisionVsWorld ( g * l , h * l , g , h , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER ) : Phaser . Physics . Ninja . Circle . COL _NONE } , projCircle _45Deg : function ( a , b , c , d , e , f ) { var g , h = f . signx , i = f . signy ; if ( 0 === c ) if ( 0 === d ) { var j = f . sx , k = f . sy , l = e . pos . x - j * e . radius - f . pos . x , m = e . pos . y - k * e . radius - f . pos . y , n = l * j + m * k ; if ( 0 > n ) { j *= - n , k *= - n , b > a ? ( g = a , b = 0 , e . pos . x - f . pos . x < 0 && ( a *= - 1 ) ) : ( g = b , a = 0 , e . pos . y - f . pos . y < 0 && ( b *= - 1 ) ) ; var o = Math . sqrt ( j * j + k * k ) ; return o > g ? ( e . reportCollisionVsWorld ( a , b , a / g , b / g , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) : ( e . reportCollisionVsWorld ( j , k , f . sx , f . sy , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER ) } } else { if ( 0 > i * d ) return e . reportCollisionVsWorld ( 0 , b * d , 0 , d , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var j = f . sx , k = f . sy , l = e . pos . x - ( f . pos . x - h * f . xw ) , m = e . pos . y - ( f . pos . y + d * f . yw ) , p = l * - k + m * j ; if ( p * h * i > 0 ) { var q = Math . sqrt ( l * l + m * m ) , r = e . radius - q ; if ( r > 0 ) return l /= q , m /= q , e . reportCollisionVsWorld ( l * r , m * r , l , m , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } else { var n = l * j + m * k , r = e . radius - Math . abs ( n ) ; if ( r > 0 ) return e . reportCollisionVsWorld ( j * r , k * r , j , k , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } } else if ( 0 === d ) { if ( 0 > h * c ) return e . reportCollisionVsWorld ( a * c , 0 , c , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var j = f . sx , k = f . sy , l = e . pos . x - ( f . pos . x + c * f . xw ) , m = e . pos . y - ( f . pos . y - i * f . yw ) , p = l * - k + m * j ; if ( 0 > p * h * i ) { var q = Math . sqrt ( l * l + m * m ) , r = e . radius - q ; if ( r > 0 ) return l /= q , m /= q , e . reportCollisionVsWorld ( l * r , m * r , l , m , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } else { var n = l * j + m * k , r = e . radius - Math . abs ( n ) ; if ( r > 0 ) return e . reportCollisionVsWorld ( j * r , k * r , j , k , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } } else { if ( h * c + i *
} function d ( a , b ) { f . set ( a . vertices [ 0 ] , . 5 * - b . length , - b . radius ) , f . set ( a . vertices [ 1 ] , . 5 * b . length , - b . radius ) , f . set ( a . vertices [ 2 ] , . 5 * b . length , b . radius ) , f . set ( a . vertices [ 3 ] , . 5 * - b . length , b . radius ) } function e ( a , b , c , d ) { for ( var e = R , i = S , j = T , k = U , l = a , m = b . vertices , n = null , o = 0 ; o !== m . length + 1 ; o ++ ) { var p = m [ o % m . length ] , q = m [ ( o + 1 ) % m . length ] ; f . rotate ( e , p , d ) , f . rotate ( i , q , d ) , h ( e , e , c ) , h ( i , i , c ) , g ( j , e , l ) , g ( k , i , l ) ; var r = f . crossLength ( j , k ) ; if ( null === n && ( n = r ) , 0 >= r * n ) return ! 1 ; n = r } return ! 0 } var f = a ( "../math/vec2" ) , g = f . sub , h = f . add , i = f . dot , j = a ( "../utils/Utils" ) , k = a ( "../utils/TupleDictionary" ) , l = a ( "../equations/Equation" ) , m = a ( "../equations/ContactEquation" ) , n = a ( "../equations/FrictionEquation" ) , o = a ( "../shapes/Circle" ) , p = a ( "../shapes/Convex" ) , q = a ( "../shapes/Shape" ) , r = ( a ( "../objects/Body" ) , a ( "../shapes/Rectangle" ) ) ; b . exports = c ; var s = f . fromValues ( 0 , 1 ) , t = f . fromValues ( 0 , 0 ) , u = f . fromValues ( 0 , 0 ) , v = f . fromValues ( 0 , 0 ) , w = f . fromValues ( 0 , 0 ) , x = f . fromValues ( 0 , 0 ) , y = f . fromValues ( 0 , 0 ) , z = f . fromValues ( 0 , 0 ) , A = f . fromValues ( 0 , 0 ) , B = f . fromValues ( 0 , 0 ) , C = f . fromValues ( 0 , 0 ) , D = f . fromValues ( 0 , 0 ) , E = f . fromValues ( 0 , 0 ) , F = f . fromValues ( 0 , 0 ) , G = f . fromValues ( 0 , 0 ) , H = f . fromValues ( 0 , 0 ) , I = f . fromValues ( 0 , 0 ) , J = f . fromValues ( 0 , 0 ) , K = f . fromValues ( 0 , 0 ) , L = [ ] ; c . prototype . collidedLastStep = function ( a , b ) { var c = 0 | a . id , d = 0 | b . id ; return ! ! this . collidingBodiesLastStep . get ( c , d ) } , c . prototype . reset = function ( ) { this . collidingBodiesLastStep . reset ( ) ; for ( var a = 0 ; a !== this . contactEquations . length ; a ++ ) { var b = this . contactEquations [ a ] , c = 0 | b . bodyA . id , d = 0 | b . bodyB . id ; this . collidingBodiesLastStep . set ( c , d , ! 0 ) } if ( this . reuseObjects ) { var e = this . contactEquations , f = this . frictionEquations , g = this . reusableFrictionEquations , h = this . reusableContactEquations ; j . appendArray ( h , e ) , j . appendArray ( g , f ) } this . contactEquations . length = this . frictionEquations . length = 0 } , c . prototype . createContactEquation = function ( a , b , c , d ) { var e = this . reusableContactEquations . length ? this . reusableContactEquations . pop ( ) : new m ( a , b ) ; return e . bodyA = a , e . bodyB = b , e . shapeA = c , e . shapeB = d , e . restitution = this . restitution , e . firstImpact = ! this . collidedLastStep ( a , b ) , e . stiffness = this . stiffness , e . relaxation = this . relaxation , e . needsUpdate = ! 0 , e . enabled = ! 0 , e } , c . prototype . createFrictionEquation = function ( a , b , c , d ) { var e = this . reusableFrictionEquations . length ? this . reusableFrictionEquations . pop ( ) : new n ( a , b ) ; return e . bodyA = a , e . bodyB = b , e . shapeA = c , e . shapeB = d , e . setSlipForce ( this . slipForce ) , e . frictionCoefficient = this . frictionCoefficient , e . relativeVelocity = this . surfaceVelocity , e . enabled = ! 0 , e . needsUpdate = ! 0 , e . stiffness = this . frictionStiffness , e . relaxation = this . frictionRelaxation , e } , c . prototype . createFrictionFromContact = function ( a ) { var b = this . createFrictionEquation ( a . bodyA , a . bodyB , a . shapeA , a . shapeB ) ; return f . copy ( b . contactPointA , a . contactPointA ) , f . copy ( b . contactPointB , a . contactPointB ) , f . rotate90cw ( b . t , a . normalA ) , b . contactEquation = a , b } , c . prototype [ q . LINE | q . CONVEX ] = c . prototype . convexLine = function ( a , b , c , d , e , f , g , h , i ) { return i ? ! 1 : 0 } , c . prototype [ q . LINE | q . RECTANGLE ] = c . prototype . lineRectangle = function ( a , b , c , d , e , f , g , h , i ) { return i ? ! 1 : 0 } ; var M = new r ( 1 , 1 ) , N = f . create ( ) ; c . prototype [ q . CAPSULE | q . CONVEX ] = c . prototype [ q . CAPSULE | q . RECTANGLE ] = c . prototype . convexCapsule = function ( a , b , c , e , g , h , i , j , k ) { var l = N ; f . set ( l , h . length / 2 , 0 ) , f . rotate ( l , l , j ) , f . add ( l , l , i ) ; var m = this . circleConvex ( g , h , l , j , a , b , c , e , k , h . radius ) ; f . set ( l , - h . length / 2 , 0 ) , f . rotate ( l , l , j ) , f . add ( l , l , i ) ; var n = this . circleConvex ( g , h , l , j , a , b , c , e , k , h . radius ) ; if ( k && ( m || n ) ) return ! 0 ; var o = M ; d ( o , h ) ; var p = this . convexConvex ( a , b , c , e , g , o , i , j , k ) ; return p + m + n } , c . prototype [ q . CAPSULE | q . LINE ] = c . prototype . lineCapsule = function ( a , b , c , d , e , f , g , h , i ) { return i ? ! 1 : 0 } ; var O = f . create ( ) , P = f . create ( ) , Q = new r ( 1 , 1 ) ; c . prototype [ q . CAPSULE | q . CAPSULE ] = c . prototype . capsuleCapsule = function ( a , b , c , e , g , h , i , j , k ) { for ( var l = O , m = P , n = 0 , o = 0 ; 2 > o ; o ++ ) { f . set ( l , ( 0 == o ? - 1 : 1 ) * b . length / 2 , 0 ) , f . rotate ( l , l , e ) , f . add ( l , l , c ) ; for ( var p = 0 ; 2 > p ; p ++ ) { f . set ( m , ( 0 == p ? - 1 : 1 ) * h . length / 2 , 0 ) , f . rotate ( m , m , j ) , f . add ( m , m , i ) ; var q = this . circleCircle ( a , b , l , e , g , h , m , j , k , b . radius , h . radius ) ; if ( k && q ) return ! 0 ; n += q } } var r = Q ; d ( r , b ) ; var s = this . convexCapsule ( a , r , c , e , g , h , i , j , k ) ; if ( k && s ) return ! 0 ; n += s , d ( r , h ) ; var t = this . convexCapsule ( g , r , i , j , a , b , c , e , k ) ; return k && t ? ! 0 : n += t } , c . prototy
} var d = a ( "./Equation" ) , e = a ( "../math/vec2" ) ; b . exports = c , c . prototype = new d , c . prototype . constructor = c , c . prototype . computeB = function ( a , b , c ) { var d = this . bodyA , f = this . bodyB , g = this . contactPointA , h = this . contactPointB , i = d . position , j = f . position , k = this . penetrationVec , l = this . normalA , m = this . G , n = e . crossLength ( g , l ) , o = e . crossLength ( h , l ) ; m [ 0 ] = - l [ 0 ] , m [ 1 ] = - l [ 1 ] , m [ 2 ] = - n , m [ 3 ] = l [ 0 ] , m [ 4 ] = l [ 1 ] , m [ 5 ] = o , e . add ( k , j , h ) , e . sub ( k , k , i ) , e . sub ( k , k , g ) ; var p , q ; this . firstImpact && 0 !== this . restitution ? ( q = 0 , p = 1 / b * ( 1 + this . restitution ) * this . computeGW ( ) ) : ( q = e . dot ( l , k ) , p = this . computeGW ( ) ) ; var r = this . computeGiMf ( ) , s = - q * a - p * b - c * r ; return s } } , { "../math/vec2" : 30 , "./Equation" : 22 } ] , 22 : [ function ( a , b ) { function c ( a , b , d , e ) { this . minForce = "undefined" == typeof d ? - Number . MAX _VALUE : d , this . maxForce = "undefined" == typeof e ? Number . MAX _VALUE : e , this . bodyA = a , this . bodyB = b , this . stiffness = c . DEFAULT _STIFFNESS , this . relaxation = c . DEFAULT _RELAXATION , this . G = new h . ARRAY _TYPE ( 6 ) ; for ( var f = 0 ; 6 > f ; f ++ ) this . G [ f ] = 0 ; this . offset = 0 , this . a = 0 , this . b = 0 , this . epsilon = 0 , this . timeStep = 1 / 60 , this . needsUpdate = ! 0 , this . multiplier = 0 , this . relativeVelocity = 0 , this . enabled = ! 0 } function d ( a , b , c , d , e ) { return a [ 0 ] * b [ 0 ] + a [ 1 ] * b [ 1 ] + a [ 2 ] * c + a [ 3 ] * d [ 0 ] + a [ 4 ] * d [ 1 ] + a [ 5 ] * e } function e ( a ) { return a . sleepState === i . SLEEPING ? 0 : a . invMass } function f ( a ) { return a . sleepState === i . SLEEPING ? 0 : a . invInertia } b . exports = c ; var g = a ( "../math/vec2" ) , h = a ( "../utils/Utils" ) , i = a ( "../objects/Body" ) ; c . prototype . constructor = c , c . DEFAULT _STIFFNESS = 1e6 , c . DEFAULT _RELAXATION = 4 , c . prototype . update = function ( ) { var a = this . stiffness , b = this . relaxation , c = this . timeStep ; this . a = 4 / ( c * ( 1 + 4 * b ) ) , this . b = 4 * b / ( 1 + 4 * b ) , this . epsilon = 4 / ( c * c * a * ( 1 + 4 * b ) ) , this . needsUpdate = ! 1 } , c . prototype . computeB = function ( a , b , c ) { var d = this . computeGW ( ) , e = this . computeGq ( ) , f = this . computeGiMf ( ) ; return - e * a - d * b - f * c } ; var j = g . create ( ) , k = g . create ( ) ; c . prototype . computeGq = function ( ) { var a = this . G , b = this . bodyA , c = this . bodyB , e = ( b . position , c . position , b . angle ) , f = c . angle ; return d ( a , j , e , k , f ) + this . offset } , c . prototype . computeGW = function ( ) { var a = this . G , b = this . bodyA , c = this . bodyB , e = b . velocity , f = c . velocity , g = b . angularVelocity , h = c . angularVelocity ; return d ( a , e , g , f , h ) + this . relativeVelocity } , c . prototype . computeGWlambda = function ( ) { var a = this . G , b = this . bodyA , c = this . bodyB , e = b . vlambda , f = c . vlambda , g = b . wlambda , h = c . wlambda ; return d ( a , e , g , f , h ) } ; var l = g . create ( ) , m = g . create ( ) ; c . prototype . computeGiMf = function ( ) { var a = this . bodyA , b = this . bodyB , c = a . force , h = a . angularForce , i = b . force , j = b . angularForce , k = e ( a ) , n = e ( b ) , o = f ( a ) , p = f ( b ) , q = this . G ; return g . scale ( l , c , k ) , g . scale ( m , i , n ) , d ( q , l , h * o , m , j * p ) } , c . prototype . computeGiMGt = function ( ) { var a = this . bodyA , b = this . bodyB , c = e ( a ) , d = e ( b ) , g = f ( a ) , h = f ( b ) , i = this . G ; return i [ 0 ] * i [ 0 ] * c + i [ 1 ] * i [ 1 ] * c + i [ 2 ] * i [ 2 ] * g + i [ 3 ] * i [ 3 ] * d + i [ 4 ] * i [ 4 ] * d + i [ 5 ] * i [ 5 ] * h } ; { var n = g . create ( ) , o = g . create ( ) , p = g . create ( ) ; g . create ( ) , g . create ( ) , g . create ( ) } c . prototype . addToWlambda = function ( a ) { var b = this . bodyA , c = this . bodyB , d = n , h = o , i = p , j = e ( b ) , k = e ( c ) , l = f ( b ) , m = f ( c ) , q = this . G ; h [ 0 ] = q [ 0 ] , h [ 1 ] = q [ 1 ] , i [ 0 ] = q [ 3 ] , i [ 1 ] = q [ 4 ] , g . scale ( d , h , j * a ) , g . add ( b . vlambda , b . vlambda , d ) , b . wlambda += l * q [ 2 ] * a , g . scale ( d , i , k * a ) , g . add ( c . vlambda , c . vlambda , d ) , c . wlambda += m * q [ 5 ] * a } , c . prototype . computeInvC = function ( a ) { return 1 / ( this . computeGiMGt ( ) + a ) } } , { "../math/vec2" : 30 , "../objects/Body" : 31 , "../utils/Utils" : 47 } ] , 23 : [ function ( a , b ) { function c ( a , b , c ) { e . call ( this , a , b , - c , c ) , this . contactPointA = d . create ( ) , this . contactPointB = d . create ( ) , this . t = d . create ( ) , this . contactEquation = null , this . shapeA = null , this . shapeB = null , this . frictionCoefficient = . 3 } { var d = a ( "../math/vec2" ) , e = a ( "./Equation" ) ; a ( "../utils/Utils" ) } b . exports = c , c . prototype = new e , c . prototype . constructor = c , c . prototype . setSlipForce = function ( a ) { this . maxForce = a , this . minForce = - a } , c . prototype . getSlipForce = function ( ) { return this . maxForce } , c . prototype . computeB = function ( a , b , c ) { var e = ( this . bodyA , this . bodyB , this . contactPointA ) , f = this . contactPointB , g = this . t , h = this . G ; h [ 0 ] = - g [ 0 ] , h [ 1 ] = - g [ 1 ] , h [ 2 ] = - d . crossLength ( e , g ) , h [ 3 ] = g [ 0 ] , h [ 4 ] = g [ 1 ] , h [ 5 ] = d . crossLength ( f , g ) ; var i = this . computeGW ( ) , j = this . computeGiMf ( ) , k = - i * b - c * j ; return k } } , { "../math/vec2" : 30 , "../utils/Utils" : 47 , "./Equation" : 22 } ] , 24 : [ function ( a , b ) { function c ( a , b , c ) { c = c || { } , d . call ( this , a , b , - Number . MAX _VALUE , Number . MAX _VALUE ) , this . angle = c . ang
b . push ( e . bodyA , e . bodyB ) } return c . reset ( ) , b } , d . prototype . set = function ( a , b , c , e ) { d . call ( this , a , b , c , e ) } } , { "./TupleDictionary" : 46 , "./Utils" : 47 } ] , 46 : [ function ( a , b ) { function c ( ) { this . data = [ ] , this . keys = [ ] } var d = a ( "./Utils" ) ; b . exports = c , c . prototype . getKey = function ( a , b ) { return a = 0 | a , b = 0 | b , ( 0 | a ) === ( 0 | b ) ? - 1 : 0 | ( ( 0 | a ) > ( 0 | b ) ? a << 16 | 65535 & b : b << 16 | 65535 & a ) } , c . prototype . getByKey = function ( a ) { return a = 0 | a , this . data [ a ] } , c . prototype . get = function ( a , b ) { a = 0 | a , b = 0 | b ; var c = 0 | this . getKey ( a , b ) ; return this . data [ c ] } , c . prototype . set = function ( a , b , c ) { if ( ! c ) throw new Error ( "No data!" ) ; a = 0 | a , b = 0 | b ; var d = 0 | this . getKey ( a , b ) ; return this . get ( a , b ) || this . keys . push ( d ) , this . data [ d ] = c , d } , c . prototype . reset = function ( ) { for ( var a = this . data , b = this . keys , c = 0 | b . length ; c -- ; ) { var d = 0 | b [ c ] ; a [ d ] = void 0 } b . length = 0 } , c . prototype . copy = function ( a ) { this . reset ( ) , d . appendArray ( this . keys , a . keys ) ; for ( var b = 0 | a . keys . length ; b -- ; ) { var c = 0 | a . keys [ b ] ; this . data [ c ] = a . data [ c ] } } } , { "./Utils" : 47 } ] , 47 : [ function ( a , b ) { function c ( ) { } b . exports = c , c . appendArray = function ( a , b ) { if ( b . length < 15e4 ) a . push . apply ( a , b ) ; else for ( var c = 0 , d = b . length ; c !== d ; ++ c ) a . push ( b [ c ] ) } , c . splice = function ( a , b , c ) { c = c || 1 ; for ( var d = b , e = a . length - c ; e > d ; d ++ ) a [ d ] = a [ d + c ] ; a . length = e } , c . ARRAY _TYPE = window . Float32Array || Array , c . extend = function ( a , b ) { for ( var c in b ) a [ c ] = b [ c ] } , c . defaults = function ( a , b ) { a = a || { } ; for ( var c in b ) c in a || ( a [ c ] = b [ c ] ) ; return a } } , { } ] , 48 : [ function ( a , b ) { function c ( ) { this . equations = [ ] , this . bodies = [ ] } var d = a ( "../objects/Body" ) ; b . exports = c , c . prototype . reset = function ( ) { this . equations . length = this . bodies . length = 0 } ; var e = [ ] ; c . prototype . getBodies = function ( a ) { var b = a || [ ] , c = this . equations ; e . length = 0 ; for ( var d = 0 ; d !== c . length ; d ++ ) { var f = c [ d ] ; - 1 === e . indexOf ( f . bodyA . id ) && ( b . push ( f . bodyA ) , e . push ( f . bodyA . id ) ) , - 1 === e . indexOf ( f . bodyB . id ) && ( b . push ( f . bodyB ) , e . push ( f . bodyB . id ) ) } return b } , c . prototype . wantsToSleep = function ( ) { for ( var a = 0 ; a < this . bodies . length ; a ++ ) { var b = this . bodies [ a ] ; if ( b . motionState === d . DYNAMIC && ! b . wantsToSleep ) return ! 1 } return ! 0 } , c . prototype . sleep = function ( ) { for ( var a = 0 ; a < this . bodies . length ; a ++ ) { var b = this . bodies [ a ] ; b . sleep ( ) } return ! 0 } } , { "../objects/Body" : 31 } ] , 49 : [ function ( a , b ) { function c ( ) { this . _nodePool = [ ] , this . _islandPool = [ ] , this . equations = [ ] , this . islands = [ ] , this . nodes = [ ] , this . queue = [ ] } var d = ( a ( "../math/vec2" ) , a ( "./Island" ) ) , e = a ( "./IslandNode" ) , f = a ( "../objects/Body" ) ; b . exports = c , c . getUnvisitedNode = function ( a ) { for ( var b = a . length , c = 0 ; c !== b ; c ++ ) { var d = a [ c ] ; if ( ! d . visited && d . body . motionState === f . DYNAMIC ) return d } return ! 1 } , c . prototype . visit = function ( a , b , c ) { b . push ( a . body ) ; for ( var d = a . equations . length , e = 0 ; e !== d ; e ++ ) { var f = a . equations [ e ] ; - 1 === c . indexOf ( f ) && c . push ( f ) } } , c . prototype . bfs = function ( a , b , d ) { var e = this . queue ; for ( e . length = 0 , e . push ( a ) , a . visited = ! 0 , this . visit ( a , b , d ) ; e . length ; ) for ( var g , h = e . pop ( ) ; g = c . getUnvisitedNode ( h . neighbors ) ; ) g . visited = ! 0 , this . visit ( g , b , d ) , g . body . motionState === f . DYNAMIC && e . push ( g ) } , c . prototype . split = function ( a ) { for ( var b = a . bodies , f = this . nodes , g = this . equations ; f . length ; ) this . _nodePool . push ( f . pop ( ) ) ; for ( var h = 0 ; h !== b . length ; h ++ ) if ( this . _nodePool . length ) { var i = this . _nodePool . pop ( ) ; i . reset ( ) , i . body = b [ h ] , f . push ( i ) } else f . push ( new e ( b [ h ] ) ) ; for ( var j = 0 ; j !== g . length ; j ++ ) { var k = g [ j ] , h = b . indexOf ( k . bodyA ) , l = b . indexOf ( k . bodyB ) , m = f [ h ] , n = f [ l ] ; m . neighbors . push ( n ) , n . neighbors . push ( m ) , m . equations . push ( k ) , n . equations . push ( k ) } for ( var o = this . islands ; o . length ; ) { var p = o . pop ( ) ; p . reset ( ) , this . _islandPool . push ( p ) } for ( var q ; q = c . getUnvisitedNode ( f ) ; ) { var p = this . _islandPool . length ? this . _islandPool . pop ( ) : new d ; this . bfs ( q , p . bodies , p . equations ) , o . push ( p ) } return o } } , { "../math/vec2" : 30 , "../objects/Body" : 31 , "./Island" : 48 , "./IslandNode" : 50 } ] , 50 : [ function ( a , b ) { function c ( a ) { this . body = a , this . neighbors = [ ] , this . equations = [ ] , this . visited = ! 1 } b . exports = c , c . prototype . reset = function ( ) { this . equations . length = 0 , this . neighbors . length = 0 , this . visited = ! 1 , this . body = null } } , { } ] , 51 : [ function ( a , b ) { function c ( a ) { r . apply ( this ) , a = a || { } , this . springs = [ ] , this . bodies = [ ] , this . disabledBodyCollisionPairs = [ ] , this . solver = a . solver || new g , this . narrowphase = new G ( this ) , this . islandManager = new J , this . gravity = j . fromValues ( 0 , - 9.78 ) , a . gravity && j . copy ( this . gravity , a . gravity ) , this . fricti
} , pause : function ( ) { this . paused = ! 0 } , resume : function ( ) { this . paused = ! 1 } , update : function ( ) { this . paused || this . world . step ( this . useElapsedTime ? this . game . time . physicsElapsed : this . frameRate ) } , clear : function ( ) { this . world . clear ( ) , this . world . off ( "beginContact" , this . beginContactHandler , this ) , this . world . off ( "endContact" , this . endContactHandler , this ) , this . postBroadphaseCallback = null , this . callbackContext = null , this . impactCallback = null , this . collisionGroups = [ ] , this . _toRemove = [ ] , this . _collisionGroupID = 2 , this . boundsCollidesWith = [ ] } , destroy : function ( ) { this . clear ( ) , this . game = null } , addBody : function ( a ) { return a . data . world ? ! 1 : ( this . world . addBody ( a . data ) , this . onBodyAdded . dispatch ( a ) , ! 0 ) } , removeBody : function ( a ) { return a . data . world == this . world && ( this . world . removeBody ( a . data ) , this . onBodyRemoved . dispatch ( a ) ) , a } , addSpring : function ( a ) { return this . world . addSpring ( a ) , this . onSpringAdded . dispatch ( a ) , a } , removeSpring : function ( a ) { return this . world . removeSpring ( a ) , this . onSpringRemoved . dispatch ( a ) , a } , createDistanceConstraint : function ( a , b , c , d ) { return a = this . getBody ( a ) , b = this . getBody ( b ) , a && b ? this . addConstraint ( new Phaser . Physics . P2 . DistanceConstraint ( this , a , b , c , d ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , createGearConstraint : function ( a , b , c , d ) { return a = this . getBody ( a ) , b = this . getBody ( b ) , a && b ? this . addConstraint ( new Phaser . Physics . P2 . GearConstraint ( this , a , b , c , d ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , createRevoluteConstraint : function ( a , b , c , d , e ) { return a = this . getBody ( a ) , c = this . getBody ( c ) , a && c ? this . addConstraint ( new Phaser . Physics . P2 . RevoluteConstraint ( this , a , b , c , d , e ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , createLockConstraint : function ( a , b , c , d , e ) { return a = this . getBody ( a ) , b = this . getBody ( b ) , a && b ? this . addConstraint ( new Phaser . Physics . P2 . LockConstraint ( this , a , b , c , d , e ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , createPrismaticConstraint : function ( a , b , c , d , e , f , g ) { return a = this . getBody ( a ) , b = this . getBody ( b ) , a && b ? this . addConstraint ( new Phaser . Physics . P2 . PrismaticConstraint ( this , a , b , c , d , e , f , g ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , addConstraint : function ( a ) { return this . world . addConstraint ( a ) , this . onConstraintAdded . dispatch ( a ) , a } , removeConstraint : function ( a ) { return this . world . removeConstraint ( a ) , this . onConstraintRemoved . dispatch ( a ) , a } , addContactMaterial : function ( a ) { return this . world . addContactMaterial ( a ) , this . onContactMaterialAdded . dispatch ( a ) , a } , removeContactMaterial : function ( a ) { return this . world . removeContactMaterial ( a ) , this . onContactMaterialRemoved . dispatch ( a ) , a } , getContactMaterial : function ( a , b ) { return this . world . getContactMaterial ( a , b ) } , setMaterial : function ( a , b ) { for ( var c = b . length ; c -- ; ) b [ c ] . setMaterial ( a ) } , createMaterial : function ( a , b ) { a = a || "" ; var c = new Phaser . Physics . P2 . Material ( a ) ; return this . materials . push ( c ) , "undefined" != typeof b && b . setMaterial ( c ) , c } , createContactMaterial : function ( a , b , c ) { "undefined" == typeof a && ( a = this . createMaterial ( ) ) , "undefined" == typeof b && ( b = this . createMaterial ( ) ) ; var d = new Phaser . Physics . P2 . ContactMaterial ( a , b , c ) ; return this . addContactMaterial ( d ) } , getBodies : function ( ) { for ( var a = [ ] , b = this . world . bodies . length ; b -- ; ) a . push ( this . world . bodies [ b ] . parent ) ; return a } , getBody : function ( a ) { return a instanceof p2 . Body ? a : a instanceof Phaser . Physics . P2 . Body ? a . data : a . body && a . body . type === Phaser . Physics . P2JS ? a . body . data : null } , getSprings : function ( ) { for ( var a = [ ] , b = this . world . springs . length ; b -- ; ) a . push ( this . world . springs [ b ] . parent ) ; return a } , getConstraints : function ( ) { for ( var a = [ ] , b = this . world . constraints . length ; b -- ; ) a . push ( this . world . constraints [ b ] . parent ) ; return a } , hitTest : function ( a , b , c , d ) { "undefined" == typeof b && ( b = this . world . bodies ) , "undefined" == typeof c && ( c = 5 ) , "undefined" == typeof d && ( d = ! 1 ) ; for ( var e = [ this . pxmi ( a . x ) , this . pxmi ( a . y ) ] , f = [ ] , g = b . length ; g -- ; ) b [ g ] instanceof Phaser . Physics . P2 . Body && ( ! d || b [ g ] . data . motionState !== p2 . Body . STATIC ) ? f . push ( b [ g ] . data ) : b [ g ] instanceof p2 . Body && b [ g ] . parent && ( ! d || b [ g ] . motionState !== p2 . Body . STATIC ) ? f . push ( b [ g ] ) : b [ g ] instanceof Phaser . Sprite && b [ g ] . hasOwnProperty ( "body" ) &
var i = { localAnchorA : e , localAnchorB : f , localAxisA : g , maxForce : h , disableRotationalLock : ! d } ; p2 . PrismaticConstraint . call ( this , b , c , i ) } , Phaser . Physics . P2 . PrismaticConstraint . prototype = Object . create ( p2 . PrismaticConstraint . prototype ) , Phaser . Physics . P2 . PrismaticConstraint . prototype . constructor = Phaser . Physics . P2 . PrismaticConstraint , Phaser . Physics . P2 . RevoluteConstraint = function ( a , b , c , d , e , f ) { "undefined" == typeof f && ( f = Number . MAX _VALUE ) , this . game = a . game , this . world = a , c = [ a . pxmi ( c [ 0 ] ) , a . pxmi ( c [ 1 ] ) ] , e = [ a . pxmi ( e [ 0 ] ) , a . pxmi ( e [ 1 ] ) ] , p2 . RevoluteConstraint . call ( this , b , c , d , e , { maxForce : f } ) } , Phaser . Physics . P2 . RevoluteConstraint . prototype = Object . create ( p2 . RevoluteConstraint . prototype ) , Phaser . Physics . P2 . RevoluteConstraint . prototype . constructor = Phaser . Physics . P2 . RevoluteConstraint ;
2014-02-28 09:30:53 +00:00
//# sourceMappingURL=phaser.map