2016-05-19 11:36:51 +00:00
/* Phaser v2.4.8 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
2016-02-12 16:00:36 +00:00
2016-05-19 11:36:51 +00:00
( function ( ) { function a ( a , b ) { this . _scaleFactor = a , this . _deltaMode = b , this . originalEvent = null } var b = this , c = c || { VERSION : "2.4.8" , GAMES : [ ] , AUTO : 0 , CANVAS : 1 , WEBGL : 2 , HEADLESS : 3 , 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 , 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 0 > a ? 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 f ( a ) { return a && ( f . prototype = a ) , this instanceof f ? void 0 : new f } ( 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 ; c > e ; 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 = { getProperty : function ( a , b ) { for ( var c = b . split ( "." ) , d = c . pop ( ) , e = c . length , f = 1 , g = c [ 0 ] ; e > f && ( 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 ] ; f > g && ( 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 ; 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 ( b ) { 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 ) ; j > i ; 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 && Array . isArray ( d ) ? d : [ ] ) : g = d && c . Utils . isPlainObject ( d ) ? d : { } , h [ b ] = c . Utils . extend ( k , g , e ) ) : void 0 !== e && ( h [ b ] = e ) ) ; return h } , mixinPrototype : function ( a , b , c ) { void 0 === c && ( c = ! 1 ) ; for ( var d = Object . keys ( b ) , e = 0 ; e < d . length ; e ++ ) { var f = d [ e ] , g = b [ f ] ; ! c && f in a || ( ! g || "function" != typeof g . get && "function" != typeof g . set ? a [ f ] = g : "function" == typeof g . clone ? a [ f ] = g . clone ( ) : Object . defineProperty ( a , f , g ) ) } } , mixin : function ( a , b ) { if ( ! a || "object" != typeof a ) return b ; for ( var d in a ) { var e = a [ d
void 0 === c && ( c = ! 1 ) , ! this . fx || ! c && this . _fxDuration > 0 ? ! 1 : ( 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 ? ! 1 : ( 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 . target && this . updateTarget ( ) , 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 . copyFrom ( this . target . world ) , 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 . y = this . game . math . linear ( this . view . y , this . _targetPosition . y - this . deadzone . top , this . lerp . y ) : this . _edge > this . deadzone . bottom && ( this . view . y = this . game . math . linear ( this . view . y , this . _targetPosition . y - this . deadzone . bottom , this . lerp . y ) ) ) : ( this . view . x = this . game . math . linear ( this . view . x , this . _targetPosition . x - this . view . halfWidth , this . lerp . x ) , this . view . y = this . game . math . linear ( this . view . y , this . _targetPosition . y - this . view . halfHeight , this . lerp . y ) ) } , setBoundsToWorld : function ( ) { this . bounds && this . bounds . copyFrom ( this . game . world . bounds ) } , checkBounds : function ( ) { this . atLimit . x = ! 1 , this . atLimit . y = ! 1 ; var a = this . view . x + this . _shake . x , b = this . view . right + this . _shake . x , c = this . view . y + this . _shake . y , d = this . view . bottom + this . _shake . y ; a <= this . bounds . x * this . scale . x && ( this . atLimit . x = ! 0 , this . view . x = this . bounds . x * this . scale . x , this . _shake . shakeBounds || ( this . _shake . x = 0 ) ) , b >= this . bounds . right * this . scale . x && ( this . atLimit . x = ! 0 , this . view . x = this . bounds . right * this . scale . x - this . width , this . _shake . shakeBounds || ( this . _shake . x = 0 ) ) , c <= this . bounds . top * this . scale . y && ( this . atLimit . y = ! 0 , this . view . y = this . bounds . top * this . scale . y , this . _shake . shakeBounds || ( this . _shake . y = 0 ) ) , d >= this . bounds . bottom * this . scale . y && ( this . atLimit . y = ! 0 , this . view . y = this . bounds . bottom * this . scale . y - this . height , this . _shake . shakeBounds || ( this . _shake . y = 0 ) ) } , setPosition : function ( a , b ) { this . view . x = a , this . view . y = b , this . bounds && this . checkBounds ( ) } , setSize : function ( a , b ) { this . view . width = a , this . view . height = b } , reset : function ( ) { this . target = null , this . view . x = 0 , this . view . y = 0 , this . _shake . duration = 0 , this . resetFX ( ) } , resetFX : function ( ) { this . fx . clear ( ) , this . fx . alpha = 0 , this . _fxDuration = 0 } } , c . Camera . prototype . constructor = c . Camera , Object . defineProperty ( c . Camera . prototype , "x" , { get : function ( ) { return this . view . x } , set : function ( a ) { this . view . x = a , this . bounds && this . checkBounds ( ) } } ) , Object . defineProperty ( c . Camera . prototype , "y" , { get : function ( ) { return this . view . y } , set : function ( a ) { this . view . y = a , this . bounds && this . checkBounds ( ) } } ) , Object . defineProperty ( c . Camera . prototype , " position
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 = 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 ( var a = this . children . length ; a -- ; ) this . children [ a ] . postUpdate ( ) } , c . Group . prototype . filter = function ( a , b ) { for ( var d = - 1 , e = this . children . length , f = [ ] ; ++ d < e ; ) { var g = this . children [ d ] ; ( ! b || b && g . exists ) && a ( g , d , this . children ) && f . push ( g ) } return new c . ArraySet ( f ) } , c . Group . prototype . forEach = function ( a , b , c ) { if ( void 0 === c && ( c = ! 1 ) , arguments . length <= 3 ) for ( var d = 0 ; d < this . children . length ; d ++ ) ( ! c || c && this . children [ d ] . exists ) && a . call ( b , this . children [ d ] ) ; else { for ( var e = [ null ] , d = 3 ; d < arguments . length ; d ++ ) e . push ( arguments [ d ] ) ; for ( var d = 0 ; d < this . children . length ; d ++ ) ( ! c || c && this . children [ d ] . exists ) && ( e [ 0 ] = this . children [ d ] , a . apply ( b , e ) ) } } , c . Group . prototype . forEachExists = function ( a , b ) { var d ; if ( arguments . length > 2 ) { d = [ null ] ; for ( var e = 2 ; e < arguments . length ; e ++ ) d . push ( arguments [ e ] ) } this . iterate ( "exists" , ! 0 , c . Group . RETURN _TOTAL , a , b , d ) } , c . Group . prototype . forEachAlive = function ( a , b ) { var d ; if ( arguments . length > 2 ) { d = [ null ] ; for ( var e = 2 ; e < arguments . length ; e ++ ) d . push ( arguments [ e ] ) } this . iterate ( "alive" , ! 0 , c . Group . RETURN _TOTAL , a , b , d ) } , c . Group . prototype . forEachDead = function ( a , b ) { var d ; if ( arguments . length > 2 ) { d = [ null ] ; for ( var e = 2 ; e < arguments . length ; e ++ ) d . push ( arguments [ e ] ) } this . iterate ( "alive" , ! 1 , c . Group . RETURN _TOTAL , a , b , d ) } , c . Group . prototype . sort = function ( a , b ) { this . children . length < 2 || ( void 0 === a && ( a = "z" ) , void 0 === b && ( b = c . Group . SORT _ASCENDING ) , this . _sortProperty = a , b === c . Group . SORT _ASCENDING ? this . children . sort ( this . ascendingSortHandler . bind ( this ) ) : this . children . sort ( this . descendingSortHandler . bind ( this ) ) , this . updateZ ( ) ) } , c . Group . prototype . customSort = function ( a , b ) { this . children . length < 2 || ( this . children . sort ( a . bind ( b ) ) , this . updateZ ( ) ) } , c . Group . prototype . ascendingSortHandler = function ( a , b ) { return a [ this . _sortProperty ] < b [ this . _sortProperty ] ? - 1 : a [ this . _sortProperty ] > b [ this . _sortProperty ] ? 1 : a . z < b . z ? - 1 : 1 } , c . Group . prototype . descendingSortHandler = function ( a , b ) { return a [ this . _sortProperty ] < b [ this . _sortProperty ] ? 1 : a [ this . _sortProperty ] > b [ this . _sortProperty ] ? - 1 : 0 } , c . Group . prototype . iterate = function ( a , b , d , e , f , g ) { if ( d === c . Group . RETURN _TOTAL && 0 === this . children . length ) return 0 ; for ( var h = 0 , i = 0 ; i < this . children . length ; i ++ ) if ( this . children [ i ] [ a ] === b && ( h ++ , e && ( g ? ( g [ 0 ] = this . children [ i ] , e . apply ( f , g ) ) : e . call ( f , this . children [ i ] ) ) , d === c . Group . RETURN _CHILD ) ) return this . children [ i ] ; return d === c . Group . RETURN _TOTAL ? h : null } , c . Group . prototype . getFirstExists = function ( a , b , d , e , f , g ) { void 0 === b && ( b = ! 1 ) , "boolean" != typeof a && ( a = ! 0 ) ; var h = this . iterate ( "exists" , a , c . Group . RETURN _CHILD ) ; return
document . exitPointerLock = document . exitPointerLock || document . mozExitPointerLock || document . webkitExitPointerLock , document . exitPointerLock ( ) , document . removeEventListener ( "pointerlockchange" , this . _pointerLockChange , ! 0 ) , document . removeEventListener ( "mozpointerlockchange" , this . _pointerLockChange , ! 0 ) , document . removeEventListener ( "webkitpointerlockchange" , this . _pointerLockChange , ! 0 ) } , stop : function ( ) { var a = this . game . canvas ; a . removeEventListener ( "mousedown" , this . _onMouseDown , ! 0 ) , a . removeEventListener ( "mousemove" , this . _onMouseMove , ! 0 ) , a . removeEventListener ( "mouseup" , this . _onMouseUp , ! 0 ) , a . removeEventListener ( "mouseover" , this . _onMouseOver , ! 0 ) , a . removeEventListener ( "mouseout" , this . _onMouseOut , ! 0 ) ; var b = this . game . device . wheelEvent ; b && a . removeEventListener ( b , this . _onMouseWheel , ! 0 ) , window . removeEventListener ( "mouseup" , this . _onMouseUpGlobal , ! 0 ) , window . removeEventListener ( "mouseout" , this . _onMouseOutGlobal , ! 0 ) , document . removeEventListener ( "pointerlockchange" , this . _pointerLockChange , ! 0 ) , document . removeEventListener ( "mozpointerlockchange" , this . _pointerLockChange , ! 0 ) , document . removeEventListener ( "webkitpointerlockchange" , this . _pointerLockChange , ! 0 ) } } , c . Mouse . prototype . constructor = c . Mouse , a . prototype = { } , a . prototype . constructor = a , a . prototype . bindEvent = function ( b ) { if ( ! a . _stubsGenerated && b ) { var c = function ( a ) { return function ( ) { var b = this . originalEvent [ a ] ; return "function" != typeof b ? b : b . bind ( this . originalEvent ) } } ; for ( var d in b ) d in a . prototype || Object . defineProperty ( a . prototype , d , { get : c ( d ) } ) ; a . _stubsGenerated = ! 0 } return this . originalEvent = b , this } , Object . defineProperties ( a . prototype , { type : { value : "wheel" } , deltaMode : { get : function ( ) { return this . _deltaMode } } , deltaY : { get : function ( ) { return this . _scaleFactor * ( this . originalEvent . wheelDelta || this . originalEvent . detail ) || 0 } } , deltaX : { get : function ( ) { return this . _scaleFactor * this . originalEvent . wheelDeltaX || 0 } } , deltaZ : { value : 0 } } ) , c . MSPointer = function ( a ) { this . game = a , this . input = a . input , this . callbackContext = this . game , this . pointerDownCallback = null , this . pointerMoveCallback = null , this . pointerUpCallback = null , this . capture = ! 0 , this . button = - 1 , this . event = null , this . enabled = ! 0 , this . _onMSPointerDown = null , this . _onMSPointerMove = null , this . _onMSPointerUp = null , this . _onMSPointerUpGlobal = null , this . _onMSPointerOut = null , this . _onMSPointerOver = null } , c . MSPointer . prototype = { start : function ( ) { if ( null === this . _onMSPointerDown ) { var a = this ; if ( this . game . device . mspointer ) { this . _onMSPointerDown = function ( b ) { return a . onPointerDown ( b ) } , this . _onMSPointerMove = function ( b ) { return a . onPointerMove ( b ) } , this . _onMSPointerUp = function ( b ) { return a . onPointerUp ( b ) } , this . _onMSPointerUpGlobal = function ( b ) { return a . onPointerUpGlobal ( b ) } , this . _onMSPointerOut = function ( b ) { return a . onPointerOut ( b ) } , this . _onMSPointerOver = function ( b ) { return a . onPointerOver ( b ) } ; var b = this . game . canvas ; b . addEventListener ( "MSPointerDown" , this . _onMSPointerDown , ! 1 ) , b . addEventListener ( "MSPointerMove" , this . _onMSPointerMove , ! 1 ) , b . addEventListener ( "MSPointerUp" , this . _onMSPointerUp , ! 1 ) , b . addEventListener ( "pointerdown" , this . _onMSPointerDown , ! 1 ) , b . addEventListener ( "pointermove" , this . _onMSPointerMove , ! 1 ) , b . addEventListener ( "pointerup" , this . _onMSPointerUp , ! 1 ) , b . style [ "-ms-content-zooming" ] = "none" , b . style [ "-ms-touch-action" ] = "none" , this . game . device . cocoonJS || ( window . addEventListener ( "MSPointerUp" , this . _onMSPointerUpGlobal , ! 0 ) , b . addEventListener ( "MSPointerOver" , this . _onMSPointerOver , ! 0 ) , b . addEventListener ( "MSPointerOut" , this . _onMSPointerOut , ! 0 ) , window . addEventListener ( "pointerup" , this . _onMSPointerUpGlobal , ! 0 ) , b . addEventListener ( "pointerover" , this . _onMSPointerOver , ! 0 ) , b . addEventListener ( "pointerout" , this . _onMSPointerOut , ! 0 ) ) } } } , onPointerDown : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . pointerDownCallback && this . pointerDownCallback . call ( this . callbackContext , a ) , this . input . enabled && this . enabled && ( a . identifier = a . pointerId , "mouse" === a . pointerType || 4 === a . pointerType ? this . input . mousePointer . start ( a ) : this . input . startPointer ( a ) ) } , onPointerMove : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . pointerMoveCallback && this . pointerMoveCallback . call ( this . callbackContext , a ) , this . input . enabled && this .
this . sprite . cameraOffset . y = this . globalToLocalY ( a . y ) + ( this . sprite . cameraOffset . y - d . centerY ) } this . _dragPoint . setTo ( this . sprite . cameraOffset . x - a . x , this . sprite . cameraOffset . y - a . y ) } else { if ( this . dragFromCenter ) { var d = this . sprite . getBounds ( ) ; this . sprite . x = this . globalToLocalX ( a . x ) + ( this . sprite . x - d . centerX ) , this . sprite . y = this . globalToLocalY ( a . y ) + ( this . sprite . y - d . centerY ) } this . _dragPoint . setTo ( this . sprite . x - this . globalToLocalX ( a . x ) , this . sprite . y - this . globalToLocalY ( a . y ) ) } this . updateDrag ( a , ! 0 ) , this . bringToTop && ( this . _dragPhase = ! 0 , this . sprite . bringToTop ( ) ) , this . dragStartPoint . set ( b , c ) , this . sprite . events . onDragStart$dispatch ( this . sprite , a , b , c ) } , globalToLocalX : function ( a ) { return this . scaleLayer && ( a -= this . game . scale . grid . boundsFluid . x , a *= this . game . scale . grid . scaleFluidInversed . x ) , a } , globalToLocalY : function ( a ) { return this . scaleLayer && ( a -= this . game . scale . grid . boundsFluid . y , a *= this . game . scale . grid . scaleFluidInversed . y ) , a } , stopDrag : function ( a ) { this . isDragged = ! 1 , this . _draggedPointerID = - 1 , this . _pointerData [ a . id ] . isDragged = ! 1 , this . _dragPhase = ! 1 , this . snapOnRelease && ( this . sprite . fixedToCamera ? ( this . sprite . cameraOffset . x = Math . round ( ( this . sprite . cameraOffset . x - this . snapOffsetX % this . snapX ) / this . snapX ) * this . snapX + this . snapOffsetX % this . snapX , this . sprite . cameraOffset . y = Math . round ( ( this . sprite . cameraOffset . y - this . snapOffsetY % this . snapY ) / this . snapY ) * this . snapY + this . snapOffsetY % this . snapY ) : ( this . sprite . x = Math . round ( ( this . sprite . x - this . snapOffsetX % this . snapX ) / this . snapX ) * this . snapX + this . snapOffsetX % this . snapX , this . sprite . y = Math . round ( ( this . sprite . y - this . snapOffsetY % this . snapY ) / this . snapY ) * this . snapY + this . snapOffsetY % this . snapY ) ) , this . sprite . events . onDragStop$dispatch ( this . sprite , a ) , this . checkPointerOver ( a ) === ! 1 && this . _pointerOutHandler ( a ) } , setDragLock : function ( a , b ) { void 0 === a && ( a = ! 0 ) , void 0 === b && ( b = ! 0 ) , this . allowHorizontalDrag = a , this . allowVerticalDrag = b } , enableSnap : function ( a , b , c , d , e , f ) { void 0 === c && ( c = ! 0 ) , void 0 === d && ( d = ! 1 ) , void 0 === e && ( e = 0 ) , void 0 === f && ( f = 0 ) , this . snapX = a , this . snapY = b , this . snapOffsetX = e , this . snapOffsetY = f , this . snapOnDrag = c , this . snapOnRelease = d } , disableSnap : function ( ) { this . snapOnDrag = ! 1 , this . snapOnRelease = ! 1 } , checkBoundsRect : function ( ) { this . sprite . fixedToCamera ? ( this . sprite . cameraOffset . x < this . boundsRect . left ? this . sprite . cameraOffset . x = this . boundsRect . left : this . sprite . cameraOffset . x + this . sprite . width > this . boundsRect . right && ( this . sprite . cameraOffset . x = this . boundsRect . right - this . sprite . width ) , this . sprite . cameraOffset . y < this . boundsRect . top ? this . sprite . cameraOffset . y = this . boundsRect . top : this . sprite . cameraOffset . y + this . sprite . height > this . boundsRect . bottom && ( this . sprite . cameraOffset . y = this . boundsRect . bottom - this . sprite . height ) ) : ( this . sprite . left < this . boundsRect . left ? this . sprite . x = this . boundsRect . x + this . sprite . offsetX : this . sprite . right > this . boundsRect . right && ( this . sprite . x = this . boundsRect . right - ( this . sprite . width - this . sprite . offsetX ) ) , this . sprite . top < this . boundsRect . top ? this . sprite . y = this . boundsRect . top + this . sprite . offsetY : this . sprite . bottom > this . boundsRect . bottom && ( this . sprite . y = this . boundsRect . bottom - ( this . sprite . height - this . sprite . offsetY ) ) ) } , checkBoundsSprite : function ( ) { this . sprite . fixedToCamera && this . boundsSprite . fixedToCamera ? ( this . sprite . cameraOffset . x < this . boundsSprite . cameraOffset . x ? this . sprite . cameraOffset . x = this . boundsSprite . cameraOffset . x : this . sprite . cameraOffset . x + this . sprite . width > this . boundsSprite . cameraOffset . x + this . boundsSprite . width && ( this . sprite . cameraOffset . x = this . boundsSprite . cameraOffset . x + this . boundsSprite . width - this . sprite . width ) , this . sprite . cameraOffset . y < this . boundsSprite . cameraOffset . y ? this . sprite . cameraOffset . y = this . boundsSprite . cameraOffset . y : this . sprite . cameraOffset . y + this . sprite . height > this . boundsSprite . cameraOffset . y + this . boundsSprite . height && ( this . sprite . cameraOffset . y = this . boundsSprite . cameraOffset . y + this . boundsSprite . height - this . sprite . height ) ) : ( this . sprite . left < this . boundsSprite . left ? this . sprite . x = this . boundsSprite . left + this . sprite . offsetX : this . sprite . right > this . boundsSprite . right && ( this . sprite . x = this . boundsSprite . right - ( this . sprite . width - this . sprite . offsetX ) ) , this . sprite . top < this . boundsSprite . top ? this . sprite
this . outOfCameraBoundsKill ) return this . kill ( ) , ! 1 ; if ( this . checkWorldBounds ) if ( this . _outOfBoundsFired && this . game . world . bounds . intersects ( this . _bounds ) ) this . _outOfBoundsFired = ! 1 , this . events . onEnterBounds$dispatch ( this ) ; else if ( ! this . _outOfBoundsFired && ! this . game . world . bounds . intersects ( this . _bounds ) && ( this . _outOfBoundsFired = ! 0 , this . events . onOutOfBounds$dispatch ( this ) , this . outOfBoundsKill ) ) return this . kill ( ) , ! 1 } return ! 0 } , c . Component . InWorld . prototype = { checkWorldBounds : ! 1 , outOfBoundsKill : ! 1 , outOfCameraBoundsKill : ! 1 , _outOfBoundsFired : ! 1 , inWorld : { get : function ( ) { return this . game . world . bounds . intersects ( this . getBounds ( ) ) } } } , c . Component . LifeSpan = function ( ) { } , c . Component . LifeSpan . preUpdate = function ( ) { return this . lifespan > 0 && ( this . lifespan -= this . game . time . physicsElapsedMS , this . lifespan <= 0 ) ? ( this . kill ( ) , ! 1 ) : ! 0 } , c . Component . LifeSpan . prototype = { alive : ! 0 , lifespan : 0 , revive : function ( a ) { return void 0 === a && ( a = 100 ) , this . alive = ! 0 , this . exists = ! 0 , this . visible = ! 0 , "function" == typeof this . setHealth && this . setHealth ( a ) , this . events && this . events . onRevived$dispatch ( this ) , this } , kill : function ( ) { return this . alive = ! 1 , this . exists = ! 1 , this . visible = ! 1 , this . events && this . events . onKilled$dispatch ( this ) , this } } , c . Component . LoadTexture = function ( ) { } , c . Component . LoadTexture . prototype = { customRender : ! 1 , _frame : null , loadTexture : function ( a , b , d ) { a === c . PENDING _ATLAS ? ( a = b , b = 0 ) : b = b || 0 , ( d || void 0 === d ) && this . animations && this . animations . stop ( ) , this . key = a , this . customRender = ! 1 ; var e = this . game . cache , f = ! 0 , g = ! this . texture . baseTexture . scaleMode ; if ( c . RenderTexture && a instanceof c . RenderTexture ) this . key = a . key , this . setTexture ( a ) ; else if ( c . BitmapData && a instanceof c . BitmapData ) this . customRender = ! 0 , this . setTexture ( a . texture ) , f = e . hasFrameData ( a . key , c . Cache . BITMAPDATA ) ? ! this . animations . loadFrameData ( e . getFrameData ( a . key , c . Cache . BITMAPDATA ) , b ) : ! this . animations . loadFrameData ( a . frameData , 0 ) ; else if ( c . Video && a instanceof c . Video ) { this . customRender = ! 0 ; var h = a . texture . valid ; this . setTexture ( a . texture ) , this . setFrame ( a . texture . frame . clone ( ) ) , a . onChangeSource . add ( this . resizeFrame , this ) , this . texture . valid = h } else if ( c . Tilemap && a instanceof c . TilemapLayer ) this . setTexture ( PIXI . Texture . fromCanvas ( a . canvas ) ) ; else if ( a instanceof PIXI . Texture ) this . setTexture ( a ) ; else { var i = e . getImage ( a , ! 0 ) ; this . key = i . key , this . setTexture ( new PIXI . Texture ( i . base ) ) , "__default" === a ? this . texture . baseTexture . skipRender = ! 0 : this . texture . baseTexture . skipRender = ! 1 , f = ! this . animations . loadFrameData ( i . frameData , b ) } f && ( this . _frame = c . Rectangle . clone ( this . texture . frame ) ) , g || ( this . texture . baseTexture . scaleMode = 1 ) } , setFrame : function ( a ) { this . _frame = a , this . texture . frame . x = a . x , this . texture . frame . y = a . y , this . texture . frame . width = a . width , this . texture . frame . height = a . height , this . texture . crop . x = a . x , this . texture . crop . y = a . y , this . texture . crop . width = a . width , this . texture . crop . height = a . height , a . trimmed ? ( this . texture . trim ? ( this . texture . trim . x = a . spriteSourceSizeX , this . texture . trim . y = a . spriteSourceSizeY , this . texture . trim . width = a . sourceSizeW , this . texture . trim . height = a . sourceSizeH ) : this . texture . trim = { x : a . spriteSourceSizeX , y : a . spriteSourceSizeY , width : a . sourceSizeW , height : a . sourceSizeH } , this . texture . width = a . sourceSizeW , this . texture . height = a . sourceSizeH , this . texture . frame . width = a . sourceSizeW , this . texture . frame . height = a . sourceSizeH ) : ! a . trimmed && this . texture . trim && ( this . texture . trim = null ) , this . cropRect && this . updateCrop ( ) , this . texture . requiresReTint = ! 0 , this . texture . _updateUvs ( ) , this . tilingTexture && ( this . refreshTexture = ! 0 ) } , resizeFrame : function ( a , b , c ) { this . texture . frame . resize ( b , c ) , this . texture . setFrame ( this . texture . frame ) } , resetFrame : function ( ) { this . _frame && this . setFrame ( this . _frame ) } , frame : { get : function ( ) { return this . animations . frame } , set : function ( a ) { this . animations . frame = a } } , frameName : { get : function ( ) { return this . animations . frameName } , set : function ( a ) { this . animations . frameName = a } } } , c . Component . Overlap = function ( ) { } , c . Component . Overlap . prototype = { overlap : function ( a ) { return c . Rectangle . intersects ( this . getBounds ( ) , a . getBounds ( ) ) } } , c . Component . PhysicsBody = function ( ) { } , c . Component . PhysicsBody . preUpdate = function ( ) { return this . fresh && this . exists ? ( this . world . setTo ( this . parent . po
} , set : function ( a ) { this . context . globalCompositeOperation = a } } ) , c . BitmapData . getTransform = function ( a , b , c , d , e , f ) { return "number" != typeof a && ( a = 0 ) , "number" != typeof b && ( b = 0 ) , "number" != typeof c && ( c = 1 ) , "number" != typeof d && ( d = 1 ) , "number" != typeof e && ( e = 0 ) , "number" != typeof f && ( f = 0 ) , { sx : c , sy : d , scaleX : c , scaleY : d , skewX : e , skewY : f , translateX : a , translateY : b , tx : a , ty : b } } , c . BitmapData . prototype . constructor = c . BitmapData , PIXI . Graphics = function ( ) { PIXI . DisplayObjectContainer . call ( this ) , this . renderable = ! 0 , this . fillAlpha = 1 , this . lineWidth = 0 , this . lineColor = 0 , this . graphicsData = [ ] , this . tint = 16777215 , this . blendMode = PIXI . blendModes . NORMAL , this . currentPath = null , this . _webGL = [ ] , this . isMask = ! 1 , this . boundsPadding = 0 , this . _localBounds = new PIXI . Rectangle ( 0 , 0 , 1 , 1 ) , this . dirty = ! 0 , this . webGLDirty = ! 1 , this . cachedSpriteDirty = ! 1 } , PIXI . Graphics . prototype = Object . create ( PIXI . DisplayObjectContainer . prototype ) , PIXI . Graphics . prototype . constructor = PIXI . Graphics , PIXI . Graphics . prototype . lineStyle = function ( a , b , c ) { return this . lineWidth = a || 0 , this . lineColor = b || 0 , this . lineAlpha = void 0 === c ? 1 : c , this . currentPath && ( this . currentPath . shape . points . length ? this . drawShape ( new PIXI . Polygon ( this . currentPath . shape . points . slice ( - 2 ) ) ) : ( this . currentPath . lineWidth = this . lineWidth , this . currentPath . lineColor = this . lineColor , this . currentPath . lineAlpha = this . lineAlpha ) ) , this } , PIXI . Graphics . prototype . moveTo = function ( a , b ) { return this . drawShape ( new PIXI . Polygon ( [ a , b ] ) ) , this } , PIXI . Graphics . prototype . lineTo = function ( a , b ) { return this . currentPath || this . moveTo ( 0 , 0 ) , this . currentPath . shape . points . push ( a , b ) , this . dirty = ! 0 , this } , PIXI . Graphics . prototype . quadraticCurveTo = function ( a , b , c , d ) { this . currentPath ? 0 === this . currentPath . shape . points . length && ( this . currentPath . shape . points = [ 0 , 0 ] ) : this . moveTo ( 0 , 0 ) ; var e , f , g = 20 , h = this . currentPath . shape . points ; 0 === h . length && this . moveTo ( 0 , 0 ) ; for ( var i = h [ h . length - 2 ] , j = h [ h . length - 1 ] , k = 0 , l = 1 ; g >= l ; ++ l ) k = l / g , e = i + ( a - i ) * k , f = j + ( b - j ) * k , h . push ( e + ( a + ( c - a ) * k - e ) * k , f + ( b + ( d - b ) * k - f ) * k ) ; return this . dirty = ! 0 , this } , PIXI . Graphics . prototype . bezierCurveTo = function ( a , b , c , d , e , f ) { this . currentPath ? 0 === this . currentPath . shape . points . length && ( this . currentPath . shape . points = [ 0 , 0 ] ) : this . moveTo ( 0 , 0 ) ; for ( var g , h , i , j , k , l = 20 , m = this . currentPath . shape . points , n = m [ m . length - 2 ] , o = m [ m . length - 1 ] , p = 0 , q = 1 ; l >= q ; ++ q ) p = q / l , g = 1 - p , h = g * g , i = h * g , j = p * p , k = j * p , m . push ( i * n + 3 * h * p * a + 3 * g * j * c + k * e , i * o + 3 * h * p * b + 3 * g * j * d + k * f ) ; return this . dirty = ! 0 , this } , PIXI . Graphics . prototype . arcTo = function ( a , b , c , d , e ) { this . currentPath ? 0 === this . currentPath . shape . points . length && this . currentPath . shape . points . push ( a , b ) : this . moveTo ( a , b ) ; var f = this . currentPath . shape . points , g = f [ f . length - 2 ] , h = f [ f . length - 1 ] , i = h - b , j = g - a , k = d - b , l = c - a , m = Math . abs ( i * l - j * k ) ; if ( 1e-8 > m || 0 === e ) ( f [ f . length - 2 ] !== a || f [ f . length - 1 ] !== b ) && f . push ( a , b ) ; else { var n = i * i + j * j , o = k * k + l * l , p = i * k + j * l , q = e * Math . sqrt ( n ) / m , r = e * Math . sqrt ( o ) / m , s = q * p / n , t = r * p / o , u = q * l + r * j , v = q * k + r * i , w = j * ( r + s ) , x = i * ( r + s ) , y = l * ( q + t ) , z = k * ( q + t ) , A = Math . atan2 ( x - v , w - u ) , B = Math . atan2 ( z - v , y - u ) ; this . arc ( u + a , v + b , e , A , B , j * k > l * i ) } return this . dirty = ! 0 , this } , PIXI . Graphics . prototype . arc = function ( a , b , c , d , e , f , g ) { if ( d === e ) return this ; void 0 === f && ( f = ! 1 ) , void 0 === g && ( g = 40 ) , ! f && d >= e ? e += 2 * Math . PI : f && e >= d && ( d += 2 * Math . PI ) ; var h = f ? - 1 * ( d - e ) : e - d , i = Math . ceil ( Math . abs ( h ) / ( 2 * Math . PI ) ) * g ; if ( 0 === h ) return this ; var j = a + Math . cos ( d ) * c , k = b + Math . sin ( d ) * c ; f && this . filling ? this . moveTo ( a , b ) : this . moveTo ( j , k ) ; for ( var l = this . currentPath . shape . points , m = h / ( 2 * i ) , n = 2 * m , o = Math . cos ( m ) , p = Math . sin ( m ) , q = i - 1 , r = q % 1 / q , s = 0 ; q >= s ; s ++ ) { var t = s + r * s , u = m + d + n * t , v = Math . cos ( u ) , w = - Math . sin ( u ) ; l . push ( ( o * v + p * w ) * c + a , ( o * - w + p * v ) * c + b ) } return this . dirty = ! 0 , this } , PIXI . Graphics . prototype . beginFill = function ( a , b ) { return this . filling = ! 0 , this . fillColor = a || 0 , this . fillAlpha = void 0 === b ? 1 : b , this . currentPath && this . currentPath . shape . points . length <= 2 && ( this . currentPath . fill = this . filling , this . currentPath . fillColor = this . fillColor , this . currentPath . fillAlpha = this . fillAlpha ) , this } , PIXI . Graphics . prototype . endFill = function ( ) { return this . filling = ! 1 , this . fillColor = null , this . fillAlpha = 1 , this } , PIXI . Graphics . prototype . drawRect = function ( a , b , c , d ) { return this . drawShape ( new PIXI . Rectangle ( a , b , c , d ) ) , this } , PIXI . Graphics . prototype . drawRoundedRect = function ( a , b
c . Graphics . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . Graphics . prototype . preUpdateCore = c . Component . Core . preUpdate , c . Graphics . prototype . preUpdate = function ( ) { return this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ? this . preUpdateCore ( ) : ! 1 } , c . Graphics . prototype . destroy = function ( a ) { this . clear ( ) , c . Component . Destroy . prototype . destroy . call ( this , a ) } , c . Graphics . prototype . drawTriangle = function ( a , b ) { void 0 === b && ( b = ! 1 ) ; var d = new c . Polygon ( a ) ; if ( b ) { var e = new c . Point ( this . game . camera . x - a [ 0 ] . x , this . game . camera . y - a [ 0 ] . y ) , f = new c . Point ( a [ 1 ] . x - a [ 0 ] . x , a [ 1 ] . y - a [ 0 ] . y ) , g = new c . Point ( a [ 1 ] . x - a [ 2 ] . x , a [ 1 ] . y - a [ 2 ] . y ) , h = g . cross ( f ) ; e . dot ( h ) > 0 && this . drawPolygon ( d ) } else this . drawPolygon ( d ) } , c . Graphics . prototype . drawTriangles = function ( a , b , d ) { void 0 === d && ( d = ! 1 ) ; var e , f = new c . Point , g = new c . Point , h = new c . Point , i = [ ] ; if ( b ) if ( a [ 0 ] instanceof c . Point ) for ( e = 0 ; e < b . length / 3 ; e ++ ) i . push ( a [ b [ 3 * e ] ] ) , i . push ( a [ b [ 3 * e + 1 ] ] ) , i . push ( a [ b [ 3 * e + 2 ] ] ) , 3 === i . length && ( this . drawTriangle ( i , d ) , i = [ ] ) ; else for ( e = 0 ; e < b . length ; e ++ ) f . x = a [ 2 * b [ e ] ] , f . y = a [ 2 * b [ e ] + 1 ] , i . push ( f . copyTo ( { } ) ) , 3 === i . length && ( this . drawTriangle ( i , d ) , i = [ ] ) ; else if ( a [ 0 ] instanceof c . Point ) for ( e = 0 ; e < a . length / 3 ; e ++ ) this . drawTriangle ( [ a [ 3 * e ] , a [ 3 * e + 1 ] , a [ 3 * e + 2 ] ] , d ) ; else for ( e = 0 ; e < a . length / 6 ; e ++ ) f . x = a [ 6 * e + 0 ] , f . y = a [ 6 * e + 1 ] , g . x = a [ 6 * e + 2 ] , g . y = a [ 6 * e + 3 ] , h . x = a [ 6 * e + 4 ] , h . y = a [ 6 * e + 5 ] , this . drawTriangle ( [ f , g , h ] , d ) } , c . RenderTexture = function ( a , b , d , e , f , g ) { void 0 === e && ( e = "" ) , void 0 === f && ( f = c . scaleModes . DEFAULT ) , void 0 === g && ( g = 1 ) , this . game = a , this . key = e , this . type = c . RENDERTEXTURE , this . _tempMatrix = new PIXI . Matrix , PIXI . RenderTexture . call ( this , b , d , this . game . renderer , f , g ) , this . render = c . RenderTexture . prototype . render } , c . RenderTexture . prototype = Object . create ( PIXI . RenderTexture . prototype ) , c . RenderTexture . prototype . constructor = c . RenderTexture , c . RenderTexture . prototype . renderXY = function ( a , b , c , d ) { a . updateTransform ( ) , this . _tempMatrix . copyFrom ( a . worldTransform ) , this . _tempMatrix . tx = b , this . _tempMatrix . ty = c , this . renderer . type === PIXI . WEBGL _RENDERER ? this . renderWebGL ( a , this . _tempMatrix , d ) : this . renderCanvas ( a , this . _tempMatrix , d ) } , c . RenderTexture . prototype . renderRawXY = function ( a , b , c , d ) { this . _tempMatrix . identity ( ) . translate ( b , c ) , this . renderer . type === PIXI . WEBGL _RENDERER ? this . renderWebGL ( a , this . _tempMatrix , d ) : this . renderCanvas ( a , this . _tempMatrix , d ) } , c . RenderTexture . prototype . render = function ( a , b , c ) { void 0 === b || null === b ? this . _tempMatrix . copyFrom ( a . worldTransform ) : this . _tempMatrix . copyFrom ( b ) , this . renderer . type === PIXI . WEBGL _RENDERER ? this . renderWebGL ( a , this . _tempMatrix , c ) : this . renderCanvas ( a , this . _tempMatrix , c ) } , c . Text = function ( a , b , d , e , f ) { b = b || 0 , d = d || 0 , e = void 0 === e || null === e ? "" : e . toString ( ) , f = c . Utils . extend ( { } , f ) , this . type = c . TEXT , this . physicsType = c . SPRITE , this . padding = new c . Point , this . textBounds = null , this . canvas = PIXI . CanvasPool . create ( this ) , this . context = this . canvas . getContext ( "2d" ) , this . colors = [ ] , this . strokeColors = [ ] , this . fontStyles = [ ] , this . fontWeights = [ ] , this . autoRound = ! 1 , this . useAdvancedWrap = ! 1 , this . _res = a . renderer . resolution , this . _text = e , this . _fontComponents = null , this . _lineSpacing = 0 , this . _charCount = 0 , this . _width = 0 , this . _height = 0 , c . Sprite . call ( this , a , b , d , PIXI . Texture . fromCanvas ( this . canvas ) ) , this . setStyle ( f ) , "" !== e && this . updateText ( ) } , c . Text . prototype = Object . create ( c . Sprite . prototype ) , c . Text . prototype . constructor = c . Text , c . Text . prototype . preUpdate = function ( ) { return this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ? this . preUpdateCore ( ) : ! 1 } , c . Text . prototype . update = function ( ) { } , c . Text . prototype . destroy = function ( a ) { this . texture . destroy ( ! 0 ) , PIXI . CanvasPool . remove ( this ) , c . Component . Destroy . prototype . destroy . call ( this , a ) } , c . Text . prototype . setShadow = function ( a , b , c , d , e , f ) { return void 0 === a && ( a = 0 ) , void 0 === b && ( b = 0 ) , void 0 === c && ( c = "rgba(0, 0, 0, 1)" ) , void 0 === d && ( d = 0 ) , void 0 === e && ( e = ! 0 ) , void 0 === f && ( f = ! 0 ) , this . style . shadowOffsetX = a , this . style . shadowOffsetY = b , this . style . shadowColor = c , this . style . shadowBlur = d , this . style . shadowStroke = e , this . style . shadowFill = f , this . dirty = ! 0 , this } , c . Text . prototype . setStyle = function ( a , b ) { void 0 === b && ( b = ! 1 ) , a = a || { } , a . font = a . font || "bold 20pt Arial" , a . backgroundColor = a . backgroundColor || null , a . fill
get : function ( ) { for ( var a , b , d , e , f , g , h , i , j = [ ] , k = 0 ; k < this . points . length ; k ++ ) a = 4 * k , b = this . vertices [ a ] * this . scale . x , d = this . vertices [ a + 1 ] * this . scale . y , e = this . vertices [ a + 4 ] * this . scale . x , f = this . vertices [ a + 3 ] * this . scale . y , g = c . Math . difference ( b , e ) , h = c . Math . difference ( d , f ) , b += this . world . x , d += this . world . y , i = new c . Rectangle ( b , d , g , h ) , j . push ( i ) ; return j } } ) , c . TileSprite = function ( a , b , d , e , f , g , h ) { b = b || 0 , d = d || 0 , e = e || 256 , f = f || 256 , g = g || null , h = h || null , this . type = c . TILESPRITE , this . physicsType = c . SPRITE , this . _scroll = new c . Point ; var i = a . cache . getImage ( "__default" , ! 0 ) ; PIXI . TilingSprite . call ( this , new PIXI . Texture ( i . base ) , e , f ) , c . Component . Core . init . call ( this , a , b , d , g , h ) } , c . TileSprite . prototype = Object . create ( PIXI . TilingSprite . prototype ) , c . TileSprite . prototype . constructor = c . TileSprite , c . Component . Core . install . call ( c . TileSprite . prototype , [ "Angle" , "Animation" , "AutoCull" , "Bounds" , "BringToTop" , "Destroy" , "FixedToCamera" , "Health" , "InCamera" , "InputEnabled" , "InWorld" , "LifeSpan" , "LoadTexture" , "Overlap" , "PhysicsBody" , "Reset" , "Smoothed" ] ) , c . TileSprite . prototype . preUpdatePhysics = c . Component . PhysicsBody . preUpdate , c . TileSprite . prototype . preUpdateLifeSpan = c . Component . LifeSpan . preUpdate , c . TileSprite . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . TileSprite . prototype . preUpdateCore = c . Component . Core . preUpdate , c . TileSprite . prototype . preUpdate = function ( ) { return 0 !== this . _scroll . x && ( this . tilePosition . x += this . _scroll . x * this . game . time . physicsElapsed ) , 0 !== this . _scroll . y && ( this . tilePosition . y += this . _scroll . y * this . game . time . physicsElapsed ) , this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ? this . preUpdateCore ( ) : ! 1 } , c . TileSprite . prototype . autoScroll = function ( a , b ) { this . _scroll . set ( a , b ) } , c . TileSprite . prototype . stopScroll = function ( ) { this . _scroll . set ( 0 , 0 ) } , c . TileSprite . prototype . destroy = function ( a ) { c . Component . Destroy . prototype . destroy . call ( this , a ) , PIXI . TilingSprite . prototype . destroy . call ( this ) } , c . TileSprite . prototype . reset = function ( a , b ) { return c . Component . Reset . prototype . reset . call ( this , a , b ) , this . tilePosition . x = 0 , this . tilePosition . y = 0 , this } , c . Device = function ( ) { this . deviceReadyAt = 0 , this . initialized = ! 1 , this . desktop = ! 1 , this . iOS = ! 1 , this . iOSVersion = 0 , this . cocoonJS = ! 1 , this . cocoonJSApp = ! 1 , this . cordova = ! 1 , this . node = ! 1 , this . nodeWebkit = ! 1 , this . electron = ! 1 , this . ejecta = ! 1 , this . crosswalk = ! 1 , this . android = ! 1 , this . chromeOS = ! 1 , this . linux = ! 1 , this . macOS = ! 1 , this . windows = ! 1 , this . windowsPhone = ! 1 , this . canvas = ! 1 , this . canvasBitBltShift = null , this . webGL = ! 1 , this . file = ! 1 , this . fileSystem = ! 1 , this . localStorage = ! 1 , this . worker = ! 1 , this . css3D = ! 1 , this . pointerLock = ! 1 , this . typedArray = ! 1 , this . vibration = ! 1 , this . getUserMedia = ! 0 , this . quirksMode = ! 1 , this . touch = ! 1 , this . mspointer = ! 1 , this . wheelEvent = null , this . arora = ! 1 , this . chrome = ! 1 , this . chromeVersion = 0 , this . epiphany = ! 1 , this . firefox = ! 1 , this . firefoxVersion = 0 , this . ie = ! 1 , this . ieVersion = 0 , this . trident = ! 1 , this . tridentVersion = 0 , this . edge = ! 1 , this . mobileSafari = ! 1 , this . midori = ! 1 , this . opera = ! 1 , this . safari = ! 1 , this . safariVersion = 0 , this . webApp = ! 1 , this . silk = ! 1 , this . audioData = ! 1 , this . webAudio = ! 1 , this . ogg = ! 1 , this . opus = ! 1 , this . mp3 = ! 1 , this . wav = ! 1 , this . m4a = ! 1 , this . webm = ! 1 , this . dolby = ! 1 , this . oggVideo = ! 1 , this . h264Video = ! 1 , this . mp4Video = ! 1 , this . webmVideo = ! 1 , this . vp9Video = ! 1 , this . hlsVideo = ! 1 , this . iPhone = ! 1 , this . iPhone4 = ! 1 , this . iPad = ! 1 , this . pixelRatio = 0 , this . littleEndian = ! 1 , this . LITTLE _ENDIAN = ! 1 , this . support32bit = ! 1 , this . fullscreen = ! 1 , this . requestFullscreen = "" , this . cancelFullscreen = "" , this . fullscreenKeyboard = ! 1 } , c . Device = new c . Device , c . Device . onInitialized = new c . Signal , c . Device . whenReady = function ( a , b , c ) { var d = this . _readyCheck ; if ( this . deviceReadyAt || ! d ) a . call ( b , this ) ; else if ( d . _monitor || c ) d . _queue = d . _queue || [ ] , d . _queue . push ( [ a , b ] ) ; else { d . _monitor = d . bind ( this ) , d . _queue = d . _queue || [ ] , d . _queue . push ( [ a , b ] ) ; var e = "undefined" != typeof window . cordova , f = navigator . isCocoonJS ; "complete" === document . readyState || "interactive" === document . readyState ? window . setTimeout ( d . _monitor , 0 ) : e && ! f ? document . addEventListener ( "deviceready" , d . _monitor , ! 1 ) : ( document . addEventListener ( "DOMContentLoaded" , d . _monitor , ! 1 ) , window . addEventListener ( "load" , d . _monitor , ! 1 ) ) } } , c . Device . _readyCheck = function ( ) { var a = t
this . updateTweenData ( "repeatCounter" , a , c ) , this . updateTweenData ( "repeatDelay" , b , c ) } , repeatDelay : function ( a , b ) { return this . updateTweenData ( "repeatDelay" , a , b ) } , yoyo : function ( a , b , c ) { return void 0 === b && ( b = 0 ) , this . updateTweenData ( "yoyo" , a , c ) , this . updateTweenData ( "yoyoDelay" , b , c ) } , yoyoDelay : function ( a , b ) { return this . updateTweenData ( "yoyoDelay" , a , b ) } , easing : function ( a , b ) { return "string" == typeof a && this . manager . easeMap [ a ] && ( a = this . manager . easeMap [ a ] ) , this . updateTweenData ( "easingFunction" , a , b ) } , interpolation : function ( a , b , d ) { return void 0 === b && ( b = c . Math ) , this . updateTweenData ( "interpolationFunction" , a , d ) , this . updateTweenData ( "interpolationContext" , b , d ) } , repeatAll : function ( a ) { return void 0 === a && ( a = 0 ) , this . repeatCounter = a , this } , chain : function ( ) { for ( var a = arguments . length ; a -- ; ) a > 0 ? arguments [ a - 1 ] . chainedTween = arguments [ a ] : this . chainedTween = arguments [ a ] ; return this } , loop : function ( a ) { return void 0 === a && ( a = ! 0 ) , this . repeatCounter = a ? - 1 : 0 , this } , onUpdateCallback : function ( a , b ) { return this . _onUpdateCallback = a , this . _onUpdateCallbackContext = b , this } , pause : function ( ) { this . isPaused = ! 0 , this . _codePaused = ! 0 , this . _pausedTime = this . game . time . time } , _pause : function ( ) { this . _codePaused || ( this . isPaused = ! 0 , this . _pausedTime = this . game . time . time ) } , resume : function ( ) { if ( this . isPaused ) { this . isPaused = ! 1 , this . _codePaused = ! 1 ; for ( var a = 0 ; a < this . timeline . length ; a ++ ) this . timeline [ a ] . isRunning || ( this . timeline [ a ] . startTime += this . game . time . time - this . _pausedTime ) } } , _resume : function ( ) { this . _codePaused || this . resume ( ) } , update : function ( a ) { if ( this . pendingDelete || ! this . target ) return ! 1 ; if ( this . isPaused ) return ! 0 ; var b = this . timeline [ this . current ] . update ( a ) ; if ( b === c . TweenData . PENDING ) return ! 0 ; if ( b === c . TweenData . RUNNING ) return this . _hasStarted || ( this . onStart . dispatch ( this . target , this ) , this . _hasStarted = ! 0 ) , null !== this . _onUpdateCallback && this . _onUpdateCallback . call ( this . _onUpdateCallbackContext , this , this . timeline [ this . current ] . value , this . timeline [ this . current ] ) , this . isRunning ; if ( b === c . TweenData . LOOPED ) return - 1 === this . timeline [ this . current ] . repeatCounter ? this . onLoop . dispatch ( this . target , this ) : this . onRepeat . dispatch ( this . target , this ) , ! 0 ; if ( b === c . TweenData . COMPLETE ) { var d = ! 1 ; return this . reverse ? ( this . current -- , this . current < 0 && ( this . current = this . timeline . length - 1 , d = ! 0 ) ) : ( this . current ++ , this . current === this . timeline . length && ( this . current = 0 , d = ! 0 ) ) , d ? - 1 === this . repeatCounter ? ( this . timeline [ this . current ] . start ( ) , this . onLoop . dispatch ( this . target , this ) , ! 0 ) : this . repeatCounter > 0 ? ( this . repeatCounter -- , this . timeline [ this . current ] . start ( ) , this . onRepeat . dispatch ( this . target , this ) , ! 0 ) : ( this . isRunning = ! 1 , this . onComplete . dispatch ( this . target , this ) , this . _hasStarted = ! 1 , this . chainedTween && this . chainedTween . start ( ) , ! 1 ) : ( this . onChildComplete . dispatch ( this . target , this ) , this . timeline [ this . current ] . start ( ) , ! 0 ) } } , generateData : function ( a , b ) { if ( null === this . game || null === this . target ) return null ; void 0 === a && ( a = 60 ) , void 0 === b && ( b = [ ] ) ; for ( var c = 0 ; c < this . timeline . length ; c ++ ) for ( var d in this . timeline [ c ] . vEnd ) this . properties [ d ] = this . target [ d ] || 0 , Array . isArray ( this . properties [ d ] ) || ( this . properties [ d ] *= 1 ) ; for ( var c = 0 ; c < this . timeline . length ; c ++ ) this . timeline [ c ] . loadValues ( ) ; for ( var c = 0 ; c < this . timeline . length ; c ++ ) b = b . concat ( this . timeline [ c ] . generateData ( a ) ) ; return b } } , Object . defineProperty ( c . Tween . prototype , "totalDuration" , { get : function ( ) { for ( var a = 0 , b = 0 ; b < this . timeline . length ; b ++ ) a += this . timeline [ b ] . duration ; return a } } ) , c . Tween . prototype . constructor = c . Tween , c . TweenData = function ( a ) { this . parent = a , this . game = a . game , this . vStart = { } , this . vStartCache = { } , this . vEnd = { } , this . vEndCache = { } , this . duration = 1e3 , this . percent = 0 , this . value = 0 , this . repeatCounter = 0 , this . repeatDelay = 0 , this . repeatTotal = 0 , this . interpolate = ! 1 , this . yoyo = ! 1 , this . yoyoDelay = 0 , this . inReverse = ! 1 , this . delay = 0 , this . dt = 0 , this . startTime = null , this . easingFunction = c . Easing . Default , this . interpolationFunction = c . Math . linearInterpolation , this . interpolationContext = c . Math , this . isRunning = ! 1 , this . isFrom = ! 1 } , c . TweenData . PENDING = 0 , c . TweenData . RUNNING = 1 , c . TweenData . LOOPED = 2 , c . TweenData . COMPLETE = 3 , c . TweenData . prototype = { to : function ( a , b , c , d , e , f ) { return this . vEnd = a , this . duration = b , this . easingFunction = c
f [ g ] . trimmed && d . setTrim ( f [ g ] . trimmed , f [ g ] . sourceSize . w , f [ g ] . sourceSize . h , f [ g ] . spriteSourceSize . x , f [ g ] . spriteSourceSize . y , f [ g ] . spriteSourceSize . w , f [ g ] . spriteSourceSize . h ) ; return e } , JSONDataPyxel : function ( a , b ) { var d = [ "layers" , "tilewidth" , "tileheight" , "tileswide" , "tileshigh" ] ; if ( d . forEach ( function ( a ) { return b [ a ] ? void 0 : ( console . warn ( "Phaser.AnimationParser.JSONDataPyxel: Invalid Pyxel Tilemap JSON given, missing '" + a + "' key." ) , void console . log ( b ) ) } ) , 1 != b . layers . length ) return console . warn ( "Phaser.AnimationParser.JSONDataPyxel: Too many layers, this parser only supports flat Tilemaps." ) , void console . log ( b ) ; for ( var e , f = new c . FrameData , g = b . tileheight , h = b . tilewidth , i = b . layers [ 0 ] . tiles , j = 0 ; j < i . length ; j ++ ) e = f . addFrame ( new c . Frame ( j , i [ j ] . x , i [ j ] . y , h , g , "frame_" + j ) ) , e . setTrim ( ! 1 ) ; return f } , JSONDataHash : function ( a , b ) { if ( ! b . frames ) return console . warn ( "Phaser.AnimationParser.JSONDataHash: Invalid Texture Atlas JSON given, missing 'frames' object" ) , void console . log ( b ) ; var d , e = new c . FrameData , f = b . frames , g = 0 ; for ( var h in f ) d = e . addFrame ( new c . Frame ( g , f [ h ] . frame . x , f [ h ] . frame . y , f [ h ] . frame . w , f [ h ] . frame . h , h ) ) , f [ h ] . trimmed && d . setTrim ( f [ h ] . trimmed , f [ h ] . sourceSize . w , f [ h ] . sourceSize . h , f [ h ] . spriteSourceSize . x , f [ h ] . spriteSourceSize . y , f [ h ] . spriteSourceSize . w , f [ h ] . spriteSourceSize . h ) , g ++ ; return e } , XMLData : function ( a , b ) { if ( ! b . getElementsByTagName ( "TextureAtlas" ) ) return void console . warn ( "Phaser.AnimationParser.XMLData: Invalid Texture Atlas XML given, missing <TextureAtlas> tag" ) ; for ( var d , e , f , g , h , i , j , k , l , m , n , o = new c . FrameData , p = b . getElementsByTagName ( "SubTexture" ) , q = 0 ; q < p . length ; q ++ ) f = p [ q ] . attributes , e = f . name . value , g = parseInt ( f . x . value , 10 ) , h = parseInt ( f . y . value , 10 ) , i = parseInt ( f . width . value , 10 ) , j = parseInt ( f . height . value , 10 ) , k = null , l = null , f . frameX && ( k = Math . abs ( parseInt ( f . frameX . value , 10 ) ) , l = Math . abs ( parseInt ( f . frameY . value , 10 ) ) , m = parseInt ( f . frameWidth . value , 10 ) , n = parseInt ( f . frameHeight . value , 10 ) ) , d = o . addFrame ( new c . Frame ( q , g , h , i , j , e ) ) , ( null !== k || null !== l ) && d . setTrim ( ! 0 , i , j , k , l , m , n ) ; return o } } , c . Cache = function ( a ) { this . game = a , this . autoResolveURL = ! 1 , this . _cache = { canvas : { } , image : { } , texture : { } , sound : { } , video : { } , text : { } , json : { } , xml : { } , physics : { } , tilemap : { } , binary : { } , bitmapData : { } , bitmapFont : { } , shader : { } , renderTexture : { } } , this . _urlMap = { } , this . _urlResolver = new Image , this . _urlTemp = null , this . onSoundUnlock = new c . Signal , this . _cacheMap = [ ] , this . _cacheMap [ c . Cache . CANVAS ] = this . _cache . canvas , this . _cacheMap [ c . Cache . IMAGE ] = this . _cache . image , this . _cacheMap [ c . Cache . TEXTURE ] = this . _cache . texture , this . _cacheMap [ c . Cache . SOUND ] = this . _cache . sound , this . _cacheMap [ c . Cache . TEXT ] = this . _cache . text , this . _cacheMap [ c . Cache . PHYSICS ] = this . _cache . physics , this . _cacheMap [ c . Cache . TILEMAP ] = this . _cache . tilemap , this . _cacheMap [ c . Cache . BINARY ] = this . _cache . binary , this . _cacheMap [ c . Cache . BITMAPDATA ] = this . _cache . bitmapData , this . _cacheMap [ c . Cache . BITMAPFONT ] = this . _cache . bitmapFont , this . _cacheMap [ c . Cache . JSON ] = this . _cache . json , this . _cacheMap [ c . Cache . XML ] = this . _cache . xml , this . _cacheMap [ c . Cache . VIDEO ] = this . _cache . video , this . _cacheMap [ c . Cache . SHADER ] = this . _cache . shader , this . _cacheMap [ c . Cache . RENDER _TEXTURE ] = this . _cache . renderTexture , this . addDefaultImage ( ) , this . addMissingImage ( ) } , c . Cache . CANVAS = 1 , c . Cache . IMAGE = 2 , c . Cache . TEXTURE = 3 , c . Cache . SOUND = 4 , c . Cache . TEXT = 5 , c . Cache . PHYSICS = 6 , c . Cache . TILEMAP = 7 , c . Cache . BINARY = 8 , c . Cache . BITMAPDATA = 9 , c . Cache . BITMAPFONT = 10 , c . Cache . JSON = 11 , c . Cache . XML = 12 , c . Cache . VIDEO = 13 , c . Cache . SHADER = 14 , c . Cache . RENDER _TEXTURE = 15 , c . Cache . prototype = { addCanvas : function ( a , b , c ) { void 0 === c && ( c = b . getContext ( "2d" ) ) , this . _cache . canvas [ a ] = { canvas : b , context : c } } , addImage : function ( a , b , d ) { this . checkImageKey ( a ) && this . removeImage ( a ) ; var e = { key : a , url : b , data : d , base : new PIXI . BaseTexture ( d ) , frame : new c . Frame ( 0 , 0 , 0 , d . width , d . height , a ) , frameData : new c . FrameData } ; return e . frameData . addFrame ( new c . Frame ( 0 , 0 , 0 , d . width , d . height , b ) ) , this . _cache . image [ a ] = e , this . _resolveURL ( b , e ) , e } , addDefaultImage : function ( ) { var a = new Image ; a . src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg==" ; var b = this . addImage ( " _ _defau
} break ; case "bitmapfont" : a . atlasURL ? ( d = ! 1 , this . xhrLoad ( a , this . transformUrl ( a . atlasURL , a ) , "text" , function ( a , b ) { var c ; try { c = JSON . parse ( b . responseText ) } catch ( d ) { } c ? ( a . atlasType = "json" , this . jsonLoadComplete ( a , b ) ) : ( a . atlasType = "xml" , this . xmlLoadComplete ( a , b ) ) } ) ) : this . cache . addBitmapFont ( a . key , a . url , a . data , a . atlasData , a . atlasType , a . xSpacing , a . ySpacing ) ; break ; case "video" : if ( a . asBlob ) try { a . data = b . response } catch ( f ) { throw new Error ( "Phaser.Loader. Unable to parse video file as Blob: " + a . key ) } this . cache . addVideo ( a . key , a . url , a . data , a . asBlob ) ; break ; case "audio" : this . game . sound . usingWebAudio ? ( a . data = b . response , this . cache . addSound ( a . key , a . url , a . data , ! 0 , ! 1 ) , a . autoDecode && this . game . sound . decode ( a . key ) ) : this . cache . addSound ( a . key , a . url , a . data , ! 1 , ! 0 ) ; break ; case "text" : a . data = b . responseText , this . cache . addText ( a . key , a . url , a . data ) ; break ; case "shader" : a . data = b . responseText , this . cache . addShader ( a . key , a . url , a . data ) ; break ; case "physics" : var e = JSON . parse ( b . responseText ) ; this . cache . addPhysicsData ( a . key , a . url , e , a . format ) ; break ; case "script" : a . data = document . createElement ( "script" ) , a . data . language = "javascript" , a . data . type = "text/javascript" , a . data . defer = ! 1 , a . data . text = b . responseText , document . head . appendChild ( a . data ) , a . callback && ( a . data = a . callback . call ( a . callbackContext , a . key , b . responseText ) ) ; break ; case "binary" : a . callback ? a . data = a . callback . call ( a . callbackContext , a . key , b . response ) : a . data = b . response , this . cache . addBinary ( a . key , a . data ) } d && this . asyncComplete ( a ) } , jsonLoadComplete : function ( a , b ) { var c = JSON . parse ( b . responseText ) ; "tilemap" === a . type ? this . cache . addTilemap ( a . key , a . url , c , a . format ) : "bitmapfont" === a . type ? this . cache . addBitmapFont ( a . key , a . url , a . data , c , a . atlasType , a . xSpacing , a . ySpacing ) : "json" === a . type ? this . cache . addJSON ( a . key , a . url , c ) : this . cache . addTextureAtlas ( a . key , a . url , a . data , c , a . format ) , this . asyncComplete ( a ) } , csvLoadComplete : function ( a , b ) { var c = b . responseText ; this . cache . addTilemap ( a . key , a . url , c , a . format ) , this . asyncComplete ( a ) } , xmlLoadComplete : function ( a , b ) { var c = b . responseText , d = this . parseXml ( c ) ; if ( ! d ) { var e = b . responseType || b . contentType ; return console . warn ( "Phaser.Loader - " + a . key + ": invalid XML (" + e + ")" ) , void this . asyncComplete ( a , "invalid XML" ) } "bitmapfont" === a . type ? this . cache . addBitmapFont ( a . key , a . url , a . data , d , a . atlasType , a . xSpacing , a . ySpacing ) : "textureatlas" === a . type ? this . cache . addTextureAtlas ( a . key , a . url , a . data , d , a . format ) : "xml" === a . type && this . cache . addXML ( a . key , a . url , d ) , this . asyncComplete ( a ) } , parseXml : function ( a ) { var b ; try { if ( window . DOMParser ) { var c = new DOMParser ; b = c . parseFromString ( a , "text/xml" ) } else b = new ActiveXObject ( "Microsoft.XMLDOM" ) , b . async = "false" , b . loadXML ( a ) } catch ( d ) { b = null } return b && b . documentElement && ! b . getElementsByTagName ( "parsererror" ) . length ? b : null } , updateProgress : function ( ) { this . preloadSprite && ( 0 === this . preloadSprite . direction ? this . preloadSprite . rect . width = Math . floor ( this . preloadSprite . width / 100 * this . progress ) : this . preloadSprite . rect . height = Math . floor ( this . preloadSprite . height / 100 * this . progress ) , this . preloadSprite . sprite ? this . preloadSprite . sprite . updateCrop ( ) : this . preloadSprite = null ) } , totalLoadedFiles : function ( ) { return this . _loadedFileCount } , totalQueuedFiles : function ( ) { return this . _totalFileCount - this . _loadedFileCount } , totalLoadedPacks : function ( ) { return this . _totalPackCount } , totalQueuedPacks : function ( ) { return this . _totalPackCount - this . _loadedPackCount } } , Object . defineProperty ( c . Loader . prototype , "progressFloat" , { get : function ( ) { var a = this . _loadedFileCount / this . _totalFileCount * 100 ; return c . Math . clamp ( a || 0 , 0 , 100 ) } } ) , Object . defineProperty ( c . Loader . prototype , "progress" , { get : function ( ) { return Math . round ( this . progressFloat ) } } ) , c . Loader . prototype . constructor = c . Loader , c . LoaderParser = { bitmapFont : function ( a , b , c , d ) { return this . xmlBitmapFont ( a , b , c , d ) } , xmlBitmapFont : function ( a , b , c , d ) { var e = { } , f = a . getElementsByTagName ( "info" ) [ 0 ] , g = a . getElementsByTagName ( "common" ) [ 0 ] ; e . font = f . getAttribute ( "face" ) , e . size = parseInt ( f . getAttribute ( "size" ) , 10 ) , e . lineHeight = parseInt ( g . getAttribute ( "lineHeight" ) , 10 ) + d , e . chars = { } ; for ( var h = a . getElementsByTagName ( "char" ) , i = 0 ; i < h . length ; i ++ ) { var j = parseInt ( h [ i ] . getAttribute ( "id" ) , 10 ) ; e . chars [ j ] = { x : parseInt ( h [ i ] . getAttribute ( "
this . height = this . game . height * this . _userScaleFactor . y - this . _userScaleTrim . y ) , ! this . compatibility . canExpandParent && ( a === c . ScaleManager . SHOW _ALL || a === c . ScaleManager . USER _SCALE ) ) { var b = this . getParentBounds ( this . _tempBounds ) ; this . width = Math . min ( this . width , b . width ) , this . height = Math . min ( this . height , b . height ) } this . width = 0 | this . width , this . height = 0 | this . height , this . reflowCanvas ( ) } , getParentBounds : function ( a ) { var b = a || new c . Rectangle , d = this . boundingParent , e = this . dom . visualBounds , f = this . dom . layoutBounds ; if ( d ) { var g = d . getBoundingClientRect ( ) , h = d . offsetParent ? d . offsetParent . getBoundingClientRect ( ) : d . getBoundingClientRect ( ) ; b . setTo ( g . left - h . left , g . top - h . top , g . width , g . height ) ; var i = this . windowConstraints ; if ( i . right ) { var j = "layout" === i . right ? f : e ; b . right = Math . min ( b . right , j . width ) } if ( i . bottom ) { var j = "layout" === i . bottom ? f : e ; b . bottom = Math . min ( b . bottom , j . height ) } } else b . setTo ( 0 , 0 , e . width , e . height ) ; return b . setTo ( Math . round ( b . x ) , Math . round ( b . y ) , Math . round ( b . width ) , Math . round ( b . height ) ) , b } , alignCanvas : function ( a , b ) { var c = this . getParentBounds ( this . _tempBounds ) , d = this . game . canvas , e = this . margin ; if ( a ) { e . left = e . right = 0 ; var f = d . getBoundingClientRect ( ) ; if ( this . width < c . width && ! this . incorrectOrientation ) { var g = f . left - c . x , h = c . width / 2 - this . width / 2 ; h = Math . max ( h , 0 ) ; var i = h - g ; e . left = Math . round ( i ) } d . style . marginLeft = e . left + "px" , 0 !== e . left && ( e . right = - ( c . width - f . width - e . left ) , d . style . marginRight = e . right + "px" ) } if ( b ) { e . top = e . bottom = 0 ; var f = d . getBoundingClientRect ( ) ; if ( this . height < c . height && ! this . incorrectOrientation ) { var g = f . top - c . y , h = c . height / 2 - this . height / 2 ; h = Math . max ( h , 0 ) ; var i = h - g ; e . top = Math . round ( i ) } d . style . marginTop = e . top + "px" , 0 !== e . top && ( e . bottom = - ( c . height - f . height - e . top ) , d . style . marginBottom = e . bottom + "px" ) } e . x = e . left , e . y = e . top } , reflowGame : function ( ) { this . resetCanvas ( "" , "" ) ; var a = this . getParentBounds ( this . _tempBounds ) ; this . updateDimensions ( a . width , a . height , ! 0 ) } , reflowCanvas : function ( ) { this . incorrectOrientation || ( this . width = c . Math . clamp ( this . width , this . minWidth || 0 , this . maxWidth || this . width ) , this . height = c . Math . clamp ( this . height , this . minHeight || 0 , this . maxHeight || this . height ) ) , this . resetCanvas ( ) , this . compatibility . noMargins || ( this . isFullScreen && this . _createdFullScreenTarget ? this . alignCanvas ( ! 0 , ! 0 ) : this . alignCanvas ( this . pageAlignHorizontally , this . pageAlignVertically ) ) , this . updateScalingAndBounds ( ) } , resetCanvas : function ( a , b ) { void 0 === a && ( a = this . width + "px" ) , void 0 === b && ( b = this . height + "px" ) ; var c = this . game . canvas ; this . compatibility . noMargins || ( c . style . marginLeft = "" , c . style . marginTop = "" , c . style . marginRight = "" , c . style . marginBottom = "" ) , c . style . width = a , c . style . height = b } , queueUpdate : function ( a ) { a && ( this . _parentBounds . width = 0 , this . _parentBounds . height = 0 ) , this . _updateThrottle = this . _updateThrottleReset } , reset : function ( a ) { a && this . grid && this . grid . reset ( ) } , setMaximum : function ( ) { this . width = this . dom . visualBounds . width , this . height = this . dom . visualBounds . height } , setShowAll : function ( a ) { var b , c = this . getParentBounds ( this . _tempBounds ) , d = c . width , e = c . height ; b = a ? Math . max ( e / this . game . height , d / this . game . width ) : Math . min ( e / this . game . height , d / this . game . width ) , this . width = Math . round ( this . game . width * b ) , this . height = Math . round ( this . game . height * b ) } , setExactFit : function ( ) { var a = this . getParentBounds ( this . _tempBounds ) ; this . width = a . width , this . height = a . height , this . isFullScreen || ( this . maxWidth && ( this . width = Math . min ( this . width , this . maxWidth ) ) , this . maxHeight && ( this . height = Math . min ( this . height , this . maxHeight ) ) ) } , createFullScreenTarget : function ( ) { var a = document . createElement ( "div" ) ; return a . style . margin = "0" , a . style . padding = "0" , a . style . background = "#000" , a } , startFullScreen : function ( a , b ) { if ( this . isFullScreen ) return ! 1 ; if ( ! this . compatibility . supportsFullScreen ) { var d = this ; return void setTimeout ( function ( ) { d . fullScreenError ( ) } , 10 ) } if ( "when-not-mouse" === this . compatibility . clickTrampoline ) { var e = this . game . input ; if ( e . activePointer && e . activePointer !== e . mousePointer && ( b || b !== ! 1 ) ) return void e . activePointer . addClickTrampoline ( "startFullScreen" , this . startFullScreen , this , [ a , ! 1 ] ) } "undefined" != typeof a && this . game . renderType === c . CANVAS && ( this . game . stage . smoothed = a ) ; var f = this . fullScreenTarget ; f || ( this . cleanupCreatedTarget
this . manager = a . manager , this . grid = a , this . persist = ! 1 , this . position = b , this . bounds = d , this . scale = e , this . topLeft = d . topLeft , this . topMiddle = new c . Point ( d . halfWidth , 0 ) , this . topRight = d . topRight , this . bottomLeft = d . bottomLeft , this . bottomMiddle = new c . Point ( d . halfWidth , d . bottom ) , this . bottomRight = d . bottomRight } , c . FlexLayer . prototype = Object . create ( c . Group . prototype ) , c . FlexLayer . prototype . constructor = c . FlexLayer , c . FlexLayer . prototype . resize = function ( ) { } , c . FlexLayer . prototype . debug = function ( ) { this . game . debug . text ( this . bounds . width + " x " + this . bounds . height , this . bounds . x + 4 , this . bounds . y + 16 ) , this . game . debug . geom ( this . bounds , "rgba(0,0,255,0.9" , ! 1 ) , this . game . debug . geom ( this . topLeft , "rgba(255,255,255,0.9" ) , this . game . debug . geom ( this . topMiddle , "rgba(255,255,255,0.9" ) , this . game . debug . geom ( this . topRight , "rgba(255,255,255,0.9" ) } , c . Color = { packPixel : function ( a , b , d , e ) { return c . Device . LITTLE _ENDIAN ? ( e << 24 | d << 16 | b << 8 | a ) >>> 0 : ( a << 24 | b << 16 | d << 8 | e ) >>> 0 } , unpackPixel : function ( a , b , d , e ) { return ( void 0 === b || null === b ) && ( b = c . Color . createColor ( ) ) , ( void 0 === d || null === d ) && ( d = ! 1 ) , ( void 0 === e || null === e ) && ( e = ! 1 ) , c . Device . LITTLE _ENDIAN ? ( b . a = ( 4278190080 & a ) >>> 24 , b . b = ( 16711680 & a ) >>> 16 , b . g = ( 65280 & a ) >>> 8 , b . r = 255 & a ) : ( b . r = ( 4278190080 & a ) >>> 24 , b . g = ( 16711680 & a ) >>> 16 , b . b = ( 65280 & a ) >>> 8 , b . a = 255 & a ) , b . color = a , b . rgba = "rgba(" + b . r + "," + b . g + "," + b . b + "," + b . a / 255 + ")" , d && c . Color . RGBtoHSL ( b . r , b . g , b . b , b ) , e && c . Color . RGBtoHSV ( b . r , b . g , b . b , b ) , b } , fromRGBA : function ( a , b ) { return b || ( b = c . Color . createColor ( ) ) , b . r = ( 4278190080 & a ) >>> 24 , b . g = ( 16711680 & a ) >>> 16 , b . b = ( 65280 & a ) >>> 8 , b . a = 255 & a , b . rgba = "rgba(" + b . r + "," + b . g + "," + b . b + "," + b . a + ")" , b } , toRGBA : function ( a , b , c , d ) { return a << 24 | b << 16 | c << 8 | d } , RGBtoHSL : function ( a , b , d , e ) { e || ( e = c . Color . createColor ( a , b , d , 1 ) ) , a /= 255 , b /= 255 , d /= 255 ; var f = Math . min ( a , b , d ) , g = Math . max ( a , b , d ) ; if ( e . h = 0 , e . s = 0 , e . l = ( g + f ) / 2 , g !== f ) { var h = g - f ; e . s = e . l > . 5 ? h / ( 2 - g - f ) : h / ( g + f ) , g === a ? e . h = ( b - d ) / h + ( d > b ? 6 : 0 ) : g === b ? e . h = ( d - a ) / h + 2 : g === d && ( e . h = ( a - b ) / h + 4 ) , e . h /= 6 } return e } , HSLtoRGB : function ( a , b , d , e ) { if ( e ? ( e . r = d , e . g = d , e . b = d ) : e = c . Color . createColor ( d , d , d ) , 0 !== b ) { var f = . 5 > d ? d * ( 1 + b ) : d + b - d * b , g = 2 * d - f ; e . r = c . Color . hueToColor ( g , f , a + 1 / 3 ) , e . g = c . Color . hueToColor ( g , f , a ) , e . b = c . Color . hueToColor ( g , f , a - 1 / 3 ) } return e . r = Math . floor ( 255 * e . r | 0 ) , e . g = Math . floor ( 255 * e . g | 0 ) , e . b = Math . floor ( 255 * e . b | 0 ) , c . Color . updateColor ( e ) , e } , RGBtoHSV : function ( a , b , d , e ) { e || ( e = c . Color . createColor ( a , b , d , 255 ) ) , a /= 255 , b /= 255 , d /= 255 ; var f = Math . min ( a , b , d ) , g = Math . max ( a , b , d ) , h = g - f ; return e . h = 0 , e . s = 0 === g ? 0 : h / g , e . v = g , g !== f && ( g === a ? e . h = ( b - d ) / h + ( d > b ? 6 : 0 ) : g === b ? e . h = ( d - a ) / h + 2 : g === d && ( e . h = ( a - b ) / h + 4 ) , e . h /= 6 ) , e } , HSVtoRGB : function ( a , b , d , e ) { void 0 === e && ( e = c . Color . createColor ( 0 , 0 , 0 , 1 , a , b , 0 , d ) ) ; var f , g , h , i = Math . floor ( 6 * a ) , j = 6 * a - i , k = d * ( 1 - b ) , l = d * ( 1 - j * b ) , m = d * ( 1 - ( 1 - j ) * b ) ; switch ( i % 6 ) { case 0 : f = d , g = m , h = k ; break ; case 1 : f = l , g = d , h = k ; break ; case 2 : f = k , g = d , h = m ; break ; case 3 : f = k , g = l , h = d ; break ; case 4 : f = m , g = k , h = d ; break ; case 5 : f = d , g = k , h = l } return e . r = Math . floor ( 255 * f ) , e . g = Math . floor ( 255 * g ) , e . b = Math . floor ( 255 * h ) , c . Color . updateColor ( e ) , e } , hueToColor : function ( a , b , c ) { return 0 > c && ( c += 1 ) , c > 1 && ( c -= 1 ) , 1 / 6 > c ? a + 6 * ( b - a ) * c : . 5 > c ? b : 2 / 3 > c ? a + ( b - a ) * ( 2 / 3 - c ) * 6 : a } , createColor : function ( a , b , d , e , f , g , h , i ) { var j = { r : a || 0 , g : b || 0 , b : d || 0 , a : e || 1 , h : f || 0 , s : g || 0 , l : h || 0 , v : i || 0 , color : 0 , color32 : 0 , rgba : "" } ; return c . Color . updateColor ( j ) } , updateColor : function ( a ) { return a . rgba = "rgba(" + a . r . toString ( ) + "," + a . g . toString ( ) + "," + a . b . toString ( ) + "," + a . a . toString ( ) + ")" , a . color = c . Color . getColor ( a . r , a . g , a . b ) , a . color32 = c . Color . getColor32 ( 255 * a . a , a . r , a . g , a . b ) , a } , getColor32 : function ( a , b , c , d ) { return a << 24 | b << 16 | c << 8 | d } , getColor : function ( a , b , c ) { return a << 16 | b << 8 | c } , RGBtoString : function ( a , b , d , e , f ) { return void 0 === e && ( e = 255 ) , void 0 === f && ( f = "#" ) , "#" === f ? "#" + ( ( 1 << 24 ) + ( a << 16 ) + ( b << 8 ) + d ) . toString ( 16 ) . slice ( 1 ) : "0x" + c . Color . componentToHex ( e ) + c . Color . componentToHex ( a ) + c . Color . componentToHex ( b ) + c . Color . componentToHex ( d ) } , hexToRGB : function ( a ) { var b = c . Color . hexToColor ( a ) ; return b ? c . Color . getColor32 ( b . a , b . r , b . g , b . b ) : void 0 } , hexToColor : function ( a , b ) { a = a . replace ( /^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i , function ( a , b , c , d ) { return b + b + c + c + d + d } ) ; var d = /^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i . exec ( a ) ; if ( d ) { var e = parseInt ( d [ 1 ] , 16 ) , f = parseInt ( d [ 2 ] , 16 ) , g = parseInt ( d [ 3 ] , 16 ) ; b ?
} , set : function ( a ) { this . position . x = a } } ) , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "y" , { get : function ( ) { return this . position . y } , set : function ( a ) { this . position . y = a } } ) , c . Physics . Arcade . Body . render = function ( a , b , c , d ) { void 0 === d && ( d = ! 0 ) , c = c || "rgba(0,255,0,0.4)" , d ? ( a . fillStyle = c , a . fillRect ( b . position . x - b . game . camera . x , b . position . y - b . game . camera . y , b . width , b . height ) ) : ( a . strokeStyle = c , a . strokeRect ( b . position . x - b . game . camera . x , b . position . y - b . game . camera . y , b . width , b . height ) ) } , c . Physics . Arcade . Body . renderBodyInfo = function ( a , b ) { a . line ( "x: " + b . x . toFixed ( 2 ) , "y: " + b . y . toFixed ( 2 ) , "width: " + b . width , "height: " + b . height ) , a . line ( "velocity x: " + b . velocity . x . toFixed ( 2 ) , "y: " + b . velocity . y . toFixed ( 2 ) , "deltaX: " + b . _dx . toFixed ( 2 ) , "deltaY: " + b . _dy . toFixed ( 2 ) ) , a . line ( "acceleration x: " + b . acceleration . x . toFixed ( 2 ) , "y: " + b . acceleration . y . toFixed ( 2 ) , "speed: " + b . speed . toFixed ( 2 ) , "angle: " + b . angle . toFixed ( 2 ) ) , a . line ( "gravity x: " + b . gravity . x , "y: " + b . gravity . y , "bounce x: " + b . bounce . x . toFixed ( 2 ) , "y: " + b . bounce . y . toFixed ( 2 ) ) , a . line ( "touching left: " + b . touching . left , "right: " + b . touching . right , "up: " + b . touching . up , "down: " + b . touching . down ) , a . line ( "blocked left: " + b . blocked . left , "right: " + b . blocked . right , "up: " + b . blocked . up , "down: " + b . blocked . down ) } , c . Physics . Arcade . Body . prototype . constructor = c . Physics . Arcade . Body , c . Physics . Arcade . TilemapCollision = function ( ) { } , c . Physics . Arcade . TilemapCollision . prototype = { TILE _BIAS : 16 , collideSpriteVsTilemapLayer : function ( a , b , c , d , e , f ) { if ( a . body ) { var g = b . getTiles ( a . body . position . x - a . body . tilePadding . x , a . body . position . y - a . body . tilePadding . y , a . body . width + a . body . tilePadding . x , a . body . height + a . body . tilePadding . y , ! 1 , ! 1 ) ; if ( 0 !== g . length ) for ( var h = 0 ; h < g . length ; h ++ ) d ? d . call ( e , a , g [ h ] ) && this . separateTile ( h , a . body , g [ h ] , f ) && ( this . _total ++ , c && c . call ( e , a , g [ h ] ) ) : this . separateTile ( h , a . body , g [ h ] , f ) && ( this . _total ++ , c && c . call ( e , a , g [ h ] ) ) } } , collideGroupVsTilemapLayer : function ( a , b , c , d , e , f ) { if ( 0 !== a . length ) for ( var g = 0 ; g < a . children . length ; g ++ ) a . children [ g ] . exists && this . collideSpriteVsTilemapLayer ( a . children [ g ] , b , c , d , e , f ) } , separateTile : function ( a , b , c , d ) { if ( ! b . enable ) return ! 1 ; if ( ! c . intersects ( b . position . x , b . position . y , b . right , b . bottom ) ) return ! 1 ; if ( d ) return ! 0 ; if ( c . collisionCallback && ! c . collisionCallback . call ( c . collisionCallbackContext , b . sprite , c ) ) return ! 1 ; if ( c . layer . callbacks [ c . index ] && ! c . layer . callbacks [ c . index ] . callback . call ( c . layer . callbacks [ c . index ] . callbackContext , b . sprite , c ) ) return ! 1 ; if ( ! ( c . faceLeft || c . faceRight || c . faceTop || c . faceBottom ) ) return ! 1 ; var e = 0 , f = 0 , g = 0 , h = 1 ; if ( b . deltaAbsX ( ) > b . deltaAbsY ( ) ? g = - 1 : b . deltaAbsX ( ) < b . deltaAbsY ( ) && ( h = - 1 ) , 0 !== b . deltaX ( ) && 0 !== b . deltaY ( ) && ( c . faceLeft || c . faceRight ) && ( c . faceTop || c . faceBottom ) && ( g = Math . min ( Math . abs ( b . position . x - c . right ) , Math . abs ( b . right - c . left ) ) , h = Math . min ( Math . abs ( b . position . y - c . bottom ) , Math . abs ( b . bottom - c . top ) ) ) , h > g ) { if ( ( c . faceLeft || c . faceRight ) && ( e = this . tileCheckX ( b , c ) , 0 !== e && ! c . intersects ( b . position . x , b . position . y , b . right , b . bottom ) ) ) return ! 0 ; ( c . faceTop || c . faceBottom ) && ( f = this . tileCheckY ( b , c ) ) } else { if ( ( c . faceTop || c . faceBottom ) && ( f = this . tileCheckY ( b , c ) , 0 !== f && ! c . intersects ( b . position . x , b . position . y , b . right , b . bottom ) ) ) return ! 0 ; ( c . faceLeft || c . faceRight ) && ( e = this . tileCheckX ( b , c ) ) } return 0 !== e || 0 !== f } , tileCheckX : function ( a , b ) { var c = 0 ; return a . deltaX ( ) < 0 && ! a . blocked . left && b . collideRight && a . checkCollision . left ? b . faceRight && a . x < b . right && ( c = a . x - b . right , c < - this . TILE _BIAS && ( c = 0 ) ) : a . deltaX ( ) > 0 && ! a . blocked . right && b . collideLeft && a . checkCollision . right && b . faceLeft && a . right > b . left && ( c = a . right - b . left , c > this . TILE _BIAS && ( c = 0 ) ) , 0 !== c && ( a . customSeparateX ? a . overlapX = c : this . processTileSeparationX ( a , c ) ) , c } , tileCheckY : function ( a , b ) { var c = 0 ; return a . deltaY ( ) < 0 && ! a . blocked . up && b . collideDown && a . checkCollision . up ? b . faceBottom && a . y < b . bottom && ( c = a . y - b . bottom , c < - this . TILE _BIAS && ( c = 0 ) ) : a . deltaY ( ) > 0 && ! a . blocked . down && b . collideUp && a . checkCollision . down && b . faceTop && a . bottom > b . top && ( c = a . bottom - b . top , c > this . TILE _BIAS && ( c = 0 ) ) , 0 !== c && ( a . customSeparateY ? a . overlapY = c : this . processTileSeparationY ( a , c ) ) , c } , processTileSeparationX : function ( a , b ) { 0 > b ? a . blocked . left = ! 0 : b > 0 && ( a . blocked . right = ! 0 ) , a . position . x -= b , 0 === a . bounce . x ? a . velocity . x = 0 : a . vel
} , shapeChanged : function ( ) { this . debugBody && this . debugBody . draw ( ) } , addPhaserPolygon : function ( a , b ) { for ( var c = this . game . cache . getPhysicsData ( a , b ) , d = [ ] , e = 0 ; e < c . length ; e ++ ) { var f = c [ e ] , g = this . addFixture ( f ) ; d [ f . filter . group ] = d [ f . filter . group ] || [ ] , d [ f . filter . group ] = d [ f . filter . group ] . concat ( g ) , f . fixtureKey && ( d [ f . fixtureKey ] = g ) } return this . data . aabbNeedsUpdate = ! 0 , this . shapeChanged ( ) , d } , addFixture : function ( a ) { var b = [ ] ; if ( a . circle ) { var c = new p2 . Circle ( { radius : this . world . pxm ( a . circle . radius ) } ) ; c . collisionGroup = a . filter . categoryBits , c . collisionMask = a . filter . maskBits , c . sensor = a . isSensor ; var d = p2 . vec2 . create ( ) ; d [ 0 ] = this . world . pxmi ( a . circle . position [ 0 ] - this . sprite . width / 2 ) , d [ 1 ] = this . world . pxmi ( a . circle . position [ 1 ] - this . sprite . height / 2 ) , this . data . addShape ( c , d ) , b . push ( c ) } else for ( var e = a . polygons , f = p2 . vec2 . create ( ) , g = 0 ; g < e . length ; g ++ ) { for ( var h = e [ g ] , i = [ ] , j = 0 ; j < h . length ; j += 2 ) i . push ( [ this . world . pxmi ( h [ j ] ) , this . world . pxmi ( h [ j + 1 ] ) ] ) ; for ( var c = new p2 . Convex ( { vertices : i } ) , k = 0 ; k !== c . vertices . length ; k ++ ) { var l = c . vertices [ k ] ; p2 . vec2 . sub ( l , l , c . centerOfMass ) } p2 . vec2 . scale ( f , c . centerOfMass , 1 ) , f [ 0 ] -= this . world . pxmi ( this . sprite . width / 2 ) , f [ 1 ] -= this . world . pxmi ( this . sprite . height / 2 ) , c . updateTriangles ( ) , c . updateCenterOfMass ( ) , c . updateBoundingRadius ( ) , c . collisionGroup = a . filter . categoryBits , c . collisionMask = a . filter . maskBits , c . sensor = a . isSensor , this . data . addShape ( c , f ) , b . push ( c ) } return b } , loadPolygon : function ( a , b ) { if ( null === a ) var c = b ; else var c = this . game . cache . getPhysicsData ( a , b ) ; for ( var d = p2 . vec2 . create ( ) , e = 0 ; e < c . length ; e ++ ) { for ( var f = [ ] , g = 0 ; g < c [ e ] . shape . length ; g += 2 ) f . push ( [ this . world . pxmi ( c [ e ] . shape [ g ] ) , this . world . pxmi ( c [ e ] . shape [ g + 1 ] ) ] ) ; for ( var h = new p2 . Convex ( { vertices : f } ) , i = 0 ; i !== h . vertices . length ; i ++ ) { var j = h . vertices [ i ] ; p2 . vec2 . sub ( j , j , h . centerOfMass ) } p2 . vec2 . scale ( d , h . centerOfMass , 1 ) , d [ 0 ] -= this . world . pxmi ( this . sprite . width / 2 ) , d [ 1 ] -= this . world . pxmi ( this . sprite . height / 2 ) , h . updateTriangles ( ) , h . updateCenterOfMass ( ) , h . updateBoundingRadius ( ) , this . data . addShape ( h , d ) } return this . data . aabbNeedsUpdate = ! 0 , this . shapeChanged ( ) , ! 0 } } , c . Physics . P2 . Body . prototype . constructor = c . Physics . P2 . Body , c . Physics . P2 . Body . DYNAMIC = 1 , c . Physics . P2 . Body . STATIC = 2 , c . Physics . P2 . Body . KINEMATIC = 4 , Object . defineProperty ( c . Physics . P2 . Body . prototype , "static" , { get : function ( ) { return this . data . type === c . Physics . P2 . Body . STATIC } , set : function ( a ) { a && this . data . type !== c . Physics . P2 . Body . STATIC ? ( this . data . type = c . Physics . P2 . Body . STATIC , this . mass = 0 ) : a || this . data . type !== c . Physics . P2 . Body . STATIC || ( this . data . type = c . Physics . P2 . Body . DYNAMIC , this . mass = 1 ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "dynamic" , { get : function ( ) { return this . data . type === c . Physics . P2 . Body . DYNAMIC } , set : function ( a ) { a && this . data . type !== c . Physics . P2 . Body . DYNAMIC ? ( this . data . type = c . Physics . P2 . Body . DYNAMIC , this . mass = 1 ) : a || this . data . type !== c . Physics . P2 . Body . DYNAMIC || ( this . data . type = c . Physics . P2 . Body . STATIC , this . mass = 0 ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "kinematic" , { get : function ( ) { return this . data . type === c . Physics . P2 . Body . KINEMATIC } , set : function ( a ) { a && this . data . type !== c . Physics . P2 . Body . KINEMATIC ? ( this . data . type = c . Physics . P2 . Body . KINEMATIC , this . mass = 4 ) : a || this . data . type !== c . Physics . P2 . Body . KINEMATIC || ( this . data . type = c . Physics . P2 . Body . STATIC , this . mass = 0 ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "allowSleep" , { get : function ( ) { return this . data . allowSleep } , set : function ( a ) { a !== this . data . allowSleep && ( this . data . allowSleep = a ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "angle" , { get : function ( ) { return c . Math . wrapAngle ( c . Math . radToDeg ( this . data . angle ) ) } , set : function ( a ) { this . data . angle = c . Math . degToRad ( c . Math . wrapAngle ( a ) ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "angularDamping" , { get : function ( ) { return this . data . angularDamping } , set : function ( a ) { this . data . angularDamping = a } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "angularForce" , { get : function ( ) { return this . data . angularForce } , set : function ( a ) { this . data . angularForce = a } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "angularVelocity" , { get : function ( ) { return this . data . angularVelocity } , set : function ( a ) { this . data . angularVelocity = a } } ) , Object . definePr
debuggedTileOverfill : "rgba(0,255,0,0.4)" , forceFullRedraw : ! 0 , debugAlpha : . 5 , facingEdgeStroke : "rgba(0,255,0,1)" , collidingTileOverfill : "rgba(0,255,0,0.2)" } , this . scrollFactorX = 1 , this . scrollFactorY = 1 , this . dirty = ! 0 , this . rayStepRate = 4 , this . _wrap = ! 1 , this . _mc = { scrollX : 0 , scrollY : 0 , renderWidth : 0 , renderHeight : 0 , tileWidth : b . tileWidth , tileHeight : b . tileHeight , cw : b . tileWidth , ch : b . tileHeight , tilesets : [ ] } , this . _scrollX = 0 , this . _scrollY = 0 , this . _results = [ ] , a . device . canvasBitBltShift || ( this . renderSettings . copyCanvas = c . TilemapLayer . ensureSharedCopyCanvas ( ) ) , this . fixedToCamera = ! 0 } , c . TilemapLayer . prototype = Object . create ( c . Sprite . prototype ) , c . TilemapLayer . prototype . constructor = c . TilemapLayer , c . TilemapLayer . prototype . preUpdateCore = c . Component . Core . preUpdate , c . TilemapLayer . sharedCopyCanvas = null , c . TilemapLayer . ensureSharedCopyCanvas = function ( ) { return this . sharedCopyCanvas || ( this . sharedCopyCanvas = c . Canvas . create ( 2 , 2 ) ) , this . sharedCopyCanvas } , c . TilemapLayer . prototype . preUpdate = function ( ) { return this . preUpdateCore ( ) } , c . TilemapLayer . prototype . postUpdate = function ( ) { c . Component . FixedToCamera . postUpdate . call ( this ) ; var a = this . game . camera ; this . scrollX = a . x * this . scrollFactorX / this . scale . x , this . scrollY = a . y * this . scrollFactorY / this . scale . y , this . render ( ) } , c . TilemapLayer . prototype . destroy = function ( ) { PIXI . CanvasPool . remove ( this ) , c . Component . Destroy . prototype . destroy . call ( this ) } , c . TilemapLayer . prototype . resize = function ( a , b ) { this . canvas . width = a , this . canvas . height = b , this . texture . frame . resize ( a , b ) , this . texture . width = a , this . texture . height = b , this . texture . crop . width = a , this . texture . crop . height = b , this . texture . baseTexture . width = a , this . texture . baseTexture . height = b , this . texture . baseTexture . dirty ( ) , this . texture . requiresUpdate = ! 0 , this . texture . _updateUvs ( ) , this . dirty = ! 0 } , c . TilemapLayer . prototype . resizeWorld = function ( ) { this . game . world . setBounds ( 0 , 0 , this . layer . widthInPixels * this . scale . x , this . layer . heightInPixels * this . scale . y ) } , c . TilemapLayer . prototype . _fixX = function ( a ) { return 0 > a && ( a = 0 ) , 1 === this . scrollFactorX ? a : this . _scrollX + ( a - this . _scrollX / this . scrollFactorX ) } , c . TilemapLayer . prototype . _unfixX = function ( a ) { return 1 === this . scrollFactorX ? a : this . _scrollX / this . scrollFactorX + ( a - this . _scrollX ) } , c . TilemapLayer . prototype . _fixY = function ( a ) { return 0 > a && ( a = 0 ) , 1 === this . scrollFactorY ? a : this . _scrollY + ( a - this . _scrollY / this . scrollFactorY ) } , c . TilemapLayer . prototype . _unfixY = function ( a ) { return 1 === this . scrollFactorY ? a : this . _scrollY / this . scrollFactorY + ( a - this . _scrollY ) } , c . TilemapLayer . prototype . getTileX = function ( a ) { return Math . floor ( this . _fixX ( a ) / this . _mc . tileWidth ) } , c . TilemapLayer . prototype . getTileY = function ( a ) { return Math . floor ( this . _fixY ( a ) / this . _mc . tileHeight ) } , c . TilemapLayer . prototype . getTileXY = function ( a , b , c ) { return c . x = this . getTileX ( a ) , c . y = this . getTileY ( b ) , c } , c . TilemapLayer . prototype . getRayCastTiles = function ( a , b , c , d ) { b || ( b = this . rayStepRate ) , void 0 === c && ( c = ! 1 ) , void 0 === d && ( d = ! 1 ) ; var e = this . getTiles ( a . x , a . y , a . width , a . height , c , d ) ; if ( 0 === e . length ) return [ ] ; for ( var f = a . coordinatesOnLine ( b ) , g = [ ] , h = 0 ; h < e . length ; h ++ ) for ( var i = 0 ; i < f . length ; i ++ ) { var j = e [ h ] , k = f [ i ] ; if ( j . containsPoint ( k [ 0 ] , k [ 1 ] ) ) { g . push ( j ) ; break } } return g } , c . TilemapLayer . prototype . getTiles = function ( a , b , c , d , e , f ) { void 0 === e && ( e = ! 1 ) , void 0 === f && ( f = ! 1 ) ; var g = ! ( e || f ) ; a = this . _fixX ( a ) , b = this . _fixY ( b ) ; for ( var h = Math . floor ( a / ( this . _mc . cw * this . scale . x ) ) , i = Math . floor ( b / ( this . _mc . ch * this . scale . y ) ) , j = Math . ceil ( ( a + c ) / ( this . _mc . cw * this . scale . x ) ) - h , k = Math . ceil ( ( b + d ) / ( this . _mc . ch * this . scale . y ) ) - i ; this . _results . length ; ) this . _results . pop ( ) ; for ( var l = i ; i + k > l ; l ++ ) for ( var m = h ; h + j > m ; m ++ ) { var n = this . layer . data [ l ] ; n && n [ m ] && ( g || n [ m ] . isInteresting ( e , f ) ) && this . _results . push ( n [ m ] ) } return this . _results . slice ( ) } , c . TilemapLayer . prototype . resolveTileset = function ( a ) { var b = this . _mc . tilesets ; if ( 2e3 > a ) for ( ; b . length < a ; ) b . push ( void 0 ) ; var c = this . map . tiles [ a ] && this . map . tiles [ a ] [ 2 ] ; if ( null != c ) { var d = this . map . tilesets [ c ] ; if ( d && d . containsTileIndex ( a ) ) return b [ a ] = d } return b [ a ] = null } , c . TilemapLayer . prototype . resetTilesetCache = function ( ) { for ( var a = this . _mc . tilesets ; a . length ; ) a . pop ( ) } , c . TilemapLayer . prototype . setScale = function ( a , b ) { a = a || 1 , b = b || a ; for ( var c = 0 ; c < this . layer . data . length ; c ++ ) for
this . game . sound . onUnMute . add ( this . unsetMute , this ) , this . game . sound . mute && this . setMute ( ) ) , this . game . onPause . add ( this . setPause , this ) , this . game . onResume . add ( this . setResume , this ) , this . _endCallback = this . complete . bind ( this ) , this . video . addEventListener ( "ended" , this . _endCallback , ! 0 ) , a ? this . video . loop = "loop" : this . video . loop = "" , this . video . playbackRate = b , this . touchLocked ? this . _pending = ! 0 : ( this . _pending = ! 1 , null !== this . key && ( 4 !== this . video . readyState ? ( this . retry = this . retryLimit , this . _retryID = window . setTimeout ( this . checkVideoProgress . bind ( this ) , this . retryInterval ) ) : ( this . _playCallback = this . playHandler . bind ( this ) , this . video . addEventListener ( "playing" , this . _playCallback , ! 0 ) ) ) , this . video . play ( ) , this . onPlay . dispatch ( this , a , b ) ) , this } , playHandler : function ( ) { this . video . removeEventListener ( "playing" , this . _playCallback , ! 0 ) , this . updateTexture ( ) } , stop : function ( ) { return this . game . sound . onMute && ( this . game . sound . onMute . remove ( this . setMute , this ) , this . game . sound . onUnMute . remove ( this . unsetMute , this ) ) , this . game . onPause . remove ( this . setPause , this ) , this . game . onResume . remove ( this . setResume , this ) , this . isStreaming ? ( this . video . mozSrcObject ? ( this . video . mozSrcObject . stop ( ) , this . video . src = null ) : ( this . video . src = "" , this . videoStream . active ? this . videoStream . active = ! 1 : this . videoStream . getTracks ? this . videoStream . getTracks ( ) . forEach ( function ( a ) { a . stop ( ) } ) : this . videoStream . stop ( ) ) , this . videoStream = null , this . isStreaming = ! 1 ) : ( this . video . removeEventListener ( "ended" , this . _endCallback , ! 0 ) , this . video . removeEventListener ( "playing" , this . _playCallback , ! 0 ) , this . touchLocked ? this . _pending = ! 1 : this . video . pause ( ) ) , this } , add : function ( a ) { if ( Array . isArray ( a ) ) for ( var b = 0 ; b < a . length ; b ++ ) a [ b ] . loadTexture && a [ b ] . loadTexture ( this ) ; else a . loadTexture ( this ) ; return this } , 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 } , render : function ( ) { ! this . disableTextureUpload && this . playing && this . baseTexture . dirty ( ) } , setMute : function ( ) { this . _muted || ( this . _muted = ! 0 , this . video . muted = ! 0 ) } , unsetMute : function ( ) { this . _muted && ! this . _codeMuted && ( this . _muted = ! 1 , this . video . muted = ! 1 ) } , setPause : function ( ) { this . _paused || this . touchLocked || ( this . _paused = ! 0 , this . video . pause ( ) ) } , setResume : function ( ) { ! this . _paused || this . _codePaused || this . touchLocked || ( this . _paused = ! 1 , this . video . ended || this . video . play ( ) ) } , changeSource : function ( a , b ) { return void 0 === b && ( b = ! 0 ) , this . texture . valid = ! 1 , this . video . pause ( ) , this . retry = this . retryLimit , this . _retryID = window . setTimeout ( this . checkVideoProgress . bind ( this ) , this . retryInterval ) , this . video . src = a , this . video . load ( ) , this . _autoplay = b , b || ( this . paused = ! 0 ) , this } , checkVideoProgress : function ( ) { 4 === this . video . readyState ? this . updateTexture ( ) : ( this . retry -- , this . retry > 0 ? this . _retryID = window . setTimeout ( this . checkVideoProgress . bind ( this ) , this . retryInterval ) : console . warn ( "Phaser.Video: Unable to start downloading video in time" , this . isStreaming ) ) } , setTouchLock : function ( ) { this . game . input . touch . addTouchLockCallback ( this . unlock , this ) , this . touchLocked = ! 0 } , unlock : function ( ) { if ( this . touchLocked = ! 1 , this . video . play ( ) , this . onPlay . dispatch ( this , this . loop , this . playbackRate ) , this . key ) { var a = this . game . cache . getVideo ( this . key ) ; a && ! a . isBlob && ( a . locked = ! 1 ) } return ! 0 } , grab : function ( a , b , c ) { return void 0 === a && ( a = ! 1 ) , void 0 === b && ( b = 1 ) , void 0 === c && ( c = null ) , null === this . snapshot ? void console . warn ( "Video.grab cannot run because Phaser.BitmapData is unavailable" ) : ( a && this . snapshot . cls ( ) , this . snapshot . copy ( this . video , 0 , 0 , this . width , this . height , 0 , 0 , this . width , this . height , 0 , 0 , 0 , 1 , 1 , b , c ) , this . snapshot ) } , removeVideoElement : function ( ) { if ( this . video ) { for ( this . video . parentNode && this . video . parentNode . removeChild ( this . video ) ; this . video . hasChildNodes ( ) ; ) this . video . removeChild ( this . video . firstChild ) ; this . video . removeAttribute ( "autoplay" ) , this . video . removeAttribute ( "src" ) , this . video = null } } , destroy : function ( ) { this . stop ( ) , this . removeVideoElement ( ) , this . touchLocked && this . game . input . touch . removeTouchLockCallback ( this . unlock , this ) , this . _retryID && window . clearTimeout ( this . _retryID ) } } , Object . defineProperty ( c . Video . prototype , "currentTime" , { get : function ( ) { return this . video ? this . video .
2016-02-12 16:00:36 +00:00
//# sourceMappingURL=phaser-split.map