2016-02-18 14:41:53 +00:00
/* Phaser v2.4.6 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */
2016-02-12 16:00:36 +00:00
2016-02-18 14:41:53 +00:00
( function ( ) { function a ( a , b ) { this . _scaleFactor = a , this . _deltaMode = b , this . originalEvent = null } var b = this , c = c || { VERSION : "2.4.6" , GAMES : [ ] , AUTO : 0 , CANVAS : 1 , WEBGL : 2 , HEADLESS : 3 , NONE : 0 , LEFT : 1 , RIGHT : 2 , UP : 3 , DOWN : 4 , SPRITE : 0 , BUTTON : 1 , IMAGE : 2 , GRAPHICS : 3 , TEXT : 4 , TILESPRITE : 5 , BITMAPTEXT : 6 , GROUP : 7 , RENDERTEXTURE : 8 , TILEMAP : 9 , TILEMAPLAYER : 10 , EMITTER : 11 , POLYGON : 12 , BITMAPDATA : 13 , CANVAS _FILTER : 14 , WEBGL _FILTER : 15 , ELLIPSE : 16 , SPRITEBATCH : 17 , RETROFONT : 18 , POINTER : 19 , ROPE : 20 , CIRCLE : 21 , RECTANGLE : 22 , LINE : 23 , MATRIX : 24 , POINT : 25 , ROUNDEDRECTANGLE : 26 , CREATURE : 27 , VIDEO : 28 , PENDING _ATLAS : - 1 , blendModes : { NORMAL : 0 , ADD : 1 , MULTIPLY : 2 , SCREEN : 3 , OVERLAY : 4 , DARKEN : 5 , LIGHTEN : 6 , COLOR _DODGE : 7 , COLOR _BURN : 8 , HARD _LIGHT : 9 , SOFT _LIGHT : 10 , DIFFERENCE : 11 , EXCLUSION : 12 , HUE : 13 , SATURATION : 14 , COLOR : 15 , LUMINOSITY : 16 } , scaleModes : { DEFAULT : 0 , LINEAR : 0 , NEAREST : 1 } , PIXI : PIXI || { } } ; if ( Math . trunc || ( Math . trunc = function ( a ) { return 0 > a ? Math . ceil ( a ) : Math . floor ( a ) } ) , Function . prototype . bind || ( Function . prototype . bind = function ( ) { var a = Array . prototype . slice ; return function ( b ) { function c ( ) { var f = e . concat ( a . call ( arguments ) ) ; d . apply ( this instanceof c ? this : b , f ) } var d = this , e = a . call ( arguments , 1 ) ; if ( "function" != typeof d ) throw new TypeError ; return c . prototype = function f ( a ) { return a && ( f . prototype = a ) , this instanceof f ? void 0 : new f } ( d . prototype ) , c } } ( ) ) , Array . isArray || ( Array . isArray = function ( a ) { return "[object Array]" == Object . prototype . toString . call ( a ) } ) , Array . prototype . forEach || ( Array . prototype . forEach = function ( a ) { "use strict" ; if ( void 0 === this || null === this ) throw new TypeError ; var b = Object ( this ) , c = b . length >>> 0 ; if ( "function" != typeof a ) throw new TypeError ; for ( var d = arguments . length >= 2 ? arguments [ 1 ] : void 0 , e = 0 ; c > e ; e ++ ) e in b && a . call ( d , b [ e ] , e , b ) } ) , "function" != typeof window . Uint32Array && "object" != typeof window . Uint32Array ) { var d = function ( a ) { var b = new Array ; window [ a ] = function ( a ) { if ( "number" == typeof a ) { Array . call ( this , a ) , this . length = a ; for ( var b = 0 ; b < this . length ; b ++ ) this [ b ] = 0 } else { Array . call ( this , a . length ) , this . length = a . length ; for ( var b = 0 ; b < this . length ; b ++ ) this [ b ] = a [ b ] } } , window [ a ] . prototype = b , window [ a ] . constructor = window [ a ] } ; d ( "Uint32Array" ) , d ( "Int16Array" ) } window . console || ( window . console = { } , window . console . log = window . console . assert = function ( ) { } , window . console . warn = window . console . assert = function ( ) { } ) , c . Utils = { getProperty : function ( a , b ) { for ( var c = b . split ( "." ) , d = c . pop ( ) , e = c . length , f = 1 , g = c [ 0 ] ; e > f && ( a = a [ g ] ) ; ) g = c [ f ] , f ++ ; return a ? a [ d ] : null } , setProperty : function ( a , b , c ) { for ( var d = b . split ( "." ) , e = d . pop ( ) , f = d . length , g = 1 , h = d [ 0 ] ; f > g && ( a = a [ h ] ) ; ) h = d [ g ] , g ++ ; return a && ( a [ e ] = c ) , a } , chanceRoll : function ( a ) { return void 0 === a && ( a = 50 ) , a > 0 && 100 * Math . random ( ) <= a } , randomChoice : function ( a , b ) { return Math . random ( ) < . 5 ? a : b } , parseDimension : function ( a , b ) { var c = 0 , d = 0 ; return "string" == typeof a ? "%" === a . substr ( - 1 ) ? ( c = parseInt ( a , 10 ) / 100 , d = 0 === b ? window . innerWidth * c : window . innerHeight * c ) : d = parseInt ( a , 10 ) : d = a , d } , pad : function ( a , b , c , d ) { if ( void 0 === b ) var b = 0 ; if ( void 0 === c ) var c = " " ; if ( void 0 === d ) var d = 3 ; var e = 0 ; if ( b + 1 >= a . length ) switch ( d ) { case 1 : a = new Array ( b + 1 - a . length ) . join ( c ) + a ; break ; case 3 : var f = Math . ceil ( ( e = b - a . length ) / 2 ) , g = e - f ; a = new Array ( g + 1 ) . join ( c ) + a + new Array ( f + 1 ) . join ( c ) ; break ; default : a += new Array ( b + 1 - a . length ) . join ( c ) } return a } , isPlainObject : function ( a ) { if ( "object" != typeof a || a . nodeType || a === a . window ) return ! 1 ; try { if ( a . constructor && ! { } . hasOwnProperty . call ( a . constructor . prototype , "isPrototypeOf" ) ) return ! 1 } catch ( b ) { return ! 1 } return ! 0 } , extend : function ( ) { var a , b , d , e , f , g , h = arguments [ 0 ] || { } , i = 1 , j = arguments . length , k = ! 1 ; for ( "boolean" == typeof h && ( k = h , h = arguments [ 1 ] || { } , i = 2 ) , j === i && ( h = this , -- i ) ; j > i ; i ++ ) if ( null != ( a = arguments [ i ] ) ) for ( b in a ) d = h [ b ] , e = a [ b ] , h !== e && ( k && e && ( c . Utils . isPlainObject ( e ) || ( f = Array . isArray ( e ) ) ) ? ( f ? ( f = ! 1 , g = d && Array . isArray ( d ) ? d : [ ] ) : g = d && c . Utils . isPlainObject ( d ) ? d : { } , h [ b ] = c . Utils . extend ( k , g , e ) ) : void 0 !== e && ( h [ b ] = e ) ) ; return h } , mixinPrototype : function ( a , b , c ) { void 0 === c && ( c = ! 1 ) ; for ( var d = Object . keys ( b ) , e = 0 ; e < d . length ; e ++ ) { var f = d [ e ] , g = b [ f ] ; ! c && f in a || ( ! g || "function" != typeof g . get && "function" != typeof g . set ? a [ f ] = g : "function" == typeof g . clone ? a [ f ] = g . clone ( ) : Object . defineProperty ( a , f , g ) ) } } , mixin : function ( a , b ) { if ( ! a || "object" != typeof a ) return b ; for ( var d in a ) { var e = a [ d
this . view . right >= this . bounds . right * this . scale . x && ( this . atLimit . x = ! 0 , this . view . x = this . bounds . right * this . scale . x - this . width ) , this . view . y <= this . bounds . top * this . scale . y && ( this . atLimit . y = ! 0 , this . view . y = this . bounds . top * this . scale . y ) , this . view . bottom >= this . bounds . bottom * this . scale . y && ( this . atLimit . y = ! 0 , this . view . y = this . bounds . bottom * this . scale . y - this . height ) } , setPosition : function ( a , b ) { this . view . x = a , this . view . y = b , this . bounds && this . checkBounds ( ) } , setSize : function ( a , b ) { this . view . width = a , this . view . height = b } , reset : function ( ) { this . target = null , this . view . x = 0 , this . view . y = 0 } } , c . Camera . prototype . constructor = c . Camera , Object . defineProperty ( c . Camera . prototype , "x" , { get : function ( ) { return this . view . x } , set : function ( a ) { this . view . x = a , this . bounds && this . checkBounds ( ) } } ) , Object . defineProperty ( c . Camera . prototype , "y" , { get : function ( ) { return this . view . y } , set : function ( a ) { this . view . y = a , this . bounds && this . checkBounds ( ) } } ) , Object . defineProperty ( c . Camera . prototype , "position" , { get : function ( ) { return this . _position . set ( this . view . centerX , this . view . centerY ) , this . _position } , set : function ( a ) { "undefined" != typeof a . x && ( this . view . x = a . x ) , "undefined" != typeof a . y && ( this . view . y = a . y ) , this . bounds && this . checkBounds ( ) } } ) , Object . defineProperty ( c . Camera . prototype , "width" , { get : function ( ) { return this . view . width } , set : function ( a ) { this . view . width = a } } ) , Object . defineProperty ( c . Camera . prototype , "height" , { get : function ( ) { return this . view . height } , set : function ( a ) { this . view . height = a } } ) , c . State = function ( ) { this . game = null , this . key = "" , this . add = null , this . make = null , this . camera = null , this . cache = null , this . input = null , this . load = null , this . math = null , this . sound = null , this . scale = null , this . stage = null , this . time = null , this . tweens = null , this . world = null , this . particles = null , this . physics = null , this . rnd = null } , c . State . prototype = { init : function ( ) { } , preload : function ( ) { } , loadUpdate : function ( ) { } , loadRender : function ( ) { } , create : function ( ) { } , update : function ( ) { } , preRender : function ( ) { } , render : function ( ) { } , resize : function ( ) { } , paused : function ( ) { } , resumed : function ( ) { } , pauseUpdate : function ( ) { } , shutdown : function ( ) { } } , c . State . prototype . constructor = c . State , c . StateManager = function ( a , b ) { this . game = a , this . states = { } , this . _pendingState = null , "undefined" != typeof b && null !== b && ( this . _pendingState = b ) , this . _clearWorld = ! 1 , this . _clearCache = ! 1 , this . _created = ! 1 , this . _args = [ ] , this . current = "" , this . onStateChange = new c . Signal , this . onInitCallback = null , this . onPreloadCallback = null , this . onCreateCallback = null , this . onUpdateCallback = null , this . onRenderCallback = null , this . onResizeCallback = null , this . onPreRenderCallback = null , this . onLoadUpdateCallback = null , this . onLoadRenderCallback = null , this . onPausedCallback = null , this . onResumedCallback = null , this . onPauseUpdateCallback = null , this . onShutDownCallback = null } , c . StateManager . prototype = { boot : function ( ) { this . game . onPause . add ( this . pause , this ) , this . game . onResume . add ( this . resume , this ) , null !== this . _pendingState && "string" != typeof this . _pendingState && this . add ( "default" , this . _pendingState , ! 0 ) } , add : function ( a , b , d ) { void 0 === d && ( d = ! 1 ) ; var e ; return b instanceof c . State ? e = b : "object" == typeof b ? ( e = b , e . game = this . game ) : "function" == typeof b && ( e = new b ( this . game ) ) , this . states [ a ] = e , d && ( this . game . isBooted ? this . start ( a ) : this . _pendingState = a ) , e } , remove : function ( a ) { this . current === a && ( this . callbackContext = null , this . onInitCallback = null , this . onShutDownCallback = null , this . onPreloadCallback = null , this . onLoadRenderCallback = null , this . onLoadUpdateCallback = null , this . onCreateCallback = null , this . onUpdateCallback = null , this . onPreRenderCallback = null , this . onRenderCallback = null , this . onResizeCallback = null , this . onPausedCallback = null , this . onResumedCallback = null , this . onPauseUpdateCallback = null ) , delete this . states [ a ] } , start : function ( a , b , c ) { void 0 === b && ( b = ! 0 ) , void 0 === c && ( c = ! 1 ) , this . checkState ( a ) && ( this . _pendingState = a , this . _clearWorld = b , this . _clearCache = c , arguments . length > 3 && ( this . _args = Array . prototype . splice . call ( arguments , 3 ) ) ) } , restart : function ( a , b ) { void 0 === a && ( a = ! 0 ) , void 0 === b && ( b = ! 1 ) , this . _pendingState = this . current , this . _clearWorld = a , this . _clearCache = b , arguments . length > 2 && ( this . _args = Array . prototype . slice . call ( arguments , 2 ) ) } , dummy : function ( ) { } , preUpdate : function ( ) { if ( this
return a [ this . _sortProperty ] < b [ this . _sortProperty ] ? 1 : a [ this . _sortProperty ] > b [ this . _sortProperty ] ? - 1 : 0 } , c . Group . prototype . iterate = function ( a , b , d , e , f , g ) { if ( d === c . Group . RETURN _TOTAL && 0 === this . children . length ) return 0 ; for ( var h = 0 , i = 0 ; i < this . children . length ; i ++ ) if ( this . children [ i ] [ a ] === b && ( h ++ , e && ( g ? ( g [ 0 ] = this . children [ i ] , e . apply ( f , g ) ) : e . call ( f , this . children [ i ] ) ) , d === c . Group . RETURN _CHILD ) ) return this . children [ i ] ; return d === c . Group . RETURN _TOTAL ? h : null } , c . Group . prototype . getFirstExists = function ( a , b , d , e , f , g ) { void 0 === b && ( b = ! 1 ) , "boolean" != typeof a && ( a = ! 0 ) ; var h = this . iterate ( "exists" , a , c . Group . RETURN _CHILD ) ; return null === h && b ? this . create ( d , e , f , g ) : this . resetChild ( h , d , e , f , g ) } , c . Group . prototype . getFirstAlive = function ( a , b , d , e , f ) { void 0 === a && ( a = ! 1 ) ; var g = this . iterate ( "alive" , ! 0 , c . Group . RETURN _CHILD ) ; return null === g && a ? this . create ( b , d , e , f ) : this . resetChild ( g , b , d , e , f ) } , c . Group . prototype . getFirstDead = function ( a , b , d , e , f ) { void 0 === a && ( a = ! 1 ) ; var g = this . iterate ( "alive" , ! 1 , c . Group . RETURN _CHILD ) ; return null === g && a ? this . create ( b , d , e , f ) : this . resetChild ( g , b , d , e , f ) } , c . Group . prototype . resetChild = function ( a , b , c , d , e ) { return null === a ? null : ( void 0 === b && ( b = null ) , void 0 === c && ( c = null ) , null !== b && null !== c && a . reset ( b , c ) , void 0 !== d && a . loadTexture ( d , e ) , a ) } , 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 ( void 0 === b && ( b = ! 1 ) , void 0 === 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 . removeFromHash ( a ) , this . updateZ ( ) , this . cursor === a && this . next ( ) , b && d && d . destroy ( ! 0 ) , ! 0 } , c . Group . prototype . moveAll = function ( a , b ) { if ( void 0 === b && ( b = ! 1 ) , this . children . length > 0 && a instanceof c . Group ) { do a . add ( this . children [ 0 ] , b ) ; while ( this . children . length > 0 ) ; this . hash = [ ] , this . cursor = null } return a } , c . Group . prototype . removeAll = function ( a , b ) { if ( void 0 === a && ( a = ! 1 ) , void 0 === 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 ] ) ; this . removeFromHash ( c ) , a && c && c . destroy ( ! 0 ) } while ( this . children . length > 0 ) ; this . hash = [ ] , this . cursor = null } } , c . Group . prototype . removeBetween = function ( a , b , c , d ) { if ( void 0 === b && ( b = this . children . length - 1 ) , void 0 === c && ( c = ! 1 ) , void 0 === d && ( d = ! 1 ) , 0 !== this . children . length ) { if ( a > b || 0 > a || b > this . children . length ) return ! 1 ; for ( var e = b ; e >= a ; ) { ! d && this . children [ e ] . events && this . children [ e ] . events . onRemovedFromGroup$dispatch ( this . children [ e ] , this ) ; var f = this . removeChild ( this . children [ e ] ) ; this . removeFromHash ( f ) , c && f && f . destroy ( ! 0 ) , this . cursor === this . children [ e ] && ( this . cursor = null ) , e -- } this . updateZ ( ) } } , c . Group . prototype . destroy = function ( a , b ) { null === this . game || this . ignoreDestroy || ( void 0 === a && ( a = ! 0 ) , void 0 === b && ( b = ! 1 ) , this . onDestroy . dispatch ( this , a , b ) , this . removeAll ( a ) , this . cursor = null , this . filters = null , this . pendingDestroy = ! 1 , b || ( this . parent && this . parent . removeChild ( this ) , this . game = null , this . exists = ! 1 ) ) } , Object . defineProperty ( c . Group . prototype , "total" , { get : function ( ) { return this . iterate ( "exists" , ! 0 , c . Group . RETURN _TOTAL ) } } ) , Object . defineProperty ( c . Group . prototype , "length" , { get : function ( ) { return this . children . length } } ) , Object . defineProperty ( c . Group . prototype , "angle" , { get : function ( ) { return c . Math . radToDeg ( this . rotation ) } , set : function ( a ) { this . rotation = c . Math . degToRad ( a ) } } ) , c . World = function ( a ) { c . Group . call ( this , a , null , "__world" , ! 1 ) , this . bounds = new c . Rectangle ( 0 , 0 , a . width , a . height ) , this . camera = null , this . _definedSize = ! 1 , this . _width = a . width , this . _height = a . height , this . game . state . onStateChange . add ( this . sta
this . input . enabled && this . enabled && ( a . identifier = a . pointerId , "mouse" === a . pointerType || 4 === a . pointerType ? this . input . mousePointer . start ( a ) : this . input . startPointer ( a ) ) } , onPointerMove : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . pointerMoveCallback && this . pointerMoveCallback . call ( this . callbackContext , a ) , this . input . enabled && this . enabled && ( a . identifier = a . pointerId , "mouse" === a . pointerType || 4 === a . pointerType ? this . input . mousePointer . move ( a ) : this . input . updatePointer ( a ) ) } , onPointerUp : function ( a ) { this . event = a , this . capture && a . preventDefault ( ) , this . pointerUpCallback && this . pointerUpCallback . call ( this . callbackContext , a ) , this . input . enabled && this . enabled && ( a . identifier = a . pointerId , "mouse" === a . pointerType || 4 === a . pointerType ? this . input . mousePointer . stop ( a ) : this . input . stopPointer ( a ) ) } , onPointerUpGlobal : function ( a ) { if ( "mouse" !== a . pointerType && 4 !== a . pointerType || this . input . mousePointer . withinGame ) { var b = this . input . getPointerFromIdentifier ( a . identifier ) ; b && b . withinGame && this . onPointerUp ( a ) } else this . onPointerUp ( a ) } , onPointerOut : function ( a ) { if ( this . event = a , this . capture && a . preventDefault ( ) , "mouse" === a . pointerType || 4 === a . pointerType ) this . input . mousePointer . withinGame = ! 1 ; else { var b = this . input . getPointerFromIdentifier ( a . identifier ) ; b && ( b . withinGame = ! 1 ) } this . input . mouse . mouseOutCallback && this . input . mouse . mouseOutCallback . call ( this . input . mouse . callbackContext , a ) , this . input . enabled && this . enabled && this . input . mouse . stopOnGameOut && ( a . identifier = 0 , b ? b . stop ( a ) : this . input . mousePointer . stop ( a ) ) } , onPointerOver : function ( a ) { if ( this . event = a , this . capture && a . preventDefault ( ) , "mouse" === a . pointerType || 4 === a . pointerType ) this . input . mousePointer . withinGame = ! 0 ; else { var b = this . input . getPointerFromIdentifier ( a . identifier ) ; b && ( b . withinGame = ! 0 ) } this . input . mouse . mouseOverCallback && this . input . mouse . mouseOverCallback . call ( this . input . mouse . callbackContext , a ) } , stop : function ( ) { var a = this . game . canvas ; a . removeEventListener ( "MSPointerDown" , this . _onMSPointerDown , ! 1 ) , a . removeEventListener ( "MSPointerMove" , this . _onMSPointerMove , ! 1 ) , a . removeEventListener ( "MSPointerUp" , this . _onMSPointerUp , ! 1 ) , a . removeEventListener ( "pointerdown" , this . _onMSPointerDown , ! 1 ) , a . removeEventListener ( "pointermove" , this . _onMSPointerMove , ! 1 ) , a . removeEventListener ( "pointerup" , this . _onMSPointerUp , ! 1 ) , window . removeEventListener ( "MSPointerUp" , this . _onMSPointerUpGlobal , ! 0 ) , a . removeEventListener ( "MSPointerOver" , this . _onMSPointerOver , ! 0 ) , a . removeEventListener ( "MSPointerOut" , this . _onMSPointerOut , ! 0 ) , window . removeEventListener ( "pointerup" , this . _onMSPointerUpGlobal , ! 0 ) , a . removeEventListener ( "pointerover" , this . _onMSPointerOver , ! 0 ) , a . removeEventListener ( "pointerout" , this . _onMSPointerOut , ! 0 ) } } , c . MSPointer . prototype . constructor = c . MSPointer , c . DeviceButton = function ( a , b ) { this . parent = a , this . game = a . game , this . event = null , this . isDown = ! 1 , this . isUp = ! 0 , this . timeDown = 0 , this . timeUp = 0 , this . repeats = 0 , this . altKey = ! 1 , this . shiftKey = ! 1 , this . ctrlKey = ! 1 , this . value = 0 , this . buttonCode = b , this . onDown = new c . Signal , this . onUp = new c . Signal , this . onFloat = new c . Signal } , c . DeviceButton . prototype = { start : function ( a , b ) { this . isDown || ( this . isDown = ! 0 , this . isUp = ! 1 , this . timeDown = this . game . time . time , this . repeats = 0 , this . event = a , this . value = b , a && ( this . altKey = a . altKey , this . shiftKey = a . shiftKey , this . ctrlKey = a . ctrlKey ) , this . onDown . dispatch ( this , b ) ) } , stop : function ( a , b ) { this . isUp || ( this . isDown = ! 1 , this . isUp = ! 0 , this . timeUp = this . game . time . time , this . event = a , this . value = b , a && ( this . altKey = a . altKey , this . shiftKey = a . shiftKey , this . ctrlKey = a . ctrlKey ) , this . onUp . dispatch ( this , b ) ) } , padFloat : function ( a ) { this . value = a , this . onFloat . dispatch ( this , a ) } , justPressed : function ( a ) { return a = a || 250 , this . isDown && this . timeDown + a > this . game . time . time } , justReleased : function ( a ) { return a = a || 250 , this . isUp && this . timeUp + a > this . game . time . time } , reset : function ( ) { this . isDown = ! 1 , this . isUp = ! 0 , this . timeDown = this . game . time . time , this . repeats = 0 , this . altKey = ! 1 , this . shiftKey = ! 1 , this . ctrlKey = ! 1 } , destroy : function ( ) { this . onDown . dispose ( ) , this . onUp . dispose ( ) , this . onFloat . dispose ( ) , this . parent = null , this . game = null } } , c . DeviceButton . prototype . constructor = c . DeviceButton , Object . defineProperty ( c . DeviceButton . prototype , " duratio
} } , c . InputHandler . prototype . constructor = c . InputHandler , c . Gamepad = function ( a ) { this . game = a , this . _gamepadIndexMap = { } , this . _rawPads = [ ] , this . _active = ! 1 , this . enabled = ! 0 , this . _gamepadSupportAvailable = ! ! navigator . webkitGetGamepads || ! ! navigator . webkitGamepads || - 1 != navigator . userAgent . indexOf ( "Firefox/" ) || ! ! navigator . getGamepads , this . _prevRawGamepadTypes = [ ] , this . _prevTimestamps = [ ] , this . callbackContext = this , this . onConnectCallback = null , this . onDisconnectCallback = null , this . onDownCallback = null , this . onUpCallback = null , this . onAxisCallback = null , this . onFloatCallback = null , this . _ongamepadconnected = null , this . _gamepaddisconnected = null , this . _gamepads = [ new c . SinglePad ( a , this ) , new c . SinglePad ( a , this ) , new c . SinglePad ( a , this ) , new c . SinglePad ( a , this ) ] } , c . Gamepad . prototype = { addCallbacks : function ( a , b ) { "undefined" != typeof b && ( this . onConnectCallback = "function" == typeof b . onConnect ? b . onConnect : this . onConnectCallback , this . onDisconnectCallback = "function" == typeof b . onDisconnect ? b . onDisconnect : this . onDisconnectCallback , this . onDownCallback = "function" == typeof b . onDown ? b . onDown : this . onDownCallback , this . onUpCallback = "function" == typeof b . onUp ? b . onUp : this . onUpCallback , this . onAxisCallback = "function" == typeof b . onAxis ? b . onAxis : this . onAxisCallback , this . onFloatCallback = "function" == typeof b . onFloat ? b . onFloat : this . onFloatCallback , this . callbackContext = a ) } , start : function ( ) { if ( ! this . _active ) { this . _active = ! 0 ; var a = this ; this . _onGamepadConnected = function ( b ) { return a . onGamepadConnected ( b ) } , this . _onGamepadDisconnected = function ( b ) { return a . onGamepadDisconnected ( b ) } , window . addEventListener ( "gamepadconnected" , this . _onGamepadConnected , ! 1 ) , window . addEventListener ( "gamepaddisconnected" , this . _onGamepadDisconnected , ! 1 ) } } , onGamepadConnected : function ( a ) { var b = a . gamepad ; this . _rawPads . push ( b ) , this . _gamepads [ b . index ] . connect ( b ) } , onGamepadDisconnected : function ( a ) { var b = a . gamepad ; for ( var c in this . _rawPads ) this . _rawPads [ c ] . index === b . index && this . _rawPads . splice ( c , 1 ) ; this . _gamepads [ b . index ] . disconnect ( ) } , update : function ( ) { this . _pollGamepads ( ) , this . pad1 . pollStatus ( ) , this . pad2 . pollStatus ( ) , this . pad3 . pollStatus ( ) , this . pad4 . pollStatus ( ) } , _pollGamepads : function ( ) { if ( navigator . getGamepads ) var a = navigator . getGamepads ( ) ; else if ( navigator . webkitGetGamepads ) var a = navigator . webkitGetGamepads ( ) ; else if ( navigator . webkitGamepads ) var a = navigator . webkitGamepads ( ) ; if ( a ) { this . _rawPads = [ ] ; for ( var b = ! 1 , c = 0 ; c < a . length && ( typeof a [ c ] !== this . _prevRawGamepadTypes [ c ] && ( b = ! 0 , this . _prevRawGamepadTypes [ c ] = typeof a [ c ] ) , a [ c ] && this . _rawPads . push ( a [ c ] ) , 3 !== c ) ; c ++ ) ; if ( b ) { for ( var d , e = { rawIndices : { } , padIndices : { } } , f = 0 ; f < this . _gamepads . length ; f ++ ) if ( d = this . _gamepads [ f ] , d . connected ) for ( var g = 0 ; g < this . _rawPads . length ; g ++ ) this . _rawPads [ g ] . index === d . index && ( e . rawIndices [ d . index ] = ! 0 , e . padIndices [ f ] = ! 0 ) ; for ( var h = 0 ; h < this . _gamepads . length ; h ++ ) if ( d = this . _gamepads [ h ] , ! e . padIndices [ h ] ) { this . _rawPads . length < 1 && d . disconnect ( ) ; for ( var i = 0 ; i < this . _rawPads . length && ! e . padIndices [ h ] ; i ++ ) { var j = this . _rawPads [ i ] ; if ( j ) { if ( e . rawIndices [ j . index ] ) { d . disconnect ( ) ; continue } d . connect ( j ) , e . rawIndices [ j . index ] = ! 0 , e . padIndices [ h ] = ! 0 } else d . disconnect ( ) } } } } } , setDeadZones : function ( a ) { for ( var b = 0 ; b < this . _gamepads . length ; b ++ ) this . _gamepads [ b ] . deadZone = a } , stop : function ( ) { this . _active = ! 1 , window . removeEventListener ( "gamepadconnected" , this . _onGamepadConnected ) , window . removeEventListener ( "gamepaddisconnected" , this . _onGamepadDisconnected ) } , reset : function ( ) { this . update ( ) ; for ( var a = 0 ; a < this . _gamepads . length ; a ++ ) this . _gamepads [ a ] . reset ( ) } , justPressed : function ( a , b ) { for ( var c = 0 ; c < this . _gamepads . length ; c ++ ) if ( this . _gamepads [ c ] . justPressed ( a , b ) === ! 0 ) return ! 0 ; return ! 1 } , justReleased : function ( a , b ) { for ( var c = 0 ; c < this . _gamepads . length ; c ++ ) if ( this . _gamepads [ c ] . justReleased ( a , b ) === ! 0 ) return ! 0 ; return ! 1 } , isDown : function ( a ) { for ( var b = 0 ; b < this . _gamepads . length ; b ++ ) if ( this . _gamepads [ b ] . isDown ( a ) === ! 0 ) return ! 0 ; return ! 1 } , destroy : function ( ) { this . stop ( ) ; for ( var a = 0 ; a < this . _gamepads . length ; a ++ ) this . _gamepads [ a ] . destroy ( ) } } , c . Gamepad . prototype . constructor = c . Gamepad , Object . defineProperty ( c . Gamepad . prototype , "active" , { get : function ( ) { return this . _active } } ) , Object . defineProperty ( c . Gamepad . prototype
this . previousRotation = this . rotation , this . _exists && this . parent . exists ? ! 0 : ( this . renderOrderID = - 1 , ! 1 ) ) } , c . Component . PhysicsBody . postUpdate = function ( ) { this . exists && this . body && this . body . postUpdate ( ) } , c . Component . PhysicsBody . prototype = { body : null , x : { get : function ( ) { return this . position . x } , set : function ( a ) { this . position . x = a , this . body && ! this . body . dirty && ( this . body . _reset = ! 0 ) } } , y : { get : function ( ) { return this . position . y } , set : function ( a ) { this . position . y = a , this . body && ! this . body . dirty && ( this . body . _reset = ! 0 ) } } } , c . Component . Reset = function ( ) { } , c . Component . Reset . prototype . reset = function ( a , b , c ) { return void 0 === c && ( c = 1 ) , this . world . set ( a , b ) , this . position . set ( a , b ) , this . fresh = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . renderable = ! 0 , this . components . InWorld && ( this . _outOfBoundsFired = ! 1 ) , this . components . LifeSpan && ( this . alive = ! 0 , this . health = c ) , this . components . PhysicsBody && this . body && this . body . reset ( a , b , ! 1 , ! 1 ) , this } , c . Component . ScaleMinMax = function ( ) { } , c . Component . ScaleMinMax . prototype = { transformCallback : null , transformCallbackContext : this , scaleMin : null , scaleMax : null , 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 ) ) } , setScaleMinMax : function ( a , b , d , e ) { void 0 === b ? b = d = e = a : void 0 === 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 ) , null === this . scaleMin ? this . transformCallback = null : ( this . transformCallback = this . checkTransform , this . transformCallbackContext = this ) } } , c . Component . Smoothed = function ( ) { } , c . Component . Smoothed . 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 ) } } } , c . GameObjectFactory = function ( a ) { this . game = a , this . world = this . game . world } , c . GameObjectFactory . prototype = { existing : function ( a ) { return this . world . add ( a ) } , image : function ( a , b , d , e , f ) { return void 0 === f && ( f = this . world ) , f . add ( new c . Image ( this . game , a , b , d , e ) ) } , sprite : function ( a , b , c , d , e ) { return void 0 === e && ( e = this . world ) , e . create ( a , b , c , d ) } , creature : function ( a , b , d , e , f ) { void 0 === f && ( f = this . world ) ; var g = new c . Creature ( this . game , a , b , d , e ) ; return f . add ( g ) , g } , tween : function ( a ) { return this . game . tweens . create ( a ) } , group : function ( a , b , d , e , f ) { return new c . Group ( this . game , a , b , d , e , f ) } , physicsGroup : function ( a , b , d , e ) { return new c . Group ( this . game , b , d , e , ! 0 , a ) } , spriteBatch : function ( a , b , d ) { return void 0 === a && ( a = null ) , void 0 === b && ( b = "group" ) , void 0 === d && ( d = ! 1 ) , new c . SpriteBatch ( this . game , a , b , d ) } , audio : function ( a , b , c , d ) { return this . game . sound . add ( a , b , c , d ) } , sound : function ( a , b , c , d ) { return this . game . sound . add ( a , b , c , d ) } , audioSprite : function ( a ) { return this . game . sound . addSprite ( a ) } , tileSprite : function ( a , b , d , e , f , g , h ) { return void 0 === h && ( h = this . world ) , h . add ( new c . TileSprite ( this . game , a , b , d , e , f , g ) ) } , rope : function ( a , b , d , e , f , g ) { return void 0 === g && ( g = this . world ) , g . add ( new c . Rope ( this . game , a , b , d , e , f ) ) } , text : function ( a , b , d , e , f ) { return void 0 === f && ( f = this . world ) , f . add ( new c . Text ( this . game , a , b , d , e ) ) } , button : function ( a , b , d , e , f , g , h , i , j , k ) { return void 0 === k && ( k = this . world ) , k . add ( new c . Button ( this . game , a , b , d , e , f , g , h , i , j ) ) } , graphics : function ( a , b , d ) { return void 0 === d && ( d = this . world ) , d . add ( new c . Graphics ( this . game , a , b ) ) } , emitter : function ( a , b , d ) { return this . game . particles . add ( new c . Particles . Arcade . Emitter ( this . game , a , b , d ) ) } , retroFont : function ( a , b , d , e , f , g , h , i , j ) { return new c . RetroFont ( this . game , a , b , d , e , f , g , h , i , j ) } , bitmapText : function ( a , b , d , e , f , g ) { return void 0 === g && ( g = this . world ) , g . add ( new c . BitmapText ( this . game , a , b , d , e , f ) ) } , tilemap : function ( a , b , d , e , f ) { return new c . Tilemap ( this . game , a , b , d , e , f ) } , renderTexture : function ( a , b , d , e ) { ( void 0 === d || "" === d ) && ( d = this . game . rnd . uuid ( ) ) , void 0 === e && ( e = ! 1 ) ; var f = new c . RenderTexture ( this . game , a , b , d ) ; return e && this . game . cache . addRenderTexture ( d , f ) , f } , video : function ( a , b ) { return new c . Video ( this . game , a , b ) } , bitmapData : function ( a , b , d , e ) { void 0 === e
void 0 === c && ( c = 0 ) ; var d = this . getBounds ( ) ; d . width += c , d . height += c ; var e = new PIXI . CanvasBuffer ( d . width * a , d . height * a ) , f = PIXI . Texture . fromCanvas ( e . canvas , b ) ; return f . baseTexture . resolution = a , e . context . scale ( a , a ) , e . context . translate ( - d . x , - d . y ) , PIXI . CanvasGraphics . renderGraphics ( this , e . context ) , f } , PIXI . Graphics . prototype . _renderWebGL = function ( a ) { if ( this . visible !== ! 1 && 0 !== this . alpha && this . isMask !== ! 0 ) { if ( this . _cacheAsBitmap ) return ( this . dirty || this . cachedSpriteDirty ) && ( this . _generateCachedSprite ( ) , this . updateCachedSpriteTexture ( ) , this . cachedSpriteDirty = ! 1 , this . dirty = ! 1 ) , this . _cachedSprite . worldAlpha = this . worldAlpha , void PIXI . Sprite . prototype . _renderWebGL . call ( this . _cachedSprite , a ) ; if ( a . spriteBatch . stop ( ) , a . blendModeManager . setBlendMode ( this . blendMode ) , this . _mask && a . maskManager . pushMask ( this . _mask , a ) , this . _filters && a . filterManager . pushFilter ( this . _filterBlock ) , this . blendMode !== a . spriteBatch . currentBlendMode ) { a . spriteBatch . currentBlendMode = this . blendMode ; var b = PIXI . blendModesWebGL [ a . spriteBatch . currentBlendMode ] ; a . spriteBatch . gl . blendFunc ( b [ 0 ] , b [ 1 ] ) } if ( this . webGLDirty && ( this . dirty = ! 0 , this . webGLDirty = ! 1 ) , PIXI . WebGLGraphics . renderGraphics ( this , a ) , this . children . length ) { a . spriteBatch . start ( ) ; for ( var c = 0 ; c < this . children . length ; c ++ ) this . children [ c ] . _renderWebGL ( a ) ; a . spriteBatch . stop ( ) } this . _filters && a . filterManager . popFilter ( ) , this . _mask && a . maskManager . popMask ( this . mask , a ) , a . drawCount ++ , a . spriteBatch . start ( ) } } , PIXI . Graphics . prototype . _renderCanvas = function ( a ) { if ( this . visible !== ! 1 && 0 !== this . alpha && this . isMask !== ! 0 ) { if ( this . _prevTint !== this . tint && ( this . dirty = ! 0 , this . _prevTint = this . tint ) , this . _cacheAsBitmap ) return ( this . dirty || this . cachedSpriteDirty ) && ( this . _generateCachedSprite ( ) , this . updateCachedSpriteTexture ( ) , this . cachedSpriteDirty = ! 1 , this . dirty = ! 1 ) , this . _cachedSprite . alpha = this . alpha , void PIXI . Sprite . prototype . _renderCanvas . call ( this . _cachedSprite , a ) ; var b = a . context , c = this . worldTransform ; this . blendMode !== a . currentBlendMode && ( a . currentBlendMode = this . blendMode , b . globalCompositeOperation = PIXI . blendModesCanvas [ a . currentBlendMode ] ) , this . _mask && a . maskManager . pushMask ( this . _mask , a ) ; var d = a . resolution ; b . setTransform ( c . a * d , c . b * d , c . c * d , c . d * d , c . tx * d , c . ty * d ) , PIXI . CanvasGraphics . renderGraphics ( this , b ) ; for ( var e = 0 ; e < this . children . length ; e ++ ) this . children [ e ] . _renderCanvas ( a ) ; this . _mask && a . maskManager . popMask ( a ) } } , PIXI . Graphics . prototype . getBounds = function ( a ) { if ( ! this . _currentBounds ) { if ( ! this . renderable ) return PIXI . EmptyRectangle ; this . dirty && ( this . updateLocalBounds ( ) , this . webGLDirty = ! 0 , this . cachedSpriteDirty = ! 0 , this . dirty = ! 1 ) ; var b = this . _localBounds , c = b . x , d = b . width + b . x , e = b . y , f = b . height + b . y , g = a || this . worldTransform , h = g . a , i = g . b , j = g . c , k = g . d , l = g . tx , m = g . ty , n = h * d + j * f + l , o = k * f + i * d + m , p = h * c + j * f + l , q = k * f + i * c + m , r = h * c + j * e + l , s = k * e + i * c + m , t = h * d + j * e + l , u = k * e + i * d + m , v = n , w = o , x = n , y = o ; x = x > p ? p : x , x = x > r ? r : x , x = x > t ? t : x , y = y > q ? q : y , y = y > s ? s : y , y = y > u ? u : y , v = p > v ? p : v , v = r > v ? r : v , v = t > v ? t : v , w = q > w ? q : w , w = s > w ? s : w , w = u > w ? u : w , this . _bounds . x = x , this . _bounds . width = v - x , this . _bounds . y = y , this . _bounds . height = w - y , this . _currentBounds = this . _bounds } return this . _currentBounds } , PIXI . Graphics . prototype . containsPoint = function ( a ) { this . worldTransform . applyInverse ( a , tempPoint ) ; for ( var b = this . graphicsData , c = 0 ; c < b . length ; c ++ ) { var d = b [ c ] ; if ( d . fill && d . shape && d . shape . contains ( tempPoint . x , tempPoint . y ) ) return ! 0 } return ! 1 } , PIXI . Graphics . prototype . updateLocalBounds = function ( ) { var a = 1 / 0 , b = - ( 1 / 0 ) , d = 1 / 0 , e = - ( 1 / 0 ) ; if ( this . graphicsData . length ) for ( var f , g , h , i , j , k , l = 0 ; l < this . graphicsData . length ; l ++ ) { var m = this . graphicsData [ l ] , n = m . type , o = m . lineWidth ; if ( f = m . shape , n === PIXI . Graphics . RECT || n === PIXI . Graphics . RREC ) h = f . x - o / 2 , i = f . y - o / 2 , j = f . width + o , k = f . height + o , a = a > h ? h : a , b = h + j > b ? h + j : b , d = d > i ? i : d , e = i + k > e ? i + k : e ; else if ( n === PIXI . Graphics . CIRC ) h = f . x , i = f . y , j = f . radius + o / 2 , k = f . radius + o / 2 , a = a > h - j ? h - j : a , b = h + j > b ? h + j : b , d = d > i - k ? i - k : d , e = i + k > e ? i + k : e ; else if ( n === PIXI . Graphics . ELIP ) h = f . x , i = f . y , j = f . width + o / 2 , k = f . height + o / 2 , a = a > h - j ? h - j : a , b = h + j > b ? h + j : b , d = d > i - k ? i - k : d , e = i + k > e ? i + k : e ; else { g = f . points ; for ( var p = 0 ; p < g . length ; p ++ ) g [ p ] instanceof c . Point ? ( h = g [ p ] . x , i = g [ p ] . y ) : ( h = g [ p ] , i = g [ p + 1 ] , p < g . length - 1 && p ++ ) , a = a > h - o ? h - o : a , b = h + o > b ? h + o : b , d = d > i - o ? i - o : d , e = i + o > e ? i + o : e } } else a =
var a = this . text ; this . style . wordWrap && ( a = this . runWordWrap ( this . text ) ) ; for ( var b = a . split ( /(?:\r\n|\r|\n)/ ) , c = this . style . tabs , d = [ ] , e = 0 , f = this . determineFontProperties ( this . style . font ) , g = 0 ; g < b . length ; g ++ ) { if ( 0 === c ) { var h = this . context . measureText ( b [ g ] ) . width + this . style . strokeThickness + this . padding . x ; this . style . wordWrap && ( h -= this . context . measureText ( " " ) . width ) } else { var i = b [ g ] . split ( /(?:\t)/ ) , h = this . padding . x + this . style . strokeThickness ; if ( Array . isArray ( c ) ) for ( var j = 0 , k = 0 ; k < i . length ; k ++ ) { var l = Math . ceil ( this . context . measureText ( i [ k ] ) . width ) ; k > 0 && ( j += c [ k - 1 ] ) , h = j + l } else for ( var k = 0 ; k < i . length ; k ++ ) { h += Math . ceil ( this . context . measureText ( i [ k ] ) . width ) ; var m = this . game . math . snapToCeil ( h , c ) - h ; h += m } } d [ g ] = Math . ceil ( h ) , e = Math . max ( e , d [ g ] ) } this . canvas . width = e * this . _res ; var n = f . fontSize + this . style . strokeThickness + this . padding . y , o = n * b . length , p = this . _lineSpacing ; 0 > p && Math . abs ( p ) > n && ( p = - n ) , 0 !== p && ( o += p * b . length ) , this . canvas . height = o * this . _res , this . context . scale ( this . _res , this . _res ) , navigator . isCocoonJS && this . context . clearRect ( 0 , 0 , this . canvas . width , this . canvas . height ) , this . style . backgroundColor && ( this . context . fillStyle = this . style . backgroundColor , this . context . fillRect ( 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 . lineWidth = this . style . strokeThickness , this . context . lineCap = "round" , this . context . lineJoin = "round" ; var q , r ; for ( this . _charCount = 0 , g = 0 ; g < b . length ; g ++ ) q = this . style . strokeThickness / 2 , r = this . style . strokeThickness / 2 + g * n + f . ascent , g > 0 && ( r += p * g ) , "right" === this . style . align ? q += e - d [ g ] : "center" === this . style . align && ( q += ( e - d [ g ] ) / 2 ) , this . autoRound && ( q = Math . round ( q ) , r = Math . round ( r ) ) , this . colors . length > 0 || this . strokeColors . length > 0 || this . fontWeights . length > 0 || this . fontStyles . length > 0 ? this . updateLine ( b [ g ] , q , r ) : ( this . style . stroke && this . style . strokeThickness && ( this . updateShadow ( this . style . shadowStroke ) , 0 === c ? this . context . strokeText ( b [ g ] , q , r ) : this . renderTabLine ( b [ g ] , q , r , ! 1 ) ) , this . style . fill && ( this . updateShadow ( this . style . shadowFill ) , 0 === c ? this . context . fillText ( b [ g ] , q , r ) : this . renderTabLine ( b [ g ] , q , r , ! 0 ) ) ) ; this . updateTexture ( ) } , c . Text . prototype . renderTabLine = function ( a , b , c , d ) { var e = a . split ( /(?:\t)/ ) , f = this . style . tabs , g = 0 ; if ( Array . isArray ( f ) ) for ( var h = 0 , i = 0 ; i < e . length ; i ++ ) i > 0 && ( h += f [ i - 1 ] ) , g = b + h , d ? this . context . fillText ( e [ i ] , g , c ) : this . context . strokeText ( e [ i ] , g , c ) ; else for ( var i = 0 ; i < e . length ; i ++ ) { var j = Math . ceil ( this . context . measureText ( e [ i ] ) . width ) ; g = this . game . math . snapToCeil ( b , f ) , d ? this . context . fillText ( e [ i ] , g , c ) : this . context . strokeText ( e [ i ] , g , c ) , b = g + j } } , c . Text . prototype . updateShadow = function ( a ) { a ? ( 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 . shadowOffsetX = 0 , this . context . shadowOffsetY = 0 , this . context . shadowColor = 0 , this . context . shadowBlur = 0 ) } , c . Text . prototype . updateLine = function ( a , b , c ) { for ( var d = 0 ; d < a . length ; d ++ ) { var e = a [ d ] ; if ( this . fontWeights . length > 0 || this . fontStyles . length > 0 ) { var f = this . fontToComponents ( this . context . font ) ; this . fontStyles [ this . _charCount ] && ( f . fontStyle = this . fontStyles [ this . _charCount ] ) , this . fontWeights [ this . _charCount ] && ( f . fontWeight = this . fontWeights [ this . _charCount ] ) , this . context . font = this . componentsToFont ( f ) } this . style . stroke && this . style . strokeThickness && ( this . strokeColors [ this . _charCount ] && ( this . context . strokeStyle = this . strokeColors [ this . _charCount ] ) , this . updateShadow ( this . style . shadowStroke ) , this . context . strokeText ( e , b , c ) ) , this . style . fill && ( this . colors [ this . _charCount ] && ( this . context . fillStyle = this . colors [ this . _charCount ] ) , this . updateShadow ( this . style . shadowFill ) , this . context . fillText ( e , b , c ) ) , b += this . context . measureText ( e ) . width , this . _charCount ++ } } , c . Text . prototype . clearColors = function ( ) { return this . colors = [ ] , this . strokeColors = [ ] , this . dirty = ! 0 , this } , c . Text . prototype . clearFontValues = function ( ) { return this . fontStyles = [ ] , this . fontWeights = [ ] , this . dirty = ! 0 , this } , c . Text . prototype . addColor = function ( a , b ) { return this . colors [ b ] = a ,
( l . windowsPhone || /Windows NT/i . test ( a ) && /Touch/i . test ( a ) ) && ( l . desktop = ! 1 ) } function b ( ) { l . canvas = ! ! window . CanvasRenderingContext2D || l . cocoonJS ; try { l . localStorage = ! ! localStorage . getItem } catch ( a ) { l . localStorage = ! 1 } l . file = ! ! ( window . File && window . FileReader && window . FileList && window . Blob ) , l . fileSystem = ! ! window . requestFileSystem , l . webGL = function ( ) { try { var a = document . createElement ( "canvas" ) ; return a . screencanvas = ! 1 , ! ! window . WebGLRenderingContext && ( a . getContext ( "webgl" ) || a . getContext ( "experimental-webgl" ) ) } catch ( b ) { return ! 1 } } ( ) , l . webGL = ! ! l . webGL , l . worker = ! ! window . Worker , l . pointerLock = "pointerLockElement" in document || "mozPointerLockElement" in document || "webkitPointerLockElement" in document , l . quirksMode = "CSS1Compat" === document . compatMode ? ! 1 : ! 0 , navigator . getUserMedia = navigator . getUserMedia || navigator . webkitGetUserMedia || navigator . mozGetUserMedia || navigator . msGetUserMedia || navigator . oGetUserMedia , window . URL = window . URL || window . webkitURL || window . mozURL || window . msURL , l . getUserMedia = l . getUserMedia && ! ! navigator . getUserMedia && ! ! window . URL , l . firefox && l . firefoxVersion < 21 && ( l . getUserMedia = ! 1 ) , ! l . iOS && ( l . ie || l . firefox || l . chrome ) && ( l . canvasBitBltShift = ! 0 ) , ( l . safari || l . mobileSafari ) && ( l . canvasBitBltShift = ! 1 ) } function c ( ) { ( "ontouchstart" in document . documentElement || window . navigator . maxTouchPoints && window . navigator . maxTouchPoints >= 1 ) && ( l . touch = ! 0 ) , ( window . navigator . msPointerEnabled || window . navigator . pointerEnabled ) && ( l . mspointer = ! 0 ) , l . cocoonJS || ( "onwheel" in window || l . ie && "WheelEvent" in window ? l . wheelEvent = "wheel" : "onmousewheel" in window ? l . wheelEvent = "mousewheel" : l . firefox && "MouseScrollEvent" in window && ( l . wheelEvent = "DOMMouseScroll" ) ) } function d ( ) { for ( var a = [ "requestFullscreen" , "requestFullScreen" , "webkitRequestFullscreen" , "webkitRequestFullScreen" , "msRequestFullscreen" , "msRequestFullScreen" , "mozRequestFullScreen" , "mozRequestFullscreen" ] , b = document . createElement ( "div" ) , c = 0 ; c < a . length ; c ++ ) if ( b [ a [ c ] ] ) { l . fullscreen = ! 0 , l . requestFullscreen = a [ c ] ; break } var d = [ "cancelFullScreen" , "exitFullscreen" , "webkitCancelFullScreen" , "webkitExitFullscreen" , "msCancelFullScreen" , "msExitFullscreen" , "mozCancelFullScreen" , "mozExitFullscreen" ] ; if ( l . fullscreen ) for ( var c = 0 ; c < d . length ; c ++ ) if ( document [ d [ c ] ] ) { l . cancelFullscreen = d [ c ] ; break } window . Element && Element . ALLOW _KEYBOARD _INPUT && ( l . fullscreenKeyboard = ! 0 ) } function e ( ) { var a = navigator . userAgent ; if ( /Arora/ . test ( a ) ? l . arora = ! 0 : /Edge\/\d+/ . test ( a ) ? l . edge = ! 0 : /Chrome\/(\d+)/ . test ( a ) && ! l . windowsPhone ? ( l . chrome = ! 0 , l . chromeVersion = parseInt ( RegExp . $1 , 10 ) ) : /Epiphany/ . test ( a ) ? l . epiphany = ! 0 : /Firefox\D+(\d+)/ . test ( a ) ? ( l . firefox = ! 0 , l . firefoxVersion = parseInt ( RegExp . $1 , 10 ) ) : /AppleWebKit/ . test ( a ) && l . iOS ? l . mobileSafari = ! 0 : /MSIE (\d+\.\d+);/ . test ( a ) ? ( l . ie = ! 0 , l . ieVersion = parseInt ( RegExp . $1 , 10 ) ) : /Midori/ . test ( a ) ? l . midori = ! 0 : /Opera/ . test ( a ) ? l . opera = ! 0 : /Safari\/(\d+)/ . test ( a ) && ! l . windowsPhone ? ( l . safari = ! 0 , /Version\/(\d+)\./ . test ( a ) && ( l . safariVersion = parseInt ( RegExp . $1 , 10 ) ) ) : /Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/ . test ( a ) && ( l . ie = ! 0 , l . trident = ! 0 , l . tridentVersion = parseInt ( RegExp . $1 , 10 ) , l . ieVersion = parseInt ( RegExp . $3 , 10 ) ) , /Silk/ . test ( a ) && ( l . silk = ! 0 ) , navigator . standalone && ( l . webApp = ! 0 ) , "undefined" != typeof window . cordova && ( l . cordova = ! 0 ) , "undefined" != typeof process && "undefined" != typeof require && ( l . node = ! 0 ) , l . node && "object" == typeof process . versions && ( l . nodeWebkit = ! ! process . versions [ "node-webkit" ] , l . electron = ! ! process . versions . electron ) , navigator . isCocoonJS && ( l . cocoonJS = ! 0 ) , l . cocoonJS ) try { l . cocoonJSApp = "undefined" != typeof CocoonJS } catch ( b ) { l . cocoonJSApp = ! 1 } "undefined" != typeof window . ejecta && ( l . ejecta = ! 0 ) , /Crosswalk/ . test ( a ) && ( l . crosswalk = ! 0 ) } function f ( ) { var a = document . createElement ( "video" ) , b = ! 1 ; try { ( b = ! ! a . canPlayType ) && ( a . canPlayType ( 'video/ogg; codecs="theora"' ) . replace ( /^no$/ , "" ) && ( l . oggVideo = ! 0 ) , a . canPlayType ( 'video/mp4; codecs="avc1.42E01E"' ) . replace ( /^no$/ , "" ) && ( l . h264Video = ! 0 , l . mp4Video = ! 0 ) , a . canPlayType ( 'video/webm; codecs="vp8, vorbis"' ) . replace ( /^no$/ , "" ) && ( l . webmVideo = ! 0 ) , a . canPlayType ( 'video/webm; codecs="vp9"' ) . replace ( /^no$/ , "" ) && ( l . vp9Video = ! 0 ) , a . canPlayType ( 'application/x-mpegURL; codecs="avc1.42E01E"' ) . replace ( /^no$/ , "" ) && ( l . hlsVideo = ! 0 ) ) } catc
this . isRunning = ! 0 } var b = this . parent . frameBased ? this . game . time . physicsElapsedMS : this . game . time . elapsedMS ; this . parent . reverse ? ( this . dt -= b * this . parent . timeScale , this . dt = Math . max ( this . dt , 0 ) ) : ( this . dt += b * this . parent . timeScale , this . dt = Math . min ( this . dt , this . duration ) ) , this . percent = this . dt / this . duration , this . value = this . easingFunction ( this . percent ) ; for ( var d in this . vEnd ) { var e = this . vStart [ d ] , f = this . vEnd [ d ] ; Array . isArray ( f ) ? this . parent . target [ d ] = this . interpolationFunction . call ( this . interpolationContext , f , this . value ) : this . parent . target [ d ] = e + ( f - e ) * this . value } return ! this . parent . reverse && 1 === this . percent || this . parent . reverse && 0 === this . percent ? this . repeat ( ) : c . TweenData . RUNNING } , generateData : function ( a ) { this . parent . reverse ? this . dt = this . duration : this . dt = 0 ; var b = [ ] , c = ! 1 , d = 1 / a * 1e3 ; do { this . parent . reverse ? ( this . dt -= d , this . dt = Math . max ( this . dt , 0 ) ) : ( this . dt += d , this . dt = Math . min ( this . dt , this . duration ) ) , this . percent = this . dt / this . duration , this . value = this . easingFunction ( this . percent ) ; var e = { } ; for ( var f in this . vEnd ) { var g = this . vStart [ f ] , h = this . vEnd [ f ] ; Array . isArray ( h ) ? e [ f ] = this . interpolationFunction ( h , this . value ) : e [ f ] = g + ( h - g ) * this . value } b . push ( e ) , ( ! this . parent . reverse && 1 === this . percent || this . parent . reverse && 0 === this . percent ) && ( c = ! 0 ) } while ( ! c ) ; if ( this . yoyo ) { var i = b . slice ( ) ; i . reverse ( ) , b = b . concat ( i ) } return b } , repeat : function ( ) { if ( this . yoyo ) { if ( this . inReverse && 0 === this . repeatCounter ) { for ( var a in this . vStartCache ) this . vStart [ a ] = this . vStartCache [ a ] , this . vEnd [ a ] = this . vEndCache [ a ] ; return this . inReverse = ! 1 , c . TweenData . COMPLETE } this . inReverse = ! this . inReverse } else if ( 0 === this . repeatCounter ) return c . TweenData . COMPLETE ; if ( this . inReverse ) for ( var a in this . vStartCache ) this . vStart [ a ] = this . vEndCache [ a ] , this . vEnd [ a ] = this . vStartCache [ a ] ; else { for ( var a in this . vStartCache ) this . vStart [ a ] = this . vStartCache [ a ] , this . vEnd [ a ] = this . vEndCache [ a ] ; this . repeatCounter > 0 && this . repeatCounter -- } return this . startTime = this . game . time . time , this . yoyo && this . inReverse ? this . startTime += this . yoyoDelay : this . inReverse || ( this . startTime += this . repeatDelay ) , this . parent . reverse ? this . dt = this . duration : this . dt = 0 , c . TweenData . LOOPED } } , c . TweenData . prototype . constructor = c . TweenData , c . Easing = { Linear : { None : function ( a ) { return a } } , Quadratic : { In : function ( a ) { return a * a } , Out : function ( a ) { return a * ( 2 - a ) } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? . 5 * a * a : - . 5 * ( -- a * ( a - 2 ) - 1 ) } } , Cubic : { In : function ( a ) { return a * a * a } , Out : function ( a ) { return -- a * a * a + 1 } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? . 5 * a * a * a : . 5 * ( ( a -= 2 ) * a * a + 2 ) } } , Quartic : { In : function ( a ) { return a * a * a * a } , Out : function ( a ) { return 1 - -- a * a * a * a } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? . 5 * a * a * a * a : - . 5 * ( ( a -= 2 ) * a * a * a - 2 ) } } , Quintic : { In : function ( a ) { return a * a * a * a * a } , Out : function ( a ) { return -- a * a * a * a * a + 1 } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? . 5 * a * a * a * a * a : . 5 * ( ( a -= 2 ) * a * a * a * a + 2 ) } } , Sinusoidal : { In : function ( a ) { return 0 === a ? 0 : 1 === a ? 1 : 1 - Math . cos ( a * Math . PI / 2 ) } , Out : function ( a ) { return 0 === a ? 0 : 1 === a ? 1 : Math . sin ( a * Math . PI / 2 ) } , InOut : function ( a ) { return 0 === a ? 0 : 1 === a ? 1 : . 5 * ( 1 - Math . cos ( Math . PI * a ) ) } } , Exponential : { In : function ( a ) { return 0 === a ? 0 : Math . pow ( 1024 , a - 1 ) } , Out : function ( a ) { return 1 === a ? 1 : 1 - Math . pow ( 2 , - 10 * a ) } , InOut : function ( a ) { return 0 === a ? 0 : 1 === a ? 1 : ( a *= 2 ) < 1 ? . 5 * Math . pow ( 1024 , a - 1 ) : . 5 * ( - Math . pow ( 2 , - 10 * ( a - 1 ) ) + 2 ) } } , Circular : { In : function ( a ) { return 1 - Math . sqrt ( 1 - a * a ) } , Out : function ( a ) { return Math . sqrt ( 1 - -- a * a ) } , InOut : function ( a ) { return ( a *= 2 ) < 1 ? - . 5 * ( Math . sqrt ( 1 - a * a ) - 1 ) : . 5 * ( Math . sqrt ( 1 - ( a -= 2 ) * a ) + 1 ) } } , Elastic : { In : function ( a ) { var b , c = . 1 , d = . 4 ; return 0 === a ? 0 : 1 === a ? 1 : ( ! c || 1 > c ? ( c = 1 , b = d / 4 ) : b = d * Math . asin ( 1 / c ) / ( 2 * Math . PI ) , - ( c * Math . pow ( 2 , 10 * ( a -= 1 ) ) * Math . sin ( ( a - b ) * ( 2 * Math . PI ) / d ) ) ) } , Out : function ( a ) { var b , c = . 1 , d = . 4 ; return 0 === a ? 0 : 1 === a ? 1 : ( ! c || 1 > c ? ( c = 1 , b = d / 4 ) : b = d * Math . asin ( 1 / c ) / ( 2 * Math . PI ) , c * Math . pow ( 2 , - 10 * a ) * Math . sin ( ( a - b ) * ( 2 * Math . PI ) / d ) + 1 ) } , InOut : function ( a ) { var b , c = . 1 , d = . 4 ; return 0 === a ? 0 : 1 === a ? 1 : ( ! c || 1 > c ? ( c = 1 , b = d / 4 ) : b = d * Math . asin ( 1 / c ) / ( 2 * Math . PI ) , ( a *= 2 ) < 1 ? - . 5 * ( c * Math . pow ( 2 , 10 * ( a -= 1 ) ) * Math . sin ( ( a - b ) * ( 2 * Math . PI ) / d ) ) : c * Math . pow ( 2 , - 10 * ( a -= 1 ) ) * Math . sin ( ( a - b ) * ( 2 * Math . PI ) / d ) * . 5 + 1 ) } } , Back : { In : function ( a ) { var b = 1.70158 ; return a * a * ( ( b + 1 ) * a - b ) } , Out : function ( a ) { var b = 1.70158 ; return -- a * a * ( ( b + 1 ) * a + b ) + 1 } , InOut : function ( a ) { var b = 2.5949095 ; return ( a *= 2 ) < 1 ? . 5 * ( a * a *
} , addBitmapData : function ( a , b , d ) { return b . key = a , void 0 === d && ( d = new c . FrameData , d . addFrame ( b . textureFrame ) ) , this . _cache . bitmapData [ a ] = { data : b , frameData : d } , b } , addBitmapFont : function ( a , b , d , e , f , g , h ) { var i = { url : b , data : d , font : null , base : new PIXI . BaseTexture ( d ) } ; void 0 === g && ( g = 0 ) , void 0 === h && ( h = 0 ) , "json" === f ? i . font = c . LoaderParser . jsonBitmapFont ( e , i . base , g , h ) : i . font = c . LoaderParser . xmlBitmapFont ( e , i . base , g , h ) , this . _cache . bitmapFont [ a ] = i , this . _resolveURL ( b , i ) } , addJSON : function ( a , b , c ) { this . _cache . json [ a ] = { url : b , data : c } , this . _resolveURL ( b , this . _cache . json [ a ] ) } , addXML : function ( a , b , c ) { this . _cache . xml [ a ] = { url : b , data : c } , this . _resolveURL ( b , this . _cache . xml [ a ] ) } , addVideo : function ( a , b , c , d ) { this . _cache . video [ a ] = { url : b , data : c , isBlob : d , locked : ! 0 } , this . _resolveURL ( b , this . _cache . video [ a ] ) } , addShader : function ( a , b , c ) { this . _cache . shader [ a ] = { url : b , data : c } , this . _resolveURL ( b , this . _cache . shader [ a ] ) } , addRenderTexture : function ( a , b ) { this . _cache . renderTexture [ a ] = { texture : b , frame : new c . Frame ( 0 , 0 , 0 , b . width , b . height , "" , "" ) } } , addSpriteSheet : function ( a , b , d , e , f , g , h , i ) { void 0 === g && ( g = - 1 ) , void 0 === h && ( h = 0 ) , void 0 === i && ( i = 0 ) ; var j = { key : a , url : b , data : d , frameWidth : e , frameHeight : f , margin : h , spacing : i , base : new PIXI . BaseTexture ( d ) , frameData : c . AnimationParser . spriteSheet ( this . game , d , e , f , g , h , i ) } ; this . _cache . image [ a ] = j , this . _resolveURL ( b , j ) } , addTextureAtlas : function ( a , b , d , e , f ) { var g = { key : a , url : b , data : d , base : new PIXI . BaseTexture ( d ) } ; f === c . Loader . TEXTURE _ATLAS _XML _STARLING ? g . frameData = c . AnimationParser . XMLData ( this . game , e , a ) : f === c . Loader . TEXTURE _ATLAS _JSON _PYXEL ? g . frameData = c . AnimationParser . JSONDataPyxel ( this . game , e , a ) : Array . isArray ( e . frames ) ? g . frameData = c . AnimationParser . JSONData ( this . game , e , a ) : g . frameData = c . AnimationParser . JSONDataHash ( this . game , e , a ) , this . _cache . image [ a ] = g , this . _resolveURL ( b , g ) } , reloadSound : function ( a ) { var b = this , c = this . getSound ( a ) ; c && ( c . data . src = c . url , c . data . addEventListener ( "canplaythrough" , function ( ) { return b . reloadSoundComplete ( a ) } , ! 1 ) , c . data . load ( ) ) } , reloadSoundComplete : function ( a ) { var b = this . getSound ( a ) ; b && ( b . locked = ! 1 , this . onSoundUnlock . dispatch ( a ) ) } , updateSound : function ( a , b , c ) { var d = this . getSound ( a ) ; d && ( d [ b ] = c ) } , decodedSound : function ( a , b ) { var c = this . getSound ( a ) ; c . data = b , c . decoded = ! 0 , c . isDecoding = ! 1 } , isSoundDecoded : function ( a ) { var b = this . getItem ( a , c . Cache . SOUND , "isSoundDecoded" ) ; return b ? b . decoded : void 0 } , isSoundReady : function ( a ) { var b = this . getItem ( a , c . Cache . SOUND , "isSoundDecoded" ) ; return b ? b . decoded && ! this . game . sound . touchLocked : void 0 } , checkKey : function ( a , b ) { return this . _cacheMap [ a ] [ b ] ? ! 0 : ! 1 } , checkURL : function ( a ) { return this . _urlMap [ this . _resolveURL ( a ) ] ? ! 0 : ! 1 } , checkCanvasKey : function ( a ) { return this . checkKey ( c . Cache . CANVAS , a ) } , checkImageKey : function ( a ) { return this . checkKey ( c . Cache . IMAGE , a ) } , checkTextureKey : function ( a ) { return this . checkKey ( c . Cache . TEXTURE , a ) } , checkSoundKey : function ( a ) { return this . checkKey ( c . Cache . SOUND , a ) } , checkTextKey : function ( a ) { return this . checkKey ( c . Cache . TEXT , a ) } , checkPhysicsKey : function ( a ) { return this . checkKey ( c . Cache . PHYSICS , a ) } , checkTilemapKey : function ( a ) { return this . checkKey ( c . Cache . TILEMAP , a ) } , checkBinaryKey : function ( a ) { return this . checkKey ( c . Cache . BINARY , a ) } , checkBitmapDataKey : function ( a ) { return this . checkKey ( c . Cache . BITMAPDATA , a ) } , checkBitmapFontKey : function ( a ) { return this . checkKey ( c . Cache . BITMAPFONT , a ) } , checkJSONKey : function ( a ) { return this . checkKey ( c . Cache . JSON , a ) } , checkXMLKey : function ( a ) { return this . checkKey ( c . Cache . XML , a ) } , checkVideoKey : function ( a ) { return this . checkKey ( c . Cache . VIDEO , a ) } , checkShaderKey : function ( a ) { return this . checkKey ( c . Cache . SHADER , a ) } , checkRenderTextureKey : function ( a ) { return this . checkKey ( c . Cache . RENDER _TEXTURE , a ) } , getItem : function ( a , b , c , d ) { return this . checkKey ( b , a ) ? void 0 === d ? this . _cacheMap [ b ] [ a ] : this . _cacheMap [ b ] [ a ] [ d ] : ( c && console . warn ( "Phaser.Cache." + c + ': Key "' + a + '" not found in Cache.' ) , null ) } , getCanvas : function ( a ) { return this . getItem ( a , c . Cache . CANVAS , "getCanvas" , "canvas" ) } , getImage : function ( a , b ) { ( void 0 === a || null === a ) && ( a = "__default" ) , void 0 === b && ( b = ! 1 ) ; var d = this . getItem ( a , c . Cache . IMAGE , "getImage" ) ; return null === d && ( d = this . getItem ( "__missing" , c . Cache . IMAGE , "getImage" ) ) , b ? d : d . data } , getTextureFra
} ) , this . finalizeBitmapFont ( b , e ) } , finalizeBitmapFont : function ( a , b ) { return Object . keys ( b . chars ) . forEach ( function ( d ) { var e = b . chars [ d ] ; e . texture = new PIXI . Texture ( a , new c . Rectangle ( e . x , e . y , e . width , e . height ) ) } ) , b } } , c . AudioSprite = function ( a , b ) { this . game = a , this . key = b , this . config = this . game . cache . getJSON ( b + "-audioatlas" ) , this . autoplayKey = null , this . autoplay = ! 1 , this . sounds = { } ; for ( var c in this . config . spritemap ) { var d = this . config . spritemap [ c ] , e = this . game . add . sound ( this . key ) ; e . addMarker ( c , d . start , d . end - d . start , null , d . loop ) , this . sounds [ c ] = e } this . config . autoplay && ( this . autoplayKey = this . config . autoplay , this . play ( this . autoplayKey ) , this . autoplay = this . sounds [ this . autoplayKey ] ) } , c . AudioSprite . prototype = { play : function ( a , b ) { return void 0 === b && ( b = 1 ) , this . sounds [ a ] . play ( a , null , b ) } , stop : function ( a ) { if ( a ) this . sounds [ a ] . stop ( ) ; else for ( var b in this . sounds ) this . sounds [ b ] . stop ( ) } , get : function ( a ) { return this . sounds [ a ] } } , c . AudioSprite . prototype . constructor = c . AudioSprite , c . Sound = function ( a , b , d , e , f ) { void 0 === d && ( d = 1 ) , void 0 === e && ( e = ! 1 ) , void 0 === f && ( f = a . sound . connectToMaster ) , this . game = a , this . name = b , this . key = b , this . loop = e , this . volume = d , this . markers = { } , this . context = null , this . autoplay = ! 1 , this . totalDuration = 0 , this . startTime = 0 , this . currentTime = 0 , this . duration = 0 , this . durationMS = 0 , this . position = 0 , this . stopTime = 0 , this . paused = ! 1 , this . pausedPosition = 0 , this . pausedTime = 0 , this . isPlaying = ! 1 , this . currentMarker = "" , this . fadeTween = null , this . pendingPlayback = ! 1 , this . override = ! 1 , this . allowMultiple = ! 1 , this . usingWebAudio = this . game . sound . usingWebAudio , this . usingAudioTag = this . game . sound . usingAudioTag , this . externalNode = null , this . masterGainNode = null , this . gainNode = null , this . _sound = null , this . usingWebAudio ? ( this . context = this . game . sound . context , this . masterGainNode = this . game . sound . masterGain , void 0 === this . context . createGain ? this . gainNode = this . context . createGainNode ( ) : this . gainNode = this . context . createGain ( ) , this . gainNode . gain . value = d * this . game . sound . volume , f && this . gainNode . connect ( this . masterGainNode ) ) : this . usingAudioTag && ( this . game . cache . getSound ( b ) && this . game . cache . isSoundReady ( b ) ? ( this . _sound = this . game . cache . getSoundData ( b ) , this . totalDuration = 0 , this . _sound . duration && ( this . totalDuration = this . _sound . duration ) ) : this . game . cache . onSoundUnlock . add ( this . soundHasUnlocked , this ) ) , this . onDecoded = new c . Signal , this . onPlay = new c . Signal , this . onPause = new c . Signal , this . onResume = new c . Signal , this . onLoop = new c . Signal , this . onStop = new c . Signal , this . onMute = new c . Signal , this . onMarkerComplete = new c . Signal , this . onFadeComplete = new c . Signal , this . _volume = d , this . _buffer = null , this . _muted = ! 1 , this . _tempMarker = 0 , this . _tempPosition = 0 , this . _tempVolume = 0 , this . _muteVolume = 0 , this . _tempLoop = 0 , this . _paused = ! 1 , this . _onDecodedEventDispatched = ! 1 } , c . Sound . prototype = { soundHasUnlocked : function ( a ) { a === this . key && ( this . _sound = this . game . cache . getSoundData ( this . key ) , this . totalDuration = this . _sound . duration ) } , addMarker : function ( a , b , c , d , e ) { ( void 0 === d || null === d ) && ( d = 1 ) , void 0 === e && ( e = ! 1 ) , this . markers [ a ] = { name : a , start : b , stop : b + c , volume : d , duration : c , durationMS : 1e3 * c , loop : e } } , removeMarker : function ( a ) { delete this . markers [ a ] } , onEndedHandler : function ( ) { this . _sound . onended = null , this . isPlaying = ! 1 , this . currentTime = this . durationMS , this . stop ( ) } , update : function ( ) { return this . game . cache . checkSoundKey ( this . key ) ? ( this . isDecoded && ! this . _onDecodedEventDispatched && ( this . onDecoded . dispatch ( this ) , this . _onDecodedEventDispatched = ! 0 ) , this . pendingPlayback && this . game . cache . isSoundReady ( this . key ) && ( this . pendingPlayback = ! 1 , this . play ( this . _tempMarker , this . _tempPosition , this . _tempVolume , this . _tempLoop ) ) , void ( this . isPlaying && ( this . currentTime = this . game . time . time - this . startTime , this . currentTime >= this . durationMS && ( this . usingWebAudio ? this . loop ? ( this . onLoop . dispatch ( this ) , "" === this . currentMarker ? ( this . currentTime = 0 , this . startTime = this . game . time . time ) : ( this . onMarkerComplete . dispatch ( this . currentMarker , this ) , this . play ( this . currentMarker , 0 , this . volume , ! 0 , ! 0 ) ) ) : "" !== this . currentMarker && this . stop ( ) : this . loop ? ( this . onLoop . dispatch ( this ) , this . play ( this . currentMarker , 0 , this . volume , ! 0 , ! 0 ) ) : this . stop ( ) ) ) ) ) : void this . destroy ( ) } , loopFull : function ( a ) { this . play ( null , 0 , a , ! 0 ) } , play : f
this . cleanupCreatedTarget ( ) , this . updateLayout ( ) , this . queueUpdate ( ! 0 ) ) , this . onFullScreenChange . dispatch ( this , this . width , this . height ) } , fullScreenError : function ( a ) { this . event = a , this . cleanupCreatedTarget ( ) , console . warn ( "Phaser.ScaleManager: requestFullscreen failed or device does not support the Fullscreen API" ) , this . onFullScreenError . dispatch ( this ) } , scaleSprite : function ( a , b , c , d ) { if ( void 0 === b && ( b = this . width ) , void 0 === c && ( c = this . height ) , void 0 === d && ( d = ! 1 ) , ! a || ! a . scale ) return a ; if ( a . scale . x = 1 , a . scale . y = 1 , a . width <= 0 || a . height <= 0 || 0 >= b || 0 >= c ) return a ; var e = b , f = a . height * b / a . width , g = a . width * c / a . height , h = c , i = g > b ; return i = i ? d : ! d , i ? ( a . width = Math . floor ( e ) , a . height = Math . floor ( f ) ) : ( a . width = Math . floor ( g ) , a . height = Math . floor ( h ) ) , a } , destroy : function ( ) { this . game . onResume . remove ( this . _gameResumed , this ) , window . removeEventListener ( "orientationchange" , this . _orientationChange , ! 1 ) , window . removeEventListener ( "resize" , this . _windowResize , ! 1 ) , this . compatibility . supportsFullScreen && ( document . removeEventListener ( "webkitfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "mozfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "MSFullscreenChange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "fullscreenchange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "webkitfullscreenerror" , this . _fullScreenError , ! 1 ) , document . removeEventListener ( "mozfullscreenerror" , this . _fullScreenError , ! 1 ) , document . removeEventListener ( "MSFullscreenError" , this . _fullScreenError , ! 1 ) , document . removeEventListener ( "fullscreenerror" , this . _fullScreenError , ! 1 ) ) } } , c . ScaleManager . prototype . constructor = c . ScaleManager , Object . defineProperty ( c . ScaleManager . prototype , "boundingParent" , { get : function ( ) { if ( this . parentIsWindow || this . isFullScreen && ! this . _createdFullScreenTarget ) return null ; var a = this . game . canvas && this . game . canvas . parentNode ; return a || null } } ) , Object . defineProperty ( c . ScaleManager . prototype , "scaleMode" , { get : function ( ) { return this . _scaleMode } , set : function ( a ) { return a !== this . _scaleMode && ( this . isFullScreen || ( this . updateDimensions ( this . _gameSize . width , this . _gameSize . height , ! 0 ) , this . queueUpdate ( ! 0 ) ) , this . _scaleMode = a ) , this . _scaleMode } } ) , Object . defineProperty ( c . 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 ( c . ScaleManager . prototype , "currentScaleMode" , { get : function ( ) { return this . isFullScreen ? this . _fullScreenScaleMode : this . _scaleMode } } ) , Object . defineProperty ( c . ScaleManager . prototype , "pageAlignHorizontally" , { get : function ( ) { return this . _pageAlignHorizontally } , set : function ( a ) { a !== this . _pageAlignHorizontally && ( this . _pageAlignHorizontally = a , this . queueUpdate ( ! 0 ) ) } } ) , Object . defineProperty ( c . ScaleManager . prototype , "pageAlignVertically" , { get : function ( ) { return this . _pageAlignVertically } , set : function ( a ) { a !== this . _pageAlignVertically && ( this . _pageAlignVertically = a , this . queueUpdate ( ! 0 ) ) } } ) , Object . defineProperty ( c . ScaleManager . prototype , "isFullScreen" , { get : function ( ) { return ! ! ( document . fullscreenElement || document . webkitFullscreenElement || document . mozFullScreenElement || document . msFullscreenElement ) } } ) , Object . defineProperty ( c . ScaleManager . prototype , "isPortrait" , { get : function ( ) { return "portrait" === this . classifyOrientation ( this . screenOrientation ) } } ) , Object . defineProperty ( c . ScaleManager . prototype , "isLandscape" , { get : function ( ) { return "landscape" === this . classifyOrientation ( this . screenOrientation ) } } ) , Object . defineProperty ( c . ScaleManager . prototype , "isGamePortrait" , { get : function ( ) { return this . height > this . width } } ) , Object . defineProperty ( c . ScaleManager . prototype , "isGameLandscape" , { get : function ( ) { return this . width > this . height } } ) , 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 , th
var e = a + Math . round ( Math . random ( ) * ( b - a ) ) , f = a + Math . round ( Math . random ( ) * ( b - a ) ) , g = a + Math . round ( Math . random ( ) * ( b - a ) ) ; return c . Color . getColor32 ( d , e , f , g ) } , getRGB : function ( a ) { return a > 16777215 ? { alpha : a >>> 24 , red : a >> 16 & 255 , green : a >> 8 & 255 , blue : 255 & a , a : a >>> 24 , r : a >> 16 & 255 , g : a >> 8 & 255 , b : 255 & a } : { alpha : 255 , red : a >> 16 & 255 , green : a >> 8 & 255 , blue : 255 & a , a : 255 , r : a >> 16 & 255 , g : a >> 8 & 255 , b : 255 & a } } , getWebRGB : function ( a ) { if ( "object" == typeof a ) return "rgba(" + a . r . toString ( ) + "," + a . g . toString ( ) + "," + a . b . toString ( ) + "," + ( a . a / 255 ) . toString ( ) + ")" ; var b = c . Color . getRGB ( a ) ; return "rgba(" + b . r . toString ( ) + "," + b . g . toString ( ) + "," + b . b . toString ( ) + "," + ( b . a / 255 ) . toString ( ) + ")" } , getAlpha : function ( a ) { return a >>> 24 } , getAlphaFloat : function ( a ) { return ( a >>> 24 ) / 255 } , getRed : function ( a ) { return a >> 16 & 255 } , getGreen : function ( a ) { return a >> 8 & 255 } , getBlue : function ( a ) { return 255 & a } , blendNormal : function ( a ) { return a } , blendLighten : function ( a , b ) { return b > a ? b : a } , blendDarken : function ( a , b ) { return b > a ? a : b } , blendMultiply : function ( a , b ) { return a * b / 255 } , blendAverage : function ( a , b ) { return ( a + b ) / 2 } , blendAdd : function ( a , b ) { return Math . min ( 255 , a + b ) } , blendSubtract : function ( a , b ) { return Math . max ( 0 , a + b - 255 ) } , blendDifference : function ( a , b ) { return Math . abs ( a - b ) } , blendNegation : function ( a , b ) { return 255 - Math . abs ( 255 - a - b ) } , blendScreen : function ( a , b ) { return 255 - ( ( 255 - a ) * ( 255 - b ) >> 8 ) } , blendExclusion : function ( a , b ) { return a + b - 2 * a * b / 255 } , blendOverlay : function ( a , b ) { return 128 > b ? 2 * a * b / 255 : 255 - 2 * ( 255 - a ) * ( 255 - b ) / 255 } , blendSoftLight : function ( a , b ) { return 128 > b ? 2 * ( ( a >> 1 ) + 64 ) * ( b / 255 ) : 255 - 2 * ( 255 - ( ( a >> 1 ) + 64 ) ) * ( 255 - b ) / 255 } , blendHardLight : function ( a , b ) { return c . Color . blendOverlay ( b , a ) } , blendColorDodge : function ( a , b ) { return 255 === b ? b : Math . min ( 255 , ( a << 8 ) / ( 255 - b ) ) } , blendColorBurn : function ( a , b ) { return 0 === b ? b : Math . max ( 0 , 255 - ( 255 - a << 8 ) / b ) } , blendLinearDodge : function ( a , b ) { return c . Color . blendAdd ( a , b ) } , blendLinearBurn : function ( a , b ) { return c . Color . blendSubtract ( a , b ) } , blendLinearLight : function ( a , b ) { return 128 > b ? c . Color . blendLinearBurn ( a , 2 * b ) : c . Color . blendLinearDodge ( a , 2 * ( b - 128 ) ) } , blendVividLight : function ( a , b ) { return 128 > b ? c . Color . blendColorBurn ( a , 2 * b ) : c . Color . blendColorDodge ( a , 2 * ( b - 128 ) ) } , blendPinLight : function ( a , b ) { return 128 > b ? c . Color . blendDarken ( a , 2 * b ) : c . Color . blendLighten ( a , 2 * ( b - 128 ) ) } , blendHardMix : function ( a , b ) { return c . Color . blendVividLight ( a , b ) < 128 ? 0 : 255 } , blendReflect : function ( a , b ) { return 255 === b ? b : Math . min ( 255 , a * a / ( 255 - b ) ) } , blendGlow : function ( a , b ) { return c . Color . blendReflect ( b , a ) } , blendPhoenix : function ( a , b ) { return Math . min ( a , b ) - Math . max ( a , b ) + 255 } } , c . Physics = function ( a , b ) { b = b || { } , this . game = a , this . config = b , this . arcade = null , this . p2 = null , this . ninja = null , this . box2d = null , this . chipmunk = null , this . matter = null , this . parseConfig ( ) } , c . Physics . ARCADE = 0 , c . Physics . P2JS = 1 , c . Physics . NINJA = 2 , c . Physics . BOX2D = 3 , c . Physics . CHIPMUNK = 4 , c . Physics . MATTERJS = 5 , c . Physics . prototype = { parseConfig : function ( ) { this . config . hasOwnProperty ( "arcade" ) && this . config . arcade !== ! 0 || ! c . Physics . hasOwnProperty ( "Arcade" ) || ( this . arcade = new c . Physics . Arcade ( this . game ) ) , this . config . hasOwnProperty ( "ninja" ) && this . config . ninja === ! 0 && c . Physics . hasOwnProperty ( "Ninja" ) && ( this . ninja = new c . Physics . Ninja ( this . game ) ) , this . config . hasOwnProperty ( "p2" ) && this . config . p2 === ! 0 && c . Physics . hasOwnProperty ( "P2" ) && ( this . p2 = new c . Physics . P2 ( this . game , this . config ) ) , this . config . hasOwnProperty ( "box2d" ) && this . config . box2d === ! 0 && c . Physics . hasOwnProperty ( "BOX2D" ) && ( this . box2d = new c . Physics . BOX2D ( this . game , this . config ) ) , this . config . hasOwnProperty ( "matter" ) && this . config . matter === ! 0 && c . Physics . hasOwnProperty ( "Matter" ) && ( this . matter = new c . Physics . Matter ( this . game , this . config ) ) } , startSystem : function ( a ) { a === c . Physics . ARCADE ? this . arcade = new c . Physics . Arcade ( this . game ) : a === c . Physics . P2JS ? null === this . p2 ? this . p2 = new c . Physics . P2 ( this . game , this . config ) : this . p2 . reset ( ) : a === c . Physics . NINJA ? this . ninja = new c . Physics . Ninja ( this . game ) : a === c . Physics . BOX2D ? null === this . box2d ? this . box2d = new c . Physics . Box2D ( this . game , this . config ) : this . box2d . reset ( ) : a === c . Physics . MATTERJS && ( null === this . matter ? this . matter = new c . Physics . Matter ( this . game , this . config ) : this . matter . reset ( ) ) } , enable : function ( a , b , d ) { void 0 === b && ( b = c . Physics . ARCADE ) , void 0 === d && ( d = ! 1 ) , b =
this . postBroadphaseCallback = a , this . callbackContext = b , null !== a ? this . world . on ( "postBroadphase" , this . postBroadphaseHandler , this ) : this . world . off ( "postBroadphase" , this . postBroadphaseHandler , this ) } , postBroadphaseHandler : function ( a ) { if ( this . postBroadphaseCallback && 0 !== a . pairs . length ) for ( var b = a . pairs . length - 2 ; b >= 0 ; b -= 2 ) a . pairs [ b ] . parent && a . pairs [ b + 1 ] . parent && ! this . postBroadphaseCallback . call ( this . callbackContext , a . pairs [ b ] . parent , a . pairs [ b + 1 ] . parent ) && a . pairs . splice ( b , 2 ) } , impactHandler : function ( a ) { if ( a . bodyA . parent && a . bodyB . parent ) { var b = a . bodyA . parent , c = a . bodyB . parent ; b . _bodyCallbacks [ a . bodyB . id ] && b . _bodyCallbacks [ a . bodyB . id ] . call ( b . _bodyCallbackContext [ a . bodyB . id ] , b , c , a . shapeA , a . shapeB ) , c . _bodyCallbacks [ a . bodyA . id ] && c . _bodyCallbacks [ a . bodyA . id ] . call ( c . _bodyCallbackContext [ a . bodyA . id ] , c , b , a . shapeB , a . shapeA ) , b . _groupCallbacks [ a . shapeB . collisionGroup ] && b . _groupCallbacks [ a . shapeB . collisionGroup ] . call ( b . _groupCallbackContext [ a . shapeB . collisionGroup ] , b , c , a . shapeA , a . shapeB ) , c . _groupCallbacks [ a . shapeA . collisionGroup ] && c . _groupCallbacks [ a . shapeA . collisionGroup ] . call ( c . _groupCallbackContext [ a . shapeA . collisionGroup ] , c , b , a . shapeB , a . shapeA ) } } , beginContactHandler : function ( a ) { a . bodyA && a . bodyB && ( this . onBeginContact . dispatch ( a . bodyA , a . bodyB , a . shapeA , a . shapeB , a . contactEquations ) , a . bodyA . parent && a . bodyA . parent . onBeginContact . dispatch ( a . bodyB . parent , a . bodyB , a . shapeA , a . shapeB , a . contactEquations ) , a . bodyB . parent && a . bodyB . parent . onBeginContact . dispatch ( a . bodyA . parent , a . bodyA , a . shapeB , a . shapeA , a . contactEquations ) ) } , endContactHandler : function ( a ) { a . bodyA && a . bodyB && ( this . onEndContact . dispatch ( a . bodyA , a . bodyB , a . shapeA , a . shapeB ) , a . bodyA . parent && a . bodyA . parent . onEndContact . dispatch ( a . bodyB . parent , a . bodyB , a . shapeA , a . shapeB ) , a . bodyB . parent && a . bodyB . parent . onEndContact . dispatch ( a . bodyA . parent , a . bodyA , a . shapeB , a . shapeA ) ) } , setBoundsToWorld : function ( a , b , c , d , e ) { this . setBounds ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height , a , b , c , d , e ) } , setWorldMaterial : function ( a , b , c , d , e ) { void 0 === b && ( b = ! 0 ) , void 0 === c && ( c = ! 0 ) , void 0 === d && ( d = ! 0 ) , void 0 === e && ( e = ! 0 ) , b && this . walls . left && ( this . walls . left . shapes [ 0 ] . material = a ) , c && this . walls . right && ( this . walls . right . shapes [ 0 ] . material = a ) , d && this . walls . top && ( this . walls . top . shapes [ 0 ] . material = a ) , e && this . walls . bottom && ( this . walls . bottom . shapes [ 0 ] . material = a ) } , updateBoundsCollisionGroup : function ( a ) { var b = this . everythingCollisionGroup . mask ; void 0 === a && ( b = this . boundsCollisionGroup . mask ) , this . walls . left && ( this . walls . left . shapes [ 0 ] . collisionGroup = b ) , this . walls . right && ( this . walls . right . shapes [ 0 ] . collisionGroup = b ) , this . walls . top && ( this . walls . top . shapes [ 0 ] . collisionGroup = b ) , this . walls . bottom && ( this . walls . bottom . shapes [ 0 ] . collisionGroup = b ) } , setBounds : function ( a , b , c , d , e , f , g , h , i ) { void 0 === e && ( e = this . _boundsLeft ) , void 0 === f && ( f = this . _boundsRight ) , void 0 === g && ( g = this . _boundsTop ) , void 0 === h && ( h = this . _boundsBottom ) , void 0 === i && ( i = this . _boundsOwnGroup ) , this . walls . left && this . world . removeBody ( this . walls . left ) , this . walls . right && this . world . removeBody ( this . walls . right ) , this . walls . top && this . world . removeBody ( this . walls . top ) , this . walls . bottom && this . world . removeBody ( this . walls . bottom ) , e && ( this . walls . left = new p2 . Body ( { mass : 0 , position : [ this . pxmi ( a ) , this . pxmi ( b ) ] , angle : 1.5707963267948966 } ) , this . walls . left . addShape ( new p2 . Plane ) , i && ( this . walls . left . shapes [ 0 ] . collisionGroup = this . boundsCollisionGroup . mask ) , this . world . addBody ( this . walls . left ) ) , f && ( this . walls . right = new p2 . Body ( { mass : 0 , position : [ this . pxmi ( a + c ) , this . pxmi ( b ) ] , angle : - 1.5707963267948966 } ) , this . walls . right . addShape ( new p2 . Plane ) , i && ( this . walls . right . shapes [ 0 ] . collisionGroup = this . boundsCollisionGroup . mask ) , this . world . addBody ( this . walls . right ) ) , g && ( this . walls . top = new p2 . Body ( { mass : 0 , position : [ this . pxmi ( a ) , this . pxmi ( b ) ] , angle : - 3.141592653589793 } ) , this . walls . top . addShape ( new p2 . Plane ) , i && ( this . walls . top . shapes [ 0 ] . collisionGroup = this . boundsCollisionGroup . mask ) , this . world . addBody ( this . walls . top ) ) , h && ( this . walls . bottom = new p2 . Body ( { mass : 0 , position : [ this . pxmi ( a ) , this . pxmi ( b + d ) ] } ) , this . walls . bottom . addShape ( new p2 . Plane ) , i && ( this . walls . bottom . shapes [ 0 ] . collisi
c . Physics . P2 . BodyDebug . prototype . constructor = c . Physics . P2 . BodyDebug , c . Utils . extend ( c . Physics . P2 . BodyDebug . prototype , { updateSpriteTransform : function ( ) { this . position . x = this . body . position [ 0 ] * this . ppu , this . position . y = this . body . position [ 1 ] * this . ppu , this . rotation = this . body . angle } , draw : function ( ) { var a , b , c , d , e , f , g , h , i , j , k , l , m , n , o ; if ( h = this . body , j = this . canvas , j . clear ( ) , c = parseInt ( this . randomPastelHex ( ) , 16 ) , f = 16711680 , g = this . lineWidth , h instanceof p2 . Body && h . shapes . length ) { var p = h . shapes . length ; for ( d = 0 ; d !== p ; ) { if ( b = h . shapes [ d ] , i = b . position || 0 , a = b . angle || 0 , b instanceof p2 . Circle ) this . drawCircle ( j , i [ 0 ] * this . ppu , i [ 1 ] * this . ppu , a , b . radius * this . ppu , c , g ) ; else if ( b instanceof p2 . Capsule ) this . drawCapsule ( j , i [ 0 ] * this . ppu , i [ 1 ] * this . ppu , a , b . length * this . ppu , b . radius * this . ppu , f , c , g ) ; else if ( b instanceof p2 . Plane ) this . drawPlane ( j , i [ 0 ] * this . ppu , - i [ 1 ] * this . ppu , c , f , 5 * g , 10 * g , 10 * g , 100 * this . ppu , a ) ; else if ( b instanceof p2 . Line ) this . drawLine ( j , b . length * this . ppu , f , g ) ; else if ( b instanceof p2 . Box ) this . drawRectangle ( j , i [ 0 ] * this . ppu , i [ 1 ] * this . ppu , a , b . width * this . ppu , b . height * this . ppu , f , c , g ) ; else if ( b instanceof p2 . Convex ) { for ( l = [ ] , m = p2 . vec2 . create ( ) , e = n = 0 , o = b . vertices . length ; o >= 0 ? o > n : n > o ; e = o >= 0 ? ++ n : -- n ) k = b . vertices [ e ] , p2 . vec2 . rotate ( m , k , a ) , l . push ( [ ( m [ 0 ] + i [ 0 ] ) * this . ppu , - ( m [ 1 ] + i [ 1 ] ) * this . ppu ] ) ; this . drawConvex ( j , l , b . triangles , f , c , g , this . settings . debugPolygons , [ i [ 0 ] * this . ppu , - i [ 1 ] * this . ppu ] ) } d ++ } } } , drawRectangle : function ( a , b , c , d , e , f , g , h , i ) { void 0 === i && ( i = 1 ) , void 0 === g && ( g = 0 ) , a . lineStyle ( i , g , 1 ) , a . beginFill ( h ) , a . drawRect ( b - e / 2 , c - f / 2 , e , f ) } , drawCircle : function ( a , b , c , d , e , f , g ) { void 0 === g && ( g = 1 ) , void 0 === f && ( f = 16777215 ) , a . lineStyle ( g , 0 , 1 ) , a . beginFill ( f , 1 ) , a . drawCircle ( b , c , 2 * - e ) , a . endFill ( ) , a . moveTo ( b , c ) , a . lineTo ( b + e * Math . cos ( - d ) , c + e * Math . sin ( - d ) ) } , drawLine : function ( a , b , c , d ) { void 0 === d && ( d = 1 ) , void 0 === c && ( c = 0 ) , a . lineStyle ( 5 * d , c , 1 ) , a . moveTo ( - b / 2 , 0 ) , a . lineTo ( b / 2 , 0 ) } , drawConvex : function ( a , b , c , d , e , f , g , h ) { var i , j , k , l , m , n , o , p , q , r , s ; if ( void 0 === f && ( f = 1 ) , void 0 === d && ( d = 0 ) , g ) { for ( i = [ 16711680 , 65280 , 255 ] , j = 0 ; j !== b . length + 1 ; ) l = b [ j % b . length ] , m = b [ ( j + 1 ) % b . length ] , o = l [ 0 ] , r = l [ 1 ] , p = m [ 0 ] , s = m [ 1 ] , a . lineStyle ( f , i [ j % i . length ] , 1 ) , a . moveTo ( o , - r ) , a . lineTo ( p , - s ) , a . drawCircle ( o , - r , 2 * f ) , j ++ ; return a . lineStyle ( f , 0 , 1 ) , a . drawCircle ( h [ 0 ] , h [ 1 ] , 2 * f ) } for ( a . lineStyle ( f , d , 1 ) , a . beginFill ( e ) , j = 0 ; j !== b . length ; ) k = b [ j ] , n = k [ 0 ] , q = k [ 1 ] , 0 === j ? a . moveTo ( n , - q ) : a . lineTo ( n , - q ) , j ++ ; return a . endFill ( ) , b . length > 2 ? ( a . moveTo ( b [ b . length - 1 ] [ 0 ] , - b [ b . length - 1 ] [ 1 ] ) , a . lineTo ( b [ 0 ] [ 0 ] , - b [ 0 ] [ 1 ] ) ) : void 0 } , drawPath : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q , r ; for ( void 0 === e && ( e = 1 ) , void 0 === c && ( c = 0 ) , a . lineStyle ( e , c , 1 ) , "number" == typeof d && a . beginFill ( d ) , h = null , i = null , g = 0 ; g < b . length ; ) p = b [ g ] , q = p [ 0 ] , r = p [ 1 ] , ( q !== h || r !== i ) && ( 0 === g ? a . moveTo ( q , r ) : ( j = h , k = i , l = q , m = r , n = b [ ( g + 1 ) % b . length ] [ 0 ] , o = b [ ( g + 1 ) % b . length ] [ 1 ] , f = ( l - j ) * ( o - k ) - ( n - j ) * ( m - k ) , 0 !== f && a . lineTo ( q , r ) ) , h = q , i = r ) , g ++ ; "number" == typeof d && a . endFill ( ) , b . length > 2 && "number" == typeof d && ( a . moveTo ( b [ b . length - 1 ] [ 0 ] , b [ b . length - 1 ] [ 1 ] ) , a . lineTo ( b [ 0 ] [ 0 ] , b [ 0 ] [ 1 ] ) ) } , drawPlane : function ( a , b , c , d , e , f , g , h , i , j ) { var k , l , m ; void 0 === f && ( f = 1 ) , void 0 === d && ( d = 16777215 ) , a . lineStyle ( f , e , 11 ) , a . beginFill ( d ) , k = i , a . moveTo ( b , - c ) , l = b + Math . cos ( j ) * this . game . width , m = c + Math . sin ( j ) * this . game . height , a . lineTo ( l , - m ) , a . moveTo ( b , - c ) , l = b + Math . cos ( j ) * - this . game . width , m = c + Math . sin ( j ) * - this . game . height , a . lineTo ( l , - m ) } , drawCapsule : function ( a , b , c , d , e , f , g , h , i ) { void 0 === i && ( i = 1 ) , void 0 === g && ( g = 0 ) , a . lineStyle ( i , g , 1 ) ; var j = Math . cos ( d ) , k = Math . sin ( d ) ; a . beginFill ( h , 1 ) , a . drawCircle ( - e / 2 * j + b , - e / 2 * k + c , 2 * - f ) , a . drawCircle ( e / 2 * j + b , e / 2 * k + c , 2 * - f ) , a . endFill ( ) , a . lineStyle ( i , g , 0 ) , a . beginFill ( h , 1 ) , a . moveTo ( - e / 2 * j + f * k + b , - e / 2 * k + f * j + c ) , a . lineTo ( e / 2 * j + f * k + b , e / 2 * k + f * j + c ) , a . lineTo ( e / 2 * j - f * k + b , e / 2 * k - f * j + c ) , a . lineTo ( - e / 2 * j - f * k + b , - e / 2 * k - f * j + c ) , a . endFill ( ) , a . lineStyle ( i , g , 1 ) , a . moveTo ( - e / 2 * j + f * k + b , - e / 2 * k + f * j + c ) , a . lineTo ( e / 2 * j + f * k + b , e / 2 * k + f * j + c ) , a . moveTo ( - e / 2 * j - f * k + b , - e / 2 * k - f * j + c ) , a . lineTo ( e / 2 * j - f * k + b , e / 2 * k - f * j + c ) } , randomPastelHex : function ( ) { var a , b , c , d ; return c = [ 255 , 255 , 255 ] , d = Math . floor ( 256 * Math . random ( ) ) , b = Math . floor ( 256 * Math . random ( ) ) , a = Math . floor ( 256 * Math . random ( ) ) , d = Math . floor ( ( d + 3 * c [ 0 ] ) / 4 ) , b = Math . floor ( ( b + 3 * c [ 1 ] ) / 4 ) , a = Math . floor ( ( a + 3 * c [ 2 ] ) / 4 ) , this . rgbToHex ( d , b , a
this . context . clearRect ( 0 , 0 , c , d ) , this . renderRegion ( a , b , g , i , h , j ) } , c . TilemapLayer . prototype . render = function ( ) { var a = ! 1 ; if ( this . visible ) { ( this . dirty || this . layer . dirty ) && ( this . layer . dirty = ! 1 , a = ! 0 ) ; var b = this . canvas . width , c = this . canvas . height , d = 0 | this . _scrollX , e = 0 | this . _scrollY , f = this . _mc , g = f . scrollX - d , h = f . scrollY - e ; if ( a || 0 !== g || 0 !== h || f . renderWidth !== b || f . renderHeight !== c ) return this . context . save ( ) , f . scrollX = d , f . scrollY = e , ( f . renderWidth !== b || f . renderHeight !== c ) && ( f . renderWidth = b , f . renderHeight = c ) , this . debug && ( this . context . globalAlpha = this . debugSettings . debugAlpha , this . debugSettings . forceFullRedraw && ( a = ! 0 ) ) , ! a && this . renderSettings . enableScrollDelta && Math . abs ( g ) + Math . abs ( h ) < Math . min ( b , c ) ? this . renderDeltaScroll ( g , h ) : this . renderFull ( ) , this . debug && ( this . context . globalAlpha = 1 , this . renderDebug ( ) ) , this . texture . baseTexture . dirty ( ) , this . dirty = ! 1 , this . context . restore ( ) , ! 0 } } , c . TilemapLayer . prototype . renderDebug = function ( ) { var a , b , c , d , e , f , g = this . _mc . scrollX , h = this . _mc . scrollY , i = this . context , j = this . canvas . width , k = this . canvas . height , l = this . layer . width , m = this . layer . height , n = this . _mc . tileWidth , o = this . _mc . tileHeight , p = Math . floor ( g / n ) , q = Math . floor ( ( j - 1 + g ) / n ) , r = Math . floor ( h / o ) , s = Math . floor ( ( k - 1 + h ) / o ) , t = p * n - g , u = r * o - h , v = ( p + ( 1 << 20 ) * l ) % l , w = ( r + ( 1 << 20 ) * m ) % m ; for ( i . strokeStyle = this . debugSettings . facingEdgeStroke , d = w , f = s - r , b = u ; f >= 0 ; d ++ , f -- , b += o ) { d >= m && ( d -= m ) ; var x = this . layer . data [ d ] ; for ( c = v , e = q - p , a = t ; e >= 0 ; c ++ , e -- , a += n ) { c >= l && ( c -= l ) ; var y = x [ c ] ; ! y || y . index < 0 || ! y . collides || ( this . debugSettings . collidingTileOverfill && ( i . fillStyle = this . debugSettings . collidingTileOverfill , i . fillRect ( a , b , this . _mc . cw , this . _mc . ch ) ) , this . debugSettings . facingEdgeStroke && ( i . beginPath ( ) , y . faceTop && ( i . moveTo ( a , b ) , i . lineTo ( a + this . _mc . cw , b ) ) , y . faceBottom && ( i . moveTo ( a , b + this . _mc . ch ) , i . lineTo ( a + this . _mc . cw , b + this . _mc . ch ) ) , y . faceLeft && ( i . moveTo ( a , b ) , i . lineTo ( a , b + this . _mc . ch ) ) , y . faceRight && ( i . moveTo ( a + this . _mc . cw , b ) , i . lineTo ( a + this . _mc . cw , b + this . _mc . ch ) ) , i . stroke ( ) ) ) } } } , Object . defineProperty ( c . TilemapLayer . prototype , "wrap" , { get : function ( ) { return this . _wrap } , set : function ( a ) { this . _wrap = a , this . dirty = ! 0 } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "scrollX" , { get : function ( ) { return this . _scrollX } , set : function ( a ) { this . _scrollX = a } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "scrollY" , { get : function ( ) { return this . _scrollY } , set : function ( a ) { this . _scrollY = a } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "collisionWidth" , { get : function ( ) { return this . _mc . cw } , set : function ( a ) { this . _mc . cw = 0 | a , this . dirty = ! 0 } } ) , Object . defineProperty ( c . TilemapLayer . prototype , "collisionHeight" , { get : function ( ) { return this . _mc . ch } , set : function ( a ) { this . _mc . ch = 0 | a , this . dirty = ! 0 } } ) , c . TilemapParser = { INSERT _NULL : ! 1 , parse : function ( a , b , d , e , f , g ) { if ( void 0 === d && ( d = 32 ) , void 0 === e && ( e = 32 ) , void 0 === f && ( f = 10 ) , void 0 === g && ( g = 10 ) , void 0 === b ) return this . getEmptyData ( ) ; if ( null === b ) return this . getEmptyData ( d , e , f , g ) ; var h = a . cache . getTilemapData ( b ) ; if ( h ) { if ( h . format === c . Tilemap . CSV ) return this . parseCSV ( b , h . data , d , e ) ; if ( ! h . format || h . format === c . Tilemap . TILED _JSON ) return this . parseTiledJSON ( h . data ) } else console . warn ( "Phaser.TilemapParser.parse - No map data found for key " + b ) } , parseCSV : function ( a , b , d , e ) { var f = this . getEmptyData ( ) ; b = b . trim ( ) ; for ( var g = [ ] , h = b . split ( "\n" ) , i = h . length , j = 0 , k = 0 ; k < h . length ; k ++ ) { g [ k ] = [ ] ; for ( var l = h [ k ] . split ( "," ) , m = 0 ; m < l . length ; m ++ ) g [ k ] [ m ] = new c . Tile ( f . layers [ 0 ] , parseInt ( l [ m ] , 10 ) , m , k , d , e ) ; 0 === j && ( j = l . length ) } return f . format = c . Tilemap . CSV , f . name = a , f . width = j , f . height = i , f . tileWidth = d , f . tileHeight = e , f . widthInPixels = j * d , f . heightInPixels = i * e , f . layers [ 0 ] . width = j , f . layers [ 0 ] . height = i , f . layers [ 0 ] . widthInPixels = f . widthInPixels , f . layers [ 0 ] . heightInPixels = f . heightInPixels , f . layers [ 0 ] . data = g , f } , getEmptyData : function ( a , b , c , d ) { var e = { } ; e . width = 0 , e . height = 0 , e . tileWidth = 0 , e . tileHeight = 0 , "undefined" != typeof a && null !== a && ( e . tileWidth = a ) , "undefined" != typeof b && null !== b && ( e . tileHeight = b ) , "undefined" != typeof c && null !== c && ( e . width = c ) , "undefined" != typeof d && null !== d && ( e . height = d ) , e . orientation = "orthogonal" , e . version = "1" , e . properties = { } , e . widthInPixels = 0 , e . heightInPixels = 0 ; var f = [ ] , g = { name : "layer" , x : 0 , y : 0 , width : 0 , height : 0 , widthInPixels : 0 , heigh
2016-02-12 16:00:36 +00:00
//# sourceMappingURL=phaser-split.map