2016-11-28 16:50:04 +00:00
/* Phaser v2.7.1 - 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
2016-11-28 16:50:04 +00:00
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 . y = c . Math . clamp ( this . y , a , b ) , 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 } , fl
this . _listener = b , c && ( this . _isOnce = ! 0 ) , 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 |
this . particles = new c . Particles ( this ) , 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
this . y = ( this . pageY - this . game . scale . offset . y ) * d . scale . y , 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 , th
this . _buttons = [ ] , this . _buttonsLen = 0 , this . _axes = [ ] , this . _axesLen = 0 } , 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 (
return new c . Video ( this . game , a , b ) } , 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 } , 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 || thi
var d = a ; do { if ( d . i !== a . i && d . next . i !== a . i && d . i !== b . i && d . next . i !== b . i && c . EarCut . intersects ( d , d . next , a , b ) ) return ! 0 ; d = d . next } while ( d !== a ) ; return ! 1 } , c . EarCut . locallyInside = function ( a , b ) { return c . EarCut . area ( a . prev , a , a . next ) < 0 ? c . EarCut . area ( a , b , a . next ) >= 0 && c . EarCut . area ( a , a . prev , b ) >= 0 : c . EarCut . area ( a , b , a . prev ) < 0 || c . EarCut . area ( a , a . next , b ) < 0 } , c . EarCut . middleInside = function ( a , b ) { var c = a , d = ! 1 , e = ( a . x + b . x ) / 2 , f = ( a . y + b . y ) / 2 ; do c . y > f != c . next . y > f && e < ( c . next . x - c . x ) * ( f - c . y ) / ( c . next . y - c . y ) + c . x && ( d = ! d ) , c = c . next ; while ( c !== a ) ; return d } , c . EarCut . splitPolygon = function ( a , b ) { var d = new c . EarCut . Node ( a . i , a . x , a . y ) , e = new c . EarCut . Node ( b . i , b . x , b . y ) , f = a . next , g = b . prev ; return a . next = b , b . prev = a , d . next = f , f . prev = d , e . next = d , d . prev = e , g . next = e , e . prev = g , e } , c . EarCut . insertNode = function ( a , b , d , e ) { var f = new c . EarCut . Node ( a , b , d ) ; return e ? ( f . next = e . next , f . prev = e , e . next . prev = f , e . next = f ) : ( f . prev = f , f . next = f ) , f } , c . EarCut . removeNode = function ( a ) { a . next . prev = a . prev , a . prev . next = a . next , a . prevZ && ( a . prevZ . nextZ = a . nextZ ) , a . nextZ && ( a . nextZ . prevZ = a . prevZ ) } , c . EarCut . Node = function ( a , b , c ) { this . i = a , this . x = b , this . y = c , this . prev = null , this . next = null , this . z = null , this . prevZ = null , this . nextZ = null , this . steiner = ! 1 } , PIXI . WebGLGraphics = function ( ) { } , PIXI . WebGLGraphics . stencilBufferLimit = 6 , PIXI . WebGLGraphics . renderGraphics = function ( a , b ) { var d , e = b . gl , f = b . projection , g = b . offset , h = b . shaderManager . primitiveShader ; a . dirty && PIXI . WebGLGraphics . updateGraphics ( a , e ) ; for ( var i = a . _webGL [ e . id ] , j = 0 ; j < i . data . length ; j ++ ) 1 === i . data [ j ] . mode ? ( d = i . data [ j ] , b . stencilManager . pushStencil ( a , d , b ) , e . drawElements ( e . TRIANGLE _FAN , 4 , e . UNSIGNED _SHORT , 2 * ( d . indices . length - 4 ) ) , b . stencilManager . popStencil ( a , d , b ) ) : ( d = i . data [ j ] , b . shaderManager . setShader ( h ) , h = b . shaderManager . primitiveShader , e . uniformMatrix3fv ( h . translationMatrix , ! 1 , a . worldTransform . toArray ( ! 0 ) ) , e . uniform1f ( h . flipY , 1 ) , e . uniform2f ( h . projectionVector , f . x , - f . y ) , e . uniform2f ( h . offsetVector , - g . x , - g . y ) , e . uniform3fv ( h . tintColor , c . Color . hexToRGBArray ( a . tint ) ) , e . uniform1f ( h . alpha , a . worldAlpha ) , e . bindBuffer ( e . ARRAY _BUFFER , d . buffer ) , e . vertexAttribPointer ( h . aVertexPosition , 2 , e . FLOAT , ! 1 , 24 , 0 ) , e . vertexAttribPointer ( h . colorAttribute , 4 , e . FLOAT , ! 1 , 24 , 8 ) , e . bindBuffer ( e . ELEMENT _ARRAY _BUFFER , d . indexBuffer ) , e . drawElements ( e . TRIANGLE _STRIP , d . indices . length , e . UNSIGNED _SHORT , 0 ) ) } , PIXI . WebGLGraphics . updateGraphics = function ( a , b ) { var d = a . _webGL [ b . id ] ; d || ( d = a . _webGL [ b . id ] = { lastIndex : 0 , data : [ ] , gl : b } ) , a . dirty = ! 1 ; var e ; if ( a . clearDirty ) { for ( a . clearDirty = ! 1 , e = 0 ; e < d . data . length ; e ++ ) { var f = d . data [ e ] ; f . reset ( ) , PIXI . WebGLGraphics . graphicsDataPool . push ( f ) } d . data = [ ] , d . lastIndex = 0 } var g ; for ( e = d . lastIndex ; e < a . graphicsData . length ; e ++ ) { var h = a . graphicsData [ e ] ; if ( h . type === c . POLYGON ) { if ( h . points = h . shape . points . slice ( ) , h . shape . closed && ( h . points [ 0 ] === h . points [ h . points . length - 2 ] && h . points [ 1 ] === h . points [ h . points . length - 1 ] || h . points . push ( h . points [ 0 ] , h . points [ 1 ] ) ) , h . fill && h . points . length >= PIXI . WebGLGraphics . stencilBufferLimit ) if ( h . points . length < 2 * PIXI . WebGLGraphics . stencilBufferLimit ) { g = PIXI . WebGLGraphics . switchMode ( d , 0 ) ; var i = PIXI . WebGLGraphics . buildPoly ( h , g ) ; i || ( g = PIXI . WebGLGraphics . switchMode ( d , 1 ) , PIXI . WebGLGraphics . buildComplexPoly ( h , g ) ) } else g = PIXI . WebGLGraphics . switchMode ( d , 1 ) , PIXI . WebGLGraphics . buildComplexPoly ( h , g ) ; h . lineWidth > 0 && ( g = PIXI . WebGLGraphics . switchMode ( d , 0 ) , PIXI . WebGLGraphics . buildLine ( h , g ) ) } else g = PIXI . WebGLGraphics . switchMode ( d , 0 ) , h . type === c . RECTANGLE ? PIXI . WebGLGraphics . buildRectangle ( h , g ) : h . type === c . CIRCLE || h . type === c . ELLIPSE ? PIXI . WebGLGraphics . buildCircle ( h , g ) : h . type === c . ROUNDEDRECTANGLE && PIXI . WebGLGraphics . buildRoundedRectangle ( h , g ) ; d . lastIndex ++ } for ( e = 0 ; e < d . data . length ; e ++ ) g = d . data [ e ] , g . dirty && g . upload ( ) } , PIXI . WebGLGraphics . switchMode = function ( a , b ) { var c ; return a . data . length ? ( c = a . data [ a . data . length - 1 ] , c . mode === b && 1 !== b || ( c = PIXI . WebGLGraphics . graphicsDataPool . pop ( ) || new PIXI . WebGLGraphicsData ( a . gl ) , c . mode = b , a . data . push ( c ) ) ) : ( c = PIXI . WebGLGraphics . graphicsDataPool . pop ( ) || new PIXI . WebGLGraphicsData ( a . gl ) , c . mode = b , a . data . push ( c ) ) , c . dirty = ! 0 , c } , PIXI . WebGLGraphics . buildRectangle = function ( a , b ) { var d = a . shape , e = d . x , f = d . y , g = d . width , h = d . height ; if ( a . fill ) { var i = c . Color . hexToRGBArray ( a . fillColor ) , j = a . fillAlpha , k
c . Text . prototype . preUpdate = function ( ) { return ! ! ( this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ) && this . preUpdateCore ( ) } , c . Text . prototype . update = function ( ) { } , c . Text . prototype . destroy = function ( a ) { this . texture . destroy ( ! 0 ) , c . Component . Destroy . prototype . destroy . call ( this , a ) } , c . Text . prototype . setShadow = function ( a , b , c , d , e , f ) { return void 0 === a && ( a = 0 ) , void 0 === b && ( b = 0 ) , void 0 === c && ( c = "rgba(0, 0, 0, 1)" ) , void 0 === d && ( d = 0 ) , void 0 === e && ( e = ! 0 ) , void 0 === f && ( f = ! 0 ) , this . style . shadowOffsetX = a , this . style . shadowOffsetY = b , this . style . shadowColor = c , this . style . shadowBlur = d , this . style . shadowStroke = e , this . style . shadowFill = f , this . dirty = ! 0 , this } , c . Text . prototype . setStyle = function ( a , b ) { void 0 === b && ( b = ! 1 ) , a = a || { } , a . font = a . font || "bold 20pt Arial" , a . backgroundColor = a . backgroundColor || null , a . fill = a . fill || "black" , a . align = a . align || "left" , a . boundsAlignH = a . boundsAlignH || "left" , a . boundsAlignV = a . boundsAlignV || "top" , a . stroke = a . stroke || "black" , a . strokeThickness = a . strokeThickness || 0 , a . wordWrap = a . wordWrap || ! 1 , a . wordWrapWidth = a . wordWrapWidth || 100 , a . maxLines = a . maxLines || 0 , a . shadowOffsetX = a . shadowOffsetX || 0 , a . shadowOffsetY = a . shadowOffsetY || 0 , a . shadowColor = a . shadowColor || "rgba(0,0,0,0)" , a . shadowBlur = a . shadowBlur || 0 , a . tabs = a . tabs || 0 ; var c = this . fontToComponents ( a . font ) ; return a . fontStyle && ( c . fontStyle = a . fontStyle ) , a . fontVariant && ( c . fontVariant = a . fontVariant ) , a . fontWeight && ( c . fontWeight = a . fontWeight ) , a . fontSize && ( "number" == typeof a . fontSize && ( a . fontSize = a . fontSize + "px" ) , c . fontSize = a . fontSize ) , this . _fontComponents = c , a . font = this . componentsToFont ( this . _fontComponents ) , this . style = a , this . dirty = ! 0 , b && this . updateText ( ) , this } , c . Text . prototype . updateText = function ( ) { this . texture . baseTexture . resolution = this . _res , this . context . font = this . style . font ; var a = this . text ; this . style . wordWrap && ( a = this . runWordWrap ( this . text ) ) ; var b = a . split ( this . splitRegExp ) , c = this . style . tabs , d = [ ] , e = 0 , f = this . determineFontProperties ( this . style . font ) , g = b . length ; this . style . maxLines > 0 && this . style . maxLines < b . length && ( g = this . style . maxLines ) , this . _charCount = 0 ; for ( var h = 0 ; h < g ; h ++ ) { if ( 0 === c ) { var i = this . style . strokeThickness + this . padding . x ; i += this . colors . length > 0 || this . strokeColors . length > 0 || this . fontWeights . length > 0 || this . fontStyles . length > 0 ? this . measureLine ( b [ h ] ) : this . context . measureText ( b [ h ] ) . width , this . style . wordWrap && ( i -= this . context . measureText ( " " ) . width ) } else { var j = b [ h ] . split ( /(?:\t)/ ) , i = this . padding . x + this . style . strokeThickness ; if ( Array . isArray ( c ) ) for ( var k = 0 , l = 0 ; l < j . length ; l ++ ) { var m = 0 ; m = this . colors . length > 0 || this . strokeColors . length > 0 || this . fontWeights . length > 0 || this . fontStyles . length > 0 ? this . measureLine ( j [ l ] ) : Math . ceil ( this . context . measureText ( j [ l ] ) . width ) , l > 0 && ( k += c [ l - 1 ] ) , i = k + m } else for ( var l = 0 ; l < j . length ; l ++ ) { i += this . colors . length > 0 || this . strokeColors . length > 0 || this . fontWeights . length > 0 || this . fontStyles . length > 0 ? this . measureLine ( j [ l ] ) : Math . ceil ( this . context . measureText ( j [ l ] ) . width ) ; var n = this . game . math . snapToCeil ( i , c ) - i ; i += n } } d [ h ] = Math . ceil ( i ) , e = Math . max ( e , d [ h ] ) } this . canvas . width = e * this . _res ; var o = f . fontSize + this . style . strokeThickness + this . padding . y , p = o * g , q = this . _lineSpacing ; q < 0 && Math . abs ( q ) > o && ( q = - o ) , 0 !== q && ( p += q > 0 ? q * b . length : q * ( b . length - 1 ) ) , this . canvas . height = p * this . _res , this . context . scale ( this . _res , this . _res ) , navigator . isCocoonJS && this . context . clearRect ( 0 , 0 , this . canvas . width , this . canvas . height ) , this . style . backgroundColor && ( this . context . fillStyle = this . style . backgroundColor , this . context . fillRect ( 0 , 0 , this . canvas . width , this . canvas . height ) ) , this . context . fillStyle = this . style . fill , this . context . font = this . style . font , this . context . strokeStyle = this . style . stroke , this . context . textBaseline = "alphabetic" , this . context . lineWidth = this . style . strokeThickness , this . context . lineCap = "round" , this . context . lineJoin = "round" ; var r , s ; for ( this . _charCount = 0 , h = 0 ; h < g ; h ++ ) r = this . style . strokeThickness / 2 , s = this . style . strokeThickness / 2 + h * o + f . ascent , h > 0 && ( s += q * h ) , "right" === this . style . align ? r += e - d [ h ] : "center" === this . style . align && ( r += ( e - d [ h ] ) / 2 ) , this . autoRound && ( r = Math . round ( r ) , s = Math . round ( s ) ) , this . colors . length > 0 || this . strokeColors . length > 0 || this . fontWeights . length > 0 || this . fontStyles . length > 0 ? this . updateLine ( b [ h ] , r , s )
} , c . Rope . prototype . _renderStrip = function ( a ) { var b = a . gl , d = a . projection , e = a . offset , f = a . shaderManager . stripShader , g = this . drawMode === c . Rope . TRIANGLE _STRIP ? b . TRIANGLE _STRIP : b . TRIANGLES ; a . blendModeManager . setBlendMode ( this . blendMode ) , b . uniformMatrix3fv ( f . translationMatrix , ! 1 , this . worldTransform . toArray ( ! 0 ) ) , b . uniform2f ( f . projectionVector , d . x , - d . y ) , b . uniform2f ( f . offsetVector , - e . x , - e . y ) , b . uniform1f ( f . alpha , this . worldAlpha ) , this . dirty ? ( this . dirty = ! 1 , b . bindBuffer ( b . ARRAY _BUFFER , this . _vertexBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . vertices , b . STATIC _DRAW ) , b . vertexAttribPointer ( f . aVertexPosition , 2 , b . FLOAT , ! 1 , 0 , 0 ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _uvBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . uvs , b . STATIC _DRAW ) , b . vertexAttribPointer ( f . aTextureCoord , 2 , b . FLOAT , ! 1 , 0 , 0 ) , b . activeTexture ( b . TEXTURE0 ) , this . texture . baseTexture . _dirty [ b . id ] ? a . renderer . updateTexture ( this . texture . baseTexture ) : b . bindTexture ( b . TEXTURE _2D , this . texture . baseTexture . _glTextures [ b . id ] ) , b . bindBuffer ( b . ELEMENT _ARRAY _BUFFER , this . _indexBuffer ) , b . bufferData ( b . ELEMENT _ARRAY _BUFFER , this . indices , b . STATIC _DRAW ) ) : ( b . bindBuffer ( b . ARRAY _BUFFER , this . _vertexBuffer ) , b . bufferSubData ( b . ARRAY _BUFFER , 0 , this . vertices ) , b . vertexAttribPointer ( f . aVertexPosition , 2 , b . FLOAT , ! 1 , 0 , 0 ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _uvBuffer ) , b . vertexAttribPointer ( f . aTextureCoord , 2 , b . FLOAT , ! 1 , 0 , 0 ) , b . activeTexture ( b . TEXTURE0 ) , this . texture . baseTexture . _dirty [ b . id ] ? a . renderer . updateTexture ( this . texture . baseTexture ) : b . bindTexture ( b . TEXTURE _2D , this . texture . baseTexture . _glTextures [ b . id ] ) , b . bindBuffer ( b . ELEMENT _ARRAY _BUFFER , this . _indexBuffer ) ) , b . drawElements ( g , this . indices . length , b . UNSIGNED _SHORT , 0 ) } , c . Rope . prototype . _renderCanvas = function ( a ) { var b = a . context , d = this . worldTransform , e = d . tx * a . resolution + a . shakeX , f = d . ty * a . resolution + a . shakeY ; a . roundPixels ? b . setTransform ( d . a , d . b , d . c , d . d , 0 | e , 0 | f ) : b . setTransform ( d . a , d . b , d . c , d . d , e , f ) , this . drawMode === c . Rope . TRIANGLE _STRIP ? this . _renderCanvasTriangleStrip ( b ) : this . _renderCanvasTriangles ( b ) } , c . Rope . prototype . _renderCanvasTriangleStrip = function ( a ) { var b = this . vertices , c = this . uvs , d = b . length / 2 ; this . count ++ ; for ( var e = 0 ; e < d - 2 ; e ++ ) { var f = 2 * e ; this . _renderCanvasDrawTriangle ( a , b , c , f , f + 2 , f + 4 ) } } , c . Rope . prototype . _renderCanvasTriangles = function ( a ) { var b = this . vertices , c = this . uvs , d = this . indices , e = d . length ; this . count ++ ; for ( var f = 0 ; f < e ; f += 3 ) { var g = 2 * d [ f ] , h = 2 * d [ f + 1 ] , i = 2 * d [ f + 2 ] ; this . _renderCanvasDrawTriangle ( a , b , c , g , h , i ) } } , c . Rope . prototype . _renderCanvasDrawTriangle = function ( a , b , c , d , e , f ) { var g = this . texture . baseTexture . source , h = this . texture . width , i = this . texture . height , j = b [ d ] , k = b [ e ] , l = b [ f ] , m = b [ d + 1 ] , n = b [ e + 1 ] , o = b [ f + 1 ] , p = c [ d ] * h , q = c [ e ] * h , r = c [ f ] * h , s = c [ d + 1 ] * i , t = c [ e + 1 ] * i , u = c [ f + 1 ] * i ; if ( this . canvasPadding > 0 ) { var v = this . canvasPadding / this . worldTransform . a , w = this . canvasPadding / this . worldTransform . d , x = ( j + k + l ) / 3 , y = ( m + n + o ) / 3 , z = j - x , A = m - y , B = Math . sqrt ( z * z + A * A ) ; j = x + z / B * ( B + v ) , m = y + A / B * ( B + w ) , z = k - x , A = n - y , B = Math . sqrt ( z * z + A * A ) , k = x + z / B * ( B + v ) , n = y + A / B * ( B + w ) , z = l - x , A = o - y , B = Math . sqrt ( z * z + A * A ) , l = x + z / B * ( B + v ) , o = y + A / B * ( B + w ) } a . save ( ) , a . beginPath ( ) , a . moveTo ( j , m ) , a . lineTo ( k , n ) , a . lineTo ( l , o ) , a . closePath ( ) , a . clip ( ) ; var C = p * t + s * r + q * u - t * r - s * q - p * u , D = j * t + s * l + k * u - t * l - s * k - j * u , E = p * k + j * r + q * l - k * r - j * q - p * l , F = p * t * l + s * k * r + j * q * u - j * t * r - s * q * l - p * k * u , G = m * t + s * o + n * u - t * o - s * n - m * u , H = p * n + m * r + q * o - n * r - m * q - p * o , I = p * t * o + s * n * r + m * q * u - m * t * r - s * q * o - p * n * u ; a . transform ( D / C , G / C , E / C , H / C , F / C , I / C ) , a . drawImage ( g , 0 , 0 ) , a . restore ( ) } , c . Rope . prototype . renderStripFlat = function ( a ) { var b = this . context , c = a . vertices , d = c . length / 2 ; this . count ++ , b . beginPath ( ) ; for ( var e = 1 ; e < d - 2 ; e ++ ) { var f = 2 * e , g = c [ f ] , h = c [ f + 2 ] , i = c [ f + 4 ] , j = c [ f + 1 ] , k = c [ f + 3 ] , l = c [ f + 5 ] ; b . moveTo ( g , j ) , b . lineTo ( h , k ) , b . lineTo ( i , l ) } b . fillStyle = "#FF0000" , b . fill ( ) , b . closePath ( ) } , c . Rope . prototype . getBounds = function ( a ) { for ( var b = a || this . worldTransform , c = b . a , d = b . b , e = b . c , f = b . d , g = b . tx , h = b . ty , i = - ( 1 / 0 ) , j = - ( 1 / 0 ) , k = 1 / 0 , l = 1 / 0 , m = this . vertices , n = 0 ; n < m . length ; n += 2 ) { var o = m [ n ] , p = m [ n + 1 ] , q = c * o + e * p + g , r = f * p + d * o + h ; k = q < k ? q : k , l = r < l ? r : l , i = q > i ? q : i , j = r > j ? r : j } if ( k === - ( 1 / 0 ) || j === 1 / 0 ) return PIXI . EmptyRectangle ; var s = this . _bounds ; return s . x = k , s . width = i - k , s . y = l , s . height = j - l , this . _currentBounds = s , s } , Object . defineProperty ( c . Rope . prototype , "updateAnimation" , { get : function ( ) { return thi
return void 0 === e && ( e = 2 ) , Math . sqrt ( Math . pow ( c - a , e ) + Math . pow ( d - b , e ) ) } , clamp : function ( a , b , c ) { return a < b ? b : c < a ? c : a } , clampBottom : function ( a , b ) { return a < b ? b : a } , within : function ( a , b , c ) { return Math . abs ( a - b ) <= c } , mapLinear : function ( a , b , c , d , e ) { return d + ( a - b ) * ( e - d ) / ( c - b ) } , smoothstep : function ( a , b , c ) { return a = Math . max ( 0 , Math . min ( 1 , ( a - b ) / ( c - b ) ) ) , a * a * ( 3 - 2 * a ) } , smootherstep : function ( a , b , c ) { return a = Math . max ( 0 , Math . min ( 1 , ( a - b ) / ( c - b ) ) ) , a * a * a * ( a * ( 6 * a - 15 ) + 10 ) } , sign : function ( a ) { return a < 0 ? - 1 : a > 0 ? 1 : 0 } , percent : function ( a , b , c ) { return void 0 === c && ( c = 0 ) , a > b || c > b ? 1 : a < c || c > a ? 0 : ( a - c ) / b } } , c . RandomDataGenerator = function ( a ) { void 0 === a && ( a = [ ] ) , this . c = 1 , this . s0 = 0 , this . s1 = 0 , this . s2 = 0 , "string" == typeof a ? this . state ( a ) : this . sow ( a ) } , c . RandomDataGenerator . prototype = { rnd : function ( ) { var a = 2091639 * this . s0 + 2.3283064365386963 e - 10 * this . c ; return this . c = 0 | a , this . s0 = this . s1 , this . s1 = this . s2 , this . s2 = a - this . c , this . s2 } , sow : function ( a ) { if ( this . s0 = this . hash ( " " ) , this . s1 = this . hash ( this . s0 ) , this . s2 = this . hash ( this . s1 ) , this . c = 1 , a ) for ( var b = 0 ; b < a . length && null != a [ b ] ; b ++ ) { var c = a [ b ] ; this . s0 -= this . hash ( c ) , this . s0 += ~ ~ ( this . s0 < 0 ) , this . s1 -= this . hash ( c ) , this . s1 += ~ ~ ( this . s1 < 0 ) , this . s2 -= this . hash ( c ) , this . s2 += ~ ~ ( this . s2 < 0 ) } } , hash : function ( a ) { var b , c , d ; for ( d = 4022871197 , a = a . toString ( ) , c = 0 ; c < a . length ; c ++ ) d += a . charCodeAt ( c ) , b = . 02519603282416938 * d , d = b >>> 0 , b -= d , b *= d , d = b >>> 0 , b -= d , d += 4294967296 * b ; return 2.3283064365386963 e - 10 * ( d >>> 0 ) } , integer : function ( ) { return 4294967296 * this . rnd . apply ( this ) } , frac : function ( ) { return this . rnd . apply ( this ) + 1.1102230246251565 e - 16 * ( 2097152 * this . rnd . apply ( this ) | 0 ) } , real : function ( ) { return this . integer ( ) + this . frac ( ) } , integerInRange : function ( a , b ) { return Math . floor ( this . realInRange ( 0 , b - a + 1 ) + a ) } , between : function ( a , b ) { return this . integerInRange ( a , b ) } , realInRange : function ( a , b ) { return this . frac ( ) * ( b - a ) + a } , normal : function ( ) { return 1 - 2 * this . frac ( ) } , uuid : function ( ) { var a = "" , b = "" ; for ( b = a = "" ; a ++ < 36 ; b += ~ a % 5 | 3 * a & 4 ? ( 15 ^ a ? 8 ^ this . frac ( ) * ( 20 ^ a ? 16 : 4 ) : 4 ) . toString ( 16 ) : "-" ) ; return b } , pick : function ( a ) { return a [ this . integerInRange ( 0 , a . length - 1 ) ] } , sign : function ( ) { return this . pick ( [ - 1 , 1 ] ) } , weightedPick : function ( a ) { return a [ ~ ~ ( Math . pow ( this . frac ( ) , 2 ) * ( a . length - 1 ) + . 5 ) ] } , timestamp : function ( a , b ) { return this . realInRange ( a || 9466848e5 , b || 1577862e6 ) } , angle : function ( ) { return this . integerInRange ( - 180 , 180 ) } , state : function ( a ) { return "string" == typeof a && a . match ( /^!rnd/ ) && ( a = a . split ( "," ) , this . c = parseFloat ( a [ 1 ] ) , this . s0 = parseFloat ( a [ 2 ] ) , this . s1 = parseFloat ( a [ 3 ] ) , this . s2 = parseFloat ( a [ 4 ] ) ) , [ "!rnd" , this . c , this . s0 , this . s1 , this . s2 ] . join ( "," ) } } , c . RandomDataGenerator . prototype . constructor = c . RandomDataGenerator , c . QuadTree = function ( a , b , c , d , e , f , g ) { this . maxObjects = 10 , this . maxLevels = 4 , this . level = 0 , this . bounds = { } , this . objects = [ ] , this . nodes = [ ] , this . _empty = [ ] , this . reset ( a , b , c , d , e , f , g ) } , c . QuadTree . prototype = { reset : function ( a , b , c , d , e , f , g ) { this . maxObjects = e || 10 , this . maxLevels = f || 4 , this . level = g || 0 , this . bounds = { x : Math . round ( a ) , y : Math . round ( b ) , width : c , height : d , subWidth : Math . floor ( c / 2 ) , subHeight : Math . floor ( d / 2 ) , right : Math . round ( a ) + Math . floor ( c / 2 ) , bottom : Math . round ( b ) + Math . floor ( d / 2 ) } , this . objects . length = 0 , this . nodes . length = 0 } , populate : function ( a ) { a . forEach ( this . populateHandler , this , ! 0 ) } , populateHandler : function ( a ) { a . body && a . exists && this . insert ( a . body ) } , split : function ( ) { this . nodes [ 0 ] = new c . QuadTree ( this . bounds . right , this . bounds . y , this . bounds . subWidth , this . bounds . subHeight , this . maxObjects , this . maxLevels , this . level + 1 ) , this . nodes [ 1 ] = new c . QuadTree ( this . bounds . x , this . bounds . y , this . bounds . subWidth , this . bounds . subHeight , this . maxObjects , this . maxLevels , this . level + 1 ) , this . nodes [ 2 ] = new c . QuadTree ( this . bounds . x , this . bounds . bottom , this . bounds . subWidth , this . bounds . subHeight , this . maxObjects , this . maxLevels , this . level + 1 ) , this . nodes [ 3 ] = new c . QuadTree ( this . bounds . right , this . bounds . bottom , this . bounds . subWidth , this . bounds . subHeight , this . maxObjects , this . maxLevels , this . level + 1 ) } , insert : function ( a ) { var b , c = 0 ; if ( null != this . nodes [ 0 ] && ( b = this . getIndex ( a ) , b !== - 1 ) ) return void this . nodes [ b ] . insert ( a ) ; if ( this . objects . push ( a ) , this . objects . length > this . maxObjects && this . level < this . maxLevels ) for ( null == this . nodes [ 0 ] && this . split ( ) ; c < this . objects . length ; ) b = this . getIndex ( this
destroy : function ( ) { var a = null ; for ( var a in this . _anims ) this . _anims . hasOwnProperty ( a ) && this . _anims [ a ] . destroy ( ) ; this . _anims = { } , this . _outputFrames = [ ] , this . _frameData = null , this . currentAnim = null , this . currentFrame = null , this . sprite = null , this . game = null } } , c . AnimationManager . prototype . constructor = c . AnimationManager , Object . defineProperty ( c . AnimationManager . prototype , "frameData" , { get : function ( ) { return this . _frameData } } ) , Object . defineProperty ( c . AnimationManager . prototype , "frameTotal" , { get : function ( ) { return this . _frameData . total } } ) , Object . defineProperty ( c . AnimationManager . prototype , "paused" , { get : function ( ) { return this . currentAnim . isPaused } , set : function ( a ) { this . currentAnim . paused = a } } ) , Object . defineProperty ( c . AnimationManager . prototype , "name" , { get : function ( ) { if ( this . currentAnim ) return this . currentAnim . name } } ) , Object . defineProperty ( c . AnimationManager . prototype , "frame" , { get : function ( ) { if ( this . currentFrame ) return this . currentFrame . index } , set : function ( a ) { "number" == typeof a && this . _frameData && null !== this . _frameData . getFrame ( a ) && ( this . currentFrame = this . _frameData . getFrame ( a ) , this . currentFrame && this . sprite . setFrame ( this . currentFrame ) ) } } ) , Object . defineProperty ( c . AnimationManager . prototype , "frameName" , { get : function ( ) { if ( this . currentFrame ) return this . currentFrame . name } , set : function ( a ) { "string" == typeof a && this . _frameData && null !== this . _frameData . getFrameByName ( a ) ? ( this . currentFrame = this . _frameData . getFrameByName ( a ) , this . currentFrame && ( this . _frameIndex = this . currentFrame . index , this . sprite . setFrame ( this . currentFrame ) ) ) : console . warn ( "Cannot set frameName: " + a ) } } ) , c . Animation = function ( a , b , d , e , f , g , h ) { void 0 === h && ( h = ! 1 ) , this . game = a , this . _parent = b , this . _frameData = e , this . name = d , this . _frames = [ ] , this . _frames = this . _frames . concat ( f ) , this . delay = 1e3 / g , this . loop = h , this . loopCount = 0 , this . killOnComplete = ! 1 , this . isFinished = ! 1 , this . isPlaying = ! 1 , this . isPaused = ! 1 , this . _pauseStartTime = 0 , this . _frameIndex = 0 , this . _frameDiff = 0 , this . _frameSkip = 1 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . onStart = new c . Signal , this . onUpdate = null , this . onComplete = new c . Signal , this . onLoop = new c . Signal , this . isReversed = ! 1 , this . game . onPause . add ( this . onPause , this ) , this . game . onResume . add ( this . onResume , this ) } , c . Animation . prototype = { play : function ( a , b , c ) { return "number" == typeof a && ( this . delay = 1e3 / a ) , "boolean" == typeof b && ( this . loop = b ) , "undefined" != typeof c && ( this . killOnComplete = c ) , this . isPlaying = ! 0 , this . isFinished = ! 1 , this . paused = ! 1 , this . loopCount = 0 , this . _timeLastFrame = this . game . time . time , this . _timeNextFrame = this . game . time . time + this . delay , this . _frameIndex = this . isReversed ? this . _frames . length - 1 : 0 , this . updateCurrentFrame ( ! 1 , ! 0 ) , this . _parent . events . onAnimationStart$dispatch ( this . _parent , this ) , this . onStart . dispatch ( this . _parent , this ) , this . _parent . animations . currentAnim = this , this . _parent . animations . currentFrame = this . currentFrame , this } , restart : function ( ) { this . isPlaying = ! 0 , this . isFinished = ! 1 , this . paused = ! 1 , this . loopCount = 0 , this . _timeLastFrame = this . game . time . time , this . _timeNextFrame = this . game . time . time + this . delay , this . _frameIndex = 0 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . _parent . setFrame ( this . currentFrame ) , this . _parent . animations . currentAnim = this , this . _parent . animations . currentFrame = this . currentFrame , this . onStart . dispatch ( this . _parent , this ) } , reverse : function ( ) { return this . reversed = ! this . reversed , this } , reverseOnce : function ( ) { return this . onComplete . addOnce ( this . reverse , this ) , this . reverse ( ) } , setFrame : function ( a , b ) { var c ; if ( void 0 === b && ( b = ! 1 ) , "string" == typeof a ) for ( var d = 0 ; d < this . _frames . length ; d ++ ) this . _frameData . getFrame ( this . _frames [ d ] ) . name === a && ( c = d ) ; else if ( "number" == typeof a ) if ( b ) c = a ; else for ( var d = 0 ; d < this . _frames . length ; d ++ ) this . _frames [ d ] === a && ( c = d ) ; if ( c ) { var e = this . isReversed ? - 1 : 1 ; this . _frameIndex = c - e , this . _timeNextFrame = this . game . time . time , this . update ( ) } } , stop : function ( a , b ) { void 0 === a && ( a = ! 1 ) , void 0 === b && ( b = ! 1 ) , this . isPlaying = ! 1 , this . isFinished = ! 0 , this . paused = ! 1 , a && ( this . currentFrame = this . _frameData . getFrame ( this . _frames [ 0 ] ) , this . _parent . setFrame ( this . currentFrame ) ) , b && ( this . _parent . events . onAnimationComplete$dispatch ( this . _parent , th
callbackContext : d } , ! 1 , ".js" ) } , binary : function ( a , b , c , d ) { return void 0 === c && ( c = ! 1 ) , c !== ! 1 && void 0 === d && ( d = c ) , this . addToFileList ( "binary" , a , b , { callback : c , callbackContext : d } , ! 1 , ".bin" ) } , spritesheet : function ( a , b , c , d , e , f , g , h ) { return void 0 === e && ( e = - 1 ) , void 0 === f && ( f = 0 ) , void 0 === g && ( g = 0 ) , void 0 === h && ( h = 0 ) , this . addToFileList ( "spritesheet" , a , b , { frameWidth : c , frameHeight : d , frameMax : e , margin : f , spacing : g , skipFrames : h } , ! 1 , ".png" ) } , audio : function ( a , b , c ) { return this . game . sound . noAudio ? this : ( void 0 === c && ( c = ! 0 ) , "string" == typeof b && ( b = [ b ] ) , this . addToFileList ( "audio" , a , b , { buffer : null , autoDecode : c } ) ) } , audioSprite : function ( a , b , c , d , e ) { return this . game . sound . noAudio ? this : ( void 0 === c && ( c = null ) , void 0 === d && ( d = null ) , void 0 === e && ( e = ! 0 ) , this . audio ( a , b , e ) , c ? this . json ( a + "-audioatlas" , c ) : d ? ( "string" == typeof d && ( d = JSON . parse ( d ) ) , this . cache . addJSON ( a + "-audioatlas" , "" , d ) ) : console . warn ( "Phaser.Loader.audiosprite - You must specify either a jsonURL or provide a jsonData object" ) , this ) } , audiosprite : function ( a , b , c , d , e ) { return this . audioSprite ( a , b , c , d , e ) } , video : function ( a , b , c , d ) { return void 0 === c && ( c = this . game . device . firefox ? "loadeddata" : "canplaythrough" ) , void 0 === d && ( d = ! 1 ) , "string" == typeof b && ( b = [ b ] ) , this . addToFileList ( "video" , a , b , { buffer : null , asBlob : d , loadEvent : c } ) } , tilemap : function ( a , b , d , e ) { if ( void 0 === b && ( b = null ) , void 0 === d && ( d = null ) , void 0 === e && ( e = c . Tilemap . CSV ) , b || d || ( b = e === c . Tilemap . CSV ? a + ".csv" : a + ".json" ) , d ) { switch ( e ) { case c . Tilemap . CSV : break ; case c . Tilemap . TILED _JSON : "string" == typeof d && ( d = JSON . parse ( d ) ) } this . cache . addTilemap ( a , null , d , e ) } else this . addToFileList ( "tilemap" , a , b , { format : e } ) ; return this } , physics : function ( a , b , d , e ) { return void 0 === b && ( b = null ) , void 0 === d && ( d = null ) , void 0 === e && ( e = c . Physics . LIME _CORONA _JSON ) , b || d || ( b = a + ".json" ) , d ? ( "string" == typeof d && ( d = JSON . parse ( d ) ) , this . cache . addPhysicsData ( a , null , d , e ) ) : this . addToFileList ( "physics" , a , b , { format : e } ) , this } , bitmapFont : function ( a , b , c , d , e , f ) { if ( void 0 !== b && null !== b || ( b = a + ".png" ) , void 0 === c && ( c = null ) , void 0 === d && ( d = null ) , null === c && null === d && ( c = a + ".xml" ) , void 0 === e && ( e = 0 ) , void 0 === f && ( f = 0 ) , c ) this . addToFileList ( "bitmapfont" , a , b , { atlasURL : c , xSpacing : e , ySpacing : f } ) ; else if ( "string" == typeof d ) { var g , h ; try { g = JSON . parse ( d ) } catch ( a ) { h = this . parseXml ( d ) } if ( ! h && ! g ) throw new Error ( "Phaser.Loader. Invalid Bitmap Font atlas given" ) ; this . addToFileList ( "bitmapfont" , a , b , { atlasURL : null , atlasData : g || h , atlasType : g ? "json" : "xml" , xSpacing : e , ySpacing : f } ) } return this } , atlasJSONArray : function ( a , b , d , e ) { return this . atlas ( a , b , d , e , c . Loader . TEXTURE _ATLAS _JSON _ARRAY ) } , atlasJSONHash : function ( a , b , d , e ) { return this . atlas ( a , b , d , e , c . Loader . TEXTURE _ATLAS _JSON _HASH ) } , atlasXML : function ( a , b , d , e ) { return void 0 === d && ( d = null ) , void 0 === e && ( e = null ) , d || e || ( d = a + ".xml" ) , this . atlas ( a , b , d , e , c . Loader . TEXTURE _ATLAS _XML _STARLING ) } , atlas : function ( a , b , d , e , f ) { if ( void 0 !== b && null !== b || ( b = a + ".png" ) , void 0 === d && ( d = null ) , void 0 === e && ( e = null ) , void 0 === f && ( f = c . Loader . TEXTURE _ATLAS _JSON _ARRAY ) , d || e || ( d = f === c . Loader . TEXTURE _ATLAS _XML _STARLING ? a + ".xml" : a + ".json" ) , d ) this . addToFileList ( "textureatlas" , a , b , { atlasURL : d , format : f } ) ; else { switch ( f ) { case c . Loader . TEXTURE _ATLAS _JSON _ARRAY : "string" == typeof e && ( e = JSON . parse ( e ) ) ; break ; case c . Loader . TEXTURE _ATLAS _XML _STARLING : if ( "string" == typeof e ) { var g = this . parseXml ( e ) ; if ( ! g ) throw new Error ( "Phaser.Loader. Invalid Texture Atlas XML given" ) ; e = g } } this . addToFileList ( "textureatlas" , a , b , { atlasURL : null , atlasData : e , format : f } ) } return this } , withSyncPoint : function ( a , b ) { this . _withSyncPointDepth ++ ; try { a . call ( b || this , this ) } finally { this . _withSyncPointDepth -- } return this } , addSyncPoint : function ( a , b ) { var c = this . getAsset ( a , b ) ; return c && ( c . file . syncPoint = ! 0 ) , this } , removeFile : function ( a , b ) { var c = this . getAsset ( a , b ) ; c && ( c . loaded || c . loading || this . _fileList . splice ( c . index , 1 ) ) } , removeAll : function ( ) { this . _fileList . length = 0 , this . _flightQueue . length = 0 } , start : function ( ) { this . isLoading || ( this . hasLoaded = ! 1 , this . isLoading = ! 0 , this . updateProgress ( ) , this . processLoadQueue ( ) ) } , processLoadQueue : function ( ) { if ( ! this . isLoading ) return console . warn ( "Phaser.Loader - active loading canceled / reset" ) , void this . finishedLoading ( ! 0 ) ; for ( var a = 0 ; a < this . _flightQueue . length ; a
volume : b } , a , c . Easing . Linear . None , ! 0 ) , this . fadeTween . onComplete . add ( this . fadeComplete , this ) } } , fadeComplete : function ( ) { this . onFadeComplete . dispatch ( this , this . volume ) , 0 === this . volume && this . stop ( ) } , updateGlobalVolume : function ( a ) { this . usingAudioTag && this . _sound && ( this . _sound . volume = a * this . _volume ) } , destroy : function ( a ) { void 0 === a && ( a = ! 0 ) , this . stop ( ) , a ? this . game . sound . remove ( this ) : ( this . markers = { } , this . context = null , this . _buffer = null , this . externalNode = null , this . onDecoded . dispose ( ) , this . onPlay . dispose ( ) , this . onPause . dispose ( ) , this . onResume . dispose ( ) , this . onLoop . dispose ( ) , this . onStop . dispose ( ) , this . onMute . dispose ( ) , this . onMarkerComplete . dispose ( ) ) } } , c . Sound . prototype . constructor = c . Sound , Object . defineProperty ( c . Sound . prototype , "isDecoding" , { get : function ( ) { return this . game . cache . getSound ( this . key ) . isDecoding } } ) , Object . defineProperty ( c . Sound . prototype , "isDecoded" , { get : function ( ) { return this . game . cache . isSoundDecoded ( this . key ) } } ) , Object . defineProperty ( c . Sound . prototype , "mute" , { get : function ( ) { return this . _muted || this . game . sound . mute } , set : function ( a ) { a = a || ! 1 , a !== this . _muted && ( a ? ( this . _muted = ! 0 , this . _muteVolume = this . _tempVolume , this . usingWebAudio ? this . gainNode . gain . value = 0 : this . usingAudioTag && this . _sound && ( this . _sound . volume = 0 ) ) : ( this . _muted = ! 1 , this . usingWebAudio ? this . gainNode . gain . value = this . _muteVolume : this . usingAudioTag && this . _sound && ( this . _sound . volume = this . _muteVolume ) ) , this . onMute . dispatch ( this ) ) } } ) , Object . defineProperty ( c . Sound . prototype , "volume" , { get : function ( ) { return this . _volume } , set : function ( a ) { return this . game . device . firefox && this . usingAudioTag && ( a = this . game . math . clamp ( a , 0 , 1 ) ) , this . _muted ? void ( this . _muteVolume = a ) : ( this . _tempVolume = a , this . _volume = a , void ( this . usingWebAudio ? this . gainNode . gain . value = a : this . usingAudioTag && this . _sound && ( this . _sound . volume = a ) ) ) } } ) , c . SoundManager = function ( a ) { this . game = a , this . onSoundDecode = new c . Signal , this . onVolumeChange = new c . Signal , this . onMute = new c . Signal , this . onUnMute = new c . Signal , this . context = null , this . usingWebAudio = ! 1 , this . usingAudioTag = ! 1 , this . noAudio = ! 1 , this . connectToMaster = ! 0 , this . touchLocked = ! 1 , this . channels = 32 , this . muteOnPause = ! 0 , this . _codeMuted = ! 1 , this . _muted = ! 1 , this . _unlockSource = null , this . _volume = 1 , this . _sounds = [ ] , this . _watchList = new c . ArraySet , this . _watching = ! 1 , this . _watchCallback = null , this . _watchContext = null } , c . SoundManager . prototype = { boot : function ( ) { if ( this . game . device . iOS && this . game . device . webAudio === ! 1 && ( this . channels = 1 ) , window . PhaserGlobal ) { if ( window . PhaserGlobal . disableAudio === ! 0 ) return this . noAudio = ! 0 , void ( this . touchLocked = ! 1 ) ; if ( window . PhaserGlobal . disableWebAudio === ! 0 ) return this . usingAudioTag = ! 0 , void ( this . touchLocked = ! 1 ) } if ( window . PhaserGlobal && window . PhaserGlobal . audioContext ) this . context = window . PhaserGlobal . audioContext ; else if ( window . AudioContext ) try { this . context = new window . AudioContext } catch ( a ) { this . context = null , this . usingWebAudio = ! 1 , this . touchLocked = ! 1 } else if ( window . webkitAudioContext ) try { this . context = new window . webkitAudioContext } catch ( a ) { this . context = null , this . usingWebAudio = ! 1 , this . touchLocked = ! 1 } if ( null === this . context ) { if ( void 0 === window . Audio ) return void ( this . noAudio = ! 0 ) ; this . usingAudioTag = ! 0 } else this . usingWebAudio = ! 0 , void 0 === this . context . createGain ? this . masterGain = this . context . createGainNode ( ) : this . masterGain = this . context . createGain ( ) , this . masterGain . gain . value = 1 , this . masterGain . connect ( this . context . destination ) ; this . noAudio || ( ! this . game . device . cocoonJS && this . game . device . iOS || window . PhaserGlobal && window . PhaserGlobal . fakeiOSTouchLock ) && this . setTouchLock ( ) } , setTouchLock : function ( ) { this . noAudio || window . PhaserGlobal && window . PhaserGlobal . disableAudio === ! 0 || ( this . game . device . iOSVersion > 8 ? this . game . input . touch . addTouchLockCallback ( this . unlock , this , ! 0 ) : this . game . input . touch . addTouchLockCallback ( this . unlock , this ) , this . touchLocked = ! 0 ) } , unlock : function ( ) { if ( this . noAudio || ! this . touchLocked || null !== this . _unlockSource ) return ! 0 ; if ( this . usingAudioTag ) this . touchLocked = ! 1 , this . _unlockSource = null ; else if ( this . usingWebAudio ) { var a = this . context . createBuffer ( 1 , 1 , 22050 ) ; this . _unlockSource = this . context . createBufferSource ( ) , this . _unlockSource . buffer = a , this . _unlockSource . connect ( this . con
this . line ( "Screen X: " + this . game . input . activePointer . screenX + " Screen Y: " + this . game . input . activePointer . screenY ) , this . stop ( ) } , spriteBounds : function ( a , b , c ) { var d = a . getBounds ( ) ; d . x += this . game . camera . x , d . y += this . game . camera . y , this . rectangle ( d , b , c ) } , ropeSegments : function ( a , b , c ) { var d = a . segments , e = this ; d . forEach ( function ( a ) { e . rectangle ( a , b , c ) } , this ) } , spriteInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Sprite: (" + a . width + " x " + a . height + ") anchor: " + a . anchor . x + " x " + a . anchor . y ) , this . line ( "x: " + a . x . toFixed ( 1 ) + " y: " + a . y . toFixed ( 1 ) ) , this . line ( "angle: " + a . angle . toFixed ( 1 ) + " rotation: " + a . rotation . toFixed ( 1 ) ) , this . line ( "visible: " + a . visible + " in camera: " + a . inCamera ) , this . line ( "bounds x: " + a . _bounds . x . toFixed ( 1 ) + " y: " + a . _bounds . y . toFixed ( 1 ) + " w: " + a . _bounds . width . toFixed ( 1 ) + " h: " + a . _bounds . height . toFixed ( 1 ) ) , this . stop ( ) } , spriteCoords : function ( a , b , c , d ) { this . start ( b , c , d , 100 ) , a . name && this . line ( a . name ) , this . line ( "x:" , a . x . toFixed ( 2 ) , "y:" , a . y . toFixed ( 2 ) ) , this . line ( "pos x:" , a . position . x . toFixed ( 2 ) , "pos y:" , a . position . y . toFixed ( 2 ) ) , this . line ( "world x:" , a . world . x . toFixed ( 2 ) , "world y:" , a . world . y . toFixed ( 2 ) ) , this . stop ( ) } , lineInfo : function ( a , b , c , d ) { this . start ( b , c , d , 80 ) , this . line ( "start.x:" , a . start . x . toFixed ( 2 ) , "start.y:" , a . start . y . toFixed ( 2 ) ) , this . line ( "end.x:" , a . end . x . toFixed ( 2 ) , "end.y:" , a . end . y . toFixed ( 2 ) ) , this . line ( "length:" , a . length . toFixed ( 2 ) , "angle:" , a . angle ) , this . stop ( ) } , pixel : function ( a , b , c , d ) { d = d || 2 , this . start ( ) , this . context . fillStyle = c , this . context . fillRect ( a , b , d , d ) , this . stop ( ) } , geom : function ( a , b , d , e ) { void 0 === d && ( d = ! 0 ) , void 0 === e && ( e = 0 ) , b = b || "rgba(0,255,0,0.4)" , this . start ( ) , this . context . fillStyle = b , this . context . strokeStyle = b , a instanceof c . Rectangle || 1 === e ? d ? this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : this . context . strokeRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : a instanceof c . Circle || 2 === e ? ( this . context . beginPath ( ) , this . context . arc ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . radius , 0 , 2 * Math . PI , ! 1 ) , this . context . closePath ( ) , d ? this . context . fill ( ) : this . context . stroke ( ) ) : a instanceof c . Point || 3 === e ? this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , 4 , 4 ) : ( a instanceof c . Line || 4 === e ) && ( this . context . lineWidth = 1 , this . context . beginPath ( ) , this . context . moveTo ( a . start . x + . 5 - this . game . camera . x , a . start . y + . 5 - this . game . camera . y ) , this . context . lineTo ( a . end . x + . 5 - this . game . camera . x , a . end . y + . 5 - this . game . camera . y ) , this . context . closePath ( ) , this . context . stroke ( ) ) , this . stop ( ) } , rectangle : function ( a , b , c ) { void 0 === c && ( c = ! 0 ) , b = b || "rgba(0, 255, 0, 0.4)" , this . start ( ) , c ? ( this . context . fillStyle = b , this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) ) : ( this . context . strokeStyle = b , this . context . strokeRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) ) , this . stop ( ) } , text : function ( a , b , c , d , e ) { d = d || "rgb(255,255,255)" , e = e || "16px Courier" , this . start ( ) , this . context . font = e , this . renderShadow && ( this . context . fillStyle = "rgb(0,0,0)" , this . context . fillText ( a , b + 1 , c + 1 ) ) , this . context . fillStyle = d , this . context . fillText ( a , b , c ) , this . stop ( ) } , quadTree : function ( a , b ) { b = b || "rgba(255,0,0,0.3)" , this . start ( ) ; var c = a . bounds ; if ( 0 === a . nodes . length ) { this . context . strokeStyle = b , this . context . strokeRect ( c . x , c . y , c . width , c . height ) , this . text ( "size: " + a . objects . length , c . x + 4 , c . y + 16 , "rgb(0,200,0)" , "12px Courier" ) , this . context . strokeStyle = "rgb(0,255,0)" ; for ( var d = 0 ; d < a . objects . length ; d ++ ) this . context . strokeRect ( a . objects [ d ] . x , a . objects [ d ] . y , a . objects [ d ] . width , a . objects [ d ] . height ) } else for ( var d = 0 ; d < a . nodes . length ; d ++ ) this . quadTree ( a . nodes [ d ] ) ; this . stop ( ) } , body : function ( a , b , d ) { a . body && ( this . start ( ) , a . body . type === c . Physics . ARCADE ? c . Physics . Arcade . Body . render ( this . context , a . body , b , d ) : a . body . type === c . Physics . NINJA ? c . Physics . Ninja . Body . render ( this . context , a . body , b , d ) : a . body . type === c . Physics . BOX2D && c . Physics . Box2D . renderBody ( this . context , a . body , b ) , this . stop ( ) ) } , bodyInfo : function ( a , b , d , e ) { a . body && ( this . start ( b , d , e , 210 ) , a . body . type === c . Physics . ARCADE ? c . Physics . Arcade . Body . renderBodyInfo ( this , a . body ) : a . body . type === c . Physics . BOX2D && this . game . physics . box2d . renderBodyInfo ( this , a .
null !== b && ( this . video . width = b ) , null !== c && ( this . video . height = c ) , this . _timeOutID = window . setTimeout ( this . getUserMediaTimeout . bind ( this ) , this . timeout ) ; try { navigator . getUserMedia ( { audio : a , video : ! 0 } , this . getUserMediaSuccess . bind ( this ) , this . getUserMediaError . bind ( this ) ) } catch ( a ) { this . getUserMediaError ( a ) } return this } , getUserMediaTimeout : function ( ) { clearTimeout ( this . _timeOutID ) , this . onTimeout . dispatch ( this ) } , getUserMediaError : function ( a ) { clearTimeout ( this . _timeOutID ) , this . onError . dispatch ( this , a ) } , getUserMediaSuccess : function ( a ) { clearTimeout ( this . _timeOutID ) , this . videoStream = a , void 0 !== this . video . mozSrcObject ? this . video . mozSrcObject = a : this . video . src = window . URL && window . URL . createObjectURL ( a ) || a ; var b = this ; this . video . onloadeddata = function ( ) { function a ( ) { if ( c > 0 ) if ( b . video . videoWidth > 0 ) { var d = b . video . videoWidth , e = b . video . videoHeight ; isNaN ( b . video . videoHeight ) && ( e = d / ( 4 / 3 ) ) , b . video . play ( ) , b . isStreaming = ! 0 , b . baseTexture . source = b . video , b . updateTexture ( null , d , e ) , b . onAccess . dispatch ( b ) } else window . setTimeout ( a , 500 ) ; else console . warn ( "Unable to connect to video stream. Webcam error?" ) ; c -- } var c = 10 ; a ( ) } } , createVideoFromBlob : function ( a ) { var b = this ; return this . video = document . createElement ( "video" ) , this . video . controls = ! 1 , this . video . setAttribute ( "autoplay" , "autoplay" ) , this . video . addEventListener ( "loadeddata" , function ( a ) { b . updateTexture ( a ) } , ! 0 ) , this . video . src = window . URL . createObjectURL ( a ) , this . video . canplay = ! 0 , this } , createVideoFromURL : function ( a , b ) { return void 0 === b && ( b = ! 1 ) , this . texture && ( this . texture . valid = ! 1 ) , this . video = document . createElement ( "video" ) , this . video . controls = ! 1 , b && this . video . setAttribute ( "autoplay" , "autoplay" ) , this . video . src = a , this . video . canplay = ! 0 , this . video . load ( ) , this . retry = this . retryLimit , this . _retryID = window . setTimeout ( this . checkVideoProgress . bind ( this ) , this . retryInterval ) , this . key = a , this } , updateTexture : function ( a , b , c ) { var d = ! 1 ; void 0 !== b && null !== b || ( b = this . video . videoWidth , d = ! 0 ) , void 0 !== c && null !== c || ( c = this . video . videoHeight ) , this . width = b , this . height = c , this . baseTexture . source !== this . video && ( this . baseTexture . source = this . video ) , this . baseTexture . forceLoaded ( b , c ) , this . texture . frame . resize ( b , c ) , this . texture . width = b , this . texture . height = c , this . texture . valid = ! 0 , this . snapshot && this . snapshot . resize ( b , c ) , d && null !== this . key && ( this . onChangeSource . dispatch ( this , b , c ) , this . _autoplay && ( this . video . play ( ) , this . onPlay . dispatch ( this , this . loop , this . playbackRate ) ) ) } , complete : function ( ) { this . onComplete . dispatch ( this ) } , play : function ( a , b ) { return this . _pendingChangeSource ? this : ( void 0 === a && ( a = ! 1 ) , void 0 === b && ( b = 1 ) , this . game . sound . onMute && ( this . game . sound . onMute . add ( this . setMute , this ) , this . game . sound . onUnMute . add ( this . unsetMute , this ) , this . game . sound . mute && this . setMute ( ) ) , this . game . onPause . add ( this . setPause , this ) , this . game . onResume . add ( this . setResume , this ) , this . _endCallback = this . complete . bind ( this ) , this . video . addEventListener ( "ended" , this . _endCallback , ! 0 ) , this . video . addEventListener ( "webkitendfullscreen" , this . _endCallback , ! 0 ) , a ? this . video . loop = "loop" : this . video . loop = "" , this . video . playbackRate = b , this . touchLocked ? this . _pending = ! 0 : ( this . _pending = ! 1 , null !== this . key && ( 4 !== this . video . readyState ? ( this . retry = this . retryLimit , this . _retryID = window . setTimeout ( this . checkVideoProgress . bind ( this ) , this . retryInterval ) ) : ( this . _playCallback = this . playHandler . bind ( this ) , this . video . addEventListener ( "playing" , this . _playCallback , ! 0 ) ) ) , this . video . play ( ) , this . onPlay . dispatch ( this , a , b ) ) , this ) } , playHandler : function ( ) { this . video . removeEventListener ( "playing" , this . _playCallback , ! 0 ) , this . updateTexture ( ) } , stop : function ( ) { return this . game . sound . onMute && ( this . game . sound . onMute . remove ( this . setMute , this ) , this . game . sound . onUnMute . remove ( this . unsetMute , this ) ) , this . game . onPause . remove ( this . setPause , this ) , this . game . onResume . remove ( this . setResume , this ) , this . isStreaming ? ( this . video . mozSrcObject ? ( this . video . mozSrcObject . stop ( ) , this . video . src = null ) : ( this . video . src = "" , this . videoStream . active ? this . videoStream . active = ! 1 : this . videoStream . getTracks ? this . videoStream . getTracks ( ) . forEach ( function ( a ) { a . stop ( ) } ) : this . videoStream . stop ( ) ) , this . videoStream = null , this . isStreaming = ! 1 ) : ( this . video . removeEventLi
2016-11-22 01:36:48 +00:00
//# sourceMappingURL=phaser-no-physics.map