2016-11-23 00:59:32 +00:00
/* Phaser v2.7.0 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
2016-11-22 01:36:48 +00:00
2016-11-23 00:59:32 +00:00
( function ( ) { function a ( a , b , c , e ) { var f = a . createTexture ( ) ; return a . bindTexture ( a . TEXTURE _2D , f ) , a . texParameteri ( a . TEXTURE _2D , a . TEXTURE _WRAP _S , a . CLAMP _TO _EDGE ) , a . texParameteri ( a . TEXTURE _2D , a . TEXTURE _WRAP _T , a . CLAMP _TO _EDGE ) , a . texParameteri ( a . TEXTURE _2D , a . TEXTURE _MAG _FILTER , e === d . scaleModes . LINEAR ? a . LINEAR : a . NEAREST ) , a . texParameteri ( a . TEXTURE _2D , a . TEXTURE _MIN _FILTER , e === d . scaleModes . LINEAR ? a . LINEAR : a . NEAREST ) , a . texImage2D ( a . TEXTURE _2D , 0 , a . RGBA , b , c , 0 , a . RGBA , a . UNSIGNED _BYTE , null ) , f } function b ( b , c , d , f , g ) { var h = b . createFramebuffer ( ) , i = b . createRenderbuffer ( ) , j = null , k = 0 ; return b . activeTexture ( b . TEXTURE0 + g ) , b . bindFramebuffer ( b . FRAMEBUFFER , h ) , b . bindRenderbuffer ( b . RENDERBUFFER , i ) , b . framebufferRenderbuffer ( b . FRAMEBUFFER , b . DEPTH _STENCIL _ATTACHMENT , b . RENDERBUFFER , this . renderBuffer ) , j = a ( b , c , d , f ) , b . framebufferTexture2D ( b . FRAMEBUFFER , b . COLOR _ATTACHMENT0 , b . TEXTURE _2D , j , 0 ) , k = b . checkFramebufferStatus ( b . FRAMEBUFFER ) , k !== b . FRAMEBUFFER _COMPLETE && console . error ( "Incomplete GL framebuffer. " , e [ k ] ) , h . width = c , h . height = d , h . targetTexture = j , h . renderBuffer = i , h } var c = this , d = d || { } ; d . DisplayObject = function ( ) { this . position = new d . Point ( 0 , 0 ) , this . scale = new d . Point ( 1 , 1 ) , this . pivot = new d . Point ( 0 , 0 ) , this . rotation = 0 , this . alpha = 1 , this . visible = ! 0 , this . hitArea = null , this . renderable = ! 1 , this . parent = null , this . worldAlpha = 1 , this . worldTransform = new d . Matrix , this . worldPosition = new d . Point ( 0 , 0 ) , this . worldScale = new d . Point ( 1 , 1 ) , this . worldRotation = 0 , this . filterArea = null , this . _sr = 0 , this . _cr = 1 , this . _bounds = new d . Rectangle ( 0 , 0 , 0 , 0 ) , this . _currentBounds = null , this . _mask = null , this . _cacheAsBitmap = ! 1 , this . _cacheIsDirty = ! 1 } , d . DisplayObject . prototype . constructor = d . DisplayObject , d . DisplayObject . prototype = { destroy : function ( ) { if ( this . children ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . destroy ( ) ; this . children = [ ] } this . hitArea = null , this . parent = null , this . worldTransform = null , this . filterArea = null , this . renderable = ! 1 , this . _bounds = null , this . _currentBounds = null , this . _mask = null , this . _destroyCachedSprite ( ) } , updateTransform : function ( a ) { if ( ! a && ! this . parent && ! this . game ) return this ; var b = this . parent ; a ? b = a : this . parent || ( b = this . game . world ) ; var c , d , e , f , g , h , i = b . worldTransform , j = this . worldTransform ; return this . rotation % Phaser . Math . PI2 ? ( this . rotation !== this . rotationCache && ( this . rotationCache = this . rotation , this . _sr = Math . sin ( this . rotation ) , this . _cr = Math . cos ( this . rotation ) ) , c = this . _cr * this . scale . x , d = this . _sr * this . scale . x , e = - this . _sr * this . scale . y , f = this . _cr * this . scale . y , g = this . position . x , h = this . position . y , ( this . pivot . x || this . pivot . y ) && ( g -= this . pivot . x * c + this . pivot . y * e , h -= this . pivot . x * d + this . pivot . y * f ) , j . a = c * i . a + d * i . c , j . b = c * i . b + d * i . d , j . c = e * i . a + f * i . c , j . d = e * i . b + f * i . d , j . tx = g * i . a + h * i . c + i . tx , j . ty = g * i . b + h * i . d + i . ty ) : ( c = this . scale . x , f = this . scale . y , g = this . position . x - this . pivot . x * c , h = this . position . y - this . pivot . y * f , j . a = c * i . a , j . b = c * i . b , j . c = f * i . c , j . d = f * i . d , j . tx = g * i . a + h * i . c + i . tx , j . ty = g * i . b + h * i . d + i . ty ) , this . worldAlpha = this . alpha * b . worldAlpha , this . worldPosition . set ( j . tx , j . ty ) , this . worldScale . set ( this . scale . x * Math . sqrt ( j . a * j . a + j . c * j . c ) , this . scale . y * Math . sqrt ( j . b * j . b + j . d * j . d ) ) , this . worldRotation = Math . atan2 ( - j . c , j . d ) , this . _currentBounds = null , this . transformCallback && this . transformCallback . call ( this . transformCallbackContext , j , i ) , this } , preUpdate : function ( ) { } , generateTexture : function ( a , b , c ) { var e = this . getLocalBounds ( ) , f = new Phaser . RenderTexture ( 0 | e . width , 0 | e . height , c , b , a ) ; return d . DisplayObject . _tempMatrix . tx = - e . x , d . DisplayObject . _tempMatrix . ty = - e . y , f . render ( this , d . DisplayObject . _tempMatrix ) , f } , updateCache : function ( ) { return this . _generateCachedSprite ( ) , this } , toGlobal : function ( a ) { return this . updateTransform ( ) , this . worldTransform . apply ( a ) } , toLocal : function ( a , b ) { return b && ( a = b . toGlobal ( a ) ) , this . updateTransform ( ) , this . worldTransform . applyInverse ( a ) } , _renderCachedSprite : function ( a ) { this . _cachedSprite . worldAlpha = this . worldAlpha , a . gl ? d . Sprite . prototype . _renderWebGL . call ( this . _cachedSprite , a ) : d . Sprite . prototype . _renderCanvas . call ( this . _cachedSprite , a ) } , _generateCachedSprite : function ( ) { this . _cacheAsBitmap = ! 1 ; var a = this . getLocalBounds ( ) ; if ( a . width = Math . max ( 1 , Math . ceil ( a . width ) ) , a . height = Math . max ( 1 , Math . ceil ( a . height ) ) , this . updateTransform ( )
this . vertexSrc = [ "attribute vec2 aVertexPosition;" , "uniform mat3 translationMatrix;" , "uniform vec2 projectionVector;" , "uniform vec2 offsetVector;" , "uniform vec3 tint;" , "uniform float alpha;" , "uniform vec3 color;" , "uniform float flipY;" , "varying vec4 vColor;" , "void main(void) {" , " vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);" , " v -= offsetVector.xyx;" , " gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);" , " vColor = vec4(color * alpha * tint, alpha);" , "}" ] , this . init ( ) } , d . ComplexPrimitiveShader . prototype . constructor = d . ComplexPrimitiveShader , d . ComplexPrimitiveShader . prototype . init = function ( ) { var a = this . gl , b = d . compileProgram ( a , this . vertexSrc , this . fragmentSrc ) ; a . useProgram ( b ) , this . projectionVector = a . getUniformLocation ( b , "projectionVector" ) , this . offsetVector = a . getUniformLocation ( b , "offsetVector" ) , this . tintColor = a . getUniformLocation ( b , "tint" ) , this . color = a . getUniformLocation ( b , "color" ) , this . flipY = a . getUniformLocation ( b , "flipY" ) , this . aVertexPosition = a . getAttribLocation ( b , "aVertexPosition" ) , this . attributes = [ this . aVertexPosition , this . colorAttribute ] , this . translationMatrix = a . getUniformLocation ( b , "translationMatrix" ) , this . alpha = a . getUniformLocation ( b , "alpha" ) , this . program = b } , d . ComplexPrimitiveShader . prototype . destroy = function ( ) { this . gl . deleteProgram ( this . program ) , this . uniforms = null , this . gl = null , this . attribute = null } , d . glContexts = [ ] , d . instances = [ ] , d . _enableMultiTextureToggle = ! 1 , d . WebGLRenderer = function ( a ) { this . game = a , d . defaultRenderer || ( d . defaultRenderer = this ) , this . extensions = { } , this . type = Phaser . WEBGL , this . resolution = a . resolution , this . transparent = a . transparent , this . autoResize = ! 1 , this . preserveDrawingBuffer = a . preserveDrawingBuffer , this . clearBeforeRender = a . clearBeforeRender , this . width = a . width , this . height = a . height , this . view = a . canvas , this . _contextOptions = { alpha : this . transparent , antialias : a . antialias , premultipliedAlpha : this . transparent && "notMultiplied" !== this . transparent , stencil : ! 0 , preserveDrawingBuffer : this . preserveDrawingBuffer } , this . projection = new d . Point , this . offset = new d . Point , this . shaderManager = new d . WebGLShaderManager , this . spriteBatch = new d . WebGLSpriteBatch ( a ) , this . maskManager = new d . WebGLMaskManager , this . filterManager = new d . WebGLFilterManager , this . stencilManager = new d . WebGLStencilManager , this . blendModeManager = new d . WebGLBlendModeManager , this . renderSession = { } , this . currentBatchedTextures = [ ] , this . renderSession . game = this . game , this . renderSession . gl = this . gl , this . renderSession . drawCount = 0 , this . renderSession . shaderManager = this . shaderManager , this . renderSession . maskManager = this . maskManager , this . renderSession . filterManager = this . filterManager , this . renderSession . blendModeManager = this . blendModeManager , this . renderSession . spriteBatch = this . spriteBatch , this . renderSession . stencilManager = this . stencilManager , this . renderSession . renderer = this , this . renderSession . resolution = this . resolution , this . initContext ( ) , this . mapBlendModes ( ) } , d . WebGLRenderer . prototype . constructor = d . WebGLRenderer , d . WebGLRenderer . prototype . initContext = function ( ) { var a = this . view . getContext ( "webgl" , this . _contextOptions ) || this . view . getContext ( "experimental-webgl" , this . _contextOptions ) ; if ( this . gl = a , ! a ) throw new Error ( "This browser does not support webGL. Try using the canvas renderer" ) ; this . maxTextures = a . getParameter ( a . MAX _TEXTURE _IMAGE _UNITS ) , this . glContextId = a . id = d . WebGLRenderer . glContextId ++ , d . glContexts [ this . glContextId ] = a , d . instances [ this . glContextId ] = this , a . disable ( a . DEPTH _TEST ) , a . disable ( a . CULL _FACE ) , a . enable ( a . BLEND ) , this . shaderManager . setContext ( a ) , this . spriteBatch . setContext ( a ) , this . maskManager . setContext ( a ) , this . filterManager . setContext ( a ) , this . blendModeManager . setContext ( a ) , this . stencilManager . setContext ( a ) , this . renderSession . gl = this . gl , this . resize ( this . width , this . height ) , this . extensions . compression = { } , etc1 = a . getExtension ( "WEBGL_compressed_texture_etc1" ) || a . getExtension ( "WEBKIT_WEBGL_compressed_texture_etc1" ) , pvrtc = a . getExtension ( "WEBGL_compressed_texture_pvrtc" ) || a . getExtension ( "WEBKIT_WEBGL_compressed_texture_pvrtc" ) , s3tc = a . getExtension ( "WEBGL_compressed_texture_s3tc" ) || a . getExtension ( " WEBKIT _WEBGL _compre
if ( 0 === this . filterStack . length ) a . colorMask ( ! 0 , ! 0 , ! 0 , ! 0 ) ; else { var s = this . filterStack [ this . filterStack . length - 1 ] ; c = s . _filterArea , n = c . width , o = c . height , p = c . x , q = c . y , r = s . _glFilterTexture . frameBuffer } f . x = n / 2 , f . y = - o / 2 , g . x = p , g . y = q , c = b . _filterArea ; var t = c . x - p , u = c . y - q ; a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , this . vertexArray [ 0 ] = t , this . vertexArray [ 1 ] = u + c . height , this . vertexArray [ 2 ] = t + c . width , this . vertexArray [ 3 ] = u + c . height , this . vertexArray [ 4 ] = t , this . vertexArray [ 5 ] = u , this . vertexArray [ 6 ] = t + c . width , this . vertexArray [ 7 ] = u , a . bufferSubData ( a . ARRAY _BUFFER , 0 , this . vertexArray ) , a . bindBuffer ( a . ARRAY _BUFFER , this . uvBuffer ) , this . uvArray [ 2 ] = c . width / this . width , this . uvArray [ 5 ] = c . height / this . height , this . uvArray [ 6 ] = c . width / this . width , this . uvArray [ 7 ] = c . height / this . height , a . bufferSubData ( a . ARRAY _BUFFER , 0 , this . uvArray ) , a . viewport ( 0 , 0 , n * this . renderSession . resolution , o * this . renderSession . resolution ) , a . bindFramebuffer ( a . FRAMEBUFFER , r ) , a . activeTexture ( a . TEXTURE0 ) , a . bindTexture ( a . TEXTURE _2D , e . texture ) , this . renderSession . stencilManager && this . renderSession . stencilManager . destroy ( ) , this . renderSession . stencilManager = b . _previous _stencil _mgr , b . _previous _stencil _mgr = null , this . renderSession . stencilManager . count > 0 ? a . enable ( a . STENCIL _TEST ) : a . disable ( a . STENCIL _TEST ) , this . applyFilterPass ( m , c , n , o ) , this . texturePool . push ( e ) , b . _glFilterTexture = null } , d . WebGLFilterManager . prototype . applyFilterPass = function ( a , b , c , e ) { var f = this . gl , g = a . shaders [ f . id ] ; g || ( g = new d . PixiShader ( f ) , g . fragmentSrc = a . fragmentSrc , g . uniforms = a . uniforms , g . init ( ! 0 ) , a . shaders [ f . id ] = g ) , this . renderSession . shaderManager . setShader ( g ) , f . uniform2f ( g . projectionVector , c / 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 ++ } , d . 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 ) } , d . 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 [ b ] . destroy ( ) ; this . texturePool = null , a . deleteBuffer ( this . vertexBuffer ) , a . deleteBuffer ( this . uvBuffer ) , a . deleteBuffer ( this . colorBuffer ) , a . deleteBuffer ( this . indexBuffer ) } ; var e = { 36054 : "Incomplete attachment" , 36055 : "Missing attachment" , 36057 : "Incomplete dimensions" , 36061 : "Framebuffer unsupported" } ; return d . FilterTexture = function ( a , c , e , f , g ) { g = "number" == typeof g ? g : 0 , this . gl = a , this . frameBuffer = b ( a , c , e , f || d . scaleModes . DEFAULT , g ) , this . texture = this . frameBuffer . targetTexture , this . width = c , this . height = e , this . renderBuffer = this . frameBuffer . renderBuffer } , d . FilterTexture . prototype . constructor = d . FilterTexture , d . FilterTexture . prototype . clear = function ( ) { var a = this . gl ; a . clearColor ( 0 , 0 , 0 , 0 ) , a . clear ( a . COLOR _BUFFER _BIT ) } , d . FilterTexture . prototype . resize = function ( a , b ) { if ( this . width !== a
this } , clone : function ( a ) { return void 0 === a || null === a ? a = new c . Point ( this . x , this . y ) : a . setTo ( this . x , this . y ) , a } , copyTo : function ( a ) { return a . x = this . x , a . y = this . y , a } , distance : function ( a , b ) { return c . Point . distance ( this , a , b ) } , equals : function ( a ) { return a . x === this . x && a . y === this . y } , angle : function ( a , b ) { return void 0 === b && ( b = ! 1 ) , b ? c . Math . radToDeg ( Math . atan2 ( a . y - this . y , a . x - this . x ) ) : Math . atan2 ( a . y - this . y , a . x - this . x ) } , rotate : function ( a , b , d , e , f ) { return c . Point . rotate ( this , a , b , d , e , f ) } , getMagnitude : function ( ) { return Math . sqrt ( this . x * this . x + this . y * this . y ) } , getMagnitudeSq : function ( ) { return this . x * this . x + this . y * this . y } , setMagnitude : function ( a ) { return this . normalize ( ) . multiply ( a , a ) } , normalize : function ( ) { if ( ! this . isZero ( ) ) { var a = this . getMagnitude ( ) ; this . x /= a , this . y /= a } return this } , isZero : function ( ) { return 0 === this . x && 0 === this . y } , dot : function ( a ) { return this . x * a . x + this . y * a . y } , cross : function ( a ) { return this . x * a . y - this . y * a . x } , perp : function ( ) { return this . setTo ( - this . y , this . x ) } , rperp : function ( ) { return this . setTo ( this . y , - this . x ) } , normalRightHand : function ( ) { return this . setTo ( this . y * - 1 , this . x ) } , floor : function ( ) { return this . setTo ( Math . floor ( this . x ) , Math . floor ( this . y ) ) } , ceil : function ( ) { return this . setTo ( Math . ceil ( this . x ) , Math . ceil ( this . y ) ) } , toString : function ( ) { return "[{Point (x=" + this . x + " y=" + this . y + ")}]" } } , c . Point . prototype . constructor = c . Point , c . Point . add = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x + b . x , d . y = a . y + b . y , d } , c . Point . subtract = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x - b . x , d . y = a . y - b . y , d } , c . Point . multiply = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x * b . x , d . y = a . y * b . y , d } , c . Point . divide = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x / b . x , d . y = a . y / b . y , d } , c . Point . equals = function ( a , b ) { return a . x === b . x && a . y === b . y } , c . Point . angle = function ( a , b ) { return Math . atan2 ( a . y - b . y , a . x - b . x ) } , c . Point . negative = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( - a . x , - a . y ) } , c . Point . multiplyAdd = function ( a , b , d , e ) { return void 0 === e && ( e = new c . Point ) , e . setTo ( a . x + b . x * d , a . y + b . y * d ) } , c . Point . interpolate = function ( a , b , d , e ) { return void 0 === e && ( e = new c . Point ) , e . setTo ( a . x + ( b . x - a . x ) * d , a . y + ( b . y - a . y ) * d ) } , c . Point . perp = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( - a . y , a . x ) } , c . Point . rperp = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( a . y , - a . x ) } , c . Point . distance = function ( a , b , d ) { var e = c . Math . distance ( a . x , a . y , b . x , b . y ) ; return d ? Math . round ( e ) : e } , c . Point . project = function ( a , b , d ) { void 0 === d && ( d = new c . Point ) ; var e = a . dot ( b ) / b . getMagnitudeSq ( ) ; return 0 !== e && d . setTo ( e * b . x , e * b . y ) , d } , c . Point . projectUnit = function ( a , b , d ) { void 0 === d && ( d = new c . Point ) ; var e = a . dot ( b ) ; return 0 !== e && d . setTo ( e * b . x , e * b . y ) , d } , c . Point . normalRightHand = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( a . y * - 1 , a . x ) } , c . Point . normalize = function ( a , b ) { void 0 === b && ( b = new c . Point ) ; var d = a . getMagnitude ( ) ; return 0 !== d && b . setTo ( a . x / d , a . y / d ) , b } , c . Point . rotate = function ( a , b , d , e , f , g ) { if ( f && ( e = c . Math . degToRad ( e ) ) , void 0 === g ) { a . subtract ( b , d ) ; var h = Math . sin ( e ) , i = Math . cos ( e ) , j = i * a . x - h * a . y , k = h * a . x + i * a . y ; a . x = j + b , a . y = k + d } else { var l = e + Math . atan2 ( a . y - d , a . x - b ) ; a . x = b + g * Math . cos ( l ) , a . y = d + g * Math . sin ( l ) } return a } , c . Point . centroid = function ( a , b ) { if ( void 0 === b && ( b = new c . Point ) , "[object Array]" !== Object . prototype . toString . call ( a ) ) throw new Error ( "Phaser.Point. Parameter 'points' must be an array" ) ; var d = a . length ; if ( d < 1 ) throw new Error ( "Phaser.Point. Parameter 'points' array must not be empty" ) ; if ( 1 === d ) return b . copyFrom ( a [ 0 ] ) , b ; for ( var e = 0 ; e < d ; e ++ ) c . Point . add ( b , a [ e ] , b ) ; return b . divide ( d , d ) , b } , c . Point . parse = function ( a , b , d ) { b = b || "x" , d = d || "y" ; var e = new c . Point ; return a [ b ] && ( e . x = parseInt ( a [ b ] , 10 ) ) , a [ d ] && ( e . y = parseInt ( a [ d ] , 10 ) ) , e } , PIXI . Point = c . Point , c . Polygon = function ( ) { this . area = 0 , this . _points = [ ] , arguments . length > 0 && this . setTo . apply ( this , arguments ) , this . closed = ! 0 , this . flattened = ! 1 , this . type = c . POLYGON } , c . Polygon . prototype = { toNumberArray : function ( a ) { void 0 === a && ( a = [ ] ) ; for ( var b = 0 ; b < this . _points . length ; b ++ ) "number" == typeof this . _points [ b ] ? ( a . push ( this . _points [ b ] ) , a . push ( this . _points [ b + 1 ] ) , b ++ ) : ( a . push ( this . _points [ b ] . x ) , a . push ( this . _points [ b ] . y ) ) ; return a } , flatten : function ( ) { return this . _po
null != d && ( this . context = d ) , this . _signal = a , e && ( this . _priority = e ) , f && f . length && ( this . _args = f ) } , c . SignalBinding . prototype = { context : null , _isOnce : ! 1 , _priority : 0 , _args : null , callCount : 0 , active : ! 0 , params : null , execute : function ( a ) { var b , c ; return this . active && this . _listener && ( c = this . params ? this . params . concat ( a ) : a , this . _args && ( c = c . concat ( this . _args ) ) , b = this . _listener . apply ( this . context , c ) , this . callCount ++ , this . _isOnce && this . detach ( ) ) , b } , detach : function ( ) { return this . isBound ( ) ? this . _signal . remove ( this . _listener , this . context ) : null } , isBound : function ( ) { return ! ! this . _signal && ! ! this . _listener } , isOnce : function ( ) { return this . _isOnce } , getListener : function ( ) { return this . _listener } , getSignal : function ( ) { return this . _signal } , _destroy : function ( ) { delete this . _signal , delete this . _listener , delete this . context } , toString : function ( ) { return "[Phaser.SignalBinding isOnce:" + this . _isOnce + ", isBound:" + this . isBound ( ) + ", active:" + this . active + "]" } } , c . SignalBinding . prototype . constructor = c . SignalBinding , c . Filter = function ( a , b , d ) { this . game = a , this . type = c . WEBGL _FILTER , this . passes = [ this ] , this . shaders = [ ] , this . dirty = ! 0 , this . padding = 0 , this . prevPoint = new c . Point ; var e = new Date ; if ( this . uniforms = { resolution : { type : "2f" , value : { x : 256 , y : 256 } } , time : { type : "1f" , value : 0 } , mouse : { type : "2f" , value : { x : 0 , y : 0 } } , date : { type : "4fv" , value : [ e . getFullYear ( ) , e . getMonth ( ) , e . getDate ( ) , 60 * e . getHours ( ) * 60 + 60 * e . getMinutes ( ) + e . getSeconds ( ) ] } , sampleRate : { type : "1f" , value : 44100 } , iChannel0 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } , iChannel1 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } , iChannel2 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } , iChannel3 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } } , b ) for ( var f in b ) this . uniforms [ f ] = b [ f ] ; "string" == typeof d && ( d = d . split ( "\n" ) ) , this . fragmentSrc = d || [ ] } , c . Filter . prototype = { init : function ( ) { } , setResolution : function ( a , b ) { this . uniforms . resolution . value . x = a , this . uniforms . resolution . value . y = b } , update : function ( a ) { if ( a ) { var b = a . x / this . game . width , c = 1 - a . y / this . game . height ; b === this . prevPoint . x && c === this . prevPoint . y || ( this . uniforms . mouse . value . x = b . toFixed ( 2 ) , this . uniforms . mouse . value . y = c . toFixed ( 2 ) , this . prevPoint . set ( b , c ) ) } this . uniforms . time . value = this . game . time . totalElapsedSeconds ( ) } , addToWorld : function ( a , b , c , d , e , f ) { void 0 === e && ( e = 0 ) , void 0 === f && ( f = 0 ) , void 0 !== c && null !== c ? this . width = c : c = this . width , void 0 !== d && null !== d ? this . height = d : d = this . height ; var g = this . game . add . image ( a , b , "__default" ) ; return g . width = c , g . height = d , g . anchor . set ( e , f ) , g . filters = [ this ] , g } , syncUniforms : function ( ) { for ( var a = 0 ; a < this . shaders . length ; a ++ ) this . shaders [ a ] . dirty = ! 0 } , destroy : function ( ) { this . passes . length = 0 , this . shaders . length = 0 , this . fragmentSrc . length = 0 , this . game = null , this . uniforms = null , this . prevPoint = null } } , c . Filter . prototype . constructor = c . Filter , Object . defineProperty ( c . Filter . prototype , "width" , { get : function ( ) { return this . uniforms . resolution . value . x } , set : function ( a ) { this . uniforms . resolution . value . x = a } } ) , Object . defineProperty ( c . Filter . prototype , "height" , { get : function ( ) { return this . uniforms . resolution . value . y } , set : function ( a ) { this . uniforms . resolution . value . y = a } } ) , c . Plugin = function ( a , b ) { void 0 === b && ( b = null ) , this . game = a , this . parent = b , this . active = ! 1 , this . visible = ! 1 , this . hasPreUpdate = ! 1 , this . hasUpdate = ! 1 , this . hasPostUpdate = ! 1 , this . hasRender = ! 1 , this . hasPostRender = ! 1 } , c . Plugin . prototype = { preUpdate : function ( ) { } , update : function ( ) { } , render : function ( ) { } , postRender : function ( ) { } , destroy : function ( ) { this . game = null , this . parent = null , this . active = ! 1 , this . visible = ! 1 } } , c . Plugin . prototype . constructor = c . Plugin , c . PluginManager = function ( a ) { this . game = a , this . plugins = [ ] , this . _len = 0 , this . _i = 0 } , c . PluginManager . prototype = { add : function ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) , c = ! 1 ; return "function" == typeof a ? a = new a ( this . game , this ) : ( a . game = this . game , a . parent = this ) , "function" == typeof a . preUpdate && ( a . hasPreUpdate = ! 0 , c = ! 0 ) , "function" == typeof a . update && ( a . hasUpdate = ! 0 , c = ! 0 ) , "function" == typeof a . postUpdate && ( a . hasPostUpdate = ! 0 , c = ! 0 ) , "function" == typeof a . render && ( a . hasRender = ! 0 , c = ! 0 ) , "function" == typeof a . postRender && ( a . hasPostRender = ! 0 , c = ! 0 ) , c ? ( ( a . hasPreUpdate || a . hasUpdate || a . hasPostUpdate ) && ( a . act
this . create = new c . Create ( this ) , this . plugins = new c . PluginManager ( this ) , this . net = new c . Net ( this ) , this . time . boot ( ) , this . stage . boot ( ) , this . world . boot ( ) , this . scale . boot ( ) , this . input . boot ( ) , this . sound . boot ( ) , this . state . boot ( ) , this . config . enableDebug ? ( this . debug = new c . Utils . Debug ( this ) , this . debug . boot ( ) ) : this . debug = { preUpdate : function ( ) { } , update : function ( ) { } , reset : function ( ) { } } , this . showDebugHeader ( ) , this . isRunning = ! 0 , this . config && this . config . forceSetTimeOut ? this . raf = new c . RequestAnimationFrame ( this , this . config . forceSetTimeOut ) : this . raf = new c . RequestAnimationFrame ( this , ! 1 ) , this . _kickstart = ! 0 , window . focus && ( ! window . PhaserGlobal || window . PhaserGlobal && ! window . PhaserGlobal . stopFocus ) && window . focus ( ) , this . raf . start ( ) ) } , showDebugHeader : function ( ) { if ( ! window . PhaserGlobal || ! window . PhaserGlobal . hideBanner ) { var a = c . VERSION , b = "Canvas" , d = "HTML Audio" , e = 1 ; if ( this . renderType === c . WEBGL ? ( b = "WebGL" , e ++ ) : this . renderType === c . HEADLESS && ( b = "Headless" ) , this . device . webAudio && ( d = "WebAudio" , e ++ ) , this . device . chrome ) { for ( var f = [ "%c %c %c Phaser CE v" + a + " | Pixi.js | " + b + " | " + d + " %c %c %c http://phaser.io %c♥%c♥%c♥" , "background: #fb8cb3" , "background: #d44a52" , "color: #ffffff; background: #871905;" , "background: #d44a52" , "background: #fb8cb3" , "background: #ffffff" ] , g = 0 ; g < 3 ; g ++ ) g < e ? f . push ( "color: #ff2424; background: #fff" ) : f . push ( "color: #959595; background: #fff" ) ; console . log . apply ( console , f ) } else window . console && console . log ( "Phaser v" + a + " | Pixi.js | " + b + " | " + d + " | http://phaser.io" ) } } , setUpRenderer : function ( ) { if ( this . config . canvas ? this . canvas = this . config . canvas : this . canvas = c . Canvas . create ( this , this . width , this . height , this . config . canvasID , ! 0 ) , this . config . canvasStyle ? this . canvas . style = this . config . canvasStyle : this . canvas . style [ "-webkit-full-screen" ] = "width: 100%; height: 100%" , this . renderType === c . HEADLESS || this . renderType === c . CANVAS || this . renderType === c . AUTO && ! this . device . webGL ) { if ( ! this . device . canvas ) throw new Error ( "Phaser.Game - Cannot create Canvas or WebGL context, aborting." ) ; this . renderType = c . CANVAS , this . renderer = new PIXI . CanvasRenderer ( this ) , this . context = this . renderer . context } else ( this . multiTexture || this . renderType === c . WEBGL _MULTI ) && PIXI . enableMultiTexture ( ) , this . renderType = c . WEBGL , this . renderer = new PIXI . WebGLRenderer ( this ) , this . context = null , this . canvas . addEventListener ( "webglcontextlost" , this . contextLost . bind ( this ) , ! 1 ) , this . canvas . addEventListener ( "webglcontextrestored" , this . contextRestored . bind ( this ) , ! 1 ) ; this . device . cocoonJS && ( this . canvas . screencanvas = this . renderType === c . CANVAS ) , this . renderType !== c . HEADLESS && ( this . stage . smoothed = this . antialias , c . Canvas . addToDOM ( this . canvas , this . parent , ! 1 ) , c . Canvas . setTouchAction ( this . canvas ) ) } , contextLost : function ( a ) { a . preventDefault ( ) , this . renderer . contextLost = ! 0 } , contextRestored : function ( ) { this . renderer . initContext ( ) , this . cache . clearGLTextures ( ) , this . renderer . contextLost = ! 1 } , update : function ( a ) { if ( this . time . update ( a ) , this . _kickstart ) return this . updateLogic ( this . time . desiredFpsMult ) , this . updateRender ( this . time . slowMotion * this . time . desiredFps ) , void ( this . _kickstart = ! 1 ) ; if ( this . _spiraling > 1 && ! this . forceSingleUpdate ) this . time . time > this . _nextFpsNotification && ( this . _nextFpsNotification = this . time . time + 1e4 , this . fpsProblemNotifier . dispatch ( ) ) , this . _deltaTime = 0 , this . _spiraling = 0 , this . updateRender ( this . time . slowMotion * this . time . desiredFps ) ; else { var b = 1e3 * this . time . slowMotion / this . time . desiredFps ; this . _deltaTime += Math . max ( Math . min ( 3 * b , this . time . elapsed ) , 0 ) ; var c = 0 ; for ( this . updatesThisFrame = Math . floor ( this . _deltaTime / b ) , this . forceSingleUpdate && ( this . updatesThisFrame = Math . min ( 1 , this . updatesThisFrame ) ) ; this . _deltaTime >= b && ( this . _deltaTime -= b , this . currentUpdateID = c , this . updateLogic ( this . time . desiredFpsMult ) , c ++ , ! this . forceSingleUpdate || 1 !== c ) ; ) this . time . refresh ( ) ; c > this . _lastCount ? this . _spiraling ++ : c < this . _lastCount && ( this . _spiraling = 0 ) , this . _lastCount = c , this . updateRender ( this . _deltaTime / b ) } } , updateLogic : function ( a ) { this . _paused || this . pendingStep ? ( this . scale . pauseUpdate ( ) , this . state . pauseUpdate ( ) , this . debug . preUpdate ( ) ) : ( this . stepping && ( this . pendingStep = ! 0 ) , this . scale . preUpdate ( ) , this . debug . preUpdate ( ) , this . camera . preUpd
this . position . setTo ( this . x , this . y ) , this . circle . x = this . x , this . circle . y = this . y , ( d . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || d . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || d . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === d . totalActivePointers ) && ( d . activePointer = this , d . x = this . x , d . y = this . y , d . position . setTo ( d . x , d . y ) , d . circle . x = d . x , d . circle . y = d . y ) , this . withinGame = this . game . scale . bounds . contains ( this . pageX , this . pageY ) , this . game . paused ) return this ; for ( var e = d . moveCallbacks . length ; e -- ; ) d . moveCallbacks [ e ] . callback . call ( d . moveCallbacks [ e ] . context , this , this . x , this . y , b ) ; return null !== this . targetObject && this . targetObject . isDragged === ! 0 ? this . targetObject . update ( this ) === ! 1 && ( this . targetObject = null ) : d . interactiveItems . total > 0 && this . processInteractiveObjects ( b ) , this } } , processInteractiveObjects : function ( a ) { var b = 0 , c = - 1 , d = null , e = this . game . input . interactiveItems . first ; for ( this . interactiveCandidates = [ ] ; e ; ) e . checked = ! 1 , e . validForInput ( c , b , ! 1 ) && ( e . checked = ! 0 , ( a && e . checkPointerDown ( this , ! 0 ) || ! a && e . checkPointerOver ( this , ! 0 ) ) && ( b = e . sprite . renderOrderID , c = e . priorityID , d = e , this . interactiveCandidates . push ( e ) ) ) , e = this . game . input . interactiveItems . next ; for ( e = this . game . input . interactiveItems . first ; e ; ) ! e . checked && e . validForInput ( c , b , ! 0 ) && ( a && e . checkPointerDown ( this , ! 1 ) || ! a && e . checkPointerOver ( this , ! 1 ) ) && ( b = e . sprite . renderOrderID , c = e . priorityID , d = e , this . interactiveCandidates . push ( e ) ) , e = this . game . input . interactiveItems . next ; return this . game . input . customCandidateHandler && ( d = this . game . input . customCandidateHandler . call ( this . game . input . customCandidateHandlerContext , this , this . interactiveCandidates , d ) ) , this . swapTarget ( d , ! 1 ) , null !== this . targetObject } , swapTarget : function ( a , b ) { void 0 === b && ( b = ! 1 ) , null === a ? this . targetObject && ( this . targetObject . _pointerOutHandler ( this , b ) , this . targetObject = null ) : null === this . targetObject ? ( this . targetObject = a , a . _pointerOverHandler ( this , b ) ) : this . targetObject === a ? a . update ( this ) === ! 1 && ( this . targetObject = null ) : ( this . targetObject . _pointerOutHandler ( this , b ) , this . targetObject = a , this . targetObject . _pointerOverHandler ( this , b ) ) } , leave : function ( a ) { this . withinGame = ! 1 , this . move ( a , ! 1 ) } , stop : function ( a ) { var b = this . game . input ; return this . _stateReset && this . withinGame ? void a . preventDefault ( ) : ( this . timeUp = this . game . time . time , ( b . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || b . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || b . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === b . totalActivePointers ) && ( b . onUp . dispatch ( this , a ) , this . duration >= 0 && this . duration <= b . tapRate && ( this . timeUp - this . previousTapTime < b . doubleTapRate ? b . onTap . dispatch ( this , ! 0 ) : b . onTap . dispatch ( this , ! 1 ) , this . previousTapTime = this . timeUp ) ) , this . isMouse ? this . updateButtons ( a ) : ( this . isDown = ! 1 , this . isUp = ! 0 ) , this . id > 0 && ( this . active = ! 1 ) , this . withinGame = this . game . scale . bounds . contains ( a . pageX , a . pageY ) , this . pointerId = null , this . identifier = null , this . positionUp . setTo ( this . x , this . y ) , this . isMouse === ! 1 && b . currentPointers -- , b . interactiveItems . callAll ( "_releasedHandler" , this ) , this . _clickTrampolines && ( this . _trampolineTargetObject = this . targetObject ) , this . targetObject = null , this ) } , justPressed : function ( a ) { return a = a || this . game . input . justPressedRate , this . isDown === ! 0 && this . timeDown + a > this . game . time . time } , justReleased : function ( a ) { return a = a || this . game . input . justReleasedRate , this . isUp && this . timeUp + a > this . game . time . time } , addClickTrampoline : function ( a , b , c , d ) { if ( this . isDown ) { for ( var e = this . _clickTrampolines = this . _clickTrampolines || [ ] , f = 0 ; f < e . length ; f ++ ) if ( e [ f ] . name === a ) { e . splice ( f , 1 ) ; break } e . push ( { name : a , targetObject : this . targetObject , callback : b , callbackContext : c , callbackArgs : d } ) } } , processClickTrampolines : function ( ) { var a = this . _clickTrampolines ; if ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] ; c . targetObject === this . _trampolineTargetObject && c . callback . apply ( c . callbackContext , c . callbackArgs ) } this . _clickTrampolines = null , this . _trampolineTargetObject = null } } , reset : function ( ) { this . isMouse === ! 1 && ( this . active = ! 1 ) , this . pointerId = null , this . identifier = null , this . dirty = ! 1 , this . totalTouches = 0 , this . _holdSent = ! 1 , this . _history . length = 0 , this . _stateReset = ! 0 , this . resetButtons ( ) , this . targetObject && this . targetObject .
} , c . SinglePad . 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 ) } , getButton : function ( a ) { return this . _buttons [ a ] ? this . _buttons [ a ] : null } , pollStatus : function ( ) { if ( this . connected && this . game . input . enabled && this . game . input . gamepad . enabled && ( ! this . _rawPad . timestamp || this . _rawPad . timestamp !== this . _prevTimestamp ) ) { for ( var a = 0 ; a < this . _buttonsLen ; a ++ ) { var b = isNaN ( this . _rawPad . buttons [ a ] ) ? this . _rawPad . buttons [ a ] . value : this . _rawPad . buttons [ a ] ; b !== this . _buttons [ a ] . value && ( 1 === b ? this . processButtonDown ( a , b ) : 0 === b ? this . processButtonUp ( a , b ) : this . processButtonFloat ( a , b ) ) } for ( var c = 0 ; c < this . _axesLen ; c ++ ) { var d = this . _rawPad . axes [ c ] ; d > 0 && d > this . deadZone || d < 0 && d < - this . deadZone ? this . processAxisChange ( c , d ) : this . processAxisChange ( c , 0 ) } this . _prevTimestamp = this . _rawPad . timestamp } } , connect : function ( a ) { var b = ! this . connected ; this . connected = ! 0 , this . index = a . index , this . _rawPad = a , this . _buttons = [ ] , this . _buttonsLen = a . buttons . length , this . _axes = [ ] , this . _axesLen = a . axes . length ; for ( var d = 0 ; d < this . _axesLen ; d ++ ) this . _axes [ d ] = a . axes [ d ] ; for ( var e in a . buttons ) e = parseInt ( e , 10 ) , this . _buttons [ e ] = new c . DeviceButton ( this , e ) ; b && this . _padParent . onConnectCallback && this . _padParent . onConnectCallback . call ( this . _padParent . callbackContext , this . index ) , b && this . onConnectCallback && this . onConnectCallback . call ( this . callbackContext ) } , disconnect : function ( ) { var a = this . connected , b = this . index ; this . connected = ! 1 , this . index = null , this . _rawPad = void 0 ; for ( var c = 0 ; c < this . _buttonsLen ; c ++ ) this . _buttons [ c ] . destroy ( ) ; this . _buttons = [ ] , this . _buttonsLen = 0 , this . _axes = [ ] , this . _axesLen = 0 , a && this . _padParent . onDisconnectCallback && this . _padParent . onDisconnectCallback . call ( this . _padParent . callbackContext , b ) , a && this . onDisconnectCallback && this . onDisconnectCallback . call ( this . callbackContext ) } , destroy : function ( ) { this . _rawPad = void 0 ; for ( var a = 0 ; a < this . _buttonsLen ; a ++ ) this . _buttons [ a ] . destroy ( ) ; this . _buttons = [ ] , this . _buttonsLen = 0 , this . _axes = [ ] , this . _axesLen = 0 , this . onConnectCallback = null , this . onDisconnectCallback = null , this . onDownCallback = null , this . onUpCallback = null , this . onAxisCallback = null , this . onFloatCallback = null } , processAxisChange : function ( a , b ) { this . _axes [ a ] !== b && ( this . _axes [ a ] = b , this . _padParent . onAxisCallback && this . _padParent . onAxisCallback . call ( this . _padParent . callbackContext , this , a , b ) , this . onAxisCallback && this . onAxisCallback . call ( this . callbackContext , this , a , b ) ) } , processButtonDown : function ( a , b ) { this . _buttons [ a ] && this . _buttons [ a ] . start ( null , b ) , this . _padParent . onDownCallback && this . _padParent . onDownCallback . call ( this . _padParent . callbackContext , a , b , this . index ) , this . onDownCallback && this . onDownCallback . call ( this . callbackContext , a , b ) } , processButtonUp : function ( a , b ) { this . _padParent . onUpCallback && this . _padParent . onUpCallback . call ( this . _padParent . callbackContext , a , b , this . index ) , this . onUpCallback && this . onUpCallback . call ( this . callbackContext , a , b ) , this . _buttons [ a ] && this . _buttons [ a ] . stop ( null , b ) } , processButtonFloat : function ( a , b ) { this . _padParent . onFloatCallback && this . _padParent . onFloatCallback . call ( this . _padParent . callbackContext , a , b , this . index ) , this . onFloatCallback && this . onFloatCallback . call ( this . callbackContext , a , b ) , this . _buttons [ a ] && this . _buttons [ a ] . padFloat ( b ) } , axis : function ( a ) { return ! ! this . _axes [ a ] && this . _axes [ a ] } , isDown : function ( a ) { return ! ! this . _buttons [ a ] && this . _buttons [ a ] . isDown } , isUp : function ( a ) { return ! ! this . _buttons [ a ] && this . _buttons [ a ] . isUp } , justReleased : function ( a , b ) { if ( this . _buttons [ a ] ) return this . _buttons [ a ] . justReleased ( b ) } , justPressed : function ( a , b ) { if ( this . _buttons [ a ] ) return this . _buttons [ a ] . justPressed ( b ) } , buttonValue : function ( a ) { return this . _buttons [ a ] ? this . _buttons [ a ] . value : null } , reset : fun
void 0 === e && ( e = ! 1 ) , void 0 !== d && "" !== d || ( d = this . game . rnd . uuid ( ) ) ; var f = new c . BitmapData ( this . game , d , a , b ) ; return e && this . game . cache . addBitmapData ( d , f ) , f } , filter : function ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) , a = new c . Filter [ a ] ( this . game ) ; return a . init . apply ( a , b ) , a } , plugin : function ( a ) { return this . game . plugins . add ( a ) } } , c . GameObjectFactory . prototype . constructor = c . GameObjectFactory , c . GameObjectCreator = function ( a ) { this . game = a , this . world = this . game . world } , c . GameObjectCreator . prototype = { image : function ( a , b , d , e ) { return new c . Image ( this . game , a , b , d , e ) } , sprite : function ( a , b , d , e ) { return new c . Sprite ( this . game , a , b , d , e ) } , tween : function ( a ) { return new c . Tween ( a , this . game , this . game . tweens ) } , group : function ( a , b , d , e , f ) { return new c . Group ( this . game , a , b , d , e , f ) } , spriteBatch : function ( a , b , d ) { return void 0 === b && ( b = "group" ) , void 0 === d && ( d = ! 1 ) , new c . SpriteBatch ( this . game , a , b , d ) } , audio : function ( a , b , c , d ) { return this . game . sound . add ( a , b , c , d ) } , audioSprite : function ( a ) { return this . game . sound . addSprite ( a ) } , sound : function ( a , b , c , d ) { return this . game . sound . add ( a , b , c , d ) } , tileSprite : function ( a , b , d , e , f , g ) { return new c . TileSprite ( this . game , a , b , d , e , f , g ) } , rope : function ( a , b , d , e , f ) { return new c . Rope ( this . game , a , b , d , e , f ) } , text : function ( a , b , d , e ) { return new c . Text ( this . game , a , b , d , e ) } , button : function ( a , b , d , e , f , g , h , i , j ) { return new c . Button ( this . game , a , b , d , e , f , g , h , i , j ) } , graphics : function ( a , b ) { return new c . Graphics ( this . game , a , b ) } , emitter : function ( a , b , d ) { return new c . Particles . Arcade . Emitter ( this . game , a , b , d ) } , retroFont : function ( a , b , d , e , f , g , h , i , j ) { return new c . RetroFont ( this . game , a , b , d , e , f , g , h , i , j ) } , bitmapText : function ( a , b , d , e , f , g ) { return new c . BitmapText ( this . game , a , b , d , e , f , g ) } , tilemap : function ( a , b , d , e , f ) { return new c . Tilemap ( this . game , a , b , d , e , f ) } , renderTexture : function ( a , b , d , e ) { void 0 !== d && "" !== d || ( d = this . game . rnd . uuid ( ) ) , void 0 === e && ( e = ! 1 ) ; var f = new c . RenderTexture ( this . game , a , b , d ) ; return e && this . game . cache . addRenderTexture ( d , f ) , f } , bitmapData : function ( a , b , d , e ) { void 0 === e && ( e = ! 1 ) , void 0 !== d && "" !== d || ( d = this . game . rnd . uuid ( ) ) ; var f = new c . BitmapData ( this . game , d , a , b ) ; return e && this . game . cache . addBitmapData ( d , f ) , f } , filter : function ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) , a = new c . Filter [ a ] ( this . game ) ; return a . init . apply ( a , b ) , a } } , c . GameObjectCreator . prototype . constructor = c . GameObjectCreator , c . Sprite = function ( a , b , d , e , f ) { b = b || 0 , d = d || 0 , e = e || null , f = f || null , this . type = c . SPRITE , this . physicsType = c . SPRITE , PIXI . Sprite . call ( this , c . Cache . DEFAULT ) , c . Component . Core . init . call ( this , a , b , d , e , f ) } , c . Sprite . prototype = Object . create ( PIXI . Sprite . prototype ) , c . Sprite . prototype . constructor = c . Sprite , c . Component . Core . install . call ( c . Sprite . prototype , [ "Angle" , "Animation" , "AutoCull" , "Bounds" , "BringToTop" , "Crop" , "Delta" , "Destroy" , "FixedToCamera" , "Health" , "InCamera" , "InputEnabled" , "InWorld" , "LifeSpan" , "LoadTexture" , "Overlap" , "PhysicsBody" , "Reset" , "ScaleMinMax" , "Smoothed" ] ) , c . Sprite . prototype . preUpdatePhysics = c . Component . PhysicsBody . preUpdate , c . Sprite . prototype . preUpdateLifeSpan = c . Component . LifeSpan . preUpdate , c . Sprite . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . Sprite . prototype . preUpdateCore = c . Component . Core . preUpdate , c . Sprite . prototype . preUpdate = function ( ) { return ! ! ( this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ) && this . preUpdateCore ( ) } , c . Image = function ( a , b , d , e , f ) { b = b || 0 , d = d || 0 , e = e || null , f = f || null , this . type = c . IMAGE , PIXI . Sprite . call ( this , c . Cache . DEFAULT ) , c . Component . Core . init . call ( this , a , b , d , e , f ) } , c . Image . prototype = Object . create ( PIXI . Sprite . prototype ) , c . Image . prototype . constructor = c . Image , c . Component . Core . install . call ( c . Image . prototype , [ "Angle" , "Animation" , "AutoCull" , "Bounds" , "BringToTop" , "Crop" , "Destroy" , "FixedToCamera" , "InputEnabled" , "LifeSpan" , "LoadTexture" , "Overlap" , "Reset" , "ScaleMinMax" , "Smoothed" ] ) , c . Image . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . Image . prototype . preUpdateCore = c . Component . Core . preUpdate , c . Image . prototype . preUpdate = function ( ) { return ! ! this . preUpdateInWorld ( ) && this . preUpdateCore ( ) } , c . Button = function ( a , b , d , e , f , g , h , i , j , k ) { b = b || 0 , d = d || 0 , e = e || null , f = f || null , g = g || this , c . Image . call ( this , a , b , d , e , i ) , this . type = c . BUTTON , this . physicsTy
d = 1 ; d < I - 1 ; d ++ ) l = e [ 2 * ( d - 1 ) ] , m = e [ 2 * ( d - 1 ) + 1 ] , n = e [ 2 * d ] , o = e [ 2 * d + 1 ] , p = e [ 2 * ( d + 1 ) ] , q = e [ 2 * ( d + 1 ) + 1 ] , r = - ( m - o ) , s = l - n , F = Math . sqrt ( r * r + s * s ) , r /= F , s /= F , r *= L , s *= L , t = - ( o - q ) , u = n - p , F = Math . sqrt ( t * t + u * u ) , t /= F , u /= F , t *= L , u *= L , x = - s + m - ( - s + o ) , y = - r + n - ( - r + l ) , z = ( - r + l ) * ( - s + o ) - ( - r + n ) * ( - s + m ) , A = - u + q - ( - u + o ) , B = - t + n - ( - t + p ) , C = ( - t + p ) * ( - u + o ) - ( - t + n ) * ( - u + q ) , D = x * B - A * y , Math . abs ( D ) < . 1 ? ( D += 10.1 , G . push ( n - r , o - s , O , P , Q , N ) , G . push ( n + r , o + s , O , P , Q , N ) ) : ( j = ( y * C - B * z ) / D , k = ( A * z - x * C ) / D , E = ( j - n ) * ( j - n ) + ( k - o ) + ( k - o ) , E > 19600 ? ( v = r - t , w = s - u , F = Math . sqrt ( v * v + w * w ) , v /= F , w /= F , v *= L , w *= L , G . push ( n - v , o - w ) , G . push ( O , P , Q , N ) , G . push ( n + v , o + w ) , G . push ( O , P , Q , N ) , G . push ( n - v , o - w ) , G . push ( O , P , Q , N ) , J ++ ) : ( G . push ( j , k ) , G . push ( O , P , Q , N ) , G . push ( n - ( j - n ) , o - ( k - o ) ) , G . push ( O , P , Q , N ) ) ) ; for ( l = e [ 2 * ( I - 2 ) ] , m = e [ 2 * ( I - 2 ) + 1 ] , n = e [ 2 * ( I - 1 ) ] , o = e [ 2 * ( I - 1 ) + 1 ] , r = - ( m - o ) , s = l - n , F = Math . sqrt ( r * r + s * s ) , r /= F , s /= F , r *= L , s *= L , G . push ( n - r , o - s ) , G . push ( O , P , Q , N ) , G . push ( n + r , o + s ) , G . push ( O , P , Q , N ) , H . push ( K ) , d = 0 ; d < J ; d ++ ) H . push ( K ++ ) ; H . push ( K - 1 ) } } , PIXI . WebGLGraphics . buildComplexPoly = function ( a , b ) { var d = a . points . slice ( ) ; if ( ! ( d . length < 6 ) ) { var e = b . indices ; b . points = d , b . alpha = a . fillAlpha , b . color = c . Color . hexToRGBArray ( a . fillColor ) ; for ( var f , g , h = 1 / 0 , i = - ( 1 / 0 ) , j = 1 / 0 , k = - ( 1 / 0 ) , l = 0 ; l < d . length ; l += 2 ) f = d [ l ] , g = d [ l + 1 ] , h = f < h ? f : h , i = f > i ? f : i , j = g < j ? g : j , k = g > k ? g : k ; d . push ( h , j , i , j , i , k , h , k ) ; var m = d . length / 2 ; for ( l = 0 ; l < m ; l ++ ) e . push ( l ) } } , PIXI . WebGLGraphics . buildPoly = function ( a , b ) { var d = a . points ; if ( ! ( d . length < 6 ) ) { var e = b . points , f = b . indices , g = d . length / 2 , h = c . Color . hexToRGBArray ( a . fillColor ) , i = a . fillAlpha , j = h [ 0 ] * i , k = h [ 1 ] * i , l = h [ 2 ] * i , m = c . EarCut . Triangulate ( d , null , 2 ) ; if ( ! m ) return ! 1 ; var n = e . length / 6 , o = 0 ; for ( o = 0 ; o < m . length ; o += 3 ) f . push ( m [ o ] + n ) , f . push ( m [ o ] + n ) , f . push ( m [ o + 1 ] + n ) , f . push ( m [ o + 2 ] + n ) , f . push ( m [ o + 2 ] + n ) ; for ( o = 0 ; o < g ; o ++ ) e . push ( d [ 2 * o ] , d [ 2 * o + 1 ] , j , k , l , i ) ; return ! 0 } } , PIXI . WebGLGraphics . graphicsDataPool = [ ] , PIXI . WebGLGraphicsData = function ( a ) { this . gl = a , this . color = [ 0 , 0 , 0 ] , this . points = [ ] , this . indices = [ ] , this . buffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , this . mode = 1 , this . alpha = 1 , this . dirty = ! 0 } , PIXI . WebGLGraphicsData . prototype . reset = function ( ) { this . points = [ ] , this . indices = [ ] } , PIXI . WebGLGraphicsData . prototype . upload = function ( ) { var a = this . gl ; this . glPoints = new Float32Array ( this . points ) , a . bindBuffer ( a . ARRAY _BUFFER , this . buffer ) , a . bufferData ( a . ARRAY _BUFFER , this . glPoints , a . STATIC _DRAW ) , this . glIndicies = new Uint16Array ( this . indices ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , this . glIndicies , a . STATIC _DRAW ) , this . dirty = ! 1 } , PIXI . CanvasGraphics = function ( ) { } , PIXI . CanvasGraphics . renderGraphics = function ( a , b ) { var d = a . worldAlpha ; a . dirty && ( this . updateGraphicsTint ( a ) , a . dirty = ! 1 ) ; for ( var e = 0 ; e < a . graphicsData . length ; e ++ ) { var f = a . graphicsData [ e ] , g = f . shape , h = f . _fillTint , i = f . _lineTint ; if ( b . lineWidth = f . lineWidth , f . type === c . POLYGON ) { b . beginPath ( ) ; var j = g . points ; b . moveTo ( j [ 0 ] , j [ 1 ] ) ; for ( var k = 1 ; k < j . length / 2 ; k ++ ) b . lineTo ( j [ 2 * k ] , j [ 2 * k + 1 ] ) ; g . closed && b . lineTo ( j [ 0 ] , j [ 1 ] ) , j [ 0 ] === j [ j . length - 2 ] && j [ 1 ] === j [ j . length - 1 ] && b . closePath ( ) , f . fill && ( b . globalAlpha = f . fillAlpha * d , b . fillStyle = "#" + ( "00000" + ( 0 | h ) . toString ( 16 ) ) . substr ( - 6 ) , b . fill ( ) ) , f . lineWidth && ( b . globalAlpha = f . lineAlpha * d , b . strokeStyle = "#" + ( "00000" + ( 0 | i ) . toString ( 16 ) ) . substr ( - 6 ) , b . stroke ( ) ) } else if ( f . type === c . RECTANGLE ) ( f . fillColor || 0 === f . fillColor ) && ( b . globalAlpha = f . fillAlpha * d , b . fillStyle = "#" + ( "00000" + ( 0 | h ) . toString ( 16 ) ) . substr ( - 6 ) , b . fillRect ( g . x , g . y , g . width , g . height ) ) , f . lineWidth && ( b . globalAlpha = f . lineAlpha * d , b . strokeStyle = "#" + ( "00000" + ( 0 | i ) . toString ( 16 ) ) . substr ( - 6 ) , b . strokeRect ( g . x , g . y , g . width , g . height ) ) ; else if ( f . type === c . CIRCLE ) b . beginPath ( ) , b . arc ( g . x , g . y , g . radius , 0 , 2 * Math . PI ) , b . closePath ( ) , f . fill && ( b . globalAlpha = f . fillAlpha * d , b . fillStyle = "#" + ( "00000" + ( 0 | h ) . toString ( 16 ) ) . substr ( - 6 ) , b . fill ( ) ) , f . lineWidth && ( b . globalAlpha = f . lineAlpha * d , b . strokeStyle = "#" + ( "00000" + ( 0 | i ) . toString ( 16 ) ) . substr ( - 6 ) , b . stroke ( ) ) ; else if ( f . type === c . ELLIPSE ) { var l = 2 * g . width , m = 2 * g . height , n = g . x - l / 2 , o = g . y - m / 2 ; b . beginPath ( ) ; var p = . 5522848 , q = l / 2 * p , r = m / 2 * p , s = n + l , t = o + m , u = n + l / 2 , v = o + m / 2 ; b . moveTo ( n , v ) , b . bezierCurveTo ( n , v - r , u - q , o , u , o ) , b . bezierCurveTo ( u + q , o , s , v - r , s , v ) , b . bezierCurveTo ( s , v + r , u + q , t , u , t ) , b . bezierCurveTo ( u - q , t , n , v + r , n , v ) , b . closePath ( ) , f . fill && ( b . globalAlpha = f . fil
this . context . fillText ( e , b , c ) ) , b += this . context . measureText ( e ) . width , this . _charCount ++ } } , c . Text . prototype . clearColors = function ( ) { return this . colors = [ ] , this . strokeColors = [ ] , this . dirty = ! 0 , this } , c . Text . prototype . clearFontValues = function ( ) { return this . fontStyles = [ ] , this . fontWeights = [ ] , this . dirty = ! 0 , this } , c . Text . prototype . addColor = function ( a , b ) { return this . colors [ b ] = a , this . dirty = ! 0 , this } , c . Text . prototype . addStrokeColor = function ( a , b ) { return this . strokeColors [ b ] = a , this . dirty = ! 0 , this } , c . Text . prototype . addFontStyle = function ( a , b ) { return this . fontStyles [ b ] = a , this . dirty = ! 0 , this } , c . Text . prototype . addFontWeight = function ( a , b ) { return this . fontWeights [ b ] = a , this . dirty = ! 0 , this } , c . Text . prototype . precalculateWordWrap = function ( a ) { this . texture . baseTexture . resolution = this . _res , this . context . font = this . style . font ; var b = this . runWordWrap ( a ) ; return b . split ( /(?:\r\n|\r|\n)/ ) } , c . Text . prototype . runWordWrap = function ( a ) { return this . useAdvancedWrap ? this . advancedWordWrap ( a ) : this . basicWordWrap ( a ) } , c . Text . prototype . advancedWordWrap = function ( a ) { for ( var b = this . context , c = this . style . wordWrapWidth , d = "" , e = a . replace ( / +/gi , " " ) . split ( /\r?\n/gi ) , f = e . length , g = 0 ; g < f ; g ++ ) { var h = e [ g ] , i = "" ; h = h . replace ( /^ *|\s*$/gi , "" ) ; var j = b . measureText ( h ) . width ; if ( j < c ) d += h + "\n" ; else { for ( var k = c , l = h . split ( " " ) , m = 0 ; m < l . length ; m ++ ) { var n = l [ m ] , o = n + " " , p = b . measureText ( o ) . width ; if ( p > k ) { if ( 0 === m ) { for ( var q = o ; q . length && ( q = q . slice ( 0 , - 1 ) , p = b . measureText ( q ) . width , ! ( p <= k ) ) ; ) ; if ( ! q . length ) throw new Error ( "This text's wordWrapWidth setting is less than a single character!" ) ; var r = n . substr ( q . length ) ; l [ m ] = r , i += q } var s = l [ m ] . length ? m : m + 1 , t = l . slice ( s ) . join ( " " ) . replace ( /[ \n]*$/gi , "" ) ; e [ g + 1 ] = t + " " + ( e [ g + 1 ] || "" ) , f = e . length ; break } i += o , k -= p } d += i . replace ( /[ \n]*$/gi , "" ) + "\n" } } return d = d . replace ( /[\s|\n]*$/gi , "" ) } , c . Text . prototype . basicWordWrap = function ( a ) { for ( var b = "" , c = a . split ( "\n" ) , d = 0 ; d < c . length ; d ++ ) { for ( var e = this . style . wordWrapWidth , f = c [ d ] . split ( " " ) , g = 0 ; g < f . length ; g ++ ) { var h = this . context . measureText ( f [ g ] ) . width , i = h + this . context . measureText ( " " ) . width ; i > e ? ( g > 0 && ( b += "\n" ) , b += f [ g ] + " " , e = this . style . wordWrapWidth - h ) : ( e -= i , b += f [ g ] + " " ) } d < c . length - 1 && ( b += "\n" ) } return b } , c . Text . prototype . updateFont = function ( a ) { var b = this . componentsToFont ( a ) ; this . style . font !== b && ( this . style . font = b , this . dirty = ! 0 , this . parent && this . updateTransform ( ) ) } , c . Text . prototype . fontToComponents = function ( a ) { var b = a . match ( /^\s*(?:\b(normal|italic|oblique|inherit)?\b)\s*(?:\b(normal|small-caps|inherit)?\b)\s*(?:\b(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit)?\b)\s*(?:\b(xx-small|x-small|small|medium|large|x-large|xx-large|larger|smaller|0|\d*(?:[.]\d*)?(?:%|[a-z]{2,5}))?\b)\s*(.*)\s*$/ ) ; if ( b ) { var c = b [ 5 ] . trim ( ) ; return /^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/ . exec ( c ) || /['",]/ . exec ( c ) || ( c = "'" + c + "'" ) , { font : a , fontStyle : b [ 1 ] || "normal" , fontVariant : b [ 2 ] || "normal" , fontWeight : b [ 3 ] || "normal" , fontSize : b [ 4 ] || "medium" , fontFamily : c } } return console . warn ( "Phaser.Text - unparsable CSS font: " + a ) , { font : a } } , c . Text . prototype . componentsToFont = function ( a ) { var b , c = [ ] ; return b = a . fontStyle , b && "normal" !== b && c . push ( b ) , b = a . fontVariant , b && "normal" !== b && c . push ( b ) , b = a . fontWeight , b && "normal" !== b && c . push ( b ) , b = a . fontSize , b && "medium" !== b && c . push ( b ) , b = a . fontFamily , b && c . push ( b ) , c . length || c . push ( a . font ) , c . join ( " " ) } , c . Text . prototype . setText = function ( a , b ) { return void 0 === b && ( b = ! 1 ) , this . text = a . toString ( ) || "" , b ? this . updateText ( ) : this . dirty = ! 0 , this } , c . Text . prototype . parseList = function ( a ) { if ( ! Array . isArray ( a ) ) return this ; for ( var b = "" , c = 0 ; c < a . length ; c ++ ) Array . isArray ( a [ c ] ) ? ( b += a [ c ] . join ( "\t" ) , c < a . length - 1 && ( b += "\n" ) ) : ( b += a [ c ] , c < a . length - 1 && ( b += "\t" ) ) ; return this . text = b , this . dirty = ! 0 , this } , c . Text . prototype . setTextBounds = function ( a , b , d , e ) { return void 0 === a ? this . textBounds = null : ( this . textBounds ? this . textBounds . setTo ( a , b , d , e ) : this . textBounds = new c . Rectangle ( a , b , d , e ) , this . style . wordWrapWidth > d && ( this . style . wordWrapWidth = d ) ) , this . updateTexture ( ) , this } , c . Text . prototype . updateTexture = function ( ) { var a = this . texture . baseTexture , b = this . texture . crop , c = this . texture . frame , d = this . canvas . width , e = this . canvas . height ; if ( a . width = d , a . height = e , b . width = d , b . height = e , c . wid
return c . Component . Reset . prototype . reset . call ( this , a , b ) , this . tilePosition . x = 0 , this . tilePosition . y = 0 , this } , c . TileSprite . prototype . setTexture = function ( a ) { return this . texture !== a && ( this . texture = a , this . refreshTexture = ! 0 , this . cachedTint = 16777215 ) , this } , c . TileSprite . prototype . _renderWebGL = function ( a ) { if ( this . visible && this . renderable && 0 !== this . alpha ) { if ( this . _mask && ( a . spriteBatch . stop ( ) , a . maskManager . pushMask ( this . mask , a ) , a . spriteBatch . start ( ) ) , this . _filters && ( a . spriteBatch . flush ( ) , a . filterManager . pushFilter ( this . _filterBlock ) ) , this . refreshTexture ) { if ( this . generateTilingTexture ( ! 0 , a ) , ! this . tilingTexture ) return ; this . tilingTexture . needsUpdate && ( this . tilingTexture . baseTexture . textureIndex = this . texture . baseTexture . textureIndex , a . renderer . updateTexture ( this . tilingTexture . baseTexture ) , this . tilingTexture . needsUpdate = ! 1 ) } a . spriteBatch . renderTilingSprite ( this ) ; for ( var b = 0 ; b < this . children . length ; b ++ ) this . children [ b ] . _renderWebGL ( a ) ; var c = ! 1 ; this . _filters && ( c = ! 0 , a . spriteBatch . stop ( ) , a . filterManager . popFilter ( ) ) , this . _mask && ( c || a . spriteBatch . stop ( ) , a . maskManager . popMask ( this . _mask , a ) ) , c && a . spriteBatch . start ( ) } } , c . TileSprite . prototype . _renderCanvas = function ( a ) { if ( this . visible && this . renderable && 0 !== this . alpha ) { var b = a . context ; this . _mask && a . maskManager . pushMask ( this . _mask , a ) , b . globalAlpha = this . worldAlpha ; var c = this . worldTransform , d = a . resolution , e = c . tx * d + a . shakeX , f = c . ty * d + a . shakeY ; if ( b . setTransform ( c . a * d , c . b * d , c . c * d , c . d * d , e , f ) , this . refreshTexture ) { if ( this . generateTilingTexture ( ! 1 , a ) , ! this . tilingTexture ) return ; this . tilePattern = b . createPattern ( this . tilingTexture . baseTexture . source , "repeat" ) } var g = a . currentBlendMode ; this . blendMode !== a . currentBlendMode && ( a . currentBlendMode = this . blendMode , b . globalCompositeOperation = PIXI . blendModesCanvas [ a . currentBlendMode ] ) ; var h = this . tilePosition , i = this . tileScale ; h . x %= this . tilingTexture . baseTexture . width , h . y %= this . tilingTexture . baseTexture . height , b . scale ( i . x , i . y ) , b . translate ( h . x + this . anchor . x * - this . _width , h . y + this . anchor . y * - this . _height ) , b . fillStyle = this . tilePattern , e = - h . x , f = - h . y ; var j = this . _width / i . x , k = this . _height / i . y ; a . roundPixels && ( e |= 0 , f |= 0 , j |= 0 , k |= 0 ) , b . fillRect ( e , f , j , k ) , b . scale ( 1 / i . x , 1 / i . y ) , b . translate ( - h . x + this . anchor . x * this . _width , - h . y + this . anchor . y * this . _height ) , this . _mask && a . maskManager . popMask ( a ) ; for ( var l = 0 ; l < this . children . length ; l ++ ) this . children [ l ] . _renderCanvas ( a ) ; g !== this . blendMode && ( a . currentBlendMode = g , b . globalCompositeOperation = PIXI . blendModesCanvas [ g ] ) } } , c . TileSprite . prototype . onTextureUpdate = function ( ) { } , c . TileSprite . prototype . generateTilingTexture = function ( a ) { if ( this . texture . baseTexture . hasLoaded ) { var b = this . texture , d = b . frame , e = this . _frame . sourceSizeW || this . _frame . width , f = this . _frame . sourceSizeH || this . _frame . height , g = 0 , h = 0 ; this . _frame . trimmed && ( g = this . _frame . spriteSourceSizeX , h = this . _frame . spriteSourceSizeY ) , a && ( e = c . Math . getNextPowerOfTwo ( e ) , f = c . Math . getNextPowerOfTwo ( f ) ) , this . canvasBuffer ? ( this . canvasBuffer . resize ( e , f ) , this . tilingTexture . baseTexture . width = e , this . tilingTexture . baseTexture . height = f , this . tilingTexture . needsUpdate = ! 0 ) : ( this . canvasBuffer = new PIXI . CanvasBuffer ( e , f ) , this . tilingTexture = PIXI . Texture . fromCanvas ( this . canvasBuffer . canvas ) , this . tilingTexture . isTiling = ! 0 , this . tilingTexture . needsUpdate = ! 0 ) , this . textureDebug && ( this . canvasBuffer . context . strokeStyle = "#00ff00" , this . canvasBuffer . context . strokeRect ( 0 , 0 , e , f ) ) ; var i = b . crop . width , j = b . crop . height ; i === e && j === f || ( i = e , j = f ) , this . canvasBuffer . context . drawImage ( b . baseTexture . source , b . crop . x , b . crop . y , b . crop . width , b . crop . height , g , h , i , j ) , this . tileScaleOffset . x = d . width / e , this . tileScaleOffset . y = d . height / f , this . refreshTexture = ! 1 , this . tilingTexture . baseTexture . _powerOf2 = ! 0 } } , c . TileSprite . prototype . getBounds = function ( ) { var a = this . _width , b = this . _height , c = a * ( 1 - this . anchor . x ) , d = a * - this . anchor . x , e = b * ( 1 - this . anchor . y ) , f = b * - this . anchor . y , g = this . worldTransform , h = g . a , i = g . b , j = g . c , k = g . d , l = g . tx , m = g . ty , n = h * d + j * f + l , o = k * f + i * d + m , p = h * c + j * f + l , q = k * f + i * c + m , r = h * c + j * e + l , s = k * e + i * c + m , t = h * d + j * e + l , u = k * e + i * d + m , v = - ( 1 / 0 ) , w = - ( 1 / 0 ) , x = 1 / 0 , y = 1 / 0 ; x = n < x ? n : x , x = p < x ? p : x , x = r < x ? r : x , x = t < x ? t : x , y = o < y ? o : y , y = q < y ? q : y , y = s < y ? s : y , y = u < y ? u : y , v = n > v ? n : v , v = p > v ? p : v , v = r > v ? r : v , v = t > v ? t : v , w = o > w ? o : w , w = q
"Circ.easeIn" : c . Easing . Circular . In , "Elastic.easeIn" : c . Easing . Elastic . In , "Back.easeIn" : c . Easing . Back . In , "Bounce.easeIn" : c . Easing . Bounce . In , "Quad.easeOut" : c . Easing . Quadratic . Out , "Cubic.easeOut" : c . Easing . Cubic . Out , "Quart.easeOut" : c . Easing . Quartic . Out , "Quint.easeOut" : c . Easing . Quintic . Out , "Sine.easeOut" : c . Easing . Sinusoidal . Out , "Expo.easeOut" : c . Easing . Exponential . Out , "Circ.easeOut" : c . Easing . Circular . Out , "Elastic.easeOut" : c . Easing . Elastic . Out , "Back.easeOut" : c . Easing . Back . Out , "Bounce.easeOut" : c . Easing . Bounce . Out , "Quad.easeInOut" : c . Easing . Quadratic . InOut , "Cubic.easeInOut" : c . Easing . Cubic . InOut , "Quart.easeInOut" : c . Easing . Quartic . InOut , "Quint.easeInOut" : c . Easing . Quintic . InOut , "Sine.easeInOut" : c . Easing . Sinusoidal . InOut , "Expo.easeInOut" : c . Easing . Exponential . InOut , "Circ.easeInOut" : c . Easing . Circular . InOut , "Elastic.easeInOut" : c . Easing . Elastic . InOut , "Back.easeInOut" : c . Easing . Back . InOut , "Bounce.easeInOut" : c . Easing . Bounce . InOut } , 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 = [ ] } , removeFrom : function ( a , b ) { void 0 === b && ( b = ! 0 ) ; var d , e ; if ( Array . isArray ( a ) ) for ( d = 0 , e = a . length ; d < e ; d ++ ) this . removeFrom ( a [ d ] ) ; else if ( a . type === c . GROUP && b ) for ( var d = 0 , e = a . children . length ; d < e ; d ++ ) this . removeFrom ( a . children [ d ] ) ; else { for ( d = 0 , e = this . _tweens . length ; d < e ; d ++ ) a === this . _tweens [ d ] . target && this . remove ( this . _tweens [ d ] ) ; for ( d = 0 , e = this . _add . length ; d < e ; d ++ ) a === this . _add [ d ] . target && this . remove ( this . _add [ d ] ) } } , 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 ) ; b !== - 1 ? this . _tweens [ b ] . pendingDelete = ! 0 : ( b = this . _add . indexOf ( a ) , b !== - 1 && ( 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 ; c < b ; ) this . _tweens [ c ] . update ( this . game . time . time ) ? 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 . target === 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 . game = b , this . target = a , this . manager = d , this . timeline = [ ] , this . reverse = ! 1 , this . timeScale = 1 , this . repeatCounter = 0 , this . pendingDelete = ! 1 , this . onStart = new c . Signal , this . onLoop = new c . Signal , this . onRepeat = new c . Signal , this . onChildComplete = new c . Signal , this . onComplete = new c . Signal , this . isRunning = ! 1 , this . current = 0 , this . properties = { } , this . chainedTween = null , this . isPaused = ! 1 , this . frameBased = d . frameBased , this . _onUpdateCallback = null , this . _onUpdateCallbackContext = null , this . _pausedTime = 0 , this . _codePaused = ! 1 , this . _hasStarted = ! 1 } , c . Tween . prototype = { to : function ( a , b , d , e , f , g , h ) { return ( void 0 === b || b <= 0 ) && ( b = 1e3 ) , void 0 !== d && null !== d || ( d = c . Easing . Default ) , void 0 === e && ( e = ! 1 ) , void 0 === f && ( f = 0 ) , void 0 === g && ( g = 0 ) , void 0 === h && ( h = ! 1 ) , "string" == typeof d && this . manager . easeMap [ d ] && ( d = this . manager . easeMap [ d ] ) , this . isRunning ? ( console . warn ( "Phaser.Tween.to cannot be called after Tween.start" ) , this ) : ( this . timeline . push ( new c . TweenData ( this ) . to ( a , b , d , f , g , h ) ) , e && this . start ( ) , this ) } , from : function ( a , b , d , e , f , g , h ) { return void 0 === b && ( b = 1e3 ) , void 0 !== d && null !== d || ( d = c . Easing . Default ) , void 0 === e && ( e = ! 1 ) , void 0 === f && ( f = 0 ) , void 0 === g && ( g = 0 ) , void 0 === h && ( h = ! 1 ) , "string" == typeof d && this . manager . easeMap [ d ] && ( d = this . manager . easeMap [ d ] ) , this . isRunning ? ( console . warn ( "Phaser.Tween.from cannot be called after Tween.start" ) , this ) : ( this . timeline . push ( new c . TweenData ( this ) . from ( a , b , d , f , g , h ) ) , e && this . start ( ) , this ) } , start : function ( a ) { if ( void 0 === a && ( a = 0 ) , null === this . game || null === this . target || 0 ===
this . isPlaying = ! 1 , this . isFinished = ! 0 , this . paused = ! 1 , this . _parent . events . onAnimationComplete$dispatch ( this . _parent , this ) , this . onComplete . dispatch ( this . _parent , this ) , this . killOnComplete && this . _parent . kill ( ) } } , c . Animation . prototype . constructor = c . Animation , Object . defineProperty ( c . Animation . prototype , "paused" , { get : function ( ) { return this . isPaused } , set : function ( a ) { this . isPaused = a , a ? this . _pauseStartTime = this . game . time . time : this . isPlaying && ( this . _timeNextFrame = this . game . time . time + this . delay ) } } ) , Object . defineProperty ( c . Animation . prototype , "reversed" , { get : function ( ) { return this . isReversed } , set : function ( a ) { this . isReversed = a } } ) , Object . defineProperty ( c . Animation . prototype , "frameTotal" , { get : function ( ) { return this . _frames . length } } ) , Object . defineProperty ( c . Animation . prototype , "frame" , { get : function ( ) { return null !== this . currentFrame ? this . currentFrame . index : this . _frameIndex } , set : function ( a ) { this . currentFrame = this . _frameData . getFrame ( this . _frames [ a ] ) , null !== this . currentFrame && ( this . _frameIndex = a , this . _parent . setFrame ( this . currentFrame ) , this . onUpdate && this . onUpdate . dispatch ( this , this . currentFrame ) ) } } ) , Object . defineProperty ( c . Animation . prototype , "speed" , { get : function ( ) { return 1e3 / this . delay } , set : function ( a ) { a > 0 && ( this . delay = 1e3 / a ) } } ) , Object . defineProperty ( c . Animation . prototype , "enableUpdate" , { get : function ( ) { return null !== this . onUpdate } , set : function ( a ) { a && null === this . onUpdate ? this . onUpdate = new c . Signal : a || null === this . onUpdate || ( this . onUpdate . dispose ( ) , this . onUpdate = null ) } } ) , c . Animation . generateFrameNames = function ( a , b , d , e , f ) { void 0 === e && ( e = "" ) ; var g = [ ] , h = "" ; if ( b < d ) for ( var i = b ; i <= d ; i ++ ) h = "number" == typeof f ? c . Utils . pad ( i . toString ( ) , f , "0" , 1 ) : i . toString ( ) , h = a + h + e , g . push ( h ) ; else for ( var i = b ; i >= d ; i -- ) h = "number" == typeof f ? c . Utils . pad ( i . toString ( ) , f , "0" , 1 ) : i . toString ( ) , h = a + h + e , g . push ( h ) ; return g } , c . Frame = function ( a , b , d , e , f , g ) { this . index = a , this . x = b , this . y = d , this . width = e , this . height = f , this . name = g , this . centerX = Math . floor ( e / 2 ) , this . centerY = Math . floor ( f / 2 ) , this . distance = c . Math . distance ( 0 , 0 , e , f ) , this . rotated = ! 1 , this . trimmed = ! 1 , this . sourceSizeW = e , this . sourceSizeH = f , this . spriteSourceSizeX = 0 , this . spriteSourceSizeY = 0 , this . spriteSourceSizeW = 0 , this . spriteSourceSizeH = 0 , this . right = this . x + this . width , this . bottom = this . y + this . height } , c . Frame . prototype = { resize : function ( a , b ) { this . width = a , this . height = b , this . centerX = Math . floor ( a / 2 ) , this . centerY = Math . floor ( b / 2 ) , this . distance = c . Math . distance ( 0 , 0 , a , b ) , this . sourceSizeW = a , this . sourceSizeH = b , this . right = this . x + a , this . bottom = this . y + b } , setTrim : function ( a , b , c , d , e , f , g ) { this . trimmed = a , a && ( this . sourceSizeW = b , this . sourceSizeH = c , this . centerX = Math . floor ( b / 2 ) , this . centerY = Math . floor ( c / 2 ) , this . spriteSourceSizeX = d , this . spriteSourceSizeY = e , this . spriteSourceSizeW = f , this . spriteSourceSizeH = g ) } , clone : function ( ) { var a = new c . Frame ( this . index , this . x , this . y , this . width , this . height , this . name ) ; for ( var b in this ) this . hasOwnProperty ( b ) && ( a [ b ] = this [ b ] ) ; return a } , getRect : function ( a ) { return void 0 === a ? a = new c . Rectangle ( this . x , this . y , this . width , this . height ) : a . setTo ( this . x , this . y , this . width , this . height ) , a } } , c . Frame . prototype . constructor = c . Frame , c . FrameData = function ( ) { this . _frames = [ ] , this . _frameNames = [ ] } , c . FrameData . prototype = { addFrame : function ( a ) { return a . index = this . _frames . length , this . _frames . push ( a ) , "" !== a . name && ( this . _frameNames [ a . name ] = a . index ) , a } , getFrame : function ( a ) { return a >= this . _frames . length && ( a = 0 ) , this . _frames [ a ] } , getFrameByName : function ( a ) { return "number" == typeof this . _frameNames [ a ] ? this . _frames [ this . _frameNames [ a ] ] : null } , checkFrameName : function ( a ) { return null != this . _frameNames [ a ] } , clone : function ( ) { for ( var a = new c . FrameData , b = 0 ; b < this . _frames . length ; b ++ ) a . _frames . push ( this . _frames [ b ] . clone ( ) ) ; for ( var d in this . _frameNames ) this . _frameNames . hasOwnProperty ( d ) && a . _frameNames . push ( this . _frameNames [ d ] ) ; return a } , getFrameRange : function ( a , b , c ) { void 0 === c && ( c = [ ] ) ; for ( var d = a ; d <= b ; d ++ ) c . push ( this . _frames [ d ] ) ; return c } , getFrames : function ( a , b , c ) { if ( void 0 === b && ( b = ! 0 ) , void 0 === c && ( c = [ ] ) , void 0 === a || 0 === a . length ) for ( var d = 0 ; d < this . _frames . length ; d ++ ) c . push ( this . _frames [ d ] ) ; else for ( var d = 0 ; d < a . length ; d ++ ) b ? c . push ( this . getFrame ( a [ d ] ) ) : c . push ( this . getFrameByName ( a [ d
case "physics" : this . physics ( e . key , e . url , e . data , c . Loader [ e . format ] ) ; break ; case "bitmapFont" : this . bitmapFont ( e . key , e . textureURL , e . atlasURL , e . atlasData , e . xSpacing , e . ySpacing ) ; break ; case "atlasJSONArray" : this . atlasJSONArray ( e . key , e . textureURL , e . atlasURL , e . atlasData ) ; break ; case "atlasJSONHash" : this . atlasJSONHash ( e . key , e . textureURL , e . atlasURL , e . atlasData ) ; break ; case "atlasXML" : this . atlasXML ( e . key , e . textureURL , e . atlasURL , e . atlasData ) ; break ; case "atlas" : this . atlas ( e . key , e . textureURL , e . atlasURL , e . atlasData , c . Loader [ e . format ] ) ; break ; case "shader" : this . shader ( e . key , e . url , e . overwrite ) } } } , transformUrl : function ( a , b ) { return ! ! a && ( a . match ( /^(?:blob:|data:|http:\/\/|https:\/\/|\/\/)/ ) ? a : this . baseURL + b . path + a ) } , loadFile : function ( a ) { switch ( a . type ) { case "packfile" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . fileComplete ) ; break ; case "image" : case "spritesheet" : case "textureatlas" : case "bitmapfont" : this . loadImageTag ( a ) ; break ; case "audio" : a . url = this . getAudioURL ( a . url ) , a . url ? this . game . sound . usingWebAudio ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "arraybuffer" , this . fileComplete ) : this . game . sound . usingAudioTag && this . loadAudioTag ( a ) : this . fileError ( a , null , "No supported audio URL specified or device does not have audio playback support" ) ; break ; case "video" : a . url = this . getVideoURL ( a . url ) , a . url ? a . asBlob ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "blob" , this . fileComplete ) : this . loadVideoTag ( a ) : this . fileError ( a , null , "No supported video URL specified or device does not have video playback support" ) ; break ; case "json" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . jsonLoadComplete ) ; break ; case "xml" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . xmlLoadComplete ) ; break ; case "tilemap" : a . format === c . Tilemap . TILED _JSON ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . jsonLoadComplete ) : a . format === c . Tilemap . CSV ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . csvLoadComplete ) : this . asyncComplete ( a , "invalid Tilemap format: " + a . format ) ; break ; case "text" : case "script" : case "shader" : case "physics" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . fileComplete ) ; break ; case "texture" : "truecolor" === a . key . split ( "_" ) . pop ( ) && this . loadImageTag ( a ) ; break ; case "binary" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "arraybuffer" , this . fileComplete ) } } , loadImageTag : function ( a ) { var b = this ; a . data = new Image , a . data . name = a . key , this . crossOrigin && ( a . data . crossOrigin = this . crossOrigin ) , a . data . onload = function ( ) { a . data . onload && ( a . data . onload = null , a . data . onerror = null , b . fileComplete ( a ) ) } , a . data . onerror = function ( ) { a . data . onload && ( a . data . onload = null , a . data . onerror = null , b . fileError ( a ) ) } , a . data . src = this . transformUrl ( a . url , a ) , a . data . complete && a . data . width && a . data . height && ( a . data . onload = null , a . data . onerror = null , this . fileComplete ( a ) ) } , loadVideoTag : function ( a ) { var b = this ; a . data = document . createElement ( "video" ) , a . data . name = a . key , a . data . controls = ! 1 , a . data . autoplay = ! 1 ; var d = function ( ) { a . data . removeEventListener ( a . loadEvent , d , ! 1 ) , a . data . onerror = null , a . data . canplay = ! 0 , c . GAMES [ b . game . id ] . load . fileComplete ( a ) } ; a . data . onerror = function ( ) { a . data . removeEventListener ( a . loadEvent , d , ! 1 ) , a . data . onerror = null , a . data . canplay = ! 1 , b . fileError ( a ) } , a . data . addEventListener ( a . loadEvent , d , ! 1 ) , a . data . src = this . transformUrl ( a . url , a ) , a . data . load ( ) } , loadAudioTag : function ( a ) { var b = this ; if ( this . game . sound . touchLocked ) a . data = new Audio , a . data . name = a . key , a . data . preload = "auto" , a . data . src = this . transformUrl ( a . url , a ) , this . fileComplete ( a ) ; else { a . data = new Audio , a . data . name = a . key ; var c = function ( ) { a . data . removeEventListener ( "canplaythrough" , c , ! 1 ) , a . data . onerror = null , b . fileComplete ( a ) } ; a . data . onerror = function ( ) { a . data . removeEventListener ( "canplaythrough" , c , ! 1 ) , a . data . onerror = null , b . fileError ( a ) } , a . data . preload = "auto" , a . data . src = this . transformUrl ( a . url , a ) , a . data . addEventListener ( "canplaythrough" , c , ! 1 ) , a . data . load ( ) } } , xhrLoad : function ( a , b , c , d , e ) { if ( this . useXDomainRequest && window . XDomainRequest ) return void this . xhrLoadWithXDR ( a , b , c , d , e ) ; var f = new XMLHttpRequest ; f . open ( "GET" , b , ! 0 ) , f . responseType = c , this . headers . requestedWith !== ! 1 && f . setRequestHeader ( "X-Requested-With" , this . headers . requestedWith ) , this . headers [ a . type ] && f . setRequestHeader ( "Accept" , thi
this . _sounds = [ ] , this . onSoundDecode . dispose ( ) , this . context && ( window . PhaserGlobal ? window . PhaserGlobal . audioContext = this . context : this . context . close && this . context . close ( ) ) } } , c . SoundManager . prototype . constructor = c . SoundManager , Object . defineProperty ( c . SoundManager . prototype , "mute" , { get : function ( ) { return this . _muted } , set : function ( a ) { if ( a = a || ! 1 ) { if ( this . _muted ) return ; this . _codeMuted = ! 0 , this . setMute ( ) } else { if ( ! this . _muted ) return ; this . _codeMuted = ! 1 , this . unsetMute ( ) } } } ) , Object . defineProperty ( c . SoundManager . prototype , "volume" , { get : function ( ) { return this . _volume } , set : function ( a ) { if ( a < 0 ? a = 0 : a > 1 && ( a = 1 ) , this . _volume !== a ) { if ( this . _volume = a , this . usingWebAudio ) this . masterGain . gain . value = a ; else for ( var b = 0 ; b < this . _sounds . length ; b ++ ) this . _sounds [ b ] . usingAudioTag && this . _sounds [ b ] . updateGlobalVolume ( a ) ; this . onVolumeChange . dispatch ( a ) } } } ) , c . ScaleManager = function ( a , b , d ) { this . game = a , this . dom = c . DOM , 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 . onOrientationChange = new c . Signal , this . enterIncorrectOrientation = new c . Signal , this . leaveIncorrectOrientation = new c . Signal , this . hasPhaserSetFullScreen = ! 1 , this . fullScreenTarget = null , this . _createdFullScreenTarget = null , this . onFullScreenInit = new c . Signal , this . onFullScreenChange = new c . Signal , this . onFullScreenError = new c . Signal , this . screenOrientation = this . 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 = { right : "layout" , bottom : "" } , this . compatibility = { supportsFullScreen : ! 1 , orientationFallback : null , noMargins : ! 1 , scrollTo : null , forceMinimumDocumentHeight : ! 1 , canExpandParent : ! 0 , clickTrampoline : "" } , 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 . _pendingScaleMode = null , this . _fullScreenRestore = null , this . _gameSize = new c . Rectangle , this . _userScaleFactor = new c . Point ( 1 , 1 ) , this . _userScaleTrim = new c . Point ( 0 , 0 ) , this . _lastUpdate = 0 , this . _updateThrottle = 0 , this . _updateThrottleReset = 100 , this . _parentBounds = new c . Rectangle , this . _tempBounds = new c . Rectangle , this . _lastReportedCanvasSize = new c . Rectangle , this . _lastReportedGameSize = new c . Rectangle , this . _booted = ! 1 , 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 || ( this . game . device . android && ! this . game . device . chrome ? a . scrollTo = new c . Point ( 0 , 1 ) : a . scrollTo = new c . Point ( 0 , 0 ) ) , this . game . device . desktop ? ( a . orientationFallback = "screen" , a . clickTrampoline = "when-not-mouse" ) : ( a . orientationFallback = "" , a . clickTrampoline = "" ) ; 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 . fullScreenError ( a ) } , document . addEventListener ( "webkitfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . addEventListener ( "mozfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . addEventListener ( "MSFullscreenChange" , this . _fullScreenChange , ! 1 ) , document . addEventListener ( "fullscreenchange" , this . _fullScreenChange , ! 1 ) , document . addEventListener ( " webkitfullscreenerr
Object . defineProperty ( c . DOM . layoutBounds , "y" , { value : 0 } ) ; var e = a . desktop && document . documentElement . clientWidth <= window . innerWidth && document . documentElement . clientHeight <= window . innerHeight ; if ( e ) { var f = function ( ) { return Math . max ( window . innerWidth , document . documentElement . clientWidth ) } , g = function ( ) { return Math . max ( window . innerHeight , document . documentElement . clientHeight ) } ; Object . defineProperty ( c . DOM . visualBounds , "width" , { get : f } ) , Object . defineProperty ( c . DOM . visualBounds , "height" , { get : g } ) , Object . defineProperty ( c . DOM . layoutBounds , "width" , { get : f } ) , Object . defineProperty ( c . DOM . layoutBounds , "height" , { get : g } ) } else Object . defineProperty ( c . DOM . visualBounds , "width" , { get : function ( ) { return window . innerWidth } } ) , Object . defineProperty ( c . DOM . visualBounds , "height" , { get : function ( ) { return window . innerHeight } } ) , Object . defineProperty ( c . DOM . layoutBounds , "width" , { get : function ( ) { var a = document . documentElement . clientWidth , b = window . innerWidth ; return a < b ? b : a } } ) , Object . defineProperty ( c . DOM . layoutBounds , "height" , { get : function ( ) { var a = document . documentElement . clientHeight , b = window . innerHeight ; return a < b ? b : a } } ) ; Object . defineProperty ( c . DOM . documentBounds , "x" , { value : 0 } ) , Object . defineProperty ( c . DOM . documentBounds , "y" , { value : 0 } ) , Object . defineProperty ( c . DOM . documentBounds , "width" , { get : function ( ) { var a = document . documentElement ; return Math . max ( a . clientWidth , a . offsetWidth , a . scrollWidth ) } } ) , Object . defineProperty ( c . DOM . documentBounds , "height" , { get : function ( ) { var a = document . documentElement ; return Math . max ( a . clientHeight , a . offsetHeight , a . scrollHeight ) } } ) } , null , ! 0 ) , c . ArraySet = function ( a ) { this . position = 0 , this . list = a || [ ] } , c . ArraySet . prototype = { add : function ( a ) { return this . exists ( a ) || this . list . push ( a ) , a } , getIndex : function ( a ) { return this . list . indexOf ( a ) } , getByKey : function ( a , b ) { for ( var c = this . list . length ; c -- ; ) if ( this . list [ c ] [ a ] === b ) return this . list [ c ] ; return null } , exists : function ( a ) { return this . list . indexOf ( a ) > - 1 } , reset : function ( ) { this . list . length = 0 } , remove : function ( a ) { var b = this . list . indexOf ( a ) ; if ( b > - 1 ) return this . list . splice ( b , 1 ) , a } , setAll : function ( a , b ) { for ( var c = this . list . length ; c -- ; ) this . list [ c ] && ( this . list [ c ] [ a ] = b ) } , callAll : function ( a ) { for ( var b = Array . prototype . slice . call ( arguments , 1 ) , c = this . list . length ; c -- ; ) this . list [ c ] && this . list [ c ] [ a ] && this . list [ c ] [ a ] . apply ( this . list [ c ] , b ) } , removeAll : function ( a ) { void 0 === a && ( a = ! 1 ) ; for ( var b = this . list . length ; b -- ; ) if ( this . list [ b ] ) { var c = this . remove ( this . list [ b ] ) ; a && c . destroy ( ) } this . position = 0 , this . list = [ ] } } , Object . defineProperty ( c . ArraySet . prototype , "total" , { get : function ( ) { return this . list . length } } ) , Object . defineProperty ( c . ArraySet . prototype , "first" , { get : function ( ) { return this . position = 0 , this . list . length > 0 ? this . list [ 0 ] : null } } ) , Object . defineProperty ( c . ArraySet . prototype , "next" , { get : function ( ) { return this . position < this . list . length ? ( this . position ++ , this . list [ this . position ] ) : null } } ) , c . ArraySet . prototype . constructor = c . ArraySet , c . ArrayUtils = { getRandomItem : function ( a , b , c ) { if ( null === a ) return null ; void 0 === b && ( b = 0 ) , void 0 === c && ( c = a . length ) ; var d = b + Math . floor ( Math . random ( ) * c ) ; return void 0 === a [ d ] ? null : a [ d ] } , removeRandomItem : function ( a , b , c ) { if ( null == a ) return null ; void 0 === b && ( b = 0 ) , void 0 === c && ( c = a . length ) ; var d = b + Math . floor ( Math . random ( ) * c ) ; if ( d < a . length ) { var e = a . splice ( d , 1 ) ; return void 0 === e [ 0 ] ? null : e [ 0 ] } return null } , 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 } , transposeMatrix : function ( a ) { for ( var b = a . length , c = a [ 0 ] . length , d = new Array ( c ) , e = 0 ; e < c ; e ++ ) { d [ e ] = new Array ( b ) ; for ( var f = b - 1 ; f > - 1 ; f -- ) d [ e ] [ f ] = a [ f ] [ e ] } return d } , rotateMatrix : function ( a , b ) { if ( "string" != typeof b && ( b = ( b % 360 + 360 ) % 360 ) , 90 === b || b === - 270 || "rotateLeft" === b ) a = c . ArrayUtils . transposeMatrix ( a ) , a = a . reverse ( ) ; else if ( b === - 90 || 270 === b || "rotateRight" === b ) a = a . reverse ( ) , a = c . ArrayUtils . transposeMatrix ( a ) ; else if ( 180 === Math . abs ( b ) || "rotate180" === b ) { for ( var d = 0 ; d < a . length ; d ++ ) a [ d ] . reverse ( ) ; a = a . reverse ( ) } return a } , findClosest : function ( a , b ) { if ( ! b . length ) return NaN ; if ( 1 === b . length || a < b [ 0 ] ) return b [ 0 ] ; for ( var c = 1 ; b [ c ] < a ; ) c ++ ; var d = b [ c - 1 ] , e = c < b . length ? b [ c ] : Number . POSITIVE _INFINITY ; return e - a <= a - d ? e : d } , rotateRight : function ( a
} , m = ( ( a . mass - b . mass ) * k . x + 2 * b . mass * l . x ) / ( a . mass + b . mass ) , n = ( 2 * a . mass * k . x + ( b . mass - a . mass ) * l . x ) / ( a . mass + b . mass ) ; return a . immovable || ( a . velocity . x = ( m * Math . cos ( g ) - k . y * Math . sin ( g ) ) * a . bounce . x , a . velocity . y = ( k . y * Math . cos ( g ) + m * Math . sin ( g ) ) * a . bounce . y ) , b . immovable || ( b . velocity . x = ( n * Math . cos ( g ) - l . y * Math . sin ( g ) ) * b . bounce . x , b . velocity . y = ( l . y * Math . cos ( g ) + n * Math . sin ( g ) ) * b . bounce . y ) , Math . abs ( g ) < Math . PI / 2 ? a . velocity . x > 0 && ! a . immovable && b . velocity . x > a . velocity . x ? a . velocity . x *= - 1 : b . velocity . x < 0 && ! b . immovable && a . velocity . x < b . velocity . x ? b . velocity . x *= - 1 : a . velocity . y > 0 && ! a . immovable && b . velocity . y > a . velocity . y ? a . velocity . y *= - 1 : b . velocity . y < 0 && ! b . immovable && a . velocity . y < b . velocity . y && ( b . velocity . y *= - 1 ) : Math . abs ( g ) > Math . PI / 2 && ( a . velocity . x < 0 && ! a . immovable && b . velocity . x < a . velocity . x ? a . velocity . x *= - 1 : b . velocity . x > 0 && ! b . immovable && a . velocity . x > b . velocity . x ? b . velocity . x *= - 1 : a . velocity . y < 0 && ! a . immovable && b . velocity . y < a . velocity . y ? a . velocity . y *= - 1 : b . velocity . y > 0 && ! b . immovable && a . velocity . x > b . velocity . y && ( b . velocity . y *= - 1 ) ) , a . immovable || ( a . x += a . velocity . x * this . game . time . physicsElapsed - h * Math . cos ( g ) , a . y += a . velocity . y * this . game . time . physicsElapsed - h * Math . sin ( g ) ) , b . immovable || ( b . x += b . velocity . x * this . game . time . physicsElapsed + h * Math . cos ( g ) , b . y += b . velocity . y * this . game . time . physicsElapsed + h * Math . sin ( g ) ) , a . onCollide && a . onCollide . dispatch ( a . sprite , b . sprite ) , b . onCollide && b . onCollide . dispatch ( b . sprite , a . sprite ) , ! 0 } , getOverlapX : function ( a , b , c ) { var d = 0 , e = a . deltaAbsX ( ) + b . deltaAbsX ( ) + this . OVERLAP _BIAS ; return 0 === a . deltaX ( ) && 0 === b . deltaX ( ) ? ( a . embedded = ! 0 , b . embedded = ! 0 ) : a . deltaX ( ) > b . deltaX ( ) ? ( d = a . right - b . x , d > e && ! c || a . checkCollision . right === ! 1 || b . checkCollision . left === ! 1 ? d = 0 : ( a . touching . none = ! 1 , a . touching . right = ! 0 , b . touching . none = ! 1 , b . touching . left = ! 0 ) ) : a . deltaX ( ) < b . deltaX ( ) && ( d = a . x - b . width - b . x , - d > e && ! c || a . checkCollision . left === ! 1 || b . checkCollision . right === ! 1 ? d = 0 : ( a . touching . none = ! 1 , a . touching . left = ! 0 , b . touching . none = ! 1 , b . touching . right = ! 0 ) ) , a . overlapX = d , b . overlapX = d , d } , getOverlapY : function ( a , b , c ) { var d = 0 , e = a . deltaAbsY ( ) + b . deltaAbsY ( ) + this . OVERLAP _BIAS ; return 0 === a . deltaY ( ) && 0 === b . deltaY ( ) ? ( a . embedded = ! 0 , b . embedded = ! 0 ) : a . deltaY ( ) > b . deltaY ( ) ? ( d = a . bottom - b . y , d > e && ! c || a . checkCollision . down === ! 1 || b . checkCollision . up === ! 1 ? d = 0 : ( a . touching . none = ! 1 , a . touching . down = ! 0 , b . touching . none = ! 1 , b . touching . up = ! 0 ) ) : a . deltaY ( ) < b . deltaY ( ) && ( d = a . y - b . bottom , - d > e && ! c || a . checkCollision . up === ! 1 || b . checkCollision . down === ! 1 ? d = 0 : ( a . touching . none = ! 1 , a . touching . up = ! 0 , b . touching . none = ! 1 , b . touching . down = ! 0 ) ) , a . overlapY = d , b . overlapY = d , d } , separateX : function ( a , b , c ) { var d = this . getOverlapX ( a , b , c ) ; if ( c || 0 === d || a . immovable && b . immovable || a . customSeparateX || b . customSeparateX ) return 0 !== d || a . embedded && b . embedded ; var e = a . velocity . x , f = b . velocity . x ; if ( a . immovable || b . immovable ) a . immovable ? ( b . x += d , b . velocity . x = e - f * b . bounce . x , a . moves && ( b . y += ( a . y - a . prev . y ) * a . friction . y ) ) : ( a . x -= d , a . velocity . x = f - e * a . bounce . x , b . moves && ( a . y += ( b . y - b . prev . y ) * b . friction . y ) ) ; else { d *= . 5 , a . x -= d , b . x += d ; var g = Math . sqrt ( f * f * b . mass / a . mass ) * ( f > 0 ? 1 : - 1 ) , h = Math . sqrt ( e * e * a . mass / b . mass ) * ( e > 0 ? 1 : - 1 ) , i = . 5 * ( g + h ) ; g -= i , h -= i , a . velocity . x = i + g * a . bounce . x , b . velocity . x = i + h * b . bounce . x } return ! 0 } , separateY : function ( a , b , c ) { var d = this . getOverlapY ( a , b , c ) ; if ( c || 0 === d || a . immovable && b . immovable || a . customSeparateY || b . customSeparateY ) return 0 !== d || a . embedded && b . embedded ; var e = a . velocity . y , f = b . velocity . y ; if ( a . immovable || b . immovable ) a . immovable ? ( b . y += d , b . velocity . y = e - f * b . bounce . y , a . moves && ( b . x += ( a . x - a . prev . x ) * a . friction . x ) ) : ( a . y -= d , a . velocity . y = f - e * a . bounce . y , b . moves && ( a . x += ( b . x - b . prev . x ) * b . friction . x ) ) ; else { d *= . 5 , a . y -= d , b . y += d ; var g = Math . sqrt ( f * f * b . mass / a . mass ) * ( f > 0 ? 1 : - 1 ) , h = Math . sqrt ( e * e * a . mass / b . mass ) * ( e > 0 ? 1 : - 1 ) , i = . 5 * ( g + h ) ; g -= i , h -= i , a . velocity . y = i + g * a . bounce . y , b . velocity . y = i + h * b . bounce . y } return ! 0 } , getObjectsUnderPointer : function ( a , b , c , d ) { if ( 0 !== b . length && a . exists ) return this . getObjectsAtLocation ( a . x , a . y , b , c , d , a ) } , getObjectsAtLocation : function ( a , b , d , e , f , g ) { this . quadTree . clear ( ) , this . quadTree . reset ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height , this . maxObjects , this . maxLevels ) , this . quadTree . populate ( d ) ; for ( var h = new c . R
} , setCollision : function ( a , b , c , d ) { if ( void 0 === b && ( b = ! 0 ) , void 0 === d && ( d = ! 0 ) , c = this . getLayer ( c ) , "number" == typeof a ) return this . setCollisionByIndex ( a , b , c , ! 0 ) ; if ( Array . isArray ( a ) ) { for ( var e = 0 ; e < a . length ; e ++ ) this . setCollisionByIndex ( a [ e ] , b , c , ! 1 ) ; d && this . calculateFaces ( c ) } } , setCollisionBetween : function ( a , b , c , d , e ) { if ( void 0 === c && ( c = ! 0 ) , void 0 === e && ( e = ! 0 ) , d = this . getLayer ( d ) , ! ( a > b ) ) { for ( var f = a ; f <= b ; f ++ ) this . setCollisionByIndex ( f , c , d , ! 1 ) ; e && this . calculateFaces ( d ) } } , setCollisionByExclusion : function ( a , b , c , d ) { void 0 === b && ( b = ! 0 ) , void 0 === d && ( d = ! 0 ) , c = this . getLayer ( c ) ; for ( var e = 0 , f = this . tiles . length ; e < f ; e ++ ) a . indexOf ( e ) === - 1 && this . setCollisionByIndex ( e , b , c , ! 1 ) ; d && this . calculateFaces ( c ) } , setCollisionByIndex : function ( a , b , c , d ) { if ( void 0 === b && ( b = ! 0 ) , void 0 === c && ( c = this . currentLayer ) , void 0 === d && ( d = ! 0 ) , b ) this . collideIndexes . push ( a ) ; else { var e = this . collideIndexes . indexOf ( a ) ; e > - 1 && this . collideIndexes . splice ( e , 1 ) } for ( var f = 0 ; f < this . layers [ c ] . height ; f ++ ) for ( var g = 0 ; g < this . layers [ c ] . width ; g ++ ) { var h = this . layers [ c ] . data [ f ] [ g ] ; h && h . index === a && ( b ? h . setCollision ( ! 0 , ! 0 , ! 0 , ! 0 ) : h . resetCollision ( ) , h . faceTop = b , h . faceBottom = b , h . faceLeft = b , h . faceRight = b ) } return d && this . calculateFaces ( c ) , c } , getLayer : function ( a ) { return void 0 === a ? a = this . currentLayer : "string" == typeof a ? a = this . getLayerIndex ( a ) : a instanceof c . TilemapLayer && ( a = a . index ) , a } , setPreventRecalculate : function ( a ) { if ( a === ! 0 && this . preventingRecalculate !== ! 0 && ( this . preventingRecalculate = ! 0 , this . needToRecalculate = { } ) , a === ! 1 && this . preventingRecalculate === ! 0 ) { this . preventingRecalculate = ! 1 ; for ( var b in this . needToRecalculate ) this . calculateFaces ( b ) ; this . needToRecalculate = ! 1 } } , calculateFaces : function ( a ) { if ( this . preventingRecalculate ) return void ( this . needToRecalculate [ a ] = ! 0 ) ; for ( var b = null , c = null , d = null , e = null , f = 0 , g = this . layers [ a ] . height ; f < g ; f ++ ) for ( var h = 0 , i = this . layers [ a ] . width ; h < i ; h ++ ) { var j = this . layers [ a ] . data [ f ] [ h ] ; j && ( b = this . getTileAbove ( a , h , f ) , c = this . getTileBelow ( a , h , f ) , d = this . getTileLeft ( a , h , f ) , e = this . getTileRight ( a , h , f ) , j . collides && ( j . faceTop = ! 0 , j . faceBottom = ! 0 , j . faceLeft = ! 0 , j . faceRight = ! 0 ) , b && b . collides && ( j . faceTop = ! 1 ) , c && c . collides && ( j . faceBottom = ! 1 ) , d && d . collides && ( j . faceLeft = ! 1 ) , e && e . collides && ( j . faceRight = ! 1 ) ) } } , getTileAbove : function ( a , b , c ) { return c > 0 ? this . layers [ a ] . data [ c - 1 ] [ b ] : null } , getTileBelow : function ( a , b , c ) { return c < this . layers [ a ] . height - 1 ? this . layers [ a ] . data [ c + 1 ] [ b ] : null } , getTileLeft : function ( a , b , c ) { return b > 0 ? this . layers [ a ] . data [ c ] [ b - 1 ] : null } , getTileRight : function ( a , b , c ) { return b < this . layers [ a ] . width - 1 ? this . layers [ a ] . data [ c ] [ b + 1 ] : null } , setLayer : function ( a ) { a = this . getLayer ( a ) , this . layers [ a ] && ( this . currentLayer = a ) } , hasTile : function ( a , b , c ) { return c = this . getLayer ( c ) , void 0 !== this . layers [ c ] . data [ b ] && void 0 !== this . layers [ c ] . data [ b ] [ a ] && this . layers [ c ] . data [ b ] [ a ] . index > - 1 } , removeTile : function ( a , b , d ) { if ( d = this . getLayer ( d ) , a >= 0 && a < this . layers [ d ] . width && b >= 0 && b < this . layers [ d ] . height && this . hasTile ( a , b , d ) ) { var e = this . layers [ d ] . data [ b ] [ a ] ; return this . layers [ d ] . data [ b ] [ a ] = new c . Tile ( this . layers [ d ] , - 1 , a , b , this . tileWidth , this . tileHeight ) , this . layers [ d ] . dirty = ! 0 , this . calculateFaces ( d ) , e } } , removeTileWorldXY : function ( a , b , c , d , e ) { return e = this . getLayer ( e ) , a = this . game . math . snapToFloor ( a , c ) / c , b = this . game . math . snapToFloor ( b , d ) / d , this . removeTile ( a , b , e ) } , putTile : function ( a , b , d , e ) { if ( null === a ) return this . removeTile ( b , d , e ) ; if ( e = this . getLayer ( e ) , b >= 0 && b < this . layers [ e ] . width && d >= 0 && d < this . layers [ e ] . height ) { var f ; return a instanceof c . Tile ? ( f = a . index , this . hasTile ( b , d , e ) ? this . layers [ e ] . data [ d ] [ b ] . copy ( a ) : this . layers [ e ] . data [ d ] [ b ] = new c . Tile ( e , f , b , d , a . width , a . height ) ) : ( f = a , this . hasTile ( b , d , e ) ? this . layers [ e ] . data [ d ] [ b ] . index = f : this . layers [ e ] . data [ d ] [ b ] = new c . Tile ( this . layers [ e ] , f , b , d , this . tileWidth , this . tileHeight ) ) , this . collideIndexes . indexOf ( f ) > - 1 ? this . layers [ e ] . data [ d ] [ b ] . setCollision ( ! 0 , ! 0 , ! 0 , ! 0 ) : this . layers [ e ] . data [ d ] [ b ] . resetCollision ( ) , this . layers [ e ] . dirty = ! 0 , this . calculateFaces ( e ) , this . layers [ e ] . data [ d ] [ b ] } return null } , putTileWorldXY : function ( a , b , c , d , e , f ) { return f = this . getLayer ( f ) , b = this . game . math . snapToFloor ( b , d ) / d , c = this . game . math . snapToFloor ( c , e ) / e , this . putTile ( a , b , c , f ) } , searchTileIndex : function ( a , b , c , d ) { void 0 === b
void 0 === d && ( d = 0 ) , void 0 === e && ( e = ! 1 ) , d > this . maxParticles && ( d = this . maxParticles ) , this . revive ( ) , this . visible = ! 0 , this . lifespan = b , this . frequency = c , a || e ) for ( var f = 0 ; f < d ; f ++ ) this . emitParticle ( ) ; else this . on = ! 0 , this . _quantity = d , this . _counter = 0 , this . _timer = this . game . time . time + c * this . game . time . slowMotion ; return this } , c . Particles . Arcade . Emitter . prototype . emitParticle = function ( a , b , c , d ) { void 0 === a && ( a = null ) , void 0 === b && ( b = null ) ; var e = this . getFirstExists ( ! 1 ) ; if ( null === e ) return ! 1 ; var f = this . game . rnd ; void 0 !== c && void 0 !== d ? e . loadTexture ( c , d ) : void 0 !== c && e . loadTexture ( c ) ; var g = this . emitX , h = this . emitY ; null !== a ? g = a : this . width > 1 && ( g = f . between ( this . left , this . right ) ) , null !== b ? h = b : this . height > 1 && ( h = f . between ( this . top , this . bottom ) ) , e . reset ( g , h ) , e . angle = 0 , e . lifespan = this . lifespan , this . particleBringToTop ? this . bringToTop ( e ) : this . particleSendToBack && this . sendToBack ( e ) , this . autoScale ? e . setScaleData ( this . scaleData ) : 1 !== this . minParticleScale || 1 !== this . maxParticleScale ? e . scale . set ( f . realInRange ( this . minParticleScale , this . maxParticleScale ) ) : this . _minParticleScale . x === this . _maxParticleScale . x && this . _minParticleScale . y === this . _maxParticleScale . y || e . scale . set ( f . realInRange ( this . _minParticleScale . x , this . _maxParticleScale . x ) , f . realInRange ( this . _minParticleScale . y , this . _maxParticleScale . y ) ) , void 0 === d && ( Array . isArray ( this . _frames ) ? e . frame = this . game . rnd . pick ( this . _frames ) : e . frame = this . _frames ) , this . autoAlpha ? e . setAlphaData ( this . alphaData ) : e . alpha = f . realInRange ( this . minParticleAlpha , this . maxParticleAlpha ) , e . blendMode = this . blendMode ; var i = e . body ; return i . updateBounds ( ) , i . bounce . copyFrom ( this . bounce ) , i . drag . copyFrom ( this . particleDrag ) , i . velocity . x = f . between ( this . minParticleSpeed . x , this . maxParticleSpeed . x ) , i . velocity . y = f . between ( this . minParticleSpeed . y , this . maxParticleSpeed . y ) , i . angularVelocity = f . between ( this . minRotation , this . maxRotation ) , i . gravity . y = this . gravity , i . angularDrag = this . angularDrag , e . onEmit ( ) , ! 0 } , c . Particles . Arcade . Emitter . prototype . destroy = function ( ) { this . game . particles . remove ( this ) , c . Group . prototype . destroy . call ( this , ! 0 , ! 1 ) } , c . Particles . Arcade . Emitter . prototype . setSize = function ( a , b ) { return this . area . width = a , this . area . height = b , this } , c . Particles . Arcade . Emitter . prototype . setXSpeed = function ( a , b ) { return a = a || 0 , b = b || 0 , this . minParticleSpeed . x = a , this . maxParticleSpeed . x = b , this } , c . Particles . Arcade . Emitter . prototype . setYSpeed = function ( a , b ) { return a = a || 0 , b = b || 0 , this . minParticleSpeed . y = a , this . maxParticleSpeed . y = b , this } , c . Particles . Arcade . Emitter . prototype . setRotation = function ( a , b ) { return a = a || 0 , b = b || 0 , this . minRotation = a , this . maxRotation = b , this } , c . Particles . Arcade . Emitter . prototype . setAlpha = function ( a , b , d , e , f ) { if ( void 0 === a && ( a = 1 ) , void 0 === b && ( b = 1 ) , void 0 === d && ( d = 0 ) , void 0 === e && ( e = c . Easing . Linear . None ) , void 0 === f && ( f = ! 1 ) , this . minParticleAlpha = a , this . maxParticleAlpha = b , this . autoAlpha = ! 1 , d > 0 && a !== b ) { var g = { v : a } , h = this . game . make . tween ( g ) . to ( { v : b } , d , e ) ; h . yoyo ( f ) , this . alphaData = h . generateData ( 60 ) , this . alphaData . reverse ( ) , this . autoAlpha = ! 0 } return this } , c . Particles . Arcade . Emitter . prototype . setScale = function ( a , b , d , e , f , g , h ) { if ( void 0 === a && ( a = 1 ) , void 0 === b && ( b = 1 ) , void 0 === d && ( d = 1 ) , void 0 === e && ( e = 1 ) , void 0 === f && ( f = 0 ) , void 0 === g && ( g = c . Easing . Linear . None ) , void 0 === h && ( h = ! 1 ) , this . minParticleScale = 1 , this . maxParticleScale = 1 , this . _minParticleScale . set ( a , d ) , this . _maxParticleScale . set ( b , e ) , this . autoScale = ! 1 , f > 0 && ( a !== b || d !== e ) ) { var i = { x : a , y : d } , j = this . game . make . tween ( i ) . to ( { x : b , y : e } , f , g ) ; j . yoyo ( h ) , this . scaleData = j . generateData ( 60 ) , this . scaleData . reverse ( ) , this . autoScale = ! 0 } return this } , c . Particles . Arcade . Emitter . prototype . at = function ( a ) { return a . center ? ( this . emitX = a . center . x , this . emitY = a . center . y ) : ( this . emitX = a . world . x + a . anchor . x * a . width , this . emitY = a . world . y + a . anchor . y * a . height ) , this } , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "width" , { get : function ( ) { return this . area . width } , set : function ( a ) { this . area . width = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "height" , { get : function ( ) { return this . area . height } , set : function ( a ) { this . area . height = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "x" , { get : function ( ) { return this . emitX } , set : function ( a )
2016-11-22 01:36:48 +00:00
//# sourceMappingURL=phaser-arcade-physics.map