2015-10-13 13:10:55 +00:00
/* Phaser v2.4.4 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */
2015-02-25 02:59:00 +00:00
2015-10-13 13:10:55 +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 }
2015-10-15 11:06:38 +00:00
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 ] = [ a . SRC _ALPHA , a . ONE ] , c [ d . OVERLAY ] = [ a . ONE , a . ONE _MINUS _SRC _ALPHA ] , c [ d . DARKEN ] = [ a . ONE , a . ONE _MINUS _SRC _
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 = function ( a , b ) { this . hasLoaded = ! 0 , this . width = a , this . height = b , this . dirty ( ) } , b . BaseTexture . prototype . destroy = function ( ) { this . imageUrl ? ( delete b . BaseTextureCache [ this . imageUrl ] , delete b . TextureCache [ this . imageUrl ] , this . imageUrl = null , navigator . isCocoonJS || ( this . source . src = "" ) ) : this . source && this . source . _pixiId && ( b . CanvasPool . removeByCanvas ( this . source ) , delete b . BaseTextureCache [ this . source . _pixiId ] ) , this . source = null , this . unloadFromGPU ( ) } , b . BaseTexture . prototype . updateSourceImage = function ( a ) { this . hasLoaded = ! 1 , this . source . src = null , this . source . src = a } , b . BaseTexture . prototype . dirty = function ( ) { for ( var a = 0 ; a < this . _glTextures . length ; a ++ ) this . _dirty [ a ] = ! 0 } , b . BaseTexture . prototype . unloadFromGPU = function ( ) { this . dirty ( ) ; for ( var a = this . _glTextures . length - 1 ; a >= 0 ; a -- ) { var c = this . _glTextures [ a ] , d = b . glContexts [ a ] ; d && c && d . deleteTexture ( c ) } this . _glTextures . length = 0 , this . dirty ( ) } , b . BaseTexture . fromImage = function ( a , c , d ) { var e = b . BaseTextureCache [ a ] ; if ( void 0 === c && - 1 === a . indexOf ( "data:" ) && ( c = ! 0 ) , ! e ) { var f = new Image ; c && ( f . crossOrigin = "" ) , f . src = a , e = new b . BaseTexture ( f , d ) , e . imageUrl = a , b . BaseTextureCache [ a ] = e , - 1 !== a . in
} , 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 . start . x ) * ( this . end . x - this . start . x ) + ( this . end . y - this . start . y ) * ( this . end . y - this . start . y ) ) } } ) , Object . defineProperty ( c . Line . prototype , "angle" , { get : function ( ) { return Math . atan2 ( this . end . y - this . start . y , this . end . x - this . start . x ) } } ) , Object . defineProperty ( c . Line . prototype , "slope" , { get : function ( ) { return ( this . end . y - this . start . y ) / ( this . end . x - this . start . x ) } } ) , Object . defineProperty ( c . Line . prototype , "perpSlope" , { get : function ( ) { return - ( ( this . end . x - this . start . x ) / ( this . end . y - this . start . y ) ) } } ) , Object . defineProperty ( c . Line . prototype , "x" , { get : function ( ) { return Math . min ( this . start . x , this . end . x ) } } ) , Object . defineProperty ( c . Line . prototype , "y" , { get : function ( ) { return Math . min ( this . start . y , this . end . y ) } } ) , Object . defineProperty ( c . Line . prototype , "left" , { get : function ( ) { return Math . min ( this . start . x , this . end . x ) } } ) , Object . defineProperty ( c . Line . prototype , "right" , { get : function ( ) { return Math . max ( this . start . x , this . end . x ) } } ) , Object . defineProperty ( c . Line . prototype , "top" , { get : function ( ) { return Math . min ( this . start . y , this . end . y ) } } ) , Object . defineProperty ( c . Line . prototype , "bottom" , { get : function ( ) { return Math . max ( this . start . y , this . end . y ) } } ) , Object . defineProperty ( c . Line . prototype , "width" , { get : function ( ) {
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 . _shouldPropagate && a [ c ] . execute ( b ) !== ! 1 ) } } } , forget : function ( ) { this . _prevParams && ( this . _prevParams = null ) } , dispose : function ( ) { this . removeAll ( ) , this . _bindings = null , this . _prevParams && ( this . _prevParams = null ) } , toString : function ( ) { return "[Phaser.Signal active:" + this . active + " numListeners:" + this . getNumListeners ( ) + "]" } } , Object . defineProperty ( c . Signal . prototype , "boundDispatch" , { get : function ( ) { var a = this ; return this . _boundDispatch || ( this . _boundDispatch = function ( ) { return a . dispatch . apply ( a , arguments ) } ) } } ) , c . Signal . prototype . constructor = c . Signal , c . SignalBinding = function ( a , b , c , d , e , f ) { this . _listener = b , c && ( this . _isOnce = ! 0 ) , null != d && ( this . context = d ) , this . _signal = a , e && ( this . _priority = e ) , f && f . length && ( this . _args = f ) } , c . SignalBinding . prototype = { context : null , _isOnce : ! 1 , _priority : 0 , _args : null , callCount : 0 , active : ! 0 , params : null , execute : function ( a ) { var b , c ; return this . active && this . _listener && ( c = this . params ? this . params . concat ( a ) : a , this . _args && ( c = c . concat ( this . _args ) ) , b = this . _listener . apply ( this . context , c ) , this . callCount ++ , this . _isOnce && this . detach ( ) ) , b } , detach : function ( ) { return this . isBound ( ) ? this . _signal . remove ( this . _listener , this . context ) : null } , isBound : function ( ) { return ! ! this . _signal && ! ! this . _listener } , isOnce : function ( ) { return this . _isOnce } , getListener : function ( ) { return this . _listener } , getSignal : function ( ) { return this . _signal } , _destroy : f
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 ( "webglcontextrestored" , this . contextRestored . bind ( this ) , ! 1 ) ; this . device . cocoonJS && ( this . canvas . screencanvas = this . renderType === c . CANVAS ? ! 0 : ! 1 ) , this . renderType !== c . HEADLESS && ( this . stage . smoothed = this . antialias , c . Canvas . addToDOM ( this . canvas , this . parent , ! 1 ) , c . Canvas . setTouchAction ( this . canvas ) ) } , contextLost : function ( a ) { a . preventDefault ( ) , this . renderer . contextLost = ! 0 } , contextRestored : function ( ) { this . renderer . initContext ( ) , this . cache . clearGLTextures ( ) , this . renderer . contextLost = ! 1 } , update : function ( a ) { if ( this . time . update ( a ) , this . _kickstart ) return this . updateLogic ( this . time . desiredFpsMult ) , this . stage . updateTransform ( ) , this . updateRender ( this . time . slowMotion * this . time . desiredFps ) , void ( this . _kickstart = ! 1 ) ; if ( this . _spiraling > 1 && ! this . forceSingleUpdate ) this . time . time > this . _nextFpsNotification && ( this . _nextFpsNotification = this . time . time + 1e4 , this . fpsProblemNotifier . dispatch ( ) ) , this . _deltaTime = 0 , this . _spiraling = 0 , this . updateRender ( this . time . slowMotion * this . time . desiredFps ) ; else { var b = 1e3 * this . time . slowMotion / this . time . desiredFps ; this . _deltaTime += Math . max ( Math . min ( 3 * b , this . time . elapsed ) , 0 ) ; var c = 0 ; for ( this . updatesThisFrame = Math . floor ( this . _deltaTime / b ) , this . forceSingleUpdate && ( this . updatesThisFrame = Math . min ( 1 , this . updatesThisFrame ) ) ; this . _deltaTime >= b && ( this . _deltaTime -= b , this . currentUpdateID = c , this . updateLogic ( this . time . desiredFpsMult ) , this . stage . updateTransform ( ) , c ++ , ! this . forceSingleUpdate || 1 !== c ) ; ) this . time . refr
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 . game . input . justPressedRate , this . isDown === ! 0 && this . timeDown + a > this . game . time . time } , justReleased : function ( a ) { return a = a || this . game . input . justReleasedRate , this . isUp && this . timeUp + a > this . game . time . time } , addClickTrampoline : function ( a , b , c , d ) { if ( this . isDown ) { for ( var e = this . _clickTrampolines = this . _clickTrampolines || [ ] , f = 0 ; f < e . length ; f ++ ) if ( e [ f ] . name === a ) { e . splice ( f , 1 ) ; break } e . push ( { name : a , targetObject : this . targetObject , callback : b , callbackContext : c , callbackArgs : d } ) } } , processClickTrampolines : function ( ) { var a = this . _clickTrampolines ; if ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] ; c . targetObject === this . _trampolineTargetObject && c . callback . apply ( c . callbackContext , c . callbackArgs ) } this . _clickTrampolines = null , this . _trampolineTargetObject = null } } , reset : function ( ) { this . isMouse === ! 1 && ( this . active = ! 1 ) , this . pointerId = null , this . identifier = null , this . dirty = ! 1 , this . totalTouches = 0 , this . _holdSent = ! 1 , this . _history . length = 0 , this . _stateReset = ! 0 , this . resetButtons ( ) , this . targetObject && this . targetObject . _releasedHandler ( this ) , this . targetObject = null } , resetMovement : function ( ) { this . movementX = 0 , this . movementY = 0 } } , c . Pointer . prototype . constructor = c . Pointer , Object . defineProperty ( c . Pointer . prototype , "duration" , { get : function ( ) { return this . isUp ? - 1 : this . game . time . time - this . timeDown } } ) , Object . defineProperty ( c . Pointer . prototype , "worldX" , { get : function ( ) { return this . game . world . camera . x + this . x } } ) , Object . defineProperty ( c . Pointer . prototype , "worldY" , { get : function ( ) { return this . game . world . camera . y + this . y } } ) , c . PointerMode = { CURSOR : 1 , CONTACT : 2 } , c . Touch = function ( a ) { this . game = a , this . enabled = ! 0 , this . touchLockCallbacks = [ ] , this . callbackContext = this . game , this . touchStartCallback = null , this . touchMoveCallback = null , this . touchEndCallback = null , this . touchEnterCallback = null , this . touchLeaveCallback = null , this . touchCancelCallback = null , this . preventDefault = ! 0 , this . event = null , this . _onTouchStart = null , this . _onTouchMove = null , this . _onTouchEnd = nu
} , 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 = this . game . time . time , this . duration = 0 , this . _enabled = ! 0 , this . _justDown = ! 1 , this . _justUp = ! 1 , a && ( this . onDown . removeAll ( ) , this . onUp . removeAll ( ) , this . onHoldCallback = null , this . onHoldContext = null ) } , downDuration : function ( a ) { return void 0 === a && ( a = 50 ) , this . isDown && this . duration < a } , upDuration : function ( a ) { return void 0 === a && ( a = 50 ) , ! this . isDown && this . game . time . time - this . timeUp < a } } , Object . defineProperty ( c . Key . prototype , "justDown" , { get : function ( ) { var a = this . _justDown ; return this . _justDown = ! 1 , a } } ) , Object . defineProperty ( c . Key . prototype , "justUp" , { get : function ( ) { var a = this . _justUp ; return this . _justUp = ! 1 , a } } ) , Object . defineProperty ( c . Key . prototype , "enabled" , { get : function ( ) { return this . _enabled } , set : function ( a ) { a = ! ! a , a !== this . _enabled && ( a || this . reset ( ! 1 ) , this . _enabled = a ) } } ) , c . Key . prototype . constructor = c . Key , c . Keyboard = function ( a ) { this . game = a , this . enabled = ! 0 , this . event = null , this . pressEvent = null , this . callbackContext = this , this . onDownCallback = null , this . onPressCallback = null , this . onUpCallback = null , this . _keys = [ ] , this . _capture = [ ] , this . _onKeyDown = null , this . _onKeyPress = null , this . _onKeyUp = null , this . _i = 0 , this . _k = 0 } , c . Keyboard . prototype = { addCallbacks : function ( a , b , c , d ) { this . callbackContext = a , void 0 !== b && null !== b && ( this . onDownCallback = b ) , void 0 !== c && null !== c && ( this . onUpCallback = c ) , void 0 !== d && null !== d && ( this . onPressCallback = d ) } , addKey : function ( a ) { return this . _keys [ a ] || ( this . _keys [ a ] = new c . Key ( this . game , a ) , this . addKeyCapture ( a ) ) , this . _keys [ a ] } , addKeys : function ( a ) { var b = { } ; for ( var c in a ) b [ c ] = this . addKey ( a [ c ] ) ; return b } , removeKey : function ( a ) { this . _keys [ a ] && ( this . _keys [ a ] = null , this . removeKeyCapture ( a ) ) } , createCursorKeys : function ( ) { return this . addKeys ( { up : c . KeyCode . UP , down : c . KeyCode . DOWN , left : c . KeyCode . LEFT , right : c . KeyCode . RIGHT } ) } , start : function ( ) { if ( ! this . game . device . cocoonJS && null === this . _onKeyDown ) { var a = this ; this . _onKeyDown = function ( b ) { return a . processKeyDown ( b ) } , this . _
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 , c . Group . prototype , PIXI . SpriteBatch . prototype ) , c . SpriteBatch . prototype . constructor = c . SpriteBatch , c . BitmapData = function ( a , b , d , e ) { ( void 0 === d || 0 === d ) && ( d = 256 ) , ( void 0 === e || 0 === e ) && ( e = 256 ) , this . game = a , this . key = b , this . width = d , this . height = e , this . canvas = PIXI . CanvasPool . create ( this , d , e ) , this . context = this . canvas . getContext ( "2d" , { alpha : ! 0 } ) , this . ctx = this . context , this . imageData = this . context . getImageData ( 0 , 0 , d , e ) , this . data = null , this . imageData && ( this . data = this . imageData . data ) , this . pixels = null , this . data && ( this . imageData . data . buffer ? ( this . buffer = this . imageData . data . buffer , this . pixels = new Uint32Array ( this . buffer ) ) : window . ArrayBuffer ? ( this . buffer = new ArrayBuffer ( this . imageData . data . length ) , this . pixels = new Uint32Array ( this . buffer ) ) : this . pixels = this . imageData . data ) , this . baseTexture = new PIXI . BaseTexture ( this . canvas ) , this . texture = new PIXI . Texture ( this . baseTexture ) , this . textureFrame = new c . Frame ( 0 , 0 , 0 , d , e , "bitmapData" ) , this . texture . frame = this . textureFrame , this . type = c . BITMAPDATA , this . disableTextureUpload = ! 1 , this . dirty = ! 1 , this . cls = this . clear , this . _image = null , this . _pos = new c . Point , this . _size = new c . Point , this . _scale = new c . Point , this . _rotate = 0 , this . _alpha = { prev : 1 , current : 1 } , this . _anchor = new c . Point , this . _tempR = 0 , this . _tempG = 0 , this . _tempB = 0 , this . _circle = new c . Circle , this . _swapCanvas = PIXI . CanvasPool . create ( this , d , e ) } , c . BitmapData . prototype = { move : function ( a , b , c ) { return 0 !== a && this . moveH ( a , c ) , 0 !== b && this . moveV ( b , c ) , this } , moveH : function ( a , b ) { void 0 === b && ( b = ! 0 ) ; var c = this . _swapCanvas , d = c . getContext ( "2d" ) , e = this . height , f = this . canvas ; if ( d . clearRect ( 0 , 0 , this . width , this . height ) , 0 > a ) { a = Math . abs ( a ) ; var g = this . width - a ; b && d . drawImage ( f , 0 , 0 , a , e , g , 0 , a , e ) , d . drawImage ( f , a , 0 , g , e , 0 , 0 , g , e ) } else { var g = this . width - a ; b && d . drawImage ( f , g , 0 , a , e , 0 , 0 , a , e ) , d . drawImage ( f , 0 , 0 , g , e , a , 0 , g , e ) } return this . clear ( ) , this . copy ( this . _swapCanvas ) } , moveV : function ( a , b ) { void 0 === b && ( b = ! 0 ) ; var c = this . _swapCanvas , d = c . getContext ( "2d" ) , e = this . width , f = this . canvas ; if ( d . clearRect ( 0 , 0 , this . width , this . height ) , 0 > a ) { a = Math . abs ( a ) ; var g = this . height - a ; b && d . drawImage ( f , 0 , 0 , e , a , 0 , g , e , a ) , d . drawImage ( f , 0 , a , e , g , 0 , 0 , e , g ) } else { var g = this . height - a ; b && d . drawImage ( f , 0 , g , e , a , 0 , 0 , e , a ) , d . drawImage ( f , 0 , 0 , e , g , 0 , a , e , g ) } return this . clear ( ) , this . copy ( this . _swapCanvas ) } , add : function ( a ) { if ( Array . isArray ( a ) ) for ( var b = 0 ; b < a . length ; b ++ ) a [ b ] . loadTexture && a [ b ] . loadTexture ( this ) ; e
i = i . concat ( PIXI . WebGLGraphics . quadraticBezierCurve ( d + f - h , e + g , d + f , e + g , d + f , e + g - h ) ) , i = i . concat ( PIXI . WebGLGraphics . quadraticBezierCurve ( d + f , e + h , d + f , e , d + f - h , e ) ) , i = i . concat ( PIXI . WebGLGraphics . quadraticBezierCurve ( d + h , e , d , e , d , e + h ) ) , a . fill ) { var j = PIXI . hex2rgb ( a . fillColor ) , k = a . fillAlpha , l = j [ 0 ] * k , m = j [ 1 ] * k , n = j [ 2 ] * k , o = b . points , p = b . indices , q = o . length / 6 , r = PIXI . PolyK . Triangulate ( i ) , s = 0 ; for ( s = 0 ; s < r . length ; s += 3 ) p . push ( r [ s ] + q ) , p . push ( r [ s ] + q ) , p . push ( r [ s + 1 ] + q ) , p . push ( r [ s + 2 ] + q ) , p . push ( r [ s + 2 ] + q ) ; for ( s = 0 ; s < i . length ; s ++ ) o . push ( i [ s ] , i [ ++ s ] , l , m , n , k ) } if ( a . lineWidth ) { var t = a . points ; a . points = i , PIXI . WebGLGraphics . buildLine ( a , b ) , a . points = t } } , PIXI . WebGLGraphics . quadraticBezierCurve = function ( a , b , c , d , e , f ) { function g ( a , b , c ) { var d = b - a ; return a + d * c } for ( var h , i , j , k , l , m , n = 20 , o = [ ] , p = 0 , q = 0 ; n >= q ; q ++ ) p = q / n , h = g ( a , c , p ) , i = g ( b , d , p ) , j = g ( c , e , p ) , k = g ( d , f , p ) , l = g ( h , j , p ) , m = g ( i , k , p ) , o . push ( l , m ) ; return o } , PIXI . WebGLGraphics . buildCircle = function ( a , b ) { var c , d , e = a . shape , f = e . x , g = e . y ; a . type === PIXI . Graphics . CIRC ? ( c = e . radius , d = e . radius ) : ( c = e . width , d = e . height ) ; var h = 40 , i = 2 * Math . PI / h , j = 0 ; if ( a . fill ) { var k = PIXI . hex2rgb ( a . fillColor ) , l = a . fillAlpha , m = k [ 0 ] * l , n = k [ 1 ] * l , o = k [ 2 ] * l , p = b . points , q = b . indices , r = p . length / 6 ; for ( q . push ( r ) , j = 0 ; h + 1 > j ; j ++ ) p . push ( f , g , m , n , o , l ) , p . push ( f + Math . sin ( i * j ) * c , g + Math . cos ( i * j ) * d , m , n , o , l ) , q . push ( r ++ , r ++ ) ; q . push ( r - 1 ) } if ( a . lineWidth ) { var s = a . points ; for ( a . points = [ ] , j = 0 ; h + 1 > j ; j ++ ) a . points . push ( f + Math . sin ( i * j ) * c , g + Math . cos ( i * j ) * d ) ; PIXI . WebGLGraphics . buildLine ( a , b ) , a . points = s } } , PIXI . WebGLGraphics . buildLine = function ( a , b ) { var c = 0 , d = a . points ; if ( 0 !== d . length ) { if ( a . lineWidth % 2 ) for ( c = 0 ; c < d . length ; c ++ ) d [ c ] += . 5 ; var e = new PIXI . Point ( d [ 0 ] , d [ 1 ] ) , f = new PIXI . Point ( d [ d . length - 2 ] , d [ d . length - 1 ] ) ; if ( e . x === f . x && e . y === f . y ) { d = d . slice ( ) , d . pop ( ) , d . pop ( ) , f = new PIXI . Point ( d [ d . length - 2 ] , d [ d . length - 1 ] ) ; var g = f . x + . 5 * ( e . x - f . x ) , h = f . y + . 5 * ( e . y - f . y ) ; d . unshift ( g , h ) , d . push ( g , h ) } var i , j , k , l , m , n , o , p , q , r , s , t , u , v , w , x , y , z , A , B , C , D , E , F = b . points , G = b . indices , H = d . length / 2 , I = d . length , J = F . length / 6 , K = a . lineWidth / 2 , L = PIXI . hex2rgb ( a . lineColor ) , M = a . lineAlpha , N = L [ 0 ] * M , O = L [ 1 ] * M , P = L [ 2 ] * M ; for ( k = d [ 0 ] , l = d [ 1 ] , m = d [ 2 ] , n = d [ 3 ] , q = - ( l - n ) , r = k - m , E = Math . sqrt ( q * q + r * r ) , q /= E , r /= E , q *= K , r *= K , F . push ( k - q , l - r , N , O , P , M ) , F . push ( k + q , l + r , N , O , P , M ) , c = 1 ; H - 1 > c ; c ++ ) k = d [ 2 * ( c - 1 ) ] , l = d [ 2 * ( c - 1 ) + 1 ] , m = d [ 2 * c ] , n = d [ 2 * c + 1 ] , o = d [ 2 * ( c + 1 ) ] , p = d [ 2 * ( c + 1 ) + 1 ] , q = - ( l - n ) , r = k - m , E = Math . sqrt ( q * q + r * r ) , q /= E , r /= E , q *= K , r *= K , s = - ( n - p ) , t = m - o , E = Math . sqrt ( s * s + t * t ) , s /= E , t /= E , s *= K , t *= K , w = - r + l - ( - r + n ) , x = - q + m - ( - q + k ) , y = ( - q + k ) * ( - r + n ) - ( - q + m ) * ( - r + l ) , z = - t + p - ( - t + n ) , A = - s + m - ( - s + o ) , B = ( - s + o ) * ( - t + n ) - ( - s + m ) * ( - t + p ) , C = w * A - z * x , Math . abs ( C ) < . 1 ? ( C += 10.1 , F . push ( m - q , n - r , N , O , P , M ) , F . push ( m + q , n + r , N , O , P , M ) ) : ( i = ( x * B - A * y ) / C , j = ( z * y - w * B ) / C , D = ( i - m ) * ( i - m ) + ( j - n ) + ( j - n ) , D > 19600 ? ( u = q - s , v = r - t , E = Math . sqrt ( u * u + v * v ) , u /= E , v /= E , u *= K , v *= K , F . push ( m - u , n - v ) , F . push ( N , O , P , M ) , F . push ( m + u , n + v ) , F . push ( N , O , P , M ) , F . push ( m - u , n - v ) , F . push ( N , O , P , M ) , I ++ ) : ( F . push ( i , j ) , F . push ( N , O , P , M ) , F . push ( m - ( i - m ) , n - ( j - n ) ) , F . push ( N , O , P , M ) ) ) ; for ( k = d [ 2 * ( H - 2 ) ] , l = d [ 2 * ( H - 2 ) + 1 ] , m = d [ 2 * ( H - 1 ) ] , n = d [ 2 * ( H - 1 ) + 1 ] , q = - ( l - n ) , r = k - m , E = Math . sqrt ( q * q + r * r ) , q /= E , r /= E , q *= K , r *= K , F . push ( m - q , n - r ) , F . push ( N , O , P , M ) , F . push ( m + q , n + r ) , F . push ( N , O , P , M ) , G . push ( J ) , c = 0 ; I > c ; c ++ ) G . push ( J ++ ) ; G . push ( J - 1 ) } } , PIXI . WebGLGraphics . buildComplexPoly = function ( a , b ) { var c = a . points . slice ( ) ; if ( ! ( c . length < 6 ) ) { var d = b . indices ; b . points = c , b . alpha = a . fillAlpha , b . color = PIXI . hex2rgb ( a . fillColor ) ; for ( var e , f , g = 1 / 0 , h = - ( 1 / 0 ) , i = 1 / 0 , j = - ( 1 / 0 ) , k = 0 ; k < c . length ; k += 2 ) e = c [ k ] , f = c [ k + 1 ] , g = g > e ? e : g , h = e > h ? e : h , i = i > f ? f : i , j = f > j ? f : j ; c . push ( g , i , h , i , h , j , g , j ) ; var l = c . length / 2 ; for ( k = 0 ; l > k ; k ++ ) d . push ( k ) } } , PIXI . WebGLGraphics . buildPoly = function ( a , b ) { var c = a . points ; if ( ! ( c . length < 6 ) ) { var d = b . points , e = b . indices , f = c . length / 2 , g = PIXI . hex2rgb ( a . fillColor ) , h = a . fillAlpha , i = g [ 0 ] * h , j = g [ 1 ] * h , k = g [ 2 ] * h , l = PIXI . PolyK . Triangulate ( c ) ; if ( ! l ) return ! 1 ; var m = d . length / 6 , n = 0 ; for ( n = 0 ; n < l . length ; n += 3 ) e . push ( l [ n ] + m ) , e . push ( l [ n ] + m ) , e . push ( l [ n + 1 ] + m ) , e . push ( l [ n + 2 ] + m ) , e . push ( l [ n + 2 ] + m ) ; for ( n = 0 ; f > n ; n ++ ) d . push ( c [ 2 * n ] , c [ 2 * n + 1 ] , i , j , k , h ) ; return ! 0 } } , PIXI . WebGLGraphics . graphicsDataPool = [ ] , PIXI . WebGLGraphicsData = function ( a ) { this . gl = a , this . color = [ 0 , 0 , 0 ] , this . points = [ ] , this . indices = [ ] , this . buffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , this . mode = 1 , this . alpha = 1 , this . dirty = ! 0 } , PIXI . WebGLGraphi
a !== this . _tint && ( this . _tint = a , this . updateText ( ) ) } } ) , Object . defineProperty ( c . BitmapText . prototype , "font" , { get : function ( ) { return this . _font } , set : function ( a ) { a !== this . _font && ( this . _font = a . trim ( ) , this . _data = this . game . cache . getBitmapFont ( this . _font ) , this . updateText ( ) ) } } ) , Object . defineProperty ( c . BitmapText . prototype , "fontSize" , { get : function ( ) { return this . _fontSize } , set : function ( a ) { a = parseInt ( a , 10 ) , a !== this . _fontSize && a > 0 && ( this . _fontSize = a , this . updateText ( ) ) } } ) , Object . defineProperty ( c . BitmapText . prototype , "text" , { get : function ( ) { return this . _text } , set : function ( a ) { a !== this . _text && ( this . _text = a . toString ( ) || "" , this . updateText ( ) ) } } ) , Object . defineProperty ( c . BitmapText . prototype , "maxWidth" , { get : function ( ) { return this . _maxWidth } , set : function ( a ) { a !== this . _maxWidth && ( this . _maxWidth = a , this . updateText ( ) ) } } ) , Object . defineProperty ( c . BitmapText . prototype , "smoothed" , { get : function ( ) { return ! this . _data . base . scaleMode } , set : function ( a ) { a ? this . _data . base . scaleMode = 0 : this . _data . base . scaleMode = 1 } } ) , c . RetroFont = function ( a , b , d , e , f , g , h , i , j , k ) { if ( ! a . cache . checkImageKey ( b ) ) return ! 1 ; ( void 0 === g || null === g ) && ( g = a . cache . getImage ( b ) . width / d ) , this . characterWidth = d , this . characterHeight = e , this . characterSpacingX = h || 0 , this . characterSpacingY = i || 0 , this . characterPerRow = g , this . offsetX = j || 0 , this . offsetY = k || 0 , this . align = "left" , this . multiLine = ! 1 , this . autoUpperCase = ! 0 , this . customSpacingX = 0 , this . customSpacingY = 0 , this . fixedWidth = 0 , this . fontSet = a . cache . getImage ( b ) , this . _text = "" , this . grabData = [ ] , this . frameData = new c . FrameData ; for ( var l = this . offsetX , m = this . offsetY , n = 0 , o = 0 ; o < f . length ; o ++ ) { var p = this . frameData . addFrame ( new c . Frame ( o , l , m , this . characterWidth , this . characterHeight ) ) ; this . grabData [ f . charCodeAt ( o ) ] = p . index , n ++ , n === this . characterPerRow ? ( n = 0 , l = this . offsetX , m += this . characterHeight + this . characterSpacingY ) : l += this . characterWidth + this . characterSpacingX } a . cache . updateFrameData ( b , this . frameData ) , this . stamp = new c . Image ( a , 0 , 0 , b , 0 ) , c . RenderTexture . call ( this , a , 100 , 100 , "" , c . scaleModes . NEAREST ) , this . type = c . RETROFONT } , c . RetroFont . prototype = Object . create ( c . RenderTexture . prototype ) , c . RetroFont . prototype . constructor = c . RetroFont , c . RetroFont . ALIGN _LEFT = "left" , c . RetroFont . ALIGN _RIGHT = "right" , c . RetroFont . ALIGN _CENTER = "center" , c . RetroFont . TEXT _SET1 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" , c . RetroFont . TEXT _SET2 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . RetroFont . TEXT _SET3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 " , c . RetroFont . TEXT _SET4 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789" , c . RetroFont . TEXT _SET5 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789" , c . RetroFont . TEXT _SET6 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' " , c . RetroFont . TEXT _SET7 = "AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39" , c . RetroFont . TEXT _SET8 = "0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . RetroFont . TEXT _SET9 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!" , c . RetroFont . TEXT _SET10 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . RetroFont . TEXT _SET11 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789" , c . RetroFont . prototype . setFixedWidth = function ( a , b ) { void 0 === b && ( b = "left" ) , this . fixedWidth = a , this . align = b } , c . RetroFont . prototype . setText = function ( a , b , c , d , e , f ) { this . multiLine = b || ! 1 , this . customSpacingX = c || 0 , this . customSpacingY = d || 0 , this . align = e || "left" , f ? this . autoUpperCase = ! 1 : this . autoUpperCase = ! 0 , a . length > 0 && ( this . text = a ) } , c . RetroFont . prototype . buildRetroFontText = function ( ) { var a = 0 , b = 0 ; if ( this . clear ( ) , this . multiLine ) { var d = this . _text . split ( "\n" ) ; this . fixedWidth > 0 ? this . resize ( this . fixedWidth , d . length * ( this . characterHeight + this . customSpacingY ) - this . customSpacingY , ! 0 ) : this . resize ( this . getLongestLine ( ) * ( this . characterWidth + this . customSpacingX ) , d . length * ( this . characterHeight + this . customSpacingY ) - this . customSpacingY , ! 0 ) ; for ( var e = 0 ; e < d . length ; e ++ ) a = 0 , this . align === c . RetroFont . ALIGN _RIGHT ? a = this . width - d [ e ] . length * ( this . characterWidth + this . customSpacingX ) : this . align === c . RetroFont . ALIGN _CENTER && ( a = this . width / 2 - d [ e ] . length * ( this . characterWidth + this . customSpacingX ) / 2 , a += this . customSpacingX / 2 ) , 0 > a && ( a = 0 ) , this . pasteLine ( d [ e ] , a , b , this . customSpacingX ) , b += this . characterHeight + this . customSp
this . nodes . splice ( a , 1 ) ; this . nodes . length = 0 } } , c . QuadTree . prototype . constructor = c . QuadTree , c . Net = function ( a ) { this . game = a } , c . Net . prototype = { getHostName : function ( ) { return window . location && window . location . hostname ? window . location . hostname : null } , checkDomainName : function ( a ) { return - 1 !== window . location . hostname . indexOf ( a ) } , updateQueryString : function ( a , b , c , d ) { void 0 === c && ( c = ! 1 ) , ( void 0 === d || "" === d ) && ( d = window . location . href ) ; var e = "" , f = new RegExp ( "([?|&])" + a + "=.*?(&|#|$)(.*)" , "gi" ) ; if ( f . test ( d ) ) e = "undefined" != typeof b && null !== b ? d . replace ( f , "$1" + a + "=" + b + "$2$3" ) : d . replace ( f , "$1$3" ) . replace ( /(&|\?)$/ , "" ) ; else if ( "undefined" != typeof b && null !== b ) { var g = - 1 !== d . indexOf ( "?" ) ? "&" : "?" , h = d . split ( "#" ) ; d = h [ 0 ] + g + a + "=" + b , h [ 1 ] && ( d += "#" + h [ 1 ] ) , e = d } else e = d ; return c ? void ( window . location . href = e ) : e } , getQueryString : function ( a ) { void 0 === a && ( a = "" ) ; var b = { } , c = location . search . substring ( 1 ) . split ( "&" ) ; for ( var d in c ) { var e = c [ d ] . split ( "=" ) ; if ( e . length > 1 ) { if ( a && a == this . decodeURI ( e [ 0 ] ) ) return this . decodeURI ( e [ 1 ] ) ; b [ this . decodeURI ( e [ 0 ] ) ] = this . decodeURI ( e [ 1 ] ) } } return b } , decodeURI : function ( a ) { return decodeURIComponent ( a . replace ( /\+/g , " " ) ) } } , c . Net . prototype . constructor = c . Net , c . TweenManager = function ( a ) { this . game = a , this . frameBased = ! 1 , this . _tweens = [ ] , this . _add = [ ] , this . easeMap = { Power0 : c . Easing . Power0 , Power1 : c . Easing . Power1 , Power2 : c . Easing . Power2 , Power3 : c . Easing . Power3 , Power4 : c . Easing . Power4 , Linear : c . Easing . Linear . None , Quad : c . Easing . Quadratic . Out , Cubic : c . Easing . Cubic . Out , Quart : c . Easing . Quartic . Out , Quint : c . Easing . Quintic . Out , Sine : c . Easing . Sinusoidal . Out , Expo : c . Easing . Exponential . Out , Circ : c . Easing . Circular . Out , Elastic : c . Easing . Elastic . Out , Back : c . Easing . Back . Out , Bounce : c . Easing . Bounce . Out , "Quad.easeIn" : c . Easing . Quadratic . In , "Cubic.easeIn" : c . Easing . Cubic . In , "Quart.easeIn" : c . Easing . Quartic . In , "Quint.easeIn" : c . Easing . Quintic . In , "Sine.easeIn" : c . Easing . Sinusoidal . In , "Expo.easeIn" : c . Easing . Exponential . In , "Circ.easeIn" : c . Easing . Circular . In , "Elastic.easeIn" : c . Easing . Elastic . In , "Back.easeIn" : c . Easing . Back . In , "Bounce.easeIn" : c . Easing . Bounce . In , "Quad.easeOut" : c . Easing . Quadratic . Out , "Cubic.easeOut" : c . Easing . Cubic . Out , "Quart.easeOut" : c . Easing . Quartic . Out , "Quint.easeOut" : c . Easing . Quintic . Out , "Sine.easeOut" : c . Easing . Sinusoidal . Out , "Expo.easeOut" : c . Easing . Exponential . Out , "Circ.easeOut" : c . Easing . Circular . Out , "Elastic.easeOut" : c . Easing . Elastic . Out , "Back.easeOut" : c . Easing . Back . Out , "Bounce.easeOut" : c . Easing . Bounce . Out , "Quad.easeInOut" : c . Easing . Quadratic . InOut , "Cubic.easeInOut" : c . Easing . Cubic . InOut , "Quart.easeInOut" : c . Easing . Quartic . InOut , "Quint.easeInOut" : c . Easing . Quintic . InOut , "Sine.easeInOut" : c . Easing . Sinusoidal . InOut , "Expo.easeInOut" : c . Easing . Exponential . InOut , "Circ.easeInOut" : c . Easing . Circular . InOut , "Elastic.easeInOut" : c . Easing . Elastic . InOut , "Back.easeInOut" : c . Easing . Back . InOut , "Bounce.easeInOut" : c . Easing . Bounce . InOut } , this . game . onPause . add ( this . _pauseAll , this ) , this . game . onResume . add ( this . _resumeAll , this ) } , c . TweenManager . prototype = { getAll : function ( ) { return this . _tweens } , removeAll : function ( ) { for ( var a = 0 ; a < this . _tweens . length ; a ++ ) this . _tweens [ a ] . pendingDelete = ! 0 ; this . _add = [ ] } , removeFrom : function ( a , b ) { void 0 === b && ( b = ! 0 ) ; var d , e ; if ( Array . isArray ( a ) ) for ( d = 0 , e = a . length ; e > d ; d ++ ) this . removeFrom ( a [ d ] ) ; else if ( a . type === c . GROUP && b ) for ( var d = 0 , e = a . children . length ; e > d ; d ++ ) this . removeFrom ( a . children [ d ] ) ; else { for ( d = 0 , e = this . _tweens . length ; e > d ; d ++ ) a === this . _tweens [ d ] . target && this . remove ( this . _tweens [ d ] ) ; for ( d = 0 , e = this . _add . length ; e > d ; d ++ ) a === this . _add [ d ] . target && this . remove ( this . _add [ d ] ) } } , add : function ( a ) { a . _manager = this , this . _add . push ( a ) } , create : function ( a ) { return new c . Tween ( a , this . game , this ) } , remove : function ( a ) { var b = this . _tweens . indexOf ( a ) ; - 1 !== b ? this . _tweens [ b ] . pendingDelete = ! 0 : ( b = this . _add . indexOf ( a ) , - 1 !== b && ( this . _add [ b ] . pendingDelete = ! 0 ) ) } , update : function ( ) { var a = this . _add . length , b = this . _tweens . length ; if ( 0 === b && 0 === a ) return ! 1 ; for ( var c = 0 ; b > c ; ) this . _tweens [ c ] . update ( this . game . time . time ) ? c ++ : ( this . _tweens . splice ( c , 1 ) , b -- ) ; return a > 0 && ( this . _tweens = this . _tweens . concat ( this . _add ) , this . _add . length = 0 ) , ! 0 } , isTweening : function ( a ) { return this . _tweens . some ( function ( b ) { return b . target === a } ) } , _pauseAll : func
var c = this . currentFrame . index ; return this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . currentFrame && ( b || ! b && c !== this . currentFrame . index ) && this . _parent . setFrame ( this . currentFrame ) , this . onUpdate && a ? ( this . onUpdate . dispatch ( this , this . currentFrame ) , ! ! this . _frameData ) : ! 0 } , next : function ( a ) { void 0 === a && ( a = 1 ) ; var b = this . _frameIndex + a ; b >= this . _frames . length && ( this . loop ? b %= this . _frames . length : b = this . _frames . length - 1 ) , b !== this . _frameIndex && ( this . _frameIndex = b , this . updateCurrentFrame ( ! 0 ) ) } , previous : function ( a ) { void 0 === a && ( a = 1 ) ; var b = this . _frameIndex - a ; 0 > b && ( this . loop ? b = this . _frames . length + b : b ++ ) , b !== this . _frameIndex && ( this . _frameIndex = b , this . updateCurrentFrame ( ! 0 ) ) } , updateFrameData : function ( a ) { this . _frameData = a , this . currentFrame = this . _frameData ? this . _frameData . getFrame ( this . _frames [ this . _frameIndex % this . _frames . length ] ) : null } , destroy : function ( ) { this . _frameData && ( this . game . onPause . remove ( this . onPause , this ) , this . game . onResume . remove ( this . onResume , this ) , this . game = null , this . _parent = null , this . _frames = null , this . _frameData = null , this . currentFrame = null , this . isPlaying = ! 1 , this . onStart . dispose ( ) , this . onLoop . dispose ( ) , this . onComplete . dispose ( ) , this . onUpdate && this . onUpdate . dispose ( ) ) } , complete : function ( ) { this . _frameIndex = this . _frames . length - 1 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . isPlaying = ! 1 , this . isFinished = ! 0 , this . paused = ! 1 , this . _parent . events . onAnimationComplete$dispatch ( this . _parent , this ) , this . onComplete . dispatch ( this . _parent , this ) , this . killOnComplete && this . _parent . kill ( ) } } , c . Animation . prototype . constructor = c . Animation , Object . defineProperty ( c . Animation . prototype , "paused" , { get : function ( ) { return this . isPaused } , set : function ( a ) { this . isPaused = a , a ? this . _pauseStartTime = this . game . time . time : this . isPlaying && ( this . _timeNextFrame = this . game . time . time + this . delay ) } } ) , Object . defineProperty ( c . Animation . prototype , "frameTotal" , { get : function ( ) { return this . _frames . length } } ) , Object . defineProperty ( c . Animation . prototype , "frame" , { get : function ( ) { return null !== this . currentFrame ? this . currentFrame . index : this . _frameIndex } , set : function ( a ) { this . currentFrame = this . _frameData . getFrame ( this . _frames [ a ] ) , null !== this . currentFrame && ( this . _frameIndex = a , this . _parent . setFrame ( this . currentFrame ) , this . onUpdate && this . onUpdate . dispatch ( this , this . currentFrame ) ) } } ) , Object . defineProperty ( c . Animation . prototype , "speed" , { get : function ( ) { return Math . round ( 1e3 / this . delay ) } , set : function ( a ) { a >= 1 && ( this . delay = 1e3 / a ) } } ) , Object . defineProperty ( c . Animation . prototype , "enableUpdate" , { get : function ( ) { return null !== this . onUpdate } , set : function ( a ) { a && null === this . onUpdate ? this . onUpdate = new c . Signal : a || null === this . onUpdate || ( this . onUpdate . dispose ( ) , this . onUpdate = null ) } } ) , c . Animation . generateFrameNames = function ( a , b , d , e , f ) { void 0 === e && ( e = "" ) ; var g = [ ] , h = "" ; if ( d > b ) for ( var i = b ; d >= i ; i ++ ) h = "number" == typeof f ? c . Utils . pad ( i . toString ( ) , f , "0" , 1 ) : i . toString ( ) , h = a + h + e , g . push ( h ) ; else for ( var i = b ; i >= d ; i -- ) h = "number" == typeof f ? c . Utils . pad ( i . toString ( ) , f , "0" , 1 ) : i . toString ( ) , h = a + h + e , g . push ( h ) ; return g } , c . Frame = function ( a , b , d , e , f , g ) { this . index = a , this . x = b , this . y = d , this . width = e , this . height = f , this . name = g , this . centerX = Math . floor ( e / 2 ) , this . centerY = Math . floor ( f / 2 ) , this . distance = c . Math . distance ( 0 , 0 , e , f ) , this . rotated = ! 1 , this . rotationDirection = "cw" , this . trimmed = ! 1 , this . sourceSizeW = e , this . sourceSizeH = f , this . spriteSourceSizeX = 0 , this . spriteSourceSizeY = 0 , this . spriteSourceSizeW = 0 , this . spriteSourceSizeH = 0 , this . right = this . x + this . width , this . bottom = this . y + this . height } , c . Frame . prototype = { resize : function ( a , b ) { this . width = a , this . height = b , this . centerX = Math . floor ( a / 2 ) , this . centerY = Math . floor ( b / 2 ) , this . distance = c . Math . distance ( 0 , 0 , a , b ) , this . sourceSizeW = a , this . sourceSizeH = b , this . right = this . x + a , this . bottom = this . y + b } , setTrim : function ( a , b , c , d , e , f , g ) { this . trimmed = a , a && ( this . sourceSizeW = b , this . sourceSizeH = c , this . centerX = Math . floor ( b / 2 ) , this . centerY = Math . floor ( c / 2 ) , this . spriteSourceSizeX = d , this . spriteSourceSizeY = e , this . spriteSourceSizeW = f , this . spriteSourceSizeH = g ) } , clone : function ( ) { var a = new c . Frame ( this . index , this . x , this . y , this . width , this . height , this . name ) ; for ( var b in this ) this . hasOwnProp
break ; case "atlasJSONArray" : this . atlasJSONArray ( e . key , e . textureURL , e . atlasURL , e . atlasData ) ; break ; case "atlasJSONHash" : this . atlasJSONHash ( e . key , e . textureURL , e . atlasURL , e . atlasData ) ; break ; case "atlasXML" : this . atlasXML ( e . key , e . textureURL , e . atlasURL , e . atlasData ) ; break ; case "atlas" : this . atlas ( e . key , e . textureURL , e . atlasURL , e . atlasData , c . Loader [ e . format ] ) ; break ; case "shader" : this . shader ( e . key , e . url , e . overwrite ) } } } , transformUrl : function ( a , b ) { return a ? a . match ( /^(?:blob:|data:|http:\/\/|https:\/\/|\/\/)/ ) ? a : this . baseURL + b . path + a : ! 1 } , loadFile : function ( a ) { switch ( a . type ) { case "packfile" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . fileComplete ) ; break ; case "image" : case "spritesheet" : case "textureatlas" : case "bitmapfont" : this . loadImageTag ( a ) ; break ; case "audio" : a . url = this . getAudioURL ( a . url ) , a . url ? this . game . sound . usingWebAudio ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "arraybuffer" , this . fileComplete ) : this . game . sound . usingAudioTag && this . loadAudioTag ( a ) : this . fileError ( a , null , "No supported audio URL specified or device does not have audio playback support" ) ; break ; case "video" : a . url = this . getVideoURL ( a . url ) , a . url ? a . asBlob ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "arraybuffer" , this . fileComplete ) : this . loadVideoTag ( a ) : this . fileError ( a , null , "No supported video URL specified or device does not have video playback support" ) ; break ; case "json" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . jsonLoadComplete ) ; break ; case "xml" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . xmlLoadComplete ) ; break ; case "tilemap" : a . format === c . Tilemap . TILED _JSON ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . jsonLoadComplete ) : a . format === c . Tilemap . CSV ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . csvLoadComplete ) : this . asyncComplete ( a , "invalid Tilemap format: " + a . format ) ; break ; case "text" : case "script" : case "shader" : case "physics" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . fileComplete ) ; break ; case "binary" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "arraybuffer" , this . fileComplete ) } } , loadImageTag : function ( a ) { var b = this ; a . data = new Image , a . data . name = a . key , this . crossOrigin && ( a . data . crossOrigin = this . crossOrigin ) , a . data . onload = function ( ) { a . data . onload && ( a . data . onload = null , a . data . onerror = null , b . fileComplete ( a ) ) } , a . data . onerror = function ( ) { a . data . onload && ( a . data . onload = null , a . data . onerror = null , b . fileError ( a ) ) } , a . data . src = this . transformUrl ( a . url , a ) , a . data . complete && a . data . width && a . data . height && ( a . data . onload = null , a . data . onerror = null , this . fileComplete ( a ) ) } , loadVideoTag : function ( a ) { var b = this ; a . data = document . createElement ( "video" ) , a . data . name = a . key , a . data . controls = ! 1 , a . data . autoplay = ! 1 ; var d = function ( ) { a . data . removeEventListener ( a . loadEvent , d , ! 1 ) , a . data . onerror = null , a . data . canplay = ! 0 , c . GAMES [ b . game . id ] . load . fileComplete ( a ) } ; a . data . onerror = function ( ) { a . data . removeEventListener ( a . loadEvent , d , ! 1 ) , a . data . onerror = null , a . data . canplay = ! 1 , b . fileError ( a ) } , a . data . addEventListener ( a . loadEvent , d , ! 1 ) , a . data . src = this . transformUrl ( a . url , a ) , a . data . load ( ) } , loadAudioTag : function ( a ) { var b = this ; if ( this . game . sound . touchLocked ) a . data = new Audio , a . data . name = a . key , a . data . preload = "auto" , a . data . src = this . transformUrl ( a . url , a ) , this . fileComplete ( a ) ; else { a . data = new Audio , a . data . name = a . key ; var d = function ( ) { a . data . removeEventListener ( "canplaythrough" , d , ! 1 ) , a . data . onerror = null , c . GAMES [ b . game . id ] . load . fileComplete ( a ) } ; a . data . onerror = function ( ) { a . data . removeEventListener ( "canplaythrough" , d , ! 1 ) , a . data . onerror = null , b . fileError ( a ) } , a . data . preload = "auto" , a . data . src = this . transformUrl ( a . url , a ) , a . data . addEventListener ( "canplaythrough" , d , ! 1 ) , a . data . load ( ) } } , xhrLoad : function ( a , b , c , d , e ) { if ( this . useXDomainRequest && window . XDomainRequest ) return void this . xhrLoadWithXDR ( a , b , c , d , e ) ; var f = new XMLHttpRequest ; f . open ( "GET" , b , ! 0 ) , f . responseType = c , e = e || this . fileError ; var g = this ; f . onload = function ( ) { try { return d . call ( g , a , f ) } catch ( b ) { g . hasLoaded ? window . console && console . error ( b ) : g . asyncComplete ( a , b . message || "Exception" ) } } , f . onerror = function ( ) { try { return e . call ( g , a , f ) } catch ( b ) { g . hasLoaded ? window . console && console . error ( b ) : g . asyncComplete ( a , b . message || "Exception" ) } } , a . requestObject = f , a . requestUrl = b , f . send ( ) } , xhrLoadWithX
this . game . onResume . add ( this . _gameResumed , this ) , this . dom . getOffset ( this . game . canvas , this . offset ) , this . bounds . setTo ( this . offset . x , this . offset . y , this . width , this . height ) , this . setGameSize ( this . game . width , this . game . height ) , this . screenOrientation = this . dom . getScreenOrientation ( this . compatibility . orientationFallback ) , c . FlexGrid && ( this . grid = new c . FlexGrid ( this , this . width , this . height ) ) , this . _booted = ! 0 , this . _pendingScaleMode && ( this . scaleMode = this . _pendingScaleMode , this . _pendingScaleMode = null ) } , parseConfig : function ( a ) { a . scaleMode && ( this . _booted ? this . scaleMode = a . scaleMode : this . _pendingScaleMode = a . scaleMode ) , a . fullScreenScaleMode && ( this . fullScreenScaleMode = a . fullScreenScaleMode ) , a . fullScreenTarget && ( this . fullScreenTarget = a . fullScreenTarget ) } , setupScale : function ( a , b ) { var d , e = new c . Rectangle ; "" !== this . game . parent && ( "string" == typeof this . game . parent ? d = document . getElementById ( this . game . parent ) : this . game . parent && 1 === this . game . parent . nodeType && ( d = this . game . parent ) ) , d ? ( this . parentNode = d , this . parentIsWindow = ! 1 , this . getParentBounds ( this . _parentBounds ) , e . width = this . _parentBounds . width , e . height = this . _parentBounds . height , this . offset . set ( this . _parentBounds . x , this . _parentBounds . y ) ) : ( this . parentNode = null , this . parentIsWindow = ! 0 , e . width = this . dom . visualBounds . width , e . height = this . dom . visualBounds . height , this . offset . set ( 0 , 0 ) ) ; var f = 0 , g = 0 ; "number" == typeof a ? f = a : ( this . parentScaleFactor . x = parseInt ( a , 10 ) / 100 , f = e . width * this . parentScaleFactor . x ) , "number" == typeof b ? g = b : ( this . parentScaleFactor . y = parseInt ( b , 10 ) / 100 , g = e . height * this . parentScaleFactor . y ) , this . _gameSize . setTo ( 0 , 0 , f , g ) , this . updateDimensions ( f , g , ! 1 ) } , _gameResumed : function ( ) { this . queueUpdate ( ! 0 ) } , setGameSize : function ( a , b ) { this . _gameSize . setTo ( 0 , 0 , a , b ) , this . currentScaleMode !== c . ScaleManager . RESIZE && this . updateDimensions ( a , b , ! 0 ) , this . queueUpdate ( ! 0 ) } , setUserScale : function ( a , b , c , d ) { this . _userScaleFactor . setTo ( a , b ) , this . _userScaleTrim . setTo ( 0 | c , 0 | d ) , this . queueUpdate ( ! 0 ) } , setResizeCallback : function ( a , b ) { this . onResize = a , this . onResizeContext = b } , signalSizeChange : function ( ) { if ( ! c . Rectangle . sameDimensions ( this , this . _lastReportedCanvasSize ) || ! c . Rectangle . sameDimensions ( this . game , this . _lastReportedGameSize ) ) { var a = this . width , b = this . height ; this . _lastReportedCanvasSize . setTo ( 0 , 0 , a , b ) , this . _lastReportedGameSize . setTo ( 0 , 0 , this . game . width , this . game . height ) , this . grid && this . grid . onResize ( a , b ) , this . onSizeChange . dispatch ( this , a , b ) , this . currentScaleMode === c . ScaleManager . RESIZE && ( this . game . state . resize ( a , b ) , this . game . load . resize ( a , b ) ) } } , setMinMax : function ( a , b , c , d ) { this . minWidth = a , this . minHeight = b , "undefined" != typeof c && ( this . maxWidth = c ) , "undefined" != typeof d && ( this . maxHeight = d ) } , preUpdate : function ( ) { if ( ! ( this . game . time . time < this . _lastUpdate + this . _updateThrottle ) ) { var a = this . _updateThrottle ; this . _updateThrottleReset = a >= 400 ? 0 : 100 , this . dom . getOffset ( this . game . canvas , this . offset ) ; var b = this . _parentBounds . width , d = this . _parentBounds . height , e = this . getParentBounds ( this . _parentBounds ) , f = e . width !== b || e . height !== d , g = this . updateOrientationState ( ) ; ( f || g ) && ( this . onResize && this . onResize . call ( this . onResizeContext , this , e ) , this . updateLayout ( ) , this . signalSizeChange ( ) ) ; var h = 2 * this . _updateThrottle ; this . _updateThrottle < a && ( h = Math . min ( a , this . _updateThrottleReset ) ) , this . _updateThrottle = c . Math . clamp ( h , 25 , this . trackParentInterval ) , this . _lastUpdate = this . game . time . time } } , pauseUpdate : function ( ) { this . preUpdate ( ) , this . _updateThrottle = this . trackParentInterval } , updateDimensions : function ( a , b , c ) { this . width = a * this . parentScaleFactor . x , this . height = b * this . parentScaleFactor . y , this . game . width = this . width , this . game . height = this . height , this . sourceAspectRatio = this . width / this . height , this . updateScalingAndBounds ( ) , c && ( this . game . renderer . resize ( this . width , this . height ) , this . game . camera . setSize ( this . width , this . height ) , this . game . world . resize ( this . width , this . height ) ) } , updateScalingAndBounds : function ( ) { this . scaleFactor . x = this . game . width / this . width , this . scaleFactor . y = this . game . height / this . height , this . scaleFactorInversed . x = this . width / this . game . width , this . scaleFactorInversed . y = this . height / this . game . height , this . aspectRatio = this . width / this . height , this . game . canvas && this . dom . getOffset (
void ( a . next = a . prev = null ) ) : ( a === this . first ? this . first = this . first . next : a === this . last && ( this . last = this . last . prev ) , a . prev && ( a . prev . next = a . next ) , a . next && ( a . next . prev = a . prev ) , a . next = a . prev = null , null === this . first && ( this . last = null ) , void this . total -- ) } , callAll : function ( a ) { if ( this . first && this . last ) { var b = this . first ; do b && b [ a ] && b [ a ] . call ( b ) , b = b . next ; while ( b != this . last . next ) } } } , c . LinkedList . prototype . constructor = c . LinkedList , c . Create = function ( a ) { this . game = a , this . bmd = null , this . canvas = null , this . ctx = null , this . palettes = [ { 0 : "#000" , 1 : "#9D9D9D" , 2 : "#FFF" , 3 : "#BE2633" , 4 : "#E06F8B" , 5 : "#493C2B" , 6 : "#A46422" , 7 : "#EB8931" , 8 : "#F7E26B" , 9 : "#2F484E" , A : "#44891A" , B : "#A3CE27" , C : "#1B2632" , D : "#005784" , E : "#31A2F2" , F : "#B2DCEF" } , { 0 : "#000" , 1 : "#191028" , 2 : "#46af45" , 3 : "#a1d685" , 4 : "#453e78" , 5 : "#7664fe" , 6 : "#833129" , 7 : "#9ec2e8" , 8 : "#dc534b" , 9 : "#e18d79" , A : "#d6b97b" , B : "#e9d8a1" , C : "#216c4b" , D : "#d365c8" , E : "#afaab9" , F : "#f5f4eb" } , { 0 : "#000" , 1 : "#2234d1" , 2 : "#0c7e45" , 3 : "#44aacc" , 4 : "#8a3622" , 5 : "#5c2e78" , 6 : "#aa5c3d" , 7 : "#b5b5b5" , 8 : "#5e606e" , 9 : "#4c81fb" , A : "#6cd947" , B : "#7be2f9" , C : "#eb8a60" , D : "#e23d69" , E : "#ffd93f" , F : "#fff" } , { 0 : "#000" , 1 : "#fff" , 2 : "#8b4131" , 3 : "#7bbdc5" , 4 : "#8b41ac" , 5 : "#6aac41" , 6 : "#3931a4" , 7 : "#d5de73" , 8 : "#945a20" , 9 : "#5a4100" , A : "#bd736a" , B : "#525252" , C : "#838383" , D : "#acee8b" , E : "#7b73de" , F : "#acacac" } , { 0 : "#000" , 1 : "#191028" , 2 : "#46af45" , 3 : "#a1d685" , 4 : "#453e78" , 5 : "#7664fe" , 6 : "#833129" , 7 : "#9ec2e8" , 8 : "#dc534b" , 9 : "#e18d79" , A : "#d6b97b" , B : "#e9d8a1" , C : "#216c4b" , D : "#d365c8" , E : "#afaab9" , F : "#fff" } ] } , c . Create . PALETTE _ARNE = 0 , c . Create . PALETTE _JMP = 1 , c . Create . PALETTE _CGA = 2 , c . Create . PALETTE _C64 = 3 , c . Create . PALETTE _JAPANESE _MACHINE = 4 , c . Create . prototype = { texture : function ( a , b , c , d , e ) { void 0 === c && ( c = 8 ) , void 0 === d && ( d = c ) , void 0 === e && ( e = 0 ) ; var f = b [ 0 ] . length * c , g = b . length * d ; null === this . bmd && ( this . bmd = this . game . make . bitmapData ( ) , this . canvas = this . bmd . canvas , this . ctx = this . bmd . context ) , this . bmd . resize ( f , g ) , this . bmd . clear ( ) ; for ( var h = 0 ; h < b . length ; h ++ ) for ( var i = b [ h ] , j = 0 ; j < i . length ; j ++ ) { var k = i [ j ] ; "." !== k && " " !== k && ( this . ctx . fillStyle = this . palettes [ e ] [ k ] , this . ctx . fillRect ( j * c , h * d , c , d ) ) } return this . bmd . generateTexture ( a ) } , grid : function ( a , b , c , d , e , f ) { null === this . bmd && ( this . bmd = this . game . make . bitmapData ( ) , this . canvas = this . bmd . canvas , this . ctx = this . bmd . context ) , this . bmd . resize ( b , c ) , this . ctx . fillStyle = f ; for ( var g = 0 ; c > g ; g += e ) this . ctx . fillRect ( 0 , g , b , 1 ) ; for ( var h = 0 ; b > h ; h += d ) this . ctx . fillRect ( h , 0 , 1 , c ) ; return this . bmd . generateTexture ( a ) } } , c . Create . prototype . constructor = c . Create , c . FlexGrid = function ( a , b , d ) { this . game = a . game , this . manager = a , this . width = b , this . height = d , this . boundsCustom = new c . Rectangle ( 0 , 0 , b , d ) , this . boundsFluid = new c . Rectangle ( 0 , 0 , b , d ) , this . boundsFull = new c . Rectangle ( 0 , 0 , b , d ) , this . boundsNone = new c . Rectangle ( 0 , 0 , b , d ) , this . positionCustom = new c . Point ( 0 , 0 ) , this . positionFluid = new c . Point ( 0 , 0 ) , this . positionFull = new c . Point ( 0 , 0 ) , this . positionNone = new c . Point ( 0 , 0 ) , this . scaleCustom = new c . Point ( 1 , 1 ) , this . scaleFluid = new c . Point ( 1 , 1 ) , this . scaleFluidInversed = new c . Point ( 1 , 1 ) , this . scaleFull = new c . Point ( 1 , 1 ) , this . scaleNone = new c . Point ( 1 , 1 ) , this . customWidth = 0 , this . customHeight = 0 , this . customOffsetX = 0 , this . customOffsetY = 0 , this . ratioH = b / d , this . ratioV = d / b , this . multiplier = 0 , this . layers = [ ] } , c . FlexGrid . prototype = { setSize : function ( a , b ) { this . width = a , this . height = b , this . ratioH = a / b , this . ratioV = b / a , this . scaleNone = new c . Point ( 1 , 1 ) , this . boundsNone . width = this . width , this . boundsNone . height = this . height , this . refresh ( ) } , createCustomLayer : function ( a , b , d , e ) { void 0 === e && ( e = ! 0 ) , this . customWidth = a , this . customHeight = b , this . boundsCustom . width = a , this . boundsCustom . height = b ; var f = new c . FlexLayer ( this , this . positionCustom , this . boundsCustom , this . scaleCustom ) ; return e && this . game . world . add ( f ) , this . layers . push ( f ) , "undefined" != typeof d && null !== typeof d && f . addMultiple ( d ) , f } , createFluidLayer : function ( a , b ) { void 0 === b && ( b = ! 0 ) ; var d = new c . FlexLayer ( this , this . positionFluid , this . boundsFluid , this . scaleFluid ) ; return b && this . game . world . add ( d ) , this . layers . push ( d ) , "undefined" != typeof a && null !== typeof a && d . addMultiple ( a ) , d } , createFullLayer : function ( a ) { var b = new c . FlexLayer ( this , this . positionFull , this . boundsFull , this . scaleFluid ) ; return this . game . world . add ( b ) , this . layers . push ( b ) , "
this . wasTouching . left = this . touching . left , this . wasTouching . right = this . touching . right , this . touching . none = ! 0 , this . touching . up = ! 1 , this . touching . down = ! 1 , this . touching . left = ! 1 , this . touching . right = ! 1 , this . blocked . up = ! 1 , this . blocked . down = ! 1 , this . blocked . left = ! 1 , this . blocked . right = ! 1 , this . embedded = ! 1 , this . updateBounds ( ) , this . position . x = this . sprite . world . x - this . sprite . anchor . x * this . width + this . offset . x , this . position . y = this . sprite . world . y - this . sprite . anchor . y * this . height + this . offset . y , this . rotation = this . sprite . angle , this . preRotation = this . rotation , ( this . _reset || this . sprite . fresh ) && ( this . prev . x = this . position . x , this . prev . y = this . position . y ) , this . moves && ( this . game . physics . arcade . updateMotion ( this ) , this . newVelocity . set ( this . velocity . x * this . game . time . physicsElapsed , this . velocity . y * this . game . time . physicsElapsed ) , this . position . x += this . newVelocity . x , this . position . y += this . newVelocity . y , ( this . position . x !== this . prev . x || this . position . y !== this . prev . y ) && ( this . speed = Math . sqrt ( this . velocity . x * this . velocity . x + this . velocity . y * this . velocity . y ) , this . angle = Math . atan2 ( this . velocity . y , this . velocity . x ) ) , this . collideWorldBounds && this . checkWorldBounds ( ) ) , this . _dx = this . deltaX ( ) , this . _dy = this . deltaY ( ) , this . _reset = ! 1 ) } , postUpdate : function ( ) { this . enable && this . dirty && ( this . dirty = ! 1 , this . deltaX ( ) < 0 ? this . facing = c . LEFT : this . deltaX ( ) > 0 && ( this . facing = c . RIGHT ) , this . deltaY ( ) < 0 ? this . facing = c . UP : this . deltaY ( ) > 0 && ( this . facing = c . DOWN ) , this . moves && ( this . _dx = this . deltaX ( ) , this . _dy = this . deltaY ( ) , 0 !== this . deltaMax . x && 0 !== this . _dx && ( this . _dx < 0 && this . _dx < - this . deltaMax . x ? this . _dx = - this . deltaMax . x : this . _dx > 0 && this . _dx > this . deltaMax . x && ( this . _dx = this . deltaMax . x ) ) , 0 !== this . deltaMax . y && 0 !== this . _dy && ( this . _dy < 0 && this . _dy < - this . deltaMax . y ? this . _dy = - this . deltaMax . y : this . _dy > 0 && this . _dy > this . deltaMax . y && ( this . _dy = this . deltaMax . y ) ) , this . sprite . position . x += this . _dx , this . sprite . position . y += this . _dy , this . _reset = ! 0 ) , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) , this . allowRotation && ( this . sprite . angle += this . deltaZ ( ) ) , this . prev . x = this . position . x , this . prev . y = this . position . y ) } , destroy : function ( ) { this . sprite . parent && this . sprite . parent instanceof c . Group && this . sprite . parent . removeFromHash ( this . sprite ) , this . sprite . body = null , this . sprite = null } , checkWorldBounds : function ( ) { var a = this . position , b = this . game . physics . arcade . bounds , c = this . game . physics . arcade . checkCollision ; a . x < b . x && c . left ? ( a . x = b . x , this . velocity . x *= - this . bounce . x , this . blocked . left = ! 0 ) : this . right > b . right && c . right && ( a . x = b . right - this . width , this . velocity . x *= - this . bounce . x , this . blocked . right = ! 0 ) , a . y < b . y && c . up ? ( a . y = b . y , this . velocity . y *= - this . bounce . y , this . blocked . up = ! 0 ) : this . bottom > b . bottom && c . down && ( a . y = b . bottom - this . height , this . velocity . y *= - this . bounce . y , this . blocked . down = ! 0 ) } , setSize : function ( a , b , c , d ) { void 0 === c && ( c = this . offset . x ) , void 0 === d && ( d = this . offset . y ) , this . sourceWidth = a , this . sourceHeight = b , this . width = this . sourceWidth * this . _sx , this . height = this . sourceHeight * this . _sy , this . halfWidth = Math . floor ( this . width / 2 ) , this . halfHeight = Math . floor ( this . height / 2 ) , this . offset . setTo ( c , d ) , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) } , reset : function ( a , b ) { this . velocity . set ( 0 ) , this . acceleration . set ( 0 ) , this . speed = 0 , this . angularVelocity = 0 , this . angularAcceleration = 0 , this . position . x = a - this . sprite . anchor . x * this . width + this . offset . x , this . position . y = b - this . sprite . anchor . y * this . height + this . offset . y , this . prev . x = this . position . x , this . prev . y = this . position . y , this . rotation = this . sprite . angle , this . preRotation = this . rotation , this . _sx = this . sprite . scale . x , this . _sy = this . sprite . scale . y , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) } , hitTest : function ( a , b ) { return c . Rectangle . contains ( this , a , b ) } , onFloor : function ( ) { return this . blocked . down } , onWall : function ( ) { return this . blocked . left || this . blocked . right } , deltaAbsX : function ( ) { return this . deltaX ( ) > 0 ? this . deltaX ( ) : - this . deltaX ( ) } , deltaAbsY : function ( ) { return this . deltaY ( ) > 0 ? this . deltaY ( ) : - this . deltaY ( ) } , deltaX : function ( ) { return this . position . x - this . prev . x } , deltaY : function ( ) { return this . position . y - this . prev . y } , deltaZ : function ( ) { return this
if ( 0 > a ? ( i = e + a , j = e - 1 ) : a > 0 && ( j = a ) , 0 > b ? ( k = f + b , l = f - 1 ) : b > 0 && ( l = b ) , this . shiftCanvas ( this . context , a , b ) , i = Math . floor ( ( i + c ) / g ) , j = Math . floor ( ( j + c ) / g ) , k = Math . floor ( ( k + d ) / h ) , l = Math . floor ( ( l + d ) / h ) , j >= i ) { this . context . clearRect ( i * g - c , 0 , ( j - i + 1 ) * g , f ) ; var m = Math . floor ( ( 0 + d ) / h ) , n = Math . floor ( ( f - 1 + d ) / h ) ; this . renderRegion ( c , d , i , m , j , n ) } if ( l >= k ) { this . context . clearRect ( 0 , k * h - d , e , ( l - k + 1 ) * h ) ; var o = Math . floor ( ( 0 + c ) / g ) , p = Math . floor ( ( e - 1 + c ) / g ) ; this . renderRegion ( c , d , o , k , p , l ) } } , c . TilemapLayer . prototype . renderFull = function ( ) { var a = this . _mc . scrollX , b = this . _mc . scrollY , c = this . canvas . width , d = this . canvas . height , e = this . _mc . tileWidth , f = this . _mc . tileHeight , g = Math . floor ( a / e ) , h = Math . floor ( ( c - 1 + a ) / e ) , i = Math . floor ( b / f ) , j = Math . floor ( ( d - 1 + b ) / f ) ; this . context . clearRect ( 0 , 0 , c , d ) , this . renderRegion ( a , b , g , i , h , j ) } , c . TilemapLayer . prototype . render = function ( ) { var a = ! 1 ; if ( this . visible ) { ( this . dirty || this . layer . dirty ) && ( this . layer . dirty = ! 1 , a = ! 0 ) ; var b = this . canvas . width , c = this . canvas . height , d = 0 | this . _scrollX , e = 0 | this . _scrollY , f = this . _mc , g = f . scrollX - d , h = f . scrollY - e ; if ( a || 0 !== g || 0 !== h || f . renderWidth !== b || f . renderHeight !== c ) return this . context . save ( ) , f . scrollX = d , f . scrollY = e , ( f . renderWidth !== b || f . renderHeight !== c ) && ( f . renderWidth = b , f . renderHeight = c ) , this . debug && ( this . context . globalAlpha = this . debugSettings . debugAlpha , this . debugSettings . forceFullRedraw && ( a = ! 0 ) ) , ! a && this . renderSettings . enableScrollDelta && Math . abs ( g ) + Math . abs ( h ) < Math . min ( b , c ) ? this . renderDeltaScroll ( g , h ) : this . renderFull ( ) , this . debug && ( this . context . globalAlpha = 1 , this . renderDebug ( ) ) , this . texture . baseTexture . dirty ( ) , this . dirty = ! 1 , this . context . restore ( ) , ! 0 } } , c . TilemapLayer . prototype . renderDebug = function ( ) { var a , b , c , d , e , f , g = this . _mc . scrollX , h = this . _mc . scrollY , i = this . context , j = this . canvas . width , k = this . canvas . height , l = this . layer . width , m = this . layer . height , n = this . _mc . tileWidth , o = this . _mc . tileHeight , p = Math . floor ( g / n ) , q = Math . floor ( ( j - 1 + g ) / n ) , r = Math . floor ( h / o ) , s = Math . floor ( ( k - 1 + h ) / o ) , t = p * n - g , u = r * o - h , v = ( p + ( 1 << 20 ) * l ) % l , w = ( r + ( 1 << 20 ) * m ) % m ; for ( i . strokeStyle = this . debugSettings . facingEdgeStroke , d = w , f = s - r , b = u ; f >= 0 ; d ++ , f -- , b += o ) { d >= m && ( d -= m ) ; var x = this . layer . data [ d ] ; for ( c = v , e = q - p , a = t ; e >= 0 ; c ++ , e -- , a += n ) { c >= l && ( c -= l ) ; var y = x [ c ] ; ! y || y . index < 0 || ! y . collides || ( this . debugSettings . collidingTileOverfill && ( i . fillStyle = this . debugSettings . collidingTileOverfill , i . fillRect ( a , b , this . _mc . cw , this . _mc . ch ) ) , this . debugSettings . facingEdgeStroke && ( i . beginPath ( ) , y . faceTop && ( i . moveTo ( a , b ) , i . lineTo ( a + this . _mc . cw , b ) ) , y . faceBottom && ( i . moveTo ( a , b + this . _mc . ch ) , i . lineTo ( a + this . _mc . cw , b + this . _mc . ch ) ) , y . faceLeft && ( i . moveTo ( a , b ) , i . lineTo ( a , b + this . _mc . ch ) ) , y . faceRight && ( i . moveTo ( a + this . _mc . cw , b ) , i . lineTo ( a + this . _mc . cw , b + this . _mc . ch ) ) , i . stroke ( ) ) ) } } } , Object . defineProperty ( c . TilemapLayer . prototype , "wrap" , { get : function ( ) { return this . _wrap } , set : function ( a ) { this . _wrap = a , this . dirty = ! 0 } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "scrollX" , { get : function ( ) { return this . _scrollX } , set : function ( a ) { this . _scrollX = a } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "scrollY" , { get : function ( ) { return this . _scrollY } , set : function ( a ) { this . _scrollY = a } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "collisionWidth" , { get : function ( ) { return this . _mc . cw } , set : function ( a ) { this . _mc . cw = 0 | a , this . dirty = ! 0 } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "collisionHeight" , { get : function ( ) { return this . _mc . ch } , set : function ( a ) { this . _mc . ch = 0 | a , this . dirty = ! 0 } } ) , c . TilemapParser = { INSERT _NULL : ! 1 , parse : function ( a , b , d , e , f , g ) { if ( void 0 === d && ( d = 32 ) , void 0 === e && ( e = 32 ) , void 0 === f && ( f = 10 ) , void 0 === g && ( g = 10 ) , void 0 === b ) return this . getEmptyData ( ) ; if ( null === b ) return this . getEmptyData ( d , e , f , g ) ; var h = a . cache . getTilemapData ( b ) ; if ( h ) { if ( h . format === c . Tilemap . CSV ) return this . parseCSV ( b , h . data , d , e ) ; if ( ! h . format || h . format === c . Tilemap . TILED _JSON ) return this . parseTiledJSON ( h . data ) } else console . warn ( "Phaser.TilemapParser.parse - No map data found for key " + b ) } , parseCSV : function ( a , b , d , e ) { var f = this . getEmptyData ( ) ; b = b . trim ( ) ; for ( var g = [ ] , h = b . split ( "\n" ) , i = h . length , j = 0 , k = 0 ; k < h . length ; k ++ ) { g [ k ] = [ ] ; for ( var l = h [ k ] . split ( "," ) , m = 0 ; m < l . length ; m ++ ) g [ k ] [ m ] = new c . Tile ( f . layers [ 0 ] , parseInt ( l [ m ] , 10 ) , m , k , d , e ) ; 0 === j && ( j = l . length ) } return f . format =
2015-02-25 02:59:00 +00:00
//# sourceMappingURL=phaser-arcade-physics.map