2016-02-18 14:41:53 +00:00
/* Phaser v2.4.6 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */
2015-02-25 02:59:00 +00:00
2016-02-17 13:27:09 +00:00
( function ( ) { var a = this , b = b || { } ; return b . game = null , b . WEBGL _RENDERER = 0 , b . CANVAS _RENDERER = 1 , b . VERSION = "v2.2.9" , b . _UID = 0 , "undefined" != typeof Float32Array ? ( b . Float32Array = Float32Array , b . Uint16Array = Uint16Array , b . Uint32Array = Uint32Array , b . ArrayBuffer = ArrayBuffer ) : ( b . Float32Array = Array , b . Uint16Array = Array ) , 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 . DisplayObject = function ( ) { this . position = new b . Point ( 0 , 0 ) , this . scale = new b . Point ( 1 , 1 ) , this . pivot = new b . Point ( 0 , 0 ) , this . rotation = 0 , this . alpha = 1 , this . visible = ! 0 , this . hitArea = null , this . renderable = ! 1 , this . parent = null , this . stage = null , this . worldAlpha = 1 , this . worldTransform = new b . Matrix , this . worldPosition = new b . Point ( 0 , 0 ) , this . worldScale = new b . Point ( 1 , 1 ) , this . worldRotation = 0 , this . _sr = 0 , this . _cr = 1 , this . filterArea = null , this . _bounds = new b . Rectangle ( 0 , 0 , 1 , 1 ) , this . _currentBounds = null , this . _mask = null , this . _cacheAsBitmap = ! 1 , this . _cacheIsDirty = ! 1 } , b . DisplayObject . prototype . constructor = b . DisplayObject , b . DisplayObject . prototype . destroy = function ( ) { if ( this . children ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . destroy ( ) ; this . children = [ ] } this . hitArea = null , this . parent = null , this . stage = null , this . worldTransform = null , this . filterArea = null , this . _bounds = null , this . _currentBounds = null , this . _mask = null , this . renderable = ! 1 , this . _destroyCachedSprite ( ) } , Object . defineProperty ( b . DisplayObject . prototype , "worldVisible" , { get : function ( ) { var a = this ; do { if ( ! a . visible ) return ! 1 ; a = a . parent } while ( a ) ; return ! 0 } } ) , Object . defineProperty ( b . DisplayObject . prototype , "mask" , { get : function ( ) { return this . _mask } , set : function ( a ) { this . _mask && ( this . _mask . isMask = ! 1 ) , this . _mask = a , this . _mask && ( this . _mask . isMask = ! 0 ) } } ) , Object . defineProperty ( b . DisplayObject . prototype , "filters" , { get : function ( ) { return this . _filters } , set : function ( a ) { if ( a ) { for ( var c = [ ] , d = 0 ; d < a . length ; d ++ ) for ( var e = a [ d ] . passes , f = 0 ; f < e . length ; f ++ ) c . push ( e [ f ] ) ; this . _filterBlock = { target : this , filterPasses : c } } this . _filters = a , this . blendMode && this . blendMode === b . blendModes . MULTIPLY && ( this . blendMode = b . blendModes . NORMAL ) } } ) , Object . defineProperty ( b . DisplayObject . prototype , "cacheAsBitmap" , { get : function ( ) { return this . _cacheAsBitmap } , set : function ( a ) { this . _cacheAsBitmap !== a && ( a ? this . _generateCachedSprite ( ) : this . _destroyCachedSprite ( ) , this . _cacheAsBitmap = a ) } } ) , b . DisplayObject . prototype . updateTransform = function ( a ) { if ( a || this . parent || this . game ) { var c = this . parent ; a ? c = a : this . parent || ( c = this . game . world ) ; var d , e , f , g , h , i , j = c . worldTransform , k = this . worldTransform ; this . rotation % b . PI _2 ? ( this . rotation !== this . rotationCache && ( this . rotationCache = this . rotation , this . _sr = Math . sin ( this . rotation ) , this . _cr = Math . cos ( this . rotation ) ) , d = this . _cr * this . scale . x , e = this . _sr * this . scale . x , f = - this . _sr * this . scale . y , g = this . _cr * this . scale . y , h = this . position . x , i = this . position . y , ( this . pivot . x || this . pivot . y ) && ( h -= this . pivot . x * d + this . pivot . y * f , i -= this . pivot . x * e + this . pivot . y * g ) , k . a = d * j . a + e * j . c , k . b = d * j . b + e * j . d , k . c = f * j . a + g * j . c , k . d = f * j . b + g * j . d , k . tx = h * j . a + i * j . c + j . tx , k . ty = h * j . b + i * j . d + j . ty ) : ( d = this . scale . x , g = this . scale . y , h = this . position . x - this . pivot . x * d , i = this . position . y - this . pivot . y * g , k . a = d * j . a , k . b = d * j . b , k . c = g * j . c , k . d = g * j . d , k . tx = h * j . a + i * j . c + j . tx , k . ty = h * j . b + i * j . d + j . ty ) , this . worldAlpha = this . alpha * c . worldAlpha , this . worldPosition . set ( k . tx , k . ty ) , this . worldScale . set ( Math . sqrt ( k . a * k . a + k . b * k . b ) , Math . sqrt ( k . c * k . c + k . d * k . d ) ) , this . worldRotation = Math . atan2 ( - k . c , k . d ) , this . _currentBounds = null , this . transformCallback && this . transformCallback . call ( this . transformCallbackContext , k , j ) } } , b . DisplayObject . prototype . displayObjectUpdateTransform = b . DisplayObject . prototype . updateTransform , b . DisplayObject . prototype . getBounds = function ( a ) { return a = a , b . EmptyRectangle } , b . DisplayObject . prototype . getLocalBounds = function ( ) { return this . getBounds ( b . identityMatrix ) } , b . DisplayObject . prototype . setStageReference = function ( a ) { this . stage = a } , b . DisplayObject . prototype . preUpdate = function ( ) { } , b . DisplayObject . prototype . generateTexture = function ( a , c , d ) { var e = this . getLocalBounds ( ) , f = new b . RenderTexture ( 0 | e . width , 0 | e . height , d , c , a ) ; return b . DisplayObject . _tempMatrix . tx = - e . x , b . DisplayObject . _tempMatrix . ty = - e . y , f . render ( this , b . DisplayObject . _tempMatrix ) , f }
this . renderSession . maskManager = this . maskManager , this . renderSession . filterManager = this . filterManager , this . renderSession . blendModeManager = this . blendModeManager , this . renderSession . spriteBatch = this . spriteBatch , this . renderSession . stencilManager = this . stencilManager , this . renderSession . renderer = this , this . renderSession . resolution = this . resolution , this . initContext ( ) , this . mapBlendModes ( ) } , b . WebGLRenderer . prototype . constructor = b . WebGLRenderer , b . WebGLRenderer . prototype . initContext = function ( ) { var a = this . view . getContext ( "webgl" , this . _contextOptions ) || this . view . getContext ( "experimental-webgl" , this . _contextOptions ) ; if ( this . gl = a , ! a ) throw new Error ( "This browser does not support webGL. Try using the canvas renderer" ) ; this . glContextId = a . id = b . WebGLRenderer . glContextId ++ , b . glContexts [ this . glContextId ] = a , b . instances [ this . glContextId ] = this , a . disable ( a . DEPTH _TEST ) , a . disable ( a . CULL _FACE ) , a . enable ( a . BLEND ) , this . shaderManager . setContext ( a ) , this . spriteBatch . setContext ( a ) , this . maskManager . setContext ( a ) , this . filterManager . setContext ( a ) , this . blendModeManager . setContext ( a ) , this . stencilManager . setContext ( a ) , this . renderSession . gl = this . gl , this . resize ( this . width , this . height ) } , b . WebGLRenderer . prototype . render = function ( a ) { if ( ! this . contextLost ) { a . updateTransform ( ) ; var b = this . gl ; b . viewport ( 0 , 0 , this . width , this . height ) , b . bindFramebuffer ( b . FRAMEBUFFER , null ) , this . game . clearBeforeRender && ( b . clearColor ( a . _bgColor . r , a . _bgColor . g , a . _bgColor . b , a . _bgColor . a ) , b . clear ( b . COLOR _BUFFER _BIT ) ) , this . renderDisplayObject ( a , this . projection ) } } , b . WebGLRenderer . prototype . renderDisplayObject = function ( a , c , d , e ) { this . renderSession . blendModeManager . setBlendMode ( b . blendModes . NORMAL ) , this . renderSession . drawCount = 0 , this . renderSession . flipY = d ? - 1 : 1 , this . renderSession . projection = c , this . renderSession . offset = this . offset , this . spriteBatch . begin ( this . renderSession ) , this . filterManager . begin ( this . renderSession , d ) , a . _renderWebGL ( this . renderSession , e ) , this . spriteBatch . end ( ) } , b . WebGLRenderer . prototype . resize = function ( a , b ) { this . width = a * this . resolution , this . height = b * this . resolution , this . view . width = this . width , this . view . height = this . height , this . autoResize && ( this . view . style . width = this . width / this . resolution + "px" , this . view . style . height = this . height / this . resolution + "px" ) , this . gl . viewport ( 0 , 0 , this . width , this . height ) , this . projection . x = this . width / 2 / this . resolution , this . projection . y = - this . height / 2 / this . resolution } , b . WebGLRenderer . prototype . updateTexture = function ( a ) { if ( ! a . hasLoaded ) return ! 1 ; var c = this . gl ; return a . _glTextures [ c . id ] || ( a . _glTextures [ c . id ] = c . createTexture ( ) ) , c . bindTexture ( c . TEXTURE _2D , a . _glTextures [ c . id ] ) , c . pixelStorei ( c . UNPACK _PREMULTIPLY _ALPHA _WEBGL , a . premultipliedAlpha ) , c . texImage2D ( c . TEXTURE _2D , 0 , c . RGBA , c . RGBA , c . UNSIGNED _BYTE , a . source ) , c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _MAG _FILTER , a . scaleMode === b . scaleModes . LINEAR ? c . LINEAR : c . NEAREST ) , a . mipmap && b . isPowerOfTwo ( a . width , a . height ) ? ( c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _MIN _FILTER , a . scaleMode === b . scaleModes . LINEAR ? c . LINEAR _MIPMAP _LINEAR : c . NEAREST _MIPMAP _NEAREST ) , c . generateMipmap ( c . TEXTURE _2D ) ) : c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _MIN _FILTER , a . scaleMode === b . scaleModes . LINEAR ? c . LINEAR : c . NEAREST ) , a . _powerOf2 ? ( c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _WRAP _S , c . REPEAT ) , c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _WRAP _T , c . REPEAT ) ) : ( c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _WRAP _S , c . CLAMP _TO _EDGE ) , c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _WRAP _T , c . CLAMP _TO _EDGE ) ) , a . _dirty [ c . id ] = ! 1 , ! 0 } , b . WebGLRenderer . prototype . destroy = function ( ) { b . glContexts [ this . glContextId ] = null , this . projection = null , this . offset = null , this . shaderManager . destroy ( ) , this . spriteBatch . destroy ( ) , this . maskManager . destroy ( ) , this . filterManager . destroy ( ) , this . shaderManager = null , this . spriteBatch = null , this . maskManager = null , this . filterManager = null , this . gl = null , this . renderSession = null , b . CanvasPool . remove ( this ) , b . instances [ this . glContextId ] = null , b . WebGLRenderer . glContextId -- } , b . WebGLRenderer . prototype . mapBlendModes = function ( ) { var a = this . gl ; if ( ! b . blendModesWebGL ) { var c = [ ] , d = b . blendModes ; c [ d . NORMAL ] = [ a . ONE , a . ONE _MINUS _SRC _ALPHA ] , c [ d . ADD ] = [ a . SRC _ALPHA , a . DST _ALPHA ] , c [ d . MULTIPLY ] = [ a . DST _COLOR , a . ONE _MINUS _SRC _ALPHA ] , c [ d . SCREEN
2016-02-18 14:41:53 +00:00
} , b . CanvasTinter . checkInverseAlpha = function ( ) { var a = new b . CanvasBuffer ( 2 , 1 ) ; a . context . fillStyle = "rgba(10, 20, 30, 0.5)" , a . context . fillRect ( 0 , 0 , 1 , 1 ) ; var c = a . context . getImageData ( 0 , 0 , 1 , 1 ) ; if ( null === c ) return ! 1 ; a . context . putImageData ( c , 1 , 0 ) ; var d = a . context . getImageData ( 1 , 0 , 1 , 1 ) ; return d . data [ 0 ] === c . data [ 0 ] && d . data [ 1 ] === c . data [ 1 ] && d . data [ 2 ] === c . data [ 2 ] && d . data [ 3 ] === c . data [ 3 ] } , b . CanvasTinter . canHandleAlpha = b . CanvasTinter . checkInverseAlpha ( ) , b . CanvasTinter . canUseMultiply = b . canUseNewCanvasBlendModes ( ) , b . CanvasTinter . tintMethod = b . CanvasTinter . canUseMultiply ? b . CanvasTinter . tintWithMultiply : b . CanvasTinter . tintWithPerPixel , b . CanvasRenderer = function ( a ) { this . game = a , b . defaultRenderer || ( b . defaultRenderer = this ) , this . type = b . CANVAS _RENDERER , this . resolution = a . resolution , this . clearBeforeRender = a . clearBeforeRender , this . transparent = a . transparent , this . autoResize = ! 1 , this . width = a . width * this . resolution , this . height = a . height * this . resolution , this . view = a . canvas , this . context = this . view . getContext ( "2d" , { alpha : this . transparent } ) , this . refresh = ! 0 , this . count = 0 , this . maskManager = new b . CanvasMaskManager , this . renderSession = { context : this . context , maskManager : this . maskManager , scaleMode : null , smoothProperty : Phaser . Canvas . getSmoothingPrefix ( this . context ) , roundPixels : ! 1 } , this . mapBlendModes ( ) , this . resize ( this . width , this . height ) } , b . CanvasRenderer . prototype . constructor = b . CanvasRenderer , b . CanvasRenderer . prototype . render = function ( a ) { a . updateTransform ( ) , this . context . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) , this . context . globalAlpha = 1 , this . renderSession . currentBlendMode = 0 , this . context . globalCompositeOperation = "source-over" , navigator . isCocoonJS && this . view . screencanvas && ( this . context . fillStyle = "black" , this . context . clear ( ) ) , this . clearBeforeRender && ( this . transparent ? this . context . clearRect ( 0 , 0 , this . width , this . height ) : ( this . context . fillStyle = a . _bgColor . rgba , this . context . fillRect ( 0 , 0 , this . width , this . height ) ) ) , this . renderDisplayObject ( a ) } , b . CanvasRenderer . prototype . destroy = function ( a ) { void 0 === a && ( a = ! 0 ) , a && this . view . parent && this . view . parent . removeChild ( this . view ) , this . view = null , this . context = null , this . maskManager = null , this . renderSession = null } , b . CanvasRenderer . prototype . resize = function ( a , b ) { this . width = a * this . resolution , this . height = b * this . resolution , this . view . width = this . width , this . view . height = this . height , this . autoResize && ( this . view . style . width = this . width / this . resolution + "px" , this . view . style . height = this . height / this . resolution + "px" ) } , b . CanvasRenderer . prototype . renderDisplayObject = function ( a , b , c ) { this . renderSession . context = b || this . context , this . renderSession . resolution = this . resolution , a . _renderCanvas ( this . renderSession , c ) } , b . CanvasRenderer . prototype . mapBlendModes = function ( ) { if ( ! b . blendModesCanvas ) { var a = [ ] , c = b . blendModes , d = b . canUseNewCanvasBlendModes ( ) ; a [ c . NORMAL ] = "source-over" , a [ c . ADD ] = "lighter" , a [ c . MULTIPLY ] = d ? "multiply" : "source-over" , a [ c . SCREEN ] = d ? "screen" : "source-over" , a [ c . OVERLAY ] = d ? "overlay" : "source-over" , a [ c . DARKEN ] = d ? "darken" : "source-over" , a [ c . LIGHTEN ] = d ? "lighten" : "source-over" , a [ c . COLOR _DODGE ] = d ? "color-dodge" : "source-over" , a [ c . COLOR _BURN ] = d ? "color-burn" : "source-over" , a [ c . HARD _LIGHT ] = d ? "hard-light" : "source-over" , a [ c . SOFT _LIGHT ] = d ? "soft-light" : "source-over" , a [ c . DIFFERENCE ] = d ? "difference" : "source-over" , a [ c . EXCLUSION ] = d ? "exclusion" : "source-over" , a [ c . HUE ] = d ? "hue" : "source-over" , a [ c . SATURATION ] = d ? "saturation" : "source-over" , a [ c . COLOR ] = d ? "color" : "source-over" , a [ c . LUMINOSITY ] = d ? "luminosity" : "source-over" , b . blendModesCanvas = a } } , b . BaseTextureCache = { } , b . BaseTextureCacheIdGenerator = 0 , b . BaseTexture = function ( a , c ) { this . resolution = 1 , this . width = 100 , this . height = 100 , this . scaleMode = c || b . scaleModes . DEFAULT , this . hasLoaded = ! 1 , this . source = a , this . _UID = b . _UID ++ , this . premultipliedAlpha = ! 0 , this . _glTextures = [ ] , this . mipmap = ! 1 , this . _dirty = [ ! 0 , ! 0 , ! 0 , ! 0 ] , a && ( ( this . source . complete || this . source . getContext ) && this . source . width && this . source . height && ( this . hasLoaded = ! 0 , this . width = this . source . naturalWidth || this . source . width , this . height = this . source . naturalHeight || this . source . height , this . dirty ( ) ) , this . skipRender = ! 1 , this . imageUrl = null , this . _powerOf2 = ! 1 ) } , b . BaseTexture . prototype . constructor = b . BaseTexture , b . BaseTexture . prototype . forceLoaded = fu
this . type = c . ELLIPSE } , c . Ellipse . prototype = { setTo : function ( a , b , c , d ) { return this . x = a , this . y = b , this . width = c , this . height = d , this } , getBounds : function ( ) { return new c . Rectangle ( this . x - this . width , this . y - this . height , this . width , this . height ) } , copyFrom : function ( a ) { return this . setTo ( a . x , a . y , a . width , a . height ) } , copyTo : function ( a ) { return a . x = this . x , a . y = this . y , a . width = this . width , a . height = this . height , a } , clone : function ( a ) { return void 0 === a || null === a ? a = new c . Ellipse ( this . x , this . y , this . width , this . height ) : a . setTo ( this . x , this . y , this . width , this . height ) , a } , contains : function ( a , b ) { return c . Ellipse . contains ( this , a , b ) } , random : function ( a ) { void 0 === a && ( a = new c . Point ) ; var b = Math . random ( ) * Math . PI * 2 , d = Math . random ( ) ; return a . x = Math . sqrt ( d ) * Math . cos ( b ) , a . y = Math . sqrt ( d ) * Math . sin ( b ) , a . x = this . x + a . x * this . width / 2 , a . y = this . y + a . y * this . height / 2 , a } , toString : function ( ) { return "[{Phaser.Ellipse (x=" + this . x + " y=" + this . y + " width=" + this . width + " height=" + this . height + ")}]" } } , c . Ellipse . prototype . constructor = c . Ellipse , Object . defineProperty ( c . Ellipse . prototype , "left" , { get : function ( ) { return this . x } , set : function ( a ) { this . x = a } } ) , Object . defineProperty ( c . Ellipse . prototype , "right" , { get : function ( ) { return this . x + this . width } , set : function ( a ) { a < this . x ? this . width = 0 : this . width = a - this . x } } ) , Object . defineProperty ( c . Ellipse . prototype , "top" , { get : function ( ) { return this . y } , set : function ( a ) { this . y = a } } ) , Object . defineProperty ( c . Ellipse . prototype , "bottom" , { get : function ( ) { return this . y + this . height } , set : function ( a ) { a < this . y ? this . height = 0 : this . height = a - this . y } } ) , Object . defineProperty ( c . Ellipse . prototype , "empty" , { get : function ( ) { return 0 === this . width || 0 === this . height } , set : function ( a ) { a === ! 0 && this . setTo ( 0 , 0 , 0 , 0 ) } } ) , c . Ellipse . contains = function ( a , b , c ) { if ( a . width <= 0 || a . height <= 0 ) return ! 1 ; var d = ( b - a . x ) / a . width - . 5 , e = ( c - a . y ) / a . height - . 5 ; return d *= d , e *= e , . 25 > d + e } , PIXI . Ellipse = c . Ellipse , 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 ) , this . type = c . LINE } , 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 void 0 === 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 ) } , fromAngle : function ( a , b , c , d ) { return this . start . setTo ( a , b ) , this . end . setTo ( a + Math . cos ( c ) * d , b + Math . sin ( c ) * d ) , this } , rotate : function ( a , b ) { var c = ( this . start . x + this . end . x ) / 2 , d = ( this . start . y + this . end . y ) / 2 ; return this . start . rotate ( c , d , a , b ) , this . end . rotate ( c , d , a , b ) , this } , rotateAround : function ( a , b , c , d ) { return this . start . rotate ( a , b , c , d ) , this . end . rotate ( a , b , c , d ) , this } , intersects : function ( a , b , d ) { return c . Line . intersectsPoints ( this . start , this . end , a . start , a . end , b , d ) } , reflect : function ( a ) { return c . Line . reflect ( this , a ) } , midPoint : function ( a ) { return void 0 === a && ( a = new c . Point ) , a . x = ( this . start . x + this . end . x ) / 2 , a . y = ( this . start . y + this . end . y ) / 2 , a } , centerOn : function ( a , b ) { var c = ( this . start . x + this . end . x ) / 2 , d = ( this . start . y + this . end . y ) / 2 , e = a - c , f = b - d ; this . start . add ( e , f ) , this . end . add ( e , f ) } , 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 } , random : function ( a ) { void 0 === a && ( a = new c . Point ) ; var b = Math . random ( ) ; return a . x = this . start . x + b * ( this . end . x - this . start . x ) , a . y = this . start . y + b * ( this . end . y - this . start . y ) , a } , coordinatesOnLine : function ( a , b ) { void 0 === a && ( a = 1 ) , void 0 === 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 void 0 === 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
} , resume : function ( ) { this . _created && this . onResumedCallback && this . onResumedCallback . call ( this . callbackContext , this . game ) } , update : function ( ) { this . _created ? this . onUpdateCallback && this . onUpdateCallback . call ( this . callbackContext , this . game ) : this . onLoadUpdateCallback && this . onLoadUpdateCallback . call ( this . callbackContext , this . game ) } , pauseUpdate : function ( ) { this . _created ? this . onPauseUpdateCallback && this . onPauseUpdateCallback . call ( this . callbackContext , this . game ) : this . onLoadUpdateCallback && this . onLoadUpdateCallback . call ( this . callbackContext , this . game ) } , preRender : function ( a ) { this . _created && this . onPreRenderCallback && this . onPreRenderCallback . call ( this . callbackContext , this . game , a ) } , resize : function ( a , b ) { this . onResizeCallback && this . onResizeCallback . call ( this . callbackContext , a , b ) } , render : function ( ) { this . _created ? this . onRenderCallback && ( this . game . renderType === c . CANVAS ? ( this . game . context . save ( ) , this . game . context . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) , this . onRenderCallback . call ( this . callbackContext , this . game ) , this . game . context . restore ( ) ) : this . onRenderCallback . call ( this . callbackContext , this . game ) ) : this . onLoadRenderCallback && this . onLoadRenderCallback . call ( this . callbackContext , this . game ) } , destroy : function ( ) { this . _clearWorld = ! 0 , this . _clearCache = ! 0 , this . clearCurrentState ( ) , this . callbackContext = null , this . onInitCallback = null , this . onShutDownCallback = null , this . onPreloadCallback = null , this . onLoadRenderCallback = null , this . onLoadUpdateCallback = null , this . onCreateCallback = null , this . onUpdateCallback = null , this . onRenderCallback = null , this . onPausedCallback = null , this . onResumedCallback = null , this . onPauseUpdateCallback = null , this . game = null , this . states = { } , this . _pendingState = null , this . current = "" } } , c . StateManager . prototype . constructor = c . StateManager , Object . defineProperty ( c . StateManager . prototype , "created" , { get : function ( ) { return this . _created } } ) , c . Signal = function ( ) { } , c . Signal . prototype = { _bindings : null , _prevParams : null , memorize : ! 1 , _shouldPropagate : ! 0 , active : ! 0 , _boundDispatch : ! 0 , validateListener : function ( a , b ) { if ( "function" != typeof a ) throw new Error ( "Phaser.Signal: listener is a required param of {fn}() and should be a Function." . replace ( "{fn}" , b ) ) } , _registerListener : function ( a , b , d , e , f ) { var g , h = this . _indexOfListener ( a , d ) ; if ( - 1 !== h ) { if ( g = this . _bindings [ h ] , g . isOnce ( ) !== b ) throw new Error ( "You cannot add" + ( b ? "" : "Once" ) + "() then add" + ( b ? "Once" : "" ) + "() the same listener without removing the relationship first." ) } else g = new c . SignalBinding ( this , a , b , d , e , f ) , this . _addBinding ( g ) ; return this . memorize && this . _prevParams && g . execute ( this . _prevParams ) , g } , _addBinding : function ( a ) { this . _bindings || ( this . _bindings = [ ] ) ; 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 ) { if ( ! this . _bindings ) return - 1 ; void 0 === b && ( b = null ) ; 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 ) { this . validateListener ( a , "add" ) ; var d = [ ] ; if ( arguments . length > 3 ) for ( var e = 3 ; e < arguments . length ; e ++ ) d . push ( arguments [ e ] ) ; return this . _registerListener ( a , ! 1 , b , c , d ) } , addOnce : function ( a , b , c ) { this . validateListener ( a , "addOnce" ) ; var d = [ ] ; if ( arguments . length > 3 ) for ( var e = 3 ; e < arguments . length ; e ++ ) d . push ( arguments [ e ] ) ; return this . _registerListener ( a , ! 0 , b , c , d ) } , 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 ) { if ( void 0 === a && ( a = null ) , this . _bindings ) { 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 ? this . _bindings . length : 0 } , halt : function ( ) { this . _shouldPropagate = ! 1 } , dispatch : function ( ) { if ( this . active && this . _bindings ) { 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 . _
enableDebug : ! 0 } , "undefined" != typeof a && ( this . _width = a ) , "undefined" != typeof b && ( this . _height = b ) , "undefined" != typeof d && ( this . renderType = d ) , "undefined" != typeof e && ( this . parent = e ) , "undefined" != typeof g && ( this . transparent = g ) , "undefined" != typeof h && ( this . antialias = h ) , this . rnd = new c . RandomDataGenerator ( [ ( Date . now ( ) * Math . random ( ) ) . toString ( ) ] ) , this . state = new c . StateManager ( this , f ) ) , this . device . whenReady ( this . boot , this ) , this } , c . Game . prototype = { parseConfig : function ( a ) { this . config = a , void 0 === a . enableDebug && ( this . config . enableDebug = ! 0 ) , a . width && ( this . _width = a . width ) , a . height && ( this . _height = a . height ) , a . renderer && ( this . renderType = a . renderer ) , a . parent && ( this . parent = a . parent ) , void 0 !== a . transparent && ( this . transparent = a . transparent ) , void 0 !== a . antialias && ( this . antialias = a . antialias ) , a . resolution && ( this . resolution = a . resolution ) , void 0 !== a . preserveDrawingBuffer && ( this . preserveDrawingBuffer = a . preserveDrawingBuffer ) , a . physicsConfig && ( this . physicsConfig = a . physicsConfig ) ; var b = [ ( Date . now ( ) * Math . random ( ) ) . toString ( ) ] ; a . seed && ( b = a . seed ) , this . rnd = new c . RandomDataGenerator ( b ) ; var d = null ; a . state && ( d = a . state ) , this . state = new c . StateManager ( this , d ) } , boot : function ( ) { this . isBooted || ( this . onPause = new c . Signal , this . onResume = new c . Signal , this . onBlur = new c . Signal , this . onFocus = new c . Signal , this . isBooted = ! 0 , PIXI . game = this , this . math = c . Math , this . scale = new c . ScaleManager ( this , this . _width , this . _height ) , this . stage = new c . Stage ( this ) , this . setUpRenderer ( ) , this . world = new c . World ( this ) , this . add = new c . GameObjectFactory ( this ) , this . make = new c . GameObjectCreator ( this ) , this . cache = new c . Cache ( this ) , this . load = new c . Loader ( this ) , this . time = new c . Time ( this ) , this . tweens = new c . TweenManager ( this ) , this . input = new c . Input ( this ) , this . sound = new c . SoundManager ( this ) , this . physics = new c . Physics ( this , this . physicsConfig ) , this . particles = new c . Particles ( this ) , this . create = new c . Create ( this ) , this . plugins = new c . PluginManager ( this ) , this . net = new c . Net ( this ) , this . time . boot ( ) , this . stage . boot ( ) , this . world . boot ( ) , this . scale . boot ( ) , this . input . boot ( ) , this . sound . boot ( ) , this . state . boot ( ) , this . config . enableDebug ? ( this . debug = new c . Utils . Debug ( this ) , this . debug . boot ( ) ) : this . debug = { preUpdate : function ( ) { } , update : function ( ) { } , reset : function ( ) { } } , this . showDebugHeader ( ) , this . isRunning = ! 0 , this . config && this . config . forceSetTimeOut ? this . raf = new c . RequestAnimationFrame ( this , this . config . forceSetTimeOut ) : this . raf = new c . RequestAnimationFrame ( this , ! 1 ) , this . _kickstart = ! 0 , window . focus && ( ! window . PhaserGlobal || window . PhaserGlobal && ! window . PhaserGlobal . stopFocus ) && window . focus ( ) , this . raf . start ( ) ) } , showDebugHeader : function ( ) { if ( ! window . PhaserGlobal || ! window . PhaserGlobal . hideBanner ) { var a = c . VERSION , b = "Canvas" , d = "HTML Audio" , e = 1 ; if ( this . renderType === c . WEBGL ? ( b = "WebGL" , e ++ ) : this . renderType == c . HEADLESS && ( b = "Headless" ) , this . device . webAudio && ( d = "WebAudio" , e ++ ) , this . device . chrome ) { for ( var f = [ "%c %c %c Phaser v" + a + " | Pixi.js " + PIXI . VERSION + " | " + b + " | " + d + " %c %c %c http://phaser.io %c♥%c♥%c♥" , "background: #9854d8" , "background: #6c2ca7" , "color: #ffffff; background: #450f78;" , "background: #6c2ca7" , "background: #9854d8" , "background: #ffffff" ] , g = 0 ; 3 > g ; g ++ ) e > g ? f . push ( "color: #ff2424; background: #fff" ) : f . push ( "color: #959595; background: #fff" ) ; console . log . apply ( console , f ) } else window . console && console . log ( "Phaser v" + a + " | Pixi.js " + PIXI . VERSION + " | " + b + " | " + d + " | http://phaser.io" ) } } , setUpRenderer : function ( ) { if ( this . canvas = c . Canvas . create ( this , this . width , this . height , this . config . canvasID , ! 0 ) , this . config . canvasStyle ? this . canvas . style = this . config . canvasStyle : this . canvas . style [ "-webkit-full-screen" ] = "width: 100%; height: 100%" , this . renderType === c . HEADLESS || this . renderType === c . CANVAS || this . renderType === c . AUTO && ! this . device . webGL ) { if ( ! this . device . canvas ) throw new Error ( "Phaser.Game - Cannot create Canvas or WebGL context, aborting." ) ; this . renderType = c . CANVAS , this . renderer = new PIXI . CanvasRenderer ( this ) , this . context = this . renderer . context } else this . renderType = c . WEBGL , this . renderer = new PIXI . WebGLRenderer ( this ) , this . context = null , this . canvas . addEventListener ( "webglcontextlost" , this . contextLost . bind ( this ) , ! 1 ) , this . canvas . addEventListener ( " webgl
2016-02-17 13:27:09 +00:00
this } , update : function ( ) { var a = this . game . input ; this . active && ( this . dirty && ( a . interactiveItems . total > 0 && this . processInteractiveObjects ( ! 1 ) , this . dirty = ! 1 ) , this . _holdSent === ! 1 && this . duration >= a . holdRate && ( ( a . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || a . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || a . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === a . totalActivePointers ) && a . onHold . dispatch ( this ) , this . _holdSent = ! 0 ) , a . recordPointerHistory && this . game . time . time >= this . _nextDrop && ( this . _nextDrop = this . game . time . time + a . recordRate , this . _history . push ( { x : this . position . x , y : this . position . y } ) , this . _history . length > a . recordLimit && this . _history . shift ( ) ) ) } , move : function ( a , b ) { var d = this . game . input ; if ( ! d . pollLocked ) { if ( void 0 === b && ( b = ! 1 ) , void 0 !== a . button && ( this . button = a . button ) , b && this . isMouse && this . updateButtons ( a ) , this . clientX = a . clientX , this . clientY = a . clientY , this . pageX = a . pageX , this . pageY = a . pageY , this . screenX = a . screenX , this . screenY = a . screenY , this . isMouse && d . mouse . locked && ! b && ( this . rawMovementX = a . movementX || a . mozMovementX || a . webkitMovementX || 0 , this . rawMovementY = a . movementY || a . mozMovementY || a . webkitMovementY || 0 , this . movementX += this . rawMovementX , this . movementY += this . rawMovementY ) , this . x = ( this . pageX - this . game . scale . offset . x ) * d . scale . x , this . y = ( this . pageY - this . game . scale . offset . y ) * d . scale . y , this . position . setTo ( this . x , this . y ) , this . circle . x = this . x , this . circle . y = this . y , ( d . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || d . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || d . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === d . totalActivePointers ) && ( d . activePointer = this , d . x = this . x , d . y = this . y , d . position . setTo ( d . x , d . y ) , d . circle . x = d . x , d . circle . y = d . y ) , this . withinGame = this . game . scale . bounds . contains ( this . pageX , this . pageY ) , this . game . paused ) return this ; for ( var e = d . moveCallbacks . length ; e -- ; ) d . moveCallbacks [ e ] . callback . call ( d . moveCallbacks [ e ] . context , this , this . x , this . y , b ) ; return null !== this . targetObject && this . targetObject . isDragged === ! 0 ? this . targetObject . update ( this ) === ! 1 && ( this . targetObject = null ) : d . interactiveItems . total > 0 && this . processInteractiveObjects ( b ) , this } } , processInteractiveObjects : function ( a ) { for ( var b = Number . MAX _VALUE , c = - 1 , d = null , e = this . game . input . interactiveItems . first ; e ; ) e . checked = ! 1 , e . validForInput ( c , b , ! 1 ) && ( e . checked = ! 0 , ( a && e . checkPointerDown ( this , ! 0 ) || ! a && e . checkPointerOver ( this , ! 0 ) ) && ( b = e . sprite . renderOrderID , c = e . priorityID , d = e ) ) , e = this . game . input . interactiveItems . next ; for ( var e = this . game . input . interactiveItems . first ; e ; ) ! e . checked && e . validForInput ( c , b , ! 0 ) && ( a && e . checkPointerDown ( this , ! 1 ) || ! a && e . checkPointerOver ( this , ! 1 ) ) && ( b = e . sprite . renderOrderID , c = e . priorityID , d = e ) , e = this . game . input . interactiveItems . next ; return null === d ? this . targetObject && ( this . targetObject . _pointerOutHandler ( this ) , this . targetObject = null ) : null === this . targetObject ? ( this . targetObject = d , d . _pointerOverHandler ( this ) ) : this . targetObject === d ? d . update ( this ) === ! 1 && ( this . targetObject = null ) : ( this . targetObject . _pointerOutHandler ( this ) , this . targetObject = d , this . targetObject . _pointerOverHandler ( this ) ) , null !== this . targetObject } , leave : function ( a ) { this . withinGame = ! 1 , this . move ( a , ! 1 ) } , stop : function ( a ) { var b = this . game . input ; return this . _stateReset && this . withinGame ? void a . preventDefault ( ) : ( this . timeUp = this . game . time . time , ( b . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || b . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || b . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === b . totalActivePointers ) && ( b . onUp . dispatch ( this , a ) , this . duration >= 0 && this . duration <= b . tapRate && ( this . timeUp - this . previousTapTime < b . doubleTapRate ? b . onTap . dispatch ( this , ! 0 ) : b . onTap . dispatch ( this , ! 1 ) , this . previousTapTime = this . timeUp ) ) , this . isMouse ? this . updateButtons ( a ) : ( this . isDown = ! 1 , this . isUp = ! 0 ) , this . id > 0 && ( this . active = ! 1 ) , this . withinGame = this . game . scale . bounds . contains ( a . pageX , a . pageY ) , this . pointerId = null , this . identifier = null , this . positionUp . setTo ( this . x , this . y ) , this . isMouse === ! 1 && b . currentPointers -- , b . interactiveItems . callAll ( "_releasedHandler" , this ) , this . _clickTrampolines && ( this . _trampolineTargetObject = this . targetObject ) , this . targetObject = null , this ) } , justPressed : function ( a ) { return a = a || this . g
} this . _prevTimestamp = this . _rawPad . timestamp } } , connect : function ( a ) { var b = ! this . connected ; this . connected = ! 0 , this . index = a . index , this . _rawPad = a , this . _buttons = [ ] , this . _buttonsLen = a . buttons . length , this . _axes = [ ] , this . _axesLen = a . axes . length ; for ( var d = 0 ; d < this . _axesLen ; d ++ ) this . _axes [ d ] = a . axes [ d ] ; for ( var e in a . buttons ) e = parseInt ( e , 10 ) , this . _buttons [ e ] = new c . DeviceButton ( this , e ) ; b && this . _padParent . onConnectCallback && this . _padParent . onConnectCallback . call ( this . _padParent . callbackContext , this . index ) , b && this . onConnectCallback && this . onConnectCallback . call ( this . callbackContext ) } , disconnect : function ( ) { var a = this . connected , b = this . index ; this . connected = ! 1 , this . index = null , this . _rawPad = void 0 ; for ( var c = 0 ; c < this . _buttonsLen ; c ++ ) this . _buttons [ c ] . destroy ( ) ; this . _buttons = [ ] , this . _buttonsLen = 0 , this . _axes = [ ] , this . _axesLen = 0 , a && this . _padParent . onDisconnectCallback && this . _padParent . onDisconnectCallback . call ( this . _padParent . callbackContext , b ) , a && this . onDisconnectCallback && this . onDisconnectCallback . call ( this . callbackContext ) } , destroy : function ( ) { this . _rawPad = void 0 ; for ( var a = 0 ; a < this . _buttonsLen ; a ++ ) this . _buttons [ a ] . destroy ( ) ; this . _buttons = [ ] , this . _buttonsLen = 0 , this . _axes = [ ] , this . _axesLen = 0 , this . onConnectCallback = null , this . onDisconnectCallback = null , this . onDownCallback = null , this . onUpCallback = null , this . onAxisCallback = null , this . onFloatCallback = null } , processAxisChange : function ( a , b ) { this . _axes [ a ] !== b && ( this . _axes [ a ] = b , this . _padParent . onAxisCallback && this . _padParent . onAxisCallback . call ( this . _padParent . callbackContext , this , a , b ) , this . onAxisCallback && this . onAxisCallback . call ( this . callbackContext , this , a , b ) ) } , processButtonDown : function ( a , b ) { this . _buttons [ a ] && this . _buttons [ a ] . start ( null , b ) , this . _padParent . onDownCallback && this . _padParent . onDownCallback . call ( this . _padParent . callbackContext , a , b , this . index ) , this . onDownCallback && this . onDownCallback . call ( this . callbackContext , a , b ) } , processButtonUp : function ( a , b ) { this . _padParent . onUpCallback && this . _padParent . onUpCallback . call ( this . _padParent . callbackContext , a , b , this . index ) , this . onUpCallback && this . onUpCallback . call ( this . callbackContext , a , b ) , this . _buttons [ a ] && this . _buttons [ a ] . stop ( null , b ) } , processButtonFloat : function ( a , b ) { this . _padParent . onFloatCallback && this . _padParent . onFloatCallback . call ( this . _padParent . callbackContext , a , b , this . index ) , this . onFloatCallback && this . onFloatCallback . call ( this . callbackContext , a , b ) , this . _buttons [ a ] && this . _buttons [ a ] . padFloat ( b ) } , axis : function ( a ) { return this . _axes [ a ] ? this . _axes [ a ] : ! 1 } , isDown : function ( a ) { return this . _buttons [ a ] ? this . _buttons [ a ] . isDown : ! 1 } , isUp : function ( a ) { return this . _buttons [ a ] ? this . _buttons [ a ] . isUp : ! 1 } , justReleased : function ( a , b ) { return this . _buttons [ a ] ? this . _buttons [ a ] . justReleased ( b ) : void 0 } , justPressed : function ( a , b ) { return this . _buttons [ a ] ? this . _buttons [ a ] . justPressed ( b ) : void 0 } , buttonValue : function ( a ) { return this . _buttons [ a ] ? this . _buttons [ a ] . value : null } , reset : function ( ) { for ( var a = 0 ; a < this . _axes . length ; a ++ ) this . _axes [ a ] = 0 } } , c . SinglePad . prototype . constructor = c . SinglePad , 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 , this . _justDown = ! 1 , this . _justUp = ! 1 } , 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 . _justDown = ! 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 . _justUp = ! 0 , this . onUp . dispatch ( this ) ) ) } , reset : function ( a ) { void 0 === a && ( a = ! 0 ) , this . isDown = ! 1 , this . isUp = ! 0 , this . timeUp =
2016-02-18 14:41:53 +00:00
return this . preUpdateInWorld ( ) ? this . preUpdateCore ( ) : ! 1 } , c . Button = function ( a , b , d , e , f , g , h , i , j , k ) { b = b || 0 , d = d || 0 , e = e || null , f = f || null , g = g || this , c . Image . call ( this , a , b , d , e , i ) , this . type = c . BUTTON , this . physicsType = c . SPRITE , this . _onOverFrame = null , this . _onOutFrame = null , this . _onDownFrame = null , this . _onUpFrame = null , this . onOverSound = null , this . onOutSound = null , this . onDownSound = null , this . onUpSound = null , this . onOverSoundMarker = "" , this . onOutSoundMarker = "" , this . onDownSoundMarker = "" , this . onUpSoundMarker = "" , this . onInputOver = new c . Signal , this . onInputOut = new c . Signal , this . onInputDown = new c . Signal , this . onInputUp = new c . Signal , this . onOverMouseOnly = ! 0 , this . justReleasedPreventsOver = c . PointerMode . TOUCH , this . freezeFrames = ! 1 , this . forceOut = ! 1 , this . inputEnabled = ! 0 , this . input . start ( 0 , ! 0 ) , this . input . useHandCursor = ! 0 , this . setFrames ( h , i , j , k ) , null !== f && this . onInputUp . add ( f , g ) , this . events . onInputOver . add ( this . onInputOverHandler , this ) , this . events . onInputOut . add ( this . onInputOutHandler , this ) , this . events . onInputDown . add ( this . onInputDownHandler , this ) , this . events . onInputUp . add ( this . onInputUpHandler , this ) , this . events . onRemovedFromWorld . add ( this . removedFromWorld , this ) } , c . Button . prototype = Object . create ( c . Image . prototype ) , c . Button . prototype . constructor = c . Button ; var g = "Over" , h = "Out" , i = "Down" , j = "Up" ; c . Button . prototype . clearFrames = function ( ) { this . setFrames ( null , null , null , null ) } , c . Button . prototype . removedFromWorld = function ( ) { this . inputEnabled = ! 1 } , c . Button . prototype . setStateFrame = function ( a , b , c ) { var d = "_on" + a + "Frame" ; null !== b ? ( this [ d ] = b , c && this . changeStateFrame ( a ) ) : this [ d ] = null } , c . Button . prototype . changeStateFrame = function ( a ) { if ( this . freezeFrames ) return ! 1 ; var b = "_on" + a + "Frame" , c = this [ b ] ; return "string" == typeof c ? ( this . frameName = c , ! 0 ) : "number" == typeof c ? ( this . frame = c , ! 0 ) : ! 1 } , c . Button . prototype . setFrames = function ( a , b , c , d ) { this . setStateFrame ( g , a , this . input . pointerOver ( ) ) , this . setStateFrame ( h , b , ! this . input . pointerOver ( ) ) , this . setStateFrame ( i , c , this . input . pointerDown ( ) ) , this . setStateFrame ( j , d , this . input . pointerUp ( ) ) } , c . Button . prototype . setStateSound = function ( a , b , d ) { var e = "on" + a + "Sound" , f = "on" + a + "SoundMarker" ; b instanceof c . Sound || b instanceof c . AudioSprite ? ( this [ e ] = b , this [ f ] = "string" == typeof d ? d : "" ) : ( this [ e ] = null , this [ f ] = "" ) } , c . Button . prototype . playStateSound = function ( a ) { var b = "on" + a + "Sound" , c = this [ b ] ; if ( c ) { var d = "on" + a + "SoundMarker" , e = this [ d ] ; return c . play ( e ) , ! 0 } return ! 1 } , c . Button . prototype . setSounds = function ( a , b , c , d , e , f , k , l ) { this . setStateSound ( g , a , b ) , this . setStateSound ( h , e , f ) , this . setStateSound ( i , c , d ) , this . setStateSound ( j , k , l ) } , c . Button . prototype . setOverSound = function ( a , b ) { this . setStateSound ( g , a , b ) } , c . Button . prototype . setOutSound = function ( a , b ) { this . setStateSound ( h , a , b ) } , c . Button . prototype . setDownSound = function ( a , b ) { this . setStateSound ( i , a , b ) } , c . Button . prototype . setUpSound = function ( a , b ) { this . setStateSound ( j , a , b ) } , c . Button . prototype . onInputOverHandler = function ( a , b ) { b . justReleased ( ) && ( this . justReleasedPreventsOver & b . pointerMode ) === b . pointerMode || ( this . changeStateFrame ( g ) , ( ! this . onOverMouseOnly || b . isMouse ) && ( this . playStateSound ( g ) , this . onInputOver && this . onInputOver . dispatch ( this , b ) ) ) } , c . Button . prototype . onInputOutHandler = function ( a , b ) { this . changeStateFrame ( h ) , this . playStateSound ( h ) , this . onInputOut && this . onInputOut . dispatch ( this , b ) } , c . Button . prototype . onInputDownHandler = function ( a , b ) { this . changeStateFrame ( i ) , this . playStateSound ( i ) , this . onInputDown && this . onInputDown . dispatch ( this , b ) } , c . Button . prototype . onInputUpHandler = function ( a , b , c ) { if ( this . playStateSound ( j ) , this . onInputUp && this . onInputUp . dispatch ( this , b , c ) , ! this . freezeFrames ) if ( this . forceOut === ! 0 || ( this . forceOut & b . pointerMode ) === b . pointerMode ) this . changeStateFrame ( h ) ; else { var d = this . changeStateFrame ( j ) ; d || ( c ? this . changeStateFrame ( g ) : this . changeStateFrame ( h ) ) } } , c . SpriteBatch = function ( a , b , d , e ) { ( void 0 === 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 , PIXI . SpriteBatch . prototype , c . Group . prototype ) , c . SpriteBatch . prototype . constructor = c . SpriteBatch , c . BitmapData = function ( a , b , d , e ) { ( void 0 === d || 0 === d ) && ( d = 256 ) , ( void 0 === e
return h } , PIXI . EarCut . filterPoints = function ( a , b ) { if ( ! a ) return a ; b || ( b = a ) ; var c , d = a ; do if ( c = ! 1 , d . steiner || ! PIXI . EarCut . equals ( d , d . next ) && 0 !== PIXI . EarCut . area ( d . prev , d , d . next ) ) d = d . next ; else { if ( PIXI . EarCut . removeNode ( d ) , d = b = d . prev , d === d . next ) return null ; c = ! 0 } while ( c || d !== b ) ; return b } , PIXI . EarCut . earcutLinked = function ( a , b , c , d , e , f , g ) { if ( a ) { ! g && f && PIXI . EarCut . indexCurve ( a , d , e , f ) ; for ( var h , i , j = a ; a . prev !== a . next ; ) if ( h = a . prev , i = a . next , f ? PIXI . EarCut . isEarHashed ( a , d , e , f ) : PIXI . EarCut . isEar ( a ) ) b . push ( h . i / c ) , b . push ( a . i / c ) , b . push ( i . i / c ) , PIXI . EarCut . removeNode ( a ) , a = i . next , j = i . next ; else if ( a = i , a === j ) { g ? 1 === g ? ( a = PIXI . EarCut . cureLocalIntersections ( a , b , c ) , PIXI . EarCut . earcutLinked ( a , b , c , d , e , f , 2 ) ) : 2 === g && PIXI . EarCut . splitEarcut ( a , b , c , d , e , f ) : PIXI . EarCut . earcutLinked ( PIXI . EarCut . filterPoints ( a ) , b , c , d , e , f , 1 ) ; break } } } , PIXI . EarCut . isEar = function ( a ) { var b = a . prev , c = a , d = a . next ; if ( PIXI . EarCut . area ( b , c , d ) >= 0 ) return ! 1 ; for ( var e = a . next . next ; e !== a . prev ; ) { if ( PIXI . EarCut . pointInTriangle ( b . x , b . y , c . x , c . y , d . x , d . y , e . x , e . y ) && PIXI . EarCut . area ( e . prev , e , e . next ) >= 0 ) return ! 1 ; e = e . next } return ! 0 } , PIXI . EarCut . isEarHashed = function ( a , b , c , d ) { var e = a . prev , f = a , g = a . next ; if ( PIXI . EarCut . area ( e , f , g ) >= 0 ) return ! 1 ; for ( var h = e . x < f . x ? e . x < g . x ? e . x : g . x : f . x < g . x ? f . x : g . x , i = e . y < f . y ? e . y < g . y ? e . y : g . y : f . y < g . y ? f . y : g . y , j = e . x > f . x ? e . x > g . x ? e . x : g . x : f . x > g . x ? f . x : g . x , k = e . y > f . y ? e . y > g . y ? e . y : g . y : f . y > g . y ? f . y : g . y , l = PIXI . EarCut . zOrder ( h , i , b , c , d ) , m = PIXI . EarCut . zOrder ( j , k , b , c , d ) , n = a . nextZ ; n && n . z <= m ; ) { if ( n !== a . prev && n !== a . next && PIXI . EarCut . pointInTriangle ( e . x , e . y , f . x , f . y , g . x , g . y , n . x , n . y ) && PIXI . EarCut . area ( n . prev , n , n . next ) >= 0 ) return ! 1 ; n = n . nextZ } for ( n = a . prevZ ; n && n . z >= l ; ) { if ( n !== a . prev && n !== a . next && PIXI . EarCut . pointInTriangle ( e . x , e . y , f . x , f . y , g . x , g . y , n . x , n . y ) && PIXI . EarCut . area ( n . prev , n , n . next ) >= 0 ) return ! 1 ; n = n . prevZ } return ! 0 } , PIXI . EarCut . cureLocalIntersections = function ( a , b , c ) { var d = a ; do { var e = d . prev , f = d . next . next ; PIXI . EarCut . intersects ( e , d , d . next , f ) && PIXI . EarCut . locallyInside ( e , f ) && PIXI . EarCut . locallyInside ( f , e ) && ( b . push ( e . i / c ) , b . push ( d . i / c ) , b . push ( f . i / c ) , PIXI . EarCut . removeNode ( d ) , PIXI . EarCut . removeNode ( d . next ) , d = a = f ) , d = d . next } while ( d !== a ) ; return d } , PIXI . EarCut . splitEarcut = function ( a , b , c , d , e , f ) { var g = a ; do { for ( var h = g . next . next ; h !== g . prev ; ) { if ( g . i !== h . i && PIXI . EarCut . isValidDiagonal ( g , h ) ) { var i = PIXI . EarCut . splitPolygon ( g , h ) ; return g = PIXI . EarCut . filterPoints ( g , g . next ) , i = PIXI . EarCut . filterPoints ( i , i . next ) , PIXI . EarCut . earcutLinked ( g , b , c , d , e , f ) , void PIXI . EarCut . earcutLinked ( i , b , c , d , e , f ) } h = h . next } g = g . next } while ( g !== a ) } , PIXI . EarCut . eliminateHoles = function ( a , b , c , d ) { var e , f , g , h , i , j = [ ] ; for ( e = 0 , f = b . length ; f > e ; e ++ ) g = b [ e ] * d , h = f - 1 > e ? b [ e + 1 ] * d : a . length , i = PIXI . EarCut . linkedList ( a , g , h , d , ! 1 ) , i === i . next && ( i . steiner = ! 0 ) , j . push ( PIXI . EarCut . getLeftmost ( i ) ) ; for ( j . sort ( compareX ) , e = 0 ; e < j . length ; e ++ ) PIXI . EarCut . eliminateHole ( j [ e ] , c ) , c = PIXI . EarCut . filterPoints ( c , c . next ) ; return c } , PIXI . EarCut . compareX = function ( a , b ) { return a . x - b . x } , PIXI . EarCut . eliminateHole = function ( a , b ) { if ( b = PIXI . EarCut . findHoleBridge ( a , b ) ) { var c = PIXI . EarCut . splitPolygon ( b , a ) ; PIXI . EarCut . filterPoints ( c , c . next ) } } , PIXI . EarCut . findHoleBridge = function ( a , b ) { var c , d = b , e = a . x , f = a . y , g = - ( 1 / 0 ) ; do { if ( f <= d . y && f >= d . next . y ) { var h = d . x + ( f - d . y ) * ( d . next . x - d . x ) / ( d . next . y - d . y ) ; e >= h && h > g && ( g = h , c = d . x < d . next . x ? d : d . next ) } d = d . next } while ( d !== b ) ; if ( ! c ) return null ; if ( a . x === c . x ) return c . prev ; var i , j = c , k = 1 / 0 ; for ( d = c . next ; d !== j ; ) e >= d . x && d . x >= c . x && PIXI . EarCut . pointInTriangle ( f < c . y ? e : g , f , c . x , c . y , f < c . y ? g : e , f , d . x , d . y ) && ( i = Math . abs ( f - d . y ) / ( e - d . x ) , ( k > i || i === k && d . x > c . x ) && PIXI . EarCut . locallyInside ( d , a ) && ( c = d , k = i ) ) , d = d . next ; return c } , PIXI . EarCut . indexCurve = function ( a , b , c , d ) { var e = a ; do null === e . z && ( e . z = PIXI . EarCut . zOrder ( e . x , e . y , b , c , d ) ) , e . prevZ = e . prev , e . nextZ = e . next , e = e . next ; while ( e !== a ) ; e . prevZ . nextZ = null , e . prevZ = null , PIXI . EarCut . sortLinked ( e ) } , PIXI . EarCut . sortLinked = function ( a ) { var b , c , d , e , f , g , h , i , j = 1 ; do { for ( c = a , a = null , f = null , g = 0 ; c ; ) { for ( g ++ , d = c , h = 0 , b = 0 ; j > b && ( h ++ , d = d . nextZ , d ) ; b ++ ) ; for ( i = j ; h > 0 || i > 0 && d ; ) 0 === h ? ( e = d , d = d . nextZ , i -- ) : 0 !== i && d ? c . z <= d . z ? ( e = c , c = c . nextZ , h -- ) : ( e = d , d = d . nextZ , i -- ) : ( e = c , c = c . nextZ , h -- ) , f ? f . nextZ = e : a = e , e . prevZ = f , f = e ; c = d } f . nextZ = null , j *= 2 } while ( g > 1 ) ; return a } , PIXI . EarCut . zOrder = function ( a , b , c , d , e ) { retur
"bottom" === this . style . boundsAlignV ? g += this . textBounds . height - this . canvas . height : "middle" === this . style . boundsAlignV && ( g += this . textBounds . halfHeight - this . canvas . height / 2 ) , this . pivot . x = - f , this . pivot . y = - g } this . renderable = 0 !== d && 0 !== e , this . texture . requiresReTint = ! 0 , this . texture . baseTexture . dirty ( ) } , c . Text . prototype . _renderWebGL = function ( a ) { this . dirty && ( this . updateText ( ) , this . dirty = ! 1 ) , PIXI . Sprite . prototype . _renderWebGL . call ( this , a ) } , c . Text . prototype . _renderCanvas = function ( a ) { this . dirty && ( this . updateText ( ) , this . dirty = ! 1 ) , PIXI . Sprite . prototype . _renderCanvas . call ( this , a ) } , c . Text . prototype . determineFontProperties = function ( a ) { var b = c . Text . fontPropertiesCache [ a ] ; if ( ! b ) { b = { } ; var d = c . Text . fontPropertiesCanvas , e = c . Text . fontPropertiesContext ; e . font = a ; var f = Math . ceil ( e . measureText ( "|MÉq" ) . width ) , g = Math . ceil ( e . measureText ( "|MÉq" ) . width ) , h = 2 * g ; if ( g = 1.4 * g | 0 , d . width = f , d . height = h , e . fillStyle = "#f00" , e . fillRect ( 0 , 0 , f , h ) , e . font = a , e . textBaseline = "alphabetic" , e . fillStyle = "#000" , e . fillText ( "|MÉq" , 0 , g ) , ! e . getImageData ( 0 , 0 , f , h ) ) return b . ascent = g , b . descent = g + 6 , b . fontSize = b . ascent + b . descent , c . Text . fontPropertiesCache [ a ] = b , b ; var i , j , k = e . getImageData ( 0 , 0 , f , h ) . data , l = k . length , m = 4 * f , n = 0 , o = ! 1 ; for ( i = 0 ; g > i ; i ++ ) { for ( j = 0 ; m > j ; j += 4 ) if ( 255 !== k [ n + j ] ) { o = ! 0 ; break } if ( o ) break ; n += m } for ( b . ascent = g - i , n = l - m , o = ! 1 , i = h ; i > g ; i -- ) { for ( j = 0 ; m > j ; j += 4 ) if ( 255 !== k [ n + j ] ) { o = ! 0 ; break } if ( o ) break ; n -= m } b . descent = i - g , b . descent += 6 , b . fontSize = b . ascent + b . descent , c . Text . fontPropertiesCache [ a ] = b } return b } , c . Text . prototype . getBounds = function ( a ) { return this . dirty && ( this . updateText ( ) , this . dirty = ! 1 ) , PIXI . Sprite . prototype . getBounds . call ( this , a ) } , Object . defineProperty ( c . Text . prototype , "text" , { get : function ( ) { return this . _text } , set : function ( a ) { a !== this . _text && ( this . _text = a . toString ( ) || "" , this . dirty = ! 0 , this . parent && this . updateTransform ( ) ) } } ) , Object . defineProperty ( c . Text . prototype , "cssFont" , { get : function ( ) { return this . componentsToFont ( this . _fontComponents ) } , set : function ( a ) { a = a || "bold 20pt Arial" , this . _fontComponents = this . fontToComponents ( a ) , this . updateFont ( this . _fontComponents ) } } ) , Object . defineProperty ( c . Text . prototype , "font" , { get : function ( ) { return this . _fontComponents . fontFamily } , set : function ( a ) { a = a || "Arial" , a = a . trim ( ) , /^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/ . exec ( a ) || /['",]/ . exec ( a ) || ( a = "'" + a + "'" ) , this . _fontComponents . fontFamily = a , this . updateFont ( this . _fontComponents ) } } ) , Object . defineProperty ( c . Text . prototype , "fontSize" , { get : function ( ) { var a = this . _fontComponents . fontSize ; return a && /(?:^0$|px$)/ . exec ( a ) ? parseInt ( a , 10 ) : a } , set : function ( a ) { a = a || "0" , "number" == typeof a && ( a += "px" ) , this . _fontComponents . fontSize = a , this . updateFont ( this . _fontComponents ) } } ) , Object . defineProperty ( c . Text . prototype , "fontWeight" , { get : function ( ) { return this . _fontComponents . fontWeight || "normal" } , set : function ( a ) { a = a || "normal" , this . _fontComponents . fontWeight = a , this . updateFont ( this . _fontComponents ) } } ) , Object . defineProperty ( c . Text . prototype , "fontStyle" , { get : function ( ) { return this . _fontComponents . fontStyle || "normal" } , set : function ( a ) { a = a || "normal" , this . _fontComponents . fontStyle = a , this . updateFont ( this . _fontComponents ) } } ) , Object . defineProperty ( c . Text . prototype , "fontVariant" , { get : function ( ) { return this . _fontComponents . fontVariant || "normal" } , set : function ( a ) { a = a || "normal" , this . _fontComponents . fontVariant = a , this . updateFont ( this . _fontComponents ) } } ) , Object . defineProperty ( c . Text . prototype , "fill" , { get : function ( ) { return this . style . fill } , set : function ( a ) { a !== this . style . fill && ( this . style . fill = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "align" , { get : function ( ) { return this . style . align } , set : function ( a ) { a !== this . style . align && ( this . style . align = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "resolution" , { get : function ( ) { return this . _res } , set : function ( a ) { a !== this . _res && ( this . _res = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "tabs" , { get : function ( ) { return this . style . tabs } , set : function ( a ) { a !== this . style . tabs && ( this . style . tabs = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "boundsAlignH" , { get : function ( ) { return this . style . boundsAlignH } , set : function ( a ) { a !== this . style . boundsAlignH && ( this . style . boun
a . style [ "-khtml-user-select" ] = b , a . style [ "-moz-user-select" ] = b , a . style [ "-ms-user-select" ] = b , a . style [ "user-select" ] = b , a . style [ "-webkit-tap-highlight-color" ] = "rgba(0, 0, 0, 0)" , a } , addToDOM : function ( a , b , c ) { var d ; return void 0 === c && ( c = ! 0 ) , b && ( "string" == typeof b ? d = document . getElementById ( b ) : "object" == typeof b && 1 === b . nodeType && ( d = b ) ) , d || ( d = document . body ) , c && d . style && ( d . style . overflow = "hidden" ) , d . appendChild ( a ) , a } , removeFromDOM : function ( a ) { a . parentNode && a . parentNode . removeChild ( a ) } , setTransform : function ( a , b , c , d , e , f , g ) { return a . setTransform ( d , f , g , e , b , c ) , a } , setSmoothingEnabled : function ( a , b ) { var d = c . Canvas . getSmoothingPrefix ( a ) ; return d && ( a [ d ] = b ) , a } , getSmoothingPrefix : function ( a ) { var b = [ "i" , "webkitI" , "msI" , "mozI" , "oI" ] ; for ( var c in b ) { var d = b [ c ] + "mageSmoothingEnabled" ; if ( d in a ) return d } return null } , getSmoothingEnabled : function ( a ) { var b = c . Canvas . getSmoothingPrefix ( a ) ; return b ? a [ b ] : void 0 } , setImageRenderingCrisp : function ( a ) { for ( var b = [ "optimizeSpeed" , "crisp-edges" , "-moz-crisp-edges" , "-webkit-optimize-contrast" , "optimize-contrast" , "pixelated" ] , c = 0 ; c < b . length ; c ++ ) a . style [ "image-rendering" ] = b [ c ] ; return a . style . msInterpolationMode = "nearest-neighbor" , a } , setImageRenderingBicubic : function ( a ) { return a . style [ "image-rendering" ] = "auto" , a . style . msInterpolationMode = "bicubic" , a } } , c . RequestAnimationFrame = function ( a , b ) { void 0 === b && ( b = ! 1 ) , this . game = a , this . isRunning = ! 1 , this . forceSetTimeOut = b ; for ( var c = [ "ms" , "moz" , "webkit" , "o" ] , d = 0 ; d < c . length && ! window . requestAnimationFrame ; d ++ ) window . requestAnimationFrame = window [ c [ d ] + "RequestAnimationFrame" ] , window . cancelAnimationFrame = window [ c [ d ] + "CancelAnimationFrame" ] ; this . _isSetTimeOut = ! 1 , this . _onLoop = null , this . _timeOutID = null } , c . RequestAnimationFrame . prototype = { start : function ( ) { this . isRunning = ! 0 ; var a = this ; ! window . requestAnimationFrame || this . forceSetTimeOut ? ( this . _isSetTimeOut = ! 0 , this . _onLoop = function ( ) { return a . updateSetTimeout ( ) } , this . _timeOutID = window . setTimeout ( this . _onLoop , 0 ) ) : ( this . _isSetTimeOut = ! 1 , this . _onLoop = function ( b ) { return a . updateRAF ( b ) } , this . _timeOutID = window . requestAnimationFrame ( this . _onLoop ) ) } , updateRAF : function ( a ) { this . game . update ( Math . floor ( a ) ) , this . _timeOutID = window . requestAnimationFrame ( this . _onLoop ) } , updateSetTimeout : function ( ) { this . game . update ( Date . now ( ) ) , this . _timeOutID = window . setTimeout ( this . _onLoop , this . game . time . timeToCall ) } , stop : function ( ) { this . _isSetTimeOut ? clearTimeout ( this . _timeOutID ) : window . cancelAnimationFrame ( this . _timeOutID ) , this . isRunning = ! 1 } , isSetTimeOut : function ( ) { return this . _isSetTimeOut } , isRAF : function ( ) { return this . _isSetTimeOut === ! 1 } } , c . RequestAnimationFrame . prototype . constructor = c . RequestAnimationFrame , c . Math = { PI2 : 2 * Math . PI , fuzzyEqual : function ( a , b , c ) { return void 0 === c && ( c = 1e-4 ) , Math . abs ( a - b ) < c } , fuzzyLessThan : function ( a , b , c ) { return void 0 === c && ( c = 1e-4 ) , b + c > a } , fuzzyGreaterThan : function ( a , b , c ) { return void 0 === c && ( c = 1e-4 ) , a > b - c } , fuzzyCeil : function ( a , b ) { return void 0 === b && ( b = 1e-4 ) , Math . ceil ( a - b ) } , fuzzyFloor : function ( a , b ) { return void 0 === b && ( b = 1e-4 ) , Math . floor ( a + b ) } , average : function ( ) { for ( var a = 0 , b = arguments . length , c = 0 ; b > c ; c ++ ) a += + arguments [ c ] ; return a / b } , shear : function ( a ) { return a % 1 } , snapTo : function ( a , b , c ) { return void 0 === c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . round ( a / b ) , c + a ) } , snapToFloor : function ( a , b , c ) { return void 0 === c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . floor ( a / b ) , c + a ) } , snapToCeil : function ( a , b , c ) { return void 0 === c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . ceil ( a / b ) , c + a ) } , roundTo : function ( a , b , c ) { void 0 === b && ( b = 0 ) , void 0 === c && ( c = 10 ) ; var d = Math . pow ( c , - b ) ; return Math . round ( a * d ) / d } , floorTo : function ( a , b , c ) { void 0 === b && ( b = 0 ) , void 0 === c && ( c = 10 ) ; var d = Math . pow ( c , - b ) ; return Math . floor ( a * d ) / d } , ceilTo : function ( a , b , c ) { void 0 === b && ( b = 0 ) , void 0 === c && ( c = 10 ) ; var d = Math . pow ( c , - b ) ; return Math . ceil ( a * d ) / d } , angleBetween : function ( a , b , c , d ) { return Math . atan2 ( d - b , c - a ) } , angleBetweenY : function ( a , b , c , d ) { return Math . atan2 ( c - a , d - b ) } , angleBetweenPoints : function ( a , b ) { return Math . atan2 ( b . y - a . y , b . x - a . x ) } , angleBetweenPointsY : function ( a , b ) { return Math . atan2 ( b . x - a . x , b . y - a . y ) } , reverseAngle : function ( a ) { return this . normalizeAngle ( a + Math . PI , ! 0 ) } , normalizeAngle : function ( a ) { return a %= 2 * Math . PI , a >= 0 ? a : a + 2 * Math . PI } , maxAdd : function ( a , b , c )
this . _codePaused = ! 1 , this . _started = 0 , this . _pauseStarted = 0 , this . _pauseTotal = 0 , this . _now = Date . now ( ) , this . _len = 0 , this . _marked = 0 , this . _i = 0 , this . _diff = 0 , this . _newTick = 0 } , c . Timer . MINUTE = 6e4 , c . Timer . SECOND = 1e3 , c . Timer . HALF = 500 , c . Timer . QUARTER = 250 , c . Timer . prototype = { create : function ( a , b , d , e , f , g ) { a = Math . round ( a ) ; var h = a ; h += 0 === this . _now ? this . game . time . time : this . _now ; var i = new c . TimerEvent ( this , a , h , d , b , e , f , g ) ; return this . events . push ( i ) , this . order ( ) , this . expired = ! 1 , i } , add : function ( a , b , c ) { return this . create ( a , ! 1 , 0 , b , c , Array . prototype . slice . call ( arguments , 3 ) ) } , repeat : function ( a , b , c , d ) { return this . create ( a , ! 1 , b , c , d , Array . prototype . slice . call ( arguments , 4 ) ) } , loop : function ( a , b , c ) { return this . create ( a , ! 0 , 0 , b , c , Array . prototype . slice . call ( arguments , 3 ) ) } , start : function ( a ) { if ( ! this . running ) { this . _started = this . game . time . time + ( a || 0 ) , this . running = ! 0 ; for ( var b = 0 ; b < this . events . length ; b ++ ) this . events [ b ] . tick = this . events [ b ] . delay + this . _started } } , stop : function ( a ) { this . running = ! 1 , void 0 === a && ( a = ! 0 ) , a && ( this . events . length = 0 ) } , remove : function ( a ) { for ( var b = 0 ; b < this . events . length ; b ++ ) if ( this . events [ b ] === a ) return this . events [ b ] . pendingDelete = ! 0 , ! 0 ; return ! 1 } , order : function ( ) { this . events . length > 0 && ( this . events . sort ( this . sortHandler ) , this . nextTick = this . events [ 0 ] . tick ) } , sortHandler : function ( a , b ) { return a . tick < b . tick ? - 1 : a . tick > b . tick ? 1 : 0 } , clearPendingEvents : function ( ) { for ( this . _i = this . events . length ; this . _i -- ; ) this . events [ this . _i ] . pendingDelete && this . events . splice ( this . _i , 1 ) ; this . _len = this . events . length , this . _i = 0 } , update : function ( a ) { if ( this . paused ) return ! 0 ; if ( this . elapsed = a - this . _now , this . _now = a , this . elapsed > this . timeCap && this . adjustEvents ( a - this . elapsed ) , this . _marked = 0 , this . clearPendingEvents ( ) , this . running && this . _now >= this . nextTick && this . _len > 0 ) { for ( ; this . _i < this . _len && this . running && this . _now >= this . events [ this . _i ] . tick && ! this . events [ this . _i ] . pendingDelete ; ) this . _newTick = this . _now + this . events [ this . _i ] . delay - ( this . _now - this . events [ this . _i ] . tick ) , this . _newTick < 0 && ( this . _newTick = this . _now + this . events [ this . _i ] . delay ) , this . events [ this . _i ] . loop === ! 0 ? ( this . events [ this . _i ] . tick = this . _newTick , this . events [ this . _i ] . callback . apply ( this . events [ this . _i ] . callbackContext , this . events [ this . _i ] . args ) ) : this . events [ this . _i ] . repeatCount > 0 ? ( this . events [ this . _i ] . repeatCount -- , this . events [ this . _i ] . tick = this . _newTick , this . events [ this . _i ] . callback . apply ( this . events [ this . _i ] . callbackContext , this . events [ this . _i ] . args ) ) : ( this . _marked ++ , this . events [ this . _i ] . pendingDelete = ! 0 , this . events [ this . _i ] . callback . apply ( this . events [ this . _i ] . callbackContext , this . events [ this . _i ] . args ) ) , this . _i ++ ; this . events . length > this . _marked ? this . order ( ) : ( this . expired = ! 0 , this . onComplete . dispatch ( this ) ) } return this . expired && this . autoDestroy ? ! 1 : ! 0 } , pause : function ( ) { this . running && ( this . _codePaused = ! 0 , this . paused || ( this . _pauseStarted = this . game . time . time , this . paused = ! 0 ) ) } , _pause : function ( ) { ! this . paused && this . running && ( this . _pauseStarted = this . game . time . time , this . paused = ! 0 ) } , adjustEvents : function ( a ) { for ( var b = 0 ; b < this . events . length ; b ++ ) if ( ! this . events [ b ] . pendingDelete ) { var c = this . events [ b ] . tick - a ; 0 > c && ( c = 0 ) , this . events [ b ] . tick = this . _now + c } var d = this . nextTick - a ; 0 > d ? this . nextTick = this . _now : this . nextTick = this . _now + d } , resume : function ( ) { if ( this . paused ) { var a = this . game . time . time ; this . _pauseTotal += a - this . _now , this . _now = a , this . adjustEvents ( this . _pauseStarted ) , this . paused = ! 1 , this . _codePaused = ! 1 } } , _resume : function ( ) { this . _codePaused || this . resume ( ) } , removeAll : function ( ) { this . onComplete . removeAll ( ) , this . events . length = 0 , this . _len = 0 , this . _i = 0 } , destroy : function ( ) { this . onComplete . removeAll ( ) , this . running = ! 1 , this . events = [ ] , this . _len = 0 , this . _i = 0 } } , Object . defineProperty ( c . Timer . prototype , "next" , { get : function ( ) { return this . nextTick } } ) , Object . defineProperty ( c . Timer . prototype , "duration" , { get : function ( ) { return this . running && this . nextTick > this . _now ? this . nextTick - this . _now : 0 } } ) , Object . defineProperty ( c . Timer . prototype , "length" , { get : function ( ) { return this . events . length } } ) , Object . defineProperty ( c . Timer . prototype , "ms" , { get : function ( ) { return this . running ? this . _now - this . _started - this . _pauseTotal : 0 } } ) , Object . defineProperty ( c . Timer . prototype , "seconds" , { get : fu
delete this . _cache . spriteSheet [ a ] } , removeTextureAtlas : function ( a ) { delete this . _cache . atlas [ a ] } , clearGLTextures : function ( ) { for ( var a in this . _cache . image ) this . _cache . image [ a ] . base . _glTextures = [ ] } , _resolveURL : function ( a , b ) { return this . autoResolveURL ? ( this . _urlResolver . src = this . game . load . baseURL + a , this . _urlTemp = this . _urlResolver . src , this . _urlResolver . src = "" , b && ( this . _urlMap [ this . _urlTemp ] = b ) , this . _urlTemp ) : null } , destroy : function ( ) { for ( var a = 0 ; a < this . _cacheMap . length ; a ++ ) { var b = this . _cacheMap [ a ] ; for ( var c in b ) "__default" !== c && "__missing" !== c && ( b [ c ] . destroy && b [ c ] . destroy ( ) , delete b [ c ] ) } this . _urlMap = null , this . _urlResolver = null , this . _urlTemp = null } } , c . Cache . prototype . constructor = c . Cache , c . Loader = function ( a ) { this . game = a , this . cache = a . cache , this . resetLocked = ! 1 , this . isLoading = ! 1 , this . hasLoaded = ! 1 , this . preloadSprite = null , this . crossOrigin = ! 1 , this . baseURL = "" , this . path = "" , this . onLoadStart = new c . Signal , this . onLoadComplete = new c . Signal , this . onPackComplete = new c . Signal , this . onFileStart = new c . Signal , this . onFileComplete = new c . Signal , this . onFileError = new c . Signal , this . useXDomainRequest = ! 1 , this . _warnedAboutXDomainRequest = ! 1 , this . enableParallel = ! 0 , this . maxParallelDownloads = 4 , this . _withSyncPointDepth = 0 , this . _fileList = [ ] , this . _flightQueue = [ ] , this . _processingHead = 0 , this . _fileLoadStarted = ! 1 , this . _totalPackCount = 0 , this . _totalFileCount = 0 , this . _loadedPackCount = 0 , this . _loadedFileCount = 0 } , c . Loader . TEXTURE _ATLAS _JSON _ARRAY = 0 , c . Loader . TEXTURE _ATLAS _JSON _HASH = 1 , c . Loader . TEXTURE _ATLAS _XML _STARLING = 2 , c . Loader . PHYSICS _LIME _CORONA _JSON = 3 , c . Loader . PHYSICS _PHASER _JSON = 4 , c . Loader . TEXTURE _ATLAS _JSON _PYXEL = 5 , c . Loader . prototype = { setPreloadSprite : function ( a , b ) { b = b || 0 , this . preloadSprite = { sprite : a , direction : b , width : a . width , height : a . height , rect : null } , 0 === b ? this . preloadSprite . rect = new c . Rectangle ( 0 , 0 , 1 , a . height ) : this . preloadSprite . rect = new c . Rectangle ( 0 , 0 , a . width , 1 ) , a . crop ( this . preloadSprite . rect ) , a . visible = ! 0 } , resize : function ( ) { this . preloadSprite && this . preloadSprite . height !== this . preloadSprite . sprite . height && ( this . preloadSprite . rect . height = this . preloadSprite . sprite . height ) } , checkKeyExists : function ( a , b ) { return this . getAssetIndex ( a , b ) > - 1 } , getAssetIndex : function ( a , b ) { for ( var c = - 1 , d = 0 ; d < this . _fileList . length ; d ++ ) { var e = this . _fileList [ d ] ; if ( e . type === a && e . key === b && ( c = d , ! e . loaded && ! e . loading ) ) break } return c } , getAsset : function ( a , b ) { var c = this . getAssetIndex ( a , b ) ; return c > - 1 ? { index : c , file : this . _fileList [ c ] } : ! 1 } , reset : function ( a , b ) { void 0 === b && ( b = ! 1 ) , this . resetLocked || ( a && ( this . preloadSprite = null ) , this . isLoading = ! 1 , this . _processingHead = 0 , this . _fileList . length = 0 , this . _flightQueue . length = 0 , this . _fileLoadStarted = ! 1 , this . _totalFileCount = 0 , this . _totalPackCount = 0 , this . _loadedPackCount = 0 , this . _loadedFileCount = 0 , b && ( this . onLoadStart . removeAll ( ) , this . onLoadComplete . removeAll ( ) , this . onPackComplete . removeAll ( ) , this . onFileStart . removeAll ( ) , this . onFileComplete . removeAll ( ) , this . onFileError . removeAll ( ) ) ) } , addToFileList : function ( a , b , c , d , e , f ) { if ( void 0 === e && ( e = ! 1 ) , void 0 === b || "" === b ) return console . warn ( "Phaser.Loader: Invalid or no key given of type " + a ) , this ; if ( void 0 === c || null === c ) { if ( ! f ) return console . warn ( "Phaser.Loader: No URL given for file type: " + a + " key: " + b ) , this ; c = b + f } var g = { type : a , key : b , path : this . path , url : c , syncPoint : this . _withSyncPointDepth > 0 , data : null , loading : ! 1 , loaded : ! 1 , error : ! 1 } ; if ( d ) for ( var h in d ) g [ h ] = d [ h ] ; var i = this . getAssetIndex ( a , b ) ; if ( e && i > - 1 ) { var j = this . _fileList [ i ] ; j . loading || j . loaded ? ( this . _fileList . push ( g ) , this . _totalFileCount ++ ) : this . _fileList [ i ] = g } else - 1 === i && ( this . _fileList . push ( g ) , this . _totalFileCount ++ ) ; return this } , replaceInFileList : function ( a , b , c , d ) { return this . addToFileList ( a , b , c , d , ! 0 ) } , pack : function ( a , b , c , d ) { if ( void 0 === b && ( b = null ) , void 0 === c && ( c = null ) , void 0 === d && ( d = null ) , ! b && ! c ) return console . warn ( "Phaser.Loader.pack - Both url and data are null. One must be set." ) , this ; var e = { type : "packfile" , key : a , url : b , path : this . path , syncPoint : ! 0 , data : null , loading : ! 1 , loaded : ! 1 , error : ! 1 , callbackContext : d } ; c && ( "string" == typeof c && ( c = JSON . parse ( c ) ) , e . data = c || { } , e . loaded = ! 0 ) ; for ( var f = 0 ; f < this . _fileList . length + 1 ; f ++ ) { var g = this . _fileList [ f ] ; if ( ! g || ! g . loaded && ! g . loading && " packf
} else this . _sound . play ( ) ; this . isPlaying = ! 0 , this . paused = ! 1 , this . startTime += this . game . time . time - this . pausedTime , this . onResume . dispatch ( this ) } } , stop : function ( ) { if ( this . isPlaying && this . _sound ) if ( this . usingWebAudio ) { if ( void 0 === this . _sound . stop ) this . _sound . noteOff ( 0 ) ; else try { this . _sound . stop ( 0 ) } catch ( a ) { } this . externalNode ? this . _sound . disconnect ( this . externalNode ) : this . _sound . disconnect ( this . gainNode ) } else this . usingAudioTag && ( this . _sound . pause ( ) , this . _sound . currentTime = 0 ) ; if ( this . pendingPlayback = ! 1 , this . isPlaying = ! 1 , ! this . paused ) { var b = this . currentMarker ; "" !== this . currentMarker && this . onMarkerComplete . dispatch ( this . currentMarker , this ) , this . currentMarker = "" , null !== this . fadeTween && this . fadeTween . stop ( ) , this . onStop . dispatch ( this , b ) } } , fadeIn : function ( a , b , c ) { void 0 === b && ( b = ! 1 ) , void 0 === c && ( c = this . currentMarker ) , this . paused || ( this . play ( c , 0 , 0 , b ) , this . fadeTo ( a , 1 ) ) } , fadeOut : function ( a ) { this . fadeTo ( a , 0 ) } , fadeTo : function ( a , b ) { if ( this . isPlaying && ! this . paused && b !== this . volume ) { if ( void 0 === a && ( a = 1e3 ) , void 0 === b ) return void console . warn ( "Phaser.Sound.fadeTo: No Volume Specified." ) ; this . fadeTween = this . game . add . tween ( this ) . to ( { volume : b } , a , c . Easing . Linear . None , ! 0 ) , this . fadeTween . onComplete . add ( this . fadeComplete , this ) } } , fadeComplete : function ( ) { this . onFadeComplete . dispatch ( this , this . volume ) , 0 === this . volume && this . stop ( ) } , destroy : function ( a ) { void 0 === a && ( a = ! 0 ) , this . stop ( ) , a ? this . game . sound . remove ( this ) : ( this . markers = { } , this . context = null , this . _buffer = null , this . externalNode = null , this . onDecoded . dispose ( ) , this . onPlay . dispose ( ) , this . onPause . dispose ( ) , this . onResume . dispose ( ) , this . onLoop . dispose ( ) , this . onStop . dispose ( ) , this . onMute . dispose ( ) , this . onMarkerComplete . dispose ( ) ) } } , c . Sound . prototype . constructor = c . Sound , Object . defineProperty ( c . Sound . prototype , "isDecoding" , { get : function ( ) { return this . game . cache . getSound ( this . key ) . isDecoding } } ) , Object . defineProperty ( c . Sound . prototype , "isDecoded" , { get : function ( ) { return this . game . cache . isSoundDecoded ( this . key ) } } ) , Object . defineProperty ( c . Sound . prototype , "mute" , { get : function ( ) { return this . _muted || this . game . sound . mute } , set : function ( a ) { a = a || ! 1 , a !== this . _muted && ( a ? ( this . _muted = ! 0 , this . _muteVolume = this . _tempVolume , this . usingWebAudio ? this . gainNode . gain . value = 0 : this . usingAudioTag && this . _sound && ( this . _sound . volume = 0 ) ) : ( this . _muted = ! 1 , this . usingWebAudio ? this . gainNode . gain . value = this . _muteVolume : this . usingAudioTag && this . _sound && ( this . _sound . volume = this . _muteVolume ) ) , this . onMute . dispatch ( this ) ) } } ) , Object . defineProperty ( c . Sound . prototype , "volume" , { get : function ( ) { return this . _volume } , set : function ( a ) { return this . game . device . firefox && this . usingAudioTag && ( a = this . game . math . clamp ( a , 0 , 1 ) ) , this . _muted ? void ( this . _muteVolume = a ) : ( this . _tempVolume = a , this . _volume = a , void ( this . usingWebAudio ? this . gainNode . gain . value = a : this . usingAudioTag && this . _sound && ( this . _sound . volume = a ) ) ) } } ) , c . SoundManager = function ( a ) { this . game = a , this . onSoundDecode = new c . Signal , this . onVolumeChange = new c . Signal , this . onMute = new c . Signal , this . onUnMute = new c . Signal , this . context = null , this . usingWebAudio = ! 1 , this . usingAudioTag = ! 1 , this . noAudio = ! 1 , this . connectToMaster = ! 0 , this . touchLocked = ! 1 , this . channels = 32 , this . _codeMuted = ! 1 , this . _muted = ! 1 , this . _unlockSource = null , this . _volume = 1 , this . _sounds = [ ] , this . _watchList = new c . ArraySet , this . _watching = ! 1 , this . _watchCallback = null , this . _watchContext = null } , c . SoundManager . prototype = { boot : function ( ) { if ( this . game . device . iOS && this . game . device . webAudio === ! 1 && ( this . channels = 1 ) , window . PhaserGlobal ) { if ( window . PhaserGlobal . disableAudio === ! 0 ) return this . noAudio = ! 0 , void ( this . touchLocked = ! 1 ) ; if ( window . PhaserGlobal . disableWebAudio === ! 0 ) return this . usingAudioTag = ! 0 , void ( this . touchLocked = ! 1 ) } if ( window . PhaserGlobal && window . PhaserGlobal . audioContext ) this . context = window . PhaserGlobal . audioContext ; else if ( window . AudioContext ) try { this . context = new window . AudioContext } catch ( a ) { this . context = null , this . usingWebAudio = ! 1 , this . touchLocked = ! 1 } else if ( window . webkitAudioContext ) try { this . context = new window . webkitAudioContext } catch ( a ) { this . context = null , this . usingWebAudio = ! 1 , this . touchLocked = ! 1 } if ( null === this . context ) { if ( void 0 === window . Audio ) return void ( this . noAudio = ! 0 ) ; this . usingA
this . line ( "over: " + a . input . pointerOver ( ) + " duration: " + a . input . overDuration ( ) . toFixed ( 0 ) ) , this . line ( "down: " + a . input . pointerDown ( ) + " duration: " + a . input . downDuration ( ) . toFixed ( 0 ) ) , this . line ( "just over: " + a . input . justOver ( ) + " just out: " + a . input . justOut ( ) ) , this . stop ( ) } , key : function ( a , b , c , d ) { this . start ( b , c , d , 150 ) , this . line ( "Key:" , a . keyCode , "isDown:" , a . isDown ) , this . line ( "justDown:" , a . justDown , "justUp:" , a . justUp ) , this . line ( "Time Down:" , a . timeDown . toFixed ( 0 ) , "duration:" , a . duration . toFixed ( 0 ) ) , this . stop ( ) } , inputInfo : function ( a , b , c ) { this . start ( a , b , c ) , this . line ( "Input" ) , this . line ( "X: " + this . game . input . x + " Y: " + this . game . input . y ) , this . line ( "World X: " + this . game . input . worldX + " World Y: " + this . game . input . worldY ) , this . line ( "Scale X: " + this . game . input . scale . x . toFixed ( 1 ) + " Scale Y: " + this . game . input . scale . x . toFixed ( 1 ) ) , this . line ( "Screen X: " + this . game . input . activePointer . screenX + " Screen Y: " + this . game . input . activePointer . screenY ) , this . stop ( ) } , spriteBounds : function ( a , b , c ) { var d = a . getBounds ( ) ; d . x += this . game . camera . x , d . y += this . game . camera . y , this . rectangle ( d , b , c ) } , ropeSegments : function ( a , b , c ) { var d = a . segments , e = this ; d . forEach ( function ( a ) { e . rectangle ( a , b , c ) } , this ) } , spriteInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Sprite: (" + a . width + " x " + a . height + ") anchor: " + a . anchor . x + " x " + a . anchor . y ) , this . line ( "x: " + a . x . toFixed ( 1 ) + " y: " + a . y . toFixed ( 1 ) ) , this . line ( "angle: " + a . angle . toFixed ( 1 ) + " rotation: " + a . rotation . toFixed ( 1 ) ) , this . line ( "visible: " + a . visible + " in camera: " + a . inCamera ) , this . line ( "bounds x: " + a . _bounds . x . toFixed ( 1 ) + " y: " + a . _bounds . y . toFixed ( 1 ) + " w: " + a . _bounds . width . toFixed ( 1 ) + " h: " + a . _bounds . height . toFixed ( 1 ) ) , this . stop ( ) } , spriteCoords : function ( a , b , c , d ) { this . start ( b , c , d , 100 ) , a . name && this . line ( a . name ) , this . line ( "x:" , a . x . toFixed ( 2 ) , "y:" , a . y . toFixed ( 2 ) ) , this . line ( "pos x:" , a . position . x . toFixed ( 2 ) , "pos y:" , a . position . y . toFixed ( 2 ) ) , this . line ( "world x:" , a . world . x . toFixed ( 2 ) , "world y:" , a . world . y . toFixed ( 2 ) ) , this . stop ( ) } , lineInfo : function ( a , b , c , d ) { this . start ( b , c , d , 80 ) , this . line ( "start.x:" , a . start . x . toFixed ( 2 ) , "start.y:" , a . start . y . toFixed ( 2 ) ) , this . line ( "end.x:" , a . end . x . toFixed ( 2 ) , "end.y:" , a . end . y . toFixed ( 2 ) ) , this . line ( "length:" , a . length . toFixed ( 2 ) , "angle:" , a . angle ) , this . stop ( ) } , pixel : function ( a , b , c , d ) { d = d || 2 , this . start ( ) , this . context . fillStyle = c , this . context . fillRect ( a , b , d , d ) , this . stop ( ) } , geom : function ( a , b , d , e ) { void 0 === d && ( d = ! 0 ) , void 0 === e && ( e = 0 ) , b = b || "rgba(0,255,0,0.4)" , this . start ( ) , this . context . fillStyle = b , this . context . strokeStyle = b , a instanceof c . Rectangle || 1 === e ? d ? this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : this . context . strokeRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : a instanceof c . Circle || 2 === e ? ( this . context . beginPath ( ) , this . context . arc ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . radius , 0 , 2 * Math . PI , ! 1 ) , this . context . closePath ( ) , d ? this . context . fill ( ) : this . context . stroke ( ) ) : a instanceof c . Point || 3 === e ? this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , 4 , 4 ) : ( a instanceof c . Line || 4 === e ) && ( this . context . lineWidth = 1 , this . context . beginPath ( ) , this . context . moveTo ( a . start . x + . 5 - this . game . camera . x , a . start . y + . 5 - this . game . camera . y ) , this . context . lineTo ( a . end . x + . 5 - this . game . camera . x , a . end . y + . 5 - this . game . camera . y ) , this . context . closePath ( ) , this . context . stroke ( ) ) , this . stop ( ) } , rectangle : function ( a , b , c ) { void 0 === c && ( c = ! 0 ) , b = b || "rgba(0, 255, 0, 0.4)" , this . start ( ) , c ? ( this . context . fillStyle = b , this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) ) : ( this . context . strokeStyle = b , this . context . strokeRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) ) , this . stop ( ) } , text : function ( a , b , c , d , e ) { d = d || "rgb(255,255,255)" , e = e || "16px Courier" , this . start ( ) , this . context . font = e , this . renderShadow && ( this . context . fillStyle = "rgb(0,0,0)" , this . context . fillText ( a , b + 1 , c + 1 ) ) , this . context . fillStyle = d , this . context . fillText ( a , b , c ) , this . stop ( ) } , quadTree : function ( a , b ) { b = b || "rgba(255,0,0,0.3)" , this . start ( ) ; var c = a . bounds ; if ( 0 === a . nodes . length ) { this . context . strokeStyle = b , this . context . strokeRect ( c . x , c . y , c . width , c . height ) , this . text ( "size: " + a . objects . le
return this . _total > 0 } , collide : function ( a , b , c , d , e ) { if ( c = c || null , d = d || null , e = e || c , this . _total = 0 , ! Array . isArray ( a ) && Array . isArray ( b ) ) for ( var f = 0 ; f < b . length ; f ++ ) this . collideHandler ( a , b [ f ] , c , d , e , ! 1 ) ; else if ( Array . isArray ( a ) && ! Array . isArray ( b ) ) for ( var f = 0 ; f < a . length ; f ++ ) this . collideHandler ( a [ f ] , b , c , d , e , ! 1 ) ; else if ( Array . isArray ( a ) && Array . isArray ( b ) ) for ( var f = 0 ; f < a . length ; f ++ ) for ( var g = 0 ; g < b . length ; g ++ ) this . collideHandler ( a [ f ] , b [ g ] , c , d , e , ! 1 ) ; else this . collideHandler ( a , b , c , d , e , ! 1 ) ; return this . _total > 0 } , sortLeftRight : function ( a , b ) { return a . body && b . body ? a . body . x - b . body . x : 0 } , sortRightLeft : function ( a , b ) { return a . body && b . body ? b . body . x - a . body . x : 0 } , sortTopBottom : function ( a , b ) { return a . body && b . body ? a . body . y - b . body . y : 0 } , sortBottomTop : function ( a , b ) { return a . body && b . body ? b . body . y - a . body . y : 0 } , sort : function ( a , b ) { null !== a . physicsSortDirection ? b = a . physicsSortDirection : void 0 === b && ( b = this . sortDirection ) , b === c . Physics . Arcade . LEFT _RIGHT ? a . hash . sort ( this . sortLeftRight ) : b === c . Physics . Arcade . RIGHT _LEFT ? a . hash . sort ( this . sortRightLeft ) : b === c . Physics . Arcade . TOP _BOTTOM ? a . hash . sort ( this . sortTopBottom ) : b === c . Physics . Arcade . BOTTOM _TOP && a . hash . sort ( this . sortBottomTop ) } , collideHandler : function ( a , b , d , e , f , g ) { return void 0 === b && a . physicsType === c . GROUP ? ( this . sort ( a ) , void this . collideGroupVsSelf ( a , d , e , f , g ) ) : void ( a && b && a . exists && b . exists && ( this . sortDirection !== c . Physics . Arcade . SORT _NONE && ( a . physicsType === c . GROUP && this . sort ( a ) , b . physicsType === c . GROUP && this . sort ( b ) ) , a . physicsType === c . SPRITE ? b . physicsType === c . SPRITE ? this . collideSpriteVsSprite ( a , b , d , e , f , g ) : b . physicsType === c . GROUP ? this . collideSpriteVsGroup ( a , b , d , e , f , g ) : b . physicsType === c . TILEMAPLAYER && this . collideSpriteVsTilemapLayer ( a , b , d , e , f , g ) : a . physicsType === c . GROUP ? b . physicsType === c . SPRITE ? this . collideSpriteVsGroup ( b , a , d , e , f , g ) : b . physicsType === c . GROUP ? this . collideGroupVsGroup ( a , b , d , e , f , g ) : b . physicsType === c . TILEMAPLAYER && this . collideGroupVsTilemapLayer ( a , b , d , e , f , g ) : a . physicsType === c . TILEMAPLAYER && ( b . physicsType === c . SPRITE ? this . collideSpriteVsTilemapLayer ( b , a , d , e , f , g ) : b . physicsType === c . GROUP && this . collideGroupVsTilemapLayer ( b , a , d , e , f , g ) ) ) ) } , collideSpriteVsSprite : function ( a , b , c , d , e , f ) { return a . body && b . body ? ( this . separate ( a . body , b . body , d , e , f ) && ( c && c . call ( e , a , b ) , this . _total ++ ) , ! 0 ) : ! 1 } , collideSpriteVsGroup : function ( a , b , d , e , f , g ) { if ( 0 !== b . length && a . body ) { var h ; if ( this . skipQuadTree || a . body . skipQuadTree ) { for ( var i = 0 ; i < b . hash . length ; i ++ ) if ( b . hash [ i ] && b . hash [ i ] . exists && b . hash [ i ] . body ) { if ( h = b . hash [ i ] . body , this . sortDirection === c . Physics . Arcade . LEFT _RIGHT ) { if ( a . body . right < h . x ) break ; if ( h . right < a . body . x ) continue } else if ( this . sortDirection === c . Physics . Arcade . RIGHT _LEFT ) { if ( a . body . x > h . right ) break ; if ( h . x > a . body . right ) continue } else if ( this . sortDirection === c . Physics . Arcade . TOP _BOTTOM ) { if ( a . body . bottom < h . y ) break ; if ( h . bottom < a . body . y ) continue } else if ( this . sortDirection === c . Physics . Arcade . BOTTOM _TOP ) { if ( a . body . y > h . bottom ) break ; if ( h . y > a . body . bottom ) continue } this . collideSpriteVsSprite ( a , b . hash [ i ] , d , e , f , g ) } } else { this . quadTree . clear ( ) , this . quadTree . reset ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height , this . maxObjects , this . maxLevels ) , this . quadTree . populate ( b ) ; for ( var j = this . quadTree . retrieve ( a ) , i = 0 ; i < j . length ; i ++ ) this . separate ( a . body , j [ i ] , e , f , g ) && ( d && d . call ( f , a , j [ i ] . sprite ) , this . _total ++ ) } } } , collideGroupVsSelf : function ( a , b , d , e , f ) { if ( 0 !== a . length ) for ( var g = 0 ; g < a . hash . length ; g ++ ) if ( a . hash [ g ] && a . hash [ g ] . exists && a . hash [ g ] . body ) for ( var h = a . hash [ g ] , i = g + 1 ; i < a . hash . length ; i ++ ) if ( a . hash [ i ] && a . hash [ i ] . exists && a . hash [ i ] . body ) { var j = a . hash [ i ] ; if ( this . sortDirection === c . Physics . Arcade . LEFT _RIGHT ) { if ( h . body . right < j . body . x ) break ; if ( j . body . right < h . body . x ) continue } else if ( this . sortDirection === c . Physics . Arcade . RIGHT _LEFT ) { if ( h . body . x > j . body . right ) continue ; if ( j . body . x > h . body . right ) break } else if ( this . sortDirection === c . Physics . Arcade . TOP _BOTTOM ) { if ( h . body . bottom < j . body . y ) continue ; if ( j . body . bottom < h . body . y ) break } else if ( this . sortDirection === c . Physics . Arcade . BOTTOM _TOP ) { if ( h . body . y > j . body . bottom ) continue ; if ( j . body . y > h . body . bottom ) break } this . collideSpriteVsSprite ( h , j , b , d , e , f ) } } , collideGroupVsGroup : function ( a
j . faceRight = ! 0 ) , b && b . collides && ( j . faceTop = ! 1 ) , c && c . collides && ( j . faceBottom = ! 1 ) , d && d . collides && ( j . faceLeft = ! 1 ) , e && e . collides && ( j . faceRight = ! 1 ) ) } } , getTileAbove : function ( a , b , c ) { return c > 0 ? this . layers [ a ] . data [ c - 1 ] [ b ] : null } , getTileBelow : function ( a , b , c ) { return c < this . layers [ a ] . height - 1 ? this . layers [ a ] . data [ c + 1 ] [ b ] : null } , getTileLeft : function ( a , b , c ) { return b > 0 ? this . layers [ a ] . data [ c ] [ b - 1 ] : null } , getTileRight : function ( a , b , c ) { return b < this . layers [ a ] . width - 1 ? this . layers [ a ] . data [ c ] [ b + 1 ] : null } , setLayer : function ( a ) { a = this . getLayer ( a ) , this . layers [ a ] && ( this . currentLayer = a ) } , hasTile : function ( a , b , c ) { return c = this . getLayer ( c ) , void 0 === this . layers [ c ] . data [ b ] || void 0 === this . layers [ c ] . data [ b ] [ a ] ? ! 1 : this . layers [ c ] . data [ b ] [ a ] . index > - 1 } , removeTile : function ( a , b , d ) { if ( d = this . getLayer ( d ) , a >= 0 && a < this . layers [ d ] . width && b >= 0 && b < this . layers [ d ] . height && this . hasTile ( a , b , d ) ) { var e = this . layers [ d ] . data [ b ] [ a ] ; return this . layers [ d ] . data [ b ] [ a ] = new c . Tile ( this . layers [ d ] , - 1 , a , b , this . tileWidth , this . tileHeight ) , this . layers [ d ] . dirty = ! 0 , this . calculateFaces ( d ) , e } } , removeTileWorldXY : function ( a , b , c , d , e ) { return e = this . getLayer ( e ) , a = this . game . math . snapToFloor ( a , c ) / c , b = this . game . math . snapToFloor ( b , d ) / d , this . removeTile ( a , b , e ) } , putTile : function ( a , b , d , e ) { if ( null === a ) return this . removeTile ( b , d , e ) ; if ( e = this . getLayer ( e ) , b >= 0 && b < this . layers [ e ] . width && d >= 0 && d < this . layers [ e ] . height ) { var f ; return a instanceof c . Tile ? ( f = a . index , this . hasTile ( b , d , e ) ? this . layers [ e ] . data [ d ] [ b ] . copy ( a ) : this . layers [ e ] . data [ d ] [ b ] = new c . Tile ( e , f , b , d , a . width , a . height ) ) : ( f = a , this . hasTile ( b , d , e ) ? this . layers [ e ] . data [ d ] [ b ] . index = f : this . layers [ e ] . data [ d ] [ b ] = new c . Tile ( this . layers [ e ] , f , b , d , this . tileWidth , this . tileHeight ) ) , this . collideIndexes . indexOf ( f ) > - 1 ? this . layers [ e ] . data [ d ] [ b ] . setCollision ( ! 0 , ! 0 , ! 0 , ! 0 ) : this . layers [ e ] . data [ d ] [ b ] . resetCollision ( ) , this . layers [ e ] . dirty = ! 0 , this . calculateFaces ( e ) , this . layers [ e ] . data [ d ] [ b ] } return null } , putTileWorldXY : function ( a , b , c , d , e , f ) { return f = this . getLayer ( f ) , b = this . game . math . snapToFloor ( b , d ) / d , c = this . game . math . snapToFloor ( c , e ) / e , this . putTile ( a , b , c , f ) } , searchTileIndex : function ( a , b , c , d ) { void 0 === b && ( b = 0 ) , void 0 === c && ( c = ! 1 ) , d = this . getLayer ( d ) ; var e = 0 ; if ( c ) { for ( var f = this . layers [ d ] . height - 1 ; f >= 0 ; f -- ) for ( var g = this . layers [ d ] . width - 1 ; g >= 0 ; g -- ) if ( this . layers [ d ] . data [ f ] [ g ] . index === a ) { if ( e === b ) return this . layers [ d ] . data [ f ] [ g ] ; e ++ } } else for ( var f = 0 ; f < this . layers [ d ] . height ; f ++ ) for ( var g = 0 ; g < this . layers [ d ] . width ; g ++ ) if ( this . layers [ d ] . data [ f ] [ g ] . index === a ) { if ( e === b ) return this . layers [ d ] . data [ f ] [ g ] ; e ++ } return null } , getTile : function ( a , b , c , d ) { return void 0 === d && ( d = ! 1 ) , c = this . getLayer ( c ) , a >= 0 && a < this . layers [ c ] . width && b >= 0 && b < this . layers [ c ] . height ? - 1 === this . layers [ c ] . data [ b ] [ a ] . index ? d ? this . layers [ c ] . data [ b ] [ a ] : null : this . layers [ c ] . data [ b ] [ a ] : null } , getTileWorldXY : function ( a , b , c , d , e , f ) { return void 0 === c && ( c = this . tileWidth ) , void 0 === d && ( d = this . tileHeight ) , e = this . getLayer ( e ) , a = this . game . math . snapToFloor ( a , c ) / c , b = this . game . math . snapToFloor ( b , d ) / d , this . getTile ( a , b , e , f ) } , copy : function ( a , b , c , d , e ) { if ( e = this . getLayer ( e ) , ! this . layers [ e ] ) return void ( this . _results . length = 0 ) ; void 0 === a && ( a = 0 ) , void 0 === b && ( b = 0 ) , void 0 === c && ( c = this . layers [ e ] . width ) , void 0 === d && ( d = this . layers [ e ] . height ) , 0 > a && ( a = 0 ) , 0 > b && ( b = 0 ) , c > this . layers [ e ] . width && ( c = this . layers [ e ] . width ) , d > this . layers [ e ] . height && ( d = this . layers [ e ] . height ) , this . _results . length = 0 , this . _results . push ( { x : a , y : b , width : c , height : d , layer : e } ) ; for ( var f = b ; b + d > f ; f ++ ) for ( var g = a ; a + c > g ; g ++ ) this . _results . push ( this . layers [ e ] . data [ f ] [ g ] ) ; return this . _results } , paste : function ( a , b , c , d ) { if ( void 0 === a && ( a = 0 ) , void 0 === b && ( b = 0 ) , d = this . getLayer ( d ) , c && ! ( c . length < 2 ) ) { for ( var e = a - c [ 1 ] . x , f = b - c [ 1 ] . y , g = 1 ; g < c . length ; g ++ ) this . layers [ d ] . data [ f + c [ g ] . y ] [ e + c [ g ] . x ] . copy ( c [ g ] ) ; this . layers [ d ] . dirty = ! 0 , this . calculateFaces ( d ) } } , swap : function ( a , b , c , d , e , f , g ) { g = this . getLayer ( g ) , this . copy ( c , d , e , f , g ) , this . _results . length < 2 || ( this . _tempA = a , this . _tempB = b , this . _results . forEach ( this . swapHandler , this ) , this . paste ( c , d , this . _results , g ) ) } , swapHandler : function ( a ) { a . index === this . _tempA ? a . index = this . _tempB : a . index === this . _tempB && ( a . index = this . _tempA ) } , forEach : function ( a , b , c , d , e , f , g ) { g = this . getLayer ( g ) , this . copy ( c , d , e , f , g )
f > 0 && ( a !== b || d !== e ) ) { var i = { x : a , y : d } , j = this . game . make . tween ( i ) . to ( { x : b , y : e } , f , g ) ; j . yoyo ( h ) , this . scaleData = j . generateData ( 60 ) , this . scaleData . reverse ( ) , this . autoScale = ! 0 } return this } , c . Particles . Arcade . Emitter . prototype . at = function ( a ) { return a . center ? ( this . emitX = a . center . x , this . emitY = a . center . y ) : ( this . emitX = a . world . x + a . anchor . x * a . width , this . emitY = a . world . y + a . anchor . y * a . height ) , this } , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "width" , { get : function ( ) { return this . area . width } , set : function ( a ) { this . area . width = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "height" , { get : function ( ) { return this . area . height } , set : function ( a ) { this . area . height = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "x" , { get : function ( ) { return this . emitX } , set : function ( a ) { 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 . Video = function ( a , b , d ) { if ( void 0 === b && ( b = null ) , void 0 === d && ( d = null ) , this . game = a , this . key = b , this . width = 0 , this . height = 0 , this . type = c . VIDEO , this . disableTextureUpload = ! 1 , this . touchLocked = ! 1 , this . onPlay = new c . Signal , this . onChangeSource = new c . Signal , this . onComplete = new c . Signal , this . onAccess = new c . Signal , this . onError = new c . Signal , this . onTimeout = new c . Signal , this . timeout = 15e3 , this . _timeOutID = null , this . video = null , this . videoStream = null , this . isStreaming = ! 1 , this . retryLimit = 20 , this . retry = 0 , this . retryInterval = 500 , this . _retryID = null , this . _codeMuted = ! 1 , this . _muted = ! 1 , this . _codePaused = ! 1 , this . _paused = ! 1 , this . _pending = ! 1 , this . _autoplay = ! 1 , this . _endCallback = null , this . _playCallback = null , b && this . game . cache . checkVideoKey ( b ) ) { var e = this . game . cache . getVideo ( b ) ; e . isBlob ? this . createVideoFromBlob ( e . data ) : this . video = e . data , this . width = this . video . videoWidth , this . height = this . video . videoHeight } else d && this . createVideoFromURL ( d , ! 1 ) ; this . video && ! d ? ( this . baseTexture = new PIXI . BaseTexture ( this . video ) , this . baseTexture . forceLoaded ( this . width , this . height ) ) : ( this . baseTexture = new PIXI . BaseTexture ( PIXI . TextureCache . _ _default . baseTexture . source ) , this . baseTexture . forceLoaded ( this . width , this . height ) ) , this . texture = new PIXI . Texture ( this . baseTexture ) , this . textureFrame = new c . Frame ( 0 , 0 , 0 , this . width , this . height , "video" ) , this . texture . setFrame ( this . textureFrame ) , this . texture . valid = ! 1 , null !== b && this . video && ( this . texture . valid = this . video . canplay ) , this . snapshot = null , c . BitmapData && ( this . snapshot = new c . BitmapData ( this . game , "" , this . width , this . height ) ) , ! this . game . device . cocoonJS && ( this . game . device . iOS || this . game . device . android ) || window . PhaserGlobal && window . PhaserGlobal . fakeiOSTouchLock ? this . setTouchLock ( ) : e && ( e . locked = ! 1 ) } , c . Video . prototype = { connectToMediaStream : function ( a , b ) { return a && b && ( this . video = a , this . videoStream = b , this . isStreaming = ! 0 , this . baseTexture . source = this . video , this . updateTexture ( null , this . video . videoWidth , this . video . videoHeight ) , this . onAccess . dispatch ( this ) ) , this } , startMediaStream : function ( a , b , c ) { if ( void 0 === a && ( a = ! 1 ) , void 0 === b && ( b = null ) , void 0 === c && ( c = null ) , ! this . game . device . getUserMedia ) return this . onError . dispatch ( this , "No getUserMedia" ) , ! 1 ; null !== this . videoStream && ( this . videoStream . active ? this . videoStream . active = ! 1 : this . videoStream . stop ( ) ) , this . removeVideoElement ( ) , this . video = document . createElement ( "video" ) , this . video . setAttribute ( "autoplay" , "autoplay" ) , null !== b && ( this . video . width = b ) , null !== c && ( this . video . height = c ) , this . _timeOutID = window . setTimeout ( this . getUserMediaTimeout . bind ( this ) , this . timeout ) ; try { navigator . getUserMedia ( { audio : a , video : ! 0 } , this . getUserMediaSuccess . bind ( this ) , this . getUserMediaError . bind ( this ) ) } catch ( d ) { this . getUse
2015-02-25 02:59:00 +00:00
//# sourceMappingURL=phaser-arcade-physics.map