2016-07-01 15:57:13 +00:00
/* Phaser v2.5.1 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
2014-02-28 09:30:53 +00:00
2016-07-01 15:57:13 +00:00
! function ( a ) { if ( "object" == typeof exports ) module . exports = a ( ) ; else if ( "function" == typeof define , 1 ) { var b ; "undefined" != typeof window ? b = window : "undefined" != typeof global ? b = global : "undefined" != typeof self && ( b = self ) , b . p2 = a ( ) } else define ( a ) } ( function ( ) { return function a ( b , c , d ) { function e ( g , h ) { if ( ! c [ g ] ) { if ( ! b [ g ] ) { var i = "function" == typeof require && require ; if ( ! h && i ) return i ( g , ! 0 ) ; if ( f ) return f ( g , ! 0 ) ; throw new Error ( "Cannot find module '" + g + "'" ) } var j = c [ g ] = { exports : { } } ; b [ g ] [ 0 ] . call ( j . exports , function ( a ) { var c = b [ g ] [ 1 ] [ a ] ; return e ( c ? c : a ) } , j , j . exports , a , b , c , d ) } return c [ g ] . exports } for ( var f = "function" == typeof require && require , g = 0 ; g < d . length ; g ++ ) e ( d [ g ] ) ; return e } ( { 1 : [ function ( a , b , c ) { function d ( ) { } var e = a ( "./Scalar" ) ; b . exports = d , d . lineInt = function ( a , b , c ) { c = c || 0 ; var d , f , g , h , i , j , k , l = [ 0 , 0 ] ; return d = a [ 1 ] [ 1 ] - a [ 0 ] [ 1 ] , f = a [ 0 ] [ 0 ] - a [ 1 ] [ 0 ] , g = d * a [ 0 ] [ 0 ] + f * a [ 0 ] [ 1 ] , h = b [ 1 ] [ 1 ] - b [ 0 ] [ 1 ] , i = b [ 0 ] [ 0 ] - b [ 1 ] [ 0 ] , j = h * b [ 0 ] [ 0 ] + i * b [ 0 ] [ 1 ] , k = d * i - h * f , e . eq ( k , 0 , c ) || ( l [ 0 ] = ( i * g - f * j ) / k , l [ 1 ] = ( d * j - h * g ) / k ) , l } , d . segmentsIntersect = function ( a , b , c , d ) { var e = b [ 0 ] - a [ 0 ] , f = b [ 1 ] - a [ 1 ] , g = d [ 0 ] - c [ 0 ] , h = d [ 1 ] - c [ 1 ] ; if ( g * f - h * e == 0 ) return ! 1 ; var i = ( e * ( c [ 1 ] - a [ 1 ] ) + f * ( a [ 0 ] - c [ 0 ] ) ) / ( g * f - h * e ) , j = ( g * ( a [ 1 ] - c [ 1 ] ) + h * ( c [ 0 ] - a [ 0 ] ) ) / ( h * e - g * f ) ; return i >= 0 && 1 >= i && j >= 0 && 1 >= j } } , { "./Scalar" : 4 } ] , 2 : [ function ( a , b , c ) { function d ( ) { } b . exports = d , d . area = function ( a , b , c ) { return ( b [ 0 ] - a [ 0 ] ) * ( c [ 1 ] - a [ 1 ] ) - ( c [ 0 ] - a [ 0 ] ) * ( b [ 1 ] - a [ 1 ] ) } , d . left = function ( a , b , c ) { return d . area ( a , b , c ) > 0 } , d . leftOn = function ( a , b , c ) { return d . area ( a , b , c ) >= 0 } , d . right = function ( a , b , c ) { return d . area ( a , b , c ) < 0 } , d . rightOn = function ( a , b , c ) { return d . area ( a , b , c ) <= 0 } ; var e = [ ] , f = [ ] ; d . collinear = function ( a , b , c , g ) { if ( g ) { var h = e , i = f ; h [ 0 ] = b [ 0 ] - a [ 0 ] , h [ 1 ] = b [ 1 ] - a [ 1 ] , i [ 0 ] = c [ 0 ] - b [ 0 ] , i [ 1 ] = c [ 1 ] - b [ 1 ] ; var j = h [ 0 ] * i [ 0 ] + h [ 1 ] * i [ 1 ] , k = Math . sqrt ( h [ 0 ] * h [ 0 ] + h [ 1 ] * h [ 1 ] ) , l = Math . sqrt ( i [ 0 ] * i [ 0 ] + i [ 1 ] * i [ 1 ] ) , m = Math . acos ( j / ( k * l ) ) ; return g > m } return 0 == d . area ( a , b , c ) } , d . sqdist = function ( a , b ) { var c = b [ 0 ] - a [ 0 ] , d = b [ 1 ] - a [ 1 ] ; return c * c + d * d } } , { } ] , 3 : [ function ( a , b , c ) { function d ( ) { this . vertices = [ ] } function e ( a , b , c , d , e ) { e = e || 0 ; var f = b [ 1 ] - a [ 1 ] , g = a [ 0 ] - b [ 0 ] , i = f * a [ 0 ] + g * a [ 1 ] , j = d [ 1 ] - c [ 1 ] , k = c [ 0 ] - d [ 0 ] , l = j * c [ 0 ] + k * c [ 1 ] , m = f * k - j * g ; return h . eq ( m , 0 , e ) ? [ 0 , 0 ] : [ ( k * i - g * l ) / m , ( f * l - j * i ) / m ] } var f = a ( "./Line" ) , g = a ( "./Point" ) , h = a ( "./Scalar" ) ; b . exports = d , d . prototype . at = function ( a ) { var b = this . vertices , c = b . length ; return b [ 0 > a ? a % c + c : a % c ] } , d . prototype . first = function ( ) { return this . vertices [ 0 ] } , d . prototype . last = function ( ) { return this . vertices [ this . vertices . length - 1 ] } , d . prototype . clear = function ( ) { this . vertices . length = 0 } , d . prototype . append = function ( a , b , c ) { if ( "undefined" == typeof b ) throw new Error ( "From is not given!" ) ; if ( "undefined" == typeof c ) throw new Error ( "To is not given!" ) ; if ( b > c - 1 ) throw new Error ( "lol1" ) ; if ( c > a . vertices . length ) throw new Error ( "lol2" ) ; if ( 0 > b ) throw new Error ( "lol3" ) ; for ( var d = b ; c > d ; d ++ ) this . vertices . push ( a . vertices [ d ] ) } , d . prototype . makeCCW = function ( ) { for ( var a = 0 , b = this . vertices , c = 1 ; c < this . vertices . length ; ++ c ) ( b [ c ] [ 1 ] < b [ a ] [ 1 ] || b [ c ] [ 1 ] == b [ a ] [ 1 ] && b [ c ] [ 0 ] > b [ a ] [ 0 ] ) && ( a = c ) ; g . left ( this . at ( a - 1 ) , this . at ( a ) , this . at ( a + 1 ) ) || this . reverse ( ) } , d . prototype . reverse = function ( ) { for ( var a = [ ] , b = 0 , c = this . vertices . length ; b !== c ; b ++ ) a . push ( this . vertices . pop ( ) ) ; this . vertices = a } , d . prototype . isReflex = function ( a ) { return g . right ( this . at ( a - 1 ) , this . at ( a ) , this . at ( a + 1 ) ) } ; var i = [ ] , j = [ ] ; d . prototype . canSee = function ( a , b ) { var c , d , e = i , h = j ; if ( g . leftOn ( this . at ( a + 1 ) , this . at ( a ) , this . at ( b ) ) && g . rightOn ( this . at ( a - 1 ) , this . at ( a ) , this . at ( b ) ) ) return ! 1 ; d = g . sqdist ( this . at ( a ) , this . at ( b ) ) ; for ( var k = 0 ; k !== this . vertices . length ; ++ k ) if ( ( k + 1 ) % this . vertices . length !== a && k !== a && g . leftOn ( this . at ( a ) , this . at ( b ) , this . at ( k + 1 ) ) && g . rightOn ( this . at ( a ) , this . at ( b ) , this . at ( k ) ) && ( e [ 0 ] = this . at ( a ) , e [ 1 ] = this . at ( b ) , h [ 0 ] = this . at ( k ) , h [ 1 ] = this . at ( k + 1 ) , c = f . lineInt ( e , h ) , g . sqdist ( this . at ( a ) , c ) < d ) ) return ! 1 ; return ! 0 } , d . prototype . copy = function ( a , b , c ) { var e = c || new d ; if ( e . clear ( ) , b > a ) for ( var f = a ; b >= f ; f ++ ) e . vertices . push ( this . vertices [ f ] ) ; else { for ( var f = 0 ; b >= f ; f ++ ) e . vertices . push ( this . vertices [ f ] ) ; for ( var f = a ; f < this . vertices . length ; f ++ ) e . vertices . push ( this . vertices [ f ] ) } return e } , d . prototype . getCutEdges = function ( ) { for ( var a = [ ] , b = [ ] , c = [ ] , e = new d , f = Number . MAX _VALUE , g = 0 ; g < this . vertices . length ; ++ g ) if ( this . isReflex ( g ) ) for ( var h = 0 ; h < thi
if ( l ) return ! 0 ; B = ! 0 ; var D = this . createContactEquation ( e , a , f , b ) ; g . copy ( D . normalA , p ) , g . normalize ( D . normalA , D . normalA ) , g . scale ( D . contactPointB , D . normalA , - m ) , i ( D . contactPointB , D . contactPointB , c ) , h ( D . contactPointB , D . contactPointB , a . position ) , h ( D . contactPointA , u , j ) , i ( D . contactPointA , D . contactPointA , j ) , h ( D . contactPointA , D . contactPointA , e . position ) , this . contactEquations . push ( D ) , this . enableFriction && this . frictionEquations . push ( this . createFrictionFromContact ( D ) ) } return B ? 1 : 0 } ; var pa = g . create ( ) , qa = g . create ( ) , ra = g . create ( ) , sa = new p ( { vertices : [ g . create ( ) , g . create ( ) , g . create ( ) , g . create ( ) ] } ) ; d . prototype [ q . BOX | q . HEIGHTFIELD ] = d . prototype [ q . CONVEX | q . HEIGHTFIELD ] = d . prototype . convexHeightfield = function ( a , b , c , d , e , f , h , i , j ) { var k = f . heights , l = f . elementWidth , m = pa , n = qa , o = ra , p = sa , q = Math . floor ( ( a . aabb . lowerBound [ 0 ] - h [ 0 ] ) / l ) , r = Math . ceil ( ( a . aabb . upperBound [ 0 ] - h [ 0 ] ) / l ) ; 0 > q && ( q = 0 ) , r >= k . length && ( r = k . length - 1 ) ; for ( var s = k [ q ] , t = k [ r ] , u = q ; r > u ; u ++ ) k [ u ] < t && ( t = k [ u ] ) , k [ u ] > s && ( s = k [ u ] ) ; if ( a . aabb . lowerBound [ 1 ] > s ) return j ? ! 1 : 0 ; for ( var v = 0 , u = q ; r > u ; u ++ ) { g . set ( m , u * l , k [ u ] ) , g . set ( n , ( u + 1 ) * l , k [ u + 1 ] ) , g . add ( m , m , h ) , g . add ( n , n , h ) ; var w = 100 ; g . set ( o , . 5 * ( n [ 0 ] + m [ 0 ] ) , . 5 * ( n [ 1 ] + m [ 1 ] - w ) ) , g . sub ( p . vertices [ 0 ] , n , o ) , g . sub ( p . vertices [ 1 ] , m , o ) , g . copy ( p . vertices [ 2 ] , p . vertices [ 1 ] ) , g . copy ( p . vertices [ 3 ] , p . vertices [ 0 ] ) , p . vertices [ 2 ] [ 1 ] -= w , p . vertices [ 3 ] [ 1 ] -= w , v += this . convexConvex ( a , b , c , d , e , p , o , 0 , j ) } return v } } , { "../equations/ContactEquation" : 21 , "../equations/Equation" : 22 , "../equations/FrictionEquation" : 23 , "../math/vec2" : 30 , "../objects/Body" : 31 , "../shapes/Box" : 37 , "../shapes/Circle" : 39 , "../shapes/Convex" : 40 , "../shapes/Shape" : 45 , "../utils/ContactEquationPool" : 48 , "../utils/FrictionEquationPool" : 49 , "../utils/TupleDictionary" : 56 , "../utils/Utils" : 57 } ] , 11 : [ function ( a , b , c ) { function d ( a ) { a = a || { } , this . from = a . from ? f . fromValues ( a . from [ 0 ] , a . from [ 1 ] ) : f . create ( ) , this . to = a . to ? f . fromValues ( a . to [ 0 ] , a . to [ 1 ] ) : f . create ( ) , this . checkCollisionResponse = void 0 !== a . checkCollisionResponse ? a . checkCollisionResponse : ! 0 , this . skipBackfaces = ! ! a . skipBackfaces , this . collisionMask = void 0 !== a . collisionMask ? a . collisionMask : - 1 , this . collisionGroup = void 0 !== a . collisionGroup ? a . collisionGroup : - 1 , this . mode = void 0 !== a . mode ? a . mode : d . ANY , this . callback = a . callback || function ( a ) { } , this . direction = f . create ( ) , this . length = 1 , this . update ( ) } function e ( a , b , c ) { f . sub ( h , c , a ) ; var d = f . dot ( h , b ) ; return f . scale ( i , b , d ) , f . add ( i , i , a ) , f . squaredDistance ( c , i ) } b . exports = d ; var f = a ( "../math/vec2" ) ; a ( "../collision/RaycastResult" ) , a ( "../shapes/Shape" ) , a ( "../collision/AABB" ) ; d . prototype . constructor = d , d . CLOSEST = 1 , d . ANY = 2 , d . ALL = 4 , d . prototype . update = function ( ) { var a = this . direction ; f . sub ( a , this . to , this . from ) , this . length = f . length ( a ) , f . normalize ( a , a ) } , d . prototype . intersectBodies = function ( a , b ) { for ( var c = 0 , d = b . length ; ! a . shouldStop ( this ) && d > c ; c ++ ) { var e = b [ c ] , f = e . getAABB ( ) ; ( f . overlapsRay ( this ) >= 0 || f . containsPoint ( this . from ) ) && this . intersectBody ( a , e ) } } ; var g = f . create ( ) ; d . prototype . intersectBody = function ( a , b ) { var c = this . checkCollisionResponse ; if ( ! c || b . collisionResponse ) for ( var d = g , e = 0 , h = b . shapes . length ; h > e ; e ++ ) { var i = b . shapes [ e ] ; if ( ( ! c || i . collisionResponse ) && 0 !== ( this . collisionGroup & i . collisionMask ) && 0 !== ( i . collisionGroup & this . collisionMask ) ) { f . rotate ( d , i . position , b . angle ) , f . add ( d , d , b . position ) ; var j = i . angle + b . angle ; if ( this . intersectShape ( a , i , j , d , b ) , a . shouldStop ( this ) ) break } } } , d . prototype . intersectShape = function ( a , b , c , d , f ) { var g = this . from , h = e ( g , this . direction , d ) ; h > b . boundingRadius * b . boundingRadius || ( this . _currentBody = f , this . _currentShape = b , b . raycast ( a , this , d , c ) , this . _currentBody = this . _currentShape = null ) } , d . prototype . getAABB = function ( a ) { var b = this . to , c = this . from ; f . set ( a . lowerBound , Math . min ( b [ 0 ] , c [ 0 ] ) , Math . min ( b [ 1 ] , c [ 1 ] ) ) , f . set ( a . upperBound , Math . max ( b [ 0 ] , c [ 0 ] ) , Math . max ( b [ 1 ] , c [ 1 ] ) ) } ; f . create ( ) ; d . prototype . reportIntersection = function ( a , b , c , e ) { var g = ( this . from , this . to , this . _currentShape ) , h = this . _currentBody ; if ( ! ( this . skipBackfaces && f . dot ( c , this . direction ) > 0 ) ) switch ( this . mode ) { case d . ALL : a . set ( c , g , h , b , e ) , this . callback ( a ) ; break ; case d . CLOSEST : ( b < a . fraction || ! a . hasHit ( ) ) && a . set ( c , g , h , b , e ) ; break ; case d . ANY : a . set ( c , g , h , b , e ) } } ; var h = f . create ( ) , i = f . create ( ) } , { "../collision/AABB" : 7 , " . . / collision / RaycastR
this . wantsToSleep = ! 1 , this . sleepState = d . AWAKE , this . sleepSpeedLimit = void 0 !== a . sleepSpeedLimit ? a . sleepSpeedLimit : . 2 , this . sleepTimeLimit = void 0 !== a . sleepTimeLimit ? a . sleepTimeLimit : 1 , this . gravityScale = void 0 !== a . gravityScale ? a . gravityScale : 1 , this . collisionResponse = void 0 !== a . collisionResponse ? a . collisionResponse : ! 0 , this . idleTime = 0 , this . timeLastSleepy = 0 , this . ccdSpeedThreshold = void 0 !== a . ccdSpeedThreshold ? a . ccdSpeedThreshold : - 1 , this . ccdIterations = void 0 !== a . ccdIterations ? a . ccdIterations : 10 , this . concavePath = null , this . _wakeUpAfterNarrowphase = ! 1 , this . updateMassProperties ( ) } var e = a ( "../math/vec2" ) , f = a ( "poly-decomp" ) , g = a ( "../shapes/Convex" ) , h = a ( "../collision/RaycastResult" ) , i = a ( "../collision/Ray" ) , j = a ( "../collision/AABB" ) , k = a ( "../events/EventEmitter" ) ; b . exports = d , d . prototype = new k , d . prototype . constructor = d , d . _idCounter = 0 , d . prototype . updateSolveMassProperties = function ( ) { this . sleepState === d . SLEEPING || this . type === d . KINEMATIC ? ( this . invMassSolve = 0 , this . invInertiaSolve = 0 ) : ( this . invMassSolve = this . invMass , this . invInertiaSolve = this . invInertia ) } , d . prototype . setDensity = function ( a ) { var b = this . getArea ( ) ; this . mass = b * a , this . updateMassProperties ( ) } , d . prototype . getArea = function ( ) { for ( var a = 0 , b = 0 ; b < this . shapes . length ; b ++ ) a += this . shapes [ b ] . area ; return a } , d . prototype . getAABB = function ( ) { return this . aabbNeedsUpdate && this . updateAABB ( ) , this . aabb } ; var l = new j , m = e . create ( ) ; d . prototype . updateAABB = function ( ) { for ( var a = this . shapes , b = a . length , c = m , d = this . angle , f = 0 ; f !== b ; f ++ ) { var g = a [ f ] , h = g . angle + d ; e . rotate ( c , g . position , d ) , e . add ( c , c , this . position ) , g . computeAABB ( l , c , h ) , 0 === f ? this . aabb . copy ( l ) : this . aabb . extend ( l ) } this . aabbNeedsUpdate = ! 1 } , d . prototype . updateBoundingRadius = function ( ) { for ( var a = this . shapes , b = a . length , c = 0 , d = 0 ; d !== b ; d ++ ) { var f = a [ d ] , g = e . length ( f . position ) , h = f . boundingRadius ; g + h > c && ( c = g + h ) } this . boundingRadius = c } , d . prototype . addShape = function ( a , b , c ) { if ( a . body ) throw new Error ( "A shape can only be added to one body." ) ; a . body = this , b ? e . copy ( a . position , b ) : e . set ( a . position , 0 , 0 ) , a . angle = c || 0 , this . shapes . push ( a ) , this . updateMassProperties ( ) , this . updateBoundingRadius ( ) , this . aabbNeedsUpdate = ! 0 } , d . prototype . removeShape = function ( a ) { var b = this . shapes . indexOf ( a ) ; return - 1 !== b ? ( this . shapes . splice ( b , 1 ) , this . aabbNeedsUpdate = ! 0 , a . body = null , ! 0 ) : ! 1 } , d . prototype . updateMassProperties = function ( ) { if ( this . type === d . STATIC || this . type === d . KINEMATIC ) this . mass = Number . MAX _VALUE , this . invMass = 0 , this . inertia = Number . MAX _VALUE , this . invInertia = 0 ; else { var a = this . shapes , b = a . length , c = this . mass / b , f = 0 ; if ( this . fixedRotation ) this . inertia = Number . MAX _VALUE , this . invInertia = 0 ; else { for ( var g = 0 ; b > g ; g ++ ) { var h = a [ g ] , i = e . squaredLength ( h . position ) , j = h . computeMomentOfInertia ( c ) ; f += j + c * i } this . inertia = f , this . invInertia = f > 0 ? 1 / f : 0 } this . invMass = 1 / this . mass , e . set ( this . massMultiplier , this . fixedX ? 0 : 1 , this . fixedY ? 0 : 1 ) } } ; e . create ( ) ; d . prototype . applyForce = function ( a , b ) { if ( e . add ( this . force , this . force , a ) , b ) { var c = e . crossLength ( b , a ) ; this . angularForce += c } } ; var n = e . create ( ) , o = e . create ( ) , p = e . create ( ) ; d . prototype . applyForceLocal = function ( a , b ) { b = b || p ; var c = n , d = o ; this . vectorToWorldFrame ( c , a ) , this . vectorToWorldFrame ( d , b ) , this . applyForce ( c , d ) } ; var q = e . create ( ) ; d . prototype . applyImpulse = function ( a , b ) { if ( this . type === d . DYNAMIC ) { var c = q ; if ( e . scale ( c , a , this . invMass ) , e . multiply ( c , this . massMultiplier , c ) , e . add ( this . velocity , c , this . velocity ) , b ) { var f = e . crossLength ( b , a ) ; f *= this . invInertia , this . angularVelocity += f } } } ; var r = e . create ( ) , s = e . create ( ) , t = e . create ( ) ; d . prototype . applyImpulseLocal = function ( a , b ) { b = b || t ; var c = r , d = s ; this . vectorToWorldFrame ( c , a ) , this . vectorToWorldFrame ( d , b ) , this . applyImpulse ( c , d ) } , d . prototype . toLocalFrame = function ( a , b ) { e . toLocalFrame ( a , b , this . position , this . angle ) } , d . prototype . toWorldFrame = function ( a , b ) { e . toGlobalFrame ( a , b , this . position , this . angle ) } , d . prototype . vectorToLocalFrame = function ( a , b ) { e . vectorToLocalFrame ( a , b , this . angle ) } , d . prototype . vectorToWorldFrame = function ( a , b ) { e . vectorToGlobalFrame ( a , b , this . angle ) } , d . prototype . fromPolygon = function ( a , b ) { b = b || { } ; for ( var c = this . shapes . length ; c >= 0 ; -- c ) this . removeShape ( this . shapes [ c ] ) ; var d = new f . Polygon ; if ( d . vertices = a , d . makeCCW ( ) , "number" == typeof b . removeCollinearPoints && d . removeCo
b . exports = d , d . prototype = new g , d . prototype . constructor = d , d . prototype . solve = function ( a , b ) { this . sortEquations ( ) ; var c = 0 , g = this . iterations , j = this . frictionIterations , k = this . equations , l = k . length , m = Math . pow ( this . tolerance * l , 2 ) , n = b . bodies , o = b . bodies . length , p = ( f . add , f . set , this . useZeroRHS ) , q = this . lambda ; if ( this . usedIterations = 0 , l ) for ( var r = 0 ; r !== o ; r ++ ) { var s = n [ r ] ; s . updateSolveMassProperties ( ) } q . length < l && ( q = this . lambda = new h . ARRAY _TYPE ( l + this . arrayStep ) , this . Bs = new h . ARRAY _TYPE ( l + this . arrayStep ) , this . invCs = new h . ARRAY _TYPE ( l + this . arrayStep ) ) , e ( q ) ; for ( var t = this . invCs , u = this . Bs , q = this . lambda , r = 0 ; r !== k . length ; r ++ ) { var v = k [ r ] ; ( v . timeStep !== a || v . needsUpdate ) && ( v . timeStep = a , v . update ( ) ) , u [ r ] = v . computeB ( v . a , v . b , a ) , t [ r ] = v . computeInvC ( v . epsilon ) } var v , w , r , x ; if ( 0 !== l ) { for ( r = 0 ; r !== o ; r ++ ) { var s = n [ r ] ; s . resetConstraintVelocity ( ) } if ( j ) { for ( c = 0 ; c !== j ; c ++ ) { for ( w = 0 , x = 0 ; x !== l ; x ++ ) { v = k [ x ] ; var y = d . iterateEquation ( x , v , v . epsilon , u , t , q , p , a , c ) ; w += Math . abs ( y ) } if ( this . usedIterations ++ , m >= w * w ) break } for ( d . updateMultipliers ( k , q , 1 / a ) , x = 0 ; x !== l ; x ++ ) { var z = k [ x ] ; if ( z instanceof i ) { for ( var A = 0 , B = 0 ; B !== z . contactEquations . length ; B ++ ) A += z . contactEquations [ B ] . multiplier ; A *= z . frictionCoefficient / z . contactEquations . length , z . maxForce = A , z . minForce = - A } } } for ( c = 0 ; c !== g ; c ++ ) { for ( w = 0 , x = 0 ; x !== l ; x ++ ) { v = k [ x ] ; var y = d . iterateEquation ( x , v , v . epsilon , u , t , q , p , a , c ) ; w += Math . abs ( y ) } if ( this . usedIterations ++ , m >= w * w ) break } for ( r = 0 ; r !== o ; r ++ ) n [ r ] . addConstraintVelocity ( ) ; d . updateMultipliers ( k , q , 1 / a ) } } , d . updateMultipliers = function ( a , b , c ) { for ( var d = a . length ; d -- ; ) a [ d ] . multiplier = b [ d ] * c } , d . iterateEquation = function ( a , b , c , d , e , f , g , h , i ) { var j = d [ a ] , k = e [ a ] , l = f [ a ] , m = b . computeGWlambda ( ) , n = b . maxForce , o = b . minForce ; g && ( j = 0 ) ; var p = k * ( j - m - c * l ) , q = l + p ; return o * h > q ? p = o * h - l : q > n * h && ( p = n * h - l ) , f [ a ] += p , b . addToWlambda ( p ) , p } } , { "../equations/FrictionEquation" : 23 , "../math/vec2" : 30 , "../utils/Utils" : 57 , "./Solver" : 47 } ] , 47 : [ function ( a , b , c ) { function d ( a , b ) { a = a || { } , e . call ( this ) , this . type = b , this . equations = [ ] , this . equationSortFunction = a . equationSortFunction || ! 1 } var e = ( a ( "../utils/Utils" ) , a ( "../events/EventEmitter" ) ) ; b . exports = d , d . prototype = new e , d . prototype . constructor = d , d . prototype . solve = function ( a , b ) { throw new Error ( "Solver.solve should be implemented by subclasses!" ) } ; var f = { bodies : [ ] } ; d . prototype . solveIsland = function ( a , b ) { this . removeAllEquations ( ) , b . equations . length && ( this . addEquations ( b . equations ) , f . bodies . length = 0 , b . getBodies ( f . bodies ) , f . bodies . length && this . solve ( a , f ) ) } , d . prototype . sortEquations = function ( ) { this . equationSortFunction && this . equations . sort ( this . equationSortFunction ) } , d . prototype . addEquation = function ( a ) { a . enabled && this . equations . push ( a ) } , d . prototype . addEquations = function ( a ) { for ( var b = 0 , c = a . length ; b !== c ; b ++ ) { var d = a [ b ] ; d . enabled && this . equations . push ( d ) } } , d . prototype . removeEquation = function ( a ) { var b = this . equations . indexOf ( a ) ; - 1 !== b && this . equations . splice ( b , 1 ) } , d . prototype . removeAllEquations = function ( ) { this . equations . length = 0 } , d . GS = 1 , d . ISLAND = 2 } , { "../events/EventEmitter" : 26 , "../utils/Utils" : 57 } ] , 48 : [ function ( a , b , c ) { function d ( ) { f . apply ( this , arguments ) } var e = a ( "../equations/ContactEquation" ) , f = a ( "./Pool" ) ; b . exports = d , d . prototype = new f , d . prototype . constructor = d , d . prototype . create = function ( ) { return new e } , d . prototype . destroy = function ( a ) { return a . bodyA = a . bodyB = null , this } } , { "../equations/ContactEquation" : 21 , "./Pool" : 55 } ] , 49 : [ function ( a , b , c ) { function d ( ) { f . apply ( this , arguments ) } var e = a ( "../equations/FrictionEquation" ) , f = a ( "./Pool" ) ; b . exports = d , d . prototype = new f , d . prototype . constructor = d , d . prototype . create = function ( ) { return new e } , d . prototype . destroy = function ( a ) { return a . bodyA = a . bodyB = null , this } } , { "../equations/FrictionEquation" : 23 , "./Pool" : 55 } ] , 50 : [ function ( a , b , c ) { function d ( ) { f . apply ( this , arguments ) } var e = a ( "../world/IslandNode" ) , f = a ( "./Pool" ) ; b . exports = d , d . prototype = new f , d . prototype . constructor = d , d . prototype . create = function ( ) { return new e } , d . prototype . destroy = function ( a ) { return a . reset ( ) , this } } , { "../world/IslandNode" : 60 , "./Pool" : 55 } ] , 51 : [ function ( a , b , c ) { function d ( ) { f . apply ( this , arguments ) } var e = a ( "../world/Island" ) , f = a ( "./Pool" ) ; b . exports = d , d . prototype = new f , d . prototype . constructor = d , d . prototype . create = function ( ) { retu
2016-07-08 14:46:26 +00:00
var b = this . getChildAt ( a ) ; return this . stage && b . removeStageReference ( ) , b . parent = void 0 , this . children . splice ( a , 1 ) , b } , b . DisplayObjectContainer . prototype . removeChildren = function ( a , b ) { var c = a || 0 , d = "number" == typeof b ? b : this . children . length , e = d - c ; if ( e > 0 && d >= e ) { for ( var f = this . children . splice ( c , e ) , g = 0 ; g < f . length ; g ++ ) { var h = f [ g ] ; this . stage && h . removeStageReference ( ) , h . parent = void 0 } return f } if ( 0 === e && 0 === this . children . length ) return [ ] ; throw new Error ( "removeChildren: Range Error, numeric values are outside the acceptable range" ) } , b . DisplayObjectContainer . prototype . updateTransform = function ( ) { if ( this . visible && ( this . displayObjectUpdateTransform ( ) , ! this . _cacheAsBitmap ) ) for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . updateTransform ( ) } , b . DisplayObjectContainer . prototype . displayObjectContainerUpdateTransform = b . DisplayObjectContainer . prototype . updateTransform , b . DisplayObjectContainer . prototype . getBounds = function ( ) { if ( 0 === this . children . length ) return b . EmptyRectangle ; this . updateTransform ( ) ; for ( var a , c , d , e = 1 / 0 , f = 1 / 0 , g = - ( 1 / 0 ) , h = - ( 1 / 0 ) , i = ! 1 , j = 0 ; j < this . children . length ; j ++ ) { var k = this . children [ j ] ; k . visible && ( i = ! 0 , a = this . children [ j ] . getBounds ( ) , e = e < a . x ? e : a . x , f = f < a . y ? f : a . y , c = a . width + a . x , d = a . height + a . y , g = g > c ? g : c , h = h > d ? h : d ) } if ( ! i ) return b . EmptyRectangle ; var l = this . _bounds ; return l . x = e , l . y = f , l . width = g - e , l . height = h - f , l } , b . DisplayObjectContainer . prototype . getLocalBounds = function ( ) { var a = this . worldTransform ; this . worldTransform = b . identityMatrix ; for ( var c = 0 ; c < this . children . length ; c ++ ) this . children [ c ] . updateTransform ( ) ; var d = this . getBounds ( ) ; for ( this . worldTransform = a , c = 0 ; c < this . children . length ; c ++ ) this . children [ c ] . updateTransform ( ) ; return d } , b . DisplayObjectContainer . prototype . setStageReference = function ( a ) { this . stage = a ; for ( var b = 0 ; b < this . children . length ; b ++ ) this . children [ b ] . setStageReference ( a ) } , b . DisplayObjectContainer . prototype . removeStageReference = function ( ) { for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . removeStageReference ( ) ; this . stage = null } , b . DisplayObjectContainer . prototype . _renderWebGL = function ( a ) { if ( this . visible && ! ( this . alpha <= 0 ) ) { if ( this . _cacheAsBitmap ) return void this . _renderCachedSprite ( a ) ; var b ; if ( this . _mask || this . _filters ) { for ( this . _filters && ( a . spriteBatch . flush ( ) , a . filterManager . pushFilter ( this . _filterBlock ) ) , this . _mask && ( a . spriteBatch . stop ( ) , a . maskManager . pushMask ( this . mask , a ) , a . spriteBatch . start ( ) ) , b = 0 ; b < this . children . length ; b ++ ) this . children [ b ] . _renderWebGL ( a ) ; a . spriteBatch . stop ( ) , this . _mask && a . maskManager . popMask ( this . _mask , a ) , this . _filters && a . filterManager . popFilter ( ) , a . spriteBatch . start ( ) } else for ( b = 0 ; b < this . children . length ; b ++ ) this . children [ b ] . _renderWebGL ( a ) } } , b . DisplayObjectContainer . prototype . _renderCanvas = function ( a ) { if ( this . visible !== ! 1 && 0 !== this . alpha ) { if ( this . _cacheAsBitmap ) return void this . _renderCachedSprite ( a ) ; this . _mask && a . maskManager . pushMask ( this . _mask , a ) ; for ( var b = 0 ; b < this . children . length ; b ++ ) this . children [ b ] . _renderCanvas ( a ) ; this . _mask && a . maskManager . popMask ( a ) } } , b . Sprite = function ( a ) { b . DisplayObjectContainer . call ( this ) , this . anchor = new b . Point , this . texture = a || b . Texture . emptyTexture , this . _width = 0 , this . _height = 0 , this . tint = 16777215 , this . cachedTint = - 1 , this . tintedTexture = null , this . blendMode = b . blendModes . NORMAL , this . shader = null , this . exists = ! 0 , this . texture . baseTexture . hasLoaded && this . onTextureUpdate ( ) , this . renderable = ! 0 } , b . Sprite . prototype = Object . create ( b . DisplayObjectContainer . prototype ) , b . Sprite . prototype . constructor = b . Sprite , Object . defineProperty ( b . Sprite . prototype , "width" , { get : function ( ) { return this . scale . x * this . texture . frame . width } , set : function ( a ) { this . scale . x = a / this . texture . frame . width , this . _width = a } } ) , Object . defineProperty ( b . Sprite . prototype , "height" , { get : function ( ) { return this . scale . y * this . texture . frame . height } , set : function ( a ) { this . scale . y = a / this . texture . frame . height , this . _height = a } } ) , b . Sprite . prototype . setTexture = function ( a , b ) { void 0 !== b && this . texture . baseTexture . destroy ( ) , this . texture . baseTexture . skipRender = ! 1 , this . texture = a , this . texture . valid = ! 0 , this . cachedTint = - 1 } , b . Sprite . prototype . onTextureUpdate = function ( ) { this . _width && ( this . scale . x = this . _width / this . texture . frame . width ) , this . _height && ( this . scale . y =
f . uniform1f ( e . alpha , a . worldAlpha ) , f . bindBuffer ( f . ARRAY _BUFFER , c . buffer ) , f . vertexAttribPointer ( e . aVertexPosition , 2 , f . FLOAT , ! 1 , 24 , 0 ) , f . vertexAttribPointer ( e . colorAttribute , 4 , f . FLOAT , ! 1 , 24 , 8 ) , f . bindBuffer ( f . ELEMENT _ARRAY _BUFFER , c . indexBuffer ) ) } , b . WebGLStencilManager . prototype . popStencil = function ( a , b , c ) { var d = this . gl ; if ( this . stencilStack . pop ( ) , this . count -- , 0 === this . stencilStack . length ) d . disable ( d . STENCIL _TEST ) ; else { var e = this . count ; this . bindGraphics ( a , b , c ) , d . colorMask ( ! 1 , ! 1 , ! 1 , ! 1 ) , 1 === b . mode ? ( this . reverse = ! this . reverse , this . reverse ? ( d . stencilFunc ( d . EQUAL , 255 - ( e + 1 ) , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . INCR ) ) : ( d . stencilFunc ( d . EQUAL , e + 1 , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . DECR ) ) , d . drawElements ( d . TRIANGLE _FAN , 4 , d . UNSIGNED _SHORT , 2 * ( b . indices . length - 4 ) ) , d . stencilFunc ( d . ALWAYS , 0 , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . INVERT ) , d . drawElements ( d . TRIANGLE _FAN , b . indices . length - 4 , d . UNSIGNED _SHORT , 0 ) , this . reverse ? d . stencilFunc ( d . EQUAL , e , 255 ) : d . stencilFunc ( d . EQUAL , 255 - e , 255 ) ) : ( this . reverse ? ( d . stencilFunc ( d . EQUAL , e + 1 , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . DECR ) ) : ( d . stencilFunc ( d . EQUAL , 255 - ( e + 1 ) , 255 ) , d . stencilOp ( d . KEEP , d . KEEP , d . INCR ) ) , d . drawElements ( d . TRIANGLE _STRIP , b . indices . length , d . UNSIGNED _SHORT , 0 ) , this . reverse ? d . stencilFunc ( d . EQUAL , e , 255 ) : d . stencilFunc ( d . EQUAL , 255 - e , 255 ) ) , d . colorMask ( ! 0 , ! 0 , ! 0 , ! 0 ) , d . stencilOp ( d . KEEP , d . KEEP , d . KEEP ) } } , b . WebGLStencilManager . prototype . destroy = function ( ) { this . stencilStack = null , this . gl = null } , b . WebGLShaderManager = function ( ) { this . maxAttibs = 10 , this . attribState = [ ] , this . tempAttribState = [ ] ; for ( var a = 0 ; a < this . maxAttibs ; a ++ ) this . attribState [ a ] = ! 1 ; this . stack = [ ] } , b . WebGLShaderManager . prototype . constructor = b . WebGLShaderManager , b . WebGLShaderManager . prototype . setContext = function ( a ) { this . gl = a , this . primitiveShader = new b . PrimitiveShader ( a ) , this . complexPrimitiveShader = new b . ComplexPrimitiveShader ( a ) , this . defaultShader = new b . PixiShader ( a ) , this . fastShader = new b . PixiFastShader ( a ) , this . stripShader = new b . StripShader ( a ) , this . setShader ( this . defaultShader ) } , b . WebGLShaderManager . prototype . setAttribs = function ( a ) { var b ; for ( b = 0 ; b < this . tempAttribState . length ; b ++ ) this . tempAttribState [ b ] = ! 1 ; for ( b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] ; this . tempAttribState [ c ] = ! 0 } var d = this . gl ; for ( b = 0 ; b < this . attribState . length ; b ++ ) this . attribState [ b ] !== this . tempAttribState [ b ] && ( this . attribState [ b ] = this . tempAttribState [ b ] , this . tempAttribState [ b ] ? d . enableVertexAttribArray ( b ) : d . disableVertexAttribArray ( b ) ) } , b . WebGLShaderManager . prototype . setShader = function ( a ) { return this . _currentId === a . _UID ? ! 1 : ( this . _currentId = a . _UID , this . currentShader = a , this . gl . useProgram ( a . program ) , this . setAttribs ( a . attributes ) , ! 0 ) } , b . WebGLShaderManager . prototype . destroy = function ( ) { this . attribState = null , this . tempAttribState = null , this . primitiveShader . destroy ( ) , this . complexPrimitiveShader . destroy ( ) , this . defaultShader . destroy ( ) , this . fastShader . destroy ( ) , this . stripShader . destroy ( ) , this . gl = null } , b . WebGLSpriteBatch = function ( ) { this . vertSize = 5 , this . size = 2e3 ; var a = 4 * this . size * 4 * this . vertSize , c = 6 * this . size ; this . vertices = new b . ArrayBuffer ( a ) , this . positions = new b . Float32Array ( this . vertices ) , this . colors = new b . Uint32Array ( this . vertices ) , this . indices = new b . Uint16Array ( c ) , this . lastIndexCount = 0 ; for ( var d = 0 , e = 0 ; c > d ; d += 6 , e += 4 ) this . indices [ d + 0 ] = e + 0 , this . indices [ d + 1 ] = e + 1 , this . indices [ d + 2 ] = e + 2 , this . indices [ d + 3 ] = e + 0 , this . indices [ d + 4 ] = e + 2 , this . indices [ d + 5 ] = e + 3 ; this . drawing = ! 1 , this . currentBatchSize = 0 , this . currentBaseTexture = null , this . dirty = ! 0 , this . textures = [ ] , this . blendModes = [ ] , this . shaders = [ ] , this . sprites = [ ] , this . defaultShader = new b . AbstractFilter ( [ "precision lowp float;" , "varying vec2 vTextureCoord;" , "varying vec4 vColor;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;" , "}" ] ) } , b . WebGLSpriteBatch . prototype . setContext = function ( a ) { this . gl = a , this . vertexBuffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , this . indices , a . STATIC _DRAW ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . vertices , a . DYNAMIC _DRAW ) , this . currentBlendMode = 99999 ; var c = new b . PixiShader ( a ) ; c
this . baseTexture . source = this . textureBuffer . canvas ; this . valid = ! 0 , this . tempMatrix = new Phaser . Matrix , this . _updateUvs ( ) } , b . RenderTexture . prototype = Object . create ( b . Texture . prototype ) , b . RenderTexture . prototype . constructor = b . RenderTexture , b . RenderTexture . prototype . resize = function ( a , c , d ) { a === this . width && c === this . height || ( this . valid = a > 0 && c > 0 , this . width = a , this . height = c , this . frame . width = this . crop . width = a * this . resolution , this . frame . height = this . crop . height = c * this . resolution , d && ( this . baseTexture . width = this . width * this . resolution , this . baseTexture . height = this . height * this . resolution ) , this . renderer . type === b . WEBGL _RENDERER && ( this . projection . x = this . width / 2 , this . projection . y = - this . height / 2 ) , this . valid && this . textureBuffer . resize ( this . width , this . height ) ) } , b . RenderTexture . prototype . clear = function ( ) { this . valid && ( this . renderer . type === b . WEBGL _RENDERER && this . renderer . gl . bindFramebuffer ( this . renderer . gl . FRAMEBUFFER , this . textureBuffer . frameBuffer ) , this . textureBuffer . clear ( ) ) } , b . RenderTexture . prototype . renderWebGL = function ( a , b , c ) { if ( this . valid && 0 !== a . alpha ) { var d = a . worldTransform ; d . identity ( ) , d . translate ( 0 , 2 * this . projection . y ) , b && d . append ( b ) , d . scale ( 1 , - 1 ) ; for ( var e = 0 ; e < a . children . length ; e ++ ) a . children [ e ] . updateTransform ( ) ; var f = this . renderer . gl ; f . viewport ( 0 , 0 , this . width * this . resolution , this . height * this . resolution ) , f . bindFramebuffer ( f . FRAMEBUFFER , this . textureBuffer . frameBuffer ) , c && this . textureBuffer . clear ( ) , this . renderer . spriteBatch . dirty = ! 0 , this . renderer . renderDisplayObject ( a , this . projection , this . textureBuffer . frameBuffer , b ) , this . renderer . spriteBatch . dirty = ! 0 } } , b . RenderTexture . prototype . renderCanvas = function ( a , b , c ) { if ( this . valid && 0 !== a . alpha ) { var d = a . worldTransform ; d . identity ( ) , b && d . append ( b ) ; for ( var e = 0 ; e < a . children . length ; e ++ ) a . children [ e ] . updateTransform ( ) ; c && this . textureBuffer . clear ( ) ; var f = this . renderer . resolution ; this . renderer . resolution = this . resolution , this . renderer . renderDisplayObject ( a , this . textureBuffer . context , b ) , this . renderer . resolution = f } } , b . RenderTexture . prototype . getImage = function ( ) { var a = new Image ; return a . src = this . getBase64 ( ) , a } , b . RenderTexture . prototype . getBase64 = function ( ) { return this . getCanvas ( ) . toDataURL ( ) } , b . RenderTexture . prototype . getCanvas = function ( ) { if ( this . renderer . type === b . WEBGL _RENDERER ) { var a = this . renderer . gl , c = this . textureBuffer . width , d = this . textureBuffer . height , e = new Uint8Array ( 4 * c * d ) ; a . bindFramebuffer ( a . FRAMEBUFFER , this . textureBuffer . frameBuffer ) , a . readPixels ( 0 , 0 , c , d , a . RGBA , a . UNSIGNED _BYTE , e ) , a . bindFramebuffer ( a . FRAMEBUFFER , null ) ; var f = new b . CanvasBuffer ( c , d ) , g = f . context . getImageData ( 0 , 0 , c , d ) ; return g . data . set ( e ) , f . context . putImageData ( g , 0 , 0 ) , f . canvas } return this . textureBuffer . canvas } , b . AbstractFilter = function ( a , b ) { this . passes = [ this ] , this . shaders = [ ] , this . dirty = ! 0 , this . padding = 0 , this . uniforms = b || { } , this . fragmentSrc = a || [ ] } , b . AbstractFilter . prototype . constructor = b . AbstractFilter , b . AbstractFilter . prototype . syncUniforms = function ( ) { for ( var a = 0 , b = this . shaders . length ; b > a ; a ++ ) this . shaders [ a ] . dirty = ! 0 } , b . Strip = function ( a ) { b . DisplayObjectContainer . call ( this ) , this . texture = a , this . uvs = new b . Float32Array ( [ 0 , 1 , 1 , 1 , 1 , 0 , 0 , 1 ] ) , this . vertices = new b . Float32Array ( [ 0 , 0 , 100 , 0 , 100 , 100 , 0 , 100 ] ) , this . colors = new b . Float32Array ( [ 1 , 1 , 1 , 1 ] ) , this . indices = new b . Uint16Array ( [ 0 , 1 , 2 , 3 ] ) , this . dirty = ! 0 , this . blendMode = b . blendModes . NORMAL , this . canvasPadding = 0 , this . drawMode = b . Strip . DrawModes . TRIANGLE _STRIP } , b . Strip . prototype = Object . create ( b . DisplayObjectContainer . prototype ) , b . Strip . prototype . constructor = b . Strip , b . Strip . prototype . _renderWebGL = function ( a ) { ! this . visible || this . alpha <= 0 || ( a . spriteBatch . stop ( ) , this . _vertexBuffer || this . _initWebGL ( a ) , a . shaderManager . setShader ( a . shaderManager . stripShader ) , this . _renderStrip ( a ) , a . spriteBatch . start ( ) ) } , b . Strip . prototype . _initWebGL = function ( a ) { var b = a . gl ; this . _vertexBuffer = b . createBuffer ( ) , this . _indexBuffer = b . createBuffer ( ) , this . _uvBuffer = b . createBuffer ( ) , this . _colorBuffer = b . createBuffer ( ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _vertexBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . vertices , b . DYNAMIC _DRAW ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _uvBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . uvs , b . STATIC _DRAW ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _col
var b = this . a , c = this . b , d = this . c , e = this . d ; return this . a = a . a * b + a . b * d , this . b = a . a * c + a . b * e , this . c = a . c * b + a . d * d , this . d = a . c * c + a . d * e , this . tx = a . tx * b + a . ty * d + this . tx , this . ty = a . tx * c + a . ty * e + this . ty , this } , identity : function ( ) { return this . setTo ( 1 , 0 , 0 , 1 , 0 , 0 ) } } , c . identityMatrix = new c . Matrix , PIXI . Matrix = c . Matrix , PIXI . identityMatrix = c . identityMatrix , c . Point = function ( a , b ) { a = a || 0 , b = b || 0 , this . x = a , this . y = b , this . type = c . POINT } , c . Point . prototype = { copyFrom : function ( a ) { return this . setTo ( a . x , a . y ) } , invert : function ( ) { return this . setTo ( this . y , this . x ) } , setTo : function ( a , b ) { return this . x = a || 0 , this . y = b || ( 0 !== b ? this . x : 0 ) , this } , set : function ( a , b ) { return this . x = a || 0 , this . y = b || ( 0 !== b ? this . x : 0 ) , this } , add : function ( a , b ) { return this . x += a , this . y += b , this } , subtract : function ( a , b ) { return this . x -= a , this . y -= b , this } , multiply : function ( a , b ) { return this . x *= a , this . y *= b , this } , divide : function ( a , b ) { return this . x /= a , this . y /= b , this } , clampX : function ( a , b ) { return this . x = c . Math . clamp ( this . x , a , b ) , this } , clampY : function ( a , b ) { return this . y = c . Math . clamp ( this . y , a , b ) , this } , clamp : function ( a , b ) { return this . x = c . Math . clamp ( this . x , a , b ) , this . y = c . Math . clamp ( this . y , a , b ) , this } , clone : function ( a ) { return void 0 === a || null === a ? a = new c . Point ( this . x , this . y ) : a . setTo ( this . x , this . y ) , a } , copyTo : function ( a ) { return a . x = this . x , a . y = this . y , a } , distance : function ( a , b ) { return c . Point . distance ( this , a , b ) } , equals : function ( a ) { return a . x === this . x && a . y === this . y } , angle : function ( a , b ) { return void 0 === b && ( b = ! 1 ) , b ? c . Math . radToDeg ( Math . atan2 ( a . y - this . y , a . x - this . x ) ) : Math . atan2 ( a . y - this . y , a . x - this . x ) } , rotate : function ( a , b , d , e , f ) { return c . Point . rotate ( this , a , b , d , e , f ) } , getMagnitude : function ( ) { return Math . sqrt ( this . x * this . x + this . y * this . y ) } , getMagnitudeSq : function ( ) { return this . x * this . x + this . y * this . y } , setMagnitude : function ( a ) { return this . normalize ( ) . multiply ( a , a ) } , normalize : function ( ) { if ( ! this . isZero ( ) ) { var a = this . getMagnitude ( ) ; this . x /= a , this . y /= a } return this } , isZero : function ( ) { return 0 === this . x && 0 === this . y } , dot : function ( a ) { return this . x * a . x + this . y * a . y } , cross : function ( a ) { return this . x * a . y - this . y * a . x } , perp : function ( ) { return this . setTo ( - this . y , this . x ) } , rperp : function ( ) { return this . setTo ( this . y , - this . x ) } , normalRightHand : function ( ) { return this . setTo ( - 1 * this . y , this . x ) } , floor : function ( ) { return this . setTo ( Math . floor ( this . x ) , Math . floor ( this . y ) ) } , ceil : function ( ) { return this . setTo ( Math . ceil ( this . x ) , Math . ceil ( this . y ) ) } , toString : function ( ) { return "[{Point (x=" + this . x + " y=" + this . y + ")}]" } } , c . Point . prototype . constructor = c . Point , c . Point . add = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x + b . x , d . y = a . y + b . y , d } , c . Point . subtract = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x - b . x , d . y = a . y - b . y , d } , c . Point . multiply = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x * b . x , d . y = a . y * b . y , d } , c . Point . divide = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x / b . x , d . y = a . y / b . y , d } , c . Point . equals = function ( a , b ) { return a . x === b . x && a . y === b . y } , c . Point . angle = function ( a , b ) { return Math . atan2 ( a . y - b . y , a . x - b . x ) } , c . Point . negative = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( - a . x , - a . y ) } , c . Point . multiplyAdd = function ( a , b , d , e ) { return void 0 === e && ( e = new c . Point ) , e . setTo ( a . x + b . x * d , a . y + b . y * d ) } , c . Point . interpolate = function ( a , b , d , e ) { return void 0 === e && ( e = new c . Point ) , e . setTo ( a . x + ( b . x - a . x ) * d , a . y + ( b . y - a . y ) * d ) } , c . Point . perp = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( - a . y , a . x ) } , c . Point . rperp = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( a . y , - a . x ) } , c . Point . distance = function ( a , b , d ) { var e = c . Math . distance ( a . x , a . y , b . x , b . y ) ; return d ? Math . round ( e ) : e } , c . Point . project = function ( a , b , d ) { void 0 === d && ( d = new c . Point ) ; var e = a . dot ( b ) / b . getMagnitudeSq ( ) ; return 0 !== e && d . setTo ( e * b . x , e * b . y ) , d } , c . Point . projectUnit = function ( a , b , d ) { void 0 === d && ( d = new c . Point ) ; var e = a . dot ( b ) ; return 0 !== e && d . setTo ( e * b . x , e * b . y ) , d } , c . Point . normalRightHand = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( - 1 * a . y , a . x ) } , c . Point . normalize = function ( a , b ) { void 0 === b && ( b = new c . Point ) ; var d = a . getMagnitude ( ) ; return 0 !== d && b . setTo ( a . x / d , a . y / d ) , b } , c . Point . rotate = function ( a , b , d , e , f , g ) { if ( f && ( e = c . Math . degToRad ( e ) ) , void 0 === g ) { a . subtract ( b , d ) ; var h = Math . sin ( e ) , i = Math . cos ( e ) , j = i * a . x - h * a
a || ( this . _bindings . length = 0 ) } } , getNumListeners : function ( ) { return this . _bindings ? this . _bindings . length : 0 } , halt : function ( ) { this . _shouldPropagate = ! 1 } , dispatch : function ( ) { if ( this . active && this . _bindings ) { var a , b = Array . prototype . slice . call ( arguments ) , c = this . _bindings . length ; if ( this . memorize && ( this . _prevParams = b ) , c ) { a = this . _bindings . slice ( ) , this . _shouldPropagate = ! 0 ; do c -- ; while ( a [ c ] && this . _shouldPropagate && a [ c ] . execute ( b ) !== ! 1 ) } } } , forget : function ( ) { this . _prevParams && ( this . _prevParams = null ) } , dispose : function ( ) { this . removeAll ( ) , this . _bindings = null , this . _prevParams && ( this . _prevParams = null ) } , toString : function ( ) { return "[Phaser.Signal active:" + this . active + " numListeners:" + this . getNumListeners ( ) + "]" } } , Object . defineProperty ( c . Signal . prototype , "boundDispatch" , { get : function ( ) { var a = this ; return this . _boundDispatch || ( this . _boundDispatch = function ( ) { return a . dispatch . apply ( a , arguments ) } ) } } ) , c . Signal . prototype . constructor = c . Signal , c . SignalBinding = function ( a , b , c , d , e , f ) { this . _listener = b , c && ( this . _isOnce = ! 0 ) , null != d && ( this . context = d ) , this . _signal = a , e && ( this . _priority = e ) , f && f . length && ( this . _args = f ) } , c . SignalBinding . prototype = { context : null , _isOnce : ! 1 , _priority : 0 , _args : null , callCount : 0 , active : ! 0 , params : null , execute : function ( a ) { var b , c ; return this . active && this . _listener && ( c = this . params ? this . params . concat ( a ) : a , this . _args && ( c = c . concat ( this . _args ) ) , b = this . _listener . apply ( this . context , c ) , this . callCount ++ , this . _isOnce && this . detach ( ) ) , b } , detach : function ( ) { return this . isBound ( ) ? this . _signal . remove ( this . _listener , this . context ) : null } , isBound : function ( ) { return ! ! this . _signal && ! ! this . _listener } , isOnce : function ( ) { return this . _isOnce } , getListener : function ( ) { return this . _listener } , getSignal : function ( ) { return this . _signal } , _destroy : function ( ) { delete this . _signal , delete this . _listener , delete this . context } , toString : function ( ) { return "[Phaser.SignalBinding isOnce:" + this . _isOnce + ", isBound:" + this . isBound ( ) + ", active:" + this . active + "]" } } , c . SignalBinding . prototype . constructor = c . SignalBinding , c . Filter = function ( a , b , d ) { this . game = a , this . type = c . WEBGL _FILTER , this . passes = [ this ] , this . shaders = [ ] , this . dirty = ! 0 , this . padding = 0 , this . prevPoint = new c . Point ; var e = new Date ; if ( this . uniforms = { resolution : { type : "2f" , value : { x : 256 , y : 256 } } , time : { type : "1f" , value : 0 } , mouse : { type : "2f" , value : { x : 0 , y : 0 } } , date : { type : "4fv" , value : [ e . getFullYear ( ) , e . getMonth ( ) , e . getDate ( ) , 60 * e . getHours ( ) * 60 + 60 * e . getMinutes ( ) + e . getSeconds ( ) ] } , sampleRate : { type : "1f" , value : 44100 } , iChannel0 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } , iChannel1 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } , iChannel2 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } , iChannel3 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } } , b ) for ( var f in b ) this . uniforms [ f ] = b [ f ] ; this . fragmentSrc = d || "" } , c . Filter . prototype = { init : function ( ) { } , setResolution : function ( a , b ) { this . uniforms . resolution . value . x = a , this . uniforms . resolution . value . y = b } , update : function ( a ) { if ( "undefined" != typeof a ) { var b = a . x / this . game . width , c = 1 - a . y / this . game . height ; b === this . prevPoint . x && c === this . prevPoint . y || ( this . uniforms . mouse . value . x = b . toFixed ( 2 ) , this . uniforms . mouse . value . y = c . toFixed ( 2 ) , this . prevPoint . set ( b , c ) ) } this . uniforms . time . value = this . game . time . totalElapsedSeconds ( ) } , addToWorld : function ( a , b , c , d , e , f ) { void 0 === e && ( e = 0 ) , void 0 === f && ( f = 0 ) , void 0 !== c && null !== c ? this . width = c : c = this . width , void 0 !== d && null !== d ? this . height = d : d = this . height ; var g = this . game . add . image ( a , b , "__default" ) ; return g . width = c , g . height = d , g . anchor . set ( e , f ) , g . filters = [ this ] , g } , destroy : function ( ) { this . game = null } } , c . Filter . prototype . constructor = c . Filter , Object . defineProperty ( c . Filter . prototype , "width" , { get : function ( ) { return this . uniforms . resolution . value . x } , set : function ( a ) { this . uniforms . resolution . value . x = a } } ) , Object . defineProperty ( c . Filter . prototype , "height" , { get : function ( ) { return this . uniforms . resolution . value . y } , set : function ( a ) { this . uniforms . resolution . value . y = a } } ) , c . Plugin = function ( a , b ) { void 0 === b && ( b = null ) , this . game = a , this . parent = b , this . active = ! 1 , this . visible = ! 1 , this . hasPreUpdate = ! 1 , this . hasUpdate = ! 1 , this . hasPostUpdate = ! 1 , this . hasRender = ! 1 , this . hasPostRender = ! 1 } , c . Plugin . prototype = { preUpdate : functio
this . particles = new c . Particles ( this ) , this . create = new c . Create ( this ) , this . plugins = new c . PluginManager ( this ) , this . net = new c . Net ( this ) , this . time . boot ( ) , this . stage . boot ( ) , this . world . boot ( ) , this . scale . boot ( ) , this . input . boot ( ) , this . sound . boot ( ) , this . state . boot ( ) , this . config . enableDebug ? ( this . debug = new c . Utils . Debug ( this ) , this . debug . boot ( ) ) : this . debug = { preUpdate : function ( ) { } , update : function ( ) { } , reset : function ( ) { } } , this . showDebugHeader ( ) , this . isRunning = ! 0 , this . config && this . config . forceSetTimeOut ? this . raf = new c . RequestAnimationFrame ( this , this . config . forceSetTimeOut ) : this . raf = new c . RequestAnimationFrame ( this , ! 1 ) , this . _kickstart = ! 0 , window . focus && ( ! window . PhaserGlobal || window . PhaserGlobal && ! window . PhaserGlobal . stopFocus ) && window . focus ( ) , this . raf . start ( ) ) } , showDebugHeader : function ( ) { if ( ! window . PhaserGlobal || ! window . PhaserGlobal . hideBanner ) { var a = c . VERSION , b = "Canvas" , d = "HTML Audio" , e = 1 ; if ( this . renderType === c . WEBGL ? ( b = "WebGL" , e ++ ) : this . renderType == c . HEADLESS && ( b = "Headless" ) , this . device . webAudio && ( d = "WebAudio" , e ++ ) , this . device . chrome ) { for ( var f = [ "%c %c %c Phaser v" + a + " | Pixi.js | " + b + " | " + d + " %c %c %c http://phaser.io %c♥%c♥%c♥" , "background: #fb8cb3" , "background: #d44a52" , "color: #ffffff; background: #871905;" , "background: #d44a52" , "background: #fb8cb3" , "background: #ffffff" ] , g = 0 ; 3 > g ; g ++ ) e > g ? f . push ( "color: #ff2424; background: #fff" ) : f . push ( "color: #959595; background: #fff" ) ; console . log . apply ( console , f ) } else window . console && console . log ( "Phaser v" + a + " | Pixi.js " + PIXI . VERSION + " | " + b + " | " + d + " | http://phaser.io" ) } } , setUpRenderer : function ( ) { if ( this . config . canvas ? this . canvas = this . config . canvas : this . canvas = c . Canvas . create ( this , this . width , this . height , this . config . canvasID , ! 0 ) , this . config . canvasStyle ? this . canvas . style = this . config . canvasStyle : this . canvas . style [ "-webkit-full-screen" ] = "width: 100%; height: 100%" , this . renderType === c . HEADLESS || this . renderType === c . CANVAS || this . renderType === c . AUTO && ! this . device . webGL ) { if ( ! this . device . canvas ) throw new Error ( "Phaser.Game - Cannot create Canvas or WebGL context, aborting." ) ; this . renderType = c . CANVAS , this . renderer = new PIXI . CanvasRenderer ( this ) , this . context = this . renderer . context } else this . renderType = c . WEBGL , this . renderer = new PIXI . WebGLRenderer ( this ) , this . context = null , this . canvas . addEventListener ( "webglcontextlost" , this . contextLost . bind ( this ) , ! 1 ) , this . canvas . addEventListener ( "webglcontextrestored" , this . contextRestored . bind ( this ) , ! 1 ) ; this . device . cocoonJS && ( this . canvas . screencanvas = this . renderType === c . CANVAS ) , this . renderType !== c . HEADLESS && ( this . stage . smoothed = this . antialias , c . Canvas . addToDOM ( this . canvas , this . parent , ! 1 ) , c . Canvas . setTouchAction ( this . canvas ) ) } , contextLost : function ( a ) { a . preventDefault ( ) , this . renderer . contextLost = ! 0 } , contextRestored : function ( ) { this . renderer . initContext ( ) , this . cache . clearGLTextures ( ) , this . renderer . contextLost = ! 1 } , update : function ( a ) { if ( this . time . update ( a ) , this . _kickstart ) return this . updateLogic ( this . time . desiredFpsMult ) , this . updateRender ( this . time . slowMotion * this . time . desiredFps ) , void ( this . _kickstart = ! 1 ) ; if ( this . _spiraling > 1 && ! this . forceSingleUpdate ) this . time . time > this . _nextFpsNotification && ( this . _nextFpsNotification = this . time . time + 1e4 , this . fpsProblemNotifier . dispatch ( ) ) , this . _deltaTime = 0 , this . _spiraling = 0 , this . updateRender ( this . time . slowMotion * this . time . desiredFps ) ; else { var b = 1e3 * this . time . slowMotion / this . time . desiredFps ; this . _deltaTime += Math . max ( Math . min ( 3 * b , this . time . elapsed ) , 0 ) ; var c = 0 ; for ( this . updatesThisFrame = Math . floor ( this . _deltaTime / b ) , this . forceSingleUpdate && ( this . updatesThisFrame = Math . min ( 1 , this . updatesThisFrame ) ) ; this . _deltaTime >= b && ( this . _deltaTime -= b , this . currentUpdateID = c , this . updateLogic ( this . time . desiredFpsMult ) , c ++ , ! this . forceSingleUpdate || 1 !== c ) ; ) this . time . refresh ( ) ; c > this . _lastCount ? this . _spiraling ++ : c < this . _lastCount && ( this . _spiraling = 0 ) , this . _lastCount = c , this . updateRender ( this . _deltaTime / b ) } } , updateLogic : function ( a ) { this . _paused || this . pendingStep ? ( this . scale . pauseUpdate ( ) , this . state . pauseUpdate ( ) , this . debug . preUpdate ( ) ) : ( this . stepping && ( this . pendingStep = ! 0 ) , this . scale . preUpdate ( ) , this . debug . preUpdate ( ) , this . camera . preUpdate ( ) , this . physics . preUpdate (
this . position . setTo ( this . x , this . y ) , this . circle . x = this . x , this . circle . y = this . y , ( d . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || d . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || d . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === d . totalActivePointers ) && ( d . activePointer = this , d . x = this . x , d . y = this . y , d . position . setTo ( d . x , d . y ) , d . circle . x = d . x , d . circle . y = d . y ) , this . withinGame = this . game . scale . bounds . contains ( this . pageX , this . pageY ) , this . game . paused ) return this ; for ( var e = d . moveCallbacks . length ; e -- ; ) d . moveCallbacks [ e ] . callback . call ( d . moveCallbacks [ e ] . context , this , this . x , this . y , b ) ; return null !== this . targetObject && this . targetObject . isDragged === ! 0 ? this . targetObject . update ( this ) === ! 1 && ( this . targetObject = null ) : d . interactiveItems . total > 0 && this . processInteractiveObjects ( b ) , this } } , processInteractiveObjects : function ( a ) { var b = 0 , c = - 1 , d = null , e = this . game . input . interactiveItems . first ; for ( this . interactiveCandidates = [ ] ; e ; ) e . checked = ! 1 , e . validForInput ( c , b , ! 1 ) && ( e . checked = ! 0 , ( a && e . checkPointerDown ( this , ! 0 ) || ! a && e . checkPointerOver ( this , ! 0 ) ) && ( b = e . sprite . renderOrderID , c = e . priorityID , d = e , this . interactiveCandidates . push ( e ) ) ) , e = this . game . input . interactiveItems . next ; for ( e = this . game . input . interactiveItems . first ; e ; ) ! e . checked && e . validForInput ( c , b , ! 0 ) && ( a && e . checkPointerDown ( this , ! 1 ) || ! a && e . checkPointerOver ( this , ! 1 ) ) && ( b = e . sprite . renderOrderID , c = e . priorityID , d = e , this . interactiveCandidates . push ( e ) ) , e = this . game . input . interactiveItems . next ; return this . game . input . customCandidateHandler && ( d = this . game . input . customCandidateHandler . call ( this . game . input . customCandidateHandlerContext , this , this . interactiveCandidates , d ) ) , this . swapTarget ( d , ! 1 ) , null !== this . targetObject } , swapTarget : function ( a , b ) { void 0 === b && ( b = ! 1 ) , null === a ? this . targetObject && ( this . targetObject . _pointerOutHandler ( this , b ) , this . targetObject = null ) : null === this . targetObject ? ( this . targetObject = a , a . _pointerOverHandler ( this , b ) ) : this . targetObject === a ? a . update ( this ) === ! 1 && ( this . targetObject = null ) : ( this . targetObject . _pointerOutHandler ( this , b ) , this . targetObject = a , this . targetObject . _pointerOverHandler ( this , b ) ) } , leave : function ( a ) { this . withinGame = ! 1 , this . move ( a , ! 1 ) } , stop : function ( a ) { var b = this . game . input ; return this . _stateReset && this . withinGame ? void a . preventDefault ( ) : ( this . timeUp = this . game . time . time , ( b . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || b . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || b . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === b . totalActivePointers ) && ( b . onUp . dispatch ( this , a ) , this . duration >= 0 && this . duration <= b . tapRate && ( this . timeUp - this . previousTapTime < b . doubleTapRate ? b . onTap . dispatch ( this , ! 0 ) : b . onTap . dispatch ( this , ! 1 ) , this . previousTapTime = this . timeUp ) ) , this . isMouse ? this . updateButtons ( a ) : ( this . isDown = ! 1 , this . isUp = ! 0 ) , this . id > 0 && ( this . active = ! 1 ) , this . withinGame = this . game . scale . bounds . contains ( a . pageX , a . pageY ) , this . pointerId = null , this . identifier = null , this . positionUp . setTo ( this . x , this . y ) , this . isMouse === ! 1 && b . currentPointers -- , b . interactiveItems . callAll ( "_releasedHandler" , this ) , this . _clickTrampolines && ( this . _trampolineTargetObject = this . targetObject ) , this . targetObject = null , this ) } , justPressed : function ( a ) { return a = a || this . game . input . justPressedRate , this . isDown === ! 0 && this . timeDown + a > this . game . time . time } , justReleased : function ( a ) { return a = a || this . game . input . justReleasedRate , this . isUp && this . timeUp + a > this . game . time . time } , addClickTrampoline : function ( a , b , c , d ) { if ( this . isDown ) { for ( var e = this . _clickTrampolines = this . _clickTrampolines || [ ] , f = 0 ; f < e . length ; f ++ ) if ( e [ f ] . name === a ) { e . splice ( f , 1 ) ; break } e . push ( { name : a , targetObject : this . targetObject , callback : b , callbackContext : c , callbackArgs : d } ) } } , processClickTrampolines : function ( ) { var a = this . _clickTrampolines ; if ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] ; c . targetObject === this . _trampolineTargetObject && c . callback . apply ( c . callbackContext , c . callbackArgs ) } this . _clickTrampolines = null , this . _trampolineTargetObject = null } } , reset : function ( ) { this . isMouse === ! 1 && ( this . active = ! 1 ) , this . pointerId = null , this . identifier = null , this . dirty = ! 1 , this . totalTouches = 0 , this . _holdSent = ! 1 , this . _history . length = 0 , this . _stateReset = ! 0 , this . resetButtons ( ) , this . targetObject && this . targetObject .
this . _axesLen = 0 } , c . SinglePad . 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 ) } , getButton : function ( a ) { return this . _buttons [ a ] ? this . _buttons [ a ] : null } , pollStatus : function ( ) { if ( this . connected && this . game . input . enabled && this . game . input . gamepad . enabled && ( ! this . _rawPad . timestamp || this . _rawPad . timestamp !== this . _prevTimestamp ) ) { for ( var a = 0 ; a < this . _buttonsLen ; a ++ ) { var b = isNaN ( this . _rawPad . buttons [ a ] ) ? this . _rawPad . buttons [ a ] . value : this . _rawPad . buttons [ a ] ; b !== this . _buttons [ a ] . value && ( 1 === b ? this . processButtonDown ( a , b ) : 0 === b ? this . processButtonUp ( a , b ) : this . processButtonFloat ( a , b ) ) } for ( var c = 0 ; c < this . _axesLen ; c ++ ) { var d = this . _rawPad . axes [ c ] ; d > 0 && d > this . deadZone || 0 > d && d < - this . deadZone ? this . processAxisChange ( c , d ) : this . processAxisChange ( c , 0 ) } this . _prevTimestamp = this . _rawPad . timestamp } } , connect : function ( a ) { var b = ! this . connected ; this . connected = ! 0 , this . index = a . index , this . _rawPad = a , this . _buttons = [ ] , this . _buttonsLen = a . buttons . length , this . _axes = [ ] , this . _axesLen = a . axes . length ; for ( var d = 0 ; d < this . _axesLen ; d ++ ) this . _axes [ d ] = a . axes [ d ] ; for ( var e in a . buttons ) e = parseInt ( e , 10 ) , this . _buttons [ e ] = new c . DeviceButton ( this , e ) ; b && this . _padParent . onConnectCallback && this . _padParent . onConnectCallback . call ( this . _padParent . callbackContext , this . index ) , b && this . onConnectCallback && this . onConnectCallback . call ( this . callbackContext ) } , disconnect : function ( ) { var a = this . connected , b = this . index ; this . connected = ! 1 , this . index = null , this . _rawPad = void 0 ; for ( var c = 0 ; c < this . _buttonsLen ; c ++ ) this . _buttons [ c ] . destroy ( ) ; this . _buttons = [ ] , this . _buttonsLen = 0 , this . _axes = [ ] , this . _axesLen = 0 , a && this . _padParent . onDisconnectCallback && this . _padParent . onDisconnectCallback . call ( this . _padParent . callbackContext , b ) , a && this . onDisconnectCallback && this . onDisconnectCallback . call ( this . callbackContext ) } , destroy : function ( ) { this . _rawPad = void 0 ; for ( var a = 0 ; a < this . _buttonsLen ; a ++ ) this . _buttons [ a ] . destroy ( ) ; this . _buttons = [ ] , this . _buttonsLen = 0 , this . _axes = [ ] , this . _axesLen = 0 , this . onConnectCallback = null , this . onDisconnectCallback = null , this . onDownCallback = null , this . onUpCallback = null , this . onAxisCallback = null , this . onFloatCallback = null } , processAxisChange : function ( a , b ) { this . _axes [ a ] !== b && ( this . _axes [ a ] = b , this . _padParent . onAxisCallback && this . _padParent . onAxisCallback . call ( this . _padParent . callbackContext , this , a , b ) , this . onAxisCallback && this . onAxisCallback . call ( this . callbackContext , this , a , b ) ) } , processButtonDown : function ( a , b ) { this . _buttons [ a ] && this . _buttons [ a ] . start ( null , b ) , this . _padParent . onDownCallback && this . _padParent . onDownCallback . call ( this . _padParent . callbackContext , a , b , this . index ) , this . onDownCallback && this . onDownCallback . call ( this . callbackContext , a , b ) } , processButtonUp : function ( a , b ) { this . _padParent . onUpCallback && this . _padParent . onUpCallback . call ( this . _padParent . callbackContext , a , b , this . index ) , this . onUpCallback && this . onUpCallback . call ( this . callbackContext , a , b ) , this . _buttons [ a ] && this . _buttons [ a ] . stop ( null , b ) } , processButtonFloat : function ( a , b ) { this . _padParent . onFloatCallback && this . _padParent . onFloatCallback . call ( this . _padParent . callbackContext , a , b , this . index ) , this . onFloatCallback && this . onFloatCallback . call ( this . callbackContext , a , b ) , this . _buttons [ a ] && this . _buttons [ a ] . padFloat ( b ) } , axis : function ( a ) { return this . _axes [ a ] ? this . _axes [ a ] : ! 1 } , isDown : function ( a ) { return this . _buttons [ a ] ? this . _buttons [ a ] . isDown : ! 1 } , isUp : function ( a ) { return this . _buttons [ a ] ? this . _buttons [ a ] . isUp : ! 1 } , justReleased : function ( a , b ) { return this . _buttons [ a ] ? this . _buttons [ a ] . justReleased ( b ) : void 0 } , justPressed : function ( a , b ) { return this . _buttons [ a ] ? this . _buttons [ a ] . justPressed ( b ) : void 0 } , buttonValue : function ( a ) { return this . _buttons [ a ] ? this . _button
return a . init . apply ( a , b ) , a } , plugin : function ( a ) { return this . game . plugins . add ( a ) } } , c . GameObjectFactory . prototype . constructor = c . GameObjectFactory , c . GameObjectCreator = function ( a ) { this . game = a , this . world = this . game . world } , c . GameObjectCreator . prototype = { image : function ( a , b , d , e ) { return new c . Image ( this . game , a , b , d , e ) } , sprite : function ( a , b , d , e ) { return new c . Sprite ( this . game , a , b , d , e ) } , tween : function ( a ) { return new c . Tween ( a , this . game , this . game . tweens ) } , group : function ( a , b , d , e , f ) { return new c . Group ( this . game , a , b , d , e , f ) } , spriteBatch : function ( a , b , d ) { return 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 ) } , audioSprite : function ( a ) { return this . game . sound . addSprite ( a ) } , sound : function ( a , b , c , d ) { return this . game . sound . add ( a , b , c , d ) } , tileSprite : function ( a , b , d , e , f , g ) { return new c . TileSprite ( this . game , a , b , d , e , f , g ) } , rope : function ( a , b , d , e , f ) { return new c . Rope ( this . game , a , b , d , e , f ) } , text : function ( a , b , d , e ) { return new c . Text ( this . game , a , b , d , e ) } , button : function ( a , b , d , e , f , g , h , i , j ) { return new c . Button ( this . game , a , b , d , e , f , g , h , i , j ) } , graphics : function ( a , b ) { return new c . Graphics ( this . game , a , b ) } , emitter : function ( a , b , d ) { return 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 new c . BitmapText ( this . game , a , b , d , e , f , g ) } , 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 } , bitmapData : function ( a , b , d , e ) { void 0 === e && ( e = ! 1 ) , void 0 !== d && "" !== d || ( d = this . game . rnd . uuid ( ) ) ; var f = new c . BitmapData ( this . game , d , a , b ) ; return e && this . game . cache . addBitmapData ( d , f ) , f } , filter : function ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) , a = new c . Filter [ a ] ( this . game ) ; return a . init . apply ( a , b ) , a } } , c . GameObjectCreator . prototype . constructor = c . GameObjectCreator , c . Sprite = function ( a , b , d , e , f ) { b = b || 0 , d = d || 0 , e = e || null , f = f || null , this . type = c . SPRITE , this . physicsType = c . SPRITE , PIXI . Sprite . call ( this , c . Cache . DEFAULT ) , c . Component . Core . init . call ( this , a , b , d , e , f ) } , c . Sprite . prototype = Object . create ( PIXI . Sprite . prototype ) , c . Sprite . prototype . constructor = c . Sprite , c . Component . Core . install . call ( c . Sprite . prototype , [ "Angle" , "Animation" , "AutoCull" , "Bounds" , "BringToTop" , "Crop" , "Delta" , "Destroy" , "FixedToCamera" , "Health" , "InCamera" , "InputEnabled" , "InWorld" , "LifeSpan" , "LoadTexture" , "Overlap" , "PhysicsBody" , "Reset" , "ScaleMinMax" , "Smoothed" ] ) , c . Sprite . prototype . preUpdatePhysics = c . Component . PhysicsBody . preUpdate , c . Sprite . prototype . preUpdateLifeSpan = c . Component . LifeSpan . preUpdate , c . Sprite . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . Sprite . prototype . preUpdateCore = c . Component . Core . preUpdate , c . Sprite . prototype . preUpdate = function ( ) { return this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ? this . preUpdateCore ( ) : ! 1 } , c . Image = function ( a , b , d , e , f ) { b = b || 0 , d = d || 0 , e = e || null , f = f || null , this . type = c . IMAGE , PIXI . Sprite . call ( this , c . Cache . DEFAULT ) , c . Component . Core . init . call ( this , a , b , d , e , f ) } , c . Image . prototype = Object . create ( PIXI . Sprite . prototype ) , c . Image . prototype . constructor = c . Image , c . Component . Core . install . call ( c . Image . prototype , [ "Angle" , "Animation" , "AutoCull" , "Bounds" , "BringToTop" , "Crop" , "Destroy" , "FixedToCamera" , "InputEnabled" , "LifeSpan" , "LoadTexture" , "Overlap" , "Reset" , "Smoothed" ] ) , c . Image . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . Image . prototype . preUpdateCore = c . Component . Core . preUpdate , c . Image . prototype . preUpdate = function ( ) { return this . preUpdateInWorld ( ) ? this . preUpdateCore ( ) : ! 1 } , c . Button = function ( a , b , d , e , f , g , h , i , j , k ) { b = b || 0 , d = d || 0 , e = e || null , f = f || null , g = g || this , c . Image . call ( this , a , b , d , e , i ) , this . type = c . BUTTON , this . physicsType = c . SPRITE , this . _onOverFrame = null , this . _onOutFrame = null , this . _onDownFrame = null , this . _onUpFrame = null , this . onOverSound = null , this . onOutSound = null , this . onDownSound = null , this . onUpSound = null , this . onOverSoundMarker = "" , this . onOutSoundMarker = "" , this . onDownSoundMarker =
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 = 0 , b = 0 , d = 0 , e = 0 ; var q = this . boundsPadding ; this . _localBounds . x = a - q , this . _localBounds . width = b - a + 2 * q , this . _localBounds . y = d - q , this . _localBounds . height = e - d + 2 * q } , PIXI . Graphics . prototype . _generateCachedSprite = function ( ) { var a = this . getLocalBounds ( ) ; if ( this . _cachedSprite ) this . _cachedSprite . buffer . resize ( a . width , a . height ) ; else { var b = new PIXI . CanvasBuffer ( a . width , a . height ) , c = PIXI . Texture . fromCanvas ( b . canvas ) ; this . _cachedSprite = new PIXI . Sprite ( c ) , this . _cachedSprite . buffer = b , this . _cachedSprite . worldTransform = this . worldTransform } this . _cachedSprite . anchor . x = - ( a . x / a . width ) , this . _cachedSprite . anchor . y = - ( a . y / a . height ) , this . _cachedSprite . buffer . context . translate ( - a . x , - a . y ) , this . worldAlpha = 1 , PIXI . CanvasGraphics . renderGraphics ( this , this . _cachedSprite . buffer . context ) , this . _cachedSprite . alpha = this . alpha } , PIXI . Graphics . prototype . updateCachedSpriteTexture = function ( ) { var a = this . _cachedSprite , b = a . texture , c = a . buffer . canvas ; b . baseTexture . width = c . width , b . baseTexture . height = c . height , b . crop . width = b . frame . width = c . width , b . crop . height = b . frame . height = c . height , a . _width = c . width , a . _height = c . height , b . baseTexture . dirty ( ) } , PIXI . Graphics . prototype . destroyCachedSprite = function ( ) { this . _cachedSprite . texture . destroy ( ! 0 ) , this . _cachedSprite = null } , PIXI . Graphics . prototype . drawShape = function ( a ) { this . currentPath && this . currentPath . shape . points . length <= 2 && this . graphicsData . pop ( ) , this . currentPath = null , a instanceof c . Polygon && ( a = a . clone ( ) , a . flatten ( ) ) ; var b = new PIXI . GraphicsData ( this . lineWidth , this . lineColor , this . lineAlpha , this . fillColor , this . fillAlpha , this . filling , a ) ; return this . graphicsData . push ( b ) , b . type === PIXI . Graphics . POLY && ( b . shape . closed = this . filling , this . currentPath = b ) , this . dirty = ! 0 , this . updateLocalBounds ( ) , b } , Object . defineProperty ( PIXI . Graphics . prototype , "cacheAsBitmap" , { get : function ( ) { return this . _cacheAsBitmap } , set : function ( a ) { this . _cacheAsBitmap = a , this . _cacheAsBitmap ? this . _generateCachedSprite ( ) : this . destroyCachedSprite ( ) , this . dirty = ! 0 , this . webGLDirty = ! 0 } } ) , PIXI . GraphicsData = function ( a , b , c , d , e , f , g ) { this . lineWidth = a , this . lineColor = b , this . lineAlpha = c , this . _lineTint = b , this . fillColor = d , this . fillAlpha = e , this . _fillTint = d , this . fill = f , this . shape = g , this . type = g . type } , PIXI . GraphicsData . prototype . constructor = PIXI . GraphicsData , PIXI . GraphicsData . prototype . clone = function ( ) { return new GraphicsData ( this . lineWidth , this . lineColor , this . lineAlpha , this . fillColor , this . fillAlpha , this . fill , this . shape ) } , PIXI . PolyK = { } , PIXI . PolyK . Triangulate = function ( a ) { var b = ! 0 , c = a . length >> 1 ; if ( 3 > c ) return [ ] ; for ( var d = [ ] , e = [ ] , f
0 === c ? this . context . strokeText ( b [ h ] , r , s ) : this . renderTabLine ( b [ h ] , r , s , ! 1 ) ) , this . style . fill && ( this . updateShadow ( this . style . shadowFill ) , 0 === c ? this . context . fillText ( b [ h ] , r , s ) : this . renderTabLine ( b [ h ] , r , s , ! 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 . measureLine = function ( a ) { for ( var b = 0 , c = 0 ; c < a . length ; c ++ ) { var d = a [ c ] ; if ( this . fontWeights . length > 0 || this . fontStyles . length > 0 ) { var e = this . fontToComponents ( this . context . font ) ; this . fontStyles [ this . _charCount ] && ( e . fontStyle = this . fontStyles [ this . _charCount ] ) , this . fontWeights [ this . _charCount ] && ( e . fontWeight = this . fontWeights [ this . _charCount ] ) , this . context . font = this . componentsToFont ( e ) } this . style . stroke && this . style . strokeThickness && ( this . strokeColors [ this . _charCount ] && ( this . context . strokeStyle = this . strokeColors [ this . _charCount ] ) , this . updateShadow ( this . style . shadowStroke ) ) , this . style . fill && ( this . colors [ this . _charCount ] && ( this . context . fillStyle = this . colors [ this . _charCount ] ) , this . updateShadow ( this . style . shadowFill ) ) , b += this . context . measureText ( d ) . width , this . _charCount ++ } return Math . ceil ( b ) } , 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 , this . dirty = ! 0 , this } , c . Text . prototype . addStrokeColor = function ( a , b ) { return this . strokeColors [ b ] = a , this . dirty = ! 0 , this } , c . Text . prototype . addFontStyle = function ( a , b ) { return this . fontStyles [ b ] = a , this . dirty = ! 0 , this } , c . Text . prototype . addFontWeight = function ( a , b ) { return this . fontWeights [ b ] = a , this . dirty = ! 0 , this } , c . Text . prototype . precalculateWordWrap = function ( a ) { this . texture . baseTexture . resolution = this . _res , this . context . font = this . style . font ; var b = this . runWordWrap ( a ) ; return b . split ( /(?:\r\n|\r|\n)/ ) } , c . Text . prototype . runWordWrap = function ( a ) { return this . useAdvancedWrap ? this . advancedWordWrap ( a ) : this . basicWordWrap ( a ) } , c . Text . prototype . advancedWordWrap = function ( a ) { for ( var b = this . context , c = this . style . wordWrapWidth , d = "" , e = a . replace ( / +/gi , " " ) . split ( /\r?\n/gi ) , f = e . length , g = 0 ; f > g ; g ++ ) { var h = e [ g ] , i = "" ; h = h . replace ( /^ *|\s*$/gi , "" ) ; var j = b . measureText ( h ) . width ; if ( c > j ) d += h + "\n" ; else { for ( var k = c , l = h . split ( " " ) , m = 0 ; m < l . length ; m ++ ) { var n = l [ m ] , o = n + " " , p = b . measureText ( o ) . width ; if ( p > k ) { if ( 0 === m ) { for ( var q = o ; q . length && ( q = q . slice ( 0 , - 1 ) , p = b . measureText ( q ) . width , ! ( k >= p ) ) ; ) ; if ( ! q . length ) throw new Error ( " This text ' s wordWrapWidth setting is less than a single character !
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 ) ) } catch ( c ) { } } function g ( ) { l . audioData = ! ! window . Audio , l . webAudio = ! ( ! window . AudioContext && ! window . webkitAudioContext ) ; var a = document . createElement ( "audio" ) , b = ! 1 ; try { if ( ( b = ! ! a . canPlayType ) && ( a . canPlayType ( 'audio/ogg; codecs="vorbis"' ) . replace ( /^no$/ , "" ) && ( l . ogg = ! 0 ) , ( a . canPlayType ( 'audio/ogg; codecs="opus"' ) . replace ( /^no$/ , "" ) || a . canPlayType ( "audio/opus;" ) . replace ( /^no$/ , "" ) ) && ( l . opus = ! 0 ) , a . canPlayType ( "audio/mpeg;" ) . replace ( /^no$/ , "" ) && ( l . mp3 = ! 0 ) , a . canPlayType ( 'audio/wav; codecs="1"' ) . replace ( /^no$/ , "" ) && ( l . wav = ! 0 ) , ( a . canPlayType ( "audio/x-m4a;" ) || a . canPlayType ( "audio/aac;" ) . replace ( /^no$/ , "" ) ) && ( l . m4a = ! 0 ) , a . canPlayType ( 'audio/webm; codecs="vorbis"' ) . replace ( /^no$/ , "" ) && ( l . webm = ! 0 ) , "" !== a . canPlayType ( 'audio/mp4;codecs="ec-3"' ) ) ) if ( l . edge ) l . dolby = ! 0 ; else if ( l . safari && l . safariVersion >= 9 && /Mac OS X (\d+)_(\d+)/ . test ( navigator . userAgent ) ) { var c = parseInt ( RegExp . $1 , 10 ) , d = parseInt ( RegExp . $2 , 10 ) ; ( 10 === c && d >= 11 || c > 10 ) && ( l . dolby = ! 0 ) } } catch ( e ) { } } function h ( ) { l . pixelRatio = window . devicePixelRatio || 1 , l . iPhone = - 1 != navigator . userAgent . toLowerCas
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 * ( ( b + 1 ) * a - b ) ) : . 5 * ( ( a -= 2 ) * a * ( ( b + 1 ) * a + b ) + 2 ) } } , Bounce : { In : function ( a ) { return 1 - c . Easing . Bounce . Out ( 1 - a ) } , Out : function ( a ) { return 1 / 2.75 > a ? 7.5625 * a * a : 2 / 2.75 > a ? 7.5625 * ( a -= 1.5 / 2.75 ) * a + . 75 : 2.5 / 2.75 > a ? 7.5625 * ( a -= 2.25 / 2.75 ) * a + . 9375 : 7.5625 * ( a -= 2.625 / 2.75 ) * a + . 984375 } , InOut : function ( a ) { return . 5 > a ? . 5 * c . Easing . Bounce . In ( 2 * a ) : . 5 * c . Easing . Bounce . Out ( 2 * a - 1 ) + . 5 } } } , c . Easing . Default = c . Easing . Linear . None , c . Easing . Power0 = c . Easing . Linear . None , c . Easing . Power1 = c . Easing . Quadratic . Out , c . Easing . Power2 = c . Easing . Cubic . Out , c . Easing . Power3 = c . Easing . Quartic . Out , c . Easing . Power4 = c . Easing . Quintic . Out , c . Time = function ( a ) { this . game = a , this . time = 0 , this . prevTime = 0 , this . now = 0 , this . elapsed = 0 , this . elapsedMS = 0 , this . physicsElapsed = 1 / 60 , this . physicsElapsedMS = 1 / 60 * 1e3 , this . desiredFpsMult = 1 / 60 , this . _desiredFps = 60 , this . suggestedFps = this . desiredFps , this . slowMotion = 1 , this . advancedTiming = ! 1 , th
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 ] } , checkURL : function ( a ) { return ! ! this . _urlMap [ this . _resolveURL ( a ) ] } , 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 } , getTextureFrame : function ( a ) { return this . getItem ( a , c . Cache . TEXTURE , "getTextureFrame" , "frame" ) } , getSound : function ( a ) { return this . getItem ( a , c . Cache . SOUND , "getSound" ) } , getSoundData : function ( a ) { return this . getItem ( a , c . Cache .
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 . 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 . _tempPause = 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 !== c && null !== c || ( c = 1 ) , 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 . isPlaying = ! 1 , "" === this . currentMarker ? ( this . currentTime = 0 , this . startTime = this . game . time . time , this . isPlaying = ! 0 ) : ( 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 . currentMarker && ( this . currentTime = 0 , this . startTime = this . game . time . time ) , this . isPlaying = ! 1 , this . play ( this . currentMarker , 0 , this . volume , ! 0 , ! 0 ) ) : this . stop ( ) ) ) ) ) : void this . destroy ( ) } , loopFull : function ( a ) { this . play ( null , 0 , a , ! 0 ) } , play : function ( a , b , c , d , e ) { if ( void 0 !== a && a !== ! 1 && null !== a || ( a = "" ) , void 0 === e && ( e = ! 0 ) , this . isPlaying && ! this . allowMultiple && ! e && ! this . override ) return this ; if ( this . _sound && this . isPlaying && ! this . allowMultiple && ( this . override || e ) ) if ( this . usingWebAudi
this . updateLayout ( ) , this . queueUpdate ( ! 0 ) ) : ( this . prepScreenMode ( ! 1 ) , 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 . ren
return d } , interpolateColor : function ( a , b , d , e , f ) { void 0 === f && ( f = 255 ) ; var g = c . Color . getRGB ( a ) , h = c . Color . getRGB ( b ) , i = ( h . red - g . red ) * e / d + g . red , j = ( h . green - g . green ) * e / d + g . green , k = ( h . blue - g . blue ) * e / d + g . blue ; return c . Color . getColor32 ( f , i , j , k ) } , interpolateColorWithRGB : function ( a , b , d , e , f , g ) { var h = c . Color . getRGB ( a ) , i = ( b - h . red ) * g / f + h . red , j = ( d - h . green ) * g / f + h . green , k = ( e - h . blue ) * g / f + h . blue ; return c . Color . getColor ( i , j , k ) } , interpolateRGB : function ( a , b , d , e , f , g , h , i ) { var j = ( e - a ) * i / h + a , k = ( f - b ) * i / h + b , l = ( g - d ) * i / h + d ; return c . Color . getColor ( j , k , l ) } , getRandomColor : function ( a , b , d ) { if ( void 0 === a && ( a = 0 ) , void 0 === b && ( b = 255 ) , void 0 === d && ( d = 255 ) , b > 255 || a > b ) return c . Color . getColor ( 255 , 255 , 255 ) ; 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 .
this . position . y -= this . sprite . scale . y < 0 ? this . height : 0 , this . prev . x = this . position . x , this . prev . y = this . position . y , this . rotation = this . sprite . angle , this . preRotation = this . rotation , this . _sx = this . sprite . scale . x , this . _sy = this . sprite . scale . y , this . center . setTo ( this . position . x + this . halfWidth , this . position . y + this . halfHeight ) } , getBounds : function ( a ) { return this . isCircle ? ( a . x = this . center . x - this . radius , a . y = this . center . y - this . radius , a . right = this . center . x + this . radius , a . bottom = this . center . y + this . radius ) : ( a . x = this . x , a . y = this . y , a . right = this . right , a . bottom = this . bottom ) , a } , hitTest : function ( a , b ) { return this . isCircle ? c . Circle . contains ( this , a , b ) : c . Rectangle . contains ( this , a , b ) } , onFloor : function ( ) { return this . blocked . down } , onCeiling : function ( ) { return this . blocked . up } , onWall : function ( ) { return this . blocked . left || this . blocked . right } , deltaAbsX : function ( ) { return this . deltaX ( ) > 0 ? this . deltaX ( ) : - this . deltaX ( ) } , deltaAbsY : function ( ) { return this . deltaY ( ) > 0 ? this . deltaY ( ) : - this . deltaY ( ) } , deltaX : function ( ) { return this . position . x - this . prev . x } , deltaY : function ( ) { return this . position . y - this . prev . y } , deltaZ : function ( ) { return this . rotation - this . preRotation } , destroy : function ( ) { this . sprite . parent && this . sprite . parent instanceof c . Group && this . sprite . parent . removeFromHash ( this . sprite ) , this . sprite . body = null , this . sprite = null } } , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "left" , { get : function ( ) { return this . position . x } } ) , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "right" , { get : function ( ) { return this . position . x + this . width } } ) , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "top" , { get : function ( ) { return this . position . y } } ) , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "bottom" , { get : function ( ) { return this . position . y + this . height } } ) , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "x" , { get : function ( ) { return this . position . x } , set : function ( a ) { this . position . x = a } } ) , Object . defineProperty ( c . Physics . Arcade . Body . prototype , "y" , { get : function ( ) { return this . position . y } , set : function ( a ) { this . position . y = a } } ) , c . Physics . Arcade . Body . render = function ( a , b , c , d ) { void 0 === d && ( d = ! 0 ) , c = c || "rgba(0,255,0,0.4)" , a . fillStyle = c , a . strokeStyle = c , b . isCircle ? ( a . beginPath ( ) , a . arc ( b . center . x - b . game . camera . x , b . center . y - b . game . camera . y , b . radius , 0 , 2 * Math . PI ) , d ? a . fill ( ) : a . stroke ( ) ) : d ? a . fillRect ( b . position . x - b . game . camera . x , b . position . y - b . game . camera . y , b . width , b . height ) : a . strokeRect ( b . position . x - b . game . camera . x , b . position . y - b . game . camera . y , b . width , b . height ) } , c . Physics . Arcade . Body . renderBodyInfo = function ( a , b ) { a . line ( "x: " + b . x . toFixed ( 2 ) , "y: " + b . y . toFixed ( 2 ) , "width: " + b . width , "height: " + b . height ) , a . line ( "velocity x: " + b . velocity . x . toFixed ( 2 ) , "y: " + b . velocity . y . toFixed ( 2 ) , "deltaX: " + b . _dx . toFixed ( 2 ) , "deltaY: " + b . _dy . toFixed ( 2 ) ) , a . line ( "acceleration x: " + b . acceleration . x . toFixed ( 2 ) , "y: " + b . acceleration . y . toFixed ( 2 ) , "speed: " + b . speed . toFixed ( 2 ) , "angle: " + b . angle . toFixed ( 2 ) ) , a . line ( "gravity x: " + b . gravity . x , "y: " + b . gravity . y , "bounce x: " + b . bounce . x . toFixed ( 2 ) , "y: " + b . bounce . y . toFixed ( 2 ) ) , a . line ( "touching left: " + b . touching . left , "right: " + b . touching . right , "up: " + b . touching . up , "down: " + b . touching . down ) , a . line ( "blocked left: " + b . blocked . left , "right: " + b . blocked . right , "up: " + b . blocked . up , "down: " + b . blocked . down ) } , c . Physics . Arcade . Body . prototype . constructor = c . Physics . Arcade . Body , c . Physics . Arcade . TilemapCollision = function ( ) { } , c . Physics . Arcade . TilemapCollision . prototype = { TILE _BIAS : 16 , collideSpriteVsTilemapLayer : function ( a , b , c , d , e , f ) { if ( a . body ) { var g = b . getTiles ( a . body . position . x - a . body . tilePadding . x , a . body . position . y - a . body . tilePadding . y , a . body . width + a . body . tilePadding . x , a . body . height + a . body . tilePadding . y , ! 1 , ! 1 ) ; if ( 0 !== g . length ) for ( var h = 0 ; h < g . length ; h ++ ) d ? d . call ( e , a , g [ h ] ) && this . separateTile ( h , a . body , g [ h ] , b , f ) && ( this . _total ++ , c && c . call ( e , a , g [ h ] ) ) : this . separateTile ( h , a . body , g [ h ] , b , f ) && ( this . _total ++ , c && c . call ( e , a , g [ h ] ) ) } } , collideGroupVsTilemapLayer : function ( a , b , c , d , e , f ) { if ( 0 !== a . length ) for ( var g = 0 ; g < a . children . length ; g ++ ) a . children [ g ] . exists && this . collideSpriteVsTilemapLayer ( a . children [ g ] , b , c , d , e , f ) } , separateTile : function ( a , b , c , d , e ) { if ( ! b . enable ) return ! 1 ; var f = d . fixedToCamera ? 0 : d . position . x , g = d . fixedToCamera
} , destroy : function ( ) { this . removeFromWorld ( ) , this . clearShapes ( ) , this . _bodyCallbacks = { } , this . _bodyCallbackContext = { } , this . _groupCallbacks = { } , this . _groupCallbackContext = { } , this . debugBody && this . debugBody . destroy ( ! 0 , ! 0 ) , this . debugBody = null , this . sprite && ( this . sprite . body = null , this . sprite = null ) } , clearShapes : function ( ) { for ( var a = this . data . shapes . length ; a -- ; ) this . data . removeShape ( this . data . shapes [ a ] ) ; this . shapeChanged ( ) } , addShape : function ( a , b , c , d ) { return void 0 === b && ( b = 0 ) , void 0 === c && ( c = 0 ) , void 0 === d && ( d = 0 ) , this . data . addShape ( a , [ this . world . pxmi ( b ) , this . world . pxmi ( c ) ] , d ) , this . shapeChanged ( ) , a } , addCircle : function ( a , b , c , d ) { var e = new p2 . Circle ( { radius : this . world . pxm ( a ) } ) ; return this . addShape ( e , b , c , d ) } , addRectangle : function ( a , b , c , d , e ) { var f = new p2 . Box ( { width : this . world . pxm ( a ) , height : this . world . pxm ( b ) } ) ; return this . addShape ( f , c , d , e ) } , addPlane : function ( a , b , c ) { var d = new p2 . Plane ; return this . addShape ( d , a , b , c ) } , addParticle : function ( a , b , c ) { var d = new p2 . Particle ; return this . addShape ( d , a , b , c ) } , addLine : function ( a , b , c , d ) { var e = new p2 . Line ( { length : this . world . pxm ( a ) } ) ; return this . addShape ( e , b , c , d ) } , addCapsule : function ( a , b , c , d , e ) { var f = new p2 . Capsule ( { length : this . world . pxm ( a ) , radius : this . world . pxm ( b ) } ) ; return this . addShape ( f , c , d , e ) } , addPolygon : function ( a , b ) { a = a || { } , Array . isArray ( b ) || ( b = Array . prototype . slice . call ( arguments , 1 ) ) ; var c = [ ] ; if ( 1 === b . length && Array . isArray ( b [ 0 ] ) ) c = b [ 0 ] . slice ( 0 ) ; else if ( Array . isArray ( b [ 0 ] ) ) c = b . slice ( ) ; else if ( "number" == typeof b [ 0 ] ) for ( var d = 0 , e = b . length ; e > d ; d += 2 ) c . push ( [ b [ d ] , b [ d + 1 ] ] ) ; var f = c . length - 1 ; c [ f ] [ 0 ] === c [ 0 ] [ 0 ] && c [ f ] [ 1 ] === c [ 0 ] [ 1 ] && c . pop ( ) ; for ( var g = 0 ; g < c . length ; g ++ ) c [ g ] [ 0 ] = this . world . pxmi ( c [ g ] [ 0 ] ) , c [ g ] [ 1 ] = this . world . pxmi ( c [ g ] [ 1 ] ) ; var h = this . data . fromPolygon ( c , a ) ; return this . shapeChanged ( ) , h } , removeShape : function ( a ) { var b = this . data . removeShape ( a ) ; return this . shapeChanged ( ) , b } , setCircle : function ( a , b , c , d ) { return this . clearShapes ( ) , this . addCircle ( a , b , c , d ) } , setRectangle : function ( a , b , c , d , e ) { return void 0 === a && ( a = 16 ) , void 0 === b && ( b = 16 ) , this . clearShapes ( ) , this . addRectangle ( a , b , c , d , e ) } , setRectangleFromSprite : function ( a ) { return void 0 === a && ( a = this . sprite ) , this . clearShapes ( ) , this . addRectangle ( a . width , a . height , 0 , 0 , a . rotation ) } , setMaterial : function ( a , b ) { if ( void 0 === b ) for ( var c = this . data . shapes . length - 1 ; c >= 0 ; c -- ) this . data . shapes [ c ] . material = a ; else b . material = a } , shapeChanged : function ( ) { this . debugBody && this . debugBody . draw ( ) } , addPhaserPolygon : function ( a , b ) { for ( var c = this . game . cache . getPhysicsData ( a , b ) , d = [ ] , e = 0 ; e < c . length ; e ++ ) { var f = c [ e ] , g = this . addFixture ( f ) ; d [ f . filter . group ] = d [ f . filter . group ] || [ ] , d [ f . filter . group ] = d [ f . filter . group ] . concat ( g ) , f . fixtureKey && ( d [ f . fixtureKey ] = g ) } return this . data . aabbNeedsUpdate = ! 0 , this . shapeChanged ( ) , d } , addFixture : function ( a ) { var b = [ ] ; if ( a . circle ) { var c = new p2 . Circle ( { radius : this . world . pxm ( a . circle . radius ) } ) ; c . collisionGroup = a . filter . categoryBits , c . collisionMask = a . filter . maskBits , c . sensor = a . isSensor ; var d = p2 . vec2 . create ( ) ; d [ 0 ] = this . world . pxmi ( a . circle . position [ 0 ] - this . sprite . width / 2 ) , d [ 1 ] = this . world . pxmi ( a . circle . position [ 1 ] - this . sprite . height / 2 ) , this . data . addShape ( c , d ) , b . push ( c ) } else for ( var e = a . polygons , f = p2 . vec2 . create ( ) , g = 0 ; g < e . length ; g ++ ) { for ( var h = e [ g ] , i = [ ] , j = 0 ; j < h . length ; j += 2 ) i . push ( [ this . world . pxmi ( h [ j ] ) , this . world . pxmi ( h [ j + 1 ] ) ] ) ; for ( var c = new p2 . Convex ( { vertices : i } ) , k = 0 ; k !== c . vertices . length ; k ++ ) { var l = c . vertices [ k ] ; p2 . vec2 . sub ( l , l , c . centerOfMass ) } p2 . vec2 . scale ( f , c . centerOfMass , 1 ) , f [ 0 ] -= this . world . pxmi ( this . sprite . width / 2 ) , f [ 1 ] -= this . world . pxmi ( this . sprite . height / 2 ) , c . updateTriangles ( ) , c . updateCenterOfMass ( ) , c . updateBoundingRadius ( ) , c . collisionGroup = a . filter . categoryBits , c . collisionMask = a . filter . maskBits , c . sensor = a . isSensor , this . data . addShape ( c , f ) , b . push ( c ) } return b } , loadPolygon : function ( a , b ) { if ( null === a ) var c = b ; else var c = this . game . cache . getPhysicsData ( a , b ) ; for ( var d = p2 . vec2 . create ( ) , e = 0 ; e < c . length ; e ++ ) { for ( var f = [ ] , g = 0 ; g < c [ e ] . shape . length ; g += 2 ) f . push ( [ this . world . pxmi ( c [ e ] . shape [ g ] ) , this . world . pxmi ( c [ e ] . shape [ g + 1 ] ) ] ) ; for ( var h = new p2 . Convex ( { vertices : f } ) , i = 0 ; i !== h . vertices . length ; i ++ ) { var j = h . vertices [ i ] ; p2 . vec2 . sub ( j , j , h . centerOfMass ) } p2 . vec2 . scale ( d , h . centerOfMass , 1 ) , d [ 0 ] -= this . world . pxmi ( t
! ( this . _results . length < 2 ) ) { for ( var h = 1 ; h < this . _results . length ; h ++ ) this . _results [ h ] . index === a && ( this . _results [ h ] . index = b ) ; this . paste ( c , d , this . _results , g ) } } , random : function ( a , b , c , d , e ) { if ( e = this . getLayer ( e ) , this . copy ( a , b , c , d , e ) , ! ( this . _results . length < 2 ) ) { for ( var f = [ ] , g = 1 ; g < this . _results . length ; g ++ ) if ( this . _results [ g ] . index ) { var h = this . _results [ g ] . index ; - 1 === f . indexOf ( h ) && f . push ( h ) } for ( var i = 1 ; i < this . _results . length ; i ++ ) this . _results [ i ] . index = this . game . rnd . pick ( f ) ; this . paste ( a , b , this . _results , e ) } } , shuffle : function ( a , b , d , e , f ) { if ( f = this . getLayer ( f ) , this . copy ( a , b , d , e , f ) , ! ( this . _results . length < 2 ) ) { for ( var g = [ ] , h = 1 ; h < this . _results . length ; h ++ ) this . _results [ h ] . index && g . push ( this . _results [ h ] . index ) ; c . ArrayUtils . shuffle ( g ) ; for ( var i = 1 ; i < this . _results . length ; i ++ ) this . _results [ i ] . index = g [ i - 1 ] ; this . paste ( a , b , this . _results , f ) } } , fill : function ( a , b , c , d , e , f ) { if ( f = this . getLayer ( f ) , this . copy ( b , c , d , e , f ) , ! ( this . _results . length < 2 ) ) { for ( var g = 1 ; g < this . _results . length ; g ++ ) this . _results [ g ] . index = a ; this . paste ( b , c , this . _results , f ) } } , removeAllLayers : function ( ) { this . layers . length = 0 , this . currentLayer = 0 } , dump : function ( ) { for ( var a = "" , b = [ "" ] , c = 0 ; c < this . layers [ this . currentLayer ] . height ; c ++ ) { for ( var d = 0 ; d < this . layers [ this . currentLayer ] . width ; d ++ ) a += "%c " , this . layers [ this . currentLayer ] . data [ c ] [ d ] > 1 ? this . debugMap [ this . layers [ this . currentLayer ] . data [ c ] [ d ] ] ? b . push ( "background: " + this . debugMap [ this . layers [ this . currentLayer ] . data [ c ] [ d ] ] ) : b . push ( "background: #ffffff" ) : b . push ( "background: rgb(0, 0, 0)" ) ; a += "\n" } b [ 0 ] = a , console . log . apply ( console , b ) } , destroy : function ( ) { this . removeAllLayers ( ) , this . data = [ ] , this . game = null } } , c . Tilemap . prototype . constructor = c . Tilemap , Object . defineProperty ( c . Tilemap . prototype , "layer" , { get : function ( ) { return this . layers [ this . currentLayer ] } , set : function ( a ) { a !== this . currentLayer && this . setLayer ( a ) } } ) , c . TilemapLayer = function ( a , b , d , e , f ) { e |= 0 , f |= 0 , c . Sprite . call ( this , a , 0 , 0 ) , this . map = b , this . index = d , this . layer = b . layers [ d ] , this . canvas = PIXI . CanvasPool . create ( this , e , f ) , this . context = this . canvas . getContext ( "2d" ) , this . setTexture ( new PIXI . Texture ( new PIXI . BaseTexture ( this . canvas ) ) ) , this . type = c . TILEMAPLAYER , this . physicsType = c . TILEMAPLAYER , this . renderSettings = { enableScrollDelta : ! 1 , overdrawRatio : . 2 , copyCanvas : null } , this . debug = ! 1 , this . exists = ! 0 , this . debugSettings = { missingImageFill : "rgb(255,255,255)" , debuggedTileOverfill : "rgba(0,255,0,0.4)" , forceFullRedraw : ! 0 , debugAlpha : . 5 , facingEdgeStroke : "rgba(0,255,0,1)" , collidingTileOverfill : "rgba(0,255,0,0.2)" } , this . scrollFactorX = 1 , this . scrollFactorY = 1 , this . dirty = ! 0 , this . rayStepRate = 4 , this . _wrap = ! 1 , this . _mc = { scrollX : 0 , scrollY : 0 , renderWidth : 0 , renderHeight : 0 , tileWidth : b . tileWidth , tileHeight : b . tileHeight , cw : b . tileWidth , ch : b . tileHeight , tilesets : [ ] } , this . _scrollX = 0 , this . _scrollY = 0 , this . _results = [ ] , a . device . canvasBitBltShift || ( this . renderSettings . copyCanvas = c . TilemapLayer . ensureSharedCopyCanvas ( ) ) , this . fixedToCamera = ! 0 } , c . TilemapLayer . prototype = Object . create ( c . Sprite . prototype ) , c . TilemapLayer . prototype . constructor = c . TilemapLayer , c . TilemapLayer . prototype . preUpdateCore = c . Component . Core . preUpdate , c . TilemapLayer . sharedCopyCanvas = null , c . TilemapLayer . ensureSharedCopyCanvas = function ( ) { return this . sharedCopyCanvas || ( this . sharedCopyCanvas = c . Canvas . create ( 2 , 2 ) ) , this . sharedCopyCanvas } , c . TilemapLayer . prototype . preUpdate = function ( ) { return this . preUpdateCore ( ) } , c . TilemapLayer . prototype . postUpdate = function ( ) { this . fixedToCamera && ( this . position . x = ( this . game . camera . view . x + this . cameraOffset . x ) / this . game . camera . scale . x , this . position . y = ( this . game . camera . view . y + this . cameraOffset . y ) / this . game . camera . scale . y ) , this . _scrollX = this . game . camera . view . x * this . scrollFactorX / this . scale . x , this . _scrollY = this . game . camera . view . y * this . scrollFactorY / this . scale . y } , c . TilemapLayer . prototype . _renderCanvas = function ( a ) { this . fixedToCamera && ( this . position . x = ( this . game . camera . view . x + this . cameraOffset . x ) / this . game . camera . scale . x , this . position . y = ( this . game . camera . view . y + this . cameraOffset . y ) / this . game . camera . scale . y ) , this . _scrollX = this . game . camera . view . x * this . scrollFactorX / this . scale . x , this . _scrollY = this . game . camera . view . y * this . scrollFactorY / this . scale . y , this . render ( ) , PIXI . Sprite . p
this . trackedPointer = null , this . trackRotation = ! 1 , this . trackOffset = new c . Point , this . _nextFire = 0 } , c . Weapon . prototype = Object . create ( c . Plugin . prototype ) , c . Weapon . prototype . constructor = c . Weapon , c . Weapon . KILL _NEVER = 0 , c . Weapon . KILL _LIFESPAN = 1 , c . Weapon . KILL _DISTANCE = 2 , c . Weapon . KILL _WEAPON _BOUNDS = 3 , c . Weapon . KILL _CAMERA _BOUNDS = 4 , c . Weapon . KILL _WORLD _BOUNDS = 5 , c . Weapon . KILL _STATIC _BOUNDS = 6 , c . Weapon . prototype . createBullets = function ( a , b , d , e ) { return void 0 === a && ( a = 1 ) , void 0 === e && ( e = this . game . world ) , this . bullets || ( this . bullets = this . game . add . physicsGroup ( c . Physics . ARCADE , e ) , this . bullets . classType = this . _bulletClass ) , 0 !== a && ( - 1 === a && ( this . autoExpandBulletsGroup = ! 0 , a = 1 ) , this . bullets . createMultiple ( a , b , d ) , this . bullets . setAll ( "data.bulletManager" , this ) , this . bulletKey = b , this . bulletFrame = d ) , this } , c . Weapon . prototype . forEach = function ( a , b ) { return this . bullets . forEachExists ( a , b , arguments ) , this } , c . Weapon . prototype . pauseAll = function ( ) { return this . bullets . setAll ( "body.enable" , ! 1 ) , this } , c . Weapon . prototype . resumeAll = function ( ) { return this . bullets . setAll ( "body.enable" , ! 0 ) , this } , c . Weapon . prototype . killAll = function ( ) { return this . bullets . callAllExists ( "kill" , ! 0 ) , this . bullets . setAll ( "body.enable" , ! 0 ) , this } , c . Weapon . prototype . resetShots = function ( a ) { return this . shots = 0 , void 0 !== a && ( this . fireLimit = a ) , this } , c . Weapon . prototype . destroy = function ( ) { this . parent . remove ( this , ! 1 ) , this . bullets . destroy ( ) , this . game = null , this . parent = null , this . active = ! 1 , this . visible = ! 1 } , c . Weapon . prototype . update = function ( ) { this . _bulletKillType === c . Weapon . KILL _WEAPON _BOUNDS && ( this . trackedSprite ? ( this . trackedSprite . updateTransform ( ) , this . bounds . centerOn ( this . trackedSprite . worldPosition . x , this . trackedSprite . worldPosition . y ) ) : this . trackedPointer && this . bounds . centerOn ( this . trackedPointer . worldX , this . trackedPointer . worldY ) ) , this . autofire && this . game . time . now < this . _nextFire && this . fire ( ) } , c . Weapon . prototype . trackSprite = function ( a , b , c , d ) { return void 0 === b && ( b = 0 ) , void 0 === c && ( c = 0 ) , void 0 === d && ( d = ! 1 ) , this . trackedPointer = null , this . trackedSprite = a , this . trackRotation = d , this . trackOffset . set ( b , c ) , this } , c . Weapon . prototype . trackPointer = function ( a , b , c ) { return void 0 === a && ( a = this . game . input . activePointer ) , void 0 === b && ( b = 0 ) , void 0 === c && ( c = 0 ) , this . trackedPointer = a , this . trackedSprite = null , this . trackRotation = ! 1 , this . trackOffset . set ( b , c ) , this } , c . Weapon . prototype . fire = function ( a , b , d ) { if ( this . game . time . now < this . _nextFire || this . fireLimit > 0 && this . shots === this . fireLimit ) return ! 1 ; var e = this . bulletSpeed ; 0 !== this . bulletSpeedVariance && ( e += c . Math . between ( - this . bulletSpeedVariance , this . bulletSpeedVariance ) ) , a ? this . fireFrom . width > 1 ? this . fireFrom . centerOn ( a . x , a . y ) : ( this . fireFrom . x = a . x , this . fireFrom . y = a . y ) : this . trackedSprite ? ( this . fireFrom . width > 1 ? this . fireFrom . centerOn ( this . trackedSprite . world . x + this . trackOffset . x , this . trackedSprite . world . y + this . trackOffset . y ) : ( this . fireFrom . x = this . trackedSprite . world . x + this . trackOffset . x , this . fireFrom . y = this . trackedSprite . world . y + this . trackOffset . y ) , this . bulletInheritSpriteSpeed && ( e += this . trackedSprite . body . speed ) ) : this . trackedPointer && ( this . fireFrom . width > 1 ? this . fireFrom . centerOn ( this . trackedPointer . world . x + this . trackOffset . x , this . trackedPointer . world . y + this . trackOffset . y ) : ( this . fireFrom . x = this . trackedPointer . world . x + this . trackOffset . x , this . fireFrom . y = this . trackedPointer . world . y + this . trackOffset . y ) ) ; var f = this . fireFrom . width > 1 ? this . fireFrom . randomX : this . fireFrom . x , g = this . fireFrom . height > 1 ? this . fireFrom . randomY : this . fireFrom . y , h = this . trackRotation ? this . trackedSprite . angle : this . fireAngle ; void 0 !== b && void 0 !== d && ( h = this . game . math . radToDeg ( Math . atan2 ( d - g , b - f ) ) ) , 0 !== this . bulletAngleVariance && ( h += c . Math . between ( - this . bulletAngleVariance , this . bulletAngleVariance ) ) ; var i = 0 , j = 0 ; 0 === h || 180 === h ? i = Math . cos ( this . game . math . degToRad ( h ) ) * e : 90 === h || 270 === h ? j = Math . sin ( this . game . math . degToRad ( h ) ) * e : ( i = Math . cos ( this . game . math . degToRad ( h ) ) * e , j = Math . sin ( this . game . math . degToRad ( h ) ) * e ) ; var k = null ; if ( this . autoExpandBulletsGroup ? ( k = this . bullets . getFirstExists ( ! 1 , ! 0 , f , g , this . bulletKey , this . bulletFrame ) , k . data . bulletManager = this ) : k = this . bullets . getFirstExists ( ! 1 ) , k ) { if ( k . reset ( f , g ) , k . data . fromX = f , k . data . fromY = g , k . data . killT
2014-02-28 09:30:53 +00:00
//# sourceMappingURL=phaser.map