2016-06-03 17:48:34 +00:00
/* Phaser v2.4.9 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
2016-06-09 16:13:31 +00:00
( function ( ) { function a ( a , b ) { this . _scaleFactor = a , this . _deltaMode = b , this . originalEvent = null } var b = this , c = c || { VERSION : "2.4.9 RC3" , 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 , HORIZONTAL : 0 , VERTICAL : 1 , LANDSCAPE : 0 , PORTRAIT : 1 , ANGLE _UP : 270 , ANGLE _DOWN : 90 , ANGLE _LEFT : 180 , ANGLE _RIGHT : 0 , ANGLE _NORTH _EAST : 315 , ANGLE _NORTH _WEST : 225 , ANGLE _SOUTH _EAST : 45 , ANGLE _SOUTH _WEST : 135 , 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 . g
this . setPosition ( Math . round ( a . x - this . view . halfWidth ) , Math . round ( a . y - this . view . halfHeight ) ) } , focusOnXY : function ( a , b ) { this . setPosition ( Math . round ( a - this . view . halfWidth ) , Math . round ( b - this . view . halfHeight ) ) } , shake : function ( a , b , d , e , f ) { return void 0 === a && ( a = . 05 ) , void 0 === b && ( b = 500 ) , void 0 === d && ( d = ! 0 ) , void 0 === e && ( e = c . Camera . SHAKE _BOTH ) , void 0 === f && ( f = ! 0 ) , ! d && this . _shake . duration > 0 ? ! 1 : ( this . _shake . intensity = a , this . _shake . duration = b , this . _shake . shakeBounds = f , this . _shake . x = 0 , this . _shake . y = 0 , this . _shake . horizontal = e === c . Camera . SHAKE _BOTH || e === c . Camera . SHAKE _HORIZONTAL , this . _shake . vertical = e === c . Camera . SHAKE _BOTH || e === c . Camera . SHAKE _VERTICAL , ! 0 ) } , flash : function ( a , b , c ) { return void 0 === a && ( a = 16777215 ) , void 0 === b && ( b = 500 ) , void 0 === c && ( c = ! 1 ) , ! this . fx || ! c && this . _fxDuration > 0 ? ! 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 . _shake . duration > 0 && this . updateShake ( ) , this . bounds && this . checkBounds ( ) , this . roundPx && ( this . view . floor ( ) , this . _shake . x = Math . floor ( this . _shake . x ) , this . _shake . y = Math . floor ( this . _shake . y ) ) , this . displayObject . position . x = - this . view . x , this . displayObject . position . y = - this . view . y } , updateFX : function ( ) { 0 === this . _fxType ? ( this . fx . alpha -= this . game . time . elapsedMS / this . _fxDuration , this . fx . alpha <= 0 && ( this . _fxDuration = 0 , this . fx . alpha = 0 , this . onFlashComplete . dispatch ( ) ) ) : ( this . fx . alpha += this . game . time . elapsedMS / this . _fxDuration , this . fx . alpha >= 1 && ( this . _fxDuration = 0 , this . fx . alpha = 1 , this . onFadeComplete . dispatch ( ) ) ) } , updateShake : function ( ) { this . _shake . duration -= this . game . time . elapsedMS , this . _shake . duration <= 0 ? ( this . onShakeComplete . dispatch ( ) , this . _shake . x = 0 , this . _shake . y = 0 ) : ( this . _shake . horizontal && ( this . _shake . x = this . game . rnd . frac ( ) * this . _shake . intensity * this . view . width * 2 - this . _shake . intensity * this . view . width ) , this . _shake . vertical && ( this . _shake . y = this . game . rnd . frac ( ) * this . _shake . intensity * this . view . height * 2 - this . _shake . intensity * this . view . height ) ) } , updateTarget : function ( ) { this . _targetPosition . x = this . view . x + this . target . worldPosition . x , this . _targetPosition . y = this . view . y + this . target . worldPosition . y , this . deadzone ? ( this . _edge = this . _targetPosition . x - this . view . x , this . _edge < this . deadzone . left ? this . view . x = this . game . math . linear ( this . view . x , this . _targetPosition . x - this . deadzone . left , this . lerp . x ) : this . _edge > this . deadzone . right && ( this . view . x = this . game . math . linear ( this . view . x , this . _targetPosition . x - this . deadzone . right , this . lerp . x ) ) , this . _edge = this . _targetPosition . y - this . view . y , this . _edge < this . deadzone . top ? this . view . 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 ) ) , this . bounds && this . checkBounds ( ) , this . roundPx && this . view . floor ( ) , this . displayObject . position . x = - this . view . x , this . displayObject . position . y = - this . view . 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 * thi
} , c . Group . prototype . checkAll = function ( a , b , c , d , e ) { void 0 === c && ( c = ! 1 ) , void 0 === d && ( d = ! 1 ) , void 0 === e && ( e = ! 1 ) ; for ( var f = 0 ; f < this . children . length ; f ++ ) if ( ( ! c || c && this . children [ f ] . alive ) && ( ! d || d && this . children [ f ] . visible ) && ! this . checkProperty ( this . children [ f ] , a , b , e ) ) return ! 1 ; return ! 0 } , c . Group . prototype . addAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 1 ) } , c . Group . prototype . subAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 2 ) } , c . Group . prototype . multiplyAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 3 ) } , c . Group . prototype . divideAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 4 ) } , c . Group . prototype . callAllExists = function ( a , b ) { var c ; if ( arguments . length > 2 ) { c = [ ] ; for ( var d = 2 ; d < arguments . length ; d ++ ) c . push ( arguments [ d ] ) } for ( var d = 0 ; d < this . children . length ; d ++ ) this . children [ d ] . exists === b && this . children [ d ] [ a ] && this . children [ d ] [ a ] . apply ( this . children [ d ] , c ) } , c . Group . prototype . callbackFromArray = function ( a , b , c ) { if ( 1 == c ) { if ( a [ b [ 0 ] ] ) return a [ b [ 0 ] ] } else if ( 2 == c ) { if ( a [ b [ 0 ] ] [ b [ 1 ] ] ) return a [ b [ 0 ] ] [ b [ 1 ] ] } else if ( 3 == c ) { if ( a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] ) return a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] } else if ( 4 == c ) { if ( a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] ) return a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] } else if ( a [ b ] ) return a [ b ] ; return ! 1 } , c . Group . prototype . callAll = function ( a , b ) { if ( void 0 !== a ) { a = a . split ( "." ) ; var c = a . length ; if ( void 0 === b || null === b || "" === b ) b = null ; else if ( "string" == typeof b ) { b = b . split ( "." ) ; var d = b . length } var e ; if ( arguments . length > 2 ) { e = [ ] ; for ( var f = 2 ; f < arguments . length ; f ++ ) e . push ( arguments [ f ] ) } for ( var g = null , h = null , f = 0 ; f < this . children . length ; f ++ ) g = this . callbackFromArray ( this . children [ f ] , a , c ) , b && g ? ( h = this . callbackFromArray ( this . children [ f ] , b , d ) , g && g . apply ( h , e ) ) : g && g . apply ( this . children [ f ] , e ) } } , c . Group . prototype . preUpdate = function ( ) { if ( this . pendingDestroy ) return this . destroy ( ) , ! 1 ; if ( ! this . exists || ! this . parent . exists ) return this . renderOrderID = - 1 , ! 1 ; for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , c . Group . prototype . update = function ( ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . update ( ) } , c . Group . prototype . postUpdate = function ( ) { this . fixedToCamera && ( this . x = this . game . camera . view . x + this . cameraOffset . x , this . y = this . game . camera . view . y + this . cameraOffset . y ) ; for ( 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
} , onMouseWheel : function ( a ) { this . _wheelEvent && ( a = this . _wheelEvent . bindEvent ( a ) ) , this . event = a , this . capture && a . preventDefault ( ) , this . wheelDelta = c . Math . clamp ( - a . deltaY , - 1 , 1 ) , this . mouseWheelCallback && this . mouseWheelCallback . call ( this . callbackContext , a ) } , requestPointerLock : function ( ) { if ( this . game . device . pointerLock ) { var a = this . game . canvas ; a . requestPointerLock = a . requestPointerLock || a . mozRequestPointerLock || a . webkitRequestPointerLock , a . requestPointerLock ( ) ; var b = this ; this . _pointerLockChange = function ( a ) { return b . pointerLockChange ( a ) } , document . addEventListener ( "pointerlockchange" , this . _pointerLockChange , ! 0 ) , document . addEventListener ( "mozpointerlockchange" , this . _pointerLockChange , ! 0 ) , document . addEventListener ( "webkitpointerlockchange" , this . _pointerLockChange , ! 0 ) } } , pointerLockChange : function ( a ) { var b = this . game . canvas ; document . pointerLockElement === b || document . mozPointerLockElement === b || document . webkitPointerLockElement === b ? ( this . locked = ! 0 , this . pointerLock . dispatch ( ! 0 , a ) ) : ( this . locked = ! 1 , this . pointerLock . dispatch ( ! 1 , a ) ) } , releasePointerLock : function ( ) { 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 ( " pointermov
if ( this . sprite . fixedToCamera ) this . allowHorizontalDrag && ( this . sprite . cameraOffset . x = c ) , this . allowVerticalDrag && ( this . sprite . cameraOffset . y = d ) , this . boundsRect && this . checkBoundsRect ( ) , this . boundsSprite && this . checkBoundsSprite ( ) , this . snapOnDrag && ( this . sprite . cameraOffset . x = Math . round ( ( 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 . snapPoint . set ( this . sprite . cameraOffset . x , this . sprite . cameraOffset . y ) ) ; else { var e = this . game . camera . x - this . _pointerData [ a . id ] . camX , f = this . game . camera . y - this . _pointerData [ a . id ] . camY ; this . allowHorizontalDrag && ( this . sprite . x = c + e ) , this . allowVerticalDrag && ( this . sprite . y = d + f ) , this . boundsRect && this . checkBoundsRect ( ) , this . boundsSprite && this . checkBoundsSprite ( ) , this . snapOnDrag && ( 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 . snapPoint . set ( this . sprite . x , this . sprite . y ) ) } return this . sprite . events . onDragUpdate . dispatch ( this . sprite , a , c , d , this . snapPoint , b ) , ! 0 } , justOver : function ( a , b ) { return a = a || 0 , b = b || 500 , this . _pointerData [ a ] . isOver && this . overDuration ( a ) < b } , justOut : function ( a , b ) { return a = a || 0 , b = b || 500 , this . _pointerData [ a ] . isOut && this . game . time . time - this . _pointerData [ a ] . timeOut < b } , justPressed : function ( a , b ) { return a = a || 0 , b = b || 500 , this . _pointerData [ a ] . isDown && this . downDuration ( a ) < b } , justReleased : function ( a , b ) { return a = a || 0 , b = b || 500 , this . _pointerData [ a ] . isUp && this . game . time . time - this . _pointerData [ a ] . timeUp < b } , overDuration : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isOver ? this . game . time . time - this . _pointerData [ a ] . timeOver : - 1 } , downDuration : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isDown ? this . game . time . time - this . _pointerData [ a ] . timeDown : - 1 } , enableDrag : function ( a , b , d , e , f , g ) { void 0 === a && ( a = ! 1 ) , void 0 === b && ( b = ! 1 ) , void 0 === d && ( d = ! 1 ) , void 0 === e && ( e = 255 ) , void 0 === f && ( f = null ) , void 0 === g && ( g = null ) , this . _dragPoint = new c . Point , this . draggable = ! 0 , this . bringToTop = b , this . dragOffset = new c . Point , this . dragFromCenter = a , this . pixelPerfectClick = d , this . pixelPerfectAlpha = e , f && ( this . boundsRect = f ) , g && ( this . boundsSprite = g ) } , disableDrag : function ( ) { if ( this . _pointerData ) for ( var a = 0 ; 10 > a ; a ++ ) this . _pointerData [ a ] . isDragged = ! 1 ; this . draggable = ! 1 , this . isDragged = ! 1 , this . _draggedPointerID = - 1 , this . _pendingDrag = ! 1 } , startDrag : function ( a ) { var b = this . sprite . x , c = this . sprite . y ; if ( this . isDragged = ! 0 , this . _draggedPointerID = a . id , this . _pointerData [ a . id ] . camX = this . game . camera . x , this . _pointerData [ a . id ] . camY = this . game . camera . y , this . _pointerData [ a . id ] . isDragged = ! 0 , this . sprite . fixedToCamera ) { if ( this . dragFromCenter ) { var d = this . sprite . getBounds ( ) ; this . sprite . cameraOffset . x = this . globalToLocalX ( a . x ) + ( this . sprite . cameraOffset . x - d . centerX ) , 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 ) , this . _pendingDrag = ! 1 } , 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 . _pendingDrag = ! 1 , this . snapOnRelease && ( this . sprite . fixedToCamera ? ( this . sprite . cameraOffs
this . _onKilled && this . _onKilled . dispose ( ) , this . _onRevived && this . _onRevived . dispose ( ) , this . _onEnterBounds && this . _onEnterBounds . dispose ( ) , this . _onOutOfBounds && this . _onOutOfBounds . dispose ( ) , this . _onInputOver && this . _onInputOver . dispose ( ) , this . _onInputOut && this . _onInputOut . dispose ( ) , this . _onInputDown && this . _onInputDown . dispose ( ) , this . _onInputUp && this . _onInputUp . dispose ( ) , this . _onDragStart && this . _onDragStart . dispose ( ) , this . _onDragUpdate && this . _onDragUpdate . dispose ( ) , this . _onDragStop && this . _onDragStop . dispose ( ) , this . _onAnimationStart && this . _onAnimationStart . dispose ( ) , this . _onAnimationComplete && this . _onAnimationComplete . dispose ( ) , this . _onAnimationLoop && this . _onAnimationLoop . dispose ( ) } , onAddedToGroup : null , onRemovedFromGroup : null , onRemovedFromWorld : null , onDestroy : null , onKilled : null , onRevived : null , onOutOfBounds : null , onEnterBounds : null , onInputOver : null , onInputOut : null , onInputDown : null , onInputUp : null , onDragStart : null , onDragUpdate : null , onDragStop : null , onAnimationStart : null , onAnimationComplete : null , onAnimationLoop : null } , c . Events . prototype . constructor = c . Events ; for ( var f in c . Events . prototype ) c . Events . prototype . hasOwnProperty ( f ) && 0 === f . indexOf ( "on" ) && null === c . Events . prototype [ f ] && ! function ( a , b ) { "use strict" ; Object . defineProperty ( c . Events . prototype , a , { get : function ( ) { return this [ b ] || ( this [ b ] = new c . Signal ) } } ) , c . Events . prototype [ a + "$dispatch" ] = function ( ) { return this [ b ] ? this [ b ] . dispatch . apply ( this [ b ] , arguments ) : null } } ( f , "_" + f ) ; c . Component . FixedToCamera = function ( ) { } , c . Component . FixedToCamera . postUpdate = function ( ) { this . fixedToCamera && ( this . position . x = ( this . game . camera . view . x + this . cameraOffset . x ) / this . game . camera . scale . x , this . position . y = ( this . game . camera . view . y + this . cameraOffset . y ) / this . game . camera . scale . y ) } , c . Component . FixedToCamera . prototype = { _fixedToCamera : ! 1 , fixedToCamera : { get : function ( ) { return this . _fixedToCamera } , set : function ( a ) { a ? ( this . _fixedToCamera = ! 0 , this . cameraOffset . set ( this . x , this . y ) ) : this . _fixedToCamera = ! 1 } } , cameraOffset : new c . Point } , c . Component . Health = function ( ) { } , c . Component . Health . prototype = { health : 1 , maxHealth : 100 , damage : function ( a ) { return this . alive && ( this . health -= a , this . health <= 0 && this . kill ( ) ) , this } , setHealth : function ( a ) { return this . health = a , this . health > this . maxHealth && ( this . health = this . maxHealth ) , this } , heal : function ( a ) { return this . alive && ( this . health += a , this . health > this . maxHealth && ( this . health = this . maxHealth ) ) , this } } , c . Component . InCamera = function ( ) { } , c . Component . InCamera . prototype = { inCamera : { get : function ( ) { return this . game . world . camera . view . intersects ( this . _bounds ) } } } , c . Component . InputEnabled = function ( ) { } , c . Component . InputEnabled . prototype = { input : null , inputEnabled : { get : function ( ) { return this . input && this . input . enabled } , set : function ( a ) { a ? null === this . input ? ( this . input = new c . InputHandler ( this ) , this . input . start ( ) ) : this . input && ! this . input . enabled && this . input . start ( ) : this . input && this . input . enabled && this . input . stop ( ) } } } , c . Component . InWorld = function ( ) { } , c . Component . InWorld . preUpdate = function ( ) { if ( this . autoCull || this . checkWorldBounds ) { if ( this . _bounds . copyFrom ( this . getBounds ( ) ) , this . _bounds . x += this . game . camera . view . x , this . _bounds . y += this . game . camera . view . y , this . autoCull ) if ( this . game . world . camera . view . intersects ( this . _bounds ) ) this . renderable = ! 0 , this . game . world . camera . totalInView ++ ; else if ( this . renderable = ! 1 , 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 = { aliv
! 1 } , this ) , a . context . putImageData ( a . imageData , 0 , 0 ) , a . dirty = ! 0 , a } , rect : function ( a , b , c , d , e ) { return "undefined" != typeof e && ( this . context . fillStyle = e ) , this . context . fillRect ( a , b , c , d ) , this } , text : function ( a , b , c , d , e , f ) { void 0 === b && ( b = 0 ) , void 0 === c && ( c = 0 ) , void 0 === d && ( d = "14px Courier" ) , void 0 === e && ( e = "rgb(255,255,255)" ) , void 0 === f && ( f = ! 0 ) ; var g = this . context , h = g . font ; g . font = d , f && ( g . fillStyle = "rgb(0,0,0)" , g . fillText ( a , b + 1 , c + 1 ) ) , g . fillStyle = e , g . fillText ( a , b , c ) , g . font = h } , circle : function ( a , b , c , d ) { var e = this . context ; return void 0 !== d && ( e . fillStyle = d ) , e . beginPath ( ) , e . arc ( a , b , c , 0 , 2 * Math . PI , ! 1 ) , e . closePath ( ) , e . fill ( ) , this } , line : function ( a , b , c , d , e , f ) { void 0 === e && ( e = "#fff" ) , void 0 === f && ( f = 1 ) ; var g = this . context ; return g . beginPath ( ) , g . moveTo ( a , b ) , g . lineTo ( c , d ) , g . lineWidth = f , g . strokeStyle = e , g . stroke ( ) , g . closePath ( ) , this } , textureLine : function ( a , b , d ) { if ( void 0 === d && ( d = "repeat-x" ) , "string" != typeof b || ( b = this . game . cache . getImage ( b ) ) ) { var e = a . length ; "no-repeat" === d && e > b . width && ( e = b . width ) ; var f = this . context ; return f . fillStyle = f . createPattern ( b , d ) , this . _circle = new c . Circle ( a . start . x , a . start . y , b . height ) , this . _circle . circumferencePoint ( a . angle - 1.5707963267948966 , ! 1 , this . _pos ) , f . save ( ) , f . translate ( this . _pos . x , this . _pos . y ) , f . rotate ( a . angle ) , f . fillRect ( 0 , 0 , e , b . height ) , f . restore ( ) , this . dirty = ! 0 , this } } , render : function ( ) { return ! this . disableTextureUpload && this . dirty && ( this . baseTexture . dirty ( ) , this . dirty = ! 1 ) , this } , destroy : function ( ) { this . frameData . destroy ( ) , this . texture . destroy ( ! 0 ) , PIXI . CanvasPool . remove ( this ) } , blendReset : function ( ) { return this . op = "source-over" , this } , blendSourceOver : function ( ) { return this . op = "source-over" , this } , blendSourceIn : function ( ) { return this . op = "source-in" , this } , blendSourceOut : function ( ) { return this . op = "source-out" , this } , blendSourceAtop : function ( ) { return this . op = "source-atop" , this } , blendDestinationOver : function ( ) { return this . op = "destination-over" , this } , blendDestinationIn : function ( ) { return this . op = "destination-in" , this } , blendDestinationOut : function ( ) { return this . op = "destination-out" , this } , blendDestinationAtop : function ( ) { return this . op = "destination-atop" , this } , blendXor : function ( ) { return this . op = "xor" , this } , blendAdd : function ( ) { return this . op = "lighter" , this } , blendMultiply : function ( ) { return this . op = "multiply" , this } , blendScreen : function ( ) { return this . op = "screen" , this } , blendOverlay : function ( ) { return this . op = "overlay" , this } , blendDarken : function ( ) { return this . op = "darken" , this } , blendLighten : function ( ) { return this . op = "lighten" , this } , blendColorDodge : function ( ) { return this . op = "color-dodge" , this } , blendColorBurn : function ( ) { return this . op = "color-burn" , this } , blendHardLight : function ( ) { return this . op = "hard-light" , this } , blendSoftLight : function ( ) { return this . op = "soft-light" , this } , blendDifference : function ( ) { return this . op = "difference" , this } , blendExclusion : function ( ) { return this . op = "exclusion" , this } , blendHue : function ( ) { return this . op = "hue" , this } , blendSaturation : function ( ) { return this . op = "saturation" , this } , blendColor : function ( ) { return this . op = "color" , this } , blendLuminosity : function ( ) { return this . op = "luminosity" , this } } , Object . defineProperty ( c . BitmapData . prototype , "smoothed" , { get : function ( ) { c . Canvas . getSmoothingEnabled ( this . context ) } , set : function ( a ) { c . Canvas . setSmoothingEnabled ( this . context , a ) } } ) , Object . defineProperty ( c . BitmapData . prototype , "op" , { get : function ( ) { return this . context . globalCompositeOperation } , 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 . cac
b . stroke ( ) ) ; else if ( e . type === PIXI . Graphics . ELIP ) { var k = 2 * f . width , l = 2 * f . height , m = f . x - k / 2 , n = f . y - l / 2 ; b . beginPath ( ) ; var o = . 5522848 , p = k / 2 * o , q = l / 2 * o , r = m + k , s = n + l , t = m + k / 2 , u = n + l / 2 ; b . moveTo ( m , u ) , b . bezierCurveTo ( m , u - q , t - p , n , t , n ) , b . bezierCurveTo ( t + p , n , r , u - q , r , u ) , b . bezierCurveTo ( r , u + q , t + p , s , t , s ) , b . bezierCurveTo ( t - p , s , m , u + q , m , u ) , b . closePath ( ) , e . fill && ( b . globalAlpha = e . fillAlpha * c , b . fillStyle = "#" + ( "00000" + ( 0 | g ) . toString ( 16 ) ) . substr ( - 6 ) , b . fill ( ) ) , e . lineWidth && ( b . globalAlpha = e . lineAlpha * c , b . strokeStyle = "#" + ( "00000" + ( 0 | h ) . toString ( 16 ) ) . substr ( - 6 ) , b . stroke ( ) ) } else if ( e . type === PIXI . Graphics . RREC ) { var v = f . x , w = f . y , x = f . width , y = f . height , z = f . radius , A = Math . min ( x , y ) / 2 | 0 ; z = z > A ? A : z , b . beginPath ( ) , b . moveTo ( v , w + z ) , b . lineTo ( v , w + y - z ) , b . quadraticCurveTo ( v , w + y , v + z , w + y ) , b . lineTo ( v + x - z , w + y ) , b . quadraticCurveTo ( v + x , w + y , v + x , w + y - z ) , b . lineTo ( v + x , w + z ) , b . quadraticCurveTo ( v + x , w , v + x - z , w ) , b . lineTo ( v + z , w ) , b . quadraticCurveTo ( v , w , v , w + z ) , b . closePath ( ) , ( e . fillColor || 0 === e . fillColor ) && ( b . globalAlpha = e . fillAlpha * c , b . fillStyle = "#" + ( "00000" + ( 0 | g ) . toString ( 16 ) ) . substr ( - 6 ) , b . fill ( ) ) , e . lineWidth && ( b . globalAlpha = e . lineAlpha * c , b . strokeStyle = "#" + ( "00000" + ( 0 | h ) . toString ( 16 ) ) . substr ( - 6 ) , b . stroke ( ) ) } } } , PIXI . CanvasGraphics . renderGraphicsMask = function ( a , b ) { var c = a . graphicsData . length ; if ( 0 !== c ) { b . beginPath ( ) ; for ( var d = 0 ; c > d ; d ++ ) { var e = a . graphicsData [ d ] , f = e . shape ; if ( e . type === PIXI . Graphics . POLY ) { var g = f . points ; b . moveTo ( g [ 0 ] , g [ 1 ] ) ; for ( var h = 1 ; h < g . length / 2 ; h ++ ) b . lineTo ( g [ 2 * h ] , g [ 2 * h + 1 ] ) ; g [ 0 ] === g [ g . length - 2 ] && g [ 1 ] === g [ g . length - 1 ] && b . closePath ( ) } else if ( e . type === PIXI . Graphics . RECT ) b . rect ( f . x , f . y , f . width , f . height ) , b . closePath ( ) ; else if ( e . type === PIXI . Graphics . CIRC ) b . arc ( f . x , f . y , f . radius , 0 , 2 * Math . PI ) , b . closePath ( ) ; else if ( e . type === PIXI . Graphics . ELIP ) { var i = 2 * f . width , j = 2 * f . height , k = f . x - i / 2 , l = f . y - j / 2 , m = . 5522848 , n = i / 2 * m , o = j / 2 * m , p = k + i , q = l + j , r = k + i / 2 , s = l + j / 2 ; b . moveTo ( k , s ) , b . bezierCurveTo ( k , s - o , r - n , l , r , l ) , b . bezierCurveTo ( r + n , l , p , s - o , p , s ) , b . bezierCurveTo ( p , s + o , r + n , q , r , q ) , b . bezierCurveTo ( r - n , q , k , s + o , k , s ) , b . closePath ( ) } else if ( e . type === PIXI . Graphics . RREC ) { var t = f . x , u = f . y , v = f . width , w = f . height , x = f . radius , y = Math . min ( v , w ) / 2 | 0 ; x = x > y ? y : x , b . moveTo ( t , u + x ) , b . lineTo ( t , u + w - x ) , b . quadraticCurveTo ( t , u + w , t + x , u + w ) , b . lineTo ( t + v - x , u + w ) , b . quadraticCurveTo ( t + v , u + w , t + v , u + w - x ) , b . lineTo ( t + v , u + x ) , b . quadraticCurveTo ( t + v , u , t + v - x , u ) , b . lineTo ( t + x , u ) , b . quadraticCurveTo ( t , u , t , u + x ) , b . closePath ( ) } } } } , PIXI . CanvasGraphics . updateGraphicsTint = function ( a ) { if ( 16777215 !== a . tint ) for ( var b = ( a . tint >> 16 & 255 ) / 255 , c = ( a . tint >> 8 & 255 ) / 255 , d = ( 255 & a . tint ) / 255 , e = 0 ; e < a . graphicsData . length ; e ++ ) { var f = a . graphicsData [ e ] , g = 0 | f . fillColor , h = 0 | f . lineColor ; f . _fillTint = ( ( g >> 16 & 255 ) / 255 * b * 255 << 16 ) + ( ( g >> 8 & 255 ) / 255 * c * 255 << 8 ) + ( 255 & g ) / 255 * d * 255 , f . _lineTint = ( ( h >> 16 & 255 ) / 255 * b * 255 << 16 ) + ( ( h >> 8 & 255 ) / 255 * c * 255 << 8 ) + ( 255 & h ) / 255 * d * 255 } } , c . Graphics = function ( a , b , d ) { void 0 === b && ( b = 0 ) , void 0 === d && ( d = 0 ) , this . type = c . GRAPHICS , this . physicsType = c . SPRITE , this . anchor = new c . Point , PIXI . Graphics . call ( this ) , c . Component . Core . init . call ( this , a , b , d , "" , null ) } , c . Graphics . prototype = Object . create ( PIXI . Graphics . prototype ) , c . Graphics . prototype . constructor = c . Graphics , c . Component . Core . install . call ( c . Graphics . prototype , [ "Angle" , "AutoCull" , "Bounds" , "Destroy" , "FixedToCamera" , "InputEnabled" , "InWorld" , "LifeSpan" , "PhysicsBody" , "Reset" ] ) , c . Graphics . prototype . preUpdatePhysics = c . Component . PhysicsBody . preUpdate , c . Graphics . prototype . preUpdateLifeSpan = c . Component . LifeSpan . preUpdate , 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 = functio
c . RetroFont . TEXT _SET10 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" , c . RetroFont . TEXT _SET11 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789" , c . RetroFont . prototype . setFixedWidth = function ( a , b ) { void 0 === b && ( b = "left" ) , this . fixedWidth = a , this . align = b } , c . RetroFont . prototype . setText = function ( a , b , c , d , e , f ) { this . multiLine = b || ! 1 , this . customSpacingX = c || 0 , this . customSpacingY = d || 0 , this . align = e || "left" , f ? this . autoUpperCase = ! 1 : this . autoUpperCase = ! 0 , a . length > 0 && ( this . text = a ) } , c . RetroFont . prototype . buildRetroFontText = function ( ) { var a = 0 , b = 0 ; if ( this . clear ( ) , this . multiLine ) { var d = this . _text . split ( "\n" ) ; this . fixedWidth > 0 ? this . resize ( this . fixedWidth , d . length * ( this . characterHeight + this . customSpacingY ) - this . customSpacingY , ! 0 ) : this . resize ( this . getLongestLine ( ) * ( this . characterWidth + this . customSpacingX ) , d . length * ( this . characterHeight + this . customSpacingY ) - this . customSpacingY , ! 0 ) ; for ( var e = 0 ; e < d . length ; e ++ ) a = 0 , this . align === c . RetroFont . ALIGN _RIGHT ? a = this . width - d [ e ] . length * ( this . characterWidth + this . customSpacingX ) : this . align === c . RetroFont . ALIGN _CENTER && ( a = this . width / 2 - d [ e ] . length * ( this . characterWidth + this . customSpacingX ) / 2 , a += this . customSpacingX / 2 ) , 0 > a && ( a = 0 ) , this . pasteLine ( d [ e ] , a , b , this . customSpacingX ) , b += this . characterHeight + this . customSpacingY } else this . fixedWidth > 0 ? this . resize ( this . fixedWidth , this . characterHeight , ! 0 ) : this . resize ( this . _text . length * ( this . characterWidth + this . customSpacingX ) , this . characterHeight , ! 0 ) , a = 0 , this . align === c . RetroFont . ALIGN _RIGHT ? a = this . width - this . _text . length * ( this . characterWidth + this . customSpacingX ) : this . align === c . RetroFont . ALIGN _CENTER && ( a = this . width / 2 - this . _text . length * ( this . characterWidth + this . customSpacingX ) / 2 , a += this . customSpacingX / 2 ) , 0 > a && ( a = 0 ) , this . pasteLine ( this . _text , a , 0 , this . customSpacingX ) ; this . requiresReTint = ! 0 } , c . RetroFont . prototype . pasteLine = function ( a , b , c , d ) { for ( var e = 0 ; e < a . length ; e ++ ) if ( " " === a . charAt ( e ) ) b += this . characterWidth + d ; else if ( this . grabData [ a . charCodeAt ( e ) ] >= 0 && ( this . stamp . frame = this . grabData [ a . charCodeAt ( e ) ] , this . renderXY ( this . stamp , b , c , ! 1 ) , b += this . characterWidth + d , b > this . width ) ) break } , c . RetroFont . prototype . getLongestLine = function ( ) { var a = 0 ; if ( this . _text . length > 0 ) for ( var b = this . _text . split ( "\n" ) , c = 0 ; c < b . length ; c ++ ) b [ c ] . length > a && ( a = b [ c ] . length ) ; return a } , c . RetroFont . prototype . removeUnsupportedCharacters = function ( a ) { for ( var b = "" , c = 0 ; c < this . _text . length ; c ++ ) { var d = this . _text [ c ] , e = d . charCodeAt ( 0 ) ; ( this . grabData [ e ] >= 0 || ! a && "\n" === d ) && ( b = b . concat ( d ) ) } return b } , c . RetroFont . prototype . updateOffset = function ( a , b ) { if ( this . offsetX !== a || this . offsetY !== b ) { for ( var c = a - this . offsetX , d = b - this . offsetY , e = this . game . cache . getFrameData ( this . stamp . key ) . getFrames ( ) , f = e . length ; f -- ; ) e [ f ] . x += c , e [ f ] . y += d ; this . buildRetroFontText ( ) } } , Object . defineProperty ( c . RetroFont . prototype , "text" , { get : function ( ) { return this . _text } , set : function ( a ) { var b ; b = this . autoUpperCase ? a . toUpperCase ( ) : a , b !== this . _text && ( this . _text = b , this . removeUnsupportedCharacters ( this . multiLine ) , this . buildRetroFontText ( ) ) } } ) , Object . defineProperty ( c . RetroFont . prototype , "smoothed" , { get : function ( ) { return this . stamp . smoothed } , set : function ( a ) { this . stamp . smoothed = a , this . buildRetroFontText ( ) } } ) , c . Rope = function ( a , b , d , e , f , g ) { this . points = [ ] , this . points = g , this . _hasUpdateAnimation = ! 1 , this . _updateAnimationCallback = null , b = b || 0 , d = d || 0 , e = e || null , f = f || null , this . type = c . ROPE , PIXI . Rope . call ( this , PIXI . TextureCache . _ _default , this . points ) , c . Component . Core . init . call ( this , a , b , d , e , f ) } , c . Rope . prototype = Object . create ( PIXI . Rope . prototype ) , c . Rope . prototype . constructor = c . Rope , c . Component . Core . install . call ( c . Rope . prototype , [ "Angle" , "Animation" , "AutoCull" , "Bounds" , "BringToTop" , "Crop" , "Delta" , "Destroy" , "FixedToCamera" , "InWorld" , "LifeSpan" , "LoadTexture" , "Overlap" , "PhysicsBody" , "Reset" , "ScaleMinMax" , "Smoothed" ] ) , c . Rope . prototype . preUpdatePhysics = c . Component . PhysicsBody . preUpdate , c . Rope . prototype . preUpdateLifeSpan = c . Component . LifeSpan . preUpdate , c . Rope . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . Rope . prototype . preUpdateCore = c . Component . Core . preUpdate , c . Rope . prototype . preUpdate = function ( ) { return this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ? this . preUpdateCore ( ) : ! 1 } , c . Rope . prot
"Back.easeOut" : c . Easing . Back . Out , "Bounce.easeOut" : c . Easing . Bounce . Out , "Quad.easeInOut" : c . Easing . Quadratic . InOut , "Cubic.easeInOut" : c . Easing . Cubic . InOut , "Quart.easeInOut" : c . Easing . Quartic . InOut , "Quint.easeInOut" : c . Easing . Quintic . InOut , "Sine.easeInOut" : c . Easing . Sinusoidal . InOut , "Expo.easeInOut" : c . Easing . Exponential . InOut , "Circ.easeInOut" : c . Easing . Circular . InOut , "Elastic.easeInOut" : c . Easing . Elastic . InOut , "Back.easeInOut" : c . Easing . Back . InOut , "Bounce.easeInOut" : c . Easing . Bounce . InOut } , this . game . onPause . add ( this . _pauseAll , this ) , this . game . onResume . add ( this . _resumeAll , this ) } , c . TweenManager . prototype = { getAll : function ( ) { return this . _tweens } , removeAll : function ( ) { for ( var a = 0 ; a < this . _tweens . length ; a ++ ) this . _tweens [ a ] . pendingDelete = ! 0 ; this . _add = [ ] } , removeFrom : function ( a , b ) { void 0 === b && ( b = ! 0 ) ; var d , e ; if ( Array . isArray ( a ) ) for ( d = 0 , e = a . length ; e > d ; d ++ ) this . removeFrom ( a [ d ] ) ; else if ( a . type === c . GROUP && b ) for ( var d = 0 , e = a . children . length ; e > d ; d ++ ) this . removeFrom ( a . children [ d ] ) ; else { for ( d = 0 , e = this . _tweens . length ; e > d ; d ++ ) a === this . _tweens [ d ] . target && this . remove ( this . _tweens [ d ] ) ; for ( d = 0 , e = this . _add . length ; e > d ; d ++ ) a === this . _add [ d ] . target && this . remove ( this . _add [ d ] ) } } , add : function ( a ) { a . _manager = this , this . _add . push ( a ) } , create : function ( a ) { return new c . Tween ( a , this . game , this ) } , remove : function ( a ) { var b = this . _tweens . indexOf ( a ) ; - 1 !== b ? this . _tweens [ b ] . pendingDelete = ! 0 : ( b = this . _add . indexOf ( a ) , - 1 !== b && ( this . _add [ b ] . pendingDelete = ! 0 ) ) } , update : function ( ) { var a = this . _add . length , b = this . _tweens . length ; if ( 0 === b && 0 === a ) return ! 1 ; for ( var c = 0 ; b > c ; ) this . _tweens [ c ] . update ( this . game . time . time ) ? c ++ : ( this . _tweens . splice ( c , 1 ) , b -- ) ; return a > 0 && ( this . _tweens = this . _tweens . concat ( this . _add ) , this . _add . length = 0 ) , ! 0 } , isTweening : function ( a ) { return this . _tweens . some ( function ( b ) { return b . target === a } ) } , _pauseAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . _pause ( ) } , _resumeAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . _resume ( ) } , pauseAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . pause ( ) } , resumeAll : function ( ) { for ( var a = this . _tweens . length - 1 ; a >= 0 ; a -- ) this . _tweens [ a ] . resume ( ! 0 ) } } , c . TweenManager . prototype . constructor = c . TweenManager , c . Tween = function ( a , b , d ) { this . game = b , this . target = a , this . manager = d , this . timeline = [ ] , this . reverse = ! 1 , this . timeScale = 1 , this . repeatCounter = 0 , this . pendingDelete = ! 1 , this . onStart = new c . Signal , this . onLoop = new c . Signal , this . onRepeat = new c . Signal , this . onChildComplete = new c . Signal , this . onComplete = new c . Signal , this . isRunning = ! 1 , this . current = 0 , this . properties = { } , this . chainedTween = null , this . isPaused = ! 1 , this . frameBased = d . frameBased , this . _onUpdateCallback = null , this . _onUpdateCallbackContext = null , this . _pausedTime = 0 , this . _codePaused = ! 1 , this . _hasStarted = ! 1 } , c . Tween . prototype = { to : function ( a , b , d , e , f , g , h ) { return ( void 0 === b || 0 >= b ) && ( b = 1e3 ) , ( void 0 === d || null === d ) && ( d = c . Easing . Default ) , void 0 === e && ( e = ! 1 ) , void 0 === f && ( f = 0 ) , void 0 === g && ( g = 0 ) , void 0 === h && ( h = ! 1 ) , "string" == typeof d && this . manager . easeMap [ d ] && ( d = this . manager . easeMap [ d ] ) , this . isRunning ? ( console . warn ( "Phaser.Tween.to cannot be called after Tween.start" ) , this ) : ( this . timeline . push ( new c . TweenData ( this ) . to ( a , b , d , f , g , h ) ) , e && this . start ( ) , this ) } , from : function ( a , b , d , e , f , g , h ) { return void 0 === b && ( b = 1e3 ) , ( void 0 === d || null === d ) && ( d = c . Easing . Default ) , void 0 === e && ( e = ! 1 ) , void 0 === f && ( f = 0 ) , void 0 === g && ( g = 0 ) , void 0 === h && ( h = ! 1 ) , "string" == typeof d && this . manager . easeMap [ d ] && ( d = this . manager . easeMap [ d ] ) , this . isRunning ? ( console . warn ( "Phaser.Tween.from cannot be called after Tween.start" ) , this ) : ( this . timeline . push ( new c . TweenData ( this ) . from ( a , b , d , f , g , h ) ) , e && this . start ( ) , this ) } , start : function ( a ) { if ( void 0 === a && ( a = 0 ) , null === this . game || null === this . target || 0 === this . timeline . length || this . isRunning ) return this ; for ( var b = 0 ; b < this . timeline . length ; b ++ ) for ( var c in this . timeline [ b ] . vEnd ) this . properties [ c ] = this . target [ c ] || 0 , Array . isArray ( this . properties [ c ] ) || ( this . properties [ c ] *= 1 ) ; for ( var b = 0 ; b < this . timeline . length ; b ++ ) this . timeline [ b ] . loadValues ( ) ; return this . manager . add ( this ) , this . isRunning = ! 0 , ( 0 > a || a > this . timeline . length - 1 ) && ( a = 0 ) , this . current = a , this . timeline [ this . current ] . start ( ) , this } , stop
get : function ( ) { return this . isPaused } , set : function ( a ) { this . isPaused = a , a ? this . _pauseStartTime = this . game . time . time : this . isPlaying && ( this . _timeNextFrame = this . game . time . time + this . delay ) } } ) , Object . defineProperty ( c . Animation . prototype , "reversed" , { get : function ( ) { return this . isReversed } , set : function ( a ) { this . isReversed = a } } ) , Object . defineProperty ( c . Animation . prototype , "frameTotal" , { get : function ( ) { return this . _frames . length } } ) , Object . defineProperty ( c . Animation . prototype , "frame" , { get : function ( ) { return null !== this . currentFrame ? this . currentFrame . index : this . _frameIndex } , set : function ( a ) { this . currentFrame = this . _frameData . getFrame ( this . _frames [ a ] ) , null !== this . currentFrame && ( this . _frameIndex = a , this . _parent . setFrame ( this . currentFrame ) , this . onUpdate && this . onUpdate . dispatch ( this , this . currentFrame ) ) } } ) , Object . defineProperty ( c . Animation . prototype , "speed" , { get : function ( ) { return Math . round ( 1e3 / this . delay ) } , set : function ( a ) { a >= 1 && ( this . delay = 1e3 / a ) } } ) , Object . defineProperty ( c . Animation . prototype , "enableUpdate" , { get : function ( ) { return null !== this . onUpdate } , set : function ( a ) { a && null === this . onUpdate ? this . onUpdate = new c . Signal : a || null === this . onUpdate || ( this . onUpdate . dispose ( ) , this . onUpdate = null ) } } ) , c . Animation . generateFrameNames = function ( a , b , d , e , f ) { void 0 === e && ( e = "" ) ; var g = [ ] , h = "" ; if ( d > b ) for ( var i = b ; d >= i ; i ++ ) h = "number" == typeof f ? c . Utils . pad ( i . toString ( ) , f , "0" , 1 ) : i . toString ( ) , h = a + h + e , g . push ( h ) ; else for ( var i = b ; i >= d ; i -- ) h = "number" == typeof f ? c . Utils . pad ( i . toString ( ) , f , "0" , 1 ) : i . toString ( ) , h = a + h + e , g . push ( h ) ; return g } , c . Frame = function ( a , b , d , e , f , g ) { this . index = a , this . x = b , this . y = d , this . width = e , this . height = f , this . name = g , this . centerX = Math . floor ( e / 2 ) , this . centerY = Math . floor ( f / 2 ) , this . distance = c . Math . distance ( 0 , 0 , e , f ) , this . rotated = ! 1 , this . rotationDirection = "cw" , this . trimmed = ! 1 , this . sourceSizeW = e , this . sourceSizeH = f , this . spriteSourceSizeX = 0 , this . spriteSourceSizeY = 0 , this . spriteSourceSizeW = 0 , this . spriteSourceSizeH = 0 , this . right = this . x + this . width , this . bottom = this . y + this . height } , c . Frame . prototype = { resize : function ( a , b ) { this . width = a , this . height = b , this . centerX = Math . floor ( a / 2 ) , this . centerY = Math . floor ( b / 2 ) , this . distance = c . Math . distance ( 0 , 0 , a , b ) , this . sourceSizeW = a , this . sourceSizeH = b , this . right = this . x + a , this . bottom = this . y + b } , setTrim : function ( a , b , c , d , e , f , g ) { this . trimmed = a , a && ( this . sourceSizeW = b , this . sourceSizeH = c , this . centerX = Math . floor ( b / 2 ) , this . centerY = Math . floor ( c / 2 ) , this . spriteSourceSizeX = d , this . spriteSourceSizeY = e , this . spriteSourceSizeW = f , this . spriteSourceSizeH = g ) } , clone : function ( ) { var a = new c . Frame ( this . index , this . x , this . y , this . width , this . height , this . name ) ; for ( var b in this ) this . hasOwnProperty ( b ) && ( a [ b ] = this [ b ] ) ; return a } , getRect : function ( a ) { return void 0 === a ? a = new c . Rectangle ( this . x , this . y , this . width , this . height ) : a . setTo ( this . x , this . y , this . width , this . height ) , a } } , c . Frame . prototype . constructor = c . Frame , c . FrameData = function ( ) { this . _frames = [ ] , this . _frameNames = [ ] } , c . FrameData . prototype = { addFrame : function ( a ) { return a . index = this . _frames . length , this . _frames . push ( a ) , "" !== a . name && ( this . _frameNames [ a . name ] = a . index ) , a } , getFrame : function ( a ) { return a >= this . _frames . length && ( a = 0 ) , this . _frames [ a ] } , getFrameByName : function ( a ) { return "number" == typeof this . _frameNames [ a ] ? this . _frames [ this . _frameNames [ a ] ] : null } , checkFrameName : function ( a ) { return null == this . _frameNames [ a ] ? ! 1 : ! 0 } , clone : function ( ) { for ( var a = new c . FrameData , b = 0 ; b < this . _frames . length ; b ++ ) a . _frames . push ( this . _frames [ b ] . clone ( ) ) ; for ( var d in this . _frameNames ) this . _frameNames . hasOwnProperty ( d ) && a . _frameNames . push ( this . _frameNames [ d ] ) ; return a } , getFrameRange : function ( a , b , c ) { void 0 === c && ( c = [ ] ) ; for ( var d = a ; b >= d ; d ++ ) c . push ( this . _frames [ d ] ) ; return c } , getFrames : function ( a , b , c ) { if ( void 0 === b && ( b = ! 0 ) , void 0 === c && ( c = [ ] ) , void 0 === a || 0 === a . length ) for ( var d = 0 ; d < this . _frames . length ; d ++ ) c . push ( this . _frames [ d ] ) ; else for ( var d = 0 ; d < a . length ; d ++ ) b ? c . push ( this . getFrame ( a [ d ] ) ) : c . push ( this . getFrameByName ( a [ d ] ) ) ; return c } , getFrameIndexes : function ( a , b , c ) { if ( void 0 === b && ( b = ! 0 ) , void 0 === c && ( c = [ ] ) , void 0 === a || 0 === a . length ) for ( var d = 0 ; d < this . _frames . length ; d ++ ) c . push ( this . _frames [ d ] . index ) ; else for ( var d = 0 ; d < a . length ; d ++ ) b && this . _frames [ a [ d ] ] ? c . push ( this . _frames [ a [ d ] ] .
break ; case "xml" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . xmlLoadComplete ) ; break ; case "tilemap" : a . format === c . Tilemap . TILED _JSON ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . jsonLoadComplete ) : a . format === c . Tilemap . CSV ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . csvLoadComplete ) : this . asyncComplete ( a , "invalid Tilemap format: " + a . format ) ; break ; case "text" : case "script" : case "shader" : case "physics" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . fileComplete ) ; break ; case "binary" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "arraybuffer" , this . fileComplete ) } } , loadImageTag : function ( a ) { var b = this ; a . data = new Image , a . data . name = a . key , this . crossOrigin && ( a . data . crossOrigin = this . crossOrigin ) , a . data . onload = function ( ) { a . data . onload && ( a . data . onload = null , a . data . onerror = null , b . fileComplete ( a ) ) } , a . data . onerror = function ( ) { a . data . onload && ( a . data . onload = null , a . data . onerror = null , b . fileError ( a ) ) } , a . data . src = this . transformUrl ( a . url , a ) , a . data . complete && a . data . width && a . data . height && ( a . data . onload = null , a . data . onerror = null , this . fileComplete ( a ) ) } , loadVideoTag : function ( a ) { var b = this ; a . data = document . createElement ( "video" ) , a . data . name = a . key , a . data . controls = ! 1 , a . data . autoplay = ! 1 ; var d = function ( ) { a . data . removeEventListener ( a . loadEvent , d , ! 1 ) , a . data . onerror = null , a . data . canplay = ! 0 , c . GAMES [ b . game . id ] . load . fileComplete ( a ) } ; a . data . onerror = function ( ) { a . data . removeEventListener ( a . loadEvent , d , ! 1 ) , a . data . onerror = null , a . data . canplay = ! 1 , b . fileError ( a ) } , a . data . addEventListener ( a . loadEvent , d , ! 1 ) , a . data . src = this . transformUrl ( a . url , a ) , a . data . load ( ) } , loadAudioTag : function ( a ) { var b = this ; if ( this . game . sound . touchLocked ) a . data = new Audio , a . data . name = a . key , a . data . preload = "auto" , a . data . src = this . transformUrl ( a . url , a ) , this . fileComplete ( a ) ; else { a . data = new Audio , a . data . name = a . key ; var c = function ( ) { a . data . removeEventListener ( "canplaythrough" , c , ! 1 ) , a . data . onerror = null , b . fileComplete ( a ) } ; a . data . onerror = function ( ) { a . data . removeEventListener ( "canplaythrough" , c , ! 1 ) , a . data . onerror = null , b . fileError ( a ) } , a . data . preload = "auto" , a . data . src = this . transformUrl ( a . url , a ) , a . data . addEventListener ( "canplaythrough" , c , ! 1 ) , a . data . load ( ) } } , xhrLoad : function ( a , b , c , d , e ) { if ( this . useXDomainRequest && window . XDomainRequest ) return void this . xhrLoadWithXDR ( a , b , c , d , e ) ; var f = new XMLHttpRequest ; f . open ( "GET" , b , ! 0 ) , f . responseType = c , e = e || this . fileError ; var g = this ; f . onload = function ( ) { try { return 4 == f . readyState && f . status >= 400 && f . status <= 599 ? e . call ( g , a , f ) : d . call ( g , a , f ) } catch ( b ) { g . hasLoaded ? window . console && console . error ( b ) : g . asyncComplete ( a , b . message || "Exception" ) } } , f . onerror = function ( ) { try { return e . call ( g , a , f ) } catch ( b ) { g . hasLoaded ? window . console && console . error ( b ) : g . asyncComplete ( a , b . message || "Exception" ) } } , a . requestObject = f , a . requestUrl = b , f . send ( ) } , xhrLoadWithXDR : function ( a , b , c , d , e ) { this . _warnedAboutXDomainRequest || this . game . device . ie && ! ( this . game . device . ieVersion >= 10 ) || ( this . _warnedAboutXDomainRequest = ! 0 , console . warn ( "Phaser.Loader - using XDomainRequest outside of IE 9" ) ) ; var f = new window . XDomainRequest ; f . open ( "GET" , b , ! 0 ) , f . responseType = c , f . timeout = 3e3 , e = e || this . fileError ; var g = this ; f . onerror = function ( ) { try { return e . call ( g , a , f ) } catch ( b ) { g . asyncComplete ( a , b . message || "Exception" ) } } , f . ontimeout = function ( ) { try { return e . call ( g , a , f ) } catch ( b ) { g . asyncComplete ( a , b . message || "Exception" ) } } , f . onprogress = function ( ) { } , f . onload = function ( ) { try { return 4 == f . readyState && f . status >= 400 && f . status <= 599 ? e . call ( g , a , f ) : d . call ( g , a , f ) } catch ( b ) { g . asyncComplete ( a , b . message || "Exception" ) } } , a . requestObject = f , a . requestUrl = b , setTimeout ( function ( ) { f . send ( ) } , 0 ) } , getVideoURL : function ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) { var c , d = a [ b ] ; if ( d . uri ) { if ( c = d . type , d = d . uri , this . game . device . canPlayVideo ( c ) ) return d } else { if ( 0 === d . indexOf ( "blob:" ) || 0 === d . indexOf ( "data:" ) ) return d ; d . indexOf ( "?" ) >= 0 && ( d = d . substr ( 0 , d . indexOf ( "?" ) ) ) ; var e = d . substr ( ( Math . max ( 0 , d . lastIndexOf ( "." ) ) || 1 / 0 ) + 1 ) ; if ( c = e . toLowerCase ( ) , this . game . device . canPlayVideo ( c ) ) return a [ b ] } } return null } , getAudioURL : function ( a ) { if ( this . game . sound . noAudio ) return null ; for ( var b = 0 ; b < a . length ; b ++ ) { var c , d = a [ b ] ; if ( d . uri ) { if ( c = d . type , d = d . uri , this . game . device . canPlayAudio ( c ) ) return d } else { if ( 0 === d . indexO
a . fullScreenTarget && ( this . fullScreenTarget = a . fullScreenTarget ) } , setupScale : function ( a , b ) { var d , e = new c . Rectangle ; "" !== this . game . parent && ( "string" == typeof this . game . parent ? d = document . getElementById ( this . game . parent ) : this . game . parent && 1 === this . game . parent . nodeType && ( d = this . game . parent ) ) , d ? ( this . parentNode = d , this . parentIsWindow = ! 1 , this . getParentBounds ( this . _parentBounds ) , e . width = this . _parentBounds . width , e . height = this . _parentBounds . height , this . offset . set ( this . _parentBounds . x , this . _parentBounds . y ) ) : ( this . parentNode = null , this . parentIsWindow = ! 0 , e . width = this . dom . visualBounds . width , e . height = this . dom . visualBounds . height , this . offset . set ( 0 , 0 ) ) ; var f = 0 , g = 0 ; "number" == typeof a ? f = a : ( this . parentScaleFactor . x = parseInt ( a , 10 ) / 100 , f = e . width * this . parentScaleFactor . x ) , "number" == typeof b ? g = b : ( this . parentScaleFactor . y = parseInt ( b , 10 ) / 100 , g = e . height * this . parentScaleFactor . y ) , f = Math . floor ( f ) , g = Math . floor ( g ) , this . _gameSize . setTo ( 0 , 0 , f , g ) , this . updateDimensions ( f , g , ! 1 ) } , _gameResumed : function ( ) { this . queueUpdate ( ! 0 ) } , setGameSize : function ( a , b ) { this . _gameSize . setTo ( 0 , 0 , a , b ) , this . currentScaleMode !== c . ScaleManager . RESIZE && this . updateDimensions ( a , b , ! 0 ) , this . queueUpdate ( ! 0 ) } , setUserScale : function ( a , b , c , d ) { this . _userScaleFactor . setTo ( a , b ) , this . _userScaleTrim . setTo ( 0 | c , 0 | d ) , this . queueUpdate ( ! 0 ) } , setResizeCallback : function ( a , b ) { this . onResize = a , this . onResizeContext = b } , signalSizeChange : function ( ) { if ( ! c . Rectangle . sameDimensions ( this , this . _lastReportedCanvasSize ) || ! c . Rectangle . sameDimensions ( this . game , this . _lastReportedGameSize ) ) { var a = this . width , b = this . height ; this . _lastReportedCanvasSize . setTo ( 0 , 0 , a , b ) , this . _lastReportedGameSize . setTo ( 0 , 0 , this . game . width , this . game . height ) , this . grid && this . grid . onResize ( a , b ) , this . onSizeChange . dispatch ( this , a , b ) , this . currentScaleMode === c . ScaleManager . RESIZE && ( this . game . state . resize ( a , b ) , this . game . load . resize ( a , b ) ) } } , setMinMax : function ( a , b , c , d ) { this . minWidth = a , this . minHeight = b , "undefined" != typeof c && ( this . maxWidth = c ) , "undefined" != typeof d && ( this . maxHeight = d ) } , preUpdate : function ( ) { if ( ! ( this . game . time . time < this . _lastUpdate + this . _updateThrottle ) ) { var a = this . _updateThrottle ; this . _updateThrottleReset = a >= 400 ? 0 : 100 , this . dom . getOffset ( this . game . canvas , this . offset ) ; var b = this . _parentBounds . width , d = this . _parentBounds . height , e = this . getParentBounds ( this . _parentBounds ) , f = e . width !== b || e . height !== d , g = this . updateOrientationState ( ) ; ( f || g ) && ( this . onResize && this . onResize . call ( this . onResizeContext , this , e ) , this . updateLayout ( ) , this . signalSizeChange ( ) ) ; var h = 2 * this . _updateThrottle ; this . _updateThrottle < a && ( h = Math . min ( a , this . _updateThrottleReset ) ) , this . _updateThrottle = c . Math . clamp ( h , 25 , this . trackParentInterval ) , this . _lastUpdate = this . game . time . time } } , pauseUpdate : function ( ) { this . preUpdate ( ) , this . _updateThrottle = this . trackParentInterval } , updateDimensions : function ( a , b , c ) { this . width = a * this . parentScaleFactor . x , this . height = b * this . parentScaleFactor . y , this . game . width = this . width , this . game . height = this . height , this . sourceAspectRatio = this . width / this . height , this . updateScalingAndBounds ( ) , c && ( this . game . renderer . resize ( this . width , this . height ) , this . game . camera . setSize ( this . width , this . height ) , this . game . world . resize ( this . width , this . height ) ) } , updateScalingAndBounds : function ( ) { this . scaleFactor . x = this . game . width / this . width , this . scaleFactor . y = this . game . height / this . height , this . scaleFactorInversed . x = this . width / this . game . width , this . scaleFactorInversed . y = this . height / this . game . height , this . aspectRatio = this . width / this . height , this . game . canvas && this . dom . getOffset ( this . game . canvas , this . offset ) , this . bounds . setTo ( this . offset . x , this . offset . y , this . width , this . height ) , this . game . input && this . game . input . scale && this . game . input . scale . setTo ( this . scaleFactor . x , this . scaleFactor . y ) } , forceOrientation : function ( a , b ) { void 0 === b && ( b = ! 1 ) , this . forceLandscape = a , this . forcePortrait = b , this . queueUpdate ( ! 0 ) } , classifyOrientation : function ( a ) { return "portrait-primary" === a || "portrait-secondary" === a ? "portrait" : "landscape-primary" === a || "landscape-secondary" === a ? "landscape" : null } , updateOrientationState : function ( ) { var a = this . screenOrientation , b = this . incorrectOrientation ; this . screenOrientation = this . dom . getScreenOrientation ( this . co
} , callAll : function ( a ) { if ( this . first && this . last ) { var b = this . first ; do b && b [ a ] && b [ a ] . call ( b ) , b = b . next ; while ( b != this . last . next ) } } } , c . LinkedList . prototype . constructor = c . LinkedList , c . Create = function ( a ) { this . game = a , this . bmd = null , this . canvas = null , this . ctx = null , this . palettes = [ { 0 : "#000" , 1 : "#9D9D9D" , 2 : "#FFF" , 3 : "#BE2633" , 4 : "#E06F8B" , 5 : "#493C2B" , 6 : "#A46422" , 7 : "#EB8931" , 8 : "#F7E26B" , 9 : "#2F484E" , A : "#44891A" , B : "#A3CE27" , C : "#1B2632" , D : "#005784" , E : "#31A2F2" , F : "#B2DCEF" } , { 0 : "#000" , 1 : "#191028" , 2 : "#46af45" , 3 : "#a1d685" , 4 : "#453e78" , 5 : "#7664fe" , 6 : "#833129" , 7 : "#9ec2e8" , 8 : "#dc534b" , 9 : "#e18d79" , A : "#d6b97b" , B : "#e9d8a1" , C : "#216c4b" , D : "#d365c8" , E : "#afaab9" , F : "#f5f4eb" } , { 0 : "#000" , 1 : "#2234d1" , 2 : "#0c7e45" , 3 : "#44aacc" , 4 : "#8a3622" , 5 : "#5c2e78" , 6 : "#aa5c3d" , 7 : "#b5b5b5" , 8 : "#5e606e" , 9 : "#4c81fb" , A : "#6cd947" , B : "#7be2f9" , C : "#eb8a60" , D : "#e23d69" , E : "#ffd93f" , F : "#fff" } , { 0 : "#000" , 1 : "#fff" , 2 : "#8b4131" , 3 : "#7bbdc5" , 4 : "#8b41ac" , 5 : "#6aac41" , 6 : "#3931a4" , 7 : "#d5de73" , 8 : "#945a20" , 9 : "#5a4100" , A : "#bd736a" , B : "#525252" , C : "#838383" , D : "#acee8b" , E : "#7b73de" , F : "#acacac" } , { 0 : "#000" , 1 : "#191028" , 2 : "#46af45" , 3 : "#a1d685" , 4 : "#453e78" , 5 : "#7664fe" , 6 : "#833129" , 7 : "#9ec2e8" , 8 : "#dc534b" , 9 : "#e18d79" , A : "#d6b97b" , B : "#e9d8a1" , C : "#216c4b" , D : "#d365c8" , E : "#afaab9" , F : "#fff" } ] } , c . Create . PALETTE _ARNE = 0 , c . Create . PALETTE _JMP = 1 , c . Create . PALETTE _CGA = 2 , c . Create . PALETTE _C64 = 3 , c . Create . PALETTE _JAPANESE _MACHINE = 4 , c . Create . prototype = { texture : function ( a , b , c , d , e ) { void 0 === c && ( c = 8 ) , void 0 === d && ( d = c ) , void 0 === e && ( e = 0 ) ; var f = b [ 0 ] . length * c , g = b . length * d ; null === this . bmd && ( this . bmd = this . game . make . bitmapData ( ) , this . canvas = this . bmd . canvas , this . ctx = this . bmd . context ) , this . bmd . resize ( f , g ) , this . bmd . clear ( ) ; for ( var h = 0 ; h < b . length ; h ++ ) for ( var i = b [ h ] , j = 0 ; j < i . length ; j ++ ) { var k = i [ j ] ; "." !== k && " " !== k && ( this . ctx . fillStyle = this . palettes [ e ] [ k ] , this . ctx . fillRect ( j * c , h * d , c , d ) ) } return this . bmd . generateTexture ( a ) } , grid : function ( a , b , c , d , e , f ) { null === this . bmd && ( this . bmd = this . game . make . bitmapData ( ) , this . canvas = this . bmd . canvas , this . ctx = this . bmd . context ) , this . bmd . resize ( b , c ) , this . ctx . fillStyle = f ; for ( var g = 0 ; c > g ; g += e ) this . ctx . fillRect ( 0 , g , b , 1 ) ; for ( var h = 0 ; b > h ; h += d ) this . ctx . fillRect ( h , 0 , 1 , c ) ; return this . bmd . generateTexture ( a ) } } , c . Create . prototype . constructor = c . Create , c . FlexGrid = function ( a , b , d ) { this . game = a . game , this . manager = a , this . width = b , this . height = d , this . boundsCustom = new c . Rectangle ( 0 , 0 , b , d ) , this . boundsFluid = new c . Rectangle ( 0 , 0 , b , d ) , this . boundsFull = new c . Rectangle ( 0 , 0 , b , d ) , this . boundsNone = new c . Rectangle ( 0 , 0 , b , d ) , this . positionCustom = new c . Point ( 0 , 0 ) , this . positionFluid = new c . Point ( 0 , 0 ) , this . positionFull = new c . Point ( 0 , 0 ) , this . positionNone = new c . Point ( 0 , 0 ) , this . scaleCustom = new c . Point ( 1 , 1 ) , this . scaleFluid = new c . Point ( 1 , 1 ) , this . scaleFluidInversed = new c . Point ( 1 , 1 ) , this . scaleFull = new c . Point ( 1 , 1 ) , this . scaleNone = new c . Point ( 1 , 1 ) , this . customWidth = 0 , this . customHeight = 0 , this . customOffsetX = 0 , this . customOffsetY = 0 , this . ratioH = b / d , this . ratioV = d / b , this . multiplier = 0 , this . layers = [ ] } , c . FlexGrid . prototype = { setSize : function ( a , b ) { this . width = a , this . height = b , this . ratioH = a / b , this . ratioV = b / a , this . scaleNone = new c . Point ( 1 , 1 ) , this . boundsNone . width = this . width , this . boundsNone . height = this . height , this . refresh ( ) } , createCustomLayer : function ( a , b , d , e ) { void 0 === e && ( e = ! 0 ) , this . customWidth = a , this . customHeight = b , this . boundsCustom . width = a , this . boundsCustom . height = b ; var f = new c . FlexLayer ( this , this . positionCustom , this . boundsCustom , this . scaleCustom ) ; return e && this . game . world . add ( f ) , this . layers . push ( f ) , "undefined" != typeof d && null !== typeof d && f . addMultiple ( d ) , f } , createFluidLayer : function ( a , b ) { void 0 === b && ( b = ! 0 ) ; var d = new c . FlexLayer ( this , this . positionFluid , this . boundsFluid , this . scaleFluid ) ; return b && this . game . world . add ( d ) , this . layers . push ( d ) , "undefined" != typeof a && null !== typeof a && d . addMultiple ( a ) , d } , createFullLayer : function ( a ) { var b = new c . FlexLayer ( this , this . positionFull , this . boundsFull , this . scaleFluid ) ; return this . game . world . add ( b ) , this . layers . push ( b ) , "undefined" != typeof a && b . addMultiple ( a ) , b } , createFixedLayer : function ( a ) { var b = new c . FlexLayer ( this , this . positionNone , this . boundsNone , this . scaleNone ) ; return this . game . world . add ( b ) , this . layers . push ( b ) , "undefined" != typeof a && b . addMultiple ( a ) , b } , r
this . height = this . sourceHeight * c , this . _sx = b , this . _sy = c , this . _reset = ! 0 ) } this . _reset && ( this . halfWidth = Math . floor ( this . width / 2 ) , this . halfHeight = Math . floor ( this . height / 2 ) , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) ) } , preUpdate : function ( ) { this . enable && ! this . game . physics . arcade . isPaused && ( this . dirty = ! 0 , this . wasTouching . none = this . touching . none , this . wasTouching . up = this . touching . up , this . wasTouching . down = this . touching . down , this . wasTouching . left = this . touching . left , this . wasTouching . right = this . touching . right , this . touching . none = ! 0 , this . touching . up = ! 1 , this . touching . down = ! 1 , this . touching . left = ! 1 , this . touching . right = ! 1 , this . blocked . up = ! 1 , this . blocked . down = ! 1 , this . blocked . left = ! 1 , this . blocked . right = ! 1 , this . embedded = ! 1 , this . updateBounds ( ) , this . position . x = this . sprite . world . x - this . sprite . anchor . x * this . sprite . width + this . sprite . scale . x * this . offset . x , this . position . x -= this . sprite . scale . x < 0 ? this . width : 0 , this . position . y = this . sprite . world . y - this . sprite . anchor . y * this . sprite . height + this . sprite . scale . y * this . offset . y , this . position . y -= this . sprite . scale . y < 0 ? this . height : 0 , this . rotation = this . sprite . angle , this . preRotation = this . rotation , ( this . _reset || this . sprite . fresh ) && ( this . prev . x = this . position . x , this . prev . y = this . position . y ) , this . moves && ( this . game . physics . arcade . updateMotion ( this ) , this . newVelocity . set ( this . velocity . x * this . game . time . physicsElapsed , this . velocity . y * this . game . time . physicsElapsed ) , this . position . x += this . newVelocity . x , this . position . y += this . newVelocity . y , ( this . position . x !== this . prev . x || this . position . y !== this . prev . y ) && ( this . angle = Math . atan2 ( this . velocity . y , this . velocity . x ) ) , this . speed = Math . sqrt ( this . velocity . x * this . velocity . x + this . velocity . y * this . velocity . y ) , this . collideWorldBounds && this . checkWorldBounds ( ) ) , this . _dx = this . deltaX ( ) , this . _dy = this . deltaY ( ) , this . _reset = ! 1 ) } , postUpdate : function ( ) { this . enable && this . dirty && ( this . dirty = ! 1 , this . deltaX ( ) < 0 ? this . facing = c . LEFT : this . deltaX ( ) > 0 && ( this . facing = c . RIGHT ) , this . deltaY ( ) < 0 ? this . facing = c . UP : this . deltaY ( ) > 0 && ( this . facing = c . DOWN ) , this . moves && ( this . _dx = this . deltaX ( ) , this . _dy = this . deltaY ( ) , 0 !== this . deltaMax . x && 0 !== this . _dx && ( this . _dx < 0 && this . _dx < - this . deltaMax . x ? this . _dx = - this . deltaMax . x : this . _dx > 0 && this . _dx > this . deltaMax . x && ( this . _dx = this . deltaMax . x ) ) , 0 !== this . deltaMax . y && 0 !== this . _dy && ( this . _dy < 0 && this . _dy < - this . deltaMax . y ? this . _dy = - this . deltaMax . y : this . _dy > 0 && this . _dy > this . deltaMax . y && ( this . _dy = this . deltaMax . y ) ) , this . sprite . position . x += this . _dx , this . sprite . position . y += this . _dy , this . _reset = ! 0 ) , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) , this . allowRotation && ( this . sprite . angle += this . deltaZ ( ) ) , this . prev . x = this . position . x , this . prev . y = this . position . y ) } , checkWorldBounds : function ( ) { var a = this . position , b = this . game . physics . arcade . bounds , c = this . game . physics . arcade . checkCollision , d = this . worldBounce ? - this . worldBounce . x : - this . bounce . x , e = this . worldBounce ? - this . worldBounce . y : - this . bounce . y ; a . x < b . x && c . left ? ( a . x = b . x , this . velocity . x *= d , this . blocked . left = ! 0 ) : this . right > b . right && c . right && ( a . x = b . right - this . width , this . velocity . x *= d , this . blocked . right = ! 0 ) , a . y < b . y && c . up ? ( a . y = b . y , this . velocity . y *= e , this . blocked . up = ! 0 ) : this . bottom > b . bottom && c . down && ( a . y = b . bottom - this . height , this . velocity . y *= e , this . blocked . down = ! 0 ) } , setSize : function ( a , b , c , d ) { void 0 === c && ( c = this . offset . x ) , void 0 === d && ( d = this . offset . y ) , this . sourceWidth = a , this . sourceHeight = b , this . width = this . sourceWidth * this . _sx , this . height = this . sourceHeight * this . _sy , this . halfWidth = Math . floor ( this . width / 2 ) , this . halfHeight = Math . floor ( this . height / 2 ) , this . offset . setTo ( c , d ) , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) } , reset : function ( a , b ) { this . velocity . set ( 0 ) , this . acceleration . set ( 0 ) , this . speed = 0 , this . angularVelocity = 0 , this . angularAcceleration = 0 , this . position . x = a - this . sprite . anchor . x * this . sprite . width + this . sprite . scale . x * this . offset . x , this . position . x -= this . sprite . scale . x < 0 ? this . width : 0 , this . position . y = b - this . sprite . anchor . y * this . sprite . height + this . sprite . scale . y * this . offset . y , this . position . y -= this . sprite . scale . y < 0 ? this . height : 0 , this . prev . x = this . position . x , this . prev . y = this . positio
if ( Array . isArray ( a ) ) for ( var e = 0 ; e < a . length ; e ++ ) - 1 === this . collidesWith . indexOf ( a [ e ] ) && ( this . collidesWith . push ( a [ e ] ) , b && this . createGroupCallback ( a [ e ] , b , c ) ) ; else - 1 === this . collidesWith . indexOf ( a ) && ( this . collidesWith . push ( a ) , b && this . createGroupCallback ( a , b , c ) ) ; var f = this . getCollisionMask ( ) ; if ( void 0 === d ) for ( var e = this . data . shapes . length - 1 ; e >= 0 ; e -- ) this . data . shapes [ e ] . collisionMask = f ; else d . collisionMask = f } , adjustCenterOfMass : function ( ) { this . data . adjustCenterOfMass ( ) , this . shapeChanged ( ) } , getVelocityAtPoint : function ( a , b ) { return this . data . getVelocityAtPoint ( a , b ) } , applyDamping : function ( a ) { this . data . applyDamping ( a ) } , applyImpulse : function ( a , b , c ) { this . data . applyImpulse ( a , [ this . world . pxmi ( b ) , this . world . pxmi ( c ) ] ) } , applyImpulseLocal : function ( a , b , c ) { this . data . applyImpulseLocal ( a , [ this . world . pxmi ( b ) , this . world . pxmi ( c ) ] ) } , applyForce : function ( a , b , c ) { this . data . applyForce ( a , [ this . world . pxmi ( b ) , this . world . pxmi ( c ) ] ) } , setZeroForce : function ( ) { this . data . setZeroForce ( ) } , setZeroRotation : function ( ) { this . data . angularVelocity = 0 } , setZeroVelocity : function ( ) { this . data . velocity [ 0 ] = 0 , this . data . velocity [ 1 ] = 0 } , setZeroDamping : function ( ) { this . data . damping = 0 , this . data . angularDamping = 0 } , toLocalFrame : function ( a , b ) { return this . data . toLocalFrame ( a , b ) } , toWorldFrame : function ( a , b ) { return this . data . toWorldFrame ( a , b ) } , rotateLeft : function ( a ) { this . data . angularVelocity = this . world . pxm ( - a ) } , rotateRight : function ( a ) { this . data . angularVelocity = this . world . pxm ( a ) } , moveForward : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . velocity [ 0 ] = b * Math . cos ( c ) , this . data . velocity [ 1 ] = b * Math . sin ( c ) } , moveBackward : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . velocity [ 0 ] = - ( b * Math . cos ( c ) ) , this . data . velocity [ 1 ] = - ( b * Math . sin ( c ) ) } , thrust : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . force [ 0 ] += b * Math . cos ( c ) , this . data . force [ 1 ] += b * Math . sin ( c ) } , thrustLeft : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle ; this . data . force [ 0 ] += b * Math . cos ( c ) , this . data . force [ 1 ] += b * Math . sin ( c ) } , thrustRight : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle ; this . data . force [ 0 ] -= b * Math . cos ( c ) , this . data . force [ 1 ] -= b * Math . sin ( c ) } , reverse : function ( a ) { var b = this . world . pxmi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . force [ 0 ] -= b * Math . cos ( c ) , this . data . force [ 1 ] -= b * Math . sin ( c ) } , moveLeft : function ( a ) { this . data . velocity [ 0 ] = this . world . pxmi ( - a ) } , moveRight : function ( a ) { this . data . velocity [ 0 ] = this . world . pxmi ( a ) } , moveUp : function ( a ) { this . data . velocity [ 1 ] = this . world . pxmi ( - a ) } , moveDown : function ( a ) { this . data . velocity [ 1 ] = this . world . pxmi ( a ) } , preUpdate : function ( ) { this . dirty = ! 0 , this . removeNextStep && ( this . removeFromWorld ( ) , this . removeNextStep = ! 1 ) } , postUpdate : function ( ) { this . sprite . x = this . world . mpxi ( this . data . position [ 0 ] ) + this . offset . x , this . sprite . y = this . world . mpxi ( this . data . position [ 1 ] ) + this . offset . y , this . fixedRotation || ( this . sprite . rotation = this . data . angle ) , this . debugBody && this . debugBody . updateSpriteTransform ( ) , this . dirty = ! 1 } , reset : function ( a , b , c , d ) { void 0 === c && ( c = ! 1 ) , void 0 === d && ( d = ! 1 ) , this . setZeroForce ( ) , this . setZeroVelocity ( ) , this . setZeroRotation ( ) , c && this . setZeroDamping ( ) , d && ( this . mass = 1 ) , this . x = a , this . y = b } , addToWorld : function ( ) { if ( this . game . physics . p2 . _toRemove ) for ( var a = 0 ; a < this . game . physics . p2 . _toRemove . length ; a ++ ) this . game . physics . p2 . _toRemove [ a ] === this && this . game . physics . p2 . _toRemove . splice ( a , 1 ) ; this . data . world !== this . game . physics . p2 . world && this . game . physics . p2 . addBody ( this ) } , removeFromWorld : function ( ) { this . data . world === this . game . physics . p2 . world && this . game . physics . p2 . removeBodyNextStep ( this ) } , destroy : function ( ) { this . removeFromWorld ( ) , this . clearShapes ( ) , this . _bodyCallbacks = { } , this . _bodyCallbackContext = { } , this . _groupCallbacks = { } , this . _groupCallbackContext = { } , this . debugBody && this . debugBody . destroy ( ! 0 , ! 0 ) , this . debugBody = null , this . sprite && ( this . sprite . body = null , this . sprite = null ) } , clearShapes : function ( ) { for ( var a = this . data . shapes . length ; a -- ; ) this . data . removeShape ( this . data . shapes [ a ] ) ; this . shapeChanged ( ) } , addShape : function ( a , b , c , d ) { return void 0 === b && ( b = 0 ) , void 0 === c && ( c = 0 ) , void 0 === d && ( d = 0 ) , this . data . addShape ( a , [ this . world . pxmi ( b ) , this . world . pxmi ( c ) ] , d ) , thi
removeTile : function ( a , b , d ) { if ( d = this . getLayer ( d ) , a >= 0 && a < this . layers [ d ] . width && b >= 0 && b < this . layers [ d ] . height && this . hasTile ( a , b , d ) ) { var e = this . layers [ d ] . data [ b ] [ a ] ; return this . layers [ d ] . data [ b ] [ a ] = new c . Tile ( this . layers [ d ] , - 1 , a , b , this . tileWidth , this . tileHeight ) , this . layers [ d ] . dirty = ! 0 , this . calculateFaces ( d ) , e } } , removeTileWorldXY : function ( a , b , c , d , e ) { return e = this . getLayer ( e ) , a = this . game . math . snapToFloor ( a , c ) / c , b = this . game . math . snapToFloor ( b , d ) / d , this . removeTile ( a , b , e ) } , putTile : function ( a , b , d , e ) { if ( null === a ) return this . removeTile ( b , d , e ) ; if ( e = this . getLayer ( e ) , b >= 0 && b < this . layers [ e ] . width && d >= 0 && d < this . layers [ e ] . height ) { var f ; return a instanceof c . Tile ? ( f = a . index , this . hasTile ( b , d , e ) ? this . layers [ e ] . data [ d ] [ b ] . copy ( a ) : this . layers [ e ] . data [ d ] [ b ] = new c . Tile ( e , f , b , d , a . width , a . height ) ) : ( f = a , this . hasTile ( b , d , e ) ? this . layers [ e ] . data [ d ] [ b ] . index = f : this . layers [ e ] . data [ d ] [ b ] = new c . Tile ( this . layers [ e ] , f , b , d , this . tileWidth , this . tileHeight ) ) , this . collideIndexes . indexOf ( f ) > - 1 ? this . layers [ e ] . data [ d ] [ b ] . setCollision ( ! 0 , ! 0 , ! 0 , ! 0 ) : this . layers [ e ] . data [ d ] [ b ] . resetCollision ( ) , this . layers [ e ] . dirty = ! 0 , this . calculateFaces ( e ) , this . layers [ e ] . data [ d ] [ b ] } return null } , putTileWorldXY : function ( a , b , c , d , e , f ) { return f = this . getLayer ( f ) , b = this . game . math . snapToFloor ( b , d ) / d , c = this . game . math . snapToFloor ( c , e ) / e , this . putTile ( a , b , c , f ) } , searchTileIndex : function ( a , b , c , d ) { void 0 === b && ( b = 0 ) , void 0 === c && ( c = ! 1 ) , d = this . getLayer ( d ) ; var e = 0 ; if ( c ) { for ( var f = this . layers [ d ] . height - 1 ; f >= 0 ; f -- ) for ( var g = this . layers [ d ] . width - 1 ; g >= 0 ; g -- ) if ( this . layers [ d ] . data [ f ] [ g ] . index === a ) { if ( e === b ) return this . layers [ d ] . data [ f ] [ g ] ; e ++ } } else for ( var f = 0 ; f < this . layers [ d ] . height ; f ++ ) for ( var g = 0 ; g < this . layers [ d ] . width ; g ++ ) if ( this . layers [ d ] . data [ f ] [ g ] . index === a ) { if ( e === b ) return this . layers [ d ] . data [ f ] [ g ] ; e ++ } return null } , getTile : function ( a , b , c , d ) { return void 0 === d && ( d = ! 1 ) , c = this . getLayer ( c ) , a >= 0 && a < this . layers [ c ] . width && b >= 0 && b < this . layers [ c ] . height ? - 1 === this . layers [ c ] . data [ b ] [ a ] . index ? d ? this . layers [ c ] . data [ b ] [ a ] : null : this . layers [ c ] . data [ b ] [ a ] : null } , getTileWorldXY : function ( a , b , c , d , e , f ) { return void 0 === c && ( c = this . tileWidth ) , void 0 === d && ( d = this . tileHeight ) , e = this . getLayer ( e ) , a = this . game . math . snapToFloor ( a , c ) / c , b = this . game . math . snapToFloor ( b , d ) / d , this . getTile ( a , b , e , f ) } , copy : function ( a , b , c , d , e ) { if ( e = this . getLayer ( e ) , ! this . layers [ e ] ) return void ( this . _results . length = 0 ) ; void 0 === a && ( a = 0 ) , void 0 === b && ( b = 0 ) , void 0 === c && ( c = this . layers [ e ] . width ) , void 0 === d && ( d = this . layers [ e ] . height ) , 0 > a && ( a = 0 ) , 0 > b && ( b = 0 ) , c > this . layers [ e ] . width && ( c = this . layers [ e ] . width ) , d > this . layers [ e ] . height && ( d = this . layers [ e ] . height ) , this . _results . length = 0 , this . _results . push ( { x : a , y : b , width : c , height : d , layer : e } ) ; for ( var f = b ; b + d > f ; f ++ ) for ( var g = a ; a + c > g ; g ++ ) this . _results . push ( this . layers [ e ] . data [ f ] [ g ] ) ; return this . _results } , paste : function ( a , b , c , d ) { if ( void 0 === a && ( a = 0 ) , void 0 === b && ( b = 0 ) , d = this . getLayer ( d ) , c && ! ( c . length < 2 ) ) { for ( var e = a - c [ 1 ] . x , f = b - c [ 1 ] . y , g = 1 ; g < c . length ; g ++ ) this . layers [ d ] . data [ f + c [ g ] . y ] [ e + c [ g ] . x ] . copy ( c [ g ] ) ; this . layers [ d ] . dirty = ! 0 , this . calculateFaces ( d ) } } , swap : function ( a , b , c , d , e , f , g ) { g = this . getLayer ( g ) , this . copy ( c , d , e , f , g ) , this . _results . length < 2 || ( this . _tempA = a , this . _tempB = b , this . _results . forEach ( this . swapHandler , this ) , this . paste ( c , d , this . _results , g ) ) } , swapHandler : function ( a ) { a . index === this . _tempA ? a . index = this . _tempB : a . index === this . _tempB && ( a . index = this . _tempA ) } , forEach : function ( a , b , c , d , e , f , g ) { g = this . getLayer ( g ) , this . copy ( c , d , e , f , g ) , this . _results . length < 2 || ( this . _results . forEach ( a , b ) , this . paste ( c , d , this . _results , g ) ) } , replace : function ( a , b , c , d , e , f , g ) { if ( g = this . getLayer ( g ) , this . copy ( c , d , e , f , g ) , ! ( this . _results . length < 2 ) ) { for ( var h = 1 ; h < this . _results . length ; h ++ ) this . _results [ h ] . index === a && ( this . _results [ h ] . index = b ) ; this . paste ( c , d , this . _results , g ) } } , random : function ( a , b , c , d , e ) { if ( e = this . getLayer ( e ) , this . copy ( a , b , c , d , e ) , ! ( this . _results . length < 2 ) ) { for ( var f = [ ] , g = 1 ; g < this . _results . length ; g ++ ) if ( this . _results [ g ] . index ) { var h = this . _results [ g ] . index ; - 1 === f . indexOf ( h ) && f . push ( h ) } for ( var i = 1 ; i < this . _results . length ; i ++ ) this . _results [ i ] . index = this . game . rnd . pick ( f ) ; this . paste ( a , b , this . _results , e ) } } , shuffle : function ( a , b , d , e , f ) { if ( f = this . getLayer ( f ) , this . cop
if ( void 0 === a && ( a = 1 ) , void 0 === b && ( b = 1 ) , void 0 === d && ( d = 0 ) , void 0 === e && ( e = c . Easing . Linear . None ) , void 0 === f && ( f = ! 1 ) , this . minParticleAlpha = a , this . maxParticleAlpha = b , this . autoAlpha = ! 1 , d > 0 && a !== b ) { var g = { v : a } , h = this . game . make . tween ( g ) . to ( { v : b } , d , e ) ; h . yoyo ( f ) , this . alphaData = h . generateData ( 60 ) , this . alphaData . reverse ( ) , this . autoAlpha = ! 0 } return this } , c . Particles . Arcade . Emitter . prototype . setScale = function ( a , b , d , e , f , g , h ) { if ( void 0 === a && ( a = 1 ) , void 0 === b && ( b = 1 ) , void 0 === d && ( d = 1 ) , void 0 === e && ( e = 1 ) , void 0 === f && ( f = 0 ) , void 0 === g && ( g = c . Easing . Linear . None ) , void 0 === h && ( h = ! 1 ) , this . minParticleScale = 1 , this . maxParticleScale = 1 , this . _minParticleScale . set ( a , d ) , this . _maxParticleScale . set ( b , e ) , this . autoScale = ! 1 , f > 0 && ( a !== b || d !== e ) ) { var i = { x : a , y : d } , j = this . game . make . tween ( i ) . to ( { x : b , y : e } , f , g ) ; j . yoyo ( h ) , this . scaleData = j . generateData ( 60 ) , this . scaleData . reverse ( ) , this . autoScale = ! 0 } return this } , c . Particles . Arcade . Emitter . prototype . at = function ( a ) { return a . center ? ( this . emitX = a . center . x , this . emitY = a . center . y ) : ( this . emitX = a . world . x + a . anchor . x * a . width , this . emitY = a . world . y + a . anchor . y * a . height ) , this } , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "width" , { get : function ( ) { return this . area . width } , set : function ( a ) { this . area . width = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "height" , { get : function ( ) { return this . area . height } , set : function ( a ) { this . area . height = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "x" , { get : function ( ) { return this . emitX } , set : function ( a ) { this . emitX = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "y" , { get : function ( ) { return this . emitY } , set : function ( a ) { this . emitY = a } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "left" , { get : function ( ) { return Math . floor ( this . x - this . area . width / 2 ) } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "right" , { get : function ( ) { return Math . floor ( this . x + this . area . width / 2 ) } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "top" , { get : function ( ) { return Math . floor ( this . y - this . area . height / 2 ) } } ) , Object . defineProperty ( c . Particles . Arcade . Emitter . prototype , "bottom" , { get : function ( ) { return Math . floor ( this . y + this . area . height / 2 ) } } ) , c . Creature = function ( a , b , d , e , f , g ) { if ( void 0 === g && ( g = "default" ) , this . type = c . CREATURE , ! a . cache . checkJSONKey ( f ) ) return void console . warn ( "Phaser.Creature: Invalid mesh key given. Not found in Phaser.Cache" ) ; var h = a . cache . getJSON ( f ) ; if ( this . _creature = new Creature ( h ) , this . animation = new CreatureAnimation ( h , g , this . _creature ) , this . manager = new CreatureManager ( this . _creature ) , this . timeDelta = . 05 , "string" == typeof e ) var i = a . cache . getPixiTexture ( e ) ; else var i = e ; this . texture = i , PIXI . DisplayObjectContainer . call ( this ) , this . dirty = ! 0 , this . blendMode = PIXI . blendModes . NORMAL , this . creatureBoundsMin = new c . Point , this . creatureBoundsMax = new c . Point ; var j = this . manager . target _creature ; this . vertices = new PIXI . Float32Array ( 2 * j . total _num _pts ) , this . uvs = new PIXI . Float32Array ( 2 * j . total _num _pts ) , this . indices = new PIXI . Uint16Array ( j . global _indices . length ) ; for ( var k = 0 ; k < this . indices . length ; k ++ ) this . indices [ k ] = j . global _indices [ k ] ; this . colors = new PIXI . Float32Array ( [ 1 , 1 , 1 , 1 ] ) , this . updateRenderData ( j . global _pts , j . global _uvs ) , this . manager . AddAnimation ( this . animation ) , this . manager . SetActiveAnimationName ( g , ! 1 ) , c . Component . Core . init . call ( this , a , b , d ) } , c . Creature . prototype = Object . create ( PIXI . DisplayObjectContainer . prototype ) , c . Creature . prototype . constructor = c . Creature , c . Component . Core . install . call ( c . Creature . prototype , [ "Angle" , "AutoCull" , "BringToTop" , "Destroy" , "FixedToCamera" , "LifeSpan" , "Reset" ] ) , c . Creature . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . Creature . prototype . preUpdateCore = c . Component . Core . preUpdate , c . Creature . prototype . preUpdate = function ( ) { return this . preUpdateInWorld ( ) ? ( this . manager . Update ( this . timeDelta ) , this . updateData ( ) , this . preUpdateCore ( ) ) : ! 1 } , c . Creature . prototype . _initWebGL = function ( a ) { var b = a . gl ; this . _vertexBuffer = b . createBuffer ( ) , this . _indexBuffer = b . createBuffer ( ) , this . _uvBuffer = b . createBuffer ( ) , this . _colorBuffer = b . createBuffer ( ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _vertexBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . vertices , b . DYNAMIC _DRAW
2016-06-03 17:48:34 +00:00
//# sourceMappingURL=phaser-creature.map