2014-02-25 11:56:57 +00:00
/*! Phaser v2.0.0 | (c) 2014 Photon Storm Ltd. */
! function ( a , b ) { "function" == typeof define && define . amd ? define ( b ) : "object" == typeof exports ? module . exports = b ( ) : a . Phaser = b ( ) } ( this , function ( ) { ! function ( a ) { "object" == typeof exports ? module . exports = a ( ) : "function" == typeof define && define . amd ? define ( a ) : "undefined" != typeof window ? window . p2 = a ( ) : "undefined" != typeof global ? self . p2 = a ( ) : "undefined" != typeof self && ( self . p2 = 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 ) { var d = { } , e = new Float32Array ( [ 1 , 0 , 0 , 1 ] ) ; if ( ! f ) var f = 1e-6 ; d . create = function ( ) { return new Float32Array ( e ) } , d . clone = function ( a ) { var b = new Float32Array ( 4 ) ; return b [ 0 ] = a [ 0 ] , b [ 1 ] = a [ 1 ] , b [ 2 ] = a [ 2 ] , b [ 3 ] = a [ 3 ] , b } , d . copy = function ( a , b ) { return a [ 0 ] = b [ 0 ] , a [ 1 ] = b [ 1 ] , a [ 2 ] = b [ 2 ] , a [ 3 ] = b [ 3 ] , a } , d . identity = function ( a ) { return a [ 0 ] = 1 , a [ 1 ] = 0 , a [ 2 ] = 0 , a [ 3 ] = 1 , a } , d . transpose = function ( a , b ) { if ( a === b ) { var c = b [ 1 ] ; a [ 1 ] = b [ 2 ] , a [ 2 ] = c } else a [ 0 ] = b [ 0 ] , a [ 1 ] = b [ 2 ] , a [ 2 ] = b [ 1 ] , a [ 3 ] = b [ 3 ] ; return a } , d . invert = function ( a , b ) { var c = b [ 0 ] , d = b [ 1 ] , e = b [ 2 ] , f = b [ 3 ] , g = c * f - e * d ; return g ? ( g = 1 / g , a [ 0 ] = f * g , a [ 1 ] = - d * g , a [ 2 ] = - e * g , a [ 3 ] = c * g , a ) : null } , d . adjoint = function ( a , b ) { var c = b [ 0 ] ; return a [ 0 ] = b [ 3 ] , a [ 1 ] = - b [ 1 ] , a [ 2 ] = - b [ 2 ] , a [ 3 ] = c , a } , d . determinant = function ( a ) { return a [ 0 ] * a [ 3 ] - a [ 2 ] * a [ 1 ] } , d . multiply = function ( a , b , c ) { var d = b [ 0 ] , e = b [ 1 ] , f = b [ 2 ] , g = b [ 3 ] , h = c [ 0 ] , i = c [ 1 ] , j = c [ 2 ] , k = c [ 3 ] ; return a [ 0 ] = d * h + e * j , a [ 1 ] = d * i + e * k , a [ 2 ] = f * h + g * j , a [ 3 ] = f * i + g * k , a } , d . mul = d . multiply , d . rotate = function ( a , b , c ) { var d = b [ 0 ] , e = b [ 1 ] , f = b [ 2 ] , g = b [ 3 ] , h = Math . sin ( c ) , i = Math . cos ( c ) ; return a [ 0 ] = d * i + e * h , a [ 1 ] = d * - h + e * i , a [ 2 ] = f * i + g * h , a [ 3 ] = f * - h + g * i , a } , d . scale = function ( a , b , c ) { var d = b [ 0 ] , e = b [ 1 ] , f = b [ 2 ] , g = b [ 3 ] , h = c [ 0 ] , i = c [ 1 ] ; return a [ 0 ] = d * h , a [ 1 ] = e * i , a [ 2 ] = f * h , a [ 3 ] = g * i , a } , d . str = function ( a ) { return "mat2(" + a [ 0 ] + ", " + a [ 1 ] + ", " + a [ 2 ] + ", " + a [ 3 ] + ")" } , "undefined" != typeof c && ( c . mat2 = d ) } , { } ] , 2 : [ function ( a , b , c ) { var d = { } ; if ( ! e ) var e = 1e-6 ; d . create = function ( ) { return new Float32Array ( 2 ) } , d . clone = function ( a ) { var b = new Float32Array ( 2 ) ; return b [ 0 ] = a [ 0 ] , b [ 1 ] = a [ 1 ] , b } , d . fromValues = function ( a , b ) { var c = new Float32Array ( 2 ) ; return c [ 0 ] = a , c [ 1 ] = b , c } , d . copy = function ( a , b ) { return a [ 0 ] = b [ 0 ] , a [ 1 ] = b [ 1 ] , a } , d . set = function ( a , b , c ) { return a [ 0 ] = b , a [ 1 ] = c , a } , d . add = function ( a , b , c ) { return a [ 0 ] = b [ 0 ] + c [ 0 ] , a [ 1 ] = b [ 1 ] + c [ 1 ] , a } , d . subtract = function ( a , b , c ) { return a [ 0 ] = b [ 0 ] - c [ 0 ] , a [ 1 ] = b [ 1 ] - c [ 1 ] , a } , d . sub = d . subtract , d . multiply = function ( a , b , c ) { return a [ 0 ] = b [ 0 ] * c [ 0 ] , a [ 1 ] = b [ 1 ] * c [ 1 ] , a } , d . mul = d . multiply , d . divide = function ( a , b , c ) { return a [ 0 ] = b [ 0 ] / c [ 0 ] , a [ 1 ] = b [ 1 ] / c [ 1 ] , a } , d . div = d . divide , d . min = function ( a , b , c ) { return a [ 0 ] = Math . min ( b [ 0 ] , c [ 0 ] ) , a [ 1 ] = Math . min ( b [ 1 ] , c [ 1 ] ) , a } , d . max = function ( a , b , c ) { return a [ 0 ] = Math . max ( b [ 0 ] , c [ 0 ] ) , a [ 1 ] = Math . max ( b [ 1 ] , c [ 1 ] ) , a } , d . scale = function ( a , b , c ) { return a [ 0 ] = b [ 0 ] * c , a [ 1 ] = b [ 1 ] * c , a } , d . distance = function ( a , b ) { var c = b [ 0 ] - a [ 0 ] , d = b [ 1 ] - a [ 1 ] ; return Math . sqrt ( c * c + d * d ) } , d . dist = d . distance , d . squaredDistance = function ( a , b ) { var c = b [ 0 ] - a [ 0 ] , d = b [ 1 ] - a [ 1 ] ; return c * c + d * d } , d . sqrDist = d . squaredDistance , d . length = function ( a ) { var b = a [ 0 ] , c = a [ 1 ] ; return Math . sqrt ( b * b + c * c ) } , d . len = d . length , d . squaredLength = function ( a ) { var b = a [ 0 ] , c = a [ 1 ] ; return b * b + c * c } , d . sqrLen = d . squaredLength , d . negate = function ( a , b ) { return a [ 0 ] = - b [ 0 ] , a [ 1 ] = - b [ 1 ] , a } , d . normalize = function ( a , b ) { var c = b [ 0 ] , d = b [ 1 ] , e = c * c + d * d ; return e > 0 && ( e = 1 / Math . sqrt ( e ) , a [ 0 ] = b [ 0 ] * e , a [ 1 ] = b [ 1 ] * e ) , a } , d . dot = function ( a , b ) { return a [ 0 ] * b [ 0 ] + a [ 1 ] * b [ 1 ] } , d . cross = function ( a , b , c ) { var d = b [ 0 ] * c [ 1 ] - b [ 1 ] * c [ 0 ] ; return a [ 0 ] = a [ 1 ] = 0 , a [ 2 ] = d , a } , d . lerp = function ( a , b , c , d ) { var e = b [ 0 ] , f = b [ 1 ] ; return a [ 0 ] = e + d * ( c [ 0 ] - e ) , a [ 1 ] = f + d * ( c [ 1 ] - f ) , a } , d . transformMat2 = function ( a , b , c ) { var d = b [ 0 ] , e = b [ 1 ] ; return a [ 0 ] = d * c [ 0 ] + e * c [ 1 ] , a [ 1 ] = d * c [ 2 ] + e * c [ 3 ] , a } , d . forEach = function ( ) { var a = new Float32Array ( 2 ) ; return function ( b , c , d , e , f , g ) { var h , i ; for ( c || ( c = 2 ) , d || ( d = 0 ) , i = e ? Math . min ( e * c + d , b . length ) : b . length , h = d ; i > h ; h += c ) a [ 0 ] = b [ h ] , a [ 1 ] = b [ h + 1 ] , f ( a , a , g ) , b [ h ] = a [ 0 ] , b [ h + 1 ] = a [ 1 ] ; return b } } ( ) , d . str = function ( a ) { return "vec2(" + a [ 0 ] + ", " + a [ 1 ] + ")" } , "undefined" != typeof c && ( c . vec2 =
} this . children . push ( a ) ; var c = this . children . length ; if ( ! ( this . depth >= this . maxDepth ) && c > this . maxChildren ) { this . subdivide ( ) ; for ( var d = 0 ; c > d ; d ++ ) this . insert ( this . children [ d ] ) ; this . children . length = 0 } } , d . prototype . retrieve = function ( a ) { if ( this . nodes . length ) { var b = this . findIndex ( a ) ; return this . nodes [ b ] . retrieve ( a ) } return this . children } , d . prototype . findIndex = function ( a ) { var b = this . bounds , c = a . position [ 0 ] - a . boundingRadius > b . x + b . width / 2 ? ! 1 : ! 0 , e = a . position [ 1 ] - a . boundingRadius > b . y + b . height / 2 ? ! 1 : ! 0 ; a instanceof f && ( c = e = ! 1 ) ; var g = d . TOP _LEFT ; return c ? e || ( g = d . BOTTOM _LEFT ) : g = e ? d . TOP _RIGHT : d . BOTTOM _RIGHT , g } , d . prototype . subdivide = function ( ) { var a = this . depth + 1 , b = this . bounds . x , c = this . bounds . y , e = this . bounds . width / 2 , f = this . bounds . height / 2 , g = b + e , h = c + f ; this . nodes [ d . TOP _LEFT ] = new this . classConstructor ( { x : b , y : c , width : e , height : f } , a ) , this . nodes [ d . TOP _RIGHT ] = new this . classConstructor ( { x : g , y : c , width : e , height : f } , a ) , this . nodes [ d . BOTTOM _LEFT ] = new this . classConstructor ( { x : b , y : h , width : e , height : f } , a ) , this . nodes [ d . BOTTOM _RIGHT ] = new this . classConstructor ( { x : g , y : h , width : e , height : f } , a ) } , d . prototype . clear = function ( ) { this . children . length = 0 ; for ( var a = this . nodes . length , b = 0 ; a > b ; b ++ ) this . nodes [ b ] . clear ( ) ; this . nodes . length = 0 } , e . prototype = new d , e . prototype . classConstructor = e , e . prototype . stuckChildren = null , e . prototype . out = [ ] , e . prototype . insert = function ( a ) { if ( this . nodes . length ) { var b = this . findIndex ( a ) , c = this . nodes [ b ] ; return ! ( a instanceof f ) && a . position [ 0 ] - a . boundingRadius >= c . bounds . x && a . position [ 0 ] + a . boundingRadius <= c . bounds . x + c . bounds . width && a . position [ 1 ] - a . boundingRadius >= c . bounds . y && a . position [ 1 ] + a . boundingRadius <= c . bounds . y + c . bounds . height ? this . nodes [ b ] . insert ( a ) : this . stuckChildren . push ( a ) , void 0 } this . children . push ( a ) ; var d = this . children . length ; if ( this . depth < this . maxDepth && d > this . maxChildren ) { this . subdivide ( ) ; for ( var e = 0 ; d > e ; e ++ ) this . insert ( this . children [ e ] ) ; this . children . length = 0 } } , e . prototype . getChildren = function ( ) { return this . children . concat ( this . stuckChildren ) } , e . prototype . retrieve = function ( a ) { var b = this . out ; if ( b . length = 0 , this . nodes . length ) { var c = this . findIndex ( a ) ; b . push . apply ( b , this . nodes [ c ] . retrieve ( a ) ) } return b . push . apply ( b , this . stuckChildren ) , b . push . apply ( b , this . children ) , b } , e . prototype . clear = function ( ) { this . stuckChildren . length = 0 , this . children . length = 0 ; var a = this . nodes . length ; if ( a ) { for ( var b = 0 ; a > b ; b ++ ) this . nodes [ b ] . clear ( ) ; this . nodes . length = 0 } } } , { "../collision/Broadphase" : 10 , "../shapes/Plane" : 42 } ] , 15 : [ function ( a , b ) { function c ( ) { e . apply ( this ) , this . axisListX = [ ] , this . axisListY = [ ] , this . world = null ; var a = this . axisListX , b = this . axisListY ; this . _addBodyHandler = function ( c ) { a . push ( c . body ) , b . push ( c . body ) } , this . _removeBodyHandler = function ( c ) { var d = a . indexOf ( c . body ) ; - 1 !== d && a . splice ( d , 1 ) , d = b . indexOf ( c . body ) , - 1 !== d && b . splice ( d , 1 ) } } var d = ( a ( "../shapes/Circle" ) , a ( "../shapes/Plane" ) , a ( "../shapes/Shape" ) , a ( "../shapes/Particle" ) , a ( "../utils/Utils" ) ) , e = a ( "../collision/Broadphase" ) ; a ( "../math/vec2" ) , b . exports = c , c . prototype = new e , c . prototype . setWorld = function ( a ) { this . axisListX . length = this . axisListY . length = 0 , d . appendArray ( this . axisListX , a . bodies ) , d . appendArray ( this . axisListY , a . bodies ) , a . off ( "addBody" , this . _addBodyHandler ) . off ( "removeBody" , this . _removeBodyHandler ) , a . on ( "addBody" , this . _addBodyHandler ) . on ( "removeBody" , this . _removeBodyHandler ) , this . world = a } , c . sortAxisListX = function ( a ) { for ( var b = 1 , c = a . length ; c > b ; b ++ ) { for ( var d = a [ b ] , e = b - 1 ; e >= 0 && ! ( a [ e ] . aabb . lowerBound [ 0 ] <= d . aabb . lowerBound [ 0 ] ) ; e -- ) a [ e + 1 ] = a [ e ] ; a [ e + 1 ] = d } return a } , c . sortAxisListY = function ( a ) { for ( var b = 1 , c = a . length ; c > b ; b ++ ) { for ( var d = a [ b ] , e = b - 1 ; e >= 0 && ! ( a [ e ] . aabb . lowerBound [ 1 ] <= d . aabb . lowerBound [ 1 ] ) ; e -- ) a [ e + 1 ] = a [ e ] ; a [ e + 1 ] = d } return a } ; var f = { keys : [ ] } ; c . prototype . getCollisionPairs = function ( ) { var a , b , d = this . axisListX , g = this . axisListY , h = this . result ; for ( this . axisIndex , h . length = 0 , a = 0 ; a !== d . length ; a ++ ) { var i = d [ a ] ; i . aabbNeedsUpdate && i . updateAABB ( ) } for ( c . sortAxisListX ( d ) , c . sortAxisListY ( g ) , a = 0 , N = d . length ; a !== N ; a ++ ) { var j = d [ a ] ; for ( b = a + 1 ; N > b ; b ++ ) { var k = d [ b ] ; if ( ! c . checkBounds ( j , k , 0 ) ) break ; if ( e . canCollide ( j , k ) ) { var l = j . id < k . id ? j . id + " " + k . id : k . id + " " + j . id ; f [ l ] = ! 0 , f . keys . push ( l ) } } } for ( a = 0 , N = g . length ; a !== N ; a ++ ) { var j = g [ a ] ; for ( b = a + 1 ; N > b ; b ++ ) { var
2014-02-25 23:20:06 +00:00
} var d = a ( "./Shape" ) , e = a ( "../math/vec2" ) ; b . exports = c , c . prototype = new d , c . prototype . computeMomentOfInertia = function ( a ) { var b = this . radius , c = this . length + b , d = 2 * b ; return a * ( d * d + c * c ) / 12 } , c . prototype . updateBoundingRadius = function ( ) { this . boundingRadius = this . radius + this . length / 2 } , c . prototype . updateArea = function ( ) { this . area = Math . PI * this . radius * this . radius + 2 * this . radius * this . length } ; var f = e . create ( ) ; c . prototype . computeAABB = function ( a , b , c ) { var d = this . radius ; e . set ( f , this . length , 0 ) , e . rotate ( f , f , c ) , e . set ( a . upperBound , Math . max ( f [ 0 ] + d , - f [ 0 ] + d ) , Math . max ( f [ 1 ] + d , - f [ 1 ] + d ) ) , e . set ( a . lowerBound , Math . min ( f [ 0 ] - d , - f [ 0 ] - d ) , Math . min ( f [ 1 ] - d , - f [ 1 ] - d ) ) , e . add ( a . lowerBound , a . lowerBound , b ) , e . add ( a . upperBound , a . upperBound , b ) } } , { "../math/vec2" : 33 , "./Shape" : 44 } ] , 38 : [ function ( a , b ) { function c ( a ) { this . radius = a || 1 , d . call ( this , d . CIRCLE ) } var d = a ( "./Shape" ) , e = a ( "../math/vec2" ) ; b . exports = c , c . prototype = new d , c . prototype . computeMomentOfInertia = function ( a ) { var b = this . radius ; return a * b * b / 2 } , c . prototype . updateBoundingRadius = function ( ) { this . boundingRadius = this . radius } , c . prototype . updateArea = function ( ) { this . area = Math . PI * this . radius * this . radius } , c . prototype . computeAABB = function ( a , b ) { var c = this . radius ; e . set ( a . upperBound , c , c ) , e . set ( a . lowerBound , - c , - c ) , b && ( e . add ( a . lowerBound , a . lowerBound , b ) , e . add ( a . upperBound , a . upperBound , b ) ) } } , { "../math/vec2" : 33 , "./Shape" : 44 } ] , 39 : [ function ( a , b ) { function c ( a ) { this . vertices = a || [ ] ; for ( var b = 0 ; b < this . vertices . length ; b ++ ) { var c = e . fromValues ( ) ; e . copy ( c , this . vertices [ b ] ) , this . vertices [ b ] = c } if ( this . centerOfMass = e . fromValues ( 0 , 0 ) , this . triangles = [ ] , this . vertices . length && ( this . updateTriangles ( ) , this . updateCenterOfMass ( ) ) , this . boundingRadius = 0 , d . call ( this , d . CONVEX ) , this . updateBoundingRadius ( ) , this . updateArea ( ) , this . area < 0 ) throw new Error ( "Convex vertices must be given in conter-clockwise winding." ) } var d = a ( "./Shape" ) , e = a ( "../math/vec2" ) , f = a ( "../math/polyk" ) ; a ( "poly-decomp" ) , b . exports = c , c . prototype = new d , c . prototype . updateTriangles = function ( ) { this . triangles . length = 0 ; for ( var a = [ ] , b = 0 ; b < this . vertices . length ; b ++ ) { var c = this . vertices [ b ] ; a . push ( c [ 0 ] , c [ 1 ] ) } for ( var d = f . Triangulate ( a ) , b = 0 ; b < d . length ; b += 3 ) { var e = d [ b ] , g = d [ b + 1 ] , h = d [ b + 2 ] ; this . triangles . push ( [ e , g , h ] ) } } ; { var g = e . create ( ) , h = e . create ( ) , i = e . create ( ) , j = e . create ( ) , k = e . create ( ) ; e . create ( ) , e . create ( ) , e . create ( ) , e . create ( ) } c . prototype . updateCenterOfMass = function ( ) { var a = this . triangles , b = this . vertices , d = this . centerOfMass , f = g , l = i , m = j , n = k , o = h ; e . set ( d , 0 , 0 ) ; for ( var p = 0 , q = 0 ; q !== a . length ; q ++ ) { var r = a [ q ] , l = b [ r [ 0 ] ] , m = b [ r [ 1 ] ] , n = b [ r [ 2 ] ] ; e . centroid ( f , l , m , n ) ; var s = c . triangleArea ( l , m , n ) ; p += s , e . scale ( o , f , s ) , e . add ( d , d , o ) } e . scale ( d , d , 1 / p ) } , c . prototype . computeMomentOfInertia = function ( a ) { for ( var b = 0 , c = 0 , d = this . vertices . length , f = d - 1 , g = 0 ; d > g ; f = g , g ++ ) { var h = this . vertices [ f ] , i = this . vertices [ g ] , j = Math . abs ( e . crossLength ( h , i ) ) , k = e . dot ( i , i ) + e . dot ( i , h ) + e . dot ( h , h ) ; b += j * k , c += j } return a / 6 * ( b / c ) } , c . prototype . updateBoundingRadius = function ( ) { for ( var a = this . vertices , b = 0 , c = 0 ; c !== a . length ; c ++ ) { var d = e . squaredLength ( a [ c ] ) ; d > b && ( b = d ) } this . boundingRadius = Math . sqrt ( b ) } , c . triangleArea = function ( a , b , c ) { return . 5 * ( ( b [ 0 ] - a [ 0 ] ) * ( c [ 1 ] - a [ 1 ] ) - ( c [ 0 ] - a [ 0 ] ) * ( b [ 1 ] - a [ 1 ] ) ) } , c . prototype . updateArea = function ( ) { this . updateTriangles ( ) , this . area = 0 ; for ( var a = this . triangles , b = this . vertices , d = 0 ; d !== a . length ; d ++ ) { var e = a [ d ] , f = b [ e [ 0 ] ] , g = b [ e [ 1 ] ] , h = b [ e [ 2 ] ] , i = c . triangleArea ( f , g , h ) ; this . area += i } } , c . prototype . computeAABB = function ( a , b , c ) { a . setFromPoints ( this . vertices , b , c ) } } , { "../math/polyk" : 32 , "../math/vec2" : 33 , "./Shape" : 44 , "poly-decomp" : 7 } ] , 40 : [ function ( a , b ) { function c ( a ) { this . length = a , d . call ( this , d . LINE ) } var d = a ( "./Shape" ) , e = a ( "../math/vec2" ) ; b . exports = c , c . prototype = new d , c . prototype . computeMomentOfInertia = function ( a ) { return a * Math . pow ( this . length , 2 ) / 12 } , c . prototype . updateBoundingRadius = function ( ) { this . boundingRadius = this . length / 2 } ; var f = [ e . create ( ) , e . create ( ) ] ; c . prototype . computeAABB = function ( a , b , c ) { var d = this . length ; e . set ( f [ 0 ] , - d / 2 , 0 ) , e . set ( f [ 1 ] , d / 2 , 0 ) , a . setFromPoints ( f , b , c ) } } , { "../math/vec2" : 33 , "./Shape" : 44 } ] , 41 : [ function ( a , b ) { function c ( ) { d . call ( this , d . PARTICLE ) } var d = a ( "./Shape" ) , e = a ( "../math/vec2" ) ; b . exports = c , c . prototype = new d , c . prototype . computeMomentOfInertia = function ( ) { r
} , circumferencePoint : function ( a , c , d ) { return b . Circle . circumferencePoint ( this , a , c , d ) } , offset : function ( a , b ) { return this . x += a , this . y += b , this } , offsetPoint : function ( a ) { return this . offset ( a . x , a . y ) } , toString : function ( ) { return "[{Phaser.Circle (x=" + this . x + " y=" + this . y + " diameter=" + this . diameter + " radius=" + this . radius + ")}]" } } , b . Circle . prototype . constructor = b . Circle , Object . defineProperty ( b . Circle . prototype , "diameter" , { get : function ( ) { return this . _diameter } , set : function ( a ) { a > 0 && ( this . _diameter = a , this . _radius = . 5 * a ) } } ) , Object . defineProperty ( b . Circle . prototype , "radius" , { get : function ( ) { return this . _radius } , set : function ( a ) { a > 0 && ( this . _radius = a , this . _diameter = 2 * a ) } } ) , Object . defineProperty ( b . Circle . prototype , "left" , { get : function ( ) { return this . x - this . _radius } , set : function ( a ) { a > this . x ? ( this . _radius = 0 , this . _diameter = 0 ) : this . radius = this . x - a } } ) , Object . defineProperty ( b . Circle . prototype , "right" , { get : function ( ) { return this . x + this . _radius } , set : function ( a ) { a < this . x ? ( this . _radius = 0 , this . _diameter = 0 ) : this . radius = a - this . x } } ) , Object . defineProperty ( b . Circle . prototype , "top" , { get : function ( ) { return this . y - this . _radius } , set : function ( a ) { a > this . y ? ( this . _radius = 0 , this . _diameter = 0 ) : this . radius = this . y - a } } ) , Object . defineProperty ( b . Circle . prototype , "bottom" , { get : function ( ) { return this . y + this . _radius } , set : function ( a ) { a < this . y ? ( this . _radius = 0 , this . _diameter = 0 ) : this . radius = a - this . y } } ) , Object . defineProperty ( b . Circle . prototype , "area" , { get : function ( ) { return this . _radius > 0 ? Math . PI * this . _radius * this . _radius : 0 } } ) , Object . defineProperty ( b . Circle . prototype , "empty" , { get : function ( ) { return 0 === this . _diameter } , set : function ( a ) { a === ! 0 && this . setTo ( 0 , 0 , 0 ) } } ) , b . Circle . contains = function ( a , b , c ) { if ( a . radius > 0 && b >= a . left && b <= a . right && c >= a . top && c <= a . bottom ) { var d = ( a . x - b ) * ( a . x - b ) , e = ( a . y - c ) * ( a . y - c ) ; return d + e <= a . radius * a . radius } return ! 1 } , b . Circle . equals = function ( a , b ) { return a . x == b . x && a . y == b . y && a . diameter == b . diameter } , b . Circle . intersects = function ( a , c ) { return b . Math . distance ( a . x , a . y , c . x , c . y ) <= a . radius + c . radius } , b . Circle . circumferencePoint = function ( a , c , d , e ) { return "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = new b . Point ) , d === ! 0 && ( c = b . Math . radToDeg ( c ) ) , e . x = a . x + a . radius * Math . cos ( c ) , e . y = a . y + a . radius * Math . sin ( c ) , e } , b . Circle . intersectsRectangle = function ( a , b ) { var c = Math . abs ( a . x - b . x - b . halfWidth ) , d = b . halfWidth + a . radius ; if ( c > d ) return ! 1 ; var e = Math . abs ( a . y - b . y - b . halfHeight ) , f = b . halfHeight + a . radius ; if ( e > f ) return ! 1 ; if ( c <= b . halfWidth || e <= b . halfHeight ) return ! 0 ; var g = c - b . halfWidth , h = e - b . halfHeight , i = g * g , j = h * h , k = a . radius * a . radius ; return k >= i + j } , a . Circle = b . Circle , b . Point = function ( a , b ) { a = a || 0 , b = b || 0 , this . x = a , this . y = b } , b . Point . prototype = { copyFrom : function ( a ) { return this . setTo ( a . x , a . y ) } , invert : function ( ) { return this . setTo ( this . y , this . x ) } , setTo : function ( a , b ) { return this . x = a || 0 , this . y = b || ( 0 !== b ? this . x : 0 ) , this } , set : function ( a , b ) { return this . x = a || 0 , this . y = b || ( 0 !== b ? this . x : 0 ) , this } , add : function ( a , b ) { return this . x += a , this . y += b , this } , subtract : function ( a , b ) { return this . x -= a , this . y -= b , this } , multiply : function ( a , b ) { return this . x *= a , this . y *= b , this } , divide : function ( a , b ) { return this . x /= a , this . y /= b , this } , clampX : function ( a , c ) { return this . x = b . Math . clamp ( this . x , a , c ) , this } , clampY : function ( a , c ) { return this . y = b . Math . clamp ( this . y , a , c ) , this } , clamp : function ( a , c ) { return this . x = b . Math . clamp ( this . x , a , c ) , this . y = b . Math . clamp ( this . y , a , c ) , this } , clone : function ( a ) { return "undefined" == typeof a ? a = new b . 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 , c ) { return b . Point . distance ( this , a , c ) } , equals : function ( a ) { return a . x == this . x && a . y == this . y } , rotate : function ( a , c , d , e , f ) { return b . Point . rotate ( this , a , c , d , e , f ) } , getMagnitude : function ( ) { return Math . sqrt ( 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 } , toString : function ( ) { return "[{Point (x=" + this . x + " y=" + this . y + ")}]" } } , b . Point . prototype . constructor = b . Point , b . Point . add = function ( a , c , d ) { return "undefined" == typeof d && ( d = new b . Point ) , d . x = a . x + c . x , d . y = a
else { var l = b . chars [ k ] ; l && ( d && l [ d ] && ( c . x += l . kerning [ d ] ) , e . push ( { texture : l . texture , line : h , charCode : k , position : new a . Point ( c . x + l . xOffset , c . y + l . yOffset ) } ) , c . x += l . xAdvance , d = k ) } } g . push ( c . x ) , f = Math . max ( f , c . x ) ; var m = [ ] ; for ( j = 0 ; h >= j ; j ++ ) { var n = 0 ; "right" === this . style . align ? n = f - g [ j ] : "center" === this . style . align && ( n = ( f - g [ j ] ) / 2 ) , m . push ( n ) } var o = this . children . length , p = e . length , q = this . tint || 16777215 ; for ( j = 0 ; p > j ; j ++ ) { var r = o > j ? this . children [ j ] : this . _pool . pop ( ) ; r ? r . setTexture ( e [ j ] . texture ) : r = new a . Sprite ( e [ j ] . texture ) , r . position . x = ( e [ j ] . position . x + m [ e [ j ] . line ] ) * i , r . position . y = e [ j ] . position . y * i , r . scale . x = r . scale . y = i , r . tint = q , r . parent || this . addChild ( r ) } for ( ; this . children . length > p ; ) { var s = this . getChildAt ( this . children . length - 1 ) ; this . _pool . push ( s ) , this . removeChild ( s ) } this . textWidth = f * i , this . textHeight = ( c . y + b . lineHeight ) * i } , a . BitmapText . prototype . updateTransform = function ( ) { this . dirty && ( this . updateText ( ) , this . dirty = ! 1 ) , a . DisplayObjectContainer . prototype . updateTransform . call ( this ) } , a . BitmapText . fonts = { } , a . Stage = function ( b ) { a . DisplayObjectContainer . call ( this ) , this . worldTransform = new a . Matrix , this . interactive = ! 0 , this . interactionManager = new a . InteractionManager ( this ) , this . dirty = ! 0 , this . stage = this , this . stage . hitArea = new a . Rectangle ( 0 , 0 , 1e5 , 1e5 ) , this . setBackgroundColor ( b ) } , a . Stage . prototype = Object . create ( a . DisplayObjectContainer . prototype ) , a . Stage . prototype . constructor = a . Stage , a . Stage . prototype . setInteractionDelegate = function ( a ) { this . interactionManager . setTargetDomElement ( a ) } , a . Stage . prototype . updateTransform = function ( ) { this . worldAlpha = 1 ; for ( var a = 0 , b = this . children . length ; b > a ; a ++ ) this . children [ a ] . updateTransform ( ) ; this . dirty && ( this . dirty = ! 1 , this . interactionManager . dirty = ! 0 ) , this . interactive && this . interactionManager . update ( ) } , a . Stage . prototype . setBackgroundColor = function ( b ) { this . backgroundColor = b || 0 , this . backgroundColorSplit = a . hex2rgb ( this . backgroundColor ) ; var c = this . backgroundColor . toString ( 16 ) ; c = "000000" . substr ( 0 , 6 - c . length ) + c , this . backgroundColorString = "#" + c } , a . Stage . prototype . getMousePosition = function ( ) { return this . interactionManager . mouse . global } , a . EventTarget = function ( ) { var a = { } ; this . addEventListener = this . on = function ( b , c ) { void 0 === a [ b ] && ( a [ b ] = [ ] ) , - 1 === a [ b ] . indexOf ( c ) && a [ b ] . push ( c ) } , this . dispatchEvent = this . emit = function ( b ) { if ( a [ b . type ] && a [ b . type ] . length ) for ( var c = 0 , d = a [ b . type ] . length ; d > c ; c ++ ) a [ b . type ] [ c ] ( b ) } , this . removeEventListener = this . off = function ( b , c ) { var d = a [ b ] . indexOf ( c ) ; - 1 !== d && a [ b ] . splice ( d , 1 ) } , this . removeAllEventListeners = function ( b ) { var c = a [ b ] ; c && ( c . length = 0 ) } } , a . PolyK = { } , a . PolyK . Triangulate = function ( b ) { var c = ! 0 , d = b . length >> 1 ; if ( 3 > d ) return [ ] ; for ( var e = [ ] , f = [ ] , g = 0 ; d > g ; g ++ ) f . push ( g ) ; g = 0 ; for ( var h = d ; h > 3 ; ) { var i = f [ ( g + 0 ) % h ] , j = f [ ( g + 1 ) % h ] , k = f [ ( g + 2 ) % h ] , l = b [ 2 * i ] , m = b [ 2 * i + 1 ] , n = b [ 2 * j ] , o = b [ 2 * j + 1 ] , p = b [ 2 * k ] , q = b [ 2 * k + 1 ] , r = ! 1 ; if ( a . PolyK . _convex ( l , m , n , o , p , q , c ) ) { r = ! 0 ; for ( var s = 0 ; h > s ; s ++ ) { var t = f [ s ] ; if ( t !== i && t !== j && t !== k && a . PolyK . _PointInTriangle ( b [ 2 * t ] , b [ 2 * t + 1 ] , l , m , n , o , p , q ) ) { r = ! 1 ; break } } } if ( r ) e . push ( i , j , k ) , f . splice ( ( g + 1 ) % h , 1 ) , h -- , g = 0 ; else if ( g ++ > 3 * h ) { if ( ! c ) return window . console . log ( "PIXI Warning: shape too complex to fill" ) , [ ] ; for ( e = [ ] , f = [ ] , g = 0 ; d > g ; g ++ ) f . push ( g ) ; g = 0 , h = d , c = ! 1 } } return e . push ( f [ 0 ] , f [ 1 ] , f [ 2 ] ) , e } , a . PolyK . _PointInTriangle = function ( a , b , c , d , e , f , g , h ) { var i = g - c , j = h - d , k = e - c , l = f - d , m = a - c , n = b - d , o = i * i + j * j , p = i * k + j * l , q = i * m + j * n , r = k * k + l * l , s = k * m + l * n , t = 1 / ( o * r - p * p ) , u = ( r * q - p * s ) * t , v = ( o * s - p * q ) * t ; return u >= 0 && v >= 0 && 1 > u + v } , a . PolyK . _convex = function ( a , b , c , d , e , f , g ) { return ( b - d ) * ( e - c ) + ( c - a ) * ( f - d ) >= 0 === g } , a . initDefaultShaders = function ( ) { } , a . CompileVertexShader = function ( b , c ) { return a . _CompileShader ( b , c , b . VERTEX _SHADER ) } , a . CompileFragmentShader = function ( b , c ) { return a . _CompileShader ( b , c , b . FRAGMENT _SHADER ) } , a . _CompileShader = function ( a , b , c ) { var d = b . join ( "\n" ) , e = a . createShader ( c ) ; return a . shaderSource ( e , d ) , a . compileShader ( e ) , a . getShaderParameter ( e , a . COMPILE _STATUS ) ? e : ( window . console . log ( a . getShaderInfoLog ( e ) ) , null ) } , a . compileProgram = function ( b , c , d ) { var e = a . CompileFragmentShader ( b , d ) , f = a . CompileVertexShader ( b , c ) , g = b . createProgram ( ) ; return b . attachShader ( g , f ) , b . attachShader ( g , e ) , b . linkProgram ( g ) , b . getProgramParameter ( g , b . LINK _STATUS ) || window . console . log ( " Could not initialise s
else { var c = this . vertices . subarray ( 0 , 4 * this . currentBatchSize * this . vertSize ) ; b . bufferSubData ( b . ARRAY _BUFFER , 0 , c ) } b . drawElements ( b . TRIANGLES , 6 * this . currentBatchSize , b . UNSIGNED _SHORT , 0 ) , this . currentBatchSize = 0 , this . renderSession . drawCount ++ } } , a . WebGLSpriteBatch . prototype . stop = function ( ) { this . flush ( ) } , a . WebGLSpriteBatch . prototype . start = function ( ) { var b = this . gl ; b . activeTexture ( b . TEXTURE0 ) , b . bindBuffer ( b . ARRAY _BUFFER , this . vertexBuffer ) , b . bindBuffer ( b . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) ; var c = this . renderSession . projection ; b . uniform2f ( this . shader . projectionVector , c . x , c . y ) ; var d = 4 * this . vertSize ; b . vertexAttribPointer ( this . shader . aVertexPosition , 2 , b . FLOAT , ! 1 , d , 0 ) , b . vertexAttribPointer ( this . shader . aTextureCoord , 2 , b . FLOAT , ! 1 , d , 8 ) , b . vertexAttribPointer ( this . shader . colorAttribute , 2 , b . FLOAT , ! 1 , d , 16 ) , this . currentBlendMode !== a . blendModes . NORMAL && this . setBlendMode ( a . blendModes . NORMAL ) } , a . WebGLSpriteBatch . prototype . setBlendMode = function ( b ) { this . flush ( ) , this . currentBlendMode = b ; var c = a . blendModesWebGL [ this . currentBlendMode ] ; this . gl . blendFunc ( c [ 0 ] , c [ 1 ] ) } , a . WebGLSpriteBatch . prototype . destroy = function ( ) { this . vertices = null , this . indices = null , this . gl . deleteBuffer ( this . vertexBuffer ) , this . gl . deleteBuffer ( this . indexBuffer ) , this . currentBaseTexture = null , this . gl = null } , a . WebGLFastSpriteBatch = function ( a ) { this . vertSize = 10 , this . maxSize = 6e3 , this . size = this . maxSize ; var b = 4 * this . size * this . vertSize , c = 6 * this . maxSize ; this . vertices = new Float32Array ( b ) , this . indices = new Uint16Array ( c ) , this . vertexBuffer = null , this . indexBuffer = null , 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 . currentBlendMode = 0 , this . renderSession = null , this . shader = null , this . matrix = null , this . setContext ( a ) } , a . WebGLFastSpriteBatch . prototype . setContext = function ( a ) { this . gl = a , this . vertexBuffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , this . indices , a . STATIC _DRAW ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . vertices , a . DYNAMIC _DRAW ) , this . currentBlendMode = 99999 } , a . WebGLFastSpriteBatch . prototype . begin = function ( a , b ) { this . renderSession = b , this . shader = this . renderSession . shaderManager . fastShader , this . matrix = a . worldTransform . toArray ( ! 0 ) , this . start ( ) } , a . WebGLFastSpriteBatch . prototype . end = function ( ) { this . flush ( ) } , a . WebGLFastSpriteBatch . prototype . render = function ( a ) { var b = a . children , c = b [ 0 ] ; if ( c . texture . _uvs ) { this . currentBaseTexture = c . texture . baseTexture , c . blendMode !== this . currentBlendMode && this . setBlendMode ( c . blendMode ) ; for ( var d = 0 , e = b . length ; e > d ; d ++ ) this . renderSprite ( b [ d ] ) ; this . flush ( ) } } , a . WebGLFastSpriteBatch . prototype . renderSprite = function ( a ) { if ( a . texture . baseTexture === this . currentBaseTexture || ( this . flush ( ) , this . currentBaseTexture = a . texture . baseTexture , a . texture . _uvs ) ) { var b , c , d , e , f , g , h , i , j = this . vertices ; if ( b = a . texture . _uvs , c = a . texture . frame . width , d = a . texture . frame . height , a . texture . trim ) { var k = a . texture . trim ; f = k . x - a . anchor . x * k . width , e = f + a . texture . frame . width , h = k . y - a . anchor . y * k . height , g = h + a . texture . frame . height } else e = a . texture . frame . width * ( 1 - a . anchor . x ) , f = a . texture . frame . width * - a . anchor . x , g = a . texture . frame . height * ( 1 - a . anchor . y ) , h = a . texture . frame . height * - a . anchor . y ; i = 4 * this . currentBatchSize * this . vertSize , j [ i ++ ] = f , j [ i ++ ] = h , j [ i ++ ] = a . position . x , j [ i ++ ] = a . position . y , j [ i ++ ] = a . scale . x , j [ i ++ ] = a . scale . y , j [ i ++ ] = a . rotation , j [ i ++ ] = b . x0 , j [ i ++ ] = b . y1 , j [ i ++ ] = a . alpha , j [ i ++ ] = e , j [ i ++ ] = h , j [ i ++ ] = a . position . x , j [ i ++ ] = a . position . y , j [ i ++ ] = a . scale . x , j [ i ++ ] = a . scale . y , j [ i ++ ] = a . rotation , j [ i ++ ] = b . x1 , j [ i ++ ] = b . y1 , j [ i ++ ] = a . alpha , j [ i ++ ] = e , j [ i ++ ] = g , j [ i ++ ] = a . position . x , j [ i ++ ] = a . position . y , j [ i ++ ] = a . scale . x , j [ i ++ ] = a . scale . y , j [ i ++ ] = a . rotation , j [ i ++ ] = b . x2 , j [ i ++ ] = b . y2 , j [ i ++ ] = a . alpha , j [ i ++ ] = f , j [ i ++ ] = g , j [ i ++ ] = a . position . x , j [ i ++ ] = a . position . y , j [ i ++ ] = a . scale . x , j [ i ++ ] = a . scale . y , j [ i ++ ] = a . rotation , j [ i ++ ] = b . x3 , j [ i ++ ] = b . y3 , j [ i ++ ] = a . alpha , this . currentBatchSize ++ , this . currentBatchSize >= this . size && this . flush ( ) } } , a . WebGLFastSpriteBa
var e = this . tilePosition , f = this . tileScale ; e . x %= this . tilingTexture . baseTexture . width , e . y %= this . tilingTexture . baseTexture . height , c . scale ( f . x , f . y ) , c . translate ( e . x , e . y ) , c . fillStyle = this . _ _tilePattern , c . fillRect ( - e . x , - e . y , this . width / f . x , this . height / f . y ) , c . scale ( 1 / f . x , 1 / f . y ) , c . translate ( - e . x , - e . y ) , c . closePath ( ) , this . _mask && b . maskManager . popMask ( b . context ) } } , a . TilingSprite . prototype . getBounds = function ( ) { var a = this . _width , b = this . _height , c = a * ( 1 - this . anchor . x ) , d = a * - this . anchor . x , e = b * ( 1 - this . anchor . y ) , f = b * - this . anchor . y , g = this . worldTransform , h = g . a , i = g . c , j = g . b , k = g . d , l = g . tx , m = g . ty , n = h * d + j * f + l , o = k * f + i * d + m , p = h * c + j * f + l , q = k * f + i * c + m , r = h * c + j * e + l , s = k * e + i * c + m , t = h * d + j * e + l , u = k * e + i * d + m , v = - 1 / 0 , w = - 1 / 0 , x = 1 / 0 , y = 1 / 0 ; x = x > n ? n : x , x = x > p ? p : x , x = x > r ? r : x , x = x > t ? t : x , y = y > o ? o : y , y = y > q ? q : y , y = y > s ? s : y , y = y > u ? u : y , v = n > v ? n : v , v = p > v ? p : v , v = r > v ? r : v , v = t > v ? t : v , w = o > w ? o : w , w = q > w ? q : w , w = s > w ? s : w , w = u > w ? u : w ; var z = this . _bounds ; return z . x = x , z . width = v - x , z . y = y , z . height = w - y , this . _currentBounds = z , z } , a . TilingSprite . prototype . generateTilingTexture = function ( b ) { var c = this . texture ; if ( c . baseTexture . hasLoaded ) { var d , e , f = c . baseTexture , g = c . frame , h = g . width !== f . width || g . height !== f . height , i = ! 1 ; if ( b ? ( d = a . getNextPowerOfTwo ( g . width ) , e = a . getNextPowerOfTwo ( g . height ) , g . width !== d && g . height !== e && ( i = ! 0 ) ) : h && ( c . trim ? ( d = c . trim . width , e = c . trim . height ) : ( d = g . width , e = g . height ) , i = ! 0 ) , i ) { var j ; this . tilingTexture && this . tilingTexture . isTiling ? ( j = this . tilingTexture . canvasBuffer , j . resize ( d , e ) , this . tilingTexture . baseTexture . width = d , this . tilingTexture . baseTexture . height = e , this . tilingTexture . needsUpdate = ! 0 ) : ( j = new a . CanvasBuffer ( d , e ) , this . tilingTexture = a . Texture . fromCanvas ( j . canvas ) , this . tilingTexture . canvasBuffer = j , this . tilingTexture . isTiling = ! 0 ) , j . context . drawImage ( c . baseTexture . source , g . x , g . y , g . width , g . height , 0 , 0 , d , e ) , this . tileScaleOffset . x = g . width / d , this . tileScaleOffset . y = g . height / e } else this . tilingTexture && this . tilingTexture . isTiling && this . tilingTexture . destroy ( ! 0 ) , this . tileScaleOffset . x = 1 , this . tileScaleOffset . y = 1 , this . tilingTexture = c ; this . refreshTexture = ! 1 , this . tilingTexture . baseTexture . _powerOf2 = ! 0 } } , a . BaseTextureCache = { } , a . texturesToUpdate = [ ] , a . texturesToDestroy = [ ] , a . BaseTextureCacheIdGenerator = 0 , a . BaseTexture = function ( b , c ) { if ( a . EventTarget . call ( this ) , this . width = 100 , this . height = 100 , this . scaleMode = c || a . scaleModes . DEFAULT , this . hasLoaded = ! 1 , this . source = b , this . id = a . BaseTextureCacheIdGenerator ++ , this . _glTextures = [ ] , b ) { if ( this . source . complete || this . source . getContext ) this . hasLoaded = ! 0 , this . width = this . source . width , this . height = this . source . height , a . texturesToUpdate . push ( this ) ; else { var d = this ; this . source . onload = function ( ) { d . hasLoaded = ! 0 , d . width = d . source . width , d . height = d . source . height , a . texturesToUpdate . push ( d ) , d . dispatchEvent ( { type : "loaded" , content : d } ) } } this . imageUrl = null , this . _powerOf2 = ! 1 } } , a . BaseTexture . prototype . constructor = a . BaseTexture , a . BaseTexture . prototype . destroy = function ( ) { this . imageUrl && ( delete a . BaseTextureCache [ this . imageUrl ] , this . imageUrl = null , this . source . src = null ) , this . source = null , a . texturesToDestroy . push ( this ) } , a . BaseTexture . prototype . updateSourceImage = function ( a ) { this . hasLoaded = ! 1 , this . source . src = null , this . source . src = a } , a . BaseTexture . fromImage = function ( b , c , d ) { var e = a . BaseTextureCache [ b ] ; if ( c = ! c , ! e ) { var f = new Image ; c && ( f . crossOrigin = "" ) , f . src = b , e = new a . BaseTexture ( f , d ) , e . imageUrl = b , a . BaseTextureCache [ b ] = e } return e } , a . BaseTexture . fromCanvas = function ( b , c ) { b . _pixiId || ( b . _pixiId = "canvas_" + a . TextureCacheIdGenerator ++ ) ; var d = a . BaseTextureCache [ b . _pixiId ] ; return d || ( d = new a . BaseTexture ( b , c ) , a . BaseTextureCache [ b . _pixiId ] = d ) , d } , a . TextureCache = { } , a . FrameCache = { } , a . TextureCacheIdGenerator = 0 , a . Texture = function ( b , c ) { if ( a . EventTarget . call ( this ) , c || ( this . noFrame = ! 0 , c = new a . Rectangle ( 0 , 0 , 1 , 1 ) ) , b instanceof a . Texture && ( b = b . baseTexture ) , this . baseTexture = b , this . frame = c , this . trim = null , this . scope = this , this . _uvs = null , b . hasLoaded ) this . noFrame && ( c = new a . Rectangle ( 0 , 0 , b . width , b . height ) ) , this . setFrame ( c ) ; else { var d = this ; b . addEventListener ( "loaded" , function ( ) { d . onBaseTextureLoaded ( ) } ) } } , a . Texture . prototype . constructor = a . Texture , a . Texture . prototype . onBaseTextureLoaded = function ( ) { var b = this . baseTexture ; b . removeEventListener ( "loaded" , this . onL
} , b . Group . prototype . set = function ( a , b , c , d , e , f ) { b = b . split ( "." ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = ! 1 ) , ( d === ! 1 || d && a . alive ) && ( e === ! 1 || e && a . visible ) && this . setProperty ( a , b , c , f ) } , b . Group . prototype . setAll = function ( a , b , c , d , e ) { a = a . split ( "." ) , "undefined" == typeof c && ( c = ! 1 ) , "undefined" == typeof d && ( d = ! 1 ) , e = e || 0 ; for ( var f = 0 , g = this . children . length ; g > f ; f ++ ) ( ! c || c && this . children [ f ] . alive ) && ( ! d || d && this . children [ f ] . visible ) && this . setProperty ( this . children [ f ] , a , b , e ) } , b . Group . prototype . addAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 1 ) } , b . Group . prototype . subAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 2 ) } , b . Group . prototype . multiplyAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 3 ) } , b . Group . prototype . divideAll = function ( a , b , c , d ) { this . setAll ( a , b , c , d , 4 ) } , b . Group . prototype . callAllExists = function ( a , b ) { for ( var c = Array . prototype . splice . call ( arguments , 2 ) , d = 0 , e = this . children . length ; e > d ; d ++ ) this . children [ d ] . exists === b && this . children [ d ] [ a ] && this . children [ d ] [ a ] . apply ( this . children [ d ] , c ) } , b . Group . prototype . callbackFromArray = function ( a , b , c ) { if ( 1 == c ) { if ( a [ b [ 0 ] ] ) return a [ b [ 0 ] ] } else if ( 2 == c ) { if ( a [ b [ 0 ] ] [ b [ 1 ] ] ) return a [ b [ 0 ] ] [ b [ 1 ] ] } else if ( 3 == c ) { if ( a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] ) return a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] } else if ( 4 == c ) { if ( a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] ) return a [ b [ 0 ] ] [ b [ 1 ] ] [ b [ 2 ] ] [ b [ 3 ] ] } else if ( a [ b ] ) return a [ b ] ; return ! 1 } , b . Group . prototype . callAll = function ( a , b ) { if ( "undefined" != typeof a ) { a = a . split ( "." ) ; var c = a . length ; if ( "undefined" == typeof b || null === b || "" === b ) b = null ; else if ( "string" == typeof b ) { b = b . split ( "." ) ; var d = b . length } for ( var e = Array . prototype . splice . call ( arguments , 2 ) , f = null , g = null , h = 0 , i = this . children . length ; i > h ; h ++ ) f = this . callbackFromArray ( this . children [ h ] , a , c ) , b && f ? ( g = this . callbackFromArray ( this . children [ h ] , b , d ) , f && f . apply ( g , e ) ) : f && f . apply ( this . children [ h ] , e ) } } , b . Group . prototype . preUpdate = function ( ) { if ( ! this . exists || ! this . parent . exists ) return this . renderOrderID = - 1 , ! 1 ; for ( var a = this . children . length ; a -- ; ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , b . Group . prototype . update = function ( ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . update ( ) } , b . Group . prototype . postUpdate = function ( ) { 1 === this . _cache [ 7 ] && ( this . x = this . game . camera . view . x + this . cameraOffset . x , this . y = this . game . camera . view . y + this . cameraOffset . y ) ; for ( var a = this . children . length ; a -- ; ) this . children [ a ] . postUpdate ( ) } , b . Group . prototype . forEach = function ( a , b , c ) { "undefined" == typeof c && ( c = ! 1 ) ; var d = Array . prototype . splice . call ( arguments , 3 ) ; d . unshift ( null ) ; for ( var e = 0 , f = this . children . length ; f > e ; e ++ ) ( ! c || c && this . children [ e ] . exists ) && ( d [ 0 ] = this . children [ e ] , a . apply ( b , d ) ) } , b . Group . prototype . forEachExists = function ( a , c ) { var d = Array . prototype . splice . call ( arguments , 2 ) ; d . unshift ( null ) , this . iterate ( "exists" , ! 0 , b . Group . RETURN _TOTAL , a , c , d ) } , b . Group . prototype . forEachAlive = function ( a , c ) { var d = Array . prototype . splice . call ( arguments , 2 ) ; d . unshift ( null ) , this . iterate ( "alive" , ! 0 , b . Group . RETURN _TOTAL , a , c , d ) } , b . Group . prototype . forEachDead = function ( a , c ) { var d = Array . prototype . splice . call ( arguments , 2 ) ; d . unshift ( null ) , this . iterate ( "alive" , ! 1 , b . Group . RETURN _TOTAL , a , c , d ) } , b . Group . prototype . sort = function ( a , c ) { "undefined" == typeof a && ( a = "y" ) , "undefined" == typeof c && ( c = b . Group . SORT _ASCENDING ) } , b . Group . prototype . sortHandler = function ( ) { } , b . Group . prototype . iterate = function ( a , c , d , e , f , g ) { if ( d === b . Group . RETURN _TOTAL && 0 === this . children . length ) return 0 ; "undefined" == typeof e && ( e = ! 1 ) ; for ( var h = 0 , i = 0 , j = this . children . length ; j > i ; i ++ ) if ( this . children [ i ] [ a ] === c && ( h ++ , e && ( g [ 0 ] = this . children [ i ] , e . apply ( f , g ) ) , d === b . Group . RETURN _CHILD ) ) return this . children [ i ] ; return d === b . Group . RETURN _TOTAL ? h : d === b . Group . RETURN _CHILD ? null : void 0 } , b . Group . prototype . getFirstExists = function ( a ) { return "boolean" != typeof a && ( a = ! 0 ) , this . iterate ( "exists" , a , b . Group . RETURN _CHILD ) } , b . Group . prototype . getFirstAlive = function ( ) { return this . iterate ( "alive" , ! 0 , b . Group . RETURN _CHILD ) } , b . Group . prototype . getFirstDead = function ( ) { return this . iterate ( "alive" , ! 1 , b . Group . RETURN _CHILD ) } , b . Group . prototype . countLiving = function ( ) { return this . iterate ( "alive" , ! 0 , b . Group . RETURN _TOTAL ) } , b . Group . prototype . countDead = function ( ) { return this . iterate ( "alive" , ! 1 , b . Group . RETURN _TOTAL ) } , b . Group . prototype . getRandom = function ( a , b ) { return
else this . _capture [ a ] = ! 0 } , removeKeyCapture : function ( a ) { delete this . _capture [ a ] } , clearCaptures : function ( ) { this . _capture = { } } , update : function ( ) { for ( var a = this . _keys . length ; a -- ; ) this . _keys [ a ] && this . _keys [ a ] . update ( ) } , processKeyDown : function ( a ) { this . game . input . disabled || this . disabled || ( this . _capture [ a . keyCode ] && a . preventDefault ( ) , this . onDownCallback && this . onDownCallback . call ( this . callbackContext , a ) , this . _keys [ a . keyCode ] || ( this . _keys [ a . keyCode ] = new b . Key ( this . game , a . keyCode ) ) , this . _keys [ a . keyCode ] . processKeyDown ( a ) ) } , processKeyUp : function ( a ) { this . game . input . disabled || this . disabled || ( this . _capture [ a . keyCode ] && a . preventDefault ( ) , this . onUpCallback && this . onUpCallback . call ( this . callbackContext , a ) , this . _keys [ a . keyCode ] || ( this . _keys [ a . keyCode ] = new b . Key ( this . game , a . keyCode ) ) , this . _keys [ a . keyCode ] . processKeyUp ( a ) ) } , reset : function ( ) { for ( var a = this . _keys . length ; a -- ; ) this . _keys [ a ] && this . _keys [ a ] . reset ( ) } , justPressed : function ( a , b ) { return this . _keys [ a ] ? this . _keys [ a ] . justPressed ( b ) : ! 1 } , justReleased : function ( a , b ) { return this . _keys [ a ] ? this . _keys [ a ] . justReleased ( b ) : ! 1 } , isDown : function ( a ) { return this . _keys [ a ] ? this . _keys [ a ] . isDown : ! 1 } } , b . Keyboard . prototype . constructor = b . Keyboard , b . Keyboard . A = "A" . charCodeAt ( 0 ) , b . Keyboard . B = "B" . charCodeAt ( 0 ) , b . Keyboard . C = "C" . charCodeAt ( 0 ) , b . Keyboard . D = "D" . charCodeAt ( 0 ) , b . Keyboard . E = "E" . charCodeAt ( 0 ) , b . Keyboard . F = "F" . charCodeAt ( 0 ) , b . Keyboard . G = "G" . charCodeAt ( 0 ) , b . Keyboard . H = "H" . charCodeAt ( 0 ) , b . Keyboard . I = "I" . charCodeAt ( 0 ) , b . Keyboard . J = "J" . charCodeAt ( 0 ) , b . Keyboard . K = "K" . charCodeAt ( 0 ) , b . Keyboard . L = "L" . charCodeAt ( 0 ) , b . Keyboard . M = "M" . charCodeAt ( 0 ) , b . Keyboard . N = "N" . charCodeAt ( 0 ) , b . Keyboard . O = "O" . charCodeAt ( 0 ) , b . Keyboard . P = "P" . charCodeAt ( 0 ) , b . Keyboard . Q = "Q" . charCodeAt ( 0 ) , b . Keyboard . R = "R" . charCodeAt ( 0 ) , b . Keyboard . S = "S" . charCodeAt ( 0 ) , b . Keyboard . T = "T" . charCodeAt ( 0 ) , b . Keyboard . U = "U" . charCodeAt ( 0 ) , b . Keyboard . V = "V" . charCodeAt ( 0 ) , b . Keyboard . W = "W" . charCodeAt ( 0 ) , b . Keyboard . X = "X" . charCodeAt ( 0 ) , b . Keyboard . Y = "Y" . charCodeAt ( 0 ) , b . Keyboard . Z = "Z" . charCodeAt ( 0 ) , b . Keyboard . ZERO = "0" . charCodeAt ( 0 ) , b . Keyboard . ONE = "1" . charCodeAt ( 0 ) , b . Keyboard . TWO = "2" . charCodeAt ( 0 ) , b . Keyboard . THREE = "3" . charCodeAt ( 0 ) , b . Keyboard . FOUR = "4" . charCodeAt ( 0 ) , b . Keyboard . FIVE = "5" . charCodeAt ( 0 ) , b . Keyboard . SIX = "6" . charCodeAt ( 0 ) , b . Keyboard . SEVEN = "7" . charCodeAt ( 0 ) , b . Keyboard . EIGHT = "8" . charCodeAt ( 0 ) , b . Keyboard . NINE = "9" . charCodeAt ( 0 ) , b . Keyboard . NUMPAD _0 = 96 , b . Keyboard . NUMPAD _1 = 97 , b . Keyboard . NUMPAD _2 = 98 , b . Keyboard . NUMPAD _3 = 99 , b . Keyboard . NUMPAD _4 = 100 , b . Keyboard . NUMPAD _5 = 101 , b . Keyboard . NUMPAD _6 = 102 , b . Keyboard . NUMPAD _7 = 103 , b . Keyboard . NUMPAD _8 = 104 , b . Keyboard . NUMPAD _9 = 105 , b . Keyboard . NUMPAD _MULTIPLY = 106 , b . Keyboard . NUMPAD _ADD = 107 , b . Keyboard . NUMPAD _ENTER = 108 , b . Keyboard . NUMPAD _SUBTRACT = 109 , b . Keyboard . NUMPAD _DECIMAL = 110 , b . Keyboard . NUMPAD _DIVIDE = 111 , b . Keyboard . F1 = 112 , b . Keyboard . F2 = 113 , b . Keyboard . F3 = 114 , b . Keyboard . F4 = 115 , b . Keyboard . F5 = 116 , b . Keyboard . F6 = 117 , b . Keyboard . F7 = 118 , b . Keyboard . F8 = 119 , b . Keyboard . F9 = 120 , b . Keyboard . F10 = 121 , b . Keyboard . F11 = 122 , b . Keyboard . F12 = 123 , b . Keyboard . F13 = 124 , b . Keyboard . F14 = 125 , b . Keyboard . F15 = 126 , b . Keyboard . COLON = 186 , b . Keyboard . EQUALS = 187 , b . Keyboard . UNDERSCORE = 189 , b . Keyboard . QUESTION _MARK = 191 , b . Keyboard . TILDE = 192 , b . Keyboard . OPEN _BRACKET = 219 , b . Keyboard . BACKWARD _SLASH = 220 , b . Keyboard . CLOSED _BRACKET = 221 , b . Keyboard . QUOTES = 222 , b . Keyboard . BACKSPACE = 8 , b . Keyboard . TAB = 9 , b . Keyboard . CLEAR = 12 , b . Keyboard . ENTER = 13 , b . Keyboard . SHIFT = 16 , b . Keyboard . CONTROL = 17 , b . Keyboard . ALT = 18 , b . Keyboard . CAPS _LOCK = 20 , b . Keyboard . ESC = 27 , b . Keyboard . SPACEBAR = 32 , b . Keyboard . PAGE _UP = 33 , b . Keyboard . PAGE _DOWN = 34 , b . Keyboard . END = 35 , b . Keyboard . HOME = 36 , b . Keyboard . LEFT = 37 , b . Keyboard . UP = 38 , b . Keyboard . RIGHT = 39 , b . Keyboard . DOWN = 40 , b . Keyboard . INSERT = 45 , b . Keyboard . DELETE = 46 , b . Keyboard . HELP = 47 , b . Keyboard . NUM _LOCK = 144 , b . Mouse = function ( a ) { this . game = a , this . callbackContext = this . game , this . mouseDownCallback = null , this . mouseMoveCallback = null , this . mouseUpCallback = null , this . capture = ! 1 , this . button = - 1 , this . disabled = ! 1 , this . locked = ! 1 , this . pointerLock = new b . Signal , this . event = null , this . _onMouseDown = null , this . _onMouseMove = null , this . _onMouseUp = null } , b . Mouse . NO _BUTTON = - 1 , b . Mouse . LEFT _BUTTON = 0 , b . Mouse . MIDDLE _BUTTON = 1 , b . Mouse . RIGHT _BUTTON = 2 ,
} , 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 ) { if ( "undefined" != typeof a ) return this . _pointerData [ a ] . isOver ; for ( var b = 0 ; 10 > b ; b ++ ) if ( this . _pointerData [ b ] . isOver ) return ! 0 } return ! 1 } , pointerOut : function ( a ) { if ( this . enabled ) { if ( "undefined" != typeof a ) return this . _pointerData [ a ] . isOut ; for ( var b = 0 ; 10 > b ; b ++ ) if ( this . _pointerData [ b ] . isOut ) return ! 0 } return ! 1 } , 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 ) { return this . enabled === ! 1 || this . sprite . visible === ! 1 || this . sprite . parent . visible === ! 1 ? ! 1 : this . game . input . hitTest ( this . sprite , a , this . _tempPoint ) ? this . pixelPerfectClick ? this . checkPixel ( this . _tempPoint . x , this . _tempPoint . y ) : ! 0 : ! 1 } , checkPointerOver : function ( a ) { return this . enabled === ! 1 || this . sprite . visible === ! 1 || this . sprite . parent . visible === ! 1 ? ! 1 : this . game . input . hitTest ( this . sprite , a , this . _tempPoint ) ? this . pixelPerfectOver ? this . checkPixel ( this . _tempPoint . x , this . _tempPoint . y ) : ! 0 : ! 1 } , checkPixel : function ( a , b , c ) { if ( this . sprite . texture . baseTexture . source ) { if ( this . game . input . hitContext . clearRect ( 0 , 0 , 1 , 1 ) , null === a && null === b ) { this . game . input . getLocalPosition ( this . sprite , c , this . _tempPoint ) ; var a = this . _tempPoint . x , b = this . _tempPoint . y } 0 !== this . sprite . anchor . x && ( a -= - this . sprite . texture . frame . width * this . sprite . anchor . x ) , 0 !== this . sprite . anchor . y && ( b -= - this . sprite . texture . frame . height * this . sprite . anchor . y ) , a += this . sprite . texture . frame . x , b += this . sprite . texture . frame . y , this . game . input . hitContext . drawImage ( this . sprite . texture . baseTexture . source , a , b , 1 , 1 , 0 , 0 , 1 , 1 ) ; var d = this . game . input . hitContext . getImageData ( 0 , 0 , 1 , 1 ) ; if ( d . data [ 3 ] >= this . pixelPerfectAlpha ) return ! 0 } return ! 1 } , update : function ( a ) { return null !== this . sprite ? this . enabled && this . sprite . visible && this . sprite . parent . visible ? this . draggable && this . _draggedPointerID == a . id ? this . updateDrag ( a ) : this . _pointerData [ a . id ] . isOver === ! 0 ? this . checkPointerOver ( a ) ? ( this . _pointerData [ a . id ] . x = a . x - this . sprite . x , this . _pointerData [ a . id ] . y = a . y - this . sprite . y , ! 0 ) : ( this . _pointerOutHandler ( a ) , ! 1 ) : void 0 : ( this . _pointerOutHandler ( a ) , ! 1 ) : void 0 } , _pointerOverHandler : function ( a ) { null !== this . sprite && this . _pointerData [ a . id ] . isOver === ! 1 && ( this . _pointerData [ a . id ] . isOver = ! 0 , this . _pointerData [ a . id ] . isOut = ! 1 , this . _pointerData [ a . id ] . timeOver = this . game . time . now , this . _pointerData [ a . id ] . x = a . x - this . sprite . x , this . _pointerData [ a . id ] . y = a . y - this . sprite . y , this . useHandCursor && this . _pointerData [ a . id ] . isDragged === ! 1 && ( this . game . canvas . style . cursor = "pointer" ) , this . sprite . events . onInputOver . dispatch ( this . sprite , a ) ) } , _pointerOutHandler : function ( a ) { null !== this . sprite && ( this . _pointerData [ a . id ] . isOver = ! 1 , this . _pointerData [ a . id ] . isOut = ! 0 , this . _pointerData [ a . id ] . timeOut = this . game . time . now , this . useHandCursor && this . _pointerData [ a . id ] . isDragged === ! 1 && ( this . game . canvas . style . cursor = "default" ) , this . sprite && this . sprite . events && this . sprite . events . onInputOut . dispatch ( this . sprite , a ) ) } , _touchedHandler : function ( a ) { if ( null !== this . sprite ) { if ( this . _pointerData [ a . id ] . isDown === ! 1 && this . _pointerData [ a . id ] . isOver === ! 0 ) { if ( this . pixelPerfectClick && ! this . checkPixel ( null , null , a ) ) return ; this . _pointerData [ a . id ] . isDown = ! 0 , this . _pointerData [ a . id ] . isUp = ! 1 , this . _pointerData [ a . id ] . timeDown = this . game . time . now , this . sprite . events . onInputDown . dispatch ( this . sprite , a ) , this . draggable && this . isDragged === ! 1 && this . startDrag ( a ) , this . bringToTop && this . sprite . bringToTop ( ) } return this . consumePointerEvent } } , _releasedHandler : function ( a ) { null !== this . sprite && this . _pointerData [ a . id ] . isDown && a . isUp && ( this . _pointerData [ a . id ] . isDown = ! 1 , this . _pointerData [ a . id ] . isUp = ! 0 , this . _pointerData [ a . id ] . timeUp = this . game . time . now , this . _pointerData [ a . id ] . downDuration = this . _pointerData [ a . id ] . timeUp - this . _pointerData [ a . id
} , b . TileSprite . prototype = Object . create ( a . TilingSprite . prototype ) , b . TileSprite . prototype . constructor = b . TileSprite , b . TileSprite . prototype . preUpdate = function ( ) { return this . world . setTo ( this . game . camera . x + this . worldTransform [ 2 ] , this . game . camera . y + this . worldTransform [ 5 ] ) , this . animations . update ( ) , 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 ) , ! 0 } , b . TileSprite . prototype . update = function ( ) { } , b . TileSprite . prototype . postUpdate = function ( ) { 1 === this . _cache [ 7 ] && ( this . position . x = this . game . camera . view . x + this . cameraOffset . x , this . position . y = this . game . camera . view . y + this . cameraOffset . y ) } , b . TileSprite . prototype . autoScroll = function ( a , b ) { this . _scroll . set ( a , b ) } , b . TileSprite . prototype . stopScroll = function ( ) { this . _scroll . set ( 0 , 0 ) } , b . TileSprite . prototype . loadTexture = function ( c , d ) { return d = d || 0 , c instanceof b . RenderTexture ? ( this . key = c . key , this . setTexture ( c ) , void 0 ) : c instanceof b . BitmapData ? ( this . key = c . key , this . setTexture ( c . texture ) , void 0 ) : c instanceof a . Texture ? ( this . key = c , this . setTexture ( c ) , void 0 ) : null === c || "undefined" == typeof c ? ( this . key = "__default" , this . setTexture ( a . TextureCache [ this . key ] ) , void 0 ) : "string" != typeof c || this . game . cache . checkImageKey ( c ) ? this . game . cache . isSpriteSheet ( c ) ? ( this . key = c , this . animations . loadFrameData ( this . game . cache . getFrameData ( c ) ) , "string" == typeof d ? this . frameName = d : this . frame = d , void 0 ) : ( this . key = c , this . setTexture ( a . TextureCache [ c ] ) , void 0 ) : ( this . key = "__missing" , this . setTexture ( a . TextureCache [ this . key ] ) , void 0 ) } , b . TileSprite . prototype . destroy = function ( ) { this . filters && ( this . filters = null ) , this . parent && this . parent . remove ( this ) , this . animations . destroy ( ) , this . events . destroy ( ) ; for ( var a = this . children . length ; a -- ; ) this . removeChild ( this . children [ a ] ) ; this . exists = ! 1 , this . visible = ! 1 , this . filters = null , this . mask = null , this . game = null } , b . TileSprite . prototype . play = function ( a , b , c , d ) { return this . animations . play ( a , b , c , d ) } , Object . defineProperty ( b . TileSprite . prototype , "angle" , { get : function ( ) { return b . Math . wrapAngle ( b . Math . radToDeg ( this . rotation ) ) } , set : function ( a ) { this . rotation = b . Math . degToRad ( b . Math . wrapAngle ( a ) ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "frame" , { get : function ( ) { return this . animations . frame } , set : function ( a ) { a !== this . animations . frame && ( this . animations . frame = a ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "frameName" , { get : function ( ) { return this . animations . frameName } , set : function ( a ) { a !== this . animations . frameName && ( this . animations . frameName = a ) } } ) , Object . defineProperty ( b . TileSprite . prototype , "fixedToCamera" , { get : function ( ) { return ! ! this . _cache [ 7 ] } , set : function ( a ) { a ? ( this . _cache [ 7 ] = 1 , this . cameraOffset . set ( this . x , this . y ) ) : this . _cache [ 7 ] = 0 } } ) , Object . defineProperty ( b . TileSprite . prototype , "inputEnabled" , { get : function ( ) { return this . input && this . input . enabled } , set : function ( a ) { a ? null === this . input && ( this . input = new b . InputHandler ( this ) , this . input . start ( ) ) : this . input && this . input . enabled && this . input . stop ( ) } } ) , b . Text = function ( c , d , e , f , g ) { d = d || 0 , e = e || 0 , f = f || "" , g = g || "" , this . game = c , this . exists = ! 0 , this . name = "" , this . type = b . TEXT , this . world = new b . Point ( d , e ) , this . _text = f , this . _font = "" , this . _fontSize = 32 , this . _fontWeight = "normal" , this . _lineSpacing = 0 , this . events = new b . Events ( this ) , this . input = null , this . cameraOffset = new b . Point , a . Text . call ( this , f , g ) , this . position . set ( d , e ) , this . _cache = new Int16Array ( [ 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 ] ) } , b . Text . prototype = Object . create ( a . Text . prototype ) , b . Text . prototype . constructor = b . Text , b . Text . prototype . preUpdate = function ( ) { return this . _cache [ 0 ] = this . world . x , this . _cache [ 1 ] = this . world . y , this . _cache [ 2 ] = this . rotation , this . exists && this . parent . exists ? ( this . autoCull && ( this . renderable = this . game . world . camera . screenView . intersects ( this . getBounds ( ) ) ) , this . world . setTo ( this . game . camera . x + this . worldTransform [ 2 ] , this . game . camera . y + this . worldTransform [ 5 ] ) , this . visible && ( this . _cache [ 3 ] = this . game . world . currentRenderOrderID ++ ) , ! 0 ) : ( this . renderOrderID = - 1 , ! 1 ) } , b . Text . prototype . update = function ( ) { } , b . Text . prototype . postUpdate = function ( ) { 1 === this . _cache [ 7 ] && ( this . position . x = this . game . camera . view . x + this . cameraOffset . x , this . position . y
} catch ( c ) { } } , _checkDevice : function ( ) { this . pixelRatio = window . devicePixelRatio || 1 , this . iPhone = - 1 != navigator . userAgent . toLowerCase ( ) . indexOf ( "iphone" ) , this . iPhone4 = 2 == this . pixelRatio && this . iPhone , this . iPad = - 1 != navigator . userAgent . toLowerCase ( ) . indexOf ( "ipad" ) , "undefined" != typeof Int8Array ? ( this . littleEndian = new Int8Array ( new Int16Array ( [ 1 ] ) . buffer ) [ 0 ] > 0 , this . typedArray = ! 0 ) : ( this . littleEndian = ! 1 , this . typedArray = ! 1 ) , navigator . vibrate = navigator . vibrate || navigator . webkitVibrate || navigator . mozVibrate || navigator . msVibrate , navigator . vibrate && ( this . vibration = ! 0 ) } , _checkCSS3D : function ( ) { var a , b = document . createElement ( "p" ) , c = { webkitTransform : "-webkit-transform" , OTransform : "-o-transform" , msTransform : "-ms-transform" , MozTransform : "-moz-transform" , transform : "transform" } ; document . body . insertBefore ( b , null ) ; for ( var d in c ) void 0 !== b . style [ d ] && ( b . style [ d ] = "translate3d(1px,1px,1px)" , a = window . getComputedStyle ( b ) . getPropertyValue ( c [ d ] ) ) ; document . body . removeChild ( b ) , this . css3D = void 0 !== a && a . length > 0 && "none" !== a } , canPlayAudio : function ( a ) { return "mp3" == a && this . mp3 ? ! 0 : "ogg" == a && ( this . ogg || this . opus ) ? ! 0 : "m4a" == a && this . m4a ? ! 0 : "wav" == a && this . wav ? ! 0 : "webm" == a && this . webm ? ! 0 : ! 1 } , isConsoleOpen : function ( ) { return window . console && window . console . firebug ? ! 0 : window . console ? ( console . profile ( ) , console . profileEnd ( ) , console . clear && console . clear ( ) , console . profiles . length > 0 ) : ! 1 } } , b . Device . prototype . constructor = b . Device , b . RequestAnimationFrame = function ( a , b ) { "undefined" == typeof b && ( b = ! 1 ) , this . game = a , this . isRunning = ! 1 , this . forceSetTimeOut = b ; for ( var c = [ "ms" , "moz" , "webkit" , "o" ] , d = 0 ; d < c . length && ! window . requestAnimationFrame ; d ++ ) window . requestAnimationFrame = window [ c [ d ] + "RequestAnimationFrame" ] , window . cancelAnimationFrame = window [ c [ d ] + "CancelAnimationFrame" ] ; this . _isSetTimeOut = ! 1 , this . _onLoop = null , this . _timeOutID = null } , b . RequestAnimationFrame . prototype = { start : function ( ) { this . isRunning = ! 0 ; var a = this ; ! window . requestAnimationFrame || this . forceSetTimeOut ? ( this . _isSetTimeOut = ! 0 , this . _onLoop = function ( ) { return a . updateSetTimeout ( ) } , this . _timeOutID = window . setTimeout ( this . _onLoop , 0 ) ) : ( this . _isSetTimeOut = ! 1 , this . _onLoop = function ( b ) { return a . updateRAF ( b ) } , this . _timeOutID = window . requestAnimationFrame ( this . _onLoop ) ) } , updateRAF : function ( a ) { this . game . update ( a ) , this . _timeOutID = window . requestAnimationFrame ( this . _onLoop ) } , updateSetTimeout : function ( ) { this . game . update ( Date . now ( ) ) , this . _timeOutID = window . setTimeout ( this . _onLoop , this . game . time . timeToCall ) } , stop : function ( ) { this . _isSetTimeOut ? clearTimeout ( this . _timeOutID ) : window . cancelAnimationFrame ( this . _timeOutID ) , this . isRunning = ! 1 } , isSetTimeOut : function ( ) { return this . _isSetTimeOut } , isRAF : function ( ) { return this . _isSetTimeOut === ! 1 } } , b . RequestAnimationFrame . prototype . constructor = b . RequestAnimationFrame , b . Math = { PI2 : 2 * Math . PI , fuzzyEqual : function ( a , b , c ) { return "undefined" == typeof c && ( c = 1e-4 ) , Math . abs ( a - b ) < c } , fuzzyLessThan : function ( a , b , c ) { return "undefined" == typeof c && ( c = 1e-4 ) , b + c > a } , fuzzyGreaterThan : function ( a , b , c ) { return "undefined" == typeof c && ( c = 1e-4 ) , a > b - c } , fuzzyCeil : function ( a , b ) { return "undefined" == typeof b && ( b = 1e-4 ) , Math . ceil ( a - b ) } , fuzzyFloor : function ( a , b ) { return "undefined" == typeof b && ( b = 1e-4 ) , Math . floor ( a + b ) } , average : function ( ) { for ( var a = [ ] , b = 0 ; b < arguments . length - 0 ; b ++ ) a [ b ] = arguments [ b + 0 ] ; for ( var c = 0 , d = 0 ; d < a . length ; d ++ ) c += a [ d ] ; return c / a . length } , truncate : function ( a ) { return a > 0 ? Math . floor ( a ) : Math . ceil ( a ) } , shear : function ( a ) { return a % 1 } , snapTo : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . round ( a / b ) , c + a ) } , snapToFloor : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . floor ( a / b ) , c + a ) } , snapToCeil : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . ceil ( a / b ) , c + a ) } , snapToInArray : function ( a , b , c ) { if ( "undefined" == typeof c && ( c = ! 0 ) , c && b . sort ( ) , a < b [ 0 ] ) return b [ 0 ] ; for ( var d = 1 ; b [ d ] < a ; ) d ++ ; var e = b [ d - 1 ] , f = d < b . length ? b [ d ] : Number . POSITIVE _INFINITY ; return a - e >= f - a ? f : e } , roundTo : function ( a , b , c ) { "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = 10 ) ; var d = Math . pow ( c , - b ) ; return Math . round ( a * d ) / d } , floorTo : function ( a , b , c ) { "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = 10 ) ; var d = Math . pow ( c , - b ) ;
} , set : function ( a ) { this . isPaused = a , a ? this . _pauseStartTime = this . game . time . now : this . isPlaying && ( this . _timeNextFrame = this . game . time . now + this . delay ) } } ) , Object . defineProperty ( b . Animation . prototype , "frameTotal" , { get : function ( ) { return this . _frames . length } } ) , Object . defineProperty ( b . Animation . prototype , "frame" , { get : function ( ) { return null !== this . currentFrame ? this . currentFrame . index : this . _frameIndex } , set : function ( b ) { this . currentFrame = this . _frameData . getFrame ( this . _frames [ b ] ) , null !== this . currentFrame && ( this . _frameIndex = b , this . _parent . setTexture ( a . TextureCache [ this . currentFrame . uuid ] ) ) } } ) , b . Animation . generateFrameNames = function ( a , c , d , e , f ) { "undefined" == typeof e && ( e = "" ) ; var g = [ ] , h = "" ; if ( d > c ) for ( var i = c ; d >= i ; i ++ ) h = "number" == typeof f ? b . Utils . pad ( i . toString ( ) , f , "0" , 1 ) : i . toString ( ) , h = a + h + e , g . push ( h ) ; else for ( var i = c ; i >= d ; i -- ) h = "number" == typeof f ? b . Utils . pad ( i . toString ( ) , f , "0" , 1 ) : i . toString ( ) , h = a + h + e , g . push ( h ) ; return g } , b . Frame = function ( a , c , d , e , f , g , h ) { this . index = a , this . x = c , this . y = d , this . width = e , this . height = f , this . name = g , this . uuid = h , this . centerX = Math . floor ( e / 2 ) , this . centerY = Math . floor ( f / 2 ) , this . distance = b . Math . distance ( 0 , 0 , e , f ) , this . rotated = ! 1 , this . rotationDirection = "cw" , this . trimmed = ! 1 , this . sourceSizeW = e , this . sourceSizeH = f , this . spriteSourceSizeX = 0 , this . spriteSourceSizeY = 0 , this . spriteSourceSizeW = 0 , this . spriteSourceSizeH = 0 } , b . Frame . prototype = { setTrim : function ( a , b , c , d , e , f , g ) { this . trimmed = a , a && ( this . width = b , this . height = c , this . sourceSizeW = b , this . sourceSizeH = c , this . centerX = Math . floor ( b / 2 ) , this . centerY = Math . floor ( c / 2 ) , this . spriteSourceSizeX = d , this . spriteSourceSizeY = e , this . spriteSourceSizeW = f , this . spriteSourceSizeH = g ) } , getRect : function ( a ) { return "undefined" == typeof a ? a = new b . Rectangle ( this . x , this . y , this . width , this . height ) : a . setTo ( this . x , this . y , this . width , this . height ) , a } } , b . Frame . prototype . constructor = b . Frame , b . FrameData = function ( ) { this . _frames = [ ] , this . _frameNames = [ ] } , b . FrameData . prototype = { addFrame : function ( a ) { return a . index = this . _frames . length , this . _frames . push ( a ) , "" !== a . name && ( this . _frameNames [ a . name ] = a . index ) , a } , getFrame : function ( a ) { return a > this . _frames . length && ( a = 0 ) , this . _frames [ a ] } , getFrameByName : function ( a ) { return "number" == typeof this . _frameNames [ a ] ? this . _frames [ this . _frameNames [ a ] ] : null } , checkFrameName : function ( a ) { return null == this . _frameNames [ a ] ? ! 1 : ! 0 } , getFrameRange : function ( a , b , c ) { "undefined" == typeof c && ( c = [ ] ) ; for ( var d = a ; b >= d ; d ++ ) c . push ( this . _frames [ d ] ) ; return c } , getFrames : function ( a , b , c ) { if ( "undefined" == typeof b && ( b = ! 0 ) , "undefined" == typeof c && ( c = [ ] ) , "undefined" == typeof a || 0 === a . length ) for ( var d = 0 ; d < this . _frames . length ; d ++ ) c . push ( this . _frames [ d ] ) ; else for ( var d = 0 , e = a . length ; e > d ; d ++ ) b ? c . push ( this . getFrame ( a [ d ] ) ) : c . push ( this . getFrameByName ( a [ d ] ) ) ; return c } , getFrameIndexes : function ( a , b , c ) { if ( "undefined" == typeof b && ( b = ! 0 ) , "undefined" == typeof c && ( c = [ ] ) , "undefined" == typeof a || 0 === a . length ) for ( var d = 0 , e = this . _frames . length ; e > d ; d ++ ) c . push ( this . _frames [ d ] . index ) ; else for ( var d = 0 , e = a . length ; e > d ; d ++ ) b ? c . push ( a [ d ] ) : this . getFrameByName ( a [ d ] ) && c . push ( this . getFrameByName ( a [ d ] ) . index ) ; return c } } , b . FrameData . prototype . constructor = b . FrameData , Object . defineProperty ( b . FrameData . prototype , "total" , { get : function ( ) { return this . _frames . length } } ) , b . AnimationParser = { spriteSheet : function ( c , d , e , f , g , h , i ) { var j = c . cache . getImage ( d ) ; if ( null == j ) return null ; var k = j . width , l = j . height ; 0 >= e && ( e = Math . floor ( - k / Math . min ( - 1 , e ) ) ) , 0 >= f && ( f = Math . floor ( - l / Math . min ( - 1 , f ) ) ) ; var m = Math . round ( k / e ) , n = Math . round ( l / f ) , o = m * n ; if ( - 1 !== g && ( o = g ) , 0 === k || 0 === l || e > k || f > l || 0 === o ) return console . warn ( "Phaser.AnimationParser.spriteSheet: width/height zero or width/height < given frameWidth/frameHeight" ) , null ; for ( var p = new b . FrameData , q = h , r = h , s = 0 ; o > s ; s ++ ) { var t = c . rnd . uuid ( ) ; p . addFrame ( new b . Frame ( s , q , r , e , f , "" , t ) ) , a . TextureCache [ t ] = new a . Texture ( a . BaseTextureCache [ d ] , { x : q , y : r , width : e , height : f } ) , q += e + i , q === k && ( q = h , r += f + i ) } return p } , JSONData : function ( c , d , e ) { if ( ! d . frames ) return console . warn ( "Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array" ) , console . log ( d ) , void 0 ; for ( var f , g = new b . FrameData , h = d . frames , i = 0 ; i < h . length ; i ++ ) { var j = c . rnd . uuid ( ) ; f = g . addFrame ( new b . Frame ( i , h
} , play : function ( a , b , c , d , e ) { if ( a = a || "" , b = b || 0 , "undefined" == typeof c && ( c = this . _volume ) , "undefined" == typeof d && ( d = this . loop ) , "undefined" == typeof e && ( e = ! 0 ) , this . isPlaying !== ! 0 || e !== ! 1 || this . override !== ! 1 ) { if ( this . isPlaying && this . override && ( this . usingWebAudio ? "undefined" == typeof this . _sound . stop ? this . _sound . noteOff ( 0 ) : this . _sound . stop ( 0 ) : this . usingAudioTag && ( this . _sound . pause ( ) , this . _sound . currentTime = 0 ) ) , this . currentMarker = a , "" !== a ) { if ( ! this . markers [ a ] ) return console . warn ( "Phaser.Sound.play: audio marker " + a + " doesn't exist" ) , void 0 ; this . position = this . markers [ a ] . start , this . volume = this . markers [ a ] . volume , this . loop = this . markers [ a ] . loop , this . duration = this . markers [ a ] . duration , this . durationMS = this . markers [ a ] . durationMS , this . _tempMarker = a , this . _tempPosition = this . position , this . _tempVolume = this . volume , this . _tempLoop = this . loop } else this . position = b , this . volume = c , this . loop = d , this . duration = 0 , this . durationMS = 0 , this . _tempMarker = a , this . _tempPosition = b , this . _tempVolume = c , this . _tempLoop = d ; this . usingWebAudio ? this . game . cache . isSoundDecoded ( this . key ) ? ( null == this . _buffer && ( this . _buffer = this . game . cache . getSoundData ( this . key ) ) , this . _sound = this . context . createBufferSource ( ) , this . _sound . buffer = this . _buffer , this . externalNode ? this . _sound . connect ( this . externalNode . input ) : this . _sound . connect ( this . gainNode ) , this . totalDuration = this . _sound . buffer . duration , 0 === this . duration && ( this . duration = this . totalDuration , this . durationMS = 1e3 * this . totalDuration ) , this . loop && "" === a && ( this . _sound . loop = ! 0 ) , "undefined" == typeof this . _sound . start ? this . _sound . noteGrainOn ( 0 , this . position , this . duration ) : this . _sound . start ( 0 , this . position , this . duration ) , this . isPlaying = ! 0 , this . startTime = this . game . time . now , this . currentTime = 0 , this . stopTime = this . startTime + this . durationMS , this . onPlay . dispatch ( this ) ) : ( this . pendingPlayback = ! 0 , this . game . cache . getSound ( this . key ) && this . game . cache . getSound ( this . key ) . isDecoding === ! 1 && this . game . sound . decode ( this . key , this ) ) : this . game . cache . getSound ( this . key ) && this . game . cache . getSound ( this . key ) . locked ? ( this . game . cache . reloadSound ( this . key ) , this . pendingPlayback = ! 0 ) : this . _sound && ( this . game . device . cocoonJS || 4 === this . _sound . readyState ) ? ( this . _sound . play ( ) , this . totalDuration = this . _sound . duration , 0 === this . duration && ( this . duration = this . totalDuration , this . durationMS = 1e3 * this . totalDuration ) , this . _sound . currentTime = this . position , this . _sound . muted = this . _muted , this . _sound . volume = this . _muted ? 0 : this . _volume , this . isPlaying = ! 0 , this . startTime = this . game . time . now , this . currentTime = 0 , this . stopTime = this . startTime + this . durationMS , this . onPlay . dispatch ( this ) ) : this . pendingPlayback = ! 0 } } , restart : function ( a , b , c , d ) { a = a || "" , b = b || 0 , c = c || 1 , "undefined" == typeof d && ( d = ! 1 ) , this . play ( a , b , c , d , ! 0 ) } , pause : function ( ) { this . isPlaying && this . _sound && ( this . stop ( ) , this . isPlaying = ! 1 , this . paused = ! 0 , this . pausedPosition = this . currentTime , this . pausedTime = this . game . time . now , this . onPause . dispatch ( this ) ) } , resume : function ( ) { if ( this . paused && this . _sound ) { if ( this . usingWebAudio ) { var a = this . position + this . pausedPosition / 1e3 ; this . _sound = this . context . createBufferSource ( ) , this . _sound . buffer = this . _buffer , this . externalNode ? this . _sound . connect ( this . externalNode . input ) : this . _sound . connect ( this . gainNode ) , this . loop && ( this . _sound . loop = ! 0 ) , "undefined" == typeof this . _sound . start ? this . _sound . noteGrainOn ( 0 , a , this . duration ) : this . _sound . start ( 0 , a , this . duration ) } else this . _sound . play ( ) ; this . isPlaying = ! 0 , this . paused = ! 1 , this . startTime += this . game . time . now - this . pausedTime , this . onResume . dispatch ( this ) } } , stop : function ( ) { this . isPlaying && this . _sound && ( this . usingWebAudio ? "undefined" == typeof this . _sound . stop ? this . _sound . noteOff ( 0 ) : this . _sound . stop ( 0 ) : this . usingAudioTag && ( this . _sound . pause ( ) , this . _sound . currentTime = 0 ) ) , this . isPlaying = ! 1 ; var a = this . currentMarker ; this . currentMarker = "" , this . onStop . dispatch ( this , a ) } } , b . Sound . prototype . constructor = b . Sound , Object . defineProperty ( b . Sound . prototype , "isDecoding" , { get : function ( ) { return this . game . cache . getSound ( this . key ) . isDecoding } } ) , Object . defineProperty ( b . Sound . prototype , "isDecoded" , { get : function ( ) { return this . game . cache . isSoundDecoded ( this . key ) } } ) , Object . defineProperty ( b . Sound . prototype , "mute" , { get : function ( ) { retur
return a } , setCollisionGroup : function ( a , b ) { var c = this . getCollisionMask ( ) ; if ( "undefined" == typeof b ) for ( var d = this . data . shapes . length - 1 ; d >= 0 ; d -- ) this . data . shapes [ d ] . collisionGroup = a . mask , this . data . shapes [ d ] . collisionMask = c ; else b . collisionGroup = a . mask , shapes . collisionMask = c } , clearCollision : function ( a , b , c ) { if ( "undefined" == typeof c ) for ( var d = this . data . shapes . length - 1 ; d >= 0 ; d -- ) a && ( this . data . shapes [ d ] . collisionGroup = null ) , b && ( this . data . shapes [ d ] . collisionMask = null ) ; else a && ( shapes . collisionGroup = null ) , b && ( shapes . collisionMask = null ) ; a && ( this . collidesWith . length = 0 ) } , collides : function ( a , b , c , d ) { if ( Array . isArray ( a ) ) for ( var e = 0 ; e < a . length ; e ++ ) - 1 === this . collidesWith . indexOf ( a [ e ] ) && ( this . collidesWith . push ( a [ e ] ) , b && this . createGroupCallback ( a [ e ] , b , c ) ) ; else - 1 === this . collidesWith . indexOf ( a ) && ( this . collidesWith . push ( a ) , b && this . createGroupCallback ( a , b , c ) ) ; var f = this . getCollisionMask ( ) ; if ( "undefined" == typeof d ) for ( var e = this . data . shapes . length - 1 ; e >= 0 ; e -- ) this . data . shapes [ e ] . collisionMask = f ; else d . collisionMask = f } , adjustCenterOfMass : function ( ) { this . data . adjustCenterOfMass ( ) } , applyDamping : function ( a ) { this . data . applyDamping ( a ) } , applyForce : function ( a , b , c ) { this . data . applyForce ( a , [ this . px2p ( b ) , this . px2p ( c ) ] ) } , setZeroForce : function ( ) { this . data . setZeroForce ( ) } , setZeroRotation : function ( ) { this . data . angularVelocity = 0 } , setZeroVelocity : function ( ) { this . data . velocity [ 0 ] = 0 , this . data . velocity [ 1 ] = 0 } , setZeroDamping : function ( ) { this . data . damping = 0 , this . data . angularDamping = 0 } , toLocalFrame : function ( a , b ) { return this . data . toLocalFrame ( a , b ) } , toWorldFrame : function ( a , b ) { return this . data . toWorldFrame ( a , b ) } , rotateLeft : function ( a ) { this . data . angularVelocity = this . px2p ( - a ) } , rotateRight : function ( a ) { this . data . angularVelocity = this . px2p ( a ) } , moveForward : function ( a ) { var b = this . px2pi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . velocity [ 0 ] = b * Math . cos ( c ) , this . data . velocity [ 1 ] = b * Math . sin ( c ) } , moveBackward : function ( a ) { var b = this . px2pi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . velocity [ 0 ] = - ( b * Math . cos ( c ) ) , this . data . velocity [ 1 ] = - ( b * Math . sin ( c ) ) } , thrust : function ( a ) { var b = this . px2pi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . force [ 0 ] += b * Math . cos ( c ) , this . data . force [ 1 ] += b * Math . sin ( c ) } , reverse : function ( a ) { var b = this . px2pi ( - a ) , c = this . data . angle + Math . PI / 2 ; this . data . force [ 0 ] -= b * Math . cos ( c ) , this . data . force [ 1 ] -= b * Math . sin ( c ) } , moveLeft : function ( a ) { this . data . velocity [ 0 ] = this . px2pi ( - a ) } , moveRight : function ( a ) { this . data . velocity [ 0 ] = this . px2pi ( a ) } , moveUp : function ( a ) { this . data . velocity [ 1 ] = this . px2pi ( - a ) } , moveDown : function ( a ) { this . data . velocity [ 1 ] = this . px2pi ( a ) } , preUpdate : function ( ) { } , postUpdate : function ( ) { this . sprite . x = this . p2pxi ( this . data . position [ 0 ] ) , this . sprite . y = this . p2pxi ( this . data . position [ 1 ] ) , this . fixedRotation || ( this . sprite . rotation = this . data . angle ) } , reset : function ( a , b , c , d ) { "undefined" == typeof c && ( c = ! 1 ) , "undefined" == typeof d && ( d = ! 1 ) , this . setZeroForce ( ) , this . setZeroVelocity ( ) , this . setZeroRotation ( ) , c && this . setZeroDamping ( ) , d && ( this . mass = 1 ) , this . x = a , this . y = b } , addToWorld : function ( ) { this . data . world !== this . game . physics . world && this . game . physics . addBody ( this ) } , removeFromWorld : function ( ) { this . data . world === this . game . physics . world && this . game . physics . removeBody ( this ) } , destroy : function ( ) { this . removeFromWorld ( ) , this . clearShapes ( ) , this . sprite = null } , clearShapes : function ( ) { for ( var a = this . data . shapes . length - 1 ; a >= 0 ; a -- ) { var b = this . data . shapes [ a ] ; this . data . removeShape ( b ) } } , addShape : function ( a , b , c , d ) { return "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = 0 ) , "undefined" == typeof d && ( d = 0 ) , this . data . addShape ( a , [ this . px2pi ( b ) , this . px2pi ( c ) ] , d ) , a } , addCircle : function ( a , b , c , d ) { var e = new p2 . Circle ( this . px2p ( a ) ) ; return this . addShape ( e , b , c , d ) } , addRectangle : function ( a , b , c , d , e ) { var f = new p2 . Rectangle ( this . px2p ( a ) , this . px2p ( b ) ) ; return this . addShape ( f , c , d , e ) } , addPlane : function ( a , b , c ) { var d = new p2 . Plane ; return this . addShape ( d , a , b , c ) } , addParticle : function ( a , b , c ) { var d = new p2 . Particle ; return this . addShape ( d , a , b , c ) } , addLine : function ( a , b , c , d ) { var e = new p2 . Line ( this . px2p ( a ) ) ; return this . addShape ( e , b , c , d ) } , addCapsule : function ( a , b , c , d , e ) { var f = new p2 . Capsule ( this . px2p ( a ) , b ) ; return this . addShape ( f , c , d , e ) } , addPolygon : function ( a , b ) { a = a || { }
} } , b . TilemapLayer . prototype . renderDebug = function ( ) { this . _tx = this . _dx , this . _ty = this . _dy , this . context . strokeStyle = this . debugColor , this . context . fillStyle = this . debugFillColor ; for ( var a = this . _startY , b = this . _startY + this . _maxY ; b > a ; a ++ ) { this . _column = this . layer . data [ a ] ; for ( var c = this . _startX , d = this . _startX + this . _maxX ; d > c ; c ++ ) { var e = this . _column [ c ] ; e && ( e . faceTop || e . faceBottom || e . faceLeft || e . faceRight ) && ( this . _tx = Math . floor ( this . _tx ) , this . debugFill && this . context . fillRect ( this . _tx , this . _ty , this . _cw , this . _ch ) , this . context . beginPath ( ) , e . faceTop && ( this . context . moveTo ( this . _tx , this . _ty ) , this . context . lineTo ( this . _tx + this . _cw , this . _ty ) ) , e . faceBottom && ( this . context . moveTo ( this . _tx , this . _ty + this . _ch ) , this . context . lineTo ( this . _tx + this . _cw , this . _ty + this . _ch ) ) , e . faceLeft && ( this . context . moveTo ( this . _tx , this . _ty ) , this . context . lineTo ( this . _tx , this . _ty + this . _ch ) ) , e . faceRight && ( this . context . moveTo ( this . _tx + this . _cw , this . _ty ) , this . context . lineTo ( this . _tx + this . _cw , this . _ty + this . _ch ) ) , this . context . stroke ( ) ) , e && ( e . collisionCallback || e . layer . callbacks [ e . index ] ) && ( this . context . fillStyle = this . debugCallbackColor , this . context . fillRect ( this . _tx , this . _ty , this . _cw , this . _ch ) , this . context . fillStyle = this . debugFillColor ) , this . _tx += this . map . tileWidth } this . _tx = this . _dx , this . _ty += this . map . tileHeight } } , Object . defineProperty ( b . TilemapLayer . prototype , "scrollX" , { get : function ( ) { return this . _x } , set : function ( a ) { a !== this . _x && a >= 0 && this . layer . widthInPixels > this . width && ( this . _x = a , this . _x > this . layer . widthInPixels - this . width && ( this . _x = this . layer . widthInPixels - this . width ) , this . _startX = this . game . math . floor ( this . _x / this . map . tileWidth ) , this . _startX < 0 && ( this . _startX = 0 ) , this . _startX + this . _maxX > this . layer . width && ( this . _startX = this . layer . width - this . _maxX ) , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . TilemapLayer . prototype , "scrollY" , { get : function ( ) { return this . _y } , set : function ( a ) { a !== this . _y && a >= 0 && this . layer . heightInPixels > this . height && ( this . _y = a , this . _y > this . layer . heightInPixels - this . height && ( this . _y = this . layer . heightInPixels - this . height ) , this . _startY = this . game . math . floor ( this . _y / this . map . tileHeight ) , this . _startY < 0 && ( this . _startY = 0 ) , this . _startY + this . _maxY > this . layer . height && ( this . _startY = this . layer . height - this . _maxY ) , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . TilemapLayer . prototype , "collisionWidth" , { get : function ( ) { return this . _cw } , set : function ( a ) { this . _cw = a , this . dirty = ! 0 } } ) , Object . defineProperty ( b . TilemapLayer . prototype , "collisionHeight" , { get : function ( ) { return this . _ch } , set : function ( a ) { this . _ch = a , this . dirty = ! 0 } } ) , b . TilemapParser = { tileset : function ( a , c , d , e , f , g , h , i , j ) { var k = a . cache . getTilesetImage ( c ) ; if ( null === k ) return console . warn ( "Phaser.TilemapParser.tileSet: Invalid image key given" ) , null ; var l = k . width , m = k . height ; return - 1 === h && ( h = Math . round ( l / d ) ) , - 1 === i && ( i = Math . round ( m / e ) ) , - 1 === j && ( j = h * i ) , 0 === l || 0 === m || d > l || e > m || 0 === j ? ( console . warn ( "Phaser.TilemapParser.tileSet: width/height zero or width/height < given tileWidth/tileHeight" ) , null ) : new b . Tileset ( k , c , d , e , f , g , h , i , j ) } , parse : function ( a , c ) { var d = a . cache . getTilemapData ( c ) ; return d ? d . format === b . Tilemap . CSV ? this . parseCSV ( d . data ) : d . format === b . Tilemap . TILED _JSON ? this . parseTiledJSON ( d . data ) : void 0 : this . getEmptyData ( ) } , parseCSV : function ( a ) { a = a . trim ( ) ; for ( var b = [ ] , c = a . split ( "\n" ) , d = c . length , e = 0 , f = 0 ; f < c . length ; f ++ ) { b [ f ] = [ ] ; for ( var g = c [ f ] . split ( "," ) , h = 0 ; h < g . length ; h ++ ) b [ f ] [ h ] = parseInt ( g [ h ] , 10 ) ; 0 === e && ( e = g . length ) } return [ { name : "csv" , width : e , height : d , alpha : 1 , visible : ! 0 , indexes : [ ] , tileMargin : 0 , tileSpacing : 0 , data : b } ] } , getEmptyData : function ( ) { var a = { } ; a . width = 0 , a . height = 0 , a . tileWidth = 0 , a . tileHeight = 0 , a . orientation = "orthogonal" , a . version = "1" , a . properties = { } , a . widthInPixels = 0 , a . heightInPixels = 0 ; var b = [ ] , c = { name : "layer" , x : 0 , y : 0 , width : 0 , height : 0 , widthInPixels : 0 , heightInPixels : 0 , alpha : 1 , visible : ! 0 , properties : { } , indexes : [ ] , callbacks : [ ] , data : [ ] } ; return b . push ( c ) , a . layers = b , a . images = [ ] , a . objects = { } , a . collision = { } , a . tilesets = [ ] , a . tiles = [ ] , a } , parseTiledJSON : function ( a ) { if ( "orthogonal" !== a . orientation ) return console . warn ( "TilemapParser.parseTiledJSON: Only orthogonal map types are supported in this version of Phaser" ) , null ; var c = { } ; c . width = a . width , c . height = a . height ,