2015-10-13 14:10:55 +01:00
/* Phaser v2.4.4 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */
2014-02-28 09:30:53 +00:00
2015-10-13 14:10:55 +01: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 . allowSleep = void 0 !== a . allowSleep ? a . allowSleep : ! 0 , 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 (
} function e ( a ) { for ( var b = a . length ; b -- ; ) a [ b ] = 0 } var f = a ( "../math/vec2" ) , g = a ( "./Solver" ) , h = a ( "../utils/Utils" ) , i = a ( "../equations/FrictionEquation" ) ; 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 ( th
return b } , b . DisplayObjectContainer . prototype . setChildIndex = function ( a , b ) { if ( 0 > b || b >= this . children . length ) throw new Error ( "The supplied index is out of bounds" ) ; var c = this . getChildIndex ( a ) ; this . children . splice ( c , 1 ) , this . children . splice ( b , 0 , a ) } , b . DisplayObjectContainer . prototype . getChildAt = function ( a ) { if ( 0 > a || a >= this . children . length ) throw new Error ( "getChildAt: Supplied index " + a + " does not exist in the child list, or the supplied DisplayObject must be a child of the caller" ) ; return this . children [ a ] } , b . DisplayObjectContainer . prototype . removeChild = function ( a ) { var b = this . children . indexOf ( a ) ; if ( - 1 !== b ) return this . removeChildAt ( b ) } , b . DisplayObjectContainer . prototype . removeChildAt = function ( a ) { 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 ; for ( var a , c , d , e = 1 / 0 , f = 1 / 0 , g = - ( 1 / 0 ) , h = - ( 1 / 0 ) , i = ! 1 , j = 0 , k = this . children . length ; k > j ; j ++ ) { var l = this . children [ j ] ; l . 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 m = this . _bounds ; return m . x = e , m . y = f , m . width = g - e , m . height = h - f , m } , b . DisplayObjectContainer . prototype . getLocalBounds = function ( ) { var a = this . worldTransform ; this . worldTransform = b . identityMatrix ; for ( var c = 0 , d = this . children . length ; d > c ; c ++ ) this . children [ c ] . updateTransform ( ) ; var e = this . getBounds ( ) ; return this . worldTransform = a , e } , 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 . 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
f . vertexAttribPointer ( e . aVertexPosition , 2 , f . FLOAT , ! 1 , 8 , 0 ) , f . bindBuffer ( f . ELEMENT _ARRAY _BUFFER , c . indexBuffer ) ) : ( e = d . shaderManager . primitiveShader , d . shaderManager . setShader ( e ) , f . uniformMatrix3fv ( e . translationMatrix , ! 1 , a . worldTransform . toArray ( ! 0 ) ) , f . uniform1f ( e . flipY , d . flipY ) , f . uniform2f ( e . projectionVector , g . x , - g . y ) , f . uniform2f ( e . offsetVector , - h . x , - h . y ) , f . uniform3fv ( e . tintColor , b . hex2rgb ( a . tint ) ) , 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 . WebGLSpri
this . renderer = d || b . defaultRenderer , this . renderer . type === b . WEBGL _RENDERER ) { var g = this . renderer . gl ; this . baseTexture . _dirty [ g . id ] = ! 1 , this . textureBuffer = new b . FilterTexture ( g , this . width , this . height , this . baseTexture . scaleMode ) , this . baseTexture . _glTextures [ g . id ] = this . textureBuffer . texture , this . render = this . renderWebGL , this . projection = new b . Point ( . 5 * this . width , . 5 * - this . height ) } else this . render = this . renderCanvas , this . textureBuffer = new b . CanvasBuffer ( this . width * this . resolution , this . height * this . resolution ) , 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 (
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 . y , k = h * a . x + i * a . y ; a . x = j + b , a . y = k + d } else { var l = e + Math . atan2 ( a . y - d , a . x - b ) ; a . x = b + g * Math . cos ( l ) , a . y = d + g * Math . sin ( l ) } return a } , c . Point . centroid = function ( a , b ) { if ( void 0 === b && ( b = new c . Point ) , "[object Array]" !== Object . prototype . toString . call ( a ) ) throw new Error ( "Phaser.Point. Parameter 'points' must be an array" ) ; var d = a . length ; if ( 1 > d ) throw new Error ( "Phaser.Point. Parameter 'points' array must not be empty" ) ; if ( 1 === d ) return b . copyFrom ( a [ 0 ] ) , b ; for ( var e = 0 ; d > e ; e ++ ) c . Point . add ( b , a [ e ] , b ) ; return b . divide ( d , d ) , b } , c . Point . parse = function ( a , b , d ) { b = b || "x" , d = d || "y" ; var e = new c . Point ; return a [ b ] && ( e . x = parseInt ( a [ b ] , 10 ) ) , a [ d ] && ( e . y = parseInt ( a [ d ] , 10 ) ) , e } , PIXI . Point = c . Point , c . Polygon = function ( ) { this . area = 0 , this . _poi
this . plugins . length = 0 , this . _len = 0 } , preUpdate : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . active && this . plugins [ this . _i ] . hasPreUpdate && this . plugins [ this . _i ] . preUpdate ( ) } , update : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . active && this . plugins [ this . _i ] . hasUpdate && this . plugins [ this . _i ] . update ( ) } , postUpdate : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . active && this . plugins [ this . _i ] . hasPostUpdate && this . plugins [ this . _i ] . postUpdate ( ) } , render : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . visible && this . plugins [ this . _i ] . hasRender && this . plugins [ this . _i ] . render ( ) } , postRender : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . visible && this . plugins [ this . _i ] . hasPostRender && this . plugins [ this . _i ] . postRender ( ) } , destroy : function ( ) { this . removeAll ( ) , this . game = null } } , c . PluginManager . prototype . constructor = c . PluginManager , c . Stage = function ( a ) { this . game = a , PIXI . DisplayObjectContainer . call ( this ) , this . name = "_stage_root" , this . disableVisibilityChange = ! 1 , this . exists = ! 0 , this . worldTransform = new PIXI . Matrix , this . stage = this , this . currentRenderOrderID = 0 , this . _hiddenVar = "hidden" , this . _onChange = null , this . _bgColor = { r : 0 , g : 0 , b : 0 , a : 0 , color : 0 , rgba : "#000000" } , this . game . transparent || ( this . _bgColor . a = 1 ) , a . config && this . parseConfig ( a . config ) } , c . Stage . prototype = Object . create ( PIXI . DisplayObjectContainer . prototype ) , c . Stage . prototype . constructor = c . Stage , c . Stage . prototype . parseConfig = function ( a ) { a . disableVisibilityChange && ( this . disableVisibilityChange = a . disableVisibilityChange ) , a . backgroundColor && this . setBackgroundColor ( a . backgroundColor ) } , c . Stage . prototype . boot = function ( ) { c . DOM . getOffset ( this . game . canvas , this . offset ) , c . Canvas . setUserSelect ( this . game . canvas , "none" ) , c . Canvas . setTouchAction ( this . game . canvas , "none" ) , this . checkVisibility ( ) } , c . Stage . prototype . preUpdate = function ( ) { this . currentRenderOrderID = 0 ; for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . preUpdate ( ) } , c . Stage . prototype . update = function ( ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . update ( ) } , c . Stage . prototype . postUpdate = function ( ) { if ( this . game . world . camera . target ) { this . game . world . camera . target . postUpdate ( ) , this . game . world . camera . update ( ) ; for ( var a = this . children . length ; a -- ; ) this . children [ a ] !== this . game . world . camera . target && this . children [ a ] . postUpdate ( ) } else { this . game . world . camera . update ( ) ; for ( var a = this . children . length ; a -- ; ) this . children [ a ] . postUpdate ( ) } } , c . Stage . prototype . updateTransform = function ( ) { this . worldAlpha = 1 ; for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . updateTransform ( ) } , c . Stage . prototype . checkVisibility = function ( ) { void 0 !== document . webkitHidden ? this . _hiddenVar = "webkitvisibilitychange" : void 0 !== document . mozHidden ? this . _hiddenVar = "mozvisibilitychange" : void 0 !== document . msHidden ? this . _hiddenVar = "msvisibilitychange" : void 0 !== document . hidden ? this . _hiddenVar = "visibilitychange" : this . _hiddenVar = null ; var a = this ; this . _onChange = function ( b ) { return a . visibilityChange ( b ) } , this . _hiddenVar && document . addEventListener ( this . _hiddenVar , this . _onChange , ! 1 ) , window . onblur = this . _onChange , window . onfocus = this . _onChange , window . onpagehide = this . _onChange , window . onpageshow = this . _onChange , this . game . device . cocoonJSApp && ( CocoonJS . App . onSuspended . addEventListener ( function ( ) { c . Stage . prototype . visibilityChange . call ( a , { type : "pause" } ) } ) , CocoonJS . App . onActivated . addEventListener ( function ( ) { c . Stage . prototype . visibilityChange . call ( a , { type : "resume" } ) } ) ) } , c . Stage . prototype . visibilityChange = function ( a ) { return "pagehide" === a . type || "blur" === a . type || "pageshow" === a . type || "focus" === a . type ? void ( "pagehide" === a . type || "blur" === a . type ? this . game . focusLoss ( a ) : ( "pageshow" === a . type || "focus" === a . type ) && this . game . focusGain ( a ) ) : void ( this . disableVisibilityChange || ( document . hidden || document . mozHidden || document . msHidden || document . webkitHidden || "pause" === a . type ? this . game . gamePaused ( a ) : this . game . gameResumed ( a ) ) ) } , c . Stage . prototype . setBackgroundColor = function ( a ) { this . game . transparent || ( c . Color . valueToColor ( a , this . _bgColor ) , c . Color . updateColor ( this . _bgColor ) , this . _bgColor . r /= 255 , this . _bgColor . g /= 255 , this . _bgColor . b /= 255 , this . _bgColor . a = 1 ) } , c . Stage . prot
c . Input . MOUSE _OVERRIDES _TOUCH = 0 , c . Input . TOUCH _OVERRIDES _MOUSE = 1 , c . Input . MOUSE _TOUCH _COMBINE = 2 , c . Input . MAX _POINTERS = 10 , c . Input . prototype = { boot : function ( ) { this . mousePointer = new c . Pointer ( this . game , 0 , c . PointerMode . CURSOR ) , this . addPointer ( ) , this . addPointer ( ) , this . mouse = new c . Mouse ( this . game ) , this . touch = new c . Touch ( this . game ) , this . mspointer = new c . MSPointer ( this . game ) , c . Keyboard && ( this . keyboard = new c . Keyboard ( this . game ) ) , c . Gamepad && ( this . gamepad = new c . Gamepad ( this . game ) ) , this . onDown = new c . Signal , this . onUp = new c . Signal , this . onTap = new c . Signal , this . onHold = new c . Signal , this . scale = new c . Point ( 1 , 1 ) , this . speed = new c . Point , this . position = new c . Point , this . _oldPosition = new c . Point , this . circle = new c . Circle ( 0 , 0 , 44 ) , this . activePointer = this . mousePointer , this . hitCanvas = PIXI . CanvasPool . create ( this , 1 , 1 ) , this . hitContext = this . hitCanvas . getContext ( "2d" ) , this . mouse . start ( ) , this . touch . start ( ) , this . mspointer . start ( ) , this . mousePointer . active = ! 0 , this . keyboard && this . keyboard . start ( ) ; var a = this ; this . _onClickTrampoline = function ( b ) { a . onClickTrampoline ( b ) } , this . game . canvas . addEventListener ( "click" , this . _onClickTrampoline , ! 1 ) } , destroy : function ( ) { this . mouse . stop ( ) , this . touch . stop ( ) , this . mspointer . stop ( ) , this . keyboard && this . keyboard . stop ( ) , this . gamepad && this . gamepad . stop ( ) , this . moveCallbacks = [ ] , PIXI . CanvasPool . remove ( this ) , this . game . canvas . removeEventListener ( "click" , this . _onClickTrampoline ) } , addMoveCallback : function ( a , b ) { this . moveCallbacks . push ( { callback : a , context : b } ) } , deleteMoveCallback : function ( a , b ) { for ( var c = this . moveCallbacks . length ; c -- ; ) if ( this . moveCallbacks [ c ] . callback === a && this . moveCallbacks [ c ] . context === b ) return void this . moveCallbacks . splice ( c , 1 ) } , addPointer : function ( ) { if ( this . pointers . length >= c . Input . MAX _POINTERS ) return console . warn ( "Phaser.Input.addPointer: Maximum limit of " + c . Input . MAX _POINTERS + " pointers reached." ) , null ; var a = this . pointers . length + 1 , b = new c . Pointer ( this . game , a , c . PointerMode . TOUCH ) ; return this . pointers . push ( b ) , this [ "pointer" + a ] = b , b } , update : function ( ) { if ( this . keyboard && this . keyboard . update ( ) , this . pollRate > 0 && this . _pollCounter < this . pollRate ) return void this . _pollCounter ++ ; this . speed . x = this . position . x - this . _oldPosition . x , this . speed . y = this . position . y - this . _oldPosition . y , this . _oldPosition . copyFrom ( this . position ) , this . mousePointer . update ( ) , this . gamepad && this . gamepad . active && this . gamepad . update ( ) ; for ( var a = 0 ; a < this . pointers . length ; a ++ ) this . pointers [ a ] . update ( ) ; this . _pollCounter = 0 } , reset : function ( a ) { if ( this . game . isBooted && ! this . resetLocked ) { void 0 === a && ( a = ! 1 ) , this . mousePointer . reset ( ) , this . keyboard && this . keyboard . reset ( a ) , this . gamepad && this . gamepad . reset ( ) ; for ( var b = 0 ; b < this . pointers . length ; b ++ ) this . pointers [ b ] . reset ( ) ; "none" !== this . game . canvas . style . cursor && ( this . game . canvas . style . cursor = "inherit" ) , a && ( this . onDown . dispose ( ) , this . onUp . dispose ( ) , this . onTap . dispose ( ) , this . onHold . dispose ( ) , this . onDown = new c . Signal , this . onUp = new c . Signal , this . onTap = new c . Signal , this . onHold = new c . Signal , this . moveCallbacks = [ ] ) , this . _pollCounter = 0 } } , resetSpeed : function ( a , b ) { this . _oldPosition . setTo ( a , b ) , this . speed . setTo ( 0 , 0 ) } , startPointer : function ( a ) { if ( this . maxPointers >= 0 && this . countActivePointers ( this . maxPointers ) >= this . maxPointers ) return null ; if ( ! this . pointer1 . active ) return this . pointer1 . start ( a ) ; if ( ! this . pointer2 . active ) return this . pointer2 . start ( a ) ; for ( var b = 2 ; b < this . pointers . length ; b ++ ) { var c = this . pointers [ b ] ; if ( ! c . active ) return c . start ( a ) } return null } , updatePointer : function ( a ) { if ( this . pointer1 . active && this . pointer1 . identifier === a . identifier ) return this . pointer1 . move ( a ) ; if ( this . pointer2 . active && this . pointer2 . identifier === a . identifier ) return this . pointer2 . move ( a ) ; for ( var b = 2 ; b < this . pointers . length ; b ++ ) { var c = this . pointers [ b ] ; if ( c . active && c . identifier === a . identifier ) return c . move ( a ) } return null } , stopPointer : function ( a ) { if ( this . pointer1 . active && this . pointer1 . identifier === a . identifier ) return this . pointer1 . stop ( a ) ; if ( this . pointer2 . active && this . pointer2 . identifier === a . identifier ) return this . pointer2 . stop ( a ) ; for ( var b = 2 ; b < this . pointers . length ; b ++ ) { var c = this . pointers [ b ] ; if ( c . active && c . identifier === a . identifier ) return c . stop ( a ) } return null } , countActivePointers : fu
this . game . canvas . removeEventListener ( "touchenter" , this . _onTouchEnter ) , this . game . canvas . removeEventListener ( "touchleave" , this . _onTouchLeave ) , this . game . canvas . removeEventListener ( "touchcancel" , this . _onTouchCancel ) ) } } , c . Touch . prototype . constructor = c . Touch , c . InputHandler = function ( a ) { this . sprite = a , this . game = a . game , this . enabled = ! 1 , this . checked = ! 1 , this . priorityID = 0 , this . useHandCursor = ! 1 , this . _setHandCursor = ! 1 , this . isDragged = ! 1 , this . allowHorizontalDrag = ! 0 , this . allowVerticalDrag = ! 0 , this . bringToTop = ! 1 , this . snapOffset = null , this . snapOnDrag = ! 1 , this . snapOnRelease = ! 1 , this . snapX = 0 , this . snapY = 0 , this . snapOffsetX = 0 , this . snapOffsetY = 0 , this . pixelPerfectOver = ! 1 , this . pixelPerfectClick = ! 1 , this . pixelPerfectAlpha = 255 , this . draggable = ! 1 , this . boundsRect = null , this . boundsSprite = null , this . consumePointerEvent = ! 1 , this . scaleLayer = ! 1 , this . dragOffset = new c . Point , this . dragFromCenter = ! 1 , this . dragStartPoint = new c . Point , this . snapPoint = new c . Point , this . _dragPoint = new c . Point , this . _dragPhase = ! 1 , this . _wasEnabled = ! 1 , this . _tempPoint = new c . Point , this . _pointerData = [ ] , this . _pointerData . push ( { id : 0 , x : 0 , y : 0 , isDown : ! 1 , isUp : ! 1 , isOver : ! 1 , isOut : ! 1 , timeOver : 0 , timeOut : 0 , timeDown : 0 , timeUp : 0 , downDuration : 0 , isDragged : ! 1 } ) } , c . InputHandler . prototype = { start : function ( a , b ) { if ( a = a || 0 , void 0 === b && ( b = ! 1 ) , this . enabled === ! 1 ) { this . game . input . interactiveItems . add ( this ) , this . useHandCursor = b , this . priorityID = a ; for ( var d = 0 ; 10 > d ; d ++ ) this . _pointerData [ d ] = { id : d , x : 0 , y : 0 , isDown : ! 1 , isUp : ! 1 , isOver : ! 1 , isOut : ! 1 , timeOver : 0 , timeOut : 0 , timeDown : 0 , timeUp : 0 , downDuration : 0 , isDragged : ! 1 } ; this . snapOffset = new c . Point , this . enabled = ! 0 , this . _wasEnabled = ! 0 } return this . sprite . events . onAddedToGroup . add ( this . addedToGroup , this ) , this . sprite . events . onRemovedFromGroup . add ( this . removedFromGroup , this ) , this . flagged = ! 1 , this . sprite } , addedToGroup : function ( ) { this . _dragPhase || this . _wasEnabled && ! this . enabled && this . start ( ) } , removedFromGroup : function ( ) { this . _dragPhase || ( this . enabled ? ( this . _wasEnabled = ! 0 , this . stop ( ) ) : this . _wasEnabled = ! 1 ) } , reset : function ( ) { this . enabled = ! 1 , this . flagged = ! 1 ; for ( var a = 0 ; 10 > a ; a ++ ) this . _pointerData [ a ] = { id : a , x : 0 , y : 0 , isDown : ! 1 , isUp : ! 1 , isOver : ! 1 , isOut : ! 1 , timeOver : 0 , timeOut : 0 , timeDown : 0 , timeUp : 0 , downDuration : 0 , isDragged : ! 1 } } , stop : function ( ) { this . enabled !== ! 1 && ( this . enabled = ! 1 , this . game . input . interactiveItems . remove ( this ) ) } , destroy : function ( ) { this . sprite && ( this . _setHandCursor && ( this . game . canvas . style . cursor = "default" , this . _setHandCursor = ! 1 ) , this . enabled = ! 1 , this . game . input . interactiveItems . remove ( this ) , this . _pointerData . length = 0 , this . boundsRect = null , this . boundsSprite = null , this . sprite = null ) } , validForInput : function ( a , b , c ) { return void 0 === c && ( c = ! 0 ) , ! this . enabled || 0 === this . sprite . scale . x || 0 === this . sprite . scale . y || this . priorityID < this . game . input . minPriorityID ? ! 1 : ( c || ! this . pixelPerfectClick && ! this . pixelPerfectOver ) && ( this . priorityID > a || this . priorityID === a && this . sprite . renderOrderID < b ) ? ! 0 : ! 1 } , isPixelPerfect : function ( ) { return this . pixelPerfectClick || this . pixelPerfectOver } , pointerX : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . x } , pointerY : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . y } , pointerDown : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isDown } , pointerUp : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isUp } , pointerTimeDown : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . timeDown } , pointerTimeUp : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . timeUp } , pointerOver : function ( a ) { if ( ! this . enabled ) return ! 1 ; if ( void 0 !== a ) return this . _pointerData [ a ] . isOver ; for ( var b = 0 ; 10 > b ; b ++ ) if ( this . _pointerData [ b ] . isOver ) return ! 0 } , pointerOut : function ( a ) { if ( ! this . enabled ) return ! 1 ; if ( void 0 !== a ) return this . _pointerData [ a ] . isOut ; for ( var b = 0 ; 10 > b ; b ++ ) if ( this . _pointerData [ b ] . isOut ) return ! 0 } , pointerTimeOver : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . timeOver } , pointerTimeOut : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . timeOut } , pointerDragged : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isDragged } , checkPointerDown : function ( a , b ) { return a . isDown && this . enabled && this . sprite && this . sprite . parent && this . sprite . visible && this . sprite . parent . visible && this . game . input . hitTest ( this . sprite , a , this . _tempPoint ) ? ( void 0 === b && ( b = ! 1 ) , ! b && this . pixelPerfectClick ? th
F12 : 123 , F13 : 124 , F14 : 125 , F15 : 126 , COLON : 186 , EQUALS : 187 , COMMA : 188 , UNDERSCORE : 189 , PERIOD : 190 , QUESTION _MARK : 191 , TILDE : 192 , OPEN _BRACKET : 219 , BACKWARD _SLASH : 220 , CLOSED _BRACKET : 221 , QUOTES : 222 , BACKSPACE : 8 , TAB : 9 , CLEAR : 12 , ENTER : 13 , SHIFT : 16 , CONTROL : 17 , ALT : 18 , CAPS _LOCK : 20 , ESC : 27 , SPACEBAR : 32 , PAGE _UP : 33 , PAGE _DOWN : 34 , END : 35 , HOME : 36 , LEFT : 37 , UP : 38 , RIGHT : 39 , DOWN : 40 , PLUS : 43 , MINUS : 44 , INSERT : 45 , DELETE : 46 , HELP : 47 , NUM _LOCK : 144 } ; for ( var e in c . KeyCode ) c . KeyCode . hasOwnProperty ( e ) && ! e . match ( /[a-z]/ ) && ( c . Keyboard [ e ] = c . KeyCode [ e ] ) ; c . Component = function ( ) { } , c . Component . Angle = function ( ) { } , c . Component . Angle . prototype = { angle : { get : function ( ) { return c . Math . wrapAngle ( c . Math . radToDeg ( this . rotation ) ) } , set : function ( a ) { this . rotation = c . Math . degToRad ( c . Math . wrapAngle ( a ) ) } } } , c . Component . Animation = function ( ) { } , c . Component . Animation . prototype = { play : function ( a , b , c , d ) { return this . animations ? this . animations . play ( a , b , c , d ) : void 0 } } , c . Component . AutoCull = function ( ) { } , c . Component . AutoCull . prototype = { autoCull : ! 1 , inCamera : { get : function ( ) { return this . autoCull || this . checkWorldBounds || ( this . _bounds . copyFrom ( this . getBounds ( ) ) , this . _bounds . x += this . game . camera . view . x , this . _bounds . y += this . game . camera . view . y ) , this . game . world . camera . view . intersects ( this . _bounds ) } } } , c . Component . Bounds = function ( ) { } , c . Component . Bounds . prototype = { offsetX : { get : function ( ) { return this . anchor . x * this . width } } , offsetY : { get : function ( ) { return this . anchor . y * this . height } } , left : { get : function ( ) { return this . x - this . offsetX } } , right : { get : function ( ) { return this . x + this . width - this . offsetX } } , top : { get : function ( ) { return this . y - this . offsetY } } , bottom : { get : function ( ) { return this . y + this . height - this . offsetY } } } , c . Component . BringToTop = function ( ) { } , c . Component . BringToTop . prototype . bringToTop = function ( ) { return this . parent && this . parent . bringToTop ( this ) , this } , c . Component . BringToTop . prototype . sendToBack = function ( ) { return this . parent && this . parent . sendToBack ( this ) , this } , c . Component . BringToTop . prototype . moveUp = function ( ) { return this . parent && this . parent . moveUp ( this ) , this } , c . Component . BringToTop . prototype . moveDown = function ( ) { return this . parent && this . parent . moveDown ( this ) , this } , c . Component . Core = function ( ) { } , c . Component . Core . install = function ( a ) { c . Utils . mixinPrototype ( this , c . Component . Core . prototype ) , this . components = { } ; for ( var b = 0 ; b < a . length ; b ++ ) { var d = a [ b ] , e = ! 1 ; "Destroy" === d && ( e = ! 0 ) , c . Utils . mixinPrototype ( this , c . Component [ d ] . prototype , e ) , this . components [ d ] = ! 0 } } , c . Component . Core . init = function ( a , b , d , e , f ) { this . game = a , this . key = e , this . position . set ( b , d ) , this . world = new c . Point ( b , d ) , this . previousPosition = new c . Point ( b , d ) , this . events = new c . Events ( this ) , this . _bounds = new c . Rectangle , this . components . PhysicsBody && ( this . body = this . body ) , this . components . Animation && ( this . animations = new c . AnimationManager ( this ) ) , this . components . LoadTexture && null !== e && this . loadTexture ( e , f ) , this . components . FixedToCamera && ( this . cameraOffset = new c . Point ( b , d ) ) } , c . Component . Core . preUpdate = function ( ) { if ( this . pendingDestroy ) return void this . destroy ( ) ; if ( this . previousPosition . set ( this . world . x , this . world . y ) , this . previousRotation = this . rotation , ! this . exists || ! this . parent . exists ) return this . renderOrderID = - 1 , ! 1 ; this . world . setTo ( this . game . camera . x + this . worldTransform . tx , this . game . camera . y + this . worldTransform . ty ) , this . visible && ( this . renderOrderID = this . game . stage . currentRenderOrderID ++ ) , this . texture && ( this . texture . requiresReTint = ! 1 ) , this . animations && this . animations . update ( ) , this . body && this . body . preUpdate ( ) ; for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , c . Component . Core . prototype = { game : null , name : "" , components : { } , z : 0 , events : void 0 , animations : void 0 , key : "" , world : null , debug : ! 1 , previousPosition : null , previousRotation : 0 , renderOrderID : 0 , fresh : ! 0 , pendingDestroy : ! 1 , _bounds : null , _exists : ! 0 , exists : { get : function ( ) { return this . _exists } , set : function ( a ) { a ? ( this . _exists = ! 0 , this . body && this . body . type === c . Physics . P2JS && this . body . addToWorld ( ) , this . visible = ! 0 ) : ( this . _exists = ! 1 , this . body && this . body . type === c . Physics . P2JS && this . body . removeFromWorld ( ) , this . visible = ! 1 ) } } , update : function ( ) { } , postUpdate : function ( ) { this . customRender && this . key . render ( ) , this . components . PhysicsBody && c . Component . Phys
for ( var f = c . Color . createColor ( ) , g = e . y ; g < e . bottom ; g ++ ) for ( var h = e . x ; h < e . right ; h ++ ) c . Color . unpackPixel ( this . getPixel32 ( h , g ) , f , ! 0 ) , a && ( f . h = this . game . math . wrap ( f . h + a , 0 , 1 ) ) , b && ( f . s = this . game . math . limitValue ( f . s + b , 0 , 1 ) ) , d && ( f . l = this . game . math . limitValue ( f . l + d , 0 , 1 ) ) , c . Color . HSLtoRGB ( f . h , f . s , f . l , f ) , this . setPixel32 ( h , g , f . r , f . g , f . b , f . a , ! 1 ) ; return this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 , this } } , setPixel32 : function ( a , b , d , e , f , g , h ) { return void 0 === h && ( h = ! 0 ) , a >= 0 && a <= this . width && b >= 0 && b <= this . height && ( c . Device . LITTLE _ENDIAN ? this . pixels [ b * this . width + a ] = g << 24 | f << 16 | e << 8 | d : this . pixels [ b * this . width + a ] = d << 24 | e << 16 | f << 8 | g , h && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) ) , this } , setPixel : function ( a , b , c , d , e , f ) { return this . setPixel32 ( a , b , c , d , e , 255 , f ) } , getPixel : function ( a , b , d ) { d || ( d = c . Color . createColor ( ) ) ; var e = ~ ~ ( a + b * this . width ) ; return e *= 4 , d . r = this . data [ e ] , d . g = this . data [ ++ e ] , d . b = this . data [ ++ e ] , d . a = this . data [ ++ e ] , d } , getPixel32 : function ( a , b ) { return a >= 0 && a <= this . width && b >= 0 && b <= this . height ? this . pixels [ b * this . width + a ] : void 0 } , getPixelRGB : function ( a , b , d , e , f ) { return c . Color . unpackPixel ( this . getPixel32 ( a , b ) , d , e , f ) } , getPixels : function ( a ) { return this . context . getImageData ( a . x , a . y , a . width , a . height ) } , getFirstPixel : function ( a ) { void 0 === a && ( a = 0 ) ; var b = c . Color . createColor ( ) , d = 0 , e = 0 , f = 1 , g = ! 1 ; 1 === a ? ( f = - 1 , e = this . height ) : 3 === a && ( f = - 1 , d = this . width ) ; do c . Color . unpackPixel ( this . getPixel32 ( d , e ) , b ) , 0 === a || 1 === a ? ( d ++ , d === this . width && ( d = 0 , e += f , ( e >= this . height || 0 >= e ) && ( g = ! 0 ) ) ) : ( 2 === a || 3 === a ) && ( e ++ , e === this . height && ( e = 0 , d += f , ( d >= this . width || 0 >= d ) && ( g = ! 0 ) ) ) ; while ( 0 === b . a && ! g ) ; return b . x = d , b . y = e , b } , getBounds : function ( a ) { return void 0 === a && ( a = new c . Rectangle ) , a . x = this . getFirstPixel ( 2 ) . x , a . x === this . width ? a . setTo ( 0 , 0 , 0 , 0 ) : ( a . y = this . getFirstPixel ( 0 ) . y , a . width = this . getFirstPixel ( 3 ) . x - a . x + 1 , a . height = this . getFirstPixel ( 1 ) . y - a . y + 1 , a ) } , addToWorld : function ( a , b , c , d , e , f ) { e = e || 1 , f = f || 1 ; var g = this . game . add . image ( a , b , this ) ; return g . anchor . set ( c , d ) , g . scale . set ( e , f ) , g } , copy : function ( a , b , d , e , f , g , h , i , j , k , l , m , n , o , p , q , r ) { if ( ( void 0 === a || null === a ) && ( a = this ) , this . _image = a , a instanceof c . Sprite || a instanceof c . Image || a instanceof c . Text || a instanceof PIXI . Sprite ) this . _pos . set ( a . texture . crop . x , a . texture . crop . y ) , this . _size . set ( a . texture . crop . width , a . texture . crop . height ) , this . _scale . set ( a . scale . x , a . scale . y ) , this . _anchor . set ( a . anchor . x , a . anchor . y ) , this . _rotate = a . rotation , this . _alpha . current = a . alpha , this . _image = a . texture . baseTexture . source , ( void 0 === g || null === g ) && ( g = a . x ) , ( void 0 === h || null === h ) && ( h = a . y ) , a . texture . trim && ( g += a . texture . trim . x - a . anchor . x * a . texture . trim . width , h += a . texture . trim . y - a . anchor . y * a . texture . trim . height ) , 16777215 !== a . tint && ( a . cachedTint !== a . tint && ( a . cachedTint = a . tint , a . tintedTexture = PIXI . CanvasTinter . getTintedTexture ( a , a . tint ) ) , this . _image = a . tintedTexture ) ; else { if ( this . _pos . set ( 0 ) , this . _scale . set ( 1 ) , this . _anchor . set ( 0 ) , this . _rotate = 0 , this . _alpha . current = 1 , a instanceof c . BitmapData ) this . _image = a . canvas ; else if ( "string" == typeof a ) { if ( a = this . game . cache . getImage ( a ) , null === a ) return ; this . _image = a } this . _size . set ( this . _image . width , this . _image . height ) } if ( ( void 0 === b || null === b ) && ( b = 0 ) , ( void 0 === d || null === d ) && ( d = 0 ) , e && ( this . _size . x = e ) , f && ( this . _size . y = f ) , ( void 0 === g || null === g ) && ( g = b ) , ( void 0 === h || null === h ) && ( h = d ) , ( void 0 === i || null === i ) && ( i = this . _size . x ) , ( void 0 === j || null === j ) && ( j = this . _size . y ) , "number" == typeof k && ( this . _rotate = k ) , "number" == typeof l && ( this . _anchor . x = l ) , "number" == typeof m && ( this . _anchor . y = m ) , "number" == typeof n && ( this . _scale . x = n ) , "number" == typeof o && ( this . _scale . y = o ) , "number" == typeof p && ( this . _alpha . current = p ) , void 0 === q && ( q = null ) , void 0 === r && ( r = ! 1 ) , ! ( this . _alpha . current <= 0 || 0 === this . _scale . x || 0 === this . _scale . y || 0 === this . _size . x || 0 === this . _size . y ) ) { var s = this . context ; return this . _alpha . prev = s . globalAlpha , s . save ( ) , s . globalAlpha = this . _alpha . current , q && ( this . op = q ) , r && ( g |= 0 , h |= 0 ) , s . translate ( g , h ) , s . scale ( this . _scale . x , this . _scale . y ) , s . rotate ( this . _rotate ) , s . drawImage ( this . _image , this . _pos . x + b , this . _pos . y + d , this . _size . x , this . _size . y , - i * this . _anchor . x , - j * this . _anchor . y , i , j ) , s . restore ( ) , s . globalAlpha = this . _alpha . prev , this . dirty = ! 0 , this } } , copyRect : func
b . closePath ( ) ; else if ( e . type === PIXI . Graphics . ELIP ) { var i = 2 * f . width , j = 2 * f . height , k = f . x - i / 2 , l = f . y - j / 2 , m = . 5522848 , n = i / 2 * m , o = j / 2 * m , p = k + i , q = l + j , r = k + i / 2 , s = l + j / 2 ; b . moveTo ( k , s ) , b . bezierCurveTo ( k , s - o , r - n , l , r , l ) , b . bezierCurveTo ( r + n , l , p , s - o , p , s ) , b . bezierCurveTo ( p , s + o , r + n , q , r , q ) , b . bezierCurveTo ( r - n , q , k , s + o , k , s ) , b . closePath ( ) } else if ( e . type === PIXI . Graphics . RREC ) { var t = f . x , u = f . y , v = f . width , w = f . height , x = f . radius , y = Math . min ( v , w ) / 2 | 0 ; x = x > y ? y : x , b . moveTo ( t , u + x ) , b . lineTo ( t , u + w - x ) , b . quadraticCurveTo ( t , u + w , t + x , u + w ) , b . lineTo ( t + v - x , u + w ) , b . quadraticCurveTo ( t + v , u + w , t + v , u + w - x ) , b . lineTo ( t + v , u + x ) , b . quadraticCurveTo ( t + v , u , t + v - x , u ) , b . lineTo ( t + x , u ) , b . quadraticCurveTo ( t , u , t , u + x ) , b . closePath ( ) } } } } , PIXI . CanvasGraphics . updateGraphicsTint = function ( a ) { if ( 16777215 !== a . tint ) for ( var b = ( a . tint >> 16 & 255 ) / 255 , c = ( a . tint >> 8 & 255 ) / 255 , d = ( 255 & a . tint ) / 255 , e = 0 ; e < a . graphicsData . length ; e ++ ) { var f = a . graphicsData [ e ] , g = 0 | f . fillColor , h = 0 | f . lineColor ; f . _fillTint = ( ( g >> 16 & 255 ) / 255 * b * 255 << 16 ) + ( ( g >> 8 & 255 ) / 255 * c * 255 << 8 ) + ( 255 & g ) / 255 * d * 255 , f . _lineTint = ( ( h >> 16 & 255 ) / 255 * b * 255 << 16 ) + ( ( h >> 8 & 255 ) / 255 * c * 255 << 8 ) + ( 255 & h ) / 255 * d * 255 } } , c . Graphics = function ( a , b , d ) { void 0 === b && ( b = 0 ) , void 0 === d && ( d = 0 ) , this . type = c . GRAPHICS , this . physicsType = c . SPRITE , PIXI . Graphics . call ( this ) , c . Component . Core . init . call ( this , a , b , d , "" , null ) } , c . Graphics . prototype = Object . create ( PIXI . Graphics . prototype ) , c . Graphics . prototype . constructor = c . Graphics , c . Component . Core . install . call ( c . Graphics . prototype , [ "Angle" , "AutoCull" , "Bounds" , "Destroy" , "FixedToCamera" , "InputEnabled" , "InWorld" , "LifeSpan" , "PhysicsBody" , "Reset" ] ) , c . Graphics . prototype . preUpdatePhysics = c . Component . PhysicsBody . preUpdate , c . Graphics . prototype . preUpdateLifeSpan = c . Component . LifeSpan . preUpdate , c . Graphics . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . Graphics . prototype . preUpdateCore = c . Component . Core . preUpdate , c . Graphics . prototype . preUpdate = function ( ) { return this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ? this . preUpdateCore ( ) : ! 1 } , c . Graphics . prototype . destroy = function ( a ) { this . clear ( ) , c . Component . Destroy . prototype . destroy . call ( this , a ) } , c . Graphics . prototype . drawTriangle = function ( a , b ) { void 0 === b && ( b = ! 1 ) ; var d = new c . Polygon ( a ) ; if ( b ) { var e = new c . Point ( this . game . camera . x - a [ 0 ] . x , this . game . camera . y - a [ 0 ] . y ) , f = new c . Point ( a [ 1 ] . x - a [ 0 ] . x , a [ 1 ] . y - a [ 0 ] . y ) , g = new c . Point ( a [ 1 ] . x - a [ 2 ] . x , a [ 1 ] . y - a [ 2 ] . y ) , h = g . cross ( f ) ; e . dot ( h ) > 0 && this . drawPolygon ( d ) } else this . drawPolygon ( d ) } , c . Graphics . prototype . drawTriangles = function ( a , b , d ) { void 0 === d && ( d = ! 1 ) ; var e , f = new c . Point , g = new c . Point , h = new c . Point , i = [ ] ; if ( b ) if ( a [ 0 ] instanceof c . Point ) for ( e = 0 ; e < b . length / 3 ; e ++ ) i . push ( a [ b [ 3 * e ] ] ) , i . push ( a [ b [ 3 * e + 1 ] ] ) , i . push ( a [ b [ 3 * e + 2 ] ] ) , 3 === i . length && ( this . drawTriangle ( i , d ) , i = [ ] ) ; else for ( e = 0 ; e < b . length ; e ++ ) f . x = a [ 2 * b [ e ] ] , f . y = a [ 2 * b [ e ] + 1 ] , i . push ( f . copyTo ( { } ) ) , 3 === i . length && ( this . drawTriangle ( i , d ) , i = [ ] ) ; else if ( a [ 0 ] instanceof c . Point ) for ( e = 0 ; e < a . length / 3 ; e ++ ) this . drawTriangle ( [ a [ 3 * e ] , a [ 3 * e + 1 ] , a [ 3 * e + 2 ] ] , d ) ; else for ( e = 0 ; e < a . length / 6 ; e ++ ) f . x = a [ 6 * e + 0 ] , f . y = a [ 6 * e + 1 ] , g . x = a [ 6 * e + 2 ] , g . y = a [ 6 * e + 3 ] , h . x = a [ 6 * e + 4 ] , h . y = a [ 6 * e + 5 ] , this . drawTriangle ( [ f , g , h ] , d ) } , c . RenderTexture = function ( a , b , d , e , f , g ) { void 0 === e && ( e = "" ) , void 0 === f && ( f = c . scaleModes . DEFAULT ) , void 0 === g && ( g = 1 ) , this . game = a , this . key = e , this . type = c . RENDERTEXTURE , this . _tempMatrix = new PIXI . Matrix , PIXI . RenderTexture . call ( this , b , d , this . game . renderer , f , g ) , this . render = c . RenderTexture . prototype . render } , c . RenderTexture . prototype = Object . create ( PIXI . RenderTexture . prototype ) , c . RenderTexture . prototype . constructor = c . RenderTexture , c . RenderTexture . prototype . renderXY = function ( a , b , c , d ) { a . updateTransform ( ) , this . _tempMatrix . copyFrom ( a . worldTransform ) , this . _tempMatrix . tx = b , this . _tempMatrix . ty = c , this . renderer . type === PIXI . WEBGL _RENDERER ? this . renderWebGL ( a , this . _tempMatrix , d ) : this . renderCanvas ( a , this . _tempMatrix , d ) } , c . RenderTexture . prototype . renderRawXY = function ( a , b , c , d ) { this . _tempMatrix . identity ( ) . translate ( b , c ) , this . renderer . type === PIXI . WEBGL _RENDERER ? this . renderWebGL ( a , this . _tempMatrix , d ) : this . renderCanvas ( a , this . _tempMatrix , d ) } , c . RenderTexture . prototype . render = function ( a , b , c ) { void 0 === b || null === b ? this . _tempMatrix . copyFrom ( a . worldTransform ) : this . _tempMatrix . copyFrom ( b ) , this
d = this . vertices [ a + 1 ] * this . scale . y , e = this . vertices [ a + 4 ] * this . scale . x , f = this . vertices [ a + 3 ] * this . scale . y , g = c . Math . difference ( b , e ) , h = c . Math . difference ( d , f ) , b += this . world . x , d += this . world . y , i = new c . Rectangle ( b , d , g , h ) , j . push ( i ) ; return j } } ) , c . TileSprite = function ( a , b , d , e , f , g , h ) { b = b || 0 , d = d || 0 , e = e || 256 , f = f || 256 , g = g || null , h = h || null , this . type = c . TILESPRITE , this . physicsType = c . SPRITE , this . _scroll = new c . Point ; var i = a . cache . getImage ( "__default" , ! 0 ) ; PIXI . TilingSprite . call ( this , new PIXI . Texture ( i . base ) , e , f ) , c . Component . Core . init . call ( this , a , b , d , g , h ) } , c . TileSprite . prototype = Object . create ( PIXI . TilingSprite . prototype ) , c . TileSprite . prototype . constructor = c . TileSprite , c . Component . Core . install . call ( c . TileSprite . prototype , [ "Angle" , "Animation" , "AutoCull" , "Bounds" , "BringToTop" , "Destroy" , "FixedToCamera" , "Health" , "InCamera" , "InputEnabled" , "InWorld" , "LifeSpan" , "LoadTexture" , "Overlap" , "PhysicsBody" , "Reset" , "Smoothed" ] ) , c . TileSprite . prototype . preUpdatePhysics = c . Component . PhysicsBody . preUpdate , c . TileSprite . prototype . preUpdateLifeSpan = c . Component . LifeSpan . preUpdate , c . TileSprite . prototype . preUpdateInWorld = c . Component . InWorld . preUpdate , c . TileSprite . prototype . preUpdateCore = c . Component . Core . preUpdate , c . TileSprite . prototype . preUpdate = function ( ) { return 0 !== this . _scroll . x && ( this . tilePosition . x += this . _scroll . x * this . game . time . physicsElapsed ) , 0 !== this . _scroll . y && ( this . tilePosition . y += this . _scroll . y * this . game . time . physicsElapsed ) , this . preUpdatePhysics ( ) && this . preUpdateLifeSpan ( ) && this . preUpdateInWorld ( ) ? this . preUpdateCore ( ) : ! 1 } , c . TileSprite . prototype . autoScroll = function ( a , b ) { this . _scroll . set ( a , b ) } , c . TileSprite . prototype . stopScroll = function ( ) { this . _scroll . set ( 0 , 0 ) } , c . TileSprite . prototype . destroy = function ( a ) { c . Component . Destroy . prototype . destroy . call ( this , a ) , PIXI . TilingSprite . prototype . destroy . call ( this ) } , c . TileSprite . prototype . reset = function ( a , b ) { return c . Component . Reset . prototype . reset . call ( this , a , b ) , this . tilePosition . x = 0 , this . tilePosition . y = 0 , this } , c . Device = function ( ) { this . deviceReadyAt = 0 , this . initialized = ! 1 , this . desktop = ! 1 , this . iOS = ! 1 , this . iOSVersion = 0 , this . cocoonJS = ! 1 , this . cocoonJSApp = ! 1 , this . cordova = ! 1 , this . node = ! 1 , this . nodeWebkit = ! 1 , this . electron = ! 1 , this . ejecta = ! 1 , this . crosswalk = ! 1 , this . android = ! 1 , this . chromeOS = ! 1 , this . linux = ! 1 , this . macOS = ! 1 , this . windows = ! 1 , this . windowsPhone = ! 1 , this . canvas = ! 1 , this . canvasBitBltShift = null , this . webGL = ! 1 , this . file = ! 1 , this . fileSystem = ! 1 , this . localStorage = ! 1 , this . worker = ! 1 , this . css3D = ! 1 , this . pointerLock = ! 1 , this . typedArray = ! 1 , this . vibration = ! 1 , this . getUserMedia = ! 0 , this . quirksMode = ! 1 , this . touch = ! 1 , this . mspointer = ! 1 , this . wheelEvent = null , this . arora = ! 1 , this . chrome = ! 1 , this . chromeVersion = 0 , this . epiphany = ! 1 , this . firefox = ! 1 , this . firefoxVersion = 0 , this . ie = ! 1 , this . ieVersion = 0 , this . trident = ! 1 , this . tridentVersion = 0 , this . mobileSafari = ! 1 , this . midori = ! 1 , this . opera = ! 1 , this . safari = ! 1 , this . webApp = ! 1 , this . silk = ! 1 , this . audioData = ! 1 , this . webAudio = ! 1 , this . ogg = ! 1 , this . opus = ! 1 , this . mp3 = ! 1 , this . wav = ! 1 , this . m4a = ! 1 , this . webm = ! 1 , this . oggVideo = ! 1 , this . h264Video = ! 1 , this . mp4Video = ! 1 , this . webmVideo = ! 1 , this . vp9Video = ! 1 , this . hlsVideo = ! 1 , this . iPhone = ! 1 , this . iPhone4 = ! 1 , this . iPad = ! 1 , this . pixelRatio = 0 , this . littleEndian = ! 1 , this . LITTLE _ENDIAN = ! 1 , this . support32bit = ! 1 , this . fullscreen = ! 1 , this . requestFullscreen = "" , this . cancelFullscreen = "" , this . fullscreenKeyboard = ! 1 } , c . Device = new c . Device , c . Device . onInitialized = new c . Signal , c . Device . whenReady = function ( a , b , c ) { var d = this . _readyCheck ; if ( this . deviceReadyAt || ! d ) a . call ( b , this ) ; else if ( d . _monitor || c ) d . _queue = d . _queue || [ ] , d . _queue . push ( [ a , b ] ) ; else { d . _monitor = d . bind ( this ) , d . _queue = d . _queue || [ ] , d . _queue . push ( [ a , b ] ) ; var e = "undefined" != typeof window . cordova , f = navigator . isCocoonJS ; "complete" === document . readyState || "interactive" === document . readyState ? window . setTimeout ( d . _monitor , 0 ) : e && ! f ? document . addEventListener ( "deviceready" , d . _monitor , ! 1 ) : ( document . addEventListener ( "DOMContentLoaded" , d . _monitor , ! 1 ) , window . addEventListener ( "load" , d . _monitor , ! 1 ) ) } } , c . Device . _readyCheck = function ( ) { var a = this . _readyCheck ; if ( document . body ) { if ( ! this . deviceReadyAt ) { this . deviceReadyAt = Date . now ( ) , document . removeEventListener ( "deviceready" , a . _monitor ) , document . removeE
2015-10-13 14:23:36 +01:00
this . updateTweenData ( "interpolationContext" , b , d ) } , repeatAll : function ( a ) { return void 0 === a && ( a = 0 ) , this . repeatCounter = a , this } , chain : function ( ) { for ( var a = arguments . length ; a -- ; ) a > 0 ? arguments [ a - 1 ] . chainedTween = arguments [ a ] : this . chainedTween = arguments [ a ] ; return this } , loop : function ( a ) { return void 0 === a && ( a = ! 0 ) , a ? this . repeatAll ( - 1 ) : this . repeatCounter = 0 , this } , onUpdateCallback : function ( a , b ) { return this . _onUpdateCallback = a , this . _onUpdateCallbackContext = b , this } , pause : function ( ) { this . isPaused = ! 0 , this . _codePaused = ! 0 , this . _pausedTime = this . game . time . time } , _pause : function ( ) { this . _codePaused || ( this . isPaused = ! 0 , this . _pausedTime = this . game . time . time ) } , resume : function ( ) { if ( this . isPaused ) { this . isPaused = ! 1 , this . _codePaused = ! 1 ; for ( var a = 0 ; a < this . timeline . length ; a ++ ) this . timeline [ a ] . isRunning || ( this . timeline [ a ] . startTime += this . game . time . time - this . _pausedTime ) } } , _resume : function ( ) { this . _codePaused || this . resume ( ) } , update : function ( a ) { if ( this . pendingDelete ) return ! 1 ; if ( this . isPaused ) return ! 0 ; var b = this . timeline [ this . current ] . update ( a ) ; if ( b === c . TweenData . PENDING ) return ! 0 ; if ( b === c . TweenData . RUNNING ) return this . _hasStarted || ( this . onStart . dispatch ( this . target , this ) , this . _hasStarted = ! 0 ) , null !== this . _onUpdateCallback && this . _onUpdateCallback . call ( this . _onUpdateCallbackContext , this , this . timeline [ this . current ] . value , this . timeline [ this . current ] ) , this . isRunning ; if ( b === c . TweenData . LOOPED ) return this . onLoop . dispatch ( this . target , this ) , ! 0 ; if ( b === c . TweenData . COMPLETE ) { var d = ! 1 ; return this . reverse ? ( this . current -- , this . current < 0 && ( this . current = this . timeline . length - 1 , d = ! 0 ) ) : ( this . current ++ , this . current === this . timeline . length && ( this . current = 0 , d = ! 0 ) ) , d ? - 1 === this . repeatCounter ? ( this . timeline [ this . current ] . start ( ) , this . onRepeat . dispatch ( this . target , this ) , ! 0 ) : this . repeatCounter > 0 ? ( this . repeatCounter -- , this . timeline [ this . current ] . start ( ) , this . onRepeat . dispatch ( this . target , this ) , ! 0 ) : ( this . isRunning = ! 1 , this . onComplete . dispatch ( this . target , this ) , this . chainedTween && this . chainedTween . start ( ) , ! 1 ) : ( this . onChildComplete . dispatch ( this . target , this ) , this . timeline [ this . current ] . start ( ) , ! 0 ) } } , generateData : function ( a , b ) { if ( null === this . game || null === this . target ) return null ; void 0 === a && ( a = 60 ) , void 0 === b && ( b = [ ] ) ; for ( var c = 0 ; c < this . timeline . length ; c ++ ) for ( var d in this . timeline [ c ] . vEnd ) this . properties [ d ] = this . target [ d ] || 0 , Array . isArray ( this . properties [ d ] ) || ( this . properties [ d ] *= 1 ) ; for ( var c = 0 ; c < this . timeline . length ; c ++ ) this . timeline [ c ] . loadValues ( ) ; for ( var c = 0 ; c < this . timeline . length ; c ++ ) b = b . concat ( this . timeline [ c ] . generateData ( a ) ) ; return b } } , Object . defineProperty ( c . Tween . prototype , "totalDuration" , { get : function ( ) { for ( var a = 0 , b = 0 ; b < this . timeline . length ; b ++ ) a += this . timeline [ b ] . duration ; return a } } ) , c . Tween . prototype . constructor = c . Tween , c . TweenData = function ( a ) { this . parent = a , this . game = a . game , this . vStart = { } , this . vStartCache = { } , this . vEnd = { } , this . vEndCache = { } , this . duration = 1e3 , this . percent = 0 , this . value = 0 , this . repeatCounter = 0 , this . repeatDelay = 0 , this . interpolate = ! 1 , this . yoyo = ! 1 , this . yoyoDelay = 0 , this . inReverse = ! 1 , this . delay = 0 , this . dt = 0 , this . startTime = null , this . easingFunction = c . Easing . Default , this . interpolationFunction = c . Math . linearInterpolation , this . interpolationContext = c . Math , this . isRunning = ! 1 , this . isFrom = ! 1 } , c . TweenData . PENDING = 0 , c . TweenData . RUNNING = 1 , c . TweenData . LOOPED = 2 , c . TweenData . COMPLETE = 3 , c . TweenData . prototype = { to : function ( a , b , c , d , e , f ) { return this . vEnd = a , this . duration = b , this . easingFunction = c , this . delay = d , this . repeatCounter = e , this . yoyo = f , this . isFrom = ! 1 , this } , from : function ( a , b , c , d , e , f ) { return this . vEnd = a , this . duration = b , this . easingFunction = c , this . delay = d , this . repeatCounter = e , this . yoyo = f , this . isFrom = ! 0 , this } , start : function ( ) { if ( this . startTime = this . game . time . time + this . delay , this . parent . reverse ? this . dt = this . duration : this . dt = 0 , this . delay > 0 ? this . isRunning = ! 1 : this . isRunning = ! 0 , this . isFrom ) for ( var a in this . vStartCache ) this . vStart [ a ] = this . vEndCache [ a ] , this . vEnd [ a ] = this . vStartCache [ a ] , this . parent . target [ a ] = this . vStart [ a ] ; return this . value = 0 , this . yoyoCounter = 0 , this } , loadValues : function ( ) { for ( var a in this . parent . properties ) { if ( this . vStart [ a ] = this . parent . properties [ a ] , Array . isArray ( this . vEnd [ a ] ) ) { if ( 0 === this . v
if ( ! b . frames ) return console . warn ( "Phaser.AnimationParser.JSONDataHash: Invalid Texture Atlas JSON given, missing 'frames' object" ) , void console . log ( b ) ; var d , e = new c . FrameData , f = b . frames , g = 0 ; for ( var h in f ) d = e . addFrame ( new c . Frame ( g , f [ h ] . frame . x , f [ h ] . frame . y , f [ h ] . frame . w , f [ h ] . frame . h , h ) ) , f [ h ] . trimmed && d . setTrim ( f [ h ] . trimmed , f [ h ] . sourceSize . w , f [ h ] . sourceSize . h , f [ h ] . spriteSourceSize . x , f [ h ] . spriteSourceSize . y , f [ h ] . spriteSourceSize . w , f [ h ] . spriteSourceSize . h ) , g ++ ; return e } , XMLData : function ( a , b ) { if ( ! b . getElementsByTagName ( "TextureAtlas" ) ) return void console . warn ( "Phaser.AnimationParser.XMLData: Invalid Texture Atlas XML given, missing <TextureAtlas> tag" ) ; for ( var d , e , f , g , h , i , j , k , l , m , n , o = new c . FrameData , p = b . getElementsByTagName ( "SubTexture" ) , q = 0 ; q < p . length ; q ++ ) f = p [ q ] . attributes , e = f . name . value , g = parseInt ( f . x . value , 10 ) , h = parseInt ( f . y . value , 10 ) , i = parseInt ( f . width . value , 10 ) , j = parseInt ( f . height . value , 10 ) , k = null , l = null , f . frameX && ( k = Math . abs ( parseInt ( f . frameX . value , 10 ) ) , l = Math . abs ( parseInt ( f . frameY . value , 10 ) ) , m = parseInt ( f . frameWidth . value , 10 ) , n = parseInt ( f . frameHeight . value , 10 ) ) , d = o . addFrame ( new c . Frame ( q , g , h , i , j , e ) ) , ( null !== k || null !== l ) && d . setTrim ( ! 0 , i , j , k , l , m , n ) ; return o } } , c . Cache = function ( a ) { this . game = a , this . autoResolveURL = ! 1 , this . _cache = { canvas : { } , image : { } , texture : { } , sound : { } , video : { } , text : { } , json : { } , xml : { } , physics : { } , tilemap : { } , binary : { } , bitmapData : { } , bitmapFont : { } , shader : { } , renderTexture : { } } , this . _urlMap = { } , this . _urlResolver = new Image , this . _urlTemp = null , this . onSoundUnlock = new c . Signal , this . _cacheMap = [ ] , this . _cacheMap [ c . Cache . CANVAS ] = this . _cache . canvas , this . _cacheMap [ c . Cache . IMAGE ] = this . _cache . image , this . _cacheMap [ c . Cache . TEXTURE ] = this . _cache . texture , this . _cacheMap [ c . Cache . SOUND ] = this . _cache . sound , this . _cacheMap [ c . Cache . TEXT ] = this . _cache . text , this . _cacheMap [ c . Cache . PHYSICS ] = this . _cache . physics , this . _cacheMap [ c . Cache . TILEMAP ] = this . _cache . tilemap , this . _cacheMap [ c . Cache . BINARY ] = this . _cache . binary , this . _cacheMap [ c . Cache . BITMAPDATA ] = this . _cache . bitmapData , this . _cacheMap [ c . Cache . BITMAPFONT ] = this . _cache . bitmapFont , this . _cacheMap [ c . Cache . JSON ] = this . _cache . json , this . _cacheMap [ c . Cache . XML ] = this . _cache . xml , this . _cacheMap [ c . Cache . VIDEO ] = this . _cache . video , this . _cacheMap [ c . Cache . SHADER ] = this . _cache . shader , this . _cacheMap [ c . Cache . RENDER _TEXTURE ] = this . _cache . renderTexture , this . addDefaultImage ( ) , this . addMissingImage ( ) } , c . Cache . CANVAS = 1 , c . Cache . IMAGE = 2 , c . Cache . TEXTURE = 3 , c . Cache . SOUND = 4 , c . Cache . TEXT = 5 , c . Cache . PHYSICS = 6 , c . Cache . TILEMAP = 7 , c . Cache . BINARY = 8 , c . Cache . BITMAPDATA = 9 , c . Cache . BITMAPFONT = 10 , c . Cache . JSON = 11 , c . Cache . XML = 12 , c . Cache . VIDEO = 13 , c . Cache . SHADER = 14 , c . Cache . RENDER _TEXTURE = 15 , c . Cache . prototype = { addCanvas : function ( a , b , c ) { void 0 === c && ( c = b . getContext ( "2d" ) ) , this . _cache . canvas [ a ] = { canvas : b , context : c } } , addImage : function ( a , b , d ) { this . checkImageKey ( a ) && this . removeImage ( a ) ; var e = { key : a , url : b , data : d , base : new PIXI . BaseTexture ( d ) , frame : new c . Frame ( 0 , 0 , 0 , d . width , d . height , a ) , frameData : new c . FrameData } ; return e . frameData . addFrame ( new c . Frame ( 0 , 0 , 0 , d . width , d . height , b ) ) , this . _cache . image [ a ] = e , this . _resolveURL ( b , e ) , e } , addDefaultImage : function ( ) { var a = new Image ; a . src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg==" ; var b = this . addImage ( "__default" , null , a ) ; PIXI . TextureCache . _ _default = new PIXI . Texture ( b . base ) } , addMissingImage : function ( ) { var a = new Image ; a . src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg==" ; var b = this . addImage ( "__missing" , null , a ) ; PIXI . TextureCache . _ _missing = new PIXI . Texture ( b . base ) } , addSound : function ( a , b , c , d , e ) { void 0 === d && ( d = ! 0 , e = ! 1 ) , void 0 === e && ( d = ! 1 , e = ! 0 ) ; var f = ! 1 ; e && ( f = ! 0 ) , this . _cache . sound [ a ] = { url : b , data : c , isDecoding : ! 1 , decoded : f , webAudio : d , audioTag : e , locked : this . game . sound . touchLocked } , this . _resolveURL ( b , this . _ca
break ; case "script" : a . data = document . createElement ( "script" ) , a . data . language = "javascript" , a . data . type = "text/javascript" , a . data . defer = ! 1 , a . data . text = b . responseText , document . head . appendChild ( a . data ) , a . callback && ( a . data = a . callback . call ( a . callbackContext , a . key , b . responseText ) ) ; break ; case "binary" : a . callback ? a . data = a . callback . call ( a . callbackContext , a . key , b . response ) : a . data = b . response , this . cache . addBinary ( a . key , a . data ) } d && this . asyncComplete ( a ) } , jsonLoadComplete : function ( a , b ) { var c = JSON . parse ( b . responseText ) ; "tilemap" === a . type ? this . cache . addTilemap ( a . key , a . url , c , a . format ) : "bitmapfont" === a . type ? this . cache . addBitmapFont ( a . key , a . url , a . data , c , a . atlasType , a . xSpacing , a . ySpacing ) : "json" === a . type ? this . cache . addJSON ( a . key , a . url , c ) : this . cache . addTextureAtlas ( a . key , a . url , a . data , c , a . format ) , this . asyncComplete ( a ) } , csvLoadComplete : function ( a , b ) { var c = b . responseText ; this . cache . addTilemap ( a . key , a . url , c , a . format ) , this . asyncComplete ( a ) } , xmlLoadComplete : function ( a , b ) { var c = b . responseText , d = this . parseXml ( c ) ; if ( ! d ) { var e = b . responseType || b . contentType ; return console . warn ( "Phaser.Loader - " + a . key + ": invalid XML (" + e + ")" ) , void this . asyncComplete ( a , "invalid XML" ) } "bitmapfont" === a . type ? this . cache . addBitmapFont ( a . key , a . url , a . data , d , a . atlasType , a . xSpacing , a . ySpacing ) : "textureatlas" === a . type ? this . cache . addTextureAtlas ( a . key , a . url , a . data , d , a . format ) : "xml" === a . type && this . cache . addXML ( a . key , a . url , d ) , this . asyncComplete ( a ) } , parseXml : function ( a ) { var b ; try { if ( window . DOMParser ) { var c = new DOMParser ; b = c . parseFromString ( a , "text/xml" ) } else b = new ActiveXObject ( "Microsoft.XMLDOM" ) , b . async = "false" , b . loadXML ( a ) } catch ( d ) { b = null } return b && b . documentElement && ! b . getElementsByTagName ( "parsererror" ) . length ? b : null } , updateProgress : function ( ) { this . preloadSprite && ( 0 === this . preloadSprite . direction ? this . preloadSprite . rect . width = Math . floor ( this . preloadSprite . width / 100 * this . progress ) : this . preloadSprite . rect . height = Math . floor ( this . preloadSprite . height / 100 * this . progress ) , this . preloadSprite . sprite ? this . preloadSprite . sprite . updateCrop ( ) : this . preloadSprite = null ) } , totalLoadedFiles : function ( ) { return this . _loadedFileCount } , totalQueuedFiles : function ( ) { return this . _totalFileCount - this . _loadedFileCount } , totalLoadedPacks : function ( ) { return this . _totalPackCount } , totalQueuedPacks : function ( ) { return this . _totalPackCount - this . _loadedPackCount } } , Object . defineProperty ( c . Loader . prototype , "progressFloat" , { get : function ( ) { var a = this . _loadedFileCount / this . _totalFileCount * 100 ; return c . Math . clamp ( a || 0 , 0 , 100 ) } } ) , Object . defineProperty ( c . Loader . prototype , "progress" , { get : function ( ) { return Math . round ( this . progressFloat ) } } ) , c . Loader . prototype . constructor = c . Loader , c . LoaderParser = { bitmapFont : function ( a , b , c , d ) { return this . xmlBitmapFont ( a , b , c , d ) } , xmlBitmapFont : function ( a , b , c , d ) { var e = { } , f = a . getElementsByTagName ( "info" ) [ 0 ] , g = a . getElementsByTagName ( "common" ) [ 0 ] ; e . font = f . getAttribute ( "face" ) , e . size = parseInt ( f . getAttribute ( "size" ) , 10 ) , e . lineHeight = parseInt ( g . getAttribute ( "lineHeight" ) , 10 ) + d , e . chars = { } ; for ( var h = a . getElementsByTagName ( "char" ) , i = 0 ; i < h . length ; i ++ ) { var j = parseInt ( h [ i ] . getAttribute ( "id" ) , 10 ) ; e . chars [ j ] = { x : parseInt ( h [ i ] . getAttribute ( "x" ) , 10 ) , y : parseInt ( h [ i ] . getAttribute ( "y" ) , 10 ) , width : parseInt ( h [ i ] . getAttribute ( "width" ) , 10 ) , height : parseInt ( h [ i ] . getAttribute ( "height" ) , 10 ) , xOffset : parseInt ( h [ i ] . getAttribute ( "xoffset" ) , 10 ) , yOffset : parseInt ( h [ i ] . getAttribute ( "yoffset" ) , 10 ) , xAdvance : parseInt ( h [ i ] . getAttribute ( "xadvance" ) , 10 ) + c , kerning : { } } } var k = a . getElementsByTagName ( "kerning" ) ; for ( i = 0 ; i < k . length ; i ++ ) { var l = parseInt ( k [ i ] . getAttribute ( "first" ) , 10 ) , m = parseInt ( k [ i ] . getAttribute ( "second" ) , 10 ) , n = parseInt ( k [ i ] . getAttribute ( "amount" ) , 10 ) ; e . chars [ m ] . kerning [ l ] = n } return this . finalizeBitmapFont ( b , e ) } , jsonBitmapFont : function ( a , b , c , d ) { var e = { font : a . font . info . _face , size : parseInt ( a . font . info . _size , 10 ) , lineHeight : parseInt ( a . font . common . _lineHeight , 10 ) + d , chars : { } } ; return a . font . chars [ "char" ] . forEach ( function ( a ) { var b = parseInt ( a . _id , 10 ) ; e . chars [ b ] = { x : parseInt ( a . _x , 10 ) , y : parseInt ( a . _y , 10 ) , width : parseInt ( a . _width , 10 ) , height : parseInt ( a . _height , 10 ) , xOffset : parseInt ( a . _xoffset , 10 ) , yOffset : parseInt ( a . _yoffset , 10 ) , xAdvance : parseInt ( a . _xadvance , 1
var g = f . top - c . y , h = c . height / 2 - this . height / 2 ; h = Math . max ( h , 0 ) ; var i = h - g ; e . top = Math . round ( i ) } d . style . marginTop = e . top + "px" , 0 !== e . top && ( e . bottom = - ( c . height - f . height - e . top ) , d . style . marginBottom = e . bottom + "px" ) } e . x = e . left , e . y = e . top } , reflowGame : function ( ) { this . resetCanvas ( "" , "" ) ; var a = this . getParentBounds ( this . _tempBounds ) ; this . updateDimensions ( a . width , a . height , ! 0 ) } , reflowCanvas : function ( ) { this . incorrectOrientation || ( this . width = c . Math . clamp ( this . width , this . minWidth || 0 , this . maxWidth || this . width ) , this . height = c . Math . clamp ( this . height , this . minHeight || 0 , this . maxHeight || this . height ) ) , this . resetCanvas ( ) , this . compatibility . noMargins || ( this . isFullScreen && this . _createdFullScreenTarget ? this . alignCanvas ( ! 0 , ! 0 ) : this . alignCanvas ( this . pageAlignHorizontally , this . pageAlignVertically ) ) , this . updateScalingAndBounds ( ) } , resetCanvas : function ( a , b ) { void 0 === a && ( a = this . width + "px" ) , void 0 === b && ( b = this . height + "px" ) ; var c = this . game . canvas ; this . compatibility . noMargins || ( c . style . marginLeft = "" , c . style . marginTop = "" , c . style . marginRight = "" , c . style . marginBottom = "" ) , c . style . width = a , c . style . height = b } , queueUpdate : function ( a ) { a && ( this . _parentBounds . width = 0 , this . _parentBounds . height = 0 ) , this . _updateThrottle = this . _updateThrottleReset } , reset : function ( a ) { a && this . grid && this . grid . reset ( ) } , setMaximum : function ( ) { this . width = this . dom . visualBounds . width , this . height = this . dom . visualBounds . height } , setShowAll : function ( a ) { var b , c = this . getParentBounds ( this . _tempBounds ) , d = c . width , e = c . height ; b = a ? Math . max ( e / this . game . height , d / this . game . width ) : Math . min ( e / this . game . height , d / this . game . width ) , this . width = Math . round ( this . game . width * b ) , this . height = Math . round ( this . game . height * b ) } , setExactFit : function ( ) { var a = this . getParentBounds ( this . _tempBounds ) ; this . width = a . width , this . height = a . height , this . isFullScreen || ( this . maxWidth && ( this . width = Math . min ( this . width , this . maxWidth ) ) , this . maxHeight && ( this . height = Math . min ( this . height , this . maxHeight ) ) ) } , createFullScreenTarget : function ( ) { var a = document . createElement ( "div" ) ; return a . style . margin = "0" , a . style . padding = "0" , a . style . background = "#000" , a } , startFullScreen : function ( a , b ) { if ( this . isFullScreen ) return ! 1 ; if ( ! this . compatibility . supportsFullScreen ) { var d = this ; return void setTimeout ( function ( ) { d . fullScreenError ( ) } , 10 ) } if ( "when-not-mouse" === this . compatibility . clickTrampoline ) { var e = this . game . input ; if ( e . activePointer && e . activePointer !== e . mousePointer && ( b || b !== ! 1 ) ) return void e . activePointer . addClickTrampoline ( "startFullScreen" , this . startFullScreen , this , [ a , ! 1 ] ) } "undefined" != typeof a && this . game . renderType === c . CANVAS && ( this . game . stage . smoothed = a ) ; var f = this . fullScreenTarget ; f || ( this . cleanupCreatedTarget ( ) , this . _createdFullScreenTarget = this . createFullScreenTarget ( ) , f = this . _createdFullScreenTarget ) ; var g = { targetElement : f } ; if ( this . onFullScreenInit . dispatch ( this , g ) , this . _createdFullScreenTarget ) { var h = this . game . canvas , i = h . parentNode ; i . insertBefore ( f , h ) , f . appendChild ( h ) } return this . game . device . fullscreenKeyboard ? f [ this . game . device . requestFullscreen ] ( Element . ALLOW _KEYBOARD _INPUT ) : f [ this . game . device . requestFullscreen ] ( ) , ! 0 } , stopFullScreen : function ( ) { return this . isFullScreen && this . compatibility . supportsFullScreen ? ( document [ this . game . device . cancelFullscreen ] ( ) , ! 0 ) : ! 1 } , cleanupCreatedTarget : function ( ) { var a = this . _createdFullScreenTarget ; if ( a && a . parentNode ) { var b = a . parentNode ; b . insertBefore ( this . game . canvas , a ) , b . removeChild ( a ) } this . _createdFullScreenTarget = null } , prepScreenMode : function ( a ) { var b = ! ! this . _createdFullScreenTarget , d = this . _createdFullScreenTarget || this . fullScreenTarget ; a ? ( b || this . fullScreenScaleMode === c . ScaleManager . EXACT _FIT ) && d !== this . game . canvas && ( this . _fullScreenRestore = { targetWidth : d . style . width , targetHeight : d . style . height } , d . style . width = "100%" , d . style . height = "100%" ) : ( this . _fullScreenRestore && ( d . style . width = this . _fullScreenRestore . targetWidth , d . style . height = this . _fullScreenRestore . targetHeight , this . _fullScreenRestore = null ) , this . updateDimensions ( this . _gameSize . width , this . _gameSize . height , ! 0 ) , this . resetCanvas ( ) ) } , fullScreenChange : function ( a ) { this . event = a , this . isFullScreen ? ( this . prepScreenMode ( ! 0 ) , this . updateLayout ( ) , this . queueUpdate ( ! 0 ) ) : ( this . prepScreenMode ( ! 1 ) , this . clea
} , RGBtoHSL : function ( a , b , d , e ) { e || ( e = c . Color . createColor ( a , b , d , 1 ) ) , a /= 255 , b /= 255 , d /= 255 ; var f = Math . min ( a , b , d ) , g = Math . max ( a , b , d ) ; if ( e . h = 0 , e . s = 0 , e . l = ( g + f ) / 2 , g !== f ) { var h = g - f ; e . s = e . l > . 5 ? h / ( 2 - g - f ) : h / ( g + f ) , g === a ? e . h = ( b - d ) / h + ( d > b ? 6 : 0 ) : g === b ? e . h = ( d - a ) / h + 2 : g === d && ( e . h = ( a - b ) / h + 4 ) , e . h /= 6 } return e } , HSLtoRGB : function ( a , b , d , e ) { if ( e ? ( e . r = d , e . g = d , e . b = d ) : e = c . Color . createColor ( d , d , d ) , 0 !== b ) { var f = . 5 > d ? d * ( 1 + b ) : d + b - d * b , g = 2 * d - f ; e . r = c . Color . hueToColor ( g , f , a + 1 / 3 ) , e . g = c . Color . hueToColor ( g , f , a ) , e . b = c . Color . hueToColor ( g , f , a - 1 / 3 ) } return e . r = Math . floor ( 255 * e . r | 0 ) , e . g = Math . floor ( 255 * e . g | 0 ) , e . b = Math . floor ( 255 * e . b | 0 ) , c . Color . updateColor ( e ) , e } , RGBtoHSV : function ( a , b , d , e ) { e || ( e = c . Color . createColor ( a , b , d , 255 ) ) , a /= 255 , b /= 255 , d /= 255 ; var f = Math . min ( a , b , d ) , g = Math . max ( a , b , d ) , h = g - f ; return e . h = 0 , e . s = 0 === g ? 0 : h / g , e . v = g , g !== f && ( g === a ? e . h = ( b - d ) / h + ( d > b ? 6 : 0 ) : g === b ? e . h = ( d - a ) / h + 2 : g === d && ( e . h = ( a - b ) / h + 4 ) , e . h /= 6 ) , e } , HSVtoRGB : function ( a , b , d , e ) { void 0 === e && ( e = c . Color . createColor ( 0 , 0 , 0 , 1 , a , b , 0 , d ) ) ; var f , g , h , i = Math . floor ( 6 * a ) , j = 6 * a - i , k = d * ( 1 - b ) , l = d * ( 1 - j * b ) , m = d * ( 1 - ( 1 - j ) * b ) ; switch ( i % 6 ) { case 0 : f = d , g = m , h = k ; break ; case 1 : f = l , g = d , h = k ; break ; case 2 : f = k , g = d , h = m ; break ; case 3 : f = k , g = l , h = d ; break ; case 4 : f = m , g = k , h = d ; break ; case 5 : f = d , g = k , h = l } return e . r = Math . floor ( 255 * f ) , e . g = Math . floor ( 255 * g ) , e . b = Math . floor ( 255 * h ) , c . Color . updateColor ( e ) , e } , hueToColor : function ( a , b , c ) { return 0 > c && ( c += 1 ) , c > 1 && ( c -= 1 ) , 1 / 6 > c ? a + 6 * ( b - a ) * c : . 5 > c ? b : 2 / 3 > c ? a + ( b - a ) * ( 2 / 3 - c ) * 6 : a } , createColor : function ( a , b , d , e , f , g , h , i ) { var j = { r : a || 0 , g : b || 0 , b : d || 0 , a : e || 1 , h : f || 0 , s : g || 0 , l : h || 0 , v : i || 0 , color : 0 , color32 : 0 , rgba : "" } ; return c . Color . updateColor ( j ) } , updateColor : function ( a ) { return a . rgba = "rgba(" + a . r . toString ( ) + "," + a . g . toString ( ) + "," + a . b . toString ( ) + "," + a . a . toString ( ) + ")" , a . color = c . Color . getColor ( a . r , a . g , a . b ) , a . color32 = c . Color . getColor32 ( a . a , a . r , a . g , a . b ) , a } , getColor32 : function ( a , b , c , d ) { return a << 24 | b << 16 | c << 8 | d } , getColor : function ( a , b , c ) { return a << 16 | b << 8 | c } , RGBtoString : function ( a , b , d , e , f ) { return void 0 === e && ( e = 255 ) , void 0 === f && ( f = "#" ) , "#" === f ? "#" + ( ( 1 << 24 ) + ( a << 16 ) + ( b << 8 ) + d ) . toString ( 16 ) . slice ( 1 ) : "0x" + c . Color . componentToHex ( e ) + c . Color . componentToHex ( a ) + c . Color . componentToHex ( b ) + c . Color . componentToHex ( d ) } , hexToRGB : function ( a ) { var b = c . Color . hexToColor ( a ) ; return b ? c . Color . getColor32 ( b . a , b . r , b . g , b . b ) : void 0 } , hexToColor : function ( a , b ) { a = a . replace ( /^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i , function ( a , b , c , d ) { return b + b + c + c + d + d } ) ; var d = /^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i . exec ( a ) ; if ( d ) { var e = parseInt ( d [ 1 ] , 16 ) , f = parseInt ( d [ 2 ] , 16 ) , g = parseInt ( d [ 3 ] , 16 ) ; b ? ( b . r = e , b . g = f , b . b = g ) : b = c . Color . createColor ( e , f , g ) } return b } , webToColor : function ( a , b ) { b || ( b = c . Color . createColor ( ) ) ; var d = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/ . exec ( a ) ; return d && ( b . r = parseInt ( d [ 1 ] , 10 ) , b . g = parseInt ( d [ 2 ] , 10 ) , b . b = parseInt ( d [ 3 ] , 10 ) , b . a = void 0 !== d [ 4 ] ? parseFloat ( d [ 4 ] ) : 1 , c . Color . updateColor ( b ) ) , b } , valueToColor : function ( a , b ) { if ( b || ( b = c . Color . createColor ( ) ) , "string" == typeof a ) return 0 === a . indexOf ( "rgb" ) ? c . Color . webToColor ( a , b ) : ( b . a = 1 , c . Color . hexToColor ( a , b ) ) ; if ( "number" == typeof a ) { var d = c . Color . getRGB ( a ) ; return b . r = d . r , b . g = d . g , b . b = d . b , b . a = d . a / 255 , b } return b } , componentToHex : function ( a ) { var b = a . toString ( 16 ) ; return 1 == b . length ? "0" + b : b } , HSVColorWheel : function ( a , b ) { void 0 === a && ( a = 1 ) , void 0 === b && ( b = 1 ) ; for ( var d = [ ] , e = 0 ; 359 >= e ; e ++ ) d . push ( c . Color . HSVtoRGB ( e / 359 , a , b ) ) ; return d } , HSLColorWheel : function ( a , b ) { void 0 === a && ( a = . 5 ) , void 0 === b && ( b = . 5 ) ; for ( var d = [ ] , e = 0 ; 359 >= e ; e ++ ) d . push ( c . Color . HSLtoRGB ( e / 359 , a , b ) ) ; 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
} return 0 !== e || 0 !== f } , tileCheckX : function ( a , b ) { var c = 0 ; return a . deltaX ( ) < 0 && ! a . blocked . left && b . collideRight && a . checkCollision . left ? b . faceRight && a . x < b . right && ( c = a . x - b . right , c < - this . TILE _BIAS && ( c = 0 ) ) : a . deltaX ( ) > 0 && ! a . blocked . right && b . collideLeft && a . checkCollision . right && b . faceLeft && a . right > b . left && ( c = a . right - b . left , c > this . TILE _BIAS && ( c = 0 ) ) , 0 !== c && ( a . customSeparateX ? a . overlapX = c : this . processTileSeparationX ( a , c ) ) , c } , tileCheckY : function ( a , b ) { var c = 0 ; return a . deltaY ( ) < 0 && ! a . blocked . up && b . collideDown && a . checkCollision . up ? b . faceBottom && a . y < b . bottom && ( c = a . y - b . bottom , c < - this . TILE _BIAS && ( c = 0 ) ) : a . deltaY ( ) > 0 && ! a . blocked . down && b . collideUp && a . checkCollision . down && b . faceTop && a . bottom > b . top && ( c = a . bottom - b . top , c > this . TILE _BIAS && ( c = 0 ) ) , 0 !== c && ( a . customSeparateY ? a . overlapY = c : this . processTileSeparationY ( a , c ) ) , c } , processTileSeparationX : function ( a , b ) { 0 > b ? a . blocked . left = ! 0 : b > 0 && ( a . blocked . right = ! 0 ) , a . position . x -= b , 0 === a . bounce . x ? a . velocity . x = 0 : a . velocity . x = - a . velocity . x * a . bounce . x } , processTileSeparationY : function ( a , b ) { 0 > b ? a . blocked . up = ! 0 : b > 0 && ( a . blocked . down = ! 0 ) , a . position . y -= b , 0 === a . bounce . y ? a . velocity . y = 0 : a . velocity . y = - a . velocity . y * a . bounce . y } } , c . Utils . mixinPrototype ( c . Physics . Arcade . prototype , c . Physics . Arcade . TilemapCollision . prototype ) , p2 . Body . prototype . parent = null , p2 . Spring . prototype . parent = null , c . Physics . P2 = function ( a , b ) { this . game = a , void 0 === b ? b = { gravity : [ 0 , 0 ] , broadphase : new p2 . SAPBroadphase } : ( b . hasOwnProperty ( "gravity" ) || ( b . gravity = [ 0 , 0 ] ) , b . hasOwnProperty ( "broadphase" ) || ( b . broadphase = new p2 . SAPBroadphase ) ) , this . config = b , this . world = new p2 . World ( this . config ) , this . frameRate = 1 / 60 , this . useElapsedTime = ! 1 , this . paused = ! 1 , this . materials = [ ] , this . gravity = new c . Physics . P2 . InversePointProxy ( this , this . world . gravity ) , this . walls = { left : null , right : null , top : null , bottom : null } , this . onBodyAdded = new c . Signal , this . onBodyRemoved = new c . Signal , this . onSpringAdded = new c . Signal , this . onSpringRemoved = new c . Signal , this . onConstraintAdded = new c . Signal , this . onConstraintRemoved = new c . Signal , this . onContactMaterialAdded = new c . Signal , this . onContactMaterialRemoved = new c . Signal , this . postBroadphaseCallback = null , this . callbackContext = null , this . onBeginContact = new c . Signal , this . onEndContact = new c . Signal , b . hasOwnProperty ( "mpx" ) && b . hasOwnProperty ( "pxm" ) && b . hasOwnProperty ( "mpxi" ) && b . hasOwnProperty ( "pxmi" ) && ( this . mpx = b . mpx , this . mpxi = b . mpxi , this . pxm = b . pxm , this . pxmi = b . pxmi ) , this . world . on ( "beginContact" , this . beginContactHandler , this ) , this . world . on ( "endContact" , this . endContactHandler , this ) , this . collisionGroups = [ ] , this . nothingCollisionGroup = new c . Physics . P2 . CollisionGroup ( 1 ) , this . boundsCollisionGroup = new c . Physics . P2 . CollisionGroup ( 2 ) , this . everythingCollisionGroup = new c . Physics . P2 . CollisionGroup ( 2147483648 ) , this . boundsCollidesWith = [ ] , this . _toRemove = [ ] , this . _collisionGroupID = 2 , this . _boundsLeft = ! 0 , this . _boundsRight = ! 0 , this . _boundsTop = ! 0 , this . _boundsBottom = ! 0 , this . _boundsOwnGroup = ! 1 , this . setBoundsToWorld ( ! 0 , ! 0 , ! 0 , ! 0 , ! 1 ) } , c . Physics . P2 . prototype = { removeBodyNextStep : function ( a ) { this . _toRemove . push ( a ) } , preUpdate : function ( ) { for ( var a = this . _toRemove . length ; a -- ; ) this . removeBody ( this . _toRemove [ a ] ) ; this . _toRemove . length = 0 } , enable : function ( a , b , d ) { void 0 === b && ( b = ! 1 ) , void 0 === d && ( d = ! 0 ) ; var e = 1 ; if ( Array . isArray ( a ) ) for ( e = a . length ; e -- ; ) a [ e ] instanceof c . Group ? this . enable ( a [ e ] . children , b , d ) : ( this . enableBody ( a [ e ] , b ) , d && a [ e ] . hasOwnProperty ( "children" ) && a [ e ] . children . length > 0 && this . enable ( a [ e ] , b , ! 0 ) ) ; else a instanceof c . Group ? this . enable ( a . children , b , d ) : ( this . enableBody ( a , b ) , d && a . hasOwnProperty ( "children" ) && a . children . length > 0 && this . enable ( a . children , b , ! 0 ) ) } , enableBody : function ( a , b ) { a . hasOwnProperty ( "body" ) && null === a . body && ( a . body = new c . Physics . P2 . Body ( this . game , a , a . x , a . y , 1 ) , a . body . debug = b , "undefined" != typeof a . anchor && a . anchor . set ( . 5 ) ) } , setImpactEvents : function ( a ) { a ? this . world . on ( "impact" , this . impactHandler , this ) : this . world . off ( "impact" , this . impactHandler , this ) } , setPostBroadphaseCallback : function ( a , b ) { this . postBroadphaseCallback = a , this . callbackContext = b , null !== a ? this . world . on ( "postBroadphase" , this . postBroadphaseHandler , this ) : this . world . off ( "postBroadphase" , this . postBroadphaseHandler , this ) } , postBroadphaseHandler : f
this . mass = 0 ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "kinematic" , { get : function ( ) { return this . data . type === c . Physics . P2 . Body . KINEMATIC } , set : function ( a ) { a && this . data . type !== c . Physics . P2 . Body . KINEMATIC ? ( this . data . type = c . Physics . P2 . Body . KINEMATIC , this . mass = 4 ) : a || this . data . type !== c . Physics . P2 . Body . KINEMATIC || ( this . data . type = c . Physics . P2 . Body . STATIC , this . mass = 0 ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "allowSleep" , { get : function ( ) { return this . data . allowSleep } , set : function ( a ) { a !== this . data . allowSleep && ( this . data . allowSleep = a ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "angle" , { get : function ( ) { return c . Math . wrapAngle ( c . Math . radToDeg ( this . data . angle ) ) } , set : function ( a ) { this . data . angle = c . Math . degToRad ( c . Math . wrapAngle ( a ) ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "angularDamping" , { get : function ( ) { return this . data . angularDamping } , set : function ( a ) { this . data . angularDamping = a } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "angularForce" , { get : function ( ) { return this . data . angularForce } , set : function ( a ) { this . data . angularForce = a } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "angularVelocity" , { get : function ( ) { return this . data . angularVelocity } , set : function ( a ) { this . data . angularVelocity = a } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "damping" , { get : function ( ) { return this . data . damping } , set : function ( a ) { this . data . damping = a } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "fixedRotation" , { get : function ( ) { return this . data . fixedRotation } , set : function ( a ) { a !== this . data . fixedRotation && ( this . data . fixedRotation = a ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "inertia" , { get : function ( ) { return this . data . inertia } , set : function ( a ) { this . data . inertia = a } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "mass" , { get : function ( ) { return this . data . mass } , set : function ( a ) { a !== this . data . mass && ( this . data . mass = a , this . data . updateMassProperties ( ) ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "motionState" , { get : function ( ) { return this . data . type } , set : function ( a ) { a !== this . data . type && ( this . data . type = a ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "rotation" , { get : function ( ) { return this . data . angle } , set : function ( a ) { this . data . angle = a } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "sleepSpeedLimit" , { get : function ( ) { return this . data . sleepSpeedLimit } , set : function ( a ) { this . data . sleepSpeedLimit = a } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "x" , { get : function ( ) { return this . world . mpxi ( this . data . position [ 0 ] ) } , set : function ( a ) { this . data . position [ 0 ] = this . world . pxmi ( a ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "y" , { get : function ( ) { return this . world . mpxi ( this . data . position [ 1 ] ) } , set : function ( a ) { this . data . position [ 1 ] = this . world . pxmi ( a ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "id" , { get : function ( ) { return this . data . id } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "debug" , { get : function ( ) { return null !== this . debugBody } , set : function ( a ) { a && ! this . debugBody ? this . debugBody = new c . Physics . P2 . BodyDebug ( this . game , this . data ) : ! a && this . debugBody && ( this . debugBody . destroy ( ) , this . debugBody = null ) } } ) , Object . defineProperty ( c . Physics . P2 . Body . prototype , "collideWorldBounds" , { get : function ( ) { return this . _collideWorldBounds } , set : function ( a ) { a && ! this . _collideWorldBounds ? ( this . _collideWorldBounds = ! 0 , this . updateCollisionMask ( ) ) : ! a && this . _collideWorldBounds && ( this . _collideWorldBounds = ! 1 , this . updateCollisionMask ( ) ) } } ) , c . Physics . P2 . BodyDebug = function ( a , b , d ) { c . Group . call ( this , a ) ; var e = { pixelsPerLengthUnit : a . physics . p2 . mpx ( 1 ) , debugPolygons : ! 1 , lineWidth : 1 , alpha : . 5 } ; this . settings = c . Utils . extend ( e , d ) , this . ppu = this . settings . pixelsPerLengthUnit , this . ppu = - 1 * this . ppu , this . body = b , this . canvas = new c . Graphics ( a ) , this . canvas . alpha = this . settings . alpha , this . add ( this . canvas ) , this . draw ( ) , this . updateSpriteTransform ( ) } , c . Physics . P2 . BodyDebug . prototype = Object . create ( c . Group . prototype ) , c . Physics . P2 . BodyDebug . prototype . constructor = c . Physics . P2 . BodyDebug , c . Utils . extend ( c . Physics . P2 . BodyDebug . prototype , { updateSpriteTransform : function ( ) { this . position . x = this . body . position [ 0 ] * this . ppu , this . position . y = this . body . position [ 1 ] * this . ppu , th
if ( 0 === e . length ) return [ ] ; for ( var f = a . coordinatesOnLine ( b ) , g = [ ] , h = 0 ; h < e . length ; h ++ ) for ( var i = 0 ; i < f . length ; i ++ ) { var j = e [ h ] , k = f [ i ] ; if ( j . containsPoint ( k [ 0 ] , k [ 1 ] ) ) { g . push ( j ) ; break } } return g } , c . TilemapLayer . prototype . getTiles = function ( a , b , c , d , e , f ) { void 0 === e && ( e = ! 1 ) , void 0 === f && ( f = ! 1 ) ; var g = ! ( e || f ) ; a = this . _fixX ( a ) , b = this . _fixY ( b ) ; for ( var h = Math . floor ( a / ( this . _mc . cw * this . scale . x ) ) , i = Math . floor ( b / ( this . _mc . ch * this . scale . y ) ) , j = Math . ceil ( ( a + c ) / ( this . _mc . cw * this . scale . x ) ) - h , k = Math . ceil ( ( b + d ) / ( this . _mc . ch * this . scale . y ) ) - i ; this . _results . length ; ) this . _results . pop ( ) ; for ( var l = i ; i + k > l ; l ++ ) for ( var m = h ; h + j > m ; m ++ ) { var n = this . layer . data [ l ] ; n && n [ m ] && ( g || n [ m ] . isInteresting ( e , f ) ) && this . _results . push ( n [ m ] ) } return this . _results . slice ( ) } , c . TilemapLayer . prototype . resolveTileset = function ( a ) { var b = this . _mc . tilesets ; if ( 2e3 > a ) for ( ; b . length < a ; ) b . push ( void 0 ) ; var c = this . map . tiles [ a ] && this . map . tiles [ a ] [ 2 ] ; if ( null != c ) { var d = this . map . tilesets [ c ] ; if ( d && d . containsTileIndex ( a ) ) return b [ a ] = d } return b [ a ] = null } , c . TilemapLayer . prototype . resetTilesetCache = function ( ) { for ( var a = this . _mc . tilesets ; a . length ; ) a . pop ( ) } , c . TilemapLayer . prototype . setScale = function ( a , b ) { a = a || 1 , b = b || a ; for ( var c = 0 ; c < this . layer . data . length ; c ++ ) for ( var d = this . layer . data [ c ] , e = 0 ; e < d . length ; e ++ ) { var f = d [ e ] ; f . width = this . map . tileWidth * a , f . height = this . map . tileHeight * b , f . worldX = f . x * f . width , f . worldY = f . y * f . height } this . scale . setTo ( a , b ) } , c . TilemapLayer . prototype . shiftCanvas = function ( a , b , c ) { var d = a . canvas , e = d . width - Math . abs ( b ) , f = d . height - Math . abs ( c ) , g = 0 , h = 0 , i = b , j = c ; 0 > b && ( g = - b , i = 0 ) , 0 > c && ( h = - c , j = 0 ) ; var k = this . renderSettings . copyCanvas ; if ( k ) { ( k . width < e || k . height < f ) && ( k . width = e , k . height = f ) ; var l = k . getContext ( "2d" ) ; l . clearRect ( 0 , 0 , e , f ) , l . drawImage ( d , g , h , e , f , 0 , 0 , e , f ) , a . clearRect ( i , j , e , f ) , a . drawImage ( k , 0 , 0 , e , f , i , j , e , f ) } else a . save ( ) , a . globalCompositeOperation = "copy" , a . drawImage ( d , g , h , e , f , i , j , e , f ) , a . restore ( ) } , c . TilemapLayer . prototype . renderRegion = function ( a , b , c , d , e , f ) { var g = this . context , h = this . layer . width , i = this . layer . height , j = this . _mc . tileWidth , k = this . _mc . tileHeight , l = this . _mc . tilesets , m = NaN ; this . _wrap || ( e >= c && ( c = Math . max ( 0 , c ) , e = Math . min ( h - 1 , e ) ) , f >= d && ( d = Math . max ( 0 , d ) , f = Math . min ( i - 1 , f ) ) ) ; var n , o , p , q , r , s , t = c * j - a , u = d * k - b , v = ( c + ( 1 << 20 ) * h ) % h , w = ( d + ( 1 << 20 ) * i ) % i ; for ( g . fillStyle = this . tileColor , q = w , s = f - d , o = u ; s >= 0 ; q ++ , s -- , o += k ) { q >= i && ( q -= i ) ; var x = this . layer . data [ q ] ; for ( p = v , r = e - c , n = t ; r >= 0 ; p ++ , r -- , n += j ) { p >= h && ( p -= h ) ; var y = x [ p ] ; if ( y && ! ( y . index < 0 ) ) { var z = y . index , A = l [ z ] ; void 0 === A && ( A = this . resolveTileset ( z ) ) , y . alpha === m || this . debug || ( g . globalAlpha = y . alpha , m = y . alpha ) , A ? y . rotation || y . flipped ? ( g . save ( ) , g . translate ( n + y . centerX , o + y . centerY ) , g . rotate ( y . rotation ) , y . flipped && g . scale ( - 1 , 1 ) , A . draw ( g , - y . centerX , - y . centerY , z ) , g . restore ( ) ) : A . draw ( g , n , o , z ) : this . debugSettings . missingImageFill && ( g . fillStyle = this . debugSettings . missingImageFill , g . fillRect ( n , o , j , k ) ) , y . debug && this . debugSettings . debuggedTileOverfill && ( g . fillStyle = this . debugSettings . debuggedTileOverfill , g . fillRect ( n , o , j , k ) ) } } } } , c . TilemapLayer . prototype . renderDeltaScroll = function ( a , b ) { var c = this . _mc . scrollX , d = this . _mc . scrollY , e = this . canvas . width , f = this . canvas . height , g = this . _mc . tileWidth , h = this . _mc . tileHeight , i = 0 , j = - g , k = 0 , l = - h ; if ( 0 > a ? ( i = e + a , j = e - 1 ) : a > 0 && ( j = a ) , 0 > b ? ( k = f + b , l = f - 1 ) : b > 0 && ( l = b ) , this . shiftCanvas ( this . context , a , b ) , i = Math . floor ( ( i + c ) / g ) , j = Math . floor ( ( j + c ) / g ) , k = Math . floor ( ( k + d ) / h ) , l = Math . floor ( ( l + d ) / h ) , j >= i ) { this . context . clearRect ( i * g - c , 0 , ( j - i + 1 ) * g , f ) ; var m = Math . floor ( ( 0 + d ) / h ) , n = Math . floor ( ( f - 1 + d ) / h ) ; this . renderRegion ( c , d , i , m , j , n ) } if ( l >= k ) { this . context . clearRect ( 0 , k * h - d , e , ( l - k + 1 ) * h ) ; var o = Math . floor ( ( 0 + c ) / g ) , p = Math . floor ( ( e - 1 + c ) / g ) ; this . renderRegion ( c , d , o , k , p , l ) } } , c . TilemapLayer . prototype . renderFull = function ( ) { var a = this . _mc . scrollX , b = this . _mc . scrollY , c = this . canvas . width , d = this . canvas . height , e = this . _mc . tileWidth , f = this . _mc . tileHeight , g = Math . floor ( a / e ) , h = Math . floor ( ( c - 1 + a ) / e ) , i = Math . floor ( b / f ) , j = Math . floor ( ( d - 1 + b ) / f ) ; this . context . clearRect ( 0 , 0 , c , d ) , this . renderRegion ( a , b , g , i , h , j ) } , c . TilemapLayer . prototype . render = function ( ) { var a = ! 1 ; if ( this . visible ) { ( this . dirty || this . layer . dirty ) && ( this . layer . dirty = ! 1 , a = ! 0 ) ; var b = this . canvas . width , c = this . canvas . height , d = 0 | this . _scrollX , e = 0 | this . _scr
this . snapshot . copy ( this . video , 0 , 0 , this . width , this . height , 0 , 0 , this . width , this . height , 0 , 0 , 0 , 1 , 1 , b , c ) , this . snapshot ) } , removeVideoElement : function ( ) { if ( this . video ) { for ( this . video . parentNode && this . video . parentNode . removeChild ( this . video ) ; this . video . hasChildNodes ( ) ; ) this . video . removeChild ( this . video . firstChild ) ; this . video . removeAttribute ( "autoplay" ) , this . video . removeAttribute ( "src" ) , this . video = null } } , destroy : function ( ) { this . stop ( ) , this . removeVideoElement ( ) , this . touchLocked && this . game . input . touch . removeTouchLockCallback ( this . unlock , this ) , this . _retryID && window . clearTimeout ( this . _retryID ) } } , Object . defineProperty ( c . Video . prototype , "currentTime" , { get : function ( ) { return this . video ? this . video . currentTime : 0 } , set : function ( a ) { this . video . currentTime = a } } ) , Object . defineProperty ( c . Video . prototype , "duration" , { get : function ( ) { return this . video ? this . video . duration : 0 } } ) , Object . defineProperty ( c . Video . prototype , "progress" , { get : function ( ) { return this . video ? this . video . currentTime / this . video . duration : 0 } } ) , Object . defineProperty ( c . Video . prototype , "mute" , { get : function ( ) { return this . _muted } , set : function ( a ) { if ( a = a || null ) { if ( this . _muted ) return ; this . _codeMuted = ! 0 , this . setMute ( ) } else { if ( ! this . _muted ) return ; this . _codeMuted = ! 1 , this . unsetMute ( ) } } } ) , Object . defineProperty ( c . Video . prototype , "paused" , { get : function ( ) { return this . _paused } , set : function ( a ) { if ( a = a || null , ! this . touchLocked ) if ( a ) { if ( this . _paused ) return ; this . _codePaused = ! 0 , this . setPause ( ) } else { if ( ! this . _paused ) return ; this . _codePaused = ! 1 , this . setResume ( ) } } } ) , Object . defineProperty ( c . Video . prototype , "volume" , { get : function ( ) { return this . video ? this . video . volume : 1 } , set : function ( a ) { 0 > a ? a = 0 : a > 1 && ( a = 1 ) , this . video && ( this . video . volume = a ) } } ) , Object . defineProperty ( c . Video . prototype , "playbackRate" , { get : function ( ) { return this . video ? this . video . playbackRate : 1 } , set : function ( a ) { this . video && ( this . video . playbackRate = a ) } } ) , Object . defineProperty ( c . Video . prototype , "loop" , { get : function ( ) { return this . video ? this . video . loop : ! 1 } , set : function ( a ) { a && this . video ? this . video . loop = "loop" : this . video && ( this . video . loop = "" ) } } ) , Object . defineProperty ( c . Video . prototype , "playing" , { get : function ( ) { return ! ( this . video . paused && this . video . ended ) } } ) , c . Video . prototype . constructor = c . Video , void 0 === PIXI . blendModes && ( PIXI . blendModes = c . blendModes ) , void 0 === PIXI . scaleModes && ( PIXI . scaleModes = c . scaleModes ) , void 0 === PIXI . Texture . emptyTexture && ( PIXI . Texture . emptyTexture = new PIXI . Texture ( new PIXI . BaseTexture ) ) , void 0 === PIXI . DisplayObject . _tempMatrix && ( PIXI . DisplayObject . _tempMatrix = new PIXI . Matrix ) , void 0 === PIXI . RenderTexture . tempMatrix && ( PIXI . RenderTexture . tempMatrix = new PIXI . Matrix ) , PIXI . Graphics && void 0 === PIXI . Graphics . POLY && ( PIXI . Graphics . POLY = c . POLYGON , PIXI . Graphics . RECT = c . RECTANGLE , PIXI . Graphics . CIRC = c . CIRCLE , PIXI . Graphics . ELIP = c . ELLIPSE , PIXI . Graphics . RREC = c . ROUNDEDRECTANGLE ) , PIXI . TextureSilentFail = ! 0 , "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = c ) , exports . Phaser = c ) : "undefined" != typeof define && define . amd ? define ( "Phaser" , function ( ) { return b . Phaser = c } ( ) ) : b . Phaser = c , c } . call ( this ) ;
2014-02-28 09:30:53 +00:00
//# sourceMappingURL=phaser.map