2014-05-29 16:37:28 +00:00
/* Phaser (AP) v2.0.6 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */
2014-04-29 14:39:53 +00:00
( function ( ) { var a = this , b = b || { } ; b . WEBGL _RENDERER = 0 , b . CANVAS _RENDERER = 1 , b . VERSION = "v1.5.2" , b . blendModes = { NORMAL : 0 , ADD : 1 , MULTIPLY : 2 , SCREEN : 3 , OVERLAY : 4 , DARKEN : 5 , LIGHTEN : 6 , COLOR _DODGE : 7 , COLOR _BURN : 8 , HARD _LIGHT : 9 , SOFT _LIGHT : 10 , DIFFERENCE : 11 , EXCLUSION : 12 , HUE : 13 , SATURATION : 14 , COLOR : 15 , LUMINOSITY : 16 } , b . scaleModes = { DEFAULT : 0 , LINEAR : 0 , NEAREST : 1 } , b . INTERACTION _FREQUENCY = 30 , b . AUTO _PREVENT _DEFAULT = ! 0 , b . RAD _TO _DEG = 180 / Math . PI , b . DEG _TO _RAD = Math . PI / 180 , b . Point = function ( a , b ) { this . x = a || 0 , this . y = b || 0 } , b . Point . prototype . clone = function ( ) { return new b . Point ( this . x , this . y ) } , b . Point . prototype . constructor = b . Point , b . Point . prototype . set = function ( a , b ) { this . x = a || 0 , this . y = b || ( 0 !== b ? this . x : 0 ) } , b . Rectangle = function ( a , b , c , d ) { this . x = a || 0 , this . y = b || 0 , this . width = c || 0 , this . height = d || 0 } , b . Rectangle . prototype . clone = function ( ) { return new b . Rectangle ( this . x , this . y , this . width , this . height ) } , b . Rectangle . prototype . contains = function ( a , b ) { if ( this . width <= 0 || this . height <= 0 ) return ! 1 ; var c = this . x ; if ( a >= c && a <= c + this . width ) { var d = this . y ; if ( b >= d && b <= d + this . height ) return ! 0 } return ! 1 } , b . Rectangle . prototype . constructor = b . Rectangle , b . EmptyRectangle = new b . Rectangle ( 0 , 0 , 0 , 0 ) , b . Polygon = function ( a ) { if ( a instanceof Array || ( a = Array . prototype . slice . call ( arguments ) ) , "number" == typeof a [ 0 ] ) { for ( var c = [ ] , d = 0 , e = a . length ; e > d ; d += 2 ) c . push ( new b . Point ( a [ d ] , a [ d + 1 ] ) ) ; a = c } this . points = a } , b . Polygon . prototype . clone = function ( ) { for ( var a = [ ] , c = 0 ; c < this . points . length ; c ++ ) a . push ( this . points [ c ] . clone ( ) ) ; return new b . Polygon ( a ) } , b . Polygon . prototype . contains = function ( a , b ) { for ( var c = ! 1 , d = 0 , e = this . points . length - 1 ; d < this . points . length ; e = d ++ ) { var f = this . points [ d ] . x , g = this . points [ d ] . y , h = this . points [ e ] . x , i = this . points [ e ] . y , j = g > b != i > b && ( h - f ) * ( b - g ) / ( i - g ) + f > a ; j && ( c = ! c ) } return c } , b . Polygon . prototype . constructor = b . Polygon , b . Circle = function ( a , b , c ) { this . x = a || 0 , this . y = b || 0 , this . radius = c || 0 } , b . Circle . prototype . clone = function ( ) { return new b . Circle ( this . x , this . y , this . radius ) } , b . Circle . prototype . contains = function ( a , b ) { if ( this . radius <= 0 ) return ! 1 ; var c = this . x - a , d = this . y - b , e = this . radius * this . radius ; return c *= c , d *= d , e >= c + d } , b . Circle . prototype . constructor = b . Circle , b . Ellipse = function ( a , b , c , d ) { this . x = a || 0 , this . y = b || 0 , this . width = c || 0 , this . height = d || 0 } , b . Ellipse . prototype . clone = function ( ) { return new b . Ellipse ( this . x , this . y , this . width , this . height ) } , b . Ellipse . prototype . contains = function ( a , b ) { if ( this . width <= 0 || this . height <= 0 ) return ! 1 ; var c = ( a - this . x ) / this . width , d = ( b - this . y ) / this . height ; return c *= c , d *= d , 1 >= c + d } , b . Ellipse . prototype . getBounds = function ( ) { return new b . Rectangle ( this . x , this . y , this . width , this . height ) } , b . Ellipse . prototype . constructor = b . Ellipse , b . determineMatrixArrayType = function ( ) { return "undefined" != typeof Float32Array ? Float32Array : Array } , b . Matrix2 = b . determineMatrixArrayType ( ) , b . Matrix = function ( ) { this . a = 1 , this . b = 0 , this . c = 0 , this . d = 1 , this . tx = 0 , this . ty = 0 } , b . Matrix . prototype . fromArray = function ( a ) { this . a = a [ 0 ] , this . b = a [ 1 ] , this . c = a [ 3 ] , this . d = a [ 4 ] , this . tx = a [ 2 ] , this . ty = a [ 5 ] } , b . Matrix . prototype . toArray = function ( a ) { this . array || ( this . array = new Float32Array ( 9 ) ) ; var b = this . array ; return a ? ( this . array [ 0 ] = this . a , this . array [ 1 ] = this . c , this . array [ 2 ] = 0 , this . array [ 3 ] = this . b , this . array [ 4 ] = this . d , this . array [ 5 ] = 0 , this . array [ 6 ] = this . tx , this . array [ 7 ] = this . ty , this . array [ 8 ] = 1 ) : ( this . array [ 0 ] = this . a , this . array [ 1 ] = this . b , this . array [ 2 ] = this . tx , this . array [ 3 ] = this . c , this . array [ 4 ] = this . d , this . array [ 5 ] = this . ty , this . array [ 6 ] = 0 , this . array [ 7 ] = 0 , this . array [ 8 ] = 1 ) , b } , b . identityMatrix = new b . Matrix , b . DisplayObject = function ( ) { this . position = new b . Point , this . scale = new b . Point ( 1 , 1 ) , this . pivot = new b . Point ( 0 , 0 ) , this . rotation = 0 , this . alpha = 1 , this . visible = ! 0 , this . hitArea = null , this . buttonMode = ! 1 , this . renderable = ! 1 , this . parent = null , this . stage = null , this . worldAlpha = 1 , this . _interactive = ! 1 , this . defaultCursor = "pointer" , this . worldTransform = new b . Matrix , this . color = [ ] , this . dynamic = ! 0 , this . _sr = 0 , this . _cr = 1 , this . filterArea = null , this . _bounds = new b . Rectangle ( 0 , 0 , 1 , 1 ) , this . _currentBounds = null , this . _mask = null , this . _cacheAsBitmap = ! 1 , this . _cacheIsDirty = ! 1 } , b . DisplayObject . prototype . constructor = b . DisplayObject , b . DisplayObject . prototype . setInteractive = function ( a ) { this . interactive = a } , Object . defineProp
} , b . PixiShader . prototype . destroy = function ( ) { this . gl . deleteProgram ( this . program ) , this . uniforms = null , this . gl = null , this . attributes = null } , b . PixiShader . defaultVertexSrc = [ "attribute vec2 aVertexPosition;" , "attribute vec2 aTextureCoord;" , "attribute vec2 aColor;" , "uniform vec2 projectionVector;" , "uniform vec2 offsetVector;" , "varying vec2 vTextureCoord;" , "varying vec4 vColor;" , "const vec2 center = vec2(-1.0, 1.0);" , "void main(void) {" , " gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);" , " vTextureCoord = aTextureCoord;" , " vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;" , " vColor = vec4(color * aColor.x, aColor.x);" , "}" ] , b . PixiFastShader = function ( a ) { this . gl = a , this . program = null , this . fragmentSrc = [ "precision lowp float;" , "varying vec2 vTextureCoord;" , "varying float vColor;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;" , "}" ] , this . vertexSrc = [ "attribute vec2 aVertexPosition;" , "attribute vec2 aPositionCoord;" , "attribute vec2 aScale;" , "attribute float aRotation;" , "attribute vec2 aTextureCoord;" , "attribute float aColor;" , "uniform vec2 projectionVector;" , "uniform vec2 offsetVector;" , "uniform mat3 uMatrix;" , "varying vec2 vTextureCoord;" , "varying float vColor;" , "const vec2 center = vec2(-1.0, 1.0);" , "void main(void) {" , " vec2 v;" , " vec2 sv = aVertexPosition * aScale;" , " v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);" , " v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);" , " v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;" , " gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);" , " vTextureCoord = aTextureCoord;" , " vColor = aColor;" , "}" ] , this . textureCount = 0 , this . init ( ) } , b . PixiFastShader . prototype . init = function ( ) { var a = this . gl , c = b . compileProgram ( a , this . vertexSrc , this . fragmentSrc ) ; a . useProgram ( c ) , this . uSampler = a . getUniformLocation ( c , "uSampler" ) , this . projectionVector = a . getUniformLocation ( c , "projectionVector" ) , this . offsetVector = a . getUniformLocation ( c , "offsetVector" ) , this . dimensions = a . getUniformLocation ( c , "dimensions" ) , this . uMatrix = a . getUniformLocation ( c , "uMatrix" ) , this . aVertexPosition = a . getAttribLocation ( c , "aVertexPosition" ) , this . aPositionCoord = a . getAttribLocation ( c , "aPositionCoord" ) , this . aScale = a . getAttribLocation ( c , "aScale" ) , this . aRotation = a . getAttribLocation ( c , "aRotation" ) , this . aTextureCoord = a . getAttribLocation ( c , "aTextureCoord" ) , this . colorAttribute = a . getAttribLocation ( c , "aColor" ) , - 1 === this . colorAttribute && ( this . colorAttribute = 2 ) , this . attributes = [ this . aVertexPosition , this . aPositionCoord , this . aScale , this . aRotation , this . aTextureCoord , this . colorAttribute ] , this . program = c } , b . PixiFastShader . prototype . destroy = function ( ) { this . gl . deleteProgram ( this . program ) , this . uniforms = null , this . gl = null , this . attributes = null } , b . StripShader = function ( ) { this . program = null , this . fragmentSrc = [ "precision mediump float;" , "varying vec2 vTextureCoord;" , "varying float vColor;" , "uniform float alpha;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));" , " gl_FragColor = gl_FragColor * alpha;" , "}" ] , this . vertexSrc = [ "attribute vec2 aVertexPosition;" , "attribute vec2 aTextureCoord;" , "attribute float aColor;" , "uniform mat3 translationMatrix;" , "uniform vec2 projectionVector;" , "varying vec2 vTextureCoord;" , "uniform vec2 offsetVector;" , "varying float vColor;" , "void main(void) {" , " vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);" , " v -= offsetVector.xyx;" , " gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / projectionVector.y + 1.0 , 0.0, 1.0);" , " vTextureCoord = aTextureCoord;" , " vColor = aColor;" , "}" ] } , b . StripShader . prototype . init = function ( ) { var a = b . gl , c = b . compileProgram ( a , this . vertexSrc , this . fragmentSrc ) ; a . useProgram ( c ) , this . uSampler = a . getUniformLocation ( c , "uSampler" ) , this . projectionVector = a . getUniformLocation ( c , "projectionVector" ) , this . offsetVector = a . getUniformLocation ( c , "offsetVector" ) , this . colorAttribute = a . getAttribLocation ( c , "aColor" ) , this . aVertexPosition = a . getAttribLocation ( c , " a
2014-05-20 09:02:23 +00:00
var h = e , i = this . texturePool . pop ( ) ; i || ( i = new b . FilterTexture ( this . gl , this . width , this . height ) ) , i . resize ( this . width , this . height ) , a . bindFramebuffer ( a . FRAMEBUFFER , i . frameBuffer ) , a . clear ( a . COLOR _BUFFER _BIT ) , a . disable ( a . BLEND ) ; for ( var j = 0 ; j < c . filterPasses . length - 1 ; j ++ ) { var k = c . filterPasses [ j ] ; a . bindFramebuffer ( a . FRAMEBUFFER , i . frameBuffer ) , a . activeTexture ( a . TEXTURE0 ) , a . bindTexture ( a . TEXTURE _2D , h . texture ) , this . applyFilterPass ( k , d , d . width , d . height ) ; var l = h ; h = i , i = l } a . enable ( a . BLEND ) , e = h , this . texturePool . push ( i ) } var m = c . filterPasses [ c . filterPasses . length - 1 ] ; this . offsetX -= d . x , this . offsetY -= d . y ; var n = this . width , o = this . height , p = 0 , q = 0 , r = this . buffer ; if ( 0 === this . filterStack . length ) a . colorMask ( ! 0 , ! 0 , ! 0 , ! 0 ) ; else { var s = this . filterStack [ this . filterStack . length - 1 ] ; d = s . _filterArea , n = d . width , o = d . height , p = d . x , q = d . y , r = s . _glFilterTexture . frameBuffer } f . x = n / 2 , f . y = - o / 2 , g . x = p , g . y = q , d = c . _filterArea ; var t = d . x - p , u = d . y - q ; a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , this . vertexArray [ 0 ] = t , this . vertexArray [ 1 ] = u + d . height , this . vertexArray [ 2 ] = t + d . width , this . vertexArray [ 3 ] = u + d . height , this . vertexArray [ 4 ] = t , this . vertexArray [ 5 ] = u , this . vertexArray [ 6 ] = t + d . width , this . vertexArray [ 7 ] = u , a . bufferSubData ( a . ARRAY _BUFFER , 0 , this . vertexArray ) , a . bindBuffer ( a . ARRAY _BUFFER , this . uvBuffer ) , this . uvArray [ 2 ] = d . width / this . width , this . uvArray [ 5 ] = d . height / this . height , this . uvArray [ 6 ] = d . width / this . width , this . uvArray [ 7 ] = d . height / this . height , a . bufferSubData ( a . ARRAY _BUFFER , 0 , this . uvArray ) , a . viewport ( 0 , 0 , n , o ) , a . bindFramebuffer ( a . FRAMEBUFFER , r ) , a . activeTexture ( a . TEXTURE0 ) , a . bindTexture ( a . TEXTURE _2D , e . texture ) , this . applyFilterPass ( m , d , n , o ) , a . useProgram ( this . defaultShader . program ) , a . uniform2f ( this . defaultShader . projectionVector , n / 2 , - o / 2 ) , a . uniform2f ( this . defaultShader . offsetVector , - p , - q ) , this . texturePool . push ( e ) , c . _glFilterTexture = null } , b . WebGLFilterManager . prototype . applyFilterPass = function ( a , c , d , e ) { var f = this . gl , g = a . shaders [ f . id ] ; g || ( g = new b . PixiShader ( f ) , g . fragmentSrc = a . fragmentSrc , g . uniforms = a . uniforms , g . init ( ) , a . shaders [ f . id ] = g ) , f . useProgram ( g . program ) , f . uniform2f ( g . projectionVector , d / 2 , - e / 2 ) , f . uniform2f ( g . offsetVector , 0 , 0 ) , a . uniforms . dimensions && ( a . uniforms . dimensions . value [ 0 ] = this . width , a . uniforms . dimensions . value [ 1 ] = this . height , a . uniforms . dimensions . value [ 2 ] = this . vertexArray [ 0 ] , a . uniforms . dimensions . value [ 3 ] = this . vertexArray [ 5 ] ) , g . syncUniforms ( ) , f . bindBuffer ( f . ARRAY _BUFFER , this . vertexBuffer ) , f . vertexAttribPointer ( g . aVertexPosition , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ARRAY _BUFFER , this . uvBuffer ) , f . vertexAttribPointer ( g . aTextureCoord , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ARRAY _BUFFER , this . colorBuffer ) , f . vertexAttribPointer ( g . colorAttribute , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , f . drawElements ( f . TRIANGLES , 6 , f . UNSIGNED _SHORT , 0 ) , this . renderSession . drawCount ++ } , b . WebGLFilterManager . prototype . initShaderBuffers = function ( ) { var a = this . gl ; this . vertexBuffer = a . createBuffer ( ) , this . uvBuffer = a . createBuffer ( ) , this . colorBuffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , this . vertexArray = new Float32Array ( [ 0 , 0 , 1 , 0 , 0 , 1 , 1 , 1 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . vertexArray , a . STATIC _DRAW ) , this . uvArray = new Float32Array ( [ 0 , 0 , 1 , 0 , 0 , 1 , 1 , 1 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . uvBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . uvArray , a . STATIC _DRAW ) , this . colorArray = new Float32Array ( [ 1 , 16777215 , 1 , 16777215 , 1 , 16777215 , 1 , 16777215 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . colorBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . colorArray , a . STATIC _DRAW ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , new Uint16Array ( [ 0 , 1 , 2 , 1 , 3 , 2 ] ) , a . STATIC _DRAW ) } , b . WebGLFilterManager . prototype . destroy = function ( ) { var a = this . gl ; this . filterStack = null , this . offsetX = 0 , this . offsetY = 0 ; for ( var b = 0 ; b < this . texturePool . length ; b ++ ) this . texturePool . destroy ( ) ; this . texturePool = null , a . deleteBuffer ( this . vertexBuffer ) , a . deleteBuffer ( this . uvBuffer ) , a . deleteBuffer ( this . colorBuffer ) , a . deleteBuffer ( this . indexBuffer ) } , b . FilterTexture = function ( a , c , d , e ) { this . gl = a , this . frameBuffer = a . createFramebuffer ( ) , this . texture = a . createTexture ( ) , e = e || b . scaleModes . DEFAULT , a . bindTexture ( a . TEX
2014-06-11 11:46:49 +00:00
} , b . RenderTexture . prototype . renderWebGL = function ( a , c , d ) { var e = this . renderer . gl ; e . colorMask ( ! 0 , ! 0 , ! 0 , ! 0 ) , e . viewport ( 0 , 0 , this . width , this . height ) , e . bindFramebuffer ( e . FRAMEBUFFER , this . textureBuffer . frameBuffer ) , d && this . textureBuffer . clear ( ) ; var f = a . children , g = a . worldTransform ; a . worldTransform = b . RenderTexture . tempMatrix , a . worldTransform . d = - 1 , a . worldTransform . ty = - 2 * this . projection . y , c && ( a . worldTransform . tx = c . x , a . worldTransform . ty -= c . y ) ; for ( var h = 0 , i = f . length ; i > h ; h ++ ) f [ h ] . updateTransform ( ) ; b . WebGLRenderer . updateTextures ( ) , this . renderer . renderDisplayObject ( a , this . projection , this . textureBuffer . frameBuffer ) , a . worldTransform = g } , b . RenderTexture . prototype . renderCanvas = function ( a , c , d ) { var e = a . children , f = a . worldTransform ; a . worldTransform = b . RenderTexture . tempMatrix , c && ( a . worldTransform . tx = c . x , a . worldTransform . ty = c . y ) ; for ( var g = 0 , h = e . length ; h > g ; g ++ ) e [ g ] . updateTransform ( ) ; d && this . textureBuffer . clear ( ) ; var i = this . textureBuffer . context ; this . renderer . renderDisplayObject ( a , i ) , i . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) , a . worldTransform = f } , b . RenderTexture . tempMatrix = new b . Matrix , "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = b ) , exports . PIXI = b ) : "undefined" != typeof define && define . amd ? define ( "PIXI" , function ( ) { return a . PIXI = b } ( ) ) : a . PIXI = b } ) . call ( this ) , function ( ) { var a = this , b = b || { VERSION : "2.0.6" , GAMES : [ ] , AUTO : 0 , CANVAS : 1 , WEBGL : 2 , HEADLESS : 3 , NONE : 0 , LEFT : 1 , RIGHT : 2 , UP : 3 , DOWN : 4 , SPRITE : 0 , BUTTON : 1 , IMAGE : 2 , GRAPHICS : 3 , TEXT : 4 , TILESPRITE : 5 , BITMAPTEXT : 6 , GROUP : 7 , RENDERTEXTURE : 8 , TILEMAP : 9 , TILEMAPLAYER : 10 , EMITTER : 11 , POLYGON : 12 , BITMAPDATA : 13 , CANVAS _FILTER : 14 , WEBGL _FILTER : 15 , ELLIPSE : 16 , SPRITEBATCH : 17 , RETROFONT : 18 , POINTER : 19 , blendModes : { NORMAL : 0 , ADD : 1 , MULTIPLY : 2 , SCREEN : 3 , OVERLAY : 4 , DARKEN : 5 , LIGHTEN : 6 , COLOR _DODGE : 7 , COLOR _BURN : 8 , HARD _LIGHT : 9 , SOFT _LIGHT : 10 , DIFFERENCE : 11 , EXCLUSION : 12 , HUE : 13 , SATURATION : 14 , COLOR : 15 , LUMINOSITY : 16 } , scaleModes : { DEFAULT : 0 , LINEAR : 0 , NEAREST : 1 } } ; if ( PIXI . InteractionManager = PIXI . InteractionManager || function ( ) { } , b . Utils = { transposeArray : function ( a ) { for ( var b = new Array ( a [ 0 ] . length ) , c = 0 ; c < a [ 0 ] . length ; c ++ ) { b [ c ] = new Array ( a . length - 1 ) ; for ( var d = a . length - 1 ; d > - 1 ; d -- ) b [ c ] [ d ] = a [ d ] [ c ] } return b } , rotateArray : function ( a , c ) { if ( "string" != typeof c && ( c = ( c % 360 + 360 ) % 360 ) , 90 === c || - 270 === c || "rotateLeft" === c ) a = b . Utils . transposeArray ( a ) , a = a . reverse ( ) ; else if ( - 90 === c || 270 === c || "rotateRight" === c ) a = a . reverse ( ) , a = b . Utils . transposeArray ( a ) ; else if ( 180 === Math . abs ( c ) || "rotate180" === c ) { for ( var d = 0 ; d < a . length ; d ++ ) a [ d ] . reverse ( ) ; a = a . reverse ( ) } return a } , parseDimension : function ( a , b ) { var c = 0 , d = 0 ; return "string" == typeof a ? "%" === a . substr ( - 1 ) ? ( c = parseInt ( a , 10 ) / 100 , d = 0 === b ? window . innerWidth * c : window . innerHeight * c ) : d = parseInt ( a , 10 ) : d = a , d } , shuffle : function ( a ) { for ( var b = a . length - 1 ; b > 0 ; b -- ) { var c = Math . floor ( Math . random ( ) * ( b + 1 ) ) , d = a [ b ] ; a [ b ] = a [ c ] , a [ c ] = d } return a } , pad : function ( a , b , c , d ) { if ( "undefined" == typeof b ) var b = 0 ; if ( "undefined" == typeof c ) var c = " " ; if ( "undefined" == typeof d ) var d = 3 ; var e = 0 ; if ( b + 1 >= a . length ) switch ( d ) { case 1 : a = new Array ( b + 1 - a . length ) . join ( c ) + a ; break ; case 3 : var f = Math . ceil ( ( e = b - a . length ) / 2 ) , g = e - f ; a = new Array ( g + 1 ) . join ( c ) + a + new Array ( f + 1 ) . join ( c ) ; break ; default : a += new Array ( b + 1 - a . length ) . join ( c ) } return a } , isPlainObject : function ( a ) { if ( "object" != typeof a || a . nodeType || a === a . window ) return ! 1 ; try { if ( a . constructor && ! { } . hasOwnProperty . call ( a . constructor . prototype , "isPrototypeOf" ) ) return ! 1 } catch ( b ) { return ! 1 } return ! 0 } , extend : function ( ) { var a , c , d , e , f , g , h = arguments [ 0 ] || { } , i = 1 , j = arguments . length , k = ! 1 ; for ( "boolean" == typeof h && ( k = h , h = arguments [ 1 ] || { } , i = 2 ) , j === i && ( h = this , -- i ) ; j > i ; i ++ ) if ( null != ( a = arguments [ i ] ) ) for ( c in a ) d = h [ c ] , e = a [ c ] , h !== e && ( k && e && ( b . Utils . isPlainObject ( e ) || ( f = Array . isArray ( e ) ) ) ? ( f ? ( f = ! 1 , g = d && Array . isArray ( d ) ? d : [ ] ) : g = d && b . Utils . isPlainObject ( d ) ? d : { } , h [ c ] = b . Utils . extend ( k , g , e ) ) : void 0 !== e && ( h [ c ] = e ) ) ; return h } } , "function" != typeof Function . prototype . bind && ( Function . prototype . bind = function ( ) { var a = Array . prototype . slice ; return function ( b ) { function c ( ) { var f = e . concat ( a . call ( arguments ) ) ; d . apply ( this instanceof c ? this : b , f ) } var d = this , e = a . call ( arguments , 1 ) ; if ( "function" != typeof d ) throw new TypeError ; return c . prototype = function f ( a ) { return a && ( f . prototype = a )
} , getCurrentState : function ( ) { return this . states [ this . current ] } , loadComplete : function ( ) { this . _created === ! 1 && this . onCreateCallback ? ( this . _created = ! 0 , this . onCreateCallback . call ( this . callbackContext , this . game ) ) : this . _created = ! 0 } , pause : function ( ) { this . _created && this . onPausedCallback && this . onPausedCallback . call ( this . callbackContext , this . game ) } , resume : function ( ) { this . _created && this . onResumedCallback && this . onResumedCallback . call ( this . callbackContext , this . game ) } , update : function ( ) { this . _created && this . onUpdateCallback ? this . onUpdateCallback . call ( this . callbackContext , this . game ) : this . onLoadUpdateCallback && this . onLoadUpdateCallback . call ( this . callbackContext , this . game ) } , pauseUpdate : function ( ) { this . _created && this . onPauseUpdateCallback ? this . onPauseUpdateCallback . call ( this . callbackContext , this . game ) : this . onLoadUpdateCallback && this . onLoadUpdateCallback . call ( this . callbackContext , this . game ) } , preRender : function ( ) { this . onPreRenderCallback && this . onPreRenderCallback . call ( this . callbackContext , this . game ) } , render : function ( ) { this . _created && this . onRenderCallback ? ( this . game . renderType === b . CANVAS && ( this . game . context . save ( ) , this . game . context . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) ) , this . onRenderCallback . call ( this . callbackContext , this . game ) , this . game . renderType === b . CANVAS && this . game . context . restore ( ) ) : this . onLoadRenderCallback && this . onLoadRenderCallback . call ( this . callbackContext , this . game ) } , destroy : function ( ) { this . callbackContext = null , this . onInitCallback = null , this . onShutDownCallback = null , this . onPreloadCallback = null , this . onLoadRenderCallback = null , this . onLoadUpdateCallback = null , this . onCreateCallback = null , this . onUpdateCallback = null , this . onRenderCallback = null , this . onPausedCallback = null , this . onResumedCallback = null , this . onPauseUpdateCallback = null , this . game = null , this . states = { } , this . _pendingState = null } } , b . StateManager . prototype . constructor = b . StateManager , b . LinkedList = function ( ) { this . next = null , this . prev = null , this . first = null , this . last = null , this . total = 0 } , b . LinkedList . prototype = { add : function ( a ) { return 0 === this . total && null === this . first && null === this . last ? ( this . first = a , this . last = a , this . next = a , a . prev = this , this . total ++ , a ) : ( this . last . next = a , a . prev = this . last , this . last = a , this . total ++ , a ) } , reset : function ( ) { this . first = null , this . last = null , this . next = null , this . prev = null , this . total = 0 } , remove : function ( a ) { return 1 === this . total ? ( this . reset ( ) , void ( a . next = a . prev = null ) ) : ( a === this . first ? this . first = this . first . next : a === this . last && ( this . last = this . last . prev ) , a . prev && ( a . prev . next = a . next ) , a . next && ( a . next . prev = a . prev ) , a . next = a . prev = null , null === this . first && ( this . last = null ) , void this . total -- ) } , callAll : function ( a ) { if ( this . first && this . last ) { var b = this . first ; do b && b [ a ] && b [ a ] . call ( b ) , b = b . next ; while ( b != this . last . next ) } } } , b . LinkedList . prototype . constructor = b . LinkedList , b . ArrayList = function ( ) { this . total = 0 , this . position = 0 , this . list = [ ] } , b . ArrayList . prototype = { add : function ( a ) { return this . exists ( a ) || ( this . list . push ( a ) , this . total ++ ) , a } , getIndex : function ( a ) { return this . list . indexOf ( a ) } , exists : function ( a ) { return this . list . indexOf ( a ) > - 1 } , reset : function ( ) { this . list . length = 0 , this . total = 0 } , remove : function ( a ) { var b = this . list . indexOf ( a ) ; return b > - 1 ? ( this . list . splice ( b , 1 ) , this . total -- , a ) : void 0 } , callAll : function ( a ) { for ( var b = Array . prototype . splice . call ( arguments , 1 ) , c = this . list . length ; c -- ; ) this . list [ c ] && this . list [ c ] [ a ] && this . list [ c ] [ a ] . apply ( this . list [ c ] , b ) } } , Object . defineProperty ( b . ArrayList . prototype , "first" , { get : function ( ) { return this . position = 0 , this . total > 0 ? this . list [ 0 ] : null } } ) , Object . defineProperty ( b . ArrayList . prototype , "next" , { get : function ( ) { return this . position < this . total ? ( this . position ++ , this . list [ this . position ] ) : null } } ) , b . ArrayList . prototype . constructor = b . ArrayList , b . Signal = function ( ) { this . _bindings = [ ] , this . _prevParams = null ; var a = this ; this . dispatch = function ( ) { b . Signal . prototype . dispatch . apply ( a , arguments ) } } , b . Signal . prototype = { memorize : ! 1 , _shouldPropagate : ! 0 , active : ! 0 , validateListener : function ( a , b ) { if ( "function" != typeof a ) throw new Error ( "listener is a required param of {fn}() and should be a Function." . replace ( "{fn}" , b ) ) } , _registerListener : function ( a , c , d , e ) { var f , g = this . _indexOfListener ( a , d ) ; if ( - 1 !== g ) { if ( f = this . _bindings
} , checkOrientation : function ( a ) { this . event = a , this . orientation = window . orientation , this . isLandscape ? this . enterLandscape . dispatch ( this . orientation , ! 0 , ! 1 ) : this . enterPortrait . dispatch ( this . orientation , ! 1 , ! 0 ) , this . scaleMode !== b . ScaleManager . NO _SCALE && this . refresh ( ) } , checkResize : function ( a ) { this . event = a , this . orientation = window . outerWidth > window . outerHeight ? 90 : 0 , this . isLandscape ? this . enterLandscape . dispatch ( this . orientation , ! 0 , ! 1 ) : this . enterPortrait . dispatch ( this . orientation , ! 1 , ! 0 ) , this . scaleMode !== b . ScaleManager . NO _SCALE && this . refresh ( ) , this . checkOrientationState ( ) } , refresh : function ( ) { if ( this . game . device . iPad || this . game . device . webApp || this . game . device . desktop || ( this . game . device . android && ! this . game . device . chrome ? window . scrollTo ( 0 , 1 ) : window . scrollTo ( 0 , 0 ) ) , null === this . _check && this . maxIterations > 0 ) { this . _iterations = this . maxIterations ; var a = this ; this . _check = window . setInterval ( function ( ) { return a . setScreenSize ( ) } , 10 ) , this . setScreenSize ( ) } } , setScreenSize : function ( a ) { "undefined" == typeof a && ( a = ! 1 ) , this . game . device . iPad || this . game . device . webApp || this . game . device . desktop || ( this . game . device . android && ! this . game . device . chrome ? window . scrollTo ( 0 , 1 ) : window . scrollTo ( 0 , 0 ) ) , this . _iterations -- , ( a || window . innerHeight > this . _startHeight || this . _iterations < 0 ) && ( document . documentElement . style . minHeight = window . innerHeight + "px" , this . incorrectOrientation ? this . setMaximum ( ) : this . isFullScreen ? this . fullScreenScaleMode === b . ScaleManager . EXACT _FIT ? this . setExactFit ( ) : this . fullScreenScaleMode === b . ScaleManager . SHOW _ALL && this . setShowAll ( ) : this . scaleMode === b . ScaleManager . EXACT _FIT ? this . setExactFit ( ) : this . scaleMode === b . ScaleManager . SHOW _ALL && this . setShowAll ( ) , this . setSize ( ) , clearInterval ( this . _check ) , this . _check = null ) } , setSize : function ( ) { this . incorrectOrientation || ( this . maxWidth && this . width > this . maxWidth && ( this . width = this . maxWidth ) , this . maxHeight && this . height > this . maxHeight && ( this . height = this . maxHeight ) , this . minWidth && this . width < this . minWidth && ( this . width = this . minWidth ) , this . minHeight && this . height < this . minHeight && ( this . height = this . minHeight ) ) , this . game . canvas . style . width = this . width + "px" , this . game . canvas . style . height = this . height + "px" , this . game . input . scale . setTo ( this . game . width / this . width , this . game . height / this . height ) , this . pageAlignHorizontally && ( this . width < window . innerWidth && ! this . incorrectOrientation ? ( this . margin . x = Math . round ( ( window . innerWidth - this . width ) / 2 ) , this . game . canvas . style . marginLeft = this . margin . x + "px" ) : ( this . margin . x = 0 , this . game . canvas . style . marginLeft = "0px" ) ) , this . pageAlignVertically && ( this . height < window . innerHeight && ! this . incorrectOrientation ? ( this . margin . y = Math . round ( ( window . innerHeight - this . height ) / 2 ) , this . game . canvas . style . marginTop = this . margin . y + "px" ) : ( this . margin . y = 0 , this . game . canvas . style . marginTop = "0px" ) ) , b . Canvas . getOffset ( this . game . canvas , this . game . stage . offset ) , this . bounds . setTo ( this . game . stage . offset . x , this . game . stage . offset . y , this . width , this . height ) , this . aspectRatio = this . width / this . height , this . scaleFactor . x = this . game . width / this . width , this . scaleFactor . y = this . game . height / this . height , this . scaleFactorInversed . x = this . width / this . game . width , this . scaleFactorInversed . y = this . height / this . game . height , this . hasResized . dispatch ( this . width , this . height ) , this . checkOrientationState ( ) } , setMaximum : function ( ) { this . width = window . innerWidth , this . height = window . innerHeight } , setShowAll : function ( ) { var a = Math . min ( window . innerHeight / this . game . height , window . innerWidth / this . game . width ) ; this . width = Math . round ( this . game . width * a ) , this . height = Math . round ( this . game . height * a ) } , setExactFit : function ( ) { var a = window . innerWidth , b = window . innerHeight ; this . width = this . maxWidth && a > this . maxWidth ? this . maxWidth : a , this . height = this . maxHeight && b > this . maxHeight ? this . maxHeight : b } } , b . ScaleManager . prototype . constructor = b . ScaleManager , Object . defineProperty ( b . ScaleManager . prototype , "isFullScreen" , { get : function ( ) { return document . fullscreenElement || document . mozFullScreenElement || document . webkitFullscreenElement } } ) , Object . defineProperty ( b . ScaleManager . prototype , "isPortrait" , { get : function ( ) { return 0 === this . orientation || 180 === this . orientation } } ) , Object . defineProperty ( b . ScaleManager . prototype , "isLandscape" , { get : fu
} } , onPointerDown : function ( a ) { this . game . input . disabled || this . disabled || ( a . preventDefault ( ) , a . identifier = a . pointerId , this . game . input . startPointer ( a ) ) } , onPointerMove : function ( a ) { this . game . input . disabled || this . disabled || ( a . preventDefault ( ) , a . identifier = a . pointerId , this . game . input . updatePointer ( a ) ) } , onPointerUp : function ( a ) { this . game . input . disabled || this . disabled || ( a . preventDefault ( ) , a . identifier = a . pointerId , this . game . input . stopPointer ( a ) ) } , stop : function ( ) { this . game . canvas . removeEventListener ( "MSPointerDown" , this . _onMSPointerDown ) , this . game . canvas . removeEventListener ( "MSPointerMove" , this . _onMSPointerMove ) , this . game . canvas . removeEventListener ( "MSPointerUp" , this . _onMSPointerUp ) , this . game . canvas . removeEventListener ( "pointerDown" , this . _onMSPointerDown ) , this . game . canvas . removeEventListener ( "pointerMove" , this . _onMSPointerMove ) , this . game . canvas . removeEventListener ( "pointerUp" , this . _onMSPointerUp ) } } , b . MSPointer . prototype . constructor = b . MSPointer , b . Pointer = function ( a , c ) { this . game = a , this . id = c , this . type = b . POINTER , this . exists = ! 0 , this . identifier = 0 , this . pointerId = null , this . target = null , this . button = null , this . _holdSent = ! 1 , this . _history = [ ] , this . _nextDrop = 0 , this . _stateReset = ! 1 , this . withinGame = ! 1 , this . clientX = - 1 , this . clientY = - 1 , this . pageX = - 1 , this . pageY = - 1 , this . screenX = - 1 , this . screenY = - 1 , this . rawMovementX = 0 , this . rawMovementY = 0 , this . movementX = 0 , this . movementY = 0 , this . x = - 1 , this . y = - 1 , this . isMouse = ! 1 , this . isDown = ! 1 , this . isUp = ! 0 , this . timeDown = 0 , this . timeUp = 0 , this . previousTapTime = 0 , this . totalTouches = 0 , this . msSinceLastClick = Number . MAX _VALUE , this . targetObject = null , this . active = ! 1 , this . position = new b . Point , this . positionDown = new b . Point , this . positionUp = new b . Point , this . circle = new b . Circle ( 0 , 0 , 44 ) , 0 === c && ( this . isMouse = ! 0 ) } , b . Pointer . prototype = { start : function ( a ) { return a . pointerId && ( this . pointerId = a . pointerId ) , this . identifier = a . identifier , this . target = a . target , "undefined" != typeof a . button && ( this . button = a . button ) , this . _history = [ ] , this . active = ! 0 , this . withinGame = ! 0 , this . isDown = ! 0 , this . isUp = ! 1 , this . msSinceLastClick = this . game . time . now - this . timeDown , this . timeDown = this . game . time . now , this . _holdSent = ! 1 , this . move ( a , ! 0 ) , this . positionDown . setTo ( this . x , this . y ) , ( this . game . input . multiInputOverride === b . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride === b . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride === b . Input . TOUCH _OVERRIDES _MOUSE && 0 === this . game . input . currentPointers ) && ( this . game . input . x = this . x , this . game . input . y = this . y , this . game . input . position . setTo ( this . x , this . y ) , this . game . input . onDown . dispatch ( this , a ) , this . game . input . resetSpeed ( this . x , this . y ) ) , this . _stateReset = ! 1 , this . totalTouches ++ , this . isMouse || this . game . input . currentPointers ++ , null !== this . targetObject && this . targetObject . _touchedHandler ( this ) , this } , update : function ( ) { this . active && ( this . _holdSent === ! 1 && this . duration >= this . game . input . holdRate && ( ( this . game . input . multiInputOverride == b . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride == b . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride == b . Input . TOUCH _OVERRIDES _MOUSE && 0 === this . game . input . currentPointers ) && this . game . input . onHold . dispatch ( this ) , this . _holdSent = ! 0 ) , this . game . input . recordPointerHistory && this . game . time . now >= this . _nextDrop && ( this . _nextDrop = this . game . time . now + this . game . input . recordRate , this . _history . push ( { x : this . position . x , y : this . position . y } ) , this . _history . length > this . game . input . recordLimit && this . _history . shift ( ) ) ) } , move : function ( a , c ) { if ( ! this . game . input . pollLocked ) { if ( "undefined" == typeof c && ( c = ! 1 ) , "undefined" != typeof a . button && ( this . button = a . button ) , this . clientX = a . clientX , this . clientY = a . clientY , this . pageX = a . pageX , this . pageY = a . pageY , this . screenX = a . screenX , this . screenY = a . screenY , this . isMouse && this . game . input . mouse . locked && ! c && ( this . rawMovementX = a . movementX || a . mozMovementX || a . webkitMovementX || 0 , this . rawMovementY = a . movementY || a . mozMovementY || a . webkitMovementY || 0 , this . movementX += this . rawMovementX , this . movementY += this . rawMovementY ) , this . x = ( this . pageX - this . game . stage . offset . x ) * this . game . input . scale . x , this . y = ( this . pageY - this . game . stage . offset . y ) * this . game . input . scale . y , this . position . setTo ( this . x , this . y ) , this . circle . x = this
} , overDuration : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isOver ? this . game . time . now - this . _pointerData [ a ] . timeOver : - 1 } , downDuration : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isDown ? this . game . time . now - this . _pointerData [ a ] . timeDown : - 1 } , enableDrag : function ( a , c , d , e , f , g ) { "undefined" == typeof a && ( a = ! 1 ) , "undefined" == typeof c && ( c = ! 1 ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = 255 ) , "undefined" == typeof f && ( f = null ) , "undefined" == typeof g && ( g = null ) , this . _dragPoint = new b . Point , this . draggable = ! 0 , this . bringToTop = c , this . dragOffset = new b . Point , this . dragFromCenter = a , this . pixelPerfect = d , this . pixelPerfectAlpha = e , f && ( this . boundsRect = f ) , g && ( this . boundsSprite = g ) } , disableDrag : function ( ) { if ( this . _pointerData ) for ( var a = 0 ; 10 > a ; a ++ ) this . _pointerData [ a ] . isDragged = ! 1 ; this . draggable = ! 1 , this . isDragged = ! 1 , this . _draggedPointerID = - 1 } , startDrag : function ( a ) { if ( this . isDragged = ! 0 , this . _draggedPointerID = a . id , this . _pointerData [ a . id ] . isDragged = ! 0 , this . sprite . fixedToCamera ) this . dragFromCenter ? ( this . sprite . centerOn ( a . x , a . y ) , this . _dragPoint . setTo ( this . sprite . cameraOffset . x - a . x , this . sprite . cameraOffset . y - a . y ) ) : this . _dragPoint . setTo ( this . sprite . cameraOffset . x - a . x , this . sprite . cameraOffset . y - a . y ) ; else if ( this . dragFromCenter ) { var b = this . sprite . getBounds ( ) ; this . sprite . x = a . x + ( this . sprite . x - b . centerX ) , this . sprite . y = a . y + ( this . sprite . y - b . centerY ) , this . _dragPoint . setTo ( this . sprite . x - a . x , this . sprite . y - a . y ) } else this . _dragPoint . setTo ( this . sprite . x - a . x , this . sprite . y - a . y ) ; this . updateDrag ( a ) , this . bringToTop && ( this . _dragPhase = ! 0 , this . sprite . bringToTop ( ) ) , this . sprite . events . onDragStart . dispatch ( this . sprite , a ) } , stopDrag : function ( a ) { this . isDragged = ! 1 , this . _draggedPointerID = - 1 , this . _pointerData [ a . id ] . isDragged = ! 1 , this . _dragPhase = ! 1 , this . snapOnRelease && ( this . sprite . fixedToCamera ? ( this . sprite . cameraOffset . x = Math . round ( ( this . sprite . cameraOffset . x - this . snapOffsetX % this . snapX ) / this . snapX ) * this . snapX + this . snapOffsetX % this . snapX , this . sprite . cameraOffset . y = Math . round ( ( this . sprite . cameraOffset . y - this . snapOffsetY % this . snapY ) / this . snapY ) * this . snapY + this . snapOffsetY % this . snapY ) : ( this . sprite . x = Math . round ( ( this . sprite . x - this . snapOffsetX % this . snapX ) / this . snapX ) * this . snapX + this . snapOffsetX % this . snapX , this . sprite . y = Math . round ( ( this . sprite . y - this . snapOffsetY % this . snapY ) / this . snapY ) * this . snapY + this . snapOffsetY % this . snapY ) ) , this . sprite . events . onDragStop . dispatch ( this . sprite , a ) , this . checkPointerOver ( a ) === ! 1 && this . _pointerOutHandler ( a ) } , setDragLock : function ( a , b ) { "undefined" == typeof a && ( a = ! 0 ) , "undefined" == typeof b && ( b = ! 0 ) , this . allowHorizontalDrag = a , this . allowVerticalDrag = b } , enableSnap : function ( a , b , c , d , e , f ) { "undefined" == typeof c && ( c = ! 0 ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = 0 ) , this . snapX = a , this . snapY = b , this . snapOffsetX = e , this . snapOffsetY = f , this . snapOnDrag = c , this . snapOnRelease = d } , disableSnap : function ( ) { this . snapOnDrag = ! 1 , this . snapOnRelease = ! 1 } , checkBoundsRect : function ( ) { this . sprite . fixedToCamera ? ( this . sprite . cameraOffset . x < this . boundsRect . left ? this . sprite . cameraOffset . x = this . boundsRect . cameraOffset . x : this . sprite . cameraOffset . x + this . sprite . width > this . boundsRect . right && ( this . sprite . cameraOffset . x = this . boundsRect . right - this . sprite . width ) , this . sprite . cameraOffset . y < this . boundsRect . top ? this . sprite . cameraOffset . y = this . boundsRect . top : this . sprite . cameraOffset . y + this . sprite . height > this . boundsRect . bottom && ( this . sprite . cameraOffset . y = this . boundsRect . bottom - this . sprite . height ) ) : ( this . sprite . x < this . boundsRect . left ? this . sprite . x = this . boundsRect . x : this . sprite . x + this . sprite . width > this . boundsRect . right && ( this . sprite . x = this . boundsRect . right - this . sprite . width ) , this . sprite . y < this . boundsRect . top ? this . sprite . y = this . boundsRect . top : this . sprite . y + this . sprite . height > this . boundsRect . bottom && ( this . sprite . y = this . boundsRect . bottom - this . sprite . height ) ) } , checkBoundsSprite : function ( ) { this . sprite . fixedToCamera && this . boundsSprite . fixedToCamera ? ( this . sprite . cameraOffset . x < this . boundsSprite . camerOffset . x ? this . sprite . cameraOffset . x = this . boundsSprite . camerOffset . x : this . sprite . cameraOffset . x + this . sprite . width > this . boundsSprite . camerOffset . x + this . boundsSprite . width && ( this . sprite . camer
} , b . Image . prototype . crop = function ( a , c ) { "undefined" == typeof c && ( c = ! 1 ) , a ? ( c && null !== this . cropRect ? this . cropRect . setTo ( a . x , a . y , a . width , a . height ) : this . cropRect = c && null === this . cropRect ? new b . Rectangle ( a . x , a . y , a . width , a . height ) : a , this . updateCrop ( ) ) : ( this . cropRect = null , this . resetFrame ( ) ) } , b . Image . prototype . revive = function ( ) { return this . alive = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . events && this . events . onRevived . dispatch ( this ) , this } , b . Image . prototype . kill = function ( ) { return this . alive = ! 1 , this . exists = ! 1 , this . visible = ! 1 , this . events && this . events . onKilled . dispatch ( this ) , this } , b . Image . prototype . destroy = function ( a ) { if ( null !== this . game && ! this . destroyPhase ) { "undefined" == typeof a && ( a = ! 0 ) , this . _cache [ 8 ] = 1 , this . parent && ( this . parent instanceof b . Group ? this . parent . remove ( this ) : this . parent . removeChild ( this ) ) , this . events && this . events . destroy ( ) , this . input && this . input . destroy ( ) ; var c = this . children . length ; if ( a ) for ( ; c -- ; ) this . children [ c ] . destroy ( a ) ; else for ( ; c -- ; ) this . removeChild ( this . children [ c ] ) ; this . alive = ! 1 , this . exists = ! 1 , this . visible = ! 1 , this . filters = null , this . mask = null , this . game = null , this . _cache [ 8 ] = 0 } } , b . Image . prototype . reset = function ( a , b ) { return this . world . setTo ( a , b ) , this . position . x = a , this . position . y = b , this . alive = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . renderable = ! 0 , this } , b . Image . prototype . bringToTop = function ( ) { return this . parent && this . parent . bringToTop ( this ) , this } , Object . defineProperty ( b . Image . prototype , "angle" , { get : function ( ) { return b . Math . wrapAngle ( b . Math . radToDeg ( this . rotation ) ) } , set : function ( a ) { this . rotation = b . Math . degToRad ( b . Math . wrapAngle ( a ) ) } } ) , Object . defineProperty ( b . Image . prototype , "deltaX" , { get : function ( ) { return this . world . x - this . _cache [ 0 ] } } ) , Object . defineProperty ( b . Image . prototype , "deltaY" , { get : function ( ) { return this . world . y - this . _cache [ 1 ] } } ) , Object . defineProperty ( b . Image . prototype , "deltaZ" , { get : function ( ) { return this . rotation - this . _cache [ 2 ] } } ) , Object . defineProperty ( b . Image . prototype , "inWorld" , { get : function ( ) { return this . game . world . bounds . intersects ( this . getBounds ( ) ) } } ) , Object . defineProperty ( b . Image . prototype , "inCamera" , { get : function ( ) { return this . game . world . camera . screenView . intersects ( this . getBounds ( ) ) } } ) , Object . defineProperty ( b . Image . prototype , "frame" , { get : function ( ) { return this . _frame } , set : function ( a ) { if ( a !== this . frame && this . game . cache . isSpriteSheet ( this . key ) ) { var b = this . game . cache . getFrameData ( this . key ) ; b && a < b . total && b . getFrame ( a ) && ( this . _frame = a , this . setFrame ( b . getFrame ( a ) ) ) } } } ) , Object . defineProperty ( b . Image . prototype , "frameName" , { get : function ( ) { return this . _frameName } , set : function ( a ) { if ( a !== this . frameName && this . game . cache . isSpriteSheet ( this . key ) ) { var b = this . game . cache . getFrameData ( this . key ) ; b && b . getFrameByName ( a ) && ( this . _frameName = a , this . setFrame ( b . getFrameByName ( a ) ) ) } } } ) , Object . defineProperty ( b . Image . prototype , "renderOrderID" , { get : function ( ) { return this . _cache [ 3 ] } } ) , Object . defineProperty ( b . Image . prototype , "inputEnabled" , { get : function ( ) { return this . input && this . input . enabled } , set : function ( a ) { a ? null === this . input ? ( this . input = new b . InputHandler ( this ) , this . input . start ( ) ) : this . input && ! this . input . enabled && this . input . start ( ) : this . input && this . input . enabled && this . input . stop ( ) } } ) , Object . defineProperty ( b . Image . prototype , "fixedToCamera" , { get : function ( ) { return ! ! this . _cache [ 7 ] } , set : function ( a ) { a ? ( this . _cache [ 7 ] = 1 , this . cameraOffset . set ( this . x , this . y ) ) : this . _cache [ 7 ] = 0 } } ) , Object . defineProperty ( b . Image . prototype , "smoothed" , { get : function ( ) { return ! this . texture . baseTexture . scaleMode } , set : function ( a ) { a ? this . texture && ( this . texture . baseTexture . scaleMode = 0 ) : this . texture && ( this . texture . baseTexture . scaleMode = 1 ) } } ) , Object . defineProperty ( b . Image . prototype , "destroyPhase" , { get : function ( ) { return ! ! this . _cache [ 8 ] } } ) , b . TileSprite = function ( a , c , d , e , f , g , h ) { c = c || 0 , d = d || 0 , e = e || 256 , f = f || 256 , g = g || null , h = h || null , this . game = a , this . name = "" , this . type = b . TILESPRITE , this . z = 0 , this . events = new b . Events ( this ) , this . animations = new b . AnimationManager ( this ) , this . key = g , this . _frame = 0 , this . _frameName = "" , this . _scroll = new b . Point , PIXI . TilingSprite . call ( this , PIXI . TextureCache . _ _default , e , f ) , this . loadTexture ( g , h ) , this . position . set ( c , d ) , this . input = null , this . world = new b . Point ( c , d ) , this . autoC
} , b . RetroFont . prototype . setText = function ( a , b , c , d , e , f ) { this . multiLine = b || ! 1 , this . customSpacingX = c || 0 , this . customSpacingY = d || 0 , this . align = e || "left" , this . autoUpperCase = f ? ! 1 : ! 0 , a . length > 0 && ( this . text = a ) } , b . RetroFont . prototype . buildRetroFontText = function ( ) { var a = 0 , c = 0 ; if ( this . clear ( ) , this . multiLine ) { var d = this . _text . split ( "\n" ) ; this . fixedWidth > 0 ? this . resize ( this . fixedWidth , d . length * ( this . characterHeight + this . customSpacingY ) - this . customSpacingY , ! 0 ) : this . resize ( this . getLongestLine ( ) * ( this . characterWidth + this . customSpacingX ) , d . length * ( this . characterHeight + this . customSpacingY ) - this . customSpacingY , ! 0 ) ; for ( var e = 0 ; e < d . length ; e ++ ) { switch ( this . align ) { case b . RetroFont . ALIGN _LEFT : a = 0 ; break ; case b . RetroFont . ALIGN _RIGHT : a = this . width - d [ e ] . length * ( this . characterWidth + this . customSpacingX ) ; break ; case b . RetroFont . ALIGN _CENTER : a = this . width / 2 - d [ e ] . length * ( this . characterWidth + this . customSpacingX ) / 2 , a += this . customSpacingX / 2 } 0 > a && ( a = 0 ) , this . pasteLine ( d [ e ] , a , c , this . customSpacingX ) , c += this . characterHeight + this . customSpacingY } } else { switch ( this . fixedWidth > 0 ? this . resize ( this . fixedWidth , this . characterHeight , ! 0 ) : this . resize ( this . _text . length * ( this . characterWidth + this . customSpacingX ) , this . characterHeight , ! 0 ) , this . align ) { case b . RetroFont . ALIGN _LEFT : a = 0 ; break ; case b . RetroFont . ALIGN _RIGHT : a = this . width - this . _text . length * ( this . characterWidth + this . customSpacingX ) ; break ; case b . RetroFont . ALIGN _CENTER : a = this . width / 2 - this . _text . length * ( this . characterWidth + this . customSpacingX ) / 2 , a += this . customSpacingX / 2 } this . textureBuffer . clear ( ) , this . pasteLine ( this . _text , a , 0 , this . customSpacingX ) } } , b . RetroFont . prototype . pasteLine = function ( a , c , d , e ) { for ( var f = new b . Point , g = 0 ; g < a . length ; g ++ ) if ( " " == a . charAt ( g ) ) c += this . characterWidth + e ; else if ( this . grabData [ a . charCodeAt ( g ) ] >= 0 && ( this . stamp . frame = this . grabData [ a . charCodeAt ( g ) ] , f . set ( c , d ) , this . render ( this . stamp , f , ! 1 ) , c += this . characterWidth + e , c > this . width ) ) break } , b . RetroFont . prototype . getLongestLine = function ( ) { var a = 0 ; if ( this . _text . length > 0 ) for ( var b = this . _text . split ( "\n" ) , c = 0 ; c < b . length ; c ++ ) b [ c ] . length > a && ( a = b [ c ] . length ) ; return a } , b . RetroFont . prototype . removeUnsupportedCharacters = function ( a ) { for ( var b = "" , c = 0 ; c < this . _text . length ; c ++ ) { var d = this . _text [ c ] , e = d . charCodeAt ( 0 ) ; ( this . grabData [ e ] >= 0 || ! a && "\n" === d ) && ( b = b . concat ( d ) ) } return b } , b . RetroFont . prototype . updateOffset = function ( a , b ) { if ( this . offsetX !== a || this . offsetY !== b ) { for ( var c = a - this . offsetX , d = b - this . offsetY , e = this . game . cache . getFrameData ( this . stamp . key ) . getFrames ( ) , f = e . length ; f -- ; ) e [ f ] . x += c , e [ f ] . y += d , PIXI . TextureCache [ e [ f ] . uuid ] . frame . x = e [ f ] . x , PIXI . TextureCache [ e [ f ] . uuid ] . frame . y = e [ f ] . y ; this . buildRetroFontText ( ) } } , Object . defineProperty ( b . RetroFont . prototype , "text" , { get : function ( ) { return this . _text } , set : function ( a ) { var b ; b = this . autoUpperCase ? a . toUpperCase ( ) : a , b !== this . _text && ( this . _text = b , this . removeUnsupportedCharacters ( this . multiLine ) , this . buildRetroFontText ( ) ) } } ) , Object . defineProperty ( b . RetroFont . prototype , "smoothed" , { get : function ( ) { return this . stamp . smoothed } , set : function ( a ) { this . stamp . smoothed = a , this . buildRetroFontText ( ) } } ) , b . Particle = function ( a , c , d , e , f ) { b . Sprite . call ( this , a , c , d , e , f ) , this . autoScale = ! 1 , this . scaleData = null , this . _s = 0 , this . autoAlpha = ! 1 , this . alphaData = null , this . _a = 0 } , b . Particle . prototype = Object . create ( b . Sprite . prototype ) , b . Particle . prototype . constructor = b . Particle , b . Particle . prototype . update = function ( ) { this . autoScale && ( this . _s -- , this . _s ? this . scale . set ( this . scaleData [ this . _s ] . x , this . scaleData [ this . _s ] . y ) : this . autoScale = ! 1 ) , this . autoAlpha && ( this . _a -- , this . _a ? this . alpha = this . alphaData [ this . _a ] . v : this . autoAlpha = ! 1 ) } , b . Particle . prototype . onEmit = function ( ) { } , b . Particle . prototype . setAlphaData = function ( a ) { this . alphaData = a , this . _a = a . length - 1 , this . alpha = this . alphaData [ this . _a ] . v , this . autoAlpha = ! 0 } , b . Particle . prototype . setScaleData = function ( a ) { this . scaleData = a , this . _s = a . length - 1 , this . scale . set ( this . scaleData [ this . _s ] . x , this . scaleData [ this . _s ] . y ) , this . autoScale = ! 0 } , b . Particle . prototype . reset = function ( a , b , c ) { return "undefined" == typeof c && ( c = 1 ) , this . world . setTo ( a , b ) , this . position . x = a , this . position . y = b , this . alive = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . renderable = ! 0 , this . _outOfBoundsFir
this . _valuesStartRepeat [ b ] = this . _valuesEnd [ b ] , this . _valuesEnd [ b ] = g } this . _valuesStart [ b ] = this . _valuesStartRepeat [ b ] } return this . _yoyo && ( this . _reversed = ! this . _reversed ) , this . _startTime = a + this . _delayTime , this . onLoop . dispatch ( this . _object ) , ! 0 } this . isRunning = ! 1 , this . onComplete . dispatch ( this . _object ) ; for ( var h = 0 , i = this . _chainedTweens . length ; i > h ; h ++ ) this . _chainedTweens [ h ] . start ( a ) ; return ! 1 } return ! 0 } } , b . Tween . prototype . constructor = b . Tween , b . Easing = { Linear : { None : function ( a ) { return a } } , Quadratic : { In : function ( a ) { return a * a } , Out : function ( a ) { return a * ( 2 - a ) } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? . 5 * a * a : - . 5 * ( -- a * ( a - 2 ) - 1 ) } } , Cubic : { In : function ( a ) { return a * a * a } , Out : function ( a ) { return -- a * a * a + 1 } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? . 5 * a * a * a : . 5 * ( ( a -= 2 ) * a * a + 2 ) } } , Quartic : { In : function ( a ) { return a * a * a * a } , Out : function ( a ) { return 1 - -- a * a * a * a } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? . 5 * a * a * a * a : - . 5 * ( ( a -= 2 ) * a * a * a - 2 ) } } , Quintic : { In : function ( a ) { return a * a * a * a * a } , Out : function ( a ) { return -- a * a * a * a * a + 1 } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? . 5 * a * a * a * a * a : . 5 * ( ( a -= 2 ) * a * a * a * a + 2 ) } } , Sinusoidal : { In : function ( a ) { return 1 - Math . cos ( a * Math . PI / 2 ) } , Out : function ( a ) { return Math . sin ( a * Math . PI / 2 ) } , InOut : function ( a ) { return . 5 * ( 1 - Math . cos ( Math . PI * a ) ) } } , Exponential : { In : function ( a ) { return 0 === a ? 0 : Math . pow ( 1024 , a - 1 ) } , Out : function ( a ) { return 1 === a ? 1 : 1 - Math . pow ( 2 , - 10 * a ) } , InOut : function ( a ) { return 0 === a ? 0 : 1 === a ? 1 : ( a *= 2 ) < 1 ? . 5 * Math . pow ( 1024 , a - 1 ) : . 5 * ( - Math . pow ( 2 , - 10 * ( a - 1 ) ) + 2 ) } } , Circular : { In : function ( a ) { return 1 - Math . sqrt ( 1 - a * a ) } , Out : function ( a ) { return Math . sqrt ( 1 - -- a * a ) } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? - . 5 * ( Math . sqrt ( 1 - a * a ) - 1 ) : . 5 * ( Math . sqrt ( 1 - ( a -= 2 ) * a ) + 1 ) } } , Elastic : { In : function ( a ) { var b , c = . 1 , d = . 4 ; return 0 === a ? 0 : 1 === a ? 1 : ( ! c || 1 > c ? ( c = 1 , b = d / 4 ) : b = d * Math . asin ( 1 / c ) / ( 2 * Math . PI ) , - ( c * Math . pow ( 2 , 10 * ( a -= 1 ) ) * Math . sin ( 2 * ( a - b ) * Math . PI / d ) ) ) } , Out : function ( a ) { var b , c = . 1 , d = . 4 ; return 0 === a ? 0 : 1 === a ? 1 : ( ! c || 1 > c ? ( c = 1 , b = d / 4 ) : b = d * Math . asin ( 1 / c ) / ( 2 * Math . PI ) , c * Math . pow ( 2 , - 10 * a ) * Math . sin ( 2 * ( a - b ) * Math . PI / d ) + 1 ) } , InOut : function ( a ) { var b , c = . 1 , d = . 4 ; return 0 === a ? 0 : 1 === a ? 1 : ( ! c || 1 > c ? ( c = 1 , b = d / 4 ) : b = d * Math . asin ( 1 / c ) / ( 2 * Math . PI ) , ( a *= 2 ) < 1 ? - . 5 * c * Math . pow ( 2 , 10 * ( a -= 1 ) ) * Math . sin ( 2 * ( a - b ) * Math . PI / d ) : c * Math . pow ( 2 , - 10 * ( a -= 1 ) ) * Math . sin ( 2 * ( a - b ) * Math . PI / d ) * . 5 + 1 ) } } , Back : { In : function ( a ) { var b = 1.70158 ; return a * a * ( ( b + 1 ) * a - b ) } , Out : function ( a ) { var b = 1.70158 ; return -- a * a * ( ( b + 1 ) * a + b ) + 1 } , InOut : function ( a ) { var b = 2.5949095 ; return ( a *= 2 ) < 1 ? . 5 * a * a * ( ( b + 1 ) * a - b ) : . 5 * ( ( a -= 2 ) * a * ( ( b + 1 ) * a + b ) + 2 ) } } , Bounce : { In : function ( a ) { return 1 - b . Easing . Bounce . Out ( 1 - a ) } , Out : function ( a ) { return 1 / 2.75 > a ? 7.5625 * a * a : 2 / 2.75 > a ? 7.5625 * ( a -= 1.5 / 2.75 ) * a + . 75 : 2.5 / 2.75 > a ? 7.5625 * ( a -= 2.25 / 2.75 ) * a + . 9375 : 7.5625 * ( a -= 2.625 / 2.75 ) * a + . 984375 } , InOut : function ( a ) { return . 5 > a ? . 5 * b . Easing . Bounce . In ( 2 * a ) : . 5 * b . Easing . Bounce . Out ( 2 * a - 1 ) + . 5 } } } , b . Time = function ( a ) { this . game = a , this . time = 0 , this . now = 0 , this . elapsed = 0 , this . pausedTime = 0 , this . advancedTiming = ! 1 , this . fps = 0 , this . fpsMin = 1e3 , this . fpsMax = 0 , this . msMin = 1e3 , this . msMax = 0 , this . physicsElapsed = 0 , this . deltaCap = 0 , this . timeCap = 1e3 , this . frames = 0 , this . pauseDuration = 0 , this . timeToCall = 0 , this . lastTime = 0 , this . events = new b . Timer ( this . game , ! 1 ) , this . _started = 0 , this . _timeLastSecond = 0 , this . _pauseStarted = 0 , this . _justResumed = ! 1 , this . _timers = [ ] , this . _len = 0 , this . _i = 0 } , b . Time . prototype = { boot : function ( ) { this . _started = Date . now ( ) , this . events . start ( ) } , add : function ( a ) { return this . _timers . push ( a ) , a } , create : function ( a ) { "undefined" == typeof a && ( a = ! 0 ) ; var c = new b . Timer ( this . game , a ) ; return this . _timers . push ( c ) , c } , removeAll : function ( ) { for ( var a = 0 ; a < this . _timers . length ; a ++ ) this . _timers [ a ] . destroy ( ) ; this . _timers = [ ] , this . events . removeAll ( ) } , update : function ( a ) { if ( this . now = a , this . timeToCall = this . game . math . max ( 0 , 16 - ( a - this . lastTime ) ) , this . elapsed = this . now - this . time , this . elapsed > this . timeCap && ( this . elapsed = 1 / 60 ) , this . physicsElapsed = this . elapsed / 1e3 || 1 / 60 , this . deltaCap > 0 && this . physicsElapsed > this . deltaCap && ( this . physicsElapsed = this . deltaCap ) , this . advancedTiming && ( this . msMin = this . game . math . min ( this . msMin , this . elapsed ) , this . msMax = this . game . math . max ( this . msMax , this . elapsed ) , this . frames ++ , this . now > this . _timeLastSecond + 1e3 && ( this . fps = Math . round ( 1e3 * this . frames / ( this . now - this . _timeLastSecond ) ) , this . fpsMin = this . game . math . min ( this .
break ; case b . Cache . BITMAPFONT : c = this . _bitmapFont ; break ; case b . Cache . JSON : c = this . _json } if ( c ) { var d = [ ] ; for ( var e in c ) "__default" !== e && "__missing" !== e && d . push ( e ) ; return d } } , removeCanvas : function ( a ) { delete this . _canvases [ a ] } , removeImage : function ( a ) { delete this . _images [ a ] } , removeSound : function ( a ) { delete this . _sounds [ a ] } , removeText : function ( a ) { delete this . _text [ a ] } , removeJSON : function ( a ) { delete this . _json [ a ] } , removePhysics : function ( a ) { delete this . _physics [ a ] } , removeTilemap : function ( a ) { delete this . _tilemaps [ a ] } , removeBinary : function ( a ) { delete this . _binary [ a ] } , removeBitmapData : function ( a ) { delete this . _bitmapDatas [ a ] } , removeBitmapFont : function ( a ) { delete this . _bitmapFont [ a ] } , destroy : function ( ) { for ( var a in this . _canvases ) delete this . _canvases [ a ] ; for ( var a in this . _images ) "__default" !== a && "__missing" !== a && delete this . _images [ a ] ; for ( var a in this . _sounds ) delete this . _sounds [ a ] ; for ( var a in this . _text ) delete this . _text [ a ] ; for ( var a in this . _json ) delete this . _json [ a ] ; for ( var a in this . _textures ) delete this . _textures [ a ] ; for ( var a in this . _physics ) delete this . _physics [ a ] ; for ( var a in this . _tilemaps ) delete this . _tilemaps [ a ] ; for ( var a in this . _binary ) delete this . _binary [ a ] ; for ( var a in this . _bitmapDatas ) delete this . _bitmapDatas [ a ] ; for ( var a in this . _bitmapFont ) delete this . _bitmapFont [ a ] } } , b . Cache . prototype . constructor = b . Cache , b . Loader = function ( a ) { this . game = a , this . isLoading = ! 1 , this . hasLoaded = ! 1 , this . progress = 0 , this . progressFloat = 0 , this . preloadSprite = null , this . crossOrigin = ! 1 , this . baseURL = "" , this . onLoadStart = new b . Signal , this . onFileStart = new b . Signal , this . onFileComplete = new b . Signal , this . onFileError = new b . Signal , this . onLoadComplete = new b . Signal , this . _packList = [ ] , this . _packIndex = 0 , this . _fileList = [ ] , this . _fileIndex = 0 , this . _progressChunk = 0 , this . _xhr = new XMLHttpRequest , this . _ajax = null } , b . Loader . TEXTURE _ATLAS _JSON _ARRAY = 0 , b . Loader . TEXTURE _ATLAS _JSON _HASH = 1 , b . Loader . TEXTURE _ATLAS _XML _STARLING = 2 , b . Loader . PHYSICS _LIME _CORONA _JSON = 3 , b . Loader . PHYSICS _PHASER _JSON = 4 , b . Loader . prototype = { setPreloadSprite : function ( a , c ) { c = c || 0 , this . preloadSprite = { sprite : a , direction : c , width : a . width , height : a . height , rect : null } , this . preloadSprite . rect = 0 === c ? new b . Rectangle ( 0 , 0 , 1 , a . height ) : new b . Rectangle ( 0 , 0 , a . width , 1 ) , a . crop ( this . preloadSprite . rect ) , a . visible = ! 0 } , checkKeyExists : function ( a , b ) { if ( this . _fileList . length > 0 ) for ( var c = 0 ; c < this . _fileList . length ; c ++ ) if ( this . _fileList [ c ] . type === a && this . _fileList [ c ] . key === b ) return ! 0 ; return ! 1 } , getAssetIndex : function ( a , b ) { if ( this . _fileList . length > 0 ) for ( var c = 0 ; c < this . _fileList . length ; c ++ ) if ( this . _fileList [ c ] . type === a && this . _fileList [ c ] . key === b ) return c ; return - 1 } , getAsset : function ( a , b ) { if ( this . _fileList . length > 0 ) for ( var c = 0 ; c < this . _fileList . length ; c ++ ) if ( this . _fileList [ c ] . type === a && this . _fileList [ c ] . key === b ) return { index : c , file : this . _fileList [ c ] } ; return ! 1 } , reset : function ( ) { this . preloadSprite = null , this . isLoading = ! 1 , this . _packList . length = 0 , this . _packIndex = 0 , this . _fileList . length = 0 , this . _fileIndex = 0 } , addToFileList : function ( a , b , c , d ) { var e = { type : a , key : b , url : c , data : null , error : ! 1 , loaded : ! 1 } ; if ( "undefined" != typeof d ) for ( var f in d ) e [ f ] = d [ f ] ; this . checkKeyExists ( a , b ) === ! 1 && this . _fileList . push ( e ) } , replaceInFileList : function ( a , b , c , d ) { var e = { type : a , key : b , url : c , data : null , error : ! 1 , loaded : ! 1 } ; if ( "undefined" != typeof d ) for ( var f in d ) e [ f ] = d [ f ] ; var g = this . getAssetIndex ( a , b ) ; - 1 === g ? this . _fileList . push ( e ) : this . _fileList [ g ] = e } , pack : function ( a , b , c , d ) { return "undefined" == typeof b && ( b = null ) , "undefined" == typeof c && ( c = null ) , "undefined" == typeof d && ( d = this ) , null === b && null === c ? ( console . warn ( "Phaser.Loader.pack - Both url and data are null. One must be set." ) , this ) : ( c && "string" == typeof c && ( c = JSON . parse ( c ) ) , this . _packList . push ( { key : a , url : b , data : c , loaded : ! 1 , error : ! 1 , callbackContext : d } ) , this ) } , image : function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 1 ) , c ? this . replaceInFileList ( "image" , a , b ) : this . addToFileList ( "image" , a , b ) , this } , text : function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 1 ) , c ? this . replaceInFileList ( "text" , a , b ) : this . addToFileList ( "text" , a , b ) , this } , json : function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 1 ) , c ? this . replaceInFileList ( "json" , a , b ) : this . addToFileList ( "json" , a ,
} } ) , b . Utils . Debug = function ( a ) { this . game = a , this . sprite = null , this . canvas = null , this . baseTexture = null , this . texture = null , this . textureFrame = null , this . context = null , this . font = "14px Courier" , this . columnWidth = 100 , this . lineHeight = 16 , this . renderShadow = ! 0 , this . currentX = 0 , this . currentY = 0 , this . currentAlpha = 1 , this . dirty = ! 1 } , b . Utils . Debug . prototype = { boot : function ( ) { this . game . renderType === b . CANVAS ? this . context = this . game . context : ( this . canvas = b . Canvas . create ( this . game . width , this . game . height , "" , ! 0 ) , this . context = this . canvas . getContext ( "2d" ) , this . baseTexture = new PIXI . BaseTexture ( this . canvas ) , this . texture = new PIXI . Texture ( this . baseTexture ) , this . textureFrame = new b . Frame ( 0 , 0 , 0 , this . game . width , this . game . height , "debug" , this . game . rnd . uuid ( ) ) , this . sprite = this . game . make . image ( 0 , 0 , this . texture , this . textureFrame ) , this . game . stage . addChild ( this . sprite ) ) } , preUpdate : function ( ) { this . dirty && this . sprite && ( this . context . clearRect ( 0 , 0 , this . game . width , this . game . height ) , this . dirty = ! 1 ) } , start : function ( a , b , c , d ) { "number" != typeof a && ( a = 0 ) , "number" != typeof b && ( b = 0 ) , c = c || "rgb(255,255,255)" , "undefined" == typeof d && ( d = 0 ) , this . currentX = a , this . currentY = b , this . currentColor = c , this . currentAlpha = this . context . globalAlpha , this . columnWidth = d , this . sprite && ( this . dirty = ! 0 ) , this . context . save ( ) , this . context . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) , this . context . strokeStyle = c , this . context . fillStyle = c , this . context . font = this . font , this . context . globalAlpha = 1 } , stop : function ( ) { this . context . restore ( ) , this . context . globalAlpha = this . currentAlpha , this . sprite && PIXI . updateWebGLTexture ( this . baseTexture , this . game . renderer . gl ) } , line : function ( ) { for ( var a = this . currentX , b = 0 ; b < arguments . length ; b ++ ) this . renderShadow && ( this . context . fillStyle = "rgb(0,0,0)" , this . context . fillText ( arguments [ b ] , a + 1 , this . currentY + 1 ) , this . context . fillStyle = this . currentColor ) , this . context . fillText ( arguments [ b ] , a , this . currentY ) , a += this . columnWidth ; this . currentY += this . lineHeight } , soundInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Sound: " + a . key + " Locked: " + a . game . sound . touchLocked ) , this . line ( "Is Ready?: " + this . game . cache . isSoundReady ( a . key ) + " Pending Playback: " + a . pendingPlayback ) , this . line ( "Decoded: " + a . isDecoded + " Decoding: " + a . isDecoding ) , this . line ( "Total Duration: " + a . totalDuration + " Playing: " + a . isPlaying ) , this . line ( "Time: " + a . currentTime ) , this . line ( "Volume: " + a . volume + " Muted: " + a . mute ) , this . line ( "WebAudio: " + a . usingWebAudio + " Audio: " + a . usingAudioTag ) , "" !== a . currentMarker && ( this . line ( "Marker: " + a . currentMarker + " Duration: " + a . duration + " (ms: " + a . durationMS + ")" ) , this . line ( "Start: " + a . markers [ a . currentMarker ] . start + " Stop: " + a . markers [ a . currentMarker ] . stop ) , this . line ( "Position: " + a . position ) ) , this . stop ( ) } , cameraInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Camera (" + a . width + " x " + a . height + ")" ) , this . line ( "X: " + a . x + " Y: " + a . y ) , this . line ( "Bounds x: " + a . bounds . x + " Y: " + a . bounds . y + " w: " + a . bounds . width + " h: " + a . bounds . height ) , this . line ( "View x: " + a . view . x + " Y: " + a . view . y + " w: " + a . view . width + " h: " + a . view . height ) , this . stop ( ) } , timer : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Timer (running: " + a . running + " expired: " + a . expired + ")" ) , this . line ( "Next Tick: " + a . next + " Duration: " + a . duration ) , this . line ( "Paused: " + a . paused + " Length: " + a . length ) , this . stop ( ) } , pointer : function ( a , b , c , d , e ) { null != a && ( "undefined" == typeof b && ( b = ! 1 ) , c = c || "rgba(0,255,0,0.5)" , d = d || "rgba(255,0,0,0.5)" , ( b !== ! 0 || a . isUp !== ! 0 ) && ( this . start ( a . x , a . y - 100 , e ) , this . context . beginPath ( ) , this . context . arc ( a . x , a . y , a . circle . radius , 0 , 2 * Math . PI ) , this . context . fillStyle = a . active ? c : d , this . context . fill ( ) , this . context . closePath ( ) , this . context . beginPath ( ) , this . context . moveTo ( a . positionDown . x , a . positionDown . y ) , this . context . lineTo ( a . position . x , a . position . y ) , this . context . lineWidth = 2 , this . context . stroke ( ) , this . context . closePath ( ) , this . line ( "ID: " + a . id + " Active: " + a . active ) , this . line ( "World X: " + a . worldX + " World Y: " + a . worldY ) , this . line ( "Screen X: " + a . x + " Screen Y: " + a . y ) , this . line ( "Duration: " + a . duration + " ms" ) , this . line ( "is Down: " + a . isDown + " is Up: " + a . isUp ) , this . stop ( ) ) ) } , spriteInputInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Sprite Input: (" + a . width + " x " + a . height + ")" ) , this . line ( "x: " + a . inp
} , b . Physics . Arcade . Body . prototype = { updateBounds : function ( ) { var a = Math . abs ( this . sprite . scale . x ) , b = Math . abs ( this . sprite . scale . y ) ; ( a !== this . _sx || b !== this . _sy ) && ( this . width = this . sourceWidth * a , this . height = this . sourceHeight * b , this . halfWidth = Math . floor ( this . width / 2 ) , this . halfHeight = Math . floor ( this . height / 2 ) , this . _sx = a , this . _sy = b , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) , this . _reset = ! 0 ) } , preUpdate : function ( ) { this . phase = 1 , this . wasTouching . none = this . touching . none , this . wasTouching . up = this . touching . up , this . wasTouching . down = this . touching . down , this . wasTouching . left = this . touching . left , this . wasTouching . right = this . touching . right , this . touching . none = ! 0 , this . touching . up = ! 1 , this . touching . down = ! 1 , this . touching . left = ! 1 , this . touching . right = ! 1 , this . blocked . up = ! 1 , this . blocked . down = ! 1 , this . blocked . left = ! 1 , this . blocked . right = ! 1 , this . embedded = ! 1 , this . updateBounds ( ) , this . position . x = this . sprite . world . x - this . sprite . anchor . x * this . width + this . offset . x , this . position . y = this . sprite . world . y - this . sprite . anchor . y * this . height + this . offset . y , this . rotation = this . sprite . angle , this . preRotation = this . rotation , ( this . _reset || 1 === this . sprite . _cache [ 4 ] ) && ( this . prev . x = this . position . x , this . prev . y = this . position . y ) , this . moves && ( this . game . physics . arcade . updateMotion ( this ) , this . newVelocity . set ( this . velocity . x * this . game . time . physicsElapsed , this . velocity . y * this . game . time . physicsElapsed ) , this . position . x += this . newVelocity . x , this . position . y += this . newVelocity . y , ( this . position . x !== this . prev . x || this . position . y !== this . prev . y ) && ( this . speed = Math . sqrt ( this . velocity . x * this . velocity . x + this . velocity . y * this . velocity . y ) , this . angle = Math . atan2 ( this . velocity . y , this . velocity . x ) ) , this . collideWorldBounds && this . checkWorldBounds ( ) ) , this . _dx = this . deltaX ( ) , this . _dy = this . deltaY ( ) , this . _reset = ! 1 } , postUpdate : function ( ) { 2 !== this . phase && ( this . phase = 2 , this . deltaX ( ) < 0 ? this . facing = b . LEFT : this . deltaX ( ) > 0 && ( this . facing = b . RIGHT ) , this . deltaY ( ) < 0 ? this . facing = b . UP : this . deltaY ( ) > 0 && ( this . facing = b . DOWN ) , this . moves && ( this . _dx = this . deltaX ( ) , this . _dy = this . deltaY ( ) , 0 !== this . deltaMax . x && 0 !== this . _dx && ( this . _dx < 0 && this . _dx < - this . deltaMax . x ? this . _dx = - this . deltaMax . x : this . _dx > 0 && this . _dx > this . deltaMax . x && ( this . _dx = this . deltaMax . x ) ) , 0 !== this . deltaMax . y && 0 !== this . _dy && ( this . _dy < 0 && this . _dy < - this . deltaMax . y ? this . _dy = - this . deltaMax . y : this . _dy > 0 && this . _dy > this . deltaMax . y && ( this . _dy = this . deltaMax . y ) ) , this . sprite . x += this . _dx , this . sprite . y += this . _dy ) , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) , this . allowRotation && ( this . sprite . angle += this . deltaZ ( ) ) , this . prev . x = this . position . x , this . prev . y = this . position . y ) } , destroy : function ( ) { this . sprite = null } , checkWorldBounds : function ( ) { this . position . x < this . game . physics . arcade . bounds . x && this . game . physics . arcade . checkCollision . left ? ( this . position . x = this . game . physics . arcade . bounds . x , this . velocity . x *= - this . bounce . x , this . blocked . left = ! 0 ) : this . right > this . game . physics . arcade . bounds . right && this . game . physics . arcade . checkCollision . right && ( this . position . x = this . game . physics . arcade . bounds . right - this . width , this . velocity . x *= - this . bounce . x , this . blocked . right = ! 0 ) , this . position . y < this . game . physics . arcade . bounds . y && this . game . physics . arcade . checkCollision . up ? ( this . position . y = this . game . physics . arcade . bounds . y , this . velocity . y *= - this . bounce . y , this . blocked . up = ! 0 ) : this . bottom > this . game . physics . arcade . bounds . bottom && this . game . physics . arcade . checkCollision . down && ( this . position . y = this . game . physics . arcade . bounds . bottom - this . height , this . velocity . y *= - this . bounce . y , this . blocked . down = ! 0 ) } , setSize : function ( a , b , c , d ) { "undefined" == typeof c && ( c = this . offset . x ) , "undefined" == typeof d && ( d = this . offset . y ) , this . sourceWidth = a , this . sourceHeight = b , this . width = this . sourceWidth * this . _sx , this . height = this . sourceHeight * this . _sy , this . halfWidth = Math . floor ( this . width / 2 ) , this . halfHeight = Math . floor ( this . height / 2 ) , this . offset . setTo ( c , d ) , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) } , reset : function ( a , b ) { this . velocity . set ( 0 ) , this . acceleration . set ( 0 ) , this . angularVelocity = 0 , this . angularAcceleration = 0 , this . position . x = a - this . sprite . anchor . x * this . width + this .
for ( var g = this . _mc . ty ; g < this . _mc . ty + this . _mc . th ; g ++ ) for ( var h = this . _mc . tx ; h < this . _mc . tx + this . _mc . tw ; h ++ ) this . layer . data [ g ] && this . layer . data [ g ] [ h ] && ( ! e && ! f || this . layer . data [ g ] [ h ] . isInteresting ( e , f ) ) && this . _results . push ( this . layer . data [ g ] [ h ] ) ; return this . _results } , b . TilemapLayer . prototype . updateMax = function ( ) { this . _mc . maxX = this . game . math . ceil ( this . canvas . width / this . map . tileWidth ) + 1 , this . _mc . maxY = this . game . math . ceil ( this . canvas . height / this . map . tileHeight ) + 1 , this . dirty = ! 0 } , b . TilemapLayer . prototype . render = function ( ) { if ( this . layer . dirty && ( this . dirty = ! 0 ) , this . dirty && this . visible ) { this . _mc . prevX = this . _mc . dx , this . _mc . prevY = this . _mc . dy , this . _mc . dx = - ( this . _mc . x - this . _mc . startX * this . map . tileWidth ) , this . _mc . dy = - ( this . _mc . y - this . _mc . startY * this . map . tileHeight ) , this . _mc . tx = this . _mc . dx , this . _mc . ty = this . _mc . dy , this . context . clearRect ( 0 , 0 , this . canvas . width , this . canvas . height ) , this . context . fillStyle = this . tileColor ; var a , c ; this . debug && ( this . context . globalAlpha = this . debugAlpha ) ; for ( var d = this . _mc . startY , e = this . _mc . startY + this . _mc . maxY ; e > d ; d ++ ) { if ( this . _column = null , 0 > d && this . wrap ? this . _column = this . layer . data [ d + this . map . height ] : d >= this . map . height && this . wrap ? this . _column = this . layer . data [ d - this . map . height ] : this . layer . data [ d ] && ( this . _column = this . layer . data [ d ] ) , this . _column ) for ( var f = this . _mc . startX , g = this . _mc . startX + this . _mc . maxX ; g > f ; f ++ ) { var a = null ; 0 > f && this . wrap ? a = this . _column [ f + this . map . width ] : f >= this . map . width && this . wrap ? a = this . _column [ f - this . map . width ] : this . _column [ f ] && ( a = this . _column [ f ] ) , a && a . index > - 1 && ( c = this . map . tilesets [ this . map . tiles [ a . index ] [ 2 ] ] , this . debug === ! 1 && a . alpha !== this . context . globalAlpha && ( this . context . globalAlpha = a . alpha ) , c . draw ( this . context , Math . floor ( this . _mc . tx ) , Math . floor ( this . _mc . ty ) , a . index ) , a . debug && ( this . context . fillStyle = "rgba(0, 255, 0, 0.4)" , this . context . fillRect ( Math . floor ( this . _mc . tx ) , Math . floor ( this . _mc . ty ) , this . map . tileWidth , this . map . tileHeight ) ) ) , this . _mc . tx += this . map . tileWidth } this . _mc . tx = this . _mc . dx , this . _mc . ty += this . map . tileHeight } return this . debug && ( this . context . globalAlpha = 1 , this . renderDebug ( ) ) , this . game . renderType === b . WEBGL && PIXI . updateWebGLTexture ( this . baseTexture , this . game . renderer . gl ) , this . dirty = ! 1 , this . layer . dirty = ! 1 , ! 0 } } , b . TilemapLayer . prototype . renderDebug = function ( ) { this . _mc . tx = this . _mc . dx , this . _mc . ty = this . _mc . dy , this . context . strokeStyle = this . debugColor , this . context . fillStyle = this . debugFillColor ; for ( var a = this . _mc . startY , b = this . _mc . startY + this . _mc . maxY ; b > a ; a ++ ) { if ( this . _column = null , 0 > a && this . wrap ? this . _column = this . layer . data [ a + this . map . height ] : a >= this . map . height && this . wrap ? this . _column = this . layer . data [ a - this . map . height ] : this . layer . data [ a ] && ( this . _column = this . layer . data [ a ] ) , this . _column ) for ( var c = this . _mc . startX , d = this . _mc . startX + this . _mc . maxX ; d > c ; c ++ ) { var e = null ; 0 > c && this . wrap ? e = this . _column [ c + this . map . width ] : c >= this . map . width && this . wrap ? e = this . _column [ c - this . map . width ] : this . _column [ c ] && ( e = this . _column [ c ] ) , e && ( e . faceTop || e . faceBottom || e . faceLeft || e . faceRight ) && ( this . _mc . tx = Math . floor ( this . _mc . tx ) , this . debugFill && this . context . fillRect ( this . _mc . tx , this . _mc . ty , this . _mc . cw , this . _mc . ch ) , this . context . beginPath ( ) , e . faceTop && ( this . context . moveTo ( this . _mc . tx , this . _mc . ty ) , this . context . lineTo ( this . _mc . tx + this . _mc . cw , this . _mc . ty ) ) , e . faceBottom && ( this . context . moveTo ( this . _mc . tx , this . _mc . ty + this . _mc . ch ) , this . context . lineTo ( this . _mc . tx + this . _mc . cw , this . _mc . ty + this . _mc . ch ) ) , e . faceLeft && ( this . context . moveTo ( this . _mc . tx , this . _mc . ty ) , this . context . lineTo ( this . _mc . tx , this . _mc . ty + this . _mc . ch ) ) , e . faceRight && ( this . context . moveTo ( this . _mc . tx + this . _mc . cw , this . _mc . ty ) , this . context . lineTo ( this . _mc . tx + this . _mc . cw , this . _mc . ty + this . _mc . ch ) ) , this . context . stroke ( ) ) , this . _mc . tx += this . map . tileWidth } this . _mc . tx = this . _mc . dx , this . _mc . ty += this . map . tileHeight } } , Object . defineProperty ( b . TilemapLayer . prototype , "scrollX" , { get : function ( ) { return this . _mc . x } , set : function ( a ) { a !== this . _mc . x && ( this . _mc . x = a , this . _mc . startX = this . game . math . floor ( this . _mc . x / this . map . tileWidth ) , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . TilemapLayer . prototype , "scrollY" , { get : function ( ) { return this . _mc . y } , set : function ( a ) { a !== this . _mc . y && ( this . _mc . y = a , this . _mc . startY = this