2016-09-21 22:22:08 +00:00
/* Phaser v3.0.0 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
2016-02-12 16:00:36 +00:00
2016-09-21 22:22:08 +00:00
( function ( ) { function a ( a , b ) { this . _scaleFactor = a , this . _deltaMode = b , this . originalEvent = null } var b = this , c = c || { VERSION : "3.0.0 b1" , 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 || { } } ; 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 ( "Uint32Array" ) , d ( "Int16Array" ) } 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 . isPlainObject ( e ) || ( f = Array . isArray ( e ) ) ) ? ( f ? ( f = ! 1 , g = d && Arr
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 ) { return void 0 === a && ( a = 16777215 ) , void 0 === b && ( b = 500 ) , void 0 === c && ( c = ! 1 ) , ! ( ! this . fx || ! c && this . _fxDuration > 0 ) && ( this . fx . clear ( ) , this . fx . beginFill ( a ) , 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 ) { return void 0 === a && ( a = 0 ) , void 0 === b && ( b = 500 ) , void 0 === c && ( c = ! 1 ) , ! ( ! this . fx || ! c && this . _fxDuration > 0 ) && ( this . fx . clear ( ) , this . fx . beginFill ( a ) , 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 , this . lerp . x ) ) , this . _edge = this . _targetPosition . y - this . view . y , this . _edge < this . deadzone . top ? this . view
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 . exists ) return this . renderOrderID = - 1 , ! 1 ; for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , c . Group . prototype . update = function ( ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . update ( ) } , c . Group . prototype . postUpdate = function ( ) { this . fixedToCamera && ( this . x = this . game . camera . view . x + this . cameraOffset . x , this . y = this . game . camera . view . y + this . cameraOffset . y ) ; for (
} } ) , 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 . mouseOverCallback && this . mouseOverCallback . call ( this . callbackContext , a ) } , onMouseWheel : function ( a ) { this . _wheelEvent && ( a = this . _wheelEvent . bindEvent ( a ) ) , this . event = a , this . capture && a . preventDefault ( ) , this . wheelDelta = c . Math . clamp ( - a . deltaY , - 1 , 1 ) , this . mouseWheelCallback && this . mouseWheelCallback . call ( this . callbackContext , a ) } , requestPointerLock : function ( ) { if ( this . game . device . pointerLock ) { var a = this . game . canvas ; a . requestPointerLock =
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 . globalToLocalX ( a . x ) + this . _dragPoint . x + this . dragOffset . x , d = this . globalToLocalY ( a . y ) + this . _dragPoint . y + this . dragOffset . y ; if ( this . sprite . fixedToCamera ) this . allowHorizontalDrag && ( this . sprite . cameraOffset . x = c ) , this . allowVerticalDrag && ( this . sprite . cameraOffset . y = d ) , this . boundsRect && this . checkBoundsRect ( ) , this . boundsSprite && this . checkBoundsSprite ( ) , this . snapOnDrag && ( this . sprite . cameraOffset . x = Math . round ( ( thi
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 . crop . x = f , this . texture . crop . y = g , this . texture . crop . width = h , this . texture . crop . height = i , this . texture . frame . width = Math . min ( h , this . cropRect . width ) , this . texture . frame . height = Math . min ( i , this . cropRect . height ) , this . texture . width = this . texture . frame . width , this . texture . height = this . texture . frame . height , this . texture . _updateUvs ( ) , 16777215 === this . tint || a === f && b === g && d === h && e === i || ( this . texture . requiresReTint = ! 0 ) } } } , c . Component . Delta = function ( ) { }
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 instanceof PIXI . 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 || a . texture instanceof PIXI . RenderTexture ? this . _image = a . texture . getCanvas ( ) : this . _image = a . texture . baseTexture . source , void 0 !== g && null !== g || ( g = a . x ) , void 0 !== h && null !== h || ( h = a . y ) , a . texture . trim && ( g += a . texture . trim . x - a . anchor . x * a . texture . trim . width , h += a . texture . trim . y - a . anchor . y * a . texture . trim . height ) , 16777215 !== a . tint && ( a . cachedTint !== a . tint && ( a . cachedTint = a . tint , a . tintedTexture = PIXI . CanvasTinter . getTintedTexture ( a , a . tint ) ) , this . _image = a . tintedTexture , this . _pos . set ( 0 ) ) ; else { if ( this . _pos . set ( 0 ) , this . _scale . set ( 1 ) , this . _anchor . set ( 0 ) , this . _rotate = 0 , this . _alpha . current = 1 , a instanceof c . BitmapData ) this . _image = a . canvas ; else if ( "string" == typeof a ) { if ( a = this . game . cache . getImage ( a ) , null === a ) return ; this . _image = a } this . _size . set ( this . _image . width , this . _image . height ) } if ( void 0 !== b && null !== b || ( b = 0 ) , void 0 !== d && null !== d || ( d = 0 ) , e && ( this . _size . x = e ) , f && ( this . _size . y = f ) , void 0 !== g && null !== g || ( g = b ) , void 0 !== h && null !== h || ( h = d ) , void 0 !== i && null !== i || ( i = this . _size . x ) , void 0 !== j && null !== j || ( j = this . _size . y ) , "number" == typeof k && ( this . _rotate = k ) , "number" == typeof l && ( this . _anchor . x = l ) , "number" == typeof m && ( this . _anchor . y = m ) , "number" == typeof n && ( this . _scale . x = n ) , "number" == typeof o && ( this . _scale . y = o ) , "number" == typeof p && ( this . _alpha . current = p ) , void 0 === q && ( q = null ) , void 0 === r && ( r = ! 1 ) , ! ( this . _alpha . current <= 0 || 0 === this . _scale . x || 0 === this . _scale . y || 0 === this . _size . x || 0 === this . _size . y ) ) { var s = this . context ; return this . _alpha . prev = s . globalAlpha , s . save ( ) , s . globalAlpha = this . _alpha . current , q && ( this . op = q ) , r && ( g |= 0 , h |= 0 ) , s . translate ( g , h ) , s . scale ( this . _scale . x , this . _scale . y ) , s . rotate ( this . _rotate ) , s . drawImage ( this . _image , this . _pos . x + b , this . _pos . y + d , this . _size . x , this . _size . y , - i * this . _anchor . x , - j * this . _anchor . y , i , j ) , s . restore ( ) , s . globalAlpha = this . _alpha . prev , this . dirty = ! 0 , this } } , copyTransform : function ( a , b , d ) { if ( void 0 === b &
c . mode === b && 1 !== b || ( c = PIXI . WebGLGraphics . graphicsDataPool . pop ( ) || new PIXI . WebGLGraphicsData ( a . gl ) , c . mode = b , a . data . push ( c ) ) ) : ( c = PIXI . WebGLGraphics . graphicsDataPool . pop ( ) || new PIXI . WebGLGraphicsData ( a . gl ) , c . mode = b , a . data . push ( c ) ) , c . dirty = ! 0 , c } , PIXI . WebGLGraphics . buildRectangle = function ( a , b ) { var c = a . shape , d = c . x , e = c . y , f = c . width , g = c . height ; if ( a . fill ) { var h = PIXI . hex2rgb ( a . fillColor ) , i = a . fillAlpha , j = h [ 0 ] * i , k = h [ 1 ] * i , l = h [ 2 ] * i , m = b . points , n = b . indices , o = m . length / 6 ; m . push ( d , e ) , m . push ( j , k , l , i ) , m . push ( d + f , e ) , m . push ( j , k , l , i ) , m . push ( d , e + g ) , m . push ( j , k , l , i ) , m . push ( d + f , e + g ) , m . push ( j , k , l , i ) , n . push ( o , o , o + 1 , o + 2 , o + 3 , o + 3 ) } if ( a . lineWidth ) { var p = a . points ; a . points = [ d , e , d + f , e , d + f , e + g , d , e + g , d , e ] , PIXI . WebGLGraphics . buildLine ( a , b ) , a . points = p } } , PIXI . WebGLGraphics . buildRoundedRectangle = function ( a , b ) { var c = a . shape , d = c . x , e = c . y , f = c . width , g = c . height , h = c . radius , i = [ ] ; if ( i . push ( d , e + h ) , i = i . concat ( PIXI . WebGLGraphics . quadraticBezierCurve ( d , e + g - h , d , e + g , d + h , e + g ) ) , i = i . concat ( PIXI . WebGLGraphics . quadraticBezierCurve ( d + f - h , e + g , d + f , e + g , d + f , e + g - h ) ) , i = i . concat ( PIXI . WebGLGraphics . quadraticBezierCurve ( d + f , e + h , d + f , e , d + f - h , e ) ) , i = i . concat ( PIXI . WebGLGraphics . quadraticBezierCurve ( d + h , e , d , e , d , e + h ) ) , a . fill ) { var j = PIXI . hex2rgb ( a . fillColor ) , k = a . fillAlpha , l = j [ 0 ] * k , m = j [ 1 ] * k , n = j [ 2 ] * k , o = b . points , p = b . indices , q = o . length / 6 , r = PIXI . EarCut . Triangulate ( i , null , 2 ) , s = 0 ; for ( s = 0 ; s < r . length ; s += 3 ) p . push ( r [ s ] + q ) , p . push ( r [ s ] + q ) , p . push ( r [ s + 1 ] + q ) , p . push ( r [ s + 2 ] + q ) , p . push ( r [ s + 2 ] + q ) ; for ( s = 0 ; s < i . length ; s ++ ) o . push ( i [ s ] , i [ ++ s ] , l , m , n , k ) } if ( a . lineWidth ) { var t = a . points ; a . points = i , PIXI . WebGLGraphics . buildLine ( a , b ) , a . points = t } } , PIXI . WebGLGraphics . quadraticBezierCurve = function ( a , b , c , d , e , f ) { function g ( a , b , c ) { var d = b - a ; return a + d * c } for ( var h , i , j , k , l , m , n = 20 , o = [ ] , p = 0 , q = 0 ; q <= n ; q ++ ) p = q / n , h = g ( a , c , p ) , i = g ( b , d , p ) , j = g ( c , e , p ) , k = g ( d , f , p ) , l = g ( h , j , p ) , m = g ( i , k , p ) , o . push ( l , m ) ; return o } , PIXI . WebGLGraphics . buildCircle = function ( a , b ) { var c , d , e = a . shape , f = e . x , g = e . y ; a . type === PIXI . Graphics . CIRC ? ( c = e . radius , d = e . radius ) : ( c = e . width , d = e . height ) ; var h = 40 , i = 2 * Math . PI / h , j = 0 ; if ( a . fill ) { var k = PIXI . hex2rgb ( a . fillColor ) , l = a . fillAlpha , m = k [ 0 ] * l , n = k [ 1 ] * l , o = k [ 2 ] * l , p = b . points , q = b . indices , r = p . length / 6 ; for ( q . push ( r ) , j = 0 ; j < h + 1 ; j ++ ) p . push ( f , g , m , n , o , l ) , p . push ( f + Math . sin ( i * j ) * c , g + Math . cos ( i * j ) * d , m , n , o , l ) , q . push ( r ++ , r ++ ) ; q . push ( r - 1 ) } if ( a . lineWidth ) { var s = a . points ; for ( a . points = [ ] , j = 0 ; j < h + 1 ; j ++ ) a . points . push ( f + Math . sin ( i * j ) * c , g + Math . cos ( i * j ) * d ) ; PIXI . WebGLGraphics . buildLine ( a , b ) , a . points = s } } , PIXI . WebGLGraphics . buildLine = function ( a , b ) { var c = 0 , d = a . points ; if ( 0 !== d . length ) { if ( a . lineWidth % 2 ) for ( c = 0 ; c < d . length ; c ++ ) d [ c ] += . 5 ; var e = new PIXI . Point ( d [ 0 ] , d [ 1 ] ) , f = new PIXI . Point ( d [ d . length - 2 ] , d [ d . length - 1 ] ) ; if ( e . x === f . x && e . y === f . y ) { d = d . slice ( ) , d . pop ( ) , d . pop ( ) , f = new PIXI . Point ( d [ d . length - 2 ] , d [ d . length - 1 ] ) ; var g = f . x + . 5 * ( e . x - f . x ) , h = f . y + . 5 * ( e . y - f . y ) ; d . unshift ( g , h ) , d . push ( g , h ) } var i , j , k , l , m , n , o , p , q , r , s , t , u , v , w , x , y , z , A , B , C , D , E , F = b . points , G = b . indices , H = d . length / 2 , I = d . length , J = F . length / 6 , K = a . lineWidth / 2 , L = PIXI . hex2rgb ( a . lineColor ) , M = a . lineAlpha , N = L [ 0 ] * M , O = L [ 1 ] * M , P = L [ 2 ] * M ; for ( k = d [ 0 ] , l = d [ 1 ] , m = d [ 2 ] , n = d [ 3 ] , q = - ( l - n ) , r = k - m , E = Math . sqrt ( q * q + r * r ) , q /= E , r /= E , q *= K , r *= K , F . push ( k - q , l - r , N , O , P , M ) , F . push ( k + q , l + r , N , O , P , M ) , c = 1 ; c < H - 1 ; c ++ ) k = d [ 2 * ( c - 1 ) ] , l = d [ 2 * ( c - 1 ) + 1 ] , m = d [ 2 * c ] , n = d [ 2 * c + 1 ] , o = d [ 2 * ( c + 1 ) ] , p = d [ 2 * ( c + 1 ) + 1 ] , q = - ( l - n ) , r = k - m , E = Math . sqrt ( q * q + r * r ) , q /= E , r /= E , q *= K , r *= K , s = - ( n - p ) , t = m - o , E = Math . sqrt ( s * s + t * t ) , s /= E , t /= E , s *= K , t *= K , w = - r + l - ( - r + n ) , x = - q + m - ( - q + k ) , y = ( - q + k ) * ( - r + n ) - ( - q + m ) * ( - r + l ) , z = - t + p - ( - t + n ) , A = - s + m - ( - s + o ) , B = ( - s + o ) * ( - t + n ) - ( - s + m ) * ( - t + p ) , C = w * A - z * x , Math . abs ( C ) < . 1 ? ( C += 10.1 , F . push ( m - q , n - r , N , O , P , M ) , F . push ( m + q , n + r , N , O , P , M ) ) : ( i = ( x * B - A * y ) / C , j = ( z * y - w * B ) / C , D = ( i - m ) * ( i - m ) + ( j - n ) + ( j - n ) , D > 19600 ? ( u = q - s , v = r - t , E = Math . sqrt ( u * u + v * v ) , u /= E , v /= E , u *= K , v *= K , F . push ( m - u , n - v ) , F . push ( N , O , P , M ) , F . push ( m + u , n + v ) , F . push ( N , O , P , M ) , F . push ( m - u , n - v ) , F . push ( N , O , P , M ) , I ++ ) : ( F . push ( i , j ) , F . push ( N , O , P , M ) , F . push ( m - ( i - m ) , n - ( j - n ) ) , F . push ( N , O , P , M ) ) ) ; for ( k = d [ 2 * ( H - 2 ) ] , l = d [ 2 * ( H - 2 ) + 1 ] , m = d [ 2 * ( H - 1 ) ] , n = d [ 2 * ( H - 1 ) + 1 ] , q = - ( l - n ) , r = k - m , E = Math . sqrt ( q * q + r * r ) , q /= E , r /= E , q *= K , r *= K , F . push ( m - q , n - r ) , F . push ( N , O , P , M ) , F . push ( m + q , n + r ) , F . push ( N , O , P , M ) , G . push ( J ) , c = 0 ; c < I ; c ++ ) G . push ( J ++ ) ; G . push ( J - 1 ) } } , PIXI . WebGLGraphics . buildComplexPoly = function ( a , b ) { var c = a . points . slice ( ) ; if ( ! ( c . lengt
c . BitmapText = function ( a , b , d , e , f , g , h ) { b = b || 0 , d = d || 0 , e = e || "" , f = f || "" , g = g || 32 , h = h || "left" , PIXI . DisplayObjectContainer . call ( this ) , this . type = c . BITMAPTEXT , this . physicsType = c . SPRITE , this . textWidth = 0 , this . textHeight = 0 , this . anchor = new c . Point , this . _prevAnchor = new c . Point , this . _glyphs = [ ] , this . _maxWidth = 0 , this . _text = f . toString ( ) || "" , this . _data = a . cache . getBitmapFont ( e ) , this . _font = e , this . _fontSize = g , this . _align = h , this . _tint = 16777215 , this . updateText ( ) , this . dirty = ! 1 , c . Component . Core . init . call ( this , a , b , d , "" , null ) } , c . BitmapText . prototype = Object . create ( PIXI . DisplayObjectContainer . prototype ) , c . BitmapText . prototype . constructor = c . BitmapText , c . Component . Core . install . call ( c . BitmapText . prototype , [ "Angle" , "AutoCull" , "Bounds" , "Destroy" , "FixedToCamera" , "InputEnabled" , "InWorld" , "LifeSpan" , "PhysicsBody" , "Reset" ] ) , c . BitmapText . prototype . preUpdatePhysics = c . Component . PhysicsBody . preUpdate , c . BitmapText . prototype . preUpdateLifeSpan = c . Component . LifeSpan . preUpdate , c . BitmapText . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . BitmapText . prototype . preUpdateCore = c . Component . Core . preUpdate , c . BitmapText . prototype . preUpdate = function ( ) { return ! ! ( this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ) && this . preUpdateCore ( ) } , c . BitmapText . prototype . postUpdate = function ( ) { c . Component . PhysicsBody . postUpdate . call ( this ) , c . Component . FixedToCamera . postUpdate . call ( this ) , this . body && this . body . type === c . Physics . ARCADE && ( this . textWidth === this . body . sourceWidth && this . textHeight === this . body . sourceHeight || this . body . setSize ( this . textWidth , this . textHeight ) ) } , c . BitmapText . prototype . setText = function ( a ) { this . text = a } ; c . BitmapText . prototype . scanLine = function ( a , b , c ) { for ( var d = 0 , e = 0 , f = - 1 , g = 0 , h = null , i = this . _maxWidth > 0 ? this . _maxWidth : null , j = [ ] , k = 0 ; k < c . length ; k ++ ) { var l = k === c . length - 1 ; if ( /(?:\r\n|\r|\n)/ . test ( c . charAt ( k ) ) ) return { width : e , text : c . substr ( 0 , k ) , end : l , chars : j } ; var m = c . charCodeAt ( k ) , n = a . chars [ m ] , o = 0 ; void 0 === n && ( m = 32 , n = a . chars [ m ] ) ; var p = h && n . kerning [ h ] ? n . kerning [ h ] : 0 ; if ( /(\s)/ . test ( c . charAt ( k ) ) && ( f = k , g = e ) , o = ( p + n . texture . width + n . xOffset ) * b , i && e + o >= i && f > - 1 ) return { width : g || e , text : c . substr ( 0 , k - ( k - f ) ) , end : l , chars : j } ; e += ( n . xAdvance + p ) * b , 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 ) {
var e = a - c , f = b - d ; return Math . sqrt ( e * e + f * f ) } , distanceSq : function ( a , b , c , d ) { var e = a - c , f = b - d ; return e * e + f * f } , distancePow : function ( a , b , c , d , e ) { return void 0 === e && ( e = 2 ) , Math . sqrt ( Math . pow ( c - a , e ) + Math . pow ( d - b , e ) ) } , clamp : function ( a , b , c ) { return a < b ? b : c < a ? c : a } , clampBottom : function ( a , b ) { return a < b ? b : a } , within : function ( a , b , c ) { return Math . abs ( a - b ) <= c } , mapLinear : function ( a , b , c , d , e ) { return d + ( a - b ) * ( e - d ) / ( c - b ) } , smoothstep : function ( a , b , c ) { return a = Math . max ( 0 , Math . min ( 1 , ( a - b ) / ( c - b ) ) ) , a * a * ( 3 - 2 * a ) } , smootherstep : function ( a , b , c ) { return a = Math . max ( 0 , Math . min ( 1 , ( a - b ) / ( c - b ) ) ) , a * a * a * ( a * ( 6 * a - 15 ) + 10 ) } , sign : function ( a ) { return a < 0 ? - 1 : a > 0 ? 1 : 0 } , percent : function ( a , b , c ) { return void 0 === c && ( c = 0 ) , a > b || c > b ? 1 : a < c || c > a ? 0 : ( a - c ) / b } } ; var k = Math . PI / 180 , l = 180 / Math . PI ; return c . Math . degToRad = function ( a ) { return a * k } , c . Math . radToDeg = function ( a ) { return a * l } , c . RandomDataGenerator = function ( a ) { void 0 === a && ( a = [ ] ) , this . c = 1 , this . s0 = 0 , this . s1 = 0 , this . s2 = 0 , "string" == typeof a ? this . state ( a ) : this . sow ( a ) } , c . RandomDataGenerator . prototype = { rnd : function ( ) { var a = 2091639 * this . s0 + 2.3283064365386963 e - 10 * this . c ; return this . c = 0 | a , this . s0 = this . s1 , this . s1 = this . s2 , this . s2 = a - this . c , this . s2 } , sow : function ( a ) { if ( this . s0 = this . hash ( " " ) , this . s1 = this . hash ( this . s0 ) , this . s2 = this . hash ( this . s1 ) , this . c = 1 , a ) for ( var b = 0 ; b < a . length && null != a [ b ] ; b ++ ) { var c = a [ b ] ; this . s0 -= this . hash ( c ) , this . s0 += ~ ~ ( this . s0 < 0 ) , this . s1 -= this . hash ( c ) , this . s1 += ~ ~ ( this . s1 < 0 ) , this . s2 -= this . hash ( c ) , this . s2 += ~ ~ ( this . s2 < 0 ) } } , hash : function ( a ) { var b , c , d ; for ( d = 4022871197 , a = a . toString ( ) , c = 0 ; c < a . length ; c ++ ) d += a . charCodeAt ( c ) , b = . 02519603282416938 * d , d = b >>> 0 , b -= d , b *= d , d = b >>> 0 , b -= d , d += 4294967296 * b ; return 2.3283064365386963 e - 10 * ( d >>> 0 ) } , integer : function ( ) { return 4294967296 * this . rnd . apply ( this ) } , frac : function ( ) { return this . rnd . apply ( this ) + 1.1102230246251565 e - 16 * ( 2097152 * this . rnd . apply ( this ) | 0 ) } , real : function ( ) { return this . integer ( ) + this . frac ( ) } , integerInRange : function ( a , b ) { return Math . floor ( this . realInRange ( 0 , b - a + 1 ) + a ) } , between : function ( a , b ) { return this . integerInRange ( a , b ) } , realInRange : function ( a , b ) { return this . frac ( ) * ( b - a ) + a } , normal : function ( ) { return 1 - 2 * this . frac ( ) } , uuid : function ( ) { var a = "" , b = "" ; for ( b = a = "" ; a ++ < 36 ; b += ~ a % 5 | 3 * a & 4 ? ( 15 ^ a ? 8 ^ this . frac ( ) * ( 20 ^ a ? 16 : 4 ) : 4 ) . toString ( 16 ) : "-" ) ; return b } , pick : function ( a ) { return a [ this . integerInRange ( 0 , a . length - 1 ) ] } , sign : function ( ) { return this . pick ( [ - 1 , 1 ] ) } , weightedPick : function ( a ) { return a [ ~ ~ ( Math . pow ( this . frac ( ) , 2 ) * ( a . length - 1 ) + . 5 ) ] } , timestamp : function ( a , b ) { return this . realInRange ( a || 9466848e5 , b || 1577862e6 ) } , angle : function ( ) { return this . integerInRange ( - 180 , 180 ) } , state : function ( a ) { return "string" == typeof a && a . match ( /^!rnd/ ) && ( a = a . split ( "," ) , this . c = parseFloat ( a [ 1 ] ) , this . s0 = parseFloat ( a [ 2 ] ) , this . s1 = parseFloat ( a [ 3 ] ) , this . s2 = parseFloat ( a [ 4 ] ) ) , [ "!rnd" , this . c , this . s0 , this . s1 , this . s2 ] . join ( "," ) } } , c . RandomDataGenerator . prototype . constructor = c . RandomDataGenerator , c . QuadTree = function ( a , b , c , d , e , f , g ) { this . maxObjects = 10 , this . maxLevels = 4 , this . level = 0 , this . bounds = { } , this . objects = [ ] , this . nodes = [ ] , this . _empty = [ ] , this . reset ( a , b , c , d , e , f , g ) } , c . QuadTree . prototype = { reset : function ( a , b , c , d , e , f , g ) { this . maxObjects = e || 10 , this . maxLevels = f || 4 , this . level = g || 0 , this . bounds = { x : Math . round ( a ) , y : Math . round ( b ) , width : c , height : d , subWidth : Math . floor ( c / 2 ) , subHeight : Math . floor ( d / 2 ) , right : Math . round ( a ) + Math . floor ( c / 2 ) , bottom : Math . round ( b ) + Math . floor ( d / 2 ) } , this . objects . length = 0 , this . nodes . length = 0 } , populate : function ( a ) { a . forEach ( this . populateHandler , this , ! 0 ) } , populateHandler : function ( a ) { a . body && a . exists && this . insert ( a . body ) } , split : function ( ) { this . nodes [ 0 ] = new c . QuadTree ( this . bounds . right , this . bounds . y , this . bounds . subWidth , this . bounds . subHeight , this . maxObjects , this . maxLevels , this . level + 1 ) , this . nodes [ 1 ] = new c . QuadTree ( this . bounds . x , this . bounds . y , this . bounds . subWidth , this . bounds . subHeight , this . maxObjects , this . maxLevels , this . level + 1 ) , this . nodes [ 2 ] = new c . QuadTree ( this . bounds . x , this . bounds . bottom , this . bounds . subWidth , this . bounds . subHeight , this . maxObjects , this . maxLevels , this . level + 1 ) , this . nodes [ 3 ] = new c . QuadTree ( this . bounds . right , this . bounds . bottom , this . bounds . subWidth , this . bounds . subHeight , this . maxObjects , this . maxLevels , this . level + 1 ) } , insert : function ( a ) { var b , c = 0 ; i
} , previous : function ( a ) { this . currentAnim && ( this . currentAnim . previous ( a ) , this . currentFrame = this . currentAnim . currentFrame ) } , getAnimation : function ( a ) { return "string" == typeof a && this . _anims [ a ] ? this . _anims [ a ] : null } , refreshFrame : function ( ) { } , destroy : function ( ) { var a = null ; for ( var a in this . _anims ) this . _anims . hasOwnProperty ( a ) && this . _anims [ a ] . destroy ( ) ; this . _anims = { } , this . _outputFrames = [ ] , this . _frameData = null , this . currentAnim = null , this . currentFrame = null , this . sprite = null , this . game = null } } , c . AnimationManager . prototype . constructor = c . AnimationManager , Object . defineProperty ( c . AnimationManager . prototype , "frameData" , { get : function ( ) { return this . _frameData } } ) , Object . defineProperty ( c . AnimationManager . prototype , "frameTotal" , { get : function ( ) { return this . _frameData . total } } ) , Object . defineProperty ( c . AnimationManager . prototype , "paused" , { get : function ( ) { return this . currentAnim . isPaused } , set : function ( a ) { this . currentAnim . paused = a } } ) , Object . defineProperty ( c . AnimationManager . prototype , "name" , { get : function ( ) { if ( this . currentAnim ) return this . currentAnim . name } } ) , Object . defineProperty ( c . AnimationManager . prototype , "frame" , { get : function ( ) { if ( this . currentFrame ) return this . currentFrame . index } , set : function ( a ) { "number" == typeof a && this . _frameData && null !== this . _frameData . getFrame ( a ) && ( this . currentFrame = this . _frameData . getFrame ( a ) , this . currentFrame && this . sprite . setFrame ( this . currentFrame ) ) } } ) , Object . defineProperty ( c . AnimationManager . prototype , "frameName" , { get : function ( ) { if ( this . currentFrame ) return this . currentFrame . name } , set : function ( a ) { "string" == typeof a && this . _frameData && null !== this . _frameData . getFrameByName ( a ) ? ( this . currentFrame = this . _frameData . getFrameByName ( a ) , this . currentFrame && ( this . _frameIndex = this . currentFrame . index , this . sprite . setFrame ( this . currentFrame ) ) ) : console . warn ( "Cannot set frameName: " + a ) } } ) , c . Animation = function ( a , b , d , e , f , g , h ) { void 0 === h && ( h = ! 1 ) , this . game = a , this . _parent = b , this . _frameData = e , this . name = d , this . _frames = [ ] , this . _frames = this . _frames . concat ( f ) , this . delay = 1e3 / g , this . loop = h , this . loopCount = 0 , this . killOnComplete = ! 1 , this . isFinished = ! 1 , this . isPlaying = ! 1 , this . isPaused = ! 1 , this . _pauseStartTime = 0 , this . _frameIndex = 0 , this . _frameDiff = 0 , this . _frameSkip = 1 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . onStart = new c . Signal , this . onUpdate = null , this . onComplete = new c . Signal , this . onLoop = new c . Signal , this . isReversed = ! 1 , this . game . onPause . add ( this . onPause , this ) , this . game . onResume . add ( this . onResume , this ) } , c . Animation . prototype = { play : function ( a , b , c ) { return "number" == typeof a && ( this . delay = 1e3 / a ) , "boolean" == typeof b && ( this . loop = b ) , "undefined" != typeof c && ( this . killOnComplete = c ) , this . isPlaying = ! 0 , this . isFinished = ! 1 , this . paused = ! 1 , this . loopCount = 0 , this . _timeLastFrame = this . game . time . time , this . _timeNextFrame = this . game . time . time + this . delay , this . _frameIndex = this . isReversed ? this . _frames . length - 1 : 0 , this . updateCurrentFrame ( ! 1 , ! 0 ) , this . _parent . events . onAnimationStart$dispatch ( this . _parent , this ) , this . onStart . dispatch ( this . _parent , this ) , this . _parent . animations . currentAnim = this , this . _parent . animations . currentFrame = this . currentFrame , this } , restart : function ( ) { this . isPlaying = ! 0 , this . isFinished = ! 1 , this . paused = ! 1 , this . loopCount = 0 , this . _timeLastFrame = this . game . time . time , this . _timeNextFrame = this . game . time . time + this . delay , this . _frameIndex = 0 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . _parent . setFrame ( this . currentFrame ) , this . _parent . animations . currentAnim = this , this . _parent . animations . currentFrame = this . currentFrame , this . onStart . dispatch ( this . _parent , this ) } , reverse : function ( ) { return this . reversed = ! this . reversed , this } , reverseOnce : function ( ) { return this . onComplete . addOnce ( this . reverse , this ) , this . reverse ( ) } , setFrame : function ( a , b ) { var c ; if ( void 0 === b && ( b = ! 1 ) , "string" == typeof a ) for ( var d = 0 ; d < this . _frames . length ; d ++ ) this . _frameData . getFrame ( this . _frames [ d ] ) . name === a && ( c = d ) ; else if ( "number" == typeof a ) if ( b ) c = a ; else for ( var d = 0 ; d < this . _frames . length ; d ++ ) this . _frames [ d ] === a && ( c = d ) ; c && ( this . _frameIndex = c - 1 , this . _timeNextFrame = this . game . time . time , this . update ( ) ) } , stop : function ( a , b ) { void 0 === a && ( a = ! 1 ) , void 0 === b && ( b = ! 1 ) , this . isPlaying = ! 1 , thi
buffer : null , autoDecode : c } ) ) } , audioSprite : function ( a , b , c , d , e ) { return this . game . sound . noAudio ? this : ( void 0 === c && ( c = null ) , void 0 === d && ( d = null ) , void 0 === e && ( e = ! 0 ) , this . audio ( a , b , e ) , c ? this . json ( a + "-audioatlas" , c ) : d ? ( "string" == typeof d && ( d = JSON . parse ( d ) ) , this . cache . addJSON ( a + "-audioatlas" , "" , d ) ) : console . warn ( "Phaser.Loader.audiosprite - You must specify either a jsonURL or provide a jsonData object" ) , this ) } , audiosprite : function ( a , b , c , d , e ) { return this . audioSprite ( a , b , c , d , e ) } , video : function ( a , b , c , d ) { return void 0 === c && ( c = this . game . device . firefox ? "loadeddata" : "canplaythrough" ) , void 0 === d && ( d = ! 1 ) , "string" == typeof b && ( b = [ b ] ) , this . addToFileList ( "video" , a , b , { buffer : null , asBlob : d , loadEvent : c } ) } , tilemap : function ( a , b , d , e ) { if ( void 0 === b && ( b = null ) , void 0 === d && ( d = null ) , void 0 === e && ( e = c . Tilemap . CSV ) , b || d || ( b = e === c . Tilemap . CSV ? a + ".csv" : a + ".json" ) , d ) { switch ( e ) { case c . Tilemap . CSV : break ; case c . Tilemap . TILED _JSON : "string" == typeof d && ( d = JSON . parse ( d ) ) } this . cache . addTilemap ( a , null , d , e ) } else this . addToFileList ( "tilemap" , a , b , { format : e } ) ; return this } , physics : function ( a , b , d , e ) { return void 0 === b && ( b = null ) , void 0 === d && ( d = null ) , void 0 === e && ( e = c . Physics . LIME _CORONA _JSON ) , b || d || ( b = a + ".json" ) , d ? ( "string" == typeof d && ( d = JSON . parse ( d ) ) , this . cache . addPhysicsData ( a , null , d , e ) ) : this . addToFileList ( "physics" , a , b , { format : e } ) , this } , bitmapFont : function ( a , b , c , d , e , f ) { if ( void 0 !== b && null !== b || ( b = a + ".png" ) , void 0 === c && ( c = null ) , void 0 === d && ( d = null ) , null === c && null === d && ( c = a + ".xml" ) , void 0 === e && ( e = 0 ) , void 0 === f && ( f = 0 ) , c ) this . addToFileList ( "bitmapfont" , a , b , { atlasURL : c , xSpacing : e , ySpacing : f } ) ; else if ( "string" == typeof d ) { var g , h ; try { g = JSON . parse ( d ) } catch ( a ) { h = this . parseXml ( d ) } if ( ! h && ! g ) throw new Error ( "Phaser.Loader. Invalid Bitmap Font atlas given" ) ; this . addToFileList ( "bitmapfont" , a , b , { atlasURL : null , atlasData : g || h , atlasType : g ? "json" : "xml" , xSpacing : e , ySpacing : f } ) } return this } , atlasJSONArray : function ( a , b , d , e ) { return this . atlas ( a , b , d , e , c . Loader . TEXTURE _ATLAS _JSON _ARRAY ) } , atlasJSONHash : function ( a , b , d , e ) { return this . atlas ( a , b , d , e , c . Loader . TEXTURE _ATLAS _JSON _HASH ) } , atlasXML : function ( a , b , d , e ) { return void 0 === d && ( d = null ) , void 0 === e && ( e = null ) , d || e || ( d = a + ".xml" ) , this . atlas ( a , b , d , e , c . Loader . TEXTURE _ATLAS _XML _STARLING ) } , atlas : function ( a , b , d , e , f ) { if ( void 0 !== b && null !== b || ( b = a + ".png" ) , void 0 === d && ( d = null ) , void 0 === e && ( e = null ) , void 0 === f && ( f = c . Loader . TEXTURE _ATLAS _JSON _ARRAY ) , d || e || ( d = f === c . Loader . TEXTURE _ATLAS _XML _STARLING ? a + ".xml" : a + ".json" ) , d ) this . addToFileList ( "textureatlas" , a , b , { atlasURL : d , format : f } ) ; else { switch ( f ) { case c . Loader . TEXTURE _ATLAS _JSON _ARRAY : "string" == typeof e && ( e = JSON . parse ( e ) ) ; break ; case c . Loader . TEXTURE _ATLAS _XML _STARLING : if ( "string" == typeof e ) { var g = this . parseXml ( e ) ; if ( ! g ) throw new Error ( "Phaser.Loader. Invalid Texture Atlas XML given" ) ; e = g } } this . addToFileList ( "textureatlas" , a , b , { atlasURL : null , atlasData : e , format : f } ) } return this } , withSyncPoint : function ( a , b ) { this . _withSyncPointDepth ++ ; try { a . call ( b || this , this ) } finally { this . _withSyncPointDepth -- } return this } , addSyncPoint : function ( a , b ) { var c = this . getAsset ( a , b ) ; return c && ( c . file . syncPoint = ! 0 ) , this } , removeFile : function ( a , b ) { var c = this . getAsset ( a , b ) ; c && ( c . loaded || c . loading || this . _fileList . splice ( c . index , 1 ) ) } , removeAll : function ( ) { this . _fileList . length = 0 , this . _flightQueue . length = 0 } , start : function ( ) { this . isLoading || ( this . hasLoaded = ! 1 , this . isLoading = ! 0 , this . updateProgress ( ) , this . processLoadQueue ( ) ) } , processLoadQueue : function ( ) { if ( ! this . isLoading ) return console . warn ( "Phaser.Loader - active loading canceled / reset" ) , void this . finishedLoading ( ! 0 ) ; for ( var a = 0 ; a < this . _flightQueue . length ; a ++ ) { var b = this . _flightQueue [ a ] ; ( b . loaded || b . error ) && ( this . _flightQueue . splice ( a , 1 ) , a -- , b . loading = ! 1 , b . requestUrl = null , b . requestObject = null , b . error && this . onFileError . dispatch ( b . key , b ) , "packfile" !== b . type ? ( this . _loadedFileCount ++ , this . onFileComplete . dispatch ( this . progress , b . key , ! b . error , this . _loadedFileCount , this . _totalFileCount ) ) : "packfile" === b . type && b . error && ( this . _loadedPackCount ++ , this . onPackComplete . dispatch ( b . key , ! b . error , this . _loadedPackCount , this . _totalPackCount ) ) ) } for ( var d = ! 1 , e = this . enableParallel ? c . Math . clamp ( this . maxParallelDownloads , 1 , 12 ) : 1 , a
} } , c . Sound . prototype . constructor = c . Sound , Object . defineProperty ( c . Sound . prototype , "isDecoding" , { get : function ( ) { return this . game . cache . getSound ( this . key ) . isDecoding } } ) , Object . defineProperty ( c . Sound . prototype , "isDecoded" , { get : function ( ) { return this . game . cache . isSoundDecoded ( this . key ) } } ) , Object . defineProperty ( c . Sound . prototype , "mute" , { get : function ( ) { return this . _muted || this . game . sound . mute } , set : function ( a ) { a = a || ! 1 , a !== this . _muted && ( a ? ( this . _muted = ! 0 , this . _muteVolume = this . _tempVolume , this . usingWebAudio ? this . gainNode . gain . value = 0 : this . usingAudioTag && this . _sound && ( this . _sound . volume = 0 ) ) : ( this . _muted = ! 1 , this . usingWebAudio ? this . gainNode . gain . value = this . _muteVolume : this . usingAudioTag && this . _sound && ( this . _sound . volume = this . _muteVolume ) ) , this . onMute . dispatch ( this ) ) } } ) , Object . defineProperty ( c . Sound . prototype , "volume" , { get : function ( ) { return this . _volume } , set : function ( a ) { return this . game . device . firefox && this . usingAudioTag && ( a = this . game . math . clamp ( a , 0 , 1 ) ) , this . _muted ? void ( this . _muteVolume = a ) : ( this . _tempVolume = a , this . _volume = a , void ( this . usingWebAudio ? this . gainNode . gain . value = a : this . usingAudioTag && this . _sound && ( this . _sound . volume = a ) ) ) } } ) , c . SoundManager = function ( a ) { this . game = a , this . onSoundDecode = new c . Signal , this . onVolumeChange = new c . Signal , this . onMute = new c . Signal , this . onUnMute = new c . Signal , this . context = null , this . usingWebAudio = ! 1 , this . usingAudioTag = ! 1 , this . noAudio = ! 1 , this . connectToMaster = ! 0 , this . touchLocked = ! 1 , this . channels = 32 , this . muteOnPause = ! 0 , this . _codeMuted = ! 1 , this . _muted = ! 1 , this . _unlockSource = null , this . _volume = 1 , this . _sounds = [ ] , this . _watchList = new c . ArraySet , this . _watching = ! 1 , this . _watchCallback = null , this . _watchContext = null } , c . SoundManager . prototype = { boot : function ( ) { if ( this . game . device . iOS && this . game . device . webAudio === ! 1 && ( this . channels = 1 ) , window . PhaserGlobal ) { if ( window . PhaserGlobal . disableAudio === ! 0 ) return this . noAudio = ! 0 , void ( this . touchLocked = ! 1 ) ; if ( window . PhaserGlobal . disableWebAudio === ! 0 ) return this . usingAudioTag = ! 0 , void ( this . touchLocked = ! 1 ) } if ( window . PhaserGlobal && window . PhaserGlobal . audioContext ) this . context = window . PhaserGlobal . audioContext ; else if ( window . AudioContext ) try { this . context = new window . AudioContext } catch ( a ) { this . context = null , this . usingWebAudio = ! 1 , this . touchLocked = ! 1 } else if ( window . webkitAudioContext ) try { this . context = new window . webkitAudioContext } catch ( a ) { this . context = null , this . usingWebAudio = ! 1 , this . touchLocked = ! 1 } if ( null === this . context ) { if ( void 0 === window . Audio ) return void ( this . noAudio = ! 0 ) ; this . usingAudioTag = ! 0 } else this . usingWebAudio = ! 0 , void 0 === this . context . createGain ? this . masterGain = this . context . createGainNode ( ) : this . masterGain = this . context . createGain ( ) , this . masterGain . gain . value = 1 , this . masterGain . connect ( this . context . destination ) ; this . noAudio || ( ! this . game . device . cocoonJS && this . game . device . iOS || window . PhaserGlobal && window . PhaserGlobal . fakeiOSTouchLock ) && this . setTouchLock ( ) } , setTouchLock : function ( ) { this . noAudio || window . PhaserGlobal && window . PhaserGlobal . disableAudio === ! 0 || ( this . game . device . iOSVersion > 8 ? this . game . input . touch . addTouchLockCallback ( this . unlock , this , ! 0 ) : this . game . input . touch . addTouchLockCallback ( this . unlock , this ) , this . touchLocked = ! 0 ) } , unlock : function ( ) { if ( this . noAudio || ! this . touchLocked || null !== this . _unlockSource ) return ! 0 ; if ( this . usingAudioTag ) this . touchLocked = ! 1 , this . _unlockSource = null ; else if ( this . usingWebAudio ) { var a = this . context . createBuffer ( 1 , 1 , 22050 ) ; this . _unlockSource = this . context . createBufferSource ( ) , this . _unlockSource . buffer = a , this . _unlockSource . connect ( this . context . destination ) , void 0 === this . _unlockSource . start ? this . _unlockSource . noteOn ( 0 ) : this . _unlockSource . start ( 0 ) } return ! 0 } , stopAll : function ( ) { if ( ! this . noAudio ) for ( var a = 0 ; a < this . _sounds . length ; a ++ ) this . _sounds [ a ] && this . _sounds [ a ] . stop ( ) } , pauseAll : function ( ) { if ( ! this . noAudio ) for ( var a = 0 ; a < this . _sounds . length ; a ++ ) this . _sounds [ a ] && this . _sounds [ a ] . pause ( ) } , resumeAll : function ( ) { if ( ! this . noAudio ) for ( var a = 0 ; a < this . _sounds . length ; a ++ ) this . _sounds [ a ] && this . _sounds [ a ] . resume ( ) } , decode : function ( a , b ) { b = b || null ; var c = this . game . cache . getSoundData ( a ) ; if ( c && this . game . cache . isSoundDecoded ( a ) === ! 1 ) { this . game . cache . updateSound ( a , "isDecoding" , ! 0 ) ; var d = this ; tr
this . line ( "visible: " + a . visible + " in camera: " + a . inCamera ) , this . line ( "bounds x: " + a . _bounds . x . toFixed ( 1 ) + " y: " + a . _bounds . y . toFixed ( 1 ) + " w: " + a . _bounds . width . toFixed ( 1 ) + " h: " + a . _bounds . height . toFixed ( 1 ) ) , this . stop ( ) } , spriteCoords : function ( a , b , c , d ) { this . start ( b , c , d , 100 ) , a . name && this . line ( a . name ) , this . line ( "x:" , a . x . toFixed ( 2 ) , "y:" , a . y . toFixed ( 2 ) ) , this . line ( "pos x:" , a . position . x . toFixed ( 2 ) , "pos y:" , a . position . y . toFixed ( 2 ) ) , this . line ( "world x:" , a . world . x . toFixed ( 2 ) , "world y:" , a . world . y . toFixed ( 2 ) ) , this . stop ( ) } , lineInfo : function ( a , b , c , d ) { this . start ( b , c , d , 80 ) , this . line ( "start.x:" , a . start . x . toFixed ( 2 ) , "start.y:" , a . start . y . toFixed ( 2 ) ) , this . line ( "end.x:" , a . end . x . toFixed ( 2 ) , "end.y:" , a . end . y . toFixed ( 2 ) ) , this . line ( "length:" , a . length . toFixed ( 2 ) , "angle:" , a . angle ) , this . stop ( ) } , pixel : function ( a , b , c , d ) { d = d || 2 , this . start ( ) , this . context . fillStyle = c , this . context . fillRect ( a , b , d , d ) , this . stop ( ) } , geom : function ( a , b , d , e ) { void 0 === d && ( d = ! 0 ) , void 0 === e && ( e = 0 ) , b = b || "rgba(0,255,0,0.4)" , this . start ( ) , this . context . fillStyle = b , this . context . strokeStyle = b , a instanceof c . Rectangle || 1 === e ? d ? this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : this . context . strokeRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : a instanceof c . Circle || 2 === e ? ( this . context . beginPath ( ) , this . context . arc ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . radius , 0 , 2 * Math . PI , ! 1 ) , this . context . closePath ( ) , d ? this . context . fill ( ) : this . context . stroke ( ) ) : a instanceof c . Point || 3 === e ? this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , 4 , 4 ) : ( a instanceof c . Line || 4 === e ) && ( this . context . lineWidth = 1 , this . context . beginPath ( ) , this . context . moveTo ( a . start . x + . 5 - this . game . camera . x , a . start . y + . 5 - this . game . camera . y ) , this . context . lineTo ( a . end . x + . 5 - this . game . camera . x , a . end . y + . 5 - this . game . camera . y ) , this . context . closePath ( ) , this . context . stroke ( ) ) , this . stop ( ) } , rectangle : function ( a , b , c ) { void 0 === c && ( c = ! 0 ) , b = b || "rgba(0, 255, 0, 0.4)" , this . start ( ) , c ? ( this . context . fillStyle = b , this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) ) : ( this . context . strokeStyle = b , this . context . strokeRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) ) , this . stop ( ) } , text : function ( a , b , c , d , e ) { d = d || "rgb(255,255,255)" , e = e || "16px Courier" , this . start ( ) , this . context . font = e , this . renderShadow && ( this . context . fillStyle = "rgb(0,0,0)" , this . context . fillText ( a , b + 1 , c + 1 ) ) , this . context . fillStyle = d , this . context . fillText ( a , b , c ) , this . stop ( ) } , quadTree : function ( a , b ) { b = b || "rgba(255,0,0,0.3)" , this . start ( ) ; var c = a . bounds ; if ( 0 === a . nodes . length ) { this . context . strokeStyle = b , this . context . strokeRect ( c . x , c . y , c . width , c . height ) , this . text ( "size: " + a . objects . length , c . x + 4 , c . y + 16 , "rgb(0,200,0)" , "12px Courier" ) , this . context . strokeStyle = "rgb(0,255,0)" ; for ( var d = 0 ; d < a . objects . length ; d ++ ) this . context . strokeRect ( a . objects [ d ] . x , a . objects [ d ] . y , a . objects [ d ] . width , a . objects [ d ] . height ) } else for ( var d = 0 ; d < a . nodes . length ; d ++ ) this . quadTree ( a . nodes [ d ] ) ; this . stop ( ) } , body : function ( a , b , d ) { a . body && ( this . start ( ) , a . body . type === c . Physics . ARCADE ? c . Physics . Arcade . Body . render ( this . context , a . body , b , d ) : a . body . type === c . Physics . NINJA ? c . Physics . Ninja . Body . render ( this . context , a . body , b , d ) : a . body . type === c . Physics . BOX2D && c . Physics . Box2D . renderBody ( this . context , a . body , b ) , this . stop ( ) ) } , bodyInfo : function ( a , b , d , e ) { a . body && ( this . start ( b , d , e , 210 ) , a . body . type === c . Physics . ARCADE ? c . Physics . Arcade . Body . renderBodyInfo ( this , a . body ) : a . body . type === c . Physics . BOX2D && this . game . physics . box2d . renderBodyInfo ( this , a . body ) , this . stop ( ) ) } , box2dWorld : function ( ) { this . start ( ) , this . context . translate ( - this . game . camera . view . x , - this . game . camera . view . y , 0 ) , this . game . physics . box2d . renderDebugDraw ( this . context ) , this . stop ( ) } , box2dBody : function ( a , b ) { this . start ( ) , c . Physics . Box2D . renderBody ( this . context , a , b ) , this . stop ( ) } , displayList : function ( a ) { if ( void 0 === a && ( a = this . game . world ) , a . hasOwnProperty ( "renderOrderID" ) ? console . log ( "[" + a . renderOrderID + "]" , a ) : console . log ( "[]" , a ) , a . children && a . children . length > 0 ) for ( var b = 0 ; b < a . children . length ; b ++ ) this . game . debug . displayList ( a . children [ b ] ) } , destroy : function ( ) { PIXI . CanvasPool . remove ( this ) } } , c . Utils
b === c . Physics . Arcade . LEFT _RIGHT ? a . hash . sort ( this . sortLeftRight ) : b === c . Physics . Arcade . RIGHT _LEFT ? a . hash . sort ( this . sortRightLeft ) : b === c . Physics . Arcade . TOP _BOTTOM ? a . hash . sort ( this . sortTopBottom ) : b === c . Physics . Arcade . BOTTOM _TOP && a . hash . sort ( this . sortBottomTop ) } , collideHandler : function ( a , b , d , e , f , g ) { return void 0 === b && a . physicsType === c . GROUP ? ( this . sort ( a ) , void this . collideGroupVsSelf ( a , d , e , f , g ) ) : void ( a && b && a . exists && b . exists && ( this . sortDirection !== c . Physics . Arcade . SORT _NONE && ( a . physicsType === c . GROUP && this . sort ( a ) , b . physicsType === c . GROUP && this . sort ( b ) ) , a . physicsType === c . SPRITE ? b . physicsType === c . SPRITE ? this . collideSpriteVsSprite ( a , b , d , e , f , g ) : b . physicsType === c . GROUP ? this . collideSpriteVsGroup ( a , b , d , e , f , g ) : b . physicsType === c . TILEMAPLAYER && this . collideSpriteVsTilemapLayer ( a , b , d , e , f , g ) : a . physicsType === c . GROUP ? b . physicsType === c . SPRITE ? this . collideSpriteVsGroup ( b , a , d , e , f , g ) : b . physicsType === c . GROUP ? this . collideGroupVsGroup ( a , b , d , e , f , g ) : b . physicsType === c . TILEMAPLAYER && this . collideGroupVsTilemapLayer ( a , b , d , e , f , g ) : a . physicsType === c . TILEMAPLAYER && ( b . physicsType === c . SPRITE ? this . collideSpriteVsTilemapLayer ( b , a , d , e , f , g ) : b . physicsType === c . GROUP && this . collideGroupVsTilemapLayer ( b , a , d , e , f , g ) ) ) ) } , collideSpriteVsSprite : function ( a , b , c , d , e , f ) { return ! ( ! a . body || ! b . body ) && ( this . separate ( a . body , b . body , d , e , f ) && ( c && c . call ( e , a , b ) , this . _total ++ ) , ! 0 ) } , collideSpriteVsGroup : function ( a , b , d , e , f , g ) { if ( 0 !== b . length && a . body ) if ( this . skipQuadTree || a . body . skipQuadTree ) for ( var h = { } , i = 0 ; i < b . hash . length ; i ++ ) { var j = b . hash [ i ] ; if ( j && j . exists && j . body ) { if ( h = j . body . getBounds ( h ) , this . sortDirection === c . Physics . Arcade . LEFT _RIGHT ) { if ( a . body . right < h . x ) break ; if ( h . right < a . body . x ) continue } else if ( this . sortDirection === c . Physics . Arcade . RIGHT _LEFT ) { if ( a . body . x > h . right ) break ; if ( h . x > a . body . right ) continue } else if ( this . sortDirection === c . Physics . Arcade . TOP _BOTTOM ) { if ( a . body . bottom < h . y ) break ; if ( h . bottom < a . body . y ) continue } else if ( this . sortDirection === c . Physics . Arcade . BOTTOM _TOP ) { if ( a . body . y > h . bottom ) break ; if ( h . y > a . body . bottom ) continue } this . collideSpriteVsSprite ( a , j , d , e , f , g ) } } else { this . quadTree . clear ( ) , this . quadTree . reset ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height , this . maxObjects , this . maxLevels ) , this . quadTree . populate ( b ) ; for ( var k = this . quadTree . retrieve ( a ) , i = 0 ; i < k . length ; i ++ ) this . separate ( a . body , k [ i ] , e , f , g ) && ( d && d . call ( f , a , k [ i ] . sprite ) , this . _total ++ ) } } , collideGroupVsSelf : function ( a , b , d , e , f ) { if ( 0 !== a . length ) for ( var g = 0 ; g < a . hash . length ; g ++ ) { var h = { } , i = a . hash [ g ] ; if ( i && i . exists && i . body ) { h = i . body . getBounds ( h ) ; for ( var j = g + 1 ; j < a . hash . length ; j ++ ) { var k = { } , l = a . hash [ j ] ; if ( l && l . exists && l . body ) { if ( k = l . body . getBounds ( k ) , this . sortDirection === c . Physics . Arcade . LEFT _RIGHT ) { if ( h . right < k . x ) break ; if ( k . right < h . x ) continue } else if ( this . sortDirection === c . Physics . Arcade . RIGHT _LEFT ) { if ( h . x > k . right ) continue ; if ( k . x > h . right ) break } else if ( this . sortDirection === c . Physics . Arcade . TOP _BOTTOM ) { if ( h . bottom < k . y ) continue ; if ( k . bottom < h . y ) break } else if ( this . sortDirection === c . Physics . Arcade . BOTTOM _TOP ) { if ( h . y > k . bottom ) continue ; if ( k . y > i . body . bottom ) break } this . collideSpriteVsSprite ( i , l , b , d , e , f ) } } } } } , collideGroupVsGroup : function ( a , b , d , e , f , g ) { if ( 0 !== a . length && 0 !== b . length ) for ( var h = 0 ; h < a . children . length ; h ++ ) a . children [ h ] . exists && ( a . children [ h ] . physicsType === c . GROUP ? this . collideGroupVsGroup ( a . children [ h ] , b , d , e , f , g ) : this . collideSpriteVsGroup ( a . children [ h ] , b , d , e , f , g ) ) } , separate : function ( a , b , c , d , e ) { if ( ! a . enable || ! b . enable || a . checkCollision . none || b . checkCollision . none || ! this . intersects ( a , b ) ) return ! 1 ; if ( c && c . call ( d , a . sprite , b . sprite ) === ! 1 ) return ! 1 ; if ( a . isCircle && b . isCircle ) return this . separateCircle ( a , b , e ) ; if ( a . isCircle !== b . isCircle ) { var f = a . isCircle ? b : a , g = a . isCircle ? a : b , h = { x : f . x , y : f . y , right : f . right , bottom : f . bottom } , i = { x : g . x + g . radius , y : g . y + g . radius } ; if ( ( i . y < h . y || i . y > h . bottom ) && ( i . x < h . x || i . x > h . right ) ) return this . separateCircle ( a , b , e ) } var j = ! 1 , k = ! 1 ; this . forceX || Math . abs ( this . gravity . y + a . gravity . y ) < Math . abs ( this . gravity . x + a . gravity . x ) ? ( j = this . separateX ( a , b , e ) , this . intersects ( a , b ) && ( k = this . separateY ( a , b , e ) ) ) : ( k = this . separateY ( a , b , e ) , this . intersects ( a , b ) && ( j = this . separateX ( a , b , e ) ) ) ; var l
} , impactHandler : function ( a ) { if ( a . bodyA . parent && a . bodyB . parent ) { var b = a . bodyA . parent , c = a . bodyB . parent ; b . _bodyCallbacks [ a . bodyB . id ] && b . _bodyCallbacks [ a . bodyB . id ] . call ( b . _bodyCallbackContext [ a . bodyB . id ] , b , c , a . shapeA , a . shapeB ) , c . _bodyCallbacks [ a . bodyA . id ] && c . _bodyCallbacks [ a . bodyA . id ] . call ( c . _bodyCallbackContext [ a . bodyA . id ] , c , b , a . shapeB , a . shapeA ) , b . _groupCallbacks [ a . shapeB . collisionGroup ] && b . _groupCallbacks [ a . shapeB . collisionGroup ] . call ( b . _groupCallbackContext [ a . shapeB . collisionGroup ] , b , c , a . shapeA , a . shapeB ) , c . _groupCallbacks [ a . shapeA . collisionGroup ] && c . _groupCallbacks [ a . shapeA . collisionGroup ] . call ( c . _groupCallbackContext [ a . shapeA . collisionGroup ] , c , b , a . shapeB , a . shapeA ) } } , beginContactHandler : function ( a ) { a . bodyA && a . bodyB && ( this . onBeginContact . dispatch ( a . bodyA , a . bodyB , a . shapeA , a . shapeB , a . contactEquations ) , a . bodyA . parent && a . bodyA . parent . onBeginContact . dispatch ( a . bodyB . parent , a . bodyB , a . shapeA , a . shapeB , a . contactEquations ) , a . bodyB . parent && a . bodyB . parent . onBeginContact . dispatch ( a . bodyA . parent , a . bodyA , a . shapeB , a . shapeA , a . contactEquations ) ) } , endContactHandler : function ( a ) { a . bodyA && a . bodyB && ( this . onEndContact . dispatch ( a . bodyA , a . bodyB , a . shapeA , a . shapeB ) , a . bodyA . parent && a . bodyA . parent . onEndContact . dispatch ( a . bodyB . parent , a . bodyB , a . shapeA , a . shapeB ) , a . bodyB . parent && a . bodyB . parent . onEndContact . dispatch ( a . bodyA . parent , a . bodyA , a . shapeB , a . shapeA ) ) } , setBoundsToWorld : function ( a , b , c , d , e ) { this . setBounds ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height , a , b , c , d , e ) } , setWorldMaterial : function ( a , b , c , d , e ) { void 0 === b && ( b = ! 0 ) , void 0 === c && ( c = ! 0 ) , void 0 === d && ( d = ! 0 ) , void 0 === e && ( e = ! 0 ) , b && this . walls . left && ( this . walls . left . shapes [ 0 ] . material = a ) , c && this . walls . right && ( this . walls . right . shapes [ 0 ] . material = a ) , d && this . walls . top && ( this . walls . top . shapes [ 0 ] . material = a ) , e && this . walls . bottom && ( this . walls . bottom . shapes [ 0 ] . material = a ) } , updateBoundsCollisionGroup : function ( a ) { void 0 === a && ( a = ! 0 ) ; var b = a ? this . boundsCollisionGroup . mask : this . everythingCollisionGroup . mask ; this . walls . left && ( this . walls . left . shapes [ 0 ] . collisionGroup = b ) , this . walls . right && ( this . walls . right . shapes [ 0 ] . collisionGroup = b ) , this . walls . top && ( this . walls . top . shapes [ 0 ] . collisionGroup = b ) , this . walls . bottom && ( this . walls . bottom . shapes [ 0 ] . collisionGroup = b ) , this . _boundsOwnGroup = a } , setBounds : function ( a , b , c , d , e , f , g , h , i ) { void 0 === e && ( e = this . _boundsLeft ) , void 0 === f && ( f = this . _boundsRight ) , void 0 === g && ( g = this . _boundsTop ) , void 0 === h && ( h = this . _boundsBottom ) , void 0 === i && ( i = this . _boundsOwnGroup ) , this . setupWall ( e , "left" , a , b , 1.5707963267948966 , i ) , this . setupWall ( f , "right" , a + c , b , - 1.5707963267948966 , i ) , this . setupWall ( g , "top" , a , b , - 3.141592653589793 , i ) , this . setupWall ( h , "bottom" , a , b + d , 0 , i ) , this . _boundsLeft = e , this . _boundsRight = f , this . _boundsTop = g , this . _boundsBottom = h , this . _boundsOwnGroup = i } , setupWall : function ( a , b , c , d , e , f ) { a ? ( this . walls [ b ] ? this . walls [ b ] . position = [ this . pxmi ( c ) , this . pxmi ( d ) ] : ( this . walls [ b ] = new p2 . Body ( { mass : 0 , position : [ this . pxmi ( c ) , this . pxmi ( d ) ] , angle : e } ) , this . walls [ b ] . addShape ( new p2 . Plane ) , this . world . addBody ( this . walls [ b ] ) ) , f && ( this . walls [ b ] . shapes [ 0 ] . collisionGroup = this . boundsCollisionGroup . mask ) ) : this . walls [ b ] && ( this . world . removeBody ( this . walls [ b ] ) , this . walls [ b ] = null ) } , pause : function ( ) { this . paused = ! 0 } , resume : function ( ) { this . paused = ! 1 } , update : function ( ) { this . paused || ( this . useElapsedTime ? this . world . step ( this . game . time . physicsElapsed ) : this . world . step ( this . frameRate ) ) } , reset : function ( ) { this . world . on ( "beginContact" , this . beginContactHandler , this ) , this . world . on ( "endContact" , this . endContactHandler , this ) , this . nothingCollisionGroup = new c . Physics . P2 . CollisionGroup ( 1 ) , this . boundsCollisionGroup = new c . Physics . P2 . CollisionGroup ( 2 ) , this . everythingCollisionGroup = new c . Physics . P2 . CollisionGroup ( 2147483648 ) , this . _collisionGroupID = 2 , this . setBoundsToWorld ( ! 0 , ! 0 , ! 0 , ! 0 , ! 1 ) } , clear : function ( ) { this . world . time = 0 , this . world . fixedStepTime = 0 , this . world . solver && this . world . solver . equations . length && this . world . solver . removeAllEquations ( ) ; for ( var a = this . world . constraints , b = a . length - 1 ; b >= 0 ; b -- ) this . world . removeConstraint ( a [ b ] ) ; for ( var c = this . world . bodies , b = c . length - 1 ; b >= 0 ; b -- ) this . world . removeBod
for ( l = [ ] , m = p2 . vec2 . create ( ) , e = n = 0 , o = b . vertices . length ; 0 <= o ? n < o : n > o ; e = 0 <= o ? ++ n : -- n ) k = b . vertices [ e ] , p2 . vec2 . rotate ( m , k , a ) , l . push ( [ ( m [ 0 ] + i [ 0 ] ) * this . ppu , - ( m [ 1 ] + i [ 1 ] ) * this . ppu ] ) ; this . drawConvex ( j , l , b . triangles , f , c , g , this . settings . debugPolygons , [ i [ 0 ] * this . ppu , - i [ 1 ] * this . ppu ] ) } d ++ } } } , drawRectangle : function ( a , b , c , d , e , f , g , h , i ) { void 0 === i && ( i = 1 ) , void 0 === g && ( g = 0 ) , a . lineStyle ( i , g , 1 ) , a . beginFill ( h ) , a . drawRect ( b - e / 2 , c - f / 2 , e , f ) } , drawCircle : function ( a , b , c , d , e , f , g ) { void 0 === g && ( g = 1 ) , void 0 === f && ( f = 16777215 ) , a . lineStyle ( g , 0 , 1 ) , a . beginFill ( f , 1 ) , a . drawCircle ( b , c , 2 * - e ) , a . endFill ( ) , a . moveTo ( b , c ) , a . lineTo ( b + e * Math . cos ( - d ) , c + e * Math . sin ( - d ) ) } , drawLine : function ( a , b , c , d ) { void 0 === d && ( d = 1 ) , void 0 === c && ( c = 0 ) , a . lineStyle ( 5 * d , c , 1 ) , a . moveTo ( - b / 2 , 0 ) , a . lineTo ( b / 2 , 0 ) } , drawConvex : function ( a , b , c , d , e , f , g , h ) { var i , j , k , l , m , n , o , p , q , r , s ; if ( void 0 === f && ( f = 1 ) , void 0 === d && ( d = 0 ) , g ) { for ( i = [ 16711680 , 65280 , 255 ] , j = 0 ; j !== b . length + 1 ; ) l = b [ j % b . length ] , m = b [ ( j + 1 ) % b . length ] , o = l [ 0 ] , r = l [ 1 ] , p = m [ 0 ] , s = m [ 1 ] , a . lineStyle ( f , i [ j % i . length ] , 1 ) , a . moveTo ( o , - r ) , a . lineTo ( p , - s ) , a . drawCircle ( o , - r , 2 * f ) , j ++ ; return a . lineStyle ( f , 0 , 1 ) , a . drawCircle ( h [ 0 ] , h [ 1 ] , 2 * f ) } for ( a . lineStyle ( f , d , 1 ) , a . beginFill ( e ) , j = 0 ; j !== b . length ; ) k = b [ j ] , n = k [ 0 ] , q = k [ 1 ] , 0 === j ? a . moveTo ( n , - q ) : a . lineTo ( n , - q ) , j ++ ; if ( a . endFill ( ) , b . length > 2 ) return a . moveTo ( b [ b . length - 1 ] [ 0 ] , - b [ b . length - 1 ] [ 1 ] ) , a . lineTo ( b [ 0 ] [ 0 ] , - b [ 0 ] [ 1 ] ) } , drawPath : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q , r ; for ( void 0 === e && ( e = 1 ) , void 0 === c && ( c = 0 ) , a . lineStyle ( e , c , 1 ) , "number" == typeof d && a . beginFill ( d ) , h = null , i = null , g = 0 ; g < b . length ; ) p = b [ g ] , q = p [ 0 ] , r = p [ 1 ] , q === h && r === i || ( 0 === g ? a . moveTo ( q , r ) : ( j = h , k = i , l = q , m = r , n = b [ ( g + 1 ) % b . length ] [ 0 ] , o = b [ ( g + 1 ) % b . length ] [ 1 ] , f = ( l - j ) * ( o - k ) - ( n - j ) * ( m - k ) , 0 !== f && a . lineTo ( q , r ) ) , h = q , i = r ) , g ++ ; "number" == typeof d && a . endFill ( ) , b . length > 2 && "number" == typeof d && ( a . moveTo ( b [ b . length - 1 ] [ 0 ] , b [ b . length - 1 ] [ 1 ] ) , a . lineTo ( b [ 0 ] [ 0 ] , b [ 0 ] [ 1 ] ) ) } , drawPlane : function ( a , b , c , d , e , f , g , h , i , j ) { var k , l , m ; void 0 === f && ( f = 1 ) , void 0 === d && ( d = 16777215 ) , a . lineStyle ( f , e , 11 ) , a . beginFill ( d ) , k = i , a . moveTo ( b , - c ) , l = b + Math . cos ( j ) * this . game . width , m = c + Math . sin ( j ) * this . game . height , a . lineTo ( l , - m ) , a . moveTo ( b , - c ) , l = b + Math . cos ( j ) * - this . game . width , m = c + Math . sin ( j ) * - this . game . height , a . lineTo ( l , - m ) } , drawCapsule : function ( a , b , c , d , e , f , g , h , i ) { void 0 === i && ( i = 1 ) , void 0 === g && ( g = 0 ) , a . lineStyle ( i , g , 1 ) ; var j = Math . cos ( d ) , k = Math . sin ( d ) ; a . beginFill ( h , 1 ) , a . drawCircle ( - e / 2 * j + b , - e / 2 * k + c , 2 * - f ) , a . drawCircle ( e / 2 * j + b , e / 2 * k + c , 2 * - f ) , a . endFill ( ) , a . lineStyle ( i , g , 0 ) , a . beginFill ( h , 1 ) , a . moveTo ( - e / 2 * j + f * k + b , - e / 2 * k + f * j + c ) , a . lineTo ( e / 2 * j + f * k + b , e / 2 * k + f * j + c ) , a . lineTo ( e / 2 * j - f * k + b , e / 2 * k - f * j + c ) , a . lineTo ( - e / 2 * j - f * k + b , - e / 2 * k - f * j + c ) , a . endFill ( ) , a . lineStyle ( i , g , 1 ) , a . moveTo ( - e / 2 * j + f * k + b , - e / 2 * k + f * j + c ) , a . lineTo ( e / 2 * j + f * k + b , e / 2 * k + f * j + c ) , a . moveTo ( - e / 2 * j - f * k + b , - e / 2 * k - f * j + c ) , a . lineTo ( e / 2 * j - f * k + b , e / 2 * k - f * j + c ) } , randomPastelHex : function ( ) { var a , b , c , d ; return c = [ 255 , 255 , 255 ] , d = Math . floor ( 256 * Math . random ( ) ) , b = Math . floor ( 256 * Math . random ( ) ) , a = Math . floor ( 256 * Math . random ( ) ) , d = Math . floor ( ( d + 3 * c [ 0 ] ) / 4 ) , b = Math . floor ( ( b + 3 * c [ 1 ] ) / 4 ) , a = Math . floor ( ( a + 3 * c [ 2 ] ) / 4 ) , this . rgbToHex ( d , b , a ) } , rgbToHex : function ( a , b , c ) { return this . componentToHex ( a ) + this . componentToHex ( b ) + this . componentToHex ( c ) } , componentToHex : function ( a ) { var b ; return b = a . toString ( 16 ) , 2 === b . length ? b : b + "0" } } ) , c . Physics . P2 . Spring = function ( a , b , c , d , e , f , g , h , i , j ) { this . game = a . game , this . world = a , void 0 === d && ( d = 1 ) , void 0 === e && ( e = 100 ) , void 0 === f && ( f = 1 ) , d = a . pxm ( d ) ; var k = { restLength : d , stiffness : e , damping : f } ; "undefined" != typeof g && null !== g && ( k . worldAnchorA = [ a . pxm ( g [ 0 ] ) , a . pxm ( g [ 1 ] ) ] ) , "undefined" != typeof h && null !== h && ( k . worldAnchorB = [ a . pxm ( h [ 0 ] ) , a . pxm ( h [ 1 ] ) ] ) , "undefined" != typeof i && null !== i && ( k . localAnchorA = [ a . pxm ( i [ 0 ] ) , a . pxm ( i [ 1 ] ) ] ) , "undefined" != typeof j && null !== j && ( k . localAnchorB = [ a . pxm ( j [ 0 ] ) , a . pxm ( j [ 1 ] ) ] ) , this . data = new p2 . LinearSpring ( b , c , k ) , this . data . parent = this } , c . Physics . P2 . Spring . prototype . constructor = c . Physics . P2 . Spring , c . Physics . P2 . RotationalSpring = function ( a , b , c , d , e , f ) { this . game = a . game , this . world = a , void 0 === d && ( d = null ) , void 0 === e && ( e = 100 ) , void 0 === f && ( f = 1 ) , d && ( d = a . pxm ( d ) ) ; var g = { restAngle : d , stiffness : e , damping : f } ; this . data = new p2 . RotationalSpring ( b , c , g ) , this . data . parent = this } , c . Physics . P2 . Spring . prototype . constructor = c . P
i = Math . floor ( ( i + c ) / g ) , j = Math . floor ( ( j + c ) / g ) , k = Math . floor ( ( k + d ) / h ) , l = Math . floor ( ( l + d ) / h ) , i <= j ) { this . context . clearRect ( i * g - c , 0 , ( j - i + 1 ) * g , f ) ; var m = Math . floor ( ( 0 + d ) / h ) , n = Math . floor ( ( f - 1 + d ) / h ) ; this . renderRegion ( c , d , i , m , j , n ) } if ( k <= l ) { this . context . clearRect ( 0 , k * h - d , e , ( l - k + 1 ) * h ) ; var o = Math . floor ( ( 0 + c ) / g ) , p = Math . floor ( ( e - 1 + c ) / g ) ; this . renderRegion ( c , d , o , k , p , l ) } } , c . TilemapLayer . prototype . renderFull = function ( ) { var a = this . _mc . scrollX , b = this . _mc . scrollY , c = this . canvas . width , d = this . canvas . height , e = this . _mc . tileWidth , f = this . _mc . tileHeight , g = Math . floor ( a / e ) , h = Math . floor ( ( c - 1 + a ) / e ) , i = Math . floor ( b / f ) , j = Math . floor ( ( d - 1 + b ) / f ) ; this . context . clearRect ( 0 , 0 , c , d ) , this . renderRegion ( a , b , g , i , h , j ) } , c . TilemapLayer . prototype . render = function ( ) { var a = ! 1 ; if ( this . visible ) { ( this . dirty || this . layer . dirty ) && ( this . layer . dirty = ! 1 , a = ! 0 ) ; var b = this . canvas . width , c = this . canvas . height , d = 0 | this . _scrollX , e = 0 | this . _scrollY , f = this . _mc , g = f . scrollX - d , h = f . scrollY - e ; if ( a || 0 !== g || 0 !== h || f . renderWidth !== b || f . renderHeight !== c ) return this . context . save ( ) , f . scrollX = d , f . scrollY = e , f . renderWidth === b && f . renderHeight === c || ( f . renderWidth = b , f . renderHeight = c ) , this . debug && ( this . context . globalAlpha = this . debugSettings . debugAlpha , this . debugSettings . forceFullRedraw && ( a = ! 0 ) ) , ! a && this . renderSettings . enableScrollDelta && Math . abs ( g ) + Math . abs ( h ) < Math . min ( b , c ) ? this . renderDeltaScroll ( g , h ) : this . renderFull ( ) , this . debug && ( this . context . globalAlpha = 1 , this . renderDebug ( ) ) , this . texture . baseTexture . dirty ( ) , this . dirty = ! 1 , this . context . restore ( ) , ! 0 } } , c . TilemapLayer . prototype . renderDebug = function ( ) { var a , b , c , d , e , f , g = this . _mc . scrollX , h = this . _mc . scrollY , i = this . context , j = this . canvas . width , k = this . canvas . height , l = this . layer . width , m = this . layer . height , n = this . _mc . tileWidth , o = this . _mc . tileHeight , p = Math . floor ( g / n ) , q = Math . floor ( ( j - 1 + g ) / n ) , r = Math . floor ( h / o ) , s = Math . floor ( ( k - 1 + h ) / o ) , t = p * n - g , u = r * o - h , v = ( p + ( 1 << 20 ) * l ) % l , w = ( r + ( 1 << 20 ) * m ) % m ; for ( i . strokeStyle = this . debugSettings . facingEdgeStroke , d = w , f = s - r , b = u ; f >= 0 ; d ++ , f -- , b += o ) { d >= m && ( d -= m ) ; var x = this . layer . data [ d ] ; for ( c = v , e = q - p , a = t ; e >= 0 ; c ++ , e -- , a += n ) { c >= l && ( c -= l ) ; var y = x [ c ] ; ! y || y . index < 0 || ! y . collides || ( this . debugSettings . collidingTileOverfill && ( i . fillStyle = this . debugSettings . collidingTileOverfill , i . fillRect ( a , b , this . _mc . cw , this . _mc . ch ) ) , this . debugSettings . facingEdgeStroke && ( i . beginPath ( ) , y . faceTop && ( i . moveTo ( a , b ) , i . lineTo ( a + this . _mc . cw , b ) ) , y . faceBottom && ( i . moveTo ( a , b + this . _mc . ch ) , i . lineTo ( a + this . _mc . cw , b + this . _mc . ch ) ) , y . faceLeft && ( i . moveTo ( a , b ) , i . lineTo ( a , b + this . _mc . ch ) ) , y . faceRight && ( i . moveTo ( a + this . _mc . cw , b ) , i . lineTo ( a + this . _mc . cw , b + this . _mc . ch ) ) , i . closePath ( ) , i . stroke ( ) ) ) } } } , Object . defineProperty ( c . TilemapLayer . prototype , "wrap" , { get : function ( ) { return this . _wrap } , set : function ( a ) { this . _wrap = a , this . dirty = ! 0 } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "scrollX" , { get : function ( ) { return this . _scrollX } , set : function ( a ) { this . _scrollX = a } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "scrollY" , { get : function ( ) { return this . _scrollY } , set : function ( a ) { this . _scrollY = a } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "collisionWidth" , { get : function ( ) { return this . _mc . cw } , set : function ( a ) { this . _mc . cw = 0 | a , this . dirty = ! 0 } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "collisionHeight" , { get : function ( ) { return this . _mc . ch } , set : function ( a ) { this . _mc . ch = 0 | a , this . dirty = ! 0 } } ) , c . TilemapParser = { INSERT _NULL : ! 1 , parse : function ( a , b , d , e , f , g ) { if ( void 0 === d && ( d = 32 ) , void 0 === e && ( e = 32 ) , void 0 === f && ( f = 10 ) , void 0 === g && ( g = 10 ) , void 0 === b ) return this . getEmptyData ( ) ; if ( null === b ) return this . getEmptyData ( d , e , f , g ) ; var h = a . cache . getTilemapData ( b ) ; if ( h ) { if ( h . format === c . Tilemap . CSV ) return this . parseCSV ( b , h . data , d , e ) ; if ( ! h . format || h . format === c . Tilemap . TILED _JSON ) return this . parseTiledJSON ( h . data ) } else console . warn ( "Phaser.TilemapParser.parse - No map data found for key " + b ) } , parseCSV : function ( a , b , d , e ) { var f = this . getEmptyData ( ) ; b = b . trim ( ) ; for ( var g = [ ] , h = b . split ( "\n" ) , i = h . length , j = 0 , k = 0 ; k < h . length ; k ++ ) { g [ k ] = [ ] ; for ( var l = h [ k ] . split ( "," ) , m = 0 ; m < l . length ; m ++ ) g [ k ] [ m ] = new c . Tile ( f . layers [ 0 ] , parseInt ( l [ m ] , 10 ) , m , k , d , e ) ; 0 === j && ( j = l . length ) } return f . format = c . Tilemap . CSV , f . name = a , f . width = j , f . height = i , f . tileWidth = d , f . tileHeight = e , f . widthInPi
} , c . Video = function ( a , b , d ) { if ( void 0 === b && ( b = null ) , void 0 === d && ( d = null ) , this . game = a , this . key = b , this . width = 0 , this . height = 0 , this . type = c . VIDEO , this . disableTextureUpload = ! 1 , this . touchLocked = ! 1 , this . onPlay = new c . Signal , this . onChangeSource = new c . Signal , this . onComplete = new c . Signal , this . onAccess = new c . Signal , this . onError = new c . Signal , this . onTimeout = new c . Signal , this . timeout = 15e3 , this . _timeOutID = null , this . video = null , this . videoStream = null , this . isStreaming = ! 1 , this . retryLimit = 20 , this . retry = 0 , this . retryInterval = 500 , this . _retryID = null , this . _codeMuted = ! 1 , this . _muted = ! 1 , this . _codePaused = ! 1 , this . _paused = ! 1 , this . _pending = ! 1 , this . _autoplay = ! 1 , this . _endCallback = null , this . _playCallback = null , b && this . game . cache . checkVideoKey ( b ) ) { var e = this . game . cache . getVideo ( b ) ; e . isBlob ? this . createVideoFromBlob ( e . data ) : this . video = e . data , this . width = this . video . videoWidth , this . height = this . video . videoHeight } else d && this . createVideoFromURL ( d , ! 1 ) ; this . video && ! d ? ( this . baseTexture = new PIXI . BaseTexture ( this . video ) , this . baseTexture . forceLoaded ( this . width , this . height ) ) : ( this . baseTexture = new PIXI . BaseTexture ( c . Cache . DEFAULT . baseTexture . source ) , this . baseTexture . forceLoaded ( this . width , this . height ) ) , this . texture = new PIXI . Texture ( this . baseTexture ) , this . textureFrame = new c . Frame ( 0 , 0 , 0 , this . width , this . height , "video" ) , this . texture . setFrame ( this . textureFrame ) , this . texture . valid = ! 1 , null !== b && this . video && ( this . texture . valid = this . video . canplay ) , this . snapshot = null , c . BitmapData && ( this . snapshot = new c . BitmapData ( this . game , "" , this . width , this . height ) ) , ! this . game . device . cocoonJS && ( this . game . device . iOS || this . game . device . android ) || window . PhaserGlobal && window . PhaserGlobal . fakeiOSTouchLock ? this . setTouchLock ( ) : e && ( e . locked = ! 1 ) } , c . Video . prototype = { connectToMediaStream : function ( a , b ) { return a && b && ( this . video = a , this . videoStream = b , this . isStreaming = ! 0 , this . baseTexture . source = this . video , this . updateTexture ( null , this . video . videoWidth , this . video . videoHeight ) , this . onAccess . dispatch ( this ) ) , this } , startMediaStream : function ( a , b , c ) { if ( void 0 === a && ( a = ! 1 ) , void 0 === b && ( b = null ) , void 0 === c && ( c = null ) , ! this . game . device . getUserMedia ) return this . onError . dispatch ( this , "No getUserMedia" ) , ! 1 ; null !== this . videoStream && ( this . videoStream . active ? this . videoStream . active = ! 1 : this . videoStream . stop ( ) ) , this . removeVideoElement ( ) , this . video = document . createElement ( "video" ) , this . video . setAttribute ( "autoplay" , "autoplay" ) , null !== b && ( this . video . width = b ) , null !== c && ( this . video . height = c ) , this . _timeOutID = window . setTimeout ( this . getUserMediaTimeout . bind ( this ) , this . timeout ) ; try { navigator . getUserMedia ( { audio : a , video : ! 0 } , this . getUserMediaSuccess . bind ( this ) , this . getUserMediaError . bind ( this ) ) } catch ( a ) { this . getUserMediaError ( a ) } return this } , getUserMediaTimeout : function ( ) { clearTimeout ( this . _timeOutID ) , this . onTimeout . dispatch ( this ) } , getUserMediaError : function ( a ) { clearTimeout ( this . _timeOutID ) , this . onError . dispatch ( this , a ) } , getUserMediaSuccess : function ( a ) { clearTimeout ( this . _timeOutID ) , this . videoStream = a , void 0 !== this . video . mozSrcObject ? this . video . mozSrcObject = a : this . video . src = window . URL && window . URL . createObjectURL ( a ) || a ; var b = this ; this . video . onloadeddata = function ( ) { function a ( ) { if ( c > 0 ) if ( b . video . videoWidth > 0 ) { var d = b . video . videoWidth , e = b . video . videoHeight ; isNaN ( b . video . videoHeight ) && ( e = d / ( 4 / 3 ) ) , b . video . play ( ) , b . isStreaming = ! 0 , b . baseTexture . source = b . video , b . updateTexture ( null , d , e ) , b . onAccess . dispatch ( b ) } else window . setTimeout ( a , 500 ) ; else console . warn ( "Unable to connect to video stream. Webcam error?" ) ; c -- } var c = 10 ; a ( ) } } , createVideoFromBlob : function ( a ) { var b = this ; return this . video = document . createElement ( "video" ) , this . video . controls = ! 1 , this . video . setAttribute ( "autoplay" , "autoplay" ) , this . video . addEventListener ( "loadeddata" , function ( a ) { b . updateTexture ( a ) } , ! 0 ) , this . video . src = window . URL . createObjectURL ( a ) , this . video . canplay = ! 0 , this } , createVideoFromURL : function ( a , b ) { return void 0 === b && ( b = ! 1 ) , this . texture && ( this . texture . valid = ! 1 ) , this . video = document . createElement ( "video" ) , this . video . controls = ! 1 , b && this . video . setAttribute ( "autoplay" , "autoplay" ) , this . video . src = a , this . video . canplay = ! 0 , this . video . load ( ) , this . retry = this . retryLimit , this . _retryID = window . setTimeout ( this .
2016-02-12 16:00:36 +00:00
//# sourceMappingURL=phaser-split.map