2014-10-27 23:31:26 +00:00
/* Phaser (no libs) v2.1.4 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */
2014-11-08 19:11:28 +00:00
( function ( ) { var a = this , b = b || { VERSION : "2.1.4-dev" , 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 , 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 } } ; if ( PIXI . InteractionManager = PIXI . InteractionManager || function ( ) { } , PIXI . dontSayHello = ! 0 , b . 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 } , transposeArray : function ( a ) { for ( var b = new Array ( a [ 0 ] . length ) , c = 0 ; c < a [ 0 ] . length ; c ++ ) { b [ c ] = new Array ( a . length - 1 ) ; for ( var d = a . length - 1 ; d > - 1 ; d -- ) b [ c ] [ d ] = a [ d ] [ c ] } return b } , rotateArray : function ( a , c ) { if ( "string" != typeof c && ( c = ( c % 360 + 360 ) % 360 ) , 90 === c || - 270 === c || "rotateLeft" === c ) a = b . Utils . transposeArray ( a ) , a = a . reverse ( ) ; else if ( - 90 === c || 270 === c || "rotateRight" === c ) a = a . reverse ( ) , a = b . Utils . transposeArray ( a ) ; else if ( 180 === Math . abs ( c ) || "rotate180" === c ) { for ( var d = 0 ; d < a . length ; d ++ ) a [ d ] . reverse ( ) ; a = a . reverse ( ) } return a } , 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 } , shuffle : function ( a ) { for ( var b = a . length - 1 ; b > 0 ; b -- ) { var c = Math . floor ( Math . random ( ) * ( b + 1 ) ) , d = a [ b ] ; a [ b ] = a [ c ] , a [ c ] = d } return a } , pad : function ( a , b , c , d ) { if ( "undefined" == typeof b ) var b = 0 ; if ( "undefined" == typeof c ) var c = " " ; if ( "undefined" == typeof 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 , c , 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 ( c in a ) d = h [ c ] , e = a [ c ] , h !== e && ( k && e && ( b . Utils . isPlainObject ( e ) || ( f = Array . isArray ( e ) ) ) ? ( f ? ( f = ! 1 , g = d && Array . isArray ( d ) ? d : [ ] ) : g = d && b . Utils . isPlainObject ( d ) ? d : { } , h [ c ] = b . Utils . extend ( k , g , e ) ) : void 0 !== e && ( h [ c ] = e ) ) ; return h } , mixin : function ( a , c ) { if ( ! a || "object" != typeof a ) return c ; for ( var d in a ) { var e = a [ d ] ; if ( ! e . childNodes && ! e . cloneNode ) { var f = typeof a [ d ] ; c [ d ] = a [ d ] && "object" === f ? typeof c [ d ] === f ? b . Utils . mixin ( a [ d ] , c [ d ] ) : b . Utils . mixin ( a [ d ] , new e . constructor ) : a [ d ] } } return c } } , "function" != typeof 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 c = 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
if ( this . graphicsData . length ) for ( var e , f , g , h , i , j , k = 0 ; k < this . graphicsData . length ; k ++ ) { var l = this . graphicsData [ k ] , m = l . type , n = l . lineWidth ; if ( e = l . shape , m === PIXI . Graphics . RECT || m === PIXI . Graphics . RRECT ) g = e . x - n / 2 , h = e . y - n / 2 , i = e . width + n , j = e . height + n , a = a > g ? g : a , b = g + i > b ? g + i : b , c = c > h ? h : c , d = h + j > d ? h + j : d ; else if ( m === PIXI . Graphics . CIRC ) g = e . x , h = e . y , i = e . radius + n / 2 , j = e . radius + n / 2 , a = a > g - i ? g - i : a , b = g + i > b ? g + i : b , c = c > h - j ? h - j : c , d = h + j > d ? h + j : d ; else if ( m === PIXI . Graphics . ELIP ) g = e . x , h = e . y , i = e . width + n / 2 , j = e . height + n / 2 , a = a > g - i ? g - i : a , b = g + i > b ? g + i : b , c = c > h - j ? h - j : c , d = h + j > d ? h + j : d ; else { f = e . points ; for ( var o = 0 ; o < f . length ; o += 2 ) g = f [ o ] , h = f [ o + 1 ] , a = a > g - n ? g - n : a , b = g + n > b ? g + n : b , c = c > h - n ? h - n : c , d = h + n > d ? h + n : d } } else a = 0 , b = 0 , c = 0 , d = 0 ; var p = this . boundsPadding , q = this . _bounds ; q . x = a - p , q . width = b - a + 2 * p , q . y = c - p , q . height = d - c + 2 * p } , PIXI . Graphics . prototype . _generateCachedSprite = function ( ) { var a = this . getLocalBounds ( ) ; if ( this . _cachedSprite ) this . _cachedSprite . buffer . resize ( a . width , a . height ) ; else { var b = new PIXI . CanvasBuffer ( a . width , a . height ) , c = PIXI . Texture . fromCanvas ( b . canvas ) ; this . _cachedSprite = new PIXI . Sprite ( c ) , this . _cachedSprite . buffer = b , this . _cachedSprite . worldTransform = this . worldTransform } this . _cachedSprite . anchor . x = - ( a . x / a . width ) , this . _cachedSprite . anchor . y = - ( a . y / a . height ) , this . _cachedSprite . buffer . context . translate ( - a . x , - a . y ) , this . worldAlpha = 1 , PIXI . CanvasGraphics . renderGraphics ( this , this . _cachedSprite . buffer . context ) , this . _cachedSprite . alpha = this . alpha } , PIXI . Graphics . prototype . updateCachedSpriteTexture = function ( ) { var a = this . _cachedSprite , b = a . texture , c = a . buffer . canvas ; b . baseTexture . width = c . width , b . baseTexture . height = c . height , b . crop . width = b . frame . width = c . width , b . crop . height = b . frame . height = c . height , a . _width = c . width , a . _height = c . height , b . baseTexture . dirty ( ) } , PIXI . Graphics . prototype . destroyCachedSprite = function ( ) { this . _cachedSprite . texture . destroy ( ! 0 ) , this . _cachedSprite = null } , PIXI . Graphics . prototype . drawShape = function ( a ) { this . currentPath && this . currentPath . shape . points . length <= 2 && this . graphicsData . pop ( ) , this . currentPath = null ; var b = new PIXI . GraphicsData ( this . lineWidth , this . lineColor , this . lineAlpha , this . fillColor , this . fillAlpha , this . filling , a ) ; return this . graphicsData . push ( b ) , b . type === PIXI . Graphics . POLY && ( b . shape . closed = this . filling , this . currentPath = b ) , this . dirty = ! 0 , b } , PIXI . GraphicsData = function ( a , b , c , d , e , f , g ) { this . lineWidth = a , this . lineColor = b , this . lineAlpha = c , this . fillColor = d , this . fillAlpha = e , this . fill = f , this . shape = g , this . type = g . type } , PIXI . Graphics . POLY = 0 , PIXI . Graphics . RECT = 1 , PIXI . Graphics . CIRC = 2 , PIXI . Graphics . ELIP = 3 , PIXI . Graphics . RREC = 4 , PIXI . Polygon . prototype . type = PIXI . Graphics . POLY , PIXI . Rectangle . prototype . type = PIXI . Graphics . RECT , PIXI . Circle . prototype . type = PIXI . Graphics . CIRC , PIXI . Ellipse . prototype . type = PIXI . Graphics . ELIP , b . Camera = function ( a , c , d , e , f , g ) { this . game = a , this . world = a . world , this . id = 0 , this . view = new b . Rectangle ( d , e , f , g ) , this . screenView = new b . Rectangle ( d , e , f , g ) , this . bounds = new b . Rectangle ( d , e , f , g ) , this . deadzone = null , this . visible = ! 0 , this . roundPx = ! 0 , this . atLimit = { x : ! 1 , y : ! 1 } , this . target = null , this . _edge = 0 , this . _position = new b . Point , this . displayObject = null , this . scale = null , this . _targetPosition = new b . Point } , b . Camera . FOLLOW _LOCKON = 0 , b . Camera . FOLLOW _PLATFORMER = 1 , b . Camera . FOLLOW _TOPDOWN = 2 , b . Camera . FOLLOW _TOPDOWN _TIGHT = 3 , b . Camera . prototype = { follow : function ( a , c ) { "undefined" == typeof c && ( c = b . Camera . FOLLOW _LOCKON ) , this . target = a ; var d ; switch ( c ) { case b . Camera . FOLLOW _PLATFORMER : var e = this . width / 8 , f = this . height / 3 ; this . deadzone = new b . Rectangle ( ( this . width - e ) / 2 , ( this . height - f ) / 2 - . 25 * f , e , f ) ; break ; case b . Camera . FOLLOW _TOPDOWN : d = Math . max ( this . width , this . height ) / 4 , this . deadzone = new b . Rectangle ( ( this . width - d ) / 2 , ( this . height - d ) / 2 , d , d ) ; break ; case b . Camera . FOLLOW _TOPDOWN _TIGHT : d = Math . max ( this . width , this . height ) / 8 , this . deadzone = new b . Rectangle ( ( this . width - d ) / 2 , ( this . height - d ) / 2 , d , d ) ; break ; case b . Camera . FOLLOW _LOCKON : this . deadzone = null ; break ; default : this . deadzone = null } } , unfollow : function ( ) { this . target = null } , focusOn : function ( a ) { this . setPosition ( Math . round ( a . x - this . view . halfWidth ) , Math . round ( a . y - this . view . halfHeight ) ) } , focusOnXY : function ( a , b ) { this . setPosition ( Math . round ( a - this . view . halfWidth ) , Math . round ( b - this . view . half
} , b . Group . prototype . checkProperty = function ( a , c , d , e ) { return "undefined" == typeof e && ( e = ! 1 ) , ! b . Utils . getProperty ( a , c ) && e ? ! 1 : b . Utils . getProperty ( a , c ) !== d ? ! 1 : ! 0 } , b . Group . prototype . set = function ( a , b , c , d , e , f , g ) { return "undefined" == typeof g && ( g = ! 1 ) , b = b . split ( "." ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = ! 1 ) , ( d === ! 1 || d && a . alive ) && ( e === ! 1 || e && a . visible ) ? this . setProperty ( a , b , c , f , g ) : void 0 } , b . Group . prototype . setAll = function ( a , b , c , d , e , f ) { "undefined" == typeof c && ( c = ! 1 ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof f && ( f = ! 1 ) , a = a . split ( "." ) , e = e || 0 ; for ( var g = 0 , h = this . children . length ; h > g ; g ++ ) ( ! c || c && this . children [ g ] . alive ) && ( ! d || d && this . children [ g ] . visible ) && this . setProperty ( this . children [ g ] , a , b , e , f ) } , b . Group . prototype . setAllChildren = function ( a , c , d , e , f , g ) { "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = ! 1 ) , "undefined" == typeof g && ( g = ! 1 ) , f = f || 0 ; for ( var h = 0 , i = this . children . length ; i > h ; h ++ ) ( ! d || d && this . children [ h ] . alive ) && ( ! e || e && this . children [ h ] . visible ) && ( this . children [ h ] instanceof b . Group ? this . children [ h ] . setAllChildren ( a , c , d , e , f , g ) : this . setProperty ( this . children [ h ] , a . split ( "." ) , c , f , g ) ) } , b . Group . prototype . checkAll = function ( a , b , c , d , e ) { "undefined" == typeof c && ( c = ! 1 ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = ! 1 ) ; for ( var f = 0 , g = this . children . length ; g > f ; 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 } , b . Group . prototype . addAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 1 ) } , b . Group . prototype . subAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 2 ) } , b . Group . prototype . multiplyAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 3 ) } , b . Group . prototype . divideAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 4 ) } , b . Group . prototype . callAllExists = function ( a , b ) { for ( var c = Array . prototype . splice . call ( arguments , 2 ) , d = 0 , e = this . children . length ; e > d ; d ++ ) this . children [ d ] . exists === b && this . children [ d ] [ a ] && this . children [ d ] [ a ] . apply ( this . children [ d ] , c ) } , b . 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 } , b . Group . prototype . callAll = function ( a , b ) { if ( "undefined" != typeof a ) { a = a . split ( "." ) ; var c = a . length ; if ( "undefined" == typeof b || null === b || "" === b ) b = null ; else if ( "string" == typeof b ) { b = b . split ( "." ) ; var d = b . length } for ( var e = Array . prototype . splice . call ( arguments , 2 ) , f = null , g = null , h = 0 , i = this . children . length ; i > h ; h ++ ) f = this . callbackFromArray ( this . children [ h ] , a , c ) , b && f ? ( g = this . callbackFromArray ( this . children [ h ] , b , d ) , f && f . apply ( g , e ) ) : f && f . apply ( this . children [ h ] , e ) } } , b . Group . prototype . preUpdate = function ( ) { if ( ! this . exists || ! this . parent . exists ) return this . renderOrderID = - 1 , ! 1 ; for ( var a = this . children . length ; a -- ; ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , b . Group . prototype . update = function ( ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . update ( ) } , b . Group . prototype . postUpdate = function ( ) { 1 === this . _cache [ 7 ] && ( 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 ( ) } , b . Group . prototype . filter = function ( a , c ) { for ( var d = - 1 , e = this . children . length , f = new b . ArrayList ; ++ d < e ; ) { var g = this . children [ d ] ; ( ! c || c && g . exists ) && a ( g , d , this . children ) && f . add ( g ) } return f } , b . Group . prototype . forEach = function ( a , b , c ) { "undefined" == typeof c && ( c = ! 1 ) ; var d = Array . prototype . splice . call ( arguments , 3 ) ; d . unshift ( null ) ; for ( var e = 0 , f = this . children . length ; f > e ; e ++ ) ( ! c || c && this . children [ e ] . exists ) && ( d [ 0 ] = this . children [ e ] , a . apply ( b , d ) ) } , b . Group . prototype . forEachExists = function ( a , c ) { var d = Array . prototype . splice . call ( arguments , 2 ) ; d . unshift ( null ) , this . iterate ( "exists" , ! 0 , b . Group . RETURN _TOTAL , a , c , d ) } , b . Group . prototype . forEachAlive = function ( a , c ) { var d = Array . prototype . splice . call ( arguments , 2 ) ; d . unshift ( null ) , this . iterate ( "alive" , ! 0 , b . Group . RETURN _TOTAL , a , c , d ) } , b . Group . prototype . forEachDead = function ( a , c ) { var d = Array . prototype . splice . call ( arguments , 2 ) ; d . unshift ( null ) , this . iterate ( "alive" , !
} } ) , Object . defineProperty ( b . ScaleManager . prototype , "fullScreenScaleMode" , { get : function ( ) { return this . _fullScreenScaleMode } , set : function ( a ) { return a !== this . _fullScreenScaleMode && ( this . isFullScreen ? ( this . prepScreenMode ( ! 1 ) , this . _fullScreenScaleMode = a , this . prepScreenMode ( ! 0 ) , this . queueUpdate ( ! 0 ) ) : this . _fullScreenScaleMode = a ) , this . _fullScreenScaleMode } } ) , Object . defineProperty ( b . ScaleManager . prototype , "currentScaleMode" , { get : function ( ) { return this . isFullScreen ? this . _fullScreenScaleMode : this . _scaleMode } } ) , Object . defineProperty ( b . ScaleManager . prototype , "pageAlignHorizontally" , { get : function ( ) { return this . _pageAlignHorizontally } , set : function ( a ) { a !== this . _pageAlignHorizontally && ( this . _pageAlignHorizontally = a , this . queueUpdate ( ! 0 ) ) } } ) , Object . defineProperty ( b . ScaleManager . prototype , "pageAlignVertically" , { get : function ( ) { return this . _pageAlignVertically } , set : function ( a ) { a !== this . _pageAlignVertically && ( this . _pageAlignVertically = a , this . queueUpdate ( ! 0 ) ) } } ) , Object . defineProperty ( b . ScaleManager . prototype , "isFullScreen" , { get : function ( ) { return ! ! ( document . fullscreenElement || document . webkitFullscreenElement || document . mozFullScreenElement || document . msFullscreenElement ) } } ) , Object . defineProperty ( b . ScaleManager . prototype , "isPortrait" , { get : function ( ) { return 0 === this . orientation || 180 === this . orientation } } ) , Object . defineProperty ( b . ScaleManager . prototype , "isLandscape" , { get : function ( ) { return 90 === this . orientation || - 90 === this . orientation } } ) , Object . defineProperty ( b . ScaleManager . prototype , "scrollX" , { get : function ( ) { return window . pageXOffset || document . documentElement . scrollLeft } } ) , Object . defineProperty ( b . ScaleManager . prototype , "scrollY" , { get : function ( ) { return window . pageYOffset || document . documentElement . scrollTop } } ) , Object . defineProperty ( b . ScaleManager . prototype , "viewportWidth" , { get : function ( ) { var a = document . documentElement . clientWidth , b = window . innerWidth ; return b > a ? b : a } } ) , Object . defineProperty ( b . ScaleManager . prototype , "viewportHeight" , { get : function ( ) { var a = document . documentElement . clientHeight , b = window . innerHeight ; return b > a ? b : a } } ) , Object . defineProperty ( b . ScaleManager . prototype , "documentWidth" , { get : function ( ) { var a = document . documentElement ; return Math . max ( a . clientWidth , a . offsetWidth , a . scrollWidth ) } } ) , Object . defineProperty ( b . ScaleManager . prototype , "documentHeight" , { get : function ( ) { var a = document . documentElement ; return Math . max ( a . clientHeight , a . offsetHeight , a . scrollHeight ) } } ) , b . Game = function ( a , c , d , e , f , g , h , i ) { this . id = b . GAMES . push ( this ) - 1 , this . config = null , this . physicsConfig = i , this . parent = "" , this . width = 800 , this . height = 600 , this . _width = 800 , this . _height = 600 , this . transparent = ! 1 , this . antialias = ! 0 , this . preserveDrawingBuffer = ! 1 , this . renderer = null , this . renderType = b . AUTO , this . state = null , this . isBooted = ! 1 , this . isRunning = ! 1 , this . raf = null , this . add = null , this . make = null , this . cache = null , this . input = null , this . load = null , this . math = null , this . net = null , this . scale = null , this . sound = null , this . stage = null , this . time = null , this . tweens = null , this . world = null , this . physics = null , this . rnd = null , this . device = null , this . camera = null , this . canvas = null , this . context = null , this . debug = null , this . particles = null , this . stepping = ! 1 , this . pendingStep = ! 1 , this . stepCount = 0 , this . onPause = null , this . onResume = null , this . onBlur = null , this . onFocus = null , this . _paused = ! 1 , this . _codePaused = ! 1 , this . _deltaTime = 0 , this . _lastCount = 0 , this . _spiralling = 0 , this . fpsProblemNotifier = new b . Signal , this . _nextFpsNotification = 0 , 1 === arguments . length && "object" == typeof arguments [ 0 ] ? this . parseConfig ( arguments [ 0 ] ) : ( this . config = { enableDebug : ! 0 } , "undefined" != typeof a && ( this . _width = a ) , "undefined" != typeof c && ( this . _height = c ) , "undefined" != typeof d && ( this . renderType = d ) , "undefined" != typeof e && ( this . parent = e ) , "undefined" != typeof g && ( this . transparent = g ) , "undefined" != typeof h && ( this . antialias = h ) , this . rnd = new b . RandomDataGenerator ( [ ( Date . now ( ) * Math . random ( ) ) . toString ( ) ] ) , this . state = new b . StateManager ( this , f ) ) ; var j = this ; return this . _onBoot = function ( ) { return j . boot ( ) } , "complete" === document . readyState || "interactive" === document . readyState ? window . setTimeout ( this . _onBoot , 0 ) : "undefined" != typeof window . cordova ? document . addEventListener ( "deviceready" , this . _onBoot , ! 1 ) : ( document . add
} } , b . Mouse . prototype . constructor = b . Mouse , Object . defineProperty ( b . Mouse . prototype , "disabled" , { get : function ( ) { return ! this . enabled } , set : function ( a ) { this . enabled = ! a } } ) , b . MSPointer = function ( a ) { this . game = a , this . callbackContext = this . game , this . enabled = ! 0 , this . _onMSPointerDown = null , this . _onMSPointerMove = null , this . _onMSPointerUp = null } , b . MSPointer . prototype = { start : function ( ) { if ( null === this . _onMSPointerDown ) { var a = this ; 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 . game . canvas . addEventListener ( "MSPointerDown" , this . _onMSPointerDown , ! 1 ) , this . game . canvas . addEventListener ( "MSPointerMove" , this . _onMSPointerMove , ! 1 ) , this . game . canvas . addEventListener ( "MSPointerUp" , this . _onMSPointerUp , ! 1 ) , this . game . canvas . addEventListener ( "pointerDown" , this . _onMSPointerDown , ! 1 ) , this . game . canvas . addEventListener ( "pointerMove" , this . _onMSPointerMove , ! 1 ) , this . game . canvas . addEventListener ( "pointerUp" , this . _onMSPointerUp , ! 1 ) , this . game . canvas . style [ "-ms-content-zooming" ] = "none" , this . game . canvas . style [ "-ms-touch-action" ] = "none" ) } } , onPointerDown : function ( a ) { this . game . input . enabled && this . enabled && ( a . preventDefault ( ) , a . identifier = a . pointerId , this . game . input . startPointer ( a ) ) } , onPointerMove : function ( a ) { this . game . input . enabled && this . enabled && ( a . preventDefault ( ) , a . identifier = a . pointerId , this . game . input . updatePointer ( a ) ) } , onPointerUp : function ( a ) { this . game . input . enabled && this . enabled && ( a . preventDefault ( ) , a . identifier = a . pointerId , this . game . input . stopPointer ( a ) ) } , stop : function ( ) { this . game . canvas . removeEventListener ( "MSPointerDown" , this . _onMSPointerDown ) , this . game . canvas . removeEventListener ( "MSPointerMove" , this . _onMSPointerMove ) , this . game . canvas . removeEventListener ( "MSPointerUp" , this . _onMSPointerUp ) , this . game . canvas . removeEventListener ( "pointerDown" , this . _onMSPointerDown ) , this . game . canvas . removeEventListener ( "pointerMove" , this . _onMSPointerMove ) , this . game . canvas . removeEventListener ( "pointerUp" , this . _onMSPointerUp ) } } , b . MSPointer . prototype . constructor = b . MSPointer , Object . defineProperty ( b . MSPointer . prototype , "disabled" , { get : function ( ) { return ! this . enabled } , set : function ( a ) { this . enabled = ! a } } ) , b . Pointer = function ( a , c ) { this . game = a , this . id = c , this . type = b . POINTER , this . exists = ! 0 , this . identifier = 0 , this . pointerId = null , this . target = null , this . button = null , this . _holdSent = ! 1 , this . _history = [ ] , this . _nextDrop = 0 , this . _stateReset = ! 1 , this . withinGame = ! 1 , this . clientX = - 1 , this . clientY = - 1 , this . pageX = - 1 , this . pageY = - 1 , this . screenX = - 1 , this . screenY = - 1 , this . rawMovementX = 0 , this . rawMovementY = 0 , this . movementX = 0 , this . movementY = 0 , this . x = - 1 , this . y = - 1 , this . isMouse = ! 1 , this . isDown = ! 1 , this . isUp = ! 0 , this . timeDown = 0 , this . timeUp = 0 , this . previousTapTime = 0 , this . totalTouches = 0 , this . msSinceLastClick = Number . MAX _VALUE , this . targetObject = null , this . active = ! 1 , this . dirty = ! 1 , this . position = new b . Point , this . positionDown = new b . Point , this . positionUp = new b . Point , this . circle = new b . Circle ( 0 , 0 , 44 ) , 0 === c && ( this . isMouse = ! 0 ) , this . _clickTrampolines = null , this . _trampolineTargetObject = null } , b . Pointer . prototype = { start : function ( a ) { return a . pointerId && ( this . pointerId = a . pointerId ) , this . identifier = a . identifier , this . target = a . target , "undefined" != typeof a . button && ( this . button = a . button ) , this . _history = [ ] , this . active = ! 0 , this . withinGame = ! 0 , this . isDown = ! 0 , this . isUp = ! 1 , this . dirty = ! 1 , this . _clickTrampolines = null , this . _trampolineTargetObject = null , this . msSinceLastClick = this . game . time . now - this . timeDown , this . timeDown = this . game . time . now , this . _holdSent = ! 1 , this . move ( a , ! 0 ) , this . positionDown . setTo ( this . x , this . y ) , ( this . game . input . multiInputOverride === b . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride === b . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride === b . Input . TOUCH _OVERRIDES _MOUSE && 0 === this . game . input . currentPointers ) && ( this . game . input . x = this . x , this . game . input . y = this . y , this . game . input . position . setTo ( this . x , this . y ) , this . game . input . onDown . dispatch ( this , a ) , this . game . input . resetSpeed ( this . x , this . y ) ) , this . _stateReset = ! 1 , this . totalTouches ++ , this . isMouse || this . game . input . currentPointers ++ , null !=
} , _pointerOutHandler : function ( a ) { null !== this . sprite && ( this . _pointerData [ a . id ] . isOver = ! 1 , this . _pointerData [ a . id ] . isOut = ! 0 , this . _pointerData [ a . id ] . timeOut = this . game . time . now , this . useHandCursor && this . _pointerData [ a . id ] . isDragged === ! 1 && ( this . game . canvas . style . cursor = "default" , this . _setHandCursor = ! 1 ) , this . sprite && this . sprite . events && this . sprite . events . onInputOut . dispatch ( this . sprite , a ) ) } , _touchedHandler : function ( a ) { if ( null !== this . sprite ) { if ( this . _pointerData [ a . id ] . isDown === ! 1 && this . _pointerData [ a . id ] . isOver === ! 0 ) { if ( this . pixelPerfectClick && ! this . checkPixel ( null , null , a ) ) return ; this . _pointerData [ a . id ] . isDown = ! 0 , this . _pointerData [ a . id ] . isUp = ! 1 , this . _pointerData [ a . id ] . timeDown = this . game . time . now , this . sprite && this . sprite . events && this . sprite . events . onInputDown . dispatch ( this . sprite , a ) , a . dirty = ! 0 , this . draggable && this . isDragged === ! 1 && this . startDrag ( a ) , this . bringToTop && this . sprite . bringToTop ( ) } return this . consumePointerEvent } } , _releasedHandler : function ( a ) { null !== this . sprite && this . _pointerData [ a . id ] . isDown && a . isUp && ( this . _pointerData [ a . id ] . isDown = ! 1 , this . _pointerData [ a . id ] . isUp = ! 0 , this . _pointerData [ a . id ] . timeUp = this . game . time . now , this . _pointerData [ a . id ] . downDuration = this . _pointerData [ a . id ] . timeUp - this . _pointerData [ a . id ] . timeDown , this . checkPointerOver ( a ) ? this . sprite && this . sprite . events && this . sprite . events . onInputUp . dispatch ( this . sprite , a , ! 0 ) : ( this . sprite && this . sprite . events && this . sprite . events . onInputUp . dispatch ( this . sprite , a , ! 1 ) , this . useHandCursor && ( this . game . canvas . style . cursor = "default" , this . _setHandCursor = ! 1 ) ) , a . dirty = ! 0 , this . draggable && this . isDragged && this . _draggedPointerID === a . id && this . stopDrag ( a ) ) } , updateDrag : function ( a ) { if ( a . isUp ) return this . stopDrag ( a ) , ! 1 ; var b = this . globalToLocalX ( a . x ) + this . _dragPoint . x + this . dragOffset . x , c = this . globalToLocalY ( a . y ) + this . _dragPoint . y + this . dragOffset . y ; return this . sprite . fixedToCamera ? ( this . allowHorizontalDrag && ( this . sprite . cameraOffset . x = b ) , this . allowVerticalDrag && ( this . sprite . cameraOffset . y = c ) , 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 . allowHorizontalDrag && ( this . sprite . x = b ) , this . allowVerticalDrag && ( this . sprite . y = c ) , 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 ) ) , ! 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 . now - 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 . now - this . _pointerData [ a ] . timeUp < b } , overDuration : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isOver ? this . game . time . now - this . _pointerData [ a ] . timeOver : - 1 } , downDuration : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isDown ? this . game . time . now - this . _pointerData [ a ] . timeDown : - 1 } , enableDrag : function ( a , c , d , e , f , g ) { "undefined" == typeof a && ( a = ! 1 ) , "undefined" == typeof c && ( c = ! 1 ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = 255 ) , "undefined" == typeof f && ( f = null ) , "undefined" == typeof g && ( g = null ) , this . _dragPoint = new b . Point , this . draggable = ! 0 , this . bringToTop = c , this . dragOffset = new b . 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 } , startDrag : function ( a ) { if ( th
} , b . Sprite . prototype . resetFrame = function ( ) { this . _frame && this . setFrame ( this . _frame ) } , b . Sprite . prototype . crop = function ( a , c ) { "undefined" == typeof c && ( c = ! 1 ) , a ? ( c && null !== this . cropRect ? this . cropRect . setTo ( a . x , a . y , a . width , a . height ) : this . cropRect = c && null === this . cropRect ? new b . Rectangle ( a . x , a . y , a . width , a . height ) : a , this . updateCrop ( ) ) : ( this . _crop = null , this . cropRect = null , this . resetFrame ( ) ) } , b . Sprite . prototype . updateCrop = function ( ) { if ( this . cropRect ) { this . _crop = b . Rectangle . clone ( this . cropRect , this . _crop ) , this . _crop . x += this . _frame . x , this . _crop . y += this . _frame . y ; var a = Math . max ( this . _frame . x , this . _crop . x ) , c = Math . max ( this . _frame . y , this . _crop . y ) , d = Math . min ( this . _frame . right , this . _crop . right ) - a , e = Math . min ( this . _frame . bottom , this . _crop . bottom ) - c ; this . texture . crop . x = a , this . texture . crop . y = c , this . texture . crop . width = d , this . texture . crop . height = e , this . texture . frame . width = Math . min ( d , this . cropRect . width ) , this . texture . frame . height = Math . min ( e , this . cropRect . height ) , this . texture . width = this . texture . frame . width , this . texture . height = this . texture . frame . height , this . texture . _updateUvs ( ) } } , b . Sprite . prototype . revive = function ( a ) { return "undefined" == typeof a && ( a = 1 ) , this . alive = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . health = a , this . events && this . events . onRevived . dispatch ( this ) , this } , b . Sprite . prototype . kill = function ( ) { return this . alive = ! 1 , this . exists = ! 1 , this . visible = ! 1 , this . events && this . events . onKilled . dispatch ( this ) , this } , b . Sprite . prototype . destroy = function ( a ) { if ( null !== this . game && 1 !== this . _cache [ 8 ] ) { "undefined" == typeof a && ( a = ! 0 ) , this . _cache [ 8 ] = 1 , this . events && this . events . onDestroy . dispatch ( this ) , this . parent && ( this . parent instanceof b . Group ? this . parent . remove ( this ) : this . parent . removeChild ( this ) ) , this . input && this . input . destroy ( ) , this . animations && this . animations . destroy ( ) , this . body && this . body . destroy ( ) , this . events && this . events . destroy ( ) ; var c = this . children . length ; if ( a ) for ( ; c -- ; ) this . children [ c ] . destroy ( a ) ; else for ( ; c -- ; ) this . removeChild ( this . children [ c ] ) ; this . _crop && ( this . _crop = null ) , this . _frame && ( this . _frame = null ) , this . alive = ! 1 , this . exists = ! 1 , this . visible = ! 1 , this . filters = null , this . mask = null , this . game = null , this . _cache [ 8 ] = 0 } } , b . Sprite . prototype . damage = function ( a ) { return this . alive && ( this . health -= a , this . health <= 0 && this . kill ( ) ) , this } , b . Sprite . prototype . reset = function ( a , b , c ) { return "undefined" == typeof c && ( c = 1 ) , this . world . setTo ( a , b ) , this . position . x = a , this . position . y = b , this . alive = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . renderable = ! 0 , this . _outOfBoundsFired = ! 1 , this . health = c , this . body && this . body . reset ( a , b , ! 1 , ! 1 ) , this . _cache [ 4 ] = 1 , this } , b . Sprite . prototype . bringToTop = function ( ) { return this . parent && this . parent . bringToTop ( this ) , this } , b . Sprite . prototype . play = function ( a , b , c , d ) { return this . animations ? this . animations . play ( a , b , c , d ) : void 0 } , b . Sprite . prototype . overlap = function ( a ) { return b . Rectangle . intersects ( this . getBounds ( ) , a . getBounds ( ) ) } , b . Sprite . prototype . checkTransform = function ( a ) { this . scaleMin && ( a . a < this . scaleMin . x && ( a . a = this . scaleMin . x ) , a . d < this . scaleMin . y && ( a . d = this . scaleMin . y ) ) , this . scaleMax && ( a . a > this . scaleMax . x && ( a . a = this . scaleMax . x ) , a . d > this . scaleMax . y && ( a . d = this . scaleMax . y ) ) } , b . Sprite . prototype . setScaleMinMax = function ( a , c , d , e ) { "undefined" == typeof c ? c = d = e = a : "undefined" == typeof d && ( d = e = c , c = a ) , null === a ? this . scaleMin = null : this . scaleMin ? this . scaleMin . set ( a , c ) : this . scaleMin = new b . Point ( a , c ) , null === d ? this . scaleMax = null : this . scaleMax ? this . scaleMax . set ( d , e ) : this . scaleMax = new b . Point ( d , e ) } , Object . defineProperty ( b . Sprite . prototype , "angle" , { get : function ( ) { return b . Math . wrapAngle ( b . Math . radToDeg ( this . rotation ) ) } , set : function ( a ) { this . rotation = b . Math . degToRad ( b . Math . wrapAngle ( a ) ) } } ) , Object . defineProperty ( b . Sprite . prototype , "deltaX" , { get : function ( ) { return this . world . x - this . _cache [ 0 ] } } ) , Object . defineProperty ( b . Sprite . prototype , "deltaY" , { get : function ( ) { return this . world . y - this . _cache [ 1 ] } } ) , Object . defineProperty ( b . Sprite . prototype , "deltaZ" , { get : function ( ) { return this . rotation - this . _cache [ 2 ] } } ) , Object . defineProperty ( b . Sprite . prototype , "inWorld" , { get : function ( ) { return this . game . world . bounds . intersects ( this . getBounds ( ) ) } } ) , Object . defineProperty ( b . Sprite . prototype , "inCamera" , { get : function ( ) { return this . g
c [ f ] = g , d = Math . max ( d , g ) } var h = d + this . style . strokeThickness ; this . canvas . width = h * this . resolution ; var i = e . fontSize + this . style . strokeThickness , j = i * b . length ; this . canvas . height = j * this . resolution , this . context . scale ( this . resolution , this . resolution ) , navigator . isCocoonJS && this . context . clearRect ( 0 , 0 , this . canvas . width , this . canvas . height ) , this . context . fillStyle = this . style . fill , this . context . font = this . style . font , this . context . strokeStyle = this . style . stroke , this . context . textBaseline = "alphabetic" , this . context . shadowOffsetX = this . style . shadowOffsetX , this . context . shadowOffsetY = this . style . shadowOffsetY , this . context . shadowColor = this . style . shadowColor , this . context . shadowBlur = this . style . shadowBlur , this . context . lineWidth = this . style . strokeThickness , this . context . lineCap = "round" , this . context . lineJoin = "round" ; var k , l ; for ( this . _charCount = 0 , f = 0 ; f < b . length ; f ++ ) k = this . style . strokeThickness / 2 , l = this . style . strokeThickness / 2 + f * i + e . ascent , "right" === this . style . align ? k += d - c [ f ] : "center" === this . style . align && ( k += ( d - c [ f ] ) / 2 ) , l += this . _lineSpacing , this . colors . length > 0 ? this . updateLine ( b [ f ] , k , l ) : ( this . style . stroke && this . style . strokeThickness && this . context . strokeText ( b [ f ] , k , l ) , this . style . fill && this . context . fillText ( b [ f ] , k , l ) ) ; this . updateTexture ( ) } , b . Text . prototype . updateLine = function ( a , b , c ) { for ( var d = 0 ; d < a . length ; d ++ ) { var e = a [ d ] ; this . colors [ this . _charCount ] && ( this . context . fillStyle = this . colors [ this . _charCount ] , this . context . strokeStyle = this . colors [ this . _charCount ] ) , this . style . stroke && this . style . strokeThickness && this . context . strokeText ( e , b , c ) , this . style . fill && this . context . fillText ( e , b , c ) , b += this . context . measureText ( e ) . width , this . _charCount ++ } } , b . Text . prototype . clearColors = function ( ) { this . colors = [ ] , this . dirty = ! 0 } , b . Text . prototype . addColor = function ( a , b ) { this . colors [ b ] = a , this . dirty = ! 0 } , b . Text . prototype . runWordWrap = function ( a ) { for ( var b = "" , c = a . split ( "\n" ) , d = 0 ; d < c . length ; d ++ ) { for ( var e = this . style . wordWrapWidth , f = c [ d ] . split ( " " ) , g = 0 ; g < f . length ; g ++ ) { var h = this . context . measureText ( f [ g ] ) . width , i = h + this . context . measureText ( " " ) . width ; i > e ? ( g > 0 && ( b += "\n" ) , b += f [ g ] + " " , e = this . style . wordWrapWidth - h ) : ( e -= i , b += f [ g ] + " " ) } d < c . length - 1 && ( b += "\n" ) } return b } , Object . defineProperty ( b . Text . prototype , "angle" , { get : function ( ) { return b . Math . radToDeg ( this . rotation ) } , set : function ( a ) { this . rotation = b . Math . degToRad ( a ) } } ) , Object . defineProperty ( b . Text . prototype , "text" , { get : function ( ) { return this . _text } , set : function ( a ) { a !== this . _text && ( this . _text = a . toString ( ) || " " , this . dirty = ! 0 , this . parent && this . updateTransform ( ) ) } } ) , Object . defineProperty ( b . Text . prototype , "font" , { get : function ( ) { return this . _font } , set : function ( a ) { a !== this . _font && ( this . _font = a . trim ( ) , this . style . font = this . _fontWeight + " " + this . _fontSize + "px '" + this . _font + "'" , this . dirty = ! 0 , this . parent && this . updateTransform ( ) ) } } ) , Object . defineProperty ( b . Text . prototype , "fontSize" , { get : function ( ) { return this . _fontSize } , set : function ( a ) { a = parseInt ( a , 10 ) , a !== this . _fontSize && ( this . _fontSize = a , this . style . font = this . _fontWeight + " " + this . _fontSize + "px '" + this . _font + "'" , this . dirty = ! 0 , this . parent && this . updateTransform ( ) ) } } ) , Object . defineProperty ( b . Text . prototype , "fontWeight" , { get : function ( ) { return this . _fontWeight } , set : function ( a ) { a !== this . _fontWeight && ( this . _fontWeight = a , this . style . font = this . _fontWeight + " " + this . _fontSize + "px '" + this . _font + "'" , this . dirty = ! 0 , this . parent && this . updateTransform ( ) ) } } ) , Object . defineProperty ( b . Text . prototype , "fill" , { get : function ( ) { return this . style . fill } , set : function ( a ) { a !== this . style . fill && ( this . style . fill = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . Text . prototype , "align" , { get : function ( ) { return this . style . align } , set : function ( a ) { a !== this . style . align && ( this . style . align = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . Text . prototype , "stroke" , { get : function ( ) { return this . style . stroke } , set : function ( a ) { a !== this . style . stroke && ( this . style . stroke = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . Text . prototype , "strokeThickness" , { get : function ( ) { return this . style . strokeThickness } , set : function ( a ) { a !== this . style . strokeThickness && ( this . style . strokeThickness = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . Text . prototype , "wordWrap" , { get : function ( ) { return this . style . wordWrap } , set
} , _checkIsLittleEndian : function ( ) { var a = new ArrayBuffer ( 4 ) , b = new Uint8Array ( a ) , c = new Uint32Array ( a ) ; return b [ 0 ] = 161 , b [ 1 ] = 178 , b [ 2 ] = 195 , b [ 3 ] = 212 , 3569595041 == c [ 0 ] ? ! 0 : 2712847316 == c [ 0 ] ? ! 1 : null } , _checkIsUint8ClampedImageData : function ( ) { if ( "undefined" == typeof Uint8ClampedArray ) return ! 1 ; var a = document . createElement ( "canvas" ) , b = a . getContext ( "2d" ) ; if ( ! b ) return ! 1 ; var c = b . createImageData ( 1 , 1 ) ; return c . data instanceof Uint8ClampedArray } , _checkCSS3D : function ( ) { var a , b = document . createElement ( "p" ) , c = { webkitTransform : "-webkit-transform" , OTransform : "-o-transform" , msTransform : "-ms-transform" , MozTransform : "-moz-transform" , transform : "transform" } ; document . body . insertBefore ( b , null ) ; for ( var d in c ) void 0 !== b . style [ d ] && ( b . style [ d ] = "translate3d(1px,1px,1px)" , a = window . getComputedStyle ( b ) . getPropertyValue ( c [ d ] ) ) ; document . body . removeChild ( b ) , this . css3D = void 0 !== a && a . length > 0 && "none" !== a } , canPlayAudio : function ( a ) { return "mp3" == a && this . mp3 ? ! 0 : "ogg" == a && ( this . ogg || this . opus ) ? ! 0 : "m4a" == a && this . m4a ? ! 0 : "opus" == a && this . opus ? ! 0 : "wav" == a && this . wav ? ! 0 : "webm" == a && this . webm ? ! 0 : ! 1 } , isConsoleOpen : function ( ) { return window . console && window . console . firebug ? ! 0 : window . console && ( console . profile ( ) , console . profileEnd ( ) , console . clear && console . clear ( ) , console . profiles ) ? console . profiles . length > 0 : ! 1 } } , b . Device . prototype . constructor = b . Device , b . Device . isAndroidStockBrowser = function ( ) { var a = window . navigator . userAgent . match ( /Android.*AppleWebKit\/([\d.]+)/ ) ; return a && a [ 1 ] < 537 } , b . RequestAnimationFrame = function ( a , b ) { "undefined" == typeof b && ( b = ! 1 ) , this . game = a , this . isRunning = ! 1 , this . forceSetTimeOut = b ; for ( var c = [ "ms" , "moz" , "webkit" , "o" ] , d = 0 ; d < c . length && ! window . requestAnimationFrame ; d ++ ) window . requestAnimationFrame = window [ c [ d ] + "RequestAnimationFrame" ] , window . cancelAnimationFrame = window [ c [ d ] + "CancelAnimationFrame" ] ; this . _isSetTimeOut = ! 1 , this . _onLoop = null , this . _timeOutID = null } , b . RequestAnimationFrame . prototype = { start : function ( ) { this . isRunning = ! 0 ; var a = this ; ! window . requestAnimationFrame || this . forceSetTimeOut ? ( this . _isSetTimeOut = ! 0 , this . _onLoop = function ( ) { return a . updateSetTimeout ( ) } , this . _timeOutID = window . setTimeout ( this . _onLoop , 0 ) ) : ( this . _isSetTimeOut = ! 1 , this . _onLoop = function ( b ) { return a . updateRAF ( b ) } , this . _timeOutID = window . requestAnimationFrame ( this . _onLoop ) ) } , updateRAF : function ( a ) { this . game . update ( Math . floor ( a ) ) , this . _timeOutID = window . requestAnimationFrame ( this . _onLoop ) } , updateSetTimeout : function ( ) { this . game . update ( Date . now ( ) ) , this . _timeOutID = window . setTimeout ( this . _onLoop , this . game . time . timeToCall ) } , stop : function ( ) { this . _isSetTimeOut ? clearTimeout ( this . _timeOutID ) : window . cancelAnimationFrame ( this . _timeOutID ) , this . isRunning = ! 1 } , isSetTimeOut : function ( ) { return this . _isSetTimeOut } , isRAF : function ( ) { return this . _isSetTimeOut === ! 1 } } , b . RequestAnimationFrame . prototype . constructor = b . RequestAnimationFrame , b . Math = { PI2 : 2 * Math . PI , fuzzyEqual : function ( a , b , c ) { return "undefined" == typeof c && ( c = 1e-4 ) , Math . abs ( a - b ) < c } , fuzzyLessThan : function ( a , b , c ) { return "undefined" == typeof c && ( c = 1e-4 ) , b + c > a } , fuzzyGreaterThan : function ( a , b , c ) { return "undefined" == typeof c && ( c = 1e-4 ) , a > b - c } , fuzzyCeil : function ( a , b ) { return "undefined" == typeof b && ( b = 1e-4 ) , Math . ceil ( a - b ) } , fuzzyFloor : function ( a , b ) { return "undefined" == typeof b && ( b = 1e-4 ) , Math . floor ( a + b ) } , average : function ( ) { for ( var a = [ ] , b = 0 ; b < arguments . length - 0 ; b ++ ) a [ b ] = arguments [ b + 0 ] ; for ( var c = 0 , d = 0 ; d < a . length ; d ++ ) c += a [ d ] ; return c / a . length } , truncate : function ( a ) { return a > 0 ? Math . floor ( a ) : Math . ceil ( a ) } , shear : function ( a ) { return a % 1 } , snapTo : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . round ( a / b ) , c + a ) } , snapToFloor : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . floor ( a / b ) , c + a ) } , snapToCeil : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . ceil ( a / b ) , c + a ) } , snapToInArray : function ( a , b , c ) { if ( "undefined" == typeof c && ( c = ! 0 ) , c && b . sort ( ) , a < b [ 0 ] ) return b [ 0 ] ; for ( var d = 1 ; b [ d ] < a ; ) d ++ ; var e = b [ d - 1 ] , f = d < b . length ? b [ d ] : Number . POSITIVE _INFINITY ; return a - e >= f - a ? f : e } , roundTo : function ( a , b , c ) { "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = 10 ) ; var d = Math . pow ( c , - b ) ; return Math . round ( a * d ) / d } , floorTo : function ( a , b , c ) { "undefined" == typeof b &
} , validateFrames : function ( a , b ) { "undefined" == typeof b && ( b = ! 0 ) ; for ( var c = 0 ; c < a . length ; c ++ ) if ( b === ! 0 ) { if ( a [ c ] > this . _frameData . total ) return ! 1 } else if ( this . _frameData . checkFrameName ( a [ c ] ) === ! 1 ) return ! 1 ; return ! 0 } , play : function ( a , b , c , d ) { return this . _anims [ a ] ? this . currentAnim === this . _anims [ a ] ? this . currentAnim . isPlaying === ! 1 ? ( this . currentAnim . paused = ! 1 , this . currentAnim . play ( b , c , d ) ) : this . currentAnim : ( this . currentAnim && this . currentAnim . isPlaying && this . currentAnim . stop ( ) , this . currentAnim = this . _anims [ a ] , this . currentAnim . paused = ! 1 , this . currentFrame = this . currentAnim . currentFrame , this . currentAnim . play ( b , c , d ) ) : void 0 } , stop : function ( a , b ) { "undefined" == typeof b && ( b = ! 1 ) , "string" == typeof a ? this . _anims [ a ] && ( this . currentAnim = this . _anims [ a ] , this . currentAnim . stop ( b ) ) : this . currentAnim && this . currentAnim . stop ( b ) } , update : function ( ) { return this . updateIfVisible && ! this . sprite . visible ? ! 1 : this . currentAnim && this . currentAnim . update ( ) === ! 0 ? ( this . currentFrame = this . currentAnim . currentFrame , ! 0 ) : ! 1 } , next : function ( a ) { this . currentAnim && ( this . currentAnim . next ( a ) , this . currentFrame = this . currentAnim . currentFrame ) } , previous : function ( a ) { this . currentAnim && ( this . currentAnim . previous ( a ) , this . currentFrame = this . currentAnim . currentFrame ) } , getAnimation : function ( a ) { return "string" == typeof a && this . _anims [ a ] ? this . _anims [ a ] : null } , refreshFrame : function ( ) { this . sprite . setTexture ( PIXI . TextureCache [ this . currentFrame . uuid ] ) , this . sprite . _ _tilePattern && ( this . _ _tilePattern = ! 1 , this . tilingTexture = ! 1 ) } , destroy : function ( ) { var a = null ; for ( var a in this . _anims ) this . _anims . hasOwnProperty ( a ) && this . _anims [ a ] . destroy ( ) ; this . _anims = { } , this . _frameData = null , this . _frameIndex = 0 , this . currentAnim = null , this . currentFrame = null } } , b . AnimationManager . prototype . constructor = b . AnimationManager , Object . defineProperty ( b . AnimationManager . prototype , "frameData" , { get : function ( ) { return this . _frameData } } ) , Object . defineProperty ( b . AnimationManager . prototype , "frameTotal" , { get : function ( ) { return this . _frameData . total } } ) , Object . defineProperty ( b . AnimationManager . prototype , "paused" , { get : function ( ) { return this . currentAnim . isPaused } , set : function ( a ) { this . currentAnim . paused = a } } ) , Object . defineProperty ( b . AnimationManager . prototype , "name" , { get : function ( ) { return this . currentAnim ? this . currentAnim . name : void 0 } } ) , Object . defineProperty ( b . AnimationManager . prototype , "frame" , { get : function ( ) { return this . currentFrame ? this . _frameIndex : void 0 } , set : function ( a ) { "number" == typeof a && null !== this . _frameData . getFrame ( a ) && ( this . currentFrame = this . _frameData . getFrame ( a ) , this . currentFrame && ( this . _frameIndex = a , this . sprite . setFrame ( this . currentFrame ) , this . sprite . _ _tilePattern && ( this . _ _tilePattern = ! 1 , this . tilingTexture = ! 1 ) ) ) } } ) , Object . defineProperty ( b . AnimationManager . prototype , "frameName" , { get : function ( ) { return this . currentFrame ? this . currentFrame . name : void 0 } , set : function ( a ) { "string" == typeof a && null !== this . _frameData . getFrameByName ( a ) ? ( this . currentFrame = this . _frameData . getFrameByName ( a ) , this . currentFrame && ( this . _frameIndex = this . currentFrame . index , this . sprite . setFrame ( this . currentFrame ) , this . sprite . _ _tilePattern && ( this . _ _tilePattern = ! 1 , this . tilingTexture = ! 1 ) ) ) : console . warn ( "Cannot set frameName: " + a ) } } ) , b . Animation = function ( a , c , d , e , f , g , h ) { "undefined" == typeof h && ( h = ! 1 ) , this . game = a , this . _parent = c , this . _frameData = e , this . name = d , this . _frames = [ ] , this . _frames = this . _frames . concat ( f ) , this . delay = 1e3 / g , this . loop = h , this . loopCount = 0 , this . killOnComplete = ! 1 , this . isFinished = ! 1 , this . isPlaying = ! 1 , this . isPaused = ! 1 , this . _pauseStartTime = 0 , this . _frameIndex = 0 , this . _frameDiff = 0 , this . _frameSkip = 1 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . onStart = new b . Signal , this . onUpdate = null , this . onComplete = new b . Signal , this . onLoop = new b . Signal , this . game . onPause . add ( this . onPause , this ) , this . game . onResume . add ( this . onResume , this ) } , b . Animation . prototype = { play : function ( a , b , c ) { return "number" == typeof a && ( this . delay = 1e3 / a ) , "boolean" == typeof b && ( this . loop = b ) , "undefined" != typeof c && ( this . killOnComplete = c ) , this . isPlaying = ! 0 , this . isFinished = ! 1 , this . paused = ! 1 , this . loopCount = 0 , this . _timeLastFrame = this . game . time . now , this . _timeNextFrame = this . game . time . now + this . delay , this . _frameIndex
} , bitmapFont : function ( a , b , c , d , e , f ) { if ( "undefined" == typeof c && ( c = null ) , "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = 0 ) , c ) this . addToFileList ( "bitmapfont" , a , b , { xmlURL : c , xSpacing : e , ySpacing : f } ) ; else if ( "string" == typeof d ) { var g ; try { if ( window . DOMParser ) { var h = new DOMParser ; g = h . parseFromString ( d , "text/xml" ) } else g = new ActiveXObject ( "Microsoft.XMLDOM" ) , g . async = "false" , g . loadXML ( d ) } catch ( i ) { g = void 0 } if ( ! g || ! g . documentElement || g . getElementsByTagName ( "parsererror" ) . length ) throw new Error ( "Phaser.Loader. Invalid Bitmap Font XML given" ) ; this . addToFileList ( "bitmapfont" , a , b , { xmlURL : null , xmlData : g , xSpacing : e , ySpacing : f } ) } return this } , atlasJSONArray : function ( a , c , d , e ) { return this . atlas ( a , c , d , e , b . Loader . TEXTURE _ATLAS _JSON _ARRAY ) } , atlasJSONHash : function ( a , c , d , e ) { return this . atlas ( a , c , d , e , b . Loader . TEXTURE _ATLAS _JSON _HASH ) } , atlasXML : function ( a , c , d , e ) { return this . atlas ( a , c , d , e , b . Loader . TEXTURE _ATLAS _XML _STARLING ) } , atlas : function ( a , c , d , e , f ) { if ( "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = null ) , "undefined" == typeof f && ( f = b . Loader . TEXTURE _ATLAS _JSON _ARRAY ) , d ) this . addToFileList ( "textureatlas" , a , c , { atlasURL : d , format : f } ) ; else { switch ( f ) { case b . Loader . TEXTURE _ATLAS _JSON _ARRAY : "string" == typeof e && ( e = JSON . parse ( e ) ) ; break ; case b . Loader . TEXTURE _ATLAS _XML _STARLING : if ( "string" == typeof e ) { var g ; try { if ( window . DOMParser ) { var h = new DOMParser ; g = h . parseFromString ( e , "text/xml" ) } else g = new ActiveXObject ( "Microsoft.XMLDOM" ) , g . async = "false" , g . loadXML ( e ) } catch ( i ) { g = void 0 } if ( ! g || ! g . documentElement || g . getElementsByTagName ( "parsererror" ) . length ) throw new Error ( "Phaser.Loader. Invalid Texture Atlas XML given" ) ; e = g } } this . addToFileList ( "textureatlas" , a , c , { atlasURL : null , atlasData : e , format : f } ) } return this } , removeFile : function ( a , b ) { var c = this . getAsset ( a , b ) ; c !== ! 1 && this . _fileList . splice ( c . index , 1 ) } , removeAll : function ( ) { this . _fileList . length = 0 } , start : function ( ) { this . isLoading || ( this . _packList . length > 0 ? ( this . _packIndex = 0 , this . loadPack ( ) ) : this . beginLoad ( ) ) } , beginLoad : function ( ) { this . progress = 0 , this . progressFloat = 0 , this . hasLoaded = ! 1 , this . isLoading = ! 0 , this . onLoadStart . dispatch ( this . _fileList . length ) , this . _fileList . length > 0 ? ( this . _fileIndex = 0 , this . _progressChunk = 100 / this . _fileList . length , this . loadFile ( ) ) : ( this . progress = 100 , this . progressFloat = 100 , this . hasLoaded = ! 0 , this . isLoading = ! 1 , this . onLoadComplete . dispatch ( ) ) } , loadPack : function ( ) { if ( ! this . _packList [ this . _packIndex ] ) return void console . warn ( "Phaser.Loader loadPackList invalid index " + this . _packIndex ) ; var a = this . _packList [ this . _packIndex ] ; null !== a . data ? this . packLoadComplete ( this . _packIndex , ! 1 ) : this . xhrLoad ( this . _packIndex , this . baseURL + a . url , "text" , "packLoadComplete" , "packLoadError" ) } , packLoadComplete : function ( a , c ) { if ( "undefined" == typeof c && ( c = ! 0 ) , ! this . _packList [ a ] ) return void console . warn ( "Phaser.Loader packLoadComplete invalid index " + a ) ; var d = this . _packList [ a ] ; if ( d . loaded = ! 0 , c ) var e = JSON . parse ( this . _xhr . responseText ) ; else var e = this . _packList [ a ] . data ; if ( e [ d . key ] ) for ( var f , g = 0 ; g < e [ d . key ] . length ; g ++ ) switch ( f = e [ d . key ] [ g ] , f . type ) { case "image" : this . image ( f . key , f . url , f . overwrite ) ; break ; case "text" : this . text ( f . key , f . url , f . overwrite ) ; break ; case "json" : this . json ( f . key , f . url , f . overwrite ) ; break ; case "xml" : this . xml ( f . key , f . url , f . overwrite ) ; break ; case "script" : this . script ( f . key , f . url , f . callback , d . callbackContext ) ; break ; case "binary" : this . binary ( f . key , f . url , f . callback , d . callbackContext ) ; break ; case "spritesheet" : this . spritesheet ( f . key , f . url , f . frameWidth , f . frameHeight , f . frameMax , f . margin , f . spacing ) ; break ; case "audio" : this . audio ( f . key , f . urls , f . autoDecode ) ; break ; case "tilemap" : this . tilemap ( f . key , f . url , f . data , b . Tilemap [ f . format ] ) ; break ; case "physics" : this . physics ( f . key , f . url , f . data , b . Loader [ f . format ] ) ; break ; case "bitmapFont" : this . bitmapFont ( f . key , f . textureURL , f . xmlURL , f . xmlData , f . xSpacing , f . ySpacing ) ; break ; case "atlasJSONArray" : this . atlasJSONArray ( f . key , f . textureURL , f . atlasURL , f . atlasData ) ; break ; case "atlasJSONHash" : this . atlasJSONHash ( f . key , f . textureURL , f . atlasURL , f . atlasData ) ; break ; case "atlasXML" : this . atlasXML ( f . key , f . textureURL , f . atlasURL , f . atlasData ) ; break ; case "atlas" : this . atlas ( f . key , f . textureURL , f . at
} , spriteInputInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Sprite Input: (" + a . width + " x " + a . height + ")" ) , this . line ( "x: " + a . input . pointerX ( ) . toFixed ( 1 ) + " y: " + a . input . pointerY ( ) . toFixed ( 1 ) ) , this . line ( "over: " + a . input . pointerOver ( ) + " duration: " + a . input . overDuration ( ) . toFixed ( 0 ) ) , this . line ( "down: " + a . input . pointerDown ( ) + " duration: " + a . input . downDuration ( ) . toFixed ( 0 ) ) , this . line ( "just over: " + a . input . justOver ( ) + " just out: " + a . input . justOut ( ) ) , this . stop ( ) } , key : function ( a , b , c , d ) { this . start ( b , c , d , 150 ) , this . line ( "Key:" , a . keyCode , "isDown:" , a . isDown ) , this . line ( "justPressed:" , a . justPressed ( ) , "justReleased:" , a . justReleased ( ) ) , this . line ( "Time Down:" , a . timeDown . toFixed ( 0 ) , "duration:" , a . duration . toFixed ( 0 ) ) , this . stop ( ) } , inputInfo : function ( a , b , c ) { this . start ( a , b , c ) , this . line ( "Input" ) , this . line ( "X: " + this . game . input . x + " Y: " + this . game . input . y ) , this . line ( "World X: " + this . game . input . worldX + " World Y: " + this . game . input . worldY ) , this . line ( "Scale X: " + this . game . input . scale . x . toFixed ( 1 ) + " Scale Y: " + this . game . input . scale . x . toFixed ( 1 ) ) , this . line ( "Screen X: " + this . game . input . activePointer . screenX + " Screen Y: " + this . game . input . activePointer . screenY ) , this . stop ( ) } , spriteBounds : function ( a , b , c ) { var d = a . getBounds ( ) ; d . x += this . game . camera . x , d . y += this . game . camera . y , this . rectangle ( d , b , c ) } , ropeSegments : function ( a , b , c ) { var d = a . segments ; d . forEach ( function ( a ) { this . rectangle ( a , b , c ) } , this ) } , spriteInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Sprite: (" + a . width + " x " + a . height + ") anchor: " + a . anchor . x + " x " + a . anchor . y ) , this . line ( "x: " + a . x . toFixed ( 1 ) + " y: " + a . y . toFixed ( 1 ) ) , this . line ( "angle: " + a . angle . toFixed ( 1 ) + " rotation: " + a . rotation . toFixed ( 1 ) ) , this . line ( "visible: " + a . visible + " in camera: " + a . inCamera ) , this . stop ( ) } , spriteCoords : function ( a , b , c , d ) { this . start ( b , c , d , 100 ) , a . name && this . line ( a . name ) , this . line ( "x:" , a . x . toFixed ( 2 ) , "y:" , a . y . toFixed ( 2 ) ) , this . line ( "pos x:" , a . position . x . toFixed ( 2 ) , "pos y:" , a . position . y . toFixed ( 2 ) ) , this . line ( "world x:" , a . world . x . toFixed ( 2 ) , "world y:" , a . world . y . toFixed ( 2 ) ) , this . stop ( ) } , lineInfo : function ( a , b , c , d ) { this . start ( b , c , d , 80 ) , this . line ( "start.x:" , a . start . x . toFixed ( 2 ) , "start.y:" , a . start . y . toFixed ( 2 ) ) , this . line ( "end.x:" , a . end . x . toFixed ( 2 ) , "end.y:" , a . end . y . toFixed ( 2 ) ) , this . line ( "length:" , a . length . toFixed ( 2 ) , "angle:" , a . angle ) , this . stop ( ) } , pixel : function ( a , b , c , d ) { d = d || 2 , this . start ( ) , this . context . fillStyle = c , this . context . fillRect ( a , b , d , d ) , this . stop ( ) } , geom : function ( a , c , d , e ) { "undefined" == typeof d && ( d = ! 0 ) , "undefined" == typeof e && ( e = 0 ) , c = c || "rgba(0,255,0,0.4)" , this . start ( ) , this . context . fillStyle = c , this . context . strokeStyle = c , a instanceof b . Rectangle || 1 === e ? d ? this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : this . context . strokeRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : a instanceof b . Circle || 2 === e ? ( this . context . beginPath ( ) , this . context . arc ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . radius , 0 , 2 * Math . PI , ! 1 ) , this . context . closePath ( ) , d ? this . context . fill ( ) : this . context . stroke ( ) ) : a instanceof b . Point || 3 === e ? this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , 4 , 4 ) : ( a instanceof b . Line || 4 === e ) && ( this . context . lineWidth = 1 , this . context . beginPath ( ) , this . context . moveTo ( a . start . x + . 5 - this . game . camera . x , a . start . y + . 5 - this . game . camera . y ) , this . context . lineTo ( a . end . x + . 5 - this . game . camera . x , a . end . y + . 5 - this . game . camera . y ) , this . context . closePath ( ) , this . context . stroke ( ) ) , this . stop ( ) } , rectangle : function ( a , b , c ) { "undefined" == typeof c && ( c = ! 0 ) , b = b || "rgba(0, 255, 0, 0.4)" , this . start ( ) , c ? ( this . context . fillStyle = b , this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) ) : ( this . context . strokeStyle = b , this . context . strokeRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) ) , this . stop ( ) } , text : function ( a , b , c , d , e ) { d = d || "rgb(255,255,255)" , e = e || "16px Courier" , this . start ( ) , this . context . font = e , this . renderShadow && ( this . context . fillStyle = "rgb(0,0,0)" , this . context . fillText ( a , b + 1 , c + 1 ) ) , this . context . fillStyle = d , this . context . fillText ( a , b , c ) , this . stop ( ) } , quadTree : function ( a , b ) { b = b || "rgba(255,0,0,0.3)" , this . start ( ) ; var c = a . bounds ; if ( 0 === a . nodes . length ) { this . cont
} , postUpdate : function ( ) { this . enable && 2 !== this . phase && ( this . phase = 2 , this . deltaX ( ) < 0 ? this . facing = b . LEFT : this . deltaX ( ) > 0 && ( this . facing = b . RIGHT ) , this . deltaY ( ) < 0 ? this . facing = b . UP : this . deltaY ( ) > 0 && ( this . facing = b . 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 . x += this . _dx , this . sprite . y += this . _dy ) , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) , this . allowRotation && ( this . sprite . angle += this . deltaZ ( ) ) , this . prev . x = this . position . x , this . prev . y = this . position . y ) } , destroy : function ( ) { this . sprite . body = null , this . sprite = null } , checkWorldBounds : function ( ) { this . position . x < this . game . physics . arcade . bounds . x && this . game . physics . arcade . checkCollision . left ? ( this . position . x = this . game . physics . arcade . bounds . x , this . velocity . x *= - this . bounce . x , this . blocked . left = ! 0 ) : this . right > this . game . physics . arcade . bounds . right && this . game . physics . arcade . checkCollision . right && ( this . position . x = this . game . physics . arcade . bounds . right - this . width , this . velocity . x *= - this . bounce . x , this . blocked . right = ! 0 ) , this . position . y < this . game . physics . arcade . bounds . y && this . game . physics . arcade . checkCollision . up ? ( this . position . y = this . game . physics . arcade . bounds . y , this . velocity . y *= - this . bounce . y , this . blocked . up = ! 0 ) : this . bottom > this . game . physics . arcade . bounds . bottom && this . game . physics . arcade . checkCollision . down && ( this . position . y = this . game . physics . arcade . bounds . bottom - this . height , this . velocity . y *= - this . bounce . y , this . blocked . down = ! 0 ) } , setSize : function ( a , b , c , d ) { "undefined" == typeof c && ( c = this . offset . x ) , "undefined" == typeof 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 . angularVelocity = 0 , this . angularAcceleration = 0 , this . position . x = a - this . sprite . anchor . x * this . width + this . offset . x , this . position . y = b - this . sprite . anchor . y * this . height + this . offset . y , this . prev . x = this . position . x , this . prev . y = this . position . y , this . rotation = this . sprite . angle , this . preRotation = this . rotation , this . _sx = this . sprite . scale . x , this . _sy = this . sprite . scale . y , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) } , hitTest : function ( a , c ) { return b . Rectangle . contains ( this , a , c ) } , onFloor : function ( ) { return this . blocked . down } , onWall : function ( ) { return this . blocked . left || this . blocked . right } , deltaAbsX : function ( ) { return this . deltaX ( ) > 0 ? this . deltaX ( ) : - this . deltaX ( ) } , deltaAbsY : function ( ) { return this . deltaY ( ) > 0 ? this . deltaY ( ) : - this . deltaY ( ) } , deltaX : function ( ) { return this . position . x - this . prev . x } , deltaY : function ( ) { return this . position . y - this . prev . y } , deltaZ : function ( ) { return this . rotation - this . preRotation } } , Object . defineProperty ( b . Physics . Arcade . Body . prototype , "bottom" , { get : function ( ) { return this . position . y + this . height } } ) , Object . defineProperty ( b . Physics . Arcade . Body . prototype , "right" , { get : function ( ) { return this . position . x + this . width } } ) , Object . defineProperty ( b . Physics . Arcade . Body . prototype , "x" , { get : function ( ) { return this . position . x } , set : function ( a ) { this . position . x = a } } ) , Object . defineProperty ( b . Physics . Arcade . Body . prototype , "y" , { get : function ( ) { return this . position . y } , set : function ( a ) { this . position . y = a } } ) , b . Physics . Arcade . Body . render = function ( a , b , c , d ) { "undefined" == typeof d && ( d = ! 0 ) , c = c || "rgba(0,255,0,0.4)" , d ? ( a . fillStyle = c , a . fillRect ( b . position . x - b . game . camera . x , b . position . y - b . game . camera . y , b . width , b . height ) ) : ( a . strokeStyle = c , a . strokeRect ( b . position . x - b . game . camera . x , b . position . y - b . game . camera . y , b . width , b . height ) ) } , b . Physics . Arcade . Body . renderBodyInfo = function ( a , b ) { a . line ( "x: " + b . x . toFixed ( 2 ) , "y: " + b . y . toFixed ( 2 ) , " width :
} , b . TilemapLayer . prototype . shiftCanvas = function ( a , b , c ) { var d = a . canvas , e = d . width - Math . abs ( b ) , f = d . height - Math . abs ( c ) , g = 0 , h = 0 , i = b , j = c ; 0 > b && ( g = - b , i = 0 ) , 0 > c && ( h = - c , j = 0 ) , a . save ( ) , a . globalCompositeOperation = "copy" , a . drawImage ( d , g , h , e , f , i , j , e , f ) , a . restore ( ) } , b . TilemapLayer . prototype . renderRegion = function ( a , b , c , d , e , f ) { var g = this . context , h = this . layer . width , i = this . layer . height , j = this . _mc . tileWidth , k = this . _mc . tileHeight , l = this . _mc . tilesets , m = 0 / 0 ; this . _wrap || ( e >= c && ( c = Math . max ( 0 , c ) , e = Math . min ( h - 1 , e ) ) , f >= d && ( d = Math . max ( 0 , d ) , f = Math . min ( i - 1 , f ) ) ) ; var n , o , p , q , r , s , t = c * j - a , u = d * k - b , v = ( c + ( 1 << 20 ) * h ) % h , w = ( d + ( 1 << 20 ) * i ) % i ; for ( g . fillStyle = this . tileColor , q = w , s = f - d , o = u ; s >= 0 ; q ++ , s -- , o += k ) { q >= i && ( q -= i ) ; var x = this . layer . data [ q ] ; for ( p = v , r = e - c , n = t ; r >= 0 ; p ++ , r -- , n += j ) { p >= h && ( p -= h ) ; var y = x [ p ] ; if ( y && ! ( y . index < 0 ) ) { var z = y . index , A = l [ z ] ; void 0 === A && ( A = this . resolveTileset ( z ) ) , y . alpha === m || this . debug || ( g . globalAlpha = y . alpha , m = y . alpha ) , A ? A . draw ( g , n , o , z ) : this . debugSettings . missingImageFill && ( g . fillStyle = this . debugSettings . missingImageFill , g . fillRect ( n , o , j , k ) ) , y . debug && this . debugSettings . debuggedTileOverfill && ( g . fillStyle = this . debugSettings . debuggedTileOverfill , g . fillRect ( n , o , j , k ) ) } } } } , b . TilemapLayer . prototype . renderDeltaScroll = function ( a , b ) { var c = this . _mc . scrollX , d = this . _mc . scrollY , e = this . canvas . width , f = this . canvas . height , g = this . _mc . tileWidth , h = this . _mc . tileHeight , i = 0 , j = - g , k = 0 , l = - h ; if ( 0 > a ? ( i = e + a , j = e - 1 ) : a > 0 && ( j = a ) , 0 > b ? ( k = f + b , l = f - 1 ) : b > 0 && ( l = b ) , this . shiftCanvas ( this . context , a , b ) , i = Math . floor ( ( i + c ) / g ) , j = Math . floor ( ( j + c ) / g ) , k = Math . floor ( ( k + d ) / h ) , l = Math . floor ( ( l + d ) / h ) , j >= i ) { this . context . clearRect ( i * g - c , 0 , ( j - i + 1 ) * g , f ) ; var m = Math . floor ( ( 0 + d ) / h ) , n = Math . floor ( ( f - 1 + d ) / h ) ; this . renderRegion ( c , d , i , m , j , n ) } if ( l >= k ) { this . context . clearRect ( 0 , k * h - d , e , ( l - k + 1 ) * h ) ; var o = Math . floor ( ( 0 + c ) / g ) , p = Math . floor ( ( e - 1 + c ) / g ) ; this . renderRegion ( c , d , o , k , p , l ) } } , b . TilemapLayer . prototype . renderFull = function ( ) { var a = this . _mc . scrollX , b = this . _mc . scrollY , c = this . canvas . width , d = this . canvas . height , e = this . _mc . tileWidth , f = this . _mc . tileHeight , g = Math . floor ( a / e ) , h = Math . floor ( ( c - 1 + a ) / e ) , i = Math . floor ( b / f ) , j = Math . floor ( ( d - 1 + b ) / f ) ; this . context . clearRect ( 0 , 0 , c , d ) , this . renderRegion ( a , b , g , i , h , j ) } , b . TilemapLayer . prototype . render = function ( ) { var a = ! 1 ; if ( this . visible ) { ( this . dirty || this . layer . dirty ) && ( this . layer . dirty = ! 1 , a = ! 0 ) ; var b = this . canvas . width , c = this . canvas . height , d = 0 | this . _scrollX , e = 0 | this . _scrollY , f = this . _mc , g = f . scrollX - d , h = f . scrollY - e ; if ( a || 0 !== g || 0 !== h || f . renderWidth !== b || f . renderHeight !== c ) return f . scrollX = d , f . scrollY = e , ( f . renderWidth !== b || f . renderHeight !== c ) && ( f . renderWidth = b , f . renderHeight = c ) , this . debug && ( this . context . globalAlpha = this . debugSettings . debugAlpha , this . debugSettings . forceFullRedraw && ( a = ! 0 ) ) , ! a && this . renderSettings . enableScrollDelta && Math . abs ( g ) + Math . abs ( h ) < Math . min ( b , c ) ? this . renderDeltaScroll ( g , h ) : this . renderFull ( ) , this . debug && ( this . context . globalAlpha = 1 , this . renderDebug ( ) ) , this . baseTexture . dirty ( ) , this . dirty = ! 1 , ! 0 } } , b . TilemapLayer . prototype . renderDebug = function ( ) { var a , b , c , d , e , f , g = this . _mc . scrollX , h = this . _mc . scrollY , i = this . context , j = this . canvas . width , k = this . canvas . height , l = this . layer . width , m = this . layer . height , n = this . _mc . tileWidth , o = this . _mc . tileHeight , p = Math . floor ( g / n ) , q = Math . floor ( ( j - 1 + g ) / n ) , r = Math . floor ( h / o ) , s = Math . floor ( ( k - 1 + h ) / o ) , t = p * n - g , u = r * o - h , v = ( p + ( 1 << 20 ) * l ) % l , w = ( r + ( 1 << 20 ) * m ) % m ; for ( i . strokeStyle = this . debugSettings . facingEdgeStroke , d = w , f = s - r , b = u ; f >= 0 ; d ++ , f -- , b += o ) { d >= m && ( d -= m ) ; var x = this . layer . data [ d ] ; for ( c = v , e = q - p , a = t ; e >= 0 ; c ++ , e -- , a += n ) { c >= l && ( c -= l ) ; var y = x [ c ] ; ! y || y . index < 0 || ! y . collides || ( this . debugSettings . collidingTileOverfill && ( i . fillStyle = this . debugSettings . collidingTileOverfill , i . fillRect ( a , b , this . _mc . cw , this . _mc . ch ) ) , this . debugSettings . facingEdgeStroke && ( i . beginPath ( ) , y . faceTop && ( i . moveTo ( a , b ) , i . lineTo ( a + this . _mc . cw , b ) ) , y . faceBottom && ( i . moveTo ( a , b + this . _mc . ch ) , i . lineTo ( a + this . _mc . cw , b + this . _mc . ch ) ) , y . faceLeft && ( i . moveTo ( a , b ) , i . lineTo ( a , b + this . _mc . ch ) ) , y . faceRight && ( i . moveTo ( a + this . _mc . cw , b ) , i . lineTo ( a + this . _mc . cw , b + this . _mc . ch ) ) , i . stroke ( ) ) ) } } } , Object . defineProperty ( b . TilemapLayer . prototype , "scrollX" , { get : function ( ) { return this . _scrollX } , set : function ( a ) { this . _scrollX = a } } ) , Object . definePro