2016-11-23 00:59:32 +00:00
/* Phaser v2.7.0 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
2016-11-22 01:36:48 +00:00
2016-11-23 00:59:32 +00:00
( function ( ) { function a ( a , b ) { this . _scaleFactor = a , this . _deltaMode = b , this . originalEvent = null } var b = this , c = c || { VERSION : "2.7.0" , GAMES : [ ] , AUTO : 0 , CANVAS : 1 , WEBGL : 2 , HEADLESS : 3 , WEBGL _MULTI : 4 , NONE : 0 , LEFT : 1 , RIGHT : 2 , UP : 3 , DOWN : 4 , SPRITE : 0 , BUTTON : 1 , IMAGE : 2 , GRAPHICS : 3 , TEXT : 4 , TILESPRITE : 5 , BITMAPTEXT : 6 , GROUP : 7 , RENDERTEXTURE : 8 , TILEMAP : 9 , TILEMAPLAYER : 10 , EMITTER : 11 , POLYGON : 12 , BITMAPDATA : 13 , CANVAS _FILTER : 14 , WEBGL _FILTER : 15 , ELLIPSE : 16 , SPRITEBATCH : 17 , RETROFONT : 18 , POINTER : 19 , ROPE : 20 , CIRCLE : 21 , RECTANGLE : 22 , LINE : 23 , MATRIX : 24 , POINT : 25 , ROUNDEDRECTANGLE : 26 , CREATURE : 27 , VIDEO : 28 , PENDING _ATLAS : - 1 , HORIZONTAL : 0 , VERTICAL : 1 , LANDSCAPE : 0 , PORTRAIT : 1 , ANGLE _UP : 270 , ANGLE _DOWN : 90 , ANGLE _LEFT : 180 , ANGLE _RIGHT : 0 , ANGLE _NORTH _EAST : 315 , ANGLE _NORTH _WEST : 225 , ANGLE _SOUTH _EAST : 45 , ANGLE _SOUTH _WEST : 135 , TOP _LEFT : 0 , TOP _CENTER : 1 , TOP _RIGHT : 2 , LEFT _TOP : 3 , LEFT _CENTER : 4 , LEFT _BOTTOM : 5 , CENTER : 6 , RIGHT _TOP : 7 , RIGHT _CENTER : 8 , RIGHT _BOTTOM : 9 , BOTTOM _LEFT : 10 , BOTTOM _CENTER : 11 , BOTTOM _RIGHT : 12 , blendModes : { NORMAL : 0 , ADD : 1 , MULTIPLY : 2 , SCREEN : 3 , OVERLAY : 4 , DARKEN : 5 , LIGHTEN : 6 , COLOR _DODGE : 7 , COLOR _BURN : 8 , HARD _LIGHT : 9 , SOFT _LIGHT : 10 , DIFFERENCE : 11 , EXCLUSION : 12 , HUE : 13 , SATURATION : 14 , COLOR : 15 , LUMINOSITY : 16 } , scaleModes : { DEFAULT : 0 , LINEAR : 0 , NEAREST : 1 } , PIXI : PIXI || { } , _UID : 0 } ; if ( Math . trunc || ( Math . trunc = function ( a ) { return a < 0 ? Math . ceil ( a ) : Math . floor ( a ) } ) , Function . prototype . bind || ( Function . prototype . bind = function ( ) { var a = Array . prototype . slice ; return function ( b ) { function c ( ) { var f = e . concat ( a . call ( arguments ) ) ; d . apply ( this instanceof c ? this : b , f ) } var d = this , e = a . call ( arguments , 1 ) ; if ( "function" != typeof d ) throw new TypeError ; return c . prototype = function a ( b ) { if ( b && ( a . prototype = b ) , ! ( this instanceof a ) ) return new a } ( d . prototype ) , c } } ( ) ) , Array . isArray || ( Array . isArray = function ( a ) { return "[object Array]" === Object . prototype . toString . call ( a ) } ) , Array . prototype . forEach || ( Array . prototype . forEach = function ( a ) { "use strict" ; if ( void 0 === this || null === this ) throw new TypeError ; var b = Object ( this ) , c = b . length >>> 0 ; if ( "function" != typeof a ) throw new TypeError ; for ( var d = arguments . length >= 2 ? arguments [ 1 ] : void 0 , e = 0 ; e < c ; e ++ ) e in b && a . call ( d , b [ e ] , e , b ) } ) , "function" != typeof window . Uint32Array && "object" != typeof window . Uint32Array ) { var d = function ( a ) { var b = new Array ; window [ a ] = function ( a ) { if ( "number" == typeof a ) { Array . call ( this , a ) , this . length = a ; for ( var b = 0 ; b < this . length ; b ++ ) this [ b ] = 0 } else { Array . call ( this , a . length ) , this . length = a . length ; for ( var b = 0 ; b < this . length ; b ++ ) this [ b ] = a [ b ] } } , window [ a ] . prototype = b , window [ a ] . constructor = window [ a ] } ; d ( "Float32Array" ) , d ( "Uint32Array" ) , d ( "Uint16Array" ) , d ( "Int16Array" ) , d ( "ArrayBuffer" ) } window . console || ( window . console = { } , window . console . log = window . console . assert = function ( ) { } , window . console . warn = window . console . assert = function ( ) { } ) , c . Utils = { reverseString : function ( a ) { return a . split ( "" ) . reverse ( ) . join ( "" ) } , getProperty : function ( a , b ) { for ( var c = b . split ( "." ) , d = c . pop ( ) , e = c . length , f = 1 , g = c [ 0 ] ; f < e && ( a = a [ g ] ) ; ) g = c [ f ] , f ++ ; return a ? a [ d ] : null } , setProperty : function ( a , b , c ) { for ( var d = b . split ( "." ) , e = d . pop ( ) , f = d . length , g = 1 , h = d [ 0 ] ; g < f && ( a = a [ h ] ) ; ) h = d [ g ] , g ++ ; return a && ( a [ e ] = c ) , a } , chanceRoll : function ( a ) { return void 0 === a && ( a = 50 ) , a > 0 && 100 * Math . random ( ) <= a } , randomChoice : function ( a , b ) { return Math . random ( ) < . 5 ? a : b } , parseDimension : function ( a , b ) { var c = 0 , d = 0 ; return "string" == typeof a ? "%" === a . substr ( - 1 ) ? ( c = parseInt ( a , 10 ) / 100 , d = 0 === b ? window . innerWidth * c : window . innerHeight * c ) : d = parseInt ( a , 10 ) : d = a , d } , pad : function ( a , b , c , d ) { if ( void 0 === b ) var b = 0 ; if ( void 0 === c ) var c = " " ; if ( void 0 === d ) var d = 3 ; a = a . toString ( ) ; var e = 0 ; if ( b + 1 >= a . length ) switch ( d ) { case 1 : a = new Array ( b + 1 - a . length ) . join ( c ) + a ; break ; case 3 : var f = Math . ceil ( ( e = b - a . length ) / 2 ) , g = e - f ; a = new Array ( g + 1 ) . join ( c ) + a + new Array ( f + 1 ) . join ( c ) ; break ; default : a += new Array ( b + 1 - a . length ) . join ( c ) } return a } , isPlainObject : function ( a ) { if ( "object" != typeof a || a . nodeType || a === a . window ) return ! 1 ; try { if ( a . constructor && ! { } . hasOwnProperty . call ( a . constructor . prototype , "isPrototypeOf" ) ) return ! 1 } catch ( a ) { return ! 1 } return ! 0 } , extend : function ( ) { var a , b , d , e , f , g , h = arguments [ 0 ] || { } , i = 1 , j = arguments . length , k = ! 1 ; for ( "boolean" == typeof h && ( k = h , h = arguments [ 1 ] || { } , i = 2 ) , j === i && ( h = this , -- i ) ; i < j ; i ++ ) if ( null != ( a = arguments [ i ] ) ) for ( b in a ) d = h [ b ] , e = a [ b ] , h !== e && ( k && e && ( c . Utils . i
vertical : ! 1 , shakeBounds : ! 0 , x : 0 , y : 0 } , this . _fxDuration = 0 , this . _fxType = 0 } , c . Camera . FOLLOW _LOCKON = 0 , c . Camera . FOLLOW _PLATFORMER = 1 , c . Camera . FOLLOW _TOPDOWN = 2 , c . Camera . FOLLOW _TOPDOWN _TIGHT = 3 , c . Camera . SHAKE _BOTH = 4 , c . Camera . SHAKE _HORIZONTAL = 5 , c . Camera . SHAKE _VERTICAL = 6 , c . Camera . ENABLE _FX = ! 0 , c . Camera . prototype = { boot : function ( ) { this . displayObject = this . game . world , this . scale = this . game . world . scale , this . game . camera = this , c . Graphics && c . Camera . ENABLE _FX && ( this . fx = new c . Graphics ( this . game ) , this . game . stage . addChild ( this . fx ) ) } , preUpdate : function ( ) { this . totalInView = 0 } , follow : function ( a , b , d , e ) { void 0 === b && ( b = c . Camera . FOLLOW _LOCKON ) , void 0 === d && ( d = 1 ) , void 0 === e && ( e = 1 ) , this . target = a , this . lerp . set ( d , e ) ; var f ; switch ( b ) { case c . Camera . FOLLOW _PLATFORMER : var g = this . width / 8 , h = this . height / 3 ; this . deadzone = new c . Rectangle ( ( this . width - g ) / 2 , ( this . height - h ) / 2 - . 25 * h , g , h ) ; break ; case c . Camera . FOLLOW _TOPDOWN : f = Math . max ( this . width , this . height ) / 4 , this . deadzone = new c . Rectangle ( ( this . width - f ) / 2 , ( this . height - f ) / 2 , f , f ) ; break ; case c . Camera . FOLLOW _TOPDOWN _TIGHT : f = Math . max ( this . width , this . height ) / 8 , this . deadzone = new c . Rectangle ( ( this . width - f ) / 2 , ( this . height - f ) / 2 , f , f ) ; break ; case c . Camera . FOLLOW _LOCKON : this . deadzone = null ; break ; default : this . deadzone = null } } , unfollow : function ( ) { this . target = null } , focusOn : function ( a ) { this . setPosition ( Math . round ( a . x - this . view . halfWidth ) , Math . round ( a . y - this . view . halfHeight ) ) } , focusOnXY : function ( a , b ) { this . setPosition ( Math . round ( a - this . view . halfWidth ) , Math . round ( b - this . view . halfHeight ) ) } , shake : function ( a , b , d , e , f ) { return void 0 === a && ( a = . 05 ) , void 0 === b && ( b = 500 ) , void 0 === d && ( d = ! 0 ) , void 0 === e && ( e = c . Camera . SHAKE _BOTH ) , void 0 === f && ( f = ! 0 ) , ! ( ! d && this . _shake . duration > 0 ) && ( this . _shake . intensity = a , this . _shake . duration = b , this . _shake . shakeBounds = f , this . _shake . x = 0 , this . _shake . y = 0 , this . _shake . horizontal = e === c . Camera . SHAKE _BOTH || e === c . Camera . SHAKE _HORIZONTAL , this . _shake . vertical = e === c . Camera . SHAKE _BOTH || e === c . Camera . SHAKE _VERTICAL , ! 0 ) } , flash : function ( a , b , c , d ) { return void 0 === a && ( a = 16777215 ) , void 0 === b && ( b = 500 ) , void 0 === c && ( c = ! 1 ) , void 0 === d && ( d = 1 ) , ! ( ! this . fx || ! c && this . _fxDuration > 0 ) && ( this . fx . clear ( ) , this . fx . beginFill ( a , d ) , this . fx . drawRect ( 0 , 0 , this . width , this . height ) , this . fx . endFill ( ) , this . fx . alpha = 1 , this . _fxDuration = b , this . _fxType = 0 , ! 0 ) } , fade : function ( a , b , c , d ) { return void 0 === a && ( a = 0 ) , void 0 === b && ( b = 500 ) , void 0 === c && ( c = ! 1 ) , void 0 === d && ( d = 1 ) , ! ( ! this . fx || ! c && this . _fxDuration > 0 ) && ( this . fx . clear ( ) , this . fx . beginFill ( a , d ) , this . fx . drawRect ( 0 , 0 , this . width , this . height ) , this . fx . endFill ( ) , this . fx . alpha = 0 , this . _fxDuration = b , this . _fxType = 1 , ! 0 ) } , update : function ( ) { this . _fxDuration > 0 && this . updateFX ( ) , this . _shake . duration > 0 && this . updateShake ( ) , this . bounds && this . checkBounds ( ) , this . roundPx && ( this . view . floor ( ) , this . _shake . x = Math . floor ( this . _shake . x ) , this . _shake . y = Math . floor ( this . _shake . y ) ) , this . displayObject . position . x = - this . view . x , this . displayObject . position . y = - this . view . y } , updateFX : function ( ) { 0 === this . _fxType ? ( this . fx . alpha -= this . game . time . elapsedMS / this . _fxDuration , this . fx . alpha <= 0 && ( this . _fxDuration = 0 , this . fx . alpha = 0 , this . onFlashComplete . dispatch ( ) ) ) : ( this . fx . alpha += this . game . time . elapsedMS / this . _fxDuration , this . fx . alpha >= 1 && ( this . _fxDuration = 0 , this . fx . alpha = 1 , this . onFadeComplete . dispatch ( ) ) ) } , updateShake : function ( ) { this . _shake . duration -= this . game . time . elapsedMS , this . _shake . duration <= 0 ? ( this . onShakeComplete . dispatch ( ) , this . _shake . x = 0 , this . _shake . y = 0 ) : ( this . _shake . horizontal && ( this . _shake . x = this . game . rnd . frac ( ) * this . _shake . intensity * this . view . width * 2 - this . _shake . intensity * this . view . width ) , this . _shake . vertical && ( this . _shake . y = this . game . rnd . frac ( ) * this . _shake . intensity * this . view . height * 2 - this . _shake . intensity * this . view . height ) ) } , updateTarget : function ( ) { this . _targetPosition . x = this . view . x + this . target . worldPosition . x , this . _targetPosition . y = this . view . y + this . target . worldPosition . y , this . deadzone ? ( this . _edge = this . _targetPosition . x - this . view . x , this . _edge < this . deadzone . left ? this . view . x = this . game . math . linear ( this . view . x , this . _targetPosition . x - this . deadzone . left , this . lerp . x ) : this . _edge > this . deadzone . right && ( this . view . x = this . game . math . linear ( this . view . x , this . _targetPosition . x - this . deadzone . right
} , c . Group . prototype . getIndex = function ( a ) { return this . children . indexOf ( a ) } , c . Group . prototype . getByName = function ( a ) { for ( var b = 0 ; b < this . children . length ; b ++ ) if ( this . children [ b ] . name === a ) return this . children [ b ] ; return null } , c . Group . prototype . replace = function ( a , b ) { var d = this . getIndex ( a ) ; if ( d !== - 1 ) return b . parent && ( b . parent instanceof c . Group ? b . parent . remove ( b ) : b . parent . removeChild ( b ) ) , this . remove ( a ) , this . addAt ( b , d ) , a } , c . Group . prototype . hasProperty = function ( a , b ) { var c = b . length ; return 1 === c && b [ 0 ] in a || ( 2 === c && b [ 0 ] in a && b [ 1 ] in a [ b [ 0 ] ] || ( 3 === c && b [ 0 ] in a && b [ 1 ] in a [ b [ 0 ] ] && b [ 2 ] in a [ b [ 0 ] ] [ b [ 1 ] ] || 4 === c && b [ 0 ] in a && b [ 1 ] in a [ b [ 0 ] ] && b [ 2 ] in a [ b [ 0 ] ] [ b [ 1 ] ] && b [ 3 ] in a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] ) ) } , c . Group . prototype . setProperty = function ( a , b , c , d , e ) { if ( void 0 === e && ( e = ! 1 ) , d = d || 0 , ! this . hasProperty ( a , b ) && ( ! e || d > 0 ) ) return ! 1 ; var f = b . length ; return 1 === f ? 0 === d ? a [ b [ 0 ] ] = c : 1 === d ? a [ b [ 0 ] ] += c : 2 === d ? a [ b [ 0 ] ] -= c : 3 === d ? a [ b [ 0 ] ] *= c : 4 === d && ( a [ b [ 0 ] ] /= c ) : 2 === f ? 0 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] = c : 1 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] += c : 2 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] -= c : 3 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] *= c : 4 === d && ( a [ b [ 0 ] ] [ b [ 1 ] ] /= c ) : 3 === f ? 0 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] = c : 1 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] += c : 2 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] -= c : 3 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] *= c : 4 === d && ( a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] /= c ) : 4 === f && ( 0 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] = c : 1 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] += c : 2 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] -= c : 3 === d ? a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] *= c : 4 === d && ( a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] /= c ) ) , ! 0 } , c . Group . prototype . checkProperty = function ( a , b , d , e ) { return void 0 === e && ( e = ! 1 ) , ! ( ! c . Utils . getProperty ( a , b ) && e ) && c . Utils . getProperty ( a , b ) === d } , c . Group . prototype . set = function ( a , b , c , d , e , f , g ) { if ( void 0 === g && ( g = ! 1 ) , b = b . split ( "." ) , void 0 === d && ( d = ! 1 ) , void 0 === e && ( e = ! 1 ) , ( d === ! 1 || d && a . alive ) && ( e === ! 1 || e && a . visible ) ) return this . setProperty ( a , b , c , f , g ) } , c . Group . prototype . setAll = function ( a , b , c , d , e , f ) { void 0 === c && ( c = ! 1 ) , void 0 === d && ( d = ! 1 ) , void 0 === f && ( f = ! 1 ) , a = a . split ( "." ) , e = e || 0 ; for ( var g = 0 ; g < this . children . length ; g ++ ) ( ! c || c && this . children [ g ] . alive ) && ( ! d || d && this . children [ g ] . visible ) && this . setProperty ( this . children [ g ] , a , b , e , f ) } , c . Group . prototype . setAllChildren = function ( a , b , d , e , f , g ) { void 0 === d && ( d = ! 1 ) , void 0 === e && ( e = ! 1 ) , void 0 === g && ( g = ! 1 ) , f = f || 0 ; for ( var h = 0 ; h < this . children . length ; h ++ ) ( ! d || d && this . children [ h ] . alive ) && ( ! e || e && this . children [ h ] . visible ) && ( this . children [ h ] instanceof c . Group ? this . children [ h ] . setAllChildren ( a , b , d , e , f , g ) : this . setProperty ( this . children [ h ] , a . split ( "." ) , b , f , g ) ) } , c . Group . prototype . checkAll = function ( a , b , c , d , e ) { void 0 === c && ( c = ! 1 ) , void 0 === d && ( d = ! 1 ) , void 0 === e && ( e = ! 1 ) ; for ( var f = 0 ; f < this . children . length ; f ++ ) if ( ( ! c || c && this . children [ f ] . alive ) && ( ! d || d && this . children [ f ] . visible ) && ! this . checkProperty ( this . children [ f ] , a , b , e ) ) return ! 1 ; return ! 0 } , c . Group . prototype . addAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 1 ) } , c . Group . prototype . subAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 2 ) } , c . Group . prototype . multiplyAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 3 ) } , c . Group . prototype . divideAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 4 ) } , c . Group . prototype . callAllExists = function ( a , b ) { var c ; if ( arguments . length > 2 ) { c = [ ] ; for ( var d = 2 ; d < arguments . length ; d ++ ) c . push ( arguments [ d ] ) } for ( var d = 0 ; d < this . children . length ; d ++ ) this . children [ d ] . exists === b && this . children [ d ] [ a ] && this . children [ d ] [ a ] . apply ( this . children [ d ] , c ) } , c . Group . prototype . callbackFromArray = function ( a , b , c ) { if ( 1 === c ) { if ( a [ b [ 0 ] ] ) return a [ b [ 0 ] ] } else if ( 2 === c ) { if ( a [ b [ 0 ] ] [ b [ 1 ] ] ) return a [ b [ 0 ] ] [ b [ 1 ] ] } else if ( 3 === c ) { if ( a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] ) return a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] } else if ( 4 === c ) { if ( a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] ) return a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] } else if ( a [ b ] ) return a [ b ] ; return ! 1 } , c . Group . prototype . callAll = function ( a , b ) { if ( void 0 !== a ) { a = a . split ( "." ) ; var c = a . length ; if ( void 0 === b || null === b || "" === b ) b = null ; else if ( "string" == typeof b ) { b = b . split ( "." ) ; var d = b . length } var e ; if ( arguments . length > 2 ) { e = [ ] ; for ( var f = 2 ; f < arguments . length ; f ++ ) e . push ( arguments [ f ] ) } for ( var g = null , h = null , f = 0 ; f < this . children . length ; f ++ ) g = this . callbackFromArray ( this . children [ f ] , a , c ) , b && g ? ( h = this . callbackFromArray ( this . children [ f ] , b , d ) , g && g . apply ( h , e ) ) : g && g . apply ( this . children [ f ] , e ) } } , c . Group . prototype . preUpdate = function ( ) { if ( this . pendingDestroy ) return this . destroy ( ) , ! 1 ; if ( ! this . exists || ! this . parent . ex
} , set : function ( a ) { this . _y = Math . floor ( a ) } } ) , Object . defineProperty ( c . Input . prototype , "pollLocked" , { get : function ( ) { return this . pollRate > 0 && this . _pollCounter < this . pollRate } } ) , Object . defineProperty ( c . Input . prototype , "totalInactivePointers" , { get : function ( ) { return this . pointers . length - this . countActivePointers ( ) } } ) , Object . defineProperty ( c . Input . prototype , "totalActivePointers" , { get : function ( ) { return this . countActivePointers ( ) } } ) , Object . defineProperty ( c . Input . prototype , "worldX" , { get : function ( ) { return this . game . camera . view . x + this . x } } ) , Object . defineProperty ( c . Input . prototype , "worldY" , { get : function ( ) { return this . game . camera . view . y + this . y } } ) , c . Mouse = function ( a ) { this . game = a , this . input = a . input , this . callbackContext = this . game , this . mouseDownCallback = null , this . mouseUpCallback = null , this . mouseOutCallback = null , this . mouseOverCallback = null , this . mouseWheelCallback = null , this . capture = ! 1 , this . button = - 1 , this . wheelDelta = 0 , this . enabled = ! 0 , this . locked = ! 1 , this . stopOnGameOut = ! 1 , this . pointerLock = new c . Signal , this . event = null , this . _onMouseDown = null , this . _onMouseMove = null , this . _onMouseUp = null , this . _onMouseOut = null , this . _onMouseOver = null , this . _onMouseWheel = null , this . _wheelEvent = null } , c . Mouse . NO _BUTTON = - 1 , c . Mouse . LEFT _BUTTON = 0 , c . Mouse . MIDDLE _BUTTON = 1 , c . Mouse . RIGHT _BUTTON = 2 , c . Mouse . BACK _BUTTON = 3 , c . Mouse . FORWARD _BUTTON = 4 , c . Mouse . WHEEL _UP = 1 , c . Mouse . WHEEL _DOWN = - 1 , c . Mouse . prototype = { start : function ( ) { if ( ( ! this . game . device . android || this . game . device . chrome !== ! 1 ) && null === this . _onMouseDown ) { var b = this ; this . _onMouseDown = function ( a ) { return b . onMouseDown ( a ) } , this . _onMouseMove = function ( a ) { return b . onMouseMove ( a ) } , this . _onMouseUp = function ( a ) { return b . onMouseUp ( a ) } , this . _onMouseUpGlobal = function ( a ) { return b . onMouseUpGlobal ( a ) } , this . _onMouseOutGlobal = function ( a ) { return b . onMouseOutGlobal ( a ) } , this . _onMouseOut = function ( a ) { return b . onMouseOut ( a ) } , this . _onMouseOver = function ( a ) { return b . onMouseOver ( a ) } , this . _onMouseWheel = function ( a ) { return b . onMouseWheel ( a ) } ; var c = this . game . canvas ; c . addEventListener ( "mousedown" , this . _onMouseDown , ! 0 ) , c . addEventListener ( "mousemove" , this . _onMouseMove , ! 0 ) , c . addEventListener ( "mouseup" , this . _onMouseUp , ! 0 ) , this . game . device . cocoonJS || ( window . addEventListener ( "mouseup" , this . _onMouseUpGlobal , ! 0 ) , window . addEventListener ( "mouseout" , this . _onMouseOutGlobal , ! 0 ) , c . addEventListener ( "mouseover" , this . _onMouseOver , ! 0 ) , c . addEventListener ( "mouseout" , this . _onMouseOut , ! 0 ) ) ; var d = this . game . device . wheelEvent ; d && ( c . addEventListener ( d , this . _onMouseWheel , ! 0 ) , "mousewheel" === d ? this . _wheelEvent = new a ( - . 025 , 1 ) : "DOMMouseScroll" === d && ( this . _wheelEvent = new a ( 1 , 1 ) ) ) } } , onMouseDown : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . mouseDownCallback && this . mouseDownCallback . call ( this . callbackContext , a ) , this . input . enabled && this . enabled && ( a . identifier = 0 , this . input . mousePointer . start ( a ) ) } , onMouseMove : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . mouseMoveCallback && this . mouseMoveCallback . call ( this . callbackContext , a ) , this . input . enabled && this . enabled && ( a . identifier = 0 , this . input . mousePointer . move ( a ) ) } , onMouseUp : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . mouseUpCallback && this . mouseUpCallback . call ( this . callbackContext , a ) , this . input . enabled && this . enabled && ( a . identifier = 0 , this . input . mousePointer . stop ( a ) ) } , onMouseUpGlobal : function ( a ) { this . input . mousePointer . withinGame || ( this . mouseUpCallback && this . mouseUpCallback . call ( this . callbackContext , a ) , a . identifier = 0 , this . input . mousePointer . stop ( a ) ) } , onMouseOutGlobal : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . input . mousePointer . withinGame = ! 1 , this . input . enabled && this . enabled && ( this . input . mousePointer . stop ( a ) , this . input . mousePointer . leftButton . stop ( a ) , this . input . mousePointer . rightButton . stop ( a ) ) } , onMouseOut : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . input . mousePointer . withinGame = ! 1 , this . mouseOutCallback && this . mouseOutCallback . call ( this . callbackContext , a ) , this . input . enabled && this . enabled && this . stopOnGameOut && ( a . identifier = 0 , this . input . mousePointer . stop ( a ) ) } , onMouseOver : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . input . mousePointer . withinGame = ! 0 , this . mouseOve
this . sprite . texture . trim && ( a -= this . sprite . texture . trim . x , b -= this . sprite . texture . trim . y , a < this . sprite . texture . crop . x || a > this . sprite . texture . crop . right || b < this . sprite . texture . crop . y || b > this . sprite . texture . crop . bottom ) ) return this . _dx = a , this . _dy = b , ! 1 ; this . _dx = a , this . _dy = b , this . game . input . hitContext . clearRect ( 0 , 0 , 1 , 1 ) , this . game . input . hitContext . drawImage ( this . sprite . texture . baseTexture . source , a , b , 1 , 1 , 0 , 0 , 1 , 1 ) ; var d = this . game . input . hitContext . getImageData ( 0 , 0 , 1 , 1 ) ; if ( d . data [ 3 ] >= this . pixelPerfectAlpha ) return ! 0 } return ! 1 } , update : function ( a ) { if ( null !== this . sprite && void 0 !== this . sprite . parent ) return this . enabled && this . sprite . visible && this . sprite . parent . visible ? this . _pendingDrag ? ( this . _dragDistancePass || ( this . _dragDistancePass = c . Math . distance ( a . x , a . y , this . downPoint . x , this . downPoint . y ) >= this . dragDistanceThreshold ) , this . _dragDistancePass && this . _dragTimePass && this . startDrag ( a ) , ! 0 ) : this . draggable && this . _draggedPointerID === a . id ? this . updateDrag ( a , ! 1 ) : this . _pointerData [ a . id ] . isOver ? this . checkPointerOver ( a ) ? ( this . _pointerData [ a . id ] . x = a . x - this . sprite . x , this . _pointerData [ a . id ] . y = a . y - this . sprite . y , ! 0 ) : ( this . _pointerOutHandler ( a ) , ! 1 ) : void 0 : ( this . _pointerOutHandler ( a ) , ! 1 ) } , _pointerOverHandler : function ( a , b ) { if ( null !== this . sprite ) { var d = this . _pointerData [ a . id ] ; if ( d . isOver === ! 1 || a . dirty ) { var e = d . isOver === ! 1 ; d . isOver = ! 0 , d . isOut = ! 1 , d . timeOver = this . game . time . time , d . x = a . x - this . sprite . x , d . y = a . y - this . sprite . y , this . useHandCursor && d . isDragged === ! 1 && ( this . game . canvas . style . cursor = "pointer" , this . _setHandCursor = ! 0 ) , ! b && e && this . sprite && this . sprite . events && this . sprite . events . onInputOver$dispatch ( this . sprite , a ) , this . sprite . parent && this . sprite . parent . type === c . GROUP && this . sprite . parent . onChildInputOver . dispatch ( this . sprite , a ) } } } , _pointerOutHandler : function ( a , b ) { if ( null !== this . sprite ) { var d = this . _pointerData [ a . id ] ; d . isOver = ! 1 , d . isOut = ! 0 , d . timeOut = this . game . time . time , this . useHandCursor && d . isDragged === ! 1 && ( this . game . canvas . style . cursor = "default" , this . _setHandCursor = ! 1 ) , ! b && this . sprite && this . sprite . events && ( this . sprite . events . onInputOut$dispatch ( this . sprite , a ) , this . sprite && this . sprite . parent && this . sprite . parent . type === c . GROUP && this . sprite . parent . onChildInputOut . dispatch ( this . sprite , a ) ) } } , _touchedHandler : function ( a ) { if ( null !== this . sprite ) { var b = this . _pointerData [ a . id ] ; if ( ! b . isDown && b . isOver ) { if ( this . pixelPerfectClick && ! this . checkPixel ( null , null , a ) ) return ; if ( b . isDown = ! 0 , b . isUp = ! 1 , b . timeDown = this . game . time . time , this . downPoint . set ( a . x , a . y ) , a . dirty = ! 0 , this . sprite && this . sprite . events && ( this . sprite . events . onInputDown$dispatch ( this . sprite , a ) , this . sprite && this . sprite . parent && this . sprite . parent . type === c . GROUP && this . sprite . parent . onChildInputDown . dispatch ( this . sprite , a ) , null === this . sprite ) ) return ; this . draggable && this . isDragged === ! 1 && ( 0 === this . dragTimeThreshold && 0 === this . dragDistanceThreshold ? this . startDrag ( a ) : ( this . _pendingDrag = ! 0 , this . _dragDistancePass = 0 === this . dragDistanceThreshold , this . dragTimeThreshold > 0 ? ( this . _dragTimePass = ! 1 , this . game . time . events . add ( this . dragTimeThreshold , this . dragTimeElapsed , this , a ) ) : this . _dragTimePass = ! 0 ) ) , this . bringToTop && this . sprite . bringToTop ( ) } } } , dragTimeElapsed : function ( a ) { this . _dragTimePass = ! 0 , this . _pendingDrag && this . sprite && this . _dragDistancePass && this . startDrag ( a ) } , _releasedHandler : function ( a ) { if ( null !== this . sprite ) { var b = this . _pointerData [ a . id ] ; if ( b . isDown && a . isUp ) { b . isDown = ! 1 , b . isUp = ! 0 , b . timeUp = this . game . time . time , b . downDuration = b . timeUp - b . timeDown ; var d = this . checkPointerOver ( a ) ; this . sprite && this . sprite . events && ( this . dragStopBlocksInputUp && ( ! this . dragStopBlocksInputUp || this . draggable && this . isDragged && this . _draggedPointerID === a . id ) || this . sprite . events . onInputUp$dispatch ( this . sprite , a , d ) , this . sprite && this . sprite . parent && this . sprite . parent . type === c . GROUP && this . sprite . parent . onChildInputUp . dispatch ( this . sprite , a , d ) , d && ( d = this . checkPointerOver ( a ) ) ) , b . isOver = d , ! d && this . useHandCursor && ( this . game . canvas . style . cursor = "default" , this . _setHandCursor = ! 1 ) , a . dirty = ! 0 , this . _pendingDrag = ! 1 , this . draggable && this . isDragged && this . _draggedPointerID === a . id && this . stopDrag ( a ) } } } , updateDrag : function ( a , b ) { if ( void 0 === b && ( b = ! 1 ) , a . isUp ) return this . stopDrag ( a ) , ! 1 ; var c =
this . right = a . left - d , this . centerY = a . centerY + e ; break ; case c . LEFT _BOTTOM : this . right = a . left - d , this . bottom = a . bottom + e ; break ; case c . RIGHT _TOP : this . left = a . right + d , this . top = a . top - e ; break ; case c . RIGHT _CENTER : this . left = a . right + d , this . centerY = a . centerY + e ; break ; case c . RIGHT _BOTTOM : this . left = a . right + d , this . bottom = a . bottom + e ; break ; case c . BOTTOM _LEFT : this . left = a . left - d , this . top = a . bottom + e ; break ; case c . BOTTOM _CENTER : this . centerX = a . centerX + d , this . top = a . bottom + e ; break ; case c . BOTTOM _RIGHT : this . right = a . right + d , this . top = a . bottom + e } return this } } , c . Group . prototype . alignIn = c . Component . Bounds . prototype . alignIn , c . Group . prototype . alignTo = c . Component . Bounds . prototype . alignTo , c . Component . BringToTop = function ( ) { } , c . Component . BringToTop . prototype . bringToTop = function ( ) { return this . parent && this . parent . bringToTop ( this ) , this } , c . Component . BringToTop . prototype . sendToBack = function ( ) { return this . parent && this . parent . sendToBack ( this ) , this } , c . Component . BringToTop . prototype . moveUp = function ( ) { return this . parent && this . parent . moveUp ( this ) , this } , c . Component . BringToTop . prototype . moveDown = function ( ) { return this . parent && this . parent . moveDown ( this ) , this } , c . Component . Core = function ( ) { } , c . Component . Core . install = function ( a ) { c . Utils . mixinPrototype ( this , c . Component . Core . prototype ) , this . components = { } ; for ( var b = 0 ; b < a . length ; b ++ ) { var d = a [ b ] , e = ! 1 ; "Destroy" === d && ( e = ! 0 ) , c . Utils . mixinPrototype ( this , c . Component [ d ] . prototype , e ) , this . components [ d ] = ! 0 } } , c . Component . Core . init = function ( a , b , d , e , f ) { this . game = a , this . key = e , this . data = { } , this . position . set ( b , d ) , this . world = new c . Point ( b , d ) , this . previousPosition = new c . Point ( b , d ) , this . events = new c . Events ( this ) , this . _bounds = new c . Rectangle , this . components . PhysicsBody && ( this . body = this . body ) , this . components . Animation && ( this . animations = new c . AnimationManager ( this ) ) , this . components . LoadTexture && null !== e && this . loadTexture ( e , f ) , this . components . FixedToCamera && ( this . cameraOffset = new c . Point ( b , d ) ) } , c . Component . Core . preUpdate = function ( ) { if ( this . pendingDestroy ) return void this . destroy ( ) ; if ( this . previousPosition . set ( this . world . x , this . world . y ) , this . previousRotation = this . rotation , ! this . exists || ! this . parent . exists ) return this . renderOrderID = - 1 , ! 1 ; this . world . setTo ( this . game . camera . x + this . worldTransform . tx , this . game . camera . y + this . worldTransform . ty ) , this . visible && ( this . renderOrderID = this . game . stage . currentRenderOrderID ++ ) , this . animations && this . animations . update ( ) , this . body && this . body . preUpdate ( ) ; for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , c . Component . Core . prototype = { game : null , name : "" , data : { } , components : { } , z : 0 , events : void 0 , animations : void 0 , key : "" , world : null , debug : ! 1 , previousPosition : null , previousRotation : 0 , renderOrderID : 0 , fresh : ! 0 , pendingDestroy : ! 1 , _bounds : null , _exists : ! 0 , exists : { get : function ( ) { return this . _exists } , set : function ( a ) { a ? ( this . _exists = ! 0 , this . body && this . body . type === c . Physics . P2JS && this . body . addToWorld ( ) , this . visible = ! 0 ) : ( this . _exists = ! 1 , this . body && this . body . type === c . Physics . P2JS && this . body . removeFromWorld ( ) , this . visible = ! 1 ) } } , update : function ( ) { } , postUpdate : function ( ) { this . customRender && this . key . render ( ) , this . components . PhysicsBody && c . Component . PhysicsBody . postUpdate . call ( this ) , this . components . FixedToCamera && c . Component . FixedToCamera . postUpdate . call ( this ) ; for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . postUpdate ( ) } } , c . Component . Crop = function ( ) { } , c . Component . Crop . prototype = { cropRect : null , _crop : null , crop : function ( a , b ) { void 0 === b && ( b = ! 1 ) , a ? ( b && null !== this . cropRect ? this . cropRect . setTo ( a . x , a . y , a . width , a . height ) : b && null === this . cropRect ? this . cropRect = new c . Rectangle ( a . x , a . y , a . width , a . height ) : this . cropRect = a , this . updateCrop ( ) ) : ( this . _crop = null , this . cropRect = null , this . resetFrame ( ) ) } , updateCrop : function ( ) { if ( this . cropRect ) { var a = this . texture . crop . x , b = this . texture . crop . y , d = this . texture . crop . width , e = this . texture . crop . height ; this . _crop = c . Rectangle . clone ( this . cropRect , this . _crop ) , this . _crop . x += this . _frame . x , this . _crop . y += this . _frame . y ; var f = Math . max ( this . _frame . x , this . _crop . x ) , g = Math . max ( this . _frame . y , this . _crop . y ) , h = Math . min ( this . _frame . right , this . _crop . right ) - f , i = Math . min ( this . _frame . bottom , this . _crop . bottom ) - g ; this . texture . cro
r : 0 , g : 0 , b : 0 , a : 0 } , l = ! 1 , m = e ; m < i ; m ++ ) for ( var n = d ; n < h ; n ++ ) c . Color . unpackPixel ( this . getPixel32 ( n , m ) , j ) , k = a . call ( b , j , n , m ) , k !== ! 1 && null !== k && void 0 !== k && ( this . setPixel32 ( n , m , k . r , k . g , k . b , k . a , ! 1 ) , l = ! 0 ) ; return l && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) , this } , processPixel : function ( a , b , c , d , e , f ) { void 0 === c && ( c = 0 ) , void 0 === d && ( d = 0 ) , void 0 === e && ( e = this . width ) , void 0 === f && ( f = this . height ) ; for ( var g = c + e , h = d + f , i = 0 , j = 0 , k = ! 1 , l = d ; l < h ; l ++ ) for ( var m = c ; m < g ; m ++ ) i = this . getPixel32 ( m , l ) , j = a . call ( b , i , m , l ) , j !== i && ( this . pixels [ l * this . width + m ] = j , k = ! 0 ) ; return k && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) , this } , replaceRGB : function ( a , b , d , e , f , g , h , i , j ) { var k = 0 , l = 0 , m = this . width , n = this . height , o = c . Color . packPixel ( a , b , d , e ) ; void 0 !== j && j instanceof c . Rectangle && ( k = j . x , l = j . y , m = j . width , n = j . height ) ; for ( var p = 0 ; p < n ; p ++ ) for ( var q = 0 ; q < m ; q ++ ) this . getPixel32 ( k + q , l + p ) === o && this . setPixel32 ( k + q , l + p , f , g , h , i , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } , setHSL : function ( a , b , d , e ) { var f = a || 0 === a , g = b || 0 === b , h = d || 0 === d ; if ( f || g || h ) { void 0 === e && ( e = new c . Rectangle ( 0 , 0 , this . width , this . height ) ) ; for ( var i = c . Color . createColor ( ) , j = e . y ; j < e . bottom ; j ++ ) for ( var k = e . x ; k < e . right ; k ++ ) c . Color . unpackPixel ( this . getPixel32 ( k , j ) , i , ! 0 ) , f && ( i . h = a ) , g && ( i . s = b ) , h && ( i . l = d ) , c . Color . HSLtoRGB ( i . h , i . s , i . l , i ) , this . setPixel32 ( k , j , i . r , i . g , i . b , i . a , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } } , shiftHSL : function ( a , b , d , e ) { if ( void 0 !== a && null !== a || ( a = ! 1 ) , void 0 !== b && null !== b || ( b = ! 1 ) , void 0 !== d && null !== d || ( d = ! 1 ) , a || b || d ) { void 0 === e && ( e = new c . Rectangle ( 0 , 0 , this . width , this . height ) ) ; for ( var f = c . Color . createColor ( ) , g = e . y ; g < e . bottom ; g ++ ) for ( var h = e . x ; h < e . right ; h ++ ) c . Color . unpackPixel ( this . getPixel32 ( h , g ) , f , ! 0 ) , a && ( f . h = this . game . math . wrap ( f . h + a , 0 , 1 ) ) , b && ( f . s = this . game . math . clamp ( f . s + b , 0 , 1 ) ) , d && ( f . l = this . game . math . clamp ( f . l + d , 0 , 1 ) ) , c . Color . HSLtoRGB ( f . h , f . s , f . l , f ) , this . setPixel32 ( h , g , f . r , f . g , f . b , f . a , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } } , setPixel32 : function ( a , b , d , e , f , g , h ) { return void 0 === h && ( h = ! 0 ) , a >= 0 && a <= this . width && b >= 0 && b <= this . height && ( c . Device . LITTLE _ENDIAN ? this . pixels [ b * this . width + a ] = g << 24 | f << 16 | e << 8 | d : this . pixels [ b * this . width + a ] = d << 24 | e << 16 | f << 8 | g , h && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) ) , this } , setPixel : function ( a , b , c , d , e , f ) { return this . setPixel32 ( a , b , c , d , e , 255 , f ) } , getPixel : function ( a , b , d ) { d || ( d = c . Color . createColor ( ) ) ; var e = ~ ~ ( a + b * this . width ) ; return e *= 4 , d . r = this . data [ e ] , d . g = this . data [ ++ e ] , d . b = this . data [ ++ e ] , d . a = this . data [ ++ e ] , d } , getPixel32 : function ( a , b ) { if ( a >= 0 && a <= this . width && b >= 0 && b <= this . height ) return this . pixels [ b * this . width + a ] } , getPixelRGB : function ( a , b , d , e , f ) { return c . Color . unpackPixel ( this . getPixel32 ( a , b ) , d , e , f ) } , getPixels : function ( a ) { return this . context . getImageData ( a . x , a . y , a . width , a . height ) } , getFirstPixel : function ( a ) { void 0 === a && ( a = 0 ) ; var b = c . Color . createColor ( ) , d = 0 , e = 0 , f = 1 , g = ! 1 ; 1 === a ? ( f = - 1 , e = this . height ) : 3 === a && ( f = - 1 , d = this . width ) ; do c . Color . unpackPixel ( this . getPixel32 ( d , e ) , b ) , 0 === a || 1 === a ? ( d ++ , d === this . width && ( d = 0 , e += f , ( e >= this . height || e <= 0 ) && ( g = ! 0 ) ) ) : 2 !== a && 3 !== a || ( e ++ , e === this . height && ( e = 0 , d += f , ( d >= this . width || d <= 0 ) && ( g = ! 0 ) ) ) ; while ( 0 === b . a && ! g ) ; return b . x = d , b . y = e , b } , getBounds : function ( a ) { return void 0 === a && ( a = new c . Rectangle ) , a . x = this . getFirstPixel ( 2 ) . x , a . x === this . width ? a . setTo ( 0 , 0 , 0 , 0 ) : ( a . y = this . getFirstPixel ( 0 ) . y , a . width = this . getFirstPixel ( 3 ) . x - a . x + 1 , a . height = this . getFirstPixel ( 1 ) . y - a . y + 1 , a ) } , addToWorld : function ( a , b , c , d , e , f ) { e = e || 1 , f = f || 1 ; var g = this . game . add . image ( a , b , this ) ; return g . anchor . set ( c , d ) , g . scale . set ( e , f ) , g } , copy : function ( a , b , d , e , f , g , h , i , j , k , l , m , n , o , p , q , r ) { if ( void 0 !== a && null !== a || ( a = this ) , a instanceof c . RenderTexture && ( a = a . getCanvas ( ) ) , this . _image = a , a instanceof c . Sprite || a instanceof c . Image || a instanceof c . Text || a instanceof PIXI . Sprite ) this . _pos . set ( a . texture . crop . x , a . texture . crop . y ) , this . _size . set ( a . texture . crop . width , a . texture . crop . height ) , this . _scale . set ( a . scale . x , a . scale . y ) , this . _anchor . set ( a . anchor . x , a . anchor . y ) , this . _rotate = a . rotation , this . _alpha . current = a . alpha , a . texture instanceof c . RenderTexture ? this . _image = a . texture
e . context . scale ( a , a ) , e . context . translate ( - d . x , - d . y ) , PIXI . CanvasGraphics . renderGraphics ( this , e . context ) , f } , c . Graphics . prototype . _renderWebGL = function ( a ) { if ( this . visible !== ! 1 && 0 !== this . alpha && this . isMask !== ! 0 ) { if ( this . _cacheAsBitmap ) return ( this . dirty || this . cachedSpriteDirty ) && ( this . _generateCachedSprite ( ) , this . updateCachedSpriteTexture ( ) , this . cachedSpriteDirty = ! 1 , this . dirty = ! 1 ) , this . _cachedSprite . worldAlpha = this . worldAlpha , void PIXI . Sprite . prototype . _renderWebGL . call ( this . _cachedSprite , a ) ; if ( a . spriteBatch . stop ( ) , a . blendModeManager . setBlendMode ( this . blendMode ) , this . _mask && a . maskManager . pushMask ( this . _mask , a ) , this . _filters && a . filterManager . pushFilter ( this . _filterBlock ) , this . blendMode !== a . spriteBatch . currentBlendMode ) { a . spriteBatch . currentBlendMode = this . blendMode ; var b = PIXI . blendModesWebGL [ a . spriteBatch . currentBlendMode ] ; a . spriteBatch . gl . blendFunc ( b [ 0 ] , b [ 1 ] ) } if ( this . webGLDirty && ( this . dirty = ! 0 , this . webGLDirty = ! 1 ) , PIXI . WebGLGraphics . renderGraphics ( this , a ) , this . children . length ) { a . spriteBatch . start ( ) ; for ( var c = 0 ; c < this . children . length ; c ++ ) this . children [ c ] . _renderWebGL ( a ) ; a . spriteBatch . stop ( ) } this . _filters && a . filterManager . popFilter ( ) , this . _mask && a . maskManager . popMask ( this . mask , a ) , a . drawCount ++ , a . spriteBatch . start ( ) } } , c . Graphics . prototype . _renderCanvas = function ( a ) { if ( this . visible !== ! 1 && 0 !== this . alpha && this . isMask !== ! 0 ) { if ( this . _prevTint !== this . tint && ( this . dirty = ! 0 , this . _prevTint = this . tint ) , this . _cacheAsBitmap ) return ( this . dirty || this . cachedSpriteDirty ) && ( this . _generateCachedSprite ( ) , this . updateCachedSpriteTexture ( ) , this . cachedSpriteDirty = ! 1 , this . dirty = ! 1 ) , this . _cachedSprite . alpha = this . alpha , void PIXI . Sprite . prototype . _renderCanvas . call ( this . _cachedSprite , a ) ; var b = a . context , c = this . worldTransform ; this . blendMode !== a . currentBlendMode && ( a . currentBlendMode = this . blendMode , b . globalCompositeOperation = PIXI . blendModesCanvas [ a . currentBlendMode ] ) , this . _mask && a . maskManager . pushMask ( this . _mask , a ) ; var d = a . resolution , e = c . tx * a . resolution + a . shakeX , f = c . ty * a . resolution + a . shakeY ; b . setTransform ( c . a * d , c . b * d , c . c * d , c . d * d , e , f ) , PIXI . CanvasGraphics . renderGraphics ( this , b ) ; for ( var g = 0 ; g < this . children . length ; g ++ ) this . children [ g ] . _renderCanvas ( a ) ; this . _mask && a . maskManager . popMask ( a ) } } , c . Graphics . prototype . getBounds = function ( a ) { if ( this . _currentBounds ) return this . _currentBounds ; if ( ! this . renderable ) return c . EmptyRectangle ; this . dirty && ( this . updateLocalBounds ( ) , this . webGLDirty = ! 0 , this . cachedSpriteDirty = ! 0 , this . dirty = ! 1 ) ; var b = this . _localBounds , d = b . x , e = b . width + b . x , f = b . y , g = b . height + b . y , h = a || this . worldTransform , i = h . a , j = h . b , k = h . c , l = h . d , m = h . tx , n = h . ty , o = i * e + k * g + m , p = l * g + j * e + n , q = i * d + k * g + m , r = l * g + j * d + n , s = i * d + k * f + m , t = l * f + j * d + n , u = i * e + k * f + m , v = l * f + j * e + n , w = o , x = p , y = o , z = p ; return y = q < y ? q : y , y = s < y ? s : y , y = u < y ? u : y , z = r < z ? r : z , z = t < z ? t : z , z = v < z ? v : z , w = q > w ? q : w , w = s > w ? s : w , w = u > w ? u : w , x = r > x ? r : x , x = t > x ? t : x , x = v > x ? v : x , this . _bounds . x = y , this . _bounds . width = w - y , this . _bounds . y = z , this . _bounds . height = x - z , this . _currentBounds = this . _bounds , this . _currentBounds } , c . Graphics . prototype . getLocalBounds = function ( ) { var a = this . worldTransform ; this . worldTransform = c . identityMatrix ; for ( var b = 0 ; b < this . children . length ; b ++ ) this . children [ b ] . updateTransform ( ) ; var d = this . getBounds ( ) ; for ( this . worldTransform = a , b = 0 ; b < this . children . length ; b ++ ) this . children [ b ] . updateTransform ( ) ; return d } , c . Graphics . prototype . containsPoint = function ( a ) { this . worldTransform . applyInverse ( a , tempPoint ) ; for ( var b = this . graphicsData , c = 0 ; c < b . length ; c ++ ) { var d = b [ c ] ; if ( d . fill && d . shape && d . shape . contains ( tempPoint . x , tempPoint . y ) ) return ! 0 } return ! 1 } , c . Graphics . prototype . updateLocalBounds = function ( ) { var a = 1 / 0 , b = - ( 1 / 0 ) , d = 1 / 0 , e = - ( 1 / 0 ) ; if ( this . graphicsData . length ) for ( var f , g , h , i , j , k , l = 0 ; l < this . graphicsData . length ; l ++ ) { var m = this . graphicsData [ l ] , n = m . type , o = m . lineWidth ; if ( f = m . shape , n === c . RECTANGLE || n === c . ROUNDEDRECTANGLE ) h = f . x - o / 2 , i = f . y - o / 2 , j = f . width + o , k = f . height + o , a = h < a ? h : a , b = h + j > b ? h + j : b , d = i < d ? i : d , e = i + k > e ? i + k : e ; else if ( n === c . CIRCLE ) h = f . x , i = f . y , j = f . radius + o / 2 , k = f . radius + o / 2 , a = h - j < a ? h - j : a , b = h + j > b ? h + j : b , d = i - k < d ? i - k : d , e = i + k > e ? i + k : e ; else if ( n === c . ELLIPSE ) h = f . x , i = f . y , j = f . width + o / 2 , k = f . height + o / 2 , a = h - j < a ? h - j : a , b = h + j > b ? h + j : b , d = i - k < d ? i - k : d , e = i + k > e ? i + k : e ; else { g = f . points ; for ( var p = 0 ; p < g . le
j . push ( d + ( n . xOffset + p ) * b ) , d += ( n . xAdvance + p ) * b , h = m } return { width : e , text : c , end : l , chars : j } } , c . BitmapText . prototype . cleanText = function ( a , b ) { void 0 === b && ( b = "" ) ; var c = this . _data . font ; if ( ! c ) return "" ; for ( var d = /\r\n|\n\r|\n|\r/g , e = a . replace ( d , "\n" ) . split ( "\n" ) , f = 0 ; f < e . length ; f ++ ) { for ( var g = "" , h = e [ f ] , i = 0 ; i < h . length ; i ++ ) g = c . chars [ h . charCodeAt ( i ) ] ? g . concat ( h [ i ] ) : g . concat ( b ) ; e [ f ] = g } return e . join ( "\n" ) } , c . BitmapText . prototype . updateText = function ( ) { var a = this . _data . font ; if ( a ) { var b = this . text , c = this . _fontSize / a . size , d = [ ] , e = 0 ; this . textWidth = 0 ; do { var f = this . scanLine ( a , c , b ) ; f . y = e , d . push ( f ) , f . width > this . textWidth && ( this . textWidth = f . width ) , e += a . lineHeight * c , b = b . substr ( f . text . length + 1 ) } while ( f . end === ! 1 ) ; this . textHeight = e ; for ( var g = 0 , h = 0 , i = this . textWidth * this . anchor . x , j = this . textHeight * this . anchor . y , k = 0 ; k < d . length ; k ++ ) { var f = d [ k ] ; "right" === this . _align ? h = this . textWidth - f . width : "center" === this . _align && ( h = ( this . textWidth - f . width ) / 2 ) ; for ( var l = 0 ; l < f . text . length ; l ++ ) { var m = f . text . charCodeAt ( l ) , n = a . chars [ m ] ; void 0 === n && ( m = 32 , n = a . chars [ m ] ) ; var o = this . _glyphs [ g ] ; o ? o . texture = n . texture : ( o = new PIXI . Sprite ( n . texture ) , o . name = f . text [ l ] , this . _glyphs . push ( o ) ) , o . position . x = f . chars [ l ] + h - i , o . position . y = f . y + n . yOffset * c - j , o . scale . set ( c ) , o . tint = this . tint , o . texture . requiresReTint = ! 0 , o . parent || this . addChild ( o ) , g ++ } } for ( k = g ; k < this . _glyphs . length ; k ++ ) this . removeChild ( this . _glyphs [ k ] ) } } , c . BitmapText . prototype . purgeGlyphs = function ( ) { for ( var a = this . _glyphs . length , b = [ ] , c = 0 ; c < this . _glyphs . length ; c ++ ) this . _glyphs [ c ] . parent !== this ? this . _glyphs [ c ] . destroy ( ) : b . push ( this . _glyphs [ c ] ) ; return this . _glyphs = [ ] , this . _glyphs = b , this . updateText ( ) , a - b . length } , c . BitmapText . prototype . updateTransform = function ( ) { ! this . dirty && this . anchor . equals ( this . _prevAnchor ) || ( this . updateText ( ) , this . dirty = ! 1 , this . _prevAnchor . copyFrom ( this . anchor ) ) , PIXI . DisplayObjectContainer . prototype . updateTransform . call ( this ) } , Object . defineProperty ( c . BitmapText . prototype , "align" , { get : function ( ) { return this . _align } , set : function ( a ) { a === this . _align || "left" !== a && "center" !== a && "right" !== a || ( this . _align = a , this . updateText ( ) ) } } ) , Object . defineProperty ( c . BitmapText . prototype , "tint" , { get : function ( ) { return this . _tint } , set : function ( a ) { 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
n . webAudio = ! ( ! window . AudioContext && ! window . webkitAudioContext ) ; var a = document . createElement ( "audio" ) , b = ! 1 ; try { if ( ( b = ! ! a . canPlayType ) && ( a . canPlayType ( 'audio/ogg; codecs="vorbis"' ) . replace ( /^no$/ , "" ) && ( n . ogg = ! 0 ) , ( a . canPlayType ( 'audio/ogg; codecs="opus"' ) . replace ( /^no$/ , "" ) || a . canPlayType ( "audio/opus;" ) . replace ( /^no$/ , "" ) ) && ( n . opus = ! 0 ) , a . canPlayType ( "audio/mpeg;" ) . replace ( /^no$/ , "" ) && ( n . mp3 = ! 0 ) , a . canPlayType ( 'audio/wav; codecs="1"' ) . replace ( /^no$/ , "" ) && ( n . wav = ! 0 ) , ( a . canPlayType ( "audio/x-m4a;" ) || a . canPlayType ( "audio/aac;" ) . replace ( /^no$/ , "" ) ) && ( n . m4a = ! 0 ) , a . canPlayType ( 'audio/webm; codecs="vorbis"' ) . replace ( /^no$/ , "" ) && ( n . webm = ! 0 ) , "" !== a . canPlayType ( 'audio/mp4;codecs="ec-3"' ) ) ) if ( n . edge ) n . dolby = ! 0 ; else if ( n . safari && n . safariVersion >= 9 && /Mac OS X (\d+)_(\d+)/ . test ( navigator . userAgent ) ) { var c = parseInt ( RegExp . $1 , 10 ) , d = parseInt ( RegExp . $2 , 10 ) ; ( 10 === c && d >= 11 || c > 10 ) && ( n . dolby = ! 0 ) } } catch ( a ) { } } function j ( ) { var a = new ArrayBuffer ( 4 ) , b = new Uint8Array ( a ) , c = new Uint32Array ( a ) ; return b [ 0 ] = 161 , b [ 1 ] = 178 , b [ 2 ] = 195 , b [ 3 ] = 212 , 3569595041 === c [ 0 ] || 2712847316 !== c [ 0 ] && null } function k ( ) { if ( void 0 === Uint8ClampedArray ) return ! 1 ; var a = c . CanvasPool . create ( this , 1 , 1 ) , b = a . getContext ( "2d" ) ; if ( ! b ) return ! 1 ; var d = b . createImageData ( 1 , 1 ) ; return c . CanvasPool . remove ( this ) , d . data instanceof Uint8ClampedArray } function l ( ) { n . pixelRatio = window . devicePixelRatio || 1 , n . iPhone = navigator . userAgent . toLowerCase ( ) . indexOf ( "iphone" ) !== - 1 , n . iPhone4 = 2 === n . pixelRatio && n . iPhone , n . iPad = navigator . userAgent . toLowerCase ( ) . indexOf ( "ipad" ) !== - 1 , "undefined" != typeof Int8Array ? n . typedArray = ! 0 : n . typedArray = ! 1 , "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array && "undefined" != typeof Uint32Array && ( n . littleEndian = j ( ) , n . LITTLE _ENDIAN = n . littleEndian ) , n . support32bit = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8ClampedArray && "undefined" != typeof Int32Array && null !== n . littleEndian && k ( ) , navigator . vibrate = navigator . vibrate || navigator . webkitVibrate || navigator . mozVibrate || navigator . msVibrate , navigator . vibrate && ( n . vibration = ! 0 ) } function m ( ) { var a , b = document . createElement ( "p" ) , c = { webkitTransform : "-webkit-transform" , OTransform : "-o-transform" , msTransform : "-ms-transform" , MozTransform : "-moz-transform" , transform : "transform" } ; document . body . insertBefore ( b , null ) ; for ( var d in c ) void 0 !== b . style [ d ] && ( b . style [ d ] = "translate3d(1px,1px,1px)" , a = window . getComputedStyle ( b ) . getPropertyValue ( c [ d ] ) ) ; document . body . removeChild ( b ) , n . css3D = void 0 !== a && a . length > 0 && "none" !== a } var n = this ; a ( ) , g ( ) , i ( ) , h ( ) , m ( ) , l ( ) , d ( ) , b ( ) , f ( ) , e ( ) } , c . Device . canPlayAudio = function ( a ) { return ! ( "mp3" !== a || ! this . mp3 ) || ( ! ( "ogg" !== a || ! this . ogg && ! this . opus ) || ( ! ( "m4a" !== a || ! this . m4a ) || ( ! ( "opus" !== a || ! this . opus ) || ( ! ( "wav" !== a || ! this . wav ) || ( ! ( "webm" !== a || ! this . webm ) || ! ( "mp4" !== a || ! this . dolby ) ) ) ) ) ) } , c . Device . canPlayVideo = function ( a ) { return ! ( "webm" !== a || ! this . webmVideo && ! this . vp9Video ) || ( ! ( "mp4" !== a || ! this . mp4Video && ! this . h264Video ) || ( ! ( "ogg" !== a && "ogv" !== a || ! this . oggVideo ) || ! ( "mpeg" !== a || ! this . hlsVideo ) ) ) } , c . Device . isConsoleOpen = function ( ) { return ! ( ! window . console || ! window . console . firebug ) || ! ( ! window . console || ( console . profile ( ) , console . profileEnd ( ) , console . clear && console . clear ( ) , ! console . profiles ) ) && console . profiles . length > 0 } , c . Device . isAndroidStockBrowser = function ( ) { var a = window . navigator . userAgent . match ( /Android.*AppleWebKit\/([\d.]+)/ ) ; return a && a [ 1 ] < 537 } , c . Canvas = { create : function ( a , b , d , e , f ) { b = b || 256 , d = d || 256 ; var g = f ? document . createElement ( "canvas" ) : c . CanvasPool . create ( a , b , d ) ; return "string" == typeof e && "" !== e && ( g . id = e ) , g . width = b , g . height = d , g . style . display = "block" , g } , setBackgroundColor : function ( a , b ) { return b = b || "rgb(0,0,0)" , a . style . backgroundColor = b , a } , setTouchAction : function ( a , b ) { return b = b || "none" , a . style . msTouchAction = b , a . style [ "ms-touch-action" ] = b , a . style [ "touch-action" ] = b , a } , setUserSelect : function ( a , b ) { return b = b || "none" , a . style [ "-webkit-touch-callout" ] = b , a . style [ "-webkit-user-select" ] = b , a . style [ "-khtml-user-select" ] = b , a . style [ "-moz-user-select" ] = b , a . style [ "-ms-user-select" ] = b , a . style [ "user-select" ] = b , a . style [ "-webkit-tap-highlight-color" ] = "rgba(0, 0, 0, 0)" , a } , addToDOM : function ( a , b , c ) { var d ; return void 0 === c && ( c = ! 0 ) , b && ( "string" == typeof b ? d = d
} , Out : function ( a ) { return Math . sqrt ( 1 - -- a * a ) } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? - . 5 * ( Math . sqrt ( 1 - a * a ) - 1 ) : . 5 * ( Math . sqrt ( 1 - ( a -= 2 ) * a ) + 1 ) } } , Elastic : { In : function ( a ) { var b , c = . 1 , d = . 4 ; return 0 === a ? 0 : 1 === a ? 1 : ( ! c || c < 1 ? ( c = 1 , b = d / 4 ) : b = d * Math . asin ( 1 / c ) / ( 2 * Math . PI ) , - ( c * Math . pow ( 2 , 10 * ( a -= 1 ) ) * Math . sin ( ( a - b ) * ( 2 * Math . PI ) / d ) ) ) } , Out : function ( a ) { var b , c = . 1 , d = . 4 ; return 0 === a ? 0 : 1 === a ? 1 : ( ! c || c < 1 ? ( c = 1 , b = d / 4 ) : b = d * Math . asin ( 1 / c ) / ( 2 * Math . PI ) , c * Math . pow ( 2 , - 10 * a ) * Math . sin ( ( a - b ) * ( 2 * Math . PI ) / d ) + 1 ) } , InOut : function ( a ) { var b , c = . 1 , d = . 4 ; return 0 === a ? 0 : 1 === a ? 1 : ( ! c || c < 1 ? ( c = 1 , b = d / 4 ) : b = d * Math . asin ( 1 / c ) / ( 2 * Math . PI ) , ( a *= 2 ) < 1 ? - . 5 * ( c * Math . pow ( 2 , 10 * ( a -= 1 ) ) * Math . sin ( ( a - b ) * ( 2 * Math . PI ) / d ) ) : c * Math . pow ( 2 , - 10 * ( a -= 1 ) ) * Math . sin ( ( a - b ) * ( 2 * Math . PI ) / d ) * . 5 + 1 ) } } , Back : { In : function ( a ) { var b = 1.70158 ; return a * a * ( ( b + 1 ) * a - b ) } , Out : function ( a ) { var b = 1.70158 ; return -- a * a * ( ( b + 1 ) * a + b ) + 1 } , InOut : function ( a ) { var b = 2.5949095 ; return ( a *= 2 ) < 1 ? . 5 * ( a * a * ( ( b + 1 ) * a - b ) ) : . 5 * ( ( a -= 2 ) * a * ( ( b + 1 ) * a + b ) + 2 ) } } , Bounce : { In : function ( a ) { return 1 - c . Easing . Bounce . Out ( 1 - a ) } , Out : function ( a ) { return a < 1 / 2.75 ? 7.5625 * a * a : a < 2 / 2.75 ? 7.5625 * ( a -= 1.5 / 2.75 ) * a + . 75 : a < 2.5 / 2.75 ? 7.5625 * ( a -= 2.25 / 2.75 ) * a + . 9375 : 7.5625 * ( a -= 2.625 / 2.75 ) * a + . 984375 } , InOut : function ( a ) { return a < . 5 ? . 5 * c . Easing . Bounce . In ( 2 * a ) : . 5 * c . Easing . Bounce . Out ( 2 * a - 1 ) + . 5 } } } , c . Easing . Default = c . Easing . Linear . None , c . Easing . Power0 = c . Easing . Linear . None , c . Easing . Power1 = c . Easing . Quadratic . Out , c . Easing . Power2 = c . Easing . Cubic . Out , c . Easing . Power3 = c . Easing . Quartic . Out , c . Easing . Power4 = c . Easing . Quintic . Out , c . Time = function ( a ) { this . game = a , this . time = 0 , this . prevTime = 0 , this . now = 0 , this . elapsed = 0 , this . elapsedMS = 0 , this . physicsElapsed = 1 / 60 , this . physicsElapsedMS = 1 / 60 * 1e3 , this . desiredFpsMult = 1 / 60 , this . _desiredFps = 60 , this . suggestedFps = this . desiredFps , this . slowMotion = 1 , this . advancedTiming = ! 1 , this . frames = 0 , this . fps = 0 , this . fpsMin = 1e3 , this . fpsMax = 0 , this . msMin = 1e3 , this . msMax = 0 , this . pauseDuration = 0 , this . timeToCall = 0 , this . timeExpected = 0 , this . events = new c . Timer ( this . game , ! 1 ) , this . _frameCount = 0 , this . _elapsedAccumulator = 0 , this . _started = 0 , this . _timeLastSecond = 0 , this . _pauseStarted = 0 , this . _justResumed = ! 1 , this . _timers = [ ] } , c . Time . prototype = { boot : function ( ) { this . _started = Date . now ( ) , this . time = Date . now ( ) , this . events . start ( ) , this . timeExpected = this . time } , add : function ( a ) { return this . _timers . push ( a ) , a } , create : function ( a ) { void 0 === a && ( a = ! 0 ) ; var b = new c . Timer ( this . game , a ) ; return this . _timers . push ( b ) , b } , removeAll : function ( ) { for ( var a = 0 ; a < this . _timers . length ; a ++ ) this . _timers [ a ] . destroy ( ) ; this . _timers = [ ] , this . events . removeAll ( ) } , refresh : function ( ) { var a = this . time ; this . time = Date . now ( ) , this . elapsedMS = this . time - a } , update : function ( a ) { var b = this . time ; this . time = Date . now ( ) , this . elapsedMS = this . time - b , this . prevTime = this . now , this . now = a , this . elapsed = this . now - this . prevTime , this . game . raf . _isSetTimeOut && ( this . timeToCall = Math . floor ( Math . max ( 0 , 1e3 / this . _desiredFps - ( this . timeExpected - a ) ) ) , this . timeExpected = a + this . timeToCall ) , this . advancedTiming && this . updateAdvancedTiming ( ) , this . game . paused || ( this . events . update ( this . time ) , this . _timers . length && this . updateTimers ( ) ) } , updateTimers : function ( ) { for ( var a = 0 , b = this . _timers . length ; a < b ; ) this . _timers [ a ] . update ( this . time ) ? a ++ : ( this . _timers . splice ( a , 1 ) , b -- ) } , updateAdvancedTiming : function ( ) { this . _frameCount ++ , this . _elapsedAccumulator += this . elapsed , this . _frameCount >= 2 * this . _desiredFps && ( this . suggestedFps = 5 * Math . floor ( 200 / ( this . _elapsedAccumulator / this . _frameCount ) ) , this . _frameCount = 0 , this . _elapsedAccumulator = 0 ) , this . msMin = Math . min ( this . msMin , this . elapsed ) , this . msMax = Math . max ( this . msMax , this . elapsed ) , this . frames ++ , this . now > this . _timeLastSecond + 1e3 && ( this . fps = Math . round ( 1e3 * this . frames / ( this . now - this . _timeLastSecond ) ) , this . fpsMin = Math . min ( this . fpsMin , this . fps ) , this . fpsMax = Math . max ( this . fpsMax , this . fps ) , this . _timeLastSecond = this . now , this . frames = 0 ) } , gamePaused : function ( ) { this . _pauseStarted = Date . now ( ) , this . events . pause ( ) ; for ( var a = this . _timers . length ; a -- ; ) this . _timers [ a ] . _pause ( ) } , gameResumed : function ( ) { this . time = Date . now ( ) , this . pauseDuration = this . time - this . _pauseStarted , this . events . resume ( ) ; for ( var a = this . _timers . length ; a -- ; ) this . _timers [ a ] . _resume ( ) } , totalElapsedSeconds : function ( ) { return . 001 * ( this . time - this . _started ) } , e
this . _cache . image [ a ] = g , this . _resolveURL ( b , g ) } , reloadSound : function ( a ) { var b = this , c = this . getSound ( a ) ; c && ( c . data . src = c . url , c . data . addEventListener ( "canplaythrough" , function ( ) { return b . reloadSoundComplete ( a ) } , ! 1 ) , c . data . load ( ) ) } , reloadSoundComplete : function ( a ) { var b = this . getSound ( a ) ; b && ( b . locked = ! 1 , this . onSoundUnlock . dispatch ( a ) ) } , updateSound : function ( a , b , c ) { var d = this . getSound ( a ) ; d && ( d [ b ] = c ) } , decodedSound : function ( a , b ) { var c = this . getSound ( a ) ; c . data = b , c . decoded = ! 0 , c . isDecoding = ! 1 } , isSoundDecoded : function ( a ) { var b = this . getItem ( a , c . Cache . SOUND , "isSoundDecoded" ) ; if ( b ) return b . decoded } , isSoundReady : function ( a ) { var b = this . getItem ( a , c . Cache . SOUND , "isSoundDecoded" ) ; if ( b ) return b . decoded && ! this . game . sound . touchLocked } , checkKey : function ( a , b ) { return ! ! this . _cacheMap [ a ] [ b ] } , checkURL : function ( a ) { return ! ! this . _urlMap [ this . _resolveURL ( a ) ] } , checkCanvasKey : function ( a ) { return this . checkKey ( c . Cache . CANVAS , a ) } , checkImageKey : function ( a ) { return this . checkKey ( c . Cache . IMAGE , a ) } , checkTextureKey : function ( a ) { return this . checkKey ( c . Cache . TEXTURE , a ) } , checkSoundKey : function ( a ) { return this . checkKey ( c . Cache . SOUND , a ) } , checkTextKey : function ( a ) { return this . checkKey ( c . Cache . TEXT , a ) } , checkPhysicsKey : function ( a ) { return this . checkKey ( c . Cache . PHYSICS , a ) } , checkTilemapKey : function ( a ) { return this . checkKey ( c . Cache . TILEMAP , a ) } , checkBinaryKey : function ( a ) { return this . checkKey ( c . Cache . BINARY , a ) } , checkBitmapDataKey : function ( a ) { return this . checkKey ( c . Cache . BITMAPDATA , a ) } , checkBitmapFontKey : function ( a ) { return this . checkKey ( c . Cache . BITMAPFONT , a ) } , checkJSONKey : function ( a ) { return this . checkKey ( c . Cache . JSON , a ) } , checkXMLKey : function ( a ) { return this . checkKey ( c . Cache . XML , a ) } , checkVideoKey : function ( a ) { return this . checkKey ( c . Cache . VIDEO , a ) } , checkShaderKey : function ( a ) { return this . checkKey ( c . Cache . SHADER , a ) } , checkRenderTextureKey : function ( a ) { return this . checkKey ( c . Cache . RENDER _TEXTURE , a ) } , getItem : function ( a , b , c , d ) { return this . checkKey ( b , a ) ? void 0 === d ? this . _cacheMap [ b ] [ a ] : this . _cacheMap [ b ] [ a ] [ d ] : ( c && console . warn ( "Phaser.Cache." + c + ': Key "' + a + '" not found in Cache.' ) , null ) } , getCanvas : function ( a ) { return this . getItem ( a , c . Cache . CANVAS , "getCanvas" , "canvas" ) } , getImage : function ( a , b ) { void 0 !== a && null !== a || ( a = "__default" ) , void 0 === b && ( b = ! 1 ) ; var d = this . getItem ( a , c . Cache . IMAGE , "getImage" ) ; return null === d && ( d = this . getItem ( "__missing" , c . Cache . IMAGE , "getImage" ) ) , b ? d : d . data } , getTextureFrame : function ( a ) { return this . getItem ( a , c . Cache . TEXTURE , "getTextureFrame" , "frame" ) } , getSound : function ( a ) { return this . getItem ( a , c . Cache . SOUND , "getSound" ) } , getSoundData : function ( a ) { return this . getItem ( a , c . Cache . SOUND , "getSoundData" , "data" ) } , getText : function ( a ) { return this . getItem ( a , c . Cache . TEXT , "getText" , "data" ) } , getPhysicsData : function ( a , b , d ) { var e = this . getItem ( a , c . Cache . PHYSICS , "getPhysicsData" , "data" ) ; if ( null === e || void 0 === b || null === b ) return e ; if ( e [ b ] ) { var f = e [ b ] ; if ( ! f || ! d ) return f ; for ( var g in f ) if ( g = f [ g ] , g . fixtureKey === d ) return g ; console . warn ( 'Phaser.Cache.getPhysicsData: Could not find given fixtureKey: "' + d + " in " + a + '"' ) } else console . warn ( 'Phaser.Cache.getPhysicsData: Invalid key/object: "' + a + " / " + b + '"' ) ; return null } , getTilemapData : function ( a ) { return this . getItem ( a , c . Cache . TILEMAP , "getTilemapData" ) } , getBinary : function ( a ) { return this . getItem ( a , c . Cache . BINARY , "getBinary" ) } , getBitmapData : function ( a ) { return this . getItem ( a , c . Cache . BITMAPDATA , "getBitmapData" , "data" ) } , getBitmapFont : function ( a ) { return this . getItem ( a , c . Cache . BITMAPFONT , "getBitmapFont" ) } , getJSON : function ( a , b ) { var d = this . getItem ( a , c . Cache . JSON , "getJSON" , "data" ) ; return d ? b ? c . Utils . extend ( ! 0 , Array . isArray ( d ) ? [ ] : { } , d ) : d : null } , getXML : function ( a ) { return this . getItem ( a , c . Cache . XML , "getXML" , "data" ) } , getVideo : function ( a ) { return this . getItem ( a , c . Cache . VIDEO , "getVideo" ) } , getShader : function ( a ) { return this . getItem ( a , c . Cache . SHADER , "getShader" , "data" ) } , getRenderTexture : function ( a ) { return this . getItem ( a , c . Cache . RENDER _TEXTURE , "getRenderTexture" ) } , getBaseTexture : function ( a , b ) { return void 0 === b && ( b = c . Cache . IMAGE ) , this . getItem ( a , b , "getBaseTexture" , "base" ) } , getFrame : function ( a , b ) { return void 0 === b && ( b = c . Cache . IMAGE ) , this . getItem ( a , b , "getFrame" , "frame" ) } , getFrameCount : function
fileFormat : "DDS" , compressionAlgorithm : "S3TC" , size : c [ 1 ] , flags : c [ 2 ] , height : c [ 3 ] , width : c [ 4 ] , pitch : c [ 5 ] , depth : c [ 6 ] , mipmapCount : c [ 7 ] , formatSize : c [ 19 ] , formatFlag : c [ 19 ] , formatFourCC : [ String . fromCharCode ( b [ 84 ] ) , String . fromCharCode ( b [ 85 ] ) , String . fromCharCode ( b [ 86 ] ) , String . fromCharCode ( b [ 87 ] ) ] . join ( "" ) , formatBitCount : c [ 21 ] , formatRBitMask : c [ 22 ] , formatGBitMask : c [ 23 ] , formatBBitMask : c [ 24 ] , formatABitMask : c [ 25 ] , caps1 : c [ 26 ] , caps2 : c [ 27 ] , caps3 : c [ 28 ] , caps4 : c [ 29 ] , reserved2 : c [ 30 ] , DXGIFormat : null , resourceDimension : null , miscFlag : null , arraySize : null , textureData : b . subarray ( c [ 1 ] + 4 , b . byteLength ) } , "DX10" === d . formatFourCC && ( d . DXGIFormat = c [ 31 ] , d . resourceDimension = c [ 32 ] , d . miscFlag = c [ 33 ] , d . arraySize = c [ 34 ] , d . miscFlag = c [ 35 ] ) ) , d } , ktx : function ( a ) { var b = new Uint8Array ( a ) , c = new Uint32Array ( a ) , d = null , e = 16 + c [ 15 ] / 4 | 0 , f = c [ e ] , g = c [ 7 ] , h = 0 ; if ( 171 === b [ 0 ] && 75 === b [ 1 ] && 84 === b [ 2 ] && 88 === b [ 3 ] && 32 === b [ 4 ] && 49 === b [ 5 ] && 49 === b [ 6 ] && 187 === b [ 7 ] && 13 === b [ 8 ] && 10 === b [ 9 ] && 26 === b [ 10 ] && 10 === b [ 11 ] && [ 36196 , 35840 , 35841 , 35842 , 35843 , 33776 , 33777 , 33778 , 33779 ] . indexOf ( g ) >= 0 ) { switch ( g ) { case 36196 : h = "ETC1" ; break ; case 35840 : case 35841 : case 35842 : case 35843 : h = "PVRTC" ; break ; case 33776 : case 33777 : case 33778 : case 33779 : h = "S3TC" } d = { complete : ! 0 , fileFormat : "KTX" , compressionAlgorithm : h , endianness : c [ 3 ] , glType : c [ 4 ] , glTypeSize : c [ 5 ] , glFormat : c [ 6 ] , glInternalFormat : c [ 7 ] , glBaseInternalFormat : c [ 8 ] , width : c [ 9 ] , height : c [ 10 ] , pixelDepth : c [ 11 ] , numberOfArrayElements : c [ 12 ] , numberOfFaces : c [ 13 ] , numberOfMipmapLevels : c [ 14 ] , bytesOfKeyValueData : c [ 15 ] , keyAndValueByteSize : c [ 16 ] , imageSize : f , textureData : b . subarray ( 4 * ( e + 1 ) , f + 100 ) } } return d } , pkm : function ( a ) { var b = new Uint8Array ( a ) , c = null ; return 80 === b [ 0 ] && 75 === b [ 1 ] && 77 === b [ 2 ] && 32 === b [ 3 ] && ( c = { complete : ! 0 , fileFormat : "PKM" , compressionAlgorithm : "ETC1" , format : 65535 & ( b [ 6 ] << 8 | b [ 7 ] ) , width : 65535 & ( b [ 8 ] << 8 | b [ 9 ] ) , height : 65535 & ( b [ 10 ] << 8 | b [ 11 ] ) , originalWidth : 65535 & ( b [ 12 ] << 8 | b [ 13 ] ) , originalHeight : 65535 & ( b [ 14 ] << 8 | b [ 15 ] ) , textureData : b . subarray ( 16 , b . length ) } ) , c } } , c . AudioSprite = function ( a , b ) { this . game = a , this . key = b , this . config = this . game . cache . getJSON ( b + "-audioatlas" ) , this . autoplayKey = null , this . autoplay = ! 1 , this . sounds = { } ; for ( var c in this . config . spritemap ) { var d = this . config . spritemap [ c ] , e = this . game . add . sound ( this . key ) ; e . addMarker ( c , d . start , d . end - d . start , null , d . loop ) , this . sounds [ c ] = e } this . config . autoplay && ( this . autoplayKey = this . config . autoplay , this . play ( this . autoplayKey ) , this . autoplay = this . sounds [ this . autoplayKey ] ) } , c . AudioSprite . prototype = { play : function ( a , b ) { return void 0 === b && ( b = 1 ) , this . sounds [ a ] . play ( a , null , b ) } , stop : function ( a ) { if ( a ) this . sounds [ a ] . stop ( ) ; else for ( var b in this . sounds ) this . sounds [ b ] . stop ( ) } , get : function ( a ) { return this . sounds [ a ] } } , c . AudioSprite . prototype . constructor = c . AudioSprite , c . Sound = function ( a , b , d , e , f ) { void 0 === d && ( d = 1 ) , void 0 === e && ( e = ! 1 ) , void 0 === f && ( f = a . sound . connectToMaster ) , this . game = a , this . name = b , this . key = b , this . loop = e , this . markers = { } , this . context = null , this . autoplay = ! 1 , this . totalDuration = 0 , this . startTime = 0 , this . currentTime = 0 , this . duration = 0 , this . durationMS = 0 , this . position = 0 , this . stopTime = 0 , this . paused = ! 1 , this . pausedPosition = 0 , this . pausedTime = 0 , this . isPlaying = ! 1 , this . currentMarker = "" , this . fadeTween = null , this . pendingPlayback = ! 1 , this . override = ! 1 , this . allowMultiple = ! 1 , this . usingWebAudio = this . game . sound . usingWebAudio , this . usingAudioTag = this . game . sound . usingAudioTag , this . externalNode = null , this . masterGainNode = null , this . gainNode = null , this . _sound = null , this . usingWebAudio ? ( this . context = this . game . sound . context , this . masterGainNode = this . game . sound . masterGain , void 0 === this . context . createGain ? this . gainNode = this . context . createGainNode ( ) : this . gainNode = this . context . createGain ( ) , this . gainNode . gain . value = d * this . game . sound . volume , f && this . gainNode . connect ( this . masterGainNode ) ) : this . usingAudioTag && ( this . game . cache . getSound ( b ) && this . game . cache . isSoundReady ( b ) ? ( this . _sound = this . game . cache . getSoundData ( b ) , this . totalDuration = 0 , this . _sound . duration && ( this . totalDuration = this . _sound . duration ) ) : this . game . cache . onSoundUnlock . add ( this . soundHasUnlocked , this ) ) , this . onDecoded = new c . Signal , this . onPlay = new c . Signal , this . onPause = new c . Signal , this . onResume = new c . Signal , this . onLoop = new c . Signal , this . onStop = new c . Signal
this . maxHeight && ( this . height = Math . min ( this . height , this . maxHeight ) ) ) } , createFullScreenTarget : function ( ) { var a = document . createElement ( "div" ) ; return a . style . margin = "0" , a . style . padding = "0" , a . style . background = "#000" , a } , startFullScreen : function ( a , b ) { if ( this . isFullScreen ) return ! 1 ; if ( ! this . compatibility . supportsFullScreen ) { var d = this ; return void setTimeout ( function ( ) { d . fullScreenError ( ) } , 10 ) } if ( "when-not-mouse" === this . compatibility . clickTrampoline ) { var e = this . game . input ; if ( e . activePointer && e . activePointer !== e . mousePointer && ( b || b !== ! 1 ) ) return void e . activePointer . addClickTrampoline ( "startFullScreen" , this . startFullScreen , this , [ a , ! 1 ] ) } void 0 !== a && this . game . renderType === c . CANVAS && ( this . game . stage . smoothed = a ) ; var f = this . fullScreenTarget ; f || ( this . cleanupCreatedTarget ( ) , this . _createdFullScreenTarget = this . createFullScreenTarget ( ) , f = this . _createdFullScreenTarget ) ; var g = { targetElement : f } ; if ( this . hasPhaserSetFullScreen = ! 0 , this . onFullScreenInit . dispatch ( this , g ) , this . _createdFullScreenTarget ) { var h = this . game . canvas , i = h . parentNode ; i . insertBefore ( f , h ) , f . appendChild ( h ) } return this . game . device . fullscreenKeyboard ? f [ this . game . device . requestFullscreen ] ( Element . ALLOW _KEYBOARD _INPUT ) : f [ this . game . device . requestFullscreen ] ( ) , ! 0 } , stopFullScreen : function ( ) { return ! ( ! this . isFullScreen || ! this . compatibility . supportsFullScreen ) && ( this . hasPhaserSetFullScreen = ! 1 , document [ this . game . device . cancelFullscreen ] ( ) , ! 0 ) } , cleanupCreatedTarget : function ( ) { var a = this . _createdFullScreenTarget ; if ( a && a . parentNode ) { var b = a . parentNode ; b . insertBefore ( this . game . canvas , a ) , b . removeChild ( a ) } this . _createdFullScreenTarget = null } , prepScreenMode : function ( a ) { var b = ! ! this . _createdFullScreenTarget , d = this . _createdFullScreenTarget || this . fullScreenTarget ; a ? ( b || this . fullScreenScaleMode === c . ScaleManager . EXACT _FIT ) && d !== this . game . canvas && ( this . _fullScreenRestore = { targetWidth : d . style . width , targetHeight : d . style . height } , d . style . width = "100%" , d . style . height = "100%" ) : ( this . _fullScreenRestore && ( d . style . width = this . _fullScreenRestore . targetWidth , d . style . height = this . _fullScreenRestore . targetHeight , this . _fullScreenRestore = null ) , this . updateDimensions ( this . _gameSize . width , this . _gameSize . height , ! 0 ) , this . resetCanvas ( ) ) } , fullScreenChange : function ( a ) { this . event = a , this . isFullScreen ? ( this . prepScreenMode ( ! 0 ) , this . updateLayout ( ) , this . queueUpdate ( ! 0 ) ) : ( this . prepScreenMode ( ! 1 ) , this . cleanupCreatedTarget ( ) , this . updateLayout ( ) , this . queueUpdate ( ! 0 ) ) , this . onFullScreenChange . dispatch ( this , this . width , this . height ) } , fullScreenError : function ( a ) { this . event = a , this . cleanupCreatedTarget ( ) , console . warn ( "Phaser.ScaleManager: requestFullscreen failed or device does not support the Fullscreen API" ) , this . onFullScreenError . dispatch ( this ) } , scaleSprite : function ( a , b , c , d ) { if ( void 0 === b && ( b = this . width ) , void 0 === c && ( c = this . height ) , void 0 === d && ( d = ! 1 ) , ! a || ! a . scale ) return a ; if ( a . scale . x = 1 , a . scale . y = 1 , a . width <= 0 || a . height <= 0 || b <= 0 || c <= 0 ) return a ; var e = b , f = a . height * b / a . width , g = a . width * c / a . height , h = c , i = g > b ; return i = i ? d : ! d , i ? ( a . width = Math . floor ( e ) , a . height = Math . floor ( f ) ) : ( a . width = Math . floor ( g ) , a . height = Math . floor ( h ) ) , a } , destroy : function ( ) { this . game . onResume . remove ( this . _gameResumed , this ) , window . removeEventListener ( "orientationchange" , this . _orientationChange , ! 1 ) , window . removeEventListener ( "resize" , this . _windowResize , ! 1 ) , this . compatibility . supportsFullScreen && ( document . removeEventListener ( "webkitfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "mozfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "MSFullscreenChange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "fullscreenchange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "webkitfullscreenerror" , this . _fullScreenError , ! 1 ) , document . removeEventListener ( "mozfullscreenerror" , this . _fullScreenError , ! 1 ) , document . removeEventListener ( "MSFullscreenError" , this . _fullScreenError , ! 1 ) , document . removeEventListener ( "fullscreenerror" , this . _fullScreenError , ! 1 ) ) } } , c . ScaleManager . prototype . constructor = c . ScaleManager , Object . defineProperty ( c . ScaleManager . prototype , "boundingParent" , { get : function ( ) { if ( this . parentIsWindow || this . isFullScreen && this . hasPhaserSet
switch ( i % 6 ) { case 0 : f = d , g = m , h = k ; break ; case 1 : f = l , g = d , h = k ; break ; case 2 : f = k , g = d , h = m ; break ; case 3 : f = k , g = l , h = d ; break ; case 4 : f = m , g = k , h = d ; break ; case 5 : f = d , g = k , h = l } return e . r = Math . floor ( 255 * f ) , e . g = Math . floor ( 255 * g ) , e . b = Math . floor ( 255 * h ) , c . Color . updateColor ( e ) , e } , hueToColor : function ( a , b , c ) { return c < 0 && ( c += 1 ) , c > 1 && ( c -= 1 ) , c < 1 / 6 ? a + 6 * ( b - a ) * c : c < . 5 ? b : c < 2 / 3 ? a + ( b - a ) * ( 2 / 3 - c ) * 6 : a } , createColor : function ( a , b , d , e , f , g , h , i ) { var j = { r : a || 0 , g : b || 0 , b : d || 0 , a : e || 1 , h : f || 0 , s : g || 0 , l : h || 0 , v : i || 0 , color : 0 , color32 : 0 , rgba : "" } ; return c . Color . updateColor ( j ) } , updateColor : function ( a ) { return a . rgba = "rgba(" + a . r . toString ( ) + "," + a . g . toString ( ) + "," + a . b . toString ( ) + "," + a . a . toString ( ) + ")" , a . color = c . Color . getColor ( a . r , a . g , a . b ) , a . color32 = c . Color . getColor32 ( 255 * a . a , a . r , a . g , a . b ) , a } , getColor32 : function ( a , b , c , d ) { return a << 24 | b << 16 | c << 8 | d } , getColor : function ( a , b , c ) { return a << 16 | b << 8 | c } , RGBtoString : function ( a , b , d , e , f ) { return void 0 === e && ( e = 255 ) , void 0 === f && ( f = "#" ) , "#" === f ? "#" + ( ( 1 << 24 ) + ( a << 16 ) + ( b << 8 ) + d ) . toString ( 16 ) . slice ( 1 ) : "0x" + c . Color . componentToHex ( e ) + c . Color . componentToHex ( a ) + c . Color . componentToHex ( b ) + c . Color . componentToHex ( d ) } , hexToRGB : function ( a ) { var b = c . Color . hexToColor ( a ) ; if ( b ) return c . Color . getColor32 ( b . a , b . r , b . g , b . b ) } , hexToColor : function ( a , b ) { a = a . replace ( /^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i , function ( a , b , c , d ) { return b + b + c + c + d + d } ) ; var d = /^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i . exec ( a ) ; if ( d ) { var e = parseInt ( d [ 1 ] , 16 ) , f = parseInt ( d [ 2 ] , 16 ) , g = parseInt ( d [ 3 ] , 16 ) ; b ? ( b . r = e , b . g = f , b . b = g ) : b = c . Color . createColor ( e , f , g ) } return b } , webToColor : function ( a , b ) { b || ( b = c . Color . createColor ( ) ) ; var d = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/ . exec ( a ) ; return d && ( b . r = parseInt ( d [ 1 ] , 10 ) , b . g = parseInt ( d [ 2 ] , 10 ) , b . b = parseInt ( d [ 3 ] , 10 ) , b . a = void 0 !== d [ 4 ] ? parseFloat ( d [ 4 ] ) : 1 , c . Color . updateColor ( b ) ) , b } , valueToColor : function ( a , b ) { if ( b || ( b = c . Color . createColor ( ) ) , "string" == typeof a ) return 0 === a . indexOf ( "rgb" ) ? c . Color . webToColor ( a , b ) : ( b . a = 1 , c . Color . hexToColor ( a , b ) ) ; if ( "number" == typeof a ) { var d = c . Color . getRGB ( a ) ; return b . r = d . r , b . g = d . g , b . b = d . b , b . a = d . a / 255 , b } return b } , componentToHex : function ( a ) { var b = a . toString ( 16 ) ; return 1 === b . length ? "0" + b : b } , HSVColorWheel : function ( a , b ) { void 0 === a && ( a = 1 ) , void 0 === b && ( b = 1 ) ; for ( var d = [ ] , e = 0 ; e <= 359 ; e ++ ) d . push ( c . Color . HSVtoRGB ( e / 359 , a , b ) ) ; return d } , HSLColorWheel : function ( a , b ) { void 0 === a && ( a = . 5 ) , void 0 === b && ( b = . 5 ) ; for ( var d = [ ] , e = 0 ; e <= 359 ; e ++ ) d . push ( c . Color . HSLtoRGB ( e / 359 , a , b ) ) ; return d } , interpolateColor : function ( a , b , d , e , f ) { void 0 === f && ( f = 255 ) ; var g = c . Color . getRGB ( a ) , h = c . Color . getRGB ( b ) , i = ( h . red - g . red ) * e / d + g . red , j = ( h . green - g . green ) * e / d + g . green , k = ( h . blue - g . blue ) * e / d + g . blue ; return c . Color . getColor32 ( f , i , j , k ) } , interpolateColorWithRGB : function ( a , b , d , e , f , g ) { var h = c . Color . getRGB ( a ) , i = ( b - h . red ) * g / f + h . red , j = ( d - h . green ) * g / f + h . green , k = ( e - h . blue ) * g / f + h . blue ; return c . Color . getColor ( i , j , k ) } , interpolateRGB : function ( a , b , d , e , f , g , h , i ) { var j = ( e - a ) * i / h + a , k = ( f - b ) * i / h + b , l = ( g - d ) * i / h + d ; return c . Color . getColor ( j , k , l ) } , getRandomColor : function ( a , b , d ) { if ( void 0 === a && ( a = 0 ) , void 0 === b && ( b = 255 ) , void 0 === d && ( d = 255 ) , b > 255 || a > b ) return c . Color . getColor ( 255 , 255 , 255 ) ; var e = a + Math . round ( Math . random ( ) * ( b - a ) ) , f = a + Math . round ( Math . random ( ) * ( b - a ) ) , g = a + Math . round ( Math . random ( ) * ( b - a ) ) ; return c . Color . getColor32 ( d , e , f , g ) } , getRGB : function ( a ) { return a > 16777215 ? { alpha : a >>> 24 , red : a >> 16 & 255 , green : a >> 8 & 255 , blue : 255 & a , a : a >>> 24 , r : a >> 16 & 255 , g : a >> 8 & 255 , b : 255 & a } : { alpha : 255 , red : a >> 16 & 255 , green : a >> 8 & 255 , blue : 255 & a , a : 255 , r : a >> 16 & 255 , g : a >> 8 & 255 , b : 255 & a } } , getWebRGB : function ( a ) { if ( "object" == typeof a ) return "rgba(" + a . r . toString ( ) + "," + a . g . toString ( ) + "," + a . b . toString ( ) + "," + ( a . a / 255 ) . toString ( ) + ")" ; var b = c . Color . getRGB ( a ) ; return "rgba(" + b . r . toString ( ) + "," + b . g . toString ( ) + "," + b . b . toString ( ) + "," + ( b . a / 255 ) . toString ( ) + ")" } , getAlpha : function ( a ) { return a >>> 24 } , getAlphaFloat : function ( a ) { return ( a >>> 24 ) / 255 } , getRed : function ( a ) { return a >> 16 & 255 } , getGreen : function ( a ) { return a >> 8 & 255 } , getBlue : function ( a ) { return 255 & a } , blendNormal : function ( a ) { return a } , blendLighten : function ( a , b ) { return b > a ? b : a } , blendDarken : function ( a , b ) { return b > a ? a : b } , blendMultiply : function ( a , b ) { return a * b / 255 } , blendAverage : function ( a , b ) { return ( a + b ) / 2 } , blendA
this . velocity . x *= d , this . blocked . right = ! 0 ) , a . y < b . y && c . up ? ( a . y = b . y , this . velocity . y *= e , this . blocked . up = ! 0 ) : this . bottom > b . bottom && c . down && ( a . y = b . bottom - this . height , this . velocity . y *= e , this . blocked . down = ! 0 ) ; return this . blocked . up || this . blocked . down || this . blocked . left || this . blocked . right } , moveFrom : function ( a , b , c ) { if ( void 0 === b && ( b = this . speed ) , 0 === b ) return ! 1 ; var d ; return void 0 === c ? ( d = this . angle , c = this . game . math . radToDeg ( d ) ) : d = this . game . math . degToRad ( c ) , this . moveTimer = 0 , this . moveDuration = a , 0 === c || 180 === c ? this . velocity . set ( Math . cos ( d ) * b , 0 ) : 90 === c || 270 === c ? this . velocity . set ( 0 , Math . sin ( d ) * b ) : this . velocity . set ( Math . cos ( d ) * b , Math . sin ( d ) * b ) , this . isMoving = ! 0 , ! 0 } , moveTo : function ( a , b , d ) { var e = b / ( a / 1e3 ) ; if ( 0 === e ) return ! 1 ; var f ; return void 0 === d ? ( f = this . angle , d = this . game . math . radToDeg ( f ) ) : f = this . game . math . degToRad ( d ) , b = Math . abs ( b ) , this . moveDuration = 0 , this . moveDistance = b , null === this . moveTarget && ( this . moveTarget = new c . Line , this . moveEnd = new c . Point ) , this . moveTarget . fromAngle ( this . x , this . y , f , b ) , this . moveEnd . set ( this . moveTarget . end . x , this . moveTarget . end . y ) , this . moveTarget . setTo ( this . x , this . y , this . x , this . y ) , 0 === d || 180 === d ? this . velocity . set ( Math . cos ( f ) * e , 0 ) : 90 === d || 270 === d ? this . velocity . set ( 0 , Math . sin ( f ) * e ) : this . velocity . set ( Math . cos ( f ) * e , Math . sin ( f ) * e ) , this . isMoving = ! 0 , ! 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 ) , this . isCircle = ! 1 , this . radius = 0 } , setCircle : function ( a , b , c ) { void 0 === b && ( b = this . offset . x ) , void 0 === c && ( c = this . offset . y ) , a > 0 ? ( this . isCircle = ! 0 , this . radius = a , this . sourceWidth = 2 * a , this . sourceHeight = 2 * a , 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 ( b , c ) , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) ) : this . isCircle = ! 1 } , 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 . sprite . width + this . sprite . scale . x * this . offset . x , this . position . x -= this . sprite . scale . x < 0 ? this . width : 0 , this . position . y = b - this . sprite . anchor . y * this . sprite . height + this . sprite . scale . y * this . offset . y , this . position . y -= this . sprite . scale . y < 0 ? this . height : 0 , 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 ) } , getBounds : function ( a ) { return this . isCircle ? ( a . x = this . center . x - this . radius , a . y = this . center . y - this . radius , a . right = this . center . x + this . radius , a . bottom = this . center . y + this . radius ) : ( a . x = this . x , a . y = this . y , a . right = this . right , a . bottom = this . bottom ) , a } , hitTest : function ( a , b ) { return this . isCircle ? c . Circle . contains ( this , a , b ) : c . Rectangle . contains ( this , a , b ) } , onFloor : function ( ) { return this . blocked . down } , onCeiling : function ( ) { return this . blocked . up } , 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 . rotation - this . preRotation } , destroy : function ( ) { this . sprite . parent && this . sprite . parent instanceof c . Group && this . sprite . parent . removeFromHash ( this . sprite ) , this . sprite . body = null , this . sprite = null } } , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "left" , { get : function ( ) { return this . position . x } } ) , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "right" , { get : function ( ) { return this . position . x + this . width } } ) , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "top" , { get : function ( ) { return this
this . data . velocity [ 0 ] = 0 , this . data . velocity [ 1 ] = 0 } , setZeroDamping : function ( ) { this . data . damping = 0 , this . data . angularDamping = 0 } , toLocalFrame : function ( a , b ) { return this . data . toLocalFrame ( a , b ) } , toWorldFrame : function ( a , b ) { return this . data . toWorldFrame ( a , b ) } , rotateLeft : function ( a ) { this . data . angularVelocity = this . world . pxm ( - a ) } , rotateRight : function ( a ) { this . data . angularVelocity = this . world . pxm ( a ) } , moveForward : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . velocity [ 0 ] = b * Math . cos ( c ) , this . data . velocity [ 1 ] = b * Math . sin ( c ) } , moveBackward : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . velocity [ 0 ] = - ( b * Math . cos ( c ) ) , this . data . velocity [ 1 ] = - ( b * Math . sin ( c ) ) } , thrust : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . force [ 0 ] += b * Math . cos ( c ) , this . data . force [ 1 ] += b * Math . sin ( c ) } , thrustLeft : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle ; this . data . force [ 0 ] += b * Math . cos ( c ) , this . data . force [ 1 ] += b * Math . sin ( c ) } , thrustRight : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle ; this . data . force [ 0 ] -= b * Math . cos ( c ) , this . data . force [ 1 ] -= b * Math . sin ( c ) } , reverse : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . force [ 0 ] -= b * Math . cos ( c ) , this . data . force [ 1 ] -= b * Math . sin ( c ) } , moveLeft : function ( a ) { this . data . velocity [ 0 ] = this . world . pxmi ( - a ) } , moveRight : function ( a ) { this . data . velocity [ 0 ] = this . world . pxmi ( a ) } , moveUp : function ( a ) { this . data . velocity [ 1 ] = this . world . pxmi ( - a ) } , moveDown : function ( a ) { this . data . velocity [ 1 ] = this . world . pxmi ( a ) } , preUpdate : function ( ) { this . dirty = ! 0 , this . removeNextStep && ( this . removeFromWorld ( ) , this . removeNextStep = ! 1 ) } , postUpdate : function ( ) { this . sprite . x = this . world . mpxi ( this . data . position [ 0 ] ) + this . offset . x , this . sprite . y = this . world . mpxi ( this . data . position [ 1 ] ) + this . offset . y , this . fixedRotation || ( this . sprite . rotation = this . data . angle ) , this . debugBody && this . debugBody . updateSpriteTransform ( ) , this . dirty = ! 1 } , reset : function ( a , b , c , d ) { void 0 === c && ( c = ! 1 ) , void 0 === d && ( d = ! 1 ) , this . setZeroForce ( ) , this . setZeroVelocity ( ) , this . setZeroRotation ( ) , c && this . setZeroDamping ( ) , d && ( this . mass = 1 ) , this . x = a , this . y = b } , addToWorld : function ( ) { if ( this . game . physics . p2 . _toRemove ) for ( var a = 0 ; a < this . game . physics . p2 . _toRemove . length ; a ++ ) this . game . physics . p2 . _toRemove [ a ] === this && this . game . physics . p2 . _toRemove . splice ( a , 1 ) ; this . data . world !== this . game . physics . p2 . world && this . game . physics . p2 . addBody ( this ) } , removeFromWorld : function ( ) { this . data . world === this . game . physics . p2 . world && this . game . physics . p2 . removeBodyNextStep ( this ) } , destroy : function ( ) { this . removeFromWorld ( ) , this . clearShapes ( ) , this . _bodyCallbacks = { } , this . _bodyCallbackContext = { } , this . _groupCallbacks = { } , this . _groupCallbackContext = { } , this . debugBody && this . debugBody . destroy ( ! 0 , ! 0 ) , this . debugBody = null , this . sprite && ( this . sprite . body = null , this . sprite = null ) } , clearShapes : function ( ) { for ( var a = this . data . shapes . length ; a -- ; ) this . data . removeShape ( this . data . shapes [ a ] ) ; this . shapeChanged ( ) } , addShape : function ( a , b , c , d ) { return void 0 === b && ( b = 0 ) , void 0 === c && ( c = 0 ) , void 0 === d && ( d = 0 ) , this . data . addShape ( a , [ this . world . pxmi ( b ) , this . world . pxmi ( c ) ] , d ) , this . shapeChanged ( ) , a } , addCircle : function ( a , b , c , d ) { var e = new p2 . Circle ( { radius : this . world . pxm ( a ) } ) ; return this . addShape ( e , b , c , d ) } , addRectangle : function ( a , b , c , d , e ) { var f = new p2 . Box ( { width : this . world . pxm ( a ) , height : this . world . pxm ( b ) } ) ; return this . addShape ( f , c , d , e ) } , addPlane : function ( a , b , c ) { var d = new p2 . Plane ; return this . addShape ( d , a , b , c ) } , addParticle : function ( a , b , c ) { var d = new p2 . Particle ; return this . addShape ( d , a , b , c ) } , addLine : function ( a , b , c , d ) { var e = new p2 . Line ( { length : this . world . pxm ( a ) } ) ; return this . addShape ( e , b , c , d ) } , addCapsule : function ( a , b , c , d , e ) { var f = new p2 . Capsule ( { length : this . world . pxm ( a ) , radius : this . world . pxm ( b ) } ) ; return this . addShape ( f , c , d , e ) } , addPolygon : function ( a , b ) { a = a || { } , Array . isArray ( b ) || ( b = Array . prototype . slice . call ( arguments , 1 ) ) ; var c = [ ] ; if ( 1 === b . length && Array . isArray ( b [ 0 ] ) ) c = b [ 0 ] . slice ( 0 ) ; else if ( Array . isArray ( b [ 0 ] ) ) c = b . slice ( ) ; else if ( "number" == typeof b [ 0 ] ) for ( var d = 0 , e = b . length ; d < e ; d += 2 ) c . push ( [ b [ d ] , b [ d + 1 ] ] ) ; var f = c . length - 1 ; c [ f ] [ 0 ] === c [ 0 ] [ 0 ] && c [ f ] [ 1 ] === c [ 0 ] [ 1 ] && c . pop ( ) ; for ( var g = 0 ; g < c . length ; g ++ ) c [ g ] [ 0 ] = this . wo
var f ; return a instanceof c . Tile ? ( f = a . index , this . hasTile ( b , d , e ) ? this . layers [ e ] . data [ d ] [ b ] . copy ( a ) : this . layers [ e ] . data [ d ] [ b ] = new c . Tile ( e , f , b , d , a . width , a . height ) ) : ( f = a , this . hasTile ( b , d , e ) ? this . layers [ e ] . data [ d ] [ b ] . index = f : this . layers [ e ] . data [ d ] [ b ] = new c . Tile ( this . layers [ e ] , f , b , d , this . tileWidth , this . tileHeight ) ) , this . collideIndexes . indexOf ( f ) > - 1 ? this . layers [ e ] . data [ d ] [ b ] . setCollision ( ! 0 , ! 0 , ! 0 , ! 0 ) : this . layers [ e ] . data [ d ] [ b ] . resetCollision ( ) , this . layers [ e ] . dirty = ! 0 , this . calculateFaces ( e ) , this . layers [ e ] . data [ d ] [ b ] } return null } , putTileWorldXY : function ( a , b , c , d , e , f ) { return f = this . getLayer ( f ) , b = this . game . math . snapToFloor ( b , d ) / d , c = this . game . math . snapToFloor ( c , e ) / e , this . putTile ( a , b , c , f ) } , searchTileIndex : function ( a , b , c , d ) { void 0 === b && ( b = 0 ) , void 0 === c && ( c = ! 1 ) , d = this . getLayer ( d ) ; var e = 0 ; if ( c ) { for ( var f = this . layers [ d ] . height - 1 ; f >= 0 ; f -- ) for ( var g = this . layers [ d ] . width - 1 ; g >= 0 ; g -- ) if ( this . layers [ d ] . data [ f ] [ g ] . index === a ) { if ( e === b ) return this . layers [ d ] . data [ f ] [ g ] ; e ++ } } else for ( var f = 0 ; f < this . layers [ d ] . height ; f ++ ) for ( var g = 0 ; g < this . layers [ d ] . width ; g ++ ) if ( this . layers [ d ] . data [ f ] [ g ] . index === a ) { if ( e === b ) return this . layers [ d ] . data [ f ] [ g ] ; e ++ } return null } , getTile : function ( a , b , c , d ) { return void 0 === d && ( d = ! 1 ) , c = this . getLayer ( c ) , a >= 0 && a < this . layers [ c ] . width && b >= 0 && b < this . layers [ c ] . height ? this . layers [ c ] . data [ b ] [ a ] . index === - 1 ? d ? this . layers [ c ] . data [ b ] [ a ] : null : this . layers [ c ] . data [ b ] [ a ] : null } , getTileWorldXY : function ( a , b , c , d , e , f ) { return void 0 === c && ( c = this . tileWidth ) , void 0 === d && ( d = this . tileHeight ) , e = this . getLayer ( e ) , a = this . game . math . snapToFloor ( a , c ) / c , b = this . game . math . snapToFloor ( b , d ) / d , this . getTile ( a , b , e , f ) } , copy : function ( a , b , c , d , e ) { if ( e = this . getLayer ( e ) , ! this . layers [ e ] ) return void ( this . _results . length = 0 ) ; void 0 === a && ( a = 0 ) , void 0 === b && ( b = 0 ) , void 0 === c && ( c = this . layers [ e ] . width ) , void 0 === d && ( d = this . layers [ e ] . height ) , a < 0 && ( a = 0 ) , b < 0 && ( b = 0 ) , c > this . layers [ e ] . width && ( c = this . layers [ e ] . width ) , d > this . layers [ e ] . height && ( d = this . layers [ e ] . height ) , this . _results . length = 0 , this . _results . push ( { x : a , y : b , width : c , height : d , layer : e } ) ; for ( var f = b ; f < b + d ; f ++ ) for ( var g = a ; g < a + c ; g ++ ) this . _results . push ( this . layers [ e ] . data [ f ] [ g ] ) ; return this . _results } , paste : function ( a , b , c , d ) { if ( void 0 === a && ( a = 0 ) , void 0 === b && ( b = 0 ) , d = this . getLayer ( d ) , c && ! ( c . length < 2 ) ) { for ( var e = a - c [ 1 ] . x , f = b - c [ 1 ] . y , g = 1 ; g < c . length ; g ++ ) this . layers [ d ] . data [ f + c [ g ] . y ] [ e + c [ g ] . x ] . copy ( c [ g ] ) ; this . layers [ d ] . dirty = ! 0 , this . calculateFaces ( d ) } } , swap : function ( a , b , c , d , e , f , g ) { g = this . getLayer ( g ) , this . copy ( c , d , e , f , g ) , this . _results . length < 2 || ( this . _tempA = a , this . _tempB = b , this . _results . forEach ( this . swapHandler , this ) , this . paste ( c , d , this . _results , g ) ) } , swapHandler : function ( a ) { a . index === this . _tempA ? a . index = this . _tempB : a . index === this . _tempB && ( a . index = this . _tempA ) } , forEach : function ( a , b , c , d , e , f , g ) { g = this . getLayer ( g ) , this . copy ( c , d , e , f , g ) , this . _results . length < 2 || ( this . _results . forEach ( a , b ) , this . paste ( c , d , this . _results , g ) ) } , replace : function ( a , b , c , d , e , f , g ) { if ( g = this . getLayer ( g ) , this . copy ( c , d , e , f , g ) , ! ( this . _results . length < 2 ) ) { for ( var h = 1 ; h < this . _results . length ; h ++ ) this . _results [ h ] . index === a && ( this . _results [ h ] . index = b ) ; this . paste ( c , d , this . _results , g ) } } , random : function ( a , b , c , d , e ) { if ( e = this . getLayer ( e ) , this . copy ( a , b , c , d , e ) , ! ( this . _results . length < 2 ) ) { for ( var f = [ ] , g = 1 ; g < this . _results . length ; g ++ ) if ( this . _results [ g ] . index ) { var h = this . _results [ g ] . index ; f . indexOf ( h ) === - 1 && f . push ( h ) } for ( var i = 1 ; i < this . _results . length ; i ++ ) this . _results [ i ] . index = this . game . rnd . pick ( f ) ; this . paste ( a , b , this . _results , e ) } } , shuffle : function ( a , b , d , e , f ) { if ( f = this . getLayer ( f ) , this . copy ( a , b , d , e , f ) , ! ( this . _results . length < 2 ) ) { for ( var g = [ ] , h = 1 ; h < this . _results . length ; h ++ ) this . _results [ h ] . index && g . push ( this . _results [ h ] . index ) ; c . ArrayUtils . shuffle ( g ) ; for ( var i = 1 ; i < this . _results . length ; i ++ ) this . _results [ i ] . index = g [ i - 1 ] ; this . paste ( a , b , this . _results , f ) } } , fill : function ( a , b , c , d , e , f ) { if ( f = this . getLayer ( f ) , this . copy ( b , c , d , e , f ) , ! ( this . _results . length < 2 ) ) { for ( var g = 1 ; g < this . _results . length ; g ++ ) this . _results [ g ] . index = a ; this . paste ( b , c , this . _results , f ) } } , removeAllLayers : function ( ) { this . layers . length = 0 , this . currentLayer = 0 } , dump : function ( ) { for ( var a = "" , b = [ "" ] , c = 0 ; c < this . layers [ this . currentLayer ] . height ; c ++ ) { for ( var
x : b , y : e } , f , g ) ; j . yoyo ( h ) , this . scaleData = j . generateData ( 60 ) , this . scaleData . reverse ( ) , this . autoScale = ! 0 } return this } , c . Particles . Arcade . Emitter . prototype . at = function ( a ) { return a . center ? ( this . emitX = a . center . x , this . emitY = a . center . y ) : ( this . emitX = a . world . x + a . anchor . x * a . width , this . emitY = a . world . y + a . anchor . y * a . height ) , this } , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "width" , { get : function ( ) { return this . area . width } , set : function ( a ) { this . area . width = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "height" , { get : function ( ) { return this . area . height } , set : function ( a ) { this . area . height = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "x" , { get : function ( ) { return this . emitX } , set : function ( a ) { this . emitX = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "y" , { get : function ( ) { return this . emitY } , set : function ( a ) { this . emitY = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "left" , { get : function ( ) { return Math . floor ( this . x - this . area . width / 2 ) } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "right" , { get : function ( ) { return Math . floor ( this . x + this . area . width / 2 ) } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "top" , { get : function ( ) { return Math . floor ( this . y - this . area . height / 2 ) } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "bottom" , { get : function ( ) { return Math . floor ( this . y + this . area . height / 2 ) } } ) , c . Weapon = function ( a , b ) { c . Plugin . call ( this , a , b ) , this . bullets = null , this . autoExpandBulletsGroup = ! 1 , this . autofire = ! 1 , this . shots = 0 , this . fireLimit = 0 , this . fireRate = 100 , this . fireRateVariance = 0 , this . fireFrom = new c . Rectangle ( 0 , 0 , 1 , 1 ) , this . fireAngle = c . ANGLE _UP , this . bulletInheritSpriteSpeed = ! 1 , this . bulletAnimation = "" , this . bulletFrameRandom = ! 1 , this . bulletFrameCycle = ! 1 , this . bulletWorldWrap = ! 1 , this . bulletWorldWrapPadding = 0 , this . bulletAngleOffset = 0 , this . bulletAngleVariance = 0 , this . bulletSpeed = 200 , this . bulletSpeedVariance = 0 , this . bulletLifespan = 0 , this . bulletKillDistance = 0 , this . bulletGravity = new c . Point ( 0 , 0 ) , this . bulletRotateToVelocity = ! 1 , this . bulletKey = "" , this . bulletFrame = "" , this . _bulletClass = c . Bullet , this . _bulletCollideWorldBounds = ! 1 , this . _bulletKillType = c . Weapon . KILL _WORLD _BOUNDS , this . _data = { customBody : ! 1 , width : 0 , height : 0 , offsetX : 0 , offsetY : 0 } , this . bounds = new c . Rectangle , this . bulletBounds = a . world . bounds , this . bulletFrames = [ ] , this . bulletFrameIndex = 0 , this . anims = { } , this . onFire = new c . Signal , this . onKill = new c . Signal , this . onFireLimit = new c . Signal , this . trackedSprite = null , this . trackedPointer = null , this . multiFire = ! 1 , this . _hasFired = ! 1 , this . trackRotation = ! 1 , this . trackOffset = new c . Point , this . _nextFire = 0 , this . _tempNextFire = 0 , this . _rotatedPoint = new c . Point } , c . Weapon . prototype = Object . create ( c . Plugin . prototype ) , c . Weapon . prototype . constructor = c . Weapon , c . Weapon . KILL _NEVER = 0 , c . Weapon . KILL _LIFESPAN = 1 , c . Weapon . KILL _DISTANCE = 2 , c . Weapon . KILL _WEAPON _BOUNDS = 3 , c . Weapon . KILL _CAMERA _BOUNDS = 4 , c . Weapon . KILL _WORLD _BOUNDS = 5 , c . Weapon . KILL _STATIC _BOUNDS = 6 , c . Weapon . prototype . createBullets = function ( a , b , d , e ) { return void 0 === a && ( a = 1 ) , void 0 === e && ( e = this . game . world ) , this . bullets || ( this . bullets = this . game . add . physicsGroup ( c . Physics . ARCADE , e ) , this . bullets . classType = this . _bulletClass ) , 0 !== a && ( a === - 1 && ( this . autoExpandBulletsGroup = ! 0 , a = 1 ) , this . bullets . createMultiple ( a , b , d ) , this . bullets . setAll ( "data.bulletManager" , this ) , this . bulletKey = b , this . bulletFrame = d ) , this } , c . Weapon . prototype . forEach = function ( a , b ) { return this . bullets . forEachExists ( a , b , arguments ) , this } , c . Weapon . prototype . pauseAll = function ( ) { return this . bullets . setAll ( "body.enable" , ! 1 ) , this } , c . Weapon . prototype . resumeAll = function ( ) { return this . bullets . setAll ( "body.enable" , ! 0 ) , this } , c . Weapon . prototype . killAll = function ( ) { return this . bullets . callAllExists ( "kill" , ! 0 ) , this . bullets . setAll ( "body.enable" , ! 0 ) , this } , c . Weapon . prototype . resetShots = function ( a ) { return this . shots = 0 , void 0 !== a && ( this . fireLimit = a ) , this } , c . Weapon . prototype . destroy = function ( ) { this . parent . remove ( this , ! 1 ) , this . bullets . destroy ( ) , this . game = null , this . parent = null , this . active = ! 1 , this . visible = ! 1 } , c . Weapon . prototype . update = function ( ) { this . _bulletKillType === c . Weapon . KILL _WEAPON _BOUNDS && ( this . trackedSprite ? ( this . track
2016-11-22 01:36:48 +00:00
//# sourceMappingURL=phaser-split.map