2014-11-08 19:26:34 +00:00
/* Phaser (no libs) v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */
2014-11-17 13:08:53 +00:00
( function ( ) { function a ( a , b ) { this . _scaleFactor = a , this . _deltaMode = b , this . originalEvent = null } var b = this , c = c || { VERSION : "2.2.0-RC8" , 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 } } ; PIXI . InteractionManager = PIXI . InteractionManager || function ( ) { } , PIXI . dontSayHello = ! 0 , 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 "undefined" == typeof a && ( a = 50 ) , a > 0 && 100 * Math . random ( ) <= a } , randomChoice : function ( a , b ) { return Math . random ( ) < . 5 ? a : b } , transposeArray : function ( a ) { return c . ArrayUtils . transposeMatrix ( a ) } , rotateArray : function ( a , b ) { return c . ArrayUtils . rotateMatrix ( a , b ) } , shuffle : function ( a ) { return c . ArrayUtils . shuffle ( 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 } , 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 , 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 } , mixin : function ( a , b ) { if ( ! a || "object" != typeof a ) return b ; for ( var d in a ) { var e = a [ d ] ; if ( ! e . childNodes && ! e . cloneNode ) { var f = typeof a [ d ] ; b [ d ] = a [ d ] && "object" === f ? typeof b [ d ] === f ? c . Utils . mixin ( a [ d ] , b [ d ] ) : c . Utils . mixin ( a [ d ] , new e . constructor ) : a [ d ] } } return b } } , c . Circle = function ( a , b , c ) { a = a || 0 , b = b || 0 , c = c || 0 , this . x = a , this . y = b , this . _diameter = c , this . _radius = c > 0 ? . 5 * c : 0 } , c . Circle . prototype = { type : null , circumference : function ( ) { return 2 * Math . PI * this . _radius } , getBounds : function ( ) { return new c . Rectangle ( this . x - this . radius , this . y - this . radius , 2 * this . radius , 2 * this . radius ) } , setTo : function ( a , b , c ) { return this . x = a , this . y = b , this . _diameter = c , this . _radius = . 5 * c , this } , copyFrom : function ( a ) { return this . setTo ( a . x , a . y , a . diameter ) } , copyTo : function ( a ) { return a . x = this . x , a . y = this . y , a . diameter = this . _diameter , a } , distance : function ( a , b ) { var d = c . Math . distance ( this . x , this . y , a . x , a . y ) ; return b ? Math . round ( d ) : d } , clone : function ( a ) { return "undefined" == typeof a || null === a ? a = new c . Circle ( this . x , this . y , this . diameter ) : a . setTo ( this . x , this . y , this . diameter ) , a } , contains : function ( a , b ) { return c . Circle . contains ( this , a , b ) } , circumferencePoint : function ( a , b , d ) { return c . Circle . circumferencePoint ( this , a , b , d ) } , offset : function ( a , b ) { return this . x += a , this . y += b , this } , offsetPoint : function ( a ) { return this . offset ( a . x , a . y ) } , toString : function ( ) { return "[{Phaser.Circle (x=" + this . x + " y=" + this . y + " diameter=" + this . diameter + " radius=" + this . radius + ")}]" } } , c . Circle . prototype . constructor = c . Circle , Object . defineProperty ( c . Circle . prototype , "diameter" , { get : function ( ) { return this . _diameter } , set : function ( a ) { a > 0 && ( this . _diameter = a , th
} , 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 . _lineTint = b , this . fillColor = d , this . fillAlpha = e , this . _fillTint = d , 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 , PIXI . RoundedRectangle . prototype . type = PIXI . Graphics . RREC , c . Camera = function ( a , b , d , e , f , g ) { this . game = a , this . world = a . world , this . id = 0 , this . view = new c . Rectangle ( d , e , f , g ) , this . screenView = new c . Rectangle ( d , e , f , g ) , this . bounds = new c . 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 c . Point , this . displayObject = null , this . scale = null , this . _targetPosition = new c . Point } , c . Camera . FOLLOW _LOCKON = 0 , c . Camera . FOLLOW _PLATFORMER = 1 , c . Camera . FOLLOW _TOPDOWN = 2 , c . Camera . FOLLOW _TOPDOWN _TIGHT = 3 , c . Camera . prototype = { follow : function ( a , b ) { "undefined" == typeof b && ( b = c . Camera . FOLLOW _LOCKON ) , this . target = a ; var d ; switch ( b ) { case c . Camera . FOLLOW _PLATFORMER : var e = this . width / 8 , f = this . height / 3 ; this . deadzone = new c . Rectangle ( ( this . width - e ) / 2 , ( this . height - f ) / 2 - . 25 * f , e , f ) ; break ; case c . Camera . FOLLOW _TOPDOWN : d = Math . max ( this . width , this . height ) / 4 , this . deadzone = new c . Rectangle ( ( this . width - d ) / 2 , ( this . height - d ) / 2 , d , d ) ; break ; case c . Camera . FOLLOW _TOPDOWN _TIGHT : d = Math . max ( this . width , this . height ) / 8 , this . deadzone = new c . Rectangle ( ( this . width - d ) / 2 , ( this . height - d ) / 2 , d , d ) ; break ; case c . Camera . FOLLOW _LOCKON : this . deadzone = null ; break ; default : this . deadzone = null } } , unfollow : function ( ) { this . target = null } , focusOn : function ( a ) { this . setPosition ( Math . round ( a . x - this . view . halfWidth ) , Math . round ( a . y - this . view . halfHeight ) ) } , focusOnXY : function ( a , b ) { this . setPosition ( Math . round ( a - this . view . halfWidth ) , Math . round ( b - this . view . halfHeight ) ) } , update : function ( ) { this . target && this . updateTarget ( ) , this . bounds && this . checkBounds ( ) , this . roundPx && this . view . floor ( ) , this . displayObject . position . x = - this . view . x , this . displayObject . position . y = - this . view . y } , updateTarget : function ( ) { this . _targetPosition . copyFrom ( this . target ) . multiply ( this . target . parent ? this . target . parent . worldTransform . a : 1 , this . target . parent ? this . target . parent . worldTransform . d : 1 ) , this . deadzone ? ( this . _edge = this . _targetPosition . x - this . view . x , this . _edge < this . deadzone . left ? this . view . x = this . _targetPosition . x - this . deadzone . left : this . _edge > this . deadzone . right && ( this . view . x = this . _targetPosition . x - this . deadzone . right ) , this . _edge = this . _targetPosition . y - this . view . y , this . _edge < this . deadzone . top ? this . view . y = this . _targetPosition . y - this . deadzone . top : this . _edge > this . deadzone . bottom && ( this . view . y = this . _targetPosition . y - this . deadzone . bottom ) ) : ( this . view . x = this . _targetPosition . x - this . view . halfWidth , this . view . y = this . _targetPosition . y - this . view . halfHeight ) } , setBoundsToWorld : function ( ) { this . bounds && this . bounds . setTo ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height ) } , checkBounds : function ( ) { this . atLimit . x = ! 1 , this . atLimit . y = ! 1 , this . view . x <= this . bounds . x && ( this . atLimit . x = ! 0 , this . view . x = this . bounds . x ) , this . view . right >= this . bounds . right && ( this . at
} , c . 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 ( ) } , 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 ) { "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 ) ) } , c . Group . prototype . forEachExists = function ( a , b ) { var d = Array . prototype . splice . call ( arguments , 2 ) ; d . unshift ( null ) , this . iterate ( "exists" , ! 0 , c . Group . RETURN _TOTAL , a , b , d ) } , c . Group . prototype . forEachAlive = function ( a , b ) { var d = Array . prototype . splice . call ( arguments , 2 ) ; d . unshift ( null ) , this . iterate ( "alive" , ! 0 , c . Group . RETURN _TOTAL , a , b , d ) } , c . Group . prototype . forEachDead = function ( a , b ) { var d = Array . prototype . splice . call ( arguments , 2 ) ; d . unshift ( null ) , this . iterate ( "alive" , ! 1 , c . Group . RETURN _TOTAL , a , b , d ) } , c . Group . prototype . sort = function ( a , b ) { this . children . length < 2 || ( "undefined" == typeof a && ( a = "z" ) , "undefined" == typeof b && ( b = c . Group . SORT _ASCENDING ) , this . _sortProperty = a , this . children . sort ( b === c . Group . SORT _ASCENDING ? this . ascendingSortHandler . bind ( this ) : this . descendingSortHandler . bind ( this ) ) , this . updateZ ( ) ) } , c . Group . prototype . customSort = function ( a , b ) { this . children . length < 2 || ( this . children . sort ( a . bind ( b ) ) , this . updateZ ( ) ) } , c . Group . prototype . ascendingSortHandler = function ( a , b ) { return a [ this . _sortProperty ] < b [ this . _sortProperty ] ? - 1 : a [ this . _sortProperty ] > b [ this . _sortProperty ] ? 1 : a . z < b . z ? - 1 : 1 } , c . Group . prototype . descendingSortHandler = function ( a , b ) { return a [ this . _sortProperty ] < b [ this . _sortProperty ] ? 1 : a [ this . _sortProperty ] > b [ this . _sortProperty ] ? - 1 : 0 } , c . Group . prototype . iterate = function ( a , b , d , e , f , g ) { if ( d === c . Group . RETURN _TOTAL && 0 === this . children . length ) return 0 ; "undefined" == typeof e && ( e = ! 1 ) ; for ( var h = 0 , i = 0 , j = this . children . length ; j > i ; i ++ ) if ( this . children [ i ] [ a ] === b && ( h ++ , e && ( g [ 0 ] = this . children [ i ] , e . apply ( f , g ) ) , d === c . Group . RETURN _CHILD ) ) return this . children [ i ] ; return d === c . Group . RETURN _TOTAL ? h : d === c . Group . RETURN _CHILD ? null : void 0 } , c . Group . prototype . getFirstExists = function ( a ) { return "boolean" != typeof a && ( a = ! 0 ) , this . iterate ( "exists" , a , c . Group . RETURN _CHILD ) } , c . Group . prototype . getFirstAlive = function ( ) { return this . iterate ( "alive" , ! 0 , c . Group . RETURN _CHILD ) } , c . Group . prototype . getFirstDead = function ( ) { return this . iterate ( "alive" , ! 1 , c . Group . RETURN _CHILD ) } , c . Group . prototype . getTop = function ( ) { return this . children . length > 0 ? this . children [ this . children . length - 1 ] : void 0 } , c . Group . prototype . getBottom = function ( ) { return this . children . length > 0 ? this . children [ 0 ] : void 0 } , c . Group . prototype . countLiving = function ( ) { return this . iterate ( "alive" , ! 0 , c . Group . RETURN _TOTAL ) } , c . Group . prototype . countDead = function ( ) { return this . iterate ( "alive" , ! 1 , c . Group . RETURN _TOTAL ) } , c . Group . prototype . getRandom = function ( a , b ) { return 0 === this . children . length ? null : ( a = a || 0 , b = b || this . children . length , c . ArrayUtils . getRandomItem ( this . children , a , b ) ) } , c . Group . prototype . remove = function ( a , b , c ) { if ( "undefined" == typeof b && ( b = ! 1 ) , "undefined" == typeof c && ( c = ! 1 ) , 0 === this . children . length || - 1 === this . children . indexOf ( a ) ) return ! 1 ; c || ! a . events || a . destroyPhase || a . events . onRemovedFromGroup . dispatch ( a , this ) ; var d = this . removeChild ( a ) ; return this . updateZ ( ) , this . cursor === a && this . next ( ) , b && d && d . destroy ( ! 0 ) , ! 0 } , c . Group . prototype . removeAll = function ( a , b ) { if ( "undefined" == typeof a && ( a = ! 1 ) , "undefined" == typeof b && ( b = ! 1 ) , 0 !== this . children . length ) { do { ! b && this . children [ 0 ] . events && this . children [ 0 ] . events . onRemovedFromGroup . dispatch ( this . children [ 0 ] , this ) ; var c = this . removeChild ( this . children [ 0 ] ) ; a && c && c . destroy ( ! 0 ) } while ( this . children . length > 0 ) ; this . cursor = null } } , c . Group . prototype . removeBetween = function ( a , b , c , d ) { if ( "undefined" == typeof b && ( b = this . children . length - 1 ) , "undefined" == typeof c && ( c = ! 1 ) , "undefined" == typeof d && ( d = ! 1 ) , 0 !== this . children . length ) { if ( a > b || 0 > a || b > this . children . length ) return ! 1 ; for ( var e = b ; e >
} , c . Game . prototype = { parseConfig : function ( a ) { this . config = a , "undefined" == typeof a . enableDebug && ( this . config . enableDebug = ! 0 ) , a . width && ( this . _width = a . width ) , a . height && ( this . _height = a . height ) , a . renderer && ( this . renderType = a . renderer ) , a . parent && ( this . parent = a . parent ) , a . transparent && ( this . transparent = a . transparent ) , a . antialias && ( this . antialias = a . antialias ) , a . preserveDrawingBuffer && ( this . preserveDrawingBuffer = a . preserveDrawingBuffer ) , a . physicsConfig && ( this . physicsConfig = a . physicsConfig ) ; var b = [ ( Date . now ( ) * Math . random ( ) ) . toString ( ) ] ; a . seed && ( b = a . seed ) , this . rnd = new c . RandomDataGenerator ( b ) ; var d = null ; a . state && ( d = a . state ) , this . state = new c . StateManager ( this , d ) } , boot : function ( ) { this . isBooted || ( this . onPause = new c . Signal , this . onResume = new c . Signal , this . onBlur = new c . Signal , this . onFocus = new c . Signal , this . isBooted = ! 0 , this . math = c . Math , this . scale = new c . ScaleManager ( this , this . _width , this . _height ) , this . stage = new c . Stage ( this ) , this . setUpRenderer ( ) , this . world = new c . World ( this ) , this . add = new c . GameObjectFactory ( this ) , this . make = new c . GameObjectCreator ( this ) , this . cache = new c . Cache ( this ) , this . load = new c . Loader ( this ) , this . time = new c . Time ( this ) , this . tweens = new c . TweenManager ( this ) , this . input = new c . Input ( this ) , this . sound = new c . SoundManager ( this ) , this . physics = new c . Physics ( this , this . physicsConfig ) , this . particles = new c . Particles ( this ) , this . plugins = new c . PluginManager ( this ) , this . net = new c . Net ( this ) , this . time . boot ( ) , this . stage . boot ( ) , this . world . boot ( ) , this . scale . boot ( ) , this . input . boot ( ) , this . sound . boot ( ) , this . state . boot ( ) , this . config . enableDebug && ( this . debug = new c . Utils . Debug ( this ) , this . debug . boot ( ) ) , this . showDebugHeader ( ) , this . isRunning = ! 0 , this . raf = this . config && this . config . forceSetTimeOut ? new c . RequestAnimationFrame ( this , this . config . forceSetTimeOut ) : new c . RequestAnimationFrame ( this , ! 1 ) , this . raf . start ( ) ) } , showDebugHeader : function ( ) { var a = c . VERSION , b = "Canvas" , d = "HTML Audio" , e = 1 ; if ( this . renderType === c . WEBGL ? ( b = "WebGL" , e ++ ) : this . renderType == c . HEADLESS && ( b = "Headless" ) , this . device . webAudio && ( d = "WebAudio" , e ++ ) , this . device . chrome ) { for ( var f = [ "%c %c %c Phaser v" + a + " | Pixi.js " + PIXI . VERSION + " | " + b + " | " + d + " %c %c %c http://phaser.io %c♥%c♥%c♥" , "background: #3db79f" , "background: #329582" , "color: #ffffff; background: #226558;" , "background: #329582" , "background: #3db79f" , "background: #ffffff" ] , g = 0 ; 3 > g ; g ++ ) f . push ( e > g ? "color: #ff2424; background: #fff" : "color: #959595; background: #fff" ) ; console . log . apply ( console , f ) } else window . console && console . log ( "Phaser v" + a + " | Pixi.js " + PIXI . VERSION + " | " + b + " | " + d + " | http://phaser.io" ) } , setUpRenderer : function ( ) { if ( this . canvas = this . config . canvasID ? c . Canvas . create ( this . width , this . height , this . config . canvasID ) : c . Canvas . create ( this . width , this . height ) , this . config . canvasStyle ? this . canvas . style = this . config . canvasStyle : this . canvas . style [ "-webkit-full-screen" ] = "width: 100%; height: 100%" , this . device . cocoonJS && ( this . canvas . screencanvas = this . renderType === c . CANVAS ? ! 0 : ! 1 ) , this . renderType === c . HEADLESS || this . renderType === c . CANVAS || this . renderType === c . AUTO && this . device . webGL === ! 1 ) { if ( ! this . device . canvas ) throw new Error ( "Phaser.Game - cannot create Canvas or WebGL context, aborting." ) ; this . renderType === c . AUTO && ( this . renderType = c . CANVAS ) , this . renderer = new PIXI . CanvasRenderer ( this . width , this . height , { view : this . canvas , transparent : this . transparent , resolution : 1 , clearBeforeRender : ! 0 } ) , this . context = this . renderer . context } else this . renderType = c . WEBGL , this . renderer = new PIXI . WebGLRenderer ( this . width , this . height , { view : this . canvas , transparent : this . transparent , resolution : 1 , antialias : this . antialias , preserveDrawingBuffer : this . preserveDrawingBuffer } ) , this . context = null ; this . renderType !== c . HEADLESS && ( this . stage . smoothed = this . antialias , c . Canvas . addToDOM ( this . canvas , this . parent , ! 1 ) , c . Canvas . setTouchAction ( this . canvas ) ) } , update : function ( a ) { if ( this . time . update ( a ) , this . _spiralling > 1 && ! this . forceSingleUpdate ) this . time . time > this . _nextFpsNotification && ( this . _nextFpsNotification = this . time . time + 1e4 , this . fpsProblemNotifier . dispatch ( ) ) , this . _deltaTime = 0 , this . _spiralling = 0 , this . updateRender ( this . time . slowMotion * this . time . desiredFps ) ; else { var b = 1e3 * this . time . slowMotion / th
} , c . 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 . time - this . timeDown , this . timeDown = this . game . time . time , this . _holdSent = ! 1 , this . move ( a , ! 0 ) , this . positionDown . setTo ( this . x , this . y ) , ( this . game . input . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride === c . 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 !== this . targetObject && this . targetObject . _touchedHandler ( this ) , this } , update : function ( ) { this . active && ( this . dirty && ( this . game . input . interactiveItems . total > 0 && this . processInteractiveObjects ( ! 1 ) , this . dirty = ! 1 ) , this . _holdSent === ! 1 && this . duration >= this . game . input . holdRate && ( ( this . game . input . multiInputOverride == c . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride == c . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride == c . Input . TOUCH _OVERRIDES _MOUSE && 0 === this . game . input . currentPointers ) && this . game . input . onHold . dispatch ( this ) , this . _holdSent = ! 0 ) , this . game . input . recordPointerHistory && this . game . time . time >= this . _nextDrop && ( this . _nextDrop = this . game . time . time + this . game . input . recordRate , this . _history . push ( { x : this . position . x , y : this . position . y } ) , this . _history . length > this . game . input . recordLimit && this . _history . shift ( ) ) ) } , move : function ( a , b ) { if ( ! this . game . input . pollLocked ) { if ( "undefined" == typeof b && ( b = ! 1 ) , "undefined" != typeof a . button && ( this . button = a . button ) , this . clientX = a . clientX , this . clientY = a . clientY , this . pageX = a . pageX , this . pageY = a . pageY , this . screenX = a . screenX , this . screenY = a . screenY , this . isMouse && this . game . input . mouse . locked && ! b && ( this . rawMovementX = a . movementX || a . mozMovementX || a . webkitMovementX || 0 , this . rawMovementY = a . movementY || a . mozMovementY || a . webkitMovementY || 0 , this . movementX += this . rawMovementX , this . movementY += this . rawMovementY ) , this . x = ( this . pageX - this . game . scale . offset . x ) * this . game . input . scale . x , this . y = ( this . pageY - this . game . scale . offset . y ) * this . game . input . scale . y , this . position . setTo ( this . x , this . y ) , this . circle . x = this . x , this . circle . y = this . y , ( this . game . input . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === this . game . input . currentPointers ) && ( this . game . input . activePointer = this , this . game . input . x = this . x , this . game . input . y = this . y , this . game . input . position . setTo ( this . game . input . x , this . game . input . y ) , this . game . input . circle . x = this . game . input . x , this . game . input . circle . y = this . game . input . y ) , this . withinGame = this . game . scale . bounds . contains ( this . pageX , this . pageY ) , this . game . paused ) return this ; for ( var d = this . game . input . moveCallbacks . length ; d -- ; ) this . game . input . moveCallbacks [ d ] . callback . call ( this . game . input . moveCallbacks [ d ] . context , this , this . x , this . y , b ) ; return null !== this . targetObject && this . targetObject . isDragged === ! 0 ? this . targetObject . update ( this ) === ! 1 && ( this . targetObject = null ) : this . game . input . interactiveItems . total > 0 && this . processInteractiveObjects ( b ) , this } } , processInteractiveObjects : function ( a ) { for ( var b = Number . MAX _VALUE , c = - 1 , d = null , e = this . game . input . interactiveItems . first ; e ; ) e . checked = ! 1 , e . validForInput ( c , b , ! 1 ) && ( e . checked = ! 0 , ( a && e . checkPointerDown ( this , ! 0 ) || ! a && e . checkPointerOver ( this , ! 0 ) ) && ( b = e . sprite . _cache [ 3 ] , c = e . priorityID , d = e ) ) , e = this . game . input . interactiveItems . next ; for ( var e = this . game . input . interactiveItems . first ; e ; ) ! e . checked && e . validForInput ( c , b , ! 0 ) && ( a && e . checkPointerDown ( this , ! 1 ) || ! a && e . checkPointerOver ( this , ! 1 ) ) && ( b = e . sprite . _cache [ 3 ] , c = e . priorityID , d = e ) , e = this . game . input . interac
} , 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 ) { "undefined" == typeof a && ( a = ! 1 ) , "undefined" == typeof b && ( b = ! 1 ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = 255 ) , "undefined" == typeof f && ( f = null ) , "undefined" == typeof 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 } , startDrag : function ( a ) { if ( this . isDragged = ! 0 , this . _draggedPointerID = a . id , this . _pointerData [ a . id ] . isDragged = ! 0 , this . sprite . fixedToCamera ) this . dragFromCenter ? ( this . sprite . centerOn ( a . x , a . y ) , this . _dragPoint . setTo ( this . sprite . cameraOffset . x - a . x , this . sprite . cameraOffset . y - a . y ) ) : this . _dragPoint . setTo ( this . sprite . cameraOffset . x - a . x , this . sprite . cameraOffset . y - a . y ) ; else { if ( this . dragFromCenter ) { var b = this . sprite . getBounds ( ) ; this . sprite . x = this . globalToLocalX ( a . x ) + ( this . sprite . x - b . centerX ) , this . sprite . y = this . globalToLocalY ( a . y ) + ( this . sprite . y - b . centerY ) } this . _dragPoint . setTo ( this . sprite . x - this . globalToLocalX ( a . x ) , this . sprite . y - this . globalToLocalY ( a . y ) ) } this . updateDrag ( a ) , this . bringToTop && ( this . _dragPhase = ! 0 , this . sprite . bringToTop ( ) ) , this . sprite . events . onDragStart . dispatch ( this . sprite , a ) } , globalToLocalX : function ( a ) { return this . scaleLayer && ( a -= this . game . scale . grid . boundsFluid . x , a *= this . game . scale . grid . scaleFluidInversed . x ) , a } , globalToLocalY : function ( a ) { return this . scaleLayer && ( a -= this . game . scale . grid . boundsFluid . y , a *= this . game . scale . grid . scaleFluidInversed . y ) , a } , stopDrag : function ( a ) { this . isDragged = ! 1 , this . _draggedPointerID = - 1 , this . _pointerData [ a . id ] . isDragged = ! 1 , this . _dragPhase = ! 1 , this . snapOnRelease && ( this . sprite . fixedToCamera ? ( this . sprite . cameraOffset . x = Math . round ( ( this . sprite . cameraOffset . x - this . snapOffsetX % this . snapX ) / this . snapX ) * this . snapX + this . snapOffsetX % this . snapX , this . sprite . cameraOffset . y = Math . round ( ( this . sprite . cameraOffset . y - this . snapOffsetY % this . snapY ) / this . snapY ) * this . snapY + this . snapOffsetY % this . snapY ) : ( this . sprite . x = Math . round ( ( this . sprite . x - this . snapOffsetX % this . snapX ) / this . snapX ) * this . snapX + this . snapOffsetX % this . snapX , this . sprite . y = Math . round ( ( this . sprite . y - this . snapOffsetY % this . snapY ) / this . snapY ) * this . snapY + this . snapOffsetY % this . snapY ) ) , this . sprite . events . onDragStop . dispatch ( this . sprite , a ) , this . checkPointerOver ( a ) === ! 1 && this . _pointerOutHandler ( a ) } , setDragLock : function ( a , b ) { "undefined" == typeof a && ( a = ! 0 ) , "undefined" == typeof b && ( b = ! 0 ) , this . allowHorizontalDrag = a , this . allowVerticalDrag = b } , enableSnap : function ( a , b , c , d , e , f ) { "undefined" == typeof c && ( c = ! 0 ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = 0 ) , this . snapX = a , this . snapY = b , this . snapOffsetX = e , this . snapOffsetY = f , this . snapOnDrag = c , this . snapOnRelease = d } , disableSnap : function ( ) { this . snapOnDrag = ! 1 , this . snapOnRelease = ! 1 } , checkBoundsRect : function ( ) { this . sprite . fixedToCamera ? ( this . sprite . cameraOffset . x < this . boundsRect . left ? this . sprite . cameraOffset . x = this . boundsRect . left : this . sprite . cameraOffset . x + this . sprite . width > this . boundsRect . right && ( this . sprite . cameraOffset . x = this . boundsRect . right - this . sprite . width ) , this . sprite . cameraOffset . y < this . boundsRect . top ? this . sprite . cameraOffset . y = this . boundsRect . top : this . sprite . cameraOffset . y + this . sprite . height > this . boundsRect . bottom && ( this . sprite . cameraOffset . y = this . boundsRect . bottom - this . sprite . height ) ) : ( this . sprite . x < this . boundsRect . left ? this . sprite . x = this . boundsRect . x : this . sprite . x + this . sprite . width > this . boundsRect . right && ( this . sprite . x = this . boundsRect . right - this . s
} , c . Sprite . prototype . play = function ( a , b , c , d ) { return this . animations ? this . animations . play ( a , b , c , d ) : void 0 } , c . Sprite . prototype . overlap = function ( a ) { return c . Rectangle . intersects ( this . getBounds ( ) , a . getBounds ( ) ) } , c . 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 ) ) } , c . Sprite . prototype . setScaleMinMax = function ( a , b , d , e ) { "undefined" == typeof b ? b = d = e = a : "undefined" == typeof d && ( d = e = b , b = a ) , null === a ? this . scaleMin = null : this . scaleMin ? this . scaleMin . set ( a , b ) : this . scaleMin = new c . Point ( a , b ) , null === d ? this . scaleMax = null : this . scaleMax ? this . scaleMax . set ( d , e ) : this . scaleMax = new c . Point ( d , e ) } , Object . defineProperty ( c . Sprite . prototype , "angle" , { get : function ( ) { return c . Math . wrapAngle ( c . Math . radToDeg ( this . rotation ) ) } , set : function ( a ) { this . rotation = c . Math . degToRad ( c . Math . wrapAngle ( a ) ) } } ) , Object . defineProperty ( c . Sprite . prototype , "deltaX" , { get : function ( ) { return this . world . x - this . _cache [ 0 ] } } ) , Object . defineProperty ( c . Sprite . prototype , "deltaY" , { get : function ( ) { return this . world . y - this . _cache [ 1 ] } } ) , Object . defineProperty ( c . Sprite . prototype , "deltaZ" , { get : function ( ) { return this . rotation - this . _cache [ 2 ] } } ) , Object . defineProperty ( c . Sprite . prototype , "inWorld" , { get : function ( ) { return this . game . world . bounds . intersects ( this . getBounds ( ) ) } } ) , Object . defineProperty ( c . Sprite . prototype , "inCamera" , { get : function ( ) { return this . game . world . camera . screenView . intersects ( this . getBounds ( ) ) } } ) , Object . defineProperty ( c . Sprite . prototype , "frame" , { get : function ( ) { return this . animations . frame } , set : function ( a ) { this . animations . frame = a } } ) , Object . defineProperty ( c . Sprite . prototype , "frameName" , { get : function ( ) { return this . animations . frameName } , set : function ( a ) { this . animations . frameName = a } } ) , Object . defineProperty ( c . Sprite . prototype , "renderOrderID" , { get : function ( ) { return this . _cache [ 3 ] } } ) , Object . defineProperty ( c . Sprite . prototype , "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 ( ) } } ) , Object . defineProperty ( c . Sprite . prototype , "exists" , { get : function ( ) { return ! ! this . _cache [ 6 ] } , set : function ( a ) { a ? ( this . _cache [ 6 ] = 1 , this . body && this . body . type === c . Physics . P2JS && this . body . addToWorld ( ) , this . visible = ! 0 ) : ( this . _cache [ 6 ] = 0 , this . body && this . body . type === c . Physics . P2JS && this . body . removeFromWorld ( ) , this . visible = ! 1 ) } } ) , Object . defineProperty ( c . Sprite . prototype , "fixedToCamera" , { get : function ( ) { return ! ! this . _cache [ 7 ] } , set : function ( a ) { a ? ( this . _cache [ 7 ] = 1 , this . cameraOffset . set ( this . x , this . y ) ) : this . _cache [ 7 ] = 0 } } ) , Object . defineProperty ( c . Sprite . prototype , "smoothed" , { get : function ( ) { return ! this . texture . baseTexture . scaleMode } , set : function ( a ) { a ? this . texture && ( this . texture . baseTexture . scaleMode = 0 ) : this . texture && ( this . texture . baseTexture . scaleMode = 1 ) } } ) , Object . defineProperty ( c . Sprite . prototype , "x" , { get : function ( ) { return this . position . x } , set : function ( a ) { this . position . x = a , this . body && this . body . type === c . Physics . ARCADE && 2 === this . body . phase && ( this . body . _reset = 1 ) } } ) , Object . defineProperty ( c . Sprite . prototype , "y" , { get : function ( ) { return this . position . y } , set : function ( a ) { this . position . y = a , this . body && this . body . type === c . Physics . ARCADE && 2 === this . body . phase && ( this . body . _reset = 1 ) } } ) , Object . defineProperty ( c . Sprite . prototype , "destroyPhase" , { get : function ( ) { return ! ! this . _cache [ 8 ] } } ) , c . Image = function ( a , b , d , e , f ) { b = b || 0 , d = d || 0 , e = e || null , f = f || null , this . game = a , this . exists = ! 0 , this . name = "" , this . type = c . IMAGE , this . z = 0 , this . events = new c . Events ( this ) , this . animations = new c . AnimationManager ( this ) , this . key = e , PIXI . Sprite . call ( this , PIXI . TextureCache . _ _default ) , this . transformCallback = this . checkTransform , this . transformCallbackContext = this , this . position . set ( b , d ) , this . world = new c . Point ( b , d ) , this . alive = ! 0 , this . autoCull = ! 1 , this . input = null , this . debug = ! 1 , this . cameraOffset = new c . Point , this . cropRect = null , this . _cache = [ 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 ] , this . _crop = null , this . _frame = null , this . _bounds = new
} , 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 ( c . 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 ( c . 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 ( c . 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 ( c . 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 ( c . 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 ( c . 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 ( c . Text . prototype , "wordWrap" , { get : function ( ) { return this . style . wordWrap } , set : function ( a ) { a !== this . style . wordWrap && ( this . style . wordWrap = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "wordWrapWidth" , { get : function ( ) { return this . style . wordWrapWidth } , set : function ( a ) { a !== this . style . wordWrapWidth && ( this . style . wordWrapWidth = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "lineSpacing" , { get : function ( ) { return this . _lineSpacing } , set : function ( a ) { a !== this . _lineSpacing && ( this . _lineSpacing = parseFloat ( a ) , this . dirty = ! 0 , this . parent && this . updateTransform ( ) ) } } ) , Object . defineProperty ( c . Text . prototype , "shadowOffsetX" , { get : function ( ) { return this . style . shadowOffsetX } , set : function ( a ) { a !== this . style . shadowOffsetX && ( this . style . shadowOffsetX = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "shadowOffsetY" , { get : function ( ) { return this . style . shadowOffsetY } , set : function ( a ) { a !== this . style . shadowOffsetY && ( this . style . shadowOffsetY = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "shadowColor" , { get : function ( ) { return this . style . shadowColor } , set : function ( a ) { a !== this . style . shadowColor && ( this . style . shadowColor = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "shadowBlur" , { get : function ( ) { return this . style . shadowBlur } , set : function ( a ) { a !== this . style . shadowBlur && ( this . style . shadowBlur = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( c . Text . prototype , "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 ( ) } } ) , Object . defineProperty ( c . Text . prototype , "fixedToCamera" , { get : function ( ) { return ! ! this . _cache [ 7 ] } , set : function ( a ) { a ? ( this . _cache [ 7 ] = 1 , this . cameraOffset . set ( this . x , this . y ) ) : this . _cache [ 7 ] = 0 } } ) , Object . defineProperty ( c . Text . prototype , "destroyPhase" , { get : function ( ) { return ! ! this . _cache [ 8 ] } } ) , c . BitmapText = function ( a , b , d , e , f , g ) { b = b || 0 , d = d || 0 , e = e || "" , f = f || "" , g = g || 32 , this . game = a , this . exists = ! 0 , this . name = "" , this . type = c . BITMAPTEXT , this . z = 0 , this . world = new c . Point ( b , d ) , this . _text = f , this . _font = e , this . _fontSize = g , this . _align = "left" , this . _tint = 16777215 , this . events = new c . Events ( this ) , this . input = null , this . cameraOffset = new c . Point , PIXI . BitmapText . call ( this , f ) , this . position . set ( b , d ) , this . _cache = [ 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 ] } , c . BitmapText . prototype = Object . create ( PIXI . BitmapText . prototype ) , c . BitmapText . prototype . constructor = c . BitmapText , c . BitmapText . prototype . setStyle = function ( ) { this . style = { align : this . _align } , this . fontName = this . _font , this . fontSize = this . _fontSize , this . dirty = ! 0 } , c . BitmapText . prototype . preUp
} catch ( c ) { } } function g ( ) { k . pixelRatio = window . devicePixelRatio || 1 , k . iPhone = - 1 != navigator . userAgent . toLowerCase ( ) . indexOf ( "iphone" ) , k . iPhone4 = 2 == k . pixelRatio && k . iPhone , k . iPad = - 1 != navigator . userAgent . toLowerCase ( ) . indexOf ( "ipad" ) , k . typedArray = "undefined" != typeof Int8Array ? ! 0 : ! 1 , "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array && "undefined" != typeof Uint32Array && ( k . littleEndian = h ( ) , k . LITTLE _ENDIAN = k . littleEndian ) , k . support32bit = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8ClampedArray && "undefined" != typeof Int32Array && null !== k . littleEndian && i ( ) , navigator . vibrate = navigator . vibrate || navigator . webkitVibrate || navigator . mozVibrate || navigator . msVibrate , navigator . vibrate && ( k . vibration = ! 0 ) } function h ( ) { 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 } function i ( ) { 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 } function j ( ) { 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 ) , k . css3D = void 0 !== a && a . length > 0 && "none" !== a } var k = this ; a ( ) , f ( ) , e ( ) , j ( ) , g ( ) , b ( ) , d ( ) , c ( ) } , c . Device . 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 } , c . Device . 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 } , c . Device . isAndroidStockBrowser = function ( ) { var a = window . navigator . userAgent . match ( /Android.*AppleWebKit\/([\d.]+)/ ) ; return a && a [ 1 ] < 537 } , c . 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 } , c . 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 } } , c . RequestAnimationFrame . prototype . constructor = c . RequestAnimationFrame , c . 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 = 0 , b = 0 ; b < arguments . length ; b ++ ) a += + arguments [ b ] ; return a / arguments . length } , truncate : function ( a ) { return Math . trunc ( a ) } , shear : function ( a ) { return a % 1 } , snapTo : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0
} , add : function ( a , b , d , e , f ) { return b = b || [ ] , d = d || 60 , "undefined" == typeof e && ( e = ! 1 ) , "undefined" == typeof f && ( f = b && "number" == typeof b [ 0 ] ? ! 0 : ! 1 ) , null === this . sprite . events . onAnimationStart && ( this . sprite . events . onAnimationStart = new c . Signal , this . sprite . events . onAnimationComplete = new c . Signal , this . sprite . events . onAnimationLoop = new c . Signal ) , this . _outputFrames . length = 0 , this . _frameData . getFrameIndexes ( b , f , this . _outputFrames ) , this . _anims [ a ] = new c . Animation ( this . game , this . sprite , a , this . _frameData , this . _outputFrames , d , e ) , this . currentAnim = this . _anims [ a ] , this . currentFrame = this . currentAnim . currentFrame , this . sprite . _ _tilePattern && ( this . sprite . _ _tilePattern = ! 1 , this . tilingTexture = ! 1 ) , this . _anims [ a ] } , 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 } } , c . AnimationManager . prototype . constructor = c . AnimationManager , Object . defineProperty ( c . AnimationManager . prototype , "frameData" , { get : function ( ) { return this . _frameData } } ) , Object . defineProperty ( c . AnimationManager . prototype , "frameTotal" , { get : function ( ) { return this . _frameData . total } } ) , Object . defineProperty ( c . AnimationManager . prototype , "paused" , { get : function ( ) { return this . currentAnim . isPaused } , set : function ( a ) { this . currentAnim . paused = a } } ) , Object . defineProperty ( c . AnimationManager . prototype , "name" , { get : function ( ) { return this . currentAnim ? this . currentAnim . name : void 0 } } ) , Object . defineProperty ( c . 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 ( c . 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 ) } } ) , c . Animation = function ( a , b , d , e , f , g , h ) { "undefined" == typeof h && ( h = ! 1 ) , this . game = a , this . _parent = b , this . _frameData = e , this . name = d , this . _frames = [ ] , this . _frames = this . _frames . concat ( f ) , this . delay = 1e3 / g , this . loop = h , this . loopCount = 0 , this . killOnComplete = ! 1 , this . isFinished = ! 1 , this . isPlaying = ! 1 , this . isPaused =
2014-11-17 14:14:50 +00:00
} , audio : function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 0 ) , this . addToFileList ( "audio" , a , b , { buffer : null , autoDecode : c } ) , this } , audiosprite : function ( a , b , c ) { return this . audio ( a , b ) , this . json ( a + "-audioatlas" , c ) , this } , tilemap : function ( a , b , d , e ) { if ( "undefined" == typeof b && ( b = null ) , "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = c . Tilemap . CSV ) , null == b && null == d ) return console . warn ( "Phaser.Loader.tilemap - Both url and data are null. One must be set." ) , this ; if ( d ) { switch ( e ) { case c . Tilemap . CSV : break ; case c . Tilemap . TILED _JSON : "string" == typeof d && ( d = JSON . parse ( d ) ) } this . game . cache . addTilemap ( a , null , d , e ) } else this . addToFileList ( "tilemap" , a , b , { format : e } ) ; return this } , physics : function ( a , b , d , e ) { return "undefined" == typeof b && ( b = null ) , "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = c . Physics . LIME _CORONA _JSON ) , null == b && null == d ? ( console . warn ( "Phaser.Loader.physics - Both url and data are null. One must be set." ) , this ) : ( d ? ( "string" == typeof d && ( d = JSON . parse ( d ) ) , this . game . cache . addPhysicsData ( a , null , d , e ) ) : this . addToFileList ( "physics" , a , b , { format : e } ) , this ) } , 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 , b , d , e ) { return this . atlas ( a , b , d , e , c . Loader . TEXTURE _ATLAS _JSON _ARRAY ) } , atlasJSONHash : function ( a , b , d , e ) { return this . atlas ( a , b , d , e , c . Loader . TEXTURE _ATLAS _JSON _HASH ) } , atlasXML : function ( a , b , d , e ) { return this . atlas ( a , b , d , e , c . Loader . TEXTURE _ATLAS _XML _STARLING ) } , atlas : function ( a , b , d , e , f ) { if ( "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = null ) , "undefined" == typeof f && ( f = c . Loader . TEXTURE _ATLAS _JSON _ARRAY ) , d ) this . addToFileList ( "textureatlas" , a , b , { atlasURL : d , format : f } ) ; else { switch ( f ) { case c . Loader . TEXTURE _ATLAS _JSON _ARRAY : "string" == typeof e && ( e = JSON . parse ( e ) ) ; break ; case c . Loader . TEXTURE _ATLAS _XML _STARLING : if ( "string" == typeof e ) { var g ; 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 , b , { 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 , b ) { if ( "undefined" == typeof b && ( b = ! 0 ) , ! this . _packList [ a ] ) return void console . warn ( "Phaser.Loader packLoadComplete invalid index " + a ) ; var d = this . _packList [ a ] ; if ( d . loaded = ! 0 , b ) 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 " im
2014-11-17 13:08:53 +00:00
"undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = a . length ) ; var d = b + Math . floor ( Math . random ( ) * c ) ; return a [ d ] || null } , removeRandomItem : function ( a , b , c ) { if ( null == a ) return null ; "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = a . length ) ; var d = b + Math . floor ( Math . random ( ) * c ) ; if ( d < a . length ) { var e = a . splice ( d , 1 ) ; return e [ 0 ] } return null } , 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 } , transposeMatrix : 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 } , rotateMatrix : function ( a , b ) { if ( "string" != typeof b && ( b = ( b % 360 + 360 ) % 360 ) , 90 === b || - 270 === b || "rotateLeft" === b ) a = c . ArrayUtils . transposeMatrix ( a ) , a = a . reverse ( ) ; else if ( - 90 === b || 270 === b || "rotateRight" === b ) a = a . reverse ( ) , a = c . ArrayUtils . transposeMatrix ( a ) ; else if ( 180 === Math . abs ( b ) || "rotate180" === b ) { for ( var d = 0 ; d < a . length ; d ++ ) a [ d ] . reverse ( ) ; a = a . reverse ( ) } return a } , findClosest : function ( a , b ) { if ( ! b . length ) return 0 / 0 ; if ( 1 === b . length || a < b [ 0 ] ) return b [ 0 ] ; for ( var c = 1 ; b [ c ] < a ; ) c ++ ; var d = b [ c - 1 ] , e = c < b . length ? b [ c ] : Number . POSITIVE _INFINITY ; return a - d >= e - a ? e : d } , rotate : function ( a ) { var b = a . shift ( ) ; return a . push ( b ) , b } , numberArray : function ( a , b ) { for ( var c = [ ] , d = a ; b >= d ; d ++ ) c . push ( d ) ; return c } , numberArrayStep : function ( a , b , d ) { a = + a || 0 ; var e = typeof b ; "number" !== e && "string" !== e || ! d || d [ b ] !== a || ( b = d = null ) , d = null == d ? 1 : + d || 0 , null === b ? ( b = a , a = 0 ) : b = + b || 0 ; for ( var f = - 1 , g = Math . max ( c . Math . roundAwayFromZero ( ( b - a ) / ( d || 1 ) ) , 0 ) , h = new Array ( g ) ; ++ f < g ; ) h [ f ] = a , a += d ; return h } } , c . Utils . Debug = function ( a ) { this . game = a , this . sprite = null , this . bmd = null , this . canvas = null , this . context = null , this . font = "14px Courier" , this . columnWidth = 100 , this . lineHeight = 16 , this . renderShadow = ! 0 , this . currentX = 0 , this . currentY = 0 , this . currentAlpha = 1 , this . dirty = ! 1 } , c . Utils . Debug . prototype = { boot : function ( ) { this . game . renderType === c . CANVAS ? this . context = this . game . context : ( this . bmd = this . game . make . bitmapData ( this . game . width , this . game . height ) , this . sprite = this . game . make . image ( 0 , 0 , this . bmd ) , this . game . stage . addChild ( this . sprite ) , this . canvas = c . Canvas . create ( this . game . width , this . game . height , "" , ! 0 ) , this . context = this . canvas . getContext ( "2d" ) ) } , preUpdate : function ( ) { this . dirty && this . sprite && ( this . bmd . clear ( ) , this . bmd . draw ( this . canvas , 0 , 0 ) , this . context . clearRect ( 0 , 0 , this . game . width , this . game . height ) , this . dirty = ! 1 ) } , reset : function ( ) { this . context && this . context . clearRect ( 0 , 0 , this . game . width , this . game . height ) , this . sprite && this . bmd . clear ( ) } , start : function ( a , b , c , d ) { "number" != typeof a && ( a = 0 ) , "number" != typeof b && ( b = 0 ) , c = c || "rgb(255,255,255)" , "undefined" == typeof d && ( d = 0 ) , this . currentX = a , this . currentY = b , this . currentColor = c , this . currentAlpha = this . context . globalAlpha , this . columnWidth = d , this . dirty = ! 0 , this . context . save ( ) , this . context . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) , this . context . strokeStyle = c , this . context . fillStyle = c , this . context . font = this . font , this . context . globalAlpha = 1 } , stop : function ( ) { this . context . restore ( ) , this . context . globalAlpha = this . currentAlpha } , line : function ( ) { for ( var a = this . currentX , b = 0 ; b < arguments . length ; b ++ ) this . renderShadow && ( this . context . fillStyle = "rgb(0,0,0)" , this . context . fillText ( arguments [ b ] , a + 1 , this . currentY + 1 ) , this . context . fillStyle = this . currentColor ) , this . context . fillText ( arguments [ b ] , a , this . currentY ) , a += this . columnWidth ; this . currentY += this . lineHeight } , soundInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Sound: " + a . key + " Locked: " + a . game . sound . touchLocked ) , this . line ( "Is Ready?: " + this . game . cache . isSoundReady ( a . key ) + " Pending Playback: " + a . pendingPlayback ) , this . line ( "Decoded: " + a . isDecoded + " Decoding: " + a . isDecoding ) , this . line ( "Total Duration: " + a . totalDuration + " Playing: " + a . isPlaying ) , this . line ( "Time: " + a . currentTime ) , this . line ( "Volume: " + a . volume + " Muted: " + a . mute ) , this . line ( "WebAudio: " + a . usingWebAudio + " Audio: " + a . usingAudioTag ) , "" !== a . currentMarker && ( this . line ( "Marker: " + a . currentMarker + " Duration: " + a . duration + " (ms: " + a . durationMS + ")" ) , this . line ( "Start: " + a . markers [ a . currentMarker ] . start + " Stop: " + a . markers [ a . currentMarker ] . stop ) , this . line ( "Position: " + a . position ) ) , this . stop ( ) } , cameraInfo : function ( a , b , c , d ) { t
} , moveToPointer : function ( a , b , c , d ) { return "undefined" == typeof b && ( b = 60 ) , c = c || this . game . input . activePointer , "undefined" == typeof d && ( d = 0 ) , this . _angle = this . angleToPointer ( a , c ) , d > 0 && ( b = this . distanceToPointer ( a , c ) / ( d / 1e3 ) ) , a . body . velocity . x = Math . cos ( this . _angle ) * b , a . body . velocity . y = Math . sin ( this . _angle ) * b , this . _angle } , moveToXY : function ( a , b , c , d , e ) { return "undefined" == typeof d && ( d = 60 ) , "undefined" == typeof e && ( e = 0 ) , this . _angle = Math . atan2 ( c - a . y , b - a . x ) , e > 0 && ( d = this . distanceToXY ( a , b , c ) / ( e / 1e3 ) ) , a . body . velocity . x = Math . cos ( this . _angle ) * d , a . body . velocity . y = Math . sin ( this . _angle ) * d , this . _angle } , velocityFromAngle : function ( a , b , d ) { return "undefined" == typeof b && ( b = 60 ) , d = d || new c . Point , d . setTo ( Math . cos ( this . game . math . degToRad ( a ) ) * b , Math . sin ( this . game . math . degToRad ( a ) ) * b ) } , velocityFromRotation : function ( a , b , d ) { return "undefined" == typeof b && ( b = 60 ) , d = d || new c . Point , d . setTo ( Math . cos ( a ) * b , Math . sin ( a ) * b ) } , accelerationFromRotation : function ( a , b , d ) { return "undefined" == typeof b && ( b = 60 ) , d = d || new c . Point , d . setTo ( Math . cos ( a ) * b , Math . sin ( a ) * b ) } , accelerateToObject : function ( a , b , c , d , e ) { return "undefined" == typeof c && ( c = 60 ) , "undefined" == typeof d && ( d = 1e3 ) , "undefined" == typeof e && ( e = 1e3 ) , this . _angle = this . angleBetween ( a , b ) , a . body . acceleration . setTo ( Math . cos ( this . _angle ) * c , Math . sin ( this . _angle ) * c ) , a . body . maxVelocity . setTo ( d , e ) , this . _angle } , accelerateToPointer : function ( a , b , c , d , e ) { return "undefined" == typeof c && ( c = 60 ) , "undefined" == typeof b && ( b = this . game . input . activePointer ) , "undefined" == typeof d && ( d = 1e3 ) , "undefined" == typeof e && ( e = 1e3 ) , this . _angle = this . angleToPointer ( a , b ) , a . body . acceleration . setTo ( Math . cos ( this . _angle ) * c , Math . sin ( this . _angle ) * c ) , a . body . maxVelocity . setTo ( d , e ) , this . _angle } , accelerateToXY : function ( a , b , c , d , e , f ) { return "undefined" == typeof d && ( d = 60 ) , "undefined" == typeof e && ( e = 1e3 ) , "undefined" == typeof f && ( f = 1e3 ) , this . _angle = this . angleToXY ( a , b , c ) , a . body . acceleration . setTo ( Math . cos ( this . _angle ) * d , Math . sin ( this . _angle ) * d ) , a . body . maxVelocity . setTo ( e , f ) , this . _angle } , distanceBetween : function ( a , b ) { return this . _dx = a . x - b . x , this . _dy = a . y - b . y , Math . sqrt ( this . _dx * this . _dx + this . _dy * this . _dy ) } , distanceToXY : function ( a , b , c ) { return this . _dx = a . x - b , this . _dy = a . y - c , Math . sqrt ( this . _dx * this . _dx + this . _dy * this . _dy ) } , distanceToPointer : function ( a , b ) { return b = b || this . game . input . activePointer , this . _dx = a . x - b . x , this . _dy = a . y - b . y , Math . sqrt ( this . _dx * this . _dx + this . _dy * this . _dy ) } , angleBetween : function ( a , b ) { return this . _dx = b . x - a . x , this . _dy = b . y - a . y , Math . atan2 ( this . _dy , this . _dx ) } , angleToXY : function ( a , b , c ) { return this . _dx = b - a . x , this . _dy = c - a . y , Math . atan2 ( this . _dy , this . _dx ) } , angleToPointer : function ( a , b ) { return b = b || this . game . input . activePointer , this . _dx = b . worldX - a . x , this . _dy = b . worldY - a . y , Math . atan2 ( this . _dy , this . _dx ) } } , c . Physics . Arcade . Body = function ( a ) { this . sprite = a , this . game = a . game , this . type = c . Physics . ARCADE , this . enable = ! 0 , this . offset = new c . Point , this . position = new c . Point ( a . x , a . y ) , this . prev = new c . Point ( this . position . x , this . position . y ) , this . allowRotation = ! 0 , this . rotation = a . rotation , this . preRotation = a . rotation , this . sourceWidth = a . texture . frame . width , this . sourceHeight = a . texture . frame . height , this . width = a . width , this . height = a . height , this . halfWidth = Math . abs ( a . width / 2 ) , this . halfHeight = Math . abs ( a . height / 2 ) , this . center = new c . Point ( a . x + this . halfWidth , a . y + this . halfHeight ) , this . velocity = new c . Point , this . newVelocity = new c . Point ( 0 , 0 ) , this . deltaMax = new c . Point ( 0 , 0 ) , this . acceleration = new c . Point , this . drag = new c . Point , this . allowGravity = ! 0 , this . gravity = new c . Point ( 0 , 0 ) , this . bounce = new c . Point , this . maxVelocity = new c . Point ( 1e4 , 1e4 ) , this . angularVelocity = 0 , this . angularAcceleration = 0 , this . angularDrag = 0 , this . maxAngular = 1e3 , this . mass = 1 , this . angle = 0 , this . speed = 0 , this . facing = c . NONE , this . immovable = ! 1 , this . moves = ! 0 , this . customSeparateX = ! 1 , this . customSeparateY = ! 1 , this . overlapX = 0 , this . overlapY = 0 , this . embedded = ! 1 , this . collideWorldBounds = ! 1 , this . checkCollision = { none : ! 1 , any : ! 0 , up : ! 0 , down : ! 0 , left : ! 0 , right : ! 0 } , this . touching = { none : ! 0 , up : ! 1 , down : ! 1 , left : ! 1 , right : ! 1 } , this . wasTouching = { none : ! 0 , up : ! 1 , down : ! 1 , left : ! 1 , right : ! 1 } , this . blocked = { up : ! 1 , down : ! 1 , left : ! 1 , right : ! 1 } , this . tilePadding = new c . Point , this . phase = 0 , this . skipQuadTree = ! 1 , this . _reset = ! 0 , this . _s
return this . _results } , paste : function ( a , b , c , d ) { if ( "undefined" == typeof a && ( a = 0 ) , "undefined" == typeof b && ( b = 0 ) , d = this . getLayer ( d ) , c && ! ( c . length < 2 ) ) { for ( var e = c [ 1 ] . x - a , f = c [ 1 ] . y - b , 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 . copy ( a , b , d , e , f ) , ! ( this . _results . length < 2 ) ) { for ( var g = [ ] , h = 1 ; h < this . _results . length ; h ++ ) this . _results [ h ] . index && g . push ( this . _results [ h ] . index ) ; c . Utils . shuffle ( g ) ; for ( var i = 1 ; i < this . _results . length ; i ++ ) this . _results [ i ] . index = g [ i - 1 ] ; this . paste ( a , b , this . _results , f ) } } , fill : function ( a , b , c , d , e , f ) { if ( f = this . getLayer ( f ) , this . copy ( b , c , d , e , f ) , ! ( this . _results . length < 2 ) ) { for ( var g = 1 ; g < this . _results . length ; g ++ ) this . _results [ g ] . index = a ; this . paste ( b , c , this . _results , f ) } } , removeAllLayers : function ( ) { this . layers . length = 0 , this . currentLayer = 0 } , dump : function ( ) { for ( var a = "" , b = [ "" ] , c = 0 ; c < this . layers [ this . currentLayer ] . height ; c ++ ) { for ( var d = 0 ; d < this . layers [ this . currentLayer ] . width ; d ++ ) a += "%c " , b . push ( this . layers [ this . currentLayer ] . data [ c ] [ d ] > 1 ? this . debugMap [ this . layers [ this . currentLayer ] . data [ c ] [ d ] ] ? "background: " + this . debugMap [ this . layers [ this . currentLayer ] . data [ c ] [ d ] ] : "background: #ffffff" : "background: rgb(0, 0, 0)" ) ; a += "\n" } b [ 0 ] = a , console . log . apply ( console , b ) } , destroy : function ( ) { this . removeAllLayers ( ) , this . data = [ ] , this . game = null } } , c . Tilemap . prototype . constructor = c . Tilemap , Object . defineProperty ( c . Tilemap . prototype , "layer" , { get : function ( ) { return this . layers [ this . currentLayer ] } , set : function ( a ) { a !== this . currentLayer && this . setLayer ( a ) } } ) , c . TilemapLayer = function ( a , b , d , e , f ) { e |= 0 , f |= 0 , this . game = a , this . map = b , this . index = d , this . layer = b . layers [ d ] , this . canvas = c . Canvas . create ( e , f , "" , ! 0 ) , this . context = this . canvas . getContext ( "2d" ) , this . baseTexture = new PIXI . BaseTexture ( this . canvas ) , this . texture = new PIXI . Texture ( this . baseTexture ) , this . textureFrame = new c . Frame ( 0 , 0 , 0 , e , f , "tilemapLayer" , a . rnd . uuid ( ) ) , c . Image . call ( this , this . game , 0 , 0 , this . texture , this . textureFrame ) , this . name = "" , this . type = c . TILEMAPLAYER , this . fixedToCamera = ! 0 , this . cameraOffset = new c . Point ( 0 , 0 ) , this . renderSettings = { enableScrollDelta : ! 0 , overdrawRatio : . 2 } , this . debug = ! 1 , this . debugSettings = { missingImageFill : "rgb(255,255,255)" , debuggedTileOverfill : "rgba(0,255,0,0.4)" , forceFullRedraw : ! 0 , debugAlpha : . 5 , facingEdgeStroke : "rgba(0,255,0,1)" , collidingTileOverfill : "rgba(0,255,0,0.2)" } , this . scrollFactorX = 1 , this . scrollFactorY = 1 , this . dirty = ! 0 , this . rayStepRate = 4 , this . _wrap = ! 1 , this . _mc = { scrollX : 0 , scrollY : 0 , renderWidth : 0 , renderHeight : 0 , tileWidth : b . tileWidth , tileHeight : b . tileHeight , cw : b . tileWidth , ch : b . tileHeight , tilesets : [ ] } , this . _scrollX = 0 , this . _scrollY = 0 , this . _results = [ ] } , c . TilemapLayer . prototype = Object . create ( c . Image . prototype ) , c . TilemapLayer . prototype . constructor = c . TilemapLayer , Object . defineProperty ( c . TilemapLayer . prototype , "tileColor" , { get : function ( ) { return this . debugSettings . missingImageFill } , set : function ( a ) { this . debugSettings . missingImageFill = a } } ) , c . TilemapLayer . prototype . postUpdate = function ( ) { c . Image . prototype . postUpdate . call ( this ) ; var a = this . game .