2014-11-08 19:26:34 +00:00
/* Phaser (NJ) v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */
2014-11-12 22:49:36 +00:00
( function ( ) { var a = this , b = b || { } ; b . WEBGL _RENDERER = 0 , b . CANVAS _RENDERER = 1 , b . VERSION = "v2.1.0" , b . blendModes = { NORMAL : 0 , ADD : 1 , MULTIPLY : 2 , SCREEN : 3 , OVERLAY : 4 , DARKEN : 5 , LIGHTEN : 6 , COLOR _DODGE : 7 , COLOR _BURN : 8 , HARD _LIGHT : 9 , SOFT _LIGHT : 10 , DIFFERENCE : 11 , EXCLUSION : 12 , HUE : 13 , SATURATION : 14 , COLOR : 15 , LUMINOSITY : 16 } , b . scaleModes = { DEFAULT : 0 , LINEAR : 0 , NEAREST : 1 } , b . _UID = 0 , "undefined" != typeof Float32Array ? ( b . Float32Array = Float32Array , b . Uint16Array = Uint16Array ) : ( b . Float32Array = Array , b . Uint16Array = Array ) , b . INTERACTION _FREQUENCY = 30 , b . AUTO _PREVENT _DEFAULT = ! 0 , b . PI _2 = 2 * Math . PI , b . RAD _TO _DEG = 180 / Math . PI , b . DEG _TO _RAD = Math . PI / 180 , b . RETINA _PREFIX = "@2x" , b . dontSayHello = ! 1 , b . defaultRenderOptions = { view : null , transparent : ! 1 , antialias : ! 1 , preserveDrawingBuffer : ! 1 , resolution : 1 , clearBeforeRender : ! 0 , autoResize : ! 1 } , b . sayHello = function ( a ) { if ( ! b . dontSayHello ) { if ( navigator . userAgent . toLowerCase ( ) . indexOf ( "chrome" ) > - 1 ) { var c = [ "%c %c %c Pixi.js " + b . VERSION + " - " + a + " %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ " , "background: #ff66a5" , "background: #ff66a5" , "color: #ff66a5; background: #030307;" , "background: #ff66a5" , "background: #ffc3dc" , "background: #ff66a5" , "color: #ff2424; background: #fff" , "color: #ff2424; background: #fff" , "color: #ff2424; background: #fff" ] ; console . log . apply ( console , c ) } else window . console && console . log ( "Pixi.js " + b . VERSION + " - http://www.pixijs.com/" ) ; b . dontSayHello = ! 0 } } , b . Polygon = function ( a ) { if ( a instanceof Array || ( a = Array . prototype . slice . call ( arguments ) ) , a [ 0 ] instanceof b . Point ) { for ( var c = [ ] , d = 0 , e = a . length ; e > d ; d ++ ) c . push ( a [ d ] . x , a [ d ] . y ) ; a = c } this . closed = ! 0 , this . points = a } , b . Polygon . prototype . clone = function ( ) { var a = this . points . slice ( ) ; return new b . Polygon ( a ) } , b . Polygon . prototype . contains = function ( a , b ) { for ( var c = ! 1 , d = this . points . length / 2 , e = 0 , f = d - 1 ; d > e ; f = e ++ ) { var g = this . points [ 2 * e ] , h = this . points [ 2 * e + 1 ] , i = this . points [ 2 * f ] , j = this . points [ 2 * f + 1 ] , k = h > b != j > b && ( i - g ) * ( b - h ) / ( j - h ) + g > a ; k && ( c = ! c ) } return c } , b . Polygon . prototype . constructor = b . Polygon , b . Matrix = function ( ) { this . a = 1 , this . b = 0 , this . c = 0 , this . d = 1 , this . tx = 0 , this . ty = 0 } , b . Matrix . prototype . fromArray = function ( a ) { this . a = a [ 0 ] , this . b = a [ 1 ] , this . c = a [ 3 ] , this . d = a [ 4 ] , this . tx = a [ 2 ] , this . ty = a [ 5 ] } , b . Matrix . prototype . toArray = function ( a ) { this . array || ( this . array = new b . Float32Array ( 9 ) ) ; var c = this . array ; return a ? ( c [ 0 ] = this . a , c [ 1 ] = this . b , c [ 2 ] = 0 , c [ 3 ] = this . c , c [ 4 ] = this . d , c [ 5 ] = 0 , c [ 6 ] = this . tx , c [ 7 ] = this . ty , c [ 8 ] = 1 ) : ( c [ 0 ] = this . a , c [ 1 ] = this . c , c [ 2 ] = this . tx , c [ 3 ] = this . b , c [ 4 ] = this . d , c [ 5 ] = this . ty , c [ 6 ] = 0 , c [ 7 ] = 0 , c [ 8 ] = 1 ) , c } , b . Matrix . prototype . apply = function ( a , c ) { return c = c || new b . Point , c . x = this . a * a . x + this . c * a . y + this . tx , c . y = this . b * a . x + this . d * a . y + this . ty , c } , b . Matrix . prototype . applyInverse = function ( a , c ) { c = c || new b . Point ; var d = 1 / ( this . a * this . d + this . c * - this . b ) ; return c . x = this . d * d * a . x + - this . c * d * a . y + ( this . ty * this . c - this . tx * this . d ) * d , c . y = this . a * d * a . y + - this . b * d * a . x + ( - this . ty * this . a + this . tx * this . b ) * d , c } , b . Matrix . prototype . translate = function ( a , b ) { return this . tx += a , this . ty += b , this } , b . Matrix . prototype . scale = function ( a , b ) { return this . a *= a , this . d *= b , this . c *= a , this . b *= b , this . tx *= a , this . ty *= b , this } , b . Matrix . prototype . rotate = function ( a ) { var b = Math . cos ( a ) , c = Math . sin ( a ) , d = this . a , e = this . c , f = this . tx ; return this . a = d * b - this . b * c , this . b = d * c + this . b * b , this . c = e * b - this . d * c , this . d = e * c + this . d * b , this . tx = f * b - this . ty * c , this . ty = f * c + this . ty * b , this } , b . Matrix . prototype . append = function ( a ) { var b = this . a , c = this . b , d = this . c , e = this . d ; return this . a = a . a * b + a . b * d , this . b = a . a * c + a . b * e , this . c = a . c * b + a . d * d , this . d = a . c * c + a . d * e , this . tx = a . tx * b + a . ty * d + this . tx , this . ty = a . tx * c + a . ty * e + this . ty , this } , b . Matrix . prototype . identity = function ( ) { return this . a = 1 , this . b = 0 , this . c = 0 , this . d = 1 , this . tx = 0 , this . ty = 0 , this } , b . identityMatrix = new b . Matrix , b . Rectangle = function ( a , b , c , d ) { this . x = a || 0 , this . y = b || 0 , this . width = c || 0 , this . height = d || 0 } , b . Rectangle . prototype . clone = function ( ) { return new b . Rectangle ( this . x , this . y , this . width , this . height ) } , b . Rectangle . prototype . contains = function ( a , b ) { if ( this . width <= 0 || this . height <= 0 ) return ! 1 ; var c = this . x ; if ( a >= c && a <= c + this . width ) { var d = this . y ; if ( b >= d && b <= d + this . height ) return ! 0 } return ! 1 } , b . Rectangle . prototype . constructor = b . Rectangle , b . EmptyRectangle = new b . Rectangle ( 0 , 0 , 0 , 0 ) , b . RoundedRectangle = function
var d = this ; return c . _originalHandler = b , this . on ( a , c ) } , a . off = a . removeEventListener = function ( a , b ) { if ( this . _listeners = this . _listeners || { } , ! this . _listeners [ a ] ) return this ; for ( var c = this . _listeners [ a ] , d = b ? c . length : 0 ; d -- > 0 ; ) ( c [ d ] === b || c [ d ] . _originalHandler === b ) && c . splice ( d , 1 ) ; return 0 === c . length && delete this . _listeners [ a ] , this } , a . removeAllListeners = function ( a ) { return this . _listeners = this . _listeners || { } , this . _listeners [ a ] ? ( delete this . _listeners [ a ] , this ) : this } } } , b . Event = function ( a , b , c ) { this . _ _isEventObject = ! 0 , this . stopped = ! 1 , this . stoppedImmediate = ! 1 , this . target = a , this . type = b , this . data = c , this . content = c , this . timeStamp = Date . now ( ) } , b . Event . prototype . stopPropagation = function ( ) { this . stopped = ! 0 } , b . Event . prototype . stopImmediatePropagation = function ( ) { this . stoppedImmediate = ! 0 } , b . PolyK = { } , b . PolyK . Triangulate = function ( a ) { var c = ! 0 , d = a . length >> 1 ; if ( 3 > d ) return [ ] ; for ( var e = [ ] , f = [ ] , g = 0 ; d > g ; g ++ ) f . push ( g ) ; g = 0 ; for ( var h = d ; h > 3 ; ) { var i = f [ ( g + 0 ) % h ] , j = f [ ( g + 1 ) % h ] , k = f [ ( g + 2 ) % h ] , l = a [ 2 * i ] , m = a [ 2 * i + 1 ] , n = a [ 2 * j ] , o = a [ 2 * j + 1 ] , p = a [ 2 * k ] , q = a [ 2 * k + 1 ] , r = ! 1 ; if ( b . PolyK . _convex ( l , m , n , o , p , q , c ) ) { r = ! 0 ; for ( var s = 0 ; h > s ; s ++ ) { var t = f [ s ] ; if ( t !== i && t !== j && t !== k && b . PolyK . _PointInTriangle ( a [ 2 * t ] , a [ 2 * t + 1 ] , l , m , n , o , p , q ) ) { r = ! 1 ; break } } } if ( r ) e . push ( i , j , k ) , f . splice ( ( g + 1 ) % h , 1 ) , h -- , g = 0 ; else if ( g ++ > 3 * h ) { if ( ! c ) return null ; for ( e = [ ] , f = [ ] , g = 0 ; d > g ; g ++ ) f . push ( g ) ; g = 0 , h = d , c = ! 1 } } return e . push ( f [ 0 ] , f [ 1 ] , f [ 2 ] ) , e } , b . PolyK . _PointInTriangle = function ( a , b , c , d , e , f , g , h ) { var i = g - c , j = h - d , k = e - c , l = f - d , m = a - c , n = b - d , o = i * i + j * j , p = i * k + j * l , q = i * m + j * n , r = k * k + l * l , s = k * m + l * n , t = 1 / ( o * r - p * p ) , u = ( r * q - p * s ) * t , v = ( o * s - p * q ) * t ; return u >= 0 && v >= 0 && 1 > u + v } , b . PolyK . _convex = function ( a , b , c , d , e , f , g ) { return ( b - d ) * ( e - c ) + ( c - a ) * ( f - d ) >= 0 === g } , b . initDefaultShaders = function ( ) { } , b . CompileVertexShader = function ( a , c ) { return b . _CompileShader ( a , c , a . VERTEX _SHADER ) } , b . CompileFragmentShader = function ( a , c ) { return b . _CompileShader ( a , c , a . FRAGMENT _SHADER ) } , b . _CompileShader = function ( a , b , c ) { var d = b . join ( "\n" ) , e = a . createShader ( c ) ; return a . shaderSource ( e , d ) , a . compileShader ( e ) , a . getShaderParameter ( e , a . COMPILE _STATUS ) ? e : ( window . console . log ( a . getShaderInfoLog ( e ) ) , null ) } , b . compileProgram = function ( a , c , d ) { var e = b . CompileFragmentShader ( a , d ) , f = b . CompileVertexShader ( a , c ) , g = a . createProgram ( ) ; return a . attachShader ( g , f ) , a . attachShader ( g , e ) , a . linkProgram ( g ) , a . getProgramParameter ( g , a . LINK _STATUS ) || window . console . log ( "Could not initialise shaders" ) , g } , b . PixiShader = function ( a ) { this . _UID = b . _UID ++ , this . gl = a , this . program = null , this . fragmentSrc = [ "precision lowp float;" , "varying vec2 vTextureCoord;" , "varying vec4 vColor;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;" , "}" ] , this . textureCount = 0 , this . firstRun = ! 0 , this . dirty = ! 0 , this . attributes = [ ] , this . init ( ) } , b . PixiShader . prototype . constructor = b . PixiShader , b . PixiShader . prototype . init = function ( ) { var a = this . gl , c = b . compileProgram ( a , this . vertexSrc || b . PixiShader . defaultVertexSrc , this . fragmentSrc ) ; a . useProgram ( c ) , this . uSampler = a . getUniformLocation ( c , "uSampler" ) , this . projectionVector = a . getUniformLocation ( c , "projectionVector" ) , this . offsetVector = a . getUniformLocation ( c , "offsetVector" ) , this . dimensions = a . getUniformLocation ( c , "dimensions" ) , this . aVertexPosition = a . getAttribLocation ( c , "aVertexPosition" ) , this . aTextureCoord = a . getAttribLocation ( c , "aTextureCoord" ) , this . colorAttribute = a . getAttribLocation ( c , "aColor" ) , - 1 === this . colorAttribute && ( this . colorAttribute = 2 ) , this . attributes = [ this . aVertexPosition , this . aTextureCoord , this . colorAttribute ] ; for ( var d in this . uniforms ) this . uniforms [ d ] . uniformLocation = a . getUniformLocation ( c , d ) ; this . initUniforms ( ) , this . program = c } , b . PixiShader . prototype . initUniforms = function ( ) { this . textureCount = 1 ; var a , b = this . gl ; for ( var c in this . uniforms ) { a = this . uniforms [ c ] ; var d = a . type ; "sampler2D" === d ? ( a . _init = ! 1 , null !== a . value && this . initSampler2D ( a ) ) : "mat2" === d || "mat3" === d || "mat4" === d ? ( a . glMatrix = ! 0 , a . glValueLength = 1 , "mat2" === d ? a . glFunc = b . uniformMatrix2fv : "mat3" === d ? a . glFunc = b . uniformMatrix3fv : "mat4" === d && ( a . glFunc = b . uniformMatrix4fv ) ) : ( a . glFunc = b [ "uniform" + d ] , a . glValueLength = "2f" === d || "2i" === d ? 2 : "3f" === d || "3i" === d ? 3 : "4f" === d || "4i" === d ? 4 : 1 ) } } , b . PixiShader . prototype . initSampler2D = funct
} } , b . WebGLStencilManager . prototype . destroy = function ( ) { this . stencilStack = null , this . gl = null } , b . WebGLShaderManager = function ( ) { this . maxAttibs = 10 , this . attribState = [ ] , this . tempAttribState = [ ] ; for ( var a = 0 ; a < this . maxAttibs ; a ++ ) this . attribState [ a ] = ! 1 ; this . stack = [ ] } , b . WebGLShaderManager . prototype . constructor = b . WebGLShaderManager , b . WebGLShaderManager . prototype . setContext = function ( a ) { this . gl = a , this . primitiveShader = new b . PrimitiveShader ( a ) , this . complexPrimitiveShader = new b . ComplexPrimitiveShader ( a ) , this . defaultShader = new b . PixiShader ( a ) , this . fastShader = new b . PixiFastShader ( a ) , this . stripShader = new b . StripShader ( a ) , this . setShader ( this . defaultShader ) } , b . WebGLShaderManager . prototype . setAttribs = function ( a ) { var b ; for ( b = 0 ; b < this . tempAttribState . length ; b ++ ) this . tempAttribState [ b ] = ! 1 ; for ( b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] ; this . tempAttribState [ c ] = ! 0 } var d = this . gl ; for ( b = 0 ; b < this . attribState . length ; b ++ ) this . attribState [ b ] !== this . tempAttribState [ b ] && ( this . attribState [ b ] = this . tempAttribState [ b ] , this . tempAttribState [ b ] ? d . enableVertexAttribArray ( b ) : d . disableVertexAttribArray ( b ) ) } , b . WebGLShaderManager . prototype . setShader = function ( a ) { return this . _currentId === a . _UID ? ! 1 : ( this . _currentId = a . _UID , this . currentShader = a , this . gl . useProgram ( a . program ) , this . setAttribs ( a . attributes ) , ! 0 ) } , b . WebGLShaderManager . prototype . destroy = function ( ) { this . attribState = null , this . tempAttribState = null , this . primitiveShader . destroy ( ) , this . complexPrimitiveShader . destroy ( ) , this . defaultShader . destroy ( ) , this . fastShader . destroy ( ) , this . stripShader . destroy ( ) , this . gl = null } , b . WebGLSpriteBatch = function ( ) { this . vertSize = 6 , this . size = 2e3 ; var a = 4 * this . size * this . vertSize , c = 6 * this . size ; this . vertices = new b . Float32Array ( a ) , this . indices = new b . Uint16Array ( c ) , this . lastIndexCount = 0 ; for ( var d = 0 , e = 0 ; c > d ; d += 6 , e += 4 ) this . indices [ d + 0 ] = e + 0 , this . indices [ d + 1 ] = e + 1 , this . indices [ d + 2 ] = e + 2 , this . indices [ d + 3 ] = e + 0 , this . indices [ d + 4 ] = e + 2 , this . indices [ d + 5 ] = e + 3 ; this . drawing = ! 1 , this . currentBatchSize = 0 , this . currentBaseTexture = null , this . dirty = ! 0 , this . textures = [ ] , this . blendModes = [ ] , this . shaders = [ ] , this . sprites = [ ] , this . defaultShader = new b . AbstractFilter ( [ "precision lowp float;" , "varying vec2 vTextureCoord;" , "varying vec4 vColor;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;" , "}" ] ) } , b . WebGLSpriteBatch . prototype . setContext = function ( a ) { this . gl = a , this . vertexBuffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , this . indices , a . STATIC _DRAW ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . vertices , a . DYNAMIC _DRAW ) , this . currentBlendMode = 99999 ; var c = new b . PixiShader ( a ) ; c . fragmentSrc = this . defaultShader . fragmentSrc , c . uniforms = { } , c . init ( ) , this . defaultShader . shaders [ a . id ] = c } , b . WebGLSpriteBatch . prototype . begin = function ( a ) { this . renderSession = a , this . shader = this . renderSession . shaderManager . defaultShader , this . start ( ) } , b . WebGLSpriteBatch . prototype . end = function ( ) { this . flush ( ) } , b . WebGLSpriteBatch . prototype . render = function ( a ) { var b = a . texture ; this . currentBatchSize >= this . size && ( this . flush ( ) , this . currentBaseTexture = b . baseTexture ) ; var c = b . _uvs ; if ( c ) { var d , e , f , g , h = a . worldAlpha , i = a . tint , j = this . vertices , k = a . anchor . x , l = a . anchor . y ; if ( b . trim ) { var m = b . trim ; e = m . x - k * m . width , d = e + b . crop . width , g = m . y - l * m . height , f = g + b . crop . height } else d = b . frame . width * ( 1 - k ) , e = b . frame . width * - k , f = b . frame . height * ( 1 - l ) , g = b . frame . height * - l ; var n = 4 * this . currentBatchSize * this . vertSize , o = b . baseTexture . resolution , p = a . worldTransform , q = p . a / o , r = p . b / o , s = p . c / o , t = p . d / o , u = p . tx , v = p . ty ; j [ n ++ ] = q * e + s * g + u , j [ n ++ ] = t * g + r * e + v , j [ n ++ ] = c . x0 , j [ n ++ ] = c . y0 , j [ n ++ ] = h , j [ n ++ ] = i , j [ n ++ ] = q * d + s * g + u , j [ n ++ ] = t * g + r * d + v , j [ n ++ ] = c . x1 , j [ n ++ ] = c . y1 , j [ n ++ ] = h , j [ n ++ ] = i , j [ n ++ ] = q * d + s * f + u , j [ n ++ ] = t * f + r * d + v , j [ n ++ ] = c . x2 , j [ n ++ ] = c . y2 , j [ n ++ ] = h , j [ n ++ ] = i , j [ n ++ ] = q * e + s * f + u , j [ n ++ ] = t * f + r * e + v , j [ n ++ ] = c . x3 , j [ n ++ ] = c . y3 , j [ n ++ ] = h , j [ n ++ ] = i , this . sprites [ this . currentBatchSize ++ ] = a } } , b . WebGLSpriteBatch . prototype . renderTilingSprite = function ( a ) { var c = a . tilingTexture ; this . currentBatchSize >= this . size && ( this . flush ( ) , this . currentBaseTexture = c . baseTexture ) , a . _uvs || ( a . _uvs = new b . Textur
} , b . Strip . prototype . _renderCanvas = function ( a ) { var b = a . context , c = this . worldTransform ; a . roundPixels ? b . setTransform ( c . a , c . b , c . c , c . d , 0 | c . tx , 0 | c . ty ) : b . setTransform ( c . a , c . b , c . c , c . d , c . tx , c . ty ) ; var d = this , e = d . verticies , f = d . uvs , g = e . length / 2 ; this . count ++ ; for ( var h = 0 ; g - 2 > h ; h ++ ) { var i = 2 * h , j = e [ i ] , k = e [ i + 2 ] , l = e [ i + 4 ] , m = e [ i + 1 ] , n = e [ i + 3 ] , o = e [ i + 5 ] ; if ( this . padding > 0 ) { var p = ( j + k + l ) / 3 , q = ( m + n + o ) / 3 , r = j - p , s = m - q , t = Math . sqrt ( r * r + s * s ) ; j = p + r / t * ( t + 3 ) , m = q + s / t * ( t + 3 ) , r = k - p , s = n - q , t = Math . sqrt ( r * r + s * s ) , k = p + r / t * ( t + 3 ) , n = q + s / t * ( t + 3 ) , r = l - p , s = o - q , t = Math . sqrt ( r * r + s * s ) , l = p + r / t * ( t + 3 ) , o = q + s / t * ( t + 3 ) } var u = f [ i ] * d . texture . width , v = f [ i + 2 ] * d . texture . width , w = f [ i + 4 ] * d . texture . width , x = f [ i + 1 ] * d . texture . height , y = f [ i + 3 ] * d . texture . height , z = f [ i + 5 ] * d . texture . height ; b . save ( ) , b . beginPath ( ) , b . moveTo ( j , m ) , b . lineTo ( k , n ) , b . lineTo ( l , o ) , b . closePath ( ) , b . clip ( ) ; var A = u * y + x * w + v * z - y * w - x * v - u * z , B = j * y + x * l + k * z - y * l - x * k - j * z , C = u * k + j * w + v * l - k * w - j * v - u * l , D = u * y * l + x * k * w + j * v * z - j * y * w - x * v * l - u * k * z , E = m * y + x * o + n * z - y * o - x * n - m * z , F = u * n + m * w + v * o - n * w - m * v - u * o , G = u * y * o + x * n * w + m * v * z - m * y * w - x * v * o - u * n * z ; b . transform ( B / A , E / A , C / A , F / A , D / A , G / A ) , b . drawImage ( d . texture . baseTexture . source , 0 , 0 ) , b . restore ( ) } } , b . Strip . prototype . renderStripFlat = function ( a ) { var b = this . context , c = a . verticies , d = c . length / 2 ; this . count ++ , b . beginPath ( ) ; for ( var e = 1 ; d - 2 > e ; 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 ( ) } , b . Strip . prototype . onTextureUpdate = function ( ) { this . updateFrame = ! 0 } , b . Rope = function ( a , c ) { b . Strip . call ( this , a ) , this . points = c , this . verticies = new b . Float32Array ( 4 * c . length ) , this . uvs = new b . Float32Array ( 4 * c . length ) , this . colors = new b . Float32Array ( 2 * c . length ) , this . indices = new b . Uint16Array ( 2 * c . length ) , this . refresh ( ) } , b . Rope . prototype = Object . create ( b . Strip . prototype ) , b . Rope . prototype . constructor = b . Rope , b . Rope . prototype . refresh = function ( ) { var a = this . points ; if ( ! ( a . length < 1 ) ) { var b = this . uvs , c = a [ 0 ] , d = this . indices , e = this . colors ; this . count -= . 2 , b [ 0 ] = 0 , b [ 1 ] = 0 , b [ 2 ] = 0 , b [ 3 ] = 1 , e [ 0 ] = 1 , e [ 1 ] = 1 , d [ 0 ] = 0 , d [ 1 ] = 1 ; for ( var f , g , h , i = a . length , j = 1 ; i > j ; j ++ ) f = a [ j ] , g = 4 * j , h = j / ( i - 1 ) , j % 2 ? ( b [ g ] = h , b [ g + 1 ] = 0 , b [ g + 2 ] = h , b [ g + 3 ] = 1 ) : ( b [ g ] = h , b [ g + 1 ] = 0 , b [ g + 2 ] = h , b [ g + 3 ] = 1 ) , g = 2 * j , e [ g ] = 1 , e [ g + 1 ] = 1 , g = 2 * j , d [ g ] = g , d [ g + 1 ] = g + 1 , c = f } } , b . Rope . prototype . updateTransform = function ( ) { var a = this . points ; if ( ! ( a . length < 1 ) ) { var c , d = a [ 0 ] , e = { x : 0 , y : 0 } ; this . count -= . 2 ; for ( var f , g , h , i , j , k = this . verticies , l = a . length , m = 0 ; l > m ; m ++ ) f = a [ m ] , g = 4 * m , c = m < a . length - 1 ? a [ m + 1 ] : f , e . y = - ( c . x - d . x ) , e . x = c . y - d . y , h = 10 * ( 1 - m / ( l - 1 ) ) , h > 1 && ( h = 1 ) , i = Math . sqrt ( e . x * e . x + e . y * e . y ) , j = this . texture . height / 2 , e . x /= i , e . y /= i , e . x *= j , e . y *= j , k [ g ] = f . x + e . x , k [ g + 1 ] = f . y + e . y , k [ g + 2 ] = f . x - e . x , k [ g + 3 ] = f . y - e . y , d = f ; b . DisplayObjectContainer . prototype . updateTransform . call ( this ) } } , b . Rope . prototype . setTexture = function ( a ) { this . texture = a } , b . TilingSprite = function ( a , c , d ) { b . Sprite . call ( this , a ) , this . _width = c || 100 , this . _height = d || 100 , this . tileScale = new b . Point ( 1 , 1 ) , this . tileScaleOffset = new b . Point ( 1 , 1 ) , this . tilePosition = new b . Point ( 0 , 0 ) , this . renderable = ! 0 , this . tint = 16777215 , this . blendMode = b . blendModes . NORMAL } , b . TilingSprite . prototype = Object . create ( b . Sprite . prototype ) , b . TilingSprite . prototype . constructor = b . TilingSprite , Object . defineProperty ( b . TilingSprite . prototype , "width" , { get : function ( ) { return this . _width } , set : function ( a ) { this . _width = a } } ) , Object . defineProperty ( b . TilingSprite . prototype , "height" , { get : function ( ) { return this . _height } , set : function ( a ) { this . _height = a } } ) , b . TilingSprite . prototype . setTexture = function ( a ) { this . texture !== a && ( this . texture = a , this . refreshTexture = ! 0 , this . cachedTint = 16777215 ) } , b . TilingSprite . prototype . _renderWebGL = function ( a ) { if ( this . visible !== ! 1 && 0 !== this . alpha ) { var c , d ; for ( this . _mask && ( a . spriteBatch . stop ( ) , a . maskManager . pushMask ( this . mask , a ) , a . spriteBatch . start ( ) ) , this . _filters && ( a . spriteBatch . flush ( ) , a . filterManager . pushFilter ( this . _filterBlock ) ) , ! this . tilingTexture || this . refreshTexture ? ( this . generateTilingTexture ( ! 0 ) , this . tilingTexture && this . tilingTexture . needsUpdate && ( b . updateWebGLTexture ( this . tilingTexture . baseTexture , a . gl ) , this . tilingTexture . needsUpdate = ! 1 ) ) : a . spriteBatch . renderTilingSprite ( this ) , c = 0 , d = this . children . length ; d > c ; c ++ ) this . children [ c ] . _renderWebGL ( a ) ; a . spriteBatc
} , c . Rectangle . intersects = function ( a , b ) { return a . width <= 0 || a . height <= 0 || b . width <= 0 || b . height <= 0 ? ! 1 : ! ( a . right < b . x || a . bottom < b . y || a . x > b . right || a . y > b . bottom ) } , c . Rectangle . intersectsRaw = function ( a , b , c , d , e , f ) { return "undefined" == typeof f && ( f = 0 ) , ! ( b > a . right + f || c < a . left - f || d > a . bottom + f || e < a . top - f ) } , c . Rectangle . union = function ( a , b , d ) { return "undefined" == typeof d && ( d = new c . Rectangle ) , d . setTo ( Math . min ( a . x , b . x ) , Math . min ( a . y , b . y ) , Math . max ( a . right , b . right ) - Math . min ( a . left , b . left ) , Math . max ( a . bottom , b . bottom ) - Math . min ( a . top , b . top ) ) } , c . Rectangle . aabb = function ( a , b ) { "undefined" == typeof b && ( b = new c . Rectangle ) ; var d = Number . MIN _VALUE , e = Number . MAX _VALUE , f = Number . MIN _VALUE , g = Number . MAX _VALUE ; return a . forEach ( function ( a ) { a . x > d && ( d = a . x ) , a . x < e && ( e = a . x ) , a . y > f && ( f = a . y ) , a . y < g && ( g = a . y ) } ) , b . setTo ( e , g , d - e , f - g ) , b } , PIXI . Rectangle = c . Rectangle , PIXI . EmptyRectangle = new c . Rectangle ( 0 , 0 , 0 , 0 ) , c . Line = function ( a , b , d , e ) { a = a || 0 , b = b || 0 , d = d || 0 , e = e || 0 , this . start = new c . Point ( a , b ) , this . end = new c . Point ( d , e ) } , c . Line . prototype = { setTo : function ( a , b , c , d ) { return this . start . setTo ( a , b ) , this . end . setTo ( c , d ) , this } , fromSprite : function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 1 ) , c ? this . setTo ( a . center . x , a . center . y , b . center . x , b . center . y ) : this . setTo ( a . x , a . y , b . x , b . y ) } , intersects : function ( a , b , d ) { return c . Line . intersectsPoints ( this . start , this . end , a . start , a . end , b , d ) } , pointOnLine : function ( a , b ) { return ( a - this . start . x ) * ( this . end . y - this . start . y ) === ( this . end . x - this . start . x ) * ( b - this . start . y ) } , pointOnSegment : function ( a , b ) { var c = Math . min ( this . start . x , this . end . x ) , d = Math . max ( this . start . x , this . end . x ) , e = Math . min ( this . start . y , this . end . y ) , f = Math . max ( this . start . y , this . end . y ) ; return this . pointOnLine ( a , b ) && a >= c && d >= a && b >= e && f >= b } , coordinatesOnLine : function ( a , b ) { "undefined" == typeof a && ( a = 1 ) , "undefined" == typeof b && ( b = [ ] ) ; var c = Math . round ( this . start . x ) , d = Math . round ( this . start . y ) , e = Math . round ( this . end . x ) , f = Math . round ( this . end . y ) , g = Math . abs ( e - c ) , h = Math . abs ( f - d ) , i = e > c ? 1 : - 1 , j = f > d ? 1 : - 1 , k = g - h ; b . push ( [ c , d ] ) ; for ( var l = 1 ; c != e || d != f ; ) { var m = k << 1 ; m > - h && ( k -= h , c += i ) , g > m && ( k += g , d += j ) , l % a === 0 && b . push ( [ c , d ] ) , l ++ } return b } , clone : function ( a ) { return "undefined" == typeof a || null === a ? a = new c . Line ( this . start . x , this . start . y , this . end . x , this . end . y ) : a . setTo ( this . start . x , this . start . y , this . end . x , this . end . y ) , a } } , Object . defineProperty ( c . Line . prototype , "length" , { get : function ( ) { return Math . sqrt ( ( this . end . x - this . start . x ) * ( this . end . x - this . start . x ) + ( this . end . y - this . start . y ) * ( this . end . y - this . start . y ) ) } } ) , Object . defineProperty ( c . Line . prototype , "angle" , { get : function ( ) { return Math . atan2 ( this . end . y - this . start . y , this . end . x - this . start . x ) } } ) , Object . defineProperty ( c . Line . prototype , "slope" , { get : function ( ) { return ( this . end . y - this . start . y ) / ( this . end . x - this . start . x ) } } ) , Object . defineProperty ( c . Line . prototype , "perpSlope" , { get : function ( ) { return - ( ( this . end . x - this . start . x ) / ( this . end . y - this . start . y ) ) } } ) , Object . defineProperty ( c . Line . prototype , "x" , { get : function ( ) { return Math . min ( this . start . x , this . end . x ) } } ) , Object . defineProperty ( c . Line . prototype , "y" , { get : function ( ) { return Math . min ( this . start . y , this . end . y ) } } ) , Object . defineProperty ( c . Line . prototype , "left" , { get : function ( ) { return Math . min ( this . start . x , this . end . x ) } } ) , Object . defineProperty ( c . Line . prototype , "right" , { get : function ( ) { return Math . max ( this . start . x , this . end . x ) } } ) , Object . defineProperty ( c . Line . prototype , "top" , { get : function ( ) { return Math . min ( this . start . y , this . end . y ) } } ) , Object . defineProperty ( c . Line . prototype , "bottom" , { get : function ( ) { return Math . max ( this . start . y , this . end . y ) } } ) , Object . defineProperty ( c . Line . prototype , "width" , { get : function ( ) { return Math . abs ( this . start . x - this . end . x ) } } ) , Object . defineProperty ( c . Line . prototype , "height" , { get : function ( ) { return Math . abs ( this . start . y - this . end . y ) } } ) , c . Line . intersectsPoints = function ( a , b , d , e , f , g ) { "undefined" == typeof f && ( f = ! 0 ) , "undefined" == typeof g && ( g = new c . Point ) ; var h = b . y - a . y , i = e . y - d . y , j = a . x - b . x , k = d . x - e . x , l = b . x * a . y - a . x * b . y , m = e . x * d . y - d . x * e . y , n = h * k - i * j ; if ( 0 === n ) return null ; if ( g . x = ( j * m - k * l ) / n , g . y = ( i * l - h * m ) / n , f ) { var o = ( e . y - d . y ) * ( b . x - a . x ) - ( e . x - d . x ) * ( b . y - a . y ) , p = ( ( e . x - d . x ) * ( a . y - d . y ) - ( e . y - d . y ) * ( a . x - d . x ) ) / o , q = ( ( b . x - a . x ) * ( a . y - d . y ) - ( b . y - a . y ) * ( a . x - d . x ) ) / o ; return p >= 0 && 1 >= p && q >= 0 && 1 >= q ? g : null } return
} else f = new c . SignalBinding ( this , a , b , d , e ) , this . _addBinding ( f ) ; return this . memorize && this . _prevParams && f . execute ( this . _prevParams ) , f } , _addBinding : function ( a ) { var b = this . _bindings . length ; do b -- ; while ( this . _bindings [ b ] && a . _priority <= this . _bindings [ b ] . _priority ) ; this . _bindings . splice ( b + 1 , 0 , a ) } , _indexOfListener : function ( a , b ) { for ( var c , d = this . _bindings . length ; d -- ; ) if ( c = this . _bindings [ d ] , c . _listener === a && c . context === b ) return d ; return - 1 } , has : function ( a , b ) { return - 1 !== this . _indexOfListener ( a , b ) } , add : function ( a , b , c ) { return this . validateListener ( a , "add" ) , this . _registerListener ( a , ! 1 , b , c ) } , addOnce : function ( a , b , c ) { return this . validateListener ( a , "addOnce" ) , this . _registerListener ( a , ! 0 , b , c ) } , remove : function ( a , b ) { this . validateListener ( a , "remove" ) ; var c = this . _indexOfListener ( a , b ) ; return - 1 !== c && ( this . _bindings [ c ] . _destroy ( ) , this . _bindings . splice ( c , 1 ) ) , a } , removeAll : function ( a ) { "undefined" == typeof a && ( a = null ) ; for ( var b = this . _bindings . length ; b -- ; ) a ? this . _bindings [ b ] . context === a && ( this . _bindings [ b ] . _destroy ( ) , this . _bindings . splice ( b , 1 ) ) : this . _bindings [ b ] . _destroy ( ) ; a || ( this . _bindings . length = 0 ) } , getNumListeners : function ( ) { return this . _bindings . length } , halt : function ( ) { this . _shouldPropagate = ! 1 } , dispatch : function ( ) { if ( this . active ) { var a , b = Array . prototype . slice . call ( arguments ) , c = this . _bindings . length ; if ( this . memorize && ( this . _prevParams = b ) , c ) { a = this . _bindings . slice ( ) , this . _shouldPropagate = ! 0 ; do c -- ; while ( a [ c ] && this . _shouldPropagate && a [ c ] . execute ( b ) !== ! 1 ) } } } , forget : function ( ) { this . _prevParams = null } , dispose : function ( ) { this . removeAll ( ) , delete this . _bindings , delete this . _prevParams } , toString : function ( ) { return "[Phaser.Signal active:" + this . active + " numListeners:" + this . getNumListeners ( ) + "]" } } , c . Signal . prototype . constructor = c . Signal , c . SignalBinding = function ( a , b , c , d , e ) { this . _listener = b , this . _isOnce = c , this . context = d , this . _signal = a , this . _priority = e || 0 , this . callCount = 0 , this . active = ! 0 , this . params = null } , c . SignalBinding . prototype = { execute : function ( a ) { var b , c ; return this . active && this . _listener && ( c = this . params ? this . params . concat ( a ) : a , 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 ] ; 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 ( "undefined" != typeof 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 ( ) } , destroy : function ( ) { this . game = 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 . val
} , c . ScaleManager . EXACT _FIT = 0 , c . ScaleManager . NO _SCALE = 1 , c . ScaleManager . SHOW _ALL = 2 , c . ScaleManager . RESIZE = 3 , c . ScaleManager . USER _SCALE = 4 , c . ScaleManager . prototype = { boot : function ( ) { var a = this . compatibility ; a . supportsFullScreen = this . game . device . fullscreen && ! this . game . device . cocoonJS , this . game . device . iPad || this . game . device . webApp || this . game . device . desktop || ( a . scrollTo = this . game . device . android && ! this . game . device . chrome ? new c . Point ( 0 , 1 ) : new c . Point ( 0 , 0 ) ) , a . orientationFallback = this . game . device . desktop ? "screen" : "" ; var b = this ; this . _orientationChange = function ( a ) { return b . orientationChange ( a ) } , this . _windowResize = function ( a ) { return b . windowResize ( a ) } , window . addEventListener ( "orientationchange" , this . _orientationChange , ! 1 ) , window . addEventListener ( "resize" , this . _windowResize , ! 1 ) , this . compatibility . supportsFullScreen && ( this . _fullScreenChange = function ( a ) { return b . fullScreenChange ( a ) } , this . _fullScreenError = function ( a ) { return b . fullScreenError ( a ) } , document . addEventListener ( "webkitfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . addEventListener ( "mozfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . addEventListener ( "MSFullscreenChange" , this . _fullScreenChange , ! 1 ) , document . addEventListener ( "fullscreenchange" , this . _fullScreenChange , ! 1 ) , document . addEventListener ( "webkitfullscreenerror" , this . _fullScreenError , ! 1 ) , document . addEventListener ( "mozfullscreenerror" , this . _fullScreenError , ! 1 ) , document . addEventListener ( "MSFullscreenError" , this . _fullScreenError , ! 1 ) , document . addEventListener ( "fullscreenerror" , this . _fullScreenError , ! 1 ) ) , this . game . onResume . add ( this . _gameResumed , this ) , c . DOM . getOffset ( this . game . canvas , this . offset ) , this . bounds . setTo ( this . offset . x , this . offset . y , this . width , this . height ) , this . setGameSize ( this . game . width , this . game . height ) , this . screenOrientation = c . DOM . getScreenOrientation ( this . compatibility . orientationFallback ) } , parseConfig : function ( a ) { a . scaleMode && ( this . scaleMode = a . scaleMode ) , a . fullScreenScaleMode && ( this . fullScreenScaleMode = a . fullScreenScaleMode ) , a . fullScreenTarget && ( this . fullScreenTarget = a . fullScreenTarget ) } , setupScale : function ( a , b ) { var d , e = new c . Rectangle ; "" !== this . game . parent && ( "string" == typeof this . game . parent ? d = document . getElementById ( this . game . parent ) : this . game . parent && 1 === this . game . parent . nodeType && ( d = this . game . parent ) ) , d ? ( this . parentNode = d , this . parentIsWindow = ! 1 , this . getParentBounds ( this . _parentBounds ) , e . width = this . _parentBounds . width , e . height = this . _parentBounds . height , this . offset . set ( this . _parentBounds . x , this . _parentBounds . y ) ) : ( this . parentNode = null , this . parentIsWindow = ! 0 , e . width = window . innerWidth , e . height = window . innerHeight , this . offset . set ( 0 , 0 ) ) ; var f = 0 , g = 0 ; "number" == typeof a ? f = a : ( this . parentScaleFactor . x = parseInt ( a , 10 ) / 100 , f = e . width * this . parentScaleFactor . x ) , "number" == typeof b ? g = b : ( this . parentScaleFactor . y = parseInt ( b , 10 ) / 100 , g = e . height * this . parentScaleFactor . y ) , this . _gameSize . setTo ( 0 , 0 , f , g ) , this . grid = new c . FlexGrid ( this , f , g ) , this . updateDimensions ( f , g , ! 1 ) } , _gameResumed : function ( ) { this . queueUpdate ( ! 0 ) } , setGameSize : function ( a , b ) { this . _gameSize . setTo ( 0 , 0 , a , b ) , this . currentScaleMode !== c . ScaleManager . RESIZE && this . updateDimensions ( a , b , ! 0 ) , this . queueUpdate ( ! 0 ) } , setUserScale : function ( a , b ) { this . _userScaleFactor . setTo ( a , b ) , this . queueUpdate ( ! 0 ) } , setResizeCallback : function ( a , b ) { this . onResize = a , this . onResizeContext = b } , signalSizeChange : function ( ) { if ( ! c . Rectangle . sameDimensions ( this , this . _lastReportedCanvasSize ) || ! c . Rectangle . sameDimensions ( this . game , this . _lastReportedGameSize ) ) { var a = this . width , b = this . height ; this . _lastReportedCanvasSize . setTo ( 0 , 0 , a , b ) , this . _lastReportedGameSize . setTo ( 0 , 0 , this . game . width , this . game . height ) , this . grid . onResize ( a , b ) , this . onSizeChange . dispatch ( this , a , b ) , this . currentScaleMode === c . ScaleManager . RESIZE && ( this . game . state . resize ( a , b ) , this . game . load . resize ( a , b ) ) } } , setMinMax : function ( a , b , c , d ) { this . minWidth = a , this . minHeight = b , "undefined" != typeof c && ( this . maxWidth = c ) , "undefined" != typeof d && ( this . maxHeight = d ) } , preUpdate : function ( ) { if ( ! ( this . game . time . time < this . _lastUpdate + this . _updateThrottle ) ) { var a = this . _updateThrottle ; this . _updateThrottleReset = a >= 400 ? 0 : 100 , c . DOM . getOffset ( this . game . canvas , this . offset ) ; var b = this . _
if ( this . _localPoint . y >= h && this . _localPoint . y < h + f ) return ! 0 } } else if ( a instanceof c . TileSprite ) { var e = a . width , f = a . height , g = - e * a . anchor . x ; if ( this . _localPoint . x >= g && this . _localPoint . x < g + e ) { var h = - f * a . anchor . y ; if ( this . _localPoint . y >= h && this . _localPoint . y < h + f ) return ! 0 } } else if ( a instanceof c . Graphics ) for ( var i = 0 ; i < a . graphicsData . length ; i ++ ) { var j = a . graphicsData [ i ] ; if ( j . fill && j . shape && j . shape . contains ( this . _localPoint . x , this . _localPoint . y ) ) return ! 0 } for ( var i = 0 , k = a . children . length ; k > i ; i ++ ) if ( this . hitTest ( a . children [ i ] , b , d ) ) return ! 0 ; return ! 1 } , onClickTrampoline : function ( ) { this . activePointer . processClickTrampolines ( ) } } , c . Input . prototype . constructor = c . Input , Object . defineProperty ( c . Input . prototype , "x" , { get : function ( ) { return this . _x } , set : function ( a ) { this . _x = Math . floor ( a ) } } ) , Object . defineProperty ( c . Input . prototype , "y" , { get : function ( ) { return this . _y } , set : function ( a ) { this . _y = Math . floor ( a ) } } ) , Object . defineProperty ( c . Input . prototype , "pollLocked" , { get : function ( ) { return this . pollRate > 0 && this . _pollCounter < this . pollRate } } ) , Object . defineProperty ( c . Input . prototype , "totalInactivePointers" , { get : function ( ) { return this . pointers . length - this . countActivePointers ( ) } } ) , Object . defineProperty ( c . Input . prototype , "totalActivePointers" , { get : function ( ) { return this . countActivePointers ( ) } } ) , Object . defineProperty ( c . Input . prototype , "worldX" , { get : function ( ) { return this . game . camera . view . x + this . x } } ) , Object . defineProperty ( c . Input . prototype , "worldY" , { get : function ( ) { return this . game . camera . view . y + this . y } } ) , Object . defineProperty ( c . Input . prototype , "disabled" , { get : function ( ) { return ! this . enabled } , set : function ( a ) { this . enabled = ! a } } ) , c . Key = function ( a , b ) { this . game = a , this . _enabled = ! 0 , this . event = null , this . isDown = ! 1 , this . isUp = ! 0 , this . altKey = ! 1 , this . ctrlKey = ! 1 , this . shiftKey = ! 1 , this . timeDown = 0 , this . duration = 0 , this . timeUp = - 2500 , this . repeats = 0 , this . keyCode = b , this . onDown = new c . Signal , this . onHoldCallback = null , this . onHoldContext = null , this . onUp = new c . Signal } , c . Key . prototype = { update : function ( ) { this . _enabled && this . isDown && ( this . duration = this . game . time . time - this . timeDown , this . repeats ++ , this . onHoldCallback && this . onHoldCallback . call ( this . onHoldContext , this ) ) } , processKeyDown : function ( a ) { this . _enabled && ( this . event = a , this . isDown || ( this . altKey = a . altKey , this . ctrlKey = a . ctrlKey , this . shiftKey = a . shiftKey , this . isDown = ! 0 , this . isUp = ! 1 , this . timeDown = this . game . time . time , this . duration = 0 , this . repeats = 0 , this . onDown . dispatch ( this ) ) ) } , processKeyUp : function ( a ) { this . _enabled && ( this . event = a , this . isUp || ( this . isDown = ! 1 , this . isUp = ! 0 , this . timeUp = this . game . time . time , this . duration = this . game . time . time - this . timeDown , this . onUp . dispatch ( this ) ) ) } , reset : function ( a ) { "undefined" == typeof a && ( a = ! 0 ) , this . isDown = ! 1 , this . isUp = ! 0 , this . timeUp = this . game . time . time , this . duration = 0 , this . _enabled = ! 0 , a && ( this . onDown . removeAll ( ) , this . onUp . removeAll ( ) , this . onHoldCallback = null , this . onHoldContext = null ) } , justPressed : function ( a ) { return "undefined" == typeof a && ( a = 50 ) , this . isDown && this . duration < a } , justReleased : function ( a ) { return "undefined" == typeof a && ( a = 50 ) , ! this . isDown && this . game . time . time - this . timeUp < a } } , Object . defineProperty ( c . Key . prototype , "enabled" , { get : function ( ) { return this . _enabled } , set : function ( a ) { a = ! ! a , a !== this . _enabled && ( a || this . reset ( ! 1 ) , this . _enabled = a ) } } ) , c . Key . prototype . constructor = c . Key , c . Keyboard = function ( a ) { this . game = a , this . enabled = ! 0 , this . event = null , this . pressEvent = null , this . callbackContext = this , this . onDownCallback = null , this . onPressCallback = null , this . onUpCallback = null , this . _keys = [ ] , this . _capture = [ ] , this . _onKeyDown = null , this . _onKeyPress = null , this . _onKeyUp = null , this . _i = 0 , this . _k = 0 } , c . Keyboard . prototype = { addCallbacks : function ( a , b , c , d ) { this . callbackContext = a , "undefined" != typeof b && ( this . onDownCallback = b ) , "undefined" != typeof c && ( this . onUpCallback = c ) , "undefined" != typeof d && ( this . onPressCallback = d ) } , addKey : function ( a ) { return this . _keys [ a ] || ( this . _keys [ a ] = new c . Key ( this . game , a ) , this . addKeyCapture ( a ) ) , this . _keys [ a ] } , removeKey : function ( a ) { this . _keys [ a ] && ( this . _keys [ a ] = null , this . removeKeyCapture ( a ) ) } , createCursorKeys : function ( ) { return { up : this . addKey ( c . Keyboard . UP ) , down : this . addKey ( c . Keyboard . DOWN ) , left : this . addKey ( c . Keyboard . LEFT ) , right : this . a
for ( var i = 0 ; i < this . _rawPads . length && ! e . padIndices [ h ] ; i ++ ) { var j = this . _rawPads [ i ] ; if ( j ) { if ( e . rawIndices [ j . index ] ) { d . disconnect ( ) ; continue } d . connect ( j ) , e . rawIndices [ j . index ] = ! 0 , e . padIndices [ h ] = ! 0 } else d . disconnect ( ) } } } } } , setDeadZones : function ( a ) { for ( var b = 0 ; b < this . _gamepads . length ; b ++ ) this . _gamepads [ b ] . deadZone = a } , stop : function ( ) { this . _active = ! 1 , window . removeEventListener ( "gamepadconnected" , this . _onGamepadConnected ) , window . removeEventListener ( "gamepaddisconnected" , this . _onGamepadDisconnected ) } , reset : function ( ) { this . update ( ) ; for ( var a = 0 ; a < this . _gamepads . length ; a ++ ) this . _gamepads [ a ] . reset ( ) } , justPressed : function ( a , b ) { for ( var c = 0 ; c < this . _gamepads . length ; c ++ ) if ( this . _gamepads [ c ] . justPressed ( a , b ) === ! 0 ) return ! 0 ; return ! 1 } , justReleased : function ( a , b ) { for ( var c = 0 ; c < this . _gamepads . length ; c ++ ) if ( this . _gamepads [ c ] . justReleased ( a , b ) === ! 0 ) return ! 0 ; return ! 1 } , isDown : function ( a ) { for ( var b = 0 ; b < this . _gamepads . length ; b ++ ) if ( this . _gamepads [ b ] . isDown ( a ) === ! 0 ) return ! 0 ; return ! 1 } , destroy : function ( ) { this . stop ( ) ; for ( var a = 0 ; a < this . _gamepads . length ; a ++ ) this . _gamepads [ a ] . destroy ( ) } } , c . Gamepad . prototype . constructor = c . Gamepad , Object . defineProperty ( c . Gamepad . prototype , "disabled" , { get : function ( ) { return ! this . enabled } , set : function ( a ) { this . enabled = ! a } } ) , Object . defineProperty ( c . Gamepad . prototype , "active" , { get : function ( ) { return this . _active } } ) , Object . defineProperty ( c . Gamepad . prototype , "supported" , { get : function ( ) { return this . _gamepadSupportAvailable } } ) , Object . defineProperty ( c . Gamepad . prototype , "padsConnected" , { get : function ( ) { return this . _rawPads . length } } ) , Object . defineProperty ( c . Gamepad . prototype , "pad1" , { get : function ( ) { return this . _gamepads [ 0 ] } } ) , Object . defineProperty ( c . Gamepad . prototype , "pad2" , { get : function ( ) { return this . _gamepads [ 1 ] } } ) , Object . defineProperty ( c . Gamepad . prototype , "pad3" , { get : function ( ) { return this . _gamepads [ 2 ] } } ) , Object . defineProperty ( c . Gamepad . prototype , "pad4" , { get : function ( ) { return this . _gamepads [ 3 ] } } ) , c . Gamepad . BUTTON _0 = 0 , c . Gamepad . BUTTON _1 = 1 , c . Gamepad . BUTTON _2 = 2 , c . Gamepad . BUTTON _3 = 3 , c . Gamepad . BUTTON _4 = 4 , c . Gamepad . BUTTON _5 = 5 , c . Gamepad . BUTTON _6 = 6 , c . Gamepad . BUTTON _7 = 7 , c . Gamepad . BUTTON _8 = 8 , c . Gamepad . BUTTON _9 = 9 , c . Gamepad . BUTTON _10 = 10 , c . Gamepad . BUTTON _11 = 11 , c . Gamepad . BUTTON _12 = 12 , c . Gamepad . BUTTON _13 = 13 , c . Gamepad . BUTTON _14 = 14 , c . Gamepad . BUTTON _15 = 15 , c . Gamepad . AXIS _0 = 0 , c . Gamepad . AXIS _1 = 1 , c . Gamepad . AXIS _2 = 2 , c . Gamepad . AXIS _3 = 3 , c . Gamepad . AXIS _4 = 4 , c . Gamepad . AXIS _5 = 5 , c . Gamepad . AXIS _6 = 6 , c . Gamepad . AXIS _7 = 7 , c . Gamepad . AXIS _8 = 8 , c . Gamepad . AXIS _9 = 9 , c . Gamepad . XBOX360 _A = 0 , c . Gamepad . XBOX360 _B = 1 , c . Gamepad . XBOX360 _X = 2 , c . Gamepad . XBOX360 _Y = 3 , c . Gamepad . XBOX360 _LEFT _BUMPER = 4 , c . Gamepad . XBOX360 _RIGHT _BUMPER = 5 , c . Gamepad . XBOX360 _LEFT _TRIGGER = 6 , c . Gamepad . XBOX360 _RIGHT _TRIGGER = 7 , c . Gamepad . XBOX360 _BACK = 8 , c . Gamepad . XBOX360 _START = 9 , c . Gamepad . XBOX360 _STICK _LEFT _BUTTON = 10 , c . Gamepad . XBOX360 _STICK _RIGHT _BUTTON = 11 , c . Gamepad . XBOX360 _DPAD _LEFT = 14 , c . Gamepad . XBOX360 _DPAD _RIGHT = 15 , c . Gamepad . XBOX360 _DPAD _UP = 12 , c . Gamepad . XBOX360 _DPAD _DOWN = 13 , c . Gamepad . XBOX360 _STICK _LEFT _X = 0 , c . Gamepad . XBOX360 _STICK _LEFT _Y = 1 , c . Gamepad . XBOX360 _STICK _RIGHT _X = 2 , c . Gamepad . XBOX360 _STICK _RIGHT _Y = 3 , c . Gamepad . PS3XC _X = 0 , c . Gamepad . PS3XC _CIRCLE = 1 , c . Gamepad . PS3XC _SQUARE = 2 , c . Gamepad . PS3XC _TRIANGLE = 3 , c . Gamepad . PS3XC _L1 = 4 , c . Gamepad . PS3XC _R1 = 5 , c . Gamepad . PS3XC _L2 = 6 , c . Gamepad . PS3XC _R2 = 7 , c . Gamepad . PS3XC _SELECT = 8 , c . Gamepad . PS3XC _START = 9 , c . Gamepad . PS3XC _STICK _LEFT _BUTTON = 10 , c . Gamepad . PS3XC _STICK _RIGHT _BUTTON = 11 , c . Gamepad . PS3XC _DPAD _UP = 12 , c . Gamepad . PS3XC _DPAD _DOWN = 13 , c . Gamepad . PS3XC _DPAD _LEFT = 14 , c . Gamepad . PS3XC _DPAD _RIGHT = 15 , c . Gamepad . PS3XC _STICK _LEFT _X = 0 , c . Gamepad . PS3XC _STICK _LEFT _Y = 1 , c . Gamepad . PS3XC _STICK _RIGHT _X = 2 , c . Gamepad . PS3XC _STICK _RIGHT _Y = 3 , c . SinglePad = function ( a , b ) { this . game = a , this . index = null , this . connected = ! 1 , this . callbackContext = this , this . onConnectCallback = null , this . onDisconnectCallback = null , this . onDownCallback = null , this . onUpCallback = null , this . onAxisCallback = null , this . onFloatCallback = null , this . deadZone = . 26 , this . _padParent = b , this . _rawPad = null , this . _prevTimestamp = null , this . _buttons = [ ] , this . _buttonsLen = 0 , this . _axes = [ ] , this . _axesLen = 0 } , c . SinglePad . prototype = { addCallbacks : function ( a , b ) { "undefined" != typeof b && ( this . onConnectCa
} , processPixelRGB : function ( a , b , d , e , f , g ) { "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = this . width ) , "undefined" == typeof g && ( g = this . height ) ; for ( var h = d + f , i = e + g , j = c . Color . createColor ( ) , k = { r : 0 , g : 0 , b : 0 , a : 0 } , l = ! 1 , m = e ; i > m ; m ++ ) for ( var n = d ; h > n ; n ++ ) c . Color . unpackPixel ( this . getPixel32 ( n , m ) , j ) , k = a . call ( b , j , n , m ) , k !== ! 1 && null !== k && void 0 !== k && ( this . setPixel32 ( n , m , k . r , k . g , k . b , k . a , ! 1 ) , l = ! 0 ) ; return l && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) , this } , processPixel : function ( a , b , c , d , e , f ) { "undefined" == typeof c && ( c = 0 ) , "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = this . width ) , "undefined" == typeof f && ( f = this . height ) ; for ( var g = c + e , h = d + f , i = 0 , j = 0 , k = ! 1 , l = d ; h > l ; l ++ ) for ( var m = c ; g > m ; m ++ ) i = this . getPixel32 ( m , l ) , j = a . call ( b , i , m , l ) , j !== i && ( this . pixels [ l * this . width + m ] = j , k = ! 0 ) ; return k && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) , this } , replaceRGB : function ( a , b , d , e , f , g , h , i , j ) { var k = 0 , l = 0 , m = this . width , n = this . height , o = c . Color . packPixel ( a , b , d , e ) ; void 0 !== j && j instanceof c . Rectangle && ( k = j . x , l = j . y , m = j . width , n = j . height ) ; for ( var p = 0 ; n > p ; p ++ ) for ( var q = 0 ; m > q ; q ++ ) this . getPixel32 ( k + q , l + p ) === o && this . setPixel32 ( k + q , l + p , f , g , h , i , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } , setHSL : function ( a , b , d , e ) { if ( ( "undefined" == typeof a || null === a ) && ( a = ! 1 ) , ( "undefined" == typeof b || null === b ) && ( b = ! 1 ) , ( "undefined" == typeof d || null === d ) && ( d = ! 1 ) , a || b || d ) { "undefined" == typeof e && ( e = new c . Rectangle ( 0 , 0 , this . width , this . height ) ) ; for ( var f = c . Color . createColor ( ) , g = e . y ; g < e . bottom ; g ++ ) for ( var h = e . x ; h < e . right ; h ++ ) c . Color . unpackPixel ( this . getPixel32 ( h , g ) , f , ! 0 ) , a && ( f . h = a ) , b && ( f . s = b ) , d && ( f . l = d ) , c . Color . HSLtoRGB ( f . h , f . s , f . l , f ) , this . setPixel32 ( h , g , f . r , f . g , f . b , f . a , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } } , shiftHSL : function ( a , b , d , e ) { if ( ( "undefined" == typeof a || null === a ) && ( a = ! 1 ) , ( "undefined" == typeof b || null === b ) && ( b = ! 1 ) , ( "undefined" == typeof d || null === d ) && ( d = ! 1 ) , a || b || d ) { "undefined" == typeof e && ( e = new c . Rectangle ( 0 , 0 , this . width , this . height ) ) ; for ( var f = c . Color . createColor ( ) , g = e . y ; g < e . bottom ; g ++ ) for ( var h = e . x ; h < e . right ; h ++ ) c . Color . unpackPixel ( this . getPixel32 ( h , g ) , f , ! 0 ) , a && ( f . h = this . game . math . wrap ( f . h + a , 0 , 1 ) ) , b && ( f . s = this . game . math . limitValue ( f . s + b , 0 , 1 ) ) , d && ( f . l = this . game . math . limitValue ( f . l + d , 0 , 1 ) ) , c . Color . HSLtoRGB ( f . h , f . s , f . l , f ) , this . setPixel32 ( h , g , f . r , f . g , f . b , f . a , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } } , setPixel32 : function ( a , b , d , e , f , g , h ) { return "undefined" == typeof h && ( h = ! 0 ) , a >= 0 && a <= this . width && b >= 0 && b <= this . height && ( this . pixels [ b * this . width + a ] = c . Device . LITTLE _ENDIAN ? g << 24 | f << 16 | e << 8 | d : d << 24 | e << 16 | f << 8 | g , h && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) ) , this } , setPixel : function ( a , b , c , d , e , f ) { return this . setPixel32 ( a , b , c , d , e , 255 , f ) } , getPixel : function ( a , b , d ) { d || ( d = c . Color . createColor ( ) ) ; var e = ~ ~ ( a + b * this . width ) ; return e *= 4 , d . r = this . data [ e ] , d . g = this . data [ ++ e ] , d . b = this . data [ ++ e ] , d . a = this . data [ ++ e ] , d } , getPixel32 : function ( a , b ) { return a >= 0 && a <= this . width && b >= 0 && b <= this . height ? this . pixels [ b * this . width + a ] : void 0 } , getPixelRGB : function ( a , b , d , e , f ) { return c . Color . unpackPixel ( this . getPixel32 ( a , b ) , d , e , f ) } , getPixels : function ( a ) { return this . context . getImageData ( a . x , a . y , a . width , a . height ) } , getFirstPixel : function ( a ) { "undefined" == typeof a && ( a = 0 ) ; var b = c . Color . createColor ( ) , d = 0 , e = 0 , f = 1 , g = ! 1 ; 1 === a ? ( f = - 1 , e = this . height ) : 3 === a && ( f = - 1 , d = this . width ) ; do c . Color . unpackPixel ( this . getPixel32 ( d , e ) , b ) , 0 === a || 1 === a ? ( d ++ , d === this . width && ( d = 0 , e += f , ( e >= this . height || 0 >= e ) && ( g = ! 0 ) ) ) : ( 2 === a || 3 === a ) && ( e ++ , e === this . height && ( e = 0 , d += f , ( d >= this . width || 0 >= d ) && ( g = ! 0 ) ) ) ; while ( 0 === b . a && ! g ) ; return b . x = d , b . y = e , b } , getBounds : function ( a ) { return "undefined" == typeof a && ( a = new c . Rectangle ) , a . x = this . getFirstPixel ( 2 ) . x , a . x === this . width ? a . setTo ( 0 , 0 , 0 , 0 ) : ( a . y = this . getFirstPixel ( 0 ) . y , a . width = this . getFirstPixel ( 3 ) . x - a . x + 1 , a . height = this . getFirstPixel ( 1 ) . y - a . y + 1 , a ) } , addToWorld : function ( a , b , c , d , e , f ) { e = e || 1 , f = f || 1 ; var g = this . game . add . image ( a , b , this ) ; return g . anchor . set ( c , d ) , g . scale . set ( e , f ) , g } , copy : function ( a , b , d , e , f , g , h , i , j , k , l , m , n , o , p , q , r ) { if ( ( "undefined" == typeof a || null === a ) && ( a = this ) ,
for ( var a = 0 , b = this . children . length ; b > a ; a ++ ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , c . TileSprite . prototype . update = function ( ) { } , c . TileSprite . prototype . postUpdate = function ( ) { this . exists && this . body && this . body . postUpdate ( ) , 1 === this . _cache [ 7 ] && ( this . position . x = this . game . camera . view . x + this . cameraOffset . x , this . position . y = this . game . camera . view . y + this . cameraOffset . y ) ; for ( var a = 0 , b = this . children . length ; b > a ; a ++ ) this . children [ a ] . postUpdate ( ) } , c . TileSprite . prototype . autoScroll = function ( a , b ) { this . _scroll . set ( a , b ) } , c . TileSprite . prototype . stopScroll = function ( ) { this . _scroll . set ( 0 , 0 ) } , c . TileSprite . prototype . loadTexture = function ( a , b ) { b = b || 0 , this . key = a , a instanceof c . RenderTexture ? ( this . key = a . key , this . setTexture ( a ) ) : a instanceof c . BitmapData ? this . setTexture ( a . texture ) : a instanceof PIXI . Texture ? this . setTexture ( a ) : null === a || "undefined" == typeof a ? ( this . key = "__default" , this . setTexture ( PIXI . TextureCache [ this . key ] ) ) : "string" != typeof a || this . game . cache . checkImageKey ( a ) ? ( this . setTexture ( new PIXI . Texture ( PIXI . BaseTextureCache [ a ] ) ) , this . animations . loadFrameData ( this . game . cache . getFrameData ( a ) , b ) ) : ( console . warn ( "Texture with key '" + a + "' not found." ) , this . key = "__missing" , this . setTexture ( PIXI . TextureCache [ this . key ] ) ) , this . texture . baseTexture . dirty ( ) } , c . TileSprite . prototype . setFrame = function ( a ) { this . texture . frame . x = a . x , this . texture . frame . y = a . y , this . texture . frame . width = a . width , this . texture . frame . height = a . height , this . texture . crop . x = a . x , this . texture . crop . y = a . y , this . texture . crop . width = a . width , this . texture . crop . height = a . height , a . trimmed ? ( this . texture . trim ? ( this . texture . trim . x = a . spriteSourceSizeX , this . texture . trim . y = a . spriteSourceSizeY , this . texture . trim . width = a . sourceSizeW , this . texture . trim . height = a . sourceSizeH ) : this . texture . trim = { x : a . spriteSourceSizeX , y : a . spriteSourceSizeY , width : a . sourceSizeW , height : a . sourceSizeH } , this . texture . width = a . sourceSizeW , this . texture . height = a . sourceSizeH , this . texture . frame . width = a . sourceSizeW , this . texture . frame . height = a . sourceSizeH ) : ! a . trimmed && this . texture . trim && ( this . texture . trim = null ) , this . texture . _updateUvs ( ) } , c . TileSprite . prototype . destroy = function ( a ) { if ( null !== this . game && ! this . destroyPhase ) { "undefined" == typeof a && ( a = ! 0 ) , this . _cache [ 8 ] = 1 , this . events && this . events . onDestroy . dispatch ( this ) , this . filters && ( this . filters = null ) , this . parent && ( this . parent instanceof c . Group ? this . parent . remove ( this ) : this . parent . removeChild ( this ) ) , this . animations . destroy ( ) , this . events . destroy ( ) ; var b = this . children . length ; if ( a ) for ( ; b -- ; ) this . children [ b ] . destroy ( a ) ; else for ( ; b -- ; ) this . removeChild ( this . children [ b ] ) ; this . exists = ! 1 , this . visible = ! 1 , this . alive = ! 1 , this . filters = null , this . mask = null , this . game = null , this . _cache [ 8 ] = 0 } } , c . TileSprite . prototype . play = function ( a , b , c , d ) { return this . animations . play ( a , b , c , d ) } , c . TileSprite . prototype . reset = function ( a , b ) { return this . world . setTo ( a , b ) , this . position . x = a , this . position . y = b , this . alive = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . renderable = ! 0 , this . _outOfBoundsFired = ! 1 , this . tilePosition . x = 0 , this . tilePosition . y = 0 , this . body && this . body . reset ( a , b , ! 1 , ! 1 ) , this . _cache [ 4 ] = 1 , this } , Object . defineProperty ( c . TileSprite . prototype , "angle" , { get : function ( ) { return c . Math . wrapAngle ( c . Math . radToDeg ( this . rotation ) ) } , set : function ( a ) { this . rotation = c . Math . degToRad ( c . Math . wrapAngle ( a ) ) } } ) , Object . defineProperty ( c . TileSprite . prototype , "frame" , { get : function ( ) { return this . animations . frame } , set : function ( a ) { a !== this . animations . frame && ( this . animations . frame = a ) } } ) , Object . defineProperty ( c . TileSprite . prototype , "frameName" , { get : function ( ) { return this . animations . frameName } , set : function ( a ) { a !== this . animations . frameName && ( this . animations . frameName = a ) } } ) , Object . defineProperty ( c . TileSprite . prototype , "fixedToCamera" , { get : function ( ) { return ! ! this . _cache [ 7 ] } , set : function ( a ) { a ? ( this . _cache [ 7 ] = 1 , this . cameraOffset . set ( this . x , this . y ) ) : this . _cache [ 7 ] = 0 } } ) , Object . defineProperty ( c . TileSprite . prototype , "exists" , { get : function ( ) { return ! ! this . _cache [ 6 ] } , set : function ( a ) { a ? ( this . _cache [ 6 ] = 1 , this . body && this . body . type === c . Physics . P2JS && this . body . addToWorld ( ) , this . visible = ! 0 ) : ( this . _cache [ 6 ] = 0 , this . body && this . body . type === c . Physics . P2JS && ( this . body . safeRemove = ! 0 ) , this . visible = ! 1 ) } } ) , Object
} , c . RenderTexture . prototype . render = function ( a , b , c ) { this . matrix . tx = b . x , this . matrix . ty = b . y , this . renderer . type === PIXI . WEBGL _RENDERER ? this . renderWebGL ( a , this . matrix , c ) : this . renderCanvas ( a , this . matrix , c ) } , c . SpriteBatch = function ( a , b , d , e ) { ( "undefined" == typeof b || null === b ) && ( b = a . world ) , PIXI . SpriteBatch . call ( this ) , c . Group . call ( this , a , b , d , e ) , this . type = c . SPRITEBATCH } , c . SpriteBatch . prototype = c . Utils . extend ( ! 0 , c . SpriteBatch . prototype , c . Group . prototype , PIXI . SpriteBatch . prototype ) , c . SpriteBatch . prototype . constructor = c . SpriteBatch , c . RetroFont = function ( a , b , d , e , f , g , h , i , j , k ) { if ( ! a . cache . checkImageKey ( b ) ) return ! 1 ; ( "undefined" == typeof g || null === g ) && ( g = a . cache . getImage ( b ) . width / d ) , this . characterWidth = d , this . characterHeight = e , this . characterSpacingX = h || 0 , this . characterSpacingY = i || 0 , this . characterPerRow = g , this . offsetX = j || 0 , this . offsetY = k || 0 , this . align = "left" , this . multiLine = ! 1 , this . autoUpperCase = ! 0 , this . customSpacingX = 0 , this . customSpacingY = 0 , this . fixedWidth = 0 , this . fontSet = a . cache . getImage ( b ) , this . _text = "" , this . grabData = [ ] , this . frameData = new c . FrameData ; for ( var l = this . offsetX , m = this . offsetY , n = 0 , o = 0 ; o < f . length ; o ++ ) { var p = a . rnd . uuid ( ) , q = this . frameData . addFrame ( new c . Frame ( o , l , m , this . characterWidth , this . characterHeight , "" , p ) ) ; this . grabData [ f . charCodeAt ( o ) ] = q . index , PIXI . TextureCache [ p ] = new PIXI . Texture ( PIXI . BaseTextureCache [ b ] , { x : l , y : m , width : this . characterWidth , height : this . characterHeight } ) , n ++ , n == this . characterPerRow ? ( n = 0 , l = this . offsetX , m += this . characterHeight + this . characterSpacingY ) : l += this . characterWidth + this . characterSpacingX } a . cache . updateFrameData ( b , this . frameData ) , this . stamp = new c . Image ( a , 0 , 0 , b , 0 ) , c . RenderTexture . call ( this , a , 100 , 100 , "" , c . scaleModes . NEAREST ) , this . type = c . RETROFONT } , c . RetroFont . prototype = Object . create ( c . RenderTexture . prototype ) , c . RetroFont . prototype . constructor = c . RetroFont , c . RetroFont . ALIGN _LEFT = "left" , c . RetroFont . ALIGN _RIGHT = "right" , c . RetroFont . ALIGN _CENTER = "center" , c . RetroFont . TEXT _SET1 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" , c . RetroFont . TEXT _SET2 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . RetroFont . TEXT _SET3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 " , c . RetroFont . TEXT _SET4 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789" , c . RetroFont . TEXT _SET5 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789" , c . RetroFont . TEXT _SET6 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' " , c . RetroFont . TEXT _SET7 = "AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39" , c . RetroFont . TEXT _SET8 = "0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . RetroFont . TEXT _SET9 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!" , c . RetroFont . TEXT _SET10 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . RetroFont . TEXT _SET11 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789" , c . RetroFont . prototype . setFixedWidth = function ( a , b ) { "undefined" == typeof b && ( b = "left" ) , this . fixedWidth = a , this . align = b } , c . 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 ) } , c . RetroFont . prototype . buildRetroFontText = function ( ) { var a = 0 , b = 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 c . RetroFont . ALIGN _LEFT : a = 0 ; break ; case c . RetroFont . ALIGN _RIGHT : a = this . width - d [ e ] . length * ( this . characterWidth + this . customSpacingX ) ; break ; case c . 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 , b , this . customSpacingX ) , b += 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 c . RetroFont . ALIGN _LEFT : a = 0 ; break ; case c . RetroFont . ALIGN _RIGHT : a = thi
d = h [ 0 ] + g + a + "=" + b , h [ 1 ] && ( d += "#" + h [ 1 ] ) , e = d } else e = d ; return c ? void ( window . location . href = e ) : e } , getQueryString : function ( a ) { "undefined" == typeof a && ( a = "" ) ; var b = { } , c = location . search . substring ( 1 ) . split ( "&" ) ; for ( var d in c ) { var e = c [ d ] . split ( "=" ) ; if ( e . length > 1 ) { if ( a && a == this . decodeURI ( e [ 0 ] ) ) return this . decodeURI ( e [ 1 ] ) ; b [ this . decodeURI ( e [ 0 ] ) ] = this . decodeURI ( e [ 1 ] ) } } return b } , decodeURI : function ( a ) { return decodeURIComponent ( a . replace ( /\+/g , " " ) ) } } , c . Net . prototype . constructor = c . Net , c . TweenManager = function ( a ) { this . game = a , this . _tweens = [ ] , this . _add = [ ] , this . game . onPause . add ( this . _pauseAll , this ) , this . game . onResume . add ( this . _resumeAll , this ) } , c . TweenManager . prototype = { getAll : function ( ) { return this . _tweens } , removeAll : function ( ) { for ( var a = 0 ; a < this . _tweens . length ; a ++ ) this . _tweens [ a ] . pendingDelete = ! 0 ; this . _add = [ ] } , add : function ( a ) { a . _manager = this , this . _add . push ( a ) } , create : function ( a ) { return new c . Tween ( a , this . game , this ) } , remove : function ( a ) { var b = this . _tweens . indexOf ( a ) ; - 1 !== b ? this . _tweens [ b ] . pendingDelete = ! 0 : ( b = this . _add . indexOf ( a ) , - 1 !== b && ( this . _add [ b ] . pendingDelete = ! 0 ) ) } , update : function ( ) { var a = this . _add . length , b = this . _tweens . length ; if ( 0 === b && 0 === a ) return ! 1 ; for ( var c = 0 ; b > c ; ) this . _tweens [ c ] . update ( this . game . time . now ) ? c ++ : ( this . _tweens . splice ( c , 1 ) , b -- ) ; return a > 0 && ( this . _tweens = this . _tweens . concat ( this . _add ) , this . _add . length = 0 ) , ! 0 } , isTweening : function ( a ) { return this . _tweens . some ( function ( b ) { return b . _object === a } ) } , _pauseAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . _pause ( ) } , _resumeAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . _resume ( ) } , pauseAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . pause ( ) } , resumeAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . resume ( ! 0 ) } } , c . TweenManager . prototype . constructor = c . TweenManager , c . Tween = function ( a , b , d ) { this . _object = a , this . game = b , this . _manager = d , this . _valuesStart = { } , this . _valuesEnd = { } , this . _valuesStartRepeat = { } , this . _duration = 1e3 , this . _repeat = 0 , this . _yoyo = ! 1 , this . _reversed = ! 1 , this . _delayTime = 0 , this . _startTime = null , this . _easingFunction = c . Easing . Default , this . _interpolationFunction = c . Math . linearInterpolation , this . _chainedTweens = [ ] , this . _onStartCallbackFired = ! 1 , this . _onUpdateCallback = null , this . _onUpdateCallbackContext = null , this . _paused = ! 1 , this . _pausedTime = 0 , this . _codePaused = ! 1 , this . pendingDelete = ! 1 , this . onStart = new c . Signal , this . onLoop = new c . Signal , this . onComplete = new c . Signal , this . isRunning = ! 1 } , c . Tween . prototype = { to : function ( a , b , c , d , e , f , g ) { b = b || 1e3 , c = c || null , d = d || ! 1 , e = e || 0 , f = f || 0 , g = g || ! 1 , g && 0 === f && ( f = 1 ) ; var h ; return this . _parent && this . _parent !== this ? ( h = this . _manager . create ( this . _object ) , this . _lastChild . chain ( h ) , this . _lastChild = h ) : ( h = this , this . _parent = this , this . _lastChild = this ) , h . _repeat = f , h . _duration = b , h . _valuesEnd = a , null !== c && ( h . _easingFunction = c ) , h . _delayTime = e > 0 ? e : 0 , h . _yoyo = g , d ? this . start ( ) : this } , from : function ( a , b , c , d , e , f , g ) { var h = { } ; for ( var i in a ) h [ i ] = this . _object [ i ] , this . _object [ i ] = a [ i ] ; return this . to ( h , b , c , d , e , f , g ) } , start : function ( ) { if ( null !== this . game && null !== this . _object ) { this . _manager . add ( this ) , this . isRunning = ! 0 , this . _onStartCallbackFired = ! 1 , this . _startTime = this . game . time . now + this . _delayTime * this . game . time . slowMotion ; for ( var a in this . _valuesEnd ) { if ( Array . isArray ( this . _valuesEnd [ a ] ) ) { if ( 0 === this . _valuesEnd [ a ] . length ) continue ; this . _valuesEnd [ a ] = [ this . _object [ a ] ] . concat ( this . _valuesEnd [ a ] ) } this . _valuesStart [ a ] = this . _object [ a ] , Array . isArray ( this . _valuesStart [ a ] ) || ( this . _valuesStart [ a ] *= 1 ) , this . _valuesStartRepeat [ a ] = this . _valuesStart [ a ] || 0 } return this } } , generateData : function ( a , b ) { if ( null === this . game || null === this . _object ) return null ; this . _startTime = 0 ; for ( var c in this . _valuesEnd ) { if ( Array . isArray ( this . _valuesEnd [ c ] ) ) { if ( 0 === this . _valuesEnd [ c ] . length ) continue ; this . _valuesEnd [ c ] = [ this . _object [ c ] ] . concat ( this . _valuesEnd [ c ] ) } this . _valuesStart [ c ] = this . _object [ c ] , Array . isArray ( this . _valuesStart [ c ] ) || ( this . _valuesStart [ c ] *= 1 ) , this . _valuesStartRepeat [ c ] = this . _valuesStart [ c ] || 0 } for ( var d = 0 , e = Math . floor ( a * ( this . _duration / 1e3 ) ) , f = this . _duration / e , g = [ ] ; e -- ; ) { var c , h = ( d - this . _startTime ) / this . _duration ; h = h > 1 ? 1 : h ; var i = this . _
var e , f = new c . FrameData , g = b . frames , h = 0 ; for ( var i in g ) { var j = a . rnd . uuid ( ) ; e = f . addFrame ( new c . Frame ( h , g [ i ] . frame . x , g [ i ] . frame . y , g [ i ] . frame . w , g [ i ] . frame . h , i , j ) ) , PIXI . TextureCache [ j ] = new PIXI . Texture ( PIXI . BaseTextureCache [ d ] , { x : g [ i ] . frame . x , y : g [ i ] . frame . y , width : g [ i ] . frame . w , height : g [ i ] . frame . h } ) , g [ i ] . trimmed && e . setTrim ( g [ i ] . trimmed , g [ i ] . sourceSize . w , g [ i ] . sourceSize . h , g [ i ] . spriteSourceSize . x , g [ i ] . spriteSourceSize . y , g [ i ] . spriteSourceSize . w , g [ i ] . spriteSourceSize . h ) , h ++ } return f } , XMLData : function ( a , b , d ) { if ( ! b . getElementsByTagName ( "TextureAtlas" ) ) return void console . warn ( "Phaser.AnimationParser.XMLData: Invalid Texture Atlas XML given, missing <TextureAtlas> tag" ) ; for ( var e , f , g , h , i , j , k , l , m , n , o , p , q = new c . FrameData , r = b . getElementsByTagName ( "SubTexture" ) , s = 0 ; s < r . length ; s ++ ) f = a . rnd . uuid ( ) , h = r [ s ] . attributes , g = h . name . value , i = parseInt ( h . x . value , 10 ) , j = parseInt ( h . y . value , 10 ) , k = parseInt ( h . width . value , 10 ) , l = parseInt ( h . height . value , 10 ) , m = null , n = null , h . frameX && ( m = Math . abs ( parseInt ( h . frameX . value , 10 ) ) , n = Math . abs ( parseInt ( h . frameY . value , 10 ) ) , o = parseInt ( h . frameWidth . value , 10 ) , p = parseInt ( h . frameHeight . value , 10 ) ) , e = q . addFrame ( new c . Frame ( s , i , j , k , l , g , f ) ) , PIXI . TextureCache [ f ] = new PIXI . Texture ( PIXI . BaseTextureCache [ d ] , { x : i , y : j , width : k , height : l } ) , ( null !== m || null !== n ) && e . setTrim ( ! 0 , k , l , m , n , o , p ) ; return q } } , c . Cache = function ( a ) { this . game = a , this . autoResolveURL = ! 1 , this . _canvases = { } , this . _images = { } , this . _textures = { } , this . _sounds = { } , this . _text = { } , this . _json = { } , this . _xml = { } , this . _physics = { } , this . _tilemaps = { } , this . _binary = { } , this . _bitmapDatas = { } , this . _bitmapFont = { } , this . _urlMap = { } , this . _urlResolver = new Image , this . _urlTemp = null , this . addDefaultImage ( ) , this . addMissingImage ( ) , this . onSoundUnlock = new c . Signal , this . _cacheMap = [ ] , this . _cacheMap [ c . Cache . CANVAS ] = this . _canvases , this . _cacheMap [ c . Cache . IMAGE ] = this . _images , this . _cacheMap [ c . Cache . TEXTURE ] = this . _textures , this . _cacheMap [ c . Cache . SOUND ] = this . _sounds , this . _cacheMap [ c . Cache . TEXT ] = this . _text , this . _cacheMap [ c . Cache . PHYSICS ] = this . _physics , this . _cacheMap [ c . Cache . TILEMAP ] = this . _tilemaps , this . _cacheMap [ c . Cache . BINARY ] = this . _binary , this . _cacheMap [ c . Cache . BITMAPDATA ] = this . _bitmapDatas , this . _cacheMap [ c . Cache . BITMAPFONT ] = this . _bitmapFont , this . _cacheMap [ c . Cache . JSON ] = this . _json , this . _cacheMap [ c . Cache . XML ] = this . _xml } , c . Cache . CANVAS = 1 , c . Cache . IMAGE = 2 , c . Cache . TEXTURE = 3 , c . Cache . SOUND = 4 , c . Cache . TEXT = 5 , c . Cache . PHYSICS = 6 , c . Cache . TILEMAP = 7 , c . Cache . BINARY = 8 , c . Cache . BITMAPDATA = 9 , c . Cache . BITMAPFONT = 10 , c . Cache . JSON = 11 , c . Cache . XML = 12 , c . Cache . prototype = { addCanvas : function ( a , b , c ) { this . _canvases [ a ] = { canvas : b , context : c } } , addBinary : function ( a , b ) { this . _binary [ a ] = b } , addBitmapData : function ( a , b , d ) { return b . key = a , "undefined" == typeof d && ( d = new c . FrameData , d . addFrame ( b . textureFrame ) ) , this . _bitmapDatas [ a ] = { data : b , frameData : d } , b } , addRenderTexture : function ( a , b ) { var d = new c . Frame ( 0 , 0 , 0 , b . width , b . height , "" , "" ) ; this . _textures [ a ] = { texture : b , frame : d } } , addSpriteSheet : function ( a , b , d , e , f , g , h , i ) { this . _images [ a ] = { url : b , data : d , frameWidth : e , frameHeight : f , margin : h , spacing : i } , PIXI . BaseTextureCache [ a ] = new PIXI . BaseTexture ( d ) , PIXI . TextureCache [ a ] = new PIXI . Texture ( PIXI . BaseTextureCache [ a ] ) , this . _images [ a ] . frameData = c . AnimationParser . spriteSheet ( this . game , a , e , f , g , h , i ) , this . _resolveURL ( b , this . _images [ a ] ) } , addTilemap : function ( a , b , c , d ) { this . _tilemaps [ a ] = { url : b , data : c , format : d } , this . _resolveURL ( b , this . _tilemaps [ a ] ) } , addTextureAtlas : function ( a , b , d , e , f ) { this . _images [ a ] = { url : b , data : d } , PIXI . BaseTextureCache [ a ] = new PIXI . BaseTexture ( d ) , PIXI . TextureCache [ a ] = new PIXI . Texture ( PIXI . BaseTextureCache [ a ] ) , f == c . Loader . TEXTURE _ATLAS _JSON _ARRAY ? this . _images [ a ] . frameData = c . AnimationParser . JSONData ( this . game , e , a ) : f == c . Loader . TEXTURE _ATLAS _JSON _HASH ? this . _images [ a ] . frameData = c . AnimationParser . JSONDataHash ( this . game , e , a ) : f == c . Loader . TEXTURE _ATLAS _XML _STARLING && ( this . _images [ a ] . frameData = c . AnimationParser . XMLData ( this . game , e , a ) ) , this . _resolveURL ( b , this . _images [ a ] ) } , addBitmapFont : function ( a , b , d , e , f , g ) { this . _images [ a ] = { url : b , data : d } , PIXI . BaseTextureCache [ a ] = new PIXI . BaseTexture ( d ) , PIXI . TextureCache [ a ] = new PIXI . Texture ( PIXI . BaseTextureCache [ a ] ) , c . LoaderParser . bitmapFont ( this . game , e , a , f , g ) , this . _bi
} var m = b . getElementsByTagName ( "kerning" ) ; for ( j = 0 ; j < m . length ; j ++ ) { var n = parseInt ( m [ j ] . getAttribute ( "first" ) , 10 ) , o = parseInt ( m [ j ] . getAttribute ( "second" ) , 10 ) , p = parseInt ( m [ j ] . getAttribute ( "amount" ) , 10 ) ; f . chars [ o ] . kerning [ n ] = p } PIXI . BitmapText . fonts [ c ] = f } } , c . AudioSprite = function ( a , b ) { this . game = a , this . key = b , this . config = this . game . cache . getJSON ( b + "-audioatlas" ) , this . autoplayKey = null , this . autoplay = ! 1 , this . sounds = { } ; for ( var c in this . config . spritemap ) { var d = this . config . spritemap [ c ] , e = this . game . add . sound ( this . key ) ; d . loop ? e . addMarker ( c , d . start , d . end - d . start , null , ! 0 ) : e . addMarker ( c , d . start , d . end - d . start , null , ! 1 ) , this . sounds [ c ] = e } this . config . autoplay && ( this . autoplayKey = this . config . autoplay , this . play ( this . autoplayKey ) , this . autoplay = this . sounds [ this . autoplayKey ] ) } , c . AudioSprite . prototype = { play : function ( a , b ) { return "undefined" == typeof b && ( b = 1 ) , this . sounds [ a ] . play ( a , null , b ) } , stop : function ( a ) { if ( a ) this . sounds [ a ] . stop ( ) ; else for ( var b in this . sounds ) this . sounds [ b ] . stop ( ) } , get : function ( a ) { return this . sounds [ a ] } } , c . AudioSprite . prototype . constructor = c . AudioSprite , c . Sound = function ( a , b , d , e , f ) { "undefined" == typeof d && ( d = 1 ) , "undefined" == typeof e && ( e = ! 1 ) , "undefined" == typeof f && ( f = a . sound . connectToMaster ) , this . game = a , this . name = b , this . key = b , this . loop = e , this . volume = d , this . markers = { } , this . context = null , this . autoplay = ! 1 , this . totalDuration = 0 , this . startTime = 0 , this . currentTime = 0 , this . duration = 0 , this . durationMS = 0 , this . position = 0 , this . stopTime = 0 , this . paused = ! 1 , this . pausedPosition = 0 , this . pausedTime = 0 , this . isPlaying = ! 1 , this . currentMarker = "" , this . pendingPlayback = ! 1 , this . override = ! 1 , this . allowMultiple = ! 1 , this . usingWebAudio = this . game . sound . usingWebAudio , this . usingAudioTag = this . game . sound . usingAudioTag , this . externalNode = null , this . masterGainNode = null , this . gainNode = null , this . usingWebAudio ? ( this . context = this . game . sound . context , this . masterGainNode = this . game . sound . masterGain , this . gainNode = "undefined" == typeof this . context . createGain ? this . context . createGainNode ( ) : this . context . createGain ( ) , this . gainNode . gain . value = d * this . game . sound . volume , f && this . gainNode . connect ( this . masterGainNode ) ) : this . game . cache . getSound ( b ) && this . game . cache . isSoundReady ( b ) ? ( this . _sound = this . game . cache . getSoundData ( b ) , this . totalDuration = 0 , this . _sound . duration && ( this . totalDuration = this . _sound . duration ) ) : this . game . cache . onSoundUnlock . add ( this . soundHasUnlocked , this ) , this . onDecoded = new c . Signal , this . onPlay = new c . Signal , this . onPause = new c . Signal , this . onResume = new c . Signal , this . onLoop = new c . Signal , this . onStop = new c . Signal , this . onMute = new c . Signal , this . onMarkerComplete = new c . Signal , this . onFadeComplete = new c . Signal , this . _volume = d , this . _buffer = null , this . _muted = ! 1 , this . _tempMarker = 0 , this . _tempPosition = 0 , this . _tempVolume = 0 , this . _muteVolume = 0 , this . _tempLoop = 0 , this . _paused = ! 1 , this . _onDecodedEventDispatched = ! 1 } , c . Sound . prototype = { soundHasUnlocked : function ( a ) { a === this . key && ( this . _sound = this . game . cache . getSoundData ( this . key ) , this . totalDuration = this . _sound . duration ) } , addMarker : function ( a , b , c , d , e ) { "undefined" == typeof d && ( d = 1 ) , "undefined" == typeof e && ( e = ! 1 ) , this . markers [ a ] = { name : a , start : b , stop : b + c , volume : d , duration : c , durationMS : 1e3 * c , loop : e } } , removeMarker : function ( a ) { delete this . markers [ a ] } , update : function ( ) { this . isDecoded && ! this . _onDecodedEventDispatched && ( this . onDecoded . dispatch ( this ) , this . _onDecodedEventDispatched = ! 0 ) , this . pendingPlayback && this . game . cache . isSoundReady ( this . key ) && ( this . pendingPlayback = ! 1 , this . play ( this . _tempMarker , this . _tempPosition , this . _tempVolume , this . _tempLoop ) ) , this . isPlaying && ( this . currentTime = this . game . time . time - this . startTime , this . currentTime >= this . durationMS && ( this . usingWebAudio ? this . loop ? ( this . onLoop . dispatch ( this ) , "" === this . currentMarker ? ( this . currentTime = 0 , this . startTime = this . game . time . time ) : ( this . onMarkerComplete . dispatch ( this . currentMarker , this ) , this . play ( this . currentMarker , 0 , this . volume , ! 0 , ! 0 ) ) ) : this . stop ( ) : this . loop ? ( this . onLoop . dispatch ( this ) , this . play ( this . currentMarker , 0 , this . volume , ! 0 , ! 0 ) ) : this . stop ( ) ) ) } , play : function ( a , b , c , d , e ) { if ( "undefined" == typeof a && ( a = "" ) , "undefined" == typeof e && ( e = ! 0 ) , this . isPlaying && ! this . allowMultiple && ! e && ! this . override ) return this ; if ( this . isPlaying && ! this . allow
} , startSystem : function ( a ) { if ( a === c . Physics . ARCADE ? this . arcade = new c . Physics . Arcade ( this . game ) : a === c . Physics . P2JS && ( this . p2 = new c . Physics . P2 ( this . game , this . config ) ) , a === c . Physics . NINJA ) this . ninja = new c . Physics . Ninja ( this . game ) ; else if ( a === c . Physics . BOX2D && null === this . box2d ) this . box2d = new c . Physics . Box2D ( this . game , this . config ) ; else if ( a === c . Physics . CHIPMUNK && null === this . chipmunk ) throw new Error ( "The Chipmunk physics system has not been implemented yet." ) } , enable : function ( a , b , d ) { "undefined" == typeof b && ( b = c . Physics . ARCADE ) , "undefined" == typeof d && ( d = ! 1 ) , b === c . Physics . ARCADE ? this . arcade . enable ( a ) : b === c . Physics . P2JS && this . p2 ? this . p2 . enable ( a , d ) : b === c . Physics . NINJA && this . ninja ? this . ninja . enableAABB ( a ) : b === c . Physics . BOX2D && this . box2d && this . box2d . enable ( a ) } , preUpdate : function ( ) { this . p2 && this . p2 . preUpdate ( ) , this . box2d && this . box2d . preUpdate ( ) } , update : function ( ) { this . p2 && this . p2 . update ( ) , this . box2d && this . box2d . update ( ) } , setBoundsToWorld : function ( ) { this . arcade && this . arcade . setBoundsToWorld ( ) , this . ninja && this . ninja . setBoundsToWorld ( ) , this . p2 && this . p2 . setBoundsToWorld ( ) , this . box2d && this . box2d . setBoundsToWorld ( ) } , clear : function ( ) { this . p2 && this . p2 . clear ( ) , this . box2d && this . box2d . clear ( ) } , destroy : function ( ) { this . p2 && this . p2 . destroy ( ) , this . box2d && this . box2d . destroy ( ) , this . arcade = null , this . ninja = null , this . p2 = null , this . box2d = null } } , c . Physics . prototype . constructor = c . Physics , c . Physics . Arcade = function ( a ) { this . game = a , this . gravity = new c . Point , this . bounds = new c . Rectangle ( 0 , 0 , a . world . width , a . world . height ) , this . checkCollision = { up : ! 0 , down : ! 0 , left : ! 0 , right : ! 0 } , this . maxObjects = 10 , this . maxLevels = 4 , this . OVERLAP _BIAS = 4 , this . TILE _BIAS = 16 , this . forceX = ! 1 , this . skipQuadTree = ! 0 , this . quadTree = new c . QuadTree ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height , this . maxObjects , this . maxLevels ) , this . _overlap = 0 , this . _maxOverlap = 0 , this . _velocity1 = 0 , this . _velocity2 = 0 , this . _newVelocity1 = 0 , this . _newVelocity2 = 0 , this . _average = 0 , this . _mapData = [ ] , this . _result = ! 1 , this . _total = 0 , this . _angle = 0 , this . _dx = 0 , this . _dy = 0 , this . setBoundsToWorld ( ) } , c . Physics . Arcade . prototype . constructor = c . Physics . Arcade , c . Physics . Arcade . prototype = { setBounds : function ( a , b , c , d ) { this . bounds . setTo ( a , b , c , d ) } , setBoundsToWorld : function ( ) { this . bounds . setTo ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height ) } , enable : function ( a , b ) { "undefined" == typeof b && ( b = ! 0 ) ; var d = 1 ; if ( Array . isArray ( a ) ) for ( d = a . length ; d -- ; ) a [ d ] instanceof c . Group ? this . enable ( a [ d ] . children , b ) : ( this . enableBody ( a [ d ] ) , b && a [ d ] . hasOwnProperty ( "children" ) && a [ d ] . children . length > 0 && this . enable ( a [ d ] , ! 0 ) ) ; else a instanceof c . Group ? this . enable ( a . children , b ) : ( this . enableBody ( a ) , b && a . hasOwnProperty ( "children" ) && a . children . length > 0 && this . enable ( a . children , ! 0 ) ) } , enableBody : function ( a ) { a . hasOwnProperty ( "body" ) && null === a . body && ( a . body = new c . Physics . Arcade . Body ( a ) ) } , updateMotion : function ( a ) { this . _velocityDelta = this . computeVelocity ( 0 , a , a . angularVelocity , a . angularAcceleration , a . angularDrag , a . maxAngular ) - a . angularVelocity , a . angularVelocity += this . _velocityDelta , a . rotation += a . angularVelocity * this . game . time . physicsElapsed , a . velocity . x = this . computeVelocity ( 1 , a , a . velocity . x , a . acceleration . x , a . drag . x , a . maxVelocity . x ) , a . velocity . y = this . computeVelocity ( 2 , a , a . velocity . y , a . acceleration . y , a . drag . y , a . maxVelocity . y ) } , computeVelocity : function ( a , b , c , d , e , f ) { return f = f || 1e4 , 1 == a && b . allowGravity ? c += ( this . gravity . x + b . gravity . x ) * this . game . time . physicsElapsed : 2 == a && b . allowGravity && ( c += ( this . gravity . y + b . gravity . y ) * this . game . time . physicsElapsed ) , d ? c += d * this . game . time . physicsElapsed : e && ( this . _drag = e * this . game . time . physicsElapsed , c - this . _drag > 0 ? c -= this . _drag : c + this . _drag < 0 ? c += this . _drag : c = 0 ) , c > f ? c = f : - f > c && ( c = - f ) , c } , overlap : function ( a , b , c , d , e ) { if ( c = c || null , d = d || null , e = e || c , this . _result = ! 1 , this . _total = 0 , ! Array . isArray ( a ) && Array . isArray ( b ) ) for ( var f = 0 , g = b . length ; g > f ; f ++ ) this . collideHandler ( a , b [ f ] , c , d , e , ! 0 ) ; else if ( Array . isArray ( a ) && ! Array . isArray ( b ) ) for ( var f = 0 , g = a . length ; g > f ; f ++ ) this . collideHandler ( a [ f ] , b , c , d , e , ! 0 ) ; else if ( Array . isArray ( a ) && Array . isArray ( b ) ) for ( var f = 0 , g = a . length ; g > f ; f
} , set : function ( a ) { this . area . width = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "height" , { get : function ( ) { return this . area . height } , set : function ( a ) { this . area . height = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "x" , { get : function ( ) { return this . emitX } , set : function ( a ) { this . emitX = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "y" , { get : function ( ) { return this . emitY } , set : function ( a ) { this . emitY = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "left" , { get : function ( ) { return Math . floor ( this . x - this . area . width / 2 ) } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "right" , { get : function ( ) { return Math . floor ( this . x + this . area . width / 2 ) } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "top" , { get : function ( ) { return Math . floor ( this . y - this . area . height / 2 ) } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "bottom" , { get : function ( ) { return Math . floor ( this . y + this . area . height / 2 ) } } ) , c . Tile = function ( a , b , c , d , e , f ) { this . layer = a , this . index = b , this . x = c , this . y = d , this . worldX = c * e , this . worldY = d * f , this . width = e , this . height = f , this . centerX = Math . abs ( e / 2 ) , this . centerY = Math . abs ( f / 2 ) , this . alpha = 1 , this . properties = { } , this . scanned = ! 1 , this . faceTop = ! 1 , this . faceBottom = ! 1 , this . faceLeft = ! 1 , this . faceRight = ! 1 , this . collideLeft = ! 1 , this . collideRight = ! 1 , this . collideUp = ! 1 , this . collideDown = ! 1 , this . collisionCallback = null , this . collisionCallbackContext = this } , c . Tile . prototype = { containsPoint : function ( a , b ) { return ! ( a < this . worldX || b < this . worldY || a > this . right || b > this . bottom ) } , intersects : function ( a , b , c , d ) { return c <= this . worldX ? ! 1 : d <= this . worldY ? ! 1 : a >= this . worldX + this . width ? ! 1 : b >= this . worldY + this . height ? ! 1 : ! 0 } , setCollisionCallback : function ( a , b ) { this . collisionCallback = a , this . collisionCallbackContext = b } , destroy : function ( ) { this . collisionCallback = null , this . collisionCallbackContext = null , this . properties = null } , setCollision : function ( a , b , c , d ) { this . collideLeft = a , this . collideRight = b , this . collideUp = c , this . collideDown = d , this . faceLeft = a , this . faceRight = b , this . faceTop = c , this . faceBottom = d } , resetCollision : function ( ) { this . collideLeft = ! 1 , this . collideRight = ! 1 , this . collideUp = ! 1 , this . collideDown = ! 1 , this . faceTop = ! 1 , this . faceBottom = ! 1 , this . faceLeft = ! 1 , this . faceRight = ! 1 } , isInteresting : function ( a , b ) { return a && b ? this . collideLeft || this . collideRight || this . collideUp || this . collideDown || this . faceTop || this . faceBottom || this . faceLeft || this . faceRight || this . collisionCallback : a ? this . collideLeft || this . collideRight || this . collideUp || this . collideDown : b ? this . faceTop || this . faceBottom || this . faceLeft || this . faceRight : ! 1 } , copy : function ( a ) { this . index = a . index , this . alpha = a . alpha , this . properties = a . properties , this . collideUp = a . collideUp , this . collideDown = a . collideDown , this . collideLeft = a . collideLeft , this . collideRight = a . collideRight , this . collisionCallback = a . collisionCallback , this . collisionCallbackContext = a . collisionCallbackContext } } , c . Tile . prototype . constructor = c . Tile , Object . defineProperty ( c . Tile . prototype , "collides" , { get : function ( ) { return this . collideLeft || this . collideRight || this . collideUp || this . collideDown } } ) , Object . defineProperty ( c . Tile . prototype , "canCollide" , { get : function ( ) { return this . collideLeft || this . collideRight || this . collideUp || this . collideDown || this . collisionCallback } } ) , Object . defineProperty ( c . Tile . prototype , "left" , { get : function ( ) { return this . worldX } } ) , Object . defineProperty ( c . Tile . prototype , "right" , { get : function ( ) { return this . worldX + this . width } } ) , Object . defineProperty ( c . Tile . prototype , "top" , { get : function ( ) { return this . worldY } } ) , Object . defineProperty ( c . Tile . prototype , "bottom" , { get : function ( ) { return this . worldY + this . height } } ) , c . Tilemap = function ( a , b , d , e , f , g ) { this . game = a , this . key = b ; var h = c . TilemapParser . parse ( this . game , b , d , e , f , g ) ; null !== h && ( this . width = h . width , this . height = h . height , this . tileWidth = h . tileWidth , this . tileHeight = h . tileHeight , this . orientation = h . orientation , this . format = h . format , this . version = h . version , this . properties = h . properties , this . widthInPixels = h . widthInPixels , this . heightInPixels = h . heightInPixels , this . layers = h . layers , this . tilesets = h . tilesets , this . tiles = h . tiles , this . objects = h . objects , this . collideIndexes = [ ] , this . collision = h . collision , this
} , c . Tileset . prototype = { draw : function ( a , b , c , d ) { var e = d - this . firstgid << 1 ; e >= 0 && e + 1 < this . drawCoords . length && a . drawImage ( this . image , this . drawCoords [ e ] , this . drawCoords [ e + 1 ] , this . tileWidth , this . tileHeight , b , c , this . tileWidth , this . tileHeight ) } , containsTileIndex : function ( a ) { return a >= this . firstgid && a < this . firstgid + this . total } , setImage : function ( a ) { this . image = a , this . updateTileData ( ) } , setSpacing : function ( a , b ) { this . tileMargin = 0 | a , this . tileSpacing = 0 | b , this . updateTileData ( ) } , updateTileData : function ( ) { var a = this . image ; this . rows = Math . round ( ( a . height - this . tileMargin ) / ( this . tileHeight + this . tileSpacing ) ) , this . columns = Math . round ( ( a . width - this . tileMargin ) / ( this . tileWidth + this . tileSpacing ) ) , this . total = this . rows * this . columns , this . drawCoords . length = 0 ; for ( var b = this . tileMargin , c = this . tileMargin , d = 0 ; d < this . rows ; d ++ ) { for ( var e = 0 ; e < this . columns ; e ++ ) this . drawCoords . push ( b ) , this . drawCoords . push ( c ) , b += this . tileWidth + this . tileSpacing ; b = this . tileMargin , c += this . tileHeight + this . tileSpacing } } } , c . Tileset . prototype . constructor = c . Tileset , "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = c ) , exports . Phaser = c ) : "undefined" != typeof define && define . amd ? define ( "Phaser" , function ( ) { return b . Phaser = c } ( ) ) : b . Phaser = c } . call ( this ) , Phaser . Physics . Ninja = function ( a ) { this . game = a , this . time = this . game . time , this . gravity = . 2 , this . bounds = new Phaser . Rectangle ( 0 , 0 , a . world . width , a . world . height ) , this . maxObjects = 10 , this . maxLevels = 4 , this . quadTree = new Phaser . QuadTree ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height , this . maxObjects , this . maxLevels ) , this . setBoundsToWorld ( ) } , Phaser . Physics . Ninja . prototype . constructor = Phaser . Physics . Ninja , Phaser . Physics . Ninja . prototype = { enableAABB : function ( a , b ) { this . enable ( a , 1 , 0 , 0 , b ) } , enableCircle : function ( a , b , c ) { this . enable ( a , 2 , 0 , b , c ) } , enableTile : function ( a , b , c ) { this . enable ( a , 3 , b , 0 , c ) } , enable : function ( a , b , c , d , e ) { if ( "undefined" == typeof b && ( b = 1 ) , "undefined" == typeof c && ( c = 1 ) , "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = ! 0 ) , Array . isArray ( a ) ) for ( var f = a . length ; f -- ; ) a [ f ] instanceof Phaser . Group ? this . enable ( a [ f ] . children , b , c , d , e ) : ( this . enableBody ( a [ f ] , b , c , d ) , e && a [ f ] . hasOwnProperty ( "children" ) && a [ f ] . children . length > 0 && this . enable ( a [ f ] , b , c , d , ! 0 ) ) ; else a instanceof Phaser . Group ? this . enable ( a . children , b , c , d , e ) : ( this . enableBody ( a , b , c , d ) , e && a . hasOwnProperty ( "children" ) && a . children . length > 0 && this . enable ( a . children , b , c , d , ! 0 ) ) } , enableBody : function ( a , b , c , d ) { a . hasOwnProperty ( "body" ) && null === a . body && ( a . body = new Phaser . Physics . Ninja . Body ( this , a , b , c , d ) , a . anchor . set ( . 5 ) ) } , setBounds : function ( a , b , c , d ) { this . bounds . setTo ( a , b , c , d ) } , setBoundsToWorld : function ( ) { this . bounds . setTo ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height ) } , clearTilemapLayerBodies : function ( a , b ) { b = a . getLayer ( b ) ; for ( var c = a . layers [ b ] . bodies . length ; c -- ; ) a . layers [ b ] . bodies [ c ] . destroy ( ) ; a . layers [ b ] . bodies . length = [ ] } , convertTilemap : function ( a , b , c ) { b = a . getLayer ( b ) , this . clearTilemapLayerBodies ( a , b ) ; for ( var d = 0 , e = a . layers [ b ] . height ; e > d ; d ++ ) for ( var f = 0 , g = a . layers [ b ] . width ; g > f ; f ++ ) { var h = a . layers [ b ] . data [ d ] [ f ] ; if ( h && c . hasOwnProperty ( h . index ) ) { var i = new Phaser . Physics . Ninja . Body ( this , null , 3 , c [ h . index ] , 0 , h . worldX + h . centerX , h . worldY + h . centerY , h . width , h . height ) ; a . layers [ b ] . bodies . push ( i ) } } return a . layers [ b ] . bodies } , overlap : function ( a , b , c , d , e ) { if ( c = c || null , d = d || null , e = e || c , this . _result = ! 1 , this . _total = 0 , Array . isArray ( b ) ) for ( var f = 0 , g = b . length ; g > f ; f ++ ) this . collideHandler ( a , b [ f ] , c , d , e , ! 0 ) ; else this . collideHandler ( a , b , c , d , e , ! 0 ) ; return this . _total > 0 } , collide : function ( a , b , c , d , e ) { if ( c = c || null , d = d || null , e = e || c , this . _result = ! 1 , this . _total = 0 , Array . isArray ( b ) ) for ( var f = 0 , g = b . length ; g > f ; f ++ ) this . collideHandler ( a , b [ f ] , c , d , e , ! 1 ) ; else this . collideHandler ( a , b , c , d , e , ! 1 ) ; return this . _total > 0 } , collideHandler : function ( a , b , c , d , e , f ) { return "undefined" != typeof b || a . type !== Phaser . GROUP && a . type !== Phaser . EMITTER ? void ( a && b && a . exists && b . exists && ( a . type == Phaser . SPRITE || a . type == Phaser . TILESPRITE ? b . type == Phaser . SPRITE || b . type == Phaser . TILESPRITE ? this . collideSpriteVsSprite ( a , b , c , d , e , f ) : b . type == P
2014-11-11 14:31:31 +00:00
} return e . reportCollisionVsWorld ( 0 , b * d , 0 , d , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS } if ( 0 === d ) return e . reportCollisionVsWorld ( a * c , 0 , c , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var i = f . pos . x + c * f . xw , j = f . pos . y + d * f . yw , g = e . pos . x - i , h = e . pos . y - j , k = Math . sqrt ( g * g + h * h ) , l = e . radius - k ; return l > 0 ? ( 0 === k ? ( g = c / Math . SQRT2 , h = d / Math . SQRT2 ) : ( g /= k , h /= k ) , e . reportCollisionVsWorld ( g * l , h * l , g , h , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER ) : Phaser . Physics . Ninja . Circle . COL _NONE } , projCircle _45Deg : function ( a , b , c , d , e , f ) { var g , h = f . signx , i = f . signy ; if ( 0 === c ) if ( 0 === d ) { var j = f . sx , k = f . sy , l = e . pos . x - j * e . radius - f . pos . x , m = e . pos . y - k * e . radius - f . pos . y , n = l * j + m * k ; if ( 0 > n ) { j *= - n , k *= - n , b > a ? ( g = a , b = 0 , e . pos . x - f . pos . x < 0 && ( a *= - 1 ) ) : ( g = b , a = 0 , e . pos . y - f . pos . y < 0 && ( b *= - 1 ) ) ; var o = Math . sqrt ( j * j + k * k ) ; return o > g ? ( e . reportCollisionVsWorld ( a , b , a / g , b / g , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) : ( e . reportCollisionVsWorld ( j , k , f . sx , f . sy , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER ) } } else { if ( 0 > i * d ) return e . reportCollisionVsWorld ( 0 , b * d , 0 , d , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var j = f . sx , k = f . sy , l = e . pos . x - ( f . pos . x - h * f . xw ) , m = e . pos . y - ( f . pos . y + d * f . yw ) , p = l * - k + m * j ; if ( p * h * i > 0 ) { var q = Math . sqrt ( l * l + m * m ) , r = e . radius - q ; if ( r > 0 ) return l /= q , m /= q , e . reportCollisionVsWorld ( l * r , m * r , l , m , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } else { var n = l * j + m * k , r = e . radius - Math . abs ( n ) ; if ( r > 0 ) return e . reportCollisionVsWorld ( j * r , k * r , j , k , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } } else if ( 0 === d ) { if ( 0 > h * c ) return e . reportCollisionVsWorld ( a * c , 0 , c , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var j = f . sx , k = f . sy , l = e . pos . x - ( f . pos . x + c * f . xw ) , m = e . pos . y - ( f . pos . y - i * f . yw ) , p = l * - k + m * j ; if ( 0 > p * h * i ) { var q = Math . sqrt ( l * l + m * m ) , r = e . radius - q ; if ( r > 0 ) return l /= q , m /= q , e . reportCollisionVsWorld ( l * r , m * r , l , m , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } else { var n = l * j + m * k , r = e . radius - Math . abs ( n ) ; if ( r > 0 ) return e . reportCollisionVsWorld ( j * r , k * r , j , k , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } } else { if ( h * c + i * d > 0 ) return Phaser . Physics . Ninja . Circle . COL _NONE ; var s = f . pos . x + c * f . xw , t = f . pos . y + d * f . yw , u = e . pos . x - s , v = e . pos . y - t , q = Math . sqrt ( u * u + v * v ) , r = e . radius - q ; if ( r > 0 ) return 0 === q ? ( u = c / Math . SQRT2 , v = d / Math . SQRT2 ) : ( u /= q , v /= q ) , e . reportCollisionVsWorld ( u * r , v * r , u , v , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } return Phaser . Physics . Ninja . Circle . COL _NONE } , projCircle _Concave : function ( a , b , c , d , e , f ) { var g , h = f . signx , i = f . signy ; if ( 0 === c ) { if ( 0 === d ) { var j = f . pos . x + h * f . xw - e . pos . x , k = f . pos . y + i * f . yw - e . pos . y , l = 2 * f . xw , m = Math . sqrt ( l * l + 0 ) , n = Math . sqrt ( j * j + k * k ) , o = n + e . radius - m ; return o > 0 ? ( b > a ? ( g = a , b = 0 , e . pos . x - f . pos . x < 0 && ( a *= - 1 ) ) : ( g = b , a = 0 , e . pos . y - f . pos . y < 0 && ( b *= - 1 ) ) , o > g ? ( e . reportCollisionVsWorld ( a , b , a / g , b / g , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) : ( j /= n , k /= n , e . reportCollisionVsWorld ( j * o , k * o , j , k , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER ) ) : Phaser . Physics . Ninja . Circle . COL _NONE } if ( 0 > i * d ) return e . reportCollisionVsWorld ( 0 , b * d , 0 , d , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var p = f . pos . x - h * f . xw , q = f . pos . y + d * f . yw , r = e . pos . x - p , s = e . pos . y - q , n = Math . sqrt ( r * r + s * s ) , o = e . radius - n ; if ( o > 0 ) return 0 === n ? ( r = 0 , s = d ) : ( r /= n , s /= n ) , e . reportCollisionVsWorld ( r * o , s * o , r , s , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } else if ( 0 === d ) { if ( 0 > h * c ) return e . reportCollisionVsWorld ( a * c , 0 , c , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var p = f . pos . x + c * f . xw , q = f . pos . y - i * f . yw , r = e . pos . x - p , s = e . pos . y - q , n = Math . sqrt ( r * r + s * s ) , o = e . radius - n ; if ( o > 0 ) return 0 === n ? ( r = c , s = 0 ) : ( r /= n , s /= n ) , e . reportCollisionVsWorld ( r * o , s * o , r , s , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } else { if ( h * c + i * d > 0 ) return Phaser . Physics . Ninja . Circle . COL _NONE ; var p = f . pos . x + c * f . xw , q = f . pos . y + d * f . yw , r = e . pos . x - p , s = e . pos . y - q , n = Math . sqrt ( r * r + s * s ) , o = e . radius - n ; if ( o > 0 ) return 0 === n ? ( r = c / Math . SQRT2 , s = d / Math . SQRT2 ) : ( r /= n , s /= n ) , e . reportCollisionVsWorld ( r * o , s * o , r , s , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } return Phaser . Physics . Ninja . Circle . COL _NONE } , projCircle _Convex : function ( a , b , c , d , e , f ) { var g , h = f . signx , i = f . signy ; if ( 0 === c ) if ( 0 === d ) { var j = e . pos . x - ( f . pos . x - h * f . xw ) , k = e . pos . y - ( f . pos . y - i * f . yw ) , l = 2 * f . xw , m = Math . sqrt ( l * l + 0 ) , n = Math . sqrt ( j * j + k * k ) , o = m + e . radius - n ; if ( o > 0 ) return b > a ? ( g = a , b = 0 , e . pos . x - f . pos . x < 0 && ( a *= - 1 ) ) : ( g = b , a = 0 , e . pos . y - f . pos . y < 0 && ( b *= - 1 ) ) , o > g ? ( e . reportCollisionVsWorld ( a , b , a / g , b / g , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) : ( j /= n , k /= n , e . reportCollisionVsW