2014-11-08 19:26:34 +00:00
/* Phaser (NP) v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */
2014-11-15 20:04:24 +00:00
( function ( ) { var a = this , b = b || { } ; b . WEBGL _RENDERER = 0 , b . CANVAS _RENDERER = 1 , b . VERSION = "v2.1.0" , b . blendModes = { NORMAL : 0 , ADD : 1 , MULTIPLY : 2 , SCREEN : 3 , OVERLAY : 4 , DARKEN : 5 , LIGHTEN : 6 , COLOR _DODGE : 7 , COLOR _BURN : 8 , HARD _LIGHT : 9 , SOFT _LIGHT : 10 , DIFFERENCE : 11 , EXCLUSION : 12 , HUE : 13 , SATURATION : 14 , COLOR : 15 , LUMINOSITY : 16 } , b . scaleModes = { DEFAULT : 0 , LINEAR : 0 , NEAREST : 1 } , b . _UID = 0 , "undefined" != typeof Float32Array ? ( b . Float32Array = Float32Array , b . Uint16Array = Uint16Array ) : ( b . Float32Array = Array , b . Uint16Array = Array ) , b . INTERACTION _FREQUENCY = 30 , b . AUTO _PREVENT _DEFAULT = ! 0 , b . PI _2 = 2 * Math . PI , b . RAD _TO _DEG = 180 / Math . PI , b . DEG _TO _RAD = Math . PI / 180 , b . RETINA _PREFIX = "@2x" , b . dontSayHello = ! 1 , b . defaultRenderOptions = { view : null , transparent : ! 1 , antialias : ! 1 , preserveDrawingBuffer : ! 1 , resolution : 1 , clearBeforeRender : ! 0 , autoResize : ! 1 } , b . sayHello = function ( a ) { if ( ! b . dontSayHello ) { if ( navigator . userAgent . toLowerCase ( ) . indexOf ( "chrome" ) > - 1 ) { var c = [ "%c %c %c Pixi.js " + b . VERSION + " - " + a + " %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ " , "background: #ff66a5" , "background: #ff66a5" , "color: #ff66a5; background: #030307;" , "background: #ff66a5" , "background: #ffc3dc" , "background: #ff66a5" , "color: #ff2424; background: #fff" , "color: #ff2424; background: #fff" , "color: #ff2424; background: #fff" ] ; console . log . apply ( console , c ) } else window . console && console . log ( "Pixi.js " + b . VERSION + " - http://www.pixijs.com/" ) ; b . dontSayHello = ! 0 } } , b . Polygon = function ( a ) { if ( a instanceof Array || ( a = Array . prototype . slice . call ( arguments ) ) , a [ 0 ] instanceof b . Point ) { for ( var c = [ ] , d = 0 , e = a . length ; e > d ; d ++ ) c . push ( a [ d ] . x , a [ d ] . y ) ; a = c } this . closed = ! 0 , this . points = a } , b . Polygon . prototype . clone = function ( ) { var a = this . points . slice ( ) ; return new b . Polygon ( a ) } , b . Polygon . prototype . contains = function ( a , b ) { for ( var c = ! 1 , d = this . points . length / 2 , e = 0 , f = d - 1 ; d > e ; f = e ++ ) { var g = this . points [ 2 * e ] , h = this . points [ 2 * e + 1 ] , i = this . points [ 2 * f ] , j = this . points [ 2 * f + 1 ] , k = h > b != j > b && ( i - g ) * ( b - h ) / ( j - h ) + g > a ; k && ( c = ! c ) } return c } , b . Polygon . prototype . constructor = b . Polygon , 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 b . Float32Array ( 9 ) ) ; var c = this . array ; return a ? ( c [ 0 ] = this . a , c [ 1 ] = this . b , c [ 2 ] = 0 , c [ 3 ] = this . c , c [ 4 ] = this . d , c [ 5 ] = 0 , c [ 6 ] = this . tx , c [ 7 ] = this . ty , c [ 8 ] = 1 ) : ( c [ 0 ] = this . a , c [ 1 ] = this . c , c [ 2 ] = this . tx , c [ 3 ] = this . b , c [ 4 ] = this . d , c [ 5 ] = this . ty , c [ 6 ] = 0 , c [ 7 ] = 0 , c [ 8 ] = 1 ) , c } , b . Matrix . prototype . apply = function ( a , c ) { return c = c || new b . Point , c . x = this . a * a . x + this . c * a . y + this . tx , c . y = this . b * a . x + this . d * a . y + this . ty , c } , b . Matrix . prototype . applyInverse = function ( a , c ) { c = c || new b . Point ; var d = 1 / ( this . a * this . d + this . c * - this . b ) ; return c . x = this . d * d * a . x + - this . c * d * a . y + ( this . ty * this . c - this . tx * this . d ) * d , c . y = this . a * d * a . y + - this . b * d * a . x + ( - this . ty * this . a + this . tx * this . b ) * d , c } , b . Matrix . prototype . translate = function ( a , b ) { return this . tx += a , this . ty += b , this } , b . Matrix . prototype . scale = function ( a , b ) { return this . a *= a , this . d *= b , this . c *= a , this . b *= b , this . tx *= a , this . ty *= b , this } , b . Matrix . prototype . rotate = function ( a ) { var b = Math . cos ( a ) , c = Math . sin ( a ) , d = this . a , e = this . c , f = this . tx ; return this . a = d * b - this . b * c , this . b = d * c + this . b * b , this . c = e * b - this . d * c , this . d = e * c + this . d * b , this . tx = f * b - this . ty * c , this . ty = f * c + this . ty * b , this } , b . Matrix . prototype . append = function ( a ) { var b = this . a , c = this . b , d = this . c , e = this . d ; return this . a = a . a * b + a . b * d , this . b = a . a * c + a . b * e , this . c = a . c * b + a . d * d , this . d = a . c * c + a . d * e , this . tx = a . tx * b + a . ty * d + this . tx , this . ty = a . tx * c + a . ty * e + this . ty , this } , b . Matrix . prototype . identity = function ( ) { return this . a = 1 , this . b = 0 , this . c = 0 , this . d = 1 , this . tx = 0 , this . ty = 0 , this } , b . identityMatrix = new b . Matrix , 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 . RoundedRectangle = function
} this . _listeners = this . _listeners || { } ; var d = this ; return c . _originalHandler = b , this . on ( a , c ) } , a . off = a . removeEventListener = function ( a , b ) { if ( this . _listeners = this . _listeners || { } , ! this . _listeners [ a ] ) return this ; for ( var c = this . _listeners [ a ] , d = b ? c . length : 0 ; d -- > 0 ; ) ( c [ d ] === b || c [ d ] . _originalHandler === b ) && c . splice ( d , 1 ) ; return 0 === c . length && delete this . _listeners [ a ] , this } , a . removeAllListeners = function ( a ) { return this . _listeners = this . _listeners || { } , this . _listeners [ a ] ? ( delete this . _listeners [ a ] , this ) : this } } } , b . Event = function ( a , b , c ) { this . _ _isEventObject = ! 0 , this . stopped = ! 1 , this . stoppedImmediate = ! 1 , this . target = a , this . type = b , this . data = c , this . content = c , this . timeStamp = Date . now ( ) } , b . Event . prototype . stopPropagation = function ( ) { this . stopped = ! 0 } , b . Event . prototype . stopImmediatePropagation = function ( ) { this . stoppedImmediate = ! 0 } , b . PolyK = { } , b . PolyK . Triangulate = function ( a ) { var c = ! 0 , d = a . length >> 1 ; if ( 3 > d ) return [ ] ; for ( var e = [ ] , f = [ ] , g = 0 ; d > g ; g ++ ) f . push ( g ) ; g = 0 ; for ( var h = d ; h > 3 ; ) { var i = f [ ( g + 0 ) % h ] , j = f [ ( g + 1 ) % h ] , k = f [ ( g + 2 ) % h ] , l = a [ 2 * i ] , m = a [ 2 * i + 1 ] , n = a [ 2 * j ] , o = a [ 2 * j + 1 ] , p = a [ 2 * k ] , q = a [ 2 * k + 1 ] , r = ! 1 ; if ( b . PolyK . _convex ( l , m , n , o , p , q , c ) ) { r = ! 0 ; for ( var s = 0 ; h > s ; s ++ ) { var t = f [ s ] ; if ( t !== i && t !== j && t !== k && b . PolyK . _PointInTriangle ( a [ 2 * t ] , a [ 2 * t + 1 ] , l , m , n , o , p , q ) ) { r = ! 1 ; break } } } if ( r ) e . push ( i , j , k ) , f . splice ( ( g + 1 ) % h , 1 ) , h -- , g = 0 ; else if ( g ++ > 3 * h ) { if ( ! c ) return null ; for ( e = [ ] , f = [ ] , g = 0 ; d > g ; g ++ ) f . push ( g ) ; g = 0 , h = d , c = ! 1 } } return e . push ( f [ 0 ] , f [ 1 ] , f [ 2 ] ) , e } , b . PolyK . _PointInTriangle = function ( a , b , c , d , e , f , g , h ) { var i = g - c , j = h - d , k = e - c , l = f - d , m = a - c , n = b - d , o = i * i + j * j , p = i * k + j * l , q = i * m + j * n , r = k * k + l * l , s = k * m + l * n , t = 1 / ( o * r - p * p ) , u = ( r * q - p * s ) * t , v = ( o * s - p * q ) * t ; return u >= 0 && v >= 0 && 1 > u + v } , b . PolyK . _convex = function ( a , b , c , d , e , f , g ) { return ( b - d ) * ( e - c ) + ( c - a ) * ( f - d ) >= 0 === g } , b . initDefaultShaders = function ( ) { } , b . CompileVertexShader = function ( a , c ) { return b . _CompileShader ( a , c , a . VERTEX _SHADER ) } , b . CompileFragmentShader = function ( a , c ) { return b . _CompileShader ( a , c , a . FRAGMENT _SHADER ) } , b . _CompileShader = function ( a , b , c ) { var d = b . join ( "\n" ) , e = a . createShader ( c ) ; return a . shaderSource ( e , d ) , a . compileShader ( e ) , a . getShaderParameter ( e , a . COMPILE _STATUS ) ? e : ( window . console . log ( a . getShaderInfoLog ( e ) ) , null ) } , b . compileProgram = function ( a , c , d ) { var e = b . CompileFragmentShader ( a , d ) , f = b . CompileVertexShader ( a , c ) , g = a . createProgram ( ) ; return a . attachShader ( g , f ) , a . attachShader ( g , e ) , a . linkProgram ( g ) , a . getProgramParameter ( g , a . LINK _STATUS ) || window . console . log ( "Could not initialise shaders" ) , g } , b . PixiShader = function ( a ) { this . _UID = b . _UID ++ , this . gl = a , this . program = null , this . fragmentSrc = [ "precision lowp float;" , "varying vec2 vTextureCoord;" , "varying vec4 vColor;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;" , "}" ] , this . textureCount = 0 , this . firstRun = ! 0 , this . dirty = ! 0 , this . attributes = [ ] , this . init ( ) } , b . PixiShader . prototype . constructor = b . PixiShader , b . PixiShader . prototype . init = function ( ) { var a = this . gl , c = b . compileProgram ( a , this . vertexSrc || b . PixiShader . defaultVertexSrc , this . fragmentSrc ) ; a . useProgram ( c ) , this . uSampler = a . getUniformLocation ( c , "uSampler" ) , this . projectionVector = a . getUniformLocation ( c , "projectionVector" ) , this . offsetVector = a . getUniformLocation ( c , "offsetVector" ) , this . dimensions = a . getUniformLocation ( c , "dimensions" ) , this . aVertexPosition = a . getAttribLocation ( c , "aVertexPosition" ) , this . aTextureCoord = a . getAttribLocation ( c , "aTextureCoord" ) , this . colorAttribute = a . getAttribLocation ( c , "aColor" ) , - 1 === this . colorAttribute && ( this . colorAttribute = 2 ) , this . attributes = [ this . aVertexPosition , this . aTextureCoord , this . colorAttribute ] ; for ( var d in this . uniforms ) this . uniforms [ d ] . uniformLocation = a . getUniformLocation ( c , d ) ; this . initUniforms ( ) , this . program = c } , b . PixiShader . prototype . initUniforms = function ( ) { this . textureCount = 1 ; var a , b = this . gl ; for ( var c in this . uniforms ) { a = this . uniforms [ c ] ; var d = a . type ; "sampler2D" === d ? ( a . _init = ! 1 , null !== a . value && this . initSampler2D ( a ) ) : "mat2" === d || "mat3" === d || "mat4" === d ? ( a . glMatrix = ! 0 , a . glValueLength = 1 , "mat2" === d ? a . glFunc = b . uniformMatrix2fv : "mat3" === d ? a . glFunc = b . uniformMatrix3fv : "mat4" === d && ( a . glFunc = b . uniformMatrix4fv ) ) : ( a . glFunc = b [ "uniform" + d ] , a . glValueLength = "2f" === d || "2i" === d ? 2 : "3f" === d || "3i" === d ? 3 : "4f" === d || "4i" === d ? 4 : 1 ) } } , b . Pix
else { var e = this . count ; this . bindGraphics ( a , b , c ) , d . colorMask ( ! 1 , ! 1 , ! 1 , ! 1 ) , 1 === b . mode ? ( this . reverse = ! this . reverse , this . reverse ? ( d . stencilFunc ( d . EQUAL , 255 - ( e + 1 ) , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . INCR ) ) : ( d . stencilFunc ( d . EQUAL , e + 1 , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . DECR ) ) , d . drawElements ( d . TRIANGLE _FAN , 4 , d . UNSIGNED _SHORT , 2 * ( b . indices . length - 4 ) ) , d . stencilFunc ( d . ALWAYS , 0 , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . INVERT ) , d . drawElements ( d . TRIANGLE _FAN , b . indices . length - 4 , d . UNSIGNED _SHORT , 0 ) , this . reverse ? d . stencilFunc ( d . EQUAL , e , 255 ) : d . stencilFunc ( d . EQUAL , 255 - e , 255 ) ) : ( this . reverse ? ( d . stencilFunc ( d . EQUAL , e + 1 , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . DECR ) ) : ( d . stencilFunc ( d . EQUAL , 255 - ( e + 1 ) , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . INCR ) ) , d . drawElements ( d . TRIANGLE _STRIP , b . indices . length , d . UNSIGNED _SHORT , 0 ) , this . reverse ? d . stencilFunc ( d . EQUAL , e , 255 ) : d . stencilFunc ( d . EQUAL , 255 - e , 255 ) ) , d . colorMask ( ! 0 , ! 0 , ! 0 , ! 0 ) , d . stencilOp ( d . KEEP , d . KEEP , d . KEEP ) } } , b . WebGLStencilManager . prototype . destroy = function ( ) { this . stencilStack = null , this . gl = null } , b . WebGLShaderManager = function ( ) { this . maxAttibs = 10 , this . attribState = [ ] , this . tempAttribState = [ ] ; for ( var a = 0 ; a < this . maxAttibs ; a ++ ) this . attribState [ a ] = ! 1 ; this . stack = [ ] } , b . WebGLShaderManager . prototype . constructor = b . WebGLShaderManager , b . WebGLShaderManager . prototype . setContext = function ( a ) { this . gl = a , this . primitiveShader = new b . PrimitiveShader ( a ) , this . complexPrimitiveShader = new b . ComplexPrimitiveShader ( a ) , this . defaultShader = new b . PixiShader ( a ) , this . fastShader = new b . PixiFastShader ( a ) , this . stripShader = new b . StripShader ( a ) , this . setShader ( this . defaultShader ) } , b . WebGLShaderManager . prototype . setAttribs = function ( a ) { var b ; for ( b = 0 ; b < this . tempAttribState . length ; b ++ ) this . tempAttribState [ b ] = ! 1 ; for ( b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] ; this . tempAttribState [ c ] = ! 0 } var d = this . gl ; for ( b = 0 ; b < this . attribState . length ; b ++ ) this . attribState [ b ] !== this . tempAttribState [ b ] && ( this . attribState [ b ] = this . tempAttribState [ b ] , this . tempAttribState [ b ] ? d . enableVertexAttribArray ( b ) : d . disableVertexAttribArray ( b ) ) } , b . WebGLShaderManager . prototype . setShader = function ( a ) { return this . _currentId === a . _UID ? ! 1 : ( this . _currentId = a . _UID , this . currentShader = a , this . gl . useProgram ( a . program ) , this . setAttribs ( a . attributes ) , ! 0 ) } , b . WebGLShaderManager . prototype . destroy = function ( ) { this . attribState = null , this . tempAttribState = null , this . primitiveShader . destroy ( ) , this . complexPrimitiveShader . destroy ( ) , this . defaultShader . destroy ( ) , this . fastShader . destroy ( ) , this . stripShader . destroy ( ) , this . gl = null } , b . WebGLSpriteBatch = function ( ) { this . vertSize = 6 , this . size = 2e3 ; var a = 4 * this . size * this . vertSize , c = 6 * this . size ; this . vertices = new b . Float32Array ( a ) , this . indices = new b . Uint16Array ( c ) , this . lastIndexCount = 0 ; for ( var d = 0 , e = 0 ; c > d ; d += 6 , e += 4 ) this . indices [ d + 0 ] = e + 0 , this . indices [ d + 1 ] = e + 1 , this . indices [ d + 2 ] = e + 2 , this . indices [ d + 3 ] = e + 0 , this . indices [ d + 4 ] = e + 2 , this . indices [ d + 5 ] = e + 3 ; this . drawing = ! 1 , this . currentBatchSize = 0 , this . currentBaseTexture = null , this . dirty = ! 0 , this . textures = [ ] , this . blendModes = [ ] , this . shaders = [ ] , this . sprites = [ ] , this . defaultShader = new b . AbstractFilter ( [ "precision lowp float;" , "varying vec2 vTextureCoord;" , "varying vec4 vColor;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;" , "}" ] ) } , b . WebGLSpriteBatch . prototype . setContext = function ( a ) { this . gl = a , this . vertexBuffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , this . indices , a . STATIC _DRAW ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . vertices , a . DYNAMIC _DRAW ) , this . currentBlendMode = 99999 ; var c = new b . PixiShader ( a ) ; c . fragmentSrc = this . defaultShader . fragmentSrc , c . uniforms = { } , c . init ( ) , this . defaultShader . shaders [ a . id ] = c } , b . WebGLSpriteBatch . prototype . begin = function ( a ) { this . renderSession = a , this . shader = this . renderSession . shaderManager . defaultShader , this . start ( ) } , b . WebGLSpriteBatch . prototype . end = function ( ) { this . flush ( ) } , b . WebGLSpriteBatch . prototype . render = function ( a ) { var b = a . texture ; this . currentBatchSize >= this . size && ( this . flush ( ) , this . currentBaseTexture = b . baseTexture ) ; var c = b . _uvs ; if ( c ) { var d , e , f , g , h = a . worldAlpha , i = a . ti
} } , b . Strip = function ( a ) { b . DisplayObjectContainer . call ( this ) , this . texture = a , this . uvs = new b . Float32Array ( [ 0 , 1 , 1 , 1 , 1 , 0 , 0 , 1 ] ) , this . verticies = new b . Float32Array ( [ 0 , 0 , 100 , 0 , 100 , 100 , 0 , 100 ] ) , this . colors = new b . Float32Array ( [ 1 , 1 , 1 , 1 ] ) , this . indices = new b . Uint16Array ( [ 0 , 1 , 2 , 3 ] ) , this . dirty = ! 0 , this . blendMode = b . blendModes . NORMAL , this . padding = 0 } , b . Strip . prototype = Object . create ( b . DisplayObjectContainer . prototype ) , b . Strip . prototype . constructor = b . Strip , b . Strip . prototype . _renderWebGL = function ( a ) { ! this . visible || this . alpha <= 0 || ( a . spriteBatch . stop ( ) , this . _vertexBuffer || this . _initWebGL ( a ) , a . shaderManager . setShader ( a . shaderManager . stripShader ) , this . _renderStrip ( a ) , a . spriteBatch . start ( ) ) } , b . Strip . prototype . _initWebGL = function ( a ) { var b = a . gl ; this . _vertexBuffer = b . createBuffer ( ) , this . _indexBuffer = b . createBuffer ( ) , this . _uvBuffer = b . createBuffer ( ) , this . _colorBuffer = b . createBuffer ( ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _vertexBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . verticies , b . DYNAMIC _DRAW ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _uvBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . uvs , b . STATIC _DRAW ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _colorBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . colors , b . STATIC _DRAW ) , b . bindBuffer ( b . ELEMENT _ARRAY _BUFFER , this . _indexBuffer ) , b . bufferData ( b . ELEMENT _ARRAY _BUFFER , this . indices , b . STATIC _DRAW ) } , b . Strip . prototype . _renderStrip = function ( a ) { var b = a . gl , c = a . projection , d = a . offset , e = a . shaderManager . stripShader ; a . blendModeManager . setBlendMode ( this . blendMode ) , b . uniformMatrix3fv ( e . translationMatrix , ! 1 , this . worldTransform . toArray ( ! 0 ) ) , b . uniform2f ( e . projectionVector , c . x , - c . y ) , b . uniform2f ( e . offsetVector , - d . x , - d . y ) , b . uniform1f ( e . alpha , this . worldAlpha ) , this . dirty ? ( this . dirty = ! 1 , b . bindBuffer ( b . ARRAY _BUFFER , this . _vertexBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . verticies , b . STATIC _DRAW ) , b . vertexAttribPointer ( e . aVertexPosition , 2 , b . FLOAT , ! 1 , 0 , 0 ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _uvBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . uvs , b . STATIC _DRAW ) , b . vertexAttribPointer ( e . aTextureCoord , 2 , b . FLOAT , ! 1 , 0 , 0 ) , b . activeTexture ( b . TEXTURE0 ) , this . texture . baseTexture . _dirty [ b . id ] ? a . renderer . updateTexture ( this . texture . baseTexture ) : b . bindTexture ( b . TEXTURE _2D , this . texture . baseTexture . _glTextures [ b . id ] ) , b . bindBuffer ( b . ELEMENT _ARRAY _BUFFER , this . _indexBuffer ) , b . bufferData ( b . ELEMENT _ARRAY _BUFFER , this . indices , b . STATIC _DRAW ) ) : ( b . bindBuffer ( b . ARRAY _BUFFER , this . _vertexBuffer ) , b . bufferSubData ( b . ARRAY _BUFFER , 0 , this . verticies ) , b . vertexAttribPointer ( e . aVertexPosition , 2 , b . FLOAT , ! 1 , 0 , 0 ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _uvBuffer ) , b . vertexAttribPointer ( e . aTextureCoord , 2 , b . FLOAT , ! 1 , 0 , 0 ) , b . activeTexture ( b . TEXTURE0 ) , this . texture . baseTexture . _dirty [ b . id ] ? a . renderer . updateTexture ( this . texture . baseTexture ) : b . bindTexture ( b . TEXTURE _2D , this . texture . baseTexture . _glTextures [ b . id ] ) , b . bindBuffer ( b . ELEMENT _ARRAY _BUFFER , this . _indexBuffer ) ) , b . drawElements ( b . TRIANGLE _STRIP , this . indices . length , b . UNSIGNED _SHORT , 0 ) } , b . Strip . prototype . _renderCanvas = function ( a ) { var b = a . context , c = this . worldTransform ; a . roundPixels ? b . setTransform ( c . a , c . b , c . c , c . d , 0 | c . tx , 0 | c . ty ) : b . setTransform ( c . a , c . b , c . c , c . d , c . tx , c . ty ) ; var d = this , e = d . verticies , f = d . uvs , g = e . length / 2 ; this . count ++ ; for ( var h = 0 ; g - 2 > h ; h ++ ) { var i = 2 * h , j = e [ i ] , k = e [ i + 2 ] , l = e [ i + 4 ] , m = e [ i + 1 ] , n = e [ i + 3 ] , o = e [ i + 5 ] ; if ( this . padding > 0 ) { var p = ( j + k + l ) / 3 , q = ( m + n + o ) / 3 , r = j - p , s = m - q , t = Math . sqrt ( r * r + s * s ) ; j = p + r / t * ( t + 3 ) , m = q + s / t * ( t + 3 ) , r = k - p , s = n - q , t = Math . sqrt ( r * r + s * s ) , k = p + r / t * ( t + 3 ) , n = q + s / t * ( t + 3 ) , r = l - p , s = o - q , t = Math . sqrt ( r * r + s * s ) , l = p + r / t * ( t + 3 ) , o = q + s / t * ( t + 3 ) } var u = f [ i ] * d . texture . width , v = f [ i + 2 ] * d . texture . width , w = f [ i + 4 ] * d . texture . width , x = f [ i + 1 ] * d . texture . height , y = f [ i + 3 ] * d . texture . height , z = f [ i + 5 ] * d . texture . height ; b . save ( ) , b . beginPath ( ) , b . moveTo ( j , m ) , b . lineTo ( k , n ) , b . lineTo ( l , o ) , b . closePath ( ) , b . clip ( ) ; var A = u * y + x * w + v * z - y * w - x * v - u * z , B = j * y + x * l + k * z - y * l - x * k - j * z , C = u * k + j * w + v * l - k * w - j * v - u * l , D = u * y * l + x * k * w + j * v * z - j * y * w - x * v * l - u * k * z , E = m * y + x * o + n * z - y * o - x * n - m * z , F = u * n + m * w + v * o - n * w - m * v - u * o , G = u * y * o + x * n * w + m * v * z - m * y * w - x * v * o - u * n * z ; b . transform ( B / A , E / A , C / A , F / A , D / A , G / A ) , b . drawImage ( d . texture . baseTexture . source , 0 , 0 ) , b . restore ( ) } } , b . Strip . prototype . renderStripFlat = function ( a ) { var b = this . context , c = a . verticies , d = c . length / 2 ; this . count ++ , b . beginPath ( ) ; for ( var e =
} , set : function ( a ) { this . right = a . x , this . bottom = a . y } } ) , Object . defineProperty ( c . Rectangle . prototype , "left" , { get : function ( ) { return this . x } , set : function ( a ) { this . width = a >= this . right ? 0 : this . right - a , this . x = a } } ) , Object . defineProperty ( c . Rectangle . prototype , "right" , { get : function ( ) { return this . x + this . width } , set : function ( a ) { this . width = a <= this . x ? 0 : a - this . x } } ) , Object . defineProperty ( c . Rectangle . prototype , "volume" , { get : function ( ) { return this . width * this . height } } ) , Object . defineProperty ( c . Rectangle . prototype , "perimeter" , { get : function ( ) { return 2 * this . width + 2 * this . height } } ) , Object . defineProperty ( c . Rectangle . prototype , "centerX" , { get : function ( ) { return this . x + this . halfWidth } , set : function ( a ) { this . x = a - this . halfWidth } } ) , Object . defineProperty ( c . Rectangle . prototype , "centerY" , { get : function ( ) { return this . y + this . halfHeight } , set : function ( a ) { this . y = a - this . halfHeight } } ) , Object . defineProperty ( c . Rectangle . prototype , "randomX" , { get : function ( ) { return this . x + Math . random ( ) * this . width } } ) , Object . defineProperty ( c . Rectangle . prototype , "randomY" , { get : function ( ) { return this . y + Math . random ( ) * this . height } } ) , Object . defineProperty ( c . Rectangle . prototype , "top" , { get : function ( ) { return this . y } , set : function ( a ) { a >= this . bottom ? ( this . height = 0 , this . y = a ) : this . height = this . bottom - a } } ) , Object . defineProperty ( c . Rectangle . prototype , "topLeft" , { get : function ( ) { return new c . Point ( this . x , this . y ) } , set : function ( a ) { this . x = a . x , this . y = a . y } } ) , Object . defineProperty ( c . Rectangle . prototype , "topRight" , { get : function ( ) { return new c . Point ( this . x + this . width , this . y ) } , set : function ( a ) { this . right = a . x , this . y = a . y } } ) , Object . defineProperty ( c . Rectangle . prototype , "empty" , { get : function ( ) { return ! this . width || ! this . height } , set : function ( a ) { a === ! 0 && this . setTo ( 0 , 0 , 0 , 0 ) } } ) , c . Rectangle . prototype . constructor = c . Rectangle , c . Rectangle . inflate = function ( a , b , c ) { return a . x -= b , a . width += 2 * b , a . y -= c , a . height += 2 * c , a } , c . Rectangle . inflatePoint = function ( a , b ) { return c . Rectangle . inflate ( a , b . x , b . y ) } , c . Rectangle . size = function ( a , b ) { return "undefined" == typeof b || null === b ? b = new c . Point ( a . width , a . height ) : b . setTo ( a . width , a . height ) , b } , c . Rectangle . clone = function ( a , b ) { return "undefined" == typeof b || null === b ? b = new c . Rectangle ( a . x , a . y , a . width , a . height ) : b . setTo ( a . x , a . y , a . width , a . height ) , b } , c . Rectangle . contains = function ( a , b , c ) { return a . width <= 0 || a . height <= 0 ? ! 1 : b >= a . x && b < a . right && c >= a . y && c < a . bottom } , c . Rectangle . containsRaw = function ( a , b , c , d , e , f ) { return e >= a && a + c > e && f >= b && b + d > f } , c . Rectangle . containsPoint = function ( a , b ) { return c . Rectangle . contains ( a , b . x , b . y ) } , c . Rectangle . containsRect = function ( a , b ) { return a . volume > b . volume ? ! 1 : a . x >= b . x && a . y >= b . y && a . right < b . right && a . bottom < b . bottom } , c . Rectangle . equals = function ( a , b ) { return a . x == b . x && a . y == b . y && a . width == b . width && a . height == b . height } , c . Rectangle . sameDimensions = function ( a , b ) { return a . width === b . width && a . height === b . height } , c . Rectangle . intersection = function ( a , b , d ) { return "undefined" == typeof d && ( d = new c . Rectangle ) , c . Rectangle . intersects ( a , b ) && ( d . x = Math . max ( a . x , b . x ) , d . y = Math . max ( a . y , b . y ) , d . width = Math . min ( a . right , b . right ) - d . x , d . height = Math . min ( a . bottom , b . bottom ) - d . y ) , d } , c . Rectangle . intersects = function ( a , b ) { return a . width <= 0 || a . height <= 0 || b . width <= 0 || b . height <= 0 ? ! 1 : ! ( a . right < b . x || a . bottom < b . y || a . x > b . right || a . y > b . bottom ) } , c . Rectangle . intersectsRaw = function ( a , b , c , d , e , f ) { return "undefined" == typeof f && ( f = 0 ) , ! ( b > a . right + f || c < a . left - f || d > a . bottom + f || e < a . top - f ) } , c . Rectangle . union = function ( a , b , d ) { return "undefined" == typeof d && ( d = new c . Rectangle ) , d . setTo ( Math . min ( a . x , b . x ) , Math . min ( a . y , b . y ) , Math . max ( a . right , b . right ) - Math . min ( a . left , b . left ) , Math . max ( a . bottom , b . bottom ) - Math . min ( a . top , b . top ) ) } , c . Rectangle . aabb = function ( a , b ) { "undefined" == typeof b && ( b = new c . Rectangle ) ; var d = Number . MIN _VALUE , e = Number . MAX _VALUE , f = Number . MIN _VALUE , g = Number . MAX _VALUE ; return a . forEach ( function ( a ) { a . x > d && ( d = a . x ) , a . x < e && ( e = a . x ) , a . y > f && ( f = a . y ) , a . y < g && ( g = a . y ) } ) , b . setTo ( e , g , d - e , f - g ) , b } , PIXI . Rectangle = c . Rectangle , PIXI . EmptyRectangle = new c . Rectangle ( 0 , 0 , 0 , 0 ) , c . Line = function ( a , b , d , e ) { a = a || 0 , b = b || 0 , d = d || 0 , e = e || 0 , this . start = new c . Point ( a , b ) , this . end = new c . Point ( d , e ) } , c . Line . prototype = { setTo : function ( a , b , c , d ) { return this . start . setTo ( a , b ) , this . end . setTo ( c , d ) , this } , fromSprite : function ( a
} , destroy : function ( ) { this . clearCurrentState ( ) , 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 } } , c . StateManager . prototype . constructor = c . StateManager , c . LinkedList = function ( ) { this . next = null , this . prev = null , this . first = null , this . last = null , this . total = 0 } , c . 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 ) } } } , c . LinkedList . prototype . constructor = c . LinkedList , c . ArrayList = function ( ) { this . total = 0 , this . position = 0 , this . list = [ ] } , c . 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 } , setAll : function ( a , b ) { for ( var c = this . list . length ; c -- ; ) this . list [ c ] && this . list [ c ] [ a ] && ( this . list [ c ] [ a ] = b ) } , 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 ( c . ArrayList . prototype , "first" , { get : function ( ) { return this . position = 0 , this . total > 0 ? this . list [ 0 ] : null } } ) , Object . defineProperty ( c . ArrayList . prototype , "next" , { get : function ( ) { return this . position < this . total ? ( this . position ++ , this . list [ this . position ] ) : null } } ) , c . ArrayList . prototype . constructor = c . ArrayList , c . Signal = function ( ) { this . _bindings = [ ] , this . _prevParams = null ; var a = this ; this . dispatch = function ( ) { c . Signal . prototype . dispatch . apply ( a , arguments ) } , this . memorize = ! 1 , this . _shouldPropagate = ! 0 , this . active = ! 0 } , c . Signal . prototype = { validateListener : function ( a , b ) { if ( "function" != typeof a ) throw new Error ( "Phaser.Signal: listener is a required param of {fn}() and should be a Function." . replace ( "{fn}" , b ) ) } , _registerListener : function ( a , b , d , e ) { var f , g = this . _indexOfListener ( a , d ) ; if ( - 1 !== g ) { if ( f = this . _bindings [ g ] , f . isOnce ( ) !== b ) throw new Error ( "You cannot add" + ( b ? "" : "Once" ) + "() then add" + ( b ? "Once" : "" ) + "() the same listener without removing the relationship first." ) } else f = new c . SignalBinding ( this , a , b , d , e ) , this . _addBinding ( f ) ; return this . memorize && this . _prevParams && f . execute ( this . _prevParams ) , f } , _addBinding : function ( a ) { var b = this . _bindings . length ; do b -- ; while ( this . _bindings [ b ] && a . _priority <= this . _bindings [ b ] . _priority ) ; this . _bindings . splice ( b + 1 , 0 , a ) } , _indexOfListener : function ( a , b ) { for ( var c , d = this . _bindings . length ; d -- ; ) if ( c = this . _bindings [ d ] , c . _listener === a && c . context === b ) return d ; return - 1 } , has : function ( a , b ) { return - 1 !== this . _indexOfListener ( a , b ) } , add : function ( a , b , c ) { return this . validateListener ( a , "add" ) , this . _registerListener ( a , ! 1 , b , c ) } , addOnce : function ( a , b , c ) { return this . validateListener ( a , "addOnce" ) , this . _registerListener ( a , ! 0 , b , c ) } , remove : function ( a , b ) { this . validateListener ( a , "remove" ) ; var c = this . _indexOfListener ( a , b ) ; return - 1 !== c && ( this . _bindings [ c ] . _destroy ( ) , this . _bindings . splice ( c , 1 ) ) , a } , removeAll : function ( a ) { "undefined" == typeof a && ( a = null ) ; for ( var b = this . _bindings . length ; b -- ; ) a ? this . _bindings [ b ] . context === a && ( this . _bindings [ b ] . _destroy ( ) , this . _bindings . splice ( b , 1 ) ) : this . _bindings [ b ]
} , fitSprite : function ( a ) { this . manager . scaleSprite ( a ) , a . x = this . manager . bounds . centerX , a . y = this . manager . bounds . centerY } , debug : function ( ) { this . game . debug . text ( this . boundsFluid . width + " x " + this . boundsFluid . height , this . boundsFluid . x + 4 , this . boundsFluid . y + 16 ) , this . game . debug . geom ( this . boundsFluid , "rgba(255,0,0,0.9" , ! 1 ) } } , c . FlexGrid . prototype . constructor = c . FlexGrid , c . FlexLayer = function ( a , b , d , e ) { c . Group . call ( this , a . game , null , "__flexLayer" + a . game . rnd . uuid ( ) , ! 1 ) , this . manager = a . manager , this . grid = a , this . persist = ! 1 , this . position = b , this . bounds = d , this . scale = e , this . topLeft = d . topLeft , this . topMiddle = new c . Point ( d . halfWidth , 0 ) , this . topRight = d . topRight , this . bottomLeft = d . bottomLeft , this . bottomMiddle = new c . Point ( d . halfWidth , d . bottom ) , this . bottomRight = d . bottomRight } , c . FlexLayer . prototype = Object . create ( c . Group . prototype ) , c . FlexLayer . prototype . constructor = c . FlexLayer , c . FlexLayer . prototype . resize = function ( ) { } , c . FlexLayer . prototype . debug = function ( ) { this . game . debug . text ( this . bounds . width + " x " + this . bounds . height , this . bounds . x + 4 , this . bounds . y + 16 ) , this . game . debug . geom ( this . bounds , "rgba(0,0,255,0.9" , ! 1 ) , this . game . debug . geom ( this . topLeft , "rgba(255,255,255,0.9" ) , this . game . debug . geom ( this . topMiddle , "rgba(255,255,255,0.9" ) , this . game . debug . geom ( this . topRight , "rgba(255,255,255,0.9" ) } , c . ScaleManager = function ( a , b , d ) { this . game = a , this . grid = null , this . width = 0 , this . height = 0 , this . minWidth = null , this . maxWidth = null , this . minHeight = null , this . maxHeight = null , this . offset = new c . Point , this . forceLandscape = ! 1 , this . forcePortrait = ! 1 , this . incorrectOrientation = ! 1 , this . _pageAlignHorizontally = ! 1 , this . _pageAlignVertically = ! 1 , this . maxIterations = 5 , this . enterLandscape = new c . Signal , this . enterPortrait = new c . Signal , this . enterIncorrectOrientation = new c . Signal , this . leaveIncorrectOrientation = new c . Signal , this . fullScreenTarget = null , this . createFullScreenTarget = function ( ) { var a = document . createElement ( "div" ) ; return a . style . margin = "0" , a . style . padding = "0" , a . style . background = "#000" , a } , this . _createdFullScreenTarget = null , this . enterFullScreen = new c . Signal , this . leaveFullScreen = new c . Signal , this . fullScreenFailed = new c . Signal , this . screenOrientation = c . DOM . getScreenOrientation ( ) , this . scaleFactor = new c . Point ( 1 , 1 ) , this . scaleFactorInversed = new c . Point ( 1 , 1 ) , this . margin = { left : 0 , top : 0 , right : 0 , bottom : 0 , x : 0 , y : 0 } , this . bounds = new c . Rectangle , this . aspectRatio = 0 , this . sourceAspectRatio = 0 , this . event = null , this . windowConstraints = { bottom : ! 0 , right : ! 0 } , this . compatibility = { supportsFullScreen : ! 1 , orientationFallback : null , noMargins : ! 1 , scrollTo : null , forceMinimumDocumentHeight : ! 0 , showAllCanExpand : ! 0 } , this . _scaleMode = c . ScaleManager . NO _SCALE , this . _fullScreenScaleMode = c . ScaleManager . NO _SCALE , this . parentIsWindow = ! 1 , this . parentNode = null , this . parentScaleFactor = new c . Point ( 1 , 1 ) , this . trackParentInterval = 2e3 , this . onSizeChange = new c . Signal , this . onResize = null , this . onResizeContext = null , this . _fullScreenRestore = null , this . _gameSize = new c . Rectangle , this . _userScaleFactor = new c . Point ( 1 , 1 ) , this . _lastUpdate = 0 , this . _updateThrottle = 0 , this . _updateThrottleReset = 100 , this . _parentBounds = new c . Rectangle , this . _lastReportedCanvasSize = new c . Rectangle , this . _lastReportedGameSize = new c . Rectangle , a . config && this . parseConfig ( a . config ) , this . setupScale ( b , d ) } , c . ScaleManager . EXACT _FIT = 0 , c . ScaleManager . NO _SCALE = 1 , c . ScaleManager . SHOW _ALL = 2 , c . ScaleManager . RESIZE = 3 , c . ScaleManager . USER _SCALE = 4 , c . ScaleManager . prototype = { boot : function ( ) { var a = this . compatibility ; a . supportsFullScreen = this . game . device . fullscreen && ! this . game . device . cocoonJS , this . game . device . iPad || this . game . device . webApp || this . game . device . desktop || ( a . scrollTo = this . game . device . android && ! this . game . device . chrome ? new c . Point ( 0 , 1 ) : new c . Point ( 0 , 0 ) ) , a . orientationFallback = this . game . device . desktop ? "screen" : "" ; var b = this ; this . _orientationChange = function ( a ) { return b . orientationChange ( a ) } , this . _windowResize = function ( a ) { return b . windowResize ( a ) } , window . addEventListener ( "orientationchange" , this . _orientationChange , ! 1 ) , window . addEventListener ( "resize" , this . _windowResize , ! 1 ) , this . compatibility . supportsFullScreen && ( this . _fullScreenChange = function ( a ) { return b . fullScreenChange ( a ) } , this . _fullScreenError = function ( a ) { return b . fullScreenErr
} } , resetSpeed : function ( a , b ) { this . _oldPosition . setTo ( a , b ) , this . speed . setTo ( 0 , 0 ) } , startPointer : function ( a ) { if ( this . maxPointers >= 0 && this . countActivePointers ( this . maxPointers ) >= this . maxPointers ) return null ; if ( ! this . pointer1 . active ) return this . pointer1 . start ( a ) ; if ( ! this . pointer2 . active ) return this . pointer2 . start ( a ) ; for ( var b = 2 ; b < this . pointers . length ; b ++ ) { var c = this . pointers [ b ] ; if ( ! c . active ) return c . start ( a ) } return null } , updatePointer : function ( a ) { if ( this . pointer1 . active && this . pointer1 . identifier === a . identifier ) return this . pointer1 . move ( a ) ; if ( this . pointer2 . active && this . pointer2 . identifier === a . identifier ) return this . pointer2 . move ( a ) ; for ( var b = 2 ; b < this . pointers . length ; b ++ ) { var c = this . pointers [ b ] ; if ( c . active && c . identifier === a . identifier ) return c . move ( a ) } return null } , stopPointer : function ( a ) { if ( this . pointer1 . active && this . pointer1 . identifier === a . identifier ) return this . pointer1 . stop ( a ) ; if ( this . pointer2 . active && this . pointer2 . identifier === a . identifier ) return this . pointer2 . stop ( a ) ; for ( var b = 2 ; b < this . pointers . length ; b ++ ) { var c = this . pointers [ b ] ; if ( c . active && c . identifier === a . identifier ) return c . stop ( a ) } return null } , countActivePointers : function ( a ) { "undefined" == typeof a && ( a = this . pointers . length ) ; for ( var b = a , c = 0 ; c < this . pointers . length && b > 0 ; c ++ ) { var d = this . pointers [ c ] ; d . active && b -- } return this . currentPointers = a - b , a - b } , getPointer : function ( a ) { "undefined" == typeof a && ( a = ! 1 ) ; for ( var b = 0 ; b < this . pointers . length ; b ++ ) { var c = this . pointers [ b ] ; if ( c . active === a ) return c } return null } , getPointerFromIdentifier : function ( a ) { for ( var b = 0 ; b < this . pointers . length ; b ++ ) { var c = this . pointers [ b ] ; if ( c . identifier === a ) return c } return null } , getPointerFromId : function ( a ) { for ( var b = 0 ; b < this . pointers . length ; b ++ ) { var c = this . pointers [ b ] ; if ( c . pointerId === a ) return c } return null } , getLocalPosition : function ( a , b , d ) { "undefined" == typeof d && ( d = new c . Point ) ; var e = a . worldTransform , f = 1 / ( e . a * e . d + e . c * - e . b ) ; return d . setTo ( e . d * f * b . x + - e . c * f * b . y + ( e . ty * e . c - e . tx * e . d ) * f , e . a * f * b . y + - e . b * f * b . x + ( - e . ty * e . a + e . tx * e . b ) * f ) } , hitTest : function ( a , b , d ) { if ( ! a . worldVisible ) return ! 1 ; if ( this . getLocalPosition ( a , b , this . _localPoint ) , d . copyFrom ( this . _localPoint ) , a . hitArea && a . hitArea . contains ) return a . hitArea . contains ( this . _localPoint . x , this . _localPoint . y ) ; if ( a instanceof PIXI . Sprite ) { var e = a . texture . frame . width , f = a . texture . frame . height , g = - e * a . anchor . x ; if ( this . _localPoint . x >= g && this . _localPoint . x < g + e ) { var h = - f * a . anchor . y ; if ( this . _localPoint . y >= h && this . _localPoint . y < h + f ) return ! 0 } } else if ( a instanceof c . TileSprite ) { var e = a . width , f = a . height , g = - e * a . anchor . x ; if ( this . _localPoint . x >= g && this . _localPoint . x < g + e ) { var h = - f * a . anchor . y ; if ( this . _localPoint . y >= h && this . _localPoint . y < h + f ) return ! 0 } } else if ( a instanceof c . Graphics ) for ( var i = 0 ; i < a . graphicsData . length ; i ++ ) { var j = a . graphicsData [ i ] ; if ( j . fill && j . shape && j . shape . contains ( this . _localPoint . x , this . _localPoint . y ) ) return ! 0 } for ( var i = 0 , k = a . children . length ; k > i ; i ++ ) if ( this . hitTest ( a . children [ i ] , b , d ) ) return ! 0 ; return ! 1 } , onClickTrampoline : function ( ) { this . activePointer . processClickTrampolines ( ) } } , c . Input . prototype . constructor = c . Input , Object . defineProperty ( c . Input . prototype , "x" , { get : function ( ) { return this . _x } , set : function ( a ) { this . _x = Math . floor ( a ) } } ) , Object . defineProperty ( c . Input . prototype , "y" , { get : function ( ) { return this . _y } , set : function ( a ) { this . _y = Math . floor ( a ) } } ) , Object . defineProperty ( c . Input . prototype , "pollLocked" , { get : function ( ) { return this . pollRate > 0 && this . _pollCounter < this . pollRate } } ) , Object . defineProperty ( c . Input . prototype , "totalInactivePointers" , { get : function ( ) { return this . pointers . length - this . countActivePointers ( ) } } ) , Object . defineProperty ( c . Input . prototype , "totalActivePointers" , { get : function ( ) { return this . countActivePointers ( ) } } ) , Object . defineProperty ( c . Input . prototype , "worldX" , { get : function ( ) { return this . game . camera . view . x + this . x } } ) , Object . defineProperty ( c . Input . prototype , "worldY" , { get : function ( ) { return this . game . camera . view . y + this . y } } ) , Object . defineProperty ( c . Input . prototype , "disabled" , { get : function ( ) { return ! this . enabled } , set : function ( a ) { this . enabled = ! a } } ) , c . Key = function ( a , b ) { this . game = a , this . _enabled = ! 0 , this . event = null , this . isDown = ! 1 , this . isUp = ! 0 , this . altKey = ! 1 , this . ctrlKey = ! 1 , this . shif
} , c . Gamepad . prototype = { addCallbacks : function ( a , b ) { "undefined" != typeof b && ( this . onConnectCallback = "function" == typeof b . onConnect ? b . onConnect : this . onConnectCallback , this . onDisconnectCallback = "function" == typeof b . onDisconnect ? b . onDisconnect : this . onDisconnectCallback , this . onDownCallback = "function" == typeof b . onDown ? b . onDown : this . onDownCallback , this . onUpCallback = "function" == typeof b . onUp ? b . onUp : this . onUpCallback , this . onAxisCallback = "function" == typeof b . onAxis ? b . onAxis : this . onAxisCallback , this . onFloatCallback = "function" == typeof b . onFloat ? b . onFloat : this . onFloatCallback , this . callbackContext = a ) } , start : function ( ) { if ( ! this . _active ) { this . _active = ! 0 ; var a = this ; this . _onGamepadConnected = function ( b ) { return a . onGamepadConnected ( b ) } , this . _onGamepadDisconnected = function ( b ) { return a . onGamepadDisconnected ( b ) } , window . addEventListener ( "gamepadconnected" , this . _onGamepadConnected , ! 1 ) , window . addEventListener ( "gamepaddisconnected" , this . _onGamepadDisconnected , ! 1 ) } } , onGamepadConnected : function ( a ) { var b = a . gamepad ; this . _rawPads . push ( b ) , this . _gamepads [ b . index ] . connect ( b ) } , onGamepadDisconnected : function ( a ) { var b = a . gamepad ; for ( var c in this . _rawPads ) this . _rawPads [ c ] . index === b . index && this . _rawPads . splice ( c , 1 ) ; this . _gamepads [ b . index ] . disconnect ( ) } , update : function ( ) { this . _pollGamepads ( ) , this . pad1 . pollStatus ( ) , this . pad2 . pollStatus ( ) , this . pad3 . pollStatus ( ) , this . pad4 . pollStatus ( ) } , _pollGamepads : function ( ) { if ( navigator . getGamepads ) var a = navigator . getGamepads ( ) ; else if ( navigator . webkitGetGamepads ) var a = navigator . webkitGetGamepads ( ) ; else if ( navigator . webkitGamepads ) var a = navigator . webkitGamepads ( ) ; if ( a ) { this . _rawPads = [ ] ; for ( var b = ! 1 , c = 0 ; c < a . length && ( typeof a [ c ] !== this . _prevRawGamepadTypes [ c ] && ( b = ! 0 , this . _prevRawGamepadTypes [ c ] = typeof a [ c ] ) , a [ c ] && this . _rawPads . push ( a [ c ] ) , 3 !== c ) ; c ++ ) ; if ( b ) { for ( var d , e = { rawIndices : { } , padIndices : { } } , f = 0 ; f < this . _gamepads . length ; f ++ ) if ( d = this . _gamepads [ f ] , d . connected ) for ( var g = 0 ; g < this . _rawPads . length ; g ++ ) this . _rawPads [ g ] . index === d . index && ( e . rawIndices [ d . index ] = ! 0 , e . padIndices [ f ] = ! 0 ) ; for ( var h = 0 ; h < this . _gamepads . length ; h ++ ) if ( d = this . _gamepads [ h ] , ! e . padIndices [ h ] ) { this . _rawPads . length < 1 && d . disconnect ( ) ; for ( var i = 0 ; i < this . _rawPads . length && ! e . padIndices [ h ] ; i ++ ) { var j = this . _rawPads [ i ] ; if ( j ) { if ( e . rawIndices [ j . index ] ) { d . disconnect ( ) ; continue } d . connect ( j ) , e . rawIndices [ j . index ] = ! 0 , e . padIndices [ h ] = ! 0 } else d . disconnect ( ) } } } } } , setDeadZones : function ( a ) { for ( var b = 0 ; b < this . _gamepads . length ; b ++ ) this . _gamepads [ b ] . deadZone = a } , stop : function ( ) { this . _active = ! 1 , window . removeEventListener ( "gamepadconnected" , this . _onGamepadConnected ) , window . removeEventListener ( "gamepaddisconnected" , this . _onGamepadDisconnected ) } , reset : function ( ) { this . update ( ) ; for ( var a = 0 ; a < this . _gamepads . length ; a ++ ) this . _gamepads [ a ] . reset ( ) } , justPressed : function ( a , b ) { for ( var c = 0 ; c < this . _gamepads . length ; c ++ ) if ( this . _gamepads [ c ] . justPressed ( a , b ) === ! 0 ) return ! 0 ; return ! 1 } , justReleased : function ( a , b ) { for ( var c = 0 ; c < this . _gamepads . length ; c ++ ) if ( this . _gamepads [ c ] . justReleased ( a , b ) === ! 0 ) return ! 0 ; return ! 1 } , isDown : function ( a ) { for ( var b = 0 ; b < this . _gamepads . length ; b ++ ) if ( this . _gamepads [ b ] . isDown ( a ) === ! 0 ) return ! 0 ; return ! 1 } , destroy : function ( ) { this . stop ( ) ; for ( var a = 0 ; a < this . _gamepads . length ; a ++ ) this . _gamepads [ a ] . destroy ( ) } } , c . Gamepad . prototype . constructor = c . Gamepad , Object . defineProperty ( c . Gamepad . prototype , "disabled" , { get : function ( ) { return ! this . enabled } , set : function ( a ) { this . enabled = ! a } } ) , Object . defineProperty ( c . Gamepad . prototype , "active" , { get : function ( ) { return this . _active } } ) , Object . defineProperty ( c . Gamepad . prototype , "supported" , { get : function ( ) { return this . _gamepadSupportAvailable } } ) , Object . defineProperty ( c . Gamepad . prototype , "padsConnected" , { get : function ( ) { return this . _rawPads . length } } ) , Object . defineProperty ( c . Gamepad . prototype , "pad1" , { get : function ( ) { return this . _gamepads [ 0 ] } } ) , Object . defineProperty ( c . Gamepad . prototype , "pad2" , { get : function ( ) { return this . _gamepads [ 1 ] } } ) , Object . defineProperty ( c . Gamepad . prototype , "pad3" , { get : function ( ) { return this . _gamepads [ 2 ] } } ) , Object . defineProperty ( c . Gamepad . prototype , "pad4" , { get : function ( ) { return this . _gamepads [ 3 ] } } ) , c . Gamepad . BUTTON _0 = 0 , c . Gamepad . BUTTON _1 = 1 , c . Gamepad . BUTTON _2
} , c . BitmapData . prototype = { add : function ( a ) { if ( Array . isArray ( a ) ) for ( var b = 0 ; b < a . length ; b ++ ) a [ b ] . loadTexture && a [ b ] . loadTexture ( this ) ; else a . loadTexture ( this ) ; return this } , load : function ( a ) { return "string" == typeof a && ( a = this . game . cache . getImage ( a ) ) , a ? ( this . resize ( a . width , a . height ) , this . cls ( ) , this . draw ( a ) , this . update ( ) , this ) : void 0 } , clear : function ( ) { return this . context . clearRect ( 0 , 0 , this . width , this . height ) , this . dirty = ! 0 , this } , fill : function ( a , b , c , d ) { return "undefined" == typeof d && ( d = 1 ) , this . context . fillStyle = "rgba(" + a + "," + b + "," + c + "," + d + ")" , this . context . fillRect ( 0 , 0 , this . width , this . height ) , this . dirty = ! 0 , this } , resize : function ( a , b ) { return ( a !== this . width || b !== this . height ) && ( this . width = a , this . height = b , this . canvas . width = a , this . canvas . height = b , this . baseTexture . width = a , this . baseTexture . height = b , this . textureFrame . width = a , this . textureFrame . height = b , this . texture . width = a , this . texture . height = b , this . texture . crop . width = a , this . texture . crop . height = b , this . update ( ) , this . dirty = ! 0 ) , this } , update : function ( a , b , c , d ) { return "undefined" == typeof a && ( a = 0 ) , "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = this . width ) , "undefined" == typeof d && ( d = this . height ) , this . imageData = this . context . getImageData ( a , b , c , d ) , this . data = this . imageData . data , this . imageData . data . buffer ? ( this . buffer = this . imageData . data . buffer , this . pixels = new Uint32Array ( this . buffer ) ) : window . ArrayBuffer ? ( this . buffer = new ArrayBuffer ( this . imageData . data . length ) , this . pixels = new Uint32Array ( this . buffer ) ) : this . pixels = this . imageData . data , this } , processPixelRGB : function ( a , b , d , e , f , g ) { "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = this . width ) , "undefined" == typeof g && ( g = this . height ) ; for ( var h = d + f , i = e + g , j = c . Color . createColor ( ) , k = { r : 0 , g : 0 , b : 0 , a : 0 } , l = ! 1 , m = e ; i > m ; m ++ ) for ( var n = d ; h > n ; n ++ ) c . Color . unpackPixel ( this . getPixel32 ( n , m ) , j ) , k = a . call ( b , j , n , m ) , k !== ! 1 && null !== k && void 0 !== k && ( this . setPixel32 ( n , m , k . r , k . g , k . b , k . a , ! 1 ) , l = ! 0 ) ; return l && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) , this } , processPixel : function ( a , b , c , d , e , f ) { "undefined" == typeof c && ( c = 0 ) , "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = this . width ) , "undefined" == typeof f && ( f = this . height ) ; for ( var g = c + e , h = d + f , i = 0 , j = 0 , k = ! 1 , l = d ; h > l ; l ++ ) for ( var m = c ; g > m ; m ++ ) i = this . getPixel32 ( m , l ) , j = a . call ( b , i , m , l ) , j !== i && ( this . pixels [ l * this . width + m ] = j , k = ! 0 ) ; return k && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) , this } , replaceRGB : function ( a , b , d , e , f , g , h , i , j ) { var k = 0 , l = 0 , m = this . width , n = this . height , o = c . Color . packPixel ( a , b , d , e ) ; void 0 !== j && j instanceof c . Rectangle && ( k = j . x , l = j . y , m = j . width , n = j . height ) ; for ( var p = 0 ; n > p ; p ++ ) for ( var q = 0 ; m > q ; q ++ ) this . getPixel32 ( k + q , l + p ) === o && this . setPixel32 ( k + q , l + p , f , g , h , i , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } , setHSL : function ( a , b , d , e ) { if ( ( "undefined" == typeof a || null === a ) && ( a = ! 1 ) , ( "undefined" == typeof b || null === b ) && ( b = ! 1 ) , ( "undefined" == typeof d || null === d ) && ( d = ! 1 ) , a || b || d ) { "undefined" == typeof e && ( e = new c . Rectangle ( 0 , 0 , this . width , this . height ) ) ; for ( var f = c . Color . createColor ( ) , g = e . y ; g < e . bottom ; g ++ ) for ( var h = e . x ; h < e . right ; h ++ ) c . Color . unpackPixel ( this . getPixel32 ( h , g ) , f , ! 0 ) , a && ( f . h = a ) , b && ( f . s = b ) , d && ( f . l = d ) , c . Color . HSLtoRGB ( f . h , f . s , f . l , f ) , this . setPixel32 ( h , g , f . r , f . g , f . b , f . a , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } } , shiftHSL : function ( a , b , d , e ) { if ( ( "undefined" == typeof a || null === a ) && ( a = ! 1 ) , ( "undefined" == typeof b || null === b ) && ( b = ! 1 ) , ( "undefined" == typeof d || null === d ) && ( d = ! 1 ) , a || b || d ) { "undefined" == typeof e && ( e = new c . Rectangle ( 0 , 0 , this . width , this . height ) ) ; for ( var f = c . Color . createColor ( ) , g = e . y ; g < e . bottom ; g ++ ) for ( var h = e . x ; h < e . right ; h ++ ) c . Color . unpackPixel ( this . getPixel32 ( h , g ) , f , ! 0 ) , a && ( f . h = this . game . math . wrap ( f . h + a , 0 , 1 ) ) , b && ( f . s = this . game . math . limitValue ( f . s + b , 0 , 1 ) ) , d && ( f . l = this . game . math . limitValue ( f . l + d , 0 , 1 ) ) , c . Color . HSLtoRGB ( f . h , f . s , f . l , f ) , this . setPixel32 ( h , g , f . r , f . g , f . b , f . a , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } } , setPixel32 : function ( a , b , d , e , f , g , h ) { return "undefined" == typeof h && ( h = ! 0 ) , a >= 0 && a <= this . width && b >= 0 && b <= this . height && ( this . pixels [ b * this . width + a ] = c . Device . LITTLE _ENDIAN ? g << 24 | f << 16 | e <<
} , c . TileSprite . prototype = Object . create ( PIXI . TilingSprite . prototype ) , c . TileSprite . prototype . constructor = c . TileSprite , c . TileSprite . prototype . preUpdate = function ( ) { if ( 1 === this . _cache [ 4 ] && this . exists ) return this . world . setTo ( this . parent . position . x + this . position . x , this . parent . position . y + this . position . y ) , this . worldTransform . tx = this . world . x , this . worldTransform . ty = this . world . y , this . _cache [ 0 ] = this . world . x , this . _cache [ 1 ] = this . world . y , this . _cache [ 2 ] = this . rotation , this . body && this . body . preUpdate ( ) , this . _cache [ 4 ] = 0 , ! 1 ; if ( this . _cache [ 0 ] = this . world . x , this . _cache [ 1 ] = this . world . y , this . _cache [ 2 ] = this . rotation , ! this . exists || ! this . parent . exists ) return this . _cache [ 3 ] = - 1 , ! 1 ; ( this . autoCull || this . checkWorldBounds ) && this . _bounds . copyFrom ( this . getBounds ( ) ) , this . autoCull && ( this . renderable = this . game . world . camera . screenView . intersects ( this . _bounds ) ) , this . checkWorldBounds && ( 1 === this . _cache [ 5 ] && this . game . world . bounds . intersects ( this . _bounds ) ? ( this . _cache [ 5 ] = 0 , this . events . onEnterBounds . dispatch ( this ) ) : 0 !== this . _cache [ 5 ] || this . game . world . bounds . intersects ( this . _bounds ) || ( this . _cache [ 5 ] = 1 , this . events . onOutOfBounds . dispatch ( this ) ) ) , this . world . setTo ( this . game . camera . x + this . worldTransform . tx , this . game . camera . y + this . worldTransform . ty ) , this . visible && ( this . _cache [ 3 ] = this . game . stage . currentRenderOrderID ++ ) , this . animations . update ( ) , 0 !== this . _scroll . x && ( this . tilePosition . x += this . _scroll . x * this . game . time . physicsElapsed ) , 0 !== this . _scroll . y && ( this . tilePosition . y += this . _scroll . y * this . game . time . physicsElapsed ) , this . body && this . body . preUpdate ( ) ; for ( var a = 0 , b = this . children . length ; b > a ; a ++ ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , c . TileSprite . prototype . update = function ( ) { } , c . 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 ( ) } , c . TileSprite . prototype . autoScroll = function ( a , b ) { this . _scroll . set ( a , b ) } , c . TileSprite . prototype . stopScroll = function ( ) { this . _scroll . set ( 0 , 0 ) } , c . TileSprite . prototype . loadTexture = function ( a , b ) { b = b || 0 , this . key = a , a instanceof c . RenderTexture ? ( this . key = a . key , this . setTexture ( a ) ) : a instanceof c . BitmapData ? this . setTexture ( a . texture ) : a instanceof PIXI . Texture ? this . setTexture ( a ) : null === a || "undefined" == typeof a ? ( this . key = "__default" , this . setTexture ( PIXI . TextureCache [ this . key ] ) ) : "string" != typeof a || this . game . cache . checkImageKey ( a ) ? ( this . setTexture ( new PIXI . Texture ( PIXI . BaseTextureCache [ a ] ) ) , this . animations . loadFrameData ( this . game . cache . getFrameData ( a ) , b ) ) : ( console . warn ( "Texture with key '" + a + "' not found." ) , this . key = "__missing" , this . setTexture ( PIXI . TextureCache [ this . key ] ) ) , this . texture . baseTexture . dirty ( ) } , c . TileSprite . prototype . setFrame = function ( a ) { this . texture . frame . x = a . x , this . texture . frame . y = a . y , this . texture . frame . width = a . width , this . texture . frame . height = a . height , this . texture . crop . x = a . x , this . texture . crop . y = a . y , this . texture . crop . width = a . width , this . texture . crop . height = a . height , a . trimmed ? ( this . texture . trim ? ( this . texture . trim . x = a . spriteSourceSizeX , this . texture . trim . y = a . spriteSourceSizeY , this . texture . trim . width = a . sourceSizeW , this . texture . trim . height = a . sourceSizeH ) : this . texture . trim = { x : a . spriteSourceSizeX , y : a . spriteSourceSizeY , width : a . sourceSizeW , height : a . sourceSizeH } , this . texture . width = a . sourceSizeW , this . texture . height = a . sourceSizeH , this . texture . frame . width = a . sourceSizeW , this . texture . frame . height = a . sourceSizeH ) : ! a . trimmed && this . texture . trim && ( this . texture . trim = null ) , this . texture . _updateUvs ( ) } , c . TileSprite . prototype . destroy = function ( a ) { if ( null !== this . game && ! this . destroyPhase ) { "undefined" == typeof a && ( a = ! 0 ) , this . _cache [ 8 ] = 1 , this . events && this . events . onDestroy . dispatch ( this ) , this . filters && ( this . filters = null ) , this . parent && ( this . parent instanceof c . Group ? this . parent . remove ( this ) : this . parent . removeChild ( this ) ) , this . animations . destroy ( ) , this . events . destroy ( ) ; var b = this . children . length ; if ( a ) for ( ; b -- ; ) this . children [ b ] . destroy ( a ) ; else for ( ; b -- ; ) this . removeChild ( this . children [ b ] ) ; this . exists = ! 1 , this . visible = ! 1 , this . alive = ! 1 , this . filters =
else for ( e = 0 ; e < b . length ; e ++ ) f . x = a [ 2 * b [ e ] ] , f . y = a [ 2 * b [ e ] + 1 ] , i . push ( f . copyTo ( { } ) ) , 3 === i . length && ( this . drawTriangle ( i , d ) , i = [ ] ) ; else if ( a [ 0 ] instanceof c . Point ) for ( e = 0 ; e < a . length / 3 ; e ++ ) this . drawTriangle ( [ a [ 3 * e ] , a [ 3 * e + 1 ] , a [ 3 * e + 2 ] ] , d ) ; else for ( e = 0 ; e < a . length / 6 ; e ++ ) f . x = a [ 6 * e + 0 ] , f . y = a [ 6 * e + 1 ] , g . x = a [ 6 * e + 2 ] , g . y = a [ 6 * e + 3 ] , h . x = a [ 6 * e + 4 ] , h . y = a [ 6 * e + 5 ] , this . drawTriangle ( [ f , g , h ] , d ) } , Object . defineProperty ( c . Graphics . prototype , "angle" , { get : function ( ) { return c . Math . radToDeg ( this . rotation ) } , set : function ( a ) { this . rotation = c . Math . degToRad ( a ) } } ) , Object . defineProperty ( c . Graphics . 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 ( c . Graphics . prototype , "destroyPhase" , { get : function ( ) { return ! ! this . _cache [ 8 ] } } ) , c . RenderTexture = function ( a , b , d , e , f , g ) { "undefined" == typeof e && ( e = "" ) , "undefined" == typeof f && ( f = c . scaleModes . DEFAULT ) , "undefined" == typeof g && ( g = 1 ) , this . game = a , this . key = e , this . type = c . RENDERTEXTURE , this . matrix = new PIXI . Matrix , PIXI . RenderTexture . call ( this , b , d , this . game . renderer , f , g ) , this . render = c . RenderTexture . prototype . render } , c . RenderTexture . prototype = Object . create ( PIXI . RenderTexture . prototype ) , c . RenderTexture . prototype . constructor = c . RenderTexture , c . RenderTexture . prototype . renderXY = function ( a , b , c , d ) { this . matrix . tx = b , this . matrix . ty = c , this . renderer . type === PIXI . WEBGL _RENDERER ? this . renderWebGL ( a , this . matrix , d ) : this . renderCanvas ( a , this . matrix , d ) } , c . RenderTexture . prototype . render = function ( a , b , c ) { this . matrix . tx = b . x , this . matrix . ty = b . y , this . renderer . type === PIXI . WEBGL _RENDERER ? this . renderWebGL ( a , this . matrix , c ) : this . renderCanvas ( a , this . matrix , c ) } , c . SpriteBatch = function ( a , b , d , e ) { ( "undefined" == typeof b || null === b ) && ( b = a . world ) , PIXI . SpriteBatch . call ( this ) , c . Group . call ( this , a , b , d , e ) , this . type = c . SPRITEBATCH } , c . SpriteBatch . prototype = c . Utils . extend ( ! 0 , c . SpriteBatch . prototype , c . Group . prototype , PIXI . SpriteBatch . prototype ) , c . SpriteBatch . prototype . constructor = c . SpriteBatch , c . RetroFont = function ( a , b , d , e , f , g , h , i , j , k ) { if ( ! a . cache . checkImageKey ( b ) ) return ! 1 ; ( "undefined" == typeof g || null === g ) && ( g = a . cache . getImage ( b ) . width / d ) , this . characterWidth = d , this . characterHeight = e , this . characterSpacingX = h || 0 , this . characterSpacingY = i || 0 , this . characterPerRow = g , this . offsetX = j || 0 , this . offsetY = k || 0 , this . align = "left" , this . multiLine = ! 1 , this . autoUpperCase = ! 0 , this . customSpacingX = 0 , this . customSpacingY = 0 , this . fixedWidth = 0 , this . fontSet = a . cache . getImage ( b ) , this . _text = "" , this . grabData = [ ] , this . frameData = new c . FrameData ; for ( var l = this . offsetX , m = this . offsetY , n = 0 , o = 0 ; o < f . length ; o ++ ) { var p = a . rnd . uuid ( ) , q = this . frameData . addFrame ( new c . Frame ( o , l , m , this . characterWidth , this . characterHeight , "" , p ) ) ; this . grabData [ f . charCodeAt ( o ) ] = q . index , PIXI . TextureCache [ p ] = new PIXI . Texture ( PIXI . BaseTextureCache [ b ] , { x : l , y : m , width : this . characterWidth , height : this . characterHeight } ) , n ++ , n == this . characterPerRow ? ( n = 0 , l = this . offsetX , m += this . characterHeight + this . characterSpacingY ) : l += this . characterWidth + this . characterSpacingX } a . cache . updateFrameData ( b , this . frameData ) , this . stamp = new c . Image ( a , 0 , 0 , b , 0 ) , c . RenderTexture . call ( this , a , 100 , 100 , "" , c . scaleModes . NEAREST ) , this . type = c . RETROFONT } , c . RetroFont . prototype = Object . create ( c . RenderTexture . prototype ) , c . RetroFont . prototype . constructor = c . RetroFont , c . RetroFont . ALIGN _LEFT = "left" , c . RetroFont . ALIGN _RIGHT = "right" , c . RetroFont . ALIGN _CENTER = "center" , c . RetroFont . TEXT _SET1 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" , c . RetroFont . TEXT _SET2 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . RetroFont . TEXT _SET3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 " , c . RetroFont . TEXT _SET4 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789" , c . RetroFont . TEXT _SET5 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789" , c . RetroFont . TEXT _SET6 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' " , c . RetroFont . TEXT _SET7 = "AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39" , c . RetroFont . TEXT _SET8 = "0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . RetroFont . TEXT _SET9 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!" , c . RetroFont . TEXT _SET10 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . Ret
} , insert : function ( a ) { var b , c = 0 ; if ( null != this . nodes [ 0 ] && ( b = this . getIndex ( a ) , - 1 !== b ) ) return void this . nodes [ b ] . insert ( a ) ; if ( this . objects . push ( a ) , this . objects . length > this . maxObjects && this . level < this . maxLevels ) for ( null == this . nodes [ 0 ] && this . split ( ) ; c < this . objects . length ; ) b = this . getIndex ( this . objects [ c ] ) , - 1 !== b ? this . nodes [ b ] . insert ( this . objects . splice ( c , 1 ) [ 0 ] ) : c ++ } , getIndex : function ( a ) { var b = - 1 ; return a . x < this . bounds . right && a . right < this . bounds . right ? a . y < this . bounds . bottom && a . bottom < this . bounds . bottom ? b = 1 : a . y > this . bounds . bottom && ( b = 2 ) : a . x > this . bounds . right && ( a . y < this . bounds . bottom && a . bottom < this . bounds . bottom ? b = 0 : a . y > this . bounds . bottom && ( b = 3 ) ) , b } , retrieve : function ( a ) { if ( a instanceof c . Rectangle ) var b = this . objects , d = this . getIndex ( a ) ; else { if ( ! a . body ) return this . _empty ; var b = this . objects , d = this . getIndex ( a . body ) } return this . nodes [ 0 ] && ( - 1 !== d ? b = b . concat ( this . nodes [ d ] . retrieve ( a ) ) : ( b = b . concat ( this . nodes [ 0 ] . retrieve ( a ) ) , b = b . concat ( this . nodes [ 1 ] . retrieve ( a ) ) , b = b . concat ( this . nodes [ 2 ] . retrieve ( a ) ) , b = b . concat ( this . nodes [ 3 ] . retrieve ( a ) ) ) ) , b } , clear : function ( ) { this . objects . length = 0 ; for ( var a = this . nodes . length ; a -- ; ) this . nodes [ a ] . clear ( ) , this . nodes . splice ( a , 1 ) ; this . nodes . length = 0 } } , c . QuadTree . prototype . constructor = c . QuadTree , c . Net = function ( a ) { this . game = a } , c . Net . prototype = { getHostName : function ( ) { return window . location && window . location . hostname ? window . location . hostname : null } , checkDomainName : function ( a ) { return - 1 !== window . location . hostname . indexOf ( a ) } , updateQueryString : function ( a , b , c , d ) { "undefined" == typeof c && ( c = ! 1 ) , ( "undefined" == typeof d || "" === d ) && ( d = window . location . href ) ; var e = "" , f = new RegExp ( "([?|&])" + a + "=.*?(&|#|$)(.*)" , "gi" ) ; if ( f . test ( d ) ) e = "undefined" != typeof b && null !== b ? d . replace ( f , "$1" + a + "=" + b + "$2$3" ) : d . replace ( f , "$1$3" ) . replace ( /(&|\?)$/ , "" ) ; else if ( "undefined" != typeof b && null !== b ) { var g = - 1 !== d . indexOf ( "?" ) ? "&" : "?" , h = d . split ( "#" ) ; d = h [ 0 ] + g + a + "=" + b , h [ 1 ] && ( d += "#" + h [ 1 ] ) , e = d } else e = d ; return c ? void ( window . location . href = e ) : e } , getQueryString : function ( a ) { "undefined" == typeof a && ( a = "" ) ; var b = { } , c = location . search . substring ( 1 ) . split ( "&" ) ; for ( var d in c ) { var e = c [ d ] . split ( "=" ) ; if ( e . length > 1 ) { if ( a && a == this . decodeURI ( e [ 0 ] ) ) return this . decodeURI ( e [ 1 ] ) ; b [ this . decodeURI ( e [ 0 ] ) ] = this . decodeURI ( e [ 1 ] ) } } return b } , decodeURI : function ( a ) { return decodeURIComponent ( a . replace ( /\+/g , " " ) ) } } , c . Net . prototype . constructor = c . Net , c . TweenManager = function ( a ) { this . game = a , this . _tweens = [ ] , this . _add = [ ] , this . game . onPause . add ( this . _pauseAll , this ) , this . game . onResume . add ( this . _resumeAll , this ) } , c . TweenManager . prototype = { getAll : function ( ) { return this . _tweens } , removeAll : function ( ) { for ( var a = 0 ; a < this . _tweens . length ; a ++ ) this . _tweens [ a ] . pendingDelete = ! 0 ; this . _add = [ ] } , add : function ( a ) { a . _manager = this , this . _add . push ( a ) } , create : function ( a ) { return new c . Tween ( a , this . game , this ) } , remove : function ( a ) { var b = this . _tweens . indexOf ( a ) ; - 1 !== b ? this . _tweens [ b ] . pendingDelete = ! 0 : ( b = this . _add . indexOf ( a ) , - 1 !== b && ( this . _add [ b ] . pendingDelete = ! 0 ) ) } , update : function ( ) { var a = this . _add . length , b = this . _tweens . length ; if ( 0 === b && 0 === a ) return ! 1 ; for ( var c = 0 ; b > c ; ) this . _tweens [ c ] . update ( this . game . time . now ) ? c ++ : ( this . _tweens . splice ( c , 1 ) , b -- ) ; return a > 0 && ( this . _tweens = this . _tweens . concat ( this . _add ) , this . _add . length = 0 ) , ! 0 } , isTweening : function ( a ) { return this . _tweens . some ( function ( b ) { return b . _object === a } ) } , _pauseAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . _pause ( ) } , _resumeAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . _resume ( ) } , pauseAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . pause ( ) } , resumeAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . resume ( ! 0 ) } } , c . TweenManager . prototype . constructor = c . TweenManager , c . Tween = function ( a , b , d ) { this . _object = a , this . game = b , this . _manager = d , this . _valuesStart = { } , this . _valuesEnd = { } , this . _valuesStartRepeat = { } , this . _duration = 1e3 , this . _repeat = 0 , this . _yoyo = ! 1 , this . _reversed = ! 1 , this . _delayTime = 0 , this . _startTime = null , this . _easingFunction = c . Easing . Default , this . _interpolationFunction = c . Math . linearInterpolation , this . _chainedTweens = [ ] , this . _onStartCallbackFired = ! 1 , this . _onUpdateCallback = null , this . _onUpdateCallbac
else for ( var d = 0 , e = a . length ; e > d ; d ++ ) b ? c . push ( a [ d ] ) : this . getFrameByName ( a [ d ] ) && c . push ( this . getFrameByName ( a [ d ] ) . index ) ; return c } } , c . FrameData . prototype . constructor = c . FrameData , Object . defineProperty ( c . FrameData . prototype , "total" , { get : function ( ) { return this . _frames . length } } ) , c . AnimationParser = { spriteSheet : function ( a , b , d , e , f , g , h ) { var i = a . cache . getImage ( b ) ; if ( null == i ) return null ; var j = i . width , k = i . height ; 0 >= d && ( d = Math . floor ( - j / Math . min ( - 1 , d ) ) ) , 0 >= e && ( e = Math . floor ( - k / Math . min ( - 1 , e ) ) ) ; var l = Math . floor ( ( j - g ) / ( d + h ) ) , m = Math . floor ( ( k - g ) / ( e + h ) ) , n = l * m ; if ( - 1 !== f && ( n = f ) , 0 === j || 0 === k || d > j || e > k || 0 === n ) return console . warn ( "Phaser.AnimationParser.spriteSheet: '" + b + "'s width/height zero or width/height < given frameWidth/frameHeight" ) , null ; for ( var o = new c . FrameData , p = g , q = g , r = 0 ; n > r ; r ++ ) { var s = a . rnd . uuid ( ) ; o . addFrame ( new c . Frame ( r , p , q , d , e , "" , s ) ) , PIXI . TextureCache [ s ] = new PIXI . Texture ( PIXI . BaseTextureCache [ b ] , { x : p , y : q , width : d , height : e } ) , p += d + h , p + d > j && ( p = g , q += e + h ) } return o } , JSONData : function ( a , b , d ) { if ( ! b . frames ) return console . warn ( "Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array" ) , void console . log ( b ) ; for ( var e , f = new c . FrameData , g = b . frames , h = 0 ; h < g . length ; h ++ ) { var i = a . rnd . uuid ( ) ; e = f . addFrame ( new c . Frame ( h , g [ h ] . frame . x , g [ h ] . frame . y , g [ h ] . frame . w , g [ h ] . frame . h , g [ h ] . filename , i ) ) , PIXI . TextureCache [ i ] = new PIXI . Texture ( PIXI . BaseTextureCache [ d ] , { x : g [ h ] . frame . x , y : g [ h ] . frame . y , width : g [ h ] . frame . w , height : g [ h ] . frame . h } ) , g [ h ] . trimmed && e . setTrim ( g [ h ] . trimmed , g [ h ] . sourceSize . w , g [ h ] . sourceSize . h , g [ h ] . spriteSourceSize . x , g [ h ] . spriteSourceSize . y , g [ h ] . spriteSourceSize . w , g [ h ] . spriteSourceSize . h ) } return f } , JSONDataHash : function ( a , b , d ) { if ( ! b . frames ) return console . warn ( "Phaser.AnimationParser.JSONDataHash: Invalid Texture Atlas JSON given, missing 'frames' object" ) , void console . log ( b ) ; var e , f = new c . FrameData , g = b . frames , h = 0 ; for ( var i in g ) { var j = a . rnd . uuid ( ) ; e = f . addFrame ( new c . Frame ( h , g [ i ] . frame . x , g [ i ] . frame . y , g [ i ] . frame . w , g [ i ] . frame . h , i , j ) ) , PIXI . TextureCache [ j ] = new PIXI . Texture ( PIXI . BaseTextureCache [ d ] , { x : g [ i ] . frame . x , y : g [ i ] . frame . y , width : g [ i ] . frame . w , height : g [ i ] . frame . h } ) , g [ i ] . trimmed && e . setTrim ( g [ i ] . trimmed , g [ i ] . sourceSize . w , g [ i ] . sourceSize . h , g [ i ] . spriteSourceSize . x , g [ i ] . spriteSourceSize . y , g [ i ] . spriteSourceSize . w , g [ i ] . spriteSourceSize . h ) , h ++ } return f } , XMLData : function ( a , b , d ) { if ( ! b . getElementsByTagName ( "TextureAtlas" ) ) return void console . warn ( "Phaser.AnimationParser.XMLData: Invalid Texture Atlas XML given, missing <TextureAtlas> tag" ) ; for ( var e , f , g , h , i , j , k , l , m , n , o , p , q = new c . FrameData , r = b . getElementsByTagName ( "SubTexture" ) , s = 0 ; s < r . length ; s ++ ) f = a . rnd . uuid ( ) , h = r [ s ] . attributes , g = h . name . value , i = parseInt ( h . x . value , 10 ) , j = parseInt ( h . y . value , 10 ) , k = parseInt ( h . width . value , 10 ) , l = parseInt ( h . height . value , 10 ) , m = null , n = null , h . frameX && ( m = Math . abs ( parseInt ( h . frameX . value , 10 ) ) , n = Math . abs ( parseInt ( h . frameY . value , 10 ) ) , o = parseInt ( h . frameWidth . value , 10 ) , p = parseInt ( h . frameHeight . value , 10 ) ) , e = q . addFrame ( new c . Frame ( s , i , j , k , l , g , f ) ) , PIXI . TextureCache [ f ] = new PIXI . Texture ( PIXI . BaseTextureCache [ d ] , { x : i , y : j , width : k , height : l } ) , ( null !== m || null !== n ) && e . setTrim ( ! 0 , k , l , m , n , o , p ) ; return q } } , c . Cache = function ( a ) { this . game = a , this . autoResolveURL = ! 1 , this . _canvases = { } , this . _images = { } , this . _textures = { } , this . _sounds = { } , this . _text = { } , this . _json = { } , this . _xml = { } , this . _physics = { } , this . _tilemaps = { } , this . _binary = { } , this . _bitmapDatas = { } , this . _bitmapFont = { } , this . _urlMap = { } , this . _urlResolver = new Image , this . _urlTemp = null , this . addDefaultImage ( ) , this . addMissingImage ( ) , this . onSoundUnlock = new c . Signal , this . _cacheMap = [ ] , this . _cacheMap [ c . Cache . CANVAS ] = this . _canvases , this . _cacheMap [ c . Cache . IMAGE ] = this . _images , this . _cacheMap [ c . Cache . TEXTURE ] = this . _textures , this . _cacheMap [ c . Cache . SOUND ] = this . _sounds , this . _cacheMap [ c . Cache . TEXT ] = this . _text , this . _cacheMap [ c . Cache . PHYSICS ] = this . _physics , this . _cacheMap [ c . Cache . TILEMAP ] = this . _tilemaps , this . _cacheMap [ c . Cache . BINARY ] = this . _binary , this . _cacheMap [ c . Cache . BITMAPDATA ] = this . _bitmapDatas , this . _cacheMap [ c . Cache . BITMAPFONT ] = this . _bitmapFont , this . _cacheMap [ c . Cache . JSON ] = this . _json , this . _cacheMap [ c . Cache . XML ] = this . _xml } , c . Cache . CANVAS = 1 , c . Cache . IMAGE = 2 , c . Cache
} , nextFile : function ( a , b ) { this . progressFloat += this . _progressChunk , this . progress = Math . round ( this . progressFloat ) , this . progress > 100 && ( this . progress = 100 ) , null !== this . preloadSprite && ( 0 === this . preloadSprite . direction ? this . preloadSprite . rect . width = Math . floor ( this . preloadSprite . width / 100 * this . progress ) : this . preloadSprite . rect . height = Math . floor ( this . preloadSprite . height / 100 * this . progress ) , this . preloadSprite . sprite . updateCrop ( ) ) , this . onFileComplete . dispatch ( this . progress , this . _fileList [ a ] . key , b , this . totalLoadedFiles ( ) , this . _fileList . length ) , this . totalQueuedFiles ( ) > 0 ? ( this . _fileIndex ++ , this . loadFile ( ) ) : ( this . hasLoaded = ! 0 , this . isLoading = ! 1 , this . removeAll ( ) , this . onLoadComplete . dispatch ( ) ) } , totalLoadedFiles : function ( ) { for ( var a = 0 , b = 0 ; b < this . _fileList . length ; b ++ ) this . _fileList [ b ] . loaded && a ++ ; return a } , totalQueuedFiles : function ( ) { for ( var a = 0 , b = 0 ; b < this . _fileList . length ; b ++ ) this . _fileList [ b ] . loaded === ! 1 && a ++ ; return a } , totalLoadedPacks : function ( ) { for ( var a = 0 , b = 0 ; b < this . _packList . length ; b ++ ) this . _packList [ b ] . loaded && a ++ ; return a } , totalQueuedPacks : function ( ) { for ( var a = 0 , b = 0 ; b < this . _packList . length ; b ++ ) this . _packList [ b ] . loaded === ! 1 && a ++ ; return a } } , c . Loader . prototype . constructor = c . Loader , c . LoaderParser = { bitmapFont : function ( a , b , c , d , e ) { var f = { } , g = b . getElementsByTagName ( "info" ) [ 0 ] , h = b . getElementsByTagName ( "common" ) [ 0 ] ; f . font = g . getAttribute ( "face" ) , f . size = parseInt ( g . getAttribute ( "size" ) , 10 ) , f . lineHeight = parseInt ( h . getAttribute ( "lineHeight" ) , 10 ) + e , f . chars = { } ; for ( var i = b . getElementsByTagName ( "char" ) , j = 0 ; j < i . length ; j ++ ) { var k = parseInt ( i [ j ] . getAttribute ( "id" ) , 10 ) , l = new PIXI . Rectangle ( parseInt ( i [ j ] . getAttribute ( "x" ) , 10 ) , parseInt ( i [ j ] . getAttribute ( "y" ) , 10 ) , parseInt ( i [ j ] . getAttribute ( "width" ) , 10 ) , parseInt ( i [ j ] . getAttribute ( "height" ) , 10 ) ) ; f . chars [ k ] = { xOffset : parseInt ( i [ j ] . getAttribute ( "xoffset" ) , 10 ) , yOffset : parseInt ( i [ j ] . getAttribute ( "yoffset" ) , 10 ) , xAdvance : parseInt ( i [ j ] . getAttribute ( "xadvance" ) , 10 ) + d , kerning : { } , texture : PIXI . TextureCache [ c ] = new PIXI . Texture ( PIXI . BaseTextureCache [ c ] , l ) } } var m = b . getElementsByTagName ( "kerning" ) ; for ( j = 0 ; j < m . length ; j ++ ) { var n = parseInt ( m [ j ] . getAttribute ( "first" ) , 10 ) , o = parseInt ( m [ j ] . getAttribute ( "second" ) , 10 ) , p = parseInt ( m [ j ] . getAttribute ( "amount" ) , 10 ) ; f . chars [ o ] . kerning [ n ] = p } PIXI . BitmapText . fonts [ c ] = f } } , c . AudioSprite = function ( a , b ) { this . game = a , this . key = b , this . config = this . game . cache . getJSON ( b + "-audioatlas" ) , this . autoplayKey = null , this . autoplay = ! 1 , this . sounds = { } ; for ( var c in this . config . spritemap ) { var d = this . config . spritemap [ c ] , e = this . game . add . sound ( this . key ) ; d . loop ? e . addMarker ( c , d . start , d . end - d . start , null , ! 0 ) : e . addMarker ( c , d . start , d . end - d . start , null , ! 1 ) , this . sounds [ c ] = e } this . config . autoplay && ( this . autoplayKey = this . config . autoplay , this . play ( this . autoplayKey ) , this . autoplay = this . sounds [ this . autoplayKey ] ) } , c . AudioSprite . prototype = { play : function ( a , b ) { return "undefined" == typeof b && ( b = 1 ) , this . sounds [ a ] . play ( a , null , b ) } , stop : function ( a ) { if ( a ) this . sounds [ a ] . stop ( ) ; else for ( var b in this . sounds ) this . sounds [ b ] . stop ( ) } , get : function ( a ) { return this . sounds [ a ] } } , c . AudioSprite . prototype . constructor = c . AudioSprite , c . Sound = function ( a , b , d , e , f ) { "undefined" == typeof d && ( d = 1 ) , "undefined" == typeof e && ( e = ! 1 ) , "undefined" == typeof f && ( f = a . sound . connectToMaster ) , this . game = a , this . name = b , this . key = b , this . loop = e , this . volume = d , this . markers = { } , this . context = null , this . autoplay = ! 1 , this . totalDuration = 0 , this . startTime = 0 , this . currentTime = 0 , this . duration = 0 , this . durationMS = 0 , this . position = 0 , this . stopTime = 0 , this . paused = ! 1 , this . pausedPosition = 0 , this . pausedTime = 0 , this . isPlaying = ! 1 , this . currentMarker = "" , this . pendingPlayback = ! 1 , this . override = ! 1 , this . allowMultiple = ! 1 , this . usingWebAudio = this . game . sound . usingWebAudio , this . usingAudioTag = this . game . sound . usingAudioTag , this . externalNode = null , this . masterGainNode = null , this . gainNode = null , this . usingWebAudio ? ( this . context = this . game . sound . context , this . masterGainNode = this . game . sound . masterGain , this . gainNode = "undefined" == typeof this . context . createGain ? this . context . createGainNode ( ) : this . context . createGain ( ) , this . gainNode . gain . value = d * this . game . sound . volume , f && this . gainNode . connect ( this . masterGainNode ) ) : this . game . cache . getSound ( b ) && this . game . cache . i
} , c . Physics . ARCADE = 0 , c . Physics . P2JS = 1 , c . Physics . NINJA = 2 , c . Physics . BOX2D = 3 , c . Physics . CHIPMUNK = 4 , c . Physics . prototype = { parseConfig : function ( ) { this . config . hasOwnProperty ( "arcade" ) && this . config . arcade !== ! 0 || ! c . Physics . hasOwnProperty ( "Arcade" ) || ( this . arcade = new c . Physics . Arcade ( this . game ) , this . game . time . deltaCap = . 2 ) , this . config . hasOwnProperty ( "ninja" ) && this . config . ninja === ! 0 && c . Physics . hasOwnProperty ( "Ninja" ) && ( this . ninja = new c . Physics . Ninja ( this . game ) ) , this . config . hasOwnProperty ( "p2" ) && this . config . p2 === ! 0 && c . Physics . hasOwnProperty ( "P2" ) && ( this . p2 = new c . Physics . P2 ( this . game , this . config ) ) , this . config . hasOwnProperty ( "box2d" ) && this . config . box2d === ! 0 && c . Physics . hasOwnProperty ( "BOX2D" ) && ( this . box2d = new c . Physics . BOX2D ( this . game , this . config ) ) } , startSystem : function ( a ) { if ( a === c . Physics . ARCADE ? this . arcade = new c . Physics . Arcade ( this . game ) : a === c . Physics . P2JS && ( this . p2 = new c . Physics . P2 ( this . game , this . config ) ) , a === c . Physics . NINJA ) this . ninja = new c . Physics . Ninja ( this . game ) ; else if ( a === c . Physics . BOX2D && null === this . box2d ) this . box2d = new c . Physics . Box2D ( this . game , this . config ) ; else if ( a === c . Physics . CHIPMUNK && null === this . chipmunk ) throw new Error ( "The Chipmunk physics system has not been implemented yet." ) } , enable : function ( a , b , d ) { "undefined" == typeof b && ( b = c . Physics . ARCADE ) , "undefined" == typeof d && ( d = ! 1 ) , b === c . Physics . ARCADE ? this . arcade . enable ( a ) : b === c . Physics . P2JS && this . p2 ? this . p2 . enable ( a , d ) : b === c . Physics . NINJA && this . ninja ? this . ninja . enableAABB ( a ) : b === c . Physics . BOX2D && this . box2d && this . box2d . enable ( a ) } , preUpdate : function ( ) { this . p2 && this . p2 . preUpdate ( ) , this . box2d && this . box2d . preUpdate ( ) } , update : function ( ) { this . p2 && this . p2 . update ( ) , this . box2d && this . box2d . update ( ) } , setBoundsToWorld : function ( ) { this . arcade && this . arcade . setBoundsToWorld ( ) , this . ninja && this . ninja . setBoundsToWorld ( ) , this . p2 && this . p2 . setBoundsToWorld ( ) , this . box2d && this . box2d . setBoundsToWorld ( ) } , clear : function ( ) { this . p2 && this . p2 . clear ( ) , this . box2d && this . box2d . clear ( ) } , destroy : function ( ) { this . p2 && this . p2 . destroy ( ) , this . box2d && this . box2d . destroy ( ) , this . arcade = null , this . ninja = null , this . p2 = null , this . box2d = null } } , c . Physics . prototype . constructor = c . Physics , c . Particles = function ( a ) { this . game = a , this . emitters = { } , this . ID = 0 } , c . Particles . prototype = { add : function ( a ) { return this . emitters [ a . name ] = a , a } , remove : function ( a ) { delete this . emitters [ a . name ] } , update : function ( ) { for ( var a in this . emitters ) this . emitters [ a ] . exists && this . emitters [ a ] . update ( ) } } , c . Particles . prototype . constructor = c . Particles , "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = c ) , exports . Phaser = c ) : "undefined" != typeof define && define . amd ? define ( "Phaser" , function ( ) { return b . Phaser = c } ( ) ) : b . Phaser = c } . call ( this ) ;