forked from sent/waves
58 lines
1.8 MiB
58 lines
1.8 MiB
!function(a){if("object"==typeof exports)module.exports=a();else{var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.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||a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){function d(){}var e=a("./Scalar");b.exports=d,d.lineInt=function(a,b,c){c=c||0;var d,f,g,h,i,j,k,l=[0,0];return d=a[1][1]-a[0][1],f=a[0][0]-a[1][0],g=d*a[0][0]+f*a[0][1],h=b[1][1]-b[0][1],i=b[0][0]-b[1][0],j=h*b[0][0]+i*b[0][1],k=d*i-h*f,e.eq(k,0,c)||(l[0]=(i*g-f*j)/k,l[1]=(d*j-h*g)/k),l},d.segmentsIntersect=function(a,b,c,d){var e=b[0]-a[0],f=b[1]-a[1],g=d[0]-c[0],h=d[1]-c[1];if(g*f-h*e==0)return!1;var i=(e*(c[1]-a[1])+f*(a[0]-c[0]))/(g*f-h*e),j=(g*(a[1]-c[1])+h*(c[0]-a[0]))/(h*e-g*f);return i>=0&&i<=1&&j>=0&&j<=1}},{"./Scalar":4}],2:[function(a,b,c){function d(){}b.exports=d,d.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},d.left=function(a,b,c){return d.area(a,b,c)>0},d.leftOn=function(a,b,c){return d.area(a,b,c)>=0},d.right=function(a,b,c){return d.area(a,b,c)<0},d.rightOn=function(a,b,c){return d.area(a,b,c)<=0};var e=[],f=[];d.collinear=function(a,b,c,g){if(g){var h=e,i=f;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=c[0]-b[0],i[1]=c[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]);return Math.acos(j/(k*l))<g}return 0==d.area(a,b,c)},d.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{}],3:[function(a,b,c){function d(){this.vertices=[]}function e(a,b,c,d,e){e=e||0;var f=b[1]-a[1],g=a[0]-b[0],i=f*a[0]+g*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*g;return h.eq(m,0,e)?[0,0]:[(k*i-g*l)/m,(f*l-j*i)/m]}var f=a("./Line"),g=a("./Point"),h=a("./Scalar");b.exports=d,d.prototype.at=function(a){var b=this.vertices,c=b.length;return b[a<0?a%c+c:a%c]},d.prototype.first=function(){return this.vertices[0]},d.prototype.last=function(){return this.vertices[this.vertices.length-1]},d.prototype.clear=function(){this.vertices.length=0},d.prototype.append=function(a,b,c){if(void 0===b)throw new Error("From is not given!");if(void 0===c)throw new Error("To is not given!");if(c-1<b)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(b<0)throw new Error("lol3");for(var d=b;d<c;d++)this.vertices.push(a.vertices[d])},d.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;c<this.vertices.length;++c)(b[c][1]<b[a][1]||b[c][1]==b[a][1]&&b[c][0]>b[a][0])&&(a=c);g.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},d.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},d.prototype.isReflex=function(a){return g.right(this.at(a-1),this.at(a),this.at(a+1))};var i=[],j=[];d.prototype.canSee=function(a,b){var c,d,e=i,h=j;if(g.leftOn(this.at(a+1),this.at(a),this.at(b))&&g.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=g.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&g.leftOn(this.at(a),this.at(b),this.at(k+1))&&g.rightOn(this.at(a),this.at(b),this.at(k))&&(e[0]=this.at(a),e[1]=this.at(b),h[0]=this.at(k),h[1]=this.at(k+1),c=f.lineInt(e,h),g.sqdist(this.at(a),c)<d))return!1;return!0},d.prototype.copy=function(a,b,c){var e=c||new d;if(e.clear(),a<b)for(var f=a;f<=b;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;f<=b;f++)e.vertices.push(this.vertices[f]);for(var f=a;f<this.vertices.length;f++)e.vertices.push(this.vertices[f])}return e},d.prototype.getCutEdges=function(){for(var a=[],b=[],c=[],e=new d,f=Number.MAX_VALUE,g=0;g<this.vertices.length;++g)if(this.isReflex(g))for(var h=0;h<this.vertices.length;++h)if(this.canSee(g,h)){b=this.copy(g,h,e).getCutEdges(),c=this.copy(h,g,e).getCutEdges();for(var i=0;i<c.length;i++)b.push(c[i]);b.length<f&&(a=b,f=b.length,a.push([this.at(g),this.at(h)]))}return a},d.prototype.decomp=function(){var a=this.getCutEdges();return a.length>0?this.slice(a):[this]},d.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;c<a.length;c++)for(var d=a[c],e=0;e<b.length;e++){var f=b[e],g=f.slice(d);if(g){b.splice(e,1),b.push(g[0],g[1]);break}}return b}var d=a,c=this.vertices.indexOf(d[0]),e=this.vertices.indexOf(d[1]);return-1!=c&&-1!=e&&[this.copy(c,e),this.copy(e,c)]},d.prototype.isSimple=function(){for(var a=this.vertices,b=0;b<a.length-1;b++)for(var c=0;c<b-1;c++)if(f.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;b<a.length-2;b++)if(f.segmentsIntersect(a[0],a[a.length-1],a[b],a[b+1]))return!1;return!0},d.prototype.quickDecomp=function(a,b,c,f,h,i){h=h||100,i=i||0,f=f||25,a=void 0!==a?a:[],b=b||[],c=c||[];var j=[0,0],k=[0,0],l=[0,0],m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=new d,u=new d,v=this,w=this.vertices;if(w.length<3)return a;if(++i>h)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;x<this.vertices.length;++x)if(v.isReflex(x)){b.push(v.vertices[x]),m=n=Number.MAX_VALUE;for(var y=0;y<this.vertices.length;++y)g.left(v.at(x-1),v.at(x),v.at(y))&&g.rightOn(v.at(x-1),v.at(x),v.at(y-1))&&(l=e(v.at(x-1),v.at(x),v.at(y),v.at(y-1)),g.right(v.at(x+1),v.at(x),l)&&(o=g.sqdist(v.vertices[x],l))<n&&(n=o,k=l,r=y)),g.left(v.at(x+1),v.at(x),v.at(y+1))&&g.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=e(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),g.left(v.at(x-1),v.at(x),l)&&(o=g.sqdist(v.vertices[x],l))<m&&(m=o,j=l,q=y));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,c.push(l),x<q?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,q<r)return a;for(var y=r;y<=q;++y)g.leftOn(v.at(x-1),v.at(x),v.at(y))&&g.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=g.sqdist(v.at(x),v.at(y)))<p&&(p=o,s=y%this.vertices.length);x<s?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length<u.vertices.length?(t.quickDecomp(a,b,c,f,h,i),u.quickDecomp(a,b,c,f,h,i)):(u.quickDecomp(a,b,c,f,h,i),t.quickDecomp(a,b,c,f,h,i)),a}return a.push(this),a},d.prototype.removeCollinearPoints=function(a){for(var b=0,c=this.vertices.length-1;this.vertices.length>3&&c>=0;--c)g.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(a,b,c){function d(){}b.exports=d,d.eq=function(a,b,c){return c=c||0,Math.abs(a-b)<c}},{}],5:[function(a,b,c){b.exports={Polygon:a("./Polygon"),Point:a("./Point")}},{"./Point":2,"./Polygon":3}],6:[function(a,b,c){b.exports={name:"p2",version:"0.7.0",description:"A JavaScript 2D physics engine.",author:"Stefan Hedman <schteppe@gmail.com> (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"^0.4.5","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{}],7:[function(a,b,c){function d(a){this.lowerBound=e.create(),a&&a.lowerBound&&e.copy(this.lowerBound,a.lowerBound),this.upperBound=e.create(),a&&a.upperBound&&e.copy(this.upperBound,a.upperBound)}var e=a("../math/vec2");a("../utils/Utils");b.exports=d;var f=e.create();d.prototype.setFromPoints=function(a,b,c,d){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?e.rotate(g,a[0],c):e.copy(g,a[0]),e.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;k<a.length;k++){var l=a[k];if(0!==c){var m=l[0],n=l[1];f[0]=i*m-j*n,f[1]=j*m+i*n,l=f}for(var o=0;o<2;o++)l[o]>h[o]&&(h[o]=l[o]),l[o]<g[o]&&(g[o]=l[o])}b&&(e.add(this.lowerBound,this.lowerBound,b),e.add(this.upperBound,this.upperBound,b)),d&&(this.lowerBound[0]-=d,this.lowerBound[1]-=d,this.upperBound[0]+=d,this.upperBound[1]+=d)},d.prototype.copy=function(a){e.copy(this.lowerBound,a.lowerBound),e.copy(this.upperBound,a.upperBound)},d.prototype.extend=function(a){for(var b=2;b--;){var c=a.lowerBound[b];this.lowerBound[b]>c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]<d&&(this.upperBound[b]=d)}},d.prototype.overlaps=function(a){var b=this.lowerBound,c=this.upperBound,d=a.lowerBound,e=a.upperBound;return(d[0]<=c[0]&&c[0]<=e[0]||b[0]<=e[0]&&e[0]<=c[0])&&(d[1]<=c[1]&&c[1]<=e[1]||b[1]<=e[1]&&e[1]<=c[1])},d.prototype.containsPoint=function(a){var b=this.lowerBound,c=this.upperBound;return b[0]<=a[0]&&a[0]<=c[0]&&b[1]<=a[1]&&a[1]<=c[1]},d.prototype.overlapsRay=function(a){var b=1/a.direction[0],c=1/a.direction[1],d=(this.lowerBound[0]-a.from[0])*b,e=(this.upperBound[0]-a.from[0])*b,f=(this.lowerBound[1]-a.from[1])*c,g=(this.upperBound[1]-a.from[1])*c,h=Math.max(Math.max(Math.min(d,e),Math.min(f,g))),i=Math.min(Math.min(Math.max(d,e),Math.max(f,g)));return i<0?-1:h>i?-1:h}},{"../math/vec2":30,"../utils/Utils":57}],8:[function(a,b,c){function d(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=d.AABB}var e=a("../math/vec2"),f=a("../objects/Body");b.exports=d,d.AABB=1,d.BOUNDING_CIRCLE=2,d.prototype.setWorld=function(a){this.world=a},d.prototype.getCollisionPairs=function(a){};var g=e.create();d.boundingRadiusCheck=function(a,b){e.sub(g,a.position,b.position);var c=e.squaredLength(g),d=a.boundingRadius+b.boundingRadius;return c<=d*d},d.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},d.prototype.boundingVolumeCheck=function(a,b){var c;switch(this.boundingVolumeType){case d.BOUNDING_CIRCLE:c=d.boundingRadiusCheck(a,b);break;case d.AABB:c=d.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return c},d.canCollide=function(a,b){var c=f.KINEMATIC,d=f.STATIC;return(a.type!==d||b.type!==d)&&(!(a.type===c&&b.type===d||a.type===d&&b.type===c)&&((a.type!==c||b.type!==c)&&((a.sleepState!==f.SLEEPING||b.sleepState!==f.SLEEPING)&&!(a.sleepState===f.SLEEPING&&b.type===d||b.sleepState===f.SLEEPING&&a.type===d))))},d.NAIVE=1,d.SAP=2},{"../math/vec2":30,"../objects/Body":31}],9:[function(a,b,c){function d(){e.call(this,e.NAIVE)}var e=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var d=0,f=b.length;d!==f;d++)for(var g=b[d],h=0;h<d;h++){var i=b[h];e.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c},d.prototype.aabbQuery=function(a,b,c){c=c||[];for(var d=a.bodies,e=0;e<d.length;e++){var f=d[e];f.aabbNeedsUpdate&&f.updateAABB(),f.aabb.overlaps(b)&&c.push(f)}return c}},{"../collision/Broadphase":8,"../math/vec2":30,"../shapes/Circle":39,"../shapes/Particle":43,"../shapes/Plane":44,"../shapes/Shape":45}],10:[function(a,b,c){function d(){this.contactEquations=[],this.frictionEquations=[],this.enableFriction=!0,this.enabledEquations=!0,this.slipForce=10,this.frictionCoefficient=.3,this.surfaceVelocity=0,this.contactEquationPool=new k({size:32}),this.frictionEquationPool=new l({size:64}),this.restitution=0,this.stiffness=n.DEFAULT_STIFFNESS,this.relaxation=n.DEFAULT_RELAXATION,this.frictionStiffness=n.DEFAULT_STIFFNESS,this.frictionRelaxation=n.DEFAULT_RELAXATION,this.enableFrictionReduction=!0,this.collidingBodiesLastStep=new m,this.contactSkinSize=.01}function e(a,b){g.set(a.vertices[0],.5*-b.length,-b.radius),g.set(a.vertices[1],.5*b.length,-b.radius),g.set(a.vertices[2],.5*b.length,b.radius),g.set(a.vertices[3],.5*-b.length,b.radius)}function f(a,b,c,d){for(var e=T,f=U,j=V,k=W,l=a,m=b.vertices,n=null,o=0;o!==m.length+1;o++){var p=m[o%m.length],q=m[(o+1)%m.length];g.rotate(e,p,d),g.rotate(f,q,d),i(e,e,c),i(f,f,c),h(j,e,l),h(k,f,l);var r=g.crossLength(j,k);if(null===n&&(n=r),r*n<=0)return!1;n=r}return!0}var g=a("../math/vec2"),h=g.sub,i=g.add,j=g.dot,k=(a("../utils/Utils"),a("../utils/ContactEquationPool")),l=a("../utils/FrictionEquationPool"),m=a("../utils/TupleDictionary"),n=a("../equations/Equation"),o=(a("../equations/ContactEquation"),a("../equations/FrictionEquation"),a("../shapes/Circle")),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Box"));b.exports=d;var s=g.fromValues(0,1),t=g.fromValues(0,0),u=g.fromValues(0,0),v=g.fromValues(0,0),w=g.fromValues(0,0),x=g.fromValues(0,0),y=g.fromValues(0,0),z=g.fromValues(0,0),A=g.fromValues(0,0),B=g.fromValues(0,0),C=g.fromValues(0,0),D=g.fromValues(0,0),E=g.fromValues(0,0),F=g.fromValues(0,0),G=g.fromValues(0,0),H=g.fromValues(0,0),I=g.fromValues(0,0),J=g.fromValues(0,0),K=g.fromValues(0,0),L=[],M=g.create(),N=g.create();d.prototype.bodiesOverlap=function(a,b){for(var c=M,d=N,e=0,f=a.shapes.length;e!==f;e++){var g=a.shapes[e];a.toWorldFrame(c,g.position);for(var h=0,i=b.shapes.length;h!==i;h++){var j=b.shapes[h];if(b.toWorldFrame(d,j.position),this[g.type|j.type](a,g,c,g.angle+a.angle,b,j,d,j.angle+b.angle,!0))return!0}}return!1},d.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},d.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=this.contactEquations,b=a.length;b--;){var c=a[b],d=c.bodyA.id,e=c.bodyB.id;this.collidingBodiesLastStep.set(d,e,!0)}for(var f=this.contactEquations,g=this.frictionEquations,h=0;h<f.length;h++)this.contactEquationPool.release(f[h]);for(var h=0;h<g.length;h++)this.frictionEquationPool.release(g[h]);this.contactEquations.length=this.frictionEquations.length=0},d.prototype.createContactEquation=function(a,b,c,d){var e=this.contactEquationPool.get();return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.restitution=this.restitution,e.firstImpact=!this.collidedLastStep(a,b),e.stiffness=this.stiffness,e.relaxation=this.relaxation,e.needsUpdate=!0,e.enabled=this.enabledEquations,e.offset=this.contactSkinSize,e},d.prototype.createFrictionEquation=function(a,b,c,d){var e=this.frictionEquationPool.get();return e.bodyA=a,e.bodyB=b,e.shapeA=c,e.shapeB=d,e.setSlipForce(this.slipForce),e.frictionCoefficient=this.frictionCoefficient,e.relativeVelocity=this.surfaceVelocity,e.enabled=this.enabledEquations,e.needsUpdate=!0,e.stiffness=this.frictionStiffness,e.relaxation=this.frictionRelaxation,e.contactEquations.length=0,e},d.prototype.createFrictionFromContact=function(a){var b=this.createFrictionEquation(a.bodyA,a.bodyB,a.shapeA,a.shapeB);return g.copy(b.contactPointA,a.contactPointA),g.copy(b.contactPointB,a.contactPointB),g.rotate90cw(b.t,a.normalA),b.contactEquations.push(a),b},d.prototype.createFrictionFromAverage=function(a){var b=this.contactEquations[this.contactEquations.length-1],c=this.createFrictionEquation(b.bodyA,b.bodyB,b.shapeA,b.shapeB),d=b.bodyA;b.bodyB;g.set(c.contactPointA,0,0),g.set(c.contactPointB,0,0),g.set(c.t,0,0);for(var e=0;e!==a;e++)b=this.contactEquations[this.contactEquations.length-1-e],b.bodyA===d?(g.add(c.t,c.t,b.normalA),g.add(c.contactPointA,c.contactPointA,b.contactPointA),g.add(c.contactPointB,c.contactPointB,b.contactPointB)):(g.sub(c.t,c.t,b.normalA),g.add(c.contactPointA,c.contactPointA,b.contactPointB),g.add(c.contactPointB,c.contactPointB,b.contactPointA)),c.contactEquations.push(b);var f=1/a;return g.scale(c.contactPointA,c.contactPointA,f),g.scale(c.contactPointB,c.contactPointB,f),g.normalize(c.t,c.t),g.rotate90cw(c.t,c.t),c},d.prototype[q.LINE|q.CONVEX]=d.prototype.convexLine=function(a,b,c,d,e,f,g,h,i){return!i&&0},d.prototype[q.LINE|q.BOX]=d.prototype.lineBox=function(a,b,c,d,e,f,g,h,i){return!i&&0};var O=new r({width:1,height:1}),P=g.create();d.prototype[q.CAPSULE|q.CONVEX]=d.prototype[q.CAPSULE|q.BOX]=d.prototype.convexCapsule=function(a,b,c,d,f,h,i,j,k){var l=P;g.set(l,h.length/2,0),g.rotate(l,l,j),g.add(l,l,i);var m=this.circleConvex(f,h,l,j,a,b,c,d,k,h.radius);g.set(l,-h.length/2,0),g.rotate(l,l,j),g.add(l,l,i);var n=this.circleConvex(f,h,l,j,a,b,c,d,k,h.radius);if(k&&(m||n))return!0;var o=O;return e(o,h),this.convexConvex(a,b,c,d,f,o,i,j,k)+m+n},d.prototype[q.CAPSULE|q.LINE]=d.prototype.lineCapsule=function(a,b,c,d,e,f,g,h,i){return!i&&0};var Q=g.create(),R=g.create(),S=new r({width:1,height:1});d.prototype[q.CAPSULE|q.CAPSULE]=d.prototype.capsuleCapsule=function(a,b,c,d,f,h,i,j,k){for(var l,m=Q,n=R,o=0,p=0;p<2;p++){g.set(m,(0===p?-1:1)*b.length/2,0),g.rotate(m,m,d),g.add(m,m,c);for(var q=0;q<2;q++){g.set(n,(0===q?-1:1)*h.length/2,0),g.rotate(n,n,j),g.add(n,n,i),this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var r=this.circleCircle(a,b,m,d,f,h,n,j,k,b.radius,h.radius);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&r)return!0;o+=r}}this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var s=S;e(s,b);var t=this.convexCapsule(a,s,c,d,f,h,i,j,k);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&t)return!0;if(o+=t,this.enableFrictionReduction){var l=this.enableFriction;this.enableFriction=!1}e(s,h);var u=this.convexCapsule(f,s,i,j,a,b,c,d,k);return this.enableFrictionReduction&&(this.enableFriction=l),!(!k||!u)||(o+=u,this.enableFrictionReduction&&o&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(o)),o)},d.prototype[q.LINE|q.LINE]=d.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return!i&&0},d.prototype[q.PLANE|q.LINE]=d.prototype.planeLine=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L,H=0;g.set(n,-f.length/2,0),g.set(o,f.length/2,0),g.rotate(p,n,l),g.rotate(q,o,l),i(p,p,k),i(q,q,k),g.copy(n,p),g.copy(o,q),h(r,o,n),g.normalize(C,r),g.rotate90cw(F,C),g.rotate(E,s,d),G[0]=n,G[1]=o;for(var I=0;I<G.length;I++){var J=G[I];h(D,J,c);var K=j(D,E);if(K<0){if(m)return!0;var M=this.createContactEquation(a,e,b,f);H++,g.copy(M.normalA,E),g.normalize(M.normalA,M.normalA),g.scale(D,E,K),h(M.contactPointA,J,D),h(M.contactPointA,M.contactPointA,a.position),h(M.contactPointB,J,k),i(M.contactPointB,M.contactPointB,k),h(M.contactPointB,M.contactPointB,e.position),this.contactEquations.push(M),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(M))}}return!m&&(this.enableFrictionReduction||H&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(H)),H)},d.prototype[q.PARTICLE|q.CAPSULE]=d.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},d.prototype[q.CIRCLE|q.LINE]=d.prototype.circleLine=function(a,b,c,d,e,f,k,l,m,n,o){var n=n||0,o=void 0!==o?o:b.radius,p=t,q=u,r=v,s=w,H=x,I=y,J=z,K=A,M=B,N=C,O=D,P=E,Q=F,R=G,S=L;g.set(K,-f.length/2,0),g.set(M,f.length/2,0),g.rotate(N,K,l),g.rotate(O,M,l),i(N,N,k),i(O,O,k),g.copy(K,N),g.copy(M,O),h(I,M,K),g.normalize(J,I),g.rotate90cw(H,J),h(P,c,K);var T=j(P,H);h(s,K,k),h(Q,c,k);var U=o+n;if(Math.abs(T)<U){g.scale(p,H,T),h(r,c,p),g.scale(q,H,j(H,Q)),g.normalize(q,q),g.scale(q,q,n),i(r,r,q);var V=j(J,r),W=j(J,K),X=j(J,M);if(V>W&&V<X){if(m)return!0;var Y=this.createContactEquation(a,e,b,f);return g.scale(Y.normalA,p,-1),g.normalize(Y.normalA,Y.normalA),g.scale(Y.contactPointA,Y.normalA,o),i(Y.contactPointA,Y.contactPointA,c),h(Y.contactPointA,Y.contactPointA,a.position),h(Y.contactPointB,r,k),i(Y.contactPointB,Y.contactPointB,k),h(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}S[0]=K,S[1]=M;for(var Z=0;Z<S.length;Z++){var $=S[Z];if(h(P,$,c),g.squaredLength(P)<Math.pow(U,2)){if(m)return!0;var Y=this.createContactEquation(a,e,b,f);return g.copy(Y.normalA,P),g.normalize(Y.normalA,Y.normalA),g.scale(Y.contactPointA,Y.normalA,o),i(Y.contactPointA,Y.contactPointA,c),h(Y.contactPointA,Y.contactPointA,a.position),h(Y.contactPointB,$,k),g.scale(R,Y.normalA,-n),i(Y.contactPointB,Y.contactPointB,R),i(Y.contactPointB,Y.contactPointB,k),h(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}return 0},d.prototype[q.CIRCLE|q.CAPSULE]=d.prototype.circleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius)},d.prototype[q.CIRCLE|q.CONVEX]=d.prototype[q.CIRCLE|q.BOX]=d.prototype.circleConvex=function(a,b,c,d,e,j,k,l,m,n){for(var n="number"==typeof n?n:b.radius,o=t,p=u,q=v,r=w,s=x,y=C,z=D,A=F,B=G,E=H,J=I,K=!1,L=Number.MAX_VALUE,M=j.vertices,N=0;N!==M.length+1;N++){var O=M[N%M.length],P=M[(N+1)%M.length];if(g.rotate(o,O,l),g.rotate(p,P,l),i(o,o,k),i(p,p,k),h(q,p,o),g.normalize(r,q),g.rotate90cw(s,r),g.scale(B,s,-b.radius),i(B,B,c),f(B,j,k,l)){g.sub(E,o,B);var Q=Math.abs(g.dot(E,s));Q<L&&(g.copy(J,B),L=Q,g.scale(A,s,Q),g.add(A,A,B),K=!0)}}if(K){if(m)return!0;var R=this.createContactEquation(a,e,b,j);return g.sub(R.normalA,J,c),g.normalize(R.normalA,R.normalA),g.scale(R.contactPointA,R.normalA,n),i(R.contactPointA,R.contactPointA,c),h(R.contactPointA,R.contactPointA,a.position),h(R.contactPointB,A,k),i(R.contactPointB,R.contactPointB,k),h(R.contactPointB,R.contactPointB,e.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}if(n>0)for(var N=0;N<M.length;N++){var S=M[N];if(g.rotate(z,S,l),i(z,z,k),h(y,z,c),g.squaredLength(y)<Math.pow(n,2)){if(m)return!0;var R=this.createContactEquation(a,e,b,j);return g.copy(R.normalA,y),g.normalize(R.normalA,R.normalA),g.scale(R.contactPointA,R.normalA,n),i(R.contactPointA,R.contactPointA,c),h(R.contactPointA,R.contactPointA,a.position),h(R.contactPointB,z,k),i(R.contactPointB,R.contactPointB,k),h(R.contactPointB,R.contactPointB,e.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}}return 0};var T=g.create(),U=g.create(),V=g.create(),W=g.create();d.prototype[q.PARTICLE|q.CONVEX]=d.prototype[q.PARTICLE|q.BOX]=d.prototype.particleConvex=function(a,b,c,d,e,k,l,m,n){var o=t,p=u,q=v,r=w,s=x,A=y,B=z,D=C,E=F,G=J,H=K,I=Number.MAX_VALUE,L=!1,M=k.vertices;if(!f(c,k,l,m))return 0;if(n)return!0;for(var N=0;N!==M.length+1;N++){var O=M[N%M.length],P=M[(N+1)%M.length];g.rotate(o,O,m),g.rotate(p,P,m),i(o,o,l),i(p,p,l),h(q,p,o),g.normalize(r,q),g.rotate90cw(s,r),h(D,c,o);j(D,s);h(A,o,l),h(B,c,l),g.sub(G,o,c);var Q=Math.abs(g.dot(G,s));Q<I&&(I=Q,g.scale(E,s,Q),g.add(E,E,c),g.copy(H,s),L=!0)}if(L){var R=this.createContactEquation(a,e,b,k);return g.scale(R.normalA,H,-1),g.normalize(R.normalA,R.normalA),g.set(R.contactPointA,0,0),i(R.contactPointA,R.contactPointA,c),h(R.contactPointA,R.contactPointA,a.position),h(R.contactPointB,E,l),i(R.contactPointB,R.contactPointB,l),h(R.contactPointB,R.contactPointB,e.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}return 0},d.prototype[q.CIRCLE]=d.prototype.circleCircle=function(a,b,c,d,e,f,j,k,l,m,n){var o=t,m=m||b.radius,n=n||f.radius;h(o,c,j);var p=m+n;if(g.squaredLength(o)>Math.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,f);return h(q.normalA,j,c),g.normalize(q.normalA,q.normalA),g.scale(q.contactPointA,q.normalA,m),g.scale(q.contactPointB,q.normalA,-n),i(q.contactPointA,q.contactPointA,c),h(q.contactPointA,q.contactPointA,a.position),i(q.contactPointB,q.contactPointB,j),h(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},d.prototype[q.PLANE|q.CONVEX]=d.prototype[q.PLANE|q.BOX]=d.prototype.planeConvex=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=0;g.rotate(o,s,d);for(var r=0;r!==f.vertices.length;r++){var w=f.vertices[r];if(g.rotate(n,w,l),i(n,n,k),h(p,n,c),j(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,f);h(p,n,c),g.copy(x.normalA,o);var y=j(p,x.normalA);g.scale(p,x.normalA,y),h(x.contactPointB,n,e.position),h(x.contactPointA,n,p),h(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},d.prototype[q.PARTICLE|q.PLANE]=d.prototype.particlePlane=function(a,b,c,d,e,f,i,k,l){var m=t,n=u;k=k||0,h(m,c,i),g.rotate(n,s,k);var o=j(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,f,b);return g.copy(p.normalA,n),g.scale(m,p.normalA,o),h(p.contactPointA,c,m),h(p.contactPointA,p.contactPointA,e.position),h(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},d.prototype[q.CIRCLE|q.PARTICLE]=d.prototype.circleParticle=function(a,b,c,d,e,f,j,k,l){var m=t;if(h(m,j,c),g.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,f);return g.copy(n.normalA,m),g.normalize(n.normalA,n.normalA),g.scale(n.contactPointA,n.normalA,b.radius),i(n.contactPointA,n.contactPointA,c),h(n.contactPointA,n.contactPointA,a.position),h(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};var X=new o({radius:1}),Y=g.create(),Z=g.create();g.create();d.prototype[q.PLANE|q.CAPSULE]=d.prototype.planeCapsule=function(a,b,c,d,e,f,h,j,k){var l=Y,m=Z,n=X;g.set(l,-f.length/2,0),g.rotate(l,l,j),i(l,l,h),g.set(m,f.length/2,0),g.rotate(m,m,j),i(m,m,h),n.radius=f.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},d.prototype[q.CIRCLE|q.PLANE]=d.prototype.circlePlane=function(a,b,c,d,e,f,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;h(x,p,r),g.rotate(y,s,w);var A=j(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,f,b);return g.copy(B.normalA,y),g.scale(B.contactPointB,B.normalA,-o.radius),i(B.contactPointB,B.contactPointB,p),h(B.contactPointB,B.contactPointB,n.position),g.scale(z,B.normalA,A),h(B.contactPointA,x,z),i(B.contactPointA,B.contactPointA,r),h(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},d.prototype[q.CONVEX]=d.prototype[q.CONVEX|q.BOX]=d.prototype[q.BOX]=d.prototype.convexConvex=function(a,b,c,e,f,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o="number"==typeof o?o:0;if(!d.findSeparatingAxis(b,c,e,k,l,m,p))return 0;h(D,l,c),j(p,D)>0&&g.scale(p,p,-1);var G=d.getClosestEdge(b,e,p,!0),H=d.getClosestEdge(k,m,p);if(-1===G||-1===H)return 0;for(var I=0;I<2;I++){var J=G,K=H,L=b,M=k,N=c,O=l,P=e,Q=m,R=a,S=f;if(0===I){var T;T=J,J=K,K=T,T=L,L=M,M=T,T=N,N=O,O=T,T=P,P=Q,Q=T,T=R,R=S,S=T}for(var U=K;U<K+2;U++){var V=M.vertices[(U+M.vertices.length)%M.vertices.length];g.rotate(q,V,Q),i(q,q,O);for(var W=0,X=J-1;X<J+2;X++){var Y=L.vertices[(X+L.vertices.length)%L.vertices.length],Z=L.vertices[(X+1+L.vertices.length)%L.vertices.length];g.rotate(r,Y,P),g.rotate(s,Z,P),i(r,r,N),i(s,s,N),h(y,s,r),g.rotate90cw(E,y),g.normalize(E,E),h(D,q,r);var $=j(E,D);(X===J&&$<=o||X!==J&&$<=0)&&W++}if(W>=3){if(n)return!0;var _=this.createContactEquation(R,S,L,M);F++;var Y=L.vertices[J%L.vertices.length],Z=L.vertices[(J+1)%L.vertices.length];g.rotate(r,Y,P),g.rotate(s,Z,P),i(r,r,N),i(s,s,N),h(y,s,r),g.rotate90cw(_.normalA,y),g.normalize(_.normalA,_.normalA),h(D,q,r);var $=j(_.normalA,D);g.scale(C,_.normalA,$),h(_.contactPointA,q,N),h(_.contactPointA,_.contactPointA,C),i(_.contactPointA,_.contactPointA,N),h(_.contactPointA,_.contactPointA,R.position),h(_.contactPointB,q,O),i(_.contactPointB,_.contactPointB,O),h(_.contactPointB,_.contactPointB,S.position),this.contactEquations.push(_),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(_))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var $=g.fromValues(0,0);d.projectConvexOntoAxis=function(a,b,c,d,e){var f,h,i=null,k=null,l=$;g.rotate(l,d,-c);for(var m=0;m<a.vertices.length;m++)f=a.vertices[m],h=j(f,l),(null===i||h>i)&&(i=h),(null===k||h<k)&&(k=h);if(k>i){var n=k;k=i,i=n}var o=j(b,d);g.set(e,k+o,i+o)};var _=g.fromValues(0,0),aa=g.fromValues(0,0),ba=g.fromValues(0,0),ca=g.fromValues(0,0),da=g.fromValues(0,0),ea=g.fromValues(0,0);d.findSeparatingAxis=function(a,b,c,e,f,i,j){var k=null,l=!1,m=!1,n=_,o=aa,p=ba,q=ca,s=da,t=ea;if(a instanceof r&&e instanceof r)for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?g.set(q,0,1):1===x&&g.set(q,1,0),0!==w&&g.rotate(q,q,w),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t;s[0]>t[0]&&(z=s,y=t,!0);var A=z[0]-y[1];l=A<=0,(null===k||A>k)&&(g.copy(j,q),k=A,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){g.rotate(o,v.vertices[x],w),g.rotate(p,v.vertices[(x+1)%v.vertices.length],w),h(n,p,o),g.rotate90cw(q,n),g.normalize(q,q),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t;s[0]>t[0]&&(z=s,y=t,!0);var A=z[0]-y[1];l=A<=0,(null===k||A>k)&&(g.copy(j,q),k=A,m=l)}}return m};var fa=g.fromValues(0,0),ga=g.fromValues(0,0),ha=g.fromValues(0,0);d.getClosestEdge=function(a,b,c,d){var e=fa,f=ga,i=ha;g.rotate(e,c,-b),d&&g.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){h(f,a.vertices[(n+1)%l],a.vertices[n%l]),g.rotate90cw(i,f),g.normalize(i,i);var o=j(i,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var ia=g.create(),ja=g.create(),ka=g.create(),la=g.create(),ma=g.create(),na=g.create(),oa=g.create();d.prototype[q.CIRCLE|q.HEIGHTFIELD]=d.prototype.circleHeightfield=function(a,b,c,d,e,f,j,k,l,m){var n=f.heights,m=m||b.radius,o=f.elementWidth,p=ja,q=ia,r=ma,s=oa,t=na,u=ka,v=la,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);w<0&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;A<x;A++)n[A]<z&&(z=n[A]),n[A]>y&&(y=n[A]);if(c[1]-m>y)return!l&&0;for(var B=!1,A=w;A<x;A++){g.set(u,A*o,n[A]),g.set(v,(A+1)*o,n[A+1]),g.add(u,u,j),g.add(v,v,j),g.sub(t,v,u),g.rotate(t,t,Math.PI/2),g.normalize(t,t),g.scale(q,t,-m),g.add(q,q,c),g.sub(p,q,u);var C=g.dot(p,t);if(q[0]>=u[0]&&q[0]<v[0]&&C<=0){if(l)return!0;B=!0,g.scale(p,t,-C),g.add(r,q,p),g.copy(s,t);var D=this.createContactEquation(e,a,f,b);g.copy(D.normalA,s),g.scale(D.contactPointB,D.normalA,-m),i(D.contactPointB,D.contactPointB,c),h(D.contactPointB,D.contactPointB,a.position),g.copy(D.contactPointA,r),g.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;A<=x;A++)if(g.set(u,A*o,n[A]),g.add(u,u,j),g.sub(p,c,u),g.squaredLength(p)<Math.pow(m,2)){if(l)return!0;B=!0;var D=this.createContactEquation(e,a,f,b);g.copy(D.normalA,p),g.normalize(D.normalA,D.normalA),g.scale(D.contactPointB,D.normalA,-m),
|
||
i(D.contactPointB,D.contactPointB,c),h(D.contactPointB,D.contactPointB,a.position),h(D.contactPointA,u,j),i(D.contactPointA,D.contactPointA,j),h(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}return B?1:0};var pa=g.create(),qa=g.create(),ra=g.create(),sa=new p({vertices:[g.create(),g.create(),g.create(),g.create()]});d.prototype[q.BOX|q.HEIGHTFIELD]=d.prototype[q.CONVEX|q.HEIGHTFIELD]=d.prototype.convexHeightfield=function(a,b,c,d,e,f,h,i,j){var k=f.heights,l=f.elementWidth,m=pa,n=qa,o=ra,p=sa,q=Math.floor((a.aabb.lowerBound[0]-h[0])/l),r=Math.ceil((a.aabb.upperBound[0]-h[0])/l);q<0&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;u<r;u++)k[u]<t&&(t=k[u]),k[u]>s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return!j&&0;for(var v=0,u=q;u<r;u++){g.set(m,u*l,k[u]),g.set(n,(u+1)*l,k[u+1]),g.add(m,m,h),g.add(n,n,h);g.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-100)),g.sub(p.vertices[0],n,o),g.sub(p.vertices[1],m,o),g.copy(p.vertices[2],p.vertices[1]),g.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=100,p.vertices[3][1]-=100,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../shapes/Box":37,"../shapes/Circle":39,"../shapes/Convex":40,"../shapes/Shape":45,"../utils/ContactEquationPool":48,"../utils/FrictionEquationPool":49,"../utils/TupleDictionary":56,"../utils/Utils":57}],11:[function(a,b,c){function d(a){a=a||{},this.from=a.from?f.fromValues(a.from[0],a.from[1]):f.create(),this.to=a.to?f.fromValues(a.to[0],a.to[1]):f.create(),this.checkCollisionResponse=void 0===a.checkCollisionResponse||a.checkCollisionResponse,this.skipBackfaces=!!a.skipBackfaces,this.collisionMask=void 0!==a.collisionMask?a.collisionMask:-1,this.collisionGroup=void 0!==a.collisionGroup?a.collisionGroup:-1,this.mode=void 0!==a.mode?a.mode:d.ANY,this.callback=a.callback||function(a){},this.direction=f.create(),this.length=1,this.update()}function e(a,b,c){f.sub(h,c,a);var d=f.dot(h,b);return f.scale(i,b,d),f.add(i,i,a),f.squaredDistance(c,i)}b.exports=d;var f=a("../math/vec2");a("../collision/RaycastResult"),a("../shapes/Shape"),a("../collision/AABB");d.prototype.constructor=d,d.CLOSEST=1,d.ANY=2,d.ALL=4,d.prototype.update=function(){var a=this.direction;f.sub(a,this.to,this.from),this.length=f.length(a),f.normalize(a,a)},d.prototype.intersectBodies=function(a,b){for(var c=0,d=b.length;!a.shouldStop(this)&&c<d;c++){var e=b[c],f=e.getAABB();(f.overlapsRay(this)>=0||f.containsPoint(this.from))&&this.intersectBody(a,e)}};var g=f.create();d.prototype.intersectBody=function(a,b){var c=this.checkCollisionResponse;if(!c||b.collisionResponse)for(var d=g,e=0,h=b.shapes.length;e<h;e++){var i=b.shapes[e];if((!c||i.collisionResponse)&&(0!=(this.collisionGroup&i.collisionMask)&&0!=(i.collisionGroup&this.collisionMask))){f.rotate(d,i.position,b.angle),f.add(d,d,b.position);var j=i.angle+b.angle;if(this.intersectShape(a,i,j,d,b),a.shouldStop(this))break}}},d.prototype.intersectShape=function(a,b,c,d,f){e(this.from,this.direction,d)>b.boundingRadius*b.boundingRadius||(this._currentBody=f,this._currentShape=b,b.raycast(a,this,d,c),this._currentBody=this._currentShape=null)},d.prototype.getAABB=function(a){var b=this.to,c=this.from;f.set(a.lowerBound,Math.min(b[0],c[0]),Math.min(b[1],c[1])),f.set(a.upperBound,Math.max(b[0],c[0]),Math.max(b[1],c[1]))};f.create();d.prototype.reportIntersection=function(a,b,c,e){var g=(this.from,this.to,this._currentShape),h=this._currentBody;if(!(this.skipBackfaces&&f.dot(c,this.direction)>0))switch(this.mode){case d.ALL:a.set(c,g,h,b,e),this.callback(a);break;case d.CLOSEST:(b<a.fraction||!a.hasHit())&&a.set(c,g,h,b,e);break;case d.ANY:a.set(c,g,h,b,e)}};var h=f.create(),i=f.create()},{"../collision/AABB":7,"../collision/RaycastResult":12,"../math/vec2":30,"../shapes/Shape":45}],12:[function(a,b,c){function d(){this.normal=e.create(),this.shape=null,this.body=null,this.faceIndex=-1,this.fraction=-1,this.isStopped=!1}var e=a("../math/vec2"),f=a("../collision/Ray");b.exports=d,d.prototype.reset=function(){e.set(this.normal,0,0),this.shape=null,this.body=null,this.faceIndex=-1,this.fraction=-1,this.isStopped=!1},d.prototype.getHitDistance=function(a){return e.distance(a.from,a.to)*this.fraction},d.prototype.hasHit=function(){return-1!==this.fraction},d.prototype.getHitPoint=function(a,b){e.lerp(a,b.from,b.to,this.fraction)},d.prototype.stop=function(){this.isStopped=!0},d.prototype.shouldStop=function(a){return this.isStopped||-1!==this.fraction&&a.mode===f.ANY},d.prototype.set=function(a,b,c,d,f){e.copy(this.normal,a),this.shape=b,this.body=c,this.fraction=d,this.faceIndex=f}},{"../collision/Ray":11,"../math/vec2":30}],13:[function(a,b,c){function d(){f.call(this,f.SAP),this.axisList=[],this.axisIndex=0;var a=this;this._addBodyHandler=function(b){a.axisList.push(b.body)},this._removeBodyHandler=function(b){var c=a.axisList.indexOf(b.body);-1!==c&&a.axisList.splice(c,1)}}var e=a("../utils/Utils"),f=a("../collision/Broadphase");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.setWorld=function(a){this.axisList.length=0,e.appendArray(this.axisList,a.bodies),a.off("addBody",this._addBodyHandler).off("removeBody",this._removeBodyHandler),a.on("addBody",this._addBodyHandler).on("removeBody",this._removeBodyHandler),this.world=a},d.sortAxisList=function(a,b){b|=0;for(var c=1,d=a.length;c<d;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},d.prototype.sortList=function(){var a=this.axisList,b=this.axisIndex;d.sortAxisList(a,b)},d.prototype.getCollisionPairs=function(a){var b=this.axisList,c=this.result,d=this.axisIndex;c.length=0;for(var e=b.length;e--;){var g=b[e];g.aabbNeedsUpdate&&g.updateAABB()}this.sortList();for(var h=0,i=0|b.length;h!==i;h++)for(var j=b[h],k=h+1;k<i;k++){var l=b[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;f.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&c.push(j,l)}return c},d.prototype.aabbQuery=function(a,b,c){c=c||[],this.sortList();var d=this.axisIndex,e="x";1===d&&(e="y"),2===d&&(e="z");for(var f=this.axisList,g=(b.lowerBound[e],b.upperBound[e],0);g<f.length;g++){var h=f[g];h.aabbNeedsUpdate&&h.updateAABB(),h.aabb.overlaps(b)&&c.push(h)}return c}},{"../collision/Broadphase":8,"../utils/Utils":57}],14:[function(a,b,c){function d(a,b,c,d){this.type=c,d=e.defaults(d,{collideConnected:!0,wakeUpBodies:!0}),this.equations=[],this.bodyA=a,this.bodyB=b,this.collideConnected=d.collideConnected,d.wakeUpBodies&&(a&&a.wakeUp(),b&&b.wakeUp())}b.exports=d;var e=a("../utils/Utils");d.prototype.update=function(){throw new Error("method update() not implmemented in this Constraint subclass!")},d.DISTANCE=1,d.GEAR=2,d.LOCK=3,d.PRISMATIC=4,d.REVOLUTE=5,d.prototype.setStiffness=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.stiffness=a,d.needsUpdate=!0}},d.prototype.setRelaxation=function(a){for(var b=this.equations,c=0;c!==b.length;c++){var d=b[c];d.relaxation=a,d.needsUpdate=!0}}},{"../utils/Utils":57}],15:[function(a,b,c){function d(a,b,c){c=h.defaults(c,{localAnchorA:[0,0],localAnchorB:[0,0]}),e.call(this,a,b,e.DISTANCE,c),this.localAnchorA=g.fromValues(c.localAnchorA[0],c.localAnchorA[1]),this.localAnchorB=g.fromValues(c.localAnchorB[0],c.localAnchorB[1]);var d=this.localAnchorA,i=this.localAnchorB;if(this.distance=0,"number"==typeof c.distance)this.distance=c.distance;else{var j=g.create(),k=g.create(),l=g.create();g.rotate(j,d,a.angle),g.rotate(k,i,b.angle),g.add(l,b.position,k),g.sub(l,l,j),g.sub(l,l,a.position),this.distance=g.length(l)}var m;m=void 0===c.maxForce?Number.MAX_VALUE:c.maxForce;var n=new f(a,b,-m,m);this.equations=[n],this.maxForce=m;var l=g.create(),o=g.create(),p=g.create(),q=this;n.computeGq=function(){var a=this.bodyA,b=this.bodyB,c=a.position,e=b.position;return g.rotate(o,d,a.angle),g.rotate(p,i,b.angle),g.add(l,e,p),g.sub(l,l,o),g.sub(l,l,c),g.length(l)-q.distance},this.setMaxForce(m),this.upperLimitEnabled=!1,this.upperLimit=1,this.lowerLimitEnabled=!1,this.lowerLimit=0,this.position=0}var e=a("./Constraint"),f=a("../equations/Equation"),g=a("../math/vec2"),h=a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d;var i=g.create(),j=g.create(),k=g.create();d.prototype.update=function(){var a=this.equations[0],b=this.bodyA,c=this.bodyB,d=(this.distance,b.position),e=c.position,f=this.equations[0],h=a.G;g.rotate(j,this.localAnchorA,b.angle),g.rotate(k,this.localAnchorB,c.angle),g.add(i,e,k),g.sub(i,i,j),g.sub(i,i,d),this.position=g.length(i);var l=!1;if(this.upperLimitEnabled&&this.position>this.upperLimit&&(f.maxForce=0,f.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.position<this.lowerLimit&&(f.maxForce=this.maxForce,f.minForce=0,this.distance=this.lowerLimit,l=!0),(this.lowerLimitEnabled||this.upperLimitEnabled)&&!l)return void(f.enabled=!1);f.enabled=!0,g.normalize(i,i);var m=g.crossLength(j,i),n=g.crossLength(k,i);h[0]=-i[0],h[1]=-i[1],h[2]=-m,h[3]=i[0],h[4]=i[1],h[5]=n},d.prototype.setMaxForce=function(a){var b=this.equations[0];b.minForce=-a,b.maxForce=a},d.prototype.getMaxForce=function(){return this.equations[0].maxForce}},{"../equations/Equation":22,"../math/vec2":30,"../utils/Utils":57,"./Constraint":14}],16:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,e.GEAR,c),this.ratio=void 0!==c.ratio?c.ratio:1,this.angle=void 0!==c.angle?c.angle:b.angle-this.ratio*a.angle,c.angle=this.angle,c.ratio=this.ratio,this.equations=[new f(a,b,c)],void 0!==c.maxTorque&&this.setMaxTorque(c.maxTorque)}var e=a("./Constraint"),f=(a("../equations/Equation"),a("../equations/AngleLockEquation"));a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.update=function(){var a=this.equations[0];a.ratio!==this.ratio&&a.setRatio(this.ratio),a.angle=this.angle},d.prototype.setMaxTorque=function(a){this.equations[0].setMaxTorque(a)},d.prototype.getMaxTorque=function(a){return this.equations[0].maxForce}},{"../equations/AngleLockEquation":20,"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],17:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,e.LOCK,c);var d=void 0===c.maxForce?Number.MAX_VALUE:c.maxForce,h=(c.localAngleB,new g(a,b,-d,d)),i=new g(a,b,-d,d),j=new g(a,b,-d,d),k=f.create(),l=f.create(),m=this;h.computeGq=function(){return f.rotate(k,m.localOffsetB,a.angle),f.sub(l,b.position,a.position),f.sub(l,l,k),l[0]},i.computeGq=function(){return f.rotate(k,m.localOffsetB,a.angle),f.sub(l,b.position,a.position),f.sub(l,l,k),l[1]};var n=f.create(),o=f.create();j.computeGq=function(){return f.rotate(n,m.localOffsetB,b.angle-m.localAngleB),f.scale(n,n,-1),f.sub(l,a.position,b.position),f.add(l,l,n),f.rotate(o,n,-Math.PI/2),f.normalize(o,o),f.dot(l,o)},this.localOffsetB=f.create(),c.localOffsetB?f.copy(this.localOffsetB,c.localOffsetB):(f.sub(this.localOffsetB,b.position,a.position),f.rotate(this.localOffsetB,this.localOffsetB,-a.angle)),this.localAngleB=0,"number"==typeof c.localAngleB?this.localAngleB=c.localAngleB:this.localAngleB=b.angle-a.angle,this.equations.push(h,i,j),this.setMaxForce(d)}var e=a("./Constraint"),f=a("../math/vec2"),g=a("../equations/Equation");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.setMaxForce=function(a){for(var b=this.equations,c=0;c<this.equations.length;c++)b[c].maxForce=a,b[c].minForce=-a},d.prototype.getMaxForce=function(){return this.equations[0].maxForce};var h=f.create(),i=f.create(),j=f.create(),k=f.fromValues(1,0),l=f.fromValues(0,1);d.prototype.update=function(){var a=this.equations[0],b=this.equations[1],c=this.equations[2],d=this.bodyA,e=this.bodyB;f.rotate(h,this.localOffsetB,d.angle),f.rotate(i,this.localOffsetB,e.angle-this.localAngleB),f.scale(i,i,-1),f.rotate(j,i,Math.PI/2),f.normalize(j,j),a.G[0]=-1,a.G[1]=0,a.G[2]=-f.crossLength(h,k),a.G[3]=1,b.G[0]=0,b.G[1]=-1,b.G[2]=-f.crossLength(h,l),b.G[4]=1,c.G[0]=-j[0],c.G[1]=-j[1],c.G[3]=j[0],c.G[4]=j[1],c.G[5]=f.crossLength(i,j)}},{"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],18:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,e.PRISMATIC,c);var d=h.fromValues(0,0),j=h.fromValues(1,0),k=h.fromValues(0,0);c.localAnchorA&&h.copy(d,c.localAnchorA),c.localAxisA&&h.copy(j,c.localAxisA),c.localAnchorB&&h.copy(k,c.localAnchorB),this.localAnchorA=d,this.localAnchorB=k,this.localAxisA=j;var l=this.maxForce=void 0!==c.maxForce?c.maxForce:Number.MAX_VALUE,m=new g(a,b,-l,l),n=new h.create,o=new h.create,p=new h.create,q=new h.create;if(m.computeGq=function(){return h.dot(p,q)},m.updateJacobian=function(){var c=this.G,e=a.position,f=b.position;h.rotate(n,d,a.angle),h.rotate(o,k,b.angle),h.add(p,f,o),h.sub(p,p,e),h.sub(p,p,n),h.rotate(q,j,a.angle+Math.PI/2),c[0]=-q[0],c[1]=-q[1],c[2]=-h.crossLength(n,q)+h.crossLength(q,p),c[3]=q[0],c[4]=q[1],c[5]=h.crossLength(o,q)},this.equations.push(m),!c.disableRotationalLock){var r=new i(a,b,-l,l);this.equations.push(r)}this.position=0,this.velocity=0,this.lowerLimitEnabled=void 0!==c.lowerLimit,this.upperLimitEnabled=void 0!==c.upperLimit,this.lowerLimit=void 0!==c.lowerLimit?c.lowerLimit:0,this.upperLimit=void 0!==c.upperLimit?c.upperLimit:1,this.upperLimitEquation=new f(a,b),this.lowerLimitEquation=new f(a,b),this.upperLimitEquation.minForce=this.lowerLimitEquation.minForce=0,this.upperLimitEquation.maxForce=this.lowerLimitEquation.maxForce=l,this.motorEquation=new g(a,b),this.motorEnabled=!1,this.motorSpeed=0;var s=this,t=this.motorEquation;t.computeGW;t.computeGq=function(){return 0},t.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+s.motorSpeed}}var e=a("./Constraint"),f=a("../equations/ContactEquation"),g=a("../equations/Equation"),h=a("../math/vec2"),i=a("../equations/RotationalLockEquation");b.exports=d,d.prototype=new e,d.prototype.constructor=d;var j=h.create(),k=h.create(),l=h.create(),m=h.create(),n=h.create(),o=h.create();d.prototype.update=function(){var a=this.equations,b=a[0],c=this.upperLimit,d=this.lowerLimit,e=this.upperLimitEquation,f=this.lowerLimitEquation,g=this.bodyA,i=this.bodyB,p=this.localAxisA,q=this.localAnchorA,r=this.localAnchorB;b.updateJacobian(),h.rotate(j,p,g.angle),h.rotate(m,q,g.angle),h.add(k,m,g.position),h.rotate(n,r,i.angle),h.add(l,n,i.position);var s=this.position=h.dot(l,j)-h.dot(k,j);if(this.motorEnabled){var t=this.motorEquation.G;t[0]=j[0],t[1]=j[1],t[2]=h.crossLength(j,n),t[3]=-j[0],t[4]=-j[1],t[5]=-h.crossLength(j,m)}if(this.upperLimitEnabled&&s>c)h.scale(e.normalA,j,-1),h.sub(e.contactPointA,k,g.position),h.sub(e.contactPointB,l,i.position),h.scale(o,j,c),h.add(e.contactPointA,e.contactPointA,o),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&s<d)h.scale(f.normalA,j,1),h.sub(f.contactPointA,k,g.position),h.sub(f.contactPointB,l,i.position),h.scale(o,j,d),h.sub(f.contactPointB,f.contactPointB,o),-1===a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!==u&&a.splice(u,1)}},d.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},d.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},d.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,e.REVOLUTE,c);var d=this.maxForce=void 0!==c.maxForce?c.maxForce:Number.MAX_VALUE;this.pivotA=i.create(),this.pivotB=i.create(),c.worldPivot?(i.sub(this.pivotA,c.worldPivot,a.position),i.sub(this.pivotB,c.worldPivot,b.position),i.rotate(this.pivotA,this.pivotA,-a.angle),i.rotate(this.pivotB,this.pivotB,-b.angle)):(i.copy(this.pivotA,c.localPivotA),i.copy(this.pivotB,c.localPivotB));var o=this.equations=[new f(a,b,-d,d),new f(a,b,-d,d)],p=o[0],q=o[1],r=this;p.computeGq=function(){return i.rotate(j,r.pivotA,a.angle),i.rotate(k,r.pivotB,b.angle),i.add(n,b.position,k),i.sub(n,n,a.position),i.sub(n,n,j),i.dot(n,l)},q.computeGq=function(){return i.rotate(j,r.pivotA,a.angle),i.rotate(k,r.pivotB,b.angle),i.add(n,b.position,k),i.sub(n,n,a.position),i.sub(n,n,j),i.dot(n,m)},q.minForce=p.minForce=-d,q.maxForce=p.maxForce=d,this.motorEquation=new g(a,b),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new h(a,b),this.lowerLimitEquation=new h(a,b),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var e=a("./Constraint"),f=a("../equations/Equation"),g=a("../equations/RotationalVelocityEquation"),h=a("../equations/RotationalLockEquation"),i=a("../math/vec2");b.exports=d;var j=i.create(),k=i.create(),l=i.fromValues(1,0),m=i.fromValues(0,1),n=i.create();d.prototype=new e,d.prototype.constructor=d,d.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)},d.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],h=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>h)o.angle=h,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&q<n)p.angle=n,-1===e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!==r&&e.splice(r,1)}i.rotate(j,c,a.angle),i.rotate(k,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-i.crossLength(j,l),f.G[3]=1,f.G[4]=0,f.G[5]=i.crossLength(k,l),g.G[0]=0,g.G[1]=-1,g.G[2]=-i.crossLength(j,m),g.G[3]=0,g.G[4]=1,g.G[5]=i.crossLength(k,m)},d.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},d.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},d.prototype.motorIsEnabled=function(){return!!this.motorEnabled},d.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},d.prototype.getMotorSpeed=function(){return!!this.motorEnabled&&this.motorEquation.relativeVelocity}},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}var e=a("./Equation");a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},d.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},d.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":30,"./Equation":22}],21:[function(a,b,c){function d(a,b){e.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=f.create(),this.penetrationVec=f.create(),this.contactPointB=f.create(),this.normalA=f.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var e=a("./Equation"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeB=function(a,b,c){var d=this.bodyA,e=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=e.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=f.crossLength(g,l),o=f.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,f.add(k,j,h),f.sub(k,k,i),f.sub(k,k,g);var p,q;return this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=f.dot(l,k)+this.offset,p=this.computeGW()),-q*a-p*b-c*this.computeGiMf()}},{"../math/vec2":30,"./Equation":22}],22:[function(a,b,c){function d(a,b,c,e){this.minForce=void 0===c?-Number.MAX_VALUE:c,this.maxForce=void 0===e?Number.MAX_VALUE:e,this.bodyA=a,this.bodyB=b,this.stiffness=d.DEFAULT_STIFFNESS,this.relaxation=d.DEFAULT_RELAXATION,this.G=new f.ARRAY_TYPE(6);for(var g=0;g<6;g++)this.G[g]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}b.exports=d;var e=a("../math/vec2"),f=a("../utils/Utils");a("../objects/Body");d.prototype.constructor=d,d.DEFAULT_STIFFNESS=1e6,d.DEFAULT_RELAXATION=4,d.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},d.prototype.gmult=function(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e},d.prototype.computeB=function(a,b,c){var d=this.computeGW();return-this.computeGq()*a-d*b-this.computeGiMf()*c};var g=e.create(),h=e.create();d.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=(b.position,c.position,b.angle),e=c.angle;return this.gmult(a,g,d,h,e)+this.offset},d.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+this.relativeVelocity},d.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.vlambda,e=c.vlambda,f=b.wlambda,g=c.wlambda;return this.gmult(a,d,f,e,g)};var i=e.create(),j=e.create();d.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,d=a.angularForce,f=b.force,g=b.angularForce,h=a.invMassSolve,k=b.invMassSolve,l=a.invInertiaSolve,m=b.invInertiaSolve,n=this.G;return e.scale(i,c,h),e.multiply(i,a.massMultiplier,i),e.scale(j,f,k),e.multiply(j,b.massMultiplier,j),this.gmult(n,i,d*l,j,g*m)},d.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=a.invMassSolve,d=b.invMassSolve,e=a.invInertiaSolve,f=b.invInertiaSolve,g=this.G;return g[0]*g[0]*c*a.massMultiplier[0]+g[1]*g[1]*c*a.massMultiplier[1]+g[2]*g[2]*e+g[3]*g[3]*d*b.massMultiplier[0]+g[4]*g[4]*d*b.massMultiplier[1]+g[5]*g[5]*f};var k=e.create(),l=e.create(),m=e.create();e.create(),e.create(),e.create();d.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,d=k,f=l,g=m,h=b.invMassSolve,i=c.invMassSolve,j=b.invInertiaSolve,n=c.invInertiaSolve,o=this.G;f[0]=o[0],f[1]=o[1],g[0]=o[3],g[1]=o[4],e.scale(d,f,h*a),e.multiply(d,d,b.massMultiplier),e.add(b.vlambda,b.vlambda,d),b.wlambda+=j*o[2]*a,e.scale(d,g,i*a),e.multiply(d,d,c.massMultiplier),e.add(c.vlambda,c.vlambda,d),c.wlambda+=n*o[5]*a},d.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],23:[function(a,b,c){function d(a,b,c){f.call(this,a,b,-c,c),this.contactPointA=e.create(),this.contactPointB=e.create(),this.t=e.create(),this.contactEquations=[],this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}var e=a("../math/vec2"),f=a("./Equation");a("../utils/Utils");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},d.prototype.getSlipForce=function(){return this.maxForce},d.prototype.computeB=function(a,b,c){var d=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;return h[0]=-g[0],h[1]=-g[1],h[2]=-e.crossLength(d,g),h[3]=g[0],h[4]=g[1],h[5]=e.crossLength(f,g),-this.computeGW()*b-c*this.computeGiMf()}},{"../math/vec2":30,"../utils/Utils":57,"./Equation":22}],24:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var d=this.G;d[2]=1,d[5]=-1}var e=a("./Equation"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d;var g=f.create(),h=f.create(),i=f.fromValues(1,0),j=f.fromValues(0,1);d.prototype.computeGq=function(){return f.rotate(g,i,this.bodyA.angle+this.angle),f.rotate(h,j,this.bodyB.angle),f.dot(g,h)}},{"../math/vec2":30,"./Equation":22}],25:[function(a,b,c){function d(a,b){e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}var e=a("./Equation");a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf();return-this.computeGW()*b-c*e}},{"../math/vec2":30,"./Equation":22}],26:[function(a,b,c){var d=function(){};b.exports=d,d.prototype={constructor:d,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;d<e;d++){var f=c[d];f.call(f.context,a)}}return this}}},{}],27:[function(a,b,c){function d(a,b,c){if(c=c||{},!(a instanceof e&&b instanceof e))throw new Error("First two arguments must be Material instances.");this.id=d.idCounter++,this.materialA=a,this.materialB=b,this.friction=void 0!==c.friction?Number(c.friction):.3,this.restitution=void 0!==c.restitution?Number(c.restitution):0,this.stiffness=void 0!==c.stiffness?Number(c.stiffness):f.DEFAULT_STIFFNESS,this.relaxation=void 0!==c.relaxation?Number(c.relaxation):f.DEFAULT_RELAXATION,this.frictionStiffness=void 0!==c.frictionStiffness?Number(c.frictionStiffness):f.DEFAULT_STIFFNESS,this.frictionRelaxation=void 0!==c.frictionRelaxation?Number(c.frictionRelaxation):f.DEFAULT_RELAXATION,this.surfaceVelocity=void 0!==c.surfaceVelocity?Number(c.surfaceVelocity):0,this.contactSkinSize=.005}var e=a("./Material"),f=a("../equations/Equation");b.exports=d,d.idCounter=0},{"../equations/Equation":22,"./Material":28}],28:[function(a,b,c){function d(a){this.id=a||d.idCounter++}b.exports=d,d.idCounter=0},{}],29:[function(a,b,c){var d={};d.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;d<b;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return.5*-(c+=(a[0]-a[b])*(a[b+1]+a[1]))},d.Triangulate=function(a){var b=a.length>>1;if(b<3)return[];for(var c=[],e=[],f=0;f<b;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(d._convex(k,l,m,n,o,p)){q=!0;for(var r=0;r<g;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&d._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)c.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return c.push(e[0],e[1],e[2]),c},d._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&&u+v<1},d._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=d},{}],30:[function(a,b,c){var d=b.exports={},e=a("../utils/Utils");d.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},d.crossVZ=function(a,b,c){return d.rotate(a,b,-Math.PI/2),d.scale(a,a,c),a},d.crossZV=function(a,b,c){return d.rotate(a,c,Math.PI/2),d.scale(a,a,b),a},d.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},d.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},d.toLocalFrame=function(a,b,c,e){d.copy(a,b),d.sub(a,a,c),d.rotate(a,a,-e)},d.toGlobalFrame=function(a,b,c,e){d.copy(a,b),d.rotate(a,a,e),d.add(a,a,c)},d.vectorToLocalFrame=function(a,b,c){d.rotate(a,b,-c)},d.vectorToGlobalFrame=function(a,b,c){d.rotate(a,b,c)},d.centroid=function(a,b,c,e){return d.add(a,b,c),d.add(a,a,e),d.scale(a,a,1/3),a},d.create=function(){var a=new e.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},d.clone=function(a){var b=new e.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},d.fromValues=function(a,b){var c=new e.ARRAY_TYPE(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.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.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},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.reflect=function(a,b,c){var d=b[0]*c[0]+b[1]*c[1];a[0]=b[0]-2*c[0]*d,a[1]=b[1]-2*c[1]*d},d.getLineSegmentsIntersection=function(a,b,c,e,f){var g=d.getLineSegmentsIntersectionFraction(b,c,e,f);return!(g<0)&&(a[0]=b[0]+g*(c[0]-b[0]),a[1]=b[1]+g*(c[1]-b[1]),!0)},d.getLineSegmentsIntersectionFraction=function(a,b,c,d){var e,f,g=b[0]-a[0],h=b[1]-a[1],i=d[0]-c[0],j=d[1]-c[1];return e=(-h*(a[0]-c[0])+g*(a[1]-c[1]))/(-i*h+g*j),f=(i*(a[1]-c[1])-j*(a[0]-c[0]))/(-i*h+g*j),e>=0&&e<=1&&f>=0&&f<=1?f:-1}},{"../utils/Utils":57}],31:[function(a,b,c){function d(a){a=a||{},k.call(this),this.id=a.id||++d._idCounter,this.world=null,this.shapes=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.fixedX=!!a.fixedX,this.fixedY=!!a.fixedY,this.massMultiplier=e.create(),this.position=e.fromValues(0,0),a.position&&e.copy(this.position,a.position),this.interpolatedPosition=e.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=e.fromValues(0,0),this.previousAngle=0,this.velocity=e.fromValues(0,0),a.velocity&&e.copy(this.velocity,a.velocity),this.vlambda=e.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=e.create(),a.force&&e.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=d.STATIC,void 0!==a.type?this.type=a.type:a.mass?this.type=d.DYNAMIC:this.type=d.STATIC,this.boundingRadius=0,this.aabb=new j,this.aabbNeedsUpdate=!0,this.allowSleep=void 0===a.allowSleep||a.allowSleep,this.wantsToSleep=!1,this.sleepState=d.AWAKE,this.sleepSpeedLimit=void 0!==a.sleepSpeedLimit?a.sleepSpeedLimit:.2,this.sleepTimeLimit=void 0!==a.sleepTimeLimit?a.sleepTimeLimit:1,this.gravityScale=void 0!==a.gravityScale?a.gravityScale:1,this.collisionResponse=void 0===a.collisionResponse||a.collisionResponse,this.idleTime=0,this.timeLastSleepy=0,
|
||
this.ccdSpeedThreshold=void 0!==a.ccdSpeedThreshold?a.ccdSpeedThreshold:-1,this.ccdIterations=void 0!==a.ccdIterations?a.ccdIterations:10,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var e=a("../math/vec2"),f=a("poly-decomp"),g=a("../shapes/Convex"),h=a("../collision/RaycastResult"),i=a("../collision/Ray"),j=a("../collision/AABB"),k=a("../events/EventEmitter");b.exports=d,d.prototype=new k,d.prototype.constructor=d,d._idCounter=0,d.prototype.updateSolveMassProperties=function(){this.sleepState===d.SLEEPING||this.type===d.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},d.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},d.prototype.getArea=function(){for(var a=0,b=0;b<this.shapes.length;b++)a+=this.shapes[b].area;return a},d.prototype.getAABB=function(){return this.aabbNeedsUpdate&&this.updateAABB(),this.aabb};var l=new j,m=e.create();d.prototype.updateAABB=function(){for(var a=this.shapes,b=a.length,c=m,d=this.angle,f=0;f!==b;f++){var g=a[f],h=g.angle+d;e.rotate(c,g.position,d),e.add(c,c,this.position),g.computeAABB(l,c,h),0===f?this.aabb.copy(l):this.aabb.extend(l)}this.aabbNeedsUpdate=!1},d.prototype.updateBoundingRadius=function(){for(var a=this.shapes,b=a.length,c=0,d=0;d!==b;d++){var f=a[d],g=e.length(f.position),h=f.boundingRadius;g+h>c&&(c=g+h)}this.boundingRadius=c},d.prototype.addShape=function(a,b,c){if(a.body)throw new Error("A shape can only be added to one body.");a.body=this,b?e.copy(a.position,b):e.set(a.position,0,0),a.angle=c||0,this.shapes.push(a),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},d.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b&&(this.shapes.splice(b,1),this.aabbNeedsUpdate=!0,a.body=null,!0)},d.prototype.updateMassProperties=function(){if(this.type===d.STATIC||this.type===d.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,c=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;g<b;g++){var h=a[g],i=e.squaredLength(h.position);f+=h.computeMomentOfInertia(c)+c*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass,e.set(this.massMultiplier,this.fixedX?0:1,this.fixedY?0:1)}};e.create();d.prototype.applyForce=function(a,b){if(e.add(this.force,this.force,a),b){var c=e.crossLength(b,a);this.angularForce+=c}};var n=e.create(),o=e.create(),p=e.create();d.prototype.applyForceLocal=function(a,b){b=b||p;var c=n,d=o;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyForce(c,d)};var q=e.create();d.prototype.applyImpulse=function(a,b){if(this.type===d.DYNAMIC){var c=q;if(e.scale(c,a,this.invMass),e.multiply(c,this.massMultiplier,c),e.add(this.velocity,c,this.velocity),b){var f=e.crossLength(b,a);f*=this.invInertia,this.angularVelocity+=f}}};var r=e.create(),s=e.create(),t=e.create();d.prototype.applyImpulseLocal=function(a,b){b=b||t;var c=r,d=s;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyImpulse(c,d)},d.prototype.toLocalFrame=function(a,b){e.toLocalFrame(a,b,this.position,this.angle)},d.prototype.toWorldFrame=function(a,b){e.toGlobalFrame(a,b,this.position,this.angle)},d.prototype.vectorToLocalFrame=function(a,b){e.vectorToLocalFrame(a,b,this.angle)},d.prototype.vectorToWorldFrame=function(a,b){e.vectorToGlobalFrame(a,b,this.angle)},d.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var d=new f.Polygon;if(d.vertices=a,d.makeCCW(),"number"==typeof b.removeCollinearPoints&&d.removeCollinearPoints(b.removeCollinearPoints),void 0===b.skipSimpleCheck&&!d.isSimple())return!1;this.concavePath=d.vertices.slice(0);for(var c=0;c<this.concavePath.length;c++){var h=[0,0];e.copy(h,this.concavePath[c]),this.concavePath[c]=h}var i;i=b.optimalDecomp?d.decomp():d.quickDecomp();for(var j=e.create(),c=0;c!==i.length;c++){for(var k=new g({vertices:i[c].vertices}),l=0;l!==k.vertices.length;l++){var h=k.vertices[l];e.sub(h,h,k.centerOfMass)}e.scale(j,k.centerOfMass,1),k.updateTriangles(),k.updateCenterOfMass(),k.updateBoundingRadius(),this.addShape(k,j)}return this.adjustCenterOfMass(),this.aabbNeedsUpdate=!0,!0};var u=(e.fromValues(0,0),e.fromValues(0,0)),v=e.fromValues(0,0),w=e.fromValues(0,0);d.prototype.adjustCenterOfMass=function(){var a=u,b=v,c=w,d=0;e.set(b,0,0);for(var f=0;f!==this.shapes.length;f++){var g=this.shapes[f];e.scale(a,g.position,g.area),e.add(b,b,a),d+=g.area}e.scale(c,b,1/d);for(var f=0;f!==this.shapes.length;f++){var g=this.shapes[f];e.sub(g.position,g.position,c)}e.add(this.position,this.position,c);for(var f=0;this.concavePath&&f<this.concavePath.length;f++)e.sub(this.concavePath[f],this.concavePath[f],c);this.updateMassProperties(),this.updateBoundingRadius()},d.prototype.setZeroForce=function(){e.set(this.force,0,0),this.angularForce=0},d.prototype.resetConstraintVelocity=function(){var a=this,b=a.vlambda;e.set(b,0,0),a.wlambda=0},d.prototype.addConstraintVelocity=function(){var a=this,b=a.velocity;e.add(b,b,a.vlambda),a.angularVelocity+=a.wlambda},d.prototype.applyDamping=function(a){if(this.type===d.DYNAMIC){var b=this.velocity;e.scale(b,b,Math.pow(1-this.damping,a)),this.angularVelocity*=Math.pow(1-this.angularDamping,a)}},d.prototype.wakeUp=function(){var a=this.sleepState;this.sleepState=d.AWAKE,this.idleTime=0,a!==d.AWAKE&&this.emit(d.wakeUpEvent)},d.prototype.sleep=function(){this.sleepState=d.SLEEPING,this.angularVelocity=0,this.angularForce=0,e.set(this.velocity,0,0),e.set(this.force,0,0),this.emit(d.sleepEvent)},d.prototype.sleepTick=function(a,b,c){if(this.allowSleep&&this.type!==d.SLEEPING){this.wantsToSleep=!1;this.sleepState;e.squaredLength(this.velocity)+Math.pow(this.angularVelocity,2)>=Math.pow(this.sleepSpeedLimit,2)?(this.idleTime=0,this.sleepState=d.AWAKE):(this.idleTime+=c,this.sleepState=d.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},d.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)};var x=e.create(),y=e.create();d.prototype.integrate=function(a){var b=this.invMass,c=this.force,d=this.position,f=this.velocity;e.copy(this.previousPosition,this.position),this.previousAngle=this.angle,this.fixedRotation||(this.angularVelocity+=this.angularForce*this.invInertia*a),e.scale(x,c,a*b),e.multiply(x,this.massMultiplier,x),e.add(f,x,f),this.integrateToTimeOfImpact(a)||(e.scale(y,f,a),e.add(d,d,y),this.fixedRotation||(this.angle+=this.angularVelocity*a)),this.aabbNeedsUpdate=!0};var z=new h,A=new i({mode:i.ALL}),B=e.create(),C=e.create(),D=e.create(),E=e.create();d.prototype.integrateToTimeOfImpact=function(a){if(this.ccdSpeedThreshold<0||e.squaredLength(this.velocity)<Math.pow(this.ccdSpeedThreshold,2))return!1;e.normalize(B,this.velocity),e.scale(C,this.velocity,a),e.add(C,C,this.position),e.sub(D,C,this.position);var b,c=this.angularVelocity*a,d=e.length(D),f=1,g=this;if(z.reset(),A.callback=function(a){a.body!==g&&(b=a.body,a.getHitPoint(C,A),e.sub(D,C,g.position),f=e.length(D)/d,a.stop())},e.copy(A.from,this.position),e.copy(A.to,C),A.update(),this.world.raycast(z,A),!b)return!1;var h=this.angle;e.copy(E,this.position);for(var i=0,j=0,k=0,l=f;l>=j&&i<this.ccdIterations;){i++,k=(l-j)/2,e.scale(y,D,f),e.add(this.position,E,y),this.angle=h+c*f,this.updateAABB();this.aabb.overlaps(b.aabb)&&this.world.narrowphase.bodiesOverlap(this,b)?j=k:l=k}return f=k,e.copy(this.position,E),this.angle=h,e.scale(y,D,f),e.add(this.position,this.position,y),this.fixedRotation||(this.angle+=c*f),!0},d.prototype.getVelocityAtPoint=function(a,b){return e.crossVZ(a,b,this.angularVelocity),e.subtract(a,this.velocity,a),a},d.sleepyEvent={type:"sleepy"},d.sleepEvent={type:"sleep"},d.wakeUpEvent={type:"wakeup"},d.DYNAMIC=1,d.STATIC=2,d.KINEMATIC=4,d.AWAKE=0,d.SLEEPY=1,d.SLEEPING=2},{"../collision/AABB":7,"../collision/Ray":11,"../collision/RaycastResult":12,"../events/EventEmitter":26,"../math/vec2":30,"../shapes/Convex":40,"poly-decomp":5}],32:[function(a,b,c){function d(a,b,c){c=c||{},f.call(this,a,b,c),this.localAnchorA=e.fromValues(0,0),this.localAnchorB=e.fromValues(0,0),c.localAnchorA&&e.copy(this.localAnchorA,c.localAnchorA),c.localAnchorB&&e.copy(this.localAnchorB,c.localAnchorB),c.worldAnchorA&&this.setWorldAnchorA(c.worldAnchorA),c.worldAnchorB&&this.setWorldAnchorB(c.worldAnchorB);var d=e.create(),g=e.create();this.getWorldAnchorA(d),this.getWorldAnchorB(g);var h=e.distance(d,g);this.restLength="number"==typeof c.restLength?c.restLength:h}var e=a("../math/vec2"),f=a("./Spring");a("../utils/Utils");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.setWorldAnchorA=function(a){this.bodyA.toLocalFrame(this.localAnchorA,a)},d.prototype.setWorldAnchorB=function(a){this.bodyB.toLocalFrame(this.localAnchorB,a)},d.prototype.getWorldAnchorA=function(a){this.bodyA.toWorldFrame(a,this.localAnchorA)},d.prototype.getWorldAnchorB=function(a){this.bodyB.toWorldFrame(a,this.localAnchorB)};var g=e.create(),h=e.create(),i=e.create(),j=e.create(),k=e.create(),l=e.create(),m=e.create(),n=e.create(),o=e.create();d.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restLength,d=this.bodyA,f=this.bodyB,p=g,q=h,r=i,s=j,t=o,u=k,v=l,w=m,x=n;this.getWorldAnchorA(u),this.getWorldAnchorB(v),e.sub(w,u,d.position),e.sub(x,v,f.position),e.sub(p,v,u);var y=e.len(p);e.normalize(q,p),e.sub(r,f.velocity,d.velocity),e.crossZV(t,f.angularVelocity,x),e.add(r,r,t),e.crossZV(t,d.angularVelocity,w),e.sub(r,r,t),e.scale(s,q,-a*(y-c)-b*e.dot(r,q)),e.sub(d.force,d.force,s),e.add(f.force,f.force,s);var z=e.crossLength(w,s),A=e.crossLength(x,s);d.angularForce-=z,f.angularForce+=A}},{"../math/vec2":30,"../utils/Utils":57,"./Spring":34}],33:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,c),this.restAngle="number"==typeof c.restAngle?c.restAngle:b.angle-a.angle}var e=(a("../math/vec2"),a("./Spring"));b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.applyForce=function(){var a=this.stiffness,b=this.damping,c=this.restAngle,d=this.bodyA,e=this.bodyB,f=e.angle-d.angle,g=e.angularVelocity-d.angularVelocity,h=-a*(f-c)-b*g*0;d.angularForce-=h,e.angularForce+=h}},{"../math/vec2":30,"./Spring":34}],34:[function(a,b,c){function d(a,b,c){c=e.defaults(c,{stiffness:100,damping:1}),this.stiffness=c.stiffness,this.damping=c.damping,this.bodyA=a,this.bodyB=b}var e=(a("../math/vec2"),a("../utils/Utils"));b.exports=d,d.prototype.applyForce=function(){}},{"../math/vec2":30,"../utils/Utils":57}],35:[function(a,b,c){function d(a,b){b=b||{},this.chassisBody=a,this.wheels=[],this.groundBody=new i({mass:0}),this.world=null;var c=this;this.preStepCallback=function(){c.update()}}function e(a,b){b=b||{},this.vehicle=a,this.forwardEquation=new h(a.chassisBody,a.groundBody),this.sideEquation=new h(a.chassisBody,a.groundBody),this.steerValue=0,this.engineForce=0,this.setSideFriction(void 0!==b.sideFriction?b.sideFriction:5),this.localForwardVector=f.fromValues(0,1),b.localForwardVector&&f.copy(this.localForwardVector,b.localForwardVector),this.localPosition=f.fromValues(0,0),b.localPosition&&f.copy(this.localPosition,b.localPosition),g.apply(this,a.chassisBody,a.groundBody),this.equations.push(this.forwardEquation,this.sideEquation),this.setBrakeForce(0)}var f=a("../math/vec2"),g=(a("../utils/Utils"),a("../constraints/Constraint")),h=a("../equations/FrictionEquation"),i=a("../objects/Body");b.exports=d,d.prototype.addToWorld=function(a){this.world=a,a.addBody(this.groundBody),a.on("preStep",this.preStepCallback);for(var b=0;b<this.wheels.length;b++){var c=this.wheels[b];a.addConstraint(c)}},d.prototype.removeFromWorld=function(){var a=this.world;a.removeBody(this.groundBody),a.off("preStep",this.preStepCallback);for(var b=0;b<this.wheels.length;b++){var c=this.wheels[b];a.removeConstraint(c)}this.world=null},d.prototype.addWheel=function(a){var b=new e(this,a);return this.wheels.push(b),b},d.prototype.update=function(){for(var a=0;a<this.wheels.length;a++)this.wheels[a].update()},e.prototype=new g,e.prototype.setBrakeForce=function(a){this.forwardEquation.setSlipForce(a)},e.prototype.setSideFriction=function(a){this.sideEquation.setSlipForce(a)};var j=f.create(),k=f.create();e.prototype.getSpeed=function(){return this.vehicle.chassisBody.vectorToWorldFrame(k,this.localForwardVector),this.vehicle.chassisBody.getVelocityAtPoint(j,k),f.dot(j,k)};var l=f.create();e.prototype.update=function(){this.vehicle.chassisBody.vectorToWorldFrame(this.forwardEquation.t,this.localForwardVector),f.rotate(this.sideEquation.t,this.localForwardVector,Math.PI/2),this.vehicle.chassisBody.vectorToWorldFrame(this.sideEquation.t,this.sideEquation.t),f.rotate(this.forwardEquation.t,this.forwardEquation.t,this.steerValue),f.rotate(this.sideEquation.t,this.sideEquation.t,this.steerValue),this.vehicle.chassisBody.toWorldFrame(this.forwardEquation.contactPointB,this.localPosition),f.copy(this.sideEquation.contactPointB,this.forwardEquation.contactPointB),this.vehicle.chassisBody.vectorToWorldFrame(this.forwardEquation.contactPointA,this.localPosition),f.copy(this.sideEquation.contactPointA,this.forwardEquation.contactPointA),f.normalize(l,this.forwardEquation.t),f.scale(l,l,this.engineForce),this.vehicle.chassisBody.applyForce(l,this.forwardEquation.contactPointA)}},{"../constraints/Constraint":14,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],36:[function(a,b,c){var d=b.exports={AABB:a("./collision/AABB"),AngleLockEquation:a("./equations/AngleLockEquation"),Body:a("./objects/Body"),Broadphase:a("./collision/Broadphase"),Capsule:a("./shapes/Capsule"),Circle:a("./shapes/Circle"),Constraint:a("./constraints/Constraint"),ContactEquation:a("./equations/ContactEquation"),ContactEquationPool:a("./utils/ContactEquationPool"),ContactMaterial:a("./material/ContactMaterial"),Convex:a("./shapes/Convex"),DistanceConstraint:a("./constraints/DistanceConstraint"),Equation:a("./equations/Equation"),EventEmitter:a("./events/EventEmitter"),FrictionEquation:a("./equations/FrictionEquation"),FrictionEquationPool:a("./utils/FrictionEquationPool"),GearConstraint:a("./constraints/GearConstraint"),GSSolver:a("./solver/GSSolver"),Heightfield:a("./shapes/Heightfield"),Line:a("./shapes/Line"),LockConstraint:a("./constraints/LockConstraint"),Material:a("./material/Material"),Narrowphase:a("./collision/Narrowphase"),NaiveBroadphase:a("./collision/NaiveBroadphase"),Particle:a("./shapes/Particle"),Plane:a("./shapes/Plane"),Pool:a("./utils/Pool"),RevoluteConstraint:a("./constraints/RevoluteConstraint"),PrismaticConstraint:a("./constraints/PrismaticConstraint"),Ray:a("./collision/Ray"),RaycastResult:a("./collision/RaycastResult"),Box:a("./shapes/Box"),RotationalVelocityEquation:a("./equations/RotationalVelocityEquation"),SAPBroadphase:a("./collision/SAPBroadphase"),Shape:a("./shapes/Shape"),Solver:a("./solver/Solver"),Spring:a("./objects/Spring"),TopDownVehicle:a("./objects/TopDownVehicle"),LinearSpring:a("./objects/LinearSpring"),RotationalSpring:a("./objects/RotationalSpring"),Utils:a("./utils/Utils"),World:a("./world/World"),vec2:a("./math/vec2"),version:a("../package.json").version};Object.defineProperty(d,"Rectangle",{get:function(){return console.warn("The Rectangle class has been renamed to Box."),this.Box}})},{"../package.json":6,"./collision/AABB":7,"./collision/Broadphase":8,"./collision/NaiveBroadphase":9,"./collision/Narrowphase":10,"./collision/Ray":11,"./collision/RaycastResult":12,"./collision/SAPBroadphase":13,"./constraints/Constraint":14,"./constraints/DistanceConstraint":15,"./constraints/GearConstraint":16,"./constraints/LockConstraint":17,"./constraints/PrismaticConstraint":18,"./constraints/RevoluteConstraint":19,"./equations/AngleLockEquation":20,"./equations/ContactEquation":21,"./equations/Equation":22,"./equations/FrictionEquation":23,"./equations/RotationalVelocityEquation":25,"./events/EventEmitter":26,"./material/ContactMaterial":27,"./material/Material":28,"./math/vec2":30,"./objects/Body":31,"./objects/LinearSpring":32,"./objects/RotationalSpring":33,"./objects/Spring":34,"./objects/TopDownVehicle":35,"./shapes/Box":37,"./shapes/Capsule":38,"./shapes/Circle":39,"./shapes/Convex":40,"./shapes/Heightfield":41,"./shapes/Line":42,"./shapes/Particle":43,"./shapes/Plane":44,"./shapes/Shape":45,"./solver/GSSolver":46,"./solver/Solver":47,"./utils/ContactEquationPool":48,"./utils/FrictionEquationPool":49,"./utils/Pool":55,"./utils/Utils":57,"./world/World":61}],37:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&"number"==typeof arguments[1]&&(a={width:arguments[0],height:arguments[1]},console.warn("The Rectangle has been renamed to Box and its constructor signature has changed. Please use the following format: new Box({ width: 1, height: 1, ... })")),a=a||{};var b=this.width=a.width||1,c=this.height=a.height||1,d=[e.fromValues(-b/2,-c/2),e.fromValues(b/2,-c/2),e.fromValues(b/2,c/2),e.fromValues(-b/2,c/2)],h=[e.fromValues(1,0),e.fromValues(0,1)];a.vertices=d,a.axes=h,a.type=f.BOX,g.call(this,a)}var e=a("../math/vec2"),f=a("./Shape"),g=a("./Convex");b.exports=d,d.prototype=new g,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){var b=this.width,c=this.height;return a*(c*c+b*b)/12},d.prototype.updateBoundingRadius=function(){var a=this.width,b=this.height;this.boundingRadius=Math.sqrt(a*a+b*b)/2};e.create(),e.create(),e.create(),e.create();d.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)},d.prototype.updateArea=function(){this.area=this.width*this.height}},{"../math/vec2":30,"./Convex":40,"./Shape":45}],38:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&"number"==typeof arguments[1]&&(a={length:arguments[0],radius:arguments[1]},console.warn("The Capsule constructor signature has changed. Please use the following format: new Capsule({ radius: 1, length: 1 })")),a=a||{},this.length=a.length||1,this.radius=a.radius||1,a.type=e.CAPSULE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){var b=this.radius,c=this.length+b,d=2*b;return a*(d*d+c*c)/12},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius+this.length/2},d.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius+2*this.radius*this.length};var g=f.create();d.prototype.computeAABB=function(a,b,c){var d=this.radius;f.set(g,this.length/2,0),0!==c&&f.rotate(g,g,c),f.set(a.upperBound,Math.max(g[0]+d,-g[0]+d),Math.max(g[1]+d,-g[1]+d)),f.set(a.lowerBound,Math.min(g[0]-d,-g[0]-d),Math.min(g[1]-d,-g[1]-d)),f.add(a.lowerBound,a.lowerBound,b),f.add(a.upperBound,a.upperBound,b)};var h=f.create(),i=f.create(),j=f.create(),k=f.create(),l=f.fromValues(0,1);d.prototype.raycast=function(a,b,c,d){for(var e=b.from,g=b.to,m=(b.direction,h),n=i,o=j,p=k,q=this.length/2,r=0;r<2;r++){var s=this.radius*(2*r-1);f.set(o,-q,s),f.set(p,q,s),f.toGlobalFrame(o,o,c,d),f.toGlobalFrame(p,p,c,d);var t=f.getLineSegmentsIntersectionFraction(e,g,o,p);if(t>=0&&(f.rotate(n,l,d),f.scale(n,n,2*r-1),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}for(var u=Math.pow(this.radius,2)+Math.pow(q,2),r=0;r<2;r++){f.set(o,q*(2*r-1),0),f.toGlobalFrame(o,o,c,d);var v=Math.pow(g[0]-e[0],2)+Math.pow(g[1]-e[1],2),w=2*((g[0]-e[0])*(e[0]-o[0])+(g[1]-e[1])*(e[1]-o[1])),x=Math.pow(e[0]-o[0],2)+Math.pow(e[1]-o[1],2)-Math.pow(this.radius,2),t=Math.pow(w,2)-4*v*x;if(!(t<0))if(0===t){if(f.lerp(m,e,g,t),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}else{var y=Math.sqrt(t),z=1/(2*v),A=(-w-y)*z,B=(-w+y)*z;if(A>=0&&A<=1&&(f.lerp(m,e,g,A),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,A,n,-1),a.shouldStop(b))))return;if(B>=0&&B<=1&&(f.lerp(m,e,g,B),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,B,n,-1),a.shouldStop(b))))return}}}},{"../math/vec2":30,"./Shape":45}],39:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={radius:arguments[0]},console.warn("The Circle constructor signature has changed. Please use the following format: new Circle({ radius: 1 })")),a=a||{},this.radius=a.radius||1,a.type=e.CIRCLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},d.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},d.prototype.computeAABB=function(a,b,c){var d=this.radius;f.set(a.upperBound,d,d),f.set(a.lowerBound,-d,-d),b&&(f.add(a.lowerBound,a.lowerBound,b),f.add(a.upperBound,a.upperBound,b))};var g=f.create(),h=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,i=b.to,j=this.radius,k=Math.pow(i[0]-e[0],2)+Math.pow(i[1]-e[1],2),l=2*((i[0]-e[0])*(e[0]-c[0])+(i[1]-e[1])*(e[1]-c[1])),m=Math.pow(e[0]-c[0],2)+Math.pow(e[1]-c[1],2)-Math.pow(j,2),n=Math.pow(l,2)-4*k*m,o=g,p=h;if(!(n<0))if(0===n)f.lerp(o,e,i,n),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,n,p,-1);else{var q=Math.sqrt(n),r=1/(2*k),s=(-l-q)*r,t=(-l+q)*r;if(s>=0&&s<=1&&(f.lerp(o,e,i,s),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,s,p,-1),a.shouldStop(b)))return;t>=0&&t<=1&&(f.lerp(o,e,i,t),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,t,p,-1))}}},{"../math/vec2":30,"./Shape":45}],40:[function(a,b,c){function d(a){Array.isArray(arguments[0])&&(a={vertices:arguments[0],axes:arguments[1]},console.warn("The Convex constructor signature has changed. Please use the following format: new Convex({ vertices: [...], ... })")),a=a||{},this.vertices=[];for(var b=void 0!==a.vertices?a.vertices:[],c=0;c<b.length;c++){var d=f.create();f.copy(d,b[c]),this.vertices.push(d)}if(this.axes=[],a.axes)for(var c=0;c<a.axes.length;c++){var g=f.create();f.copy(g,a.axes[c]),this.axes.push(g)}else for(var c=0;c<this.vertices.length;c++){var h=this.vertices[c],i=this.vertices[(c+1)%this.vertices.length],j=f.create();f.sub(j,i,h),f.rotate90cw(j,j),f.normalize(j,j),this.axes.push(j)}if(this.centerOfMass=f.fromValues(0,0),this.triangles=[],this.vertices.length&&(this.updateTriangles(),this.updateCenterOfMass()),this.boundingRadius=0,a.type=e.CONVEX,e.call(this,a),this.updateBoundingRadius(),this.updateArea(),this.area<0)throw new Error("Convex vertices must be given in conter-clockwise winding.")}var e=a("./Shape"),f=a("../math/vec2"),g=a("../math/polyk");a("poly-decomp");b.exports=d,d.prototype=new e,d.prototype.constructor=d;var h=f.create(),i=f.create();d.prototype.projectOntoLocalAxis=function(a,b){for(var c,d,e=null,g=null,a=h,i=0;i<this.vertices.length;i++)c=this.vertices[i],d=f.dot(c,a),(null===e||d>e)&&(e=d),(null===g||d<g)&&(g=d);if(g>e){var j=g;g=e,e=j}f.set(b,g,e)},d.prototype.projectOntoWorldAxis=function(a,b,c,d){var e=i;this.projectOntoLocalAxis(a,d),0!==c?f.rotate(e,a,c):e=a;var g=f.dot(b,e);f.set(d,d[0]+g,d[1]+g)},d.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=g.Triangulate(a),b=0;b<d.length;b+=3){var e=d[b],f=d[b+1],h=d[b+2];this.triangles.push([e,f,h])}};var j=f.create(),k=f.create(),l=f.create(),m=f.create(),n=f.create();f.create(),f.create(),f.create(),f.create();d.prototype.updateCenterOfMass=function(){var a=this.triangles,b=this.vertices,c=this.centerOfMass,e=j,g=l,h=m,i=n,o=k;f.set(c,0,0);for(var p=0,q=0;q!==a.length;q++){var r=a[q],g=b[r[0]],h=b[r[1]],i=b[r[2]];f.centroid(e,g,h,i);var s=d.triangleArea(g,h,i);p+=s,f.scale(o,e,s),f.add(c,c,o)}f.scale(c,c,1/p)},d.prototype.computeMomentOfInertia=function(a){for(var b=0,c=0,d=this.vertices.length,e=d-1,g=0;g<d;e=g,g++){var h=this.vertices[e],i=this.vertices[g],j=Math.abs(f.crossLength(h,i));b+=j*(f.dot(i,i)+f.dot(i,h)+f.dot(h,h)),c+=j}return a/6*(b/c)},d.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=f.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},d.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},d.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,c=0;c!==a.length;c++){var e=a[c],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=d.triangleArea(f,g,h);this.area+=i}},d.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)};var o=f.create(),p=f.create(),q=f.create();d.prototype.raycast=function(a,b,c,d){var e=o,g=p,h=q,i=this.vertices;f.toLocalFrame(e,b.from,c,d),f.toLocalFrame(g,b.to,c,d);for(var j=i.length,k=0;k<j&&!a.shouldStop(b);k++){var l=i[k],m=i[(k+1)%j],n=f.getLineSegmentsIntersectionFraction(e,g,l,m);n>=0&&(f.sub(h,m,l),f.rotate(h,h,-Math.PI/2+d),f.normalize(h,h),b.reportIntersection(a,n,h,k))}}},{"../math/polyk":29,"../math/vec2":30,"./Shape":45,"poly-decomp":5}],41:[function(a,b,c){function d(a){if(Array.isArray(arguments[0])){if(a={heights:arguments[0]},"object"==typeof arguments[1])for(var b in arguments[1])a[b]=arguments[1][b];console.warn("The Heightfield constructor signature has changed. Please use the following format: new Heightfield({ heights: [...], ... })")}a=a||{},this.heights=a.heights?a.heights.slice(0):[],this.maxValue=a.maxValue||null,this.minValue=a.minValue||null,this.elementWidth=a.elementWidth||.1,void 0!==a.maxValue&&void 0!==a.minValue||this.updateMaxMinValues(),a.type=e.HEIGHTFIELD,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.updateMaxMinValues=function(){for(var a=this.heights,b=a[0],c=a[0],d=0;d!==a.length;d++){var e=a[d];e>b&&(b=e),e<c&&(c=e)}this.maxValue=b,this.minValue=c},d.prototype.computeMomentOfInertia=function(a){return Number.MAX_VALUE},d.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},d.prototype.updateArea=function(){for(var a=this.heights,b=0,c=0;c<a.length-1;c++)b+=(a[c]+a[c+1])/2*this.elementWidth;this.area=b};var g=[f.create(),f.create(),f.create(),f.create()];d.prototype.computeAABB=function(a,b,c){f.set(g[0],0,this.maxValue),f.set(g[1],this.elementWidth*this.heights.length,this.maxValue),f.set(g[2],this.elementWidth*this.heights.length,this.minValue),f.set(g[3],0,this.minValue),a.setFromPoints(g,b,c)},d.prototype.getLineSegment=function(a,b,c){var d=this.heights,e=this.elementWidth;f.set(a,c*e,d[c]),f.set(b,(c+1)*e,d[c+1])},d.prototype.getSegmentIndex=function(a){return Math.floor(a[0]/this.elementWidth)},d.prototype.getClampedSegmentIndex=function(a){var b=this.getSegmentIndex(a);return b=Math.min(this.heights.length,Math.max(b,0))};var h=(f.create(),f.create()),i=f.create(),j=f.create(),k=f.create(),l=f.create();f.fromValues(0,1);d.prototype.raycast=function(a,b,c,d){var e=b.from,g=b.to,m=(b.direction,h),n=i,o=j,p=k,q=l;f.toLocalFrame(p,e,c,d),f.toLocalFrame(q,g,c,d);var r=this.getClampedSegmentIndex(p),s=this.getClampedSegmentIndex(q);if(r>s){var t=r;r=s,s=t}for(var u=0;u<this.heights.length-1;u++){this.getLineSegment(n,o,u);var v=f.getLineSegmentsIntersectionFraction(p,q,n,o);if(v>=0&&(f.sub(m,o,n),f.rotate(m,m,d+Math.PI/2),f.normalize(m,m),b.reportIntersection(a,v,m,-1),a.shouldStop(b)))return}}},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],42:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={length:arguments[0]},console.warn("The Line constructor signature has changed. Please use the following format: new Line({ length: 1, ... })")),a=a||{},this.length=a.length||1,a.type=e.LINE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return a*Math.pow(this.length,2)/12},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.length/2};var g=[f.create(),f.create()];d.prototype.computeAABB=function(a,b,c){var d=this.length/2;f.set(g[0],-d,0),f.set(g[1],d,0),a.setFromPoints(g,b,c,0)};var h=(f.create(),f.create()),i=f.create(),j=f.create(),k=f.fromValues(0,1);d.prototype.raycast=function(a,b,c,d){var e=b.from,g=b.to,l=i,m=j,n=this.length/2;f.set(l,-n,0),f.set(m,n,0),f.toGlobalFrame(l,l,c,d),f.toGlobalFrame(m,m,c,d);var o=f.getLineSegmentsIntersectionFraction(l,m,e,g);if(o>=0){var p=h;f.rotate(p,k,d),b.reportIntersection(a,o,p,-1)}}},{"../math/vec2":30,"./Shape":45}],43:[function(a,b,c){function d(a){a=a||{},a.type=e.PARTICLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=0},d.prototype.computeAABB=function(a,b,c){f.copy(a.lowerBound,b),f.copy(a.upperBound,b)}},{"../math/vec2":30,"./Shape":45}],44:[function(a,b,c){function d(a){a=a||{},a.type=e.PLANE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},d.prototype.computeAABB=function(a,b,c){var d=c%(2*Math.PI),e=f.set,g=Number.MAX_VALUE,h=a.lowerBound,i=a.upperBound;0===d?(e(h,-g,-g),e(i,g,0)):d===Math.PI/2?(e(h,0,-g),e(i,g,g)):d===Math.PI?(e(h,-g,0),e(i,g,g)):d===3*Math.PI/2?(e(h,-g,-g),e(i,0,g)):(e(h,-g,-g),e(i,g,g)),f.add(h,h,b),f.add(i,i,b)},d.prototype.updateArea=function(){this.area=Number.MAX_VALUE};var g=f.create(),h=(f.create(),f.create(),f.create()),i=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,j=b.to,k=b.direction,l=g,m=h,n=i;f.set(m,0,1),f.rotate(m,m,d),f.sub(n,e,c);var o=f.dot(n,m);if(f.sub(n,j,c),!(o*f.dot(n,m)>0||f.squaredDistance(e,j)<o*o)){var p=f.dot(m,k);f.sub(l,e,c);var q=-f.dot(m,l)/p/b.length;b.reportIntersection(a,q,m,-1)}}},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],45:[function(a,b,c){function d(a){a=a||{},this.body=null,this.position=e.fromValues(0,0),a.position&&e.copy(this.position,a.position),this.angle=a.angle||0,this.type=a.type||0,this.id=d.idCounter++,this.boundingRadius=0,this.collisionGroup=void 0!==a.collisionGroup?a.collisionGroup:1,this.collisionResponse=void 0===a.collisionResponse||a.collisionResponse,this.collisionMask=void 0!==a.collisionMask?a.collisionMask:1,this.material=a.material||null,this.area=0,this.sensor=void 0!==a.sensor&&a.sensor,this.type&&this.updateBoundingRadius(),this.updateArea()}b.exports=d;var e=a("../math/vec2");d.idCounter=0,d.CIRCLE=1,d.PARTICLE=2,d.PLANE=4,d.CONVEX=8,d.LINE=16,d.BOX=32,Object.defineProperty(d,"RECTANGLE",{get:function(){return console.warn("Shape.RECTANGLE is deprecated, use Shape.BOX instead."),d.BOX}}),d.CAPSULE=64,d.HEIGHTFIELD=128,d.prototype.computeMomentOfInertia=function(a){},d.prototype.updateBoundingRadius=function(){},d.prototype.updateArea=function(){},d.prototype.computeAABB=function(a,b,c){},d.prototype.raycast=function(a,b,c,d){}},{"../math/vec2":30}],46:[function(a,b,c){function d(a){g.call(this,a,g.GS),a=a||{},this.iterations=a.iterations||10,this.tolerance=a.tolerance||1e-7,this.arrayStep=30,this.lambda=new h.ARRAY_TYPE(this.arrayStep),this.Bs=new h.ARRAY_TYPE(this.arrayStep),this.invCs=new h.ARRAY_TYPE(this.arrayStep),this.useZeroRHS=!1,this.frictionIterations=0,this.usedIterations=0}function e(a){for(var b=a.length;b--;)a[b]=0}var f=a("../math/vec2"),g=a("./Solver"),h=a("../utils/Utils"),i=a("../equations/FrictionEquation");b.exports=d,d.prototype=new g,d.prototype.constructor=d,d.prototype.solve=function(a,b){this.sortEquations();var c=0,g=this.iterations,j=this.frictionIterations,k=this.equations,l=k.length,m=Math.pow(this.tolerance*l,2),n=b.bodies,o=b.bodies.length,p=(f.add,f.set,this.useZeroRHS),q=this.lambda
|
||
;if(this.usedIterations=0,l)for(var r=0;r!==o;r++){var s=n[r];s.updateSolveMassProperties()}q.length<l&&(q=this.lambda=new h.ARRAY_TYPE(l+this.arrayStep),this.Bs=new h.ARRAY_TYPE(l+this.arrayStep),this.invCs=new h.ARRAY_TYPE(l+this.arrayStep)),e(q);for(var t=this.invCs,u=this.Bs,q=this.lambda,r=0;r!==k.length;r++){var v=k[r];(v.timeStep!==a||v.needsUpdate)&&(v.timeStep=a,v.update()),u[r]=v.computeB(v.a,v.b,a),t[r]=v.computeInvC(v.epsilon)}var v,w,r,x;if(0!==l){for(r=0;r!==o;r++){var s=n[r];s.resetConstraintVelocity()}if(j){for(c=0;c!==j;c++){for(w=0,x=0;x!==l;x++){v=k[x];var y=d.iterateEquation(x,v,v.epsilon,u,t,q,p,a,c);w+=Math.abs(y)}if(this.usedIterations++,w*w<=m)break}for(d.updateMultipliers(k,q,1/a),x=0;x!==l;x++){var z=k[x];if(z instanceof i){for(var A=0,B=0;B!==z.contactEquations.length;B++)A+=z.contactEquations[B].multiplier;A*=z.frictionCoefficient/z.contactEquations.length,z.maxForce=A,z.minForce=-A}}}for(c=0;c!==g;c++){for(w=0,x=0;x!==l;x++){v=k[x];var y=d.iterateEquation(x,v,v.epsilon,u,t,q,p,a,c);w+=Math.abs(y)}if(this.usedIterations++,w*w<=m)break}for(r=0;r!==o;r++)n[r].addConstraintVelocity();d.updateMultipliers(k,q,1/a)}},d.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},d.iterateEquation=function(a,b,c,d,e,f,g,h,i){var j=d[a],k=e[a],l=f[a],m=b.computeGWlambda(),n=b.maxForce,o=b.minForce;g&&(j=0);var p=k*(j-m-c*l),q=l+p;return q<o*h?p=o*h-l:q>n*h&&(p=n*h-l),f[a]+=p,b.addToWlambda(p),p}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":57,"./Solver":47}],47:[function(a,b,c){function d(a,b){a=a||{},e.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var e=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.solve=function(a,b){throw new Error("Solver.solve should be implemented by subclasses!")};var f={bodies:[]};d.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),f.bodies.length=0,b.getBodies(f.bodies),f.bodies.length&&this.solve(a,f))},d.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},d.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},d.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},d.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},d.prototype.removeAllEquations=function(){this.equations.length=0},d.GS=1,d.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":57}],48:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../equations/ContactEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../equations/FrictionEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/IslandNode"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/IslandNode":60,"./Pool":55}],51:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/Island"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/Island":58,"./Pool":55}],52:[function(a,b,c){function d(){this.overlappingShapesLastState=new e,this.overlappingShapesCurrentState=new e,this.recordPool=new f({size:16}),this.tmpDict=new e,this.tmpArray1=[]}var e=a("./TupleDictionary"),f=(a("./OverlapKeeperRecord"),a("./OverlapKeeperRecordPool"));a("./Utils");b.exports=d,d.prototype.tick=function(){for(var a=this.overlappingShapesLastState,b=this.overlappingShapesCurrentState,c=a.keys.length;c--;){var d=a.keys[c],e=a.getByKey(d);b.getByKey(d);e&&this.recordPool.release(e)}a.reset(),a.copy(b),b.reset()},d.prototype.setOverlapping=function(a,b,c,d){var e=(this.overlappingShapesLastState,this.overlappingShapesCurrentState);if(!e.get(b.id,d.id)){var f=this.recordPool.get();f.set(a,b,c,d),e.set(b.id,d.id,f)}},d.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingShapesLastState,this.overlappingShapesCurrentState,a)},d.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingShapesCurrentState,this.overlappingShapesLastState,a)},d.prototype.bodiesAreOverlapping=function(a,b){for(var c=this.overlappingShapesCurrentState,d=c.keys.length;d--;){var e=c.keys[d],f=c.data[e];if(f.bodyA===a&&f.bodyB===b||f.bodyA===b&&f.bodyB===a)return!0}return!1},d.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");d.data[g]||c.push(h)}return c},d.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id,e=this.overlappingShapesLastState,f=this.overlappingShapesCurrentState;return!e.get(c,d)&&!!f.get(c,d)},d.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.getByKey(c.keys[d]);e&&b.push(e.bodyA,e.bodyB)}return c.reset(),b}},{"./OverlapKeeperRecord":53,"./OverlapKeeperRecordPool":54,"./TupleDictionary":56,"./Utils":57}],53:[function(a,b,c){function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}b.exports=d,d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{}],54:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("./OverlapKeeperRecord"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=a.shapeA=a.shapeB=null,this}},{"./OverlapKeeperRecord":53,"./Pool":55}],55:[function(a,b,c){function d(a){a=a||{},this.objects=[],void 0!==a.size&&this.resize(a.size)}b.exports=d,d.prototype.resize=function(a){for(var b=this.objects;b.length>a;)b.pop();for(;b.length<a;)b.push(this.create());return this},d.prototype.get=function(){var a=this.objects;return a.length?a.pop():this.create()},d.prototype.release=function(a){return this.destroy(a),this.objects.push(a),this}},{}],56:[function(a,b,c){function d(){this.data={},this.keys=[]}var e=a("./Utils");b.exports=d,d.prototype.getKey=function(a,b){return a|=0,b|=0,(0|a)==(0|b)?-1:0|((0|a)>(0|b)?a<<16|65535&b:b<<16|65535&a)},d.prototype.getByKey=function(a){return a|=0,this.data[a]},d.prototype.get=function(a,b){return this.data[this.getKey(a,b)]},d.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");var d=this.getKey(a,b);return this.data[d]||this.keys.push(d),this.data[d]=c,d},d.prototype.reset=function(){for(var a=this.data,b=this.keys,c=b.length;c--;)delete a[b[c]];b.length=0},d.prototype.copy=function(a){this.reset(),e.appendArray(this.keys,a.keys);for(var b=a.keys.length;b--;){var c=a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":57}],57:[function(a,b,c){function d(){}b.exports=d,d.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},d.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;d<e;d++)a[d]=a[d+c];a.length=e},"undefined"!=typeof P2_ARRAY_TYPE?d.ARRAY_TYPE=P2_ARRAY_TYPE:"undefined"!=typeof Float32Array?d.ARRAY_TYPE=Float32Array:d.ARRAY_TYPE=Array,d.extend=function(a,b){for(var c in b)a[c]=b[c]},d.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{}],58:[function(a,b,c){function d(){this.equations=[],this.bodies=[]}var e=a("../objects/Body");b.exports=d,d.prototype.reset=function(){this.equations.length=this.bodies.length=0};var f=[];d.prototype.getBodies=function(a){var b=a||[],c=this.equations;f.length=0;for(var d=0;d!==c.length;d++){var e=c[d];-1===f.indexOf(e.bodyA.id)&&(b.push(e.bodyA),f.push(e.bodyA.id)),-1===f.indexOf(e.bodyB.id)&&(b.push(e.bodyB),f.push(e.bodyB.id))}return b},d.prototype.wantsToSleep=function(){for(var a=0;a<this.bodies.length;a++){var b=this.bodies[a];if(b.type===e.DYNAMIC&&!b.wantsToSleep)return!1}return!0},d.prototype.sleep=function(){for(var a=0;a<this.bodies.length;a++){this.bodies[a].sleep()}return!0}},{"../objects/Body":31}],59:[function(a,b,c){function d(a){this.nodePool=new e({size:16}),this.islandPool=new f({size:8}),this.equations=[],this.islands=[],this.nodes=[],this.queue=[]}var e=(a("../math/vec2"),a("./Island"),a("./IslandNode"),a("./../utils/IslandNodePool")),f=a("./../utils/IslandPool"),g=a("../objects/Body");b.exports=d,d.getUnvisitedNode=function(a){for(var b=a.length,c=0;c!==b;c++){var d=a[c];if(!d.visited&&d.body.type===g.DYNAMIC)return d}return!1},d.prototype.visit=function(a,b,c){b.push(a.body);for(var d=a.equations.length,e=0;e!==d;e++){var f=a.equations[e];-1===c.indexOf(f)&&c.push(f)}},d.prototype.bfs=function(a,b,c){var e=this.queue;for(e.length=0,e.push(a),a.visited=!0,this.visit(a,b,c);e.length;)for(var f,h=e.pop();f=d.getUnvisitedNode(h.neighbors);)f.visited=!0,this.visit(f,b,c),f.body.type===g.DYNAMIC&&e.push(f)},d.prototype.split=function(a){for(var b=a.bodies,c=this.nodes,e=this.equations;c.length;)this.nodePool.release(c.pop());for(var f=0;f!==b.length;f++){var g=this.nodePool.get();g.body=b[f],c.push(g)}for(var h=0;h!==e.length;h++){var i=e[h],f=b.indexOf(i.bodyA),j=b.indexOf(i.bodyB),k=c[f],l=c[j];k.neighbors.push(l),l.neighbors.push(k),k.equations.push(i),l.equations.push(i)}for(var m=this.islands,f=0;f<m.length;f++)this.islandPool.release(m[f]);m.length=0;for(var n;n=d.getUnvisitedNode(c);){var o=this.islandPool.get();this.bfs(n,o.bodies,o.equations),m.push(o)}return m}},{"../math/vec2":30,"../objects/Body":31,"./../utils/IslandNodePool":50,"./../utils/IslandPool":51,"./Island":58,"./IslandNode":60}],60:[function(a,b,c){function d(a){this.body=a,this.neighbors=[],this.equations=[],this.visited=!1}b.exports=d,d.prototype.reset=function(){this.equations.length=0,this.neighbors.length=0,this.visited=!1,this.body=null}},{}],61:[function(a,b,c){function d(a){l.apply(this),a=a||{},this.springs=[],this.bodies=[],this.disabledBodyCollisionPairs=[],this.solver=a.solver||new e,this.narrowphase=new r(this),this.islandManager=new u,this.gravity=f.fromValues(0,-9.78),a.gravity&&f.copy(this.gravity,a.gravity),this.frictionGravity=f.length(this.gravity)||10,this.useWorldGravityAsFrictionGravity=!0,this.useFrictionGravityOnZeroGravity=!0,this.broadphase=a.broadphase||new q,this.broadphase.setWorld(this),this.constraints=[],this.defaultMaterial=new n,this.defaultContactMaterial=new o(this.defaultMaterial,this.defaultMaterial),this.lastTimeStep=1/60,this.applySpringForces=!0,this.applyDamping=!0,this.applyGravity=!0,this.solveConstraints=!0,this.contactMaterials=[],this.time=0,this.accumulator=0,this.stepping=!1,this.bodiesToBeRemoved=[],this.islandSplit=void 0===a.islandSplit||!!a.islandSplit,this.emitImpactEvent=!0,this._constraintIdCounter=0,this._bodyIdCounter=0,this.postStepEvent={type:"postStep"},this.addBodyEvent={type:"addBody",body:null},this.removeBodyEvent={type:"removeBody",body:null},this.addSpringEvent={type:"addSpring",spring:null},this.impactEvent={type:"impact",bodyA:null,bodyB:null,shapeA:null,shapeB:null,contactEquation:null},this.postBroadphaseEvent={type:"postBroadphase",pairs:null},this.sleepMode=d.NO_SLEEPING,this.beginContactEvent={type:"beginContact",shapeA:null,shapeB:null,bodyA:null,bodyB:null,contactEquations:[]},this.endContactEvent={type:"endContact",shapeA:null,shapeB:null,bodyA:null,bodyB:null},this.preSolveEvent={type:"preSolve",contactEquations:null,frictionEquations:null},this.overlappingShapesLastState={keys:[]},this.overlappingShapesCurrentState={keys:[]},this.overlapKeeper=new t}var e=a("../solver/GSSolver"),f=(a("../solver/Solver"),a("../collision/Ray"),a("../math/vec2")),g=a("../shapes/Circle"),h=a("../shapes/Convex"),i=(a("../shapes/Line"),a("../shapes/Plane")),j=a("../shapes/Capsule"),k=a("../shapes/Particle"),l=a("../events/EventEmitter"),m=a("../objects/Body"),n=(a("../shapes/Shape"),a("../objects/LinearSpring"),a("../material/Material")),o=a("../material/ContactMaterial"),p=(a("../constraints/DistanceConstraint"),a("../constraints/Constraint"),a("../constraints/LockConstraint"),a("../constraints/RevoluteConstraint"),a("../constraints/PrismaticConstraint"),a("../constraints/GearConstraint"),a("../../package.json"),a("../collision/Broadphase"),a("../collision/AABB")),q=a("../collision/SAPBroadphase"),r=a("../collision/Narrowphase"),s=a("../utils/Utils"),t=a("../utils/OverlapKeeper"),u=a("./IslandManager");a("../objects/RotationalSpring");b.exports=d,d.prototype=new Object(l.prototype),d.prototype.constructor=d,d.NO_SLEEPING=1,d.BODY_SLEEPING=2,d.ISLAND_SLEEPING=4,d.prototype.addConstraint=function(a){this.constraints.push(a)},d.prototype.addContactMaterial=function(a){this.contactMaterials.push(a)},d.prototype.removeContactMaterial=function(a){var b=this.contactMaterials.indexOf(a);-1!==b&&s.splice(this.contactMaterials,b,1)},d.prototype.getContactMaterial=function(a,b){for(var c=this.contactMaterials,d=0,e=c.length;d!==e;d++){var f=c[d];if(f.materialA.id===a.id&&f.materialB.id===b.id||f.materialA.id===b.id&&f.materialB.id===a.id)return f}return!1},d.prototype.removeConstraint=function(a){var b=this.constraints.indexOf(a);-1!==b&&s.splice(this.constraints,b,1)};var v=(f.create(),f.create(),f.create(),f.create(),f.create(),f.create(),f.create()),w=f.fromValues(0,0),x=f.fromValues(0,0);f.fromValues(0,0),f.fromValues(0,0);d.prototype.step=function(a,b,c){if(c=c||10,0===(b=b||0))this.internalStep(a),this.time+=a;else{this.accumulator+=b;for(var d=0;this.accumulator>=a&&d<c;)this.internalStep(a),this.time+=a,this.accumulator-=a,d++;for(var e=this.accumulator%a/a,g=0;g!==this.bodies.length;g++){var h=this.bodies[g];f.lerp(h.interpolatedPosition,h.previousPosition,h.position,e),h.interpolatedAngle=h.previousAngle+e*(h.angle-h.previousAngle)}}};var y=[];d.prototype.internalStep=function(a){this.stepping=!0;var b=this.springs.length,c=this.springs,e=this.bodies,g=this.gravity,h=this.solver,i=this.bodies.length,j=this.broadphase,k=this.narrowphase,l=this.constraints,n=v,o=(f.scale,f.add),p=(f.rotate,this.islandManager);if(this.overlapKeeper.tick(),this.lastTimeStep=a,this.useWorldGravityAsFrictionGravity){var q=f.length(this.gravity);0===q&&this.useFrictionGravityOnZeroGravity||(this.frictionGravity=q)}if(this.applyGravity)for(var r=0;r!==i;r++){var t=e[r],u=t.force;t.type===m.DYNAMIC&&t.sleepState!==m.SLEEPING&&(f.scale(n,g,t.mass*t.gravityScale),o(u,u,n))}if(this.applySpringForces)for(var r=0;r!==b;r++){var w=c[r];w.applyForce()}if(this.applyDamping)for(var r=0;r!==i;r++){var t=e[r];t.type===m.DYNAMIC&&t.applyDamping(a)}for(var x=j.getCollisionPairs(this),z=this.disabledBodyCollisionPairs,r=z.length-2;r>=0;r-=2)for(var A=x.length-2;A>=0;A-=2)(z[r]===x[A]&&z[r+1]===x[A+1]||z[r+1]===x[A]&&z[r]===x[A+1])&&x.splice(A,2);var B=l.length;for(r=0;r!==B;r++){var C=l[r];if(!C.collideConnected)for(var A=x.length-2;A>=0;A-=2)(C.bodyA===x[A]&&C.bodyB===x[A+1]||C.bodyB===x[A]&&C.bodyA===x[A+1])&&x.splice(A,2)}this.postBroadphaseEvent.pairs=x,this.emit(this.postBroadphaseEvent),this.postBroadphaseEvent.pairs=null,k.reset(this);for(var r=0,D=x.length;r!==D;r+=2)for(var E=x[r],F=x[r+1],G=0,H=E.shapes.length;G!==H;G++)for(var I=E.shapes[G],J=I.position,K=I.angle,L=0,M=F.shapes.length;L!==M;L++){var N=F.shapes[L],O=N.position,P=N.angle,Q=this.defaultContactMaterial;if(I.material&&N.material){var R=this.getContactMaterial(I.material,N.material);R&&(Q=R)}this.runNarrowphase(k,E,I,J,K,F,N,O,P,Q,this.frictionGravity)}for(var r=0;r!==i;r++){var S=e[r];S._wakeUpAfterNarrowphase&&(S.wakeUp(),S._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(y);for(var T=this.endContactEvent,L=y.length;L--;){var U=y[L];T.shapeA=U.shapeA,T.shapeB=U.shapeB,T.bodyA=U.bodyA,T.bodyB=U.bodyB,this.emit(T)}y.length=0}var V=this.preSolveEvent;V.contactEquations=k.contactEquations,V.frictionEquations=k.frictionEquations,this.emit(V),V.contactEquations=V.frictionEquations=null;var B=l.length;for(r=0;r!==B;r++)l[r].update();if(k.contactEquations.length||k.frictionEquations.length||B)if(this.islandSplit){for(p.equations.length=0,s.appendArray(p.equations,k.contactEquations),s.appendArray(p.equations,k.frictionEquations),r=0;r!==B;r++)s.appendArray(p.equations,l[r].equations);p.split(this);for(var r=0;r!==p.islands.length;r++){var W=p.islands[r];W.equations.length&&h.solveIsland(a,W)}}else{for(h.addEquations(k.contactEquations),h.addEquations(k.frictionEquations),r=0;r!==B;r++)h.addEquations(l[r].equations);this.solveConstraints&&h.solve(a,this),h.removeAllEquations()}for(var r=0;r!==i;r++){var S=e[r];S.integrate(a)}for(var r=0;r!==i;r++)e[r].setZeroForce();if(this.emitImpactEvent&&this.has("impact"))for(var X=this.impactEvent,r=0;r!==k.contactEquations.length;r++){var Y=k.contactEquations[r];Y.firstImpact&&(X.bodyA=Y.bodyA,X.bodyB=Y.bodyB,X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.contactEquation=Y,this.emit(X))}if(this.sleepMode===d.BODY_SLEEPING)for(r=0;r!==i;r++)e[r].sleepTick(this.time,!1,a);else if(this.sleepMode===d.ISLAND_SLEEPING&&this.islandSplit){for(r=0;r!==i;r++)e[r].sleepTick(this.time,!0,a);for(var r=0;r<this.islandManager.islands.length;r++){var W=this.islandManager.islands[r];W.wantsToSleep()&&W.sleep()}}this.stepping=!1;for(var Z=this.bodiesToBeRemoved,r=0;r!==Z.length;r++)this.removeBody(Z[r]);Z.length=0,this.emit(this.postStepEvent)},d.prototype.runNarrowphase=function(a,b,c,d,e,g,h,i,j,k,l){if(0!=(c.collisionGroup&h.collisionMask)&&0!=(h.collisionGroup&c.collisionMask)){f.rotate(w,d,b.angle),f.rotate(x,i,g.angle),f.add(w,w,b.position),f.add(x,x,g.position);var n=e+b.angle,o=j+g.angle;a.enableFriction=k.friction>0,a.frictionCoefficient=k.friction;var p;p=b.type===m.STATIC||b.type===m.KINEMATIC?g.mass:g.type===m.STATIC||g.type===m.KINEMATIC?b.mass:b.mass*g.mass/(b.mass+g.mass),a.slipForce=k.friction*l*p,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation,a.contactSkinSize=k.contactSkinSize,a.enabledEquations=b.collisionResponse&&g.collisionResponse&&c.collisionResponse&&h.collisionResponse;var q=a[c.type|h.type],r=0;if(q){var s=c.sensor||h.sensor,t=a.frictionEquations.length;r=c.type<h.type?q.call(a,b,c,w,n,g,h,x,o,s):q.call(a,g,h,x,o,b,c,w,n,s);var u=a.frictionEquations.length-t;if(r){if(b.allowSleep&&b.type===m.DYNAMIC&&b.sleepState===m.SLEEPING&&g.sleepState===m.AWAKE&&g.type!==m.STATIC){f.squaredLength(g.velocity)+Math.pow(g.angularVelocity,2)>=2*Math.pow(g.sleepSpeedLimit,2)&&(b._wakeUpAfterNarrowphase=!0)}if(g.allowSleep&&g.type===m.DYNAMIC&&g.sleepState===m.SLEEPING&&b.sleepState===m.AWAKE&&b.type!==m.STATIC){f.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2)>=2*Math.pow(b.sleepSpeedLimit,2)&&(g._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,g,h),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,h)){var v=this.beginContactEvent;if(v.shapeA=c,v.shapeB=h,v.bodyA=b,v.bodyB=g,v.contactEquations.length=0,"number"==typeof r)for(var y=a.contactEquations.length-r;y<a.contactEquations.length;y++)v.contactEquations.push(a.contactEquations[y]);this.emit(v)}if("number"==typeof r&&u>1)for(var y=a.frictionEquations.length-u;y<a.frictionEquations.length;y++){var z=a.frictionEquations[y];z.setSlipForce(z.getSlipForce()/u)}}}}},d.prototype.addSpring=function(a){this.springs.push(a);var b=this.addSpringEvent;b.spring=a,this.emit(b),b.spring=null},d.prototype.removeSpring=function(a){var b=this.springs.indexOf(a);-1!==b&&s.splice(this.springs,b,1)},d.prototype.addBody=function(a){if(-1===this.bodies.indexOf(a)){this.bodies.push(a),a.world=this;var b=this.addBodyEvent;b.body=a,this.emit(b),b.body=null}},d.prototype.removeBody=function(a){if(this.stepping)this.bodiesToBeRemoved.push(a);else{a.world=null;var b=this.bodies.indexOf(a);-1!==b&&(s.splice(this.bodies,b,1),this.removeBodyEvent.body=a,a.resetConstraintVelocity(),this.emit(this.removeBodyEvent),this.removeBodyEvent.body=null)}},d.prototype.getBodyById=function(a){for(var b=this.bodies,c=0;c<b.length;c++){var d=b[c];if(d.id===a)return d}return!1},d.prototype.disableBodyCollision=function(a,b){this.disabledBodyCollisionPairs.push(a,b)},d.prototype.enableBodyCollision=function(a,b){for(var c=this.disabledBodyCollisionPairs,d=0;d<c.length;d+=2)if(c[d]===a&&c[d+1]===b||c[d+1]===a&&c[d]===b)return void c.splice(d,2)},d.prototype.clear=function(){this.time=0,this.solver&&this.solver.equations.length&&this.solver.removeAllEquations();for(var a=this.constraints,b=a.length-1;b>=0;b--)this.removeConstraint(a[b]);for(var c=this.bodies,b=c.length-1;b>=0;b--)this.removeBody(c[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);d.apply(this)};var z=f.create(),A=(f.fromValues(0,0),f.fromValues(0,0));d.prototype.hitTest=function(a,b,c){c=c||0;var d=new m({position:a}),e=new k,l=a,n=z,o=A;d.addShape(e);for(var p=this.narrowphase,q=[],r=0,s=b.length;r!==s;r++)for(var t=b[r],u=0,v=t.shapes.length;u!==v;u++){var w=t.shapes[u];f.rotate(n,w.position,t.angle),f.add(n,n,t.position);var x=w.angle+t.angle;(w instanceof g&&p.circleParticle(t,w,n,x,d,e,l,0,!0)||w instanceof h&&p.particleConvex(d,e,l,0,t,w,n,x,!0)||w instanceof i&&p.particlePlane(d,e,l,0,t,w,n,x,!0)||w instanceof j&&p.particleCapsule(d,e,l,0,t,w,n,x,!0)||w instanceof k&&f.squaredLength(f.sub(o,n,a))<c*c)&&q.push(t)}return q},d.prototype.setGlobalStiffness=function(a){for(var b=this.constraints,c=0;c!==b.length;c++)for(var d=b[c],e=0;e!==d.equations.length;e++){var f=d.equations[e];f.stiffness=a,f.needsUpdate=!0}for(var g=this.contactMaterials,c=0;c!==g.length;c++){var d=g[c];d.stiffness=d.frictionStiffness=a}var d=this.defaultContactMaterial;d.stiffness=d.frictionStiffness=a},d.prototype.setGlobalRelaxation=function(a){for(var b=0;b!==this.constraints.length;b++)for(var c=this.constraints[b],d=0;d!==c.equations.length;d++){var e=c.equations[d];e.relaxation=a,e.needsUpdate=!0}for(var b=0;b!==this.contactMaterials.length;b++){var c=this.contactMaterials[b];c.relaxation=c.frictionRelaxation=a}var c=this.defaultContactMaterial;c.relaxation=c.frictionRelaxation=a};var B=new p,C=[];d.prototype.raycast=function(a,b){return b.getAABB(B),this.broadphase.aabbQuery(this,B,C),b.intersectBodies(a,C),C.length=0,a.hasHit()}},{"../../package.json":6,"../collision/AABB":7,"../collision/Broadphase":8,"../collision/Narrowphase":10,"../collision/Ray":11,"../collision/SAPBroadphase":13,"../constraints/Constraint":14,"../constraints/DistanceConstraint":15,"../constraints/GearConstraint":16,"../constraints/LockConstraint":17,"../constraints/PrismaticConstraint":18,"../constraints/RevoluteConstraint":19,"../events/EventEmitter":26,"../material/ContactMaterial":27,"../material/Material":28,"../math/vec2":30,"../objects/Body":31,"../objects/LinearSpring":32,"../objects/RotationalSpring":33,"../shapes/Capsule":38,"../shapes/Circle":39,"../shapes/Convex":40,"../shapes/Line":42,"../shapes/Particle":43,"../shapes/Plane":44,"../shapes/Shape":45,"../solver/GSSolver":46,"../solver/Solver":47,"../utils/OverlapKeeper":52,"../utils/Utils":57,"./IslandManager":59}]},{},[36])(36)}),function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this.filterArea=null,this._sr=0,this._cr=1,this._bounds=new b.Rectangle(0,0,0,0),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype={destroy:function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.worldTransform=null,this.filterArea=null,this.renderable=!1,this._bounds=null,this._currentBounds=null,this._mask=null,this._destroyCachedSprite()},updateTransform:function(a){if(!a&&!this.parent&&!this.game)return this;var c=this.parent;a?c=a:this.parent||(c=this.game.world);var d,e,f,g,h,i,j=c.worldTransform,k=this.worldTransform;return this.rotation%b.PI_2?(this.rotation!==this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation)),d=this._cr*this.scale.x,e=this._sr*this.scale.x,f=-this._sr*this.scale.y,g=this._cr*this.scale.y,h=this.position.x,i=this.position.y,(this.pivot.x||this.pivot.y)&&(h-=this.pivot.x*d+this.pivot.y*f,i-=this.pivot.x*e+this.pivot.y*g),k.a=d*j.a+e*j.c,k.b=d*j.b+e*j.d,k.c=f*j.a+g*j.c,k.d=f*j.b+g*j.d,k.tx=h*j.a+i*j.c+j.tx,k.ty=h*j.b+i*j.d+j.ty):(d=this.scale.x,g=this.scale.y,h=this.position.x-this.pivot.x*d,i=this.position.y-this.pivot.y*g,k.a=d*j.a,k.b=d*j.b,k.c=g*j.c,k.d=g*j.d,k.tx=h*j.a+i*j.c+j.tx,k.ty=h*j.b+i*j.d+j.ty),this.worldAlpha=this.alpha*c.worldAlpha,this.worldPosition.set(k.tx,k.ty),this.worldScale.set(this.scale.x*Math.sqrt(k.a*k.a+k.c*k.c),this.scale.y*Math.sqrt(k.b*k.b+k.d*k.d)),this.worldRotation=Math.atan2(-k.c,k.d),this._currentBounds=null,this.transformCallback&&this.transformCallback.call(this.transformCallbackContext,k,j),this},preUpdate:function(){},generateTexture:function(a,c,d){var e=this.getLocalBounds(),f=new b.RenderTexture(0|e.width,0|e.height,d,c,a);return b.DisplayObject._tempMatrix.tx=-e.x,b.DisplayObject._tempMatrix.ty=-e.y,f.render(this,b.DisplayObject._tempMatrix),f},updateCache:function(){return this._generateCachedSprite(),this},toGlobal:function(a){return this.updateTransform(),this.worldTransform.apply(a)},toLocal:function(a,b){return b&&(a=b.toGlobal(a)),this.updateTransform(),this.worldTransform.applyInverse(a)},_renderCachedSprite:function(a){this._cachedSprite.worldAlpha=this.worldAlpha,a.gl?b.Sprite.prototype._renderWebGL.call(this._cachedSprite,a):b.Sprite.prototype._renderCanvas.call(this._cachedSprite,a)},_generateCachedSprite:function(){this._cacheAsBitmap=!1;var a=this.getLocalBounds();if(a.width=Math.max(1,Math.ceil(a.width)),a.height=Math.max(1,Math.ceil(a.height)),this.updateTransform(),this._cachedSprite)this._cachedSprite.texture.resize(a.width,a.height);else{var c=new b.RenderTexture(a.width,a.height);this._cachedSprite=new b.Sprite(c),this._cachedSprite.worldTransform=this.worldTransform}var d=this._filters;this._filters=null,this._cachedSprite.filters=d,b.DisplayObject._tempMatrix.tx=-a.x,b.DisplayObject._tempMatrix.ty=-a.y,this._cachedSprite.texture.render(this,b.DisplayObject._tempMatrix,!0),this._cachedSprite.anchor.x=-a.x/a.width,this._cachedSprite.anchor.y=-a.y/a.height,this._filters=d,this._cacheAsBitmap=!0},_destroyCachedSprite:function(){this._cachedSprite&&(this._cachedSprite.texture.destroy(!0),this._cachedSprite=null)}},b.DisplayObject.prototype.displayObjectUpdateTransform=b.DisplayObject.prototype.updateTransform,Object.defineProperties(b.DisplayObject.prototype,{x:{get:function(){return this.position.x},set:function(a){this.position.x=a}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a}},worldVisible:{get:function(){if(this.visible){var a=this.parent;if(!a)return this.visible;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}return!1}},mask:{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,a&&(this._mask.isMask=!0)}},filters:{get:function(){return this._filters},set:function(a){if(Array.isArray(a)){for(var c=[],d=0;d<a.length;d++)for(var e=a[d].passes,f=0;f<e.length;f++)c.push(e[f]);this._filterBlock={target:this,filterPasses:c}}this._filters=a,this.blendMode&&this.blendMode===b.blendModes.MULTIPLY&&(this.blendMode=b.blendModes.NORMAL)}},cacheAsBitmap:{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap!==a&&(a?this._generateCachedSprite():this._destroyCachedSprite(),this._cacheAsBitmap=a)}}}),b.DisplayObjectContainer=function(){b.DisplayObject.call(this),this.children=[],this.ignoreChildInput=!1},b.DisplayObjectContainer.prototype=Object.create(b.DisplayObject.prototype),b.DisplayObjectContainer.prototype.constructor=b.DisplayObjectContainer,b.DisplayObjectContainer.prototype.addChild=function(a){return this.addChildAt(a,this.children.length)},b.DisplayObjectContainer.prototype.addChildAt=function(a,b){if(b>=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(c<0||d<0)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(b<0||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(a<0||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return b&&(b.parent=void 0,this.children.splice(a,1)),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){void 0===a&&(a=0),void 0===b&&(b=this.children.length);var c=b-a;if(c>0&&c<=b){for(var d=this.children.splice(a,c),e=0;e<d.length;e++){d[e].parent=void 0}return d}if(0===c&&0===this.children.length)return[];throw new Error("removeChildren: Range Error, numeric values are outside the acceptable range")},b.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible&&(this.displayObjectUpdateTransform(),!this._cacheAsBitmap))for(var a=0;a<this.children.length;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(a){var c=a&&a instanceof b.DisplayObject,d=!0
|
||
;c?d=a instanceof b.DisplayObjectContainer&&a.contains(this):a=this;var e;if(c){var f=a.worldTransform;for(a.worldTransform=b.identityMatrix,e=0;e<a.children.length;e++)a.children[e].updateTransform()}var g,h,i,j=1/0,k=1/0,l=-1/0,m=-1/0,n=!1;for(e=0;e<this.children.length;e++){this.children[e].visible&&(n=!0,g=this.children[e].getBounds(),j=j<g.x?j:g.x,k=k<g.y?k:g.y,h=g.width+g.x,i=g.height+g.y,l=l>h?l:h,m=m>i?m:i)}var o=this._bounds;if(!n){o=new b.Rectangle;var p=o.x,q=o.width+o.x,r=o.y,s=o.height+o.y,t=this.worldTransform,u=t.a,v=t.b,w=t.c,x=t.d,y=t.tx,z=t.ty,A=u*q+w*s+y,B=x*s+v*q+z,C=u*p+w*s+y,D=x*s+v*p+z,E=u*p+w*r+y,F=x*r+v*p+z,G=u*q+w*r+y,H=x*r+v*q+z;l=A,m=B,j=A,k=B,j=C<j?C:j,j=E<j?E:j,j=G<j?G:j,k=D<k?D:k,k=F<k?F:k,k=H<k?H:k,l=C>l?C:l,l=E>l?E:l,l=G>l?G:l,m=D>m?D:m,m=F>m?F:m,m=H>m?H:m}if(o.x=j,o.y=k,o.width=l-j,o.height=m-k,c)for(a.worldTransform=f,e=0;e<a.children.length;e++)a.children[e].updateTransform();if(!d){var I=a.getBounds();o.x-=I.x,o.y-=I.y}return o},b.DisplayObjectContainer.prototype.getLocalBounds=function(){return this.getBounds(this)},b.DisplayObjectContainer.prototype.contains=function(a){return!!a&&(a===this||this.contains(a.parent))},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0;b<this.children.length;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0;b<this.children.length;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(!1!==this.visible&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0;b<this.children.length;b++)this.children[b]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},Object.defineProperty(b.DisplayObjectContainer.prototype,"width",{get:function(){return this.getLocalBounds().width*this.scale.x},set:function(a){var b=this.getLocalBounds().width;this.scale.x=0!==b?a/b:1,this._width=a}}),Object.defineProperty(b.DisplayObjectContainer.prototype,"height",{get:function(){return this.getLocalBounds().height*this.scale.y},set:function(a){var b=this.getLocalBounds().height;this.scale.y=0!==b?a/b:1,this._height=a}}),b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a||b.Texture.emptyTexture,this._width=0,this._height=0,this.tint=16777215,this.cachedTint=-1,this.tintedTexture=null,this.blendMode=b.blendModes.NORMAL,this.shader=null,this.exists=!0,this.texture.baseTexture.hasLoaded&&this.onTextureUpdate(),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a,b){void 0!==b&&this.texture.baseTexture.destroy(),this.texture.baseTexture.skipRender=!1,this.texture=a,this.texture.valid=!0,this.cachedTint=-1},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=-1/0,p=-1/0,q=1/0,r=1/0;if(0===j&&0===k){if(i<0){i*=-1;var s=d;d=-e,e=-s}if(l<0){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=t<q?t:q,q=v<q?v:q,q=x<q?x:q,q=z<q?z:q,r=u<r?u:r,r=w<r?w:r,r=y<r?y:r,r=A<r?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0;c<this.children.length;c++)this.children[c].updateTransform();var d=this.getBounds();for(this.worldTransform=a,c=0;c<this.children.length;c++)this.children[c].updateTransform();return d},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e<this.children.length;e++)this.children[e]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else{a.spriteBatch.render(this);for(var e=0;e<this.children.length;e++)this.children[e]._renderWebGL(a,c)}}},b.Sprite.prototype._renderCanvas=function(a,c){if(!(!this.visible||0===this.alpha||!this.renderable||this.texture.crop.width<=0||this.texture.crop.height<=0)){var d=this.worldTransform;if(c&&(d=c),this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var e=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var f=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,g=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height,h=d.tx*a.resolution+a.shakeX,i=d.ty*a.resolution+a.shakeY;a.roundPixels?(a.context.setTransform(d.a,d.b,d.c,d.d,0|h,0|i),f|=0,g|=0):a.context.setTransform(d.a,d.b,d.c,d.d,h,i);var j=this.texture.crop.width,k=this.texture.crop.height;if(f/=e,g/=e,16777215!==this.tint)(this.texture.requiresReTint||this.cachedTint!==this.tint)&&(this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint),this.cachedTint=this.tint,this.texture.requiresReTint=!1),a.context.drawImage(this.tintedTexture,0,0,j,k,f,g,j/e,k/e);else{var l=this.texture.crop.x,m=this.texture.crop.y;a.context.drawImage(this.texture.baseTexture.source,l,m,j,k,f,g,j/e,k/e)}}for(var n=0;n<this.children.length;n++)this.children[n]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){this.displayObjectUpdateTransform()},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),this.fastSpriteBatch.gl!==a.gl&&this.fastSpriteBatch.setContext(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var b=a.context;b.globalAlpha=this.worldAlpha,this.displayObjectUpdateTransform();for(var c=this.worldTransform,d=!0,e=0;e<this.children.length;e++){var f=this.children[e];if(f.visible){var g=f.texture,h=g.frame;if(b.globalAlpha=this.worldAlpha*f.alpha,f.rotation%(2*Math.PI)==0)d&&(b.setTransform(c.a,c.b,c.c,c.d,c.tx,c.ty),d=!1),b.drawImage(g.baseTexture.source,h.x,h.y,h.width,h.height,f.anchor.x*(-h.width*f.scale.x)+f.position.x+.5+a.shakeX|0,f.anchor.y*(-h.height*f.scale.y)+f.position.y+.5+a.shakeY|0,h.width*f.scale.x,h.height*f.scale.y);else{d||(d=!0),f.displayObjectUpdateTransform();var i=f.worldTransform,j=i.tx*a.resolution+a.shakeX,k=i.ty*a.resolution+a.shakeY;a.roundPixels?b.setTransform(i.a,i.b,i.c,i.d,0|j,0|k):b.setTransform(i.a,i.b,i.c,i.d,j,k),b.drawImage(g.baseTexture.source,h.x,h.y,h.width,h.height,f.anchor.x*-h.width+.5|0,f.anchor.y*-h.height+.5|0,h.width,h.height)}}}}},b.hex2rgb=function(a){return[(a>>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0==(a&a-1))return a;for(var b=1;b<a;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0==(a&a-1)&&b>0&&0==(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;c<a.length;c++)if(!a[c].parent)return c;return-1},remove:function(a){for(var c=b.CanvasPool.pool,d=0;d<c.length;d++)c[d].parent===a&&(c[d].parent=null,c[d].canvas.width=1,c[d].canvas.height=1)},removeByCanvas:function(a){for(var c=b.CanvasPool.pool,d=0;d<c.length;d++)c[d].canvas===a&&(c[d].parent=null,c[d].canvas.width=1,c[d].canvas.height=1)},getTotal:function(){for(var a=b.CanvasPool.pool,c=0,d=0;d<a.length;d++)a[d].parent&&c++;return c},getFree:function(){for(var a=b.CanvasPool.pool,c=0,d=0;d<a.length;d++)a[d].parent||c++;return c}},b.CanvasPool.pool=[],b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b;Array.isArray(b)&&(d=b.join("\n"));var 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)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||(window.console.log(a.getProgramInfoLog(g)),window.console.log("Could not initialise shaders")),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?!0===a.glMatrix?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform float flipY;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.flipY=a.getUniformLocation(c,"flipY"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","uniform float flipY;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.flipY=a.getUniformLocation(c,"flipY"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a){this.game=a,b.defaultRenderer||(b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=a.resolution,this.transparent=a.transparent,this.autoResize=!1,this.preserveDrawingBuffer=a.preserveDrawingBuffer,this.clearBeforeRender=a.clearBeforeRender,this.width=a.width,this.height=a.height,this.view=a.canvas,this._contextOptions={alpha:this.transparent,antialias:a.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:this.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point,this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.game=this.game,this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){var b=this.gl;b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.game.clearBeforeRender&&(b.clearColor(a._bgColor.r,a._bgColor.g,a._bgColor.b,a._bgColor.a),b.clear(b.COLOR_BUFFER_BIT)),this.offset.x=this.game.camera._shake.x,this.offset.y=this.game.camera._shake.y,this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d,e){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.flipY=d?-1:1,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession,e),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(!a.hasLoaded)return!1;var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,!0},b.WebGLRenderer.prototype.destroy=function(){b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null,b.CanvasPool.remove(this),b.instances[this.glContextId]=null,b.WebGLRenderer.glContextId--},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;if(!b.blendModesWebGL){var c=[],d=b.blendModes;c[d.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],c[d.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],c[d.SCREEN]=[a.SRC_ALPHA,a.ONE],c[d.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],c[d.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL=c}},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return c&&this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),void 0!==a._webGL[d.id]&&void 0!==a._webGL[d.id].data&&0!==a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;void 0!==a._webGL[c.id]&&void 0!==a._webGL[c.id].data&&0!==a._webGL[c.id].data.length&&b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniform1f(e.flipY,d.flipY),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform1f(e.flipY,d.flipY),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),
|
||
f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;a<this.maxAttibs;a++)this.attribState[a]=!1;this.stack=[]},b.WebGLShaderManager.prototype.constructor=b.WebGLShaderManager,b.WebGLShaderManager.prototype.setContext=function(a){this.gl=a,this.primitiveShader=new b.PrimitiveShader(a),this.complexPrimitiveShader=new b.ComplexPrimitiveShader(a),this.defaultShader=new b.PixiShader(a),this.fastShader=new b.PixiFastShader(a),this.stripShader=new b.StripShader(a),this.setShader(this.defaultShader)},b.WebGLShaderManager.prototype.setAttribs=function(a){var b;for(b=0;b<this.tempAttribState.length;b++)this.tempAttribState[b]=!1;for(b=0;b<a.length;b++){var c=a[b];this.tempAttribState[c]=!0}var d=this.gl;for(b=0;b<this.attribState.length;b++)this.attribState[b]!==this.tempAttribState[b]&&(this.attribState[b]=this.tempAttribState[b],this.tempAttribState[b]?d.enableVertexAttribArray(b):d.disableVertexAttribArray(b))},b.WebGLShaderManager.prototype.setShader=function(a){return this._currentId!==a._UID&&(this._currentId=a._UID,this.currentShader=a,this.gl.useProgram(a.program),this.setAttribs(a.attributes),!0)},b.WebGLShaderManager.prototype.destroy=function(){this.attribState=null,this.tempAttribState=null,this.primitiveShader.destroy(),this.complexPrimitiveShader.destroy(),this.defaultShader.destroy(),this.fastShader.destroy(),this.stripShader.destroy(),this.gl=null},b.WebGLSpriteBatch=function(){this.vertSize=5,this.size=2e3;var a=4*this.size*4*this.vertSize,c=6*this.size;this.vertices=new b.ArrayBuffer(a),this.positions=new b.Float32Array(this.vertices),this.colors=new b.Uint32Array(this.vertices),this.indices=new b.Uint16Array(c),this.lastIndexCount=0;for(var d=0,e=0;d<c;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;q<r;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.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},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;e<d;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+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)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.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)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;d<e;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h=this.vertices;if(b=a.texture._uvs,a.texture.frame.width,a.texture.frame.height,a.texture.trim){var i=a.texture.trim;d=i.x-a.anchor.x*i.width,c=d+a.texture.crop.width,f=i.y-a.anchor.y*i.height,e=f+a.texture.crop.height}else c=a.texture.frame.width*(1-a.anchor.x),d=a.texture.frame.width*-a.anchor.x,e=a.texture.frame.height*(1-a.anchor.y),f=a.texture.frame.height*-a.anchor.y;g=4*this.currentBatchSize*this.vertSize,h[g++]=d,h[g++]=f,h[g++]=a.position.x,h[g++]=a.position.y,h[g++]=a.scale.x,h[g++]=a.scale.y,h[g++]=a.rotation,h[g++]=b.x0,h[g++]=b.y1,h[g++]=a.alpha,h[g++]=c,h[g++]=f,h[g++]=a.position.x,h[g++]=a.position.y,h[g++]=a.scale.x,h[g++]=a.scale.y,h[g++]=a.rotation,h[g++]=b.x1,h[g++]=b.y1,h[g++]=a.alpha,h[g++]=c,h[g++]=e,h[g++]=a.position.x,h[g++]=a.position.y,h[g++]=a.scale.x,h[g++]=a.scale.y,h[g++]=a.rotation,h[g++]=b.x2,h[g++]=b.y2,h[g++]=a.alpha,h[g++]=d,h[g++]=e,h[g++]=a.position.x,h[g++]=a.position.y,h[g++]=a.scale.x,h[g++]=a.scale.y,h[g++]=a.rotation,h[g++]=b.x3,h[g++]=b.y3,h[g++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j<c.filterPasses.length-1;j++){var k=c.filterPasses[j];a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,h.texture),this.applyFilterPass(k,d,d.width,d.height);var l=h;h=i,i=l}a.enable(a.BLEND),e=h,this.texturePool.push(i)}var m=c.filterPasses[c.filterPasses.length-1];this.offsetX-=d.x,this.offsetY-=d.y;var n=this.width,o=this.height,p=0,q=0,r=this.buffer;if(0===this.filterStack.length)a.colorMask(!0,!0,!0,!0);else{var s=this.filterStack[this.filterStack.length-1];d=s._filterArea,n=d.width,o=d.height,p=d.x,q=d.y,r=s._glFilterTexture.frameBuffer}f.x=n/2,f.y=-o/2,g.x=p,g.y=q,d=c._filterArea;var t=d.x-p,u=d.y-q;a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=t,this.vertexArray[1]=u+d.height,this.vertexArray[2]=t+d.width,this.vertexArray[3]=u+d.height,this.vertexArray[4]=t,this.vertexArray[5]=u,this.vertexArray[6]=t+d.width,this.vertexArray[7]=u,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray),a.viewport(0,0,n*this.renderSession.resolution,o*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,r),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,e.texture),this.renderSession.stencilManager&&this.renderSession.stencilManager.destroy(),this.renderSession.stencilManager=c._previous_stencil_mgr,c._previous_stencil_mgr=null,this.renderSession.stencilManager.count>0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b<this.texturePool.length;b++)this.texturePool[b].destroy();this.texturePool=null,a.deleteBuffer(this.vertexBuffer),a.deleteBuffer(this.uvBuffer),a.deleteBuffer(this.colorBuffer),a.deleteBuffer(this.indexBuffer)},b.FilterTexture=function(a,c,d,e){this.gl=a,this.frameBuffer=a.createFramebuffer(),this.texture=a.createTexture(),e=e||b.scaleModes.DEFAULT,a.bindTexture(a.TEXTURE_2D,this.texture),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,e===b.scaleModes.LINEAR?a.LINEAR:a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,e===b.scaleModes.LINEAR?a.LINEAR:a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.bindFramebuffer(a.FRAMEBUFFER,this.frameBuffer),a.bindFramebuffer(a.FRAMEBUFFER,this.frameBuffer),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,this.texture,0),this.renderBuffer=a.createRenderbuffer(),a.bindRenderbuffer(a.RENDERBUFFER,this.renderBuffer),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.DEPTH_STENCIL_ATTACHMENT,a.RENDERBUFFER,this.renderBuffer),this.resize(c,d)},b.FilterTexture.prototype.constructor=b.FilterTexture,b.FilterTexture.prototype.clear=function(){var a=this.gl;a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT)},b.FilterTexture.prototype.resize=function(a,b){if(this.width!==a||this.height!==b){this.width=a,this.height=b;var c=this.gl;c.bindTexture(c.TEXTURE_2D,this.texture),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,a,b,0,c.RGBA,c.UNSIGNED_BYTE,null),c.bindRenderbuffer(c.RENDERBUFFER,this.renderBuffer),c.renderbufferStorage(c.RENDERBUFFER,c.DEPTH_STENCIL,a,b)}},b.FilterTexture.prototype.destroy=function(){var a=this.gl;a.deleteFramebuffer(this.frameBuffer),a.deleteTexture(this.texture),this.frameBuffer=null,this.texture=null},b.CanvasBuffer=function(a,c){this.width=a,this.height=c,this.canvas=b.CanvasPool.create(this,this.width,this.height),this.context=this.canvas.getContext("2d"),this.canvas.width=a,this.canvas.height=c},b.CanvasBuffer.prototype.constructor=b.CanvasBuffer,b.CanvasBuffer.prototype.clear=function(){this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height)},b.CanvasBuffer.prototype.resize=function(a,b){this.width=this.canvas.width=a,this.height=this.canvas.height=b},b.CanvasBuffer.prototype.destroy=function(){b.CanvasPool.remove(this)},b.CanvasMaskManager=function(){},b.CanvasMaskManager.prototype.constructor=b.CanvasMaskManager,b.CanvasMaskManager.prototype.pushMask=function(a,c){var d=c.context;d.save();var e=a.alpha,f=a.worldTransform,g=c.resolution;d.setTransform(f.a*g,f.b*g,f.c*g,f.d*g,f.tx*g,f.ty*g),b.CanvasGraphics.renderGraphicsMask(a,d),d.clip(),a.worldAlpha=e},b.CanvasMaskManager.prototype.popMask=function(a){a.context.restore()},b.CanvasTinter=function(){},b.CanvasTinter.getTintedTexture=function(a,c){var d=a.tintedTexture||b.CanvasPool.create(this);return b.CanvasTinter.tintMethod(a.texture,c,d),d},b.CanvasTinter.tintWithMultiply=function(a,b,c){var d=c.getContext("2d"),e=a.crop;c.width===e.width&&c.height===e.height||(c.width=e.width,c.height=e.height),d.clearRect(0,0,e.width,e.height),d.fillStyle="#"+("00000"+(0|b).toString(16)).substr(-6),d.fillRect(0,0,e.width,e.height),d.globalCompositeOperation="multiply",d.drawImage(a.baseTexture.source,e.x,e.y,e.width,e.height,0,0,e.width,e.height),d.globalCompositeOperation="destination-atop",d.drawImage(a.baseTexture.source,e.x,e.y,e.width,e.height,0,0,e.width,e.height)},b.CanvasTinter.tintWithPerPixel=function(a,c,d){var e=d.getContext("2d"),f=a.crop;d.width=f.width,d.height=f.height,e.globalCompositeOperation="copy",e.drawImage(a.baseTexture.source,f.x,f.y,f.width,f.height,0,0,f.width,f.height);for(var g=b.hex2rgb(c),h=g[0],i=g[1],j=g[2],k=e.getImageData(0,0,f.width,f.height),l=k.data,m=0;m<l.length;m+=4)if(l[m+0]*=h,l[m+1]*=i,l[m+2]*=j,!b.CanvasTinter.canHandleAlpha){var n=l[m+3];l[m+0]/=255/n,l[m+1]/=255/n,l[m+2]/=255/n}e.putImageData(k,0,0)},b.CanvasTinter.checkInverseAlpha=function(){var a=new b.CanvasBuffer(2,1);a.context.fillStyle="rgba(10, 20, 30, 0.5)",a.context.fillRect(0,0,1,1);var c=a.context.getImageData(0,0,1,1);if(null===c)return!1;a.context.putImageData(c,1,0);var d=a.context.getImageData(1,0,1,1);return d.data[0]===c.data[0]&&d.data[1]===c.data[1]&&d.data[2]===c.data[2]&&d.data[3]===c.data[3]},b.CanvasTinter.canHandleAlpha=b.CanvasTinter.checkInverseAlpha(),b.CanvasTinter.canUseMultiply=b.canUseNewCanvasBlendModes(),b.CanvasTinter.tintMethod=b.CanvasTinter.canUseMultiply?b.CanvasTinter.tintWithMultiply:b.CanvasTinter.tintWithPerPixel,b.CanvasRenderer=function(a){this.game=a,b.defaultRenderer||(b.defaultRenderer=this),this.type=b.CANVAS_RENDERER,this.resolution=a.resolution,this.clearBeforeRender=a.clearBeforeRender,this.transparent=a.transparent,this.autoResize=!1,this.width=a.width*this.resolution,this.height=a.height*this.resolution,this.view=a.canvas,this.context=this.view.getContext("2d",{alpha:this.transparent}),this.refresh=!0,this.count=0,this.maskManager=new b.CanvasMaskManager,this.renderSession={context:this.context,maskManager:this.maskManager,scaleMode:null,smoothProperty:Phaser.Canvas.getSmoothingPrefix(this.context),roundPixels:!1},this.mapBlendModes(),this.resize(this.width,this.height)},b.CanvasRenderer.prototype.constructor=b.CanvasRenderer,b.CanvasRenderer.prototype.render=function(a){this.context.setTransform(1,0,0,1,0,0),this.context.globalAlpha=1,this.renderSession.currentBlendMode=0,this.renderSession.shakeX=this.game.camera._shake.x,this.renderSession.shakeY=this.game.camera._shake.y,this.context.globalCompositeOperation="source-over",navigator.isCocoonJS&&this.view.screencanvas&&(this.context.fillStyle="black",this.context.clear()),this.clearBeforeRender&&(this.transparent?this.context.clearRect(0,0,this.width,this.height):a._bgColor&&(this.context.fillStyle=a._bgColor.rgba,this.context.fillRect(0,0,this.width,this.height))),this.renderDisplayObject(a)},b.CanvasRenderer.prototype.destroy=function(a){void 0===a&&(a=!0),a&&this.view.parent&&this.view.parent.removeChild(this.view),this.view=null,this.context=null,this.maskManager=null,this.renderSession=null},b.CanvasRenderer.prototype.resize=function(a,c){this.width=a*this.resolution,this.height=c*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.renderSession.smoothProperty&&(this.context[this.renderSession.smoothProperty]=this.renderSession.scaleMode===b.scaleModes.LINEAR)},b.CanvasRenderer.prototype.renderDisplayObject=function(a,b,c){this.renderSession.context=b||this.context,this.renderSession.resolution=this.resolution,a._renderCanvas(this.renderSession,c)},b.CanvasRenderer.prototype.mapBlendModes=function(){if(!b.blendModesCanvas){var a=[],c=b.blendModes,d=b.canUseNewCanvasBlendModes();a[c.NORMAL]="source-over",a[c.ADD]="lighter",a[c.MULTIPLY]=d?"multiply":"source-over",a[c.SCREEN]=d?"screen":"source-over",a[c.OVERLAY]=d?"overlay":"source-over",a[c.DARKEN]=d?"darken":"source-over",a[c.LIGHTEN]=d?"lighten":"source-over",a[c.COLOR_DODGE]=d?"color-dodge":"source-over",a[c.COLOR_BURN]=d?"color-burn":"source-over",a[c.HARD_LIGHT]=d?"hard-light":"source-over",a[c.SOFT_LIGHT]=d?"soft-light":"source-over",a[c.DIFFERENCE]=d?"difference":"source-over",a[c.EXCLUSION]=d?"exclusion":"source-over",a[c.HUE]=d?"hue":"source-over",a[c.SATURATION]=d?"saturation":"source-over",a[c.COLOR]=d?"color":"source-over",a[c.LUMINOSITY]=d?"luminosity":"source-over",b.blendModesCanvas=a}},b.BaseTexture=function(a,c){this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height&&(this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty()),this.skipRender=!1,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},b.BaseTexture.prototype.destroy=function(){this.source&&b.CanvasPool.removeByCanvas(this.source),this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){console.warn("PIXI.BaseTexture.updateSourceImage is deprecated. Use Phaser.Sprite.loadTexture instead.")},b.BaseTexture.prototype.dirty=function(){for(var a=0;a<this._glTextures.length;a++)this._dirty[a]=!0},b.BaseTexture.prototype.unloadFromGPU=function(){this.dirty();for(var a=this._glTextures.length-1;a>=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromCanvas=function(a,c){return 0===a.width&&(a.width=1),0===a.height&&(a.height=1),new b.BaseTexture(a,c)},b.TextureSilentFail=!1,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,
|
||
this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){a===this.width&&c===this.height||(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;e<a.children.length;e++)a.children[e].updateTransform();var f=this.renderer.gl;f.viewport(0,0,this.width*this.resolution,this.height*this.resolution),f.bindFramebuffer(f.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer,b),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),b&&d.append(b);for(var e=0;e<a.children.length;e++)a.children[e].updateTransform();c&&this.textureBuffer.clear();var f=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,this.textureBuffer.context,b),this.renderer.resolution=f}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;a<b;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform,e=d.tx*a.resolution+a.shakeX,f=d.ty*a.resolution+a.shakeY;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|e,0|f):c.setTransform(d.a,d.b,d.c,d.d,e,f),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;e<d-2;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;f<e;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;e<d-2;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;o<p;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=s<l?s:l,m=t<m?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=(a[0],this.indices),d=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,d[0]=1,d[1]=1,c[0]=0,c[1]=1;for(var e,f,g,h=a.length,i=1;i<h;i++)e=a[i],f=4*i,g=i/(h-1),b[f]=g,b[f+1]=0,b[f+2]=g,b[f+3]=1,f=2*i,d[f]=1,d[f+1]=1,f=2*i,c[f]=f,c[f+1]=f+1,e}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;m<l;m++)f=a[m],g=4*m,c=m<a.length-1?a[m+1]:f,e.y=-(c.x-d.x),e.x=c.y-d.y,h=10*(1-m/(l-1)),h>1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;b<this.children.length;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible&&this.renderable&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,a),c.globalAlpha=this.worldAlpha;var d=this.worldTransform,e=a.resolution,f=d.tx*e+a.shakeX,g=d.ty*e+a.shakeY;if(c.setTransform(d.a*e,d.b*e,d.c*e,d.d*e,f,g),this.refreshTexture){if(this.generateTilingTexture(!1,a),!this.tilingTexture)return;this.tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}var h=a.currentBlendMode;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var i=this.tilePosition,j=this.tileScale;i.x%=this.tilingTexture.baseTexture.width,i.y%=this.tilingTexture.baseTexture.height,c.scale(j.x,j.y),c.translate(i.x+this.anchor.x*-this._width,i.y+this.anchor.y*-this._height),c.fillStyle=this.tilePattern;var f=-i.x,g=-i.y,k=this._width/j.x,l=this._height/j.y;a.roundPixels&&(f|=0,g|=0,k|=0,l|=0),c.fillRect(f,g,k,l),c.scale(1/j.x,1/j.y),c.translate(-i.x+this.anchor.x*this._width,-i.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a);for(var m=0;m<this.children.length;m++)this.children[m]._renderCanvas(a);h!==this.blendMode&&(a.currentBlendMode=h,c.globalCompositeOperation=b.blendModesCanvas[h])}},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a,c){if(this.texture.baseTexture.hasLoaded){var d=this.texture,e=d.frame,f=this._frame.sourceSizeW||this._frame.width,g=this._frame.sourceSizeH||this._frame.height,h=0,i=0;this._frame.trimmed&&(h=this._frame.spriteSourceSizeX,i=this._frame.spriteSourceSizeY),a&&(f=b.getNextPowerOfTwo(f),g=b.getNextPowerOfTwo(g)),this.canvasBuffer?(this.canvasBuffer.resize(f,g),this.tilingTexture.baseTexture.width=f,this.tilingTexture.baseTexture.height=g,this.tilingTexture.needsUpdate=!0):(this.canvasBuffer=new b.CanvasBuffer(f,g),this.tilingTexture=b.Texture.fromCanvas(this.canvasBuffer.canvas),this.tilingTexture.isTiling=!0,this.tilingTexture.needsUpdate=!0),this.textureDebug&&(this.canvasBuffer.context.strokeStyle="#00ff00",this.canvasBuffer.context.strokeRect(0,0,f,g));var j=d.crop.width,k=d.crop.height;j===f&&k===g||(j=f,k=g),this.canvasBuffer.context.drawImage(d.baseTexture.source,d.crop.x,d.crop.y,d.crop.width,d.crop.height,h,i,j,k),this.tileScaleOffset.x=e.width/f,this.tileScaleOffset.y=e.height/g,this.refreshTexture=!1,this.tilingTexture.baseTexture._powerOf2=!0}},b.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.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=n<x?n:x,x=p<x?p:x,x=r<x?r:x,x=t<x?t:x,y=o<y?o:y,y=q<y?q:y,y=s<y?s:y,y=u<y?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},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}.call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.6.15",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,HORIZONTAL:0,VERTICAL:1,LANDSCAPE:0,PORTRAIT:1,ANGLE_UP:270,ANGLE_DOWN:90,ANGLE_LEFT:180,ANGLE_RIGHT:0,ANGLE_NORTH_EAST:315,ANGLE_NORTH_WEST:225,ANGLE_SOUTH_EAST:45,ANGLE_SOUTH_WEST:135,TOP_LEFT:0,TOP_CENTER:1,TOP_RIGHT:2,LEFT_TOP:3,LEFT_CENTER:4,LEFT_BOTTOM:5,CENTER:6,RIGHT_TOP:7,RIGHT_CENTER:8,RIGHT_BOTTOM:9,BOTTOM_LEFT:10,BOTTOM_CENTER:11,BOTTOM_RIGHT:12,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return a<0?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function a(b){if(b&&(a.prototype=b),!(this instanceof a))return new a}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;e<c;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;b<this.length;b++)this[b]=0}else{Array.call(this,a.length),this.length=a.length;for(var b=0;b<this.length;b++)this[b]=a[b]}},window[a].prototype=b,window[a].constructor=window[a]};d("Uint32Array"),d("Int16Array")}window.console||(window.console={},window.console.log=window.console.assert=function(){},window.console.warn=window.console.assert=function(){}),/firefox/i.test(navigator.userAgent)&&(window.oldGetComputedStyle=window.getComputedStyle,window.getComputedStyle=function(a,b){var c=window.oldGetComputedStyle(a,b);return null===c?{getPropertyValue:function(){}}:c}),c.Utils={reverseString:function(a){return a.split("").reverse().join("")},getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];f<e&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];g<f&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;a=a.toString();var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);i<j;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e<d.length;e++){var f=d[e],g=b[f];!c&&f in a||(!g||"function"!=typeof g.get&&"function"!=typeof g.set?a[f]=g:"function"==typeof g.clone?a[f]=g.clone():Object.defineProperty(a,f,g))}},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];a[d]&&"object"===f?typeof b[d]===f?b[d]=c.Utils.mixin(a[d],b[d]):b[d]=c.Utils.mixin(a[d],new e.constructor):b[d]=a[d]}}return b}},c.Circle=function(a,b,d){a=a||0,b=b||0,d=d||0,this.x=a,this.y=b,this._diameter=d,this._radius=0,d>0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return Math.PI*this._radius*2},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.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(c.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(c.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(c.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(c.Circle.prototype,"area",{get:function(){return this._radius>0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){!0===a&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){return(a.x-b)*(a.x-b)+(a.y-c)*(a.y-c)<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x===b.x&&a.y===b.y&&a.diameter===b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),!0===d&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth);if(c>b.halfWidth+a.radius)return!1;var d=Math.abs(a.y-b.y-b.halfHeight);if(d>b.halfHeight+a.radius)return!1;if(c<=b.halfWidth||d<=b.halfHeight)return!0;var e=c-b.halfWidth,f=d-b.halfHeight;return e*e+f*f<=a.radius*a.radius},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Ellipse.prototype,"top",{get:function(){return this.y},set:function(a){this.y=a}}),Object.defineProperty(c.Ellipse.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Ellipse.prototype,"empty",{get:function(){return 0===this.width||0===this.height},set:function(a){!0===a&&this.setTo(0,0,0,0)}}),c.Ellipse.contains=function(a,b,c){if(a.width<=0||a.height<=0)return!1;var d=(b-a.x)/a.width-.5,e=(c-a.y)/a.height-.5;return d*=d,e*=e,d+e<.25},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)==(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&a<=d&&b>=e&&b<=f},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=c<e?1:-1,j=d<f?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!==e||d!==f;){var m=k<<1;m>-h&&(k-=h,c+=i),m<g&&(k+=g,d+=j),l%a==0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-(this.end.x-this.start.x)/(this.end.y-this.start.y)}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&p<=1&&q>=0&&q<=1?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.intersectsRectangle=function(a,b){if(!c.Rectangle.intersects(a,b))return!1;var d=a.start.x,e=a.start.y,f=a.end.x,g=a.end.y,h=b.x,i=b.y,j=b.right,k=b.bottom,l=0;if(d>=h&&d<=j&&e>=i&&e<=k||f>=h&&f<=j&&g>=i&&g<=k)return!0;if(d<h&&f>=h){if((l=e+(g-e)*(h-d)/(f-d))>i&&l<=k)return!0}else if(d>j&&f<=j&&(l=e+(g-e)*(j-d)/(f-d))>=i&&l<=k)return!0;if(e<i&&g>=i){if((l=d+(f-d)*(i-e)/(g-e))>=h&&l<=j)return!0}else if(e>k&&g<=k&&(l=d+(f-d)*(k-e)/(g-e))>=h&&l<=j)return!0;return!1},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){void 0!==a&&null!==a||(a=1),void 0!==b&&null!==b||(b=0),void 0!==d&&null!==d||(d=0),void 0!==e&&null!==e||(e=1),void 0!==f&&null!==f||(f=0),void 0!==g&&null!==g||(g=0),this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},
|
||
rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(d<1)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;e<d;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.flattened=!1,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b<this._points.length;b++)"number"==typeof this._points[b]?(a.push(this._points[b]),a.push(this._points[b+1]),b++):(a.push(this._points[b].x),a.push(this._points[b].y));return a},flatten:function(){return this._points=this.toNumberArray(),this.flattened=!0,this},clone:function(a){var b=this._points.slice();return void 0===a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){var c=!1;if(this.flattened)for(var d=-2,e=this._points.length-2;(d+=2)<this._points.length;e=d){var f=this._points[d],g=this._points[d+1],h=this._points[e],i=this._points[e+1];(g<=b&&b<i||i<=b&&b<g)&&a<(h-f)*(b-g)/(i-g)+f&&(c=!c)}else for(var d=-1,e=this._points.length-1;++d<this._points.length;e=d){var f=this._points[d].x,g=this._points[d].y,h=this._points[e].x,i=this._points[e].y;(g<=b&&b<i||i<=b&&b<g)&&a<(h-f)*(b-g)/(i-g)+f&&(c=!c)}return c},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;c<d;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else if(Array.isArray(a[c]))var e=new PIXI.Point(a[c][0],a[c][1]);else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.y<b&&(b=e.y)}this.calculateArea(b)}return this},calculateArea:function(a){for(var b,c,d,e,f=0,g=this._points.length;f<g;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},getPoint:function(a,b){switch(void 0===b&&(b=new c.Point),a){default:case c.TOP_LEFT:return b.set(this.x,this.y);case c.TOP_CENTER:return b.set(this.centerX,this.y);case c.TOP_RIGHT:return b.set(this.right,this.y);case c.LEFT_CENTER:return b.set(this.x,this.centerY);case c.CENTER:return b.set(this.centerX,this.centerY);case c.RIGHT_CENTER:return b.set(this.right,this.centerY);case c.BOTTOM_LEFT:return b.set(this.x,this.bottom);case c.BOTTOM_CENTER:return b.set(this.centerX,this.bottom);case c.BOTTOM_RIGHT:return b.set(this.right,this.bottom)}},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){!0===a&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return!(a.width<=0||a.height<=0)&&(b>=a.x&&b<a.right&&c>=a.y&&c<a.bottom)},c.Rectangle.containsRaw=function(a,b,c,d,e,f){return e>=a&&e<a+c&&f>=b&&f<b+d},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return!(a.volume>b.volume)&&(a.x>=b.x&&a.y>=b.y&&a.right<b.right&&a.bottom<b.bottom)},c.Rectangle.equals=function(a,b){return a.x===b.x&&a.y===b.y&&a.width===b.width&&a.height===b.height},c.Rectangle.sameDimensions=function(a,b){return a.width===b.width&&a.height===b.height},c.Rectangle.intersection=function(a,b,d){return void 0===d&&(d=new c.Rectangle),c.Rectangle.intersects(a,b)&&(d.x=Math.max(a.x,b.x),d.y=Math.max(a.y,b.y),d.width=Math.min(a.right,b.right)-d.x,d.height=Math.min(a.bottom,b.bottom)-d.y),d},c.Rectangle.intersects=function(a,b){return!(a.width<=0||a.height<=0||b.width<=0||b.height<=0)&&!(a.right<b.x||a.bottom<b.y||a.x>b.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||c<a.left-f||d>a.bottom+f||e<a.top-f)},c.Rectangle.union=function(a,b,d){return void 0===d&&(d=new c.Rectangle),d.setTo(Math.min(a.x,b.x),Math.min(a.y,b.y),Math.max(a.right,b.right)-Math.min(a.left,b.left),Math.max(a.bottom,b.bottom)-Math.min(a.top,b.top))},c.Rectangle.aabb=function(a,b){void 0===b&&(b=new c.Rectangle);var d=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,g=Number.POSITIVE_INFINITY;return a.forEach(function(a){a.x>d&&(d=a.x),a.x<e&&(e=a.x),a.y>f&&(f=a.y),a.y<g&&(g=a.y)}),b.setTo(e,g,d-e,f-g),b},PIXI.Rectangle=c.Rectangle,PIXI.EmptyRectangle=new c.Rectangle(0,0,0,0),c.RoundedRectangle=function(a,b,d,e,f){void 0===a&&(a=0),void 0===b&&(b=0),void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=20),this.x=a,this.y=b,this.width=d,this.height=e,this.radius=f||20,this.type=c.ROUNDEDRECTANGLE},c.RoundedRectangle.prototype={clone:function(){return new c.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},contains:function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this.lerp=new c.Point(1,1),this.onShakeComplete=new c.Signal,this.onFlashComplete=new c.Signal,this.onFadeComplete=new c.Signal,this.fx=null,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point,this._shake={intensity:0,duration:0,horizontal:!1,vertical:!1,shakeBounds:!0,x:0,y:0},this._fxDuration=0,this._fxType=0},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.SHAKE_BOTH=4,c.Camera.SHAKE_HORIZONTAL=5,c.Camera.SHAKE_VERTICAL=6,c.Camera.ENABLE_FX=!0,c.Camera.prototype={boot:function(){this.displayObject=this.game.world,this.scale=this.game.world.scale,this.game.camera=this,c.Graphics&&c.Camera.ENABLE_FX&&(this.fx=new c.Graphics(this.game),this.game.stage.addChild(this.fx))},preUpdate:function(){this.totalInView=0},follow:function(a,b,d,e){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),void 0===d&&(d=1),void 0===e&&(e=1),this.target=a,this.lerp.set(d,e);var f;switch(b){case c.Camera.FOLLOW_PLATFORMER:var g=this.width/8,h=this.height/3;this.deadzone=new c.Rectangle((this.width-g)/2,(this.height-h)/2-.25*h,g,h);break;case c.Camera.FOLLOW_TOPDOWN:f=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:f=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_LOCKON:default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},shake:function(a,b,d,e,f){return void 0===a&&(a=.05),void 0===b&&(b=500),void 0===d&&(d=!0),void 0===e&&(e=c.Camera.SHAKE_BOTH),void 0===f&&(f=!0),!(!d&&this._shake.duration>0)&&(this._shake.intensity=a,this._shake.duration=b,this._shake.shakeBounds=f,this._shake.x=0,this._shake.y=0,this._shake.horizontal=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_HORIZONTAL,this._shake.vertical=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_VERTICAL,!0)},flash:function(a,b,c){return void 0===a&&(a=16777215),void 0===b&&(b=500),void 0===c&&(c=!1),!(!this.fx||!c&&this._fxDuration>0)&&(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=1,this._fxDuration=b,this._fxType=0,!0)},fade:function(a,b,c){return void 0===a&&(a=0),void 0===b&&(b=500),void 0===c&&(c=!1),!(!this.fx||!c&&this._fxDuration>0)&&(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=0,this._fxDuration=b,this._fxType=1,!0)},update:function(){this._fxDuration>0&&this.updateFX(),this._shake.duration>0&&this.updateShake(),this.bounds&&this.checkBounds(),this.roundPx&&(this.view.floor(),this._shake.x=Math.floor(this._shake.x),this._shake.y=Math.floor(this._shake.y)),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateFX:function(){0===this._fxType?(this.fx.alpha-=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha<=0&&(this._fxDuration=0,this.fx.alpha=0,this.onFlashComplete.dispatch())):(this.fx.alpha+=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha>=1&&(this._fxDuration=0,this.fx.alpha=1,this.onFadeComplete.dispatch()))},updateShake:function(){this._shake.duration-=this.game.time.elapsedMS,this._shake.duration<=0?(this.onShakeComplete.dispatch(),this._shake.x=0,this._shake.y=0):(this._shake.horizontal&&(this._shake.x=this.game.rnd.frac()*this._shake.intensity*this.view.width*2-this._shake.intensity*this.view.width),this._shake.vertical&&(this._shake.y=this.game.rnd.frac()*this._shake.intensity*this.view.height*2-this._shake.intensity*this.view.height))},updateTarget:function(){this._targetPosition.x=this.view.x+this.target.worldPosition.x,this._targetPosition.y=this.view.y+this.target.worldPosition.y,this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edge<this.deadzone.left?this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.left,this.lerp.x):this._edge>this.deadzone.right&&(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.right,this.lerp.x)),this._edge=this._targetPosition.y-this.view.y,this._edge<this.deadzone.top?this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.top,this.lerp.y):this._edge>this.deadzone.bottom&&(this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.bottom,this.lerp.y))):(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.view.halfWidth,this.lerp.x),this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.view.halfHeight,this.lerp.y)),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1;var a=this.view.x+this._shake.x,b=this.view.right+this._shake.x,c=this.view.y+this._shake.y,d=this.view.bottom+this._shake.y;a<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x,this._shake.shakeBounds||(this._shake.x=0)),b>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width,this._shake.shakeBounds||(this._shake.x=0)),c<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y,this._shake.shakeBounds||(this._shake.y=0)),d>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height,this._shake.shakeBounds||(this._shake.y=0))},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0,this._shake.duration=0,this.resetFX()},resetFX:function(){this.fx&&(this.fx.clear(),this.fx.alpha=0,this._fxDuration=0)}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.x,this.view.y),this._position},set:function(a){void 0!==a.x&&(this.view.x=a.x),void 0!==a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),Object.defineProperty(c.Camera.prototype,"shakeIntensity",{get:function(){return this._shake.intensity},set:function(a){this._shake.intensity=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.state=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,void 0!==b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?!!(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)||(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){!1===this._created&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),!1===this._created&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!1,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do{b--}while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e<arguments.length;e++)d.push(arguments[e]);return this._registerListener(a,!1,b,c,d)},addOnce:function(a,b,c){this.validateListener(a,"addOnce");var d=[];if(arguments.length>3)for(var e=3;e<arguments.length;e++)d.push(arguments[e]);return this._registerListener(a,!0,b,c,d)},remove:function(a,b){this.validateListener(a,"remove");var c=this._indexOfListener(a,b)
|
||
;return-1!==c&&(this._bindings[c]._destroy(),this._bindings.splice(c,1)),a},removeAll:function(a){if(void 0===a&&(a=null),this._bindings){for(var b=this._bindings.length;b--;)a?this._bindings[b].context===a&&(this._bindings[b]._destroy(),this._bindings.splice(b,1)):this._bindings[b]._destroy();a||(this._bindings.length=0)}},getNumListeners:function(){return this._bindings?this._bindings.length:0},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active&&this._bindings){var a,b=Array.prototype.slice.call(arguments),c=this._bindings.length;if(this.memorize&&(this._prevParams=b),c){a=this._bindings.slice(),this._shouldPropagate=!0;do{c--}while(a[c]&&this._shouldPropagate&&!1!==a[c].execute(b))}}},forget:function(){this._prevParams&&(this._prevParams=null)},dispose:function(){this.removeAll(),this._bindings=null,this._prevParams&&(this._prevParams=null)},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},Object.defineProperty(c.Signal.prototype,"boundDispatch",{get:function(){var a=this;return this._boundDispatch||(this._boundDispatch=function(){return a.dispatch.apply(a,arguments)})}}),c.Signal.prototype.constructor=c.Signal,c.SignalBinding=function(a,b,c,d,e,f){this._listener=b,c&&(this._isOnce=!0),null!=d&&(this.context=d),this._signal=a,e&&(this._priority=e),f&&f.length&&(this._args=f)},c.SignalBinding.prototype={context:null,_isOnce:!1,_priority:0,_args:null,callCount:0,active:!0,params:null,execute:function(a){var b,c;return this.active&&this._listener&&(c=this.params?this.params.concat(a):a,this._args&&(c=c.concat(this._args)),b=this._listener.apply(this.context,c),this.callCount++,this._isOnce&&this.detach()),b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},c.SignalBinding.prototype.constructor=c.SignalBinding,c.Filter=function(a,b,d){this.game=a,this.type=c.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.prevPoint=new c.Point;var e=new Date;if(this.uniforms={resolution:{type:"2f",value:{x:256,y:256}},time:{type:"1f",value:0},mouse:{type:"2f",value:{x:0,y:0}},date:{type:"4fv",value:[e.getFullYear(),e.getMonth(),e.getDate(),60*e.getHours()*60+60*e.getMinutes()+e.getSeconds()]},sampleRate:{type:"1f",value:44100},iChannel0:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel1:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel2:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel3:{type:"sampler2D",value:null,textureData:{repeat:!0}}},b)for(var f in b)this.uniforms[f]=b[f];this.fragmentSrc=d||""},c.Filter.prototype={init:function(){},setResolution:function(a,b){this.uniforms.resolution.value.x=a,this.uniforms.resolution.value.y=b},update:function(a){if(void 0!==a){var b=a.x/this.game.width,c=1-a.y/this.game.height;b===this.prevPoint.x&&c===this.prevPoint.y||(this.uniforms.mouse.value.x=b.toFixed(2),this.uniforms.mouse.value.y=c.toFixed(2),this.prevPoint.set(b,c))}this.uniforms.time.value=this.game.time.totalElapsedSeconds()},addToWorld:function(a,b,c,d,e,f){void 0===e&&(e=0),void 0===f&&(f=0),void 0!==c&&null!==c?this.width=c:c=this.width,void 0!==d&&null!==d?this.height=d:d=this.height;var g=this.game.add.image(a,b,"__default");return g.width=c,g.height=d,g.anchor.set(e,f),g.filters=[this],g},destroy:function(){this.game=null}},c.Filter.prototype.constructor=c.Filter,Object.defineProperty(c.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(c.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),c.Plugin=function(a,b){void 0===b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},c.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},c.Plugin.prototype.constructor=c.Plugin,c.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},c.PluginManager.prototype={add:function(a){var b=Array.prototype.slice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a,b){for(void 0===b&&(b=!0),this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return b&&a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},c.PluginManager.prototype.constructor=c.PluginManager,c.Stage=function(a){this.game=a,PIXI.DisplayObjectContainer.call(this),this.name="_stage_root",this.disableVisibilityChange=!1,this.exists=!0,this.worldTransform=new PIXI.Matrix,this.stage=this,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._onChange=null,this._bgColor={r:0,g:0,b:0,a:0,color:0,rgba:"#000000"},this.game.transparent||(this._bgColor.a=1),a.config&&this.parseConfig(a.config)},c.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Stage.prototype.constructor=c.Stage,c.Stage.prototype.parseConfig=function(a){a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.backgroundColor&&this.setBackgroundColor(a.backgroundColor)},c.Stage.prototype.boot=function(){c.DOM.getOffset(this.game.canvas,this.offset),c.Canvas.setUserSelect(this.game.canvas,"none"),c.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},c.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=0;a<this.children.length;){var b=this.children[a];b.preUpdate(),this===b.parent&&a++}},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){this.game.camera.update(),this.game.camera.target&&(this.game.camera.target.postUpdate(),this.updateTransform(),this.game.camera.updateTarget());for(var a=0;a<this.children.length;a++)this.children[a].postUpdate();this.updateTransform()},c.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0;a<this.children.length;a++)this.children[a].updateTransform()},c.Stage.prototype.checkVisibility=function(){void 0!==document.hidden?this._hiddenVar="visibilitychange":void 0!==document.webkitHidden?this._hiddenVar="webkitvisibilitychange":void 0!==document.mozHidden?this._hiddenVar="mozvisibilitychange":void 0!==document.msHidden?this._hiddenVar="msvisibilitychange":this._hiddenVar=null;var a=this;this._onChange=function(b){return a.visibilityChange(b)},this._onClick=function(b){document.hasFocus()||a.visibilityChange(b)},this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onblur=this._onChange,window.onfocus=this._onChange,window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.addEventListener("click",this._onClick),this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){switch(a.type){case"blur":case"pagehide":return void this.game.focusLoss(a);case"click":case"focus":case"pageshow":return void this.game.focusGain(a)}this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a))},c.Stage.prototype.setBackgroundColor=function(a){this.game.transparent||(c.Color.valueToColor(a,this._bgColor),c.Color.updateColor(this._bgColor),this._bgColor.r/=255,this._bgColor.g/=255,this._bgColor.b/=255,this._bgColor.a=1)},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null,window.removeEventListener("click",this._onClick)},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._bgColor.color},set:function(a){this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){void 0===e&&(e=!1),void 0===f&&(f=!1),void 0===g&&(g=c.Physics.ARCADE),this.game=a,void 0===b&&(b=a.world),this.name=d||"group",this.z=0,PIXI.DisplayObjectContainer.call(this),e?(this.game.stage.addChild(this),this.z=this.game.stage.children.length):b&&(b.addChild(this),this.z=b.children.length),this.type=c.GROUP,this.physicsType=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.pendingDestroy=!1,this.classType=c.Sprite,this.cursor=null,this.inputEnableChildren=!1,this.onChildInputDown=new c.Signal,this.onChildInputUp=new c.Signal,this.onChildInputOver=new c.Signal,this.onChildInputOut=new c.Signal,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.physicsSortDirection=null,this.onDestroy=new c.Signal,this.cursorIndex=0,this.fixedToCamera=!1,this.cameraOffset=new c.Point,this.hash=[],this._sortProperty="z"},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.RETURN_ALL=3,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b,c){return void 0===b&&(b=!1),a.parent===this?a:(a.body&&a.parent&&a.parent.hash&&a.parent.removeFromHash(a),void 0===c?(a.z=this.children.length,this.addChild(a)):(this.addChildAt(a,c),this.updateZ()),this.enableBody&&a.hasOwnProperty("body")&&null===a.body?this.game.physics.enable(a,this.physicsBodyType):a.body&&this.addToHash(a),!this.inputEnableChildren||a.input&&!a.inputEnabled||(a.inputEnabled=!0),!b&&a.events&&a.events.onAddedToGroup$dispatch(a,this),null===this.cursor&&(this.cursor=a),a)},c.Group.prototype.addAt=function(a,b,c){this.add(a,c,b)},c.Group.prototype.addToHash=function(a){if(a.parent===this){if(-1===this.hash.indexOf(a))return this.hash.push(a),!0}return!1},c.Group.prototype.removeFromHash=function(a){if(a){var b=this.hash.indexOf(a);if(-1!==b)return this.hash.splice(b,1),!0}return!1},c.Group.prototype.addMultiple=function(a,b){if(a instanceof c.Group)a.moveAll(this,b);else if(Array.isArray(a))for(var d=0;d<a.length;d++)this.add(a[d],b);return a},c.Group.prototype.getAt=function(a){return a<0||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e,f){void 0===e&&(e=!0);var g=new this.classType(this.game,a,b,c,d);return g.exists=e,g.visible=e,g.alive=e,this.add(g,!1,f)},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===c&&(c=0),void 0===d&&(d=!1),Array.isArray(b)||(b=[b]),Array.isArray(c)||(c=[c]);var e=this,f=[];return b.forEach(function(b){c.forEach(function(c){for(var g=0;g<a;g++)f.push(e.create(0,0,b,c,d))})}),f},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a};c.Group.prototype.align=function(a,b,d,e,f,g){if(void 0===f&&(f=c.TOP_LEFT),void 0===g&&(g=0),0===this.children.length||g>this.children.length||-1===a&&-1===b)return!1;for(var h=new c.Rectangle(0,0,d,e),i=a*d,j=b*e,k=g;k<this.children.length;k++){var l=this.children[k];if(l.alignIn)if(l.alignIn(h,f),-1===a)h.y+=e,h.y===j&&(h.x+=d,h.y=0);else if(-1===b)h.x+=d,h.x===i&&(h.x=0,h.y+=e);else if(h.x+=d,h.x===i&&(h.x=0,h.y+=e,h.y===j))return!0}return!0},c.Group.prototype.resetCursor=function(a){if(void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor)return this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor},c.Group.prototype.next=function(){if(this.cursor)return this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor},c.Group.prototype.previous=function(){if(this.cursor)return 0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)<this.children.length&&(this.remove(a,!1,!0),this.add(a,!0)),a},c.Group.prototype.sendToBack=function(a){return a.parent===this&&this.getIndex(a)>0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)<this.children.length-1){var b=this.getIndex(a),c=this.getAt(b+1);c&&this.swap(a,c)}return a},c.Group.prototype.moveDown=function(a){if(a.parent===this&&this.getIndex(a)>0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){if(a<0||a>this.children.length)return-1;this.getChildAt(a).x=b,this.getChildAt(a).y=c},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.getByName=function(a){for(var b=0;b<this.children.length;b++)if(this.children[b].name===a)return this.children[b];return null},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d)return b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a||(2===c&&b[0]in a&&b[1]in a[b[0]]||(3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]||4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]))},c.Group.prototype.setProperty=function(a,b,c,d,e){if(void 0===e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1===d?a[b[0]]+=c:2===d?a[b[0]]-=c:3===d?a[b[0]]*=c:4===d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1===d?a[b[0]][b[1]]+=c:2===d?a[b[0]][b[1]]-=c:3===d?a[b[0]][b[1]]*=c:4===d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1===d?a[b[0]][b[1]][b[2]]+=c:2===d?a[b[0]][b[1]][b[2]]-=c:3===d?a[b[0]][b[1]][b[2]]*=c:4===d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1===d?a[b[0]][b[1]][b[2]][b[3]]+=c:2===d?a[b[0]][b[1]][b[2]][b[3]]-=c:3===d?a[b[0]][b[1]][b[2]][b[3]]*=c:4===d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!(!c.Utils.getProperty(a,b)&&e)&&c.Utils.getProperty(a,b)===d},c.Group.prototype.set=function(a,b,c,d,e,f,g){if(void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(!1===d||d&&a.alive)&&(!1===e||e&&a.visible))return this.setProperty(a,b,c,f,g)},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g<this.children.length;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){void 0===d&&(d=!1),void 0===e&&(e=!1),void 0===g&&(g=!1),f=f||0;for(var h=0;h<this.children.length;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===e&&(e=!1);for(var f=0;f<this.children.length;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){var c;if(arguments.length>2){c=[];for(var d=2;d<arguments.length;d++)c.push(arguments[d])}for(var d=0;d<this.children.length;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.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},c.Group.prototype.callAll=function(a,b){if(void 0!==a){a=a.split(".");var c=a.length;if(void 0===b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}var e;if(arguments.length>2){e=[];for(var f=2;f<arguments.length;f++)e.push(arguments[f])}for(var g=null,h=null,f=0;f<this.children.length;f++)g=this.callbackFromArray(this.children[f],a,c),b&&g?(h=this.callbackFromArray(this.children[f],b,d),g&&g.apply(h,e)):g&&g.apply(this.children[f],e)}},c.Group.prototype.preUpdate=function(){if(this.pendingDestroy)return this.destroy(),!1;if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=0;a<this.children.length;a++)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){this.fixedToCamera&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0;a<this.children.length;a++)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=[];++d<e;){var g=this.children[d];(!b||b&&g.exists)&&a(g,d,this.children)&&f.push(g)}return new c.ArraySet(f)},c.Group.prototype.forEach=function(a,b,c){if(void 0===c&&(c=!1),arguments.length<=3)for(var d=0;d<this.children.length;d++)(!c||c&&this.children[d].exists)&&a.call(b,this.children[d]);else{for(var e=[null],d=3;d<arguments.length;d++)e.push(arguments[d]);for(var d=0;d<this.children.length;d++)(!c||c&&this.children[d].exists)&&(e[0]=this.children[d],a.apply(b,e))}},c.Group.prototype.forEachExists=function(a,b){var d;if(arguments.length>2){d=[null];for(var e=2;e<arguments.length;e++)d.push(arguments[e])}this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d;if(arguments.length>2){d=[null];for(var e=2;e<arguments.length;e++)d.push(arguments[e])}this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d;if(arguments.length>2){d=[null];for(var e=2;e<arguments.length;e++)d.push(arguments[e])}this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||(void 0===a&&(a="z"),void 0===b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,b===c.Group.SORT_ASCENDING?this.children.sort(this.ascendingSortHandler.bind(this)):this.children.sort(this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]<b[this._sortProperty]?-1:a[this._sortProperty]>b[this._sortProperty]?1:a.z<b.z?-1:1},c.Group.prototype.descendingSortHandler=function(a,b){return a[this._sortProperty]<b[this._sortProperty]?1:a[this._sortProperty]>b[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(0===this.children.length){if(d===c.Group.RETURN_TOTAL)return 0;if(d===c.Group.RETURN_ALL)return[]}var h=0;if(d===c.Group.RETURN_ALL)var i=[];for(var j=0;j<this.children.length;j++)if(this.children[j][a]===b){if(h++,e&&(g?(g[0]=this.children[j],e.apply(f,g)):e.call(f,this.children[j])),d===c.Group.RETURN_CHILD)return this.children[j];d===c.Group.RETURN_ALL&&i.push(this.children[j])}return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_ALL?i:null},c.Group.prototype.getFirstExists=function(a,b,d,e,f,g){void 0===b&&(b=!1),"boolean"!=typeof a&&(a=!0);var h=this.iterate("exists",a,c.Group.RETURN_CHILD);return null===h&&b?this.create(d,e,f,g):this.resetChild(h,d,e,f,g)},c.Group.prototype.getFirstAlive=function(a,b,d,e,f){void 0===a&&(a=!1);var g=this.iterate("alive",!0,c.Group.RETURN_CHILD);return null===g&&a?this.create(b,d,e,f):this.resetChild(g,b,d,e,f)},c.Group.prototype.getFirstDead=function(a,b,d,e,f){void 0===a&&(a=!1);var g=this.iterate("alive",!1,c.Group.RETURN_CHILD);return null===g&&a?this.create(b,d,e,f):this.resetChild(g,b,d,e,f)},c.Group.prototype.resetChild=function(a,b,c,d,e){return null===a?null:(void 0===b&&(b=null),void 0===c&&(c=null),null!==b&&null!==c&&a.reset(b,c),void 0!==d&&a.loadTexture(d,e),a)},c.Group.prototype.getTop=function(){if(this.children.length>0)return this.children[this.children.length-1]},c.Group.prototype.getBottom=function(){if(this.children.length>0)return this.children[0]},c.Group.prototype.getClosestTo=function(a,b,d){for(var e=Number.MAX_VALUE,f=0,g=null,h=0;h<this.children.length;h++){var i=this.children[h];i.exists&&(f=Math.abs(c.Point.distance(a,i)))<e&&(!b||b.call(d,i,f))&&(e=f,g=i)}return g},c.Group.prototype.getFurthestFrom=function(a,b,d){for(var e=0,f=0,g=null,h=0;h<this.children.length;h++){var i=this.children[h];i.exists&&(f=Math.abs(c.Point.distance(a,i)))>e&&(!b||b.call(d,i,f))&&(e=f,g=i)}return g},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return void 0===a&&(a=0),void 0===b&&(b=this.children.length),0===b?null:c.ArrayUtils.getRandomItem(this.children,a,b)},c.Group.prototype.getRandomExists=function(a,b){var c=this.getAll("exists",!0,a,b);return this.game.rnd.pick(c)},c.Group.prototype.getAll=function(a,b,c,d){void 0===c&&(c=0),void 0===d&&(d=this.children.length);for(var e=[],f=c;f<d;f++){var g=this.children[f];a&&g[a]===b&&e.push(g)}return e},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do{a.add(this.children[0],b)}while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=!1),void 0===c&&(c=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var d=this.removeChild(this.children[0]);this.removeFromHash(d),a&&d&&d.destroy(!0,c)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||a<0||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"centerX",{get:function(){return this.getBounds(this.parent).centerX},set:function(a){var b=this.getBounds(this.parent),c=this.x-b.x;this.x=a+c-b.halfWidth}}),Object.defineProperty(c.Group.prototype,"centerY",{get:function(){return this.getBounds(this.parent).centerY},set:function(a){var b=this.getBounds(this.parent),c=this.y-b.y;this.y=a+c-b.halfHeight}}),Object.defineProperty(c.Group.prototype,"left",{get:function(){return this.getBounds(this.parent).left},set:function(a){var b=this.getBounds(this.parent),c=this.x-b.x;this.x=a+c}}),Object.defineProperty(c.Group.prototype,"right",{get:function(){return this.getBounds(this.parent).right},set:function(a){var b=this.getBounds(this.parent),c=this.x-b.x;this.x=a+c-b.width}}),Object.defineProperty(c.Group.prototype,"top",{get:function(){return this.getBounds(this.parent).top},set:function(a){var b=this.getBounds(this.parent),c=this.y-b.y;this.y=a+c}}),Object.defineProperty(c.Group.prototype,"bottom",{get:function(){return this.getBounds(this.parent).bottom},set:function(a){var b=this.getBounds(this.parent),c=this.y-b.y;this.y=a+c-b.height}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.game.stage.addChild(this),this.camera.boot()},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(a<this._width&&(a=this._width),b<this._height&&(b=this._height)),this.bounds.width=a,this.bounds.height=b,this.game.camera.setBoundsToWorld(),this.game.physics.setBoundsToWorld()},c.World.prototype.shutdown=function(){this.destroy(!0,!0)},c.World.prototype.wrap=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=!1),void 0===d&&(d=!0),void 0===e&&(e=!0),c?(a.getBounds(),d&&(a.x+a._currentBounds.width<this.bounds.x?a.x=this.bounds.right:a.x>this.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.height<this.bounds.top?a.y=this.bounds.bottom:a.y>this.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+b<this.bounds.x?a.x=this.bounds.right+b:d&&a.x-b>this.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+b<this.bounds.top?a.y=this.bounds.bottom+b:e&&a.y-b>this.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a<this.game.width&&(a=this.game.width),this.bounds.width=a,this._width=a,this._definedSize=!0}}),Object.defineProperty(c.World.prototype,"height",{get:function(){return this.bounds.height},set:function(a){a<this.game.height&&(a=this.game.height),this.bounds.height=a,this._height=a,this._definedSize=!0}}),Object.defineProperty(c.World.prototype,"centerX",{get:function(){return this.bounds.halfWidth+this.bounds.x}}),Object.defineProperty(c.World.prototype,"centerY",{get:function(){return this.bounds.halfHeight+this.bounds.y}}),Object.defineProperty(c.World.prototype,"randomX",{get:function(){return this.bounds.x<0?this.game.rnd.between(this.bounds.x,this.bounds.width-Math.abs(this.bounds.x)):this.game.rnd.between(this.bounds.x,this.bounds.width)}}),Object.defineProperty(c.World.prototype,"randomY",{get:function(){return this.bounds.y<0?this.game.rnd.between(this.bounds.y,this.bounds.height-Math.abs(this.bounds.y)):this.game.rnd.between(this.bounds.y,this.bounds.height)}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.clearBeforeRender=!0,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!0,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},void 0!==a&&(this._width=a),void 0!==b&&(this._height=b),void 0!==d&&(this.renderType=d),void 0!==e&&(this.parent=e),void 0!==g&&(this.transparent=g),void 0!==h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),void 0!==a.transparent&&(this.transparent=a.transparent),void 0!==a.antialias&&(this.antialias=a.antialias),a.resolution&&(this.resolution=a.resolution),
|
||
void 0!==a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,PIXI.game=this,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.create=new c.Create(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){},reset:function(){}},this.showDebugHeader(),this.isRunning=!0,this.config&&this.config.forceSetTimeOut?this.raf=new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):this.raf=new c.RequestAnimationFrame(this,!1),this._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType===c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c @azerion/phaser v"+a+" | Pixi.js | "+b+" | "+d+" %c %c %c https://github.com/azerion / https://www.azerion.com %c♥%c♥%c♥","background: #7ab3eb","background: #378ce1","color: #ffffff; background: #207cd8;","background: #378ce1","background: #7ab3eb","background: #ffffff"],g=0;g<3;g++)g<e?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("@azerion/phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | https://github.com/azerion / https://www.azerion.com")}},setUpRenderer:function(){if(this.config.canvas?this.canvas=this.config.canvas:this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c<this._lastCount&&(this._spiraling=0),this._lastCount=c,this.updateRender(this._deltaTime/b)}},updateLogic:function(a){this._paused||this.pendingStep?(this.scale.pauseUpdate(),this.state.pauseUpdate(),this.debug.preUpdate()):(this.stepping&&(this.pendingStep=!0),this.scale.preUpdate(),this.debug.preUpdate(),this.camera.preUpdate(),this.physics.preUpdate(),this.state.preUpdate(a),this.plugins.preUpdate(a),this.stage.preUpdate(),this.state.update(),this.stage.update(),this.tweens.update(),this.sound.update(),this.input.update(),this.physics.update(),this.particles.update(),this.plugins.update(),this.stage.postUpdate(),this.plugins.postUpdate()),this.stage.updateTransform()},updateRender:function(a){this.lockRender||(this.state.preRender(a),this.renderType!==c.HEADLESS&&(this.renderer.render(this.stage),this.plugins.render(a),this.state.render(a)),this.plugins.postRender(a))},enableStep:function(){this.stepping=!0,this.pendingStep=!1,this.stepCount=0},disableStep:function(){this.stepping=!1,this.pendingStep=!1},step:function(){this.pendingStep=!1,this.stepCount++},destroy:function(){this.raf.stop(),this.state.destroy(),this.sound.destroy(),this.scale.destroy(),this.stage.destroy(),this.input.destroy(),this.physics.destroy(),this.plugins.destroy(),this.state=null,this.sound=null,this.scale=null,this.stage=null,this.input=null,this.physics=null,this.plugins=null,this.cache=null,this.load=null,this.time=null,this.world=null,this.isBooted=!1,this.renderer.destroy(!1),c.Canvas.removeFromDOM(this.canvas),PIXI.defaultRenderer=null,c.GAMES[this.id]=null},gamePaused:function(a){this._paused||(this._paused=!0,this.time.gamePaused(),this.sound.muteOnPause&&this.sound.setMute(),this.onPause.dispatch(a),this.device.cordova&&this.device.iOS&&(this.lockRender=!0))},gameResumed:function(a){this._paused&&!this._codePaused&&(this._paused=!1,this.time.gameResumed(),this.input.reset(),this.sound.muteOnPause&&this.sound.unsetMute(),this.onResume.dispatch(a),this.device.cordova&&this.device.iOS&&(this.lockRender=!1))},focusLoss:function(a){this.onBlur.dispatch(a),this.stage.disableVisibilityChange||this.gamePaused(a)},focusGain:function(a){this.onFocus.dispatch(a),this.stage.disableVisibilityChange||this.gameResumed(a)}},c.Game.prototype.constructor=c.Game,Object.defineProperty(c.Game.prototype,"paused",{get:function(){return this._paused},set:function(a){!0===a?(!1===this._paused&&(this._paused=!0,this.sound.setMute(),this.time.gamePaused(),this.onPause.dispatch(this)),this._codePaused=!0):(this._paused&&(this._paused=!1,this.input.reset(),this.sound.unsetMute(),this.time.gameResumed(),this.onResume.dispatch(this)),this._codePaused=!1)}}),c.Input=function(a){this.game=a,this.hitCanvas=null,this.hitContext=null,this.moveCallbacks=[],this.customCandidateHandler=null,this.customCandidateHandlerContext=null,this.pollRate=0,this.enabled=!0,this.multiInputOverride=c.Input.MOUSE_TOUCH_COMBINE,this.position=null,this.speed=null,this.circle=null,this.scale=null,this.maxPointers=-1,this.tapRate=200,this.doubleTapRate=300,this.holdRate=2e3,this.justPressedRate=200,this.justReleasedRate=200,this.recordPointerHistory=!1,this.recordRate=100,this.recordLimit=100,this.pointer1=null,this.pointer2=null,this.pointer3=null,this.pointer4=null,this.pointer5=null,this.pointer6=null,this.pointer7=null,this.pointer8=null,this.pointer9=null,this.pointer10=null,this.pointers=[],this.activePointer=null,this.mousePointer=null,this.mouse=null,this.keyboard=null,this.touch=null,this.mspointer=null,this.gamepad=null,this.resetLocked=!1,this.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.minPriorityID=0,this.interactiveItems=new c.ArraySet,this._localPoint=new c.Point,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=0},c.Input.MOUSE_OVERRIDES_TOUCH=0,c.Input.TOUCH_OVERRIDES_MOUSE=1,c.Input.MOUSE_TOUCH_COMBINE=2,c.Input.MAX_POINTERS=10,c.Input.prototype={boot:function(){this.mousePointer=new c.Pointer(this.game,0,c.PointerMode.CURSOR),this.addPointer(),this.addPointer(),this.mouse=new c.Mouse(this.game),this.touch=new c.Touch(this.game),this.mspointer=new c.MSPointer(this.game),c.Keyboard&&(this.keyboard=new c.Keyboard(this.game)),c.Gamepad&&(this.gamepad=new c.Gamepad(this.game)),this.onDown=new c.Signal,this.onUp=new c.Signal,this.onTap=new c.Signal,this.onHold=new c.Signal,this.scale=new c.Point(1,1),this.speed=new c.Point,this.position=new c.Point,this._oldPosition=new c.Point,this.circle=new c.Circle(0,0,45),this.activePointer=this.mousePointer,this.hitCanvas=PIXI.CanvasPool.create(this,1,1),this.hitContext=this.hitCanvas.getContext("2d"),this.game.device.mspointer?this.mspointer.start():this.game.device.touch&&this.touch.start(),this.mspointer.active||this.mouse.start(),this.mousePointer.active=!0,this.keyboard&&this.keyboard.start();var a=this;this._onClickTrampoline=function(b){a.onClickTrampoline(b)},this.game.canvas.addEventListener("click",this._onClickTrampoline,!1)},destroy:function(){this.mouse.stop(),this.touch.stop(),this.mspointer.stop(),this.keyboard&&this.keyboard.stop(),this.gamepad&&this.gamepad.stop(),this.moveCallbacks=[],PIXI.CanvasPool.remove(this),this.game.canvas.removeEventListener("click",this._onClickTrampoline)},setInteractiveCandidateHandler:function(a,b){this.customCandidateHandler=a,this.customCandidateHandlerContext=b},addMoveCallback:function(a,b){this.moveCallbacks.push({callback:a,context:b})},deleteMoveCallback:function(a,b){for(var c=this.moveCallbacks.length;c--;)if(this.moveCallbacks[c].callback===a&&this.moveCallbacks[c].context===b)return void this.moveCallbacks.splice(c,1)},addPointer:function(){if(this.pointers.length>=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter<this.pollRate)return void this._pollCounter++;this.speed.x=this.position.x-this._oldPosition.x,this.speed.y=this.position.y-this._oldPosition.y,this._oldPosition.copyFrom(this.position),this.mousePointer.update(),this.gamepad&&this.gamepad.active&&this.gamepad.update();for(var a=0;a<this.pointers.length;a++)this.pointers[a].update();this._pollCounter=0},reset:function(a){if(this.game.isBooted&&!this.resetLocked){void 0===a&&(a=!1),this.mousePointer.reset(),this.keyboard&&this.keyboard.reset(a),this.gamepad&&this.gamepad.reset();for(var b=0;b<this.pointers.length;b++)this.pointers[b].reset();"none"!==this.game.canvas.style.cursor&&(this.game.canvas.style.cursor="inherit"),a&&(this.onDown.dispose(),this.onUp.dispose(),this.onTap.dispose(),this.onHold.dispose(),this.onDown=new c.Signal,this.onUp=new c.Signal,this.onTap=new c.Signal,this.onHold=new c.Signal,this.moveCallbacks=[]),this._pollCounter=0}},resetSpeed:function(a,b){this._oldPosition.setTo(a,b),this.speed.setTo(0,0)},startPointer:function(a){if(this.maxPointers>=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b<this.pointers.length;b++){var c=this.pointers[b];if(!c.active)return c.start(a)}return null},updatePointer:function(a){if(this.pointer1.active&&this.pointer1.identifier===a.identifier)return this.pointer1.move(a);if(this.pointer2.active&&this.pointer2.identifier===a.identifier)return this.pointer2.move(a);for(var b=2;b<this.pointers.length;b++){var c=this.pointers[b];if(c.active&&c.identifier===a.identifier)return c.move(a)}return null},stopPointer:function(a){if(this.pointer1.active&&this.pointer1.identifier===a.identifier)return this.pointer1.stop(a);if(this.pointer2.active&&this.pointer2.identifier===a.identifier)return this.pointer2.stop(a);for(var b=2;b<this.pointers.length;b++){var c=this.pointers[b];if(c.active&&c.identifier===a.identifier)return c.stop(a)}return null},countActivePointers:function(a){void 0===a&&(a=this.pointers.length);for(var b=a,c=0;c<this.pointers.length&&b>0;c++){this.pointers[c].active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b<this.pointers.length;b++){var c=this.pointers[b];if(c.active===a)return c}return null},getPointerFromIdentifier:function(a){for(var b=0;b<this.pointers.length;b++){var c=this.pointers[b];if(c.identifier===a)return c}return null},getPointerFromId:function(a){for(var b=0;b<this.pointers.length;b++){var c=this.pointers[b];if(c.pointerId===a)return c}return null},getLocalPosition:function(a,b,d){void 0===d&&(d=new c.Point);var e=a.worldTransform,f=1/(e.a*e.d+e.c*-e.b);return d.setTo(e.d*f*b.x+-e.c*f*b.y+(e.ty*e.c-e.tx*e.d)*f,e.a*f*b.y+-e.b*f*b.x+(-e.ty*e.a+e.tx*e.b)*f)},hitTest:function(a,b,d){if(!a.worldVisible)return!1;if(this.getLocalPosition(a,b,this._localPoint),d.copyFrom(this._localPoint),a.hitArea&&a.hitArea.contains)return a.hitArea.contains(this._localPoint.x,this._localPoint.y);if(a instanceof c.TileSprite){var e=a.width,f=a.height,g=-e*a.anchor.x;if(this._localPoint.x>=g&&this._localPoint.x<g+e){var h=-f*a.anchor.y;if(this._localPoint.y>=h&&this._localPoint.y<h+f)return!0}}else if(a instanceof PIXI.Sprite){var e=a.texture.frame.width,f=a.texture.frame.height,g=-e*a.anchor.x;if(this._localPoint.x>=g&&this._localPoint.x<g+e){var h=-f*a.anchor.y;if(this._localPoint.y>=h&&this._localPoint.y<h+f)return!0}}else if(c.Graphics&&a instanceof c.Graphics)for(var i=0;i<a.graphicsData.length;i++){var j=a.graphicsData[i];if(j.fill&&(j.shape&&j.shape.contains(this._localPoint.x,this._localPoint.y)))return!0}for(var i=0;i<a.children.length;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter<this.pollRate}}),Object.defineProperty(c.Input.prototype,"totalInactivePointers",{get:function(){return this.pointers.length-this.countActivePointers()}}),Object.defineProperty(c.Input.prototype,"totalActivePointers",{get:function(){return this.countActivePointers()}}),Object.defineProperty(c.Input.prototype,"worldX",{get:function(){return this.game.camera.view.x+this.x}}),Object.defineProperty(c.Input.prototype,"worldY",{get:function(){return this.game.camera.view.y+this.y}}),c.Mouse=function(a){this.game=a,this.input=a.input,this.callbackContext=this.game,this.mouseDownCallback=null,this.mouseUpCallback=null,this.mouseOutCallback=null,this.mouseOverCallback=null,this.mouseWheelCallback=null,this.capture=!1,this.button=-1,this.wheelDelta=0,this.enabled=!0,this.locked=!1,this.stopOnGameOut=!1,this.pointerLock=new c.Signal,this.event=null,this._onMouseDown=null,this._onMouseMove=null,this._onMouseUp=null,this._onMouseOut=null,this._onMouseOver=null,this._onMouseWheel=null,this._wheelEvent=null},c.Mouse.NO_BUTTON=-1,c.Mouse.LEFT_BUTTON=0,c.Mouse.MIDDLE_BUTTON=1,c.Mouse.RIGHT_BUTTON=2,c.Mouse.BACK_BUTTON=3,c.Mouse.FORWARD_BUTTON=4,c.Mouse.WHEEL_UP=1,c.Mouse.WHEEL_DOWN=-1,c.Mouse.prototype={start:function(){if((!this.game.device.android||!1!==this.game.device.chrome)&&null===this._onMouseDown){var b=this;this._onMouseDown=function(a){return b.onMouseDown(a)},this._onMouseMove=function(a){return b.onMouseMove(a)},this._onMouseUp=function(a){return b.onMouseUp(a)},this._onMouseUpGlobal=function(a){return b.onMouseUpGlobal(a)},this._onMouseOutGlobal=function(a){return b.onMouseOutGlobal(a)},this._onMouseOut=function(a){return b.onMouseOut(a)},this._onMouseOver=function(a){return b.onMouseOver(a)},this._onMouseWheel=function(a){return b.onMouseWheel(a)};var c=this.game.canvas;c.addEventListener("mousedown",this._onMouseDown,!0),c.addEventListener("mousemove",this._onMouseMove,!0),c.addEventListener("mouseup",this._onMouseUp,!0),this.game.device.cocoonJS||(window.addEventListener("mouseup",this._onMouseUpGlobal,!0),window.addEventListener("mouseout",this._onMouseOutGlobal,!0),c.addEventListener("mouseover",this._onMouseOver,!0),c.addEventListener("mouseout",this._onMouseOut,!0));var d=this.game.device.wheelEvent;d&&(c.addEventListener(d,this._onMouseWheel,!0),"mousewheel"===d?this._wheelEvent=new a(-.025,1):"DOMMouseScroll"===d&&(this._wheelEvent=new a(1,1)))}},onMouseDown:function(a){this.event=a,this.capture&&a.preventDefault(),this.mouseDownCallback&&this.mouseDownCallback.call(this.callbackContext,a),this.input.enabled&&this.enabled&&(a.identifier=0,this.input.mousePointer.start(a))},onMouseMove:function(a){this.event=a,this.capture&&a.preventDefault(),this.mouseMoveCallback&&this.mouseMoveCallback.call(this.callbackContext,a),this.input.enabled&&this.enabled&&(a.identifier=0,this.input.mousePointer.move(a))},onMouseUp:function(a){this.event=a,this.capture&&a.preventDefault(),this.mouseUpCallback&&this.mouseUpCallback.call(this.callbackContext,a),this.input.enabled&&this.enabled&&(a.identifier=0,this.input.mousePointer.stop(a))},onMouseUpGlobal:function(a){this.input.mousePointer.withinGame||(this.mouseUpCallback&&this.mouseUpCallback.call(this.callbackContext,a),a.identifier=0,this.input.mousePointer.stop(a))},onMouseOutGlobal:function(a){this.event=a,this.capture&&a.preventDefault(),this.input.mousePointer.withinGame=!1,this.input.enabled&&this.enabled&&(this.input.mousePointer.stop(a),this.input.mousePointer.leftButton.stop(a),this.input.mousePointer.rightButton.stop(a))},onMouseOut:function(a){this.event=a,this.capture&&a.preventDefault(),this.input.mousePointer.withinGame=!1,this.mouseOutCallback&&this.mouseOutCallback.call(this.callbackContext,a),this.input.enabled&&this.enabled&&this.stopOnGameOut&&(a.identifier=0,this.input.mousePointer.stop(a))},onMouseOver:function(a){this.event=a,this.capture&&a.preventDefault(),this.input.mousePointer.withinGame=!0,this.mouseOverCallback&&this.mouseOverCallback.call(this.callbackContext,a)},onMouseWheel:function(a){this._wheelEvent&&(a=this._wheelEvent.bindEvent(a)),this.event=a,this.capture&&a.preventDefault(),this.wheelDelta=c.Math.clamp(-a.deltaY,-1,1),this.mouseWheelCallback&&this.mouseWheelCallback.call(this.callbackContext,a)},requestPointerLock:function(){if(this.game.device.pointerLock){var a=this.game.canvas;a.requestPointerLock=a.requestPointerLock||a.mozRequestPointerLock||a.webkitRequestPointerLock,a.requestPointerLock();var b=this;this._pointerLockChange=function(a){return b.pointerLockChange(a)},document.addEventListener("pointerlockchange",this._pointerLockChange,!0),document.addEventListener("mozpointerlockchange",this._pointerLockChange,!0),document.addEventListener("webkitpointerlockchange",this._pointerLockChange,!0)}},pointerLockChange:function(a){var b=this.game.canvas;document.pointerLockElement===b||document.mozPointerLockElement===b||document.webkitPointerLockElement===b?(this.locked=!0,this.pointerLock.dispatch(!0,a)):(this.locked=!1,this.pointerLock.dispatch(!1,a))},releasePointerLock:function(){document.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock,document.exitPointerLock(),document.removeEventListener("pointerlockchange",this._pointerLockChange,!0),document.removeEventListener("mozpointerlockchange",this._pointerLockChange,!0),document.removeEventListener("webkitpointerlockchange",this._pointerLockChange,!0)},stop:function(){var a=this.game.canvas;a.removeEventListener("mousedown",this._onMouseDown,!0),a.removeEventListener("mousemove",this._onMouseMove,!0),a.removeEventListener("mouseup",this._onMouseUp,!0),a.removeEventListener("mouseover",this._onMouseOver,!0),a.removeEventListener("mouseout",this._onMouseOut,!0);var b=this.game.device.wheelEvent;b&&a.removeEventListener(b,this._onMouseWheel,!0),window.removeEventListener("mouseup",this._onMouseUpGlobal,!0),window.removeEventListener("mouseout",this._onMouseOutGlobal,!0),document.removeEventListener("pointerlockchange",this._pointerLockChange,!0),document.removeEventListener("mozpointerlockchange",this._pointerLockChange,!0),document.removeEventListener("webkitpointerlockchange",this._pointerLockChange,!0)}},c.Mouse.prototype.constructor=c.Mouse,a.prototype={},a.prototype.constructor=a,a.prototype.bindEvent=function(b){if(!a._stubsGenerated&&b){for(var c in b)c in a.prototype||Object.defineProperty(a.prototype,c,{get:function(a){return function(){var b=this.originalEvent[a];return"function"!=typeof b?b:b.bind(this.originalEvent)}}(c)});a._stubsGenerated=!0}return this.originalEvent=b,this},Object.defineProperties(a.prototype,{type:{value:"wheel"},deltaMode:{get:function(){return this._deltaMode}},deltaY:{get:function(){return this._scaleFactor*(this.originalEvent.wheelDelta||this.originalEvent.detail)||0}},deltaX:{get:function(){return this._scaleFactor*this.originalEvent.wheelDeltaX||0}},deltaZ:{value:0}}),c.MSPointer=function(a){this.game=a,this.input=a.input,this.callbackContext=this.game,this.pointerDownCallback=null,this.pointerMoveCallback=null,this.pointerUpCallback=null,this.capture=!1,this.event=null,this.active=!1,this.enabled=!0,this._onMSPointerDown=null,this._onMSPointerMove=null,this._onMSPointerUp=null,this._onMSPointerUpGlobal=null,this._onMSPointerOut=null,this._onMSPointerOver=null},c.MSPointer.prototype={start:function(){if(!this.game.device.mspointer)return!1;if(null!==this._onMSPointerDown)return!1;var a=this;this._onMSPointerDown=function(b){return a.onPointerDown(b)},this._onMSPointerMove=function(b){return a.onPointerMove(b)},this._onMSPointerUp=function(b){return a.onPointerUp(b)},this._onMSPointerUpGlobal=function(b){return a.onPointerUpGlobal(b)},this._onMSPointerOut=function(b){return a.onPointerOut(b)},this._onMSPointerOver=function(b){return a.onPointerOver(b)};var b=this.game.canvas;return b.addEventListener("MSPointerDown",this._onMSPointerDown,!1),b.addEventListener("MSPointerMove",this._onMSPointerMove,!1),b.addEventListener("MSPointerUp",this._onMSPointerUp,!1),b.addEventListener("pointerdown",this._onMSPointerDown,!1),b.addEventListener("pointermove",this._onMSPointerMove,!1),b.addEventListener("pointerup",this._onMSPointerUp,!1),b.style["-ms-content-zooming"]="none",b.style["-ms-touch-action"]="none",this.game.device.cocoonJS||(window.addEventListener("MSPointerUp",this._onMSPointerUpGlobal,!0),b.addEventListener("MSPointerOver",this._onMSPointerOver,!0),b.addEventListener("MSPointerOut",this._onMSPointerOut,!0),window.addEventListener("pointerup",this._onMSPointerUpGlobal,!0),b.addEventListener("pointerover",this._onMSPointerOver,!0),b.addEventListener("pointerout",this._onMSPointerOut,!0)),this.active=!0,!0},onPointerDown:function(a){this.event=a,this.capture&&a.preventDefault(),this.pointerDownCallback&&this.pointerDownCallback.call(this.callbackContext,a),this.input.enabled&&this.enabled&&(a.identifier=a.pointerId,"mouse"===a.pointerType||4===a.pointerType?this.input.mousePointer.start(a):this.input.startPointer(a))},onPointerMove:function(a){this.event=a,this.capture&&a.preventDefault(),this.pointerMoveCallback&&this.pointerMoveCallback.call(this.callbackContext,a),this.input.enabled&&this.enabled&&(a.identifier=a.pointerId,"mouse"===a.pointerType||4===a.pointerType?this.input.mousePointer.move(a):this.input.updatePointer(a))},onPointerUp:function(a){this.event=a,this.capture&&a.preventDefault(),this.pointerUpCallback&&this.pointerUpCallback.call(this.callbackContext,a),this.input.enabled&&this.enabled&&(a.identifier=a.pointerId,"mouse"===a.pointerType||4===a.pointerType?this.input.mousePointer.stop(a):this.input.stopPointer(a))},onPointerUpGlobal:function(a){if("mouse"!==a.pointerType&&4!==a.pointerType||this.input.mousePointer.withinGame){var b=this.input.getPointerFromIdentifier(a.identifier);b&&b.withinGame&&this.onPointerUp(a)}else this.onPointerUp(a)},onPointerOut:function(a){if(this.event=a,this.capture&&a.preventDefault(),"mouse"===a.pointerType||4===a.pointerType)this.input.mousePointer.withinGame=!1;else{var b=this.input.getPointerFromIdentifier(a.identifier);b&&(b.withinGame=!1)}this.input.mouse.mouseOutCallback&&this.input.mouse.mouseOutCallback.call(this.input.mouse.callbackContext,a),this.input.enabled&&this.enabled&&this.input.mouse.stopOnGameOut&&(a.identifier=0,b?b.stop(a):this.input.mousePointer.stop(a))},onPointerOver:function(a){if(this.event=a,this.capture&&a.preventDefault(),"mouse"===a.pointerType||4===a.pointerType)this.input.mousePointer.withinGame=!0;else{var b=this.input.getPointerFromIdentifier(a.identifier);b&&(b.withinGame=!0)}this.input.mouse.mouseOverCallback&&this.input.mouse.mouseOverCallback.call(this.input.mouse.callbackContext,a)},stop:function(){var a=this.game.canvas;a.removeEventListener("MSPointerDown",this._onMSPointerDown,!1),a.removeEventListener("MSPointerMove",this._onMSPointerMove,!1),a.removeEventListener("MSPointerUp",this._onMSPointerUp,!1),a.removeEventListener("pointerdown",this._onMSPointerDown,!1),a.removeEventListener("pointermove",this._onMSPointerMove,!1),a.removeEventListener("pointerup",this._onMSPointerUp,!1),window.removeEventListener("MSPointerUp",this._onMSPointerUpGlobal,!0),a.removeEventListener("MSPointerOver",this._onMSPointerOver,!0),a.removeEventListener("MSPointerOut",this._onMSPointerOut,!0),window.removeEventListener("pointerup",this._onMSPointerUpGlobal,!0),a.removeEventListener("pointerover",this._onMSPointerOver,!0),a.removeEventListener("pointerout",this._onMSPointerOut,!0),this.active=!1}},c.MSPointer.prototype.constructor=c.MSPointer,c.DeviceButton=function(a,b){this.parent=a,this.game=a.game,this.event=null,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1,this.value=0,this.buttonCode=b,this.onDown=new c.Signal,this.onUp=new c.Signal,this.onFloat=new c.Signal},c.DeviceButton.prototype={start:function(a,b){this.isDown||(this.isDown=!0,this.isUp=!1,this.timeDown=this.game.time.time,this.repeats=0,this.event=a,this.value=b,a&&(this.altKey=a.altKey,this.shiftKey=a.shiftKey,this.ctrlKey=a.ctrlKey),this.onDown.dispatch(this,b))},stop:function(a,b){this.isUp||(this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.time,this.event=a,this.value=b,a&&(this.altKey=a.altKey,this.shiftKey=a.shiftKey,this.ctrlKey=a.ctrlKey),this.onUp.dispatch(this,b))},padFloat:function(a){this.value=a,this.onFloat.dispatch(this,a)},justPressed:function(a){return a=a||250,this.isDown&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.interactiveCandidates=[],this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input
|
||
;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),!1===this._holdSent&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY);for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&!0===this.targetObject.isDragged?!1===this.targetObject.update(this)&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){var b=0,c=-1,d=null,e=this.game.input.interactiveItems.first;for(this.interactiveCandidates=[];e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e,this.interactiveCandidates.push(e))),e=this.game.input.interactiveItems.next;for(e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e,this.interactiveCandidates.push(e)),e=this.game.input.interactiveItems.next;return this.game.input.customCandidateHandler&&(d=this.game.input.customCandidateHandler.call(this.game.input.customCandidateHandlerContext,this,this.interactiveCandidates,d)),this.swapTarget(d,!1),null!==this.targetObject},swapTarget:function(a,b){void 0===b&&(b=!1),null===a?this.targetObject&&(this.targetObject._pointerOutHandler(this,b),this.targetObject=null):null===this.targetObject?(this.targetObject=a,a._pointerOverHandler(this,b)):this.targetObject===a?!1===a.update(this)&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this,b),this.targetObject=a,this.targetObject._pointerOverHandler(this,b))},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime<b.doubleTapRate?b.onTap.dispatch(this,!0):b.onTap.dispatch(this,!1),this.previousTapTime=this.timeUp)),this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),this.id>0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),!1===this.isMouse&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,!0===this.isDown&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f<e.length;f++)if(e[f].name===a){e.splice(f,1);break}e.push({name:a,targetObject:this.targetObject,callback:b,callbackContext:c,callbackArgs:d})}},processClickTrampolines:function(){var a=this._clickTrampolines;if(a){for(var b=0;b<a.length;b++){var c=a[b];c.targetObject===this._trampolineTargetObject&&c.callback.apply(c.callbackContext,c.callbackArgs)}this._clickTrampolines=null,this._trampolineTargetObject=null}},reset:function(){!1===this.isMouse&&(this.active=!1),this.pointerId=null,this.identifier=null,this.dirty=!1,this.totalTouches=0,this._holdSent=!1,this._history.length=0,this._stateReset=!0,this.resetButtons(),this.targetObject&&this.targetObject._releasedHandler(this),this.targetObject=null},resetMovement:function(){this.movementX=0,this.movementY=0}},c.Pointer.prototype.constructor=c.Pointer,Object.defineProperty(c.Pointer.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),Object.defineProperty(c.Pointer.prototype,"worldX",{get:function(){return this.game.world.camera.x+this.x}}),Object.defineProperty(c.Pointer.prototype,"worldY",{get:function(){return this.game.world.camera.y+this.y}}),c.PointerMode={CURSOR:1,CONTACT:2},c.Touch=function(a){this.game=a,this.enabled=!0,this.touchLockCallbacks=[],this.callbackContext=this.game,this.touchStartCallback=null,this.touchMoveCallback=null,this.touchEndCallback=null,this.touchEnterCallback=null,this.touchLeaveCallback=null,this.touchCancelCallback=null,this.preventDefault=!0,this.event=null,this._onTouchStart=null,this._onTouchMove=null,this._onTouchEnd=null,this._onTouchEnter=null,this._onTouchLeave=null,this._onTouchCancel=null,this._onTouchMove=null},c.Touch.prototype={start:function(){if(null===this._onTouchStart){var a=this;this.game.device.touch&&(this._onTouchStart=function(b){return a.onTouchStart(b)},this._onTouchMove=function(b){return a.onTouchMove(b)},this._onTouchEnd=function(b){return a.onTouchEnd(b)},this._onTouchEnter=function(b){return a.onTouchEnter(b)},this._onTouchLeave=function(b){return a.onTouchLeave(b)},this._onTouchCancel=function(b){return a.onTouchCancel(b)},this.game.canvas.addEventListener("touchstart",this._onTouchStart,!1),this.game.canvas.addEventListener("touchmove",this._onTouchMove,!1),this.game.canvas.addEventListener("touchend",this._onTouchEnd,!1),this.game.canvas.addEventListener("touchcancel",this._onTouchCancel,!1),this.game.device.cocoonJS||(this.game.canvas.addEventListener("touchenter",this._onTouchEnter,!1),this.game.canvas.addEventListener("touchleave",this._onTouchLeave,!1)))}},consumeDocumentTouches:function(){this._documentTouchMove=function(a){a.preventDefault()},document.addEventListener("touchmove",this._documentTouchMove,!1)},addTouchLockCallback:function(a,b,c){void 0===c&&(c=!1),this.touchLockCallbacks.push({callback:a,context:b,onEnd:c})},removeTouchLockCallback:function(a,b){for(var c=this.touchLockCallbacks.length;c--;)if(this.touchLockCallbacks[c].callback===a&&this.touchLockCallbacks[c].context===b)return this.touchLockCallbacks.splice(c,1),!0;return!1},onTouchStart:function(a){for(var b=this.touchLockCallbacks.length;b--;){var c=this.touchLockCallbacks[b];!c.onEnd&&c.callback.call(c.context,this,a)&&this.touchLockCallbacks.splice(b,1)}if(this.event=a,this.game.input.enabled&&this.enabled){this.touchStartCallback&&this.touchStartCallback.call(this.callbackContext,a),this.preventDefault&&a.preventDefault();for(var b=0;b<a.changedTouches.length;b++)this.game.input.startPointer(a.changedTouches[b])}},onTouchCancel:function(a){if(this.event=a,this.touchCancelCallback&&this.touchCancelCallback.call(this.callbackContext,a),this.game.input.enabled&&this.enabled){this.preventDefault&&a.preventDefault();for(var b=0;b<a.changedTouches.length;b++)this.game.input.stopPointer(a.changedTouches[b])}},onTouchEnter:function(a){this.event=a,this.touchEnterCallback&&this.touchEnterCallback.call(this.callbackContext,a),this.game.input.enabled&&this.enabled&&this.preventDefault&&a.preventDefault()},onTouchLeave:function(a){this.event=a,this.touchLeaveCallback&&this.touchLeaveCallback.call(this.callbackContext,a),this.preventDefault&&a.preventDefault()},onTouchMove:function(a){this.event=a,this.touchMoveCallback&&this.touchMoveCallback.call(this.callbackContext,a),this.preventDefault&&a.preventDefault();for(var b=0;b<a.changedTouches.length;b++)this.game.input.updatePointer(a.changedTouches[b])},onTouchEnd:function(a){for(var b=this.touchLockCallbacks.length;b--;){var c=this.touchLockCallbacks[b];c.onEnd&&c.callback.call(c.context,this,a)&&this.touchLockCallbacks.splice(b,1)}this.event=a,this.touchEndCallback&&this.touchEndCallback.call(this.callbackContext,a),this.preventDefault&&a.preventDefault();for(var b=0;b<a.changedTouches.length;b++)this.game.input.stopPointer(a.changedTouches[b])},stop:function(){this.game.device.touch&&(this.game.canvas.removeEventListener("touchstart",this._onTouchStart),this.game.canvas.removeEventListener("touchmove",this._onTouchMove),this.game.canvas.removeEventListener("touchend",this._onTouchEnd),this.game.canvas.removeEventListener("touchenter",this._onTouchEnter),this.game.canvas.removeEventListener("touchleave",this._onTouchLeave),this.game.canvas.removeEventListener("touchcancel",this._onTouchCancel))}},c.Touch.prototype.constructor=c.Touch,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.scaleLayer=!1,this.dragOffset=new c.Point,this.dragFromCenter=!1,this.dragStopBlocksInputUp=!1,this.dragStartPoint=new c.Point,this.dragDistanceThreshold=0,this.dragTimeThreshold=0,this.downPoint=new c.Point,this.snapPoint=new c.Point,this._dragPoint=new c.Point,this._dragPhase=!1,this._pendingDrag=!1,this._dragTimePass=!1,this._dragDistancePass=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,camX:0,camY:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,void 0===b&&(b=!1),!1===this.enabled){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;d<10;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1;for(var a=0;a<10;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){!1!==this.enabled&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!(!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityID<this.game.input.minPriorityID||this.sprite.parent&&this.sprite.parent.ignoreChildInput)&&(!(!c&&(this.pixelPerfectClick||this.pixelPerfectOver))&&(this.priorityID>a||this.priorityID===a&&this.sprite.renderOrderID>b))},isPixelPerfect:function(){return this.pixelPerfectClick||this.pixelPerfectOver},pointerX:function(a){return a=a||0,this._pointerData[a].x},pointerY:function(a){return a=a||0,this._pointerData[a].y},pointerDown:function(a){return a=a||0,this._pointerData[a].isDown},pointerUp:function(a){return a=a||0,this._pointerData[a].isUp},pointerTimeDown:function(a){return a=a||0,this._pointerData[a].timeDown},pointerTimeUp:function(a){return a=a||0,this._pointerData[a].timeUp},pointerOver:function(a){if(!this.enabled)return!1;if(void 0===a){for(var b=0;b<10;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;b<10;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return!!(a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&0!==this.sprite.worldScale.x&&0!==this.sprite.worldScale.y)&&(!!this.game.input.hitTest(this.sprite,a,this._tempPoint)&&(void 0===b&&(b=!1),!(!b&&this.pixelPerfectClick)||this.checkPixel(this._tempPoint.x,this._tempPoint.y)))},checkPointerOver:function(a,b){return!!(this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&0!==this.sprite.worldScale.x&&0!==this.sprite.worldScale.y)&&(!!this.game.input.hitTest(this.sprite,a,this._tempPoint)&&(void 0===b&&(b=!1),!(!b&&this.pixelPerfectOver)||this.checkPixel(this._tempPoint.x,this._tempPoint.y)))},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(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.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,a<this.sprite.texture.crop.x||a>this.sprite.texture.crop.right||b<this.sprite.texture.crop.y||b>this.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);if(this.game.input.hitContext.getImageData(0,0,1,1).data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){if(null!==this.sprite&&void 0!==this.sprite.parent)return this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this._pendingDrag?(this._dragDistancePass||(this._dragDistancePass=c.Math.distance(a.x,a.y,this.downPoint.x,this.downPoint.y)>=this.dragDistanceThreshold),this._dragDistancePass&&this._dragTimePass&&this.startDrag(a),!0):this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a,!1):this._pointerData[a.id].isOver?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)},_pointerOverHandler:function(a,b){if(null!==this.sprite){var d=this._pointerData[a.id];if(!1===d.isOver||a.dirty){var e=!1===d.isOver;d.isOver=!0,d.isOut=!1,d.timeOver=this.game.time.time,d.x=a.x-this.sprite.x,d.y=a.y-this.sprite.y,this.useHandCursor&&!1===d.isDragged&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),!b&&e&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a),this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputOver.dispatch(this.sprite,a)}}},_pointerOutHandler:function(a,b){if(null!==this.sprite){var d=this._pointerData[a.id];d.isOver=!1,d.isOut=!0,d.timeOut=this.game.time.time,this.useHandCursor&&!1===d.isDragged&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),!b&&this.sprite&&this.sprite.events&&(this.sprite.events.onInputOut$dispatch(this.sprite,a),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputOut.dispatch(this.sprite,a))}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;if(b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,this.downPoint.set(a.x,a.y),a.dirty=!0,this.sprite&&this.sprite.events&&(this.sprite.events.onInputDown$dispatch(this.sprite,a),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputDown.dispatch(this.sprite,a),null===this.sprite))return;this.draggable&&!1===this.isDragged&&(0===this.dragTimeThreshold&&0===this.dragDistanceThreshold?this.startDrag(a):(this._pendingDrag=!0,this._dragDistancePass=0===this.dragDistanceThreshold,this.dragTimeThreshold>0?(this._dragTimePass=!1,this.game.time.events.add(this.dragTimeThreshold,this.dragTimeElapsed,this,a)):this._dragTimePass=!0)),this.bringToTop&&this.sprite.bringToTop()}}},dragTimeElapsed:function(a){this._dragTimePass=!0,this._pendingDrag&&this.sprite&&this._dragDistancePass&&this.startDrag(a)},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var d=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.dragStopBlocksInputUp&&(!this.dragStopBlocksInputUp||this.draggable&&this.isDragged&&this._draggedPointerID===a.id)||this.sprite.events.onInputUp$dispatch(this.sprite,a,d),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputUp.dispatch(this.sprite,a,d),d&&(d=this.checkPointerOver(a))),b.isOver=d,!d&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this._pendingDrag=!1,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(void 0===b&&(b=!1),a.isUp)return this.stopDrag(a),!1;var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;if(this.sprite.fixedToCamera)this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y));else{var e=this.game.camera.x-this._pointerData[a.id].camX,f=this.game.camera.y-this._pointerData[a.id].camY;this.allowHorizontalDrag&&(this.sprite.x=c+e),this.allowVerticalDrag&&(this.sprite.y=d+f),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))}return this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)<b},justOut:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOut&&this.game.time.time-this._pointerData[a].timeOut<b},justPressed:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isDown&&this.downDuration(a)<b},justReleased:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isUp&&this.game.time.time-this._pointerData[a].timeUp<b},overDuration:function(a){return a=a||0,this._pointerData[a].isOver?this.game.time.time-this._pointerData[a].timeOver:-1},downDuration:function(a){return a=a||0,this._pointerData[a].isDown?this.game.time.time-this._pointerData[a].timeDown:-1},enableDrag:function(a,b,d,e,f,g){void 0===a&&(a=!1),void 0===b&&(b=!1),void 0===d&&(d=!1),void 0===e&&(e=255),void 0===f&&(f=null),void 0===g&&(g=null),this._dragPoint=new c.Point,this.draggable=!0,this.bringToTop=b,this.dragOffset=new c.Point,this.dragFromCenter=a,this.pixelPerfectClick=d,this.pixelPerfectAlpha=e,f&&(this.boundsRect=f),g&&(this.boundsSprite=g)},disableDrag:function(){if(this._pointerData)for(var a=0;a<10;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1,this._pendingDrag=!1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].camX=this.game.camera.x,this._pointerData[a.id].camY=this.game.camera.y,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera){if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.cameraOffset.x=this.globalToLocalX(a.x)+(this.sprite.cameraOffset.x-d.centerX),this.sprite.cameraOffset.y=this.globalToLocalY(a.y)+(this.sprite.cameraOffset.y-d.centerY)}this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)}else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c),this._pendingDrag=!1},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this._pendingDrag=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),!1===this.checkPointerOver(a)&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.x<this.boundsRect.left?this.sprite.cameraOffset.x=this.boundsRect.left:this.sprite.cameraOffset.x+this.sprite.width>this.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.y<this.boundsRect.top?this.sprite.cameraOffset.y=this.boundsRect.top:this.sprite.cameraOffset.y+this.sprite.height>this.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.left<this.boundsRect.left?this.sprite.x=this.boundsRect.x+this.sprite.offsetX:this.sprite.right>this.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.top<this.boundsRect.top?this.sprite.y=this.boundsRect.top+this.sprite.offsetY:this.sprite.bottom>this.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.x<this.boundsSprite.cameraOffset.x?this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x:this.sprite.cameraOffset.x+this.sprite.width>this.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.y<this.boundsSprite.cameraOffset.y?this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y:this.sprite.cameraOffset.y+this.sprite.height>this.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.left<this.boundsSprite.left?this.sprite.x=this.boundsSprite.left+this.sprite.offsetX:this.sprite.right>this.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.top<this.boundsSprite.top?this.sprite.y=this.boundsSprite.top+this.sprite.offsetY:this.sprite.bottom>this.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!==navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){void 0!==b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(this._active){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c<a.length&&(typeof a[c]!==this._prevRawGamepadTypes[c]&&(b=!0,this._prevRawGamepadTypes[c]=typeof a[c]),a[c]&&this._rawPads.push(a[c]),3!==c);c++);for(var d=0;d<this._gamepads.length;d++)this._gamepads[d]._rawPad=this._rawPads[d];if(b){for(var e,f={rawIndices:{},padIndices:{}},g=0;g<this._gamepads.length;g++)if(e=this._gamepads[g],e.connected)for(var h=0;h<this._rawPads.length;h++)this._rawPads[h].index===e.index&&(f.rawIndices[e.index]=!0,f.padIndices[g]=!0);for(var i=0;i<this._gamepads.length;i++)if(e=this._gamepads[i],!f.padIndices[i]){this._rawPads.length<1&&e.disconnect();for(var j=0;j<this._rawPads.length&&!f.padIndices[i];j++){var k=this._rawPads[j];if(k){if(f.rawIndices[k.index]){e.disconnect();continue}e.connect(k),f.rawIndices[k.index]=!0,f.padIndices[i]=!0}else e.disconnect()}}}}}},setDeadZones:function(a){for(var b=0;b<this._gamepads.length;b++)this._gamepads[b].deadZone=a},stop:function(){this._active=!1,window.removeEventListener("gamepadconnected",this._onGamepadConnected),window.removeEventListener("gamepaddisconnected",this._onGamepadDisconnected)},reset:function(){this.update();for(var a=0;a<this._gamepads.length;a++)this._gamepads[a].reset()},justPressed:function(a,b){for(var c=0;c<this._gamepads.length;c++)if(!0===this._gamepads[c].justPressed(a,b))return!0;return!1},justReleased:function(a,b){for(var c=0;c<this._gamepads.length;c++)if(!0===this._gamepads[c].justReleased(a,b))return!0;return!1},isDown:function(a){for(var b=0;b<this._gamepads.length;b++)if(!0===this._gamepads[b].isDown(a))return!0;return!1},destroy:function(){this.stop();for(var a=0;a<this._gamepads.length;a++)this._gamepads[a].destroy()}},c.Gamepad.prototype.constructor=c.Gamepad,Object.defineProperty(c.Gamepad.prototype,"active",{get:function(){return this._active}}),Object.defineProperty(c.Gamepad.prototype,"supported",{get:function(){return this._gamepadSupportAvailable}}),Object.defineProperty(c.Gamepad.prototype,"padsConnected",{get:function(){return this._rawPads.length}}),Object.defineProperty(c.Gamepad.prototype,"pad1",{get:function(){return this._gamepads[0]}}),Object.defineProperty(c.Gamepad.prototype,"pad2",{get:function(){return this._gamepads[1]}}),Object.defineProperty(c.Gamepad.prototype,"pad3",{get:function(){return this._gamepads[2]}}),Object.defineProperty(c.Gamepad.prototype,"pad4",{get:function(){return this._gamepads[3]}}),c.Gamepad.BUTTON_0=0,c.Gamepad.BUTTON_1=1,c.Gamepad.BUTTON_2=2,c.Gamepad.BUTTON_3=3,c.Gamepad.BUTTON_4=4,c.Gamepad.BUTTON_5=5,c.Gamepad.BUTTON_6=6,c.Gamepad.BUTTON_7=7,c.Gamepad.BUTTON_8=8,c.Gamepad.BUTTON_9=9,c.Gamepad.BUTTON_10=10,c.Gamepad.BUTTON_11=11,c.Gamepad.BUTTON_12=12,c.Gamepad.BUTTON_13=13,c.Gamepad.BUTTON_14=14,c.Gamepad.BUTTON_15=15,c.Gamepad.AXIS_0=0,c.Gamepad.AXIS_1=1,c.Gamepad.AXIS_2=2,c.Gamepad.AXIS_3=3,c.Gamepad.AXIS_4=4,c.Gamepad.AXIS_5=5,c.Gamepad.AXIS_6=6,c.Gamepad.AXIS_7=7,c.Gamepad.AXIS_8=8,c.Gamepad.AXIS_9=9,c.Gamepad.XBOX360_A=0,c.Gamepad.XBOX360_B=1,c.Gamepad.XBOX360_X=2,c.Gamepad.XBOX360_Y=3,c.Gamepad.XBOX360_LEFT_BUMPER=4,c.Gamepad.XBOX360_RIGHT_BUMPER=5,c.Gamepad.XBOX360_LEFT_TRIGGER=6,c.Gamepad.XBOX360_RIGHT_TRIGGER=7,c.Gamepad.XBOX360_BACK=8,c.Gamepad.XBOX360_START=9,c.Gamepad.XBOX360_STICK_LEFT_BUTTON=10,
|
||
c.Gamepad.XBOX360_STICK_RIGHT_BUTTON=11,c.Gamepad.XBOX360_DPAD_LEFT=14,c.Gamepad.XBOX360_DPAD_RIGHT=15,c.Gamepad.XBOX360_DPAD_UP=12,c.Gamepad.XBOX360_DPAD_DOWN=13,c.Gamepad.XBOX360_STICK_LEFT_X=0,c.Gamepad.XBOX360_STICK_LEFT_Y=1,c.Gamepad.XBOX360_STICK_RIGHT_X=2,c.Gamepad.XBOX360_STICK_RIGHT_Y=3,c.Gamepad.PS3XC_X=0;c.Gamepad.PS3XC_CIRCLE=1,c.Gamepad.PS3XC_SQUARE=2,c.Gamepad.PS3XC_TRIANGLE=3,c.Gamepad.PS3XC_L1=4,c.Gamepad.PS3XC_R1=5,c.Gamepad.PS3XC_L2=6,c.Gamepad.PS3XC_R2=7,c.Gamepad.PS3XC_SELECT=8,c.Gamepad.PS3XC_START=9,c.Gamepad.PS3XC_STICK_LEFT_BUTTON=10,c.Gamepad.PS3XC_STICK_RIGHT_BUTTON=11,c.Gamepad.PS3XC_DPAD_UP=12,c.Gamepad.PS3XC_DPAD_DOWN=13,c.Gamepad.PS3XC_DPAD_LEFT=14,c.Gamepad.PS3XC_DPAD_RIGHT=15,c.Gamepad.PS3XC_STICK_LEFT_X=0,c.Gamepad.PS3XC_STICK_LEFT_Y=1,c.Gamepad.PS3XC_STICK_RIGHT_X=2,c.Gamepad.PS3XC_STICK_RIGHT_Y=3,c.SinglePad=function(a,b){this.game=a,this.index=null,this.connected=!1,this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this.deadZone=.26,this._padParent=b,this._rawPad=null,this._prevTimestamp=null,this._buttons=[],this._buttonsLen=0,this._axes=[],this._axesLen=0},c.SinglePad.prototype={addCallbacks:function(a,b){void 0!==b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},getButton:function(a){return this._buttons[a]?this._buttons[a]:null},pollStatus:function(){if(this.connected&&this.game.input.enabled&&this.game.input.gamepad.enabled&&(!this._rawPad.timestamp||this._rawPad.timestamp!==this._prevTimestamp)){for(var a=0;a<this._buttonsLen;a++){var b=isNaN(this._rawPad.buttons[a])?this._rawPad.buttons[a].value:this._rawPad.buttons[a];b!==this._buttons[a].value&&(1===b?this.processButtonDown(a,b):0===b?this.processButtonUp(a,b):this.processButtonFloat(a,b))}for(var c=0;c<this._axesLen;c++){var d=this._rawPad.axes[c];d>0&&d>this.deadZone||d<0&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;d<this._axesLen;d++)this._axes[d]=a.axes[d];for(var e in a.buttons)e=parseInt(e,10),this._buttons[e]=new c.DeviceButton(this,e);b&&this._padParent.onConnectCallback&&this._padParent.onConnectCallback.call(this._padParent.callbackContext,this.index),b&&this.onConnectCallback&&this.onConnectCallback.call(this.callbackContext)},disconnect:function(){var a=this.connected,b=this.index;this.connected=!1,this.index=null,this._rawPad=void 0;for(var c=0;c<this._buttonsLen;c++)this._buttons[c].destroy();this._buttons=[],this._buttonsLen=0,this._axes=[],this._axesLen=0,a&&this._padParent.onDisconnectCallback&&this._padParent.onDisconnectCallback.call(this._padParent.callbackContext,b),a&&this.onDisconnectCallback&&this.onDisconnectCallback.call(this.callbackContext)},destroy:function(){this._rawPad=void 0;for(var a=0;a<this._buttonsLen;a++)this._buttons[a].destroy();this._buttons=[],this._buttonsLen=0,this._axes=[],this._axesLen=0,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null},processAxisChange:function(a,b){this._axes[a]!==b&&(this._axes[a]=b,this._padParent.onAxisCallback&&this._padParent.onAxisCallback.call(this._padParent.callbackContext,this,a,b),this.onAxisCallback&&this.onAxisCallback.call(this.callbackContext,this,a,b))},processButtonDown:function(a,b){this._buttons[a]&&this._buttons[a].start(null,b),this._padParent.onDownCallback&&this._padParent.onDownCallback.call(this._padParent.callbackContext,a,b,this.index),this.onDownCallback&&this.onDownCallback.call(this.callbackContext,a,b)},processButtonUp:function(a,b){this._padParent.onUpCallback&&this._padParent.onUpCallback.call(this._padParent.callbackContext,a,b,this.index),this.onUpCallback&&this.onUpCallback.call(this.callbackContext,a,b),this._buttons[a]&&this._buttons[a].stop(null,b)},processButtonFloat:function(a,b){this._padParent.onFloatCallback&&this._padParent.onFloatCallback.call(this._padParent.callbackContext,a,b,this.index),this.onFloatCallback&&this.onFloatCallback.call(this.callbackContext,a,b),this._buttons[a]&&this._buttons[a].padFloat(b)},axis:function(a){return!!this._axes[a]&&this._axes[a]},isDown:function(a){return!!this._buttons[a]&&this._buttons[a].isDown},isUp:function(a){return!!this._buttons[a]&&this._buttons[a].isUp},justReleased:function(a,b){if(this._buttons[a])return this._buttons[a].justReleased(b)},justPressed:function(a,b){if(this._buttons[a])return this._buttons[a].justPressed(b)},buttonValue:function(a){return this._buttons[a]?this._buttons[a].value:null},reset:function(){for(var a=0;a<this._axes.length;a++)this._axes[a]=0}},c.SinglePad.prototype.constructor=c.SinglePad,c.Key=function(a,b){this.game=a,this._enabled=!0,this.event=null,this.isDown=!1,this.isUp=!0,this.altKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.timeDown=0,this.duration=0,this.timeUp=-2500,this.repeats=0,this.keyCode=b,this.onDown=new c.Signal,this.onHoldCallback=null,this.onHoldContext=null,this.onUp=new c.Signal,this._justDown=!1,this._justUp=!1},c.Key.prototype={update:function(){this._enabled&&this.isDown&&(this.duration=this.game.time.time-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(a){this._enabled&&(this.event=a,this.isDown||(this.altKey=a.altKey,this.ctrlKey=a.ctrlKey,this.shiftKey=a.shiftKey,this.isDown=!0,this.isUp=!1,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0,this._justDown=!0,this.onDown.dispatch(this)))},processKeyUp:function(a){this._enabled&&(this.event=a,this.isUp||(this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.time,this.duration=this.game.time.time-this.timeDown,this._justUp=!0,this.onUp.dispatch(this)))},reset:function(a){void 0===a&&(a=!0),this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.time,this.duration=0,this._enabled=!0,this._justDown=!1,this._justUp=!1,a&&(this.onDown.removeAll(),this.onUp.removeAll(),this.onHoldCallback=null,this.onHoldContext=null)},downDuration:function(a){return void 0===a&&(a=50),this.isDown&&this.duration<a},upDuration:function(a){return void 0===a&&(a=50),!this.isDown&&this.game.time.time-this.timeUp<a}},Object.defineProperty(c.Key.prototype,"justDown",{get:function(){var a=this._justDown;return this._justDown=!1,a}}),Object.defineProperty(c.Key.prototype,"justUp",{get:function(){var a=this._justUp;return this._justUp=!1,a}}),Object.defineProperty(c.Key.prototype,"enabled",{get:function(){return this._enabled},set:function(a){(a=!!a)!==this._enabled&&(a||this.reset(!1),this._enabled=a)}}),c.Key.prototype.constructor=c.Key,c.Keyboard=function(a){this.game=a,this.enabled=!0,this.event=null,this.pressEvent=null,this.callbackContext=this,this.onDownCallback=null,this.onPressCallback=null,this.onUpCallback=null,this._keys=[],this._capture=[],this._onKeyDown=null,this._onKeyPress=null,this._onKeyUp=null,this._i=0,this._k=0},c.Keyboard.prototype={addCallbacks:function(a,b,c,d){this.callbackContext=a,void 0!==b&&null!==b&&(this.onDownCallback=b),void 0!==c&&null!==c&&(this.onUpCallback=c),void 0!==d&&null!==d&&(this.onPressCallback=d)},addKey:function(a){return this._keys[a]||(this._keys[a]=new c.Key(this.game,a),this.addKeyCapture(a)),this._keys[a]},addKeys:function(a){var b={};for(var c in a)b[c]=this.addKey(a[c]);return b},removeKey:function(a){this._keys[a]&&(this._keys[a]=null,this.removeKeyCapture(a))},createCursorKeys:function(){return this.addKeys({up:c.KeyCode.UP,down:c.KeyCode.DOWN,left:c.KeyCode.LEFT,right:c.KeyCode.RIGHT})},start:function(){if(!this.game.device.cocoonJS&&null===this._onKeyDown){var a=this;this._onKeyDown=function(b){return a.processKeyDown(b)},this._onKeyUp=function(b){return a.processKeyUp(b)},this._onKeyPress=function(b){return a.processKeyPress(b)},window.addEventListener("keydown",this._onKeyDown,!1),window.addEventListener("keyup",this._onKeyUp,!1),window.addEventListener("keypress",this._onKeyPress,!1)}},stop:function(){window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("keyup",this._onKeyUp),window.removeEventListener("keypress",this._onKeyPress),this._onKeyDown=null,this._onKeyUp=null,this._onKeyPress=null},destroy:function(){this.stop(),this.clearCaptures(),this._keys.length=0,this._i=0},addKeyCapture:function(a){if("object"==typeof a)for(var b in a)this._capture[a[b]]=!0;else this._capture[a]=!0},removeKeyCapture:function(a){delete this._capture[a]},clearCaptures:function(){this._capture={}},update:function(){for(this._i=this._keys.length;this._i--;)this._keys[this._i]&&this._keys[this._i].update()},processKeyDown:function(a){if(this.event=a,this.game.input.enabled&&this.enabled){var b=a.keyCode;this._capture[b]&&a.preventDefault(),this._keys[b]||(this._keys[b]=new c.Key(this.game,b)),this._keys[b].processKeyDown(a),this._k=b,this.onDownCallback&&this.onDownCallback.call(this.callbackContext,a)}},processKeyPress:function(a){this.pressEvent=a,this.game.input.enabled&&this.enabled&&this.onPressCallback&&this.onPressCallback.call(this.callbackContext,String.fromCharCode(a.charCode),a)},processKeyUp:function(a){if(this.event=a,this.game.input.enabled&&this.enabled){var b=a.keyCode;this._capture[b]&&a.preventDefault(),this._keys[b]||(this._keys[b]=new c.Key(this.game,b)),this._keys[b].processKeyUp(a),this.onUpCallback&&this.onUpCallback.call(this.callbackContext,a)}},reset:function(a){void 0===a&&(a=!0),this.event=null;for(var b=this._keys.length;b--;)this._keys[b]&&this._keys[b].reset(a)},downDuration:function(a,b){return this._keys[a]?this._keys[a].downDuration(b):null},upDuration:function(a,b){return this._keys[a]?this._keys[a].upDuration(b):null},isDown:function(a){return this._keys[a]?this._keys[a].isDown:null}},Object.defineProperty(c.Keyboard.prototype,"lastChar",{get:function(){return 32===this.event.charCode?"":String.fromCharCode(this.pressEvent.charCode)}}),Object.defineProperty(c.Keyboard.prototype,"lastKey",{get:function(){return this._keys[this._k]}}),c.Keyboard.prototype.constructor=c.Keyboard,c.KeyCode={A:"A".charCodeAt(0),B:"B".charCodeAt(0),C:"C".charCodeAt(0),D:"D".charCodeAt(0),E:"E".charCodeAt(0),F:"F".charCodeAt(0),G:"G".charCodeAt(0),H:"H".charCodeAt(0),I:"I".charCodeAt(0),J:"J".charCodeAt(0),K:"K".charCodeAt(0),L:"L".charCodeAt(0),M:"M".charCodeAt(0),N:"N".charCodeAt(0),O:"O".charCodeAt(0),P:"P".charCodeAt(0),Q:"Q".charCodeAt(0),R:"R".charCodeAt(0),S:"S".charCodeAt(0),T:"T".charCodeAt(0),U:"U".charCodeAt(0),V:"V".charCodeAt(0),W:"W".charCodeAt(0),X:"X".charCodeAt(0),Y:"Y".charCodeAt(0),Z:"Z".charCodeAt(0),ZERO:"0".charCodeAt(0),ONE:"1".charCodeAt(0),TWO:"2".charCodeAt(0),THREE:"3".charCodeAt(0),FOUR:"4".charCodeAt(0),FIVE:"5".charCodeAt(0),SIX:"6".charCodeAt(0),SEVEN:"7".charCodeAt(0),EIGHT:"8".charCodeAt(0),NINE:"9".charCodeAt(0),NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_ADD:107,NUMPAD_ENTER:108,NUMPAD_SUBTRACT:109,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,COLON:186,EQUALS:187,COMMA:188,UNDERSCORE:189,PERIOD:190,QUESTION_MARK:191,TILDE:192,OPEN_BRACKET:219,BACKWARD_SLASH:220,CLOSED_BRACKET:221,QUOTES:222,BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CONTROL:17,ALT:18,CAPS_LOCK:20,ESC:27,SPACEBAR:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PLUS:43,MINUS:44,INSERT:45,DELETE:46,HELP:47,NUM_LOCK:144};for(var e in c.KeyCode)c.KeyCode.hasOwnProperty(e)&&!e.match(/[a-z]/)&&(c.Keyboard[e]=c.KeyCode[e]);c.Component=function(){},c.Component.Angle=function(){},c.Component.Angle.prototype={angle:{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}},c.Component.Animation=function(){},c.Component.Animation.prototype={play:function(a,b,c,d){if(this.animations)return this.animations.play(a,b,c,d)}},c.Component.AutoCull=function(){},c.Component.AutoCull.prototype={autoCull:!1,inCamera:{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}},c.Component.Bounds=function(){},c.Component.Bounds.prototype={offsetX:{get:function(){return this.anchor.x*this.width}},offsetY:{get:function(){return this.anchor.y*this.height}},centerX:{get:function(){return this.x-this.offsetX+.5*this.width},set:function(a){this.x=a+this.offsetX-.5*this.width}},centerY:{get:function(){return this.y-this.offsetY+.5*this.height},set:function(a){this.y=a+this.offsetY-.5*this.height}},left:{get:function(){return this.x-this.offsetX},set:function(a){this.x=a+this.offsetX}},right:{get:function(){return this.x+this.width-this.offsetX},set:function(a){this.x=a-this.width+this.offsetX}},top:{get:function(){return this.y-this.offsetY},set:function(a){this.y=a+this.offsetY}},bottom:{get:function(){return this.y+this.height-this.offsetY},set:function(a){this.y=a-this.height+this.offsetY}},alignIn:function(a,b,d,e){switch(void 0===d&&(d=0),void 0===e&&(e=0),b){default:case c.TOP_LEFT:this.left=a.left-d,this.top=a.top-e;break;case c.TOP_CENTER:this.centerX=a.centerX+d,this.top=a.top-e;break;case c.TOP_RIGHT:this.right=a.right+d,this.top=a.top-e;break;case c.LEFT_CENTER:this.left=a.left-d,this.centerY=a.centerY+e;break;case c.CENTER:this.centerX=a.centerX+d,this.centerY=a.centerY+e;break;case c.RIGHT_CENTER:this.right=a.right+d,this.centerY=a.centerY+e;break;case c.BOTTOM_LEFT:this.left=a.left-d,this.bottom=a.bottom+e;break;case c.BOTTOM_CENTER:this.centerX=a.centerX+d,this.bottom=a.bottom+e;break;case c.BOTTOM_RIGHT:this.right=a.right+d,this.bottom=a.bottom+e}return this},alignTo:function(a,b,d,e){switch(void 0===d&&(d=0),void 0===e&&(e=0),b){default:case c.TOP_LEFT:this.left=a.left-d,this.bottom=a.top-e;break;case c.TOP_CENTER:this.centerX=a.centerX+d,this.bottom=a.top-e;break;case c.TOP_RIGHT:this.right=a.right+d,this.bottom=a.top-e;break;case c.LEFT_TOP:this.right=a.left-d,this.top=a.top-e;break;case c.LEFT_CENTER:this.right=a.left-d,this.centerY=a.centerY+e;break;case c.LEFT_BOTTOM:this.right=a.left-d,this.bottom=a.bottom+e;break;case c.RIGHT_TOP:this.left=a.right+d,this.top=a.top-e;break;case c.RIGHT_CENTER:this.left=a.right+d,this.centerY=a.centerY+e;break;case c.RIGHT_BOTTOM:this.left=a.right+d,this.bottom=a.bottom+e;break;case c.BOTTOM_LEFT:this.left=a.left-d,this.top=a.bottom+e;break;case c.BOTTOM_CENTER:this.centerX=a.centerX+d,this.top=a.bottom+e;break;case c.BOTTOM_RIGHT:this.right=a.right+d,this.top=a.bottom+e}return this}},c.Group.prototype.alignIn=c.Component.Bounds.prototype.alignIn,c.Group.prototype.alignTo=c.Component.Bounds.prototype.alignTo,c.Component.BringToTop=function(){},c.Component.BringToTop.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Component.BringToTop.prototype.sendToBack=function(){return this.parent&&this.parent.sendToBack(this),this},c.Component.BringToTop.prototype.moveUp=function(){return this.parent&&this.parent.moveUp(this),this},c.Component.BringToTop.prototype.moveDown=function(){return this.parent&&this.parent.moveDown(this),this},c.Component.Core=function(){},c.Component.Core.install=function(a){c.Utils.mixinPrototype(this,c.Component.Core.prototype),this.components={};for(var b=0;b<a.length;b++){var d=a[b],e=!1;"Destroy"===d&&(e=!0),c.Utils.mixinPrototype(this,c.Component[d].prototype,e),this.components[d]=!0}},c.Component.Core.init=function(a,b,d,e,f){this.game=a,this.key=e,this.data={},this.position.set(b,d),this.world=new c.Point(b,d),this.previousPosition=new c.Point(b,d),this.events=new c.Events(this),this._bounds=new c.Rectangle,this.components.PhysicsBody&&(this.body=this.body),this.components.Animation&&(this.animations=new c.AnimationManager(this)),this.components.LoadTexture&&null!==e&&this.loadTexture(e,f),this.components.FixedToCamera&&(this.cameraOffset=new c.Point(b,d))},c.Component.Core.preUpdate=function(){if(this.pendingDestroy)return void this.destroy();if(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this.renderOrderID=this.game.stage.currentRenderOrderID++),this.animations&&this.animations.update(),this.body&&this.body.preUpdate();for(var a=0;a<this.children.length;a++)this.children[a].preUpdate();return!0},c.Component.Core.prototype={game:null,name:"",data:{},components:{},z:0,events:void 0,animations:void 0,key:"",world:null,debug:!1,previousPosition:null,previousRotation:0,renderOrderID:0,fresh:!0,pendingDestroy:!1,_bounds:null,_exists:!0,exists:{get:function(){return this._exists},set:function(a){a?(this._exists=!0,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._exists=!1,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}},update:function(){},postUpdate:function(){this.customRender&&this.key.render(),this.components.PhysicsBody&&c.Component.PhysicsBody.postUpdate.call(this),this.components.FixedToCamera&&c.Component.FixedToCamera.postUpdate.call(this);for(var a=0;a<this.children.length;a++)this.children[a].postUpdate()}},c.Component.Crop=function(){},c.Component.Crop.prototype={cropRect:null,_crop:null,crop:function(a,b){void 0===b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):b&&null===this.cropRect?this.cropRect=new c.Rectangle(a.x,a.y,a.width,a.height):this.cropRect=a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},updateCrop:function(){if(this.cropRect){var a=this.texture.crop.x,b=this.texture.crop.y,d=this.texture.crop.width,e=this.texture.crop.height;this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var f=Math.max(this._frame.x,this._crop.x),g=Math.max(this._frame.y,this._crop.y),h=Math.min(this._frame.right,this._crop.right)-f,i=Math.min(this._frame.bottom,this._crop.bottom)-g;this.texture.crop.x=f,this.texture.crop.y=g,this.texture.crop.width=h,this.texture.crop.height=i,this.texture.frame.width=Math.min(h,this.cropRect.width),this.texture.frame.height=Math.min(i,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs(),16777215===this.tint||a===f&&b===g&&d===h&&e===i||(this.texture.requiresReTint=!0)}}},c.Component.Delta=function(){},c.Component.Delta.prototype={deltaX:{get:function(){return this.world.x-this.previousPosition.x}},deltaY:{get:function(){return this.world.y-this.previousPosition.y}},deltaZ:{get:function(){return this.rotation-this.previousRotation}}},c.Component.Destroy=function(){},c.Component.Destroy.prototype={destroyPhase:!1,destroy:function(a,b){if(null!==this.game&&!this.destroyPhase){void 0===a&&(a=!0),void 0===b&&(b=!1),this.destroyPhase=!0,this.events&&this.events.onDestroy$dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy(),this.game.tweens.removeFrom(this);var d=this.children.length;if(a)for(;d--;)this.children[d].destroy(a);else for(;d--;)this.removeChild(this.children[d]);this._crop&&(this._crop=null,this.cropRect=null),this._frame&&(this._frame=null),c.Video&&this.key instanceof c.Video&&this.key.onChangeSource.remove(this.resizeFrame,this),c.BitmapText&&this._glyphs&&(this._glyphs=[]),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this.data={},this.renderable=!1,this.transformCallback&&(this.transformCallback=null,this.transformCallbackContext=null),this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this._destroyCachedSprite(),b&&this.texture.destroy(!0),this.destroyPhase=!1,this.pendingDestroy=!1}}},c.Events=function(a){this.parent=a},c.Events.prototype={destroy:function(){this._parent=null,this._onDestroy&&this._onDestroy.dispose(),this._onAddedToGroup&&this._onAddedToGroup.dispose(),this._onRemovedFromGroup&&this._onRemovedFromGroup.dispose(),this._onRemovedFromWorld&&this._onRemovedFromWorld.dispose(),this._onKilled&&this._onKilled.dispose(),this._onRevived&&this._onRevived.dispose(),this._onEnterBounds&&this._onEnterBounds.dispose(),this._onOutOfBounds&&this._onOutOfBounds.dispose(),this._onInputOver&&this._onInputOver.dispose(),this._onInputOut&&this._onInputOut.dispose(),this._onInputDown&&this._onInputDown.dispose(),this._onInputUp&&this._onInputUp.dispose(),this._onDragStart&&this._onDragStart.dispose(),this._onDragUpdate&&this._onDragUpdate.dispose(),this._onDragStop&&this._onDragStop.dispose(),this._onAnimationStart&&this._onAnimationStart.dispose(),this._onAnimationComplete&&this._onAnimationComplete.dispose(),this._onAnimationLoop&&this._onAnimationLoop.dispose()},onAddedToGroup:null,onRemovedFromGroup:null,onRemovedFromWorld:null,onDestroy:null,onKilled:null,onRevived:null,onOutOfBounds:null,onEnterBounds:null,onInputOver:null,onInputOut:null,onInputDown:null,onInputUp:null,onDragStart:null,onDragUpdate:null,onDragStop:null,onAnimationStart:null,onAnimationComplete:null,onAnimationLoop:null},c.Events.prototype.constructor=c.Events;for(var f in c.Events.prototype)c.Events.prototype.hasOwnProperty(f)&&0===f.indexOf("on")&&null===c.Events.prototype[f]&&function(a,b){"use strict";Object.defineProperty(c.Events.prototype,a,{get:function(){return this[b]||(this[b]=new c.Signal)}}),c.Events.prototype[a+"$dispatch"]=function(){return this[b]?this[b].dispatch.apply(this[b],arguments):null}}(f,"_"+f);c.Component.FixedToCamera=function(){},c.Component.FixedToCamera.postUpdate=function(){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y)},c.Component.FixedToCamera.prototype={_fixedToCamera:!1,fixedToCamera:{get:function(){return this._fixedToCamera},set:function(a){a?(this._fixedToCamera=!0,this.cameraOffset.set(this.x,this.y)):this._fixedToCamera=!1}},cameraOffset:new c.Point},c.Component.Health=function(){},c.Component.Health.prototype={health:1,maxHealth:100,damage:function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},setHealth:function(a){return this.health=a,this.health>this.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if(this.autoCull||this.checkWorldBounds){if(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull)if(this.game.world.camera.view.intersects(this._bounds))this.renderable=!0,this.game.world.camera.totalInView++;else if(this.renderable=!1,this.outOfCameraBoundsKill)return this.kill(),!1;if(this.checkWorldBounds)if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1}return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,outOfCameraBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return!(this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0))||(this.kill(),!1)},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),f=e.hasFrameData(a.key,c.Cache.BITMAPDATA)?!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b):!this.animations.loadFrameData(a.frameData,0);else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(c.Tilemap&&a instanceof c.TilemapLayer)this.setTexture(PIXI.Texture.fromCanvas(a.canvas));else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),this.texture.baseTexture.skipRender="__default"===a,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,!(!this._exists||!this.parent.exists)||(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.a<this.scaleMin.x&&(a.a=this.scaleMin.x),a.d<this.scaleMin.y&&(a.d=this.scaleMin.y)),this.scaleMax&&(a.a>this.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},weapon:function(a,b,d,e){var f=this.game.plugins.add(c.Weapon);return f.createBullets(a,b,d,e),f},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},
|
||
tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){void 0!==d&&""!==d||(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),void 0!==d&&""!==d||(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){void 0!==d&&""!==d||(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),void 0!==d&&""!==d||(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,c.Cache.DEFAULT),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,c.Cache.DEFAULT),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","ScaleMinMax","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return!!this.preUpdateInWorld()&&this.preUpdateCore()},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c&&(this.frame=c,!0)},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame("Over",a,this.input.pointerOver()),this.setStateFrame("Out",b,!this.input.pointerOver()),this.setStateFrame("Down",c,this.input.pointerDown()),this.setStateFrame("Up",d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,g,h){this.setStateSound("Over",a,b),this.setStateSound("Out",e,f),this.setStateSound("Down",c,d),this.setStateSound("Up",g,h)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound("Over",a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound("Out",a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound("Down",a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound("Up",a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame("Over"),this.onOverMouseOnly&&!b.isMouse||(this.playStateSound("Over"),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame("Out"),this.playStateSound("Out"),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame("Down"),this.playStateSound("Down"),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound("Up"),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(!0===this.forceOut||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame("Out");else{var d=this.changeStateFrame("Up");d||(c?this.changeStateFrame("Over"):this.changeStateFrame("Out"))}},c.SpriteBatch=function(a,b,d,e){void 0!==b&&null!==b||(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e,f){void 0!==d&&0!==d||(d=256),void 0!==e&&0!==e||(e=256),void 0===f&&(f=!1),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(this,d,e,null,f),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.smoothProperty=a.renderType===c.CANVAS?a.renderer.renderSession.smoothProperty:c.Canvas.getSmoothingPrefix(this.context),this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.frameData=new c.FrameData,this.textureFrame=this.frameData.addFrame(new c.Frame(0,0,0,d,e,"bitmapData")),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),a<0){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),a<0){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;b<a.length;b++)a[b].loadTexture&&a[b].loadTexture(this);else a.loadTexture(this);return this},load:function(a){if("string"==typeof a&&(a=this.game.cache.getImage(a)),a)return this.resize(a.width,a.height),this.cls(),this.draw(a),this.update(),this},clear:function(a,b,c,d){return void 0===a&&(a=0),void 0===b&&(b=0),void 0===c&&(c=this.width),void 0===d&&(d=this.height),this.context.clearRect(a,b,c,d),this.dirty=!0,this},fill:function(a,b,c,d){return void 0===d&&(d=1),this.context.fillStyle="rgba("+a+","+b+","+c+","+d+")",this.context.fillRect(0,0,this.width,this.height),this.dirty=!0,this},generateTexture:function(a){var b=new Image;b.src=this.canvas.toDataURL("image/png");var c=this.game.cache.addImage(a,"",b);return new PIXI.Texture(c.base)},resize:function(a,b){return a===this.width&&b===this.height||(this.width=a,this.height=b,this.canvas.width=a,this.canvas.height=b,void 0!==this._swapCanvas&&(this._swapCanvas.width=a,this._swapCanvas.height=b),this.baseTexture.width=a,this.baseTexture.height=b,this.textureFrame.width=a,this.textureFrame.height=b,this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.update(),this.dirty=!0),this},update:function(a,b,c,d){return void 0===a&&(a=0),void 0===b&&(b=0),void 0===c&&(c=Math.max(1,this.width)),void 0===d&&(d=Math.max(1,this.height)),this.imageData=this.context.getImageData(a,b,c,d),this.data=this.imageData.data,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this},processPixelRGB:function(a,b,d,e,f,g){void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=this.width),void 0===g&&(g=this.height);for(var h=d+f,i=e+g,j=c.Color.createColor(),k={r:0,g:0,b:0,a:0},l=!1,m=e;m<i;m++)for(var n=d;n<h;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),!1!==(k=a.call(b,j,n,m))&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;l<h;l++)for(var m=c;m<g;m++)i=this.getPixel32(m,l),(j=a.call(b,i,m,l))!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;p<n;p++)for(var q=0;q<m;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j<e.bottom;j++)for(var k=e.x;k<e.right;k++)c.Color.unpackPixel(this.getPixel32(k,j),i,!0),f&&(i.h=a),g&&(i.s=b),h&&(i.l=d),c.Color.HSLtoRGB(i.h,i.s,i.l,i),this.setPixel32(k,j,i.r,i.g,i.b,i.a,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this}},shiftHSL:function(a,b,d,e){if(void 0!==a&&null!==a||(a=!1),void 0!==b&&null!==b||(b=!1),void 0!==d&&null!==d||(d=!1),a||b||d){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g<e.bottom;g++)for(var h=e.x;h<e.right;h++)c.Color.unpackPixel(this.getPixel32(h,g),f,!0),a&&(f.h=this.game.math.wrap(f.h+a,0,1)),b&&(f.s=this.game.math.clamp(f.s+b,0,1)),d&&(f.l=this.game.math.clamp(f.l+d,0,1)),c.Color.HSLtoRGB(f.h,f.s,f.l,f),this.setPixel32(h,g,f.r,f.g,f.b,f.a,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this}},setPixel32:function(a,b,d,e,f,g,h){return void 0===h&&(h=!0),a>=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){if(a>=0&&a<=this.width&&b>=0&&b<=this.height)return this.pixels[b*this.width+a]},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do{c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?++d===this.width&&(d=0,((e+=f)>=this.height||e<=0)&&(g=!0)):2!==a&&3!==a||++e===this.height&&(e=0,((d+=f)>=this.width||d<=0)&&(g=!0))}while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(void 0!==a&&null!==a||(a=this),(a instanceof c.RenderTexture||a instanceof PIXI.RenderTexture)&&(a=a.getCanvas()),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,a.texture instanceof c.RenderTexture||a.texture instanceof PIXI.RenderTexture?this._image=a.texture.getCanvas():this._image=a.texture.baseTexture.source,void 0!==g&&null!==g||(g=a.x),void 0!==h&&null!==h||(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0));else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(null===(a=this.game.cache.getImage(a)))return;this._image=a}this._size.set(this._image.width,this._image.height)}if(void 0!==b&&null!==b||(b=0),void 0!==d&&null!==d||(d=0),e&&(this._size.x=e),f&&(this._size.y=f),void 0!==g&&null!==g||(g=b),void 0!==h&&null!==h||(h=d),void 0!==i&&null!==i||(i=this._size.x),void 0!==j&&null!==j||(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyTransform:function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=!1),!a.hasOwnProperty("worldTransform")||!a.worldVisible||0===a.worldAlpha)return this;var e=a.worldTransform;if(this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),0===e.a||0===e.d||0===this._size.x||0===this._size.y)return this;a.texture instanceof c.RenderTexture||a.texture instanceof PIXI.RenderTexture?this._image=a.texture.getCanvas():this._image=a.texture.baseTexture.source;var f=e.tx,g=e.ty;a.texture.trim&&(f+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,g+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0)),d&&(f|=0,g|=0);var h=this.context;return this._alpha.prev=h.globalAlpha,h.save(),h.globalAlpha=this._alpha.current,b&&(this.op=b),h[this.smoothProperty]=a.texture.baseTexture.scaleMode===PIXI.scaleModes.LINEAR,h.setTransform(e.a,e.b,e.c,e.d,f,g),h.drawImage(this._image,this._pos.x,this._pos.y,this._size.x,this._size.y,-this._size.x*a.anchor.x,-this._size.y*a.anchor.y,this._size.x,this._size.y),h.restore(),h.globalAlpha=this._alpha.prev,this.dirty=!0,this},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.hasOwnProperty("texture")&&this.copyTransform(a,b,d),a.type===c.GROUP&&a.exists)this.drawGroup(a,b,d);else if(a.hasOwnProperty("children")&&a.children.length>0)for(var e=0;e<a.children.length;e++)a.children[e].exists&&this.copyTransform(a.children[e],b,d)},drawFull:function(a,b,d){if(!1===a.worldVisible||0===a.worldAlpha||a.hasOwnProperty("exists")&&!1===a.exists)return this;if(a.type!==c.GROUP&&a.type!==c.EMITTER&&a.type!==c.BITMAPTEXT)if(a.type===c.GRAPHICS){var e=a.getBounds();this.ctx.save(),this.ctx.translate(e.x,e.y),PIXI.CanvasGraphics.renderGraphics(a,this.ctx),this.ctx.restore()}else this.copy(a,null,null,null,null,a.worldPosition.x,a.worldPosition.y,null,null,a.worldRotation,null,null,a.worldScale.x,a.worldScale.y,a.worldAlpha,b,d);if(a.children)for(var f=0;f<a.children.length;f++)this.drawFull(a.children[f],b,d);return this},shadow:function(a,b,c,d){var e=this.context;return void 0===a||null===a?e.shadowColor="rgba(0,0,0,0)":(e.shadowColor=a,e.shadowBlur=b||5,e.shadowOffsetX=c||10,e.shadowOffsetY=d||10),this},alphaMask:function(a,b,c,d){return void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return void 0!==e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context,h=g.font;return g.font=d,f&&(g.fillStyle="rgb(0,0,0)",g.fillText(a,b+1,c+1)),g.fillStyle=e,g.fillText(a,b,c),g.font=h,this},circle:function(a,b,c,d){var e=this.context;return void 0!==d&&(e.fillStyle=d),e.beginPath(),e.arc(a,b,c,0,2*Math.PI,!1),e.closePath(),e.fill(),this},line:function(a,b,c,d,e,f){void 0===e&&(e="#fff"),void 0===f&&(f=1);var g=this.context;return g.beginPath(),g.moveTo(a,b),g.lineTo(c,d),g.lineWidth=f,g.strokeStyle=e,g.stroke(),g.closePath(),this},textureLine:function(a,b,d){if(void 0===d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;"no-repeat"===d&&e>b.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.frameData.destroy(),this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this._boundsDirty=!1,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=this.currentPath.shape.points;0===g.length&&this.moveTo(0,0);for(var h=g[g.length-2],i=g[g.length-1],j=0,k=1;k<=20;++k)j=k/20,e=h+(a-h)*j,f=i+(b-i)*j,g.push(e+(a+(c-a)*j-e)*j,f+(b+(d-b)*j-f)*j);return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=this.currentPath.shape.points,m=l[l.length-2],n=l[l.length-1],o=0,p=1;p<=20;++p)o=p/20,g=1-o,h=g*g,i=h*g,j=o*o,k=j*o,l.push(i*m+3*h*o*a+3*g*j*c+k*e,i*n+3*h*o*b+3*g*j*d+k*f);return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(m<1e-8||0===e)f[f.length-2]===a&&f[f.length-1]===b||f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&e<=d?e+=2*Math.PI:f&&d<=e&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;s<=q;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;d<b.length;++d)b[d]=arguments[d]}return this.drawShape(new c.Polygon(b)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this._boundsDirty=!0,this.clearDirty=!0,this.graphicsData=[],this.updateLocalBounds(),this},PIXI.Graphics.prototype.generateTexture=function(a,b,c){void 0===a&&(a=1),void 0===b&&(b=PIXI.scaleModes.DEFAULT),void 0===c&&(c=0);var d=this.getBounds();d.width+=c,d.height+=c;var e=new PIXI.CanvasBuffer(d.width*a,d.height*a),f=PIXI.Texture.fromCanvas(e.canvas,b);return f.baseTexture.resolution=a,e.context.scale(a,a),e.context.translate(-d.x,-d.y),PIXI.CanvasGraphics.renderGraphics(this,e.context),f},PIXI.Graphics.prototype._renderWebGL=function(a){if(!1!==this.visible&&0!==this.alpha&&!0!==this.isMask){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode
|
||
;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0;c<this.children.length;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(!1!==this.visible&&0!==this.alpha&&!0!==this.isMask){if(this._prevTint!==this.tint&&(this.dirty=!0,this._prevTint=this.tint),this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution,e=c.tx*a.resolution+a.shakeX,f=c.ty*a.resolution+a.shakeY;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,e,f),PIXI.CanvasGraphics.renderGraphics(this,b);for(var g=0;g<this.children.length;g++)this.children[g]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(!this._currentBounds){if(!this.renderable)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;x=p<x?p:x,x=r<x?r:x,x=t<x?t:x,y=q<y?q:y,y=s<y?s:y,y=u<y?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=PIXI.identityMatrix;for(var b=0;b<this.children.length;b++)this.children[b].updateTransform();var c=this.getBounds();for(this.worldTransform=a,b=0;b<this.children.length;b++)this.children[b].updateTransform();return c},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;c<b.length;c++){var d=b[c];if(d.fill&&(d.shape&&d.shape.contains(tempPoint.x,tempPoint.y)))return!0}return!1},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,d=1/0,e=-1/0;if(this.graphicsData.length)for(var f,g,h,i,j,k,l=0;l<this.graphicsData.length;l++){var m=this.graphicsData[l],n=m.type,o=m.lineWidth;if(f=m.shape,n===PIXI.Graphics.RECT||n===PIXI.Graphics.RREC)h=f.x-o/2,i=f.y-o/2,j=f.width+o,k=f.height+o,a=h<a?h:a,b=h+j>b?h+j:b,d=i<d?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=h-j<a?h-j:a,b=h+j>b?h+j:b,d=i-k<d?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=h-j<a?h-j:a,b=h+j>b?h+j:b,d=i-k<d?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;p<g.length;p++)g[p]instanceof c.Point?(h=g[p].x,i=g[p].y):(h=g[p],i=g[p+1],p<g.length-1&&p++),a=h-o<a?h-o:a,b=h+o>b?h+o:b,d=i-o<d?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-a.x/a.width,this._cachedSprite.anchor.y=-a.y/a.height,this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,this._boundsDirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;o<e;o+=c)l=a[o],m=a[o+1],l<h&&(h=l),m<i&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;f<c;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;f<c;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do{if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),(d=b=d.prev)===d.next)return null;c=!0}}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if((a=i)===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.x<f.x?e.x<g.x?e.x:g.x:f.x<g.x?f.x:g.x,i=e.y<f.y?e.y<g.y?e.y:g.y:f.y<g.y?f.y:g.y,j=e.x>f.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;e<f;e++)g=b[e]*d,h=e<f-1?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e<j.length;e++)PIXI.EarCut.eliminateHole(j[e],c),c=PIXI.EarCut.filterPoints(c,c.next);return c},PIXI.EarCut.compareX=function(a,b){return a.x-b.x},PIXI.EarCut.eliminateHole=function(a,b){if(b=PIXI.EarCut.findHoleBridge(a,b)){var c=PIXI.EarCut.splitPolygon(b,a);PIXI.EarCut.filterPoints(c,c.next)}},PIXI.EarCut.findHoleBridge=function(a,b){var c,d=b,e=a.x,f=a.y,g=-1/0;do{if(f<=d.y&&f>=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);h<=e&&h>g&&(g=h,c=d.x<d.next.x?d:d.next)}d=d.next}while(d!==b);if(!c)return null;if(a.x===c.x)return c.prev;var i,j=c,k=1/0;for(d=c.next;d!==j;)e>=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(f<c.y?e:g,f,c.x,c.y,f<c.y?g:e,f,d.x,d.y)&&((i=Math.abs(f-d.y)/(e-d.x))<k||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do{null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next}while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;b<j&&(h++,d=d.nextZ);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do{b.x<c.x&&(c=b),b=b.next}while(b!==a);return c},PIXI.EarCut.pointInTriangle=function(a,b,c,d,e,f,g,h){return(e-g)*(b-h)-(a-g)*(f-h)>=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do{c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next}while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i<h.data.length;i++)1===h.data[i].mode?(c=h.data[i],b.stencilManager.pushStencil(a,c,b),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(c.indices.length-4)),b.stencilManager.popStencil(a,c,b)):(c=h.data[i],b.shaderManager.setShader(g),g=b.shaderManager.primitiveShader,d.uniformMatrix3fv(g.translationMatrix,!1,a.worldTransform.toArray(!0)),d.uniform1f(g.flipY,1),d.uniform2f(g.projectionVector,e.x,-e.y),d.uniform2f(g.offsetVector,-f.x,-f.y),d.uniform3fv(g.tintColor,PIXI.hex2rgb(a.tint)),d.uniform1f(g.alpha,a.worldAlpha),d.bindBuffer(d.ARRAY_BUFFER,c.buffer),d.vertexAttribPointer(g.aVertexPosition,2,d.FLOAT,!1,24,0),d.vertexAttribPointer(g.colorAttribute,4,d.FLOAT,!1,24,8),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,c.indexBuffer),d.drawElements(d.TRIANGLE_STRIP,c.indices.length,d.UNSIGNED_SHORT,0))},PIXI.WebGLGraphics.updateGraphics=function(a,b){var c=a._webGL[b.id];c||(c=a._webGL[b.id]={lastIndex:0,data:[],gl:b}),a.dirty=!1;var d;if(a.clearDirty){for(a.clearDirty=!1,d=0;d<c.data.length;d++){var e=c.data[d];e.reset(),PIXI.WebGLGraphics.graphicsDataPool.push(e)}c.data=[],c.lastIndex=0}var f;for(d=c.lastIndex;d<a.graphicsData.length;d++){var g=a.graphicsData[d];if(g.type===PIXI.Graphics.POLY){if(g.points=g.shape.points.slice(),g.shape.closed&&(g.points[0]===g.points[g.points.length-2]&&g.points[1]===g.points[g.points.length-1]||g.points.push(g.points[0],g.points[1])),g.fill&&g.points.length>=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d<c.data.length;d++)f=c.data[d],f.dirty&&f.upload()},PIXI.WebGLGraphics.switchMode=function(a,b){var c;return a.data.length?(c=a.data[a.data.length-1],c.mode===b&&1!==b||(c=PIXI.WebGLGraphics.graphicsDataPool.pop()||new PIXI.WebGLGraphicsData(a.gl),c.mode=b,a.data.push(c))):(c=PIXI.WebGLGraphics.graphicsDataPool.pop()||new PIXI.WebGLGraphicsData(a.gl),c.mode=b,a.data.push(c)),c.dirty=!0,c},PIXI.WebGLGraphics.buildRectangle=function(a,b){var c=a.shape,d=c.x,e=c.y,f=c.width,g=c.height;if(a.fill){var h=PIXI.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.points,n=b.indices,o=m.length/6;m.push(d,e),m.push(j,k,l,i),m.push(d+f,e),m.push(j,k,l,i),m.push(d,e+g),m.push(j,k,l,i),m.push(d+f,e+g),m.push(j,k,l,i),n.push(o,o,o+1,o+2,o+3,o+3)}if(a.lineWidth){var p=a.points;a.points=[d,e,d+f,e,d+f,e+g,d,e+g,d,e],PIXI.WebGLGraphics.buildLine(a,b),a.points=p}},PIXI.WebGLGraphics.buildRoundedRectangle=function(a,b){var c=a.shape,d=c.x,e=c.y,f=c.width,g=c.height,h=c.radius,i=[];if(i.push(d,e+h),i=i.concat(PIXI.WebGLGraphics.quadraticBezierCurve(d,e+g-h,d,e+g,d+h,e+g)),i=i.concat(PIXI.WebGLGraphics.quadraticBezierCurve(d+f-h,e+g,d+f,e+g,d+f,e+g-h)),i=i.concat(PIXI.WebGLGraphics.quadraticBezierCurve(d+f,e+h,d+f,e,d+f-h,e)),i=i.concat(PIXI.WebGLGraphics.quadraticBezierCurve(d+h,e,d,e,d,e+h)),a.fill){var j=PIXI.hex2rgb(a.fillColor),k=a.fillAlpha,l=j[0]*k,m=j[1]*k,n=j[2]*k,o=b.points,p=b.indices,q=o.length/6,r=PIXI.EarCut.Triangulate(i,null,2),s=0;for(s=0;s<r.length;s+=3)p.push(r[s]+q),p.push(r[s]+q),p.push(r[s+1]+q),p.push(r[s+2]+q),p.push(r[s+2]+q);for(s=0;s<i.length;s++)o.push(i[s],i[++s],l,m,n,k)}if(a.lineWidth){var t=a.points;a.points=i,PIXI.WebGLGraphics.buildLine(a,b),a.points=t}},PIXI.WebGLGraphics.quadraticBezierCurve=function(a,b,c,d,e,f){function g(a,b,c){return a+(b-a)*c}for(var h,i,j,k,l,m,n=[],o=0,p=0;p<=20;p++)o=p/20,h=g(a,c,o),i=g(b,d,o),j=g(c,e,o),k=g(d,f,o),l=g(h,j,o),m=g(i,k,o),n.push(l,m);return n},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=2*Math.PI/40,i=0;if(a.fill){var j=PIXI.hex2rgb(a.fillColor),k=a.fillAlpha,l=j[0]*k,m=j[1]*k,n=j[2]*k,o=b.points,p=b.indices,q=o.length/6;for(p.push(q),i=0;i<41;i++)o.push(f,g,l,m,n,k),o.push(f+Math.sin(h*i)*c,g+Math.cos(h*i)*d,l,m,n,k),p.push(q++,q++);p.push(q-1)}if(a.lineWidth){var r=a.points;for(a.points=[],i=0;i<41;i++)a.points.push(f+Math.sin(h*i)*c,g+Math.cos(h*i)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=r}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;c<d.length;c++)d[c]+=.5;var e=new PIXI.Point(d[0],d[1]),f=new PIXI.Point(d[d.length-2],d[d.length-1]);if(e.x===f.x&&e.y===f.y){d=d.slice(),d.pop(),d.pop(),f=new PIXI.Point(d[d.length-2],d[d.length-1]);var g=f.x+.5*(e.x-f.x),h=f.y+.5*(e.y-f.y);d.unshift(g,h),d.push(g,h)}var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F=b.points,G=b.indices,H=d.length/2,I=d.length,J=F.length/6,K=a.lineWidth/2,L=PIXI.hex2rgb(a.lineColor),M=a.lineAlpha,N=L[0]*M,O=L[1]*M,P=L[2]*M;for(k=d[0],l=d[1],m=d[2],n=d[3],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(k-q,l-r,N,O,P,M),F.push(k+q,l+r,N,O,P,M),c=1;c<H-1;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;c<I;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-1/0,i=1/0,j=-1/0,k=0;k<c.length;k+=2)e=c[k],f=c[k+1],g=e<g?e:g,h=e>h?e:h,i=f<i?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;k<l;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;n<l.length;n+=3)e.push(l[n]+m),e.push(l[n]+m),e.push(l[n+1]+m),e.push(l[n+2]+m),e.push(l[n+2]+m);for(n=0;n<f;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;d<a.graphicsData.length;d++){var e=a.graphicsData[d],f=e.shape,g=e._fillTint,h=e._lineTint;if(b.lineWidth=e.lineWidth,e.type===PIXI.Graphics.POLY){b.beginPath();var i=f.points;b.moveTo(i[0],i[1]);for(var j=1;j<i.length/2;j++)b.lineTo(i[2*j],i[2*j+1]);f.closed&&b.lineTo(i[0],i[1]),i[0]===i[i.length-2]&&i[1]===i[i.length-1]&&b.closePath(),e.fill&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}else if(e.type===PIXI.Graphics.RECT)(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fillRect(f.x,f.y,f.width,f.height)),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.strokeRect(f.x,f.y,f.width,f.height));else if(e.type===PIXI.Graphics.CIRC)b.beginPath(),b.arc(f.x,f.y,f.radius,0,2*Math.PI),b.closePath(),e.fill&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke());else if(e.type===PIXI.Graphics.ELIP){var k=2*f.width,l=2*f.height,m=f.x-k/2,n=f.y-l/2;b.beginPath();var o=k/2*.5522848,p=l/2*.5522848,q=m+k,r=n+l,s=m+k/2,t=n+l/2;b.moveTo(m,t),b.bezierCurveTo(m,t-p,s-o,n,s,n),b.bezierCurveTo(s+o,n,q,t-p,q,t),b.bezierCurveTo(q,t+p,s+o,r,s,r),b.bezierCurveTo(s-o,r,m,t+p,m,t),b.closePath(),e.fill&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}else if(e.type===PIXI.Graphics.RREC){var u=f.x,v=f.y,w=f.width,x=f.height,y=f.radius,z=Math.min(w,x)/2|0;y=y>z?z:y,b.beginPath(),b.moveTo(u,v+y),b.lineTo(u,v+x-y),b.quadraticCurveTo(u,v+x,u+y,v+x),b.lineTo(u+w-y,v+x),b.quadraticCurveTo(u+w,v+x,u+w,v+x-y),b.lineTo(u+w,v+y),b.quadraticCurveTo(u+w,v,u+w-y,v),b.lineTo(u+y,v),b.quadraticCurveTo(u,v,u,v+y),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;d<c;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;h<g.length/2;h++)b.lineTo(g[2*h],g[2*h+1]);g[0]===g[g.length-2]&&g[1]===g[g.length-1]&&b.closePath()}else if(e.type===PIXI.Graphics.RECT)b.rect(f.x,f.y,f.width,f.height),b.closePath();else if(e.type===PIXI.Graphics.CIRC)b.arc(f.x,f.y,f.radius,0,2*Math.PI),b.closePath();else if(e.type===PIXI.Graphics.ELIP){var i=2*f.width,j=2*f.height,k=f.x-i/2,l=f.y-j/2,m=i/2*.5522848,n=j/2*.5522848,o=k+i,p=l+j,q=k+i/2,r=l+j/2;b.moveTo(k,r),b.bezierCurveTo(k,r-n,q-m,l,q,l),b.bezierCurveTo(q+m,l,o,r-n,o,r),b.bezierCurveTo(o,r+n,q+m,p,q,p),b.bezierCurveTo(q-m,p,k,r+n,k,r),b.closePath()}else if(e.type===PIXI.Graphics.RREC){var s=f.x,t=f.y,u=f.width,v=f.height,w=f.radius,x=Math.min(u,v)/2|0;w=w>x?x:w,b.moveTo(s,t+w),b.lineTo(s,t+v-w),b.quadraticCurveTo(s,t+v,s+w,t+v),b.lineTo(s+u-w,t+v),b.quadraticCurveTo(s+u,t+v,s+u,t+v-w),b.lineTo(s+u,t+w),b.quadraticCurveTo(s+u,t,s+u-w,t),b.lineTo(s+w,t),b.quadraticCurveTo(s,t,s,t+w),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e<a.graphicsData.length;e++){var f=a.graphicsData[e],g=0|f.fillColor,h=0|f.lineColor;f._fillTint=((g>>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,this.anchor=new c.Point,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Graphics.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this._boundsDirty&&(this.updateLocalBounds(),this._boundsDirty=!1);for(var a=0;a<this.children.length;a++)this.children[a].postUpdate()},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e<b.length/3;e++)i.push(a[b[3*e]]),i.push(a[b[3*e+1]]),i.push(a[b[3*e+2]]),3===i.length&&(this.drawTriangle(i,d),i=[]);else for(e=0;e<b.length;e++)f.x=a[2*b[e]],f.y=a[2*b[e]+1],i.push(f.copyTo({})),3===i.length&&(this.drawTriangle(i,d),i=[]);else if(a[0]instanceof c.Point)for(e=0;e<a.length/3;e++)this.drawTriangle([a[3*e],a[3*e+1],a[3*e+2]],d);else for(e=0;e<a.length/6;e++)f.x=a[6*e+0],f.y=a[6*e+1],g.x=a[6*e+2],g.y=a[6*e+3],h.x=a[6*e+4],h.y=a[6*e+5],this.drawTriangle([f,g,h],d)},c.RenderTexture=function(a,b,d,e,f,g){void 0===e&&(e=""),void 0===f&&(f=c.scaleModes.DEFAULT),void 0===g&&(g=1),this.game=a,this.key=e,this.type=c.RENDERTEXTURE,this._tempMatrix=new PIXI.Matrix,PIXI.RenderTexture.call(this,b,d,this.game.renderer,f,g),this.render=c.RenderTexture.prototype.render},c.RenderTexture.prototype=Object.create(PIXI.RenderTexture.prototype),c.RenderTexture.prototype.constructor=c.RenderTexture,c.RenderTexture.prototype.renderXY=function(a,b,c,d){a.updateTransform(),this._tempMatrix.copyFrom(a.worldTransform),this._tempMatrix.tx=b,this._tempMatrix.ty=c,this.renderer.type===PIXI.WEBGL_RENDERER?this.renderWebGL(a,this._tempMatrix,d):this.renderCanvas(a,this._tempMatrix,d)},c.RenderTexture.prototype.renderRawXY=function(a,b,c,d){this._tempMatrix.identity().translate(b,c),this.renderer.type===PIXI.WEBGL_RENDERER?this.renderWebGL(a,this._tempMatrix,d):this.renderCanvas(a,this._tempMatrix,d)},c.RenderTexture.prototype.render=function(a,b,c){void 0===b||null===b?this._tempMatrix.copyFrom(a.worldTransform):this._tempMatrix.copyFrom(b),this.renderer.type===PIXI.WEBGL_RENDERER?this.renderWebGL(a,this._tempMatrix,c):this.renderCanvas(a,this._tempMatrix,c)},c.Text=function(a,b,d,e,f){b=b||0,d=d||0,e=void 0===e||null===e?"":e.toString(),f=c.Utils.extend({},f),this.type=c.TEXT,this.physicsType=c.SPRITE,this.padding=new c.Point,this.textBounds=null,this.canvas=PIXI.CanvasPool.create(this),this.context=this.canvas.getContext("2d"),this.colors=[],this.strokeColors=[],this.fontStyles=[],this.fontWeights=[],this.autoRound=!1,this.useAdvancedWrap=!1,this._res=a.renderer.resolution,this._text=e,this._fontComponents=null,this._lineSpacing=0,this._charCount=0,this._width=0,this._height=0,c.Sprite.call(this,a,b,d,PIXI.Texture.fromCanvas(this.canvas)),this.setStyle(f),""!==e&&this.updateText()},c.Text.prototype=Object.create(c.Sprite.prototype),c.Text.prototype.constructor=c.Text,c.Text.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Text.prototype.update=function(){},c.Text.prototype.destroy=function(a){this.texture.destroy(!0),c.Component.Destroy.prototype.destroy.call(this,a)},c.Text.prototype.setShadow=function(a,b,c,d,e,f){return void 0===a&&(a=0),void 0===b&&(b=0),void 0===c&&(c="rgba(0, 0, 0, 1)"),void 0===d&&(d=0),void 0===e&&(e=!0),void 0===f&&(f=!0),this.style.shadowOffsetX=a,this.style.shadowOffsetY=b,this.style.shadowColor=c,this.style.shadowBlur=d,this.style.shadowStroke=e,this.style.shadowFill=f,this.dirty=!0,this},c.Text.prototype.setStyle=function(a,b){void 0===b&&(b=!1),a=a||{},a.font=a.font||"bold 20pt Arial",a.backgroundColor=a.backgroundColor||null,a.fill=a.fill||"black",a.align=a.align||"left",a.boundsAlignH=a.boundsAlignH||"left",a.boundsAlignV=a.boundsAlignV||"top",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.maxLines=a.maxLines||0,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,a.tabs=a.tabs||0;var c=this.fontToComponents(a.font);return a.fontStyle&&(c.fontStyle=a.fontStyle),a.fontVariant&&(c.fontVariant=a.fontVariant),a.fontWeight&&(c.fontWeight=a.fontWeight),a.fontSize&&("number"==typeof a.fontSize&&(a.fontSize=a.fontSize+"px"),c.fontSize=a.fontSize),this._fontComponents=c,a.font=this.componentsToFont(this._fontComponents),this.style=a,this.dirty=!0,b&&this.updateText(),this},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));var b=a.split(/(?:\r\n|\r|\n)/),c=this.style.tabs,d=[],e=0,f=this.determineFontProperties(this.style.font),g=b.length;this.style.maxLines>0&&this.style.maxLines<b.length&&(g=this.style.maxLines),this._charCount=0;for(var h=0;h<g;h++){if(0===c){var i=this.style.strokeThickness+this.padding.x;this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?i+=this.measureLine(b[h]):i+=this.context.measureText(b[h]).width,this.style.wordWrap&&(i-=this.context.measureText(" ").width)}else{var j=b[h].split(/(?:\t)/),i=this.padding.x+this.style.strokeThickness;if(Array.isArray(c))for(var k=0,l=0;l<j.length;l++){var m=0;m=this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.measureLine(j[l]):Math.ceil(this.context.measureText(j[l]).width),l>0&&(k+=c[l-1]),i=k+m}else for(var l=0;l<j.length;l++){
|
||
this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?i+=this.measureLine(j[l]):i+=Math.ceil(this.context.measureText(j[l]).width);var n=this.game.math.snapToCeil(i,c)-i;i+=n}}d[h]=Math.ceil(i),e=Math.max(e,d[h])}this.canvas.width=e*this._res;var o=f.fontSize+this.style.strokeThickness+this.padding.y,p=o*g,q=this._lineSpacing;q<0&&Math.abs(q)>o&&(q=-o),0!==q&&(p+=q>0?q*b.length:q*(b.length-1)),this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,h=0;h<g;h++)r=this.style.strokeThickness/2,s=this.style.strokeThickness/2+h*o+f.ascent,h>0&&(s+=q*h),"right"===this.style.align?r+=e-d[h]:"center"===this.style.align&&(r+=(e-d[h])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[h],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[h],r,s):this.renderTabLine(b[h],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[h],r,s):this.renderTabLine(b[h],r,s,!0)));this.updateTexture(),this.dirty=!1},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i<e.length;i++)i>0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i<e.length;i++){var j=Math.ceil(this.context.measureText(e[i]).width);g=this.game.math.snapToCeil(b,f),d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c),b=g+j}},c.Text.prototype.updateShadow=function(a){a?(this.context.shadowOffsetX=this.style.shadowOffsetX,this.context.shadowOffsetY=this.style.shadowOffsetY,this.context.shadowColor=this.style.shadowColor,this.context.shadowBlur=this.style.shadowBlur):(this.context.shadowOffsetX=0,this.context.shadowOffsetY=0,this.context.shadowColor=0,this.context.shadowBlur=0)},c.Text.prototype.measureLine=function(a){for(var b=0,c=0;c<a.length;c++){var d=a[c];if(this.fontWeights.length>0||this.fontStyles.length>0){var e=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(e.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(e.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(e)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill)),b+=this.context.measureText(d).width,this._charCount++}return Math.ceil(b)},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;d<a.length;d++){var e=a[d];if(this.fontWeights.length>0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){return this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font,this.runWordWrap(a).split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;g<f;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");if(b.measureText(h).width<c)d+=h+"\n";else{for(var j=c,k=h.split(" "),l=0;l<k.length;l++){var m=k[l],n=m+" ",o=b.measureText(n).width;if(o>j){if(0===l){for(var p=n;p.length&&(p=p.slice(0,-1),!((o=b.measureText(p).width)<=j)););if(!p.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var q=m.substr(p.length);k[l]=q,i+=p}var r=k[l].length?l:l+1,s=k.slice(r).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=s+" "+(e[g+1]||""),f=e.length;break}i+=n,j-=o}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;d<c.length;d++){for(var e=this.style.wordWrapWidth,f=c[d].split(" "),g=0;g<f.length;g++){var h=this.context.measureText(f[g]).width,i=h+this.context.measureText(" ").width;i>e?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d<c.length-1&&(b+="\n")}return b},c.Text.prototype.updateFont=function(a){var b=this.componentsToFont(a);this.style.font!==b&&(this.style.font=b,this.dirty=!0,this.parent&&this.updateTransform())},c.Text.prototype.fontToComponents=function(a){var b=a.match(/^\s*(?:\b(normal|italic|oblique|inherit)?\b)\s*(?:\b(normal|small-caps|inherit)?\b)\s*(?:\b(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit)?\b)\s*(?:\b(xx-small|x-small|small|medium|large|x-large|xx-large|larger|smaller|0|\d*(?:[.]\d*)?(?:%|[a-z]{2,5}))?\b)\s*(.*)\s*$/);if(b){var c=b[5].trim();return/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(c)||/['",]/.exec(c)||(c="'"+c+"'"),{font:a,fontStyle:b[1]||"normal",fontVariant:b[2]||"normal",fontWeight:b[3]||"normal",fontSize:b[4]||"medium",fontFamily:c}}return console.warn("Phaser.Text - unparsable CSS font: "+a),{font:a}},c.Text.prototype.componentsToFont=function(a){var b,c=[];return b=a.fontStyle,b&&"normal"!==b&&c.push(b),b=a.fontVariant,b&&"normal"!==b&&c.push(b),b=a.fontWeight,b&&"normal"!==b&&c.push(b),b=a.fontSize,b&&"medium"!==b&&c.push(b),b=a.fontFamily,b&&c.push(b),c.length||c.push(a.font),c.join(" ")},c.Text.prototype.setText=function(a,b){return void 0===b&&(b=!1),this.text=a.toString()||"",b?this.updateText():this.dirty=!0,this},c.Text.prototype.parseList=function(a){if(!Array.isArray(a))return this;for(var b="",c=0;c<a.length;c++)Array.isArray(a[c])?(b+=a[c].join("\t"),c<a.length-1&&(b+="\n")):(b+=a[c],c<a.length-1&&(b+="\t"));return this.text=b,this.dirty=!0,this},c.Text.prototype.setTextBounds=function(a,b,d,e){return void 0===a?this.textBounds=null:(this.textBounds?this.textBounds.setTo(a,b,d,e):this.textBounds=new c.Rectangle(a,b,d,e),this.style.wordWrapWidth>d&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width/this.resolution:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/this.resolution/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height/this.resolution:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/this.resolution/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;i<g;i++){for(j=0;j<m;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;j<m;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f.toString()||"",this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth===this.body.sourceWidth&&this.textHeight===this.body.sourceHeight||this.body.setSize(this.textWidth,this.textHeight))},c.BitmapText.prototype.setText=function(a){this.text=a};c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=0,h=null,i=this._maxWidth>0?this._maxWidth:null,j=[],k=0;k<c.length;k++){var l=k===c.length-1;if(/(?:\r\n|\r|\n)/.test(c.charAt(k)))return{width:e,text:c.substr(0,k),end:l,chars:j};var m=c.charCodeAt(k),n=a.chars[m],o=0;void 0===n&&(m=32,n=a.chars[m]);var p=h&&n.kerning[h]?n.kerning[h]:0;if(/(\s)/.test(c.charAt(k))&&(f=k,g=e),o=(p+n.texture.width+n.xOffset)*b,i&&e+o>=i&&f>-1)return{width:g||e,text:c.substr(0,k-(k-f)),end:l,chars:j};e+=(n.xAdvance+p)*b,j.push(d+(n.xOffset+p)*b),d+=(n.xAdvance+p)*b,h=m}return{width:e,text:c,end:l,chars:j}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;f<e.length;f++){for(var g="",h=e[f],i=0;i<h.length;i++)g=c.chars[h.charCodeAt(i)]?g.concat(h[i]):g.concat(b);e[f]=g}return e.join("\n")},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(!1===f.end);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k<d.length;k++){var f=d[k];"right"===this._align?h=this.textWidth-f.width:"center"===this._align&&(h=(this.textWidth-f.width)/2);for(var l=0;l<f.text.length;l++){var m=f.text.charCodeAt(l),n=a.chars[m];void 0===n&&(m=32,n=a.chars[m]);var o=this._glyphs[g];o?o.texture=n.texture:(o=new PIXI.Sprite(n.texture),o.name=f.text[l],this._glyphs.push(o)),o.position.x=f.chars[l]+h-i,o.position.y=f.y+n.yOffset*c-j,o.scale.set(c),o.tint=this.tint,o.texture.requiresReTint=!0,o.parent||this.addChild(o),g++}}for(k=g;k<this._glyphs.length;k++)this.removeChild(this._glyphs[k])}},c.BitmapText.prototype.purgeGlyphs=function(){for(var a=this._glyphs.length,b=[],c=0;c<this._glyphs.length;c++)this._glyphs[c].parent!==this?this._glyphs[c].destroy():b.push(this._glyphs[c]);return this._glyphs=[],this._glyphs=b,this.updateText(),a-b.length},c.BitmapText.prototype.updateTransform=function(){!this.dirty&&this.anchor.equals(this._prevAnchor)||(this.updateText(),this.dirty=!1,this._prevAnchor.copyFrom(this.anchor)),PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},Object.defineProperty(c.BitmapText.prototype,"align",{get:function(){return this._align},set:function(a){a===this._align||"left"!==a&&"center"!==a&&"right"!==a||(this._align=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"tint",{get:function(){return this._tint},set:function(a){a!==this._tint&&(this._tint=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"font",{get:function(){return this._font},set:function(a){a!==this._font&&(this._font=a.trim(),this._data=this.game.cache.getBitmapFont(this._font),this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"fontSize",{get:function(){return this._fontSize},set:function(a){(a=parseInt(a,10))!==this._fontSize&&a>0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){this._data.base.scaleMode=a?0:1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;void 0!==g&&null!==g||(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o<f.length;o++){var p=this.frameData.addFrame(new c.Frame(o,l,m,this.characterWidth,this.characterHeight));this.grabData[f.charCodeAt(o)]=p.index,n++,n===this.characterPerRow?(n=0,l=this.offsetX,m+=this.characterHeight+this.characterSpacingY):l+=this.characterWidth+this.characterSpacingX}a.cache.updateFrameData(b,this.frameData),this.stamp=new c.Image(a,0,0,b,0),c.RenderTexture.call(this,a,100,100,"",c.scaleModes.NEAREST),this.type=c.RETROFONT},c.RetroFont.prototype=Object.create(c.RenderTexture.prototype),c.RetroFont.prototype.constructor=c.RetroFont,c.RetroFont.ALIGN_LEFT="left",c.RetroFont.ALIGN_RIGHT="right",c.RetroFont.ALIGN_CENTER="center",c.RetroFont.TEXT_SET1=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=!f,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;e<d.length;e++)a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-d[e].length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-d[e].length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),a<0&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),a<0&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e<a.length;e++)if(" "===a.charAt(e))b+=this.characterWidth+d;else if(this.grabData[a.charCodeAt(e)]>=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),(b+=this.characterWidth+d)>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;c<b.length;c++)b[c].length>a&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c<this._text.length;c++){var d=this._text[c],e=d.charCodeAt(0);(this.grabData[e]>=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;(b=this.autoUpperCase?a.toUpperCase():a)!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,c.Cache.DEFAULT,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k<this.points.length;k++)a=4*k,b=this.vertices[a]*this.scale.x,d=this.vertices[a+1]*this.scale.y,e=this.vertices[a+4]*this.scale.x,f=this.vertices[a+3]*this.scale.y,g=c.Math.difference(b,e),h=c.Math.difference(d,f),b+=this.world.x,d+=this.world.y,i=new c.Rectangle(b,d,g,h),j.push(i);return j}}),c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.iOSVersion=0,this.cocoonJS=!1,this.cocoonJSApp=!1,this.wechatMinigame=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.electron=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.canvasBitBltShift=null,this.webGL=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!0,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.chromeVersion=0,this.epiphany=!1,this.firefox=!1,this.firefoxVersion=0,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.edge=!1,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.safariVersion=0,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.dolby=!1,this.oggVideo=!1,this.h264Video=!1,this.mp4Video=!1,this.webmVideo=!1,this.vp9Video=!1,this.hlsVideo=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e=void 0!==window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a)
|
||
;return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041===c[0]||2712847316!==c[0]&&null}function b(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function c(){var a=-1!==navigator.userAgent.toLowerCase().indexOf("ipad");return!!(!a&&navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||a}var d=this;!function(){var a=navigator.userAgent;/Playstation Vita/.test(a)?d.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?d.kindle=!0:/Android/.test(a)?d.android=!0:/CrOS/.test(a)?d.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?(d.iOS=!0,navigator.appVersion.match(/OS (\d+)/),d.iOSVersion=parseInt(RegExp.$1,10)):/Linux/.test(a)?d.linux=!0:/Mac OS/.test(a)?d.macOS=!0:/Windows/.test(a)&&(d.windows=!0),(/Windows Phone/i.test(a)||/IEMobile/i.test(a))&&(d.android=!1,d.iOS=!1,d.macOS=!1,d.windows=!0,d.windowsPhone=!0);var b=/Silk/.test(a);(d.windows||d.macOS||d.linux&&!b||d.chromeOS)&&(d.desktop=!0),(d.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(d.desktop=!1)}(),function(){var a=navigator.userAgent;if(/Arora/.test(a)?d.arora=!0:/Edge\/\d+/.test(a)?d.edge=!0:/Chrome\/(\d+)/.test(a)&&!d.windowsPhone?(d.chrome=!0,d.chromeVersion=parseInt(RegExp.$1,10)):/Epiphany/.test(a)?d.epiphany=!0:/Firefox\D+(\d+)/.test(a)?(d.firefox=!0,d.firefoxVersion=parseInt(RegExp.$1,10)):/AppleWebKit/.test(a)&&d.iOS?d.mobileSafari=!0:/MSIE (\d+\.\d+);/.test(a)?(d.ie=!0,d.ieVersion=parseInt(RegExp.$1,10)):/Midori/.test(a)?d.midori=!0:/Opera/.test(a)?d.opera=!0:/Safari\/(\d+)/.test(a)&&!d.windowsPhone?(d.safari=!0,/Version\/(\d+)\./.test(a)&&(d.safariVersion=parseInt(RegExp.$1,10))):/Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/.test(a)&&(d.ie=!0,d.trident=!0,d.tridentVersion=parseInt(RegExp.$1,10),d.ieVersion=parseInt(RegExp.$3,10)),/Silk/.test(a)&&(d.silk=!0),navigator.standalone&&(d.webApp=!0),void 0!==window.cordova&&(d.cordova=!0),"undefined"!=typeof process&&"undefined"!=typeof require&&(d.node=!0),d.node&&"object"==typeof process.versions&&(d.nodeWebkit=!!process.versions["node-webkit"],d.electron=!!process.versions.electron),navigator.isCocoonJS&&(d.cocoonJS=!0),void 0!==window.wx&&(d.wechatMinigame=!0),d.cocoonJS)try{d.cocoonJSApp="undefined"!=typeof CocoonJS}catch(a){d.cocoonJSApp=!1}void 0!==window.ejecta&&(d.ejecta=!0),/Crosswalk/.test(a)&&(d.crosswalk=!0)}(),function(){d.audioData=!!window.Audio,d.webAudio=!(!window.AudioContext&&!window.webkitAudioContext);var a=document.createElement("audio");try{if(a.canPlayType&&(a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,"")&&(d.ogg=!0),(a.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,"")||a.canPlayType("audio/opus;").replace(/^no$/,""))&&(d.opus=!0),a.canPlayType("audio/mpeg;").replace(/^no$/,"")&&(d.mp3=!0),a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,"")&&(d.wav=!0),(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;").replace(/^no$/,""))&&(d.m4a=!0),a.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")&&(d.webm=!0),""!==a.canPlayType('audio/mp4;codecs="ec-3"')))if(d.edge)d.dolby=!0;else if(d.safari&&d.safariVersion>=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var b=parseInt(RegExp.$1,10),c=parseInt(RegExp.$2,10);(10===b&&c>=11||b>10)&&(d.dolby=!0)}}catch(a){}}(),function(){var a=document.createElement("video");try{!!a.canPlayType&&(a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,"")&&(d.oggVideo=!0),a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,"")&&(d.h264Video=!0,d.mp4Video=!0),a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")&&(d.webmVideo=!0),a.canPlayType('video/webm; codecs="vp9"').replace(/^no$/,"")&&(d.vp9Video=!0),a.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/,"")&&(d.hlsVideo=!0))}catch(a){}}(),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 e in c)void 0!==b.style[e]&&(b.style[e]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[e]));document.body.removeChild(b),d.css3D=void 0!==a&&a.length>0&&"none"!==a}(),function(){d.pixelRatio=window.devicePixelRatio||1,d.iPhone=-1!==navigator.userAgent.toLowerCase().indexOf("iphone"),d.iPhone4=2===d.pixelRatio&&d.iPhone,d.iPad=c(),"undefined"!=typeof Int8Array?d.typedArray=!0:d.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(d.littleEndian=a(),d.LITTLE_ENDIAN=d.littleEndian),d.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==d.littleEndian&&b(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(d.vibration=!0)}(),function(){d.canvas=!!window.CanvasRenderingContext2D||d.cocoonJS;try{d.localStorage=!!localStorage.getItem}catch(a){d.localStorage=!1}d.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),d.fileSystem=!!window.requestFileSystem;var a={stencil:!0};d.webGL=function(){try{var b=document.createElement("canvas");return b.screencanvas=!1,!!window.WebGLRenderingContext&&(b.getContext("webgl",a)||b.getContext("experimental-webgl",a))}catch(a){return!1}}(),d.webGL=!!d.webGL,d.worker=!!window.Worker,d.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,d.quirksMode="CSS1Compat"!==document.compatMode,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||navigator.oGetUserMedia,window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,d.getUserMedia=d.getUserMedia&&!!navigator.getUserMedia&&!!window.URL,d.firefox&&d.firefoxVersion<21&&(d.getUserMedia=!1),!d.iOS&&(d.ie||d.firefox||d.chrome)&&(d.canvasBitBltShift=!0),(d.safari||d.mobileSafari)&&(d.canvasBitBltShift=!1)}(),function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c<a.length;c++)if(b[a[c]]){d.fullscreen=!0,d.requestFullscreen=a[c];break}var e=["cancelFullScreen","exitFullscreen","webkitCancelFullScreen","webkitExitFullscreen","msCancelFullScreen","msExitFullscreen","mozCancelFullScreen","mozExitFullscreen"];if(d.fullscreen)for(var c=0;c<e.length;c++)if(document[e[c]]){d.cancelFullscreen=e[c];break}window.Element&&Element.ALLOW_KEYBOARD_INPUT&&(d.fullscreenKeyboard=!0)}(),function(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>=1)&&(d.touch=!0),(window.PointerEvent||window.MSPointerEvent||window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(d.mspointer=!0),d.cocoonJS||("onwheel"in window||d.ie&&"WheelEvent"in window?d.wheelEvent="wheel":"onmousewheel"in window?d.wheelEvent="mousewheel":d.firefox&&"MouseScrollEvent"in window&&(d.wheelEvent="DOMMouseScroll"))}()},c.Device.canPlayAudio=function(a){return!("mp3"!==a||!this.mp3)||(!("ogg"!==a||!this.ogg&&!this.opus)||(!("m4a"!==a||!this.m4a)||(!("opus"!==a||!this.opus)||(!("wav"!==a||!this.wav)||(!("webm"!==a||!this.webm)||!("mp4"!==a||!this.dolby))))))},c.Device.canPlayVideo=function(a){return!("webm"!==a||!this.webmVideo&&!this.vp9Video)||(!("mp4"!==a||!this.mp4Video&&!this.h264Video)||(!("ogg"!==a&&"ogv"!==a||!this.oggVideo)||!("mpeg"!==a||!this.hlsVideo)))},c.Device.isConsoleOpen=function(){return!(!window.console||!window.console.firebug)||!(!window.console||(console.profile(),console.profileEnd(),console.clear&&console.clear(),!console.profiles))&&console.profiles.length>0},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){b=b||256,c=c||256;var f=e?document.createElement("canvas"):PIXI.CanvasPool.create(a,b,c);return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);if(b)return a[b]},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;c<b.length;c++)a.style["image-rendering"]=b[c];return a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.RequestAnimationFrame=function(a,b){void 0===b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;d<c.length&&!window.requestAnimationFrame;d++)window.requestAnimationFrame=window[c[d]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[c[d]+"CancelAnimationFrame"];this._isSetTimeOut=!1,this._onLoop=null,this._timeOutID=null},c.RequestAnimationFrame.prototype={start:function(){this.isRunning=!0;var a=this;!window.requestAnimationFrame||this.forceSetTimeOut?(this._isSetTimeOut=!0,this._onLoop=function(){return a.updateSetTimeout()},this._timeOutID=window.setTimeout(this._onLoop,0)):(this._isSetTimeOut=!1,this._onLoop=function(b){return a.updateRAF(b)},this._timeOutID=window.requestAnimationFrame(this._onLoop))},updateRAF:function(a){this.isRunning&&(this.game.update(Math.floor(a)),this._timeOutID=window.requestAnimationFrame(this._onLoop))},updateSetTimeout:function(){this.isRunning&&(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!1===this._isSetTimeOut}},c.RequestAnimationFrame.prototype.constructor=c.RequestAnimationFrame,c.Math={PI2:2*Math.PI,between:function(a,b){return Math.floor(Math.random()*(b-a+1)+a)},fuzzyEqual:function(a,b,c){return void 0===c&&(c=1e-4),Math.abs(a-b)<c},fuzzyLessThan:function(a,b,c){return void 0===c&&(c=1e-4),a<b+c},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;c<b;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},rotateToAngle:function(a,b,d){return void 0===d&&(d=.05),a===b?a:(Math.abs(b-a)<=d||Math.abs(b-a)>=c.Math.PI2-d?a=b:(Math.abs(b-a)>Math.PI&&(b<a?b+=c.Math.PI2:b-=c.Math.PI2),b>a?a+=d:b<a&&(a-=d)),a)},getShortestAngle:function(a,b){var c=b-a;return 0===c?0:c-360*Math.floor((c- -180)/360)},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(d<=0)return 0;var e=(a-b)%d;return e<0&&(e+=d),e+b},wrapValue:function(a,b,c){return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;b<d;b++)a[b]<a[c]&&(c=b);return a[c]},max:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;b<d;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;c<e;c++)b[c][a]<b[d][a]&&(d=c);return b[d][a]},maxProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;c<e;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return b<0?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;e<=d;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(b<0&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):b<0?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[c<e+1?c:e+1],a[c<e+2?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e;return(2*b-2*c+f+g)*(e*h)+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;j<a;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return a<b?b:c<a?c:a},clampBottom:function(a,b){return a<b?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return(a=Math.max(0,Math.min(1,(a-b)/(c-b))))*a*(3-2*a)},smootherstep:function(a,b,c){return(a=Math.max(0,Math.min(1,(a-b)/(c-b))))*a*a*(a*(6*a-15)+10)},sign:function(a){return a<0?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:a<c||c>a?0:(a-c)/b}};var g=Math.PI/180,h=180/Math.PI;return c.Math.degToRad=function(a){return a*g},c.Math.radToDeg=function(a){return a*h},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b<a.length&&null!=a[b];b++){var c=a[b];this.s0-=this.hash(c),this.s0+=~~(this.s0<0),this.s1-=this.hash(c),this.s1+=~~(this.s1<0),this.s2-=this.hash(c),this.s2+=~~(this.s2<0)}},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c<a.length;c++)d+=a.charCodeAt(c),b=.02519603282416938*d,d=b>>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&-1!==(b=this.getIndex(a)))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.level<this.maxLevels)for(null==this.nodes[0]&&this.split();c<this.objects.length;)b=this.getIndex(this.objects[c]),-1!==b?this.nodes[b].insert(this.objects.splice(c,1)[0]):c++},getIndex:function(a){var b=-1;return a.x<this.bounds.right&&a.right<this.bounds.right?a.y<this.bounds.bottom&&a.bottom<this.bounds.bottom?b=1:a.y>this.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.y<this.bounds.bottom&&a.bottom<this.bounds.bottom?b=0:a.y>this.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),void 0!==d&&""!==d||(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e=void 0!==b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if(void 0!==b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;if(!c)return e;window.location.href=e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a===this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;a<this._tweens.length;a++)this._tweens[a].pendingDelete=!0;this._add=[]},removeFrom:function(a,b){void 0===b&&(b=!0);var d,e;if(Array.isArray(a))for(d=0,e=a.length;d<e;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;d<e;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;d<e;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;d<e;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:-1!==(b=this._add.indexOf(a))&&(this._add[b].pendingDelete=!0)},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;c<b;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this.frameBased=d.frameBased,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||b<=0)&&(b=1e3),void 0!==d&&null!==d||(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),void 0!==d&&null!==d||(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;b<this.timeline.length;b++)for(var c in this.timeline[b].vEnd)this.properties[c]=this.target[c]||0,Array.isArray(this.properties[c])||(this.properties[c]*=1);for(var b=0;b<this.timeline.length;b++)this.timeline[b].loadValues();return this.manager.add(this),this.isRunning=!0,(a<0||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d<this.timeline.length;d++)this.timeline[d][a]=b;else this.timeline[c][a]=b;return this},delay:function(a,b){return this.updateTweenData("delay",a,b)},repeat:function(a,b,c){return void 0===b&&(b=0),this.updateTweenData("repeatCounter",a,c),this.updateTweenData("repeatDelay",b,c)},repeatDelay:function(a,b){return this.updateTweenData("repeatDelay",a,b)},yoyo:function(a,b,c){return void 0===b&&(b=0),this.updateTweenData("yoyo",a,c),this.updateTweenData("yoyoDelay",b,c)},yoyoDelay:function(a,b){return this.updateTweenData("yoyoDelay",a,b)},easing:function(a,b){return"string"==typeof a&&this.manager.easeMap[a]&&(a=this.manager.easeMap[a]),this.updateTweenData("easingFunction",a,b)},interpolation:function(a,b,d){return void 0===b&&(b=c.Math),this.updateTweenData("interpolationFunction",a,d),this.updateTweenData("interpolationContext",b,d)},repeatAll:function(a){return void 0===a&&(a=0),this.repeatCounter=a,this},chain:function(){for(var a=arguments.length;a--;)a>0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),this.repeatCounter=a?-1:0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a<this.timeline.length;a++)this.timeline[a].isRunning||(this.timeline[a].startTime+=this.game.time.time-this._pausedTime)}},_resume:function(){this._codePaused||this.resume()},update:function(a){if(this.pendingDelete||!this.target)return!1;if(this.isPaused)return!0;var b=this.timeline[this.current].update(a);if(b===c.TweenData.PENDING)return!0;if(b===c.TweenData.RUNNING)return this._hasStarted||(this.onStart.dispatch(this.target,this),this._hasStarted=!0),null!==this._onUpdateCallback&&this._onUpdateCallback.call(this._onUpdateCallbackContext,this,this.timeline[this.current].value,this.timeline[this.current]),this.isRunning;if(b===c.TweenData.LOOPED)return-1===this.timeline[this.current].repeatCounter?this.onLoop.dispatch(this.target,this):this.onRepeat.dispatch(this.target,this),!0;if(b===c.TweenData.COMPLETE){var d=!1;return this.reverse?--this.current<0&&(this.current=this.timeline.length-1,d=!0):++this.current===this.timeline.length&&(this.current=0,d=!0),d?-1===this.repeatCounter?(this.timeline[this.current].start(),this.onLoop.dispatch(this.target,this),!0):this.repeatCounter>0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c<this.timeline.length;c++)for(var d in this.timeline[c].vEnd)this.properties[d]=this.target[d]||0,Array.isArray(this.properties[d])||(this.properties[d]*=1);for(var c=0;c<this.timeline.length;c++)this.timeline[c].loadValues();for(var c=0;c<this.timeline.length;c++)b=b.concat(this.timeline[c].generateData(a));return b}},Object.defineProperty(c.Tween.prototype,"totalDuration",{get:function(){for(var a=0,b=0;b<this.timeline.length;b++)a+=this.timeline[b].duration;return a}}),c.Tween.prototype.constructor=c.Tween,c.TweenData=function(a){this.parent=a,this.game=a.game,this.vStart={},this.vStartCache={},this.vEnd={},this.vEndCache={},this.duration=1e3,this.percent=0,this.value=0,this.repeatCounter=0,this.repeatDelay=0,this.repeatTotal=0,this.interpolate=!1,this.yoyo=!1,this.yoyoDelay=0,this.inReverse=!1,this.delay=0,this.dt=0,this.startTime=null,this.easingFunction=c.Easing.Default,this.interpolationFunction=c.Math.linearInterpolation,this.interpolationContext=c.Math,this.isRunning=!1,this.isFrom=!1},c.TweenData.PENDING=0,c.TweenData.RUNNING=1,c.TweenData.LOOPED=2,c.TweenData.COMPLETE=3,c.TweenData.prototype={to:function(a,b,c,d,e,f){return this.vEnd=a,this.duration=b,this.easingFunction=c,this.delay=d,this.repeatTotal=e,this.yoyo=f,this.isFrom=!1,this},from:function(a,b,c,d,e,f){return this.vEnd=a,
|
||
this.duration=b,this.easingFunction=c,this.delay=d,this.repeatTotal=e,this.yoyo=f,this.isFrom=!0,this},start:function(){if(this.startTime=this.game.time.time+this.delay,this.parent.reverse?this.dt=this.duration:this.dt=0,this.delay>0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this.repeatCounter=this.repeatTotal,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}void 0!==this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a<this.startTime)return c.TweenData.RUNNING}else{if(!(a>=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(2-Math.pow(2,-10*(a-1)))}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1;return 0===a?0:1===a?1:(!c||c<1?(c=1,b=.1):b=.4*Math.asin(1/c)/(2*Math.PI),-c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/.4))},Out:function(a){var b,c=.1;return 0===a?0:1===a?1:(!c||c<1?(c=1,b=.1):b=.4*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/.4)+1)},InOut:function(a){var b,c=.1;return 0===a?0:1===a?1:(!c||c<1?(c=1,b=.1):b=.4*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/.4)*-.5:c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/.4)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?a*a*((b+1)*a-b)*.5:.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return a<.5?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a<this._timers.length;a++)this._timers[a].destroy();this._timers=[],this.events.removeAll()},refresh:function(){var a=this.time;this.time=Date.now(),this.elapsedMS=this.time-a},update:function(a){var b=this.time;this.time=Date.now(),this.elapsedMS=this.time-b,this.prevTime=this.now,this.now=a,this.elapsed=this.now-this.prevTime,this.game.raf._isSetTimeOut&&(this.timeToCall=Math.floor(Math.max(0,1e3/this._desiredFps-(this.timeExpected-a))),this.timeExpected=a+this.timeToCall),this.advancedTiming&&this.updateAdvancedTiming(),this.game.paused||(this.events.update(this.time),this._timers.length&&this.updateTimers())},updateTimers:function(){for(var a=0,b=this._timers.length;a<b;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;0===this._now?h+=this.game.time.time:h+=this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b<this.events.length;b++)this.events[b].tick=this.events[b].delay+this._started}},stop:function(a){this.running=!1,void 0===a&&(a=!0),a&&(this.events.length=0)},remove:function(a){for(var b=0;b<this.events.length;b++)if(this.events[b]===a)return this.events[b].pendingDelete=!0,!0;return!1},order:function(){this.events.length>0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tick<b.tick?-1:a.tick>b.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i<this._len&&this.running&&this._now>=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),!0===this.events[this._i].loop?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return!this.expired||!this.autoDestroy},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;b<this.events.length;b++)if(!this.events[b].pendingDelete){var c=this.events[b].tick-a;c<0&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=d<0?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=!(!b||"number"!=typeof b[0])),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;c<a.length;c++)if(!0===b){if(a[c]>this._frameData.total)return!1}else if(!1===this._frameData.checkFrameName(a[c]))return!1;return!0},play:function(a,b,c,d){if(this._anims[a])return this.currentAnim===this._anims[a]?!1===this.currentAnim.isPlaying?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d))},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return!(this.updateIfVisible&&!this.sprite.visible)&&(!(!this.currentAnim||!this.currentAnim.update())&&(this.currentFrame=this.currentAnim.currentFrame,!0))},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){if(this.currentAnim)return this.currentAnim.name}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){if(this.currentFrame)return this.currentFrame.index},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){if(this.currentFrame)return this.currentFrame.name},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.isReversed=!1,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),void 0!==c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=this.isReversed?this._frames.length-1:0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},reverse:function(){return this.reversed=!this.reversed,this},reverseOnce:function(){return this.onComplete.addOnce(this.reverse,this),this.reverse()},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d<this._frames.length;d++)this._frameData.getFrame(this._frames[d]).name===a&&(c=d);else if("number"==typeof a)if(b)c=a;else for(var d=0;d<this._frames.length;d++)this._frames[d]===a&&(c=d);c&&(this._frameIndex=c-1,this._timeNextFrame=this.game.time.time,this.update())},stop:function(a,b){void 0===a&&(a=!1),void 0===b&&(b=!1),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,a&&(this.currentFrame=this._frameData.getFrame(this._frames[0]),this._parent.setFrame(this.currentFrame)),b&&(this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this))},onPause:function(){this.isPlaying&&(this._frameDiff=this._timeNextFrame-this.game.time.time)},onResume:function(){this.isPlaying&&(this._timeNextFrame=this.game.time.time+this._frameDiff)},update:function(){return!this.isPaused&&(!!(this.isPlaying&&this.game.time.time>=this._timeNextFrame)&&(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this.isReversed?this._frameIndex-=this._frameSkip:this._frameIndex+=this._frameSkip,!this.isReversed&&this._frameIndex>=this._frames.length||this.isReversed&&this._frameIndex<=-1?this.loop?(this._frameIndex=Math.abs(this._frameIndex)%this._frames.length,this.isReversed&&(this._frameIndex=this._frames.length-1-this._frameIndex),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),!this.onUpdate||(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData)):(this.complete(),!1):this.updateCurrentFrame(!0)))},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),!this.onUpdate||!a||(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData)},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;b<0&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"reversed",{get:function(){return this.isReversed},set:function(a){this.isReversed=a}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return 1e3/this.delay},set:function(a){a>0&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(b<d)for(var i=b;i<=d;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.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,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(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)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.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]},clone:function(){for(var a=new c.FrameData,b=0;b<this._frames.length;b++)a._frames.push(this._frames[b].clone());for(var d in this._frameNames)this._frameNames.hasOwnProperty(d)&&a._frameNames.push(this._frameNames[d]);return a},getFrameRange:function(a,b,c){void 0===c&&(c=[]);for(var d=a;d<=b;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d<this._frames.length;d++)c.push(this._frames[d]);else for(var d=0;d<a.length;d++)b?c.push(this.getFrame(a[d])):c.push(this.getFrameByName(a[d]));return c},getFrameIndexes:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d<this._frames.length;d++)c.push(this._frames[d].index);else for(var d=0;d<a.length;d++)b&&this._frames[a[d]]?c.push(this._frames[a[d]].index):this.getFrameByName(a[d])&&c.push(this.getFrameByName(a[d]).index);return c},destroy:function(){this._frames=null,this._frameNames=null}},c.FrameData.prototype.constructor=c.FrameData,Object.defineProperty(c.FrameData.prototype,"total",{get:function(){return this._frames.length}}),c.AnimationParser={spriteSheet:function(a,b,d,e,f,g,h){var i=b;if("string"==typeof b&&(i=a.cache.getImage(b)),null===i)return null;var j=i.width,k=i.height;d<=0&&(d=Math.floor(-j/Math.min(-1,d))),e<=0&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||j<d||k<e||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;r<n;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),(p+=d+h)+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g<f.length;g++)d=e.addFrame(new c.Frame(g,f[g].frame.x,f[g].frame.y,f[g].frame.w,f[g].frame.h,f[g].filename)),f[g].trimmed&&d.setTrim(f[g].trimmed,f[g].sourceSize.w,f[g].sourceSize.h,f[g].spriteSourceSize.x,f[g].spriteSourceSize.y,f[g].spriteSourceSize.w,f[g].spriteSourceSize.h);return e},JSONDataPyxel:function(a,b){if(["layers","tilewidth","tileheight","tileswide","tileshigh"].forEach(function(a){if(!b[a])return console.warn('Phaser.AnimationParser.JSONDataPyxel: Invalid Pyxel Tilemap JSON given, missing "'+a+'" key.'),void console.log(b)}),1!==b.layers.length)return console.warn("Phaser.AnimationParser.JSONDataPyxel: Too many layers, this parser only supports flat Tilemaps."),void console.log(b);for(var d,e=new c.FrameData,f=b.tileheight,g=b.tilewidth,h=b.layers[0].tiles,i=0;i<h.length;i++)d=e.addFrame(new c.Frame(i,h[i].x,h[i].y,g,f,"frame_"+i)),d.setTrim(!1);return e},JSONDataHash:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONDataHash: Invalid Texture Atlas JSON given, missing 'frames' object"),void console.log(b);var d,e=new c.FrameData,f=b.frames,g=0;for(var h in f)d=e.addFrame(new c.Frame(g,f[h].frame.x,f[h].frame.y,f[h].frame.w,f[h].frame.h,h)),f[h].trimmed&&d.setTrim(f[h].trimmed,f[h].sourceSize.w,f[h].sourceSize.h,f[h].spriteSourceSize.x,f[h].spriteSourceSize.y,f[h].spriteSourceSize.w,f[h].spriteSourceSize.h),g++;return e},XMLData:function(a,b){if(!b.getElementsByTagName("TextureAtlas"))return void console.warn("Phaser.AnimationParser.XMLData: Invalid Texture Atlas XML given, missing <TextureAtlas> tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q<p.length;q++)f=p[q].attributes,e=f.name.value,g=parseInt(f.x.value,10),h=parseInt(f.y.value,10),i=parseInt(f.width.value,10),j=parseInt(f.height.value,10),k=null,l=null,f.frameX&&(k=Math.abs(parseInt(f.frameX.value,10)),l=Math.abs(parseInt(f.frameY.value,10)),m=parseInt(f.frameWidth.value,10),n=parseInt(f.frameHeight.value,10)),d=o.addFrame(new c.Frame(q,g,h,i,j,e)),null===k&&null===l||d.setTrim(!0,i,j,k,l,m,n);return o}},c.Cache=function(a){this.game=a,this.autoResolveURL=!1,this._cache={canvas:{},image:{},texture:{},sound:{},video:{},text:{},json:{},xml:{},physics:{},tilemap:{},binary:{},bitmapData:{},bitmapFont:{},shader:{},renderTexture:{}},this._urlMap={},this._urlResolver=new Image,this._urlTemp=null,this.onSoundUnlock=new c.Signal,this._cacheMap=[],this._cacheMap[c.Cache.CANVAS]=this._cache.canvas,this._cacheMap[c.Cache.IMAGE]=this._cache.image,this._cacheMap[c.Cache.TEXTURE]=this._cache.texture,this._cacheMap[c.Cache.SOUND]=this._cache.sound,this._cacheMap[c.Cache.TEXT]=this._cache.text,this._cacheMap[c.Cache.PHYSICS]=this._cache.physics,this._cacheMap[c.Cache.TILEMAP]=this._cache.tilemap,this._cacheMap[c.Cache.BINARY]=this._cache.binary,this._cacheMap[c.Cache.BITMAPDATA]=this._cache.bitmapData,this._cacheMap[c.Cache.BITMAPFONT]=this._cache.bitmapFont,this._cacheMap[c.Cache.JSON]=this._cache.json,this._cacheMap[c.Cache.XML]=this._cache.xml,this._cacheMap[c.Cache.VIDEO]=this._cache.video,this._cacheMap[c.Cache.SHADER]=this._cache.shader,this._cacheMap[c.Cache.RENDER_TEXTURE]=this._cache.renderTexture,this.addDefaultImage(),this.addMissingImage()},c.Cache.CANVAS=1,c.Cache.IMAGE=2,c.Cache.TEXTURE=3,c.Cache.SOUND=4,c.Cache.TEXT=5,c.Cache.PHYSICS=6,c.Cache.TILEMAP=7,c.Cache.BINARY=8,c.Cache.BITMAPDATA=9,c.Cache.BITMAPFONT=10,c.Cache.JSON=11,c.Cache.XML=12,c.Cache.VIDEO=13,c.Cache.SHADER=14,c.Cache.RENDER_TEXTURE=15,c.Cache.DEFAULT=null,c.Cache.MISSING=null,c.Cache.prototype={addCanvas:function(a,b,c){void 0===c&&(c=b.getContext("2d")),this._cache.canvas[a]={canvas:b,context:c}},addImage:function(a,b,d){this.checkImageKey(a)&&this.removeImage(a);var e={key:a,url:b,data:d,base:new PIXI.BaseTexture(d),
|
||
frame:new c.Frame(0,0,0,d.width,d.height,a),frameData:new c.FrameData};return e.frameData.addFrame(new c.Frame(0,0,0,d.width,d.height,b)),this._cache.image[a]=e,this._resolveURL(b,e),"__default"===a?c.Cache.DEFAULT=new PIXI.Texture(e.base):"__missing"===a&&(c.Cache.MISSING=new PIXI.Texture(e.base)),e},addDefaultImage:function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg==";var b=this.addImage("__default",null,a);b.base.skipRender=!0,c.Cache.DEFAULT=new PIXI.Texture(b.base)},addMissingImage:function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg==";var b=this.addImage("__missing",null,a);c.Cache.MISSING=new PIXI.Texture(b.base)},addSound:function(a,b,c,d,e){void 0===d&&(d=!0,e=!1),void 0===e&&(d=!1,e=!0);var f=!1;e&&(f=!0),this._cache.sound[a]={url:b,data:c,isDecoding:!1,decoded:f,webAudio:d,audioTag:e,locked:this.game.sound.touchLocked},this._resolveURL(b,this._cache.sound[a])},addText:function(a,b,c){this._cache.text[a]={url:b,data:c},this._resolveURL(b,this._cache.text[a])},addPhysicsData:function(a,b,c,d){this._cache.physics[a]={url:b,data:c,format:d},this._resolveURL(b,this._cache.physics[a])},addTilemap:function(a,b,c,d){this._cache.tilemap[a]={url:b,data:c,format:d},this._resolveURL(b,this._cache.tilemap[a])},addBinary:function(a,b){this._cache.binary[a]=b},addBitmapData:function(a,b,d){return b.key=a,void 0===d&&(d=new c.FrameData,d.addFrame(b.textureFrame)),this._cache.bitmapData[a]={data:b,frameData:d},b},addBitmapFont:function(a,b,d,e,f,g,h){var i={url:b,data:d,font:null,base:new PIXI.BaseTexture(d)};void 0===g&&(g=0),void 0===h&&(h=0),i.font="json"===f?c.LoaderParser.jsonBitmapFont(e,i.base,g,h):c.LoaderParser.xmlBitmapFont(e,i.base,g,h),this._cache.bitmapFont[a]=i,this._resolveURL(b,i)},addJSON:function(a,b,c){this._cache.json[a]={url:b,data:c},this._resolveURL(b,this._cache.json[a])},addXML:function(a,b,c){this._cache.xml[a]={url:b,data:c},this._resolveURL(b,this._cache.xml[a])},addVideo:function(a,b,c,d){this._cache.video[a]={url:b,data:c,isBlob:d,locked:!0},this._resolveURL(b,this._cache.video[a])},addShader:function(a,b,c){this._cache.shader[a]={url:b,data:c},this._resolveURL(b,this._cache.shader[a])},addRenderTexture:function(a,b){this._cache.renderTexture[a]={texture:b,frame:new c.Frame(0,0,0,b.width,b.height,"","")}},addSpriteSheet:function(a,b,d,e,f,g,h,i){void 0===g&&(g=-1),void 0===h&&(h=0),void 0===i&&(i=0);var j={key:a,url:b,data:d,frameWidth:e,frameHeight:f,margin:h,spacing:i,base:new PIXI.BaseTexture(d),frameData:c.AnimationParser.spriteSheet(this.game,d,e,f,g,h,i)};this._cache.image[a]=j,this._resolveURL(b,j)},addTextureAtlas:function(a,b,d,e,f){var g={key:a,url:b,data:d,base:new PIXI.BaseTexture(d)};f===c.Loader.TEXTURE_ATLAS_XML_STARLING?g.frameData=c.AnimationParser.XMLData(this.game,e,a):f===c.Loader.TEXTURE_ATLAS_JSON_PYXEL?g.frameData=c.AnimationParser.JSONDataPyxel(this.game,e,a):Array.isArray(e.frames)?g.frameData=c.AnimationParser.JSONData(this.game,e,a):g.frameData=c.AnimationParser.JSONDataHash(this.game,e,a),this._cache.image[a]=g,this._resolveURL(b,g)},reloadSound:function(a){var b=this,c=this.getSound(a);c&&(c.data.src=c.url,c.data.addEventListener("canplaythrough",function(){return b.reloadSoundComplete(a)},!1),c.data.load())},reloadSoundComplete:function(a){var b=this.getSound(a);b&&(b.locked=!1,this.onSoundUnlock.dispatch(a))},updateSound:function(a,b,c){var d=this.getSound(a);d&&(d[b]=c)},decodedSound:function(a,b){var c=this.getSound(a);c.data=b,c.decoded=!0,c.isDecoding=!1},isSoundDecoded:function(a){var b=this.getItem(a,c.Cache.SOUND,"isSoundDecoded");if(b)return b.decoded},isSoundReady:function(a){var b=this.getItem(a,c.Cache.SOUND,"isSoundDecoded");if(b)return b.decoded&&!this.game.sound.touchLocked},checkKey:function(a,b){return!!this._cacheMap[a][b]},checkURL:function(a){return!!this._urlMap[this._resolveURL(a)]},checkCanvasKey:function(a){return this.checkKey(c.Cache.CANVAS,a)},checkImageKey:function(a){return this.checkKey(c.Cache.IMAGE,a)},checkTextureKey:function(a){return this.checkKey(c.Cache.TEXTURE,a)},checkSoundKey:function(a){return this.checkKey(c.Cache.SOUND,a)},checkTextKey:function(a){return this.checkKey(c.Cache.TEXT,a)},checkPhysicsKey:function(a){return this.checkKey(c.Cache.PHYSICS,a)},checkTilemapKey:function(a){return this.checkKey(c.Cache.TILEMAP,a)},checkBinaryKey:function(a){return this.checkKey(c.Cache.BINARY,a)},checkBitmapDataKey:function(a){return this.checkKey(c.Cache.BITMAPDATA,a)},checkBitmapFontKey:function(a){return this.checkKey(c.Cache.BITMAPFONT,a)},checkJSONKey:function(a){return this.checkKey(c.Cache.JSON,a)},checkXMLKey:function(a){return this.checkKey(c.Cache.XML,a)},checkVideoKey:function(a){return this.checkKey(c.Cache.VIDEO,a)},checkShaderKey:function(a){return this.checkKey(c.Cache.SHADER,a)},checkRenderTextureKey:function(a){return this.checkKey(c.Cache.RENDER_TEXTURE,a)},getItem:function(a,b,c,d){return this.checkKey(b,a)?void 0===d?this._cacheMap[b][a]:this._cacheMap[b][a][d]:(c&&console.warn("Phaser.Cache."+c+': Key "'+a+'" not found in Cache.'),null)},getCanvas:function(a){return this.getItem(a,c.Cache.CANVAS,"getCanvas","canvas")},getImage:function(a,b){void 0!==a&&null!==a||(a="__default"),void 0===b&&(b=!1);var d=this.getItem(a,c.Cache.IMAGE,"getImage");return null===d&&(d=this.getItem("__missing",c.Cache.IMAGE,"getImage")),b?d:d.data},getTextureFrame:function(a){return this.getItem(a,c.Cache.TEXTURE,"getTextureFrame","frame")},getSound:function(a){return this.getItem(a,c.Cache.SOUND,"getSound")},getSoundData:function(a){return this.getItem(a,c.Cache.SOUND,"getSoundData","data")},getText:function(a){return this.getItem(a,c.Cache.TEXT,"getText","data")},getPhysicsData:function(a,b,d){var e=this.getItem(a,c.Cache.PHYSICS,"getPhysicsData","data");if(null===e||void 0===b||null===b)return e;if(e[b]){var f=e[b];if(!f||!d)return f;for(var g in f)if(g=f[g],g.fixtureKey===d)return g;console.warn('Phaser.Cache.getPhysicsData: Could not find given fixtureKey: "'+d+" in "+a+'"')}else console.warn('Phaser.Cache.getPhysicsData: Invalid key/object: "'+a+" / "+b+'"');return null},getTilemapData:function(a){return this.getItem(a,c.Cache.TILEMAP,"getTilemapData")},getBinary:function(a){return this.getItem(a,c.Cache.BINARY,"getBinary")},getBitmapData:function(a){return this.getItem(a,c.Cache.BITMAPDATA,"getBitmapData","data")},getBitmapFont:function(a){return this.getItem(a,c.Cache.BITMAPFONT,"getBitmapFont")},getJSON:function(a,b){var d=this.getItem(a,c.Cache.JSON,"getJSON","data");return d?b?c.Utils.extend(!0,Array.isArray(d)?[]:{},d):d:null},getXML:function(a){return this.getItem(a,c.Cache.XML,"getXML","data")},getVideo:function(a){return this.getItem(a,c.Cache.VIDEO,"getVideo")},getShader:function(a){return this.getItem(a,c.Cache.SHADER,"getShader","data")},getRenderTexture:function(a){return this.getItem(a,c.Cache.RENDER_TEXTURE,"getRenderTexture")},getBaseTexture:function(a,b){return void 0===b&&(b=c.Cache.IMAGE),this.getItem(a,b,"getBaseTexture","base")},getFrame:function(a,b){return void 0===b&&(b=c.Cache.IMAGE),this.getItem(a,b,"getFrame","frame")},getFrameCount:function(a,b){var c=this.getFrameData(a,b);return c?c.total:0},getFrameData:function(a,b){return void 0===b&&(b=c.Cache.IMAGE),this.getItem(a,b,"getFrameData","frameData")},hasFrameData:function(a,b){return void 0===b&&(b=c.Cache.IMAGE),null!==this.getItem(a,b,"","frameData")},updateFrameData:function(a,b,d){void 0===d&&(d=c.Cache.IMAGE),this._cacheMap[d][a]&&(this._cacheMap[d][a].frameData=b)},getFrameByIndex:function(a,b,c){var d=this.getFrameData(a,c);return d?d.getFrame(b):null},getFrameByName:function(a,b,c){var d=this.getFrameData(a,c);return d?d.getFrameByName(b):null},getURL:function(a){var a=this._resolveURL(a);return a?this._urlMap[a]:(console.warn('Phaser.Cache.getUrl: Invalid url: "'+a+'" or Cache.autoResolveURL was false'),null)},getKeys:function(a){void 0===a&&(a=c.Cache.IMAGE);var b=[];if(this._cacheMap[a])for(var d in this._cacheMap[a])"__default"!==d&&"__missing"!==d&&b.push(d);return b},removeCanvas:function(a){delete this._cache.canvas[a]},removeImage:function(a,b){void 0===b&&(b=!0);var c=this.getImage(a,!0);b&&c.base&&c.base.destroy(),delete this._cache.image[a]},removeSound:function(a){delete this._cache.sound[a]},removeText:function(a){delete this._cache.text[a]},removePhysics:function(a){delete this._cache.physics[a]},removeTilemap:function(a){delete this._cache.tilemap[a]},removeBinary:function(a){delete this._cache.binary[a]},removeBitmapData:function(a){delete this._cache.bitmapData[a]},removeBitmapFont:function(a){delete this._cache.bitmapFont[a]},removeJSON:function(a){delete this._cache.json[a]},removeXML:function(a){delete this._cache.xml[a]},removeVideo:function(a){delete this._cache.video[a]},removeShader:function(a){delete this._cache.shader[a]},removeRenderTexture:function(a){delete this._cache.renderTexture[a]},removeSpriteSheet:function(a){delete this._cache.spriteSheet[a]},removeTextureAtlas:function(a){delete this._cache.atlas[a]},clearGLTextures:function(){for(var a in this._cache.image)this._cache.image[a].base._glTextures=[]},_resolveURL:function(a,b){return this.autoResolveURL?(this._urlResolver.src=this.game.load.baseURL+a,this._urlTemp=this._urlResolver.src,this._urlResolver.src="",b&&(this._urlMap[this._urlTemp]=b),this._urlTemp):null},destroy:function(){for(var a=0;a<this._cacheMap.length;a++){var b=this._cacheMap[a];for(var c in b)"__default"!==c&&"__missing"!==c&&(b[c].destroy&&b[c].destroy(),delete b[c])}this._urlMap=null,this._urlResolver=null,this._urlTemp=null}},c.Cache.prototype.constructor=c.Cache,c.Loader=function(a){this.game=a,this.cache=a.cache,this.resetLocked=!1,this.isLoading=!1,this.hasLoaded=!1,this.preloadSprite=null,this.crossOrigin=!1,this.baseURL="",this.path="",this.headers={requestedWith:!1,json:"application/json",xml:"application/xml"},this.onLoadStart=new c.Signal,this.onLoadComplete=new c.Signal,this.onPackComplete=new c.Signal,this.onFileStart=new c.Signal,this.onFileComplete=new c.Signal,this.onFileError=new c.Signal,this.useXDomainRequest=!1,this._warnedAboutXDomainRequest=!1,this.enableParallel=!0,this.maxParallelDownloads=4,this._withSyncPointDepth=0,this._fileList=[],this._flightQueue=[],this._processingHead=0,this._fileLoadStarted=!1,this._totalPackCount=0,this._totalFileCount=0,this._loadedPackCount=0,this._loadedFileCount=0},c.Loader.TEXTURE_ATLAS_JSON_ARRAY=0,c.Loader.TEXTURE_ATLAS_JSON_HASH=1,c.Loader.TEXTURE_ATLAS_XML_STARLING=2,c.Loader.PHYSICS_LIME_CORONA_JSON=3,c.Loader.PHYSICS_PHASER_JSON=4,c.Loader.TEXTURE_ATLAS_JSON_PYXEL=5,c.Loader.prototype={setPreloadSprite:function(a,b){b=b||0,this.preloadSprite={sprite:a,direction:b,width:a.width,height:a.height,rect:null},this.preloadSprite.rect=0===b?new c.Rectangle(0,0,1,a.height):new c.Rectangle(0,0,a.width,1),a.crop(this.preloadSprite.rect),a.visible=!0},resize:function(){this.preloadSprite&&this.preloadSprite.height!==this.preloadSprite.sprite.height&&(this.preloadSprite.rect.height=this.preloadSprite.sprite.height)},checkKeyExists:function(a,b){return this.getAssetIndex(a,b)>-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d<this._fileList.length;d++){var e=this._fileList[d];if(e.type===a&&e.key===b&&(c=d,!e.loaded&&!e.loading))break}return c},getAsset:function(a,b){var c=this.getAssetIndex(a,b);return c>-1&&{index:c,file:this._fileList[c]}},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f<this._fileList.length+1;f++){var g=this._fileList[f];if(!g||!g.loaded&&!g.loading&&"packfile"!==g.type){this._fileList.splice(f,0,e),this._totalPackCount++;break}}return this},image:function(a,b,c){return this.addToFileList("image",a,b,void 0,c,".png")},images:function(a,b){if(Array.isArray(b))for(var c=0;c<a.length;c++)this.image(a[c],b[c]);else for(var c=0;c<a.length;c++)this.image(a[c]);return this},text:function(a,b,c){return this.addToFileList("text",a,b,void 0,c,".txt")},json:function(a,b,c){return this.addToFileList("json",a,b,void 0,c,".json")},shader:function(a,b,c){return this.addToFileList("shader",a,b,void 0,c,".frag")},xml:function(a,b,c){return this.addToFileList("xml",a,b,void 0,c,".xml")},script:function(a,b,c,d){return void 0===c&&(c=!1),!1!==c&&void 0===d&&(d=this),this.addToFileList("script",a,b,{syncPoint:!0,callback:c,callbackContext:d},!1,".js")},binary:function(a,b,c,d){return void 0===c&&(c=!1),!1!==c&&void 0===d&&(d=c),this.addToFileList("binary",a,b,{callback:c,callbackContext:d},!1,".bin")},spritesheet:function(a,b,c,d,e,f,g){return void 0===e&&(e=-1),void 0===f&&(f=0),void 0===g&&(g=0),this.addToFileList("spritesheet",a,b,{frameWidth:c,frameHeight:d,frameMax:e,margin:f,spacing:g},!1,".png")},audio:function(a,b,c){return this.game.sound.noAudio?this:(void 0===c&&(c=!0),"string"==typeof b&&(b=[b]),this.addToFileList("audio",a,b,{buffer:null,autoDecode:c}))},audioSprite:function(a,b,c,d,e){return this.game.sound.noAudio?this:(void 0===c&&(c=null),void 0===d&&(d=null),void 0===e&&(e=!0),this.audio(a,b,e),c?this.json(a+"-audioatlas",c):d?("string"==typeof d&&(d=JSON.parse(d)),this.cache.addJSON(a+"-audioatlas","",d)):console.warn("Phaser.Loader.audiosprite - You must specify either a jsonURL or provide a jsonData object"),this)},audiosprite:function(a,b,c,d,e){return this.audioSprite(a,b,c,d,e)},video:function(a,b,c,d){return void 0===c&&(c=this.game.device.firefox?"loadeddata":"canplaythrough"),void 0===d&&(d=!1),"string"==typeof b&&(b=[b]),this.addToFileList("video",a,b,{buffer:null,asBlob:d,loadEvent:c})},tilemap:function(a,b,d,e){if(void 0===b&&(b=null),void 0===d&&(d=null),void 0===e&&(e=c.Tilemap.CSV),b||d||(b=e===c.Tilemap.CSV?a+".csv":a+".json"),d){switch(e){case c.Tilemap.CSV:break;case c.Tilemap.TILED_JSON:"string"==typeof d&&(d=JSON.parse(d))}this.cache.addTilemap(a,null,d,e)}else this.addToFileList("tilemap",a,b,{format:e});return this},physics:function(a,b,d,e){return void 0===b&&(b=null),void 0===d&&(d=null),void 0===e&&(e=c.Physics.LIME_CORONA_JSON),b||d||(b=a+".json"),d?("string"==typeof d&&(d=JSON.parse(d)),this.cache.addPhysicsData(a,null,d,e)):this.addToFileList("physics",a,b,{format:e}),this},bitmapFont:function(a,b,c,d,e,f){if(void 0!==b&&null!==b||(b=a+".png"),void 0===c&&(c=null),void 0===d&&(d=null),null===c&&null===d&&(c=a+".xml"),void 0===e&&(e=0),void 0===f&&(f=0),c)this.addToFileList("bitmapfont",a,b,{atlasURL:c,xSpacing:e,ySpacing:f});else if("string"==typeof d){var g,h;try{g=JSON.parse(d)}catch(a){h=this.parseXml(d)}if(!h&&!g)throw new Error("Phaser.Loader. Invalid Bitmap Font atlas given");this.addToFileList("bitmapfont",a,b,{atlasURL:null,atlasData:g||h,atlasType:g?"json":"xml",xSpacing:e,ySpacing:f})}return this},atlasJSONArray:function(a,b,d,e){return this.atlas(a,b,d,e,c.Loader.TEXTURE_ATLAS_JSON_ARRAY)},atlasJSONHash:function(a,b,d,e){return this.atlas(a,b,d,e,c.Loader.TEXTURE_ATLAS_JSON_HASH)},atlasXML:function(a,b,d,e){return void 0===d&&(d=null),void 0===e&&(e=null),d||e||(d=a+".xml"),this.atlas(a,b,d,e,c.Loader.TEXTURE_ATLAS_XML_STARLING)},atlas:function(a,b,d,e,f){if(void 0!==b&&null!==b||(b=a+".png"),void 0===d&&(d=null),void 0===e&&(e=null),void 0===f&&(f=c.Loader.TEXTURE_ATLAS_JSON_ARRAY),d||e||(d=f===c.Loader.TEXTURE_ATLAS_XML_STARLING?a+".xml":a+".json"),d)this.addToFileList("textureatlas",a,b,{atlasURL:d,format:f});else{switch(f){case c.Loader.TEXTURE_ATLAS_JSON_ARRAY:"string"==typeof e&&(e=JSON.parse(e));break;case c.Loader.TEXTURE_ATLAS_XML_STARLING:if("string"==typeof e){var g=this.parseXml(e);if(!g)throw new Error("Phaser.Loader. Invalid Texture Atlas XML given");e=g}}this.addToFileList("textureatlas",a,b,{atlasURL:null,atlasData:e,format:f})}return this},withSyncPoint:function(a,b){this._withSyncPointDepth++;try{a.call(b||this,this)}finally{this._withSyncPointDepth--}return this},addSyncPoint:function(a,b){var c=this.getAsset(a,b);return c&&(c.file.syncPoint=!0),this},removeFile:function(a,b){var c=this.getAsset(a,b);c&&(c.loaded||c.loading||this._fileList.splice(c.index,1))},removeAll:function(){this._fileList.length=0,this._flightQueue.length=0},start:function(){this.isLoading||(this.hasLoaded=!1,this.isLoading=!0,this.updateProgress(),this.processLoadQueue())},processLoadQueue:function(){if(!this.isLoading)return console.warn("Phaser.Loader - active loading canceled / reset"),void this.finishedLoading(!0);for(var a=0;a<this._flightQueue.length;a++){var b=this._flightQueue[a];(b.loaded||b.error)&&(this._flightQueue.splice(a,1),a--,b.loading=!1,b.requestUrl=null,b.requestObject=null,b.error&&this.onFileError.dispatch(b.key,b),"packfile"!==b.type?(this._loadedFileCount++,this.onFileComplete.dispatch(this.progress,b.key,!b.error,this._loadedFileCount,this._totalFileCount)):"packfile"===b.type&&b.error&&(this._loadedPackCount++,this.onPackComplete.dispatch(b.key,!b.error,this._loadedPackCount,this._totalPackCount)))}for(var d=!1,e=this.enableParallel?c.Math.clamp(this.maxParallelDownloads,1,12):1,a=this._processingHead;a<this._fileList.length;a++){var b=this._fileList[a];if("packfile"===b.type&&!b.error&&b.loaded&&a===this._processingHead&&(this.processPack(b),this._loadedPackCount++,this.onPackComplete.dispatch(b.key,!b.error,this._loadedPackCount,this._totalPackCount)),b.loaded||b.error?a===this._processingHead&&(this._processingHead=a+1):!b.loading&&this._flightQueue.length<e&&("packfile"!==b.type||b.data?d||(this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this._flightQueue.push(b),b.loading=!0,this.onFileStart.dispatch(this.progress,b.key,b.url),this.loadFile(b)):(this._flightQueue.push(b),b.loading=!0,this.loadFile(b))),!b.loaded&&b.syncPoint&&(d=!0),this._flightQueue.length>=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d<b.length;d++){var e=b[d];switch(e.type){case"image":this.image(e.key,e.url,e.overwrite);break;case"text":this.text(e.key,e.url,e.overwrite);break;case"json":this.json(e.key,e.url,e.overwrite);break;case"xml":this.xml(e.key,e.url,e.overwrite);break;case"script":this.script(e.key,e.url,e.callback,a.callbackContext||this);break;case"binary":this.binary(e.key,e.url,e.callback,a.callbackContext||this);break;case"spritesheet":this.spritesheet(e.key,e.url,e.frameWidth,e.frameHeight,e.frameMax,e.margin,e.spacing);break;case"video":this.video(e.key,e.urls);break;case"audio":this.audio(e.key,e.urls,e.autoDecode);break;case"audiosprite":this.audiosprite(e.key,e.urls,e.jsonURL,e.jsonData,e.autoDecode);break;case"tilemap":this.tilemap(e.key,e.url,e.data,c.Tilemap[e.format]);break;case"physics":this.physics(e.key,e.url,e.data,c.Loader[e.format]);break;case"bitmapFont":this.bitmapFont(e.key,e.textureURL,e.atlasURL,e.atlasData,e.xSpacing,e.ySpacing);break;case"atlasJSONArray":this.atlasJSONArray(e.key,e.textureURL,e.atlasURL,e.atlasData);break;case"atlasJSONHash":this.atlasJSONHash(e.key,e.textureURL,e.atlasURL,e.atlasData);break;case"atlasXML":this.atlasXML(e.key,e.textureURL,e.atlasURL,e.atlasData);break;case"atlas":this.atlas(e.key,e.textureURL,e.atlasURL,e.atlasData,c.Loader[e.format]);break;case"shader":this.shader(e.key,e.url,e.overwrite)}}},transformUrl:function(a,b){return!!a&&(a.match(/^(?:blob:|data:|http:\/\/|https:\/\/|\/\/)/)?a:this.baseURL+b.path+a)},loadFile:function(a){switch(a.type){case"packfile":this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.fileComplete);break;case"image":case"spritesheet":case"textureatlas":case"bitmapfont":this.loadImageTag(a);break;case"audio":a.url=this.getAudioURL(a.url),a.url?this.game.sound.usingWebAudio?this.xhrLoad(a,this.transformUrl(a.url,a),"arraybuffer",this.fileComplete):this.game.sound.usingAudioTag&&this.loadAudioTag(a):this.fileError(a,null,"No supported audio URL specified or device does not have audio playback support");break;case"video":a.url=this.getVideoURL(a.url),a.url?a.asBlob?this.xhrLoad(a,this.transformUrl(a.url,a),"blob",this.fileComplete):this.loadVideoTag(a):this.fileError(a,null,"No supported video URL specified or device does not have video playback support");break;case"json":this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.jsonLoadComplete);break;case"xml":this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.xmlLoadComplete);break;case"tilemap":a.format===c.Tilemap.TILED_JSON?this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.jsonLoadComplete):a.format===c.Tilemap.CSV?this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.csvLoadComplete):this.asyncComplete(a,"invalid Tilemap format: "+a.format);break;case"text":case"script":case"shader":case"physics":this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.fileComplete);break;case"binary":this.xhrLoad(a,this.transformUrl(a.url,a),"arraybuffer",this.fileComplete)}},loadImageTag:function(a){var b=this;a.data=new Image,a.data.name=a.key,this.crossOrigin&&(a.data.crossOrigin=this.crossOrigin),a.data.onload=function(){a.data.onload&&(a.data.onload=null,a.data.onerror=null,b.fileComplete(a))},a.data.onerror=function(){a.data.onload&&(a.data.onload=null,a.data.onerror=null,b.fileError(a))},a.data.src=this.transformUrl(a.url,a),a.data.complete&&a.data.width&&a.data.height&&(a.data.onload=null,a.data.onerror=null,this.fileComplete(a))},loadVideoTag:function(a){var b=this;a.data=document.createElement("video"),a.data.name=a.key,a.data.controls=!1,a.data.autoplay=!1;var d=function(){a.data.removeEventListener(a.loadEvent,d,!1),a.data.onerror=null,a.data.canplay=!0,c.GAMES[b.game.id].load.fileComplete(a)};a.data.onerror=function(){a.data.removeEventListener(a.loadEvent,d,!1),a.data.onerror=null,a.data.canplay=!1,b.fileError(a)},a.data.addEventListener(a.loadEvent,d,!1),a.data.src=this.transformUrl(a.url,a),a.data.load()},loadAudioTag:function(a){var b=this;if(this.game.sound.touchLocked)a.data=new Audio,a.data.name=a.key,a.data.preload="auto",a.data.src=this.transformUrl(a.url,a),this.fileComplete(a);else{a.data=new Audio,a.data.name=a.key;var c=function(){a.data.removeEventListener("canplaythrough",c,!1),a.data.onerror=null,b.fileComplete(a)};a.data.onerror=function(){a.data.removeEventListener("canplaythrough",c,!1),a.data.onerror=null,b.fileError(a)},a.data.preload="auto",a.data.src=this.transformUrl(a.url,a),a.data.addEventListener("canplaythrough",c,!1),a.data.load()}},xhrLoad:function(a,b,c,d,e){if(this.useXDomainRequest&&window.XDomainRequest)return void this.xhrLoadWithXDR(a,b,c,d,e);var f=new XMLHttpRequest;f.open("GET",b,!0),f.responseType=c,!1!==this.headers.requestedWith&&f.setRequestHeader("X-Requested-With",this.headers.requestedWith),this.headers[a.type]&&f.setRequestHeader("Accept",this.headers[a.type]),e=e||this.fileError;var g=this;f.onload=function(){try{return 4===f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4===f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b<a.length;b++){var c,d=a[b];if(d.uri){if(c=d.type,d=d.uri,this.game.device.canPlayVideo(c))return d}else{if(0===d.indexOf("blob:")||0===d.indexOf("data:"))return d;d.indexOf("?")>=0&&(d=d.substr(0,d.indexOf("?")));if(c=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1).toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b<a.length;b++){var c,d=a[b];if(d.uri){if(c=d.type,d=d.uri,this.game.device.canPlayAudio(c))return d}else{if(0===d.indexOf("blob:")||0===d.indexOf("data:"))return d;d.indexOf("?")>=0&&(d=d.substr(0,d.indexOf("?")));if(c=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1).toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format===c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format===c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format===c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!==c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(a){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=b.response}catch(b){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(a){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,
|
||
c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i<h.length;i++){var j=parseInt(h[i].getAttribute("id"),10);e.chars[j]={x:parseInt(h[i].getAttribute("x"),10),y:parseInt(h[i].getAttribute("y"),10),width:parseInt(h[i].getAttribute("width"),10),height:parseInt(h[i].getAttribute("height"),10),xOffset:parseInt(h[i].getAttribute("xoffset"),10),yOffset:parseInt(h[i].getAttribute("yoffset"),10),xAdvance:parseInt(h[i].getAttribute("xadvance"),10)+c,kerning:{}}}var k=a.getElementsByTagName("kerning");for(i=0;i<k.length;i++){var l=parseInt(k[i].getAttribute("first"),10),m=parseInt(k[i].getAttribute("second"),10),n=parseInt(k[i].getAttribute("amount"),10);e.chars[m].kerning[l]=n}return this.finalizeBitmapFont(b,e)},jsonBitmapFont:function(a,b,c,d){var e={font:a.font.info._face,size:parseInt(a.font.info._size,10),lineHeight:parseInt(a.font.common._lineHeight,10)+d,chars:{}};return a.font.chars.char.forEach(function(a){var b=parseInt(a._id,10);e.chars[b]={x:parseInt(a._x,10),y:parseInt(a._y,10),width:parseInt(a._width,10),height:parseInt(a._height,10),xOffset:parseInt(a._xoffset,10),yOffset:parseInt(a._yoffset,10),xAdvance:parseInt(a._xadvance,10)+c,kerning:{}}}),a.font.kernings&&a.font.kernings.kerning&&a.font.kernings.kerning.forEach(function(a){e.chars[a._second].kerning[a._first]=parseInt(a._amount,10)}),this.finalizeBitmapFont(b,e)},finalizeBitmapFont:function(a,b){return Object.keys(b.chars).forEach(function(d){var e=b.chars[d];e.texture=new PIXI.Texture(a,new c.Rectangle(e.x,e.y,e.width,e.height))}),b}},c.AudioSprite=function(a,b){this.game=a,this.key=b,this.config=this.game.cache.getJSON(b+"-audioatlas"),this.autoplayKey=null,this.autoplay=!1,this.sounds={};for(var c in this.config.spritemap){var d=this.config.spritemap[c],e=this.game.add.sound(this.key);e.addMarker(c,d.start,d.end-d.start,null,d.loop),this.sounds[c]=e}this.config.autoplay&&(this.autoplayKey=this.config.autoplay,this.play(this.autoplayKey),this.autoplay=this.sounds[this.autoplayKey])},c.AudioSprite.prototype={play:function(a,b){return void 0===b&&(b=1),this.sounds[a].play(a,null,b)},stop:function(a){if(a)this.sounds[a].stop();else for(var b in this.sounds)this.sounds[b].stop()},get:function(a){return this.sounds[a]}},c.AudioSprite.prototype.constructor=c.AudioSprite,c.Sound=function(a,b,d,e,f){void 0===d&&(d=1),void 0===e&&(e=!1),void 0===f&&(f=a.sound.connectToMaster),this.game=a,this.name=b,this.key=b,this.loop=e,this.markers={},this.context=null,this.autoplay=!1,this.totalDuration=0,this.startTime=0,this.currentTime=0,this.duration=0,this.durationMS=0,this.position=0,this.stopTime=0,this.paused=!1,this.pausedPosition=0,this.pausedTime=0,this.isPlaying=!1,this.currentMarker="",this.fadeTween=null,this.pendingPlayback=!1,this.override=!1,this.allowMultiple=!1,this.usingWebAudio=this.game.sound.usingWebAudio,this.usingAudioTag=this.game.sound.usingAudioTag,this.externalNode=null,this.masterGainNode=null,this.gainNode=null,this._sound=null,this.usingWebAudio?(this.context=this.game.sound.context,this.masterGainNode=this.game.sound.masterGain,void 0===this.context.createGain?this.gainNode=this.context.createGainNode():this.gainNode=this.context.createGain(),this.gainNode.gain.value=d*this.game.sound.volume,f&&this.gainNode.connect(this.masterGainNode)):this.usingAudioTag&&(this.game.cache.getSound(b)&&this.game.cache.isSoundReady(b)?(this._sound=this.game.cache.getSoundData(b),this.totalDuration=0,this._sound.duration&&(this.totalDuration=this._sound.duration)):this.game.cache.onSoundUnlock.add(this.soundHasUnlocked,this)),this.onDecoded=new c.Signal,this.onPlay=new c.Signal,this.onPause=new c.Signal,this.onResume=new c.Signal,this.onLoop=new c.Signal,this.onStop=new c.Signal,this.onMute=new c.Signal,this.onMarkerComplete=new c.Signal,this.onFadeComplete=new c.Signal,this._volume=d,this._buffer=null,this._muted=!1,this._tempMarker=0,this._tempPosition=0,this._tempVolume=0,this._tempPause=0,this._muteVolume=0,this._tempLoop=0,this._paused=!1,this._onDecodedEventDispatched=!1},c.Sound.prototype={soundHasUnlocked:function(a){a===this.key&&(this._sound=this.game.cache.getSoundData(this.key),this.totalDuration=this._sound.duration)},addMarker:function(a,b,c,d,e){void 0!==c&&null!==c||(c=1),void 0!==d&&null!==d||(d=1),void 0===e&&(e=!1),this.markers[a]={name:a,start:b,stop:b+c,volume:d,duration:c,durationMS:1e3*c,loop:e}},removeMarker:function(a){delete this.markers[a]},onEndedHandler:function(){this._sound.onended=null,this.isPlaying=!1,this.currentTime=this.durationMS,this.stop()},update:function(){if(!this.game.cache.checkSoundKey(this.key))return void this.destroy();this.isDecoded&&!this._onDecodedEventDispatched&&(this.onDecoded.dispatch(this),this._onDecodedEventDispatched=!0),this.pendingPlayback&&this.game.cache.isSoundReady(this.key)&&(this.pendingPlayback=!1,this.play(this._tempMarker,this._tempPosition,this._tempVolume,this._tempLoop)),this.isPlaying&&(this.currentTime=this.game.time.time-this.startTime,this.currentTime>=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),this.isPlaying=!1,""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time,this.isPlaying=!0):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),""===this.currentMarker&&(this.currentTime=0,this.startTime=this.game.time.time),this.isPlaying=!1,this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){return this.play(null,0,a,!0)},play:function(a,b,c,d,e){if(void 0!==a&&!1!==a&&null!==a||(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e)){if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this.gainNode&&this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1}var f=Object.keys(this.markers);if(""===a&&1===f.length&&(a=f[0]),""===a&&f.length>0)return this;if(""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.currentMarker=a,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,void 0!==c&&(this.volume=c),void 0!==d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=Math.max(0,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;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&!1===this.game.cache.getSound(this.key).isDecoding&&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.wechatMinigame||this.game.device.cocoonJS||4===this._sound.readyState)?(this.loop&&(this._sound.loop=!0),!this.loop&&""===a&&this.game.device.wechatMinigame&&this._sound.addEventListener("ended",this.onEndedHandler.bind(this)),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._muted||this.game.sound.mute?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this._tempPause=this._sound.currentTime,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=Math.max(0,this.position+this.pausedPosition/1e3);this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.currentTime=this._tempPause,this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this.gainNode&&this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var a=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,a)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},updateGlobalVolume:function(a){this.usingAudioTag&&this._sound&&(this._sound.volume=a*this._volume)},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){(a=a||!1)!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.game.device.wechatMinigame?this._sound.pause():this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.game.device.wechatMinigame&&this.isPlaying?this._sound.play():this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){if(this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted)return void(this._muteVolume=a);this._tempVolume=a,this._volume=a,this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this.muteOnPause=!0,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&!1===this.game.device.webAudio&&(this.channels=1),window.PhaserGlobal){if(!0===window.PhaserGlobal.disableAudio)return this.noAudio=!0,void(this.touchLocked=!1);if(!0===window.PhaserGlobal.disableWebAudio)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||!this.game.device.cocoonJS&&(this.game.device.chrome||this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&!0===window.PhaserGlobal.disableAudio||(this.game.device.iOSVersion>8||this.game.device.chromeVersion>=55?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0),"suspended"===this._unlockSource.context.state&&this._unlockSource.context.resume()}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;a<this._sounds.length;a++)this._sounds[a]&&this._sounds[a].stop()},pauseAll:function(){if(!this.noAudio)for(var a=0;a<this._sounds.length;a++)this._sounds[a]&&this._sounds[a].pause()},resumeAll:function(){if(!this.noAudio)for(var a=0;a<this._sounds.length;a++)this._sounds[a]&&this._sounds[a].resume()},decode:function(a,b){b=b||null;var c=this.game.cache.getSoundData(a);if(c&&!1===this.game.cache.isSoundDecoded(a)){this.game.cache.updateSound(a,"isDecoding",!0);var d=this;try{this.context.decodeAudioData(c,function(c){c&&(d.game.cache.decodedSound(a,c),d.onSoundDecode.dispatch(a,b))})}catch(a){}}},setDecodedCallback:function(a,b,d){"string"==typeof a&&(a=[a]),this._watchList.reset();for(var e=0;e<a.length;e++)a[e]instanceof c.Sound?this.game.cache.isSoundDecoded(a[e].key)||this._watchList.add(a[e].key):this.game.cache.isSoundDecoded(a[e])||this._watchList.add(a[e]);0===this._watchList.total?(this._watching=!1,b.call(d)):(this._watching=!0,this._watchCallback=b,this._watchContext=d)},update:function(){if(!this.noAudio){!this.touchLocked||null===this._unlockSource||this._unlockSource.playbackState!==this._unlockSource.PLAYING_STATE&&this._unlockSource.playbackState!==this._unlockSource.FINISHED_STATE||(this.touchLocked=!1,this._unlockSource=null);for(var a=0;a<this._sounds.length;a++)this._sounds[a].update();if(this._watching){for(var b=this._watchList.first;b;)this.game.cache.isSoundDecoded(b)&&this._watchList.remove(b),b=this._watchList.next;0===this._watchList.total&&(this._watching=!1,this._watchCallback.call(this._watchContext))}}},add:function(a,b,d,e){void 0===b&&(b=1),void 0===d&&(d=!1),void 0===e&&(e=this.connectToMaster);var f=new c.Sound(this.game,a,b,d,e);return this._sounds.push(f),f},addSprite:function(a){return new c.AudioSprite(this.game,a)},remove:function(a){for(var b=this._sounds.length;b--;)if(this._sounds[b]===a)return this._sounds[b].destroy(!1),this._sounds.splice(b,1),!0;return!1},removeByKey:function(a){for(var b=this._sounds.length,c=0;b--;)this._sounds[b].key===a&&(this._sounds[b].destroy(!1),this._sounds.splice(b,1),c++);return c},play:function(a,b,c){if(!this.noAudio){var d=this.add(a,b,c);return d.play(),d}},setMute:function(){if(!this._muted){this._muted=!0,this.usingWebAudio&&(this._muteVolume=this.masterGain.gain.value,this.masterGain.gain.value=0);for(var a=0;a<this._sounds.length;a++)this._sounds[a].usingAudioTag&&(this._sounds[a].mute=!0);this.onMute.dispatch()}},unsetMute:function(){if(this._muted&&!this._codeMuted){this._muted=!1,this.usingWebAudio&&(this.masterGain.gain.value=this._muteVolume);for(var a=0;a<this._sounds.length;a++)this._sounds[a].usingAudioTag&&(this._sounds[a].mute=!1);this.onUnMute.dispatch()}},destroy:function(){this.stopAll();for(var a=0;a<this._sounds.length;a++)this._sounds[a]&&this._sounds[a].destroy();this._sounds=[],this.onSoundDecode.dispose(),this.context&&(window.PhaserGlobal?window.PhaserGlobal.audioContext=this.context:this.context.close&&this.context.close())}},c.SoundManager.prototype.constructor=c.SoundManager,Object.defineProperty(c.SoundManager.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||!1){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.SoundManager.prototype,"volume",{get:function(){return this._volume},set:function(a){if(a<0?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b<this._sounds.length;b++)this._sounds[b].usingAudioTag&&this._sounds[b].updateGlobalVolume(a);this.onVolumeChange.dispatch(a)}}}),c.ScaleManager=function(a,b,d){this.game=a,this.dom=c.DOM,this.grid=null,this.width=0,this.height=0,this.minWidth=null,this.maxWidth=null,this.minHeight=null,this.maxHeight=null,this.offset=new c.Point,this.forceLandscape=!1,this.forcePortrait=!1,this.incorrectOrientation=!1,this._pageAlignHorizontally=!1,this._pageAlignVertically=!1,this.onOrientationChange=new c.Signal,this.enterIncorrectOrientation=new c.Signal,this.leaveIncorrectOrientation=new c.Signal,this.hasPhaserSetFullScreen=!1,this.fullScreenTarget=null,this._createdFullScreenTarget=null,this.onFullScreenInit=new c.Signal,this.onFullScreenChange=new c.Signal,this.onFullScreenError=new c.Signal,this.screenOrientation=this.dom.getScreenOrientation(),this.scaleFactor=new c.Point(1,1),this.scaleFactorInversed=new c.Point(1,1),this.margin={left:0,top:0,right:0,bottom:0,x:0,y:0},this.bounds=new c.Rectangle,this.aspectRatio=0,this.sourceAspectRatio=0,this.event=null,this.windowConstraints={right:"layout",bottom:""},this.compatibility={supportsFullScreen:!1,orientationFallback:null,noMargins:!1,scrollTo:null,forceMinimumDocumentHeight:!1,canExpandParent:!0,clickTrampoline:""},this._scaleMode=c.ScaleManager.NO_SCALE,this._fullScreenScaleMode=c.ScaleManager.NO_SCALE,this.parentIsWindow=!1,this.parentNode=null,this.parentScaleFactor=new c.Point(1,1),this.trackParentInterval=2e3,this.onSizeChange=new c.Signal,this.onResize=null,this.onResizeContext=null,this._pendingScaleMode=null,this._fullScreenRestore=null,this._gameSize=new c.Rectangle,this._userScaleFactor=new c.Point(1,1),this._userScaleTrim=new c.Point(0,0),this._lastUpdate=0,this._updateThrottle=0,this._updateThrottleReset=100,this._parentBounds=new c.Rectangle,this._tempBounds=new c.Rectangle,this._lastReportedCanvasSize=new c.Rectangle,this._lastReportedGameSize=new c.Rectangle,this._booted=!1,a.config&&this.parseConfig(a.config),this.setupScale(b,d)},c.ScaleManager.EXACT_FIT=0,c.ScaleManager.NO_SCALE=1,c.ScaleManager.SHOW_ALL=2,c.ScaleManager.RESIZE=3,c.ScaleManager.USER_SCALE=4,c.ScaleManager.prototype={boot:function(){var a=this.compatibility;a.supportsFullScreen=this.game.device.fullscreen&&!this.game.device.cocoonJS,this.game.device.iPad||this.game.device.webApp||this.game.device.desktop||(this.game.device.android&&!this.game.device.chrome?a.scrollTo=new c.Point(0,1):a.scrollTo=new c.Point(0,0)),this.game.device.desktop?(a.orientationFallback="screen",a.clickTrampoline="when-not-mouse"):(a.orientationFallback="",a.clickTrampoline="");var b=this;this._orientationChange=function(a){return b.orientationChange(a)},this._windowResize=function(a){return b.windowResize(a)},window.addEventListener("orientationchange",this._orientationChange,!1),window.addEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(this._fullScreenChange=function(a){return b.fullScreenChange(a)},this._fullScreenError=function(a){return b.fullScreenError(a)},document.addEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.addEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.addEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.addEventListener("fullscreenchange",this._fullScreenChange,!1),document.addEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.addEventListener("mozfullscreenerror",this._fullScreenError,!1),document.addEventListener("MSFullscreenError",this._fullScreenError,!1),document.addEventListener("fullscreenerror",this._fullScreenError,!1)),this.game.onResume.add(this._gameResumed,this),this.dom.getOffset(this.game.canvas,this.offset),this.bounds.setTo(this.offset.x,this.offset.y,this.width,this.height),this.setGameSize(this.game.width,this.game.height),this.screenOrientation=this.dom.getScreenOrientation(this.compatibility.orientationFallback),c.FlexGrid&&(this.grid=new c.FlexGrid(this,this.width,this.height)),this._booted=!0,null!==this._pendingScaleMode&&(this.scaleMode=this._pendingScaleMode,this._pendingScaleMode=null)},parseConfig:function(a){void 0!==a.scaleMode&&(this._booted?this.scaleMode=a.scaleMode:this._pendingScaleMode=a.scaleMode),void 0!==a.fullScreenScaleMode&&(this.fullScreenScaleMode=a.fullScreenScaleMode),a.fullScreenTarget&&(this.fullScreenTarget=a.fullScreenTarget)},setupScale:function(a,b){var d,e=new c.Rectangle;""!==this.game.parent&&("string"==typeof this.game.parent?d=document.getElementById(this.game.parent):this.game.parent&&1===this.game.parent.nodeType&&(d=this.game.parent)),d?(this.parentNode=d,this.parentIsWindow=!1,this.getParentBounds(this._parentBounds),e.width=this._parentBounds.width,e.height=this._parentBounds.height,this.offset.set(this._parentBounds.x,this._parentBounds.y)):(this.parentNode=null,this.parentIsWindow=!0,e.width=this.dom.visualBounds.width,e.height=this.dom.visualBounds.height,this.offset.set(0,0));var f=0,g=0;"number"==typeof a?f=a:(this.parentScaleFactor.x=parseInt(a,10)/100,f=e.width*this.parentScaleFactor.x),"number"==typeof b?g=b:(this.parentScaleFactor.y=parseInt(b,10)/100,g=e.height*this.parentScaleFactor.y),f=Math.floor(f),g=Math.floor(g),this._gameSize.setTo(0,0,f,g),this.updateDimensions(f,g,!1)},_gameResumed:function(){this.queueUpdate(!0)},setGameSize:function(a,b){this._gameSize.setTo(0,0,a,b),this.currentScaleMode!==c.ScaleManager.RESIZE&&this.updateDimensions(a,b,!0),this.queueUpdate(!0)},setUserScale:function(a,b,c,d){this._userScaleFactor.setTo(a,b),this._userScaleTrim.setTo(0|c,0|d),this.queueUpdate(!0)},setResizeCallback:function(a,b){this.onResize=a,this.onResizeContext=b},signalSizeChange:function(){if(!c.Rectangle.sameDimensions(this,this._lastReportedCanvasSize)||!c.Rectangle.sameDimensions(this.game,this._lastReportedGameSize)){var a=this.width,b=this.height;this._lastReportedCanvasSize.setTo(0,0,a,b),this._lastReportedGameSize.setTo(0,0,this.game.width,this.game.height),this.grid&&this.grid.onResize(a,b),this.onSizeChange.dispatch(this,a,b),this.currentScaleMode===c.ScaleManager.RESIZE&&(this.game.state.resize(a,b),this.game.load.resize(a,b))}},setMinMax:function(a,b,c,d){this.minWidth=a,this.minHeight=b,void 0!==c&&(this.maxWidth=c),void 0!==d&&(this.maxHeight=d)},preUpdate:function(){if(!(this.game.time.time<this._lastUpdate+this._updateThrottle)){var a=this._updateThrottle;this._updateThrottleReset=a>=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle<a&&(h=Math.min(a,this._updateThrottleReset)),this._updateThrottle=c.Math.clamp(h,25,this.trackParentInterval),this._lastUpdate=this.game.time.time}},pauseUpdate:function(){this.preUpdate(),this._updateThrottle=this.trackParentInterval},updateDimensions:function(a,b,c){this.width=a*this.parentScaleFactor.x,this.height=b*this.parentScaleFactor.y,this.game.width=this.width,this.game.height=this.height,this.sourceAspectRatio=this.width/this.height,this.updateScalingAndBounds(),c&&(this.game.renderer.resize(this.width,this.height),this.game.camera.setSize(this.width,this.height),this.game.world.resize(this.width,this.height))},updateScalingAndBounds:function(){this.scaleFactor.x=this.game.width/this.width,this.scaleFactor.y=this.game.height/this.height,this.scaleFactorInversed.x=this.width/this.game.width,this.scaleFactorInversed.y=this.height/this.game.height,this.aspectRatio=this.width/this.height,this.game.canvas&&this.dom.getOffset(this.game.canvas,this.offset),this.bounds.setTo(this.offset.x,this.offset.y,this.width,this.height),this.game.input&&this.game.input.scale&&this.game.input.scale.setTo(this.scaleFactor.x,this.scaleFactor.y)},forceOrientation:function(a,b){void 0===b&&(b=!1),this.forceLandscape=a,this.forcePortrait=b,this.queueUpdate(!0)},classifyOrientation:function(a){return"portrait-primary"===a||"portrait-secondary"===a?"portrait":"landscape-primary"===a||"landscape-secondary"===a?"landscape":null},updateOrientationState:function(){var a=this.screenOrientation,b=this.incorrectOrientation;this.screenOrientation=this.dom.getScreenOrientation(this.compatibility.orientationFallback),this.incorrectOrientation=this.forceLandscape&&!this.isLandscape||this.forcePortrait&&!this.isPortrait;var c=a!==this.screenOrientation,d=b!==this.incorrectOrientation;return d&&(this.incorrectOrientation?this.enterIncorrectOrientation.dispatch():this.leaveIncorrectOrientation.dispatch()),(c||d)&&this.onOrientationChange.dispatch(this,a,b),c||d},orientationChange:function(a){this.event=a,this.queueUpdate(!0)},windowResize:function(a){this.event=a,this.queueUpdate(!0)},scrollTop:function(){var a=this.compatibility.scrollTo;a&&window.scrollTo(a.x,a.y)},refresh:function(){this.scrollTop(),this.queueUpdate(!0)},updateLayout:function(){var a=this.currentScaleMode;if(a===c.ScaleManager.RESIZE)return void this.reflowGame();if(this.scrollTop(),this.compatibility.forceMinimumDocumentHeight&&(document.documentElement.style.minHeight=window.innerHeight+"px"),this.incorrectOrientation?this.setMaximum():a===c.ScaleManager.EXACT_FIT?this.setExactFit():a===c.ScaleManager.SHOW_ALL?(this.setShowAll(!0),this.resetCanvas(),this.setShowAll()):a===c.ScaleManager.NO_SCALE?(this.width=this.game.width,this.height=this.game.height):a===c.ScaleManager.USER_SCALE&&(this.width=this.game.width*this._userScaleFactor.x-this._userScaleTrim.x,this.height=this.game.height*this._userScaleFactor.y-this._userScaleTrim.y),!this.compatibility.canExpandParent&&(a===c.ScaleManager.SHOW_ALL||a===c.ScaleManager.USER_SCALE)){var b=this.getParentBounds(this._tempBounds);this.width=Math.min(this.width,b.width),this.height=Math.min(this.height,b.height)}this.width=0|this.width,this.height=0|this.height,this.reflowCanvas()},getParentBounds:function(a){var b=a||new c.Rectangle,d=this.boundingParent,e=this.dom.visualBounds,f=this.dom.layoutBounds;if(d){var g=d.getBoundingClientRect(),h=d.offsetParent?d.offsetParent.getBoundingClientRect():d.getBoundingClientRect();b.setTo(g.left-h.left,g.top-h.top,g.width,g.height);var i=this.windowConstraints;if(i.right){var j="layout"===i.right?f:e;b.right=Math.min(b.right,j.width)}if(i.bottom){var j="layout"===i.bottom?f:e;b.bottom=Math.min(b.bottom,j.height)}}else b.setTo(0,0,e.width,e.height);return b.setTo(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height)),b},alignCanvas:function(a,b){var c=this.getParentBounds(this._tempBounds),d=this.game.canvas,e=this.margin;if(a){e.left=e.right=0;var f=d.getBoundingClientRect();if(this.width<c.width&&!this.incorrectOrientation){var g=f.left-c.x,h=c.width/2-this.width/2;h=Math.max(h,0);var i=h-g;e.left=Math.round(i)}d.style.marginLeft=e.left+"px",0!==e.left&&(e.right=-(c.width-f.width-e.left),d.style.marginRight=e.right+"px")}if(b){e.top=e.bottom=0;var f=d.getBoundingClientRect();if(this.height<c.height&&!this.incorrectOrientation){var g=f.top-c.y,h=c.height/2-this.height/2;h=Math.max(h,0);var i=h-g;e.top=Math.round(i)}d.style.marginTop=e.top+"px",0!==e.top&&(e.bottom=-(c.height-f.height-e.top),d.style.marginBottom=e.bottom+"px")}e.x=e.left,e.y=e.top},reflowGame:function(){this.resetCanvas("","");var a=this.getParentBounds(this._tempBounds);this.updateDimensions(a.width,a.height,!0)},reflowCanvas:function(){this.incorrectOrientation||(this.width=c.Math.clamp(this.width,this.minWidth||0,this.maxWidth||this.width),this.height=c.Math.clamp(this.height,this.minHeight||0,this.maxHeight||this.height)),this.resetCanvas(),this.compatibility.noMargins||(this.isFullScreen&&this._createdFullScreenTarget?this.alignCanvas(!0,!0):this.alignCanvas(this.pageAlignHorizontally,this.pageAlignVertically)),this.updateScalingAndBounds()},resetCanvas:function(a,b){void 0===a&&(a=this.width+"px"),void 0===b&&(b=this.height+"px");var c=this.game.canvas;this.compatibility.noMargins||(c.style.marginLeft="",c.style.marginTop="",c.style.marginRight="",c.style.marginBottom=""),c.style.width=a,c.style.height=b},queueUpdate:function(a){a&&(this._parentBounds.width=0,this._parentBounds.height=0),this._updateThrottle=this._updateThrottleReset},reset:function(a){a&&this.grid&&this.grid.reset()},setMaximum:function(){this.width=this.dom.visualBounds.width,this.height=this.dom.visualBounds.height},setShowAll:function(a){var b,c=this.getParentBounds(this._tempBounds),d=c.width,e=c.height
|
||
;b=a?Math.max(e/this.game.height,d/this.game.width):Math.min(e/this.game.height,d/this.game.width),this.width=Math.round(this.game.width*b),this.height=Math.round(this.game.height*b)},setExactFit:function(){var a=this.getParentBounds(this._tempBounds);this.width=a.width,this.height=a.height,this.isFullScreen||(this.maxWidth&&(this.width=Math.min(this.width,this.maxWidth)),this.maxHeight&&(this.height=Math.min(this.height,this.maxHeight)))},createFullScreenTarget:function(){var a=document.createElement("div");return a.style.margin="0",a.style.padding="0",a.style.background="#000",a},startFullScreen:function(a,b){if(this.isFullScreen)return!1;if(!this.compatibility.supportsFullScreen){var d=this;return void setTimeout(function(){d.fullScreenError()},10)}if("when-not-mouse"===this.compatibility.clickTrampoline){var e=this.game.input;if(e.activePointer&&e.activePointer!==e.mousePointer&&(b||!1!==b))return void e.activePointer.addClickTrampoline("startFullScreen",this.startFullScreen,this,[a,!1])}void 0!==a&&this.game.renderType===c.CANVAS&&(this.game.stage.smoothed=a);var f=this.fullScreenTarget;f||(this.cleanupCreatedTarget(),this._createdFullScreenTarget=this.createFullScreenTarget(),f=this._createdFullScreenTarget);var g={targetElement:f};if(this.hasPhaserSetFullScreen=!0,this.onFullScreenInit.dispatch(this,g),this._createdFullScreenTarget){var h=this.game.canvas;h.parentNode.insertBefore(f,h),f.appendChild(h)}return this.game.device.fullscreenKeyboard?f[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT):f[this.game.device.requestFullscreen](),!0},stopFullScreen:function(){return!(!this.isFullScreen||!this.compatibility.supportsFullScreen)&&(this.hasPhaserSetFullScreen=!1,document[this.game.device.cancelFullscreen](),!0)},cleanupCreatedTarget:function(){var a=this._createdFullScreenTarget;if(a&&a.parentNode){var b=a.parentNode;b.insertBefore(this.game.canvas,a),b.removeChild(a)}this._createdFullScreenTarget=null},prepScreenMode:function(a){var b=!!this._createdFullScreenTarget,d=this._createdFullScreenTarget||this.fullScreenTarget;a?(b||this.fullScreenScaleMode===c.ScaleManager.EXACT_FIT)&&d!==this.game.canvas&&(this._fullScreenRestore={targetWidth:d.style.width,targetHeight:d.style.height},d.style.width="100%",d.style.height="100%"):(this._fullScreenRestore&&(d.style.width=this._fullScreenRestore.targetWidth,d.style.height=this._fullScreenRestore.targetHeight,this._fullScreenRestore=null),this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.resetCanvas())},fullScreenChange:function(a){this.event=a,this.isFullScreen?(this.prepScreenMode(!0),this.updateLayout(),this.queueUpdate(!0)):(this.prepScreenMode(!1),this.cleanupCreatedTarget(),this.updateLayout(),this.queueUpdate(!0)),this.onFullScreenChange.dispatch(this,this.width,this.height)},fullScreenError:function(a){this.event=a,this.cleanupCreatedTarget(),console.warn("Phaser.ScaleManager: requestFullscreen failed or device does not support the Fullscreen API"),this.onFullScreenError.dispatch(this)},scaleSprite:function(a,b,c,d){if(void 0===b&&(b=this.width),void 0===c&&(c=this.height),void 0===d&&(d=!1),!a||!a.scale)return a;if(a.scale.x=1,a.scale.y=1,a.width<=0||a.height<=0||b<=0||c<=0)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){return this.parentIsWindow||this.isFullScreen&&this.hasPhaserSetFullScreen&&!this._createdFullScreenTarget?null:this.game.canvas&&this.game.canvas.parentNode||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=new c.BitmapData(this.game,"__DEBUG",this.game.width,this.game.height,!0),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.game.scale.onSizeChange.add(this.resize,this),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},resize:function(a,b,c){this.bmd.resize(b,c),this.canvas.width=b,this.canvas.height=c},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b<arguments.length;b++)this.renderShadow&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(arguments[b],a+1,this.currentY+1),this.context.fillStyle=this.currentColor),this.context.fillText(arguments[b],a,this.currentY),a+=this.columnWidth;this.currentY+=this.lineHeight},soundInfo:function(a,b,c,d){this.start(b,c,d),this.line("Sound: "+a.key+" Locked: "+a.game.sound.touchLocked),this.line("Is Ready?: "+this.game.cache.isSoundReady(a.key)+" Pending Playback: "+a.pendingPlayback),this.line("Decoded: "+a.isDecoded+" Decoding: "+a.isDecoding),this.line("Total Duration: "+a.totalDuration+" Playing: "+a.isPlaying),this.line("Time: "+a.currentTime),this.line("Volume: "+a.volume+" Muted: "+a.mute),this.line("WebAudio: "+a.usingWebAudio+" Audio: "+a.usingAudioTag),""!==a.currentMarker&&(this.line("Marker: "+a.currentMarker+" Duration: "+a.duration+" (ms: "+a.durationMS+")"),this.line("Start: "+a.markers[a.currentMarker].start+" Stop: "+a.markers[a.currentMarker].stop),this.line("Position: "+a.position)),this.stop()},cameraInfo:function(a,b,c,d){this.start(b,c,d),this.line("Camera ("+a.width+" x "+a.height+")"),this.line("X: "+a.x+" Y: "+a.y),a.bounds&&this.line("Bounds x: "+a.bounds.x+" Y: "+a.bounds.y+" w: "+a.bounds.width+" h: "+a.bounds.height),this.line("View x: "+a.view.x+" Y: "+a.view.y+" w: "+a.view.width+" h: "+a.view.height),this.line("Total in view: "+a.totalInView),this.stop()},timer:function(a,b,c,d){this.start(b,c,d),this.line("Timer (running: "+a.running+" expired: "+a.expired+")"),this.line("Next Tick: "+a.next+" Duration: "+a.duration),this.line("Paused: "+a.paused+" Length: "+a.length),this.stop()},pointer:function(a,b,c,d,e){null!=a&&(void 0===b&&(b=!1),c=c||"rgba(0,255,0,0.5)",d=d||"rgba(255,0,0,0.5)",!0===b&&!0===a.isUp||(this.start(a.x,a.y-100,e),this.context.beginPath(),this.context.arc(a.x,a.y,a.circle.radius,0,2*Math.PI),a.active?this.context.fillStyle=c:this.context.fillStyle=d,this.context.fill(),this.context.closePath(),this.context.beginPath(),this.context.moveTo(a.positionDown.x,a.positionDown.y),this.context.lineTo(a.position.x,a.position.y),this.context.lineWidth=2,this.context.stroke(),this.context.closePath(),this.line("ID: "+a.id+" Active: "+a.active),this.line("World X: "+a.worldX+" World Y: "+a.worldY),this.line("Screen X: "+a.x+" Screen Y: "+a.y+" In: "+a.withinGame),this.line("Duration: "+a.duration+" ms"),this.line("is Down: "+a.isDown+" is Up: "+a.isUp),this.stop()))},spriteInputInfo:function(a,b,c,d){this.start(b,c,d),this.line("Sprite Input: ("+a.width+" x "+a.height+")"),this.line("x: "+a.input.pointerX().toFixed(1)+" y: "+a.input.pointerY().toFixed(1)),this.line("over: "+a.input.pointerOver()+" duration: "+a.input.overDuration().toFixed(0)),this.line("down: "+a.input.pointerDown()+" duration: "+a.input.downDuration().toFixed(0)),this.line("just over: "+a.input.justOver()+" just out: "+a.input.justOut()),this.stop()},key:function(a,b,c,d){this.start(b,c,d,150),this.line("Key:",a.keyCode,"isDown:",a.isDown),this.line("justDown:",a.justDown,"justUp:",a.justUp),this.line("Time Down:",a.timeDown.toFixed(0),"duration:",a.duration.toFixed(0)),this.stop()},inputInfo:function(a,b,c){this.start(a,b,c),this.line("Input"),this.line("X: "+this.game.input.x+" Y: "+this.game.input.y),this.line("World X: "+this.game.input.worldX+" World Y: "+this.game.input.worldY),this.line("Scale X: "+this.game.input.scale.x.toFixed(1)+" Scale Y: "+this.game.input.scale.x.toFixed(1)),this.line("Screen X: "+this.game.input.activePointer.screenX+" Screen Y: "+this.game.input.activePointer.screenY),this.stop()},spriteBounds:function(a,b,c){var d=a.getBounds();d.x+=this.game.camera.x,d.y+=this.game.camera.y,this.rectangle(d,b,c)},ropeSegments:function(a,b,c){var d=this;a.segments.forEach(function(a){d.rectangle(a,b,c)},this)},spriteInfo:function(a,b,c,d){this.start(b,c,d),this.line("Sprite: ("+a.width+" x "+a.height+") anchor: "+a.anchor.x+" x "+a.anchor.y),this.line("x: "+a.x.toFixed(1)+" y: "+a.y.toFixed(1)),this.line("angle: "+a.angle.toFixed(1)+" rotation: "+a.rotation.toFixed(1)),this.line("visible: "+a.visible+" in camera: "+a.inCamera),this.line("bounds x: "+a._bounds.x.toFixed(1)+" y: "+a._bounds.y.toFixed(1)+" w: "+a._bounds.width.toFixed(1)+" h: "+a._bounds.height.toFixed(1)),this.stop()},spriteCoords:function(a,b,c,d){this.start(b,c,d,100),a.name&&this.line(a.name),this.line("x:",a.x.toFixed(2),"y:",a.y.toFixed(2)),this.line("pos x:",a.position.x.toFixed(2),"pos y:",a.position.y.toFixed(2)),this.line("world x:",a.world.x.toFixed(2),"world y:",a.world.y.toFixed(2)),this.stop()},lineInfo:function(a,b,c,d){this.start(b,c,d,80),this.line("start.x:",a.start.x.toFixed(2),"start.y:",a.start.y.toFixed(2)),this.line("end.x:",a.end.x.toFixed(2),"end.y:",a.end.y.toFixed(2)),this.line("length:",a.length.toFixed(2),"angle:",a.angle),this.stop()},pixel:function(a,b,c,d){d=d||2,this.start(),this.context.fillStyle=c,this.context.fillRect(a,b,d,d),this.stop()},geom:function(a,b,d,e){void 0===d&&(d=!0),void 0===e&&(e=0),b=b||"rgba(0,255,0,0.4)",this.start(),this.context.fillStyle=b,this.context.strokeStyle=b,a instanceof c.Rectangle||1===e?d?this.context.fillRect(a.x-this.game.camera.x,a.y-this.game.camera.y,a.width,a.height):this.context.strokeRect(a.x-this.game.camera.x,a.y-this.game.camera.y,a.width,a.height):a instanceof c.Circle||2===e?(this.context.beginPath(),this.context.arc(a.x-this.game.camera.x,a.y-this.game.camera.y,a.radius,0,2*Math.PI,!1),this.context.closePath(),d?this.context.fill():this.context.stroke()):a instanceof c.Point||3===e?this.context.fillRect(a.x-this.game.camera.x,a.y-this.game.camera.y,4,4):(a instanceof c.Line||4===e)&&(this.context.lineWidth=1,this.context.beginPath(),this.context.moveTo(a.start.x+.5-this.game.camera.x,a.start.y+.5-this.game.camera.y),this.context.lineTo(a.end.x+.5-this.game.camera.x,a.end.y+.5-this.game.camera.y),this.context.closePath(),this.context.stroke()),this.stop()},rectangle:function(a,b,c){void 0===c&&(c=!0),b=b||"rgba(0, 255, 0, 0.4)",this.start(),c?(this.context.fillStyle=b,this.context.fillRect(a.x-this.game.camera.x,a.y-this.game.camera.y,a.width,a.height)):(this.context.strokeStyle=b,this.context.strokeRect(a.x-this.game.camera.x,a.y-this.game.camera.y,a.width,a.height)),this.stop()},text:function(a,b,c,d,e){d=d||"rgb(255,255,255)",e=e||"16px Courier",this.start(),this.context.font=e,this.renderShadow&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=d,this.context.fillText(a,b,c),this.stop()},quadTree:function(a,b){b=b||"rgba(255,0,0,0.3)",this.start();var c=a.bounds;if(0===a.nodes.length){this.context.strokeStyle=b,this.context.strokeRect(c.x,c.y,c.width,c.height),this.text("size: "+a.objects.length,c.x+4,c.y+16,"rgb(0,200,0)","12px Courier"),this.context.strokeStyle="rgb(0,255,0)";for(var d=0;d<a.objects.length;d++)this.context.strokeRect(a.objects[d].x,a.objects[d].y,a.objects[d].width,a.objects[d].height)}else for(var d=0;d<a.nodes.length;d++)this.quadTree(a.nodes[d]);this.stop()},body:function(a,b,d){a.body&&(this.start(),a.body.type===c.Physics.ARCADE?c.Physics.Arcade.Body.render(this.context,a.body,b,d):a.body.type===c.Physics.NINJA?c.Physics.Ninja.Body.render(this.context,a.body,b,d):a.body.type===c.Physics.BOX2D&&c.Physics.Box2D.renderBody(this.context,a.body,b),this.stop())},bodyInfo:function(a,b,d,e){a.body&&(this.start(b,d,e,210),a.body.type===c.Physics.ARCADE?c.Physics.Arcade.Body.renderBodyInfo(this,a.body):a.body.type===c.Physics.BOX2D&&this.game.physics.box2d.renderBodyInfo(this,a.body),this.stop())},box2dWorld:function(){this.start(),this.context.translate(-this.game.camera.view.x,-this.game.camera.view.y,0),this.game.physics.box2d.renderDebugDraw(this.context),this.stop()},box2dBody:function(a,b){this.start(),c.Physics.Box2D.renderBody(this.context,a,b),this.stop()},displayList:function(a){if(void 0===a&&(a=this.game.world),a.hasOwnProperty("renderOrderID")?console.log("["+a.renderOrderID+"]",a):console.log("[]",a),a.children&&a.children.length>0)for(var b=0;b<a.children.length;b++)this.game.debug.displayList(a.children[b])},destroy:function(){PIXI.CanvasPool.remove(this)}},c.Utils.Debug.prototype.constructor=c.Utils.Debug,c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===b&&(b=0),!(!(a=a&&!a.nodeType?a[0]:a)||1!==a.nodeType)&&this.calibrate(a.getBoundingClientRect(),b)},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};if(Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0}),a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight){var e=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},f=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:e}),Object.defineProperty(c.DOM.visualBounds,"height",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:e}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:f})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return a<b?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return a<b?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);if(b>-1)return this.list.splice(b,1),a},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position<this.list.length?(this.position++,this.list[this.position]):null}}),c.ArraySet.prototype.constructor=c.ArraySet,c.ArrayUtils={getRandomItem:function(a,b,c){if(null===a)return null;void 0===b&&(b=0),void 0===c&&(c=a.length);var d=b+Math.floor(Math.random()*c);return void 0===a[d]?null:a[d]},removeRandomItem:function(a,b,c){if(null==a)return null;void 0===b&&(b=0),void 0===c&&(c=a.length);var d=b+Math.floor(Math.random()*c);if(d<a.length){var e=a.splice(d,1);return void 0===e[0]?null:e[0]}return null},shuffle:function(a){for(var b=a.length-1;b>0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;e<c;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d<a.length;d++)a[d].reverse();a=a.reverse()}return a},findClosest:function(a,b){if(!b.length)return NaN;if(1===b.length||a<b[0])return b[0];for(var c=1;b[c]<a;)c++;var d=b[c-1],e=c<b.length?b[c]:Number.POSITIVE_INFINITY;return e-a<=a-d?e:d},rotateRight:function(a){var b=a.pop();return a.unshift(b),b},rotateLeft:function(a){var b=a.shift();return a.push(b),b},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;d<=b;d++)c.push(d);return c},numberArrayStep:function(a,b,d){void 0!==a&&null!==a||(a=0),void 0!==b&&null!==b||(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;g<f;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){if(1===this.total)return this.reset(),void(a.next=a.prev=null);a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),this.total--},callAll:function(a){if(this.first&&this.last){var b=this.first;do{b&&b[a]&&b[a].call(b),b=b.next}while(b!==this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;h<b.length;h++)for(var i=b[h],j=0;j<i.length;j++){var k=i[j];"."!==k&&" "!==k&&(this.ctx.fillStyle=this.palettes[e][k],this.ctx.fillRect(j*c,h*d,c,d))}return this.bmd.generateTexture(a)},grid:function(a,b,c,d,e,f){null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(b,c),this.ctx.fillStyle=f;for(var g=0;g<c;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;h<b;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),void 0!==d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),void 0!==a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),void 0!==a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),void 0!==a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return void 0!==b&&null!==b||(b=c.Color.createColor()),void 0!==d&&null!==d||(d=!1),void 0!==e&&null!==e||(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},toABGR:function(a,b,c,d){return(d<<24|c<<16|b<<8|a)>>>0},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(b<d?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=d<.5?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,
|
||
g!==f&&(g===a?e.h=(b-d)/h+(b<d?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return c<0&&(c+=1),c>1&&(c-=1),c<1/6?a+6*(b-a)*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);if(b)return c.Color.getColor32(b.a,b.r,b.g,b.b)},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1===b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;e<=359;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;e<=359;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return b<128?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return b<128?2*(64+(a>>1))*(b/255):255-2*(255-(64+(a>>1)))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return b<128?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return b<128?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return b<128?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&!0!==this.config.arcade||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&!0===this.config.ninja&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&!0===this.config.p2&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&!0===this.config.box2d&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&!0===this.config.matter&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:c+e<0?c+=e:c=0),c>f?c=f:c<-f&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f<b.length;f++)this.collideHandler(a,b[f],c,d,e,!0);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0;f<a.length;f++)this.collideHandler(a[f],b,c,d,e,!0);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0;f<a.length;f++)for(var g=0;g<b.length;g++)this.collideHandler(a[f],b[g],c,d,e,!0);else this.collideHandler(a,b,c,d,e,!0);return this._total>0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f<b.length;f++)this.collideHandler(a,b[f],c,d,e,!1);else if(Array.isArray(a)&&!Array.isArray(b))for(var f=0;f<a.length;f++)this.collideHandler(a[f],b,c,d,e,!1);else if(Array.isArray(a)&&Array.isArray(b))for(var f=0;f<a.length;f++)for(var g=0;g<b.length;g++)this.collideHandler(a[f],b[g],c,d,e,!1);else this.collideHandler(a,b,c,d,e,!1);return this._total>0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){if(void 0===b&&a.physicsType===c.GROUP)return this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g);a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g)))},collideSpriteVsSprite:function(a,b,c,d,e,f){return!(!a.body||!b.body)&&(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0)},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body)if(this.skipQuadTree||a.body.skipQuadTree)for(var h={},i=0;i<b.hash.length;i++){var j=b.hash[i];if(j&&j.exists&&j.body){if(h=j.body.getBounds(h),this.sortDirection===c.Physics.Arcade.LEFT_RIGHT){if(a.body.right<h.x)break;if(h.right<a.body.x)continue}else if(this.sortDirection===c.Physics.Arcade.RIGHT_LEFT){if(a.body.x>h.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottom<h.y)break;if(h.bottom<a.body.y)continue}else if(this.sortDirection===c.Physics.Arcade.BOTTOM_TOP){if(a.body.y>h.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,j,d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var k=this.quadTree.retrieve(a),i=0;i<k.length;i++)this.separate(a.body,k[i],e,f,g)&&(d&&d.call(f,a,k[i].sprite),this._total++)}},collideGroupVsSelf:function(a,b,d,e,f){if(0!==a.length)for(var g=0;g<a.hash.length;g++){var h={},i=a.hash[g];if(i&&i.exists&&i.body){h=i.body.getBounds(h);for(var j=g+1;j<a.hash.length;j++){var k={},l=a.hash[j];if(l&&l.exists&&l.body){if(k=l.body.getBounds(k),this.sortDirection===c.Physics.Arcade.LEFT_RIGHT){if(h.right<k.x)break;if(k.right<h.x)continue}else if(this.sortDirection===c.Physics.Arcade.RIGHT_LEFT){if(h.x>k.right)continue;if(k.x>h.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.bottom<k.y)continue;if(k.bottom<h.y)break}else if(this.sortDirection===c.Physics.Arcade.BOTTOM_TOP){if(h.y>k.bottom)continue;if(k.y>i.body.bottom)break}this.collideSpriteVsSprite(i,l,b,d,e,f)}}}}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h<a.children.length;h++)a.children[h].exists&&(a.children[h].physicsType===c.GROUP?this.collideGroupVsGroup(a.children[h],b,d,e,f,g):this.collideSpriteVsGroup(a.children[h],b,d,e,f,g))},separate:function(a,b,c,d,e){if(!a.enable||!b.enable||a.checkCollision.none||b.checkCollision.none||!this.intersects(a,b))return!1;if(c&&!1===c.call(d,a.sprite,b.sprite))return!1;if(a.isCircle&&b.isCircle)return this.separateCircle(a,b,e);if(a.isCircle!==b.isCircle){var f=a.isCircle?b:a,g=a.isCircle?a:b,h={x:f.x,y:f.y,right:f.right,bottom:f.bottom},i={x:g.x+g.radius,y:g.y+g.radius};if((i.y<h.y||i.y>h.bottom)&&(i.x<h.x||i.x>h.right))return this.separateCircle(a,b,e)}var j=!1,k=!1;this.forceX||Math.abs(this.gravity.y+a.gravity.y)<Math.abs(this.gravity.x+a.gravity.x)?(j=this.separateX(a,b,e),this.intersects(a,b)&&(k=this.separateY(a,b,e))):(k=this.separateY(a,b,e),this.intersects(a,b)&&(j=this.separateX(a,b,e)));var l=j||k;return l&&(e?(a.onOverlap&&a.onOverlap.dispatch(a.sprite,b.sprite),b.onOverlap&&b.onOverlap.dispatch(b.sprite,a.sprite)):(a.onCollide&&a.onCollide.dispatch(a.sprite,b.sprite),b.onCollide&&b.onCollide.dispatch(b.sprite,a.sprite))),l},intersects:function(a,b){return a!==b&&(a.isCircle?b.isCircle?c.Math.distance(a.center.x,a.center.y,b.center.x,b.center.y)<=a.radius+b.radius:this.circleBodyIntersects(a,b):b.isCircle?this.circleBodyIntersects(b,a):!(a.right<=b.position.x)&&(!(a.bottom<=b.position.y)&&(!(a.position.x>=b.right)&&!(a.position.y>=b.bottom))))},circleBodyIntersects:function(a,b){var d=c.Math.clamp(a.center.x,b.left,b.right),e=c.Math.clamp(a.center.y,b.top,b.bottom);return(a.center.x-d)*(a.center.x-d)+(a.center.y-e)*(a.center.y-e)<=a.radius*a.radius},separateCircle:function(a,b,d){this.getOverlapX(a,b),this.getOverlapY(a,b);var e=b.center.x-a.center.x,f=b.center.y-a.center.y,g=Math.atan2(f,e),h=0;if(a.isCircle!==b.isCircle){var i={x:b.isCircle?a.position.x:b.position.x,y:b.isCircle?a.position.y:b.position.y,right:b.isCircle?a.right:b.right,bottom:b.isCircle?a.bottom:b.bottom},j={x:a.isCircle?a.position.x+a.radius:b.position.x+b.radius,y:a.isCircle?a.position.y+a.radius:b.position.y+b.radius,radius:a.isCircle?a.radius:b.radius};j.y<i.y?j.x<i.x?h=c.Math.distance(j.x,j.y,i.x,i.y)-j.radius:j.x>i.right&&(h=c.Math.distance(j.x,j.y,i.right,i.y)-j.radius):j.y>i.bottom&&(j.x<i.x?h=c.Math.distance(j.x,j.y,i.x,i.bottom)-j.radius:j.x>i.right&&(h=c.Math.distance(j.x,j.y,i.right,i.bottom)-j.radius)),h*=-1}else h=a.radius+b.radius-c.Math.distance(a.center.x,a.center.y,b.center.x,b.center.y);if(d||0===h||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==h&&(a.onOverlap&&a.onOverlap.dispatch(a.sprite,b.sprite),b.onOverlap&&b.onOverlap.dispatch(b.sprite,a.sprite)),0!==h;var k={x:a.velocity.x*Math.cos(g)+a.velocity.y*Math.sin(g),y:a.velocity.x*Math.sin(g)-a.velocity.y*Math.cos(g)},l={x:b.velocity.x*Math.cos(g)+b.velocity.y*Math.sin(g),y:b.velocity.x*Math.sin(g)-b.velocity.y*Math.cos(g)},m=((a.mass-b.mass)*k.x+2*b.mass*l.x)/(a.mass+b.mass),n=(2*a.mass*k.x+(b.mass-a.mass)*l.x)/(a.mass+b.mass);return a.immovable||(a.velocity.x=(m*Math.cos(g)-k.y*Math.sin(g))*a.bounce.x,a.velocity.y=(k.y*Math.cos(g)+m*Math.sin(g))*a.bounce.y),b.immovable||(b.velocity.x=(n*Math.cos(g)-l.y*Math.sin(g))*b.bounce.x,b.velocity.y=(l.y*Math.cos(g)+n*Math.sin(g))*b.bounce.y),Math.abs(g)<Math.PI/2?a.velocity.x>0&&!a.immovable&&b.velocity.x>a.velocity.x?a.velocity.x*=-1:b.velocity.x<0&&!b.immovable&&a.velocity.x<b.velocity.x?b.velocity.x*=-1:a.velocity.y>0&&!a.immovable&&b.velocity.y>a.velocity.y?a.velocity.y*=-1:b.velocity.y<0&&!b.immovable&&a.velocity.y<b.velocity.y&&(b.velocity.y*=-1):Math.abs(g)>Math.PI/2&&(a.velocity.x<0&&!a.immovable&&b.velocity.x<a.velocity.x?a.velocity.x*=-1:b.velocity.x>0&&!b.immovable&&a.velocity.x>b.velocity.x?b.velocity.x*=-1:a.velocity.y<0&&!a.immovable&&b.velocity.y<a.velocity.y?a.velocity.y*=-1:b.velocity.y>0&&!b.immovable&&a.velocity.x>b.velocity.y&&(b.velocity.y*=-1)),a.immovable||(a.x+=a.velocity.x*this.game.time.physicsElapsed-h*Math.cos(g),a.y+=a.velocity.y*this.game.time.physicsElapsed-h*Math.sin(g)),b.immovable||(b.x+=b.velocity.x*this.game.time.physicsElapsed+h*Math.cos(g),b.y+=b.velocity.y*this.game.time.physicsElapsed+h*Math.sin(g)),a.onCollide&&a.onCollide.dispatch(a.sprite,b.sprite),b.onCollide&&b.onCollide.dispatch(b.sprite,a.sprite),!0},getOverlapX:function(a,b,c){var d=0,e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;return 0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e&&!c||!1===a.checkCollision.right||!1===b.checkCollision.left?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()<b.deltaX()&&(d=a.x-b.width-b.x,-d>e&&!c||!1===a.checkCollision.left||!1===b.checkCollision.right?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,d},getOverlapY:function(a,b,c){var d=0,e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;return 0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e&&!c||!1===a.checkCollision.down||!1===b.checkCollision.up?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()<b.deltaY()&&(d=a.y-b.bottom,-d>e&&!c||!1===a.checkCollision.up||!1===b.checkCollision.down?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,d},separateX:function(a,b,c){var d=this.getOverlapX(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.x,f=b.velocity.x;if(a.immovable||b.immovable)a.immovable?(b.x+=d,b.velocity.x=e-f*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x-=d,a.velocity.x=f-e*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x-=d,b.x+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.x=i+g*a.bounce.x,b.velocity.x=i+h*b.bounce.x}return!0},separateY:function(a,b,c){var d=this.getOverlapY(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateY||b.customSeparateY)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.y,f=b.velocity.y;if(a.immovable||b.immovable)a.immovable?(b.y+=d,b.velocity.y=e-f*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y-=d,a.velocity.y=f-e*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y-=d,b.y+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.y=i+g*a.bounce.y,b.velocity.y=i+h*b.bounce.y}return!0},getObjectsUnderPointer:function(a,b,c,d){if(0!==b.length&&a.exists)return this.getObjectsAtLocation(a.x,a.y,b,c,d,a)},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k<j.length;k++)j[k].hitTest(a,b)&&(e&&e.call(f,g,j[k].sprite),i.push(j[k].sprite));return i},moveToObject:function(a,b,c,d){void 0===c&&(c=60),void 0===d&&(d=0);var e=Math.atan2(b.y-a.y,b.x-a.x);return d>0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b,c){void 0===c&&(c=!1);var d=c?a.world.x-b.world.x:a.x-b.x,e=c?a.world.y-b.world.y:a.y-b.y;return Math.sqrt(d*d+e*e)},distanceToXY:function(a,b,c,d){void 0===d&&(d=!1);var e=d?a.world.x-b:a.x-b,f=d?a.world.y-c:a.y-c;return Math.sqrt(e*e+f*f)},distanceToPointer:function(a,b,c){void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1);var d=c?a.world.x-b.worldX:a.x-b.worldX,e=c?a.world.y-b.worldY:a.y-b.worldY;return Math.sqrt(d*d+e*e)},angleBetween:function(a,b,c){return void 0===c&&(c=!1),c?Math.atan2(b.world.y-a.world.y,b.world.x-a.world.x):Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenCenters:function(a,b){var c=b.centerX-a.centerX,d=b.centerY-a.centerY;return Math.atan2(d,c)},angleToXY:function(a,b,c,d){return void 0===d&&(d=!1),d?Math.atan2(c-a.world.y,b-a.world.x):Math.atan2(c-a.y,b-a.x)},angleToPointer:function(a,b,c){return void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1),c?Math.atan2(b.worldY-a.world.y,b.worldX-a.world.x):Math.atan2(b.worldY-a.y,b.worldX-a.x)},worldAngleToPointer:function(a,b){return this.angleToPointer(a,b,!0)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.isCircle=!1,this.radius=0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.angle,this.preRotation=a.angle,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point,this.deltaMax=new c.Point,this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point,this.bounce=new c.Point,this.worldBounce=null,this.onWorldBounds=null,this.onCollide=null,this.onOverlap=null,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.overlapR=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this.isMoving=!1,this.stopVelocityOnCollide=!0,this.moveTimer=0,this.moveDistance=0,this.moveDuration=0,this.moveTarget=null,this.moveEnd=null,this.onMoveComplete=new c.Signal,this.movementCallback=null,this.movementCallbackContext=null,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),a.width===this.width&&a.height===this.height||(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);b===this._sx&&c===this._sy||(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,this.position.x===this.prev.x&&this.position.y===this.prev.y||(this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.collideWorldBounds&&this.checkWorldBounds()&&this.onWorldBounds&&this.onWorldBounds.dispatch(this.sprite,this.blocked.up,this.blocked.down,this.blocked.left,this.blocked.right)),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},updateMovement:function(){var a=0,b=0!==this.overlapX||0!==this.overlapY;if(this.moveDuration>0?(this.moveTimer+=this.game.time.elapsedMS,a=this.moveTimer/this.moveDuration):(this.moveTarget.end.set(this.position.x,this.position.y),a=this.moveTarget.length/this.moveDistance),this.movementCallback)var c=this.movementCallback.call(this.movementCallbackContext,this,this.velocity,a);return!(b||a>=1||void 0!==c&&!0!==c)||(this.stopMovement(a>=1||this.stopVelocityOnCollide&&b),!1)},stopMovement:function(a){this.isMoving&&(this.isMoving=!1,a&&this.velocity.set(0),this.onMoveComplete.dispatch(this.sprite,0!==this.overlapX||0!==this.overlapY))},postUpdate:function(){this.enable&&this.dirty&&(this.isMoving&&this.updateMovement(),this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision,d=this.worldBounce?-this.worldBounce.x:-this.bounce.x,e=this.worldBounce?-this.worldBounce.y:-this.bounce.y;if(this.isCircle){var f={x:this.center.x-this.radius,y:this.center.y-this.radius,right:this.center.x+this.radius,bottom:this.center.y+this.radius};f.x<b.x&&c.left?(a.x=b.x-this.halfWidth+this.radius,this.velocity.x*=d,this.blocked.left=!0):f.right>b.right&&c.right&&(a.x=b.right-this.halfWidth-this.radius,this.velocity.x*=d,this.blocked.right=!0),f.y<b.y&&c.up?(a.y=b.y-this.halfHeight+this.radius,this.velocity.y*=e,
|
||
this.blocked.up=!0):f.bottom>b.bottom&&c.down&&(a.y=b.bottom-this.halfHeight-this.radius,this.velocity.y*=e,this.blocked.down=!0)}else a.x<b.x&&c.left?(a.x=b.x,this.velocity.x*=d,this.blocked.left=!0):this.right>b.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=d,this.blocked.right=!0),a.y<b.y&&c.up?(a.y=b.y,this.velocity.y*=e,this.blocked.up=!0):this.bottom>b.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=e,this.blocked.down=!0);return this.blocked.up||this.blocked.down||this.blocked.left||this.blocked.right},moveFrom:function(a,b,c){if(void 0===b&&(b=this.speed),0===b)return!1;var d;return void 0===c?(d=this.angle,c=this.game.math.radToDeg(d)):d=this.game.math.degToRad(c),this.moveTimer=0,this.moveDuration=a,0===c||180===c?this.velocity.set(Math.cos(d)*b,0):90===c||270===c?this.velocity.set(0,Math.sin(d)*b):this.velocity.set(Math.cos(d)*b,Math.sin(d)*b),this.isMoving=!0,!0},moveTo:function(a,b,d){var e=b/(a/1e3);if(0===e)return!1;var f;return void 0===d?(f=this.angle,d=this.game.math.radToDeg(f)):f=this.game.math.degToRad(d),b=Math.abs(b),this.moveDuration=0,this.moveDistance=b,null===this.moveTarget&&(this.moveTarget=new c.Line,this.moveEnd=new c.Point),this.moveTarget.fromAngle(this.x,this.y,f,b),this.moveEnd.set(this.moveTarget.end.x,this.moveTarget.end.y),this.moveTarget.setTo(this.x,this.y,this.x,this.y),0===d||180===d?this.velocity.set(Math.cos(f)*e,0):90===d||270===d?this.velocity.set(0,Math.sin(f)*e):this.velocity.set(Math.cos(f)*e,Math.sin(f)*e),this.isMoving=!0,!0},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.isCircle=!1,this.radius=0},setCircle:function(a,b,c){void 0===b&&(b=this.offset.x),void 0===c&&(c=this.offset.y),a>0?(this.isCircle=!0,this.radius=a,this.sourceWidth=2*a,this.sourceHeight=2*a,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(b,c),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)):this.isCircle=!1},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=b-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},getBounds:function(a){return this.isCircle?(a.x=this.center.x-this.radius,a.y=this.center.y-this.radius,a.right=this.center.x+this.radius,a.bottom=this.center.y+this.radius):(a.x=this.x,a.y=this.y,a.right=this.right,a.bottom=this.bottom),a},hitTest:function(a,b){return this.isCircle?c.Circle.contains(this,a,b):c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"left",{get:function(){return this.position.x}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"top",{get:function(){return this.position.y}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",a.fillStyle=c,a.strokeStyle=c,b.isCircle?(a.beginPath(),a.arc(b.center.x-b.game.camera.x,b.center.y-b.game.camera.y,b.radius,0,2*Math.PI),d?a.fill():a.stroke()):d?a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height):a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;h<g.length;h++)d?d.call(e,a,g[h])&&this.separateTile(h,a.body,g[h],b,f)&&(this._total++,c&&c.call(e,a,g[h])):this.separateTile(h,a.body,g[h],b,f)&&(this._total++,c&&c.call(e,a,g[h]))}},collideGroupVsTilemapLayer:function(a,b,c,d,e,f){if(0!==a.length)for(var g=0;g<a.children.length;g++)a.children[g].exists&&this.collideSpriteVsTilemapLayer(a.children[g],b,c,d,e,f)},separateTile:function(a,b,c,d,e){if(!b.enable)return!1;var f=d.fixedToCamera?0:d.position.x,g=d.fixedToCamera?0:d.position.y;if(!c.intersects(b.position.x-f,b.position.y-g,b.right-f,b.bottom-g))return!1;if(e)return!0;if(c.collisionCallback&&!c.collisionCallback.call(c.collisionCallbackContext,b.sprite,c))return!1;if(void 0!==c.layer.callbacks&&c.layer.callbacks[c.index]&&!c.layer.callbacks[c.index].callback.call(c.layer.callbacks[c.index].callbackContext,b.sprite,c))return!1;if(!(c.faceLeft||c.faceRight||c.faceTop||c.faceBottom))return!1;var h=0,i=0,j=0,k=1;if(b.deltaAbsX()>b.deltaAbsY()?j=-1:b.deltaAbsX()<b.deltaAbsY()&&(k=-1),0!==b.deltaX()&&0!==b.deltaY()&&(c.faceLeft||c.faceRight)&&(c.faceTop||c.faceBottom)&&(j=Math.min(Math.abs(b.position.x-f-c.right),Math.abs(b.right-f-c.left)),k=Math.min(Math.abs(b.position.y-g-c.bottom),Math.abs(b.bottom-g-c.top))),j<k){if((c.faceLeft||c.faceRight)&&0!==(h=this.tileCheckX(b,c,d))&&!c.intersects(b.position.x-f,b.position.y-g,b.right-f,b.bottom-g))return!0;(c.faceTop||c.faceBottom)&&(i=this.tileCheckY(b,c,d))}else{if((c.faceTop||c.faceBottom)&&0!==(i=this.tileCheckY(b,c,d))&&!c.intersects(b.position.x-f,b.position.y-g,b.right-f,b.bottom-g))return!0;(c.faceLeft||c.faceRight)&&(h=this.tileCheckX(b,c,d))}return 0!==h||0!==i},tileCheckX:function(a,b,c){var d=0,e=c.fixedToCamera?0:c.position.x;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x-e<b.right&&(d=a.x-e-b.right)<-this.TILE_BIAS&&(d=0):a.deltaX()>0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right-e>b.left&&(d=a.right-e-b.left)>this.TILE_BIAS&&(d=0),0!==d&&(a.customSeparateX?a.overlapX=d:this.processTileSeparationX(a,d)),d},tileCheckY:function(a,b,c){var d=0,e=c.fixedToCamera?0:c.position.y;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y-e<b.bottom&&(d=a.y-e-b.bottom)<-this.TILE_BIAS&&(d=0):a.deltaY()>0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom-e>b.top&&(d=a.bottom-e-b.top)>this.TILE_BIAS&&(d=0),0!==d&&(a.customSeparateY?a.overlapY=d:this.processTileSeparationY(a,d)),d},processTileSeparationX:function(a,b){b<0?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){b<0?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,c.Physics.P2=function(a,b){this.game=a,void 0===b?b={gravity:[0,0],broadphase:new p2.SAPBroadphase}:(b.hasOwnProperty("gravity")||(b.gravity=[0,0]),b.hasOwnProperty("broadphase")||(b.broadphase=new p2.SAPBroadphase)),this.config=b,this.world=new p2.World(this.config),this.frameRate=1/60,this.useElapsedTime=!1,this.paused=!1,this.materials=[],this.gravity=new c.Physics.P2.InversePointProxy(this,this.world.gravity),this.walls={left:null,right:null,top:null,bottom:null},this.onBodyAdded=new c.Signal,this.onBodyRemoved=new c.Signal,this.onSpringAdded=new c.Signal,this.onSpringRemoved=new c.Signal,this.onConstraintAdded=new c.Signal,this.onConstraintRemoved=new c.Signal,this.onContactMaterialAdded=new c.Signal,this.onContactMaterialRemoved=new c.Signal,this.postBroadphaseCallback=null,this.callbackContext=null,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,b.hasOwnProperty("mpx")&&b.hasOwnProperty("pxm")&&b.hasOwnProperty("mpxi")&&b.hasOwnProperty("pxmi")&&(this.mpx=b.mpx,this.mpxi=b.mpxi,this.pxm=b.pxm,this.pxmi=b.pxmi),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this.boundsCollidesWith=[],this._toRemove=[],this._collisionGroupID=2,this._boundsLeft=!0,this._boundsRight=!0,this._boundsTop=!0,this._boundsBottom=!0,this._boundsOwnGroup=!1,this.setBoundsToWorld(!0,!0,!0,!0,!1)},c.Physics.P2.prototype={removeBodyNextStep:function(a){this._toRemove.push(a)},preUpdate:function(){for(var a=this._toRemove.length;a--;)this.removeBody(this._toRemove[a]);this._toRemove.length=0},enable:function(a,b,d){void 0===b&&(b=!1),void 0===d&&(d=!0);var e=1;if(Array.isArray(a))for(e=a.length;e--;)a[e]instanceof c.Group?this.enable(a[e].children,b,d):(this.enableBody(a[e],b),d&&a[e].hasOwnProperty("children")&&a[e].children.length>0&&this.enable(a[e],b,!0));else a instanceof c.Group?this.enable(a.children,b,d):(this.enableBody(a,b),d&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,void 0!==a.anchor&&a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback&&0!==a.pairs.length)for(var b=a.pairs.length-2;b>=0;b-=2)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA,a.contactEquations))},endContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA))},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){void 0===a&&(a=!0);var b=a?this.boundsCollisionGroup.mask:this.everythingCollisionGroup.mask;this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b),this._boundsOwnGroup=a},setBounds:function(a,b,c,d,e,f,g,h,i){void 0===e&&(e=this._boundsLeft),void 0===f&&(f=this._boundsRight),void 0===g&&(g=this._boundsTop),void 0===h&&(h=this._boundsBottom),void 0===i&&(i=this._boundsOwnGroup),this.setupWall(e,"left",a,b,1.5707963267948966,i),this.setupWall(f,"right",a+c,b,-1.5707963267948966,i),this.setupWall(g,"top",a,b,-3.141592653589793,i),this.setupWall(h,"bottom",a,b+d,0,i),this._boundsLeft=e,this._boundsRight=f,this._boundsTop=g,this._boundsBottom=h,this._boundsOwnGroup=i},setupWall:function(a,b,c,d,e,f){a?(this.walls[b]?this.walls[b].position=[this.pxmi(c),this.pxmi(d)]:(this.walls[b]=new p2.Body({mass:0,position:[this.pxmi(c),this.pxmi(d)],angle:e}),this.walls[b].addShape(new p2.Plane),this.world.addBody(this.walls[b])),f&&(this.walls[b].shapes[0].collisionGroup=this.boundsCollisionGroup.mask)):this.walls[b]&&(this.world.removeBody(this.walls[b]),this.walls[b]=null)},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||(this.useElapsedTime?this.world.step(this.game.time.physicsElapsed):this.world.step(this.frameRate))},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[],this.walls={left:null,right:null,top:null,bottom:null}},destroy:function(){this.clear(),this.game=null},addBody:function(a){return!a.data.world&&(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world===this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.addSpring(a.data):this.world.addSpring(a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.removeSpring(a.data):this.world.removeSpring(a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,d,e,f,g){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addConstraint(new c.Physics.P2.DistanceConstraint(this,a,b,d,e,f,g));console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,d,e){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addConstraint(new c.Physics.P2.GearConstraint(this,a,b,d,e));console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,d,e,f,g){if(a=this.getBody(a),d=this.getBody(d),a&&d)return this.addConstraint(new c.Physics.P2.RevoluteConstraint(this,a,b,d,e,f,g));console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,d,e,f){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addConstraint(new c.Physics.P2.LockConstraint(this,a,b,d,e,f));console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,d,e,f,g,h){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addConstraint(new c.Physics.P2.PrismaticConstraint(this,a,b,d,e,f,g,h));console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var d=new c.Physics.P2.Material(a);return this.materials.push(d),void 0!==b&&b.setMaterial(d),d},createContactMaterial:function(a,b,d){void 0===a&&(a=this.createMaterial()),void 0===b&&(b=this.createMaterial());var e=new c.Physics.P2.ContactMaterial(a,b,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof c.Physics.P2.Body?a.data:a.body&&a.body.type===c.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b]);return a},hitTest:function(a,b,d,e){void 0===b&&(b=this.world.bodies),void 0===d&&(d=5),void 0===e&&(e=!1);for(var f=[this.pxmi(a.x),this.pxmi(a.y)],g=[],h=b.length;h--;)b[h]instanceof c.Physics.P2.Body&&(!e||b[h].data.type!==p2.Body.STATIC)?g.push(b[h].data):b[h]instanceof p2.Body&&b[h].parent&&(!e||b[h].type!==p2.Body.STATIC)?g.push(b[h]):b[h]instanceof c.Sprite&&b[h].hasOwnProperty("body")&&(!e||b[h].body.data.type!==p2.Body.STATIC)&&g.push(b[h].body.data);return this.world.hitTest(f,g,d)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var d=new c.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(d),a&&this.setCollisionGroup(a,d),d},setCollisionGroup:function(a,b){if(a instanceof c.Group)for(var d=0;d<a.total;d++)a.children[d].body&&a.children[d].body.type===c.Physics.P2JS&&a.children[d].body.setCollisionGroup(b);else a.body.setCollisionGroup(b)},createSpring:function(a,b,d,e,f,g,h,i,j){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addSpring(new c.Physics.P2.Spring(this,a,b,d,e,f,g,h,i,j));console.warn("Cannot create Spring, invalid body objects given")},createRotationalSpring:function(a,b,d,e,f){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addSpring(new c.Physics.P2.RotationalSpring(this,a,b,d,e,f));console.warn("Cannot create Rotational Spring, invalid body objects given")},createBody:function(a,b,d,e,f,g){void 0===e&&(e=!1);var h=new c.Physics.P2.Body(this.game,null,a,b,d);if(g){if(!h.addPolygon(f,g))return!1}return e&&this.world.addBody(h.data),h},createParticle:function(a,b,d,e,f,g){void 0===e&&(e=!1);var h=new c.Physics.P2.Body(this.game,null,a,b,d);if(g){if(!h.addPolygon(f,g))return!1}return e&&this.world.addBody(h.data),h},convertCollisionObjects:function(a,b,c){void 0===c&&(c=!0);for(var d=[],e=0,f=a.collision[b].length;e<f;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),void 0===c&&(c=!0),void 0===d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;h<i;h++){e=0;for(var j=0,k=a.layers[b].width;j<k;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return-.05*a}},Object.defineProperty(c.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(c.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(c.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(c.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(c.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(c.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(c.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(c.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(c.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),c.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},c.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},c.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.PointProxy.prototype.constructor=c.Physics.P2.PointProxy,Object.defineProperty(c.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),c.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.InversePointProxy.prototype.constructor=c.Physics.P2.InversePointProxy,Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),c.Physics.P2.Body=function(a,b,d,e,f){b=b||null,d=d||0,e=e||0,void 0===f&&(f=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=c.Physics.P2JS,this.offset=new c.Point,this.data=new p2.Body({position:[this.world.pxmi(d),this.world.pxmi(e)],mass:f}),this.data.parent=this,this.velocity=new c.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new c.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new c.Point,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this.dirty=!1,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},this._reset=!1,b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},c.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b<this.collidesWith.length;b++)a|=this.collidesWith[b].mask;return a},updateCollisionMask:function(a){var b=this.getCollisionMask();if(void 0===a)for(var c=this.data.shapes.length-1;c>=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if(void 0===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,b.collisionMask=c},clearCollision:function(a,b,c){if(void 0===a&&(a=!0),void 0===b&&(b=!0),void 0===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&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},removeCollisionGroup:function(a,b,c){void 0===b&&(b=!0);var d;if(Array.isArray(a))for(var e=0;e<a.length;e++)(d=this.collidesWith.indexOf(a[e]))>-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));else(d=this.collidesWith.indexOf(a))>-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));var f=this.getCollisionMask();if(void 0===c)for(var e=this.data.shapes.length-1;e>=0;e--)this.data.shapes[e].collisionMask=f;else c.collisionMask=f},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(void 0===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(),this.shapeChanged()},getVelocityAtPoint:function(a,b){return this.data.getVelocityAtPoint(a,b)},applyDamping:function(a){this.data.applyDamping(a)},applyImpulse:function(a,b,c){this.data.applyImpulse(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyImpulseLocal:function(a,b,c){this.data.applyImpulseLocal(a,[this.world.pxmi(b),this.world.pxmi(c)])},
|
||
applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(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.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-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.world.pxmi(-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.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},thrustLeft:function(a){var b=this.world.pxmi(-a),c=this.data.angle;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},thrustRight:function(a){var b=this.world.pxmi(-a),c=this.data.angle;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-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.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.dirty=!0,this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0])+this.offset.x,this.sprite.y=this.world.mpxi(this.data.position[1])+this.offset.y,this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform(),this.dirty=!1},reset:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;a<this.game.physics.p2._toRemove.length;a++)this.game.physics.p2._toRemove[a]===this&&this.game.physics.p2._toRemove.splice(a,1);this.data.world!==this.game.physics.p2.world&&this.game.physics.p2.addBody(this)},removeFromWorld:function(){this.data.world===this.game.physics.p2.world&&this.game.physics.p2.removeBodyNextStep(this)},destroy:function(){this.removeFromWorld(),this.clearShapes(),this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},this.debugBody&&this.debugBody.destroy(!0,!0),this.debugBody=null,this.sprite&&(this.sprite.body=null,this.sprite=null)},clearShapes:function(){for(var a=this.data.shapes.length;a--;)this.data.removeShape(this.data.shapes[a]);this.shapeChanged()},addShape:function(a,b,c,d){return void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d=0),this.data.addShape(a,[this.world.pxmi(b),this.world.pxmi(c)],d),this.shapeChanged(),a},addCircle:function(a,b,c,d){var e=new p2.Circle({radius:this.world.pxm(a)});return this.addShape(e,b,c,d)},addRectangle:function(a,b,c,d,e){var f=new p2.Box({width:this.world.pxm(a),height:this.world.pxm(b)});return this.addShape(f,c,d,e)},addPlane:function(a,b,c){var d=new p2.Plane;return this.addShape(d,a,b,c)},addParticle:function(a,b,c){var d=new p2.Particle;return this.addShape(d,a,b,c)},addLine:function(a,b,c,d){var e=new p2.Line({length:this.world.pxm(a)});return this.addShape(e,b,c,d)},addCapsule:function(a,b,c,d,e){var f=new p2.Capsule({length:this.world.pxm(a),radius:this.world.pxm(b)});return this.addShape(f,c,d,e)},addPolygon:function(a,b){a=a||{},Array.isArray(b)||(b=Array.prototype.slice.call(arguments,1));var c=[];if(1===b.length&&Array.isArray(b[0]))c=b[0].slice(0);else if(Array.isArray(b[0]))c=b.slice();else if("number"==typeof b[0])for(var d=0,e=b.length;d<e;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g<c.length;g++)c[g][0]=this.world.pxmi(c[g][0]),c[g][1]=this.world.pxmi(c[g][1]);var h=this.data.fromPolygon(c,a);return this.shapeChanged(),h},removeShape:function(a){var b=this.data.removeShape(a);return this.shapeChanged(),b},setCircle:function(a,b,c,d){return this.clearShapes(),this.addCircle(a,b,c,d)},setRectangle:function(a,b,c,d,e){return void 0===a&&(a=16),void 0===b&&(b=16),this.clearShapes(),this.addRectangle(a,b,c,d,e)},setRectangleFromSprite:function(a){return void 0===a&&(a=this.sprite),this.clearShapes(),this.addRectangle(a.width,a.height,0,0,a.rotation)},setMaterial:function(a,b){if(void 0===b)for(var c=this.data.shapes.length-1;c>=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e<c.length;e++){var f=c[e],g=this.addFixture(f);d[f.filter.group]=d[f.filter.group]||[],d[f.filter.group]=d[f.filter.group].concat(g),f.fixtureKey&&(d[f.fixtureKey]=g)}return this.data.aabbNeedsUpdate=!0,this.shapeChanged(),d},addFixture:function(a){var b=[];if(a.circle){var c=new p2.Circle({radius:this.world.pxm(a.circle.radius)});c.collisionGroup=a.filter.categoryBits,c.collisionMask=a.filter.maskBits,c.sensor=a.isSensor;var d=p2.vec2.create();d[0]=this.world.pxmi(a.circle.position[0]-this.sprite.width/2),d[1]=this.world.pxmi(a.circle.position[1]-this.sprite.height/2),this.data.addShape(c,d),b.push(c)}else for(var e=a.polygons,f=p2.vec2.create(),g=0;g<e.length;g++){for(var h=e[g],i=[],j=0;j<h.length;j+=2)i.push([this.world.pxmi(h[j]),this.world.pxmi(h[j+1])]);for(var c=new p2.Convex({vertices:i}),k=0;k!==c.vertices.length;k++){var l=c.vertices[k];p2.vec2.sub(l,l,c.centerOfMass)}p2.vec2.scale(f,c.centerOfMass,1),f[0]-=this.world.pxmi(this.sprite.width/2),f[1]-=this.world.pxmi(this.sprite.height/2),c.updateTriangles(),c.updateCenterOfMass(),c.updateBoundingRadius(),c.collisionGroup=a.filter.categoryBits,c.collisionMask=a.filter.maskBits,c.sensor=a.isSensor,this.data.addShape(c,f),b.push(c)}return b},loadPolygon:function(a,b){if(null===a)var c=b;else var c=this.game.cache.getPhysicsData(a,b);for(var d=p2.vec2.create(),e=0;e<c.length;e++){for(var f=[],g=0;g<c[e].shape.length;g+=2)f.push([this.world.pxmi(c[e].shape[g]),this.world.pxmi(c[e].shape[g+1])]);for(var h=new p2.Convex({vertices:f}),i=0;i!==h.vertices.length;i++){var j=h.vertices[i];p2.vec2.sub(j,j,h.centerOfMass)}p2.vec2.scale(d,h.centerOfMass,1),d[0]-=this.world.pxmi(this.sprite.width/2),d[1]-=this.world.pxmi(this.sprite.height/2),h.updateTriangles(),h.updateCenterOfMass(),h.updateBoundingRadius(),this.data.addShape(h,d)}return this.data.aabbNeedsUpdate=!0,this.shapeChanged(),!0}},c.Physics.P2.Body.prototype.constructor=c.Physics.P2.Body,c.Physics.P2.Body.DYNAMIC=1,c.Physics.P2.Body.STATIC=2,c.Physics.P2.Body.KINEMATIC=4,Object.defineProperty(c.Physics.P2.Body.prototype,"static",{get:function(){return this.data.type===c.Physics.P2.Body.STATIC},set:function(a){a&&this.data.type!==c.Physics.P2.Body.STATIC?(this.data.type=c.Physics.P2.Body.STATIC,this.mass=0):a||this.data.type!==c.Physics.P2.Body.STATIC||(this.data.type=c.Physics.P2.Body.DYNAMIC,this.mass=1)}}),Object.defineProperty(c.Physics.P2.Body.prototype,"dynamic",{get:function(){return this.data.type===c.Physics.P2.Body.DYNAMIC},set:function(a){a&&this.data.type!==c.Physics.P2.Body.DYNAMIC?(this.data.type=c.Physics.P2.Body.DYNAMIC,this.mass=1):a||this.data.type!==c.Physics.P2.Body.DYNAMIC||(this.data.type=c.Physics.P2.Body.STATIC,this.mass=0)}}),Object.defineProperty(c.Physics.P2.Body.prototype,"kinematic",{get:function(){return this.data.type===c.Physics.P2.Body.KINEMATIC},set:function(a){a&&this.data.type!==c.Physics.P2.Body.KINEMATIC?(this.data.type=c.Physics.P2.Body.KINEMATIC,this.mass=4):a||this.data.type!==c.Physics.P2.Body.KINEMATIC||(this.data.type=c.Physics.P2.Body.STATIC,this.mass=0)}}),Object.defineProperty(c.Physics.P2.Body.prototype,"allowSleep",{get:function(){return this.data.allowSleep},set:function(a){a!==this.data.allowSleep&&(this.data.allowSleep=a)}}),Object.defineProperty(c.Physics.P2.Body.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.data.angle))},set:function(a){this.data.angle=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Physics.P2.Body.prototype,"angularDamping",{get:function(){return this.data.angularDamping},set:function(a){this.data.angularDamping=a}}),Object.defineProperty(c.Physics.P2.Body.prototype,"angularForce",{get:function(){return this.data.angularForce},set:function(a){this.data.angularForce=a}}),Object.defineProperty(c.Physics.P2.Body.prototype,"angularVelocity",{get:function(){return this.data.angularVelocity},set:function(a){this.data.angularVelocity=a}}),Object.defineProperty(c.Physics.P2.Body.prototype,"damping",{get:function(){return this.data.damping},set:function(a){this.data.damping=a}}),Object.defineProperty(c.Physics.P2.Body.prototype,"fixedRotation",{get:function(){return this.data.fixedRotation},set:function(a){a!==this.data.fixedRotation&&(this.data.fixedRotation=a)}}),Object.defineProperty(c.Physics.P2.Body.prototype,"inertia",{get:function(){return this.data.inertia},set:function(a){this.data.inertia=a}}),Object.defineProperty(c.Physics.P2.Body.prototype,"mass",{get:function(){return this.data.mass},set:function(a){a!==this.data.mass&&(this.data.mass=a,this.data.updateMassProperties())}}),Object.defineProperty(c.Physics.P2.Body.prototype,"motionState",{get:function(){return this.data.type},set:function(a){a!==this.data.type&&(this.data.type=a)}}),Object.defineProperty(c.Physics.P2.Body.prototype,"rotation",{get:function(){return this.data.angle},set:function(a){this.data.angle=a}}),Object.defineProperty(c.Physics.P2.Body.prototype,"sleepSpeedLimit",{get:function(){return this.data.sleepSpeedLimit},set:function(a){this.data.sleepSpeedLimit=a}}),Object.defineProperty(c.Physics.P2.Body.prototype,"x",{get:function(){return this.world.mpxi(this.data.position[0])},set:function(a){this.data.position[0]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.Body.prototype,"y",{get:function(){return this.world.mpxi(this.data.position[1])},set:function(a){this.data.position[1]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.Body.prototype,"id",{get:function(){return this.data.id}}),Object.defineProperty(c.Physics.P2.Body.prototype,"debug",{get:function(){return null!==this.debugBody},set:function(a){a&&!this.debugBody?this.debugBody=new c.Physics.P2.BodyDebug(this.game,this.data):!a&&this.debugBody&&(this.debugBody.destroy(),this.debugBody=null)}}),Object.defineProperty(c.Physics.P2.Body.prototype,"collideWorldBounds",{get:function(){return this._collideWorldBounds},set:function(a){a&&!this._collideWorldBounds?(this._collideWorldBounds=!0,this.updateCollisionMask()):!a&&this._collideWorldBounds&&(this._collideWorldBounds=!1,this.updateCollisionMask())}}),c.Physics.P2.BodyDebug=function(a,b,d){c.Group.call(this,a);var e={pixelsPerLengthUnit:a.physics.p2.mpx(1),debugPolygons:!1,lineWidth:1,alpha:.5};this.settings=c.Utils.extend(e,d),this.ppu=this.settings.pixelsPerLengthUnit,this.ppu=-1*this.ppu,this.body=b,this.canvas=new c.Graphics(a),this.canvas.alpha=this.settings.alpha,this.add(this.canvas),this.draw(),this.updateSpriteTransform()},c.Physics.P2.BodyDebug.prototype=Object.create(c.Group.prototype),c.Physics.P2.BodyDebug.prototype.constructor=c.Physics.P2.BodyDebug,c.Utils.extend(c.Physics.P2.BodyDebug.prototype,{updateSpriteTransform:function(){this.position.x=this.body.position[0]*this.ppu,this.position.y=this.body.position[1]*this.ppu,this.rotation=this.body.angle},draw:function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;if(h=this.body,j=this.canvas,j.clear(),c=parseInt(this.randomPastelHex(),16),f=16711680,g=this.lineWidth,h instanceof p2.Body&&h.shapes.length){var p=h.shapes.length;for(d=0;d!==p;){if(b=h.shapes[d],i=b.position||0,a=b.angle||0,b instanceof p2.Circle)this.drawCircle(j,i[0]*this.ppu,i[1]*this.ppu,a,b.radius*this.ppu,c,g);else if(b instanceof p2.Capsule)this.drawCapsule(j,i[0]*this.ppu,i[1]*this.ppu,a,b.length*this.ppu,b.radius*this.ppu,f,c,g);else if(b instanceof p2.Plane)this.drawPlane(j,i[0]*this.ppu,-i[1]*this.ppu,c,f,5*g,10*g,10*g,100*this.ppu,a);else if(b instanceof p2.Line)this.drawLine(j,b.length*this.ppu,f,g);else if(b instanceof p2.Box)this.drawRectangle(j,i[0]*this.ppu,i[1]*this.ppu,a,b.width*this.ppu,b.height*this.ppu,f,c,g);else if(b instanceof p2.Convex){for(l=[],m=p2.vec2.create(),e=n=0,o=b.vertices.length;0<=o?n<o:n>o;e=0<=o?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){void 0===g&&(g=1),void 0===f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){void 0===d&&(d=1),void 0===c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if(void 0===f&&(f=1),void 0===d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;if(a.endFill(),b.length>2)return a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;for(void 0===e&&(e=1),void 0===c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),g=null,h=null,f=0;f<b.length;)o=b[f],p=o[0],q=o[1],p===g&&q===h||(0===f?a.moveTo(p,q):(i=g,j=h,k=p,l=q,m=b[(f+1)%b.length][0],n=b[(f+1)%b.length][1],0!==(k-i)*(n-j)-(m-i)*(l-j)&&a.lineTo(p,q)),g=p,h=q),f++;"number"==typeof d&&a.endFill(),b.length>2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l;void 0===f&&(f=1),void 0===d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),a.moveTo(b,-c),k=b+Math.cos(j)*this.game.width,l=c+Math.sin(j)*this.game.height,a.lineTo(k,-l),a.moveTo(b,-c),k=b+Math.cos(j)*-this.game.width,l=c+Math.sin(j)*-this.game.height,a.lineTo(k,-l)},drawCapsule:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1);var j=Math.cos(d),k=Math.sin(d);a.beginFill(h,1),a.drawCircle(-e/2*j+b,-e/2*k+c,2*-f),a.drawCircle(e/2*j+b,e/2*k+c,2*-f),a.endFill(),a.lineStyle(i,g,0),a.beginFill(h,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c),a.lineTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.endFill(),a.lineStyle(i,g,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.moveTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.length?b:b+"0"}}),c.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,void 0===d&&(d=1),void 0===e&&(e=100),void 0===f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};void 0!==g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),void 0!==h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),void 0!==i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),void 0!==j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,void 0===d&&(d=null),void 0===e&&(e=100),void 0===f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},c.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),c.Physics.P2.Material.prototype.constructor=c.Physics.P2.Material,c.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},c.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),c.Physics.P2.ContactMaterial.prototype.constructor=c.Physics.P2.ContactMaterial,c.Physics.P2.CollisionGroup=function(a){this.mask=a},c.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){void 0===d&&(d=100),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g};p2.DistanceConstraint.call(this,b,c,h)},c.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),c.Physics.P2.DistanceConstraint.prototype.constructor=c.Physics.P2.DistanceConstraint,c.Physics.P2.GearConstraint=function(a,b,c,d,e){void 0===d&&(d=0),void 0===e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},c.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),c.Physics.P2.GearConstraint.prototype.constructor=c.Physics.P2.GearConstraint,c.Physics.P2.LockConstraint=function(a,b,c,d,e,f){void 0===d&&(d=[0,0]),void 0===e&&(e=0),void 0===f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},c.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),c.Physics.P2.LockConstraint.prototype.constructor=c.Physics.P2.LockConstraint,c.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){void 0===d&&(d=!0),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=[0,0]),void 0===h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},c.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),c.Physics.P2.PrismaticConstraint.prototype.constructor=c.Physics.P2.PrismaticConstraint,c.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){void 0===f&&(f=Number.MAX_VALUE),void 0===g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},c.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),c.Physics.P2.RevoluteConstraint.prototype.constructor=c.Physics.P2.RevoluteConstraint,c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||c<=0)&&(c=32),(void 0===d||d<=0)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&a<this.firstgid+this.total},addImage:function(a,b){this.images.push({gid:a,image:b}),this.total++}},c.ImageCollection.prototype.constructor=c.ImageCollection,c.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.rotation=0,this.flipped=!1,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},c.Tile.prototype={containsPoint:function(a,b){return!(a<this.worldX||b<this.worldY||a>this.right||b>this.bottom)},intersects:function(a,b,c,d){return!(c<=this.worldX)&&(!(d<=this.worldY)&&(!(a>=this.worldX+this.width)&&!(b>=this.worldY+this.height)))},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:!!b&&(this.faceTop||this.faceBottom||this.faceLeft||this.faceRight)},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.enableDebug=!1,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if(void 0!==b&&null!==b||(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;r<h+k.total&&(this.tiles[r]=[m,n,l],m+=d+g,++o!==k.total)&&(++p!==k.columns||(m=f,n+=e+g,p=0,++q!==k.rows));r++);return k},createFromObjects:function(a,b,d,e,f,g,h,i,j){if(void 0===f&&(f=!0),void 0===g&&(g=!1),void 0===h&&(h=this.game.world),void 0===i&&(i=c.Sprite),void 0===j&&(j=!0),!this.objects[a])return void console.warn("Tilemap.createFromObjects: Invalid objectgroup name given: "+a);for(var k=0;k<this.objects[a].length;k++){var l=!1,m=this.objects[a][k];if(void 0!==m.gid&&"number"==typeof b&&m.gid===b?l=!0:void 0!==m.id&&"number"==typeof b&&m.id===b?l=!0:void 0!==m.name&&"string"==typeof b&&m.name===b&&(l=!0),l){var n=new i(this.game,parseFloat(m.x,10),parseFloat(m.y,10),d,e);n.name=m.name,n.visible=m.visible,n.autoCull=g,n.exists=f,m.width&&(n.width=m.width),m.height&&(n.height=m.height),m.rotation&&(n.angle=m.rotation),j&&(n.y-=n.height),h.add(n);for(var o in m.properties)h.set(n,o,m.properties[o],!1,!1,0,!0)}}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),void 0===b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),void 0===f&&(f=this.game.world),void 0===g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;l<m;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l<a.length;l++)this.replace(a[l],b[0],0,0,h,i,e);else if(b.length>1)for(l=0;l<a.length;l++)this.replace(a[l],b[l],0,0,h,i,e);return k},createLayer:function(a,b,d,e){void 0===b&&(b=this.game.width),void 0===d&&(d=this.game.height),void 0===e&&(e=this.game.world);var f=a;if("string"==typeof a&&(f=this.getLayerIndex(a)),null===f||f>this.layers.length)return void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f);void 0===b||b<=0?b=Math.min(this.game.width,this.layers[f].widthInPixels):b>this.game.width&&(b=this.game.width),void 0===d||d<=0?d=Math.min(this.game.height,this.layers[f].heightInPixels):d>this.game.height&&(d=this.game.height),this.enableDebug&&(console.group("Tilemap.createLayer"),console.log("Name:",this.layers[f].name),console.log("Size:",b,"x",d),console.log("Tileset:",this.tilesets[0].name,"index:",f));var g=e.add(new c.TilemapLayer(this.game,this,f,b,d));return this.enableDebug&&console.groupEnd(),g},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists: "+a);for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;k<d;k++){h=[];for(var l=0;l<b;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;c<a.length;c++)if(a[c].name===b)return c;return null},getLayerIndex:function(a){return this.getIndex(this.layers,a)},getTilesetIndex:function(a){return this.getIndex(this.tilesets,a)},getImageIndex:function(a){return this.getIndex(this.images,a)},setTileIndexCallback:function(a,b,c,d){if(d=this.getLayer(d),"number"==typeof a)this.layers[d].callbacks[a]={callback:b,callbackContext:c};else for(var e=0,f=a.length;e<f;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;h<this._results.length;h++)this._results[h].setCollisionCallback(e,f)},setCollision:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c),"number"==typeof a)return this.setCollisionByIndex(a,b,c,!0);if(Array.isArray(a)){for(var e=0;e<a.length;e++)this.setCollisionByIndex(a[e],b,c,!1);d&&this.calculateFaces(c)}},setCollisionBetween:function(a,b,c,d,e){if(void 0===c&&(c=!0),void 0===e&&(e=!0),d=this.getLayer(d),!(a>b)){for(var f=a;f<=b;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;e<f;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;f<this.layers[c].height;f++)for(var g=0;g<this.layers[c].width;g++){var h=this.layers[c].data[f][g];h&&h.index===a&&(b?h.setCollision(!0,!0,!0,!0):h.resetCollision(),h.faceTop=b,h.faceBottom=b,h.faceLeft=b,h.faceRight=b)}return d&&this.calculateFaces(c),c},getLayer:function(a){return void 0===a?a=this.currentLayer:"string"==typeof a?a=this.getLayerIndex(a):a instanceof c.TilemapLayer&&(a=a.index),a},setPreventRecalculate:function(a){if(!0===a&&!0!==this.preventingRecalculate&&(this.preventingRecalculate=!0,this.needToRecalculate={}),!1===a&&!0===this.preventingRecalculate){this.preventingRecalculate=!1;for(var b in this.needToRecalculate)this.calculateFaces(b);this.needToRecalculate=!1}},calculateFaces:function(a){if(this.preventingRecalculate)return void(this.needToRecalculate[a]=!0);for(var b=null,c=null,d=null,e=null,f=0,g=this.layers[a].height;f<g;f++)for(var h=0,i=this.layers[a].width;h<i;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c<this.layers[a].height-1?this.layers[a].data[c+1][b]:null},getTileLeft:function(a,b,c){return b>0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b<this.layers[a].width-1?this.layers[a].data[c][b+1]:null},setLayer:function(a){a=this.getLayer(a),this.layers[a]&&(this.currentLayer=a)},hasTile:function(a,b,c){return c=this.getLayer(c),void 0!==this.layers[c].data[b]&&void 0!==this.layers[c].data[b][a]&&this.layers[c].data[b][a].index>-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a<this.layers[d].width&&b>=0&&b<this.layers[d].height&&this.hasTile(a,b,d)){var e=this.layers[d].data[b][a];return this.layers[d].data[b][a]=new c.Tile(this.layers[d],-1,a,b,this.tileWidth,this.tileHeight),this.layers[d].dirty=!0,this.calculateFaces(d),e}},removeTileWorldXY:function(a,b,c,d,e){return e=this.getLayer(e),a=this.game.math.snapToFloor(a,c)/c,b=this.game.math.snapToFloor(b,d)/d,
|
||
this.removeTile(a,b,e)},putTile:function(a,b,d,e){if(null===a)return this.removeTile(b,d,e);if(e=this.getLayer(e),b>=0&&b<this.layers[e].width&&d>=0&&d<this.layers[e].height){var f;return a instanceof c.Tile?(f=a.index,this.hasTile(b,d,e)?this.layers[e].data[d][b].copy(a):this.layers[e].data[d][b]=new c.Tile(e,f,b,d,a.width,a.height)):(f=a,this.hasTile(b,d,e)?this.layers[e].data[d][b].index=f:this.layers[e].data[d][b]=new c.Tile(this.layers[e],f,b,d,this.tileWidth,this.tileHeight)),this.collideIndexes.indexOf(f)>-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f<this.layers[d].height;f++)for(var g=0;g<this.layers[d].width;g++)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}return null},getTile:function(a,b,c,d){return void 0===d&&(d=!1),c=this.getLayer(c),a>=0&&a<this.layers[c].width&&b>=0&&b<this.layers[c].height?-1===this.layers[c].data[b][a].index?d?this.layers[c].data[b][a]:null:this.layers[c].data[b][a]:null},getTileWorldXY:function(a,b,c,d,e,f){return void 0===c&&(c=this.tileWidth),void 0===d&&(d=this.tileHeight),e=this.getLayer(e),a=this.game.math.snapToFloor(a,c)/c,b=this.game.math.snapToFloor(b,d)/d,this.getTile(a,b,e,f)},copy:function(a,b,c,d,e){if(e=this.getLayer(e),!this.layers[e])return void(this._results.length=0);void 0===a&&(a=0),void 0===b&&(b=0),void 0===c&&(c=this.layers[e].width),void 0===d&&(d=this.layers[e].height),a<0&&(a=0),b<0&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;f<b+d;f++)for(var g=a;g<a+c;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g<c.length;g++)this.layers[d].data[f+c[g].y][e+c[g].x].copy(c[g]);this.layers[d].dirty=!0,this.calculateFaces(d)}},swap:function(a,b,c,d,e,f,g){g=this.getLayer(g),this.copy(c,d,e,f,g),this._results.length<2||(this._tempA=a,this._tempB=b,this._results.forEach(this.swapHandler,this),this.paste(c,d,this._results,g))},swapHandler:function(a){a.index===this._tempA?a.index=this._tempB:a.index===this._tempB&&(a.index=this._tempA)},forEach:function(a,b,c,d,e,f,g){g=this.getLayer(g),this.copy(c,d,e,f,g),this._results.length<2||(this._results.forEach(a,b),this.paste(c,d,this._results,g))},replace:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(c,d,e,f,g),!(this._results.length<2)){for(var h=1;h<this._results.length;h++)this._results[h].index===a&&(this._results[h].index=b);this.paste(c,d,this._results,g)}},random:function(a,b,c,d,e){if(e=this.getLayer(e),this.copy(a,b,c,d,e),!(this._results.length<2)){for(var f=[],g=1;g<this._results.length;g++)if(this._results[g].index){var h=this._results[g].index;-1===f.indexOf(h)&&f.push(h)}for(var i=1;i<this._results.length;i++)this._results[i].index=this.game.rnd.pick(f);this.paste(a,b,this._results,e)}},shuffle:function(a,b,d,e,f){if(f=this.getLayer(f),this.copy(a,b,d,e,f),!(this._results.length<2)){for(var g=[],h=1;h<this._results.length;h++)this._results[h].index&&g.push(this._results[h].index);c.ArrayUtils.shuffle(g);for(var i=1;i<this._results.length;i++)this._results[i].index=g[i-1];this.paste(a,b,this._results,f)}},fill:function(a,b,c,d,e,f){if(f=this.getLayer(f),this.copy(b,c,d,e,f),!(this._results.length<2)){for(var g=1;g<this._results.length;g++)this._results[g].index=a;this.paste(b,c,this._results,f)}},removeAllLayers:function(){this.layers.length=0,this.currentLayer=0},dump:function(){for(var a="",b=[""],c=0;c<this.layers[this.currentLayer].height;c++){for(var d=0;d<this.layers[this.currentLayer].width;d++)a+="%c ",this.layers[this.currentLayer].data[c][d]>1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=PIXI.CanvasPool.create(this,2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y},c.TilemapLayer.prototype._renderCanvas=function(a){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y,this.render(),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.TilemapLayer.prototype._renderWebGL=function(a){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y,this.render(),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this)},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 1===this.scrollFactorX||0===this.scrollFactorX&&0===this.position.x?a:0===this.scrollFactorX&&0!==this.position.x?a-this.position.x:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 1===this.scrollFactorY||0===this.scrollFactorY&&0===this.position.y?a:0===this.scrollFactorY&&0!==this.position.y?a-this.position.y:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;h<e.length;h++)for(var i=0;i<f.length;i++){var j=e[h],k=f[i];if(j.containsPoint(k[0],k[1])){g.push(j);break}}return g},c.TilemapLayer.prototype.getTiles=function(a,b,c,d,e,f){void 0===e&&(e=!1),void 0===f&&(f=!1);var g=!(e||f);a=this._fixX(a),b=this._fixY(b);for(var h=Math.floor(a/(this._mc.cw*this.scale.x)),i=Math.floor(b/(this._mc.ch*this.scale.y)),j=Math.ceil((a+c)/(this._mc.cw*this.scale.x))-h,k=Math.ceil((b+d)/(this._mc.ch*this.scale.y))-i;this._results.length;)this._results.pop();for(var l=i;l<i+k;l++)for(var m=h;m<h+j;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(a<2e3)for(;b.length<a;)b.push(void 0);var c=this.map.tiles[a]&&this.map.tiles[a][2];if(null!==c){var d=this.map.tilesets[c];if(d&&d.containsTileIndex(a))return b[a]=d}return b[a]=null},c.TilemapLayer.prototype.resetTilesetCache=function(){for(var a=this._mc.tilesets;a.length;)a.pop()},c.TilemapLayer.prototype.setScale=function(a,b){a=a||1,b=b||a;for(var c=0;c<this.layer.data.length;c++)for(var d=this.layer.data[c],e=0;e<d.length;e++){var f=d[e];f.width=this.map.tileWidth*a,f.height=this.map.tileHeight*b,f.worldX=f.x*f.width,f.worldY=f.y*f.height}this.scale.setTo(a,b)},c.TilemapLayer.prototype.shiftCanvas=function(a,b,c){var d=a.canvas,e=d.width-Math.abs(b),f=d.height-Math.abs(c),g=0,h=0,i=b,j=c;b<0&&(g=-b,i=0),c<0&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width<e||k.height<f)&&(k.width=e,k.height=f);var l=k.getContext("2d");l.clearRect(0,0,e,f),l.drawImage(d,g,h,e,f,0,0,e,f),a.clearRect(i,j,e,f),a.drawImage(k,0,0,e,f,i,j,e,f)}else a.save(),a.globalCompositeOperation="copy",a.drawImage(d,g,h,e,f,i,j,e,f),a.restore()},c.TilemapLayer.prototype.renderRegion=function(a,b,c,d,e,f){var g=this.context,h=this.layer.width,i=this.layer.height,j=this._mc.tileWidth,k=this._mc.tileHeight,l=this._mc.tilesets,m=NaN;this._wrap||(c<=e&&(c=Math.max(0,c),e=Math.min(h-1,e)),d<=f&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(a<0?(i=e+a,j=e-1):a>0&&(j=a),b<0?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),i<=j){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(k<=l){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,f.renderWidth===b&&f.renderHeight===c||(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)<Math.min(b,c)?this.renderDeltaScroll(g,h):this.renderFull(),this.debug&&(this.context.globalAlpha=1,this.renderDebug()),this.texture.baseTexture.dirty(),this.dirty=!1,this.context.restore(),!0}},c.TilemapLayer.prototype.renderDebug=function(){var a,b,c,d,e,f,g=this._mc.scrollX,h=this._mc.scrollY,i=this.context,j=this.canvas.width,k=this.canvas.height,l=this.layer.width,m=this.layer.height,n=this._mc.tileWidth,o=this._mc.tileHeight,p=Math.floor(g/n),q=Math.floor((j-1+g)/n),r=Math.floor(h/o),s=Math.floor((k-1+h)/o),t=p*n-g,u=r*o-h,v=(p+(1<<20)*l)%l,w=(r+(1<<20)*m)%m;for(i.strokeStyle=this.debugSettings.facingEdgeStroke,d=w,f=s-r,b=u;f>=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.closePath(),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={INSERT_NULL:!1,parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;k<h.length;k++){g[k]=[];for(var l=h[k].split(","),m=0;m<l.length;m++)g[k][m]=new c.Tile(f.layers[0],parseInt(l[m],10),m,k,d,e);0===j&&(j=l.length)}return f.format=c.Tilemap.CSV,f.name=a,f.width=j,f.height=i,f.tileWidth=d,f.tileHeight=e,f.widthInPixels=j*d,f.heightInPixels=i*e,f.layers[0].width=j,f.layers[0].height=i,f.layers[0].widthInPixels=f.widthInPixels,f.layers[0].heightInPixels=f.heightInPixels,f.layers[0].data=g,f},getEmptyData:function(a,b,c,d){return{width:void 0!==c&&null!==c?c:0,height:void 0!==d&&null!==d?d:0,tileWidth:void 0!==a&&null!==a?a:0,tileHeight:void 0!==b&&null!==b?b:0,orientation:"orthogonal",version:"1",properties:{},widthInPixels:0,heightInPixels:0,layers:[{name:"layer",x:0,y:0,width:0,height:0,widthInPixels:0,heightInPixels:0,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:[]}],images:[],objects:{},collision:{},tilesets:[],tiles:[]}},parseTiledJSON:function(a){function b(a,b){var c={};for(var d in b){var e=b[d];void 0!==a[e]&&(c[e]=a[e])}return c}if("orthogonal"!==a.orientation)return console.warn("TilemapParser.parseTiledJSON - Only orthogonal map types are supported in this version of Phaser"),null;for(var d={width:a.width,height:a.height,tileWidth:a.tilewidth,tileHeight:a.tileheight,orientation:a.orientation,format:c.Tilemap.TILED_JSON,version:a.version,properties:a.properties,widthInPixels:a.width*a.tilewidth,heightInPixels:a.height*a.tileheight},e=[],f=0;f<a.layers.length;f++)if("tilelayer"===a.layers[f].type){var g=a.layers[f];if(!g.compression&&g.encoding&&"base64"===g.encoding){for(var h=window.atob(g.data),i=h.length,j=new Array(i),k=0;k<i;k+=4)j[k/4]=(h.charCodeAt(k)|h.charCodeAt(k+1)<<8|h.charCodeAt(k+2)<<16|h.charCodeAt(k+3)<<24)>>>0;g.data=j,delete g.encoding}else if(g.compression){console.warn("TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer '"+g.name+"'");continue}var l={name:g.name,x:g.x,y:g.y,width:g.width,height:g.height,widthInPixels:g.width*a.tilewidth,heightInPixels:g.height*a.tileheight,alpha:g.opacity,visible:g.visible,properties:{},indexes:[],callbacks:[],bodies:[]};g.properties&&(l.properties=g.properties);for(var m,n,o,p,q=0,r=[],s=[],t=0,i=g.data.length;t<i;t++){if(m=0,n=!1,p=g.data[t],o=0,p>536870912)switch(p>2147483648&&(p-=2147483648,o+=4),p>1073741824&&(p-=1073741824,o+=2),p>536870912&&(p-=536870912,o+=1),o){case 5:m=Math.PI/2;break;case 6:m=Math.PI;break;case 3:m=3*Math.PI/2;break;case 4:m=0,n=!0;break;case 7:m=Math.PI/2,n=!0;break;case 2:m=Math.PI,n=!0;break;case 1:m=3*Math.PI/2,n=!0}if(p>0){var u=new c.Tile(l,p,q,s.length,a.tilewidth,a.tileheight);u.rotation=m,u.flipped=n,0!==o&&(u.flippedVal=o),r.push(u)}else c.TilemapParser.INSERT_NULL?r.push(null):r.push(new c.Tile(l,-1,q,s.length,a.tilewidth,a.tileheight));q++,q===g.width&&(s.push(r),q=0,r=[])}l.data=s,e.push(l)}d.layers=e;for(var v=[],f=0;f<a.layers.length;f++)if("imagelayer"===a.layers[f].type){var w=a.layers[f],x={name:w.name,image:w.image,x:w.x,y:w.y,alpha:w.opacity,visible:w.visible,properties:{}};w.properties&&(x.properties=w.properties),v.push(x)}d.images=v;for(var y=[],z=[],A=null,f=0;f<a.tilesets.length;f++){var B=a.tilesets[f];if(B.image){var C=new c.Tileset(B.name,B.firstgid,B.tilewidth,B.tileheight,B.margin,B.spacing,B.properties);B.tileproperties&&(C.tileProperties=B.tileproperties),C.updateTileData(B.imagewidth,B.imageheight),y.push(C)}else{var D=new c.ImageCollection(B.name,B.firstgid,B.tilewidth,B.tileheight,B.margin,B.spacing,B.properties);for(var E in B.tiles){var x=B.tiles[E].image,p=B.firstgid+parseInt(E,10);D.addImage(p,x)}z.push(D)}A&&(A.lastgid=B.firstgid-1),A=B}d.tilesets=y,d.imagecollections=z;for(var F={},G={},f=0;f<a.layers.length;f++)if("objectgroup"===a.layers[f].type){var H=a.layers[f];F[H.name]=[],G[H.name]=[];for(var I=0,i=H.objects.length;I<i;I++)if(H.objects[I].gid){var J={gid:H.objects[I].gid,name:H.objects[I].name,type:H.objects[I].hasOwnProperty("type")?H.objects[I].type:"",x:H.objects[I].x,y:H.objects[I].y,visible:H.objects[I].visible,properties:H.objects[I].properties};H.objects[I].rotation&&(J.rotation=H.objects[I].rotation),F[H.name].push(J)}else if(H.objects[I].polyline){var J={name:H.objects[I].name,type:H.objects[I].type,x:H.objects[I].x,y:H.objects[I].y,width:H.objects[I].width,height:H.objects[I].height,visible:H.objects[I].visible,properties:H.objects[I].properties};H.objects[I].rotation&&(J.rotation=H.objects[I].rotation),J.polyline=[];for(var K=0;K<H.objects[I].polyline.length;K++)J.polyline.push([H.objects[I].polyline[K].x,H.objects[I].polyline[K].y]);G[H.name].push(J),F[H.name].push(J)}else if(H.objects[I].polygon){var J=b(H.objects[I],["name","type","x","y","visible","rotation","properties"]);J.polygon=[];for(var K=0;K<H.objects[I].polygon.length;K++)J.polygon.push([H.objects[I].polygon[K].x,H.objects[I].polygon[K].y]);F[H.name].push(J)}else if(H.objects[I].ellipse){var J=b(H.objects[I],["name","type","ellipse","x","y","width","height","visible","rotation","properties"]);F[H.name].push(J)}else{var J=b(H.objects[I],["name","type","x","y","width","height","visible","rotation","properties"]);J.rectangle=!0,F[H.name].push(J)}}d.objects=F,d.collision=G,d.tiles=[];for(var f=0;f<d.tilesets.length;f++)for(var B=d.tilesets[f],q=B.tileMargin,L=B.tileMargin,M=0,N=0,O=0,t=B.firstgid;t<B.firstgid+B.total&&(d.tiles[t]=[q,L,f],q+=B.tileWidth+B.tileSpacing,++M!==B.total)&&(++N!==B.columns||(q=B.tileMargin,L+=B.tileHeight+B.tileSpacing,N=0,++O!==B.rows));t++);for(var l,u,P,B,f=0;f<d.layers.length;f++){l=d.layers[f],B=null;for(var k=0;k<l.data.length;k++){r=l.data[k];for(var Q=0;Q<r.length;Q++)null===(u=r[Q])||u.index<0||(P=d.tiles[u.index][2],B=d.tilesets[P],B.tileProperties&&B.tileProperties[u.index-B.firstgid]&&(u.properties=c.Utils.mixin(B.tileProperties[u.index-B.firstgid],u.properties)))}}return d}},c.Tileset=function(a,b,c,d,e,f,g){(void 0===c||c<=0)&&(c=32),(void 0===d||d<=0)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1<this.drawCoords.length&&a.drawImage(this.image,this.drawCoords[e],this.drawCoords[e+1],this.tileWidth,this.tileHeight,b,c,this.tileWidth,this.tileHeight)},containsTileIndex:function(a){return a>=this.firstgid&&a<this.firstgid+this.total},setImage:function(a){this.image=a,this.updateTileData(a.width,a.height)},setSpacing:function(a,b){this.tileMargin=0|a,this.tileSpacing=0|b,this.image&&this.updateTileData(this.image.width,this.image.height)},updateTileData:function(a,b){var c=(b-2*this.tileMargin+this.tileSpacing)/(this.tileHeight+this.tileSpacing),d=(a-2*this.tileMargin+this.tileSpacing)/(this.tileWidth+this.tileSpacing);c%1==0&&d%1==0||console.warn("Phaser.Tileset - "+this.name+" image tile area is not an even multiple of tile size"),c=Math.floor(c),d=Math.floor(d),(this.rows&&this.rows!==c||this.columns&&this.columns!==d)&&console.warn("Phaser.Tileset - actual and expected number of tile rows and columns differ"),this.rows=c,this.columns=d,this.total=c*d,this.drawCoords.length=0;for(var e=this.tileMargin,f=this.tileMargin,g=0;g<this.rows;g++){for(var h=0;h<this.columns;h++)this.drawCoords.push(e),this.drawCoords.push(f),e+=this.tileWidth+this.tileSpacing;e=this.tileMargin,f+=this.tileHeight+this.tileSpacing}}},c.Tileset.prototype.constructor=c.Tileset,c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,d){return c.Component.Reset.prototype.reset.call(this,a,b,d),this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Particles.Arcade={},c.Particles.Arcade.Emitter=function(a,b,d,e){this.maxParticles=e||50,c.Group.call(this,a),this.name="emitter"+this.game.particles.ID++,this.type=c.EMITTER,this.physicsType=c.GROUP,this.area=new c.Rectangle(b,d,1,1),this.minParticleSpeed=new c.Point(-100,-100),this.maxParticleSpeed=new c.Point(100,100),this.minParticleScale=1,this.maxParticleScale=1,this.scaleData=null,this.minRotation=-360,this.maxRotation=360,this.minParticleAlpha=1,this.maxParticleAlpha=1,this.alphaData=null,this.gravity=100,this.particleClass=c.Particle,this.particleDrag=new c.Point,this.angularDrag=0,this.frequency=100,this.lifespan=2e3,this.bounce=new c.Point,this.on=!1,this.particleAnchor=new c.Point(.5,.5),this.blendMode=c.blendModes.NORMAL,this.emitX=b,this.emitY=d,this.autoScale=!1,this.autoAlpha=!1,this.particleBringToTop=!1,this.particleSendToBack=!1,this._minParticleScale=new c.Point(1,1),this._maxParticleScale=new c.Point(1,1),this._quantity=0,this._timer=0,this._counter=0,this._flowQuantity=0,this._flowTotal=0,this._explode=!0,this._frames=null},c.Particles.Arcade.Emitter.prototype=Object.create(c.Group.prototype),c.Particles.Arcade.Emitter.prototype.constructor=c.Particles.Arcade.Emitter,c.Particles.Arcade.Emitter.prototype.update=function(){if(this.on&&this.game.time.time>=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a<this._flowQuantity;a++)if(this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);g<c;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){return this.on=!1,this.alive=!1,this.exists=!1,this},c.Particles.Arcade.Emitter.prototype.revive=function(){return this.alive=!0,this.exists=!0,this},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){return this._flowTotal=0,this.start(!0,a,0,b,!1),this},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){return void 0!==c&&0!==c||(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c),this},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),void 0!==c&&null!==c||(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;f<d;f++)this.emitParticle();else this.on=!0,this._quantity=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion;return this},c.Particles.Arcade.Emitter.prototype.emitParticle=function(a,b,c,d){void 0===a&&(a=null),void 0===b&&(b=null);var e=this.getFirstExists(!1);if(null===e)return!1;var f=this.game.rnd;void 0!==c&&void 0!==d?e.loadTexture(c,d):void 0!==c&&e.loadTexture(c);var g=this.emitX,h=this.emitY;null!==a?g=a:this.width>1&&(g=f.between(this.left,this.right)),null!==b?h=b:this.height>1&&(h=f.between(this.top,this.bottom)),e.reset(g,h),e.angle=0,e.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(e):this.particleSendToBack&&this.sendToBack(e),this.autoScale?e.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?e.scale.set(f.realInRange(this.minParticleScale,this.maxParticleScale)):this._minParticleScale.x===this._maxParticleScale.x&&this._minParticleScale.y===this._maxParticleScale.y||e.scale.set(f.realInRange(this._minParticleScale.x,this._maxParticleScale.x),f.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),void 0===d&&(Array.isArray(this._frames)?e.frame=this.game.rnd.pick(this._frames):e.frame=this._frames),this.autoAlpha?e.setAlphaData(this.alphaData):e.alpha=f.realInRange(this.minParticleAlpha,this.maxParticleAlpha),e.blendMode=this.blendMode;var i=e.body;return i.updateBounds(),i.bounce.copyFrom(this.bounce),i.drag.copyFrom(this.particleDrag),i.velocity.x=f.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),i.velocity.y=f.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),i.angularVelocity=f.between(this.minRotation,this.maxRotation),i.gravity.y=this.gravity,i.angularDrag=this.angularDrag,e.onEmit(),!0},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){return this.area.width=a,this.area.height=b,this},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b,this},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b,this},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){return a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b,this},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}return this},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),
|
||
this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}return this},c.Particles.Arcade.Emitter.prototype.at=function(a){return a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height),this},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Weapon=function(a,b){c.Plugin.call(this,a,b),this.bullets=null,this.autoExpandBulletsGroup=!1,this.autofire=!1,this.shots=0,this.fireLimit=0,this.fireRate=100,this.fireRateVariance=0,this.fireFrom=new c.Rectangle(0,0,1,1),this.fireAngle=c.ANGLE_UP,this.bulletInheritSpriteSpeed=!1,this.bulletAnimation="",this.bulletFrameRandom=!1,this.bulletFrameCycle=!1,this.bulletWorldWrap=!1,this.bulletWorldWrapPadding=0,this.bulletAngleOffset=0,this.bulletAngleVariance=0,this.bulletSpeed=200,this.bulletSpeedVariance=0,this.bulletLifespan=0,this.bulletKillDistance=0,this.bulletGravity=new c.Point(0,0),this.bulletRotateToVelocity=!1,this.bulletKey="",this.bulletFrame="",this._bulletClass=c.Bullet,this._bulletCollideWorldBounds=!1,this._bulletKillType=c.Weapon.KILL_WORLD_BOUNDS,this._data={customBody:!1,width:0,height:0,offsetX:0,offsetY:0},this.bounds=new c.Rectangle,this.bulletBounds=a.world.bounds,this.bulletFrames=[],this.bulletFrameIndex=0,this.anims={},this.onFire=new c.Signal,this.onKill=new c.Signal,this.onFireLimit=new c.Signal,this.trackedSprite=null,this.trackedPointer=null,this.trackRotation=!1,this.trackOffset=new c.Point,this._nextFire=0,this._rotatedPoint=new c.Point},c.Weapon.prototype=Object.create(c.Plugin.prototype),c.Weapon.prototype.constructor=c.Weapon,c.Weapon.KILL_NEVER=0,c.Weapon.KILL_LIFESPAN=1,c.Weapon.KILL_DISTANCE=2,c.Weapon.KILL_WEAPON_BOUNDS=3,c.Weapon.KILL_CAMERA_BOUNDS=4,c.Weapon.KILL_WORLD_BOUNDS=5,c.Weapon.KILL_STATIC_BOUNDS=6,c.Weapon.prototype.createBullets=function(a,b,d,e){return void 0===a&&(a=1),void 0===e&&(e=this.game.world),this.bullets||(this.bullets=this.game.add.physicsGroup(c.Physics.ARCADE,e),this.bullets.classType=this._bulletClass),0!==a&&(-1===a&&(this.autoExpandBulletsGroup=!0,a=1),this.bullets.createMultiple(a,b,d),this.bullets.setAll("data.bulletManager",this),this.bulletKey=b,this.bulletFrame=d),this},c.Weapon.prototype.forEach=function(a,b){return this.bullets.forEachExists(a,b,arguments),this},c.Weapon.prototype.pauseAll=function(){return this.bullets.setAll("body.enable",!1),this},c.Weapon.prototype.resumeAll=function(){return this.bullets.setAll("body.enable",!0),this},c.Weapon.prototype.killAll=function(){return this.bullets.callAllExists("kill",!0),this.bullets.setAll("body.enable",!0),this},c.Weapon.prototype.resetShots=function(a){return this.shots=0,void 0!==a&&(this.fireLimit=a),this},c.Weapon.prototype.destroy=function(){this.parent.remove(this,!1),this.bullets.destroy(),this.game=null,this.parent=null,this.active=!1,this.visible=!1},c.Weapon.prototype.update=function(){this._bulletKillType===c.Weapon.KILL_WEAPON_BOUNDS&&(this.trackedSprite?(this.trackedSprite.updateTransform(),this.bounds.centerOn(this.trackedSprite.worldPosition.x,this.trackedSprite.worldPosition.y)):this.trackedPointer&&this.bounds.centerOn(this.trackedPointer.worldX,this.trackedPointer.worldY)),this.autofire&&this.fire()},c.Weapon.prototype.trackSprite=function(a,b,c,d){return void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d=!1),this.trackedPointer=null,this.trackedSprite=a,this.trackRotation=d,this.trackOffset.set(b,c),this},c.Weapon.prototype.trackPointer=function(a,b,c){return void 0===a&&(a=this.game.input.activePointer),void 0===b&&(b=0),void 0===c&&(c=0),this.trackedPointer=a,this.trackedSprite=null,this.trackRotation=!1,this.trackOffset.set(b,c),this},c.Weapon.prototype.fire=function(a,b,d){if(this.game.time.now<this._nextFire||this.fireLimit>0&&this.shots===this.fireLimit)return!1;var e=this.bulletSpeed;0!==this.bulletSpeedVariance&&(e+=c.Math.between(-this.bulletSpeedVariance,this.bulletSpeedVariance)),a?this.fireFrom.width>1?this.fireFrom.centerOn(a.x,a.y):(this.fireFrom.x=a.x,this.fireFrom.y=a.y):this.trackedSprite?(this.trackRotation?(this._rotatedPoint.set(this.trackedSprite.world.x+this.trackOffset.x,this.trackedSprite.world.y+this.trackOffset.y),this._rotatedPoint.rotate(this.trackedSprite.world.x,this.trackedSprite.world.y,this.trackedSprite.rotation),this.fireFrom.width>1?this.fireFrom.centerOn(this._rotatedPoint.x,this._rotatedPoint.y):(this.fireFrom.x=this._rotatedPoint.x,this.fireFrom.y=this._rotatedPoint.y)):this.fireFrom.width>1?this.fireFrom.centerOn(this.trackedSprite.world.x+this.trackOffset.x,this.trackedSprite.world.y+this.trackOffset.y):(this.fireFrom.x=this.trackedSprite.world.x+this.trackOffset.x,this.fireFrom.y=this.trackedSprite.world.y+this.trackOffset.y),this.bulletInheritSpriteSpeed&&(e+=this.trackedSprite.body.speed)):this.trackedPointer&&(this.fireFrom.width>1?this.fireFrom.centerOn(this.trackedPointer.world.x+this.trackOffset.x,this.trackedPointer.world.y+this.trackOffset.y):(this.fireFrom.x=this.trackedPointer.world.x+this.trackOffset.x,this.fireFrom.y=this.trackedPointer.world.y+this.trackOffset.y));var f=this.fireFrom.width>1?this.fireFrom.randomX:this.fireFrom.x,g=this.fireFrom.height>1?this.fireFrom.randomY:this.fireFrom.y,h=this.trackRotation?this.trackedSprite.angle:this.fireAngle;void 0!==b&&void 0!==d&&(h=this.game.math.radToDeg(Math.atan2(d-g,b-f))),0!==this.bulletAngleVariance&&(h+=c.Math.between(-this.bulletAngleVariance,this.bulletAngleVariance));var i=0,j=0;0===h||180===h?i=Math.cos(this.game.math.degToRad(h))*e:90===h||270===h?j=Math.sin(this.game.math.degToRad(h))*e:(i=Math.cos(this.game.math.degToRad(h))*e,j=Math.sin(this.game.math.degToRad(h))*e);var k=null;if(this.autoExpandBulletsGroup?(k=this.bullets.getFirstExists(!1,!0,f,g,this.bulletKey,this.bulletFrame),k.data.bulletManager=this):k=this.bullets.getFirstExists(!1),k){if(k.reset(f,g),k.data.fromX=f,k.data.fromY=g,k.data.killType=this.bulletKillType,k.data.killDistance=this.bulletKillDistance,k.data.rotateToVelocity=this.bulletRotateToVelocity,this.bulletKillType===c.Weapon.KILL_LIFESPAN&&(k.lifespan=this.bulletLifespan),k.angle=h+this.bulletAngleOffset,""!==this.bulletAnimation){if(null===k.animations.getAnimation(this.bulletAnimation)){var l=this.anims[this.bulletAnimation];k.animations.add(l.name,l.frames,l.frameRate,l.loop,l.useNumericIndex)}k.animations.play(this.bulletAnimation)}else this.bulletFrameCycle?(k.frame=this.bulletFrames[this.bulletFrameIndex],++this.bulletFrameIndex>=this.bulletFrames.length&&(this.bulletFrameIndex=0)):this.bulletFrameRandom&&(k.frame=this.bulletFrames[Math.floor(Math.random()*this.bulletFrames.length)]);if(k.data.bodyDirty&&(this._data.customBody&&k.body.setSize(this._data.width,this._data.height,this._data.offsetX,this._data.offsetY),k.body.collideWorldBounds=this.bulletCollideWorldBounds,k.data.bodyDirty=!1),k.body.velocity.set(i,j),k.body.gravity.set(this.bulletGravity.x,this.bulletGravity.y),0!==this.bulletSpeedVariance){var m=this.fireRate;m+=c.Math.between(-this.fireRateVariance,this.fireRateVariance),m<0&&(m=0),this._nextFire=this.game.time.now+m}else this._nextFire=this.game.time.now+this.fireRate;this.shots++,this.onFire.dispatch(k,this,e),this.fireLimit>0&&this.shots===this.fireLimit&&this.onFireLimit.dispatch(this,this.fireLimit)}return k},c.Weapon.prototype.fireAtPointer=function(a){return void 0===a&&(a=this.game.input.activePointer),this.fire(null,a.worldX,a.worldY)},c.Weapon.prototype.fireAtSprite=function(a){return this.fire(null,a.world.x,a.world.y)},c.Weapon.prototype.fireAtXY=function(a,b){return this.fire(null,a,b)},c.Weapon.prototype.setBulletBodyOffset=function(a,b,c,d){return void 0===c&&(c=0),void 0===d&&(d=0),this._data.customBody=!0,this._data.width=a,this._data.height=b,this._data.offsetX=c,this._data.offsetY=d,this.bullets.callAll("body.setSize","body",a,b,c,d),this.bullets.setAll("data.bodyDirty",!1),this},c.Weapon.prototype.setBulletFrames=function(a,b,d,e){return void 0===d&&(d=!0),void 0===e&&(e=!1),this.bulletFrames=c.ArrayUtils.numberArray(a,b),this.bulletFrameIndex=0,this.bulletFrameCycle=d,this.bulletFrameRandom=e,this},c.Weapon.prototype.addBulletAnimation=function(a,b,c,d,e){return this.anims[a]={name:a,frames:b,frameRate:c,loop:d,useNumericIndex:e},this.bullets.callAll("animations.add","animations",a,b,c,d,e),this.bulletAnimation=a,this},c.Weapon.prototype.debug=function(a,b,c){void 0===a&&(a=16),void 0===b&&(b=32),void 0===c&&(c=!1),this.game.debug.text("Weapon Plugin",a,b),this.game.debug.text("Bullets Alive: "+this.bullets.total+" - Total: "+this.bullets.length,a,b+24),c&&this.bullets.forEachExists(this.game.debug.body,this.game.debug,"rgba(255, 0, 255, 0.8)")},Object.defineProperty(c.Weapon.prototype,"bulletClass",{get:function(){return this._bulletClass},set:function(a){this._bulletClass=a,this.bullets.classType=this._bulletClass}}),Object.defineProperty(c.Weapon.prototype,"bulletKillType",{get:function(){return this._bulletKillType},set:function(a){switch(a){case c.Weapon.KILL_STATIC_BOUNDS:case c.Weapon.KILL_WEAPON_BOUNDS:this.bulletBounds=this.bounds;break;case c.Weapon.KILL_CAMERA_BOUNDS:this.bulletBounds=this.game.camera.view;break;case c.Weapon.KILL_WORLD_BOUNDS:this.bulletBounds=this.game.world.bounds}this._bulletKillType=a}}),Object.defineProperty(c.Weapon.prototype,"bulletCollideWorldBounds",{get:function(){return this._bulletCollideWorldBounds},set:function(a){this._bulletCollideWorldBounds=a,this.bullets.setAll("body.collideWorldBounds",a),this.bullets.setAll("data.bodyDirty",!1)}}),Object.defineProperty(c.Weapon.prototype,"x",{get:function(){return this.fireFrom.x},set:function(a){this.fireFrom.x=a}}),Object.defineProperty(c.Weapon.prototype,"y",{get:function(){return this.fireFrom.y},set:function(a){this.fireFrom.y=a}}),c.Bullet=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.anchor.set(.5),this.data={bulletManager:null,fromX:0,fromY:0,bodyDirty:!0,rotateToVelocity:!1,killType:0,killDistance:0}},c.Bullet.prototype=Object.create(c.Sprite.prototype),c.Bullet.prototype.constructor=c.Bullet,c.Bullet.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.data.bulletManager.onKill.dispatch(this),this},c.Bullet.prototype.update=function(){this.exists&&(this.data.killType>c.Weapon.KILL_LIFESPAN&&(this.data.killType===c.Weapon.KILL_DISTANCE?this.game.physics.arcade.distanceToXY(this,this.data.fromX,this.data.fromY,!0)>this.data.killDistance&&this.kill():this.data.bulletManager.bulletBounds.intersects(this)||this.kill()),this.data.rotateToVelocity&&(this.rotation=Math.atan2(this.body.velocity.y,this.body.velocity.x)),this.data.bulletManager.bulletWorldWrap&&this.game.world.wrap(this,this.data.bulletManager.bulletWorldWrapPadding))},c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(c.Cache.DEFAULT.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.chrome)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(a){this.getUserMediaError(a)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;void 0!==b&&null!==b||(b=this.video.videoWidth,d=!0),void 0!==c&&null!==c||(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),this.video.addEventListener("webkitendfullscreen",this._endCallback,!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.active?this.videoStream.active=!1:this.videoStream.getTracks?this.videoStream.getTracks().forEach(function(a){a.stop()}):this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this._endCallback,!0),this.video.removeEventListener("webkitendfullscreen",this._endCallback,!0),this.video.removeEventListener("playing",this._playCallback,!0),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b<a.length;b++)a[b].loadTexture&&a[b].loadTexture(this);else a.loadTexture(this);return this},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},render:function(){!this.disableTextureUpload&&this.playing&&this.baseTexture.dirty()},setMute:function(){this._muted||(this._muted=!0,this.video.muted=!0)},unsetMute:function(){this._muted&&!this._codeMuted&&(this._muted=!1,this.video.muted=!1)},setPause:function(){this._paused||this.touchLocked||(this._paused=!0,this.video.pause())},setResume:function(){!this._paused||this._codePaused||this.touchLocked||(this._paused=!1,this.video.ended||this.video.play())},changeSource:function(a,b){return void 0===b&&(b=!0),this.texture.valid=!1,this.video.pause(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.video.src=a,this.video.load(),this._autoplay=b,b||(this.paused=!0),this},checkVideoProgress:function(){4===this.video.readyState?this.updateTexture():(this.retry--,this.retry>0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){a<0?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return!!this.video&&this.video.loop},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Common/Button",["Phaser"],function(){"use strict";return function(c){function d(b,c,e,f,g,h,i){this.destroy=a(this.destroy,this),this.disable=a(this.disable,this),this.enable=a(this.enable,this),this.setUp=a(this.setUp,this),this.setDown=a(this.setDown,this),this.soundId=i,_.isArray(g)&&(this.downFrameName=g[1],g=this.upFrameName=g[0]),null!=g?d.__super__.constructor.call(this,b,c,e,f,"_default0000"):d.__super__.constructor.call(this,b,c,e,f),g&&(this.sprite=b.make.sprite(0,0,f,g),this.sprite.anchor.set(.5),this.addChild(this.sprite)),this.id=Math.random(),this.customEvents||(this.game.bowser.mobile||this.game.bowser.tablet||this.game.device.iPad?(b.TouchManager.register(this,"touchstart",this.setDown),b.TouchManager.register(this,"touchend",function(a){return function(b,c){return c&&a.isDown&&null!=h&&(a.game.settings.vibrate&&navigator.vibrate&&navigator.vibrate(50),a.game.settings.fx&&a.soundId&&a.game.currentSounds[a.soundId].play(),h(a)),a.setUp()}}(this))):(b.TouchManager.register(this,"mousedown",this.setDown),b.TouchManager.register(this,"mouseup",function(a){return function(b,c){return c&&a.isDown&&null!=h&&(a.game.settings.fx&&a.soundId&&a.game.currentSounds[a.soundId].play(),h(a)),a.setUp()}}(this))))}return b(d,c),d.prototype.setDown=function(){if(this.isDown=!0,this.disabled||null==this.downFrameName||null==this.sprite||(this.sprite.frameName=this.downFrameName),!this.disabled&&this.label)return this.label.scale.set(.95)},d.prototype.setUp=function(){if(this.isDown=!1,this.disabled||null==this.upFrameName||null==this.sprite||(this.sprite.frameName=this.upFrameName),!this.disabled&&this.label)return this.label.scale.set(1)},d.prototype.enable=function(){return this.disabled=!1},d.prototype.disable=function(){return this.disabled=!0},d.prototype.destroy=function(){return this.game.bowser.mobile||this.game.bowser.tablet||this.game.device.iPad?(this.game.TouchManager.unregister(this,"touchstart"),this.game.TouchManager.unregister(this,"touchend")):(this.game.TouchManager.unregister(this,"mousedown"),this.game.TouchManager.unregister(this,"mouseup")),d.__super__.destroy.apply(this,arguments)},d}(Phaser.Sprite)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Common/GoldButton",["./Button","Phaser"],function(b){"use strict";return function(b){function c(a,b,d,e,f,g){var h;null==g&&(g=28),c.__super__.constructor.call(this,a,b,d,"MenuAssets","",f,"pusher"),this.anchor.set(.5),h=this.game.lang.font,this.label=a.make.bitmapText(0,0,h,e+" ",g),this.label.anchor.set(.5),this.addChild(this.label)}return a(c,b),c}(b)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Common/Navies",["./Button","Phaser"],function(c){"use strict";return function(c){function d(b,c,e,f){var g,h,i;for(null==f&&(f=3),this.update=a(this.update,this),d.__super__.constructor.call(this,b,c,e,"MenuAssets","_default0000"),this.anchor.set(.5),g=0,i=f;0<=i?g<=i:g>=i;0<=i?++g:--g)h=new Phaser.Sprite(b,0,0,"MenuAssets","Navy0000"),h.anchor.set(.5),h.scale.set(.3+.7*Math.random()),h.offsetCart={x:200*(Math.random()-.5),y:50*(Math.random()-.5)},h.offset={r:400*Math.random(),theta:Math.random()},h.rprime=0,h.speed={r:7e-4+5e-4*Math.random(),theta:3e-4+5e-4*(Math.random()-.5)},h.pos={r:Math.random(),theta:Math.random()*Math.PI*2},h.update=function(){return this.rprime+=this.speed.r,this.pos.r=this.offset.r*Math.sin(this.rprime),this.pos.theta+=this.speed.theta,this.x=this.offsetCart.x+this.pos.r*Math.cos(this.pos.theta),this.y=this.offsetCart.y+this.pos.r*Math.sin(this.pos.theta)},this.addChild(h)}return b(d,c),d.prototype.update=function(){var a,b,c,d,e;for(d=this.children,e=[],b=0,c=d.length;b<c;b++)a=d[b],e.push(a.update.call(a));return e},d}(Phaser.Sprite)})}.call(this),function(a,b){"object"==typeof exports&&"undefined"!=typeof module?b(exports):"function"==typeof define&&define.amd?define("h5branding",["exports"],b):b(a.h5branding=a.h5branding||{})}(this,function(a){"use strict";function b(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function c(a,b){return b={exports:{}},a(b,b.exports),b.exports}function d(a,b,c){var d=document.createElement("script");d.setAttribute("src",a+"?v="+b),"function"==typeof c&&(d.onload=c),document.body.appendChild(d)}function e(a,b,c,d){return new(c||(c=Promise))(function(e,f){function g(a){try{i(d.next(a))}catch(a){f(a)}}function h(a){try{i(d.throw(a))}catch(a){f(a)}}function i(a){a.done?e(a.value):new c(function(b){b(a.value)}).then(g,h)}i((d=d.apply(a,b||[])).next())})}function f(a,b){function c(a){return function(b){return d([a,b])}}function d(c){if(e)throw new TypeError("Generator is already executing.");for(;i;)try{if(e=1,f&&(g=2&c[0]?f.return:c[0]?f.throw||((g=f.return)&&g.call(f),0):f.next)&&!(g=g.call(f,c[1])).done)return g;switch(f=0,g&&(c=[2&c[0],g.value]),c[0]){case 0:case 1:g=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,f=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(g=i.trys,!(g=g.length>0&&g[g.length-1])&&(6===c[0]||2===c[0])){i=0;continue}if(3===c[0]&&(!g||c[1]>g[0]&&c[1]<g[3])){i.label=c[1];break}if(6===c[0]&&i.label<g[1]){i.label=g[1],g=c;break}if(g&&i.label<g[2]){i.label=g[2],i.ops.push(c);break}g[2]&&i.ops.pop(),i.trys.pop();continue}c=b.call(a,i)}catch(a){c=[6,a],f=0}finally{e=g=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}var e,f,g,h,i={label:0,sent:function(){if(1&g[0])throw g[1];return g[1]},trys:[],ops:[]};return h={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(h[Symbol.iterator]=function(){return this}),h}function g(a,b){return'\n <div id="h5branding-background"></div>\n <div id="h5branding-version"></div>\n <div id="h5branding-logo"></div>\n <div id="h5branding-center">\n <div id="h5branding-ad"></div>\n <div id="h5branding-wrapper">\n <img src="'+a+'" />\n <div id="h5branding-bar"></div>\n <button id="h5branding-button" onclick="h5branding.SplashLoader.getInstance().onPlayButtonClick();">Play</button>\n </div>\n </div>\n <div id="h5branding-title">'+b+"</div>\n "}var h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i=c(function(a,c){!function(c,d){a.exports=function(){function a(a){var b=typeof a;return null!==a&&("object"===b||"function"===b)}function c(a){return"function"==typeof a}function d(a){N=a}function e(a){O=a}function f(){return void 0!==M?function(){M(i)}:g()}function g(){var a=setTimeout;return function(){return a(i,1)}}function i(){for(var a=0;a<L;a+=2){(0,U[a])(U[a+1]),U[a]=void 0,U[a+1]=void 0}L=0}function j(a,b){var c=this,d=new this.constructor(l);void 0===d[W]&&B(d);var e=c._state;if(e){var f=arguments[e-1];O(function(){return y(e,d,f,c._result)})}else w(c,d,a,b);return d}function k(a){var b=this;if(a&&"object"==typeof a&&a.constructor===b)return a;var c=new b(l);return s(c,a),c}function l(){}function m(){return new TypeError("You cannot resolve a promise with itself")}function n(){return new TypeError("A promises callback cannot return that same promise.")}function o(a,b,c,d){try{a.call(b,c,d)}catch(a){return a}}function p(a,b,c){O(function(a){var d=!1,e=o(c,b,function(c){d||(d=!0,b!==c?s(a,c):u(a,c))},function(b){d||(d=!0,v(a,b))},"Settle: "+(a._label||" unknown promise"));!d&&e&&(d=!0,v(a,e))},a)}function q(a,b){b._state===Y?u(a,b._result):b._state===Z?v(a,b._result):w(b,void 0,function(b){return s(a,b)},function(b){return v(a,b)})}function r(a,b,d){b.constructor===a.constructor&&d===j&&b.constructor.resolve===k?q(a,b):void 0===d?u(a,b):c(d)?p(a,b,d):u(a,b)}function s(b,c){if(b===c)v(b,m());else if(a(c)){var d=void 0;try{d=c.then}catch(a){return void v(b,a)}r(b,c,d)}else u(b,c)}function t(a){
|
||
a._onerror&&a._onerror(a._result),x(a)}function u(a,b){a._state===X&&(a._result=b,a._state=Y,0!==a._subscribers.length&&O(x,a))}function v(a,b){a._state===X&&(a._state=Z,a._result=b,O(t,a))}function w(a,b,c,d){var e=a._subscribers,f=e.length;a._onerror=null,e[f]=b,e[f+Y]=c,e[f+Z]=d,0===f&&a._state&&O(x,a)}function x(a){var b=a._subscribers,c=a._state;if(0!==b.length){for(var d=void 0,e=void 0,f=a._result,g=0;g<b.length;g+=3)d=b[g],e=b[g+c],d?y(c,d,e,f):e(f);a._subscribers.length=0}}function y(a,b,d,e){var f=c(d),g=void 0,h=void 0,i=!0;if(f){try{g=d(e)}catch(a){i=!1,h=a}if(b===g)return void v(b,n())}else g=e;b._state!==X||(f&&i?s(b,g):!1===i?v(b,h):a===Y?u(b,g):a===Z&&v(b,g))}function z(a,b){try{b(function(b){s(a,b)},function(b){v(a,b)})}catch(b){v(a,b)}}function A(){return $++}function B(a){a[W]=$++,a._state=void 0,a._result=void 0,a._subscribers=[]}function C(){return new Error("Array Methods must be provided an Array")}function D(a){return new _(this,a).promise}function E(a){var b=this;return new b(K(a)?function(c,d){for(var e=a.length,f=0;f<e;f++)b.resolve(a[f]).then(c,d)}:function(a,b){return b(new TypeError("You must pass an array to race."))})}function F(a){var b=this,c=new b(l);return v(c,a),c}function G(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function H(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function I(){var a=void 0;if(void 0!==h)a=h;else if("undefined"!=typeof self)a=self;else try{a=Function("return this")()}catch(a){throw new Error("polyfill failed because global object is unavailable in this environment")}var b=a.Promise;if(b){var c=null;try{c=Object.prototype.toString.call(b.resolve())}catch(a){}if("[object Promise]"===c&&!b.cast)return}a.Promise=aa}var J=void 0;J=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)};var K=J,L=0,M=void 0,N=void 0,O=function(a,b){U[L]=a,U[L+1]=b,2===(L+=2)&&(N?N(i):V())},P="undefined"!=typeof window?window:void 0,Q=P||{},R=Q.MutationObserver||Q.WebKitMutationObserver,S="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),T="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,U=new Array(1e3),V=void 0;V=S?function(){return function(){return process.nextTick(i)}}():R?function(){var a=0,b=new R(i),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}():T?function(){var a=new MessageChannel;return a.port1.onmessage=i,function(){return a.port2.postMessage(0)}}():void 0===P&&"function"==typeof b?function(){try{var a=Function("return this")().require("vertx");return M=a.runOnLoop||a.runOnContext,f()}catch(a){return g()}}():g();var W=Math.random().toString(36).substring(2),X=void 0,Y=1,Z=2,$=0,_=function(){function a(a,b){this._instanceConstructor=a,this.promise=new a(l),this.promise[W]||B(this.promise),K(b)?(this.length=b.length,this._remaining=b.length,this._result=new Array(this.length),0===this.length?u(this.promise,this._result):(this.length=this.length||0,this._enumerate(b),0===this._remaining&&u(this.promise,this._result))):v(this.promise,C())}return a.prototype._enumerate=function(a){for(var b=0;this._state===X&&b<a.length;b++)this._eachEntry(a[b],b)},a.prototype._eachEntry=function(a,b){var c=this._instanceConstructor,d=c.resolve;if(d===k){var e=void 0,f=void 0,g=!1;try{e=a.then}catch(a){g=!0,f=a}if(e===j&&a._state!==X)this._settledAt(a._state,b,a._result);else if("function"!=typeof e)this._remaining--,this._result[b]=a;else if(c===aa){var h=new c(l);g?v(h,f):r(h,a,e),this._willSettleAt(h,b)}else this._willSettleAt(new c(function(b){return b(a)}),b)}else this._willSettleAt(d(a),b)},a.prototype._settledAt=function(a,b,c){var d=this.promise;d._state===X&&(this._remaining--,a===Z?v(d,c):this._result[b]=c),0===this._remaining&&u(d,this._result)},a.prototype._willSettleAt=function(a,b){var c=this;w(a,void 0,function(a){return c._settledAt(Y,b,a)},function(a){return c._settledAt(Z,b,a)})},a}(),aa=function(){function a(b){this[W]=A(),this._result=this._state=void 0,this._subscribers=[],l!==b&&("function"!=typeof b&&G(),this instanceof a?z(this,b):H())}return a.prototype.catch=function(a){return this.then(null,a)},a.prototype.finally=function(a){var b=this,d=b.constructor;return c(a)?b.then(function(b){return d.resolve(a()).then(function(){return b})},function(b){return d.resolve(a()).then(function(){throw b})}):b.then(a,a)},a}();return aa.prototype.then=j,aa.all=D,aa.race=E,aa.resolve=k,aa.reject=F,aa._setScheduler=d,aa._setAsap=e,aa._asap=O,aa.polyfill=I,aa.Promise=aa,aa}()}()});i.polyfill();!function(a){a[a.Neutral=0]="Neutral",a[a.Yepi=1]="Yepi",a[a.Spele=2]="Spele",a[a.Funnygames=3]="Funnygames",a[a.Kizi=4]="Kizi",a[a.PlayCell=5]="PlayCell",a[a.GameCell=6]="GameCell",a[a.Bild=7]="Bild",a[a.AGame=8]="AGame",a[a.Admeen=9]="Admeen",a[a.PlayTime=10]="PlayTime",a[a.Zigiz=11]="Zigiz"}(a.BrandingDomain||(a.BrandingDomain={}));var j,k=function(){function a(){}return a.has=function(a){var b=a.lastIndexOf(".");if(b<=0||b>=a.length-1)return!1;var c=a.lastIndexOf(".",b-1);if(c<=0||c>=b-1)return!1;var d=j[a.slice(b+1)];return!!d&&d.indexOf(" "+a.slice(c+1,b)+" ")>=0},a.is=function(a){var b=a.lastIndexOf(".");if(b<=0||b>=a.length-1)return!1;if(a.lastIndexOf(".",b-1)>=0)return!1;var c=j[a.slice(b+1)];return!!c&&c.indexOf(" "+a.slice(0,b)+" ")>=0},a.get=function(a){var b=a.lastIndexOf(".");if(b<=0||b>=a.length-1)return null;var c=a.lastIndexOf(".",b-1);if(c<=0||c>=b-1)return null;var d=j[a.slice(b+1)];return d?d.indexOf(" "+a.slice(c+1,b)+" ")<0?null:a.slice(c+1):null},a}(),l=function(){function a(){}return a.setList=function(a){j=a||{}},a.getDomain=function(a){if(!j)return null;var b=a.match(/\./g);if(b&&b.length<2)return a;var c=this.getTld(a);if(!c)return null;var d=a.length-c.length-1;return d=a.lastIndexOf(".",d-1)+1,a.substring(d)||""},a.getTld=function(a){if(!j)return"";var b=a.lastIndexOf("."),c=a.substring(b+1);return j[c.toLowerCase()]?k.get(a)||c:c},a.KEY="Domains",a}(),m=function(){function a(){this.cache={}}return Object.defineProperty(a,"instance",{get:function(){return void 0===a.classInstance&&(a.classInstance=new a),a.classInstance},enumerable:!1,configurable:!0}),a.prototype.load=function(a,b,c){var d=this;return this.contains(a)?Promise.reject("Already in cache."):(this.cache[a]={url:b,data:null},this.requestXhr(b,c).then(function(b){return d.loadComplete(a,b)}).catch(function(b){return d.remove(a),Promise.reject(b)}))},a.prototype.loadComplete=function(a,b){if(!this.contains(a))return Promise.reject("Item was removed from cache before loading was complete.");try{var c=JSON.parse(b);return this.cache[a].data=c,Promise.resolve(c)}catch(a){return Promise.reject("There was an error parsing JSON file.")}},a.prototype.remove=function(a){this.contains(a)&&delete this.cache[a]},a.prototype.get=function(a){return this.contains(a)?this.cache[a].data:null},a.prototype.contains=function(a){return this.cache.hasOwnProperty(a)},a.prototype.isLoading=function(a){return this.contains(a)&&null===this.cache[a].data},a.prototype.isLoaded=function(a){return this.contains(a)&&null!==this.cache[a].data},a.prototype.loadScript=function(a,b,c){return void 0===b&&(b=!0),new Promise(function(b,d){var e=document.createElement("script");e.src=a,e.async=!1,e.onload=function(){"function"==typeof c&&c(),b()},document.head.appendChild(e)})},a.prototype.requestXhr=function(a,b){void 0===b&&(b="application/json");var c;return window.XMLHttpRequest?(c=new XMLHttpRequest,new Promise(function(d,e){c.onreadystatechange=function(){4===c.readyState&&(200===c.status?(d(c.responseText),c.onreadystatechange=null):c.status>0&&(e("There was a problem with the request: status "+c.status),c.onreadystatechange=null))};try{c.open("GET",a,!0),c.setRequestHeader("Content-Type",b),c.send()}catch(a){e("Error: Unable to send request, CORS not allowed.")}})):Promise.reject("Unable to send request, XMLHttpRequest not supported.")},a}();!function(a){a[a.splashscreen=0]="splashscreen",a[a.logo=1]="logo",a[a.facebook=2]="facebook",a[a.twitter=3]="twitter",a[a.playstore=4]="playstore",a[a.appstore=5]="appstore",a[a.more_games=6]="more_games",a[a.download_game=7]="download_game",a[a.walkthrough=8]="walkthrough",a[a.disclaimer=9]="disclaimer",a[a.highscores=10]="highscores"}(a.UtmTargets||(a.UtmTargets={}));var n=function(){function a(){}return a.loadPortalScript=function(a){a&&a.hasOwnProperty("minijuegos")&&-1!==a.minijuegos.indexOf(p.getSourceSite())&&(void 0!==window.mpConfig?window.mpConfig.partner="orange-games":window.mpConfig={partner:"orange-games"},d("https://ext.minijuegosgratis.com/external-host/main.js",Date.now()/1e3)),a&&a.hasOwnProperty("kongregate")&&-1!==a.kongregate.indexOf(p.getSourceSite())&&d("https://cdn1.kongregate.com/javascripts/kongregate_api.js",Date.now()/1e3,function(){"undefined"!=typeof kongregateAPI&&kongregateAPI.loadAPI(function(){window.kongregate=kongregateAPI.getAPI()})}),a&&a.hasOwnProperty("newgrounds")&&-1!==a.newgrounds.indexOf(p.getSourceSite())&&d("https://cdn.fbrq.io/@azerion/splash/assets/scripts/newgroundsio.min.js",Date.now()/1e3)},a}(),o=function(){function b(){}return b.preload=function(a){var c=Promise.all([m.instance.load(l.KEY,p.ASSET_LOCATION+"json/domains.json?v="+a,"text/plain"),m.instance.load(b.SITELOCK_PORTALS,p.ASSET_LOCATION+"json/sitelock.json?v="+a,"text/plain")]);return Promise.all([m.instance.load(b.INTERNAL_PORTALS_KEY,p.ASSET_LOCATION+"json/internal.json?v="+a,"text/plain"),m.instance.load(b.CONTRACTED_PORTALS_KEY,p.ASSET_LOCATION+"json/contracted.json?v="+a,"text/plain"),m.instance.load(b.SPECIAL_PORTALS_KEY,p.ASSET_LOCATION+"json/special.json?v="+a,"text/plain")]),c.then(function(a){var c=a[0],d=a[1];l.setList(c),n.loadPortalScript(d),b.setSiteLock(d)}).catch(function(){console.warn("Unable to parse json")})},b.setSiteLock=function(a){b.siteLocks=a},Object.defineProperty(b,"brandingLogoUrl",{get:function(){var c;switch(p.isOnDevice()||b.isAirfi()?p.ASSET_LOCATION="assets/":"fbrq.io"===p.getSourceSite(!0)&&(p.ASSET_LOCATION="https://"+window.location.host+"/@azerion/splash/assets/"),p.getBrandingDomain()){case a.BrandingDomain.Spele:c="spele";break;case a.BrandingDomain.PlayCell:c="playcell";break;case a.BrandingDomain.GameCell:c="gamecell";break;case a.BrandingDomain.Yepi:c="yepi";break;case a.BrandingDomain.Admeen:c="admeen";break;case a.BrandingDomain.Bild:c="bild";break;case a.BrandingDomain.Kizi:c="kizi";break;case a.BrandingDomain.Funnygames:c="funnygames";break;case a.BrandingDomain.PlayTime:c="playtime";break;default:case a.BrandingDomain.AGame:c="agame";break;case a.BrandingDomain.Zigiz:c="zigiz"}return p.ASSET_LOCATION+"images/branding_logo_"+c+"_small.png"},enumerable:!1,configurable:!0}),Object.defineProperty(b,"brandingBackgroundColor",{get:function(){var b;switch(p.getBrandingDomain()){case a.BrandingDomain.Spele:b="#4a72ad";break;case a.BrandingDomain.PlayCell:b="#52a1e1";break;case a.BrandingDomain.GameCell:b="#c600b2";break;case a.BrandingDomain.Yepi:b="#0573a7";break;case a.BrandingDomain.AGame:b="#0C486C";break;case a.BrandingDomain.Admeen:b="#4267B2";break;case a.BrandingDomain.Bild:b="#de0000";break;default:case a.BrandingDomain.Kizi:b="#012f50";break;case a.BrandingDomain.Funnygames:b="#33b0ff";break;case a.BrandingDomain.PlayTime:case a.BrandingDomain.Zigiz:b="#023a63"}return b},enumerable:!1,configurable:!0}),b.openCampaignLink=function(c,d){if(!p.isOnDevice()&&!b.isSpecial()&&b.outGoingLinksAllowed()){var e,f,g=p.getSourceSite(),h=p.isOnDevice()?"https://":"//";switch(p.getBrandingDomain()){case a.BrandingDomain.Spele:e=h+"www.spele.nl";break;case a.BrandingDomain.Yepi:e=h+"www.yepi.com";break;case a.BrandingDomain.Admeen:return e="https://media.admeen.com/branding/link.php",void((f=window.open(e,"_blank"))&&f.focus&&f.focus());case a.BrandingDomain.PlayCell:e=h+"www.playcell.com";break;case a.BrandingDomain.GameCell:e=h+"www.gamecell.com";break;case a.BrandingDomain.Kizi:e=h+"www.kizi.com";break;case a.BrandingDomain.Bild:return void((f=window.open(h+"www.bildspielt.de","_blank"))&&f.focus&&f.focus());case a.BrandingDomain.Funnygames:e=h+"www.funnygames.nu";break;case a.BrandingDomain.PlayTime:e=h+"playtime.nl";break;default:case a.BrandingDomain.AGame:e=h+"www.agame.com";break;case a.BrandingDomain.Zigiz:e=h+"m.zigiz.com"}var i="string"==typeof d?d:a.UtmTargets[d];f=window.open(e+"/?utm_source="+g+"&utm_medium=html5&utm_term="+c+"&utm_content="+i+"&utm_campaign=Gamedistribution","_blank"),f&&f.focus&&f.focus()}},b.isInternal=function(){return b.hostMatchesList(m.instance.get(b.INTERNAL_PORTALS_KEY))},b.isContracted=function(){return b.hostMatchesList(m.instance.get(b.CONTRACTED_PORTALS_KEY))},b.isSpecial=function(){return b.hostMatchesList(m.instance.get(b.SPECIAL_PORTALS_KEY))},b.isAdmeen=function(){if(!b.siteLocks||!b.siteLocks.hasOwnProperty("admeen"))return!1;var a=b.siteLocks.admeen;return b.hostMatchesList(a)},b.isKongregate=function(){if(!b.siteLocks||!b.siteLocks.hasOwnProperty("kongregate"))return!1;var a=b.siteLocks.kongregate;return b.hostMatchesList(a)},b.isNewgrounds=function(){if(!b.siteLocks||!b.siteLocks.hasOwnProperty("newgrounds"))return!1;var a=b.siteLocks.newgrounds;return b.hostMatchesList(a)},b.isBild=function(){return"bild.fbrq.io"===window.location.host||-1!==window.location.host.indexOf("contentfleet.com")},b.isPlaytime=function(){return-1!==window.location.host.indexOf("playtime.nl")},b.isBip=function(){return-1!==window.location.search.indexOf("bipgaming")||"bip.fbrq.io"===window.location.host},b.isPlaycellApp=function(){return-1!==window.location.search.indexOf("playcellApp")},b.isAGame=function(){return-1!==window.location.search.indexOf("agame")},b.isAirfi=function(){return!!window.hasOwnProperty("airfi")&&window.airfi},b.outGoingLinksAllowed=function(){return!(b.isAirfi()||b.isSpecial()||b.isContracted())&&(!window.hasOwnProperty("fbrqLA")||window.fbrqLA)},b.hostMatchesList=function(a){a=a||[];for(var b=p.getSourceSite(),c=0;c<a.length;c++)if(b===a[c])return!0;return!1},b.LOGO_KEY="branding_logo",b.INTERNAL_PORTALS_KEY="branding_portals",b.CONTRACTED_PORTALS_KEY="branding_contracted",b.SPECIAL_PORTALS_KEY="branding_special",b.SITELOCK_PORTALS="sitelock_portals",b.DOMAIN_OVERWRITE=null,b.analyticsEnabled=!0,b}(),p=function(){function b(){}return b.getSourceSite=function(a){void 0===a&&(a=!1);var c=document.referrer||window.location.host;if(a&&(c=window.location.host),-1!==c.indexOf("embed.gamedistribution.com")&&-1!==window.location.search.indexOf("gd_sdk_referrer_url")&&(c=b.getUrlParameter("gd_sdk_referrer_url")||c),c=decodeURIComponent(c),o.isBild())return"bildspielt.de";if(o.isBip())return"bipgaming.com";c=c.indexOf("://")>-1?c.split("/")[2]:c.split("/")[0],c=c.split(":")[0];var d=l.getDomain(c);return null!==d?d:(3===c.split(".").length&&(c=c.substr(c.indexOf(".")+1)),c)},b.getBrandingDomain=function(){if(window.hasOwnProperty("fbrqBD")&&window.fbrqBD in a.BrandingDomain)return window.fbrqBD;if(o.DOMAIN_OVERWRITE)return o.DOMAIN_OVERWRITE;var c=b.getSourceSite();if(o.isAdmeen())return a.BrandingDomain.Admeen;if(o.isPlaycellApp()||o.isBip())return a.BrandingDomain.PlayCell;switch(c){case"spele.nl":return a.BrandingDomain.Spele;case"yepi.com":return a.BrandingDomain.Yepi;case"oyunskor.com":case"barbioyunu.com.tr":case"bebekoyunu.com.tr":case"oyunkolu.com":case"oyungemisi.com":case"oyunlar1.com":case"oyunkuzusu.com":case"kraloyun.com":case"rekoroyun.com":case"oyundedem.com":case"oyunoyna.com":case"pastaoyunu.com.tr":case"playcell.com":return a.BrandingDomain.PlayCell;case"gamecell.com":return a.BrandingDomain.GameCell;case"playxl.com":return a.BrandingDomain.Admeen;case"kizi.com":return a.BrandingDomain.Kizi;case"bildspielt.de":return a.BrandingDomain.Bild;case"funnygames.nl":return a.BrandingDomain.Funnygames;case"playtime.nl":return a.BrandingDomain.PlayTime;default:case"agame.com":return a.BrandingDomain.AGame;case"gmbl.nl":case"zigiz.com":return a.BrandingDomain.Zigiz;case"coolmathgames.com":return a.BrandingDomain.Neutral}},b.getReferrer=function(a){return-1!==a.indexOf("?ref=")?a.substr(a.indexOf("?ref=")+5):a},b.inIframe=function(){try{return window.self!==window.top}catch(a){return!0}},b.inGDGameZone=function(){return-1!==document.referrer.indexOf("html5.gamedistribution.com")},b.getDomain=function(a){var b=document.createElement("a");return b.href=a,b.origin},b.isOnDevice=function(){return void 0!==window.cordova&&!/(gamedistribution\.com)/.test(window.location.hostname)},b.isTc=function(){return/(teamcity\.azerdev\.com)/.test(window.location.host)},b.getRandomRange=function(a,b){return Math.random()*(b-a)+a|0},b.getUrlParameter=function(a){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var b=new RegExp("[\\?&]"+a+"=([^&#]*)"),c=b.exec(location.search);return null===c?"":decodeURIComponent(c[1].replace(/\+/g," "))},b.intTimeToString=function(a){var b=Math.floor(a/3600),c=Math.floor(a%3600/60),d=a%60;return(b<10?"0"+b:b.toString())+":"+(c<10?"0"+c:c.toString())+":"+(d<10?"0"+d:d.toString())},b.LANGUAGE="en",b.ASSET_LOCATION=window.hasOwnProperty("fbrqSA")&&!0===window.fbrqSA?"assets/":"https://cdn.fbrq.io/@azerion/splash/assets/",b}(),q=function(){function a(){this.fbrqId="UA-60359297-50"}return a.addScript=function(){return o.analyticsEnabled?new Promise(function(b,c){var d=document.createElement("script"),e="https://www.googletagmanager.com/gtag/js?id="+a.GAMeasurementId;d.setAttribute("src",e),d.async=!0,d.onload=function(){b({loaded:!0})},document.head.appendChild(d)}):Promise.resolve()},a.preload=function(){return o.analyticsEnabled&&a.addScript().then(function(a,b){return new Promise(function(b,c){a.loaded&&(window.hasOwnProperty("dataLayer")&&(window.dataLayer=window.dataLayer||[]),gtag=function(){window.hasOwnProperty("dataLayer")&&window.dataLayer.push(arguments)}),b()})}),Promise.resolve()},a.prototype.setup=function(a,b,c,d,e){if(void 0===b&&(b="none"),void 0===c&&(c="none"),void 0===d&&(d="auto"),void 0===e&&(e=100),"function"!=typeof gtag)return null;if(!o.analyticsEnabled){var f="ga-disable-"+a;return window.hasOwnProperty(f)&&(window.disableID=!o.analyticsEnabled),null}var g="none";o.isAGame()&&(g=p.getReferrer(decodeURIComponent(document.referrer))),gtag("js",new Date),gtag("set","user_properties",{app_name:b,app_version:c,referrer:g}),gtag("config",a,{sample_rate:e});var h={name:"fbrq",sample_rate:1,referrer:g,app_name:"All"};if("auto"!==d)for(var i in d)d.hasOwnProperty(i)&&(h[i]=d[i]);return gtag("config",this.fbrqId,h),gtag},a.prototype.sendScreenView=function(a){o.analyticsEnabled&&("undefined"==typeof gtag&&"function"!=typeof gtag||(gtag("event","screen_view",{screen_name:a}),gtag("event","screen_view",{send_to:this.fbrqId,screen_name:a})))},a.prototype.sendGenericEvent=function(a,b,c){o.analyticsEnabled&&("undefined"==typeof gtag&&"function"!=typeof gtag||(gtag("event",b,{event_category:a,event_label:c}),gtag("event",b,{send_to:this.fbrqId,event_category:a,event_label:c})))},a.GAMeasurementId="none",a}(),r=r||function(a,b){var c={},d=c.lib={},e=function(){},f=d.Base={extend:function(a){e.prototype=this;var b=new e;return a&&b.mixIn(a),b.hasOwnProperty("init")||(b.init=function(){b.$super.init.apply(this,arguments)}),b.init.prototype=b,b.$super=this,b},create:function(){var a=this.extend();return a.init.apply(a,arguments),a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},g=d.WordArray=f.extend({init:function(a,b){a=this.words=a||[],this.sigBytes=void 0!=b?b:4*a.length},toString:function(a){return(a||i).stringify(this)},concat:function(a){var b=this.words,c=a.words,d=this.sigBytes;if(a=a.sigBytes,this.clamp(),d%4)for(var e=0;e<a;e++)b[d+e>>>2]|=(c[e>>>2]>>>24-e%4*8&255)<<24-(d+e)%4*8;else if(65535<c.length)for(e=0;e<a;e+=4)b[d+e>>>2]=c[e>>>2];else b.push.apply(b,c);return this.sigBytes+=a,this},clamp:function(){var b=this.words,c=this.sigBytes;b[c>>>2]&=4294967295<<32-c%4*8,b.length=a.ceil(c/4)},clone:function(){var a=f.clone.call(this);return a.words=this.words.slice(0),a},random:function(b){for(var c=[],d=0;d<b;d+=4)c.push(4294967296*a.random()|0);return new g.init(c,b)}}),h=c.enc={},i=h.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],d=0;d<a;d++){var e=b[d>>>2]>>>24-d%4*8&255;c.push((e>>>4).toString(16)),c.push((15&e).toString(16))}return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;d<b;d+=2)c[d>>>3]|=parseInt(a.substr(d,2),16)<<24-d%8*4;return new g.init(c,b/2)}},j=h.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],d=0;d<a;d++)c.push(String.fromCharCode(b[d>>>2]>>>24-d%4*8&255));return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;d<b;d++)c[d>>>2]|=(255&a.charCodeAt(d))<<24-d%4*8;return new g.init(c,b)}},k=h.Utf8={stringify:function(a){try{return decodeURIComponent(escape(j.stringify(a)))}catch(a){throw Error("Malformed UTF-8 data")}},parse:function(a){return j.parse(unescape(encodeURIComponent(a)))}},l=d.BufferedBlockAlgorithm=f.extend({reset:function(){this._data=new g.init,this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=k.parse(a)),this._data.concat(a),this._nDataBytes+=a.sigBytes},_process:function(b){var c=this._data,d=c.words,e=c.sigBytes,f=this.blockSize,h=e/(4*f),h=b?a.ceil(h):a.max((0|h)-this._minBufferSize,0);if(b=h*f,e=a.min(4*b,e),b){for(var i=0;i<b;i+=f)this._doProcessBlock(d,i);i=d.splice(0,b),c.sigBytes-=e}return new g.init(i,e)},clone:function(){var a=f.clone.call(this);return a._data=this._data.clone(),a},_minBufferSize:0});d.Hasher=l.extend({cfg:f.extend(),init:function(a){this.cfg=this.cfg.extend(a),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(a){return this._append(a),this._process(),this},finalize:function(a){return a&&this._append(a),this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,c){return new a.init(c).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return new m.HMAC.init(a,c).finalize(b)}}});var m=c.algo={};return c}(Math);!function(a){for(var b=r,c=b.lib,d=c.WordArray,e=c.Hasher,c=b.algo,f=[],g=[],h=function(a){return 4294967296*(a-(0|a))|0},i=2,j=0;64>j;){var k;a:{k=i;for(var l=a.sqrt(k),m=2;m<=l;m++)if(!(k%m)){k=!1;break a}k=!0}k&&(8>j&&(f[j]=h(a.pow(i,.5))),g[j]=h(a.pow(i,1/3)),j++),i++}var n=[],c=c.SHA256=e.extend({_doReset:function(){this._hash=new d.init(f.slice(0))},_doProcessBlock:function(a,b){for(var c=this._hash.words,d=c[0],e=c[1],f=c[2],h=c[3],i=c[4],j=c[5],k=c[6],l=c[7],m=0;64>m;m++){if(16>m)n[m]=0|a[b+m];else{var o=n[m-15],p=n[m-2];n[m]=((o<<25|o>>>7)^(o<<14|o>>>18)^o>>>3)+n[m-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+n[m-16]}o=l+((i<<26|i>>>6)^(i<<21|i>>>11)^(i<<7|i>>>25))+(i&j^~i&k)+g[m]+n[m],p=((d<<30|d>>>2)^(d<<19|d>>>13)^(d<<10|d>>>22))+(d&e^d&f^e&f),l=k,k=j,j=i,i=h+o|0,h=f,f=e,e=d,d=o+p|0}c[0]=c[0]+d|0,c[1]=c[1]+e|0,c[2]=c[2]+f|0,c[3]=c[3]+h|0,c[4]=c[4]+i|0,c[5]=c[5]+j|0,c[6]=c[6]+k|0,c[7]=c[7]+l|0},_doFinalize:function(){var b=this._data,c=b.words,d=8*this._nDataBytes,e=8*b.sigBytes;return c[e>>>5]|=128<<24-e%32,c[14+(e+64>>>9<<4)]=a.floor(d/4294967296),c[15+(e+64>>>9<<4)]=d,b.sigBytes=4*c.length,this._process(),this._hash},clone:function(){var a=e.clone.call(this);return a._hash=this._hash.clone(),a}});b.SHA256=e._createHelper(c),b.HmacSHA256=e._createHmacHelper(c)}(Math),function(){var a=r,b=a.enc.Utf8;a.algo.HMAC=a.lib.Base.extend({init:function(a,c){a=this._hasher=new a.init,"string"==typeof c&&(c=b.parse(c));var d=a.blockSize,e=4*d;c.sigBytes>e&&(c=a.finalize(c)),c.clamp();for(var f=this._oKey=c.clone(),g=this._iKey=c.clone(),h=f.words,i=g.words,j=0;j<d;j++)h[j]^=1549556828,i[j]^=909522486;f.sigBytes=g.sigBytes=e,this.reset()},reset:function(){var a=this._hasher;a.reset(),a.update(this._iKey)},update:function(a){return this._hasher.update(a),this},finalize:function(a){var b=this._hasher;return a=b.finalize(a),b.reset(),b.finalize(this._oKey.clone().concat(a))}})}(),function(){var a=r,b=a.lib.WordArray;a.enc.Base64={stringify:function(a){var b=a.words,c=a.sigBytes,d=this._map;a.clamp(),a=[];for(var e=0;e<c;e+=3)for(var f=(b[e>>>2]>>>24-e%4*8&255)<<16|(b[e+1>>>2]>>>24-(e+1)%4*8&255)<<8|b[e+2>>>2]>>>24-(e+2)%4*8&255,g=0;4>g&&e+.75*g<c;g++)a.push(d.charAt(f>>>6*(3-g)&63));if(b=d.charAt(64))for(;a.length%4;)a.push(b);return a.join("")},parse:function(a){var c=a.length,d=this._map,e=d.charAt(64);e&&-1!=(e=a.indexOf(e))&&(c=e);for(var e=[],f=0,g=0;g<c;g++)if(g%4){var h=d.indexOf(a.charAt(g-1))<<g%4*2,i=d.indexOf(a.charAt(g))>>>6-g%4*2;e[f>>>2]|=(h|i)<<24-f%4*8,f++}return b.create(e,f)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}();var s;!function(a){!function(a){a[a.Undefined=0]="Undefined",a[a.Debug=1]="Debug",a[a.Info=2]="Info",a[a.Warning=3]="Warning",a[a.Error=4]="Error",a[a.Critical=5]="Critical"}(a.EGAErrorSeverity||(a.EGAErrorSeverity={}));!function(a){a[a.Undefined=0]="Undefined",a[a.Male=1]="Male",a[a.Female=2]="Female"}(a.EGAGender||(a.EGAGender={}));!function(a){a[a.Undefined=0]="Undefined",a[a.Start=1]="Start",a[a.Complete=2]="Complete",a[a.Fail=3]="Fail"}(a.EGAProgressionStatus||(a.EGAProgressionStatus={}));!function(a){a[a.Undefined=0]="Undefined",a[a.Source=1]="Source",a[a.Sink=2]="Sink"}(a.EGAResourceFlowType||(a.EGAResourceFlowType={}));!function(a){!function(a){a[a.Undefined=0]="Undefined",a[a.Rejected=1]="Rejected"}(a.EGASdkErrorType||(a.EGASdkErrorType={}));!function(a){a[a.NoResponse=0]="NoResponse",a[a.BadResponse=1]="BadResponse",a[a.RequestTimeout=2]="RequestTimeout",a[a.JsonEncodeFailed=3]="JsonEncodeFailed",a[a.JsonDecodeFailed=4]="JsonDecodeFailed",a[a.InternalServerError=5]="InternalServerError",a[a.BadRequest=6]="BadRequest",a[a.Unauthorized=7]="Unauthorized",a[a.UnknownResponseCode=8]="UnknownResponseCode",a[a.Ok=9]="Ok"}(a.EGAHTTPApiResponse||(a.EGAHTTPApiResponse={}))}(a.http||(a.http={}))}(s||(s={}));var s;s.EGAErrorSeverity,s.EGAGender,s.EGAProgressionStatus,s.EGAResourceFlowType;!function(a){!function(a){var b;!function(a){a[a.Error=0]="Error",a[a.Warning=1]="Warning",a[a.Info=2]="Info",a[a.Debug=3]="Debug"}(b||(b={}));var c=function(){function a(){a.debugEnabled=!1}return a.setInfoLog=function(b){a.instance.infoLogEnabled=b},a.setVerboseLog=function(b){a.instance.infoLogVerboseEnabled=b},a.i=function(c){if(a.instance.infoLogEnabled){var d="Info/"+a.Tag+": "+c;a.instance.sendNotificationMessage(d,b.Info)}},a.w=function(c){var d="Warning/"+a.Tag+": "+c;a.instance.sendNotificationMessage(d,b.Warning)},a.e=function(c){var d="Error/"+a.Tag+": "+c;a.instance.sendNotificationMessage(d,b.Error)},a.ii=function(c){if(a.instance.infoLogVerboseEnabled){var d="Verbose/"+a.Tag+": "+c;a.instance.sendNotificationMessage(d,b.Info)}},a.d=function(c){if(a.debugEnabled){var d="Debug/"+a.Tag+": "+c;a.instance.sendNotificationMessage(d,b.Debug)}},a.prototype.sendNotificationMessage=function(a,c){switch(c){case b.Error:console.error(a);break;case b.Warning:console.warn(a);break;case b.Debug:"function"==typeof console.debug?console.debug(a):console.log(a);break;case b.Info:console.log(a)}},a.instance=new a,a.Tag="GameAnalytics",a}();a.GALogger=c}(a.logging||(a.logging={}))}(s||(s={}));var s;!function(a){!function(b){var c=a.logging.GALogger,d=function(){function a(){}return a.getHmac=function(a,b){var c=r.HmacSHA256(b,a);return r.enc.Base64.stringify(c)},a.stringMatch=function(a,b){return!(!a||!b)&&b.test(a)},a.joinStringArray=function(a,b){for(var c="",d=0,e=a.length;d<e;d++)d>0&&(c+=b),c+=a[d];return c},a.stringArrayContainsString=function(a,b){if(0===a.length)return!1;for(var c in a)if(a[c]===b)return!0;return!1},a.encode64=function(b){b=encodeURI(b);var c,d,e,f,g,h="",i=0,j=0,k=0;do{c=b.charCodeAt(k++),d=b.charCodeAt(k++),i=b.charCodeAt(k++),e=c>>2,f=(3&c)<<4|d>>4,g=(15&d)<<2|i>>6,j=63&i,isNaN(d)?g=j=64:isNaN(i)&&(j=64),h=h+a.keyStr.charAt(e)+a.keyStr.charAt(f)+a.keyStr.charAt(g)+a.keyStr.charAt(j),c=d=i=0,e=f=g=j=0}while(k<b.length);return h},a.decode64=function(b){var d,e,f,g,h,i="",j=0,k=0,l=0;/[^A-Za-z0-9\+\/\=]/g.exec(b)&&c.w("There were invalid base64 characters in the input text. Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='. Expect errors in decoding."),b=b.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{f=a.keyStr.indexOf(b.charAt(l++)),g=a.keyStr.indexOf(b.charAt(l++)),h=a.keyStr.indexOf(b.charAt(l++)),k=a.keyStr.indexOf(b.charAt(l++)),d=f<<2|g>>4,e=(15&g)<<4|h>>2,j=(3&h)<<6|k,i+=String.fromCharCode(d),64!=h&&(i+=String.fromCharCode(e)),64!=k&&(i+=String.fromCharCode(j)),d=e=j=0,f=g=h=k=0}while(l<b.length);return decodeURI(i)},a.timeIntervalSince1970=function(){var a=new Date;return Math.round(a.getTime()/1e3)},a.createGuid=function(){return(a.s4()+a.s4()+"-"+a.s4()+"-4"+a.s4().substr(0,3)+"-"+a.s4()+"-"+a.s4()+a.s4()+a.s4()).toLowerCase()},a.s4=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)},a.keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a}();b.GAUtilities=d}(a.utilities||(a.utilities={}))}(s||(s={}));var s;!function(a){!function(b){var c=a.logging.GALogger,d=a.http.EGASdkErrorType,e=a.utilities.GAUtilities,f=function(){function b(){}return b.validateBusinessEvent=function(a,d,e,f,g){return b.validateCurrency(a)?d<0?(c.w("Validation fail - business event - amount. Cannot be less than 0. Failed amount: "+d),!1):b.validateShortString(e,!0)?b.validateEventPartLength(f,!1)?b.validateEventPartCharacters(f)?b.validateEventPartLength(g,!1)?!!b.validateEventPartCharacters(g)||(c.w("Validation fail - business event - itemId: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: "+g),!1):(c.w("Validation fail - business event - itemId. Cannot be (null), empty or above 64 characters. String: "+g),!1):(c.w("Validation fail - business event - itemType: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: "+f),!1):(c.w("Validation fail - business event - itemType: Cannot be (null), empty or above 64 characters. String: "+f),!1):(c.w("Validation fail - business event - cartType. Cannot be above 32 length. String: "+e),!1):(c.w("Validation fail - business event - currency: Cannot be (null) and need to be A-Z, 3 characters and in the standard at openexchangerates.org. Failed currency: "+a),!1)},b.validateResourceEvent=function(d,f,g,h,i,j,k){return d==a.EGAResourceFlowType.Undefined?(c.w("Validation fail - resource event - flowType: Invalid flow type."),!1):f?e.stringArrayContainsString(j,f)?g>0?h?b.validateEventPartLength(h,!1)?b.validateEventPartCharacters(h)?e.stringArrayContainsString(k,h)?b.validateEventPartLength(i,!1)?!!b.validateEventPartCharacters(i)||(c.w("Validation fail - resource event - itemId: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: "+i),!1):(c.w("Validation fail - resource event - itemId: Cannot be (null), empty or above 64 characters. String: "+i),!1):(c.w("Validation fail - resource event - itemType: Not found in list of pre-defined available resource itemTypes. String: "+h),!1):(c.w("Validation fail - resource event - itemType: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: "+h),!1):(c.w("Validation fail - resource event - itemType: Cannot be (null), empty or above 64 characters. String: "+h),!1):(c.w("Validation fail - resource event - itemType: Cannot be (null)"),!1):(c.w("Validation fail - resource event - amount: Float amount cannot be 0 or negative. Value: "+g),!1):(c.w("Validation fail - resource event - currency: Not found in list of pre-defined available resource currencies. String: "+f),!1):(c.w("Validation fail - resource event - currency: Cannot be (null)"),!1)},b.validateProgressionEvent=function(d,e,f,g){
|
||
if(d==a.EGAProgressionStatus.Undefined)return c.w("Validation fail - progression event: Invalid progression status."),!1;if(g&&!f&&e)return c.w("Validation fail - progression event: 03 found but 01+02 are invalid. Progression must be set as either 01, 01+02 or 01+02+03."),!1;if(f&&!e)return c.w("Validation fail - progression event: 02 found but not 01. Progression must be set as either 01, 01+02 or 01+02+03"),!1;if(!e)return c.w("Validation fail - progression event: progression01 not valid. Progressions must be set as either 01, 01+02 or 01+02+03"),!1;if(!b.validateEventPartLength(e,!1))return c.w("Validation fail - progression event - progression01: Cannot be (null), empty or above 64 characters. String: "+e),!1;if(!b.validateEventPartCharacters(e))return c.w("Validation fail - progression event - progression01: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: "+e),!1;if(f){if(!b.validateEventPartLength(f,!0))return c.w("Validation fail - progression event - progression02: Cannot be empty or above 64 characters. String: "+f),!1;if(!b.validateEventPartCharacters(f))return c.w("Validation fail - progression event - progression02: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: "+f),!1}if(g){if(!b.validateEventPartLength(g,!0))return c.w("Validation fail - progression event - progression03: Cannot be empty or above 64 characters. String: "+g),!1;if(!b.validateEventPartCharacters(g))return c.w("Validation fail - progression event - progression03: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: "+g),!1}return!0},b.validateDesignEvent=function(a,d){return b.validateEventIdLength(a)?!!b.validateEventIdCharacters(a)||(c.w("Validation fail - design event - eventId: Non valid characters. Only allowed A-z, 0-9, -_., ()!?. String: "+a),!1):(c.w("Validation fail - design event - eventId: Cannot be (null) or empty. Only 5 event parts allowed seperated by :. Each part need to be 32 characters or less. String: "+a),!1)},b.validateErrorEvent=function(d,e){return d==a.EGAErrorSeverity.Undefined?(c.w("Validation fail - error event - severity: Severity was unsupported value."),!1):!!b.validateLongString(e,!0)||(c.w("Validation fail - error event - message: Message cannot be above 8192 characters."),!1)},b.validateSdkErrorEvent=function(a,e,f){return!!b.validateKeys(a,e)&&(f!==d.Undefined||(c.w("Validation fail - sdk error event - type: Type was unsupported value."),!1))},b.validateKeys=function(a,b){return!(!e.stringMatch(a,/^[A-z0-9]{32}$/)||!e.stringMatch(b,/^[A-z0-9]{40}$/))},b.validateCurrency=function(a){return!!a&&!!e.stringMatch(a,/^[A-Z]{3}$/)},b.validateEventPartLength=function(a,b){return!(!b||a)||!!a&&!(a.length>64)},b.validateEventPartCharacters=function(a){return!!e.stringMatch(a,/^[A-Za-z0-9\s\-_\.\(\)\!\?]{1,64}$/)},b.validateEventIdLength=function(a){return!!a&&!!e.stringMatch(a,/^[^:]{1,64}(?::[^:]{1,64}){0,4}$/)},b.validateEventIdCharacters=function(a){return!!a&&!!e.stringMatch(a,/^[A-Za-z0-9\s\-_\.\(\)\!\?]{1,64}(:[A-Za-z0-9\s\-_\.\(\)\!\?]{1,64}){0,4}$/)},b.validateAndCleanInitRequestResponse=function(a){if(null==a)return c.w("validateInitRequestResponse failed - no response dictionary."),null;var b={};try{b.enabled=a.enabled}catch(a){return c.w("validateInitRequestResponse failed - invalid type in 'enabled' field."),null}try{var d=a.server_ts;if(!(d>0))return c.w("validateInitRequestResponse failed - invalid value in 'server_ts' field."),null;b.server_ts=d}catch(b){return c.w("validateInitRequestResponse failed - invalid type in 'server_ts' field. type="+typeof a.server_ts+", value="+a.server_ts+", "+b),null}try{var e=a.configurations;b.configurations=e}catch(b){return c.w("validateInitRequestResponse failed - invalid type in 'configurations' field. type="+typeof a.configurations+", value="+a.configurations+", "+b),null}return b},b.validateBuild=function(a){return!!b.validateShortString(a,!1)},b.validateSdkWrapperVersion=function(a){return!!e.stringMatch(a,/^(unity|unreal|gamemaker|cocos2d|construct|defold) [0-9]{0,5}(\.[0-9]{0,5}){0,2}$/)},b.validateEngineVersion=function(a){return!(!a||!e.stringMatch(a,/^(unity|unreal|gamemaker|cocos2d|construct|defold) [0-9]{0,5}(\.[0-9]{0,5}){0,2}$/))},b.validateUserId=function(a){return!!b.validateString(a,!1)||(c.w("Validation fail - user id: id cannot be (null), empty or above 64 characters."),!1)},b.validateShortString=function(a,b){return!(!b||a)||!(!a||a.length>32)},b.validateString=function(a,b){return!(!b||a)||!(!a||a.length>64)},b.validateLongString=function(a,b){return!(!b||a)||!(!a||a.length>8192)},b.validateConnectionType=function(a){return e.stringMatch(a,/^(wwan|wifi|lan|offline)$/)},b.validateCustomDimensions=function(a){return b.validateArrayOfStrings(20,32,!1,"custom dimensions",a)},b.validateResourceCurrencies=function(a){if(!b.validateArrayOfStrings(20,64,!1,"resource currencies",a))return!1;for(var d=0;d<a.length;++d)if(!e.stringMatch(a[d],/^[A-Za-z]+$/))return c.w("resource currencies validation failed: a resource currency can only be A-Z, a-z. String was: "+a[d]),!1;return!0},b.validateResourceItemTypes=function(a){if(!b.validateArrayOfStrings(20,32,!1,"resource item types",a))return!1;for(var d=0;d<a.length;++d)if(!b.validateEventPartCharacters(a[d]))return c.w("resource item types validation failed: a resource item type cannot contain other characters than A-z, 0-9, -_., ()!?. String was: "+a[d]),!1;return!0},b.validateDimension01=function(a,b){return!a||!!e.stringArrayContainsString(b,a)},b.validateDimension02=function(a,b){return!a||!!e.stringArrayContainsString(b,a)},b.validateDimension03=function(a,b){return!a||!!e.stringArrayContainsString(b,a)},b.validateArrayOfStrings=function(a,b,d,e,f){var g=e;if(g||(g="Array"),!f)return c.w(g+" validation failed: array cannot be null. "),!1;if(0==d&&0==f.length)return c.w(g+" validation failed: array cannot be empty. "),!1;if(a>0&&f.length>a)return c.w(g+" validation failed: array cannot exceed "+a+" values. It has "+f.length+" values."),!1;for(var h=0;h<f.length;++h){var i=f[h]?f[h].length:0;if(0===i)return c.w(g+" validation failed: contained an empty string. Array="+JSON.stringify(f)),!1;if(b>0&&i>b)return c.w(g+" validation failed: a string exceeded max allowed length (which is: "+b+"). String was: "+f[h]),!1}return!0},b.validateFacebookId=function(a){return!!b.validateString(a,!1)||(c.w("Validation fail - facebook id: id cannot be (null), empty or above 64 characters."),!1)},b.validateGender=function(b){if(isNaN(Number(a.EGAGender[b]))){if(b==a.EGAGender.Undefined||b!=a.EGAGender.Male&&b!=a.EGAGender.Female)return c.w("Validation fail - gender: Has to be 'male' or 'female'. Was: "+b),!1}else if(b==a.EGAGender[a.EGAGender.Undefined]||b!=a.EGAGender[a.EGAGender.Male]&&b!=a.EGAGender[a.EGAGender.Female])return c.w("Validation fail - gender: Has to be 'male' or 'female'. Was: "+b),!1;return!0},b.validateBirthyear=function(a){return!(a<0||a>9999)||(c.w("Validation fail - birthYear: Cannot be (null) or invalid range."),!1)},b.validateClientTs=function(a){return!(a<-4294967294||a>4294967294)},b}();b.GAValidator=f}(a.validators||(a.validators={}))}(s||(s={}));var s;!function(a){!function(a){var b=function(){function a(a,b,c){this.name=a,this.value=b,this.version=c}return a}();a.NameValueVersion=b;var c=function(){function a(a,b){this.name=a,this.version=b}return a}();a.NameVersion=c;var d=function(){function a(){}return a.touch=function(){},a.getRelevantSdkVersion=function(){return a.sdkGameEngineVersion?a.sdkGameEngineVersion:a.sdkWrapperVersion},a.getConnectionType=function(){return a.connectionType},a.updateConnectionType=function(){navigator.onLine?"ios"===a.buildPlatform||"android"===a.buildPlatform?a.connectionType="wwan":a.connectionType="lan":a.connectionType="offline"},a.getOSVersionString=function(){return a.buildPlatform+" "+a.osVersionPair.version},a.runtimePlatformToString=function(){return a.osVersionPair.name},a.getBrowserVersionString=function(){var b,c=navigator.userAgent,d=c.match(/(opera|chrome|safari|firefox|ubrowser|msie|trident|fbav(?=\/))\/?\s*(\d+)/i)||[];if(0==d.length&&"ios"===a.buildPlatform)return"webkit_"+a.osVersion;if(/trident/i.test(d[1]))return b=/\brv[ :]+(\d+)/g.exec(c)||[],"IE "+(b[1]||"");if("Chrome"===d[1]&&null!=(b=c.match(/\b(OPR|Edge|UBrowser)\/(\d+)/)))return b.slice(1).join(" ").replace("OPR","Opera").replace("UBrowser","UC").toLowerCase();if(d[1]&&"fbav"===d[1].toLowerCase()&&(d[1]="facebook",d[2]))return"facebook "+d[2];var e=d[2]?[d[1],d[2]]:[navigator.appName,navigator.appVersion,"-?"];return null!=(b=c.match(/version\/(\d+)/i))&&e.splice(1,1,b[1]),e.join(" ").toLowerCase()},a.getDeviceModel=function(){return"unknown"},a.getDeviceManufacturer=function(){return"unknown"},a.matchItem=function(a,b){var d,e,f,g,h,i=new c("unknown","0.0.0"),j=0,k=0;for(j=0;j<b.length;j+=1)if(d=new RegExp(b[j].value,"i"),d.test(a)){if(e=new RegExp(b[j].version+"[- /:;]([\\d._]+)","i"),f=a.match(e),h="",f&&f[1]&&(g=f[1]),g){var l=g.split(/[._]+/);for(k=0;k<Math.min(l.length,3);k+=1)h+=l[k]+(k<Math.min(l.length,3)-1?".":"")}else h="0.0.0";return i.name=b[j].name,i.version=h,i}return i},a.sdkWrapperVersion="javascript 3.1.2",a.osVersionPair=a.matchItem([navigator.platform,navigator.userAgent,navigator.appVersion,navigator.vendor].join(" "),[new b("windows_phone","Windows Phone","OS"),new b("windows","Win","NT"),new b("ios","iPhone","OS"),new b("ios","iPad","OS"),new b("ios","iPod","OS"),new b("android","Android","Android"),new b("blackBerry","BlackBerry","/"),new b("mac_osx","Mac","OS X"),new b("tizen","Tizen","Tizen"),new b("linux","Linux","rv")]),a.buildPlatform=a.runtimePlatformToString(),a.deviceModel=a.getDeviceModel(),a.deviceManufacturer=a.getDeviceManufacturer(),a.osVersion=a.getOSVersionString(),a.browserVersion=a.getBrowserVersionString(),a.maxSafeInteger=Math.pow(2,53)-1,a}();a.GADevice=d}(a.device||(a.device={}))}(s||(s={}));var s;!function(a){!function(a){var b=function(){function a(b){this.deadline=b,this.ignore=!1,this.async=!1,this.running=!1,this.id=++a.idCounter}return a.idCounter=0,a}();a.TimedBlock=b}(a.threading||(a.threading={}))}(s||(s={}));var s;!function(a){!function(a){var b=function(){function a(a){this.comparer=a,this._subQueues={},this._sortedKeys=[]}return a.prototype.enqueue=function(a,b){-1===this._sortedKeys.indexOf(a)&&this.addQueueOfPriority(a),this._subQueues[a].push(b)},a.prototype.addQueueOfPriority=function(a){var b=this;this._sortedKeys.push(a),this._sortedKeys.sort(function(a,c){return b.comparer.compare(a,c)}),this._subQueues[a]=[]},a.prototype.peek=function(){if(this.hasItems())return this._subQueues[this._sortedKeys[0]][0];throw new Error("The queue is empty")},a.prototype.hasItems=function(){return this._sortedKeys.length>0},a.prototype.dequeue=function(){if(this.hasItems())return this.dequeueFromHighPriorityQueue();throw new Error("The queue is empty")},a.prototype.dequeueFromHighPriorityQueue=function(){var a=this._sortedKeys[0],b=this._subQueues[a].shift();return 0===this._subQueues[a].length&&(this._sortedKeys.shift(),delete this._subQueues[a]),b},a}();a.PriorityQueue=b}(a.threading||(a.threading={}))}(s||(s={}));var s;!function(a){!function(b){var c,d=a.logging.GALogger;!function(a){a[a.Equal=0]="Equal",a[a.LessOrEqual=1]="LessOrEqual",a[a.NotEqual=2]="NotEqual"}(c=b.EGAStoreArgsOperator||(b.EGAStoreArgsOperator={}));var e;!function(a){a[a.Events=0]="Events",a[a.Sessions=1]="Sessions",a[a.Progression=2]="Progression"}(e=b.EGAStore||(b.EGAStore={}));var f=function(){function a(){this.eventsStore=[],this.sessionsStore=[],this.progressionStore=[],this.storeItems={};try{"object"==typeof localStorage?(localStorage.setItem("testingLocalStorage","yes"),localStorage.removeItem("testingLocalStorage"),a.storageAvailable=!0):a.storageAvailable=!1}catch(a){}}return a.isStorageAvailable=function(){return a.storageAvailable},a.isStoreTooLargeForEvents=function(){return a.instance.eventsStore.length+a.instance.sessionsStore.length>a.MaxNumberOfEntries},a.select=function(b,d,e,f){void 0===d&&(d=[]),void 0===e&&(e=!1),void 0===f&&(f=0);var g=a.getStore(b);if(!g)return null;for(var h=[],i=0;i<g.length;++i){for(var j=g[i],k=!0,l=0;l<d.length;++l){var m=d[l];if(j[m[0]])switch(m[1]){case c.Equal:k=j[m[0]]==m[2];break;case c.LessOrEqual:k=j[m[0]]<=m[2];break;case c.NotEqual:k=j[m[0]]!=m[2];break;default:k=!1}else k=!1;if(!k)break}k&&h.push(j)}return e&&h.sort(function(a,b){return a.client_ts-b.client_ts}),f>0&&h.length>f&&(h=h.slice(0,f+1)),h},a.update=function(b,d,e){void 0===e&&(e=[]);var f=a.getStore(b);if(!f)return!1;for(var g=0;g<f.length;++g){for(var h=f[g],i=!0,j=0;j<e.length;++j){var k=e[j];if(h[k[0]])switch(k[1]){case c.Equal:i=h[k[0]]==k[2];break;case c.LessOrEqual:i=h[k[0]]<=k[2];break;case c.NotEqual:i=h[k[0]]!=k[2];break;default:i=!1}else i=!1;if(!i)break}if(i)for(var j=0;j<d.length;++j){var l=d[j];h[l[0]]=l[1]}}return!0},a.delete=function(b,d){var e=a.getStore(b);if(e)for(var f=0;f<e.length;++f){for(var g=e[f],h=!0,i=0;i<d.length;++i){var j=d[i];if(g[j[0]])switch(j[1]){case c.Equal:h=g[j[0]]==j[2];break;case c.LessOrEqual:h=g[j[0]]<=j[2];break;case c.NotEqual:h=g[j[0]]!=j[2];break;default:h=!1}else h=!1;if(!h)break}h&&(e.splice(f,1),--f)}},a.insert=function(b,c,d,e){void 0===d&&(d=!1),void 0===e&&(e=null);var f=a.getStore(b);if(f)if(d){if(!e)return;for(var g=!1,h=0;h<f.length;++h){var i=f[h];if(i[e]==c[e]){for(var j in c)i[j]=c[j];g=!0;break}}g||f.push(c)}else f.push(c)},a.save=function(){if(!a.isStorageAvailable())return void d.w("Storage is not available, cannot save.");localStorage.setItem(a.KeyPrefix+a.EventsStoreKey,JSON.stringify(a.instance.eventsStore)),localStorage.setItem(a.KeyPrefix+a.SessionsStoreKey,JSON.stringify(a.instance.sessionsStore)),localStorage.setItem(a.KeyPrefix+a.ProgressionStoreKey,JSON.stringify(a.instance.progressionStore)),localStorage.setItem(a.KeyPrefix+a.ItemsStoreKey,JSON.stringify(a.instance.storeItems))},a.load=function(){if(!a.isStorageAvailable())return void d.w("Storage is not available, cannot load.");try{a.instance.eventsStore=JSON.parse(localStorage.getItem(a.KeyPrefix+a.EventsStoreKey)),a.instance.eventsStore||(a.instance.eventsStore=[])}catch(b){d.w("Load failed for 'events' store. Using empty store."),a.instance.eventsStore=[]}try{a.instance.sessionsStore=JSON.parse(localStorage.getItem(a.KeyPrefix+a.SessionsStoreKey)),a.instance.sessionsStore||(a.instance.sessionsStore=[])}catch(b){d.w("Load failed for 'sessions' store. Using empty store."),a.instance.sessionsStore=[]}try{a.instance.progressionStore=JSON.parse(localStorage.getItem(a.KeyPrefix+a.ProgressionStoreKey)),a.instance.progressionStore||(a.instance.progressionStore=[])}catch(b){d.w("Load failed for 'progression' store. Using empty store."),a.instance.progressionStore=[]}try{a.instance.storeItems=JSON.parse(localStorage.getItem(a.KeyPrefix+a.ItemsStoreKey)),a.instance.storeItems||(a.instance.storeItems={})}catch(b){d.w("Load failed for 'items' store. Using empty store."),a.instance.progressionStore=[]}},a.setItem=function(b,c){var d=a.KeyPrefix+b;c?a.instance.storeItems[d]=c:d in a.instance.storeItems&&delete a.instance.storeItems[d]},a.getItem=function(b){var c=a.KeyPrefix+b;return c in a.instance.storeItems?a.instance.storeItems[c]:null},a.getStore=function(b){switch(b){case e.Events:return a.instance.eventsStore;case e.Sessions:return a.instance.sessionsStore;case e.Progression:return a.instance.progressionStore;default:return d.w("GAStore.getStore(): Cannot find store: "+b),null}},a.instance=new a,a.MaxNumberOfEntries=2e3,a.KeyPrefix="GA::",a.EventsStoreKey="ga_event",a.SessionsStoreKey="ga_session",a.ProgressionStoreKey="ga_progression",a.ItemsStoreKey="ga_items",a}();b.GAStore=f}(a.store||(a.store={}))}(s||(s={}));var s;!function(a){!function(b){var c=a.validators.GAValidator,d=a.utilities.GAUtilities,e=a.logging.GALogger,f=a.store.GAStore,g=a.device.GADevice,h=a.store.EGAStore,i=a.store.EGAStoreArgsOperator,j=function(){function b(){this.availableCustomDimensions01=[],this.availableCustomDimensions02=[],this.availableCustomDimensions03=[],this.availableResourceCurrencies=[],this.availableResourceItemTypes=[],this.configurations={},this.commandCenterListeners=[],this.sdkConfigDefault={},this.sdkConfig={},this.progressionTries={},this._isEventSubmissionEnabled=!0}return b.setUserId=function(a){b.instance.userId=a,b.cacheIdentifier()},b.getIdentifier=function(){return b.instance.identifier},b.isInitialized=function(){return b.instance.initialized},b.setInitialized=function(a){b.instance.initialized=a},b.getSessionStart=function(){return b.instance.sessionStart},b.getSessionNum=function(){return b.instance.sessionNum},b.getTransactionNum=function(){return b.instance.transactionNum},b.getSessionId=function(){return b.instance.sessionId},b.getCurrentCustomDimension01=function(){return b.instance.currentCustomDimension01},b.getCurrentCustomDimension02=function(){return b.instance.currentCustomDimension02},b.getCurrentCustomDimension03=function(){return b.instance.currentCustomDimension03},b.getGameKey=function(){return b.instance.gameKey},b.getGameSecret=function(){return b.instance.gameSecret},b.getAvailableCustomDimensions01=function(){return b.instance.availableCustomDimensions01},b.setAvailableCustomDimensions01=function(a){c.validateCustomDimensions(a)&&(b.instance.availableCustomDimensions01=a,b.validateAndFixCurrentDimensions(),e.i("Set available custom01 dimension values: ("+d.joinStringArray(a,", ")+")"))},b.getAvailableCustomDimensions02=function(){return b.instance.availableCustomDimensions02},b.setAvailableCustomDimensions02=function(a){c.validateCustomDimensions(a)&&(b.instance.availableCustomDimensions02=a,b.validateAndFixCurrentDimensions(),e.i("Set available custom02 dimension values: ("+d.joinStringArray(a,", ")+")"))},b.getAvailableCustomDimensions03=function(){return b.instance.availableCustomDimensions03},b.setAvailableCustomDimensions03=function(a){c.validateCustomDimensions(a)&&(b.instance.availableCustomDimensions03=a,b.validateAndFixCurrentDimensions(),e.i("Set available custom03 dimension values: ("+d.joinStringArray(a,", ")+")"))},b.getAvailableResourceCurrencies=function(){return b.instance.availableResourceCurrencies},b.setAvailableResourceCurrencies=function(a){c.validateResourceCurrencies(a)&&(b.instance.availableResourceCurrencies=a,e.i("Set available resource currencies: ("+d.joinStringArray(a,", ")+")"))},b.getAvailableResourceItemTypes=function(){return b.instance.availableResourceItemTypes},b.setAvailableResourceItemTypes=function(a){c.validateResourceItemTypes(a)&&(b.instance.availableResourceItemTypes=a,e.i("Set available resource item types: ("+d.joinStringArray(a,", ")+")"))},b.getBuild=function(){return b.instance.build},b.setBuild=function(a){b.instance.build=a,e.i("Set build version: "+a)},b.getUseManualSessionHandling=function(){return b.instance.useManualSessionHandling},b.isEventSubmissionEnabled=function(){return b.instance._isEventSubmissionEnabled},b.prototype.setDefaultId=function(a){this.defaultUserId=a||"",b.cacheIdentifier()},b.getDefaultId=function(){return b.instance.defaultUserId},b.getSdkConfig=function(){var a,c=0;for(var d in b.instance.sdkConfig)0===c&&(a=d),++c;if(a&&c>0)return b.instance.sdkConfig;var a,c=0;for(var d in b.instance.sdkConfigCached)0===c&&(a=d),++c;return a&&c>0?b.instance.sdkConfigCached:b.instance.sdkConfigDefault},b.isEnabled=function(){var a=b.getSdkConfig();return(!a.enabled||"false"!=a.enabled)&&!!b.instance.initAuthorized},b.setCustomDimension01=function(a){b.instance.currentCustomDimension01=a,f.setItem(b.Dimension01Key,a),e.i("Set custom01 dimension value: "+a)},b.setCustomDimension02=function(a){b.instance.currentCustomDimension02=a,f.setItem(b.Dimension02Key,a),e.i("Set custom02 dimension value: "+a)},b.setCustomDimension03=function(a){b.instance.currentCustomDimension03=a,f.setItem(b.Dimension03Key,a),e.i("Set custom03 dimension value: "+a)},b.setFacebookId=function(a){b.instance.facebookId=a,f.setItem(b.FacebookIdKey,a),e.i("Set facebook id: "+a)},b.setGender=function(c){b.instance.gender=isNaN(Number(a.EGAGender[c]))?a.EGAGender[c].toString().toLowerCase():a.EGAGender[a.EGAGender[c]].toString().toLowerCase(),f.setItem(b.GenderKey,b.instance.gender),e.i("Set gender: "+b.instance.gender)},b.setBirthYear=function(a){b.instance.birthYear=a,f.setItem(b.BirthYearKey,a.toString()),e.i("Set birth year: "+a)},b.incrementSessionNum=function(){var a=b.getSessionNum()+1;b.instance.sessionNum=a},b.incrementTransactionNum=function(){var a=b.getTransactionNum()+1;b.instance.transactionNum=a},b.incrementProgressionTries=function(a){var c=b.getProgressionTries(a)+1;b.instance.progressionTries[a]=c;var d={};d.progression=a,d.tries=c,f.insert(h.Progression,d,!0,"progression")},b.getProgressionTries=function(a){return a in b.instance.progressionTries?b.instance.progressionTries[a]:0},b.clearProgressionTries=function(a){a in b.instance.progressionTries&&delete b.instance.progressionTries[a];var c=[];c.push(["progression",i.Equal,a]),f.delete(h.Progression,c)},b.setKeys=function(a,c){b.instance.gameKey=a,b.instance.gameSecret=c},b.setManualSessionHandling=function(a){b.instance.useManualSessionHandling=a,e.i("Use manual session handling: "+a)},b.setEnabledEventSubmission=function(a){b.instance._isEventSubmissionEnabled=a},b.getEventAnnotations=function(){var a={};a.v=2,a.user_id=b.instance.identifier,a.client_ts=b.getClientTsAdjusted(),a.sdk_version=g.getRelevantSdkVersion(),a.os_version=g.osVersion,a.manufacturer=g.deviceManufacturer,a.device=g.deviceModel,a.browser_version=g.browserVersion,a.platform=g.buildPlatform,a.session_id=b.instance.sessionId,a[b.SessionNumKey]=b.instance.sessionNum;var d=g.getConnectionType();return c.validateConnectionType(d)&&(a.connection_type=d),g.gameEngineVersion&&(a.engine_version=g.gameEngineVersion),b.instance.build&&(a.build=b.instance.build),b.instance.facebookId&&(a[b.FacebookIdKey]=b.instance.facebookId),b.instance.gender&&(a[b.GenderKey]=b.instance.gender),0!=b.instance.birthYear&&(a[b.BirthYearKey]=b.instance.birthYear),a},b.getSdkErrorEventAnnotations=function(){var a={};a.v=2,a.category=b.CategorySdkError,a.sdk_version=g.getRelevantSdkVersion(),a.os_version=g.osVersion,a.manufacturer=g.deviceManufacturer,a.device=g.deviceModel,a.platform=g.buildPlatform;var d=g.getConnectionType();return c.validateConnectionType(d)&&(a.connection_type=d),g.gameEngineVersion&&(a.engine_version=g.gameEngineVersion),a},b.getInitAnnotations=function(){var a={};return a.user_id=b.getIdentifier(),a.sdk_version=g.getRelevantSdkVersion(),a.os_version=g.osVersion,a.platform=g.buildPlatform,a},b.getClientTsAdjusted=function(){var a=d.timeIntervalSince1970(),e=a+b.instance.clientServerTimeOffset;return c.validateClientTs(e)?e:a},b.sessionIsStarted=function(){return 0!=b.instance.sessionStart},b.cacheIdentifier=function(){b.instance.userId?b.instance.identifier=b.instance.userId:b.instance.defaultUserId&&(b.instance.identifier=b.instance.defaultUserId)},b.ensurePersistedStates=function(){f.isStorageAvailable()&&f.load();var a=b.instance;a.setDefaultId(null!=f.getItem(b.DefaultUserIdKey)?f.getItem(b.DefaultUserIdKey):d.createGuid()),a.sessionNum=null!=f.getItem(b.SessionNumKey)?Number(f.getItem(b.SessionNumKey)):0,a.transactionNum=null!=f.getItem(b.TransactionNumKey)?Number(f.getItem(b.TransactionNumKey)):0,a.facebookId?f.setItem(b.FacebookIdKey,a.facebookId):(a.facebookId=null!=f.getItem(b.FacebookIdKey)?f.getItem(b.FacebookIdKey):"",a.facebookId),a.gender?f.setItem(b.GenderKey,a.gender):(a.gender=null!=f.getItem(b.GenderKey)?f.getItem(b.GenderKey):"",a.gender),a.birthYear&&0!=a.birthYear?f.setItem(b.BirthYearKey,a.birthYear.toString()):(a.birthYear=null!=f.getItem(b.BirthYearKey)?Number(f.getItem(b.BirthYearKey)):0,a.birthYear),a.currentCustomDimension01?f.setItem(b.Dimension01Key,a.currentCustomDimension01):(a.currentCustomDimension01=null!=f.getItem(b.Dimension01Key)?f.getItem(b.Dimension01Key):"",a.currentCustomDimension01),a.currentCustomDimension02?f.setItem(b.Dimension02Key,a.currentCustomDimension02):(a.currentCustomDimension02=null!=f.getItem(b.Dimension02Key)?f.getItem(b.Dimension02Key):"",a.currentCustomDimension02),a.currentCustomDimension03?f.setItem(b.Dimension03Key,a.currentCustomDimension03):(a.currentCustomDimension03=null!=f.getItem(b.Dimension03Key)?f.getItem(b.Dimension03Key):"",a.currentCustomDimension03);var c=null!=f.getItem(b.SdkConfigCachedKey)?f.getItem(b.SdkConfigCachedKey):"";if(c){var e=JSON.parse(d.decode64(c));e&&(a.sdkConfigCached=e)}var g=f.select(h.Progression);if(g)for(var i=0;i<g.length;++i){var j=g[i];j&&(a.progressionTries[j.progression]=j.tries)}},b.calculateServerTimeOffset=function(a){return a-d.timeIntervalSince1970()},b.validateAndCleanCustomFields=function(a){var c={};if(a){var f=0;for(var g in a){var h=a[g];if(g&&h)if(f<b.MAX_CUSTOM_FIELDS_COUNT){var i=new RegExp("^[a-zA-Z0-9_]{1,"+b.MAX_CUSTOM_FIELDS_KEY_LENGTH+"}$");if(d.stringMatch(g,i)){var j=typeof h;if("string"===j||h instanceof String){var k=h;k.length<=b.MAX_CUSTOM_FIELDS_VALUE_STRING_LENGTH&&k.length>0?(c[g]=k,++f):e.w("validateAndCleanCustomFields: entry with key="+g+", value="+h+" has been omitted because its value is an empty string or exceeds the max number of characters ("+b.MAX_CUSTOM_FIELDS_VALUE_STRING_LENGTH+")")}else if("number"===j||h instanceof Number){var l=h;c[g]=l,++f}else e.w("validateAndCleanCustomFields: entry with key="+g+", value="+h+" has been omitted because its value is not a string or number")}else e.w("validateAndCleanCustomFields: entry with key="+g+", value="+h+" has been omitted because its key contains illegal character, is empty or exceeds the max number of characters ("+b.MAX_CUSTOM_FIELDS_KEY_LENGTH+")")}else e.w("validateAndCleanCustomFields: entry with key="+g+", value="+h+" has been omitted because it exceeds the max number of custom fields ("+b.MAX_CUSTOM_FIELDS_COUNT+")");else e.w("validateAndCleanCustomFields: entry with key="+g+", value="+h+" has been omitted because its key or value is null")}}return c},b.validateAndFixCurrentDimensions=function(){c.validateDimension01(b.getCurrentCustomDimension01(),b.getAvailableCustomDimensions01())||b.setCustomDimension01(""),c.validateDimension02(b.getCurrentCustomDimension02(),b.getAvailableCustomDimensions02())||b.setCustomDimension02(""),c.validateDimension03(b.getCurrentCustomDimension03(),b.getAvailableCustomDimensions03())||b.setCustomDimension03("")},b.getConfigurationStringValue=function(a,c){return b.instance.configurations[a]?b.instance.configurations[a].toString():c},b.isCommandCenterReady=function(){return b.instance.commandCenterIsReady},b.addCommandCenterListener=function(a){b.instance.commandCenterListeners.indexOf(a)<0&&b.instance.commandCenterListeners.push(a)},b.removeCommandCenterListener=function(a){var c=b.instance.commandCenterListeners.indexOf(a);c>-1&&b.instance.commandCenterListeners.splice(c,1)},b.getConfigurationsContentAsString=function(){return JSON.stringify(b.instance.configurations)},b.populateConfigurations=function(a){var c=a.configurations;if(c)for(var d=0;d<c.length;++d){var e=c[d];if(e){var f=e.key,g=e.value,h=e.start?e.start:Number.MIN_VALUE,i=e.end?e.end:Number.MAX_VALUE,j=b.getClientTsAdjusted();f&&g&&j>h&&j<i&&(b.instance.configurations[f]=g)}}b.instance.commandCenterIsReady=!0;for(var k=b.instance.commandCenterListeners,d=0;d<k.length;++d)k[d]&&k[d].onCommandCenterUpdated()},b.CategorySdkError="sdk_error",b.MAX_CUSTOM_FIELDS_COUNT=50,b.MAX_CUSTOM_FIELDS_KEY_LENGTH=64,b.MAX_CUSTOM_FIELDS_VALUE_STRING_LENGTH=256,b.instance=new b,b.DefaultUserIdKey="default_user_id",b.SessionNumKey="session_num",b.TransactionNumKey="transaction_num",b.FacebookIdKey="facebook_id",b.GenderKey="gender",b.BirthYearKey="birth_year",b.Dimension01Key="dimension01",b.Dimension02Key="dimension02",b.Dimension03Key="dimension03",b.SdkConfigCachedKey="sdk_config_cached",b}();b.GAState=j}(a.state||(a.state={}))}(s||(s={}));var s;!function(a){!function(b){var c=a.utilities.GAUtilities,d=a.logging.GALogger,e=function(){function a(){}return a.execute=function(b,e,f,g){if(a.countMap[e]||(a.countMap[e]=0),!(a.countMap[e]>=a.MaxCount)){var h=c.getHmac(g,f),i=new XMLHttpRequest;i.onreadystatechange=function(){if(4===i.readyState){if(!i.responseText)return;if(200!=i.status)return void d.w("sdk error failed. response code not 200. status code: "+i.status+", description: "+i.statusText+", body: "+i.responseText);a.countMap[e]=a.countMap[e]+1}},i.open("POST",b,!0),i.setRequestHeader("Content-Type","application/json"),i.setRequestHeader("Authorization",h);try{i.send(f)}catch(a){console.error(a)}}},a.MaxCount=10,a.countMap={},a}();b.SdkErrorTask=e}(a.tasks||(a.tasks={}))}(s||(s={}));var s;!function(a){!function(b){var c=a.state.GAState,d=a.logging.GALogger,e=a.utilities.GAUtilities,f=a.validators.GAValidator,g=a.tasks.SdkErrorTask,h=function(){function a(){this.protocol="https",this.hostName="api.gameanalytics.com",this.version="v2",this.baseUrl=this.protocol+"://"+this.hostName+"/"+this.version,this.initializeUrlPath="init",this.eventsUrlPath="events",this.useGzip=!1}return a.prototype.requestInit=function(d){var e=c.getGameKey(),f=this.baseUrl+"/"+e+"/"+this.initializeUrlPath;f="https://rubick.gameanalytics.com/v2/command_center?game_key="+e+"&interval_seconds=1000000";var g=c.getInitAnnotations(),h=JSON.stringify(g);if(!h)return void d(b.EGAHTTPApiResponse.JsonEncodeFailed,null);var i=this.createPayloadData(h,this.useGzip),j=[];j.push(h),a.sendRequest(f,i,j,this.useGzip,a.initRequestCallback,d)},a.prototype.sendEventsInArray=function(d,e,f){if(0!=d.length){var g=c.getGameKey(),h=this.baseUrl+"/"+g+"/"+this.eventsUrlPath,i=JSON.stringify(d);if(!i)return void f(b.EGAHTTPApiResponse.JsonEncodeFailed,null,e,d.length);var j=this.createPayloadData(i,this.useGzip),k=[];k.push(i),k.push(e),k.push(d.length.toString()),a.sendRequest(h,j,k,this.useGzip,a.sendEventInArrayRequestCallback,f)}},a.prototype.sendSdkErrorEvent=function(b){if(c.isEventSubmissionEnabled()){var e=c.getGameKey(),h=c.getGameSecret();if(f.validateSdkErrorEvent(e,h,b)){var i=this.baseUrl+"/"+e+"/"+this.eventsUrlPath,j="",k=c.getSdkErrorEventAnnotations(),l=a.sdkErrorTypeToString(b);k.type=l;var m=[];if(m.push(k),!(j=JSON.stringify(m)))return void d.w("sendSdkErrorEvent: JSON encoding failed.");g.execute(i,b,j,h)}}},a.sendEventInArrayRequestCallback=function(c,d,e,f){void 0===f&&(f=null);var g=(f[0],f[1],f[2]),h=parseInt(f[3]),i="",j=0;i=c.responseText,j=c.status;var k=a.instance.processRequestResponse(j,c.statusText,i,"Events");if(k!=b.EGAHTTPApiResponse.Ok&&k!=b.EGAHTTPApiResponse.BadRequest)return void e(k,null,g,h);var l=i?JSON.parse(i):{};if(null==l)return void e(b.EGAHTTPApiResponse.JsonDecodeFailed,null,g,h);b.EGAHTTPApiResponse.BadRequest,e(k,l,g,h)},a.sendRequest=function(a,b,d,f,g,h){var i=new XMLHttpRequest,j=c.getGameSecret(),k=e.getHmac(j,b),l=[];l.push(k);for(var m in d)l.push(d[m]);if(i.onreadystatechange=function(){4===i.readyState&&g(i,a,h,l)},i.open("POST",a,!0),i.setRequestHeader("Content-Type","text/plain"),i.setRequestHeader("Authorization",k),f)throw new Error("gzip not supported");try{i.send(b)}catch(a){console.error(a.stack)}},a.initRequestCallback=function(c,d,e,g){void 0===g&&(g=null);var h=(g[0],g[1],""),i=0;h=c.responseText,i=c.status;var j=h?JSON.parse(h):{},k=a.instance.processRequestResponse(i,c.statusText,h,"Init");if(k!=b.EGAHTTPApiResponse.Ok&&k!=b.EGAHTTPApiResponse.BadRequest)return void e(k,null,"",0);if(null==j)return void e(b.EGAHTTPApiResponse.JsonDecodeFailed,null,"",0);if(k===b.EGAHTTPApiResponse.BadRequest)return void e(k,null,"",0);var l=f.validateAndCleanInitRequestResponse(j);if(!l)return void e(b.EGAHTTPApiResponse.BadResponse,null,"",0);e(b.EGAHTTPApiResponse.Ok,l,"",0)},a.prototype.createPayloadData=function(a,b){if(b)throw new Error("gzip not supported");return a},a.prototype.processRequestResponse=function(a,c,d,e){
|
||
return d?200===a?b.EGAHTTPApiResponse.Ok:0===a||401===a?b.EGAHTTPApiResponse.Unauthorized:400===a?b.EGAHTTPApiResponse.BadRequest:500===a?b.EGAHTTPApiResponse.InternalServerError:b.EGAHTTPApiResponse.UnknownResponseCode:b.EGAHTTPApiResponse.NoResponse},a.sdkErrorTypeToString=function(a){switch(a){case b.EGASdkErrorType.Rejected:return"rejected";default:return""}},a.instance=new a,a}();b.GAHTTPApi=h}(a.http||(a.http={}))}(s||(s={}));var s;!function(a){!function(b){var c=a.store.GAStore,d=a.store.EGAStore,e=a.store.EGAStoreArgsOperator,f=a.state.GAState,g=a.logging.GALogger,h=a.utilities.GAUtilities,i=a.http.EGAHTTPApiResponse,j=a.http.GAHTTPApi,k=a.validators.GAValidator,l=a.http.EGASdkErrorType,m=function(){function b(){}return b.addSessionStartEvent=function(){if(f.isEventSubmissionEnabled()){var a={};a.category=b.CategorySessionStart,f.incrementSessionNum(),c.setItem(f.SessionNumKey,f.getSessionNum().toString()),b.addDimensionsToEvent(a),b.addEventToStore(a),g.i("Add SESSION START event"),b.processEvents(b.CategorySessionStart,!1)}},b.addSessionEndEvent=function(){if(f.isEventSubmissionEnabled()){var a=f.getSessionStart(),c=f.getClientTsAdjusted(),d=c-a;d<0&&(g.w("Session length was calculated to be less then 0. Should not be possible. Resetting to 0."),d=0);var e={};e.category=b.CategorySessionEnd,e.length=d,b.addDimensionsToEvent(e),b.addEventToStore(e),g.i("Add SESSION END event."),b.processEvents("",!1)}},b.addBusinessEvent=function(a,d,e,h,i,m){if(void 0===i&&(i=null),f.isEventSubmissionEnabled()){if(!k.validateBusinessEvent(a,d,i,e,h))return void j.instance.sendSdkErrorEvent(l.Rejected);var n={};f.incrementTransactionNum(),c.setItem(f.TransactionNumKey,f.getTransactionNum().toString()),n.event_id=e+":"+h,n.category=b.CategoryBusiness,n.currency=a,n.amount=d,n[f.TransactionNumKey]=f.getTransactionNum(),i&&(n.cart_type=i),b.addDimensionsToEvent(n),b.addFieldsToEvent(n,f.validateAndCleanCustomFields(m)),g.i("Add BUSINESS event: {currency:"+a+", amount:"+d+", itemType:"+e+", itemId:"+h+", cartType:"+i+"}"),b.addEventToStore(n)}},b.addResourceEvent=function(c,d,e,h,i,m){if(f.isEventSubmissionEnabled()){if(!k.validateResourceEvent(c,d,e,h,i,f.getAvailableResourceCurrencies(),f.getAvailableResourceItemTypes()))return void j.instance.sendSdkErrorEvent(l.Rejected);c===a.EGAResourceFlowType.Sink&&(e*=-1);var n={},o=b.resourceFlowTypeToString(c);n.event_id=o+":"+d+":"+h+":"+i,n.category=b.CategoryResource,n.amount=e,b.addDimensionsToEvent(n),b.addFieldsToEvent(n,f.validateAndCleanCustomFields(m)),g.i("Add RESOURCE event: {currency:"+d+", amount:"+e+", itemType:"+h+", itemId:"+i+"}"),b.addEventToStore(n)}},b.addProgressionEvent=function(c,d,e,h,i,m,n){if(f.isEventSubmissionEnabled()){var o=b.progressionStatusToString(c);if(!k.validateProgressionEvent(c,d,e,h))return void j.instance.sendSdkErrorEvent(l.Rejected);var p,q={};p=e?h?d+":"+e+":"+h:d+":"+e:d,q.category=b.CategoryProgression,q.event_id=o+":"+p;var r=0;m&&c!=a.EGAProgressionStatus.Start&&(q.score=i),c===a.EGAProgressionStatus.Fail&&f.incrementProgressionTries(p),c===a.EGAProgressionStatus.Complete&&(f.incrementProgressionTries(p),r=f.getProgressionTries(p),q.attempt_num=r,f.clearProgressionTries(p)),b.addDimensionsToEvent(q),b.addFieldsToEvent(q,f.validateAndCleanCustomFields(n)),g.i("Add PROGRESSION event: {status:"+o+", progression01:"+d+", progression02:"+e+", progression03:"+h+", score:"+i+", attempt:"+r+"}"),b.addEventToStore(q)}},b.addDesignEvent=function(a,c,d,e){if(f.isEventSubmissionEnabled()){if(!k.validateDesignEvent(a,c))return void j.instance.sendSdkErrorEvent(l.Rejected);var h={};h.category=b.CategoryDesign,h.event_id=a,d&&(h.value=c),b.addDimensionsToEvent(h),b.addFieldsToEvent(h,f.validateAndCleanCustomFields(e)),g.i("Add DESIGN event: {eventId:"+a+", value:"+c+"}"),b.addEventToStore(h)}},b.addErrorEvent=function(a,c,d){if(f.isEventSubmissionEnabled()){var e=b.errorSeverityToString(a);if(!k.validateErrorEvent(a,c))return void j.instance.sendSdkErrorEvent(l.Rejected);var h={};h.category=b.CategoryError,h.severity=e,h.message=c,b.addDimensionsToEvent(h),b.addFieldsToEvent(h,f.validateAndCleanCustomFields(d)),g.i("Add ERROR event: {severity:"+e+", message:"+c+"}"),b.addEventToStore(h)}},b.processEvents=function(a,i){if(f.isEventSubmissionEnabled())try{var k=h.createGuid();i&&(b.cleanupEvents(),b.fixMissingSessionEndEvents());var l=[];l.push(["status",e.Equal,"new"]);var m=[];m.push(["status",e.Equal,"new"]),a&&(l.push(["category",e.Equal,a]),m.push(["category",e.Equal,a]));var n=[];n.push(["status",k]);var o=c.select(d.Events,l);if(!o||0==o.length)return g.i("Event queue: No events to send"),void b.updateSessionStore();if(o.length>b.MaxEventCount){if(!(o=c.select(d.Events,l,!0,b.MaxEventCount)))return;var p=o[o.length-1],q=p.client_ts;if(l.push(["client_ts",e.LessOrEqual,q]),!(o=c.select(d.Events,l)))return;m.push(["client_ts",e.LessOrEqual,q])}if(g.i("Event queue: Sending "+o.length+" events."),!c.update(d.Events,n,m))return;for(var r=[],s=0;s<o.length;++s){var t=o[s],u=JSON.parse(h.decode64(t.event));0!=u.length&&r.push(u)}j.instance.sendEventsInArray(r,k,b.processEventsCallback)}catch(a){g.e("Error during ProcessEvents(): "+a.stack)}},b.processEventsCallback=function(a,b,f,h){var j=[];if(j.push(["status",e.Equal,f]),a===i.Ok)c.delete(d.Events,j),g.i("Event queue: "+h+" events sent.");else if(a===i.NoResponse){var k=[];k.push(["status","new"]),g.w("Event queue: Failed to send events to collector - Retrying next time"),c.update(d.Events,k,j)}else{if(b){var l,m=0;for(var n in b)0==m&&(l=b[n]),++m;a===i.BadRequest&&l.constructor===Array?g.w("Event queue: "+h+" events sent. "+m+" events failed GA server validation."):g.w("Event queue: Failed to send events.")}else g.w("Event queue: Failed to send events.");c.delete(d.Events,j)}},b.cleanupEvents=function(){c.update(d.Events,[["status","new"]])},b.fixMissingSessionEndEvents=function(){if(f.isEventSubmissionEnabled()){var a=[];a.push(["session_id",e.NotEqual,f.getSessionId()]);var i=c.select(d.Sessions,a);if(i&&0!=i.length){g.i(i.length+" session(s) located with missing session_end event.");for(var j=0;j<i.length;++j){var k=JSON.parse(h.decode64(i[j].event)),l=k.client_ts,m=i[j].timestamp,n=l-m;n=Math.max(0,n),k.category=b.CategorySessionEnd,k.length=n,b.addEventToStore(k)}}}},b.addEventToStore=function(a){if(f.isEventSubmissionEnabled()){if(!f.isInitialized())return void g.w("Could not add event: SDK is not initialized");try{if(c.isStoreTooLargeForEvents()&&!h.stringMatch(a.category,/^(user|session_end|business)$/))return void g.w("Database too large. Event has been blocked.");var i=f.getEventAnnotations(),j=h.encode64(JSON.stringify(i));for(var k in a)i[k]=a[k];var l=JSON.stringify(i);g.ii("Event added to queue: "+l);var m={};m.status="new",m.category=i.category,m.session_id=i.session_id,m.client_ts=i.client_ts,m.event=h.encode64(JSON.stringify(i)),c.insert(d.Events,m),a.category==b.CategorySessionEnd?c.delete(d.Sessions,[["session_id",e.Equal,i.session_id]]):(m={},m.session_id=i.session_id,m.timestamp=f.getSessionStart(),m.event=j,c.insert(d.Sessions,m,!0,"session_id")),c.isStorageAvailable()&&c.save()}catch(k){g.e("addEventToStore: error"),g.e(k.stack)}}},b.updateSessionStore=function(){if(f.sessionIsStarted()){var a={};a.session_id=f.instance.sessionId,a.timestamp=f.getSessionStart(),a.event=h.encode64(JSON.stringify(f.getEventAnnotations())),c.insert(d.Sessions,a,!0,"session_id"),c.isStorageAvailable()&&c.save()}},b.addDimensionsToEvent=function(a){a&&(f.getCurrentCustomDimension01()&&(a.custom_01=f.getCurrentCustomDimension01()),f.getCurrentCustomDimension02()&&(a.custom_02=f.getCurrentCustomDimension02()),f.getCurrentCustomDimension03()&&(a.custom_03=f.getCurrentCustomDimension03()))},b.addFieldsToEvent=function(a,b){a&&b&&Object.keys(b).length>0&&(a.custom_fields=b)},b.resourceFlowTypeToString=function(b){return b==a.EGAResourceFlowType.Source||b==a.EGAResourceFlowType[a.EGAResourceFlowType.Source]?"Source":b==a.EGAResourceFlowType.Sink||b==a.EGAResourceFlowType[a.EGAResourceFlowType.Sink]?"Sink":""},b.progressionStatusToString=function(b){return b==a.EGAProgressionStatus.Start||b==a.EGAProgressionStatus[a.EGAProgressionStatus.Start]?"Start":b==a.EGAProgressionStatus.Complete||b==a.EGAProgressionStatus[a.EGAProgressionStatus.Complete]?"Complete":b==a.EGAProgressionStatus.Fail||b==a.EGAProgressionStatus[a.EGAProgressionStatus.Fail]?"Fail":""},b.errorSeverityToString=function(b){return b==a.EGAErrorSeverity.Debug||b==a.EGAErrorSeverity[a.EGAErrorSeverity.Debug]?"debug":b==a.EGAErrorSeverity.Info||b==a.EGAErrorSeverity[a.EGAErrorSeverity.Info]?"info":b==a.EGAErrorSeverity.Warning||b==a.EGAErrorSeverity[a.EGAErrorSeverity.Warning]?"warning":b==a.EGAErrorSeverity.Error||b==a.EGAErrorSeverity[a.EGAErrorSeverity.Error]?"error":b==a.EGAErrorSeverity.Critical||b==a.EGAErrorSeverity[a.EGAErrorSeverity.Critical]?"critical":""},b.instance=new b,b.CategorySessionStart="user",b.CategorySessionEnd="session_end",b.CategoryDesign="design",b.CategoryBusiness="business",b.CategoryProgression="progression",b.CategoryResource="resource",b.CategoryError="error",b.MaxEventCount=500,b}();b.GAEvents=m}(a.events||(a.events={}))}(s||(s={}));var s;!function(a){!function(b){var c=a.logging.GALogger,d=a.state.GAState,e=a.events.GAEvents,f=function(){function a(){this.blocks=new b.PriorityQueue({compare:function(a,b){return a-b}}),this.id2TimedBlockMap={},a.startThread()}return a.createTimedBlock=function(a){void 0===a&&(a=0);var c=new Date;return c.setSeconds(c.getSeconds()+a),new b.TimedBlock(c)},a.performTaskOnGAThread=function(c,d){void 0===d&&(d=0);var e=new Date;e.setSeconds(e.getSeconds()+d);var f=new b.TimedBlock(e);f.block=c,a.instance.id2TimedBlockMap[f.id]=f,a.instance.addTimedBlock(f)},a.performTimedBlockOnGAThread=function(b){a.instance.id2TimedBlockMap[b.id]=b,a.instance.addTimedBlock(b)},a.scheduleTimer=function(c,d){var e=new Date;e.setSeconds(e.getSeconds()+c);var f=new b.TimedBlock(e);return f.block=d,a.instance.id2TimedBlockMap[f.id]=f,a.instance.addTimedBlock(f),f.id},a.getTimedBlockById=function(b){return b in a.instance.id2TimedBlockMap?a.instance.id2TimedBlockMap[b]:null},a.ensureEventQueueIsRunning=function(){a.instance.keepRunning=!0,a.instance.isRunning||(a.instance.isRunning=!0,a.scheduleTimer(a.ProcessEventsIntervalInSeconds,a.processEventQueue))},a.endSessionAndStopQueue=function(){d.isInitialized()&&(c.i("Ending session."),a.stopEventQueue(),d.isEnabled()&&d.sessionIsStarted()&&(e.addSessionEndEvent(),d.instance.sessionStart=0))},a.stopEventQueue=function(){a.instance.keepRunning=!1},a.ignoreTimer=function(b){b in a.instance.id2TimedBlockMap&&(a.instance.id2TimedBlockMap[b].ignore=!0)},a.setEventProcessInterval=function(b){b>0&&(a.ProcessEventsIntervalInSeconds=b)},a.prototype.addTimedBlock=function(a){this.blocks.enqueue(a.deadline.getTime(),a)},a.run=function(){clearTimeout(a.runTimeoutId);try{for(var b;b=a.getNextBlock();)if(!b.ignore)if(b.async){if(!b.running){b.running=!0,b.block();break}}else b.block();return void(a.runTimeoutId=setTimeout(a.run,a.ThreadWaitTimeInMs))}catch(a){c.e("Error on GA thread"),c.e(a.stack)}},a.startThread=function(){a.runTimeoutId=setTimeout(a.run,0)},a.getNextBlock=function(){var b=new Date;return a.instance.blocks.hasItems()&&a.instance.blocks.peek().deadline.getTime()<=b.getTime()?a.instance.blocks.peek().async&&a.instance.blocks.peek().running?a.instance.blocks.peek():a.instance.blocks.dequeue():null},a.processEventQueue=function(){e.processEvents("",!0),a.instance.keepRunning?a.scheduleTimer(a.ProcessEventsIntervalInSeconds,a.processEventQueue):a.instance.isRunning=!1},a.instance=new a,a.ThreadWaitTimeInMs=1e3,a.ProcessEventsIntervalInSeconds=8,a}();b.GAThreading=f}(a.threading||(a.threading={}))}(s||(s={}));var s;!function(a){var b=a.threading.GAThreading,c=a.logging.GALogger,d=a.store.GAStore,e=a.state.GAState,f=a.http.GAHTTPApi,g=a.device.GADevice,h=a.validators.GAValidator,i=a.http.EGAHTTPApiResponse,j=a.utilities.GAUtilities,k=a.events.GAEvents,l=function(){function l(){}return l.init=function(){if(g.touch(),l.methodMap.configureAvailableCustomDimensions01=l.configureAvailableCustomDimensions01,l.methodMap.configureAvailableCustomDimensions02=l.configureAvailableCustomDimensions02,l.methodMap.configureAvailableCustomDimensions03=l.configureAvailableCustomDimensions03,l.methodMap.configureAvailableResourceCurrencies=l.configureAvailableResourceCurrencies,l.methodMap.configureAvailableResourceItemTypes=l.configureAvailableResourceItemTypes,l.methodMap.configureBuild=l.configureBuild,l.methodMap.configureSdkGameEngineVersion=l.configureSdkGameEngineVersion,l.methodMap.configureGameEngineVersion=l.configureGameEngineVersion,l.methodMap.configureUserId=l.configureUserId,l.methodMap.initialize=l.initialize,l.methodMap.addBusinessEvent=l.addBusinessEvent,l.methodMap.addResourceEvent=l.addResourceEvent,l.methodMap.addProgressionEvent=l.addProgressionEvent,l.methodMap.addDesignEvent=l.addDesignEvent,l.methodMap.addErrorEvent=l.addErrorEvent,l.methodMap.addErrorEvent=l.addErrorEvent,l.methodMap.setEnabledInfoLog=l.setEnabledInfoLog,l.methodMap.setEnabledVerboseLog=l.setEnabledVerboseLog,l.methodMap.setEnabledManualSessionHandling=l.setEnabledManualSessionHandling,l.methodMap.setEnabledEventSubmission=l.setEnabledEventSubmission,l.methodMap.setCustomDimension01=l.setCustomDimension01,l.methodMap.setCustomDimension02=l.setCustomDimension02,l.methodMap.setCustomDimension03=l.setCustomDimension03,l.methodMap.setFacebookId=l.setFacebookId,l.methodMap.setGender=l.setGender,l.methodMap.setBirthYear=l.setBirthYear,l.methodMap.setEventProcessInterval=l.setEventProcessInterval,l.methodMap.startSession=l.startSession,l.methodMap.endSession=l.endSession,l.methodMap.onStop=l.onStop,l.methodMap.onResume=l.onResume,l.methodMap.addCommandCenterListener=l.addCommandCenterListener,l.methodMap.removeCommandCenterListener=l.removeCommandCenterListener,l.methodMap.getCommandCenterValueAsString=l.getCommandCenterValueAsString,l.methodMap.isCommandCenterReady=l.isCommandCenterReady,l.methodMap.getConfigurationsContentAsString=l.getConfigurationsContentAsString,"undefined"!=typeof window&&void 0!==window.GameAnalytics&&void 0!==window.GameAnalytics.q){var a=window.GameAnalytics.q;for(var b in a)l.gaCommand.apply(null,a[b])}},l.gaCommand=function(){for(var b=[],c=0;c<arguments.length;c++)b[c]=arguments[c];b.length>0&&b[0]in a.GameAnalytics.methodMap&&(b.length>1?a.GameAnalytics.methodMap[b[0]].apply(null,Array.prototype.slice.call(b,1)):a.GameAnalytics.methodMap[b[0]]())},l.configureAvailableCustomDimensions01=function(a){void 0===a&&(a=[]),b.performTaskOnGAThread(function(){if(l.isSdkReady(!0,!1))return void c.w("Available custom dimensions must be set before SDK is initialized");e.setAvailableCustomDimensions01(a)})},l.configureAvailableCustomDimensions02=function(a){void 0===a&&(a=[]),b.performTaskOnGAThread(function(){if(l.isSdkReady(!0,!1))return void c.w("Available custom dimensions must be set before SDK is initialized");e.setAvailableCustomDimensions02(a)})},l.configureAvailableCustomDimensions03=function(a){void 0===a&&(a=[]),b.performTaskOnGAThread(function(){if(l.isSdkReady(!0,!1))return void c.w("Available custom dimensions must be set before SDK is initialized");e.setAvailableCustomDimensions03(a)})},l.configureAvailableResourceCurrencies=function(a){void 0===a&&(a=[]),b.performTaskOnGAThread(function(){if(l.isSdkReady(!0,!1))return void c.w("Available resource currencies must be set before SDK is initialized");e.setAvailableResourceCurrencies(a)})},l.configureAvailableResourceItemTypes=function(a){void 0===a&&(a=[]),b.performTaskOnGAThread(function(){if(l.isSdkReady(!0,!1))return void c.w("Available resource item types must be set before SDK is initialized");e.setAvailableResourceItemTypes(a)})},l.configureBuild=function(a){void 0===a&&(a=""),b.performTaskOnGAThread(function(){return l.isSdkReady(!0,!1)?void c.w("Build version must be set before SDK is initialized."):h.validateBuild(a)?void e.setBuild(a):void c.i("Validation fail - configure build: Cannot be null, empty or above 32 length. String: "+a)})},l.configureSdkGameEngineVersion=function(a){void 0===a&&(a=""),b.performTaskOnGAThread(function(){if(!l.isSdkReady(!0,!1))return h.validateSdkWrapperVersion(a)?void(g.sdkGameEngineVersion=a):void c.i("Validation fail - configure sdk version: Sdk version not supported. String: "+a)})},l.configureGameEngineVersion=function(a){void 0===a&&(a=""),b.performTaskOnGAThread(function(){if(!l.isSdkReady(!0,!1))return h.validateEngineVersion(a)?void(g.gameEngineVersion=a):void c.i("Validation fail - configure game engine version: Game engine version not supported. String: "+a)})},l.configureUserId=function(a){void 0===a&&(a=""),b.performTaskOnGAThread(function(){return l.isSdkReady(!0,!1)?void c.w("A custom user id must be set before SDK is initialized."):h.validateUserId(a)?void e.setUserId(a):void c.i("Validation fail - configure user_id: Cannot be null, empty or above 64 length. Will use default user_id method. Used string: "+a)})},l.initialize=function(a,d){void 0===a&&(a=""),void 0===d&&(d=""),g.updateConnectionType();var f=b.createTimedBlock();f.async=!0,l.initTimedBlockId=f.id,f.block=function(){return l.isSdkReady(!0,!1)?void c.w("SDK already initialized. Can only be called once."):h.validateKeys(a,d)?(e.setKeys(a,d),void l.internalInitialize()):void c.w("SDK failed initialize. Game key or secret key is invalid. Can only contain characters A-z 0-9, gameKey is 32 length, gameSecret is 40 length. Failed keys - gameKey: "+a+", secretKey: "+d)},b.performTimedBlockOnGAThread(f)},l.addBusinessEvent=function(a,c,d,e,f){void 0===a&&(a=""),void 0===c&&(c=0),void 0===d&&(d=""),void 0===e&&(e=""),void 0===f&&(f=""),g.updateConnectionType(),b.performTaskOnGAThread(function(){l.isSdkReady(!0,!0,"Could not add business event")&&k.addBusinessEvent(a,c,d,e,f,{})})},l.addResourceEvent=function(c,d,e,f,h){void 0===c&&(c=a.EGAResourceFlowType.Undefined),void 0===d&&(d=""),void 0===e&&(e=0),void 0===f&&(f=""),void 0===h&&(h=""),g.updateConnectionType(),b.performTaskOnGAThread(function(){l.isSdkReady(!0,!0,"Could not add resource event")&&k.addResourceEvent(c,d,e,f,h,{})})},l.addProgressionEvent=function(c,d,e,f,h){void 0===c&&(c=a.EGAProgressionStatus.Undefined),void 0===d&&(d=""),void 0===e&&(e=""),void 0===f&&(f=""),g.updateConnectionType(),b.performTaskOnGAThread(function(){if(l.isSdkReady(!0,!0,"Could not add progression event")){var a="number"==typeof h;k.addProgressionEvent(c,d,e,f,a?h:0,a,{})}})},l.addDesignEvent=function(a,c){g.updateConnectionType(),b.performTaskOnGAThread(function(){if(l.isSdkReady(!0,!0,"Could not add design event")){var b="number"==typeof c;k.addDesignEvent(a,b?c:0,b,{})}})},l.addErrorEvent=function(c,d){void 0===c&&(c=a.EGAErrorSeverity.Undefined),void 0===d&&(d=""),g.updateConnectionType(),b.performTaskOnGAThread(function(){l.isSdkReady(!0,!0,"Could not add error event")&&k.addErrorEvent(c,d,{})})},l.setEnabledInfoLog=function(a){void 0===a&&(a=!1),b.performTaskOnGAThread(function(){a?(c.setInfoLog(a),c.i("Info logging enabled")):(c.i("Info logging disabled"),c.setInfoLog(a))})},l.setEnabledVerboseLog=function(a){void 0===a&&(a=!1),b.performTaskOnGAThread(function(){a?(c.setVerboseLog(a),c.i("Verbose logging enabled")):(c.i("Verbose logging disabled"),c.setVerboseLog(a))})},l.setEnabledManualSessionHandling=function(a){void 0===a&&(a=!1),b.performTaskOnGAThread(function(){e.setManualSessionHandling(a)})},l.setEnabledEventSubmission=function(a){void 0===a&&(a=!1),b.performTaskOnGAThread(function(){a?(e.setEnabledEventSubmission(a),c.i("Event submission enabled")):(c.i("Event submission disabled"),e.setEnabledEventSubmission(a))})},l.setCustomDimension01=function(a){void 0===a&&(a=""),b.performTaskOnGAThread(function(){if(!h.validateDimension01(a,e.getAvailableCustomDimensions01()))return void c.w("Could not set custom01 dimension value to '"+a+"'. Value not found in available custom01 dimension values");e.setCustomDimension01(a)})},l.setCustomDimension02=function(a){void 0===a&&(a=""),b.performTaskOnGAThread(function(){if(!h.validateDimension02(a,e.getAvailableCustomDimensions02()))return void c.w("Could not set custom02 dimension value to '"+a+"'. Value not found in available custom02 dimension values");e.setCustomDimension02(a)})},l.setCustomDimension03=function(a){void 0===a&&(a=""),b.performTaskOnGAThread(function(){if(!h.validateDimension03(a,e.getAvailableCustomDimensions03()))return void c.w("Could not set custom03 dimension value to '"+a+"'. Value not found in available custom03 dimension values");e.setCustomDimension03(a)})},l.setFacebookId=function(a){void 0===a&&(a=""),b.performTaskOnGAThread(function(){h.validateFacebookId(a)&&e.setFacebookId(a)})},l.setGender=function(c){void 0===c&&(c=a.EGAGender.Undefined),b.performTaskOnGAThread(function(){h.validateGender(c)&&e.setGender(c)})},l.setBirthYear=function(a){void 0===a&&(a=0),b.performTaskOnGAThread(function(){h.validateBirthyear(a)&&e.setBirthYear(a)})},l.setEventProcessInterval=function(a){b.performTaskOnGAThread(function(){b.setEventProcessInterval(a)})},l.startSession=function(){if(e.isInitialized()){var a=b.createTimedBlock();a.async=!0,l.initTimedBlockId=a.id,a.block=function(){e.isEnabled()&&e.sessionIsStarted()&&b.endSessionAndStopQueue(),l.resumeSessionAndStartQueue()},b.performTimedBlockOnGAThread(a)}},l.endSession=function(){l.onStop()},l.onStop=function(){b.performTaskOnGAThread(function(){try{b.endSessionAndStopQueue()}catch(a){}})},l.onResume=function(){var a=b.createTimedBlock();a.async=!0,l.initTimedBlockId=a.id,a.block=function(){l.resumeSessionAndStartQueue()},b.performTimedBlockOnGAThread(a)},l.getCommandCenterValueAsString=function(a,b){return void 0===b&&(b=null),e.getConfigurationStringValue(a,b)},l.isCommandCenterReady=function(){return e.isCommandCenterReady()},l.addCommandCenterListener=function(a){e.addCommandCenterListener(a)},l.removeCommandCenterListener=function(a){e.removeCommandCenterListener(a)},l.getConfigurationsContentAsString=function(){return e.getConfigurationsContentAsString()},l.internalInitialize=function(){e.ensurePersistedStates(),d.setItem(e.DefaultUserIdKey,e.getDefaultId()),e.setInitialized(!0),l.newSession(),e.isEnabled()&&b.ensureEventQueueIsRunning()},l.newSession=function(){c.i("Starting a new session."),e.validateAndFixCurrentDimensions(),f.instance.requestInit(l.startNewSessionCallback)},l.startNewSessionCallback=function(a,f){if(a===i.Ok&&f){var g=0;if(f.server_ts){var h=f.server_ts;g=e.calculateServerTimeOffset(h)}f.time_offset=g,d.setItem(e.SdkConfigCachedKey,j.encode64(JSON.stringify(f))),e.instance.sdkConfigCached=f,e.instance.sdkConfig=f,e.instance.initAuthorized=!0}else a==i.Unauthorized?(c.w("Initialize SDK failed - Unauthorized"),e.instance.initAuthorized=!1):(a===i.NoResponse||a===i.RequestTimeout?c.i("Init call (session start) failed - no response. Could be offline or timeout."):a===i.BadResponse||a===i.JsonEncodeFailed||a===i.JsonDecodeFailed?c.i("Init call (session start) failed - bad response. Could be bad response from proxy or GA servers."):a!==i.BadRequest&&a!==i.UnknownResponseCode||c.i("Init call (session start) failed - bad request or unknown response."),null==e.instance.sdkConfig?null!=e.instance.sdkConfigCached?(c.i("Init call (session start) failed - using cached init values."),e.instance.sdkConfig=e.instance.sdkConfigCached):(c.i("Init call (session start) failed - using default init values."),e.instance.sdkConfig=e.instance.sdkConfigDefault):c.i("Init call (session start) failed - using cached init values."),e.instance.initAuthorized=!0);if(e.instance.clientServerTimeOffset=e.getSdkConfig().time_offset?e.getSdkConfig().time_offset:0,e.populateConfigurations(e.getSdkConfig()),!e.isEnabled())return c.w("Could not start session: SDK is disabled."),void b.stopEventQueue();b.ensureEventQueueIsRunning();var m=j.createGuid();e.instance.sessionId=m,e.instance.sessionStart=e.getClientTsAdjusted(),k.addSessionStartEvent();var n=b.getTimedBlockById(l.initTimedBlockId);null!=n&&(n.running=!1),l.initTimedBlockId=-1},l.resumeSessionAndStartQueue=function(){e.isInitialized()&&(c.i("Resuming session."),e.sessionIsStarted()||l.newSession())},l.isSdkReady=function(a,b,d){return void 0===b&&(b=!0),void 0===d&&(d=""),d&&(d+=": "),a&&!e.isInitialized()?(b&&c.w(d+"SDK is not initialized"),!1):a&&!e.isEnabled()?(b&&c.w(d+"SDK is disabled"),!1):!(a&&!e.sessionIsStarted())||(b&&c.w(d+"Session has not started yet"),!1)},l.initTimedBlockId=-1,l.methodMap={},l}();a.GameAnalytics=l}(s||(s={})),s.GameAnalytics.init();var t=(s.GameAnalytics.gaCommand,s),u=function(){function a(){}return a.prototype.setup=function(a,b,c){o.analyticsEnabled&&(t.GameAnalytics.initialize(a,b),t.GameAnalytics.configureBuild(c),t.GameAnalytics.startSession(),window.addEventListener("beforeunload",function(){t.GameAnalytics.endSession()}))},a.prototype.addProgressionEvent=function(a,b,c,d,e){o.analyticsEnabled&&t.GameAnalytics.addProgressionEvent(a,b,c,d,e)},a.prototype.addDesignEvent=function(a,b){o.analyticsEnabled&&t.GameAnalytics.addDesignEvent(a,b)},a}(),v=c(function(a,c){!function(c){a.exports=function(){return function a(c,d,e){function f(h,i){if(!d[h]){if(!c[h]){var j="function"==typeof b&&b;if(!i&&j)return j(h,!0);if(g)return g(h,!0);var k=new Error("Cannot find module '"+h+"'");throw k.code="MODULE_NOT_FOUND",k}var l=d[h]={exports:{}};c[h][0].call(l.exports,function(a){var b=c[h][1][a];return f(b||a)},l,l.exports,a,c,d,e)}return d[h].exports}for(var g="function"==typeof b&&b,h=0;h<e.length;h++)f(e[h]);return f}({1:[function(a,b,c){(function(){var a=this||Function("return this")(),d=function(){function d(){}function e(a,b){var c;for(c in a)Object.hasOwnProperty.call(a,c)&&b(c)}function f(a,b){return e(b,function(c){a[c]=b[c]}),a}function g(a,b){e(b,function(c){void 0===a[c]&&(a[c]=b[c])})}function h(a,b,c,d,e,f,g){var h,j,k,l=a<f?0:(a-f)/e;for(h in b)b.hasOwnProperty(h)&&(j=g[h],k="function"==typeof j?j:n[j],b[h]=i(c[h],d[h],k,l));return b}function i(a,b,c,d){return a+(b-a)*c(d)}function j(a,b){var c=m.prototype.filter,d=a._filterArgs;e(c,function(e){void 0!==c[e][b]&&c[e][b].apply(a,d)})}function k(a,b,c,d,e,f,g,i,k,l,m){t=b+c+d,u=Math.min(m||s(),t),v=u>=t,w=d-(t-u),a.isPlaying()&&(v?(k(g,a._attachment,w),a.stop(!0)):(a._scheduleId=l(a._timeoutHandler,q),j(a,"beforeTween"),u<b+c?h(1,e,f,g,1,1,i):h(u,e,f,g,d,b+c,i),j(a,"afterTween"),k(e,a._attachment,w)))}function l(a,b){var c={},d=typeof b;return"string"===d||"function"===d?e(a,function(a){c[a]=b}):e(a,function(a){c[a]||(c[a]=b[a]||p)}),c}function m(a,b){this._currentState=a||{},this._configured=!1,this._scheduleFunction=o,void 0!==b&&this.setConfig(b)}var n,o,p="linear",q=1e3/60,r=Date.now?Date.now:function(){return+new Date},s="undefined"!=typeof SHIFTY_DEBUG_NOW?SHIFTY_DEBUG_NOW:r;o="undefined"!=typeof window?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||window.mozCancelRequestAnimationFrame&&window.mozRequestAnimationFrame||setTimeout:setTimeout;var t,u,v,w;return m.prototype.tween=function(a){return this._isTweening?this:(void 0===a&&this._configured||this.setConfig(a),this._timestamp=s(),this._start(this.get(),this._attachment),this.resume())},m.prototype.setConfig=function(a){a=a||{},this._configured=!0,this._attachment=a.attachment,this._pausedAtTime=null,this._scheduleId=null,this._delay=a.delay||0,this._start=a.start||d,this._step=a.step||d,this._finish=a.finish||d,this._duration=a.duration||500,this._currentState=f({},a.from||this.get()),this._originalState=this.get(),this._targetState=f({},a.to||this.get());var b=this;this._timeoutHandler=function(){k(b,b._timestamp,b._delay,b._duration,b._currentState,b._originalState,b._targetState,b._easing,b._step,b._scheduleFunction)};var c=this._currentState,e=this._targetState;return g(e,c),this._easing=l(c,a.easing||p),this._filterArgs=[c,this._originalState,e,this._easing],j(this,"tweenCreated"),this},m.prototype.get=function(){return f({},this._currentState)},m.prototype.set=function(a){this._currentState=a},m.prototype.pause=function(){return this._pausedAtTime=s(),this._isPaused=!0,this},m.prototype.resume=function(){return this._isPaused&&(this._timestamp+=s()-this._pausedAtTime),this._isPaused=!1,this._isTweening=!0,this._timeoutHandler(),this},m.prototype.seek=function(a){a=Math.max(a,0);var b=s();return this._timestamp+a===0?this:(this._timestamp=b-a,this.isPlaying()||(this._isTweening=!0,this._isPaused=!1,k(this,this._timestamp,this._delay,this._duration,this._currentState,this._originalState,this._targetState,this._easing,this._step,this._scheduleFunction,b),this.pause()),this)},m.prototype.stop=function(b){return this._isTweening=!1,this._isPaused=!1,this._timeoutHandler=d,(a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.oCancelAnimationFrame||a.msCancelAnimationFrame||a.mozCancelRequestAnimationFrame||a.clearTimeout)(this._scheduleId),b&&(j(this,"beforeTween"),h(1,this._currentState,this._originalState,this._targetState,1,0,this._easing),j(this,"afterTween"),j(this,"afterTweenEnd"),this._finish.call(this,this._currentState,this._attachment)),this},m.prototype.isPlaying=function(){return this._isTweening&&!this._isPaused},m.prototype.setScheduleFunction=function(a){this._scheduleFunction=a},m.prototype.dispose=function(){var a;for(a in this)this.hasOwnProperty(a)&&delete this[a]},m.prototype.filter={},m.prototype.formula={linear:function(a){return a}},n=m.prototype.formula,f(m,{now:s,each:e,tweenProps:h,tweenProp:i,applyFilter:j,shallowCopy:f,defaults:g,composeEasingObject:l}),"function"==typeof SHIFTY_DEBUG_NOW&&(a.timeoutHandler=k),"object"==typeof c?b.exports=m:void 0===a.Tweenable&&(a.Tweenable=m),m}();!function(){d.shallowCopy(d.prototype.formula,{easeInQuad:function(a){return Math.pow(a,2)},easeOutQuad:function(a){return-(Math.pow(a-1,2)-1)},easeInOutQuad:function(a){return(a/=.5)<1?.5*Math.pow(a,2):-.5*((a-=2)*a-2)},easeInCubic:function(a){return Math.pow(a,3)},easeOutCubic:function(a){return Math.pow(a-1,3)+1},easeInOutCubic:function(a){return(a/=.5)<1?.5*Math.pow(a,3):.5*(Math.pow(a-2,3)+2)},easeInQuart:function(a){return Math.pow(a,4)},easeOutQuart:function(a){return-(Math.pow(a-1,4)-1)},easeInOutQuart:function(a){return(a/=.5)<1?.5*Math.pow(a,4):-.5*((a-=2)*Math.pow(a,3)-2)},easeInQuint:function(a){return Math.pow(a,5)},easeOutQuint:function(a){return Math.pow(a-1,5)+1},easeInOutQuint:function(a){return(a/=.5)<1?.5*Math.pow(a,5):.5*(Math.pow(a-2,5)+2)},easeInSine:function(a){return 1-Math.cos(a*(Math.PI/2))},easeOutSine:function(a){return Math.sin(a*(Math.PI/2))},easeInOutSine:function(a){return-.5*(Math.cos(Math.PI*a)-1)},easeInExpo:function(a){return 0===a?0:Math.pow(2,10*(a-1))},easeOutExpo:function(a){return 1===a?1:1-Math.pow(2,-10*a)},easeInOutExpo:function(a){return 0===a?0:1===a?1:(a/=.5)<1?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*--a))},easeInCirc:function(a){return-(Math.sqrt(1-a*a)-1)},easeOutCirc:function(a){return Math.sqrt(1-Math.pow(a-1,2))},easeInOutCirc:function(a){return(a/=.5)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)},easeOutBounce:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},easeInBack:function(a){var b=1.70158;return a*a*((b+1)*a-b)},easeOutBack:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},easeInOutBack:function(a){var b=1.70158;return(a/=.5)<1?a*a*((1+(b*=1.525))*a-b)*.5:.5*((a-=2)*a*((1+(b*=1.525))*a+b)+2)},elastic:function(a){return-1*Math.pow(4,-8*a)*Math.sin((6*a-1)*(2*Math.PI)/2)+1},swingFromTo:function(a){var b=1.70158;return(a/=.5)<1?a*a*((1+(b*=1.525))*a-b)*.5:.5*((a-=2)*a*((1+(b*=1.525))*a+b)+2)},swingFrom:function(a){var b=1.70158;return a*a*((b+1)*a-b)},swingTo:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},bounce:function(a){
|
||
return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},bouncePast:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?2-(7.5625*(a-=1.5/2.75)*a+.75):a<2.5/2.75?2-(7.5625*(a-=2.25/2.75)*a+.9375):2-(7.5625*(a-=2.625/2.75)*a+.984375)},easeFromTo:function(a){return(a/=.5)<1?.5*Math.pow(a,4):-.5*((a-=2)*Math.pow(a,3)-2)},easeFrom:function(a){return Math.pow(a,4)},easeTo:function(a){return Math.pow(a,.25)}})}(),function(){function a(a,b,c,d,e,f){function g(a){return((l*a+m)*a+n)*a}function h(a){return((o*a+p)*a+q)*a}function i(a){return(3*l*a+2*m)*a+n}function j(a){return a>=0?a:0-a}function k(a,b){var c,d,e,f,h,k;for(e=a,k=0;k<8;k++){if(f=g(e)-a,j(f)<b)return e;if(h=i(e),j(h)<1e-6)break;e-=f/h}if(c=0,d=1,(e=a)<c)return c;if(e>d)return d;for(;c<d;){if(f=g(e),j(f-a)<b)return e;a>f?c=e:d=e,e=.5*(d-c)+c}return e}var l=0,m=0,n=0,o=0,p=0,q=0;return n=3*b,m=3*(d-b)-n,l=1-n-m,q=3*c,p=3*(e-c)-q,o=1-q-p,function(a,b){return h(k(a,b))}(a,function(a){return 1/(200*a)}(f))}function b(b,c,d,e){return function(f){return a(f,b,c,d,e,1)}}d.setBezierFunction=function(a,c,e,f,g){var h=b(c,e,f,g);return h.displayName=a,h.x1=c,h.y1=e,h.x2=f,h.y2=g,d.prototype.formula[a]=h},d.unsetBezierFunction=function(a){delete d.prototype.formula[a]}}(),function(){function a(a,b,c,e,f,g){return d.tweenProps(e,b,a,c,1,g,f)}var b=new d;b._filterArgs=[],d.interpolate=function(c,e,f,g,h){var i=d.shallowCopy({},c),j=h||0,k=d.composeEasingObject(c,g||"linear");b.set({});var l=b._filterArgs;l.length=0,l[0]=i,l[1]=c,l[2]=e,l[3]=k,d.applyFilter(b,"tweenCreated"),d.applyFilter(b,"beforeTween");var m=a(c,i,e,f,k,j);return d.applyFilter(b,"afterTween"),m}}(),function(a){function b(a,b){var c,d=[],e=a.length;for(c=0;c<e;c++)d.push("_"+b+"_"+c);return d}function c(a){var b=a.match(v);return b?(1===b.length||a.charAt(0).match(u))&&b.unshift(""):b=["",""],b.join(A)}function d(b){a.each(b,function(a){var c=b[a];"string"==typeof c&&c.match(z)&&(b[a]=e(c))})}function e(a){return i(z,a,f)}function f(a){var b=g(a);return"rgb("+b[0]+","+b[1]+","+b[2]+")"}function g(a){return a=a.replace(/#/,""),3===a.length&&(a=a.split(""),a=a[0]+a[0]+a[1]+a[1]+a[2]+a[2]),B[0]=h(a.substr(0,2)),B[1]=h(a.substr(2,2)),B[2]=h(a.substr(4,2)),B}function h(a){return parseInt(a,16)}function i(a,b,c){var d=b.match(a),e=b.replace(a,A);if(d)for(var f,g=d.length,h=0;h<g;h++)f=d.shift(),e=e.replace(A,c(f));return e}function j(a){return i(x,a,k)}function k(a){for(var b=a.match(w),c=b.length,d=a.match(y)[0],e=0;e<c;e++)d+=parseInt(b[e],10)+",";return d=d.slice(0,-1)+")"}function l(d){var e={};return a.each(d,function(a){var f=d[a];if("string"==typeof f){var g=r(f);e[a]={formatString:c(f),chunkNames:b(g,a)}}}),e}function m(b,c){a.each(c,function(a){for(var d=b[a],e=r(d),f=e.length,g=0;g<f;g++)b[c[a].chunkNames[g]]=+e[g];delete b[a]})}function n(b,c){a.each(c,function(a){var d=b[a],e=o(b,c[a].chunkNames),f=p(e,c[a].chunkNames);d=q(c[a].formatString,f),b[a]=j(d)})}function o(a,b){for(var c,d={},e=b.length,f=0;f<e;f++)c=b[f],d[c]=a[c],delete a[c];return d}function p(a,b){C.length=0;for(var c=b.length,d=0;d<c;d++)C.push(a[b[d]]);return C}function q(a,b){for(var c=a,d=b.length,e=0;e<d;e++)c=c.replace(A,+b[e].toFixed(4));return c}function r(a){return a.match(w)}function s(b,c){a.each(c,function(a){var d,e=c[a],f=e.chunkNames,g=f.length,h=b[a];if("string"==typeof h){var i=h.split(" "),j=i[i.length-1];for(d=0;d<g;d++)b[f[d]]=i[d]||j}else for(d=0;d<g;d++)b[f[d]]=h;delete b[a]})}function t(b,c){a.each(c,function(a){var d=c[a],e=d.chunkNames,f=e.length,g=b[e[0]];if("string"==typeof g){for(var h="",i=0;i<f;i++)h+=" "+b[e[i]],delete b[e[i]];b[a]=h.substr(1)}else b[a]=g})}var u=/(\d|\-|\.)/,v=/([^\-0-9\.]+)/g,w=/[0-9.\-]+/g,x=new RegExp("rgb\\("+w.source+/,\s*/.source+w.source+/,\s*/.source+w.source+"\\)","g"),y=/^.*\(/,z=/#([0-9]|[a-f]){3,6}/gi,A="VAL",B=[],C=[];a.prototype.filter.token={tweenCreated:function(a,b,c,e){d(a),d(b),d(c),this._tokenData=l(a)},beforeTween:function(a,b,c,d){s(d,this._tokenData),m(a,this._tokenData),m(b,this._tokenData),m(c,this._tokenData)},afterTween:function(a,b,c,d){n(a,this._tokenData),n(b,this._tokenData),n(c,this._tokenData),t(d,this._tokenData)}}}(d)}).call(null)},{}],2:[function(a,b,c){var d=a("./shape"),e=a("./utils"),f=function(a,b){this._pathTemplate="M 50,50 m 0,-{radius} a {radius},{radius} 0 1 1 0,{2radius} a {radius},{radius} 0 1 1 0,-{2radius}",this.containerAspectRatio=1,d.apply(this,arguments)};f.prototype=new d,f.prototype.constructor=f,f.prototype._pathString=function(a){var b=a.strokeWidth;a.trailWidth&&a.trailWidth>a.strokeWidth&&(b=a.trailWidth);var c=50-b/2;return e.render(this._pathTemplate,{radius:c,"2radius":2*c})},f.prototype._trailString=function(a){return this._pathString(a)},b.exports=f},{"./shape":7,"./utils":9}],3:[function(a,b,c){var d=a("./shape"),e=a("./utils"),f=function(a,b){this._pathTemplate="M 0,{center} L 100,{center}",d.apply(this,arguments)};f.prototype=new d,f.prototype.constructor=f,f.prototype._initializeSvg=function(a,b){a.setAttribute("viewBox","0 0 100 "+b.strokeWidth),a.setAttribute("preserveAspectRatio","none")},f.prototype._pathString=function(a){return e.render(this._pathTemplate,{center:a.strokeWidth/2})},f.prototype._trailString=function(a){return this._pathString(a)},b.exports=f},{"./shape":7,"./utils":9}],4:[function(a,b,c){b.exports={Line:a("./line"),Circle:a("./circle"),SemiCircle:a("./semicircle"),Square:a("./square"),Path:a("./path"),Shape:a("./shape"),utils:a("./utils")}},{"./circle":2,"./line":3,"./path":5,"./semicircle":6,"./shape":7,"./square":8,"./utils":9}],5:[function(a,b,c){var d=a("shifty"),e=a("./utils"),f={easeIn:"easeInCubic",easeOut:"easeOutCubic",easeInOut:"easeInOutCubic"},g=function a(b,c){if(!(this instanceof a))throw new Error("Constructor was called without new keyword");c=e.extend({duration:800,easing:"linear",from:{},to:{},step:function(){}},c);var d;d=e.isString(b)?document.querySelector(b):b,this.path=d,this._opts=c,this._tweenable=null;var f=this.path.getTotalLength();this.path.style.strokeDasharray=f+" "+f,this.set(0)};g.prototype.value=function(){var a=this._getComputedDashOffset(),b=this.path.getTotalLength(),c=1-a/b;return parseFloat(c.toFixed(6),10)},g.prototype.set=function(a){this.stop(),this.path.style.strokeDashoffset=this._progressToOffset(a);var b=this._opts.step;if(e.isFunction(b)){var c=this._easing(this._opts.easing);b(this._calculateTo(a,c),this._opts.shape||this,this._opts.attachment)}},g.prototype.stop=function(){this._stopTween(),this.path.style.strokeDashoffset=this._getComputedDashOffset()},g.prototype.animate=function(a,b,c){b=b||{},e.isFunction(b)&&(c=b,b={});var f=e.extend({},b),g=e.extend({},this._opts);b=e.extend(g,b);var h=this._easing(b.easing),i=this._resolveFromAndTo(a,h,f);this.stop(),this.path.getBoundingClientRect();var j=this._getComputedDashOffset(),k=this._progressToOffset(a),l=this;this._tweenable=new d,this._tweenable.tween({from:e.extend({offset:j},i.from),to:e.extend({offset:k},i.to),duration:b.duration,easing:h,step:function(a){l.path.style.strokeDashoffset=a.offset;var c=b.shape||l;b.step(a,c,b.attachment)},finish:function(a){e.isFunction(c)&&c()}})},g.prototype._getComputedDashOffset=function(){var a=window.getComputedStyle(this.path,null);return parseFloat(a.getPropertyValue("stroke-dashoffset"),10)},g.prototype._progressToOffset=function(a){var b=this.path.getTotalLength();return b-a*b},g.prototype._resolveFromAndTo=function(a,b,c){return c.from&&c.to?{from:c.from,to:c.to}:{from:this._calculateFrom(b),to:this._calculateTo(a,b)}},g.prototype._calculateFrom=function(a){return d.interpolate(this._opts.from,this._opts.to,this.value(),a)},g.prototype._calculateTo=function(a,b){return d.interpolate(this._opts.from,this._opts.to,a,b)},g.prototype._stopTween=function(){null!==this._tweenable&&(this._tweenable.stop(),this._tweenable=null)},g.prototype._easing=function(a){return f.hasOwnProperty(a)?f[a]:a},b.exports=g},{"./utils":9,shifty:1}],6:[function(a,b,c){var d=a("./shape"),e=a("./circle"),f=a("./utils"),g=function(a,b){this._pathTemplate="M 50,50 m -{radius},0 a {radius},{radius} 0 1 1 {2radius},0",this.containerAspectRatio=2,d.apply(this,arguments)};g.prototype=new d,g.prototype.constructor=g,g.prototype._initializeSvg=function(a,b){a.setAttribute("viewBox","0 0 100 50")},g.prototype._initializeTextContainer=function(a,b,c){a.text.style&&(c.style.top="auto",c.style.bottom="0",a.text.alignToBottom?f.setStyle(c,"transform","translate(-50%, 0)"):f.setStyle(c,"transform","translate(-50%, 50%)"))},g.prototype._pathString=e.prototype._pathString,g.prototype._trailString=e.prototype._trailString,b.exports=g},{"./circle":2,"./shape":7,"./utils":9}],7:[function(a,b,c){var d=a("./path"),e=a("./utils"),f=function a(b,c){if(!(this instanceof a))throw new Error("Constructor was called without new keyword");if(0!==arguments.length){this._opts=e.extend({color:"#555",strokeWidth:1,trailColor:null,trailWidth:null,fill:null,text:{style:{color:null,position:"absolute",left:"50%",top:"50%",padding:0,margin:0,transform:{prefix:!0,value:"translate(-50%, -50%)"}},autoStyleContainer:!0,alignToBottom:!0,value:null,className:"progressbar-text"},svgStyle:{display:"block",width:"100%"},warnings:!1},c,!0),e.isObject(c)&&void 0!==c.svgStyle&&(this._opts.svgStyle=c.svgStyle),e.isObject(c)&&e.isObject(c.text)&&void 0!==c.text.style&&(this._opts.text.style=c.text.style);var f,g=this._createSvgView(this._opts);if(!(f=e.isString(b)?document.querySelector(b):b))throw new Error("Container does not exist: "+b);this._container=f,this._container.appendChild(g.svg),this._opts.warnings&&this._warnContainerAspectRatio(this._container),this._opts.svgStyle&&e.setStyles(g.svg,this._opts.svgStyle),this.svg=g.svg,this.path=g.path,this.trail=g.trail,this.text=null;var h=e.extend({attachment:void 0,shape:this},this._opts);this._progressPath=new d(g.path,h),e.isObject(this._opts.text)&&null!==this._opts.text.value&&this.setText(this._opts.text.value)}};f.prototype.animate=function(a,b,c){if(null===this._progressPath)throw new Error("Object is destroyed");this._progressPath.animate(a,b,c)},f.prototype.stop=function(){if(null===this._progressPath)throw new Error("Object is destroyed");void 0!==this._progressPath&&this._progressPath.stop()},f.prototype.destroy=function(){if(null===this._progressPath)throw new Error("Object is destroyed");this.stop(),this.svg.parentNode.removeChild(this.svg),this.svg=null,this.path=null,this.trail=null,this._progressPath=null,null!==this.text&&(this.text.parentNode.removeChild(this.text),this.text=null)},f.prototype.set=function(a){if(null===this._progressPath)throw new Error("Object is destroyed");this._progressPath.set(a)},f.prototype.value=function(){if(null===this._progressPath)throw new Error("Object is destroyed");return void 0===this._progressPath?0:this._progressPath.value()},f.prototype.setText=function(a){if(null===this._progressPath)throw new Error("Object is destroyed");null===this.text&&(this.text=this._createTextContainer(this._opts,this._container),this._container.appendChild(this.text)),e.isObject(a)?(e.removeChildren(this.text),this.text.appendChild(a)):this.text.innerHTML=a},f.prototype._createSvgView=function(a){var b=document.createElementNS("http://www.w3.org/2000/svg","svg");this._initializeSvg(b,a);var c=null;(a.trailColor||a.trailWidth)&&(c=this._createTrail(a),b.appendChild(c));var d=this._createPath(a);return b.appendChild(d),{svg:b,path:d,trail:c}},f.prototype._initializeSvg=function(a,b){a.setAttribute("viewBox","0 0 100 100")},f.prototype._createPath=function(a){var b=this._pathString(a);return this._createPathElement(b,a)},f.prototype._createTrail=function(a){var b=this._trailString(a),c=e.extend({},a);return c.trailColor||(c.trailColor="#eee"),c.trailWidth||(c.trailWidth=c.strokeWidth),c.color=c.trailColor,c.strokeWidth=c.trailWidth,c.fill=null,this._createPathElement(b,c)},f.prototype._createPathElement=function(a,b){var c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",a),c.setAttribute("stroke",b.color),c.setAttribute("stroke-width",b.strokeWidth),b.fill?c.setAttribute("fill",b.fill):c.setAttribute("fill-opacity","0"),c},f.prototype._createTextContainer=function(a,b){var c=document.createElement("div");c.className=a.text.className;var d=a.text.style;return d&&(a.text.autoStyleContainer&&(b.style.position="relative"),e.setStyles(c,d),d.color||(c.style.color=a.color)),this._initializeTextContainer(a,b,c),c},f.prototype._initializeTextContainer=function(a,b,c){},f.prototype._pathString=function(a){throw new Error("Override this function for each progress bar")},f.prototype._trailString=function(a){throw new Error("Override this function for each progress bar")},f.prototype._warnContainerAspectRatio=function(a){if(this.containerAspectRatio){var b=window.getComputedStyle(a,null),c=parseFloat(b.getPropertyValue("width"),10),d=parseFloat(b.getPropertyValue("height"),10);e.floatEquals(this.containerAspectRatio,c/d)||(console.warn("Incorrect aspect ratio of container","#"+a.id,"detected:",b.getPropertyValue("width")+"(width)","/",b.getPropertyValue("height")+"(height)","=",c/d),console.warn("Aspect ratio of should be",this.containerAspectRatio))}},b.exports=f},{"./path":5,"./utils":9}],8:[function(a,b,c){var d=a("./shape"),e=a("./utils"),f=function(a,b){this._pathTemplate="M 0,{halfOfStrokeWidth} L {width},{halfOfStrokeWidth} L {width},{width} L {halfOfStrokeWidth},{width} L {halfOfStrokeWidth},{strokeWidth}",this._trailTemplate="M {startMargin},{halfOfStrokeWidth} L {width},{halfOfStrokeWidth} L {width},{width} L {halfOfStrokeWidth},{width} L {halfOfStrokeWidth},{halfOfStrokeWidth}",d.apply(this,arguments)};f.prototype=new d,f.prototype.constructor=f,f.prototype._pathString=function(a){var b=100-a.strokeWidth/2;return e.render(this._pathTemplate,{width:b,strokeWidth:a.strokeWidth,halfOfStrokeWidth:a.strokeWidth/2})},f.prototype._trailString=function(a){var b=100-a.strokeWidth/2;return e.render(this._trailTemplate,{width:b,strokeWidth:a.strokeWidth,halfOfStrokeWidth:a.strokeWidth/2,startMargin:a.strokeWidth/2-a.trailWidth/2})},b.exports=f},{"./shape":7,"./utils":9}],9:[function(a,b,c){function d(a,b,c){a=a||{},b=b||{},c=c||!1;for(var e in b)if(b.hasOwnProperty(e)){var f=a[e],g=b[e];c&&l(f)&&l(g)?a[e]=d(f,g,c):a[e]=g}return a}function e(a,b){var c=a;for(var d in b)if(b.hasOwnProperty(d)){var e=b[d],f="\\{"+d+"\\}",g=new RegExp(f,"g");c=c.replace(g,e)}return c}function f(a,b,c){for(var d=a.style,e=0;e<p.length;++e){d[p[e]+h(b)]=c}d[b]=c}function g(a,b){m(b,function(b,c){null!==b&&void 0!==b&&(l(b)&&!0===b.prefix?f(a,c,b.value):a.style[c]=b)})}function h(a){return a.charAt(0).toUpperCase()+a.slice(1)}function i(a){return"string"==typeof a||a instanceof String}function j(a){return"function"==typeof a}function k(a){return"[object Array]"===Object.prototype.toString.call(a)}function l(a){return!k(a)&&("object"==typeof a&&!!a)}function m(a,b){for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];b(d,c)}}function n(a,b){return Math.abs(a-b)<q}function o(a){for(;a.firstChild;)a.removeChild(a.firstChild)}var p="Webkit Moz O ms".split(" "),q=.001;b.exports={extend:d,render:e,setStyle:f,setStyles:g,capitalize:h,isString:i,isFunction:j,isObject:l,forEachObject:m,floatEquals:n,removeChildren:o}},{}]},{},[4])(4)}()}()}),w=function(){function b(a){this.circleLoader=null,this.loaded=!1,this.showPlayButton="undefined"==typeof playBtn||playBtn,this.progress=0,this.options={gameId:"12346",gameTitle:"Place Holder",gameName:"place-holder",libs:[],version:"dev",barColor:"white",gaMeasurementId:"none"},this.options.gameId=a.gameId,this.options.gameTitle=a.gameTitle,this.options.version=a.version,this.options.barColor=a.barColor?a.barColor:this.options.barColor,this.options.libs=a.libs,this.options.gaMeasurementId=a.gaMeasurementId}return b.getInstance=function(a){if(!b.instance){if(!a)throw new Error("Can not create new SplashLoader instance without options!");b.instance=new b(a)}return b.instance},b.prototype.create=function(){return e(this,void 0,void 0,function(){var a,b,c,d,e,h,i;return f(this,function(f){switch(f.label){case 0:return a="\n #h5branding-center {\n position: absolute;\n top: 45%;\n left: 50%;\n transform: translate(-50%, -20%);\n text-align: center;\n width: 100%;\n }\n #h5branding-wrapper {\n position: relative;\n z-index: 665;\n width: 150px;\n height: 150px;\n display:inline-block;\n margin: 35px 40px 96px 40px;\n }\n\n #h5branding-version {\n position: absolute;\n right: 5px;\n font-family: Helvetica, Arial, sans-serif;\n color: #ffffff;\n font-size: 0.5em;\n top: 5px;\n }\n\n #h5branding-wrapper > #h5branding-bar, #h5branding-wrapper > img {\n box-shadow: inset 10px 10px 20px 5px rgba(0, 0, 0, 0.5);\n border-radius: 50%;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n #h5branding-ad {\n position: relative;\n z-index: 667;\n border-radius: 5px;\n border: 3px solid white;\n background: rgba(256, 256, 256, 0.2);\n width: 336px;\n height: 280px;\n display: none;\n margin: 0px 10px 0px 10px;\n }\n\n #h5branding-wrapper > img {\n /* Needs appropriate vendor prefixes */\n box-sizing: border-box;\n\n /* This needs to be equal to strokeWidth */\n padding: 4%;\n }\n\n #h5branding-wrapper > img {\n border-radius: 50%;\n box-shadow: inset 0 5px 5px rgba(0, 0, 0, 0.5), 5px 5px 7px rgba(0, 0, 0, 0.3);\n }\n\n #h5branding-container {\n box-sizing: border-box;\n position: absolute;\n z-index: 664;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #000;\n overflow: hidden;\n }\n\n #h5branding-background {\n position: absolute;\n top: -25%;\n left: -25%;\n width: 150%;\n height: 150%;\n background-blend-mode: multiply;\n background-size: cover;\n filter: blur(40px) brightness(1.5);\n }\n\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n /* IE10+ CSS styles go here */\n #h5branding-background {\n background-image: none !important;\n }\n }\n\n #h5branding-logo {\n position: absolute;\n margin: 0 auto;\n left: 0;\n right: 0;\n text-align: center;\n top: 10%;\n }\n\n #h5branding-logo > img {\n height: 150px;\n }\n\n #h5branding-title {\n position: absolute;\n width: 100%;\n background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.5) 50%, transparent);\n color: #fff;\n text-shadow: 0 0 1px rgba(0, 0, 0, 0.7);\n bottom:10%;\n padding: 15px 0;\n text-align: center;\n font-size: 18px;\n font-family: Helvetica, Arial, sans-serif;\n font-weight: bold;\n line-height: 100%;\n }\n\n #h5branding-button {\n /* border: 0; */\n padding: 10px 22px;\n border-radius: 5px;\n border: 3px solid white;\n background: linear-gradient(0deg, #dddddd, #ffffff);\n color: #222;\n text-transform: uppercase;\n text-shadow: 0 0 1px #fff;\n font-family: Helvetica, Arial, sans-serif;\n font-weight: bold;\n font-size: 18px;\n cursor: pointer;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n display: none;\n width: 150px;\n position: absolute;\n top: 170px;\n margin: 0 auto;\n left: 0;\n right: 0;\n }\n\n @media (orientation: portrait) and (max-width: 1080px) {\n #h5branding-logo > img {\n height: initial;\n width:100%;\n }\n }\n\n @media (orientation: landscape) and (max-height: 640px) {\n #h5branding-title {\n display: none;\n }\n\n #h5branding-logo > img {\n height: 100px;\n }\n }\n\n @media (orientation: landscape) and (max-height: 460px) {\n #h5branding-title {\n display: none;\n }\n\n #h5branding-wrapper {\n width: 110px;\n height: 110px;\n margin: 0;\n }\n\n #h5branding-logo {\n top: 0;\n transform: scale(0.7, 0.7);\n }\n\n #h5branding-button {\n top: initial;\n width: 110px;\n font-size: 14px;\n position: absolute;\n top: 140px;\n left: 0;\n right: 0;\n }\n\n #h5branding-ad {\n display: none !important;\n }\n }\n\n @media (orientation: portrait) and (max-width: 250px) {\n #h5branding-logo {\n top: 2%;\n }\n }\n\n @media (orientation: landscape) and (max-width: 330px) {\n #h5branding-button {\n top: 120px;\n }\n\n #h5branding-logo > img {\n height: 70px;\n }\n }\n\n @media (max-width: 600px) and (max-height: 850px) {\n #h5branding-ad {\n display: none !important;\n }\n }\n\n @media (max-width: 600px) and (max-height: 1100px) {\n #h5branding-center {\n top: 40%;\n }\n\n #h5branding-title {\n bottom: 5%\n }\n }\n\n @media (max-width: 600px) and (max-height: 900px) {\n #h5branding-title {\n display: none\n }\n }\n\n @media (orientation: landscape) and (min-width: 800px) {\n #h5branding-wrapper {\n margin-left: 120px;\n margin-right: 120px;\n }\n }\n\n ",b=g(this.getGameLogoUrl(this.options.gameId),this.options.gameTitle),c=document.head||document.getElementsByTagName("head")[0],d=document.createElement("style"),d.type="text/css",d.styleSheet?d.styleSheet.cssText=a:d.appendChild(document.createTextNode(a)),c.appendChild(d),e=document.createElement("div"),e.innerHTML=b,e.id="h5branding-container",h=document.body||document.getElementsByTagName("body")[0],h.insertBefore(e,h.firstChild),this.circleLoader=new v.Circle("#h5branding-bar",{strokeWidth:3,color:this.options.barColor}),this.options.gaMeasurementId&&(q.GAMeasurementId=this.options.gaMeasurementId),i=document.getElementById("h5branding-version"),i&&(i.innerHTML=this.options.version),[4,Promise.all([this.loadBranding(),this.loadLibs(),q.preload()])];case 1:return f.sent(),this.loaded=!0,[2]}})})},b.prototype.loadBranding=function(){return e(this,void 0,void 0,function(){var b,c,d;return f(this,function(e){switch(e.label){case 0:return[4,o.preload(Date.now().toString())];case 1:return e.sent(),b=document.getElementById("h5branding-background"),b&&(b.style.backgroundImage="url("+this.getGameLogoUrl(this.options.gameId)+")",b.style.backgroundColor=o.brandingBackgroundColor),c=document.getElementById("h5branding-logo"),c&&p.getBrandingDomain()!==a.BrandingDomain.Neutral&&(d=document.createElement("img"),d.src=o.brandingLogoUrl.replace("_small",""),c.appendChild(d)),[2]}})})},b.prototype.loadLibs=function(){var a=this,b=this.options.libs.map(function(c,d){return m.instance.loadScript(c,!0,function(){a.setScriptloadProgress(b.length,d+1)})});return Promise.all(b)},Object.defineProperty(b.prototype,"bannerAllowed",{get:function(){var a=document.body.clientWidth,b=document.body.clientHeight;return this.progress<100&&!(a>b&&b<=460)&&!(a<600&&b<850)},enumerable:!1,configurable:!0}),b.prototype.showBanner=function(){if(!this.bannerAllowed)return null;var a=document.getElementById("h5branding-ad");return a?(a.style.display="inline-flex",a):null},b.prototype.setScriptloadProgress=function(a,b){var c=.3*b/a;this.circleLoader.animate(c,null,function(){})},b.prototype.setLoadProgress=function(a){var b=this;if(this.loaded)if(a=30+.7*a,this.progress=a,100===a){var c=document.querySelector("#h5branding-button");this.circleLoader.animate(1,null,function(){!p.inGDGameZone()&&c&&!0===b.showPlayButton?c.style.display="block":(p.inGDGameZone()||!1===b.showPlayButton)&&b.onPlayButtonClick()})}else this.circleLoader.animate(a/100,null,function(){})},b.prototype.setButtonCallback=function(a){this.buttonCallback=a},b.prototype.onPlayButtonClick=function(){this.buttonCallback&&this.buttonCallback()},b.prototype.destroy=function(){var a=document.querySelector("#h5branding-container");null!==a&&null!==a.parentNode&&a.parentNode.removeChild(a)},b.prototype.getGameLogoUrl=function(a){var b=a+"-512x512.jpeg";return window.hasOwnProperty("fbrqSA")&&!0===window.fbrqSA?"assets/"+b:"https://img.gamedistribution.com/"+b},b}(),x=t.EGAProgressionStatus,y=new q,z=new u;a.EGAProgressionStatus=x,a.google=y,a.gameanalytics=z,a.Utils=p,a.Domain=l,a.Branding=o,a.SplashLoader=w,Object.defineProperty(a,"__esModule",{value:!0})}),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Menu/TempleHall",["require","Phaser","../Common/Button","../Common/GoldButton","../Common/Navies","h5branding"],function(c){var d,e,f,g;return f=c("Phaser"),c("../Common/Button"),d=c("../Common/GoldButton"),e=c("../Common/Navies"),g=c("h5branding"),function(c){function h(b,c,i){this.layoutContent=a(this.layoutContent,this),this.update=a(this.update,this),this.createChar=a(this.createChar,this),this.domainAllowsExtenral=a(this.domainAllowsExtenral,this);var j,k,l,m,n,o,p,q,r,s,t,u,v;for(h.__super__.constructor.call(this,b,c,i),this.w=this.game.realWidth,this.h=this.game.realHeight,this.bkg=m=this.game.make.sprite(0,0,"TempleHall"),m.anchor.set(.5),this._scale=v=Math.max(this.w/m.width,this.h/m.height),m.scale.set(v),m.height/2>this.h/2&&(m.y=this.h/2-m.height/2),this.addChild(m),this.beams=l=[],k=7,r=s=0,u=k;0<=u?s<=u:s>=u;r=0<=u?++s:--s)j=this.game.make.sprite(0,0,"HallBeam"),j.anchor.set(.5,-.5),j.alpha=.6+.4*Math.random(),j.t_offset=2*(r-k/2)*Math.PI/k-Math.random()*Math.PI/6,j.t_speed=.6*Math.random(),j.blendMode=f.blendModes.SCREEN,j.cacheAsBitmap=!0,this.addChild(j),l.push(j);this.char1=o=this.createChar("fire"),this.addChild(o),o.scale.set(v),o.x=-this.w/4,o.y=this.h/2-2*o.height,this.char2=p=this.createChar("water"),p.scale.set(v),p.x=this.w/4,p.y=this.h/2-2*p.height,this.addChild(p),this.gameName=q=this.game.make.sprite(0,0,"GameName"),q.anchor.set(.5,.5),t=Math.min(1,.9*this.game.realWidth/q.width),q.scale.set(t),this.addChild(q),this.onStart=new f.Signal,this.playBtn=n=new d(this.game,0,0,this.game.lang.locale("Play"),function(a){return function(){return a.onStart.dispatch(b.progress.get("temples")[0])}}(this),40),this.addChild(n),this.domainAllowsExtenral()&&(this.moreBtn=n=new d(this.game,0,0,this.game.lang.locale("More Games"),function(a){return function(){return g.Branding.openCampaignLink("Ice Temple","more_games")}}(),30),this.addChild(n),this.walkthrouhgBtn=n=new d(this.game,0,0,this.game.lang.locale("Walkthrough"),function(a){return function(){return window.open("https://www.agame.com/game/fireboy--watergirl-3-the-ice-temple","_blank")}}(),30),this.addChild(n)),this.navies=new e(this.game,0,0),this.addChild(this.navies),this.layoutContent()}return b(h,c),h.prototype.domainAllowsExtenral=function(){var a;return!!g.Branding.outGoingLinksAllowed()&&(a=["playcell.com"],a.reduce(function(a){return function(a,b){return null!=document.referrer&&(a=a&&document.referrer.indexOf(b)<0),null!=window.location&&null!=window.location.hostname&&(a=a&&window.location.hostname.indexOf(b)<0),a}}(),!0))},h.prototype.createChar=function(a){var b,c,d,e;return b=this.game.make.sprite(0,0,"CharAssets","_default0000"),e=this.game.make.sprite(0,0,"CharAssets",a+"_legs_idle0000"),e.anchor.set(.5),d=this.game.make.sprite(0,0,"CharAssets"),d.animations.add("idle",f.Animation.generateFrameNames(a+"_head_idle",0,29,"",4),30,!0),d.animations.play("idle"),d.anchor.set(.5),c=this.game.make.sprite(0,0,"CharAssets",a+"_glow0000"),c.anchor.set(.5),c.y=40,b.addChild(c),b.addChild(e),b.addChild(d),b},h.prototype.update=function(){var a,b,c,d;for(this.t||(this.t=0),this.t+=.003,d=this.beams,b=0,c=d.length;b<c;b++)a=d[b],a.rotation=.2*Math.sin(a.t_offset+this.t*a.t_speed),a.y=-this.h/2-a._frame.height*this._scale/2-Math.abs(Math.sin(a.t_offset+this.t*a.t_speed)*this.h/4),a.scale.set(.6+.4*Math.abs(Math.sin(a.t_offset+this.t*a.t_speed)),this._scale);return this.navies.update()},h.prototype.layoutContent=function(){var a,b,c,d,e,f,g;for(this.w=this.game.realWidth,this.h=this.game.realHeight,this._scale=g=Math.max(this.w/this.bkg._frame.width,this.h/this.bkg._frame.height),this.bkg.scale.set(g),this.bkg.height/2>this.h/2?this.bkg.y=this.h/2-this.bkg.height/2:this.bkg.y=0,this.char1.scale.set(g),this.char1.x=-this.w/4,this.char1.y=this.h/2-2*this.char1.height,this.char2.scale.set(g),this.char2.x=this.w/4,this.char2.y=this.h/2-2*this.char2.height,f=this.beams,b=0,c=f.length;b<c;b++)a=f[b],a.scale.set(g*(.3+1.3*Math.random()),g);return this.gameName.y=-this.game.realHeight/5,this.playBtn.y=this.playBtn.height,this.moreBtn&&(this.moreBtn.y=.2*this.game.realHeight),this.walkthrouhgBtn?this.walkthrouhgBtn.y=.3*this.game.realHeight:this.playBtn.y=2*this.playBtn.height,d=.75*this.gameName.height,e=this.gameName.y-d/2,this.game.realHeight/2+e,this.navies.y=this.playBtn.y},h}(f.Sprite)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Common/MuteButton",["./Button","Phaser"],function(c){"use strict";return function(c){function d(b,c,e,f){this.updateState=a(this.updateState,this),this.clicked=a(this.clicked,this),d.__super__.constructor.call(this,b,c,e,f||"MenuAssets","MuteButton0000",this.clicked),this.anchor.set(.5),this.sprite.anchor.set(1,0),this.updateState()}return b(d,c),d.prototype.clicked=function(){return console.log("mute"),this.updateState()},d.prototype.updateState=function(){return this.game.sound.mute?this.sprite.frameName="MuteButton0001":this.sprite.frameName="MuteButton0000"},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Common/UIState",["./MuteButton","Phaser"],function(c){"use strict";return function(c){function d(){this.layoutContent=a(this.layoutContent,this),this.startMusic=a(this.startMusic,this),this.updateMusic=a(this.updateMusic,this),this.decodeAudio=a(this.decodeAudio,this),this.preloadAudioFiles=a(this.preloadAudioFiles,this),
|
||
this.preload=a(this.preload,this),this.onReady=new Phaser.Signal,d.__super__.constructor.apply(this,arguments)}return b(d,c),d.prototype.preload=function(){return this.sounds=["menuMusic","pusher"],this.preloadAudioFiles()},d.prototype.preloadAudioFiles=function(){},d.prototype.decodeAudio=function(a){var b,c,d,e,f;for(f={},d=this.sounds,b=0,c=d.length;b<c;b++)e=d[b],f[e]=this.game.add.audio(e);return this.sounds=f,this.game.currentSounds=f,this.game.sound.setDecodedCallback(_.map(this.sounds),function(a){return function(){return a.startMusic(),a.started=!0}}(this),this),a()},d.prototype.updateMusic=function(){return this.sounds.menuMusic.stop(),this.game.settings.music?null==this.game.menuMusic?this.game.menuMusic=this.sounds.menuMusic.play():this.game.menuMusic.play():null!=this.game.menuMusic?this.game.menuMusic.stop():void 0},d.prototype.startMusic=function(){if(this.game.settings.music&&(null==this.game.menuMusic||!this.game.menuMusic.isPlaying))return this.sounds.menuMusic.loop=!0,this.sounds.menuMusic.allowMultiple=!1,this.game.menuMusic=this.sounds.menuMusic.play()},d.prototype.create=function(){return this.root=this.game.make.group(0,0),this.game.add.existing(this.root),this.game.stage.backgroundColor="#000000",this.decodeAudio(function(a){return function(){return console.log("load completed"),a.addContent()}}(this))},d.prototype.layoutContent=function(){if(null!=this.muteButton)return this.muteButton.x=this.game.realWidth/2,this.muteButton.y=-this.game.realHeight/2},d}(Phaser.State)})}.call(this),function(a,b){"object"==typeof exports&&"undefined"!=typeof module?b(exports):"function"==typeof define&&define.amd?define("h5ads",["exports"],b):b(a.h5ads=a.h5ads||{})}(this,function(a){"use strict";function b(a,b){function c(){this.constructor=a}d(a,b),a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)}var c,d=function(a,b){return(d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])})(a,b)},e=function(a,b){return b={exports:{}},a(b,b.exports),b.exports}(function(a){function b(){}function c(a,b,c){this.fn=a,this.context=b,this.once=c||!1}function d(a,b,d,e,f){if("function"!=typeof d)throw new TypeError("The listener must be a function");var g=new c(d,e||a,f),i=h?h+b:b;return a._events[i]?a._events[i].fn?a._events[i]=[a._events[i],g]:a._events[i].push(g):(a._events[i]=g,a._eventsCount++),a}function e(a,c){0==--a._eventsCount?a._events=new b:delete a._events[c]}function f(){this._events=new b,this._eventsCount=0}var g=Object.prototype.hasOwnProperty,h="~";Object.create&&(b.prototype=Object.create(null),(new b).__proto__||(h=!1)),f.prototype.eventNames=function(){var a,b,c=[];if(0===this._eventsCount)return c;for(b in a=this._events)g.call(a,b)&&c.push(h?b.slice(1):b);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(a)):c},f.prototype.listeners=function(a){var b=h?h+a:a,c=this._events[b];if(!c)return[];if(c.fn)return[c.fn];for(var d=0,e=c.length,f=new Array(e);d<e;d++)f[d]=c[d].fn;return f},f.prototype.listenerCount=function(a){var b=h?h+a:a,c=this._events[b];return c?c.fn?1:c.length:0},f.prototype.emit=function(a,b,c,d,e,f){var g=h?h+a:a;if(!this._events[g])return!1;var i,j,k=this._events[g],l=arguments.length;if(k.fn){switch(k.once&&this.removeListener(a,k.fn,void 0,!0),l){case 1:return k.fn.call(k.context),!0;case 2:return k.fn.call(k.context,b),!0;case 3:return k.fn.call(k.context,b,c),!0;case 4:return k.fn.call(k.context,b,c,d),!0;case 5:return k.fn.call(k.context,b,c,d,e),!0;case 6:return k.fn.call(k.context,b,c,d,e,f),!0}for(j=1,i=new Array(l-1);j<l;j++)i[j-1]=arguments[j];k.fn.apply(k.context,i)}else{var m,n=k.length;for(j=0;j<n;j++)switch(k[j].once&&this.removeListener(a,k[j].fn,void 0,!0),l){case 1:k[j].fn.call(k[j].context);break;case 2:k[j].fn.call(k[j].context,b);break;case 3:k[j].fn.call(k[j].context,b,c);break;case 4:k[j].fn.call(k[j].context,b,c,d);break;default:if(!i)for(m=1,i=new Array(l-1);m<l;m++)i[m-1]=arguments[m];k[j].fn.apply(k[j].context,i)}}return!0},f.prototype.on=function(a,b,c){return d(this,a,b,c,!1)},f.prototype.once=function(a,b,c){return d(this,a,b,c,!0)},f.prototype.removeListener=function(a,b,c,d){var f=h?h+a:a;if(!this._events[f])return this;if(!b)return e(this,f),this;var g=this._events[f];if(g.fn)g.fn!==b||d&&!g.once||c&&g.context!==c||e(this,f);else{for(var i=0,j=[],k=g.length;i<k;i++)(g[i].fn!==b||d&&!g[i].once||c&&g[i].context!==c)&&j.push(g[i]);j.length?this._events[f]=1===j.length?j[0]:j:e(this,f)}return this},f.prototype.removeAllListeners=function(a){var c;return a?(c=h?h+a:a,this._events[c]&&e(this,c)):(this._events=new b,this._eventsCount=0),this},f.prototype.off=f.prototype.removeListener,f.prototype.addListener=f.prototype.on,f.prefixed=h,f.EventEmitter=f,a.exports=f});!function(a){a[a.AdMob=0]="AdMob",a[a.MoPub=1]="MoPub",a[a.Chartboost=2]="Chartboost",a[a.Heyzap=3]="Heyzap"}(c||(c={}));var f,g=function(){function b(a,b){if(this.adsEnabled=!1,this.bannerShowable=!1,this.interstitialShowable=!1,this.insentiveShowable=!1,Cocoon&&Cocoon.Ad){switch(this.adsEnabled=!0,a){default:case c.AdMob:this.cocoonProvider=Cocoon.Ad.AdMob;break;case c.Chartboost:this.cocoonProvider=Cocoon.Ad.Chartboost;break;case c.Heyzap:this.cocoonProvider=Cocoon.Ad.Heyzap;break;case c.MoPub:this.cocoonProvider=Cocoon.Ad.MoPub}this.cocoonProvider.configure(b)}}return b.prototype.setManager=function(b){this.adManager=b,this.adManager.emit(a.AdEvents.AD_PROVIDER_LOADED)},b.prototype.showAd=function(b){if(!this.adsEnabled)return void(b!==a.AdType.banner&&this.adManager.emit(a.AdEvents.CONTENT_RESUMED));if(b===a.AdType.banner){if(!this.bannerShowable||null===this.banner)return;this.adManager.emit(a.AdEvents.BANNER_SHOWN,this.banner.width,this.banner.height),this.adManager.bannerActive=!0,this.banner.show()}if(b===a.AdType.interstitial){if(!this.interstitialShowable||null===this.interstitial)return void this.adManager.emit(a.AdEvents.CONTENT_RESUMED,a.AdType.interstitial);this.interstitial.show()}if(b===a.AdType.rewarded){if(!this.insentiveShowable||null===this.insentive)return void this.adManager.emit(a.AdEvents.CONTENT_RESUMED,a.AdType.rewarded);this.insentive.show()}},b.prototype.adAvailable=function(a){return!0},b.prototype.preloadAd=function(b,c,d){var e=this;this.adsEnabled&&(this.destroyAd(b),b===a.AdType.banner&&(this.banner=this.cocoonProvider.createBanner(c),d&&this.banner.setLayout(d),this.banner.on("load",function(){e.bannerShowable=!0}),this.banner.on("fail",function(){e.bannerShowable=!1,e.banner=null}),this.banner.on("click",function(){e.adManager.emit(a.AdEvents.AD_CLICKED,a.AdType.banner)}),this.banner.on("show",function(){}),this.banner.on("dismiss",function(){}),this.banner.load()),b===a.AdType.interstitial&&(this.interstitial=this.cocoonProvider.createInterstitial(c),this.interstitial.on("load",function(){e.interstitialShowable=!0}),this.interstitial.on("fail",function(){e.interstitialShowable=!1,e.interstitial=null}),this.interstitial.on("click",function(){e.adManager.emit(a.AdEvents.AD_CLICKED,a.AdType.interstitial)}),this.interstitial.on("show",function(){e.adManager.emit(a.AdEvents.CONTENT_PAUSED,a.AdType.interstitial)}),this.interstitial.on("dismiss",function(){e.adManager.emit(a.AdEvents.CONTENT_RESUMED,a.AdType.interstitial),e.interstitialShowable=!1,e.interstitial=null}),this.interstitial.load()),b===a.AdType.rewarded&&(this.insentive=this.cocoonProvider.createRewardedVideo(c),this.insentive.on("load",function(){e.insentiveShowable=!0}),this.insentive.on("fail",function(){e.insentiveShowable=!1,e.insentive=null}),this.insentive.on("click",function(){e.adManager.emit(a.AdEvents.AD_CLICKED,a.AdType.rewarded)}),this.insentive.on("show",function(){e.adManager.emit(a.AdEvents.CONTENT_PAUSED,a.AdType.rewarded)}),this.insentive.on("dismiss",function(){e.adManager.emit(a.AdEvents.CONTENT_RESUMED,a.AdType.rewarded),e.insentiveShowable=!1,e.insentive=null}),this.insentive.on("reward",function(){e.adManager.emit(a.AdEvents.AD_REWARDED,a.AdType.rewarded),e.insentiveShowable=!1,e.insentive=null}),this.insentive.load()))},b.prototype.destroyAd=function(b){if(this.adsEnabled){if(b===a.AdType.banner&&null!==this.banner){try{this.cocoonProvider.releaseBanner(this.banner)}catch(a){}this.banner=null,this.bannerShowable=!1}b===a.AdType.interstitial&&null!==this.interstitial&&(this.cocoonProvider.releaseInterstitial(this.interstitial),this.interstitial=null,this.interstitialShowable=!1)}},b.prototype.hideAd=function(b){this.adsEnabled&&(b===a.AdType.interstitial&&null!==this.interstitial&&this.interstitial.hide(),b===a.AdType.banner&&null!==this.banner&&(this.adManager.bannerActive&&(this.adManager.bannerActive=!1,this.adManager.emit(a.AdEvents.BANNER_HIDDEN,this.banner.width,this.banner.height)),this.banner.hide()),b===a.AdType.rewarded&&null!==this.insentive&&this.insentive.hide())},b}(),h=function(){function b(a,b,c){if(void 0===c&&(c=!1),this.adsEnabled=!1,void 0===cordova.plugins||void 0!==cordova.plugins&&void 0===cordova.plugins.gdApi)return void console.log("gdApi not available!");c&&cordova.plugins.gdApi.enableTestAds(),this.setAdListeners(),cordova.plugins.gdApi.init([a,b],function(a){console.log("API init success!",a)},function(a){console.log("API init error!",a)})}return b.prototype.setAdListeners=function(){var b=this;cordova.plugins.gdApi.setAdListener(function(c){switch(console.log("banner reply, data.event",c.event,c),c.event){case"BANNER_STARTED":b.adManager.emit(a.AdEvents.CONTENT_PAUSED);break;case"API_IS_READY":b.adsEnabled=!0;break;case"API_ALREADY_INITIALIZED":break;case"BANNER_CLOSED":case"API_NOT_READY":case"BANNER_FAILED":b.adManager.emit(a.AdEvents.CONTENT_RESUMED)}},function(a){console.log("Set listener error:",a),b.adsEnabled=!1})},b.prototype.setManager=function(b){this.adManager=b,this.adManager.emit(a.AdEvents.AD_PROVIDER_LOADED)},b.prototype.showAd=function(b){var c=this;this.adsEnabled?(console.log("show banner called"),cordova.plugins.gdApi.showBanner(function(a){console.log("Show banner worked",a)},function(b){console.log("Could not show banner:",b),c.adManager.emit(a.AdEvents.CONTENT_RESUMED)})):(console.log("Ads not enabled, resuming"),this.adManager.emit(a.AdEvents.CONTENT_RESUMED))},b.prototype.adAvailable=function(a){return!0},b.prototype.preloadAd=function(a){},b.prototype.destroyAd=function(a){},b.prototype.hideAd=function(a){},b}(),i=function(){function b(){var b=this;if(this.adsEnabled=!1,this.rewardedLoaded=!1,"undefined"!=typeof gamedockSDK){var c={shouldBlock:!0,requiredAge:12},d=[];gamedockSDK.on("PrivacyPolicyStatus",function(c){b.adManager.emit(a.AdEvents.AD_PROVIDER_LOADED)}),gamedockSDK.initialise(!1,c,!0,"PRODUCTION",d),gamedockSDK.on("AdAvailable",function(a){switch(a.type){case"interstitial":b.interstitalAvailable();break;case"rewardVideo":b.rewardedChanged(!0);break;case"banner":throw new Error("Not yet implemented.")}}),gamedockSDK.on("AdNotAvailable",function(a){switch(a.type){case"interstitial":case"rewardVideo":b.resumeGameplay();break;case"banner":throw new Error("Not yet implemented.")}}),gamedockSDK.on("AdFinished",function(a){switch(a.type){case"interstitial":b.resumeGameplay();break;case"rewardVideo":b.rewardVideoFinished(a.reason);break;case"banner":throw new Error("Not yet implemented.")}})}}return b.prototype.setManager=function(a){this.adManager=a},b.prototype.showAd=function(b){if(void 0===b&&(b=a.AdType.interstitial),"undefined"!=typeof gamedockSDK)switch(b){case a.AdType.interstitial:this.adManager.emit(a.AdEvents.CONTENT_PAUSED),gamedockSDK.requestInterstitial();break;case a.AdType.rewarded:if(!this.adAvailable(a.AdType.rewarded)){this.resumeGameplay();break}this.adManager.emit(a.AdEvents.CONTENT_PAUSED),this.rewardedChanged(!1),gamedockSDK.playRewardVideo();break;default:this.resumeGameplay()}},b.prototype.interstitalAvailable=function(){"undefined"!=typeof gamedockSDK&&gamedockSDK.playInterstitial()},b.prototype.rewardVideoFinished=function(b){switch(b){case"dismiss":this.resumeGameplay();break;case"close":this.adManager.emit(a.AdEvents.AD_REWARDED)}},b.prototype.resumeGameplay=function(){this.adManager.emit(a.AdEvents.CONTENT_RESUMED)},b.prototype.preloadAd=function(b){if(void 0===b&&(b=a.AdType.interstitial),"undefined"!=typeof gamedockSDK)switch(b){case a.AdType.rewarded:if(this.rewardedLoaded)return;gamedockSDK.requestRewardVideo()}},b.prototype.destroyAd=function(){},b.prototype.hideAd=function(){},b.prototype.adAvailable=function(b){switch(b){case a.AdType.rewarded:return this.rewardedLoaded}return!1},b.prototype.rewardedChanged=function(a){this.rewardedLoaded=a},b}(),j=function(){function b(a){var b=this;this.adsEnabled=!1,this.adsEnabled=!0,HeyzapAds.start(a).then(function(){},function(a){b.adsEnabled=!1})}return b.prototype.setManager=function(b){this.adManager=b,this.adManager.emit(a.AdEvents.AD_PROVIDER_LOADED)},b.prototype.showAd=function(b,c){var d=this;switch(this.adsEnabled||this.adManager.emit(a.AdEvents.CONTENT_RESUMED),b){case a.AdType.interstitial:HeyzapAds.InterstitialAd.addEventListener(HeyzapAds.InterstitialAd.Events.HIDE,function(){d.adManager.emit(a.AdEvents.CONTENT_RESUMED,HeyzapAds.InterstitialAd.Events.HIDE)}),HeyzapAds.InterstitialAd.addEventListener(HeyzapAds.InterstitialAd.Events.SHOW_FAILED,function(){d.adManager.emit(a.AdEvents.CONTENT_RESUMED,HeyzapAds.InterstitialAd.Events.SHOW_FAILED)}),HeyzapAds.InterstitialAd.addEventListener(HeyzapAds.InterstitialAd.Events.CLICKED,function(){d.adManager.emit(a.AdEvents.AD_CLICKED,HeyzapAds.InterstitialAd.Events.CLICKED)}),HeyzapAds.InterstitialAd.show().then(function(){d.adManager.emit(a.AdEvents.CONTENT_PAUSED)},function(b){d.adManager.emit(a.AdEvents.CONTENT_RESUMED)});break;case a.AdType.interstitial:HeyzapAds.VideoAd.addEventListener(HeyzapAds.VideoAd.Events.HIDE,function(){d.adManager.emit(a.AdEvents.CONTENT_RESUMED,HeyzapAds.VideoAd.Events.HIDE)}),HeyzapAds.VideoAd.addEventListener(HeyzapAds.VideoAd.Events.SHOW_FAILED,function(){d.adManager.emit(a.AdEvents.CONTENT_RESUMED,HeyzapAds.VideoAd.Events.SHOW_FAILED)}),HeyzapAds.VideoAd.addEventListener(HeyzapAds.VideoAd.Events.CLICKED,function(){d.adManager.emit(a.AdEvents.AD_CLICKED,HeyzapAds.VideoAd.Events.CLICKED)}),HeyzapAds.VideoAd.show().then(function(){d.adManager.emit(a.AdEvents.CONTENT_PAUSED)},function(b){d.adManager.emit(a.AdEvents.CONTENT_RESUMED)});break;case a.AdType.rewarded:HeyzapAds.IncentivizedAd.addEventListener(HeyzapAds.IncentivizedAd.Events.HIDE,function(){d.adManager.emit(a.AdEvents.CONTENT_RESUMED,HeyzapAds.IncentivizedAd.Events.HIDE)}),HeyzapAds.IncentivizedAd.addEventListener(HeyzapAds.IncentivizedAd.Events.SHOW_FAILED,function(){d.adManager.emit(a.AdEvents.CONTENT_RESUMED,HeyzapAds.IncentivizedAd.Events.SHOW_FAILED)}),HeyzapAds.IncentivizedAd.addEventListener(HeyzapAds.IncentivizedAd.Events.CLICKED,function(){d.adManager.emit(a.AdEvents.AD_CLICKED,HeyzapAds.IncentivizedAd.Events.CLICKED)}),HeyzapAds.IncentivizedAd.show().then(function(){d.adManager.emit(a.AdEvents.CONTENT_PAUSED)},function(b){d.adManager.emit(a.AdEvents.CONTENT_RESUMED)});break;case a.AdType.banner:if(void 0===c)return;HeyzapAds.BannerAd.show(c).then(function(){},function(a){})}},b.prototype.adAvailable=function(a){return!0},b.prototype.preloadAd=function(b){this.adsEnabled&&b===a.AdType.rewarded&&HeyzapAds.IncentivizedAd.fetch().then(function(){},function(a){})},b.prototype.destroyAd=function(b){this.adsEnabled&&b===a.AdType.banner&&HeyzapAds.BannerAd.destroy().then(function(){},function(a){})},b.prototype.hideAd=function(b){this.adsEnabled&&b===a.AdType.banner&&HeyzapAds.BannerAd.hide().then(function(){},function(a){})},b}(),k=function(){function b(a){var b=this;if(this.adsEnabled=!1,this.interstitialLoaded=!1,this.rewardedLoaded=!1,"undefined"!=typeof IronSourceAds){IronSourceAds.init({appKey:a});var c=function(){return b.resumeGameplay()};window.addEventListener("interstitialClosed",c),window.addEventListener("interstitialShowFailed",c),window.addEventListener("interstitialLoaded",function(){return b.interstitialChanged(!0)}),window.addEventListener("rewardedVideoClosed",c),window.addEventListener("rewardedVideoFailed",c),IronSourceAds.hasRewardedVideo({onSuccess:this.rewardedChanged.bind(this)}),window.addEventListener("rewardedVideoAvailabilityChanged",function(a){return b.rewardedChanged(a.available)})}}return b.prototype.setManager=function(b){this.adManager=b,this.adManager.emit(a.AdEvents.AD_PROVIDER_LOADED)},b.prototype.showAd=function(b){switch(void 0===b&&(b=a.AdType.interstitial),b){case a.AdType.interstitial:if(!this.interstitialLoaded){this.resumeGameplay();break}this.interstitialChanged(!1),this.adManager.emit(a.AdEvents.CONTENT_PAUSED),IronSourceAds.showInterstitial();break;case a.AdType.rewarded:if(!this.rewardedLoaded){this.resumeGameplay();break}this.adManager.emit(a.AdEvents.CONTENT_PAUSED),IronSourceAds.showRewardedVideo();break;default:this.resumeGameplay()}},b.prototype.resumeGameplay=function(){this.adManager.emit(a.AdEvents.CONTENT_RESUMED)},b.prototype.preloadAd=function(b){void 0===b&&(b=a.AdType.interstitial),b===a.AdType.interstitial&&IronSourceAds.loadInterstitial()},b.prototype.destroyAd=function(){},b.prototype.hideAd=function(){},b.prototype.adAvailable=function(b){switch(b){case a.AdType.interstitial:return this.interstitialLoaded;case a.AdType.rewarded:return this.rewardedLoaded}return!1},b.prototype.interstitialChanged=function(a){this.interstitialLoaded=a},b.prototype.rewardedChanged=function(a){this.rewardedLoaded=a},b}();!function(a){a.interstitial="interstitial",a.rewarded="rewarded",a.display="display"}(f||(f={})),function(a){a[a.LargeRectangle=0]="LargeRectangle",a[a.MediumRectangle=1]="MediumRectangle",a[a.Billboard=2]="Billboard",a[a.Leaderboard=3]="Leaderboard",a[a.Skyscraper=4]="Skyscraper",a[a.WideSkyscraper=5]="WideSkyscraper"}(a.GameDistributionBannerSize||(a.GameDistributionBannerSize={})),function(a){a[a.TopLeft=0]="TopLeft",a[a.TopCenter=1]="TopCenter",a[a.TopRight=2]="TopRight",a[a.CenterLeft=3]="CenterLeft",a[a.Center=4]="Center",a[a.CenterRight=5]="CenterRight",a[a.BottomLeft=6]="BottomLeft",a[a.BottomCenter=7]="BottomCenter",a[a.BottomRight=8]="BottomRight"}(a.GameDistributionAlignment||(a.GameDistributionAlignment={}));var l,m=function(){function b(){this.scaleFactor=1,this.offsetX=0,this.offsetY=0,this.element=document.createElement("div"),this.element.style.position="absolute",this.element.style.top="0px",this.element.style.left="0px",this.element.id="banner-"+Date.now()+(1e7*Math.random()|0),document.body.appendChild(this.element)}return b.prototype.loadBanner=function(){return"undefined"==typeof gdsdk?Promise.reject("GD Sdk not available, probably due to adblocker"):gdsdk.showAd(f.display,{containerId:this.element.id})},b.prototype.destroy=function(){document.body.removeChild(this.element),this.resizeListener&&window.removeEventListener("resize",this.resizeListener),delete this.element,delete this.parent,delete this.alignment},b.prototype.alignIn=function(a,b){var c=this;if(this.parent)return void console.warn("Banner already aligned, ignoring...");this.parent=a,this.alignment=b,this.resizeListener=function(){return c.resize()},window.addEventListener("resize",this.resizeListener),this.resize()},b.prototype.setOffset=function(a,b){void 0===a&&(a=0),void 0===b&&(b=0),this.offsetX=a,this.offsetY=b,this.resize()},b.prototype.resize=function(){if(this.parent){var b=this.parent.getBoundingClientRect();switch(this.alignment){case a.GameDistributionAlignment.TopLeft:this.position(b.left,b.top);break;case a.GameDistributionAlignment.TopCenter:this.position(b.left+b.width/2-this.width*this.scaleFactor/2,b.top);break;case a.GameDistributionAlignment.TopRight:this.position(b.left+b.width-this.width*this.scaleFactor,b.top);break;case a.GameDistributionAlignment.CenterLeft:this.position(b.left,b.top+b.height/2-this.height*this.scaleFactor/2);break;case a.GameDistributionAlignment.Center:this.position(b.left+b.width/2-this.width*this.scaleFactor/2,b.top+b.height/2-this.height*this.scaleFactor/2);break;case a.GameDistributionAlignment.CenterRight:this.position(b.left+b.width-this.width*this.scaleFactor,b.top+b.height/2-this.height*this.scaleFactor/2);break;case a.GameDistributionAlignment.BottomLeft:this.position(b.left,b.top+b.height-this.height*this.scaleFactor);break;case a.GameDistributionAlignment.BottomCenter:this.position(b.left+b.width/2-this.width*this.scaleFactor/2,b.top+b.height-this.height*this.scaleFactor);break;case a.GameDistributionAlignment.BottomRight:this.position(b.left+b.width-this.width*this.scaleFactor,b.top+b.height-this.height*this.scaleFactor)}}},b.prototype.setSize=function(b){var c,d;switch(b){default:case a.GameDistributionBannerSize.LargeRectangle:c=336,d=280;break;case a.GameDistributionBannerSize.MediumRectangle:c=300,d=250;break;case a.GameDistributionBannerSize.Billboard:c=970,d=250;break;case a.GameDistributionBannerSize.Leaderboard:c=728,d=90;break;case a.GameDistributionBannerSize.Skyscraper:c=120,d=600;break;case a.GameDistributionBannerSize.WideSkyscraper:c=160,d=600}this.width=c,this.height=d,this.element.style.width=c+"px",this.element.style.height=d+"px"},b.prototype.position=function(a,b){this.element.style.left=a+this.offsetX+"px",this.element.style.top=b+this.offsetY+"px"},b.prototype.scale=function(a){this.element.style.transformOrigin="left top",this.scaleFactor=a,this.element.style.transform="scale("+a+")"},b}(),n=function(){function b(b){var c=this;this.adsEnabled=!1,this.hasRewarded=!1,this.adShowing=!1,this.areAdsEnabled(),window.GD_OPTIONS={gameId:b,advertisementSettings:{autoplay:!1},onEvent:function(b){switch(b.name){case"SDK_GAME_PAUSE":c.adManager.emit(a.AdEvents.CONTENT_PAUSED);break;case"SDK_READY":c.sdkLoaded()}}},function(a,b,c){var d,e=a.getElementsByTagName(b)[0];a.getElementById(c)||(d=a.createElement(b),d.id=c,d.src="//html5.api.gamedistribution.com/main.min.js",e.parentNode&&e.parentNode.insertBefore(d,e))}}return b.prototype.setManager=function(b){this.adManager=b,this.adManager.emit(a.AdEvents.AD_PROVIDER_LOADED)},b.prototype.sdkLoaded=function(){var a=this;this.areAdsEnabled().then(function(b){b&&(a.adsEnabled=!0)})},b.prototype.showAd=function(b){var c=this;if(this.adsEnabled){if("undefined"==typeof gdsdk||gdsdk&&void 0===gdsdk.showAd)return this.adsEnabled=!1,void this.adManager.emit(a.AdEvents.CONTENT_RESUMED);gdsdk.showAd(b===a.AdType.rewarded?f.rewarded:f.interstitial).then(function(){b===a.AdType.rewarded&&(c.adManager.emit(a.AdEvents.AD_REWARDED),c.hasRewarded=!1),c.adManager.emit(a.AdEvents.CONTENT_RESUMED)}).catch(function(){b===a.AdType.rewarded&&c.hasRewarded&&(c.hasRewarded=!1),c.adManager.emit(a.AdEvents.CONTENT_RESUMED)})}else this.adManager.emit(a.AdEvents.CONTENT_RESUMED)},b.prototype.createBanner=function(a){if(this.adsEnabled){var b=new m;return b.setSize(a),b}},b.prototype.loadBanner=function(a){if(this.adsEnabled){var b=new m;return b.setSize(a),b.loadBanner(),b}},b.prototype.preloadAd=function(b){var c=this;!this.hasRewarded&&this.adsEnabled&&b===a.AdType.rewarded&&(console.log("preloading ad"),gdsdk.preloadAd(f.rewarded).then(function(){c.hasRewarded=!0,c.adManager.emit(a.AdEvents.AD_LOADED,b)}))},b.prototype.adAvailable=function(b){return b!==a.AdType.rewarded||this.hasRewarded},b.prototype.destroyAd=function(){},b.prototype.hideAd=function(){},b.prototype.areAdsEnabled=function(){var a=document.createElement("script");a.id="debug-test-ad",a.src="https://storage.googleapis.com/cdn.fbrq.io/anyad.js",document.body.appendChild(a);var b=function(){var a=!0;if(document.getElementById("az-test-ad")||(a=!1),document.getElementById("debug-test-ad")){var b=document.getElementById("debug-test-ad");try{b.parentNode.removeChild(b)}catch(a){console.log("cannot remove div")}}if(document.getElementById("az-test-ad")){var c=document.getElementById("az-test-ad");try{c.parentNode.removeChild(c)}catch(a){console.log("cannot remove div")}}return a};return new Promise(function(a){window.setTimeout(function(){a(b())},100)})},b}();!function(a){a[a.start=0]="start",a[a.firstQuartile=1]="firstQuartile",a[a.midPoint=2]="midPoint",a[a.thirdQuartile=3]="thirdQuartile",a[a.complete=4]="complete"}(l||(l={}));var o=function(){function b(a,b){this.googleEnabled=!1,this.adsEnabled=!0,this.adTagUrl="",this.adRequested=!1,this.areAdsEnabled(),"undefined"!=typeof google&&(this.googleEnabled=!0,this.gameContent="string"==typeof a.parentElement?document.getElementById(a.parentElement):a.parentElement,this.gameContent.style.position="absolute",this.gameContent.style.width="100%",this.adContent=this.gameContent.parentNode.appendChild(document.createElement("div")),this.adContent.id="phaser-ad-container",this.adContent.style.position="absolute",this.adContent.style.zIndex="9999",this.adContent.style.display="none",this.adContent.style.top="0",this.adContent.style.left="0",this.adContent.style.width="100%",this.adContent.style.height="100%",this.adContent.style.overflow="hidden",this.adTagUrl=b,this.adDisplay=new google.ima.AdDisplayContainer(this.adContent),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale("nl"),this.adLoader=new google.ima.AdsLoader(this.adDisplay),this.adLoader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,this.onAdManagerLoader,!1,this),this.adLoader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,this.onAdError,!1,this))}return b.prototype.setManager=function(b){this.adManager=b,this.adManager.emit(a.AdEvents.AD_PROVIDER_LOADED)},b.prototype.showAd=function(b,c){if(console.log("Ad Requested"),!this.adRequested){if(this.adsEnabled||this.adManager.emit(a.AdEvents.AD_DISABLED,!0),!this.googleEnabled)return void this.onContentResumeRequested();this.adDisplay.initialize();var d=new google.ima.AdsRequest;d.adTagUrl=this.adTagUrl+this.parseCustomParams(c);var e=window.innerWidth,f=window.innerHeight;document.body.clientHeight<window.innerHeight&&(f=document.body.clientHeight,e=document.body.clientWidth),d.linearAdSlotWidth=e,d.linearAdSlotHeight=f,d.nonLinearAdSlotWidth=e,d.nonLinearAdSlotHeight=f,d.forceNonLinearFullSlot=!0;try{this.adRequested=!0,this.adLoader.requestAds(d)}catch(a){console.log(a),this.onContentResumeRequested()}}},b.prototype.adAvailable=function(a){return!0},b.prototype.preloadAd=function(){},b.prototype.destroyAd=function(){},b.prototype.hideAd=function(){},b.prototype.onAdManagerLoader=function(a){var b=this;console.log("AdsManager loaded");var c=new google.ima.AdsRenderingSettings;c.restoreCustomPlaybackStateOnAdBreakComplete=!0;var d=a.getAdsManager(this.gameContent,c);this.adsManager=d,console.log(d.isCustomClickTrackingUsed()),d.addEventListener(google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,this.onContentPauseRequested,!1,this),d.addEventListener(google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,this.onContentResumeRequested,!1,this),d.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,this.onAdError,!1,this),[google.ima.AdEvent.Type.ALL_ADS_COMPLETED,google.ima.AdEvent.Type.CLICK,google.ima.AdEvent.Type.COMPLETE,google.ima.AdEvent.Type.FIRST_QUARTILE,google.ima.AdEvent.Type.LOADED,google.ima.AdEvent.Type.MIDPOINT,google.ima.AdEvent.Type.PAUSED,google.ima.AdEvent.Type.STARTED,google.ima.AdEvent.Type.THIRD_QUARTILE].forEach(function(a){d.addEventListener(a,b.onAdEvent,!1,b)});try{this.adContent.style.display="block";var e=window.innerWidth,f=window.innerHeight;this.adsManager.init(e,f,google.ima.ViewMode.NORMAL),this.adsManager.start(),this.resizeListener=function(){null!==b.adsManager&&(console.log("Resizing ad size"),b.adsManager.resize(window.innerWidth,window.innerHeight,google.ima.ViewMode.NORMAL))},window.addEventListener("resize",this.resizeListener)}catch(a){console.log("Adsmanager error:",a),this.onAdError(a)}},b.prototype.onAdEvent=function(b){switch(console.log("onAdEvent",b),b.type){case google.ima.AdEvent.Type.CLICK:this.adManager.emit(a.AdEvents.AD_CLICKED);break;case google.ima.AdEvent.Type.LOADED:this.adRequested=!1;var c=b.getAd();console.log("is ad linear?",c.isLinear()),c.isLinear()||this.onContentResumeRequested();break;case google.ima.AdEvent.Type.STARTED:this.adManager.emit(a.AdEvents.AD_PROGRESSION,l.start);break;case google.ima.AdEvent.Type.FIRST_QUARTILE:this.adManager.emit(a.AdEvents.AD_PROGRESSION,l.firstQuartile);break;case google.ima.AdEvent.Type.MIDPOINT:this.adManager.emit(a.AdEvents.AD_PROGRESSION,l.midPoint);break;case google.ima.AdEvent.Type.THIRD_QUARTILE:this.adManager.emit(a.AdEvents.AD_PROGRESSION,l.thirdQuartile);break;case google.ima.AdEvent.Type.COMPLETE:this.adManager.emit(a.AdEvents.AD_PROGRESSION,l.complete);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.onContentResumeRequested()}},b.prototype.onAdError=function(a){console.log("gneric ad error",a),null!==this.adsManager&&(this.adsManager.destroy(),null!==this.resizeListener&&window.removeEventListener("resize",this.resizeListener)),this.adRequested&&(this.adRequested=!1),this.onContentResumeRequested()},b.prototype.onContentPauseRequested=function(){console.log("onContentPauseRequested",arguments),this.adManager.emit(a.AdEvents.CONTENT_PAUSED)},b.prototype.onContentResumeRequested=function(){if(console.log("onContentResumeRequested",arguments),"undefined"==typeof google)return void this.adManager.emit(a.AdEvents.CONTENT_RESUMED);this.adContent.style.display="none",this.adManager.emit(a.AdEvents.CONTENT_RESUMED)},b.prototype.parseCustomParams=function(a){if(void 0!==a){var b="";for(var c in a)if(a.hasOwnProperty(c)){b.length>0&&(b+="&");var d=Array.isArray(a[c])?a[c].join(","):a[c];b+=c+"="+d}return"&cust_params="+encodeURIComponent(b)}return""},b.prototype.areAdsEnabled=function(){var a=this,b=document.createElement("div");b.innerHTML=" ",b.className="adsbox",b.style.position="absolute",b.style.fontSize="10px",document.body.appendChild(b);var c=function(){var a=!0;return 0===b.offsetHeight&&(a=!1),b.parentNode&&b.parentNode.removeChild(b),a};window.setTimeout(function(){a.adsEnabled=c()},100)},b}();!function(a){a.CONTENT_PAUSED="onContentPaused",a.CONTENT_RESUMED="onContentResumed",a.AD_PROGRESSION="onAdProgression",a.AD_DISABLED="onAdsDisabled",a.AD_CLICKED="onAdClicked",a.AD_REWARDED="onAdRewardGranted",a.BANNER_SHOWN="onBannerShown",a.BANNER_HIDDEN="onBannerHidden",a.AD_LOADED="onAdLoaded",a.AD_PROVIDER_LOADED="onAdProviderLoaded"}(a.AdEvents||(a.AdEvents={})),function(a){a[a.interstitial=0]="interstitial",a[a.rewarded=1]="rewarded",a[a.banner=2]="banner"}(a.AdType||(a.AdType={}));var p=function(a){function c(){var b=null!==a&&a.apply(this,arguments)||this;return b.bannerActive=!1,b.provider=null,b}return b(c,a),c.prototype.setAdProvider=function(a){this.provider=a,this.provider.setManager(this)},c.prototype.showAd=function(a){for(var b=[],c=1;c<arguments.length;c++)b[c-1]=arguments[c];if(null===this.provider)throw new Error("Can not request an ad without an provider, please attach an ad provider!");b.unshift(a),this.provider.showAd.apply(this.provider,b)},c.prototype.createBanner=function(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];return this.provider.loadBanner.apply(this.provider,a)},c.prototype.loadBanner=function(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];return"function"==typeof this.provider.loadBanner?this.provider.loadBanner.apply(this.provider,a):null},c.prototype.preloadAd=function(a){for(var b=[],c=1;c<arguments.length;c++)b[c-1]=arguments[c];if(null===this.provider)throw new Error("Can not preload an ad without an provider, please attach an ad provider!");b.unshift(a),this.provider.preloadAd.apply(this.provider,b)},c.prototype.destroyAd=function(a){for(var b=[],c=1;c<arguments.length;c++)b[c-1]=arguments[c];if(null===this.provider)throw new Error("Can not destroy an ad without an provider, please attach an ad provider!");b.unshift(a),this.provider.destroyAd.apply(this.provider,b)},
|
||
c.prototype.hideAd=function(a){for(var b=[],c=1;c<arguments.length;c++)b[c-1]=arguments[c];if(null===this.provider)throw new Error("Can not hide an ad without an provider, please attach an ad provider!");b.unshift(a),this.provider.hideAd.apply(this.provider,b)},c.prototype.adsEnabled=function(){if(null===this.provider)throw new Error("Can not hide an ad without an provider, please attach an ad provider!");return this.provider.adsEnabled},c.prototype.adAvailable=function(a){for(var b=[],c=1;c<arguments.length;c++)b[c-1]=arguments[c];if(null===this.provider)throw new Error("Can not hide an ad without an provider, please attach an ad provider!");return b.unshift(a),this.provider.adAvailable.apply(this.provider,b)},c}(e),q=new p;a.H5AdWrapper=p,a.adWrapper=q,a.CocoonAds=g,a.CordovaGamedistribution=h,a.CordovaGamedock=i,a.CordovaHeyzap=j,a.CordovaIronSource=k,a.GameDistribution=n,a.GameDistributionBanner=m,a.Ima3=o,Object.defineProperty(a,"__esModule",{value:!0})}),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/LevelMenu/LevelButton",["States/Common/Button","Phaser"],function(c){"use strict";return function(c){function d(b,c,e,f,g,h){this.destroy=a(this.destroy,this),this.setUp=a(this.setUp,this),this.setDown=a(this.setDown,this);var i;d.__super__.constructor.call(this,b,c,e),this.anchor.set(.5),i="speed"===f?"DiamondSpeed":"puzzle"===f?"DiamondPuzzle":"dark"===f?"DiamondDark":"Diamond",this.upFrameName=i+g,this.downFrameName=i+g,this.diamond=b.make.sprite(0,0,"MenuAssets",this.upFrameName),this.diamond.anchor.set(.5),this.addChild(this.diamond),this.hitArea=new PIXI.Circle(0,0,1.5*this.diamond.width),null!=h&&(this.game.bowser.mobile||this.game.bowser.tablet||this.game.device.iPad?(this.game.TouchManager.register(this,"touchstart",this.setDown),this.game.TouchManager.register(this,"touchend",function(a){return function(b,c){if(a.setUp(),c)return a.game.settings.vibrate&&navigator.vibrate&&navigator.vibrate(50),a.game.settings.fx&&a.game.currentSounds.pusher.play(),h(a)}}(this))):(this.game.TouchManager.register(this,"mousedown",this.setDown),this.game.TouchManager.register(this,"mouseup",function(a){return function(b,c){if(a.setUp(),c)return a.game.settings.fx&&a.game.currentSounds.pusher.play(),h(a)}}(this))))}return b(d,c),d.prototype.setDown=function(){return this.diamond.scale.set(.95)},d.prototype.setUp=function(){return _.delay(function(a){return function(){return a.diamond.scale.set(1)}}(this),100)},d.prototype.destroy=function(){return this.game.bowser.mobile||this.game.bowser.tablet||this.game.device.iPad?(this.game.TouchManager.unregister(this,"touchstart"),this.game.TouchManager.unregister(this,"touchend")):(this.game.TouchManager.unregister(this,"mousedown"),this.game.TouchManager.unregister(this,"mouseup")),d.__super__.destroy.call(this)},d}(Phaser.Sprite)})}.call(this);var COMPILED=!1,goog=goog||{};goog.global=this,goog.global.CLOSURE_UNCOMPILED_DEFINES,goog.global.CLOSURE_DEFINES,goog.isDef=function(a){return void 0!==a},goog.exportPath_=function(a,b,c){var d=a.split("."),e=c||goog.global;d[0]in e||!e.execScript||e.execScript("var "+d[0]);for(var f;d.length&&(f=d.shift());)!d.length&&goog.isDef(b)?e[f]=b:e=e[f]?e[f]:e[f]={}},goog.define=function(a,b){var c=b;COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,a)?c=goog.global.CLOSURE_UNCOMPILED_DEFINES[a]:goog.global.CLOSURE_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,a)&&(c=goog.global.CLOSURE_DEFINES[a])),goog.exportPath_(a,c)},goog.DEBUG=!0,goog.define("goog.LOCALE","en"),goog.define("goog.TRUSTED_SITE",!0),goog.define("goog.STRICT_MODE_COMPATIBLE",!1),goog.provide=function(a){if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a];for(var b=a;(b=b.substring(0,b.lastIndexOf(".")))&&!goog.getObjectByName(b);)goog.implicitNamespaces_[b]=!0}goog.exportPath_(a)},goog.setTestOnly=function(a){if(COMPILED&&!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."))},goog.forwardDeclare=function(a){},COMPILED||(goog.isProvided_=function(a){return!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={}),goog.getObjectByName=function(a,b){for(var c,d=a.split("."),e=b||goog.global;c=d.shift();){if(!goog.isDefAndNotNull(e[c]))return null;e=e[c]}return e},goog.globalize=function(a,b){var c=b||goog.global;for(var d in a)c[d]=a[d]},goog.addDependency=function(a,b,c){if(goog.DEPENDENCIES_ENABLED){for(var d,e,f=a.replace(/\\/g,"/"),g=goog.dependencies_,h=0;d=b[h];h++)g.nameToPath[d]=f,f in g.pathToNames||(g.pathToNames[f]={}),g.pathToNames[f][d]=!0;for(var i=0;e=c[i];i++)f in g.requires||(g.requires[f]={}),g.requires[f][e]=!0}},goog.define("goog.ENABLE_DEBUG_LOADER",!0),goog.require=function(a){if(!COMPILED){if(goog.isProvided_(a))return;if(goog.ENABLE_DEBUG_LOADER){var b=goog.getPathFromDeps_(a);if(b)return goog.included_[b]=!0,void goog.writeScripts_()}var c="goog.require could not find: "+a;throw goog.global.console&&goog.global.console.error(c),Error(c)}},goog.basePath="",goog.global.CLOSURE_BASE_PATH,goog.global.CLOSURE_NO_DEPS,goog.global.CLOSURE_IMPORT_SCRIPT,goog.nullFunction=function(){},goog.identityFunction=function(a,b){return a},goog.abstractMethod=function(){throw Error("unimplemented abstract method")},goog.addSingletonGetter=function(a){a.getInstance=function(){return a.instance_?a.instance_:(goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a),a.instance_=new a)}},goog.instantiatedSingletons_=[],goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER,goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return void 0!==a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)return void(goog.basePath=goog.global.CLOSURE_BASE_PATH);if(goog.inHtmlDocument_())for(var a=goog.global.document,b=a.getElementsByTagName("script"),c=b.length-1;c>=0;--c){var d=b[c].src,e=d.lastIndexOf("?"),f=-1==e?d.length:e;if("base.js"==d.substr(f-7,7))return void(goog.basePath=d.substr(0,f-7))}},goog.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load')}return b.write('<script type="text/javascript" src="'+a+'"><\/script>'),!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(e in d.visited)return void(e in c||(c[e]=!0,b.push(e)));if(d.visited[e]=!0,e in d.requires)for(var f in d.requires[e])if(!goog.isProvided_(f)){if(!(f in d.nameToPath))throw Error("Undefined nameToPath for "+f);a(d.nameToPath[f])}e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_;for(var e in goog.included_)d.written[e]||a(e);for(var f=0;f<b.length;f++){if(!b[f])throw Error("Undefined script input");goog.importScript_(goog.basePath+b[f])}},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_()),goog.typeOf=function(a){var b=typeof a;if("object"==b){if(!a)return"null";if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&void 0!==a.splice&&void 0!==a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||void 0!==a.call&&void 0!==a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else if("function"==b&&void 0===a.call)return"object";return b},goog.isNull=function(a){return null===a},goog.isDefAndNotNull=function(a){return null!=a},goog.isArray=function(a){return"array"==goog.typeOf(a)},goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length},goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear},goog.isString=function(a){return"string"==typeof a},goog.isBoolean=function(a){return"boolean"==typeof a},goog.isNumber=function(a){return"number"==typeof a},goog.isFunction=function(a){return"function"==goog.typeOf(a)},goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b},goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)},goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]},goog.removeUid=function(a){"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(a){}},goog.UID_PROPERTY_="closure_uid_"+(1e9*Math.random()>>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var c="array"==b?[]:{};for(var d in a)c[d]=goog.cloneObject(a[d]);return c}return a},goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)},goog.bindJs_=function(a,b,c){if(!a)throw new Error;if(arguments.length>2){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(c,d),a.apply(b,c)}}return function(){return a.apply(b,arguments)}},goog.bind=function(a,b,c){return Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_,goog.bind.apply(null,arguments)},goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();return b.push.apply(b,arguments),a.apply(this,b)}},goog.mixin=function(a,b){for(var c in b)a[c]=b[c]},goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date},goog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,"JavaScript");else{if(!goog.global.eval)throw Error("goog.globalEval not available");if(null==goog.evalWorksForGlobals_&&(goog.global.eval("var _et_ = 1;"),void 0!==goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement("script");c.type="text/javascript",c.defer=!1,c.appendChild(b.createTextNode(a)),b.body.appendChild(c),b.body.removeChild(c)}}},goog.evalWorksForGlobals_=null,goog.cssNameMapping_,goog.cssNameMappingStyle_,goog.getCssName=function(a,b){var c,d=function(a){return goog.cssNameMapping_[a]||a},e=function(a){for(var b=a.split("-"),c=[],e=0;e<b.length;e++)c.push(d(b[e]));return c.join("-")};return c=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?d:e:function(a){return a},b?a+"-"+c(b):c(a)},goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a,goog.cssNameMappingStyle_=b},goog.global.CLOSURE_CSS_NAME_MAPPING,!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING),goog.getMsg=function(a,b){return b&&(a=a.replace(/\{\$([^}]+)}/g,function(a,c){return c in b?b[c]:a})),a},goog.getMsgWithFallback=function(a,b){return a},goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)},goog.exportProperty=function(a,b,c){a[b]=c},goog.inherits=function(a,b){function c(){}c.prototype=b.prototype,a.superClass_=b.prototype,a.prototype=new c,a.prototype.constructor=a,a.base=function(a,c,d){var e=Array.prototype.slice.call(arguments,2);return b.prototype[c].apply(a,e)}},goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[b].apply(a,e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error("goog.base called from a method of one name to a method of a different name")},goog.scope=function(a){a.call(goog.global)},COMPILED||(goog.global.COMPILED=COMPILED),goog.defineClass=function(a,b){var c=b.constructor,d=b.statics;c&&c!=Object.prototype.constructor||(c=function(){throw Error("cannot instantiate an interface (no constructor defined).")});var e=goog.defineClass.createSealingConstructor_(c,a);return a&&goog.inherits(e,a),delete b.constructor,delete b.statics,goog.defineClass.applyProperties_(e.prototype,b),null!=d&&(d instanceof Function?d(e):goog.defineClass.applyProperties_(e,d)),e},goog.defineClass.ClassDescriptor,goog.define("goog.defineClass.SEAL_CLASS_INSTANCES",goog.DEBUG),goog.defineClass.createSealingConstructor_=function(a,b){if(goog.defineClass.SEAL_CLASS_INSTANCES&&Object.seal instanceof Function){if(b&&b.prototype&&b.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_])return a;var c=function(){var b=a.apply(this,arguments)||this;return this.constructor===c&&Object.seal(b),b};return c}return a},goog.defineClass.OBJECT_PROTOTYPE_FIELDS_=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],goog.defineClass.applyProperties_=function(a,b){var c;for(c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c]);for(var d=0;d<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;d++)c=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d],Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])},goog.tagUnsealableClass=function(a){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)},goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable",goog.provide("box2d.b2Settings"),Object.defineProperty||(Object.defineProperty=function(a,b,c){Object.__defineGetter__&&("get"in c?a.__defineGetter__(b,c.get):"value"in c&&a.__defineGetter__(b,c.value)),Object.__defineSetter__&&("set"in c?a.__defineSetter__(b,c.set):"value"in c&&a.__defineSetter__(b,c.value))}),box2d.DEBUG=!1,box2d.ENABLE_ASSERTS=box2d.DEBUG,box2d.b2Assert=function(a,b,c){box2d.DEBUG},box2d.b2_maxFloat=1e37,box2d.b2_epsilon=1e-5,box2d.b2_epsilon_sq=box2d.b2_epsilon*box2d.b2_epsilon,box2d.b2_pi=Math.PI,box2d.b2_maxManifoldPoints=2,box2d.b2_maxPolygonVertices=8,box2d.b2_aabbExtension=.1,box2d.b2_aabbMultiplier=2,box2d.b2_linearSlop=.008,box2d.b2_angularSlop=2/180*box2d.b2_pi,box2d.b2_polygonRadius=2*box2d.b2_linearSlop,box2d.b2_maxSubSteps=8,box2d.b2_maxTOIContacts=32,box2d.b2_velocityThreshold=1,box2d.b2_maxLinearCorrection=.2,box2d.b2_maxAngularCorrection=8/180*box2d.b2_pi,box2d.b2_maxTranslation=2,box2d.b2_maxTranslationSquared=box2d.b2_maxTranslation*box2d.b2_maxTranslation,box2d.b2_maxRotation=.5*box2d.b2_pi,box2d.b2_maxRotationSquared=box2d.b2_maxRotation*box2d.b2_maxRotation,box2d.b2_baumgarte=.2,box2d.b2_toiBaumgarte=.75,box2d.b2_timeToSleep=.5,box2d.b2_linearSleepTolerance=.01,box2d.b2_angularSleepTolerance=2/180*box2d.b2_pi,box2d.b2Alloc=function(a){return null},box2d.b2Free=function(a){},box2d.b2Log=function(a){goog.global.console.log.apply(null,arguments)},box2d.b2Version=function(a,b,c){this.major=a||0,this.minor=b||0,this.revision=c||0},box2d.b2Version.prototype.major=0,box2d.b2Version.prototype.minor=0,box2d.b2Version.prototype.revision=0,box2d.b2Version.prototype.toString=function(){return this.major+"."+this.minor+"."+this.revision},box2d.b2_version=new box2d.b2Version(2,3,0),box2d.b2_changelist=278,box2d.b2ParseInt=function(a){return parseInt(a,10)},box2d.b2ParseUInt=function(a){return box2d.b2Abs(parseInt(a,10))},box2d.b2MakeArray=function(a,b){void 0===a&&(a=0);var c=new Array(a);if(void 0!==b)for(var d=0;d<a;++d)c[d]=b(d);return c},box2d.b2MakeNumberArray=function(a){return box2d.b2MakeArray(a,function(a){return 0})},goog.provide("box2d.b2Math"),goog.require("box2d.b2Settings"),box2d.b2_pi_over_180=box2d.b2_pi/180,box2d.b2_180_over_pi=180/box2d.b2_pi,box2d.b2_two_pi=2*box2d.b2_pi,box2d.b2Abs=function(a){return a<0?-a:a},box2d.b2Min=function(a,b){return a<b?a:b},box2d.b2Max=function(a,b){return a>b?a:b},box2d.b2Clamp=function(a,b,c){return a<b?b:a>c?c:a},box2d.b2Swap=function(a,b){box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1);var c=a[0];a[0]=b[0],b[0]=c},box2d.b2IsValid=function(a){return isFinite(a)},box2d.b2Sq=function(a){return a*a},box2d.b2InvSqrt=function(a){return 1/Math.sqrt(a)},box2d.b2Sqrt=function(a){return Math.sqrt(a)},box2d.b2Pow=function(a,b){return Math.pow(a,b)},box2d.b2DegToRad=function(a){return a*box2d.b2_pi_over_180},box2d.b2RadToDeg=function(a){return a*box2d.b2_180_over_pi},box2d.b2Cos=function(a){return Math.cos(a)},box2d.b2Sin=function(a){return Math.sin(a)},box2d.b2Acos=function(a){return Math.acos(a)},box2d.b2Asin=function(a){return Math.asin(a)},box2d.b2Atan2=function(a,b){return Math.atan2(a,b)},box2d.b2NextPowerOfTwo=function(a){return a|=a>>1&2147483647,a|=a>>2&1073741823,a|=a>>4&268435455,a|=a>>8&16777215,(a|=a>>16&65535)+1},box2d.b2IsPowerOfTwo=function(a){return a>0&&0==(a&a-1)},box2d.b2Random=function(){return 2*Math.random()-1},box2d.b2RandomRange=function(a,b){return(b-a)*Math.random()+a},box2d.b2Vec2=function(a,b){this.x=a||0,this.y=b||0},box2d.b2Vec2.prototype.x=0,box2d.b2Vec2.prototype.y=0,box2d.b2Vec2_zero=new box2d.b2Vec2,box2d.b2Vec2.ZERO=new box2d.b2Vec2,box2d.b2Vec2.UNITX=new box2d.b2Vec2(1,0),box2d.b2Vec2.UNITY=new box2d.b2Vec2(0,1),box2d.b2Vec2.s_t0=new box2d.b2Vec2,box2d.b2Vec2.s_t1=new box2d.b2Vec2,box2d.b2Vec2.s_t2=new box2d.b2Vec2,box2d.b2Vec2.s_t3=new box2d.b2Vec2,box2d.b2Vec2.MakeArray=function(a){return box2d.b2MakeArray(a,function(a){return new box2d.b2Vec2})},box2d.b2Vec2.prototype.Clone=function(){return new box2d.b2Vec2(this.x,this.y)},box2d.b2Vec2.prototype.SetZero=function(){return this.x=0,this.y=0,this},box2d.b2Vec2.prototype.SetXY=function(a,b){return this.x=a,this.y=b,this},box2d.b2Vec2.prototype.Copy=function(a){return this.x=a.x,this.y=a.y,this},box2d.b2Vec2.prototype.SelfAdd=function(a){return this.x+=a.x,this.y+=a.y,this},box2d.b2Vec2.prototype.SelfAddXY=function(a,b){return this.x+=a,this.y+=b,this},box2d.b2Vec2.prototype.SelfSub=function(a){return this.x-=a.x,this.y-=a.y,this},box2d.b2Vec2.prototype.SelfSubXY=function(a,b){return this.x-=a,this.y-=b,this},box2d.b2Vec2.prototype.SelfMul=function(a){return this.x*=a,this.y*=a,this},box2d.b2Vec2.prototype.SelfMulAdd=function(a,b){return this.x+=a*b.x,this.y+=a*b.y,this},box2d.b2Vec2.prototype.SelfMulSub=function(a,b){return this.x-=a*b.x,this.y-=a*b.y,this},box2d.b2Vec2.prototype.Dot=function(a){return this.x*a.x+this.y*a.y},box2d.b2Vec2.prototype.Cross=function(a){return this.x*a.y-this.y*a.x},box2d.b2Vec2.prototype.Length=function(){var a=this.x,b=this.y;return Math.sqrt(a*a+b*b)},box2d.b2Vec2.prototype.GetLength=box2d.b2Vec2.prototype.Length,box2d.b2Vec2.prototype.LengthSquared=function(){var a=this.x,b=this.y;return a*a+b*b},box2d.b2Vec2.prototype.GetLengthSquared=box2d.b2Vec2.prototype.LengthSquared,box2d.b2Vec2.prototype.Normalize=function(){var a=this.GetLength();if(a>=box2d.b2_epsilon){var b=1/a;this.x*=b,this.y*=b}return a},box2d.b2Vec2.prototype.SelfNormalize=function(){var a=this.GetLength();if(a>=box2d.b2_epsilon){var b=1/a;this.x*=b,this.y*=b}return this},box2d.b2Vec2.prototype.SelfRotate=function(a,b){var c=this.x,d=this.y;return this.x=a*c-b*d,this.y=b*c+a*d,this},box2d.b2Vec2.prototype.SelfRotateRadians=function(a){return this.SelfRotate(Math.cos(a),Math.sin(a))},box2d.b2Vec2.prototype.SelfRotateDegrees=function(a){return this.SelfRotateRadians(box2d.b2DegToRad(a))},box2d.b2Vec2.prototype.IsValid=function(){return isFinite(this.x)&&isFinite(this.y)},box2d.b2Vec2.prototype.SelfCrossVS=function(a){var b=this.x;return this.x=a*this.y,this.y=-a*b,this},box2d.b2Vec2.prototype.SelfCrossSV=function(a){var b=this.x;return this.x=-a*this.y,this.y=a*b,this},box2d.b2Vec2.prototype.SelfMinV=function(a){return this.x=box2d.b2Min(this.x,a.x),this.y=box2d.b2Min(this.y,a.y),this},box2d.b2Vec2.prototype.SelfMaxV=function(a){return this.x=box2d.b2Max(this.x,a.x),this.y=box2d.b2Max(this.y,a.y),this},box2d.b2Vec2.prototype.SelfAbs=function(){return this.x=box2d.b2Abs(this.x),this.y=box2d.b2Abs(this.y),this},box2d.b2Vec2.prototype.SelfNeg=function(){return this.x=-this.x,this.y=-this.y,this},box2d.b2Vec2.prototype.SelfSkew=function(){var a=this.x;return this.x=-this.y,this.y=a,this},box2d.b2AbsV=function(a,b){return b.x=box2d.b2Abs(a.x),b.y=box2d.b2Abs(a.y),b},box2d.b2MinV=function(a,b,c){return c.x=box2d.b2Min(a.x,b.x),c.y=box2d.b2Min(a.y,b.y),c},box2d.b2MaxV=function(a,b,c){return c.x=box2d.b2Max(a.x,b.x),c.y=box2d.b2Max(a.y,b.y),c},box2d.b2ClampV=function(a,b,c,d){return d.x=box2d.b2Clamp(a.x,b.x,c.x),d.y=box2d.b2Clamp(a.y,b.y,c.y),d},box2d.b2RotateV=function(a,b,c,d){var e=a.x,f=a.y;return d.x=b*e-c*f,d.y=c*e+b*f,d},box2d.b2RotateRadiansV=function(a,b,c){return box2d.b2RotateV(a,Math.cos(b),Math.sin(b),c)},box2d.b2RotateDegreesV=function(a,b,c){return box2d.b2RotateRadiansV(a,box2d.b2DegToRad(b),c)},box2d.b2DotVV=function(a,b){return a.x*b.x+a.y*b.y},box2d.b2CrossVV=function(a,b){return a.x*b.y-a.y*b.x};box2d.b2CrossVS=function(a,b,c){var d=a.x;return c.x=b*a.y,c.y=-b*d,c},box2d.b2CrossVOne=function(a,b){var c=a.x;return b.x=a.y,b.y=-c,b},box2d.b2CrossSV=function(a,b,c){var d=b.x;return c.x=-a*b.y,c.y=a*d,c},box2d.b2CrossOneV=function(a,b){var c=a.x;return b.x=-a.y,b.y=c,b},box2d.b2AddVV=function(a,b,c){return c.x=a.x+b.x,c.y=a.y+b.y,c},box2d.b2SubVV=function(a,b,c){return c.x=a.x-b.x,c.y=a.y-b.y,c},box2d.b2MulSV=function(a,b,c){return c.x=b.x*a,c.y=b.y*a,c},box2d.b2AddVMulSV=function(a,b,c,d){return d.x=a.x+b*c.x,d.y=a.y+b*c.y,d},box2d.b2SubVMulSV=function(a,b,c,d){return d.x=a.x-b*c.x,d.y=a.y-b*c.y,d},box2d.b2AddVCrossSV=function(a,b,c,d){var e=c.x;return d.x=a.x-b*c.y,d.y=a.y+b*e,d},box2d.b2MidVV=function(a,b,c){return c.x=.5*(a.x+b.x),c.y=.5*(a.y+b.y),c},box2d.b2ExtVV=function(a,b,c){return c.x=.5*(b.x-a.x),c.y=.5*(b.y-a.y),c},box2d.b2IsEqualToV=function(a,b){return a.x===b.x&&a.y===b.y},box2d.b2DistanceVV=function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},box2d.b2DistanceSquaredVV=function(a,b){var c=a.x-b.x,d=a.y-b.y;return c*c+d*d},box2d.b2NegV=function(a,b){return b.x=-a.x,b.y=-a.y,b},box2d.b2Vec3=function(a,b,c){this.x=a||0,this.y=b||0,this.z=c||0},box2d.b2Vec3.prototype.x=0,box2d.b2Vec3.prototype.y=0,box2d.b2Vec3.prototype.z=0,box2d.b2Vec3.ZERO=new box2d.b2Vec3,box2d.b2Vec3.s_t0=new box2d.b2Vec3,box2d.b2Vec3.prototype.Clone=function(){return new box2d.b2Vec3(this.x,this.y,this.z)},box2d.b2Vec3.prototype.SetZero=function(){return this.x=0,this.y=0,this.z=0,this},box2d.b2Vec3.prototype.SetXYZ=function(a,b,c){return this.x=a,this.y=b,this.z=c,this},box2d.b2Vec3.prototype.Copy=function(a){return this.x=a.x,this.y=a.y,this.z=a.z,this},box2d.b2Vec3.prototype.SelfNeg=function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},box2d.b2Vec3.prototype.SelfAdd=function(a){return this.x+=a.x,this.y+=a.y,this.z+=a.z,this},box2d.b2Vec3.prototype.SelfAddXYZ=function(a,b,c){return this.x+=a,this.y+=b,this.z+=c,this},box2d.b2Vec3.prototype.SelfSub=function(a){return this.x-=a.x,this.y-=a.y,this.z-=a.z,this},box2d.b2Vec3.prototype.SelfSubXYZ=function(a,b,c){return this.x-=a,this.y-=b,this.z-=c,this},box2d.b2Vec3.prototype.SelfMul=function(a){return this.x*=a,this.y*=a,this.z*=a,this},box2d.b2DotV3V3=function(a,b){return a.x*b.x+a.y*b.y+a.z*b.z},box2d.b2CrossV3V3=function(a,b,c){var d=a.x,e=a.y,f=a.z,g=b.x,h=b.y,i=b.z;return c.x=e*i-f*h,c.y=f*g-d*i,c.z=d*h-e*g,c},box2d.b2Mat22=function(){this.ex=new box2d.b2Vec2(1,0),this.ey=new box2d.b2Vec2(0,1)},box2d.b2Mat22.prototype.ex=null,box2d.b2Mat22.prototype.ey=null,box2d.b2Mat22.IDENTITY=new box2d.b2Mat22,box2d.b2Mat22.prototype.Clone=function(){return(new box2d.b2Mat22).Copy(this)},box2d.b2Mat22.FromVV=function(a,b){return(new box2d.b2Mat22).SetVV(a,b)},box2d.b2Mat22.FromSSSS=function(a,b,c,d){return(new box2d.b2Mat22).SetSSSS(a,b,c,d)},box2d.b2Mat22.FromAngleRadians=function(a){return(new box2d.b2Mat22).SetAngleRadians(a)},box2d.b2Mat22.prototype.SetSSSS=function(a,b,c,d){return this.ex.SetXY(a,c),this.ey.SetXY(b,d),this},box2d.b2Mat22.prototype.SetVV=function(a,b){return this.ex.Copy(a),this.ey.Copy(b),this},box2d.b2Mat22.prototype.SetAngle=function(a){var b=Math.cos(a),c=Math.sin(a);return this.ex.SetXY(b,c),this.ey.SetXY(-c,b),this},box2d.b2Mat22.prototype.SetAngleRadians=box2d.b2Mat22.prototype.SetAngle,box2d.b2Mat22.prototype.SetAngleDegrees=function(a){return this.SetAngle(box2d.b2DegToRad(a))},box2d.b2Mat22.prototype.Copy=function(a){return this.ex.Copy(a.ex),this.ey.Copy(a.ey),this},box2d.b2Mat22.prototype.SetIdentity=function(){return this.ex.SetXY(1,0),this.ey.SetXY(0,1),this},box2d.b2Mat22.prototype.SetZero=function(){return this.ex.SetZero(),this.ey.SetZero(),this},box2d.b2Mat22.prototype.GetAngle=function(){return Math.atan2(this.ex.y,this.ex.x)},box2d.b2Mat22.prototype.GetAngleRadians=box2d.b2Mat22.prototype.GetAngle,box2d.b2Mat22.prototype.GetInverse=function(a){var b=this.ex.x,c=this.ey.x,d=this.ex.y,e=this.ey.y,f=b*e-c*d;return 0!==f&&(f=1/f),a.ex.x=f*e,a.ey.x=-f*c,a.ex.y=-f*d,a.ey.y=f*b,a},box2d.b2Mat22.prototype.Solve=function(a,b,c){var d=this.ex.x,e=this.ey.x,f=this.ex.y,g=this.ey.y,h=d*g-e*f;return 0!==h&&(h=1/h),c.x=h*(g*a-e*b),c.y=h*(d*b-f*a),c},box2d.b2Mat22.prototype.SelfAbs=function(){return this.ex.SelfAbs(),this.ey.SelfAbs(),this},box2d.b2Mat22.prototype.SelfInv=function(){return this.GetInverse(this)},box2d.b2Mat22.prototype.SelfAddM=function(a){return this.ex.SelfAdd(a.ex),this.ey.SelfAdd(a.ey),this},box2d.b2Mat22.prototype.SelfSubM=function(a){return this.ex.SelfSub(a.ex),this.ey.SelfSub(a.ey),this},box2d.b2AbsM=function(a,b){var c=a.ex,d=a.ey;return b.ex.x=box2d.b2Abs(c.x),b.ex.y=box2d.b2Abs(c.y),b.ey.x=box2d.b2Abs(d.x),b.ey.y=box2d.b2Abs(d.y),b},box2d.b2MulMV=function(a,b,c){var d=a.ex,e=a.ey,f=b.x,g=b.y;return c.x=d.x*f+e.x*g,c.y=d.y*f+e.y*g,c},box2d.b2MulTMV=function(a,b,c){var d=a.ex,e=a.ey,f=b.x,g=b.y;return c.x=d.x*f+d.y*g,c.y=e.x*f+e.y*g,c},box2d.b2AddMM=function(a,b,c){var d=a.ex,e=a.ey,f=b.ex,g=b.ey;return c.ex.x=d.x+f.x,c.ex.y=d.y+f.y,c.ey.x=e.x+g.x,c.ey.y=e.y+g.y,c},box2d.b2MulMM=function(a,b,c){var d=a.ex.x,e=a.ex.y,f=a.ey.x,g=a.ey.y,h=b.ex.x,i=b.ex.y,j=b.ey.x,k=b.ey.y;return c.ex.x=d*h+f*i,c.ex.y=e*h+g*i,c.ey.x=d*j+f*k,c.ey.y=e*j+g*k,c},box2d.b2MulTMM=function(a,b,c){var d=a.ex.x,e=a.ex.y,f=a.ey.x,g=a.ey.y,h=b.ex.x,i=b.ex.y,j=b.ey.x,k=b.ey.y;return c.ex.x=d*h+e*i,c.ex.y=f*h+g*i,c.ey.x=d*j+e*k,c.ey.y=f*j+g*k,c},box2d.b2Mat33=function(){this.ex=new box2d.b2Vec3(1,0,0),this.ey=new box2d.b2Vec3(0,1,0),this.ez=new box2d.b2Vec3(0,0,1)},box2d.b2Mat33.prototype.ex=null,box2d.b2Mat33.prototype.ey=null,box2d.b2Mat33.prototype.ez=null,box2d.b2Mat33.IDENTITY=new box2d.b2Mat33,box2d.b2Mat33.prototype.Clone=function(){return(new box2d.b2Mat33).Copy(this)},box2d.b2Mat33.prototype.SetVVV=function(a,b,c){return this.ex.Copy(a),this.ey.Copy(b),this.ez.Copy(c),this},box2d.b2Mat33.prototype.Copy=function(a){return this.ex.Copy(a.ex),this.ey.Copy(a.ey),this.ez.Copy(a.ez),this},box2d.b2Mat33.prototype.SetIdentity=function(){return this.ex.SetXYZ(1,0,0),this.ey.SetXYZ(0,1,0),this.ez.SetXYZ(0,0,1),this},box2d.b2Mat33.prototype.SetZero=function(){return this.ex.SetZero(),this.ey.SetZero(),this.ez.SetZero(),this},box2d.b2Mat33.prototype.SelfAddM=function(a){return this.ex.SelfAdd(a.ex),this.ey.SelfAdd(a.ey),this.ez.SelfAdd(a.ez),this},box2d.b2Mat33.prototype.Solve33=function(a,b,c,d){var e=this.ex.x,f=this.ex.y,g=this.ex.z,h=this.ey.x,i=this.ey.y,j=this.ey.z,k=this.ez.x,l=this.ez.y,m=this.ez.z,n=e*(i*m-j*l)+f*(j*k-h*m)+g*(h*l-i*k);return 0!==n&&(n=1/n),d.x=n*(a*(i*m-j*l)+b*(j*k-h*m)+c*(h*l-i*k)),d.y=n*(e*(b*m-c*l)+f*(c*k-a*m)+g*(a*l-b*k)),d.z=n*(e*(i*c-j*b)+f*(j*a-h*c)+g*(h*b-i*a)),d},box2d.b2Mat33.prototype.Solve22=function(a,b,c){var d=this.ex.x,e=this.ey.x,f=this.ex.y,g=this.ey.y,h=d*g-e*f;return 0!==h&&(h=1/h),c.x=h*(g*a-e*b),c.y=h*(d*b-f*a),c},box2d.b2Mat33.prototype.GetInverse22=function(a){var b=this.ex.x,c=this.ey.x,d=this.ex.y,e=this.ey.y,f=b*e-c*d;0!==f&&(f=1/f),a.ex.x=f*e,a.ey.x=-f*c,a.ex.z=0,a.ex.y=-f*d,a.ey.y=f*b,a.ey.z=0,a.ez.x=0,a.ez.y=0,a.ez.z=0},box2d.b2Mat33.prototype.GetSymInverse33=function(a){var b=box2d.b2DotV3V3(this.ex,box2d.b2CrossV3V3(this.ey,this.ez,box2d.b2Vec3.s_t0));0!==b&&(b=1/b);var c=this.ex.x,d=this.ey.x,e=this.ez.x,f=this.ey.y,g=this.ez.y,h=this.ez.z;a.ex.x=b*(f*h-g*g),a.ex.y=b*(e*g-d*h),a.ex.z=b*(d*g-e*f),a.ey.x=a.ex.y,a.ey.y=b*(c*h-e*e),a.ey.z=b*(e*d-c*g),a.ez.x=a.ex.z,a.ez.y=a.ey.z,a.ez.z=b*(c*f-d*d)},box2d.b2MulM33V3=function(a,b,c){var d=b.x,e=b.y,f=b.z;return c.x=a.ex.x*d+a.ey.x*e+a.ez.x*f,c.y=a.ex.y*d+a.ey.y*e+a.ez.y*f,c.z=a.ex.z*d+a.ey.z*e+a.ez.z*f,c},box2d.b2MulM33XYZ=function(a,b,c,d,e){return e.x=a.ex.x*b+a.ey.x*c+a.ez.x*d,e.y=a.ex.y*b+a.ey.y*c+a.ez.y*d,e.z=a.ex.z*b+a.ey.z*c+a.ez.z*d,e},box2d.b2MulM33V2=function(a,b,c){var d=b.x,e=b.y;return c.x=a.ex.x*d+a.ey.x*e,c.y=a.ex.y*d+a.ey.y*e,c},box2d.b2MulM33XY=function(a,b,c,d){return d.x=a.ex.x*b+a.ey.x*c,d.y=a.ex.y*b+a.ey.y*c,d},box2d.b2Rot=function(a){a&&(this.angle=a,this.s=Math.sin(a),this.c=Math.cos(a))},box2d.b2Rot.prototype.angle=0,box2d.b2Rot.prototype.s=0,box2d.b2Rot.prototype.c=1,box2d.b2Rot.IDENTITY=new box2d.b2Rot,box2d.b2Rot.prototype.Clone=function(){return(new box2d.b2Rot).Copy(this)},box2d.b2Rot.prototype.Copy=function(a){return this.angle=a.angle,this.s=a.s,this.c=a.c,this},box2d.b2Rot.prototype.SetAngle=function(a){return this.angle!==a&&(this.angle=a,this.s=Math.sin(a),this.c=Math.cos(a)),this},box2d.b2Rot.prototype.SetAngleRadians=box2d.b2Rot.prototype.SetAngle,box2d.b2Rot.prototype.SetAngleDegrees=function(a){return this.SetAngle(box2d.b2DegToRad(a))},box2d.b2Rot.prototype.SetIdentity=function(){return this.angle=0,this.s=0,this.c=1,this},box2d.b2Rot.prototype.GetAngle=function(){return this.angle},box2d.b2Rot.prototype.GetAngleRadians=box2d.b2Rot.prototype.GetAngle,box2d.b2Rot.prototype.GetAngleDegrees=function(){return box2d.b2RadToDeg(this.GetAngle())},box2d.b2Rot.prototype.GetXAxis=function(a){return a.x=this.c,a.y=this.s,a},box2d.b2Rot.prototype.GetYAxis=function(a){return a.x=-this.s,a.y=this.c,a},box2d.b2MulRR=function(a,b,c){var d=a.c,e=a.s,f=b.c,g=b.s;for(c.s=e*f+d*g,c.c=d*f-e*g,c.angle=a.angle+b.angle;c.angle<-box2d.b2_pi;)c.angle+=box2d.b2_two_pi;for(;c.angle>=box2d.b2_pi;)c.angle-=box2d.b2_two_pi;return c},box2d.b2MulTRR=function(a,b,c){var d=a.c,e=a.s,f=b.c,g=b.s;for(c.s=d*g-e*f,c.c=d*f+e*g,c.angle=a.angle-b.angle;c.angle<-box2d.b2_pi;)c.angle+=box2d.b2_two_pi;for(;c.angle>=box2d.b2_pi;)c.angle-=box2d.b2_two_pi;return c},box2d.b2MulRV=function(a,b,c){var d=a.c,e=a.s,f=b.x,g=b.y;return c.x=d*f-e*g,c.y=e*f+d*g,c},box2d.b2MulTRV=function(a,b,c){var d=a.c,e=a.s,f=b.x,g=b.y;return c.x=d*f+e*g,c.y=-e*f+d*g,c},box2d.b2Transform=function(){this.p=new box2d.b2Vec2,this.q=new box2d.b2Rot},box2d.b2Transform.prototype.p=null,box2d.b2Transform.prototype.q=null,box2d.b2Transform.IDENTITY=new box2d.b2Transform,box2d.b2Transform.prototype.Clone=function(){return(new box2d.b2Transform).Copy(this)},box2d.b2Transform.prototype.Copy=function(a){return this.p.Copy(a.p),this.q.Copy(a.q),this},box2d.b2Transform.prototype.SetIdentity=function(){return this.p.SetZero(),this.q.SetIdentity(),this},box2d.b2Transform.prototype.SetPositionRotation=function(a,b){return this.p.Copy(a),this.q.Copy(b),this},
|
||
box2d.b2Transform.prototype.SetPositionAngleRadians=function(a,b){return this.p.Copy(a),this.q.SetAngleRadians(b),this},box2d.b2Transform.prototype.SetPosition=function(a){return this.p.Copy(a),this},box2d.b2Transform.prototype.SetPositionXY=function(a,b){return this.p.SetXY(a,b),this},box2d.b2Transform.prototype.SetRotation=function(a){return this.q.Copy(a),this},box2d.b2Transform.prototype.SetRotationAngleRadians=function(a){return this.q.SetAngleRadians(a),this},box2d.b2Transform.prototype.GetPosition=function(){return this.p},box2d.b2Transform.prototype.GetRotation=function(){return this.q},box2d.b2Transform.prototype.GetRotationAngle=function(){return this.q.GetAngle()},box2d.b2Transform.prototype.GetRotationAngleRadians=box2d.b2Transform.prototype.GetRotationAngle,box2d.b2Transform.prototype.GetAngle=function(){return this.q.GetAngle()},box2d.b2Transform.prototype.GetAngleRadians=box2d.b2Transform.prototype.GetAngle,box2d.b2MulXV=function(a,b,c){var d=a.q.c,e=a.q.s,f=b.x,g=b.y;return c.x=d*f-e*g+a.p.x,c.y=e*f+d*g+a.p.y,c},box2d.b2MulTXV=function(a,b,c){var d=a.q.c,e=a.q.s,f=b.x-a.p.x,g=b.y-a.p.y;return c.x=d*f+e*g,c.y=-e*f+d*g,c},box2d.b2MulXX=function(a,b,c){return box2d.b2MulRR(a.q,b.q,c.q),box2d.b2AddVV(box2d.b2MulRV(a.q,b.p,c.p),a.p,c.p),c},box2d.b2MulTXX=function(a,b,c){return box2d.b2MulTRR(a.q,b.q,c.q),box2d.b2MulTRV(a.q,box2d.b2SubVV(b.p,a.p,c.p),c.p),c},box2d.b2Sweep=function(){this.localCenter=new box2d.b2Vec2,this.c0=new box2d.b2Vec2,this.c=new box2d.b2Vec2},box2d.b2Sweep.prototype.localCenter=null,box2d.b2Sweep.prototype.c0=null,box2d.b2Sweep.prototype.c=null,box2d.b2Sweep.prototype.a0=0,box2d.b2Sweep.prototype.a=0,box2d.b2Sweep.prototype.alpha0=0,box2d.b2Sweep.prototype.Clone=function(){return(new box2d.b2Sweep).Copy(this)},box2d.b2Sweep.prototype.Copy=function(a){return this.localCenter.Copy(a.localCenter),this.c0.Copy(a.c0),this.c.Copy(a.c),this.a0=a.a0,this.a=a.a,this.alpha0=a.alpha0,this},box2d.b2Sweep.prototype.GetTransform=function(a,b){var c=1-b;a.p.x=c*this.c0.x+b*this.c.x,a.p.y=c*this.c0.y+b*this.c.y;var d=c*this.a0+b*this.a;return a.q.SetAngleRadians(d),a.p.SelfSub(box2d.b2MulRV(a.q,this.localCenter,box2d.b2Vec2.s_t0)),a},box2d.b2Sweep.prototype.Advance=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.alpha0<1);var b=(a-this.alpha0)/(1-this.alpha0);this.c0.x+=b*(this.c.x-this.c0.x),this.c0.y+=b*(this.c.y-this.c0.y),this.a0+=b*(this.a-this.a0),this.alpha0=a},box2d.b2Sweep.prototype.Normalize=function(){var a=box2d.b2_two_pi*Math.floor(this.a0/box2d.b2_two_pi);this.a0-=a,this.a-=a},goog.provide("box2d.b2Controller"),goog.require("box2d.b2Settings"),box2d.b2ControllerEdge=function(){},box2d.b2ControllerEdge.prototype.controller=null,box2d.b2ControllerEdge.prototype.body=null,box2d.b2ControllerEdge.prototype.prevBody=null,box2d.b2ControllerEdge.prototype.nextBody=null,box2d.b2ControllerEdge.prototype.prevController=null,box2d.b2ControllerEdge.prototype.nextController=null,box2d.b2Controller=function(){},box2d.b2Controller.prototype.m_world=null,box2d.b2Controller.prototype.m_bodyList=null,box2d.b2Controller.prototype.m_bodyCount=0,box2d.b2Controller.prototype.m_prev=null,box2d.b2Controller.prototype.m_next=null,box2d.b2Controller.prototype.Step=function(a){},box2d.b2Controller.prototype.Draw=function(a){},box2d.b2Controller.prototype.GetNext=function(){return this.m_next},box2d.b2Controller.prototype.GetPrev=function(){return this.m_prev},box2d.b2Controller.prototype.GetWorld=function(){return this.m_world},box2d.b2Controller.prototype.GetBodyList=function(){return this.m_bodyList},box2d.b2Controller.prototype.AddBody=function(a){var b=new box2d.b2ControllerEdge;b.body=a,b.controller=this,b.nextBody=this.m_bodyList,b.prevBody=null,this.m_bodyList&&(this.m_bodyList.prevBody=b),this.m_bodyList=b,++this.m_bodyCount,b.nextController=a.m_controllerList,b.prevController=null,a.m_controllerList&&(a.m_controllerList.prevController=b),a.m_controllerList=b,++a.m_controllerCount},box2d.b2Controller.prototype.RemoveBody=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_bodyCount>0);for(var b=this.m_bodyList;b&&b.body!==a;)b=b.nextBody;box2d.ENABLE_ASSERTS&&box2d.b2Assert(null!==b),b.prevBody&&(b.prevBody.nextBody=b.nextBody),b.nextBody&&(b.nextBody.prevBody=b.prevBody),this.m_bodyList===b&&(this.m_bodyList=b.nextBody),--this.m_bodyCount,b.nextController&&(b.nextController.prevController=b.prevController),b.prevController&&(b.prevController.nextController=b.nextController),a.m_controllerList===b&&(a.m_controllerList=b.nextController),--a.m_controllerCount},box2d.b2Controller.prototype.Clear=function(){for(;this.m_bodyList;)this.RemoveBody(this.m_bodyList.body);this.m_bodyCount=0},goog.provide("box2d.b2ConstantAccelController"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Controller"),goog.require("box2d.b2Math"),box2d.b2ConstantAccelController=function(){goog.base(this),this.A=new box2d.b2Vec2(0,0)},goog.inherits(box2d.b2ConstantAccelController,box2d.b2Controller),box2d.b2ConstantAccelController.prototype.A=null,box2d.b2ConstantAccelController.prototype.Step=function(a){for(var b=box2d.b2MulSV(a.dt,this.A,box2d.b2ConstantAccelController.prototype.Step.s_dtA),c=this.m_bodyList;c;c=c.nextBody){var d=c.body;d.IsAwake()&&d.SetLinearVelocity(box2d.b2AddVV(d.GetLinearVelocity(),b,box2d.b2Vec2.s_t0))}},box2d.b2ConstantAccelController.prototype.Step.s_dtA=new box2d.b2Vec2,goog.provide("box2d.b2Joint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),box2d.b2JointType={e_unknownJoint:0,e_revoluteJoint:1,e_prismaticJoint:2,e_distanceJoint:3,e_pulleyJoint:4,e_mouseJoint:5,e_gearJoint:6,e_wheelJoint:7,e_weldJoint:8,e_frictionJoint:9,e_ropeJoint:10,e_motorJoint:11,e_areaJoint:12},goog.exportProperty(box2d.b2JointType,"e_unknownJoint",box2d.b2JointType.e_unknownJoint),goog.exportProperty(box2d.b2JointType,"e_revoluteJoint",box2d.b2JointType.e_revoluteJoint),goog.exportProperty(box2d.b2JointType,"e_prismaticJoint",box2d.b2JointType.e_prismaticJoint),goog.exportProperty(box2d.b2JointType,"e_distanceJoint",box2d.b2JointType.e_distanceJoint),goog.exportProperty(box2d.b2JointType,"e_pulleyJoint",box2d.b2JointType.e_pulleyJoint),goog.exportProperty(box2d.b2JointType,"e_mouseJoint",box2d.b2JointType.e_mouseJoint),goog.exportProperty(box2d.b2JointType,"e_gearJoint",box2d.b2JointType.e_gearJoint),goog.exportProperty(box2d.b2JointType,"e_wheelJoint",box2d.b2JointType.e_wheelJoint),goog.exportProperty(box2d.b2JointType,"e_weldJoint",box2d.b2JointType.e_weldJoint),goog.exportProperty(box2d.b2JointType,"e_frictionJoint",box2d.b2JointType.e_frictionJoint),goog.exportProperty(box2d.b2JointType,"e_ropeJoint",box2d.b2JointType.e_ropeJoint),goog.exportProperty(box2d.b2JointType,"e_motorJoint",box2d.b2JointType.e_motorJoint),goog.exportProperty(box2d.b2JointType,"e_areaJoint",box2d.b2JointType.e_areaJoint),box2d.b2LimitState={e_inactiveLimit:0,e_atLowerLimit:1,e_atUpperLimit:2,e_equalLimits:3},goog.exportProperty(box2d.b2LimitState,"e_inactiveLimit",box2d.b2LimitState.e_inactiveLimit),goog.exportProperty(box2d.b2LimitState,"e_atLowerLimit",box2d.b2LimitState.e_atLowerLimit),goog.exportProperty(box2d.b2LimitState,"e_atUpperLimit",box2d.b2LimitState.e_atUpperLimit),goog.exportProperty(box2d.b2LimitState,"e_equalLimits",box2d.b2LimitState.e_equalLimits),box2d.b2Jacobian=function(){this.linear=new box2d.b2Vec2},box2d.b2Jacobian.prototype.linear=null,box2d.b2Jacobian.prototype.angularA=0,box2d.b2Jacobian.prototype.angularB=0,box2d.b2Jacobian.prototype.SetZero=function(){return this.linear.SetZero(),this.angularA=0,this.angularB=0,this},box2d.b2Jacobian.prototype.Set=function(a,b,c){return this.linear.Copy(a),this.angularA=b,this.angularB=c,this},box2d.b2JointEdge=function(){};box2d.b2JointEdge.prototype.other=null,box2d.b2JointEdge.prototype.joint=null,box2d.b2JointEdge.prototype.prev=null,box2d.b2JointEdge.prototype.next=null,box2d.b2JointDef=function(a){this.type=a},box2d.b2JointDef.prototype.type=box2d.b2JointType.e_unknownJoint,box2d.b2JointDef.prototype.userData=null,box2d.b2JointDef.prototype.bodyA=null,box2d.b2JointDef.prototype.bodyB=null,box2d.b2JointDef.prototype.collideConnected=!1,box2d.b2Joint=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.bodyA!==a.bodyB),this.m_type=a.type,this.m_edgeA=new box2d.b2JointEdge,this.m_edgeB=new box2d.b2JointEdge,this.m_bodyA=a.bodyA,this.m_bodyB=a.bodyB,this.m_collideConnected=a.collideConnected,this.m_userData=a.userData},box2d.b2Joint.prototype.m_type=box2d.b2JointType.e_unknownJoint,box2d.b2Joint.prototype.m_prev=null,box2d.b2Joint.prototype.m_next=null,box2d.b2Joint.prototype.m_edgeA=null,box2d.b2Joint.prototype.m_edgeB=null,box2d.b2Joint.prototype.m_bodyA=null,box2d.b2Joint.prototype.m_bodyB=null,box2d.b2Joint.prototype.m_index=0,box2d.b2Joint.prototype.m_islandFlag=!1,box2d.b2Joint.prototype.m_collideConnected=!1,box2d.b2Joint.prototype.m_userData=null,box2d.b2Joint.prototype.GetAnchorA=function(a){return a.SetZero()},box2d.b2Joint.prototype.GetAnchorB=function(a){return a.SetZero()},box2d.b2Joint.prototype.GetReactionForce=function(a,b){return b.SetZero()},box2d.b2Joint.prototype.GetReactionTorque=function(a){return 0},box2d.b2Joint.prototype.InitVelocityConstraints=function(a){},box2d.b2Joint.prototype.SolveVelocityConstraints=function(a){},box2d.b2Joint.prototype.SolvePositionConstraints=function(a){return!1},box2d.b2Joint.prototype.GetType=function(){return this.m_type},box2d.b2Joint.prototype.GetBodyA=function(){return this.m_bodyA},box2d.b2Joint.prototype.GetBodyB=function(){return this.m_bodyB},box2d.b2Joint.prototype.GetNext=function(){return this.m_next},box2d.b2Joint.prototype.GetUserData=function(){return this.m_userData},box2d.b2Joint.prototype.SetUserData=function(a){this.m_userData=a},box2d.b2Joint.prototype.GetCollideConnected=function(){return this.m_collideConnected},box2d.b2Joint.prototype.Dump=function(){box2d.DEBUG&&box2d.b2Log("// Dump is not supported for this joint type.\n")},box2d.b2Joint.prototype.IsActive=function(){return this.m_bodyA.IsActive()&&this.m_bodyB.IsActive()},box2d.b2Joint.prototype.ShiftOrigin=function(a){},goog.provide("box2d.b2RevoluteJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),box2d.b2RevoluteJointDef=function(){goog.base(this,box2d.b2JointType.e_revoluteJoint),this.localAnchorA=new box2d.b2Vec2(0,0),this.localAnchorB=new box2d.b2Vec2(0,0)},goog.inherits(box2d.b2RevoluteJointDef,box2d.b2JointDef),box2d.b2RevoluteJointDef.prototype.localAnchorA=null,box2d.b2RevoluteJointDef.prototype.localAnchorB=null,box2d.b2RevoluteJointDef.prototype.referenceAngle=0,box2d.b2RevoluteJointDef.prototype.enableLimit=!1,box2d.b2RevoluteJointDef.prototype.lowerAngle=0,box2d.b2RevoluteJointDef.prototype.upperAngle=0,box2d.b2RevoluteJointDef.prototype.enableMotor=!1,box2d.b2RevoluteJointDef.prototype.motorSpeed=0,box2d.b2RevoluteJointDef.prototype.maxMotorTorque=0,box2d.b2RevoluteJointDef.prototype.Initialize=function(a,b,c){this.bodyA=a,this.bodyB=b,this.bodyA.GetLocalPoint(c,this.localAnchorA),this.bodyB.GetLocalPoint(c,this.localAnchorB),this.referenceAngle=this.bodyB.GetAngleRadians()-this.bodyA.GetAngleRadians()},box2d.b2RevoluteJoint=function(a){goog.base(this,a),this.m_localAnchorA=new box2d.b2Vec2,this.m_localAnchorB=new box2d.b2Vec2,this.m_impulse=new box2d.b2Vec3,this.m_rA=new box2d.b2Vec2,this.m_rB=new box2d.b2Vec2,this.m_localCenterA=new box2d.b2Vec2,this.m_localCenterB=new box2d.b2Vec2,this.m_mass=new box2d.b2Mat33,this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_lalcA=new box2d.b2Vec2,this.m_lalcB=new box2d.b2Vec2,this.m_K=new box2d.b2Mat22,this.m_localAnchorA.Copy(a.localAnchorA),this.m_localAnchorB.Copy(a.localAnchorB),this.m_referenceAngle=a.referenceAngle,this.m_impulse.SetZero(),this.m_motorImpulse=0,this.m_lowerAngle=a.lowerAngle,this.m_upperAngle=a.upperAngle,this.m_maxMotorTorque=a.maxMotorTorque,this.m_motorSpeed=a.motorSpeed,this.m_enableLimit=a.enableLimit,this.m_enableMotor=a.enableMotor,this.m_limitState=box2d.b2LimitState.e_inactiveLimit},goog.inherits(box2d.b2RevoluteJoint,box2d.b2Joint),box2d.b2RevoluteJoint.prototype.m_localAnchorA=null,box2d.b2RevoluteJoint.prototype.m_localAnchorB=null,box2d.b2RevoluteJoint.prototype.m_impulse=null,box2d.b2RevoluteJoint.prototype.m_motorImpulse=0,box2d.b2RevoluteJoint.prototype.m_enableMotor=!1,box2d.b2RevoluteJoint.prototype.m_maxMotorTorque=0,box2d.b2RevoluteJoint.prototype.m_motorSpeed=0,box2d.b2RevoluteJoint.prototype.m_enableLimit=!1,box2d.b2RevoluteJoint.prototype.m_referenceAngle=0,box2d.b2RevoluteJoint.prototype.m_lowerAngle=0,box2d.b2RevoluteJoint.prototype.m_upperAngle=0,box2d.b2RevoluteJoint.prototype.m_indexA=0,box2d.b2RevoluteJoint.prototype.m_indexB=0,box2d.b2RevoluteJoint.prototype.m_rA=null,box2d.b2RevoluteJoint.prototype.m_rB=null,box2d.b2RevoluteJoint.prototype.m_localCenterA=null,box2d.b2RevoluteJoint.prototype.m_localCenterB=null,box2d.b2RevoluteJoint.prototype.m_invMassA=0,box2d.b2RevoluteJoint.prototype.m_invMassB=0,box2d.b2RevoluteJoint.prototype.m_invIA=0,box2d.b2RevoluteJoint.prototype.m_invIB=0,box2d.b2RevoluteJoint.prototype.m_mass=null,box2d.b2RevoluteJoint.prototype.m_motorMass=0,box2d.b2RevoluteJoint.prototype.m_limitState=box2d.b2LimitState.e_inactiveLimit,box2d.b2RevoluteJoint.prototype.m_qA=null,box2d.b2RevoluteJoint.prototype.m_qB=null,box2d.b2RevoluteJoint.prototype.m_lalcA=null,box2d.b2RevoluteJoint.prototype.m_lalcB=null,box2d.b2RevoluteJoint.prototype.m_K=null,box2d.b2RevoluteJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassA=this.m_bodyA.m_invMass,this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIA=this.m_bodyA.m_invI,this.m_invIB=this.m_bodyB.m_invI;var b=a.positions[this.m_indexA].a,c=a.velocities[this.m_indexA].v,d=a.velocities[this.m_indexA].w,e=a.positions[this.m_indexB].a,f=a.velocities[this.m_indexB].v,g=a.velocities[this.m_indexB].w,h=this.m_qA.SetAngleRadians(b),i=this.m_qB.SetAngleRadians(e);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA),box2d.b2MulRV(h,this.m_lalcA,this.m_rA),box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),box2d.b2MulRV(i,this.m_lalcB,this.m_rB);var j=this.m_invMassA,k=this.m_invMassB,l=this.m_invIA,m=this.m_invIB,n=l+m===0;if(this.m_mass.ex.x=j+k+this.m_rA.y*this.m_rA.y*l+this.m_rB.y*this.m_rB.y*m,this.m_mass.ey.x=-this.m_rA.y*this.m_rA.x*l-this.m_rB.y*this.m_rB.x*m,this.m_mass.ez.x=-this.m_rA.y*l-this.m_rB.y*m,this.m_mass.ex.y=this.m_mass.ey.x,this.m_mass.ey.y=j+k+this.m_rA.x*this.m_rA.x*l+this.m_rB.x*this.m_rB.x*m,this.m_mass.ez.y=this.m_rA.x*l+this.m_rB.x*m,this.m_mass.ex.z=this.m_mass.ez.x,this.m_mass.ey.z=this.m_mass.ez.y,this.m_mass.ez.z=l+m,this.m_motorMass=l+m,this.m_motorMass>0&&(this.m_motorMass=1/this.m_motorMass),(!1===this.m_enableMotor||n)&&(this.m_motorImpulse=0),this.m_enableLimit&&!1===n){var o=e-b-this.m_referenceAngle;box2d.b2Abs(this.m_upperAngle-this.m_lowerAngle)<2*box2d.b2_angularSlop?this.m_limitState=box2d.b2LimitState.e_equalLimits:o<=this.m_lowerAngle?(this.m_limitState!==box2d.b2LimitState.e_atLowerLimit&&(this.m_impulse.z=0),this.m_limitState=box2d.b2LimitState.e_atLowerLimit):o>=this.m_upperAngle?(this.m_limitState!==box2d.b2LimitState.e_atUpperLimit&&(this.m_impulse.z=0),this.m_limitState=box2d.b2LimitState.e_atUpperLimit):(this.m_limitState=box2d.b2LimitState.e_inactiveLimit,this.m_impulse.z=0)}else this.m_limitState=box2d.b2LimitState.e_inactiveLimit;if(a.step.warmStarting){this.m_impulse.SelfMul(a.step.dtRatio),this.m_motorImpulse*=a.step.dtRatio;var p=box2d.b2RevoluteJoint.prototype.InitVelocityConstraints.s_P.SetXY(this.m_impulse.x,this.m_impulse.y);c.SelfMulSub(j,p),d-=l*(box2d.b2CrossVV(this.m_rA,p)+this.m_motorImpulse+this.m_impulse.z),f.SelfMulAdd(k,p),g+=m*(box2d.b2CrossVV(this.m_rB,p)+this.m_motorImpulse+this.m_impulse.z)}else this.m_impulse.SetZero(),this.m_motorImpulse=0;a.velocities[this.m_indexA].w=d,a.velocities[this.m_indexB].w=g},box2d.b2RevoluteJoint.prototype.InitVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexA].v,c=a.velocities[this.m_indexA].w,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=this.m_invMassA,g=this.m_invMassB,h=this.m_invIA,i=this.m_invIB,j=h+i===0;if(this.m_enableMotor&&this.m_limitState!==box2d.b2LimitState.e_equalLimits&&!1===j){var k=e-c-this.m_motorSpeed,l=-this.m_motorMass*k,m=this.m_motorImpulse,n=a.step.dt*this.m_maxMotorTorque;this.m_motorImpulse=box2d.b2Clamp(this.m_motorImpulse+l,-n,n),l=this.m_motorImpulse-m,c-=h*l,e+=i*l}if(this.m_enableLimit&&this.m_limitState!==box2d.b2LimitState.e_inactiveLimit&&!1===j){var o=box2d.b2SubVV(box2d.b2AddVCrossSV(d,e,this.m_rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(b,c,this.m_rA,box2d.b2Vec2.s_t1),box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_Cdot1),p=e-c,l=this.m_mass.Solve33(o.x,o.y,p,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_impulse3).SelfNeg();if(this.m_limitState===box2d.b2LimitState.e_equalLimits)this.m_impulse.SelfAdd(l);else if(this.m_limitState===box2d.b2LimitState.e_atLowerLimit){var q=this.m_impulse.z+l.z;if(q<0){var r=-o.x+this.m_impulse.z*this.m_mass.ez.x,s=-o.y+this.m_impulse.z*this.m_mass.ez.y,t=this.m_mass.Solve22(r,s,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_reduced);l.x=t.x,l.y=t.y,l.z=-this.m_impulse.z,this.m_impulse.x+=t.x,this.m_impulse.y+=t.y,this.m_impulse.z=0}else this.m_impulse.SelfAdd(l)}else if(this.m_limitState===box2d.b2LimitState.e_atUpperLimit){var q=this.m_impulse.z+l.z;if(q>0){var r=-o.x+this.m_impulse.z*this.m_mass.ez.x,s=-o.y+this.m_impulse.z*this.m_mass.ez.y,t=this.m_mass.Solve22(r,s,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_reduced);l.x=t.x,l.y=t.y,l.z=-this.m_impulse.z,this.m_impulse.x+=t.x,this.m_impulse.y+=t.y,this.m_impulse.z=0}else this.m_impulse.SelfAdd(l)}var u=box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_P.SetXY(l.x,l.y);b.SelfMulSub(f,u),c-=h*(box2d.b2CrossVV(this.m_rA,u)+l.z),d.SelfMulAdd(g,u),e+=i*(box2d.b2CrossVV(this.m_rB,u)+l.z)}else{var k=box2d.b2SubVV(box2d.b2AddVCrossSV(d,e,this.m_rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(b,c,this.m_rA,box2d.b2Vec2.s_t1),box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_Cdot),l=this.m_mass.Solve22(-k.x,-k.y,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_impulse2);this.m_impulse.x+=l.x,this.m_impulse.y+=l.y,b.SelfMulSub(f,l),c-=h*box2d.b2CrossVV(this.m_rA,l),d.SelfMulAdd(g,l),e+=i*box2d.b2CrossVV(this.m_rB,l)}a.velocities[this.m_indexA].w=c,a.velocities[this.m_indexB].w=e},box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_Cdot=new box2d.b2Vec2,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_Cdot1=new box2d.b2Vec2,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_impulse3=new box2d.b2Vec3,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_reduced=new box2d.b2Vec2,box2d.b2RevoluteJoint.prototype.SolveVelocityConstraints.s_impulse2=new box2d.b2Vec2,box2d.b2RevoluteJoint.prototype.SolvePositionConstraints=function(a){var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.positions[this.m_indexB].c,e=a.positions[this.m_indexB].a,f=this.m_qA.SetAngleRadians(c),g=this.m_qB.SetAngleRadians(e),h=0,i=0,j=this.m_invIA+this.m_invIB===0;if(this.m_enableLimit&&this.m_limitState!==box2d.b2LimitState.e_inactiveLimit&&!1===j){var k=e-c-this.m_referenceAngle,l=0;if(this.m_limitState===box2d.b2LimitState.e_equalLimits){var m=box2d.b2Clamp(k-this.m_lowerAngle,-box2d.b2_maxAngularCorrection,box2d.b2_maxAngularCorrection);l=-this.m_motorMass*m,h=box2d.b2Abs(m)}else if(this.m_limitState===box2d.b2LimitState.e_atLowerLimit){var m=k-this.m_lowerAngle;h=-m,m=box2d.b2Clamp(m+box2d.b2_angularSlop,-box2d.b2_maxAngularCorrection,0),l=-this.m_motorMass*m}else if(this.m_limitState===box2d.b2LimitState.e_atUpperLimit){var m=k-this.m_upperAngle;h=m,m=box2d.b2Clamp(m-box2d.b2_angularSlop,0,box2d.b2_maxAngularCorrection),l=-this.m_motorMass*m}c-=this.m_invIA*l,e+=this.m_invIB*l}f.SetAngleRadians(c),g.SetAngleRadians(e),box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var n=box2d.b2MulRV(f,this.m_lalcA,this.m_rA);box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var o=box2d.b2MulRV(g,this.m_lalcB,this.m_rB),m=box2d.b2SubVV(box2d.b2AddVV(d,o,box2d.b2Vec2.s_t0),box2d.b2AddVV(b,n,box2d.b2Vec2.s_t1),box2d.b2RevoluteJoint.prototype.SolvePositionConstraints.s_C);i=m.GetLength();var p=this.m_invMassA,q=this.m_invMassB,r=this.m_invIA,s=this.m_invIB,t=this.m_K;t.ex.x=p+q+r*n.y*n.y+s*o.y*o.y,t.ex.y=-r*n.x*n.y-s*o.x*o.y,t.ey.x=t.ex.y,t.ey.y=p+q+r*n.x*n.x+s*o.x*o.x;var u=t.Solve(m.x,m.y,box2d.b2RevoluteJoint.prototype.SolvePositionConstraints.s_impulse).SelfNeg();return b.SelfMulSub(p,u),c-=r*box2d.b2CrossVV(n,u),d.SelfMulAdd(q,u),e+=s*box2d.b2CrossVV(o,u),a.positions[this.m_indexA].a=c,a.positions[this.m_indexB].a=e,i<=box2d.b2_linearSlop&&h<=box2d.b2_angularSlop},box2d.b2RevoluteJoint.prototype.SolvePositionConstraints.s_C=new box2d.b2Vec2,box2d.b2RevoluteJoint.prototype.SolvePositionConstraints.s_impulse=new box2d.b2Vec2,box2d.b2RevoluteJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,a)},box2d.b2RevoluteJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2RevoluteJoint.prototype.GetReactionForce=function(a,b){return b.SetXY(a*this.m_impulse.x,a*this.m_impulse.y)},box2d.b2RevoluteJoint.prototype.GetReactionTorque=function(a){return a*this.m_impulse.z},box2d.b2RevoluteJoint.prototype.GetLocalAnchorA=function(a){return a.Copy(this.m_localAnchorA)},box2d.b2RevoluteJoint.prototype.GetLocalAnchorB=function(a){return a.Copy(this.m_localAnchorB)},box2d.b2RevoluteJoint.prototype.GetReferenceAngle=function(){return this.m_referenceAngle},box2d.b2RevoluteJoint.prototype.GetJointAngleRadians=function(){return this.m_bodyB.m_sweep.a-this.m_bodyA.m_sweep.a-this.m_referenceAngle},box2d.b2RevoluteJoint.prototype.GetJointSpeed=function(){return this.m_bodyB.m_angularVelocity-this.m_bodyA.m_angularVelocity},box2d.b2RevoluteJoint.prototype.IsMotorEnabled=function(){return this.m_enableMotor},box2d.b2RevoluteJoint.prototype.EnableMotor=function(a){this.m_enableMotor!==a&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_enableMotor=a)},box2d.b2RevoluteJoint.prototype.GetMotorTorque=function(a){return a*this.m_motorImpulse},box2d.b2RevoluteJoint.prototype.GetMotorSpeed=function(){return this.m_motorSpeed},box2d.b2RevoluteJoint.prototype.SetMaxMotorTorque=function(a){this.m_maxMotorTorque=a},box2d.b2RevoluteJoint.prototype.GetMaxMotorTorque=function(){return this.m_maxMotorTorque},box2d.b2RevoluteJoint.prototype.IsLimitEnabled=function(){return this.m_enableLimit},box2d.b2RevoluteJoint.prototype.EnableLimit=function(a){a!==this.m_enableLimit&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_enableLimit=a,this.m_impulse.z=0)},box2d.b2RevoluteJoint.prototype.GetLowerLimit=function(){return this.m_lowerAngle},box2d.b2RevoluteJoint.prototype.GetUpperLimit=function(){return this.m_upperAngle},box2d.b2RevoluteJoint.prototype.SetLimits=function(a,b){a===this.m_lowerAngle&&b===this.m_upperAngle||(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_impulse.z=0,this.m_lowerAngle=a,this.m_upperAngle=b)},box2d.b2RevoluteJoint.prototype.SetMotorSpeed=function(a){this.m_motorSpeed!==a&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_motorSpeed=a)},box2d.b2RevoluteJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex;box2d.b2Log(" /*box2d.b2RevoluteJointDef*/ var jd = new box2d.b2RevoluteJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.localAnchorA.SetXY(%.15f, %.15f);\n",this.m_localAnchorA.x,this.m_localAnchorA.y),box2d.b2Log(" jd.localAnchorB.SetXY(%.15f, %.15f);\n",this.m_localAnchorB.x,this.m_localAnchorB.y),box2d.b2Log(" jd.referenceAngle = %.15f;\n",this.m_referenceAngle),box2d.b2Log(" jd.enableLimit = %s;\n",this.m_enableLimit?"true":"false"),box2d.b2Log(" jd.lowerAngle = %.15f;\n",this.m_lowerAngle),box2d.b2Log(" jd.upperAngle = %.15f;\n",this.m_upperAngle),box2d.b2Log(" jd.enableMotor = %s;\n",this.m_enableMotor?"true":"false"),box2d.b2Log(" jd.motorSpeed = %.15f;\n",this.m_motorSpeed),box2d.b2Log(" jd.maxMotorTorque = %.15f;\n",this.m_maxMotorTorque),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},goog.provide("box2d.b2PrismaticJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),box2d.b2PrismaticJointDef=function(){goog.base(this,box2d.b2JointType.e_prismaticJoint),this.localAnchorA=new box2d.b2Vec2,this.localAnchorB=new box2d.b2Vec2,this.localAxisA=new box2d.b2Vec2(1,0)},goog.inherits(box2d.b2PrismaticJointDef,box2d.b2JointDef),box2d.b2PrismaticJointDef.prototype.localAnchorA=null,box2d.b2PrismaticJointDef.prototype.localAnchorB=null,box2d.b2PrismaticJointDef.prototype.localAxisA=null,box2d.b2PrismaticJointDef.prototype.referenceAngle=0,box2d.b2PrismaticJointDef.prototype.enableLimit=!1,box2d.b2PrismaticJointDef.prototype.lowerTranslation=0,box2d.b2PrismaticJointDef.prototype.upperTranslation=0,box2d.b2PrismaticJointDef.prototype.enableMotor=!1,box2d.b2PrismaticJointDef.prototype.maxMotorForce=0,box2d.b2PrismaticJointDef.prototype.motorSpeed=0,box2d.b2PrismaticJointDef.prototype.Initialize=function(a,b,c,d){this.bodyA=a,this.bodyB=b,this.bodyA.GetLocalPoint(c,this.localAnchorA),this.bodyB.GetLocalPoint(c,this.localAnchorB),this.bodyA.GetLocalVector(d,this.localAxisA),this.referenceAngle=this.bodyB.GetAngleRadians()-this.bodyA.GetAngleRadians()},box2d.b2PrismaticJoint=function(a){goog.base(this,a),this.m_localAnchorA=a.localAnchorA.Clone(),this.m_localAnchorB=a.localAnchorB.Clone(),this.m_localXAxisA=a.localAxisA.Clone().SelfNormalize(),this.m_localYAxisA=box2d.b2CrossOneV(this.m_localXAxisA,new box2d.b2Vec2),this.m_referenceAngle=a.referenceAngle,this.m_impulse=new box2d.b2Vec3(0,0,0),this.m_lowerTranslation=a.lowerTranslation,this.m_upperTranslation=a.upperTranslation,this.m_maxMotorForce=a.maxMotorForce,this.m_motorSpeed=a.motorSpeed,this.m_enableLimit=a.enableLimit,this.m_enableMotor=a.enableMotor,this.m_localCenterA=new box2d.b2Vec2,this.m_localCenterB=new box2d.b2Vec2,this.m_axis=new box2d.b2Vec2(0,0),this.m_perp=new box2d.b2Vec2(0,0),this.m_K=new box2d.b2Mat33,this.m_K3=new box2d.b2Mat33,this.m_K2=new box2d.b2Mat22,this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_lalcA=new box2d.b2Vec2,this.m_lalcB=new box2d.b2Vec2,this.m_rA=new box2d.b2Vec2,this.m_rB=new box2d.b2Vec2},goog.inherits(box2d.b2PrismaticJoint,box2d.b2Joint),box2d.b2PrismaticJoint.prototype.m_localAnchorA=null,box2d.b2PrismaticJoint.prototype.m_localAnchorB=null,box2d.b2PrismaticJoint.prototype.m_localXAxisA=null,box2d.b2PrismaticJoint.prototype.m_localYAxisA=null,box2d.b2PrismaticJoint.prototype.m_referenceAngle=0,box2d.b2PrismaticJoint.prototype.m_impulse=null,box2d.b2PrismaticJoint.prototype.m_motorImpulse=0,box2d.b2PrismaticJoint.prototype.m_lowerTranslation=0,box2d.b2PrismaticJoint.prototype.m_upperTranslation=0,box2d.b2PrismaticJoint.prototype.m_maxMotorForce=0,box2d.b2PrismaticJoint.prototype.m_motorSpeed=0,box2d.b2PrismaticJoint.prototype.m_enableLimit=!1,box2d.b2PrismaticJoint.prototype.m_enableMotor=!1,box2d.b2PrismaticJoint.prototype.m_limitState=box2d.b2LimitState.e_inactiveLimit,box2d.b2PrismaticJoint.prototype.m_indexA=0,box2d.b2PrismaticJoint.prototype.m_indexB=0,box2d.b2PrismaticJoint.prototype.m_localCenterA=null,box2d.b2PrismaticJoint.prototype.m_localCenterB=null,box2d.b2PrismaticJoint.prototype.m_invMassA=0,box2d.b2PrismaticJoint.prototype.m_invMassB=0,box2d.b2PrismaticJoint.prototype.m_invIA=0,box2d.b2PrismaticJoint.prototype.m_invIB=0,box2d.b2PrismaticJoint.prototype.m_axis=null,box2d.b2PrismaticJoint.prototype.m_perp=null,box2d.b2PrismaticJoint.prototype.m_s1=0,box2d.b2PrismaticJoint.prototype.m_s2=0,box2d.b2PrismaticJoint.prototype.m_a1=0,box2d.b2PrismaticJoint.prototype.m_a2=0,box2d.b2PrismaticJoint.prototype.m_K=null,box2d.b2PrismaticJoint.prototype.m_K3=null,box2d.b2PrismaticJoint.prototype.m_K2=null,box2d.b2PrismaticJoint.prototype.m_motorMass=0,box2d.b2PrismaticJoint.prototype.m_qA=null,box2d.b2PrismaticJoint.prototype.m_qB=null,box2d.b2PrismaticJoint.prototype.m_lalcA=null,box2d.b2PrismaticJoint.prototype.m_lalcB=null,box2d.b2PrismaticJoint.prototype.m_rA=null,box2d.b2PrismaticJoint.prototype.m_rB=null,box2d.b2PrismaticJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassA=this.m_bodyA.m_invMass,this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIA=this.m_bodyA.m_invI,this.m_invIB=this.m_bodyB.m_invI;var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.velocities[this.m_indexA].v,e=a.velocities[this.m_indexA].w,f=a.positions[this.m_indexB].c,g=a.positions[this.m_indexB].a,h=a.velocities[this.m_indexB].v,i=a.velocities[this.m_indexB].w,j=this.m_qA.SetAngleRadians(c),k=this.m_qB.SetAngleRadians(g);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var l=box2d.b2MulRV(j,this.m_lalcA,this.m_rA);box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var m=box2d.b2MulRV(k,this.m_lalcB,this.m_rB),n=box2d.b2AddVV(box2d.b2SubVV(f,b,box2d.b2Vec2.s_t0),box2d.b2SubVV(m,l,box2d.b2Vec2.s_t1),box2d.b2PrismaticJoint.prototype.InitVelocityConstraints.s_d),o=this.m_invMassA,p=this.m_invMassB,q=this.m_invIA,r=this.m_invIB;if(box2d.b2MulRV(j,this.m_localXAxisA,this.m_axis),this.m_a1=box2d.b2CrossVV(box2d.b2AddVV(n,l,box2d.b2Vec2.s_t0),this.m_axis),this.m_a2=box2d.b2CrossVV(m,this.m_axis),this.m_motorMass=o+p+q*this.m_a1*this.m_a1+r*this.m_a2*this.m_a2,this.m_motorMass>0&&(this.m_motorMass=1/this.m_motorMass),box2d.b2MulRV(j,this.m_localYAxisA,this.m_perp),this.m_s1=box2d.b2CrossVV(box2d.b2AddVV(n,l,box2d.b2Vec2.s_t0),this.m_perp),this.m_s2=box2d.b2CrossVV(m,this.m_perp),this.m_K.ex.x=o+p+q*this.m_s1*this.m_s1+r*this.m_s2*this.m_s2,this.m_K.ex.y=q*this.m_s1+r*this.m_s2,this.m_K.ex.z=q*this.m_s1*this.m_a1+r*this.m_s2*this.m_a2,this.m_K.ey.x=this.m_K.ex.y,this.m_K.ey.y=q+r,0===this.m_K.ey.y&&(this.m_K.ey.y=1),this.m_K.ey.z=q*this.m_a1+r*this.m_a2,this.m_K.ez.x=this.m_K.ex.z,this.m_K.ez.y=this.m_K.ey.z,this.m_K.ez.z=o+p+q*this.m_a1*this.m_a1+r*this.m_a2*this.m_a2,this.m_enableLimit){var s=box2d.b2DotVV(this.m_axis,n);box2d.b2Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*box2d.b2_linearSlop?this.m_limitState=box2d.b2LimitState.e_equalLimits:s<=this.m_lowerTranslation?this.m_limitState!==box2d.b2LimitState.e_atLowerLimit&&(this.m_limitState=box2d.b2LimitState.e_atLowerLimit,this.m_impulse.z=0):s>=this.m_upperTranslation?this.m_limitState!==box2d.b2LimitState.e_atUpperLimit&&(this.m_limitState=box2d.b2LimitState.e_atUpperLimit,this.m_impulse.z=0):(this.m_limitState=box2d.b2LimitState.e_inactiveLimit,this.m_impulse.z=0)}else this.m_limitState=box2d.b2LimitState.e_inactiveLimit,this.m_impulse.z=0;if(!1===this.m_enableMotor&&(this.m_motorImpulse=0),a.step.warmStarting){this.m_impulse.SelfMul(a.step.dtRatio),this.m_motorImpulse*=a.step.dtRatio
|
||
;var t=box2d.b2AddVV(box2d.b2MulSV(this.m_impulse.x,this.m_perp,box2d.b2Vec2.s_t0),box2d.b2MulSV(this.m_motorImpulse+this.m_impulse.z,this.m_axis,box2d.b2Vec2.s_t1),box2d.b2PrismaticJoint.prototype.InitVelocityConstraints.s_P),u=this.m_impulse.x*this.m_s1+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a1,v=this.m_impulse.x*this.m_s2+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a2;d.SelfMulSub(o,t),e-=q*u,h.SelfMulAdd(p,t),i+=r*v}else this.m_impulse.SetZero(),this.m_motorImpulse=0;a.velocities[this.m_indexA].w=e,a.velocities[this.m_indexB].w=i},box2d.b2PrismaticJoint.prototype.InitVelocityConstraints.s_d=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.InitVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexA].v,c=a.velocities[this.m_indexA].w,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=this.m_invMassA,g=this.m_invMassB,h=this.m_invIA,i=this.m_invIB;if(this.m_enableMotor&&this.m_limitState!==box2d.b2LimitState.e_equalLimits){var j=box2d.b2DotVV(this.m_axis,box2d.b2SubVV(d,b,box2d.b2Vec2.s_t0))+this.m_a2*e-this.m_a1*c,k=this.m_motorMass*(this.m_motorSpeed-j),l=this.m_motorImpulse,m=a.step.dt*this.m_maxMotorForce;this.m_motorImpulse=box2d.b2Clamp(this.m_motorImpulse+k,-m,m),k=this.m_motorImpulse-l;var n=box2d.b2MulSV(k,this.m_axis,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_P),o=k*this.m_a1,p=k*this.m_a2;b.SelfMulSub(f,n),c-=h*o,d.SelfMulAdd(g,n),e+=i*p}var q=box2d.b2DotVV(this.m_perp,box2d.b2SubVV(d,b,box2d.b2Vec2.s_t0))+this.m_s2*e-this.m_s1*c,r=e-c;if(this.m_enableLimit&&this.m_limitState!==box2d.b2LimitState.e_inactiveLimit){var s=box2d.b2DotVV(this.m_axis,box2d.b2SubVV(d,b,box2d.b2Vec2.s_t0))+this.m_a2*e-this.m_a1*c,t=box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_f1.Copy(this.m_impulse),u=this.m_K.Solve33(-q,-r,-s,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_df3);this.m_impulse.SelfAdd(u),this.m_limitState===box2d.b2LimitState.e_atLowerLimit?this.m_impulse.z=box2d.b2Max(this.m_impulse.z,0):this.m_limitState===box2d.b2LimitState.e_atUpperLimit&&(this.m_impulse.z=box2d.b2Min(this.m_impulse.z,0));var v=-q-(this.m_impulse.z-t.z)*this.m_K.ez.x,w=-r-(this.m_impulse.z-t.z)*this.m_K.ez.y,x=this.m_K.Solve22(v,w,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_f2r);x.x+=t.x,x.y+=t.y,this.m_impulse.x=x.x,this.m_impulse.y=x.y,u.x=this.m_impulse.x-t.x,u.y=this.m_impulse.y-t.y,u.z=this.m_impulse.z-t.z;var n=box2d.b2AddVV(box2d.b2MulSV(u.x,this.m_perp,box2d.b2Vec2.s_t0),box2d.b2MulSV(u.z,this.m_axis,box2d.b2Vec2.s_t1),box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_P),o=u.x*this.m_s1+u.y+u.z*this.m_a1,p=u.x*this.m_s2+u.y+u.z*this.m_a2;b.SelfMulSub(f,n),c-=h*o,d.SelfMulAdd(g,n),e+=i*p}else{var u=this.m_K.Solve22(-q,-r,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_df2);this.m_impulse.x+=u.x,this.m_impulse.y+=u.y;var n=box2d.b2MulSV(u.x,this.m_perp,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_P),o=u.x*this.m_s1+u.y,p=u.x*this.m_s2+u.y;b.SelfMulSub(f,n),c-=h*o,d.SelfMulAdd(g,n),e+=i*p}a.velocities[this.m_indexA].w=c,a.velocities[this.m_indexB].w=e},box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_f2r=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_f1=new box2d.b2Vec3,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_df3=new box2d.b2Vec3,box2d.b2PrismaticJoint.prototype.SolveVelocityConstraints.s_df2=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.SolvePositionConstraints=function(a){var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.positions[this.m_indexB].c,e=a.positions[this.m_indexB].a,f=this.m_qA.SetAngleRadians(c),g=this.m_qB.SetAngleRadians(e),h=this.m_invMassA,i=this.m_invMassB,j=this.m_invIA,k=this.m_invIB,l=box2d.b2MulRV(f,this.m_lalcA,this.m_rA),m=box2d.b2MulRV(g,this.m_lalcB,this.m_rB),n=box2d.b2SubVV(box2d.b2AddVV(d,m,box2d.b2Vec2.s_t0),box2d.b2AddVV(b,l,box2d.b2Vec2.s_t1),box2d.b2PrismaticJoint.prototype.SolvePositionConstraints.s_d),o=box2d.b2MulRV(f,this.m_localXAxisA,this.m_axis),p=box2d.b2CrossVV(box2d.b2AddVV(n,l,box2d.b2Vec2.s_t0),o),q=box2d.b2CrossVV(m,o),r=box2d.b2MulRV(f,this.m_localYAxisA,this.m_perp),s=box2d.b2CrossVV(box2d.b2AddVV(n,l,box2d.b2Vec2.s_t0),r),t=box2d.b2CrossVV(m,r),u=box2d.b2PrismaticJoint.prototype.SolvePositionConstraints.s_impulse,v=box2d.b2DotVV(r,n),w=e-c-this.m_referenceAngle,x=box2d.b2Abs(v),y=box2d.b2Abs(w),z=!1,A=0;if(this.m_enableLimit){var B=box2d.b2DotVV(o,n);box2d.b2Abs(this.m_upperTranslation-this.m_lowerTranslation)<2*box2d.b2_linearSlop?(A=box2d.b2Clamp(B,-box2d.b2_maxLinearCorrection,box2d.b2_maxLinearCorrection),x=box2d.b2Max(x,box2d.b2Abs(B)),z=!0):B<=this.m_lowerTranslation?(A=box2d.b2Clamp(B-this.m_lowerTranslation+box2d.b2_linearSlop,-box2d.b2_maxLinearCorrection,0),x=box2d.b2Max(x,this.m_lowerTranslation-B),z=!0):B>=this.m_upperTranslation&&(A=box2d.b2Clamp(B-this.m_upperTranslation-box2d.b2_linearSlop,0,box2d.b2_maxLinearCorrection),x=box2d.b2Max(x,B-this.m_upperTranslation),z=!0)}if(z){var C=h+i+j*s*s+k*t*t,D=j*s+k*t,E=j*s*p+k*t*q,F=j+k;0===F&&(F=1);var G=j*p+k*q,H=h+i+j*p*p+k*q*q,I=this.m_K3;I.ex.SetXYZ(C,D,E),I.ey.SetXYZ(D,F,G),I.ez.SetXYZ(E,G,H),u=I.Solve33(-v,-w,-A,u)}else{var C=h+i+j*s*s+k*t*t,D=j*s+k*t,F=j+k;0===F&&(F=1);var J=this.m_K2;J.ex.SetXY(C,D),J.ey.SetXY(D,F);var K=J.Solve(-v,-w,box2d.b2PrismaticJoint.prototype.SolvePositionConstraints.s_impulse1);u.x=K.x,u.y=K.y,u.z=0}var L=box2d.b2AddVV(box2d.b2MulSV(u.x,r,box2d.b2Vec2.s_t0),box2d.b2MulSV(u.z,o,box2d.b2Vec2.s_t1),box2d.b2PrismaticJoint.prototype.SolvePositionConstraints.s_P),M=u.x*s+u.y+u.z*p,N=u.x*t+u.y+u.z*q;return b.SelfMulSub(h,L),c-=j*M,d.SelfMulAdd(i,L),e+=k*N,a.positions[this.m_indexA].a=c,a.positions[this.m_indexB].a=e,x<=box2d.b2_linearSlop&&y<=box2d.b2_angularSlop},box2d.b2PrismaticJoint.prototype.SolvePositionConstraints.s_d=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.SolvePositionConstraints.s_impulse=new box2d.b2Vec3,box2d.b2PrismaticJoint.prototype.SolvePositionConstraints.s_impulse1=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.SolvePositionConstraints.s_P=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,a)},box2d.b2PrismaticJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2PrismaticJoint.prototype.GetReactionForce=function(a,b){return b.SetXY(a*(this.m_impulse.x*this.m_perp.x+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.x),a*(this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_axis.y))},box2d.b2PrismaticJoint.prototype.GetReactionTorque=function(a){return a*this.m_impulse.y},box2d.b2PrismaticJoint.prototype.GetLocalAnchorA=function(a){return a.Copy(this.m_localAnchorA)},box2d.b2PrismaticJoint.prototype.GetLocalAnchorB=function(a){return a.Copy(this.m_localAnchorB)},box2d.b2PrismaticJoint.prototype.GetLocalAxisA=function(a){return a.Copy(this.m_localXAxisA)},box2d.b2PrismaticJoint.prototype.GetReferenceAngle=function(){return this.m_referenceAngle},box2d.b2PrismaticJoint.prototype.GetJointTranslation=function(){var a=this.m_bodyA.GetWorldPoint(this.m_localAnchorA,box2d.b2PrismaticJoint.prototype.GetJointTranslation.s_pA),b=this.m_bodyB.GetWorldPoint(this.m_localAnchorB,box2d.b2PrismaticJoint.prototype.GetJointTranslation.s_pB),c=box2d.b2SubVV(b,a,box2d.b2PrismaticJoint.prototype.GetJointTranslation.s_d),d=this.m_bodyA.GetWorldVector(this.m_localXAxisA,box2d.b2PrismaticJoint.prototype.GetJointTranslation.s_axis);return box2d.b2DotVV(c,d)};box2d.b2PrismaticJoint.prototype.GetJointTranslation.s_pA=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.GetJointTranslation.s_pB=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.GetJointTranslation.s_d=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.GetJointTranslation.s_axis=new box2d.b2Vec2,box2d.b2PrismaticJoint.prototype.GetJointSpeed=function(){var a=this.m_bodyA,b=this.m_bodyB;box2d.b2SubVV(this.m_localAnchorA,a.m_sweep.localCenter,this.m_lalcA);var c=box2d.b2MulRV(a.m_xf.q,this.m_lalcA,this.m_rA);box2d.b2SubVV(this.m_localAnchorB,b.m_sweep.localCenter,this.m_lalcB);var d=box2d.b2MulRV(b.m_xf.q,this.m_lalcB,this.m_rB),e=box2d.b2AddVV(a.m_sweep.c,c,box2d.b2Vec2.s_t0),f=box2d.b2AddVV(b.m_sweep.c,d,box2d.b2Vec2.s_t1),g=box2d.b2SubVV(f,e,box2d.b2Vec2.s_t2),h=a.GetWorldVector(this.m_localXAxisA,this.m_axis),i=a.m_linearVelocity,j=b.m_linearVelocity,k=a.m_angularVelocity,l=b.m_angularVelocity;return box2d.b2DotVV(g,box2d.b2CrossSV(k,h,box2d.b2Vec2.s_t0))+box2d.b2DotVV(h,box2d.b2SubVV(box2d.b2AddVCrossSV(j,l,d,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(i,k,c,box2d.b2Vec2.s_t1),box2d.b2Vec2.s_t0))},box2d.b2PrismaticJoint.prototype.IsLimitEnabled=function(){return this.m_enableLimit},box2d.b2PrismaticJoint.prototype.EnableLimit=function(a){a!==this.m_enableLimit&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_enableLimit=a,this.m_impulse.z=0)},box2d.b2PrismaticJoint.prototype.GetLowerLimit=function(){return this.m_lowerTranslation},box2d.b2PrismaticJoint.prototype.GetUpperLimit=function(){return this.m_upperTranslation},box2d.b2PrismaticJoint.prototype.SetLimits=function(a,b){a===this.m_lowerTranslation&&b===this.m_upperTranslation||(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_lowerTranslation=a,this.m_upperTranslation=b,this.m_impulse.z=0)},box2d.b2PrismaticJoint.prototype.IsMotorEnabled=function(){return this.m_enableMotor},box2d.b2PrismaticJoint.prototype.EnableMotor=function(a){this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_enableMotor=a},box2d.b2PrismaticJoint.prototype.SetMotorSpeed=function(a){this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_motorSpeed=a},box2d.b2PrismaticJoint.prototype.GetMotorSpeed=function(){return this.m_motorSpeed},box2d.b2PrismaticJoint.prototype.SetMaxMotorForce=function(a){this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_maxMotorForce=a},box2d.b2PrismaticJoint.prototype.GetMaxMotorForce=function(){return this.m_maxMotorForce},box2d.b2PrismaticJoint.prototype.GetMotorForce=function(a){return a*this.m_motorImpulse},box2d.b2PrismaticJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex;box2d.b2Log(" /*box2d.b2PrismaticJointDef*/ var jd = new box2d.b2PrismaticJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.localAnchorA.SetXY(%.15f, %.15f);\n",this.m_localAnchorA.x,this.m_localAnchorA.y),box2d.b2Log(" jd.localAnchorB.SetXY(%.15f, %.15f);\n",this.m_localAnchorB.x,this.m_localAnchorB.y),box2d.b2Log(" jd.localAxisA.SetXY(%.15f, %.15f);\n",this.m_localXAxisA.x,this.m_localXAxisA.y),box2d.b2Log(" jd.referenceAngle = %.15f;\n",this.m_referenceAngle),box2d.b2Log(" jd.enableLimit = %s;\n",this.m_enableLimit?"true":"false"),box2d.b2Log(" jd.lowerTranslation = %.15f;\n",this.m_lowerTranslation),box2d.b2Log(" jd.upperTranslation = %.15f;\n",this.m_upperTranslation),box2d.b2Log(" jd.enableMotor = %s;\n",this.m_enableMotor?"true":"false"),box2d.b2Log(" jd.motorSpeed = %.15f;\n",this.m_motorSpeed),box2d.b2Log(" jd.maxMotorForce = %.15f;\n",this.m_maxMotorForce),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},goog.provide("box2d.b2GearJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),goog.require("box2d.b2RevoluteJoint"),goog.require("box2d.b2PrismaticJoint"),box2d.b2GearJointDef=function(){goog.base(this,box2d.b2JointType.e_gearJoint)},goog.inherits(box2d.b2GearJointDef,box2d.b2JointDef),box2d.b2GearJointDef.prototype.joint1=null,box2d.b2GearJointDef.prototype.joint2=null,box2d.b2GearJointDef.prototype.ratio=1,box2d.b2GearJoint=function(a){goog.base(this,a),this.m_joint1=a.joint1,this.m_joint2=a.joint2,this.m_localAnchorA=new box2d.b2Vec2,this.m_localAnchorB=new box2d.b2Vec2,this.m_localAnchorC=new box2d.b2Vec2,this.m_localAnchorD=new box2d.b2Vec2,this.m_localAxisC=new box2d.b2Vec2,this.m_localAxisD=new box2d.b2Vec2,this.m_lcA=new box2d.b2Vec2,this.m_lcB=new box2d.b2Vec2,this.m_lcC=new box2d.b2Vec2,this.m_lcD=new box2d.b2Vec2,this.m_JvAC=new box2d.b2Vec2,this.m_JvBD=new box2d.b2Vec2,this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_qC=new box2d.b2Rot,this.m_qD=new box2d.b2Rot,this.m_lalcA=new box2d.b2Vec2,this.m_lalcB=new box2d.b2Vec2,this.m_lalcC=new box2d.b2Vec2,this.m_lalcD=new box2d.b2Vec2,this.m_typeA=this.m_joint1.GetType(),this.m_typeB=this.m_joint2.GetType(),box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_typeA===box2d.b2JointType.e_revoluteJoint||this.m_typeA===box2d.b2JointType.e_prismaticJoint),box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_typeB===box2d.b2JointType.e_revoluteJoint||this.m_typeB===box2d.b2JointType.e_prismaticJoint);var b,c;this.m_bodyC=this.m_joint1.GetBodyA(),this.m_bodyA=this.m_joint1.GetBodyB();var d=this.m_bodyA.m_xf,e=this.m_bodyA.m_sweep.a,f=this.m_bodyC.m_xf,g=this.m_bodyC.m_sweep.a;if(this.m_typeA===box2d.b2JointType.e_revoluteJoint){var h=a.joint1;this.m_localAnchorC.Copy(h.m_localAnchorA),this.m_localAnchorA.Copy(h.m_localAnchorB),this.m_referenceAngleA=h.m_referenceAngle,this.m_localAxisC.SetZero(),b=e-g-this.m_referenceAngleA}else{var i=a.joint1;this.m_localAnchorC.Copy(i.m_localAnchorA),this.m_localAnchorA.Copy(i.m_localAnchorB),this.m_referenceAngleA=i.m_referenceAngle,this.m_localAxisC.Copy(i.m_localXAxisA);var j=this.m_localAnchorC,k=box2d.b2MulTRV(f.q,box2d.b2AddVV(box2d.b2MulRV(d.q,this.m_localAnchorA,box2d.b2Vec2.s_t0),box2d.b2SubVV(d.p,f.p,box2d.b2Vec2.s_t1),box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t0);b=box2d.b2DotVV(box2d.b2SubVV(k,j,box2d.b2Vec2.s_t0),this.m_localAxisC)}this.m_bodyD=this.m_joint2.GetBodyA(),this.m_bodyB=this.m_joint2.GetBodyB();var l=this.m_bodyB.m_xf,m=this.m_bodyB.m_sweep.a,n=this.m_bodyD.m_xf,o=this.m_bodyD.m_sweep.a;if(this.m_typeB===box2d.b2JointType.e_revoluteJoint){var h=a.joint2;this.m_localAnchorD.Copy(h.m_localAnchorA),this.m_localAnchorB.Copy(h.m_localAnchorB),this.m_referenceAngleB=h.m_referenceAngle,this.m_localAxisD.SetZero(),c=m-o-this.m_referenceAngleB}else{var i=a.joint2;this.m_localAnchorD.Copy(i.m_localAnchorA),this.m_localAnchorB.Copy(i.m_localAnchorB),this.m_referenceAngleB=i.m_referenceAngle,this.m_localAxisD.Copy(i.m_localXAxisA);var p=this.m_localAnchorD,q=box2d.b2MulTRV(n.q,box2d.b2AddVV(box2d.b2MulRV(l.q,this.m_localAnchorB,box2d.b2Vec2.s_t0),box2d.b2SubVV(l.p,n.p,box2d.b2Vec2.s_t1),box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t0);c=box2d.b2DotVV(box2d.b2SubVV(q,p,box2d.b2Vec2.s_t0),this.m_localAxisD)}this.m_ratio=a.ratio,this.m_constant=b+this.m_ratio*c,this.m_impulse=0},goog.inherits(box2d.b2GearJoint,box2d.b2Joint),box2d.b2GearJoint.prototype.m_joint1=null,box2d.b2GearJoint.prototype.m_joint2=null,box2d.b2GearJoint.prototype.m_typeA=box2d.b2JointType.e_unknownJoint,box2d.b2GearJoint.prototype.m_typeB=box2d.b2JointType.e_unknownJoint,box2d.b2GearJoint.prototype.m_bodyC=null,box2d.b2GearJoint.prototype.m_bodyD=null,box2d.b2GearJoint.prototype.m_localAnchorA=null,box2d.b2GearJoint.prototype.m_localAnchorB=null,box2d.b2GearJoint.prototype.m_localAnchorC=null,box2d.b2GearJoint.prototype.m_localAnchorD=null,box2d.b2GearJoint.prototype.m_localAxisC=null,box2d.b2GearJoint.prototype.m_localAxisD=null,box2d.b2GearJoint.prototype.m_referenceAngleA=0,box2d.b2GearJoint.prototype.m_referenceAngleB=0,box2d.b2GearJoint.prototype.m_constant=0,box2d.b2GearJoint.prototype.m_ratio=0,box2d.b2GearJoint.prototype.m_impulse=0,box2d.b2GearJoint.prototype.m_indexA=0,box2d.b2GearJoint.prototype.m_indexB=0,box2d.b2GearJoint.prototype.m_indexC=0,box2d.b2GearJoint.prototype.m_indexD=0,box2d.b2GearJoint.prototype.m_lcA=null,box2d.b2GearJoint.prototype.m_lcB=null,box2d.b2GearJoint.prototype.m_lcC=null,box2d.b2GearJoint.prototype.m_lcD=null,box2d.b2GearJoint.prototype.m_mA=0,box2d.b2GearJoint.prototype.m_mB=0,box2d.b2GearJoint.prototype.m_mC=0,box2d.b2GearJoint.prototype.m_mD=0,box2d.b2GearJoint.prototype.m_iA=0,box2d.b2GearJoint.prototype.m_iB=0,box2d.b2GearJoint.prototype.m_iC=0,box2d.b2GearJoint.prototype.m_iD=0,box2d.b2GearJoint.prototype.m_JvAC=null,box2d.b2GearJoint.prototype.m_JvBD=null,box2d.b2GearJoint.prototype.m_JwA=0,box2d.b2GearJoint.prototype.m_JwB=0,box2d.b2GearJoint.prototype.m_JwC=0,box2d.b2GearJoint.prototype.m_JwD=0,box2d.b2GearJoint.prototype.m_mass=0,box2d.b2GearJoint.prototype.m_qA=null,box2d.b2GearJoint.prototype.m_qB=null,box2d.b2GearJoint.prototype.m_qC=null,box2d.b2GearJoint.prototype.m_qD=null,box2d.b2GearJoint.prototype.m_lalcA=null,box2d.b2GearJoint.prototype.m_lalcB=null,box2d.b2GearJoint.prototype.m_lalcC=null,box2d.b2GearJoint.prototype.m_lalcD=null,box2d.b2GearJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_indexC=this.m_bodyC.m_islandIndex,this.m_indexD=this.m_bodyD.m_islandIndex,this.m_lcA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_lcB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_lcC.Copy(this.m_bodyC.m_sweep.localCenter),this.m_lcD.Copy(this.m_bodyD.m_sweep.localCenter),this.m_mA=this.m_bodyA.m_invMass,this.m_mB=this.m_bodyB.m_invMass,this.m_mC=this.m_bodyC.m_invMass,this.m_mD=this.m_bodyD.m_invMass,this.m_iA=this.m_bodyA.m_invI,this.m_iB=this.m_bodyB.m_invI,this.m_iC=this.m_bodyC.m_invI,this.m_iD=this.m_bodyD.m_invI;var b=a.positions[this.m_indexA].a,c=a.velocities[this.m_indexA].v,d=a.velocities[this.m_indexA].w,e=a.positions[this.m_indexB].a,f=a.velocities[this.m_indexB].v,g=a.velocities[this.m_indexB].w,h=a.positions[this.m_indexC].a,i=a.velocities[this.m_indexC].v,j=a.velocities[this.m_indexC].w,k=a.positions[this.m_indexD].a,l=a.velocities[this.m_indexD].v,m=a.velocities[this.m_indexD].w,n=this.m_qA.SetAngleRadians(b),o=this.m_qB.SetAngleRadians(e),p=this.m_qC.SetAngleRadians(h),q=this.m_qD.SetAngleRadians(k);if(this.m_mass=0,this.m_typeA===box2d.b2JointType.e_revoluteJoint)this.m_JvAC.SetZero(),this.m_JwA=1,this.m_JwC=1,this.m_mass+=this.m_iA+this.m_iC;else{var r=box2d.b2MulRV(p,this.m_localAxisC,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_u);box2d.b2SubVV(this.m_localAnchorC,this.m_lcC,this.m_lalcC);var s=box2d.b2MulRV(p,this.m_lalcC,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_rC);box2d.b2SubVV(this.m_localAnchorA,this.m_lcA,this.m_lalcA);var t=box2d.b2MulRV(n,this.m_lalcA,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_rA);this.m_JvAC.Copy(r),this.m_JwC=box2d.b2CrossVV(s,r),this.m_JwA=box2d.b2CrossVV(t,r),this.m_mass+=this.m_mC+this.m_mA+this.m_iC*this.m_JwC*this.m_JwC+this.m_iA*this.m_JwA*this.m_JwA}if(this.m_typeB===box2d.b2JointType.e_revoluteJoint)this.m_JvBD.SetZero(),this.m_JwB=this.m_ratio,this.m_JwD=this.m_ratio,this.m_mass+=this.m_ratio*this.m_ratio*(this.m_iB+this.m_iD);else{var r=box2d.b2MulRV(q,this.m_localAxisD,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_u);box2d.b2SubVV(this.m_localAnchorD,this.m_lcD,this.m_lalcD);var u=box2d.b2MulRV(q,this.m_lalcD,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_rD);box2d.b2SubVV(this.m_localAnchorB,this.m_lcB,this.m_lalcB);var v=box2d.b2MulRV(o,this.m_lalcB,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_rB);box2d.b2MulSV(this.m_ratio,r,this.m_JvBD),this.m_JwD=this.m_ratio*box2d.b2CrossVV(u,r),this.m_JwB=this.m_ratio*box2d.b2CrossVV(v,r),this.m_mass+=this.m_ratio*this.m_ratio*(this.m_mD+this.m_mB)+this.m_iD*this.m_JwD*this.m_JwD+this.m_iB*this.m_JwB*this.m_JwB}this.m_mass=this.m_mass>0?1/this.m_mass:0,a.step.warmStarting?(c.SelfMulAdd(this.m_mA*this.m_impulse,this.m_JvAC),d+=this.m_iA*this.m_impulse*this.m_JwA,f.SelfMulAdd(this.m_mB*this.m_impulse,this.m_JvBD),g+=this.m_iB*this.m_impulse*this.m_JwB,i.SelfMulSub(this.m_mC*this.m_impulse,this.m_JvAC),j-=this.m_iC*this.m_impulse*this.m_JwC,l.SelfMulSub(this.m_mD*this.m_impulse,this.m_JvBD),m-=this.m_iD*this.m_impulse*this.m_JwD):this.m_impulse=0,a.velocities[this.m_indexA].w=d,a.velocities[this.m_indexB].w=g,a.velocities[this.m_indexC].w=j,a.velocities[this.m_indexD].w=m},box2d.b2GearJoint.prototype.InitVelocityConstraints.s_u=new box2d.b2Vec2,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_rA=new box2d.b2Vec2,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_rB=new box2d.b2Vec2,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_rC=new box2d.b2Vec2,box2d.b2GearJoint.prototype.InitVelocityConstraints.s_rD=new box2d.b2Vec2,box2d.b2GearJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexA].v,c=a.velocities[this.m_indexA].w,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=a.velocities[this.m_indexC].v,g=a.velocities[this.m_indexC].w,h=a.velocities[this.m_indexD].v,i=a.velocities[this.m_indexD].w,j=box2d.b2DotVV(this.m_JvAC,box2d.b2SubVV(b,f,box2d.b2Vec2.s_t0))+box2d.b2DotVV(this.m_JvBD,box2d.b2SubVV(d,h,box2d.b2Vec2.s_t0));j+=this.m_JwA*c-this.m_JwC*g+(this.m_JwB*e-this.m_JwD*i);var k=-this.m_mass*j;this.m_impulse+=k,b.SelfMulAdd(this.m_mA*k,this.m_JvAC),c+=this.m_iA*k*this.m_JwA,d.SelfMulAdd(this.m_mB*k,this.m_JvBD),e+=this.m_iB*k*this.m_JwB,f.SelfMulSub(this.m_mC*k,this.m_JvAC),g-=this.m_iC*k*this.m_JwC,h.SelfMulSub(this.m_mD*k,this.m_JvBD),i-=this.m_iD*k*this.m_JwD,a.velocities[this.m_indexA].w=c,a.velocities[this.m_indexB].w=e,a.velocities[this.m_indexC].w=g,a.velocities[this.m_indexD].w=i},box2d.b2GearJoint.prototype.SolvePositionConstraints=function(a){var b,c,d,e,f,g,h=a.positions[this.m_indexA].c,i=a.positions[this.m_indexA].a,j=a.positions[this.m_indexB].c,k=a.positions[this.m_indexB].a,l=a.positions[this.m_indexC].c,m=a.positions[this.m_indexC].a,n=a.positions[this.m_indexD].c,o=a.positions[this.m_indexD].a,p=this.m_qA.SetAngleRadians(i),q=this.m_qB.SetAngleRadians(k),r=this.m_qC.SetAngleRadians(m),s=this.m_qD.SetAngleRadians(o),t=this.m_JvAC,u=this.m_JvBD,v=0;if(this.m_typeA===box2d.b2JointType.e_revoluteJoint)t.SetZero(),d=1,f=1,v+=this.m_iA+this.m_iC,b=i-m-this.m_referenceAngleA;else{var w=box2d.b2MulRV(r,this.m_localAxisC,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_u),x=box2d.b2MulRV(r,this.m_lalcC,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_rC),y=box2d.b2MulRV(p,this.m_lalcA,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_rA);t.Copy(w),f=box2d.b2CrossVV(x,w),d=box2d.b2CrossVV(y,w),v+=this.m_mC+this.m_mA+this.m_iC*f*f+this.m_iA*d*d;var z=this.m_lalcC,A=box2d.b2MulTRV(r,box2d.b2AddVV(y,box2d.b2SubVV(h,l,box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t0);b=box2d.b2DotVV(box2d.b2SubVV(A,z,box2d.b2Vec2.s_t0),this.m_localAxisC)}if(this.m_typeB===box2d.b2JointType.e_revoluteJoint)u.SetZero(),e=this.m_ratio,g=this.m_ratio,v+=this.m_ratio*this.m_ratio*(this.m_iB+this.m_iD),c=k-o-this.m_referenceAngleB;else{var w=box2d.b2MulRV(s,this.m_localAxisD,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_u),B=box2d.b2MulRV(s,this.m_lalcD,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_rD),C=box2d.b2MulRV(q,this.m_lalcB,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_rB);box2d.b2MulSV(this.m_ratio,w,u),g=this.m_ratio*box2d.b2CrossVV(B,w),e=this.m_ratio*box2d.b2CrossVV(C,w),v+=this.m_ratio*this.m_ratio*(this.m_mD+this.m_mB)+this.m_iD*g*g+this.m_iB*e*e;var D=this.m_lalcD,E=box2d.b2MulTRV(s,box2d.b2AddVV(C,box2d.b2SubVV(j,n,box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t0);c=box2d.b2DotVV(box2d.b2SubVV(E,D,box2d.b2Vec2.s_t0),this.m_localAxisD)}var F=b+this.m_ratio*c-this.m_constant,G=0;return v>0&&(G=-F/v),h.SelfMulAdd(this.m_mA*G,t),i+=this.m_iA*G*d,j.SelfMulAdd(this.m_mB*G,u),k+=this.m_iB*G*e,l.SelfMulSub(this.m_mC*G,t),m-=this.m_iC*G*f,n.SelfMulSub(this.m_mD*G,u),o-=this.m_iD*G*g,a.positions[this.m_indexA].a=i,a.positions[this.m_indexB].a=k,a.positions[this.m_indexC].a=m,a.positions[this.m_indexD].a=o,0<box2d.b2_linearSlop},box2d.b2GearJoint.prototype.SolvePositionConstraints.s_u=new box2d.b2Vec2,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_rA=new box2d.b2Vec2,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_rB=new box2d.b2Vec2,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_rC=new box2d.b2Vec2,box2d.b2GearJoint.prototype.SolvePositionConstraints.s_rD=new box2d.b2Vec2,box2d.b2GearJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,a)},box2d.b2GearJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2GearJoint.prototype.GetReactionForce=function(a,b){return box2d.b2MulSV(a*this.m_impulse,this.m_JvAC,b)},box2d.b2GearJoint.prototype.GetReactionTorque=function(a){return a*this.m_impulse*this.m_JwA},box2d.b2GearJoint.prototype.GetJoint1=function(){return this.m_joint1},box2d.b2GearJoint.prototype.GetJoint2=function(){return this.m_joint2},box2d.b2GearJoint.prototype.GetRatio=function(){return this.m_ratio},box2d.b2GearJoint.prototype.SetRatio=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a)),this.m_ratio=a},box2d.b2GearJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex,c=this.m_joint1.m_index,d=this.m_joint2.m_index;box2d.b2Log(" /*box2d.b2GearJointDef*/ var jd = new box2d.b2GearJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.joint1 = joints[%d];\n",c),box2d.b2Log(" jd.joint2 = joints[%d];\n",d),box2d.b2Log(" jd.ratio = %.15f;\n",this.m_ratio),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},goog.provide("box2d.b2Distance"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),box2d.b2DistanceProxy=function(){this.m_buffer=box2d.b2Vec2.MakeArray(2)},box2d.b2DistanceProxy.prototype.m_buffer=null,box2d.b2DistanceProxy.prototype.m_vertices=null,box2d.b2DistanceProxy.prototype.m_count=0,box2d.b2DistanceProxy.prototype.m_radius=0,box2d.b2DistanceProxy.prototype.Reset=function(){return this.m_vertices=null,this.m_count=0,this.m_radius=0,this},box2d.b2DistanceProxy.prototype.SetShape=function(a,b){a.SetupDistanceProxy(this,b)},box2d.b2DistanceProxy.prototype.GetSupport=function(a){for(var b=0,c=box2d.b2DotVV(this.m_vertices[0],a),d=1;d<this.m_count;++d){var e=box2d.b2DotVV(this.m_vertices[d],a);e>c&&(b=d,c=e)}return b},box2d.b2DistanceProxy.prototype.GetSupportVertex=function(a,b){for(var c=0,d=box2d.b2DotVV(this.m_vertices[0],a),e=1;e<this.m_count;++e){var f=box2d.b2DotVV(this.m_vertices[e],a);f>d&&(c=e,d=f)}return b.Copy(this.m_vertices[c])},box2d.b2DistanceProxy.prototype.GetVertexCount=function(){return this.m_count},box2d.b2DistanceProxy.prototype.GetVertex=function(a){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=a&&a<this.m_count),this.m_vertices[a]},box2d.b2SimplexCache=function(){this.indexA=box2d.b2MakeNumberArray(3),this.indexB=box2d.b2MakeNumberArray(3)},box2d.b2SimplexCache.prototype.metric=0,box2d.b2SimplexCache.prototype.count=0,box2d.b2SimplexCache.prototype.indexA=null,box2d.b2SimplexCache.prototype.indexB=null,box2d.b2SimplexCache.prototype.Reset=function(){return this.metric=0,this.count=0,this},box2d.b2DistanceInput=function(){this.proxyA=new box2d.b2DistanceProxy,this.proxyB=new box2d.b2DistanceProxy,this.transformA=new box2d.b2Transform,this.transformB=new box2d.b2Transform},box2d.b2DistanceInput.prototype.proxyA=null,box2d.b2DistanceInput.prototype.proxyB=null,box2d.b2DistanceInput.prototype.transformA=null,box2d.b2DistanceInput.prototype.transformB=null,box2d.b2DistanceInput.prototype.useRadii=!1,box2d.b2DistanceInput.prototype.Reset=function(){return this.proxyA.Reset(),this.proxyB.Reset(),this.transformA.SetIdentity(),this.transformB.SetIdentity(),this.useRadii=!1,this},box2d.b2DistanceOutput=function(){this.pointA=new box2d.b2Vec2,this.pointB=new box2d.b2Vec2},box2d.b2DistanceOutput.prototype.pointA=null,box2d.b2DistanceOutput.prototype.pointB=null,box2d.b2DistanceOutput.prototype.distance=0,box2d.b2DistanceOutput.prototype.iterations=0,box2d.b2DistanceOutput.prototype.Reset=function(){return this.pointA.SetZero(),this.pointB.SetZero(),this.distance=0,this.iterations=0,this},box2d.b2_gjkCalls=0,box2d.b2_gjkIters=0,box2d.b2_gjkMaxIters=0,box2d.b2SimplexVertex=function(){this.wA=new box2d.b2Vec2,this.wB=new box2d.b2Vec2,this.w=new box2d.b2Vec2},box2d.b2SimplexVertex.prototype.wA=null,box2d.b2SimplexVertex.prototype.wB=null,box2d.b2SimplexVertex.prototype.w=null,box2d.b2SimplexVertex.prototype.a=0,box2d.b2SimplexVertex.prototype.indexA=0,box2d.b2SimplexVertex.prototype.indexB=0,box2d.b2SimplexVertex.prototype.Copy=function(a){return this.wA.Copy(a.wA),this.wB.Copy(a.wB),this.w.Copy(a.w),this.a=a.a,this.indexA=a.indexA,this.indexB=a.indexB,this},box2d.b2Simplex=function(){this.m_v1=new box2d.b2SimplexVertex,this.m_v2=new box2d.b2SimplexVertex,this.m_v3=new box2d.b2SimplexVertex,this.m_vertices=new Array(3),this.m_vertices[0]=this.m_v1,this.m_vertices[1]=this.m_v2,this.m_vertices[2]=this.m_v3},box2d.b2Simplex.prototype.m_v1=null,box2d.b2Simplex.prototype.m_v2=null,box2d.b2Simplex.prototype.m_v3=null,box2d.b2Simplex.prototype.m_vertices=null,box2d.b2Simplex.prototype.m_count=0,box2d.b2Simplex.prototype.ReadCache=function(a,b,c,d,e){box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=a.count&&a.count<=3),this.m_count=a.count;for(var f=this.m_vertices,g=0;g<this.m_count;++g){var h=f[g];h.indexA=a.indexA[g],h.indexB=a.indexB[g];var i=b.GetVertex(h.indexA),j=d.GetVertex(h.indexB);box2d.b2MulXV(c,i,h.wA),box2d.b2MulXV(e,j,h.wB),box2d.b2SubVV(h.wB,h.wA,h.w),h.a=0}if(this.m_count>1){var k=a.metric,l=this.GetMetric();(l<.5*k||2*k<l||l<box2d.b2_epsilon)&&(this.m_count=0)}if(0===this.m_count){var h=f[0];h.indexA=0,h.indexB=0;var i=b.GetVertex(0),j=d.GetVertex(0);box2d.b2MulXV(c,i,h.wA),box2d.b2MulXV(e,j,h.wB),box2d.b2SubVV(h.wB,h.wA,h.w),h.a=1,this.m_count=1}},box2d.b2Simplex.prototype.WriteCache=function(a){a.metric=this.GetMetric(),a.count=this.m_count;for(var b=this.m_vertices,c=0;c<this.m_count;++c)a.indexA[c]=b[c].indexA,a.indexB[c]=b[c].indexB},box2d.b2Simplex.prototype.GetSearchDirection=function(a){switch(this.m_count){case 1:return box2d.b2NegV(this.m_v1.w,a);case 2:var b=box2d.b2SubVV(this.m_v2.w,this.m_v1.w,a);return box2d.b2CrossVV(b,box2d.b2NegV(this.m_v1.w,box2d.b2Vec2.s_t0))>0?box2d.b2CrossOneV(b,a):box2d.b2CrossVOne(b,a);default:return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),a.SetZero()}},box2d.b2Simplex.prototype.GetClosestPoint=function(a){switch(this.m_count){case 0:return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),a.SetZero();case 1:return a.Copy(this.m_v1.w);case 2:return a.SetXY(this.m_v1.a*this.m_v1.w.x+this.m_v2.a*this.m_v2.w.x,this.m_v1.a*this.m_v1.w.y+this.m_v2.a*this.m_v2.w.y);case 3:return a.SetZero();default:return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),a.SetZero()}},box2d.b2Simplex.prototype.GetWitnessPoints=function(a,b){switch(this.m_count){case 0:box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1);break;case 1:a.Copy(this.m_v1.wA),b.Copy(this.m_v1.wB);break;case 2:a.x=this.m_v1.a*this.m_v1.wA.x+this.m_v2.a*this.m_v2.wA.x,a.y=this.m_v1.a*this.m_v1.wA.y+this.m_v2.a*this.m_v2.wA.y,b.x=this.m_v1.a*this.m_v1.wB.x+this.m_v2.a*this.m_v2.wB.x,b.y=this.m_v1.a*this.m_v1.wB.y+this.m_v2.a*this.m_v2.wB.y;break;case 3:b.x=a.x=this.m_v1.a*this.m_v1.wA.x+this.m_v2.a*this.m_v2.wA.x+this.m_v3.a*this.m_v3.wA.x,b.y=a.y=this.m_v1.a*this.m_v1.wA.y+this.m_v2.a*this.m_v2.wA.y+this.m_v3.a*this.m_v3.wA.y;break;default:box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1)}},box2d.b2Simplex.prototype.GetMetric=function(){switch(this.m_count){case 0:return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),0;case 1:return 0;case 2:return box2d.b2DistanceVV(this.m_v1.w,this.m_v2.w);case 3:
|
||
return box2d.b2CrossVV(box2d.b2SubVV(this.m_v2.w,this.m_v1.w,box2d.b2Vec2.s_t0),box2d.b2SubVV(this.m_v3.w,this.m_v1.w,box2d.b2Vec2.s_t1));default:return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),0}},box2d.b2Simplex.prototype.Solve2=function(){var a=this.m_v1.w,b=this.m_v2.w,c=box2d.b2SubVV(b,a,box2d.b2Simplex.s_e12),d=-box2d.b2DotVV(a,c);if(d<=0)return this.m_v1.a=1,void(this.m_count=1);var e=box2d.b2DotVV(b,c);if(e<=0)return this.m_v2.a=1,this.m_count=1,void this.m_v1.Copy(this.m_v2);var f=1/(e+d);this.m_v1.a=e*f,this.m_v2.a=d*f,this.m_count=2},box2d.b2Simplex.prototype.Solve3=function(){var a=this.m_v1.w,b=this.m_v2.w,c=this.m_v3.w,d=box2d.b2SubVV(b,a,box2d.b2Simplex.s_e12),e=box2d.b2DotVV(a,d),f=box2d.b2DotVV(b,d),g=f,h=-e,i=box2d.b2SubVV(c,a,box2d.b2Simplex.s_e13),j=box2d.b2DotVV(a,i),k=box2d.b2DotVV(c,i),l=k,m=-j,n=box2d.b2SubVV(c,b,box2d.b2Simplex.s_e23),o=box2d.b2DotVV(b,n),p=box2d.b2DotVV(c,n),q=p,r=-o,s=box2d.b2CrossVV(d,i),t=s*box2d.b2CrossVV(b,c),u=s*box2d.b2CrossVV(c,a),v=s*box2d.b2CrossVV(a,b);if(h<=0&&m<=0)return this.m_v1.a=1,void(this.m_count=1);if(g>0&&h>0&&v<=0){var w=1/(g+h);return this.m_v1.a=g*w,this.m_v2.a=h*w,void(this.m_count=2)}if(l>0&&m>0&&u<=0){var x=1/(l+m);return this.m_v1.a=l*x,this.m_v3.a=m*x,this.m_count=2,void this.m_v2.Copy(this.m_v3)}if(g<=0&&r<=0)return this.m_v2.a=1,this.m_count=1,void this.m_v1.Copy(this.m_v2);if(l<=0&&q<=0)return this.m_v3.a=1,this.m_count=1,void this.m_v1.Copy(this.m_v3);if(q>0&&r>0&&t<=0){var y=1/(q+r);return this.m_v2.a=q*y,this.m_v3.a=r*y,this.m_count=2,void this.m_v1.Copy(this.m_v3)}var z=1/(t+u+v);this.m_v1.a=t*z,this.m_v2.a=u*z,this.m_v3.a=v*z,this.m_count=3},box2d.b2Simplex.s_e12=new box2d.b2Vec2,box2d.b2Simplex.s_e13=new box2d.b2Vec2,box2d.b2Simplex.s_e23=new box2d.b2Vec2,box2d.b2Distance=function(a,b,c){++box2d.b2_gjkCalls;var d=c.proxyA,e=c.proxyB,f=c.transformA,g=c.transformB,h=box2d.b2Distance.s_simplex;h.ReadCache(b,d,f,e,g);for(var i=h.m_vertices,j=box2d.b2Distance.s_saveA,k=box2d.b2Distance.s_saveB,l=0,m=box2d.b2_maxFloat,n=m,o=0;o<20;){l=h.m_count;for(var p=0;p<l;++p)j[p]=i[p].indexA,k[p]=i[p].indexB;switch(h.m_count){case 1:break;case 2:h.Solve2();break;case 3:h.Solve3();break;default:box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1)}if(3===h.m_count)break;var q=h.GetClosestPoint(box2d.b2Distance.s_p);n=q.GetLengthSquared(),m=n;var r=h.GetSearchDirection(box2d.b2Distance.s_d);if(r.GetLengthSquared()<box2d.b2_epsilon_sq)break;var s=i[h.m_count];s.indexA=d.GetSupport(box2d.b2MulTRV(f.q,box2d.b2NegV(r,box2d.b2Vec2.s_t0),box2d.b2Distance.s_supportA)),box2d.b2MulXV(f,d.GetVertex(s.indexA),s.wA),s.indexB=e.GetSupport(box2d.b2MulTRV(g.q,r,box2d.b2Distance.s_supportB)),box2d.b2MulXV(g,e.GetVertex(s.indexB),s.wB),box2d.b2SubVV(s.wB,s.wA,s.w),++o,++box2d.b2_gjkIters;for(var t=!1,p=0;p<l;++p)if(s.indexA===j[p]&&s.indexB===k[p]){t=!0;break}if(t)break;++h.m_count}if(box2d.b2_gjkMaxIters=box2d.b2Max(box2d.b2_gjkMaxIters,o),h.GetWitnessPoints(a.pointA,a.pointB),a.distance=box2d.b2DistanceVV(a.pointA,a.pointB),a.iterations=o,h.WriteCache(b),c.useRadii){var u=d.m_radius,v=e.m_radius;if(a.distance>u+v&&a.distance>box2d.b2_epsilon){a.distance-=u+v;var w=box2d.b2SubVV(a.pointB,a.pointA,box2d.b2Distance.s_normal);w.Normalize(),a.pointA.SelfMulAdd(u,w),a.pointB.SelfMulSub(v,w)}else{var q=box2d.b2MidVV(a.pointA,a.pointB,box2d.b2Distance.s_p);a.pointA.Copy(q),a.pointB.Copy(q),a.distance=0}}},box2d.b2Distance.s_simplex=new box2d.b2Simplex,box2d.b2Distance.s_saveA=box2d.b2MakeNumberArray(3),box2d.b2Distance.s_saveB=box2d.b2MakeNumberArray(3),box2d.b2Distance.s_p=new box2d.b2Vec2,box2d.b2Distance.s_d=new box2d.b2Vec2,box2d.b2Distance.s_normal=new box2d.b2Vec2,box2d.b2Distance.s_supportA=new box2d.b2Vec2,box2d.b2Distance.s_supportB=new box2d.b2Vec2,goog.provide("box2d.b2WeldJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),box2d.b2WeldJointDef=function(){goog.base(this,box2d.b2JointType.e_weldJoint),this.localAnchorA=new box2d.b2Vec2,this.localAnchorB=new box2d.b2Vec2},goog.inherits(box2d.b2WeldJointDef,box2d.b2JointDef),box2d.b2WeldJointDef.prototype.localAnchorA=null,box2d.b2WeldJointDef.prototype.localAnchorB=null,box2d.b2WeldJointDef.prototype.referenceAngle=0,box2d.b2WeldJointDef.prototype.frequencyHz=0,box2d.b2WeldJointDef.prototype.dampingRatio=0,box2d.b2WeldJointDef.prototype.Initialize=function(a,b,c){this.bodyA=a,this.bodyB=b,this.bodyA.GetLocalPoint(c,this.localAnchorA),this.bodyB.GetLocalPoint(c,this.localAnchorB),this.referenceAngle=this.bodyB.GetAngleRadians()-this.bodyA.GetAngleRadians()},box2d.b2WeldJoint=function(a){goog.base(this,a),this.m_frequencyHz=a.frequencyHz,this.m_dampingRatio=a.dampingRatio,this.m_localAnchorA=a.localAnchorA.Clone(),this.m_localAnchorB=a.localAnchorB.Clone(),this.m_referenceAngle=a.referenceAngle,this.m_impulse=new box2d.b2Vec3(0,0,0),this.m_rA=new box2d.b2Vec2,this.m_rB=new box2d.b2Vec2,this.m_localCenterA=new box2d.b2Vec2,this.m_localCenterB=new box2d.b2Vec2,this.m_mass=new box2d.b2Mat33,this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_lalcA=new box2d.b2Vec2,this.m_lalcB=new box2d.b2Vec2,this.m_K=new box2d.b2Mat33},goog.inherits(box2d.b2WeldJoint,box2d.b2Joint),box2d.b2WeldJoint.prototype.m_frequencyHz=0,box2d.b2WeldJoint.prototype.m_dampingRatio=0,box2d.b2WeldJoint.prototype.m_bias=0,box2d.b2WeldJoint.prototype.m_localAnchorA=null,box2d.b2WeldJoint.prototype.m_localAnchorB=null,box2d.b2WeldJoint.prototype.m_referenceAngle=0,box2d.b2WeldJoint.prototype.m_gamma=0,box2d.b2WeldJoint.prototype.m_impulse=null,box2d.b2WeldJoint.prototype.m_indexA=0,box2d.b2WeldJoint.prototype.m_indexB=0,box2d.b2WeldJoint.prototype.m_rA=null,box2d.b2WeldJoint.prototype.m_rB=null,box2d.b2WeldJoint.prototype.m_localCenterA=null,box2d.b2WeldJoint.prototype.m_localCenterB=null,box2d.b2WeldJoint.prototype.m_invMassA=0;box2d.b2WeldJoint.prototype.m_invMassB=0,box2d.b2WeldJoint.prototype.m_invIA=0,box2d.b2WeldJoint.prototype.m_invIB=0,box2d.b2WeldJoint.prototype.m_mass=null,box2d.b2WeldJoint.prototype.m_qA=null,box2d.b2WeldJoint.prototype.m_qB=null,box2d.b2WeldJoint.prototype.m_lalcA=null,box2d.b2WeldJoint.prototype.m_lalcB=null,box2d.b2WeldJoint.prototype.m_K=null,box2d.b2WeldJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassA=this.m_bodyA.m_invMass,this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIA=this.m_bodyA.m_invI,this.m_invIB=this.m_bodyB.m_invI;var b=a.positions[this.m_indexA].a,c=a.velocities[this.m_indexA].v,d=a.velocities[this.m_indexA].w,e=a.positions[this.m_indexB].a,f=a.velocities[this.m_indexB].v,g=a.velocities[this.m_indexB].w,h=this.m_qA.SetAngleRadians(b),i=this.m_qB.SetAngleRadians(e);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA),box2d.b2MulRV(h,this.m_lalcA,this.m_rA),box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),box2d.b2MulRV(i,this.m_lalcB,this.m_rB);var j=this.m_invMassA,k=this.m_invMassB,l=this.m_invIA,m=this.m_invIB,n=this.m_K;if(n.ex.x=j+k+this.m_rA.y*this.m_rA.y*l+this.m_rB.y*this.m_rB.y*m,n.ey.x=-this.m_rA.y*this.m_rA.x*l-this.m_rB.y*this.m_rB.x*m,n.ez.x=-this.m_rA.y*l-this.m_rB.y*m,n.ex.y=n.ey.x,n.ey.y=j+k+this.m_rA.x*this.m_rA.x*l+this.m_rB.x*this.m_rB.x*m,n.ez.y=this.m_rA.x*l+this.m_rB.x*m,n.ex.z=n.ez.x,n.ey.z=n.ez.y,n.ez.z=l+m,this.m_frequencyHz>0){n.GetInverse22(this.m_mass);var o=l+m,p=o>0?1/o:0,q=e-b-this.m_referenceAngle,r=2*box2d.b2_pi*this.m_frequencyHz,s=2*p*this.m_dampingRatio*r,t=p*r*r,u=a.step.dt;this.m_gamma=u*(s+u*t),this.m_gamma=0!==this.m_gamma?1/this.m_gamma:0,this.m_bias=q*u*t*this.m_gamma,o+=this.m_gamma,this.m_mass.ez.z=0!==o?1/o:0}else n.GetSymInverse33(this.m_mass),this.m_gamma=0,this.m_bias=0;if(a.step.warmStarting){this.m_impulse.SelfMul(a.step.dtRatio);var v=box2d.b2WeldJoint.prototype.InitVelocityConstraints.s_P.SetXY(this.m_impulse.x,this.m_impulse.y);c.SelfMulSub(j,v),d-=l*(box2d.b2CrossVV(this.m_rA,v)+this.m_impulse.z),f.SelfMulAdd(k,v),g+=m*(box2d.b2CrossVV(this.m_rB,v)+this.m_impulse.z)}else this.m_impulse.SetZero();a.velocities[this.m_indexA].w=d,a.velocities[this.m_indexB].w=g},box2d.b2WeldJoint.prototype.InitVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2WeldJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexA].v,c=a.velocities[this.m_indexA].w,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=this.m_invMassA,g=this.m_invMassB,h=this.m_invIA,i=this.m_invIB;if(this.m_frequencyHz>0){var j=e-c,k=-this.m_mass.ez.z*(j+this.m_bias+this.m_gamma*this.m_impulse.z);this.m_impulse.z+=k,c-=h*k,e+=i*k;var l=box2d.b2SubVV(box2d.b2AddVCrossSV(d,e,this.m_rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(b,c,this.m_rA,box2d.b2Vec2.s_t1),box2d.b2WeldJoint.prototype.SolveVelocityConstraints.s_Cdot1),m=box2d.b2MulM33XY(this.m_mass,l.x,l.y,box2d.b2WeldJoint.prototype.SolveVelocityConstraints.s_impulse1).SelfNeg();this.m_impulse.x+=m.x,this.m_impulse.y+=m.y;var n=m;b.SelfMulSub(f,n),c-=h*box2d.b2CrossVV(this.m_rA,n),d.SelfMulAdd(g,n),e+=i*box2d.b2CrossVV(this.m_rB,n)}else{var l=box2d.b2SubVV(box2d.b2AddVCrossSV(d,e,this.m_rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(b,c,this.m_rA,box2d.b2Vec2.s_t1),box2d.b2WeldJoint.prototype.SolveVelocityConstraints.s_Cdot1),j=e-c,o=box2d.b2MulM33XYZ(this.m_mass,l.x,l.y,j,box2d.b2WeldJoint.prototype.SolveVelocityConstraints.s_impulse).SelfNeg();this.m_impulse.SelfAdd(o);var n=box2d.b2WeldJoint.prototype.SolveVelocityConstraints.s_P.SetXY(o.x,o.y);b.SelfMulSub(f,n),c-=h*(box2d.b2CrossVV(this.m_rA,n)+o.z),d.SelfMulAdd(g,n),e+=i*(box2d.b2CrossVV(this.m_rB,n)+o.z)}a.velocities[this.m_indexA].w=c,a.velocities[this.m_indexB].w=e},box2d.b2WeldJoint.prototype.SolveVelocityConstraints.s_Cdot1=new box2d.b2Vec2,box2d.b2WeldJoint.prototype.SolveVelocityConstraints.s_impulse1=new box2d.b2Vec2,box2d.b2WeldJoint.prototype.SolveVelocityConstraints.s_impulse=new box2d.b2Vec3,box2d.b2WeldJoint.prototype.SolveVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2WeldJoint.prototype.SolvePositionConstraints=function(a){var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.positions[this.m_indexB].c,e=a.positions[this.m_indexB].a,f=this.m_qA.SetAngleRadians(c),g=this.m_qB.SetAngleRadians(e),h=this.m_invMassA,i=this.m_invMassB,j=this.m_invIA,k=this.m_invIB;box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var l=box2d.b2MulRV(f,this.m_lalcA,this.m_rA);box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var m,n,o=box2d.b2MulRV(g,this.m_lalcB,this.m_rB),p=this.m_K;if(p.ex.x=h+i+l.y*l.y*j+o.y*o.y*k,p.ey.x=-l.y*l.x*j-o.y*o.x*k,p.ez.x=-l.y*j-o.y*k,p.ex.y=p.ey.x,p.ey.y=h+i+l.x*l.x*j+o.x*o.x*k,p.ez.y=l.x*j+o.x*k,p.ex.z=p.ez.x,p.ey.z=p.ez.y,p.ez.z=j+k,this.m_frequencyHz>0){var q=box2d.b2SubVV(box2d.b2AddVV(d,o,box2d.b2Vec2.s_t0),box2d.b2AddVV(b,l,box2d.b2Vec2.s_t1),box2d.b2WeldJoint.prototype.SolvePositionConstraints.s_C1);m=q.GetLength(),n=0;var r=p.Solve22(q.x,q.y,box2d.b2WeldJoint.prototype.SolvePositionConstraints.s_P).SelfNeg();b.SelfMulSub(h,r),c-=j*box2d.b2CrossVV(l,r),d.SelfMulAdd(i,r),e+=k*box2d.b2CrossVV(o,r)}else{var q=box2d.b2SubVV(box2d.b2AddVV(d,o,box2d.b2Vec2.s_t0),box2d.b2AddVV(b,l,box2d.b2Vec2.s_t1),box2d.b2WeldJoint.prototype.SolvePositionConstraints.s_C1),s=e-c-this.m_referenceAngle;m=q.GetLength(),n=box2d.b2Abs(s);var t=p.Solve33(q.x,q.y,s,box2d.b2WeldJoint.prototype.SolvePositionConstraints.s_impulse).SelfNeg(),r=box2d.b2WeldJoint.prototype.SolvePositionConstraints.s_P.SetXY(t.x,t.y);b.SelfMulSub(h,r),c-=j*(box2d.b2CrossVV(this.m_rA,r)+t.z),d.SelfMulAdd(i,r),e+=k*(box2d.b2CrossVV(this.m_rB,r)+t.z)}return a.positions[this.m_indexA].a=c,a.positions[this.m_indexB].a=e,m<=box2d.b2_linearSlop&&n<=box2d.b2_angularSlop},box2d.b2WeldJoint.prototype.SolvePositionConstraints.s_C1=new box2d.b2Vec2,box2d.b2WeldJoint.prototype.SolvePositionConstraints.s_P=new box2d.b2Vec2,box2d.b2WeldJoint.prototype.SolvePositionConstraints.s_impulse=new box2d.b2Vec3,box2d.b2WeldJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,a)},box2d.b2WeldJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2WeldJoint.prototype.GetReactionForce=function(a,b){return b.SetXY(a*this.m_impulse.x,a*this.m_impulse.y)},box2d.b2WeldJoint.prototype.GetReactionTorque=function(a){return a*this.m_impulse.z},box2d.b2WeldJoint.prototype.GetLocalAnchorA=function(a){return a.Copy(this.m_localAnchorA)},box2d.b2WeldJoint.prototype.GetLocalAnchorB=function(a){return a.Copy(this.m_localAnchorB)},box2d.b2WeldJoint.prototype.GetReferenceAngle=function(){return this.m_referenceAngle},box2d.b2WeldJoint.prototype.SetFrequency=function(a){this.m_frequencyHz=a},box2d.b2WeldJoint.prototype.GetFrequency=function(){return this.m_frequencyHz},box2d.b2WeldJoint.prototype.SetDampingRatio=function(a){this.m_dampingRatio=a},box2d.b2WeldJoint.prototype.GetDampingRatio=function(){return this.m_dampingRatio},box2d.b2WeldJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex;box2d.b2Log(" /*box2d.b2WeldJointDef*/ var jd = new box2d.b2WeldJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.localAnchorA.SetXY(%.15f, %.15f);\n",this.m_localAnchorA.x,this.m_localAnchorA.y),box2d.b2Log(" jd.localAnchorB.SetXY(%.15f, %.15f);\n",this.m_localAnchorB.x,this.m_localAnchorB.y),box2d.b2Log(" jd.referenceAngle = %.15f;\n",this.m_referenceAngle),box2d.b2Log(" jd.frequencyHz = %.15f;\n",this.m_frequencyHz),box2d.b2Log(" jd.dampingRatio = %.15f;\n",this.m_dampingRatio),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},goog.provide("box2d.b2RopeJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),box2d.b2RopeJointDef=function(){goog.base(this,box2d.b2JointType.e_ropeJoint),this.localAnchorA=new box2d.b2Vec2(-1,0),this.localAnchorB=new box2d.b2Vec2(1,0)},goog.inherits(box2d.b2RopeJointDef,box2d.b2JointDef),box2d.b2RopeJointDef.prototype.localAnchorA=null,box2d.b2RopeJointDef.prototype.localAnchorB=null,box2d.b2RopeJointDef.prototype.maxLength=0,box2d.b2RopeJoint=function(a){goog.base(this,a),this.m_localAnchorA=a.localAnchorA.Clone(),this.m_localAnchorB=a.localAnchorB.Clone(),this.m_maxLength=a.maxLength,this.m_u=new box2d.b2Vec2,this.m_rA=new box2d.b2Vec2,this.m_rB=new box2d.b2Vec2,this.m_localCenterA=new box2d.b2Vec2,this.m_localCenterB=new box2d.b2Vec2,this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_lalcA=new box2d.b2Vec2,this.m_lalcB=new box2d.b2Vec2},goog.inherits(box2d.b2RopeJoint,box2d.b2Joint),box2d.b2RopeJoint.prototype.m_localAnchorA=null,box2d.b2RopeJoint.prototype.m_localAnchorB=null,box2d.b2RopeJoint.prototype.m_maxLength=0,box2d.b2RopeJoint.prototype.m_length=0,box2d.b2RopeJoint.prototype.m_impulse=0,box2d.b2RopeJoint.prototype.m_indexA=0,box2d.b2RopeJoint.prototype.m_indexB=0,box2d.b2RopeJoint.prototype.m_u=null,box2d.b2RopeJoint.prototype.m_rA=null,box2d.b2RopeJoint.prototype.m_rB=null,box2d.b2RopeJoint.prototype.m_localCenterA=null,box2d.b2RopeJoint.prototype.m_localCenterB=null,box2d.b2RopeJoint.prototype.m_invMassA=0,box2d.b2RopeJoint.prototype.m_invMassB=0,box2d.b2RopeJoint.prototype.m_invIA=0,box2d.b2RopeJoint.prototype.m_invIB=0,box2d.b2RopeJoint.prototype.m_mass=0,box2d.b2RopeJoint.prototype.m_state=box2d.b2LimitState.e_inactiveLimit,box2d.b2RopeJoint.prototype.m_qA=null,box2d.b2RopeJoint.prototype.m_qB=null,box2d.b2RopeJoint.prototype.m_lalcA=null,box2d.b2RopeJoint.prototype.m_lalcB=null,box2d.b2RopeJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassA=this.m_bodyA.m_invMass,this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIA=this.m_bodyA.m_invI,this.m_invIB=this.m_bodyB.m_invI;var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.velocities[this.m_indexA].v,e=a.velocities[this.m_indexA].w,f=a.positions[this.m_indexB].c,g=a.positions[this.m_indexB].a,h=a.velocities[this.m_indexB].v,i=a.velocities[this.m_indexB].w,j=this.m_qA.SetAngleRadians(c),k=this.m_qB.SetAngleRadians(g);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA),box2d.b2MulRV(j,this.m_lalcA,this.m_rA),box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),box2d.b2MulRV(k,this.m_lalcB,this.m_rB),this.m_u.Copy(f).SelfAdd(this.m_rB).SelfSub(b).SelfSub(this.m_rA),this.m_length=this.m_u.GetLength();var l=this.m_length-this.m_maxLength;if(this.m_state=l>0?box2d.b2LimitState.e_atUpperLimit:box2d.b2LimitState.e_inactiveLimit,!(this.m_length>box2d.b2_linearSlop))return this.m_u.SetZero(),this.m_mass=0,void(this.m_impulse=0);this.m_u.SelfMul(1/this.m_length);var m=box2d.b2CrossVV(this.m_rA,this.m_u),n=box2d.b2CrossVV(this.m_rB,this.m_u),o=this.m_invMassA+this.m_invIA*m*m+this.m_invMassB+this.m_invIB*n*n;if(this.m_mass=0!==o?1/o:0,a.step.warmStarting){this.m_impulse*=a.step.dtRatio;var p=box2d.b2MulSV(this.m_impulse,this.m_u,box2d.b2RopeJoint.prototype.InitVelocityConstraints.s_P);d.SelfMulSub(this.m_invMassA,p),e-=this.m_invIA*box2d.b2CrossVV(this.m_rA,p),h.SelfMulAdd(this.m_invMassB,p),i+=this.m_invIB*box2d.b2CrossVV(this.m_rB,p)}else this.m_impulse=0;a.velocities[this.m_indexA].w=e,a.velocities[this.m_indexB].w=i},box2d.b2RopeJoint.prototype.InitVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2RopeJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexA].v,c=a.velocities[this.m_indexA].w,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=box2d.b2AddVCrossSV(b,c,this.m_rA,box2d.b2RopeJoint.prototype.SolveVelocityConstraints.s_vpA),g=box2d.b2AddVCrossSV(d,e,this.m_rB,box2d.b2RopeJoint.prototype.SolveVelocityConstraints.s_vpB),h=this.m_length-this.m_maxLength,i=box2d.b2DotVV(this.m_u,box2d.b2SubVV(g,f,box2d.b2Vec2.s_t0));h<0&&(i+=a.step.inv_dt*h);var j=-this.m_mass*i,k=this.m_impulse;this.m_impulse=box2d.b2Min(0,this.m_impulse+j),j=this.m_impulse-k;var l=box2d.b2MulSV(j,this.m_u,box2d.b2RopeJoint.prototype.SolveVelocityConstraints.s_P);b.SelfMulSub(this.m_invMassA,l),c-=this.m_invIA*box2d.b2CrossVV(this.m_rA,l),d.SelfMulAdd(this.m_invMassB,l),e+=this.m_invIB*box2d.b2CrossVV(this.m_rB,l),a.velocities[this.m_indexA].w=c,a.velocities[this.m_indexB].w=e},box2d.b2RopeJoint.prototype.SolveVelocityConstraints.s_vpA=new box2d.b2Vec2,box2d.b2RopeJoint.prototype.SolveVelocityConstraints.s_vpB=new box2d.b2Vec2,box2d.b2RopeJoint.prototype.SolveVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2RopeJoint.prototype.SolvePositionConstraints=function(a){var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.positions[this.m_indexB].c,e=a.positions[this.m_indexB].a,f=this.m_qA.SetAngleRadians(c),g=this.m_qB.SetAngleRadians(e);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var h=box2d.b2MulRV(f,this.m_lalcA,this.m_rA);box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var i=box2d.b2MulRV(g,this.m_lalcB,this.m_rB),j=this.m_u.Copy(d).SelfAdd(i).SelfSub(b).SelfSub(h),k=j.Normalize(),l=k-this.m_maxLength;l=box2d.b2Clamp(l,0,box2d.b2_maxLinearCorrection);var m=-this.m_mass*l,n=box2d.b2MulSV(m,j,box2d.b2RopeJoint.prototype.SolvePositionConstraints.s_P);return b.SelfMulSub(this.m_invMassA,n),c-=this.m_invIA*box2d.b2CrossVV(h,n),d.SelfMulAdd(this.m_invMassB,n),e+=this.m_invIB*box2d.b2CrossVV(i,n),a.positions[this.m_indexA].a=c,a.positions[this.m_indexB].a=e,k-this.m_maxLength<box2d.b2_linearSlop},box2d.b2RopeJoint.prototype.SolvePositionConstraints.s_P=new box2d.b2Vec2,box2d.b2RopeJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,a)},box2d.b2RopeJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2RopeJoint.prototype.GetReactionForce=function(a,b){return box2d.b2MulSV(a*this.m_impulse,this.m_u,b)},box2d.b2RopeJoint.prototype.GetReactionTorque=function(a){return 0},box2d.b2RopeJoint.prototype.GetLocalAnchorA=function(a){return a.Copy(this.m_localAnchorA)},box2d.b2RopeJoint.prototype.GetLocalAnchorB=function(a){return a.Copy(this.m_localAnchorB)},box2d.b2RopeJoint.prototype.SetMaxLength=function(a){this.m_maxLength=a},box2d.b2RopeJoint.prototype.GetMaxLength=function(){return this.m_maxLength},box2d.b2RopeJoint.prototype.GetLimitState=function(){return this.m_state},box2d.b2RopeJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex;box2d.b2Log(" /*box2d.b2RopeJointDef*/ var jd = new box2d.b2RopeJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.localAnchorA.SetXY(%.15f, %.15f);\n",this.m_localAnchorA.x,this.m_localAnchorA.y),box2d.b2Log(" jd.localAnchorB.SetXY(%.15f, %.15f);\n",this.m_localAnchorB.x,this.m_localAnchorB.y),box2d.b2Log(" jd.maxLength = %.15f;\n",this.m_maxLength),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},goog.provide("box2d.b2GravityController"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Controller"),goog.require("box2d.b2Math"),box2d.b2GravityController=function(){goog.base(this)},goog.inherits(box2d.b2GravityController,box2d.b2Controller),box2d.b2GravityController.prototype.G=1,box2d.b2GravityController.prototype.invSqr=!0,box2d.b2GravityController.prototype.Step=function(a){if(this.invSqr)for(var b=this.m_bodyList;b;b=b.nextBody)for(var c=b.body,d=c.GetWorldCenter(),e=c.GetMass(),f=this.m_bodyList;f!==b;f=f.nextBody){var g=f.body,h=g.GetWorldCenter(),i=g.GetMass(),j=h.x-d.x,k=h.y-d.y,l=j*j+k*k;if(!(l<box2d.b2_epsilon)){var m=box2d.b2GravityController.prototype.Step.s_f.SetXY(j,k);m.SelfMul(this.G/l/box2d.b2Sqrt(l)*e*i),c.IsAwake()&&c.ApplyForce(m,d),g.IsAwake()&&g.ApplyForce(m.SelfMul(-1),h)}}else for(var b=this.m_bodyList;b;b=b.nextBody)for(var c=b.body,d=c.GetWorldCenter(),e=c.GetMass(),f=this.m_bodyList;f!==b;f=f.nextBody){var g=f.body,h=g.GetWorldCenter(),i=g.GetMass(),j=h.x-d.x,k=h.y-d.y,l=j*j+k*k;if(!(l<box2d.b2_epsilon)){var m=box2d.b2GravityController.prototype.Step.s_f.SetXY(j,k);m.SelfMul(this.G/l*e*i),c.IsAwake()&&c.ApplyForce(m,d),g.IsAwake()&&g.ApplyForce(m.SelfMul(-1),h)}}},box2d.b2GravityController.prototype.Step.s_f=new box2d.b2Vec2,goog.provide("box2d.b2TimeStep"),goog.require("box2d.b2Settings"),box2d.b2Profile=function(){},box2d.b2Profile.prototype.step=0,box2d.b2Profile.prototype.collide=0,box2d.b2Profile.prototype.solve=0,box2d.b2Profile.prototype.solveInit=0,box2d.b2Profile.prototype.solveVelocity=0,box2d.b2Profile.prototype.solvePosition=0,box2d.b2Profile.prototype.broadphase=0,box2d.b2Profile.prototype.solveTOI=0,box2d.b2Profile.prototype.Reset=function(){return this.step=0,this.collide=0,this.solve=0,this.solveInit=0,this.solveVelocity=0,this.solvePosition=0,this.broadphase=0,this.solveTOI=0,this},box2d.b2TimeStep=function(){},box2d.b2TimeStep.prototype.dt=0,box2d.b2TimeStep.prototype.inv_dt=0,box2d.b2TimeStep.prototype.dtRatio=0,box2d.b2TimeStep.prototype.velocityIterations=0,box2d.b2TimeStep.prototype.positionIterations=0,box2d.b2TimeStep.prototype.warmStarting=!1,box2d.b2TimeStep.prototype.Copy=function(a){return this.dt=a.dt,this.inv_dt=a.inv_dt,this.dtRatio=a.dtRatio,this.positionIterations=a.positionIterations,this.velocityIterations=a.velocityIterations,this.warmStarting=a.warmStarting,this},box2d.b2Position=function(){this.c=new box2d.b2Vec2},box2d.b2Position.prototype.c=null,box2d.b2Position.prototype.a=0,box2d.b2Position.MakeArray=function(a){return box2d.b2MakeArray(a,function(a){return new box2d.b2Position})},box2d.b2Velocity=function(){this.v=new box2d.b2Vec2},box2d.b2Velocity.prototype.v=null,box2d.b2Velocity.prototype.w=0,box2d.b2Velocity.MakeArray=function(a){return box2d.b2MakeArray(a,function(a){return new box2d.b2Velocity})},box2d.b2SolverData=function(){this.step=new box2d.b2TimeStep},box2d.b2SolverData.prototype.step=null,box2d.b2SolverData.prototype.positions=null,box2d.b2SolverData.prototype.velocities=null,goog.provide("box2d.b2Collision"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),goog.require("box2d.b2Distance"),box2d.b2ContactFeatureType={e_vertex:0,e_face:1},goog.exportProperty(box2d.b2ContactFeatureType,"e_vertex",box2d.b2ContactFeatureType.e_vertex),goog.exportProperty(box2d.b2ContactFeatureType,"e_face",box2d.b2ContactFeatureType.e_face),box2d.b2ContactFeature=function(a){this._id=a},box2d.b2ContactFeature.prototype._id=null,box2d.b2ContactFeature.prototype._indexA=0,box2d.b2ContactFeature.prototype._indexB=0,box2d.b2ContactFeature.prototype._typeA=0,box2d.b2ContactFeature.prototype._typeB=0,Object.defineProperty(box2d.b2ContactFeature.prototype,"indexA",{enumerable:!1,configurable:!0,get:function(){return this._indexA},set:function(a){this._indexA=a,this._id._key=4294967040&this._id._key|255&this._indexA}}),Object.defineProperty(box2d.b2ContactFeature.prototype,"indexB",{enumerable:!1,configurable:!0,get:function(){return this._indexB},set:function(a){this._indexB=a,this._id._key=4294902015&this._id._key|this._indexB<<8&65280}}),Object.defineProperty(box2d.b2ContactFeature.prototype,"typeA",{enumerable:!1,configurable:!0,get:function(){return this._typeA},set:function(a){this._typeA=a,this._id._key=4278255615&this._id._key|this._typeA<<16&16711680}}),Object.defineProperty(box2d.b2ContactFeature.prototype,"typeB",{enumerable:!1,configurable:!0,get:function(){return this._typeB},set:function(a){this._typeB=a,this._id._key=16777215&this._id._key|this._typeB<<24&4278190080}}),box2d.b2ContactID=function(){this.cf=new box2d.b2ContactFeature(this)},box2d.b2ContactID.prototype.cf=null,box2d.b2ContactID.prototype.key=0,box2d.b2ContactID.prototype.Copy=function(a){return this.key=a.key,this},box2d.b2ContactID.prototype.Clone=function(){return(new box2d.b2ContactID).Copy(this)},Object.defineProperty(box2d.b2ContactID.prototype,"key",{enumerable:!1,configurable:!0,get:function(){return this._key},set:function(a){this._key=a,this.cf._indexA=255&this._key,this.cf._indexB=this._key>>8&255,this.cf._typeA=this._key>>16&255,this.cf._typeB=this._key>>24&255}}),box2d.b2ManifoldPoint=function(){this.localPoint=new box2d.b2Vec2,this.id=new box2d.b2ContactID},box2d.b2ManifoldPoint.prototype.localPoint=null,box2d.b2ManifoldPoint.prototype.normalImpulse=0,box2d.b2ManifoldPoint.prototype.tangentImpulse=0,box2d.b2ManifoldPoint.prototype.id=null,box2d.b2ManifoldPoint.MakeArray=function(a){return box2d.b2MakeArray(a,function(a){return new box2d.b2ManifoldPoint})},box2d.b2ManifoldPoint.prototype.Reset=function(){this.localPoint.SetZero(),this.normalImpulse=0,this.tangentImpulse=0,this.id.key=0},box2d.b2ManifoldPoint.prototype.Copy=function(a){return this.localPoint.Copy(a.localPoint),this.normalImpulse=a.normalImpulse,this.tangentImpulse=a.tangentImpulse,this.id.Copy(a.id),this},box2d.b2ManifoldType={e_unknown:-1,e_circles:0,e_faceA:1,e_faceB:2},goog.exportProperty(box2d.b2ManifoldType,"e_unknown",box2d.b2ManifoldType.e_unknown),goog.exportProperty(box2d.b2ManifoldType,"e_circles",box2d.b2ManifoldType.e_circles),goog.exportProperty(box2d.b2ManifoldType,"e_faceA",box2d.b2ManifoldType.e_faceA),goog.exportProperty(box2d.b2ManifoldType,"e_faceB",box2d.b2ManifoldType.e_faceB),box2d.b2Manifold=function(){this.points=box2d.b2ManifoldPoint.MakeArray(box2d.b2_maxManifoldPoints),this.localNormal=new box2d.b2Vec2,this.localPoint=new box2d.b2Vec2,this.type=box2d.b2ManifoldType.e_unknown,this.pointCount=0},box2d.b2Manifold.prototype.points=null,box2d.b2Manifold.prototype.localNormal=null,box2d.b2Manifold.prototype.localPoint=null,box2d.b2Manifold.prototype.type=box2d.b2ManifoldType.e_unknown,box2d.b2Manifold.prototype.pointCount=0,box2d.b2Manifold.prototype.Reset=function(){for(var a=0,b=box2d.b2_maxManifoldPoints;a<b;++a)this.points[a].Reset();this.localNormal.SetZero(),this.localPoint.SetZero(),this.type=box2d.b2ManifoldType.e_unknown,this.pointCount=0},box2d.b2Manifold.prototype.Copy=function(a){this.pointCount=a.pointCount;for(var b=0,c=box2d.b2_maxManifoldPoints;b<c;++b)this.points[b].Copy(a.points[b]);return this.localNormal.Copy(a.localNormal),this.localPoint.Copy(a.localPoint),this.type=a.type,this},box2d.b2Manifold.prototype.Clone=function(){return(new box2d.b2Manifold).Copy(this)},box2d.b2WorldManifold=function(){this.normal=new box2d.b2Vec2,this.points=box2d.b2Vec2.MakeArray(box2d.b2_maxManifoldPoints),this.separations=box2d.b2MakeNumberArray(box2d.b2_maxManifoldPoints)},box2d.b2WorldManifold.prototype.normal=null,box2d.b2WorldManifold.prototype.points=null,box2d.b2WorldManifold.prototype.separations=null,box2d.b2WorldManifold.prototype.Initialize=function(a,b,c,d,e){if(0!==a.pointCount)switch(a.type){case box2d.b2ManifoldType.e_circles:this.normal.SetXY(1,0);var f=box2d.b2MulXV(b,a.localPoint,box2d.b2WorldManifold.prototype.Initialize.s_pointA),g=box2d.b2MulXV(d,a.points[0].localPoint,box2d.b2WorldManifold.prototype.Initialize.s_pointB);box2d.b2DistanceSquaredVV(f,g)>box2d.b2_epsilon_sq&&box2d.b2SubVV(g,f,this.normal).SelfNormalize();var h=box2d.b2AddVMulSV(f,c,this.normal,box2d.b2WorldManifold.prototype.Initialize.s_cA),i=box2d.b2SubVMulSV(g,e,this.normal,box2d.b2WorldManifold.prototype.Initialize.s_cB);box2d.b2MidVV(h,i,this.points[0]),this.separations[0]=box2d.b2DotVV(box2d.b2SubVV(i,h,box2d.b2Vec2.s_t0),this.normal);break;case box2d.b2ManifoldType.e_faceA:box2d.b2MulRV(b.q,a.localNormal,this.normal);for(var j=box2d.b2MulXV(b,a.localPoint,box2d.b2WorldManifold.prototype.Initialize.s_planePoint),k=0,l=a.pointCount;k<l;++k){var m=box2d.b2MulXV(d,a.points[k].localPoint,box2d.b2WorldManifold.prototype.Initialize.s_clipPoint),n=c-box2d.b2DotVV(box2d.b2SubVV(m,j,box2d.b2Vec2.s_t0),this.normal),h=box2d.b2AddVMulSV(m,n,this.normal,box2d.b2WorldManifold.prototype.Initialize.s_cA),i=box2d.b2SubVMulSV(m,e,this.normal,box2d.b2WorldManifold.prototype.Initialize.s_cB);box2d.b2MidVV(h,i,this.points[k]),this.separations[k]=box2d.b2DotVV(box2d.b2SubVV(i,h,box2d.b2Vec2.s_t0),this.normal)}break;case box2d.b2ManifoldType.e_faceB:box2d.b2MulRV(d.q,a.localNormal,this.normal);for(var j=box2d.b2MulXV(d,a.localPoint,box2d.b2WorldManifold.prototype.Initialize.s_planePoint),k=0,l=a.pointCount;k<l;++k){var m=box2d.b2MulXV(b,a.points[k].localPoint,box2d.b2WorldManifold.prototype.Initialize.s_clipPoint),n=e-box2d.b2DotVV(box2d.b2SubVV(m,j,box2d.b2Vec2.s_t0),this.normal),i=box2d.b2AddVMulSV(m,n,this.normal,box2d.b2WorldManifold.prototype.Initialize.s_cB),h=box2d.b2SubVMulSV(m,c,this.normal,box2d.b2WorldManifold.prototype.Initialize.s_cA);box2d.b2MidVV(h,i,this.points[k]),this.separations[k]=box2d.b2DotVV(box2d.b2SubVV(h,i,box2d.b2Vec2.s_t0),this.normal)}this.normal.SelfNeg()}},box2d.b2WorldManifold.prototype.Initialize.s_pointA=new box2d.b2Vec2,box2d.b2WorldManifold.prototype.Initialize.s_pointB=new box2d.b2Vec2,box2d.b2WorldManifold.prototype.Initialize.s_cA=new box2d.b2Vec2,box2d.b2WorldManifold.prototype.Initialize.s_cB=new box2d.b2Vec2,box2d.b2WorldManifold.prototype.Initialize.s_planePoint=new box2d.b2Vec2,box2d.b2WorldManifold.prototype.Initialize.s_clipPoint=new box2d.b2Vec2,box2d.b2PointState={b2_nullState:0,b2_addState:1,b2_persistState:2,b2_removeState:3},goog.exportProperty(box2d.b2PointState,"b2_nullState ",box2d.b2PointState.b2_nullState),goog.exportProperty(box2d.b2PointState,"b2_addState ",box2d.b2PointState.b2_addState),goog.exportProperty(box2d.b2PointState,"b2_persistState",box2d.b2PointState.b2_persistState),
|
||
goog.exportProperty(box2d.b2PointState,"b2_removeState ",box2d.b2PointState.b2_removeState),box2d.b2GetPointStates=function(a,b,c,d){for(var e=0,f=c.pointCount;e<f;++e){var g=c.points[e].id,h=g.key;a[e]=box2d.b2PointState.b2_removeState;for(var i=0,j=d.pointCount;i<j;++i)if(d.points[i].id.key===h){a[e]=box2d.b2PointState.b2_persistState;break}}for(var f=box2d.b2_maxManifoldPoints;e<f;++e)a[e]=box2d.b2PointState.b2_nullState;for(var e=0,f=d.pointCount;e<f;++e){var g=d.points[e].id,h=g.key;b[e]=box2d.b2PointState.b2_addState;for(var i=0,j=c.pointCount;i<j;++i)if(c.points[i].id.key===h){b[e]=box2d.b2PointState.b2_persistState;break}}for(var f=box2d.b2_maxManifoldPoints;e<f;++e)b[e]=box2d.b2PointState.b2_nullState},box2d.b2ClipVertex=function(){this.v=new box2d.b2Vec2,this.id=new box2d.b2ContactID},box2d.b2ClipVertex.prototype.v=null,box2d.b2ClipVertex.prototype.id=null,box2d.b2ClipVertex.MakeArray=function(a){return box2d.b2MakeArray(a,function(a){return new box2d.b2ClipVertex})},box2d.b2ClipVertex.prototype.Copy=function(a){return this.v.Copy(a.v),this.id.Copy(a.id),this},box2d.b2RayCastInput=function(){this.p1=new box2d.b2Vec2,this.p2=new box2d.b2Vec2,this.maxFraction=1},box2d.b2RayCastInput.prototype.p1=null,box2d.b2RayCastInput.prototype.p2=null,box2d.b2RayCastInput.prototype.maxFraction=1,box2d.b2RayCastInput.prototype.Copy=function(a){return this.p1.Copy(a.p1),this.p2.Copy(a.p2),this.maxFraction=a.maxFraction,this},box2d.b2RayCastOutput=function(){this.normal=new box2d.b2Vec2,this.fraction=0},box2d.b2RayCastOutput.prototype.normal=null,box2d.b2RayCastOutput.prototype.fraction=0;box2d.b2RayCastOutput.prototype.Copy=function(a){return this.normal.Copy(a.normal),this.fraction=a.fraction,this},box2d.b2AABB=function(){this.lowerBound=new box2d.b2Vec2,this.upperBound=new box2d.b2Vec2,this.m_out_center=new box2d.b2Vec2,this.m_out_extent=new box2d.b2Vec2},box2d.b2AABB.prototype.lowerBound=null,box2d.b2AABB.prototype.upperBound=null,box2d.b2AABB.prototype.m_out_center=null,box2d.b2AABB.prototype.m_out_extent=null,box2d.b2AABB.prototype.Copy=function(a){return this.lowerBound.Copy(a.lowerBound),this.upperBound.Copy(a.upperBound),this},box2d.b2AABB.prototype.IsValid=function(){var a=this.upperBound.x-this.lowerBound.x,b=this.upperBound.y-this.lowerBound.y,c=a>=0&&b>=0;return c=c&&this.lowerBound.IsValid()&&this.upperBound.IsValid()},box2d.b2AABB.prototype.GetCenter=function(){return box2d.b2MidVV(this.lowerBound,this.upperBound,this.m_out_center)},box2d.b2AABB.prototype.GetExtents=function(){return box2d.b2ExtVV(this.lowerBound,this.upperBound,this.m_out_extent)},box2d.b2AABB.prototype.GetPerimeter=function(){return 2*(this.upperBound.x-this.lowerBound.x+(this.upperBound.y-this.lowerBound.y))},box2d.b2AABB.prototype.Combine1=function(a){return this.lowerBound.x=box2d.b2Min(this.lowerBound.x,a.lowerBound.x),this.lowerBound.y=box2d.b2Min(this.lowerBound.y,a.lowerBound.y),this.upperBound.x=box2d.b2Max(this.upperBound.x,a.upperBound.x),this.upperBound.y=box2d.b2Max(this.upperBound.y,a.upperBound.y),this},box2d.b2AABB.prototype.Combine2=function(a,b){return this.lowerBound.x=box2d.b2Min(a.lowerBound.x,b.lowerBound.x),this.lowerBound.y=box2d.b2Min(a.lowerBound.y,b.lowerBound.y),this.upperBound.x=box2d.b2Max(a.upperBound.x,b.upperBound.x),this.upperBound.y=box2d.b2Max(a.upperBound.y,b.upperBound.y),this},box2d.b2AABB.Combine=function(a,b,c){return c.Combine2(a,b),c},box2d.b2AABB.prototype.Contains=function(a){var b=!0;return b=b&&this.lowerBound.x<=a.lowerBound.x,b=b&&this.lowerBound.y<=a.lowerBound.y,b=b&&a.upperBound.x<=this.upperBound.x,b=b&&a.upperBound.y<=this.upperBound.y},box2d.b2AABB.prototype.RayCast=function(a,b){var c=-box2d.b2_maxFloat,d=box2d.b2_maxFloat,e=b.p1.x,f=b.p1.y,g=b.p2.x-b.p1.x,h=b.p2.y-b.p1.y,i=box2d.b2Abs(g),j=box2d.b2Abs(h),k=a.normal;if(i<box2d.b2_epsilon){if(e<this.lowerBound.x||this.upperBound.x<e)return!1}else{var l=1/g,m=(this.lowerBound.x-e)*l,n=(this.upperBound.x-e)*l,o=-1;if(m>n){var p=m;m=n,n=p,o=1}if(m>c&&(k.x=o,k.y=0,c=m),d=box2d.b2Min(d,n),c>d)return!1}if(j<box2d.b2_epsilon){if(f<this.lowerBound.y||this.upperBound.y<f)return!1}else{var l=1/h,m=(this.lowerBound.y-f)*l,n=(this.upperBound.y-f)*l,o=-1;if(m>n){var p=m;m=n,n=p,o=1}if(m>c&&(k.x=0,k.y=o,c=m),d=box2d.b2Min(d,n),c>d)return!1}return!(c<0||b.maxFraction<c)&&(a.fraction=c,!0)},box2d.b2AABB.prototype.TestOverlap=function(a){var b=a.lowerBound.x-this.upperBound.x,c=a.lowerBound.y-this.upperBound.y,d=this.lowerBound.x-a.upperBound.x,e=this.lowerBound.y-a.upperBound.y;return!(b>0||c>0)&&!(d>0||e>0)},box2d.b2TestOverlapAABB=function(a,b){var c=b.lowerBound.x-a.upperBound.x,d=b.lowerBound.y-a.upperBound.y,e=a.lowerBound.x-b.upperBound.x,f=a.lowerBound.y-b.upperBound.y;return!(c>0||d>0)&&!(e>0||f>0)},box2d.b2ClipSegmentToLine=function(a,b,c,d,e){var f=0,g=b[0],h=b[1],i=box2d.b2DotVV(c,g.v)-d,j=box2d.b2DotVV(c,h.v)-d;if(i<=0&&a[f++].Copy(g),j<=0&&a[f++].Copy(h),i*j<0){var k=i/(i-j),l=a[f].v;l.x=g.v.x+k*(h.v.x-g.v.x),l.y=g.v.y+k*(h.v.y-g.v.y);var m=a[f].id;m.cf.indexA=e,m.cf.indexB=g.id.cf.indexB,m.cf.typeA=box2d.b2ContactFeatureType.e_vertex,m.cf.typeB=box2d.b2ContactFeatureType.e_face,++f}return f},box2d.b2TestOverlapShape=function(a,b,c,d,e,f){var g=box2d.b2TestOverlapShape.s_input.Reset();g.proxyA.SetShape(a,b),g.proxyB.SetShape(c,d),g.transformA.Copy(e),g.transformB.Copy(f),g.useRadii=!0;var h=box2d.b2TestOverlapShape.s_simplexCache.Reset();h.count=0;var i=box2d.b2TestOverlapShape.s_output.Reset();return box2d.b2Distance(i,h,g),i.distance<10*box2d.b2_epsilon},box2d.b2TestOverlapShape.s_input=new box2d.b2DistanceInput,box2d.b2TestOverlapShape.s_simplexCache=new box2d.b2SimplexCache,box2d.b2TestOverlapShape.s_output=new box2d.b2DistanceOutput,goog.provide("box2d.b2Timer"),goog.require("box2d.b2Settings"),box2d.b2Timer=function(){this.m_start=(new Date).getTime()},box2d.b2Timer.prototype.m_start=0,box2d.b2Timer.prototype.Reset=function(){return this.m_start=(new Date).getTime(),this},box2d.b2Timer.prototype.GetMilliseconds=function(){return(new Date).getTime()-this.m_start},box2d.b2Counter=function(){},box2d.b2Counter.prototype.m_count=0,box2d.b2Counter.prototype.m_min_count=0,box2d.b2Counter.prototype.m_max_count=0,box2d.b2Counter.prototype.GetCount=function(){return this.m_count},box2d.b2Counter.prototype.GetMinCount=function(){return this.m_min_count},box2d.b2Counter.prototype.GetMaxCount=function(){return this.m_max_count},box2d.b2Counter.prototype.ResetCount=function(){var a=this.m_count;return this.m_count=0,a},box2d.b2Counter.prototype.ResetMinCount=function(){this.m_min_count=0},box2d.b2Counter.prototype.ResetMaxCount=function(){this.m_max_count=0},box2d.b2Counter.prototype.Increment=function(){this.m_count++,this.m_max_count<this.m_count&&(this.m_max_count=this.m_count)},box2d.b2Counter.prototype.Decrement=function(){this.m_count--,this.m_min_count>this.m_count&&(this.m_min_count=this.m_count)},goog.provide("box2d.b2TimeOfImpact"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Distance"),goog.require("box2d.b2Math"),goog.require("box2d.b2Timer"),box2d.b2_toiTime=0,box2d.b2_toiMaxTime=0,box2d.b2_toiCalls=0,box2d.b2_toiIters=0,box2d.b2_toiMaxIters=0,box2d.b2_toiRootIters=0,box2d.b2_toiMaxRootIters=0,box2d.b2TOIInput=function(){this.proxyA=new box2d.b2DistanceProxy,this.proxyB=new box2d.b2DistanceProxy,this.sweepA=new box2d.b2Sweep,this.sweepB=new box2d.b2Sweep},box2d.b2TOIInput.prototype.proxyA=null,box2d.b2TOIInput.prototype.proxyB=null,box2d.b2TOIInput.prototype.sweepA=null,box2d.b2TOIInput.prototype.sweepB=null,box2d.b2TOIInput.prototype.tMax=0,box2d.b2TOIOutputState={e_unknown:0,e_failed:1,e_overlapped:2,e_touching:3,e_separated:4},goog.exportProperty(box2d.b2TOIOutputState,"e_unknown",box2d.b2TOIOutputState.e_unknown),goog.exportProperty(box2d.b2TOIOutputState,"e_failed",box2d.b2TOIOutputState.e_failed),goog.exportProperty(box2d.b2TOIOutputState,"e_overlapped",box2d.b2TOIOutputState.e_overlapped),goog.exportProperty(box2d.b2TOIOutputState,"e_touching",box2d.b2TOIOutputState.e_touching),goog.exportProperty(box2d.b2TOIOutputState,"e_separated",box2d.b2TOIOutputState.e_separated),box2d.b2TOIOutput=function(){},box2d.b2TOIOutput.prototype.state=box2d.b2TOIOutputState.e_unknown,box2d.b2TOIOutput.prototype.t=0,box2d.b2SeparationFunctionType={e_unknown:-1,e_points:0,e_faceA:1,e_faceB:2},goog.exportProperty(box2d.b2SeparationFunctionType,"e_unknown",box2d.b2SeparationFunctionType.e_unknown),goog.exportProperty(box2d.b2SeparationFunctionType,"e_points",box2d.b2SeparationFunctionType.e_points),goog.exportProperty(box2d.b2SeparationFunctionType,"e_faceA",box2d.b2SeparationFunctionType.e_faceA),goog.exportProperty(box2d.b2SeparationFunctionType,"e_faceB",box2d.b2SeparationFunctionType.e_faceB),box2d.b2SeparationFunction=function(){this.m_sweepA=new box2d.b2Sweep,this.m_sweepB=new box2d.b2Sweep,this.m_localPoint=new box2d.b2Vec2,this.m_axis=new box2d.b2Vec2},box2d.b2SeparationFunction.prototype.m_proxyA=null,box2d.b2SeparationFunction.prototype.m_proxyB=null,box2d.b2SeparationFunction.prototype.m_sweepA=null,box2d.b2SeparationFunction.prototype.m_sweepB=null,box2d.b2SeparationFunction.prototype.m_type=box2d.b2SeparationFunctionType.e_unknown,box2d.b2SeparationFunction.prototype.m_localPoint=null,box2d.b2SeparationFunction.prototype.m_axis=null,box2d.b2SeparationFunction.prototype.Initialize=function(a,b,c,d,e,f){this.m_proxyA=b,this.m_proxyB=d;var g=a.count;box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<g&&g<3),this.m_sweepA.Copy(c),this.m_sweepB.Copy(e);var h=box2d.b2TimeOfImpact.s_xfA,i=box2d.b2TimeOfImpact.s_xfB;if(this.m_sweepA.GetTransform(h,f),this.m_sweepB.GetTransform(i,f),1===g){this.m_type=box2d.b2SeparationFunctionType.e_points;var j=this.m_proxyA.GetVertex(a.indexA[0]),k=this.m_proxyB.GetVertex(a.indexB[0]),l=box2d.b2MulXV(h,j,box2d.b2TimeOfImpact.s_pointA),m=box2d.b2MulXV(i,k,box2d.b2TimeOfImpact.s_pointB);box2d.b2SubVV(m,l,this.m_axis);var n=this.m_axis.Normalize();return n}if(a.indexA[0]===a.indexA[1]){this.m_type=box2d.b2SeparationFunctionType.e_faceB;var o=this.m_proxyB.GetVertex(a.indexB[0]),p=this.m_proxyB.GetVertex(a.indexB[1]);box2d.b2CrossVOne(box2d.b2SubVV(p,o,box2d.b2Vec2.s_t0),this.m_axis).SelfNormalize();var q=box2d.b2MulRV(i.q,this.m_axis,box2d.b2TimeOfImpact.s_normal);box2d.b2MidVV(o,p,this.m_localPoint);var m=box2d.b2MulXV(i,this.m_localPoint,box2d.b2TimeOfImpact.s_pointB),j=this.m_proxyA.GetVertex(a.indexA[0]),l=box2d.b2MulXV(h,j,box2d.b2TimeOfImpact.s_pointA),n=box2d.b2DotVV(box2d.b2SubVV(l,m,box2d.b2Vec2.s_t0),q);return n<0&&(this.m_axis.SelfNeg(),n=-n),n}this.m_type=box2d.b2SeparationFunctionType.e_faceA;var r=this.m_proxyA.GetVertex(a.indexA[0]),s=this.m_proxyA.GetVertex(a.indexA[1]);box2d.b2CrossVOne(box2d.b2SubVV(s,r,box2d.b2Vec2.s_t0),this.m_axis).SelfNormalize();var q=box2d.b2MulRV(h.q,this.m_axis,box2d.b2TimeOfImpact.s_normal);box2d.b2MidVV(r,s,this.m_localPoint);var l=box2d.b2MulXV(h,this.m_localPoint,box2d.b2TimeOfImpact.s_pointA),k=this.m_proxyB.GetVertex(a.indexB[0]),m=box2d.b2MulXV(i,k,box2d.b2TimeOfImpact.s_pointB),n=box2d.b2DotVV(box2d.b2SubVV(m,l,box2d.b2Vec2.s_t0),q);return n<0&&(this.m_axis.SelfNeg(),n=-n),n},box2d.b2SeparationFunction.prototype.FindMinSeparation=function(a,b,c){var d=box2d.b2TimeOfImpact.s_xfA,e=box2d.b2TimeOfImpact.s_xfB;switch(this.m_sweepA.GetTransform(d,c),this.m_sweepB.GetTransform(e,c),this.m_type){case box2d.b2SeparationFunctionType.e_points:var f=box2d.b2MulTRV(d.q,this.m_axis,box2d.b2TimeOfImpact.s_axisA),g=box2d.b2MulTRV(e.q,box2d.b2NegV(this.m_axis,box2d.b2Vec2.s_t0),box2d.b2TimeOfImpact.s_axisB);a[0]=this.m_proxyA.GetSupport(f),b[0]=this.m_proxyB.GetSupport(g);var h=this.m_proxyA.GetVertex(a[0]),i=this.m_proxyB.GetVertex(b[0]),j=box2d.b2MulXV(d,h,box2d.b2TimeOfImpact.s_pointA),k=box2d.b2MulXV(e,i,box2d.b2TimeOfImpact.s_pointB),l=box2d.b2DotVV(box2d.b2SubVV(k,j,box2d.b2Vec2.s_t0),this.m_axis);return l;case box2d.b2SeparationFunctionType.e_faceA:var m=box2d.b2MulRV(d.q,this.m_axis,box2d.b2TimeOfImpact.s_normal),j=box2d.b2MulXV(d,this.m_localPoint,box2d.b2TimeOfImpact.s_pointA),g=box2d.b2MulTRV(e.q,box2d.b2NegV(m,box2d.b2Vec2.s_t0),box2d.b2TimeOfImpact.s_axisB);a[0]=-1,b[0]=this.m_proxyB.GetSupport(g);var i=this.m_proxyB.GetVertex(b[0]),k=box2d.b2MulXV(e,i,box2d.b2TimeOfImpact.s_pointB),l=box2d.b2DotVV(box2d.b2SubVV(k,j,box2d.b2Vec2.s_t0),m);return l;case box2d.b2SeparationFunctionType.e_faceB:var m=box2d.b2MulRV(e.q,this.m_axis,box2d.b2TimeOfImpact.s_normal),k=box2d.b2MulXV(e,this.m_localPoint,box2d.b2TimeOfImpact.s_pointB),f=box2d.b2MulTRV(d.q,box2d.b2NegV(m,box2d.b2Vec2.s_t0),box2d.b2TimeOfImpact.s_axisA);b[0]=-1,a[0]=this.m_proxyA.GetSupport(f);var h=this.m_proxyA.GetVertex(a[0]),j=box2d.b2MulXV(d,h,box2d.b2TimeOfImpact.s_pointA),l=box2d.b2DotVV(box2d.b2SubVV(j,k,box2d.b2Vec2.s_t0),m);return l;default:return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),a[0]=-1,b[0]=-1,0}},box2d.b2SeparationFunction.prototype.Evaluate=function(a,b,c){var d=box2d.b2TimeOfImpact.s_xfA,e=box2d.b2TimeOfImpact.s_xfB;switch(this.m_sweepA.GetTransform(d,c),this.m_sweepB.GetTransform(e,c),this.m_type){case box2d.b2SeparationFunctionType.e_points:var f=this.m_proxyA.GetVertex(a),g=this.m_proxyB.GetVertex(b),h=box2d.b2MulXV(d,f,box2d.b2TimeOfImpact.s_pointA),i=box2d.b2MulXV(e,g,box2d.b2TimeOfImpact.s_pointB),j=box2d.b2DotVV(box2d.b2SubVV(i,h,box2d.b2Vec2.s_t0),this.m_axis);return j;case box2d.b2SeparationFunctionType.e_faceA:var k=box2d.b2MulRV(d.q,this.m_axis,box2d.b2TimeOfImpact.s_normal),h=box2d.b2MulXV(d,this.m_localPoint,box2d.b2TimeOfImpact.s_pointA),g=this.m_proxyB.GetVertex(b),i=box2d.b2MulXV(e,g,box2d.b2TimeOfImpact.s_pointB),j=box2d.b2DotVV(box2d.b2SubVV(i,h,box2d.b2Vec2.s_t0),k);return j;case box2d.b2SeparationFunctionType.e_faceB:var k=box2d.b2MulRV(e.q,this.m_axis,box2d.b2TimeOfImpact.s_normal),i=box2d.b2MulXV(e,this.m_localPoint,box2d.b2TimeOfImpact.s_pointB),f=this.m_proxyA.GetVertex(a),h=box2d.b2MulXV(d,f,box2d.b2TimeOfImpact.s_pointA),j=box2d.b2DotVV(box2d.b2SubVV(h,i,box2d.b2Vec2.s_t0),k);return j;default:return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),0}},box2d.b2TimeOfImpact=function(a,b){var c=box2d.b2TimeOfImpact.s_timer.Reset();++box2d.b2_toiCalls,a.state=box2d.b2TOIOutputState.e_unknown,a.t=b.tMax;var d=b.proxyA,e=b.proxyB,f=box2d.b2TimeOfImpact.s_sweepA.Copy(b.sweepA),g=box2d.b2TimeOfImpact.s_sweepB.Copy(b.sweepB);f.Normalize(),g.Normalize();var h=b.tMax,i=d.m_radius+e.m_radius,j=box2d.b2Max(box2d.b2_linearSlop,i-3*box2d.b2_linearSlop),k=.25*box2d.b2_linearSlop;box2d.ENABLE_ASSERTS&&box2d.b2Assert(j>k);var l=0,m=0,n=box2d.b2TimeOfImpact.s_cache;n.count=0;var o=box2d.b2TimeOfImpact.s_distanceInput;for(o.proxyA=b.proxyA,o.proxyB=b.proxyB,o.useRadii=!1;;){var p=box2d.b2TimeOfImpact.s_xfA,q=box2d.b2TimeOfImpact.s_xfB;f.GetTransform(p,l),g.GetTransform(q,l),o.transformA.Copy(p),o.transformB.Copy(q);var r=box2d.b2TimeOfImpact.s_distanceOutput;if(box2d.b2Distance(r,n,o),r.distance<=0){a.state=box2d.b2TOIOutputState.e_overlapped,a.t=0;break}if(r.distance<j+k){a.state=box2d.b2TOIOutputState.e_touching,a.t=l;break}var s=box2d.b2TimeOfImpact.s_fcn;s.Initialize(n,d,f,e,g,l);for(var t=!1,u=h,v=0;;){var w=box2d.b2TimeOfImpact.s_indexA,x=box2d.b2TimeOfImpact.s_indexB,y=s.FindMinSeparation(w,x,u);if(y>j+k){a.state=box2d.b2TOIOutputState.e_separated,a.t=h,t=!0;break}if(y>j-k){l=u;break}var z=s.Evaluate(w[0],x[0],l);if(z<j-k){a.state=box2d.b2TOIOutputState.e_failed,a.t=l,t=!0;break}if(z<=j+k){a.state=box2d.b2TOIOutputState.e_touching,a.t=l,t=!0;break}for(var A=0,B=l,C=u;;){var D=0;D=1&A?B+(j-z)*(C-B)/(y-z):.5*(B+C),++A,++box2d.b2_toiRootIters;var E=s.Evaluate(w[0],x[0],D);if(box2d.b2Abs(E-j)<k){u=D;break}if(E>j?(B=D,z=E):(C=D,y=E),50===A)break}if(box2d.b2_toiMaxRootIters=box2d.b2Max(box2d.b2_toiMaxRootIters,A),++v===box2d.b2_maxPolygonVertices)break}if(++m,++box2d.b2_toiIters,t)break;if(20===m){a.state=box2d.b2TOIOutputState.e_failed,a.t=l;break}}box2d.b2_toiMaxIters=box2d.b2Max(box2d.b2_toiMaxIters,m);var F=c.GetMilliseconds();box2d.b2_toiMaxTime=box2d.b2Max(box2d.b2_toiMaxTime,F),box2d.b2_toiTime+=F},box2d.b2TimeOfImpact.s_timer=new box2d.b2Timer,box2d.b2TimeOfImpact.s_cache=new box2d.b2SimplexCache,box2d.b2TimeOfImpact.s_distanceInput=new box2d.b2DistanceInput,box2d.b2TimeOfImpact.s_distanceOutput=new box2d.b2DistanceOutput,box2d.b2TimeOfImpact.s_xfA=new box2d.b2Transform,box2d.b2TimeOfImpact.s_xfB=new box2d.b2Transform,box2d.b2TimeOfImpact.s_indexA=box2d.b2MakeNumberArray(1),box2d.b2TimeOfImpact.s_indexB=box2d.b2MakeNumberArray(1),box2d.b2TimeOfImpact.s_fcn=new box2d.b2SeparationFunction,box2d.b2TimeOfImpact.s_sweepA=new box2d.b2Sweep,box2d.b2TimeOfImpact.s_sweepB=new box2d.b2Sweep,box2d.b2TimeOfImpact.s_pointA=new box2d.b2Vec2,box2d.b2TimeOfImpact.s_pointB=new box2d.b2Vec2,box2d.b2TimeOfImpact.s_normal=new box2d.b2Vec2,box2d.b2TimeOfImpact.s_axisA=new box2d.b2Vec2,box2d.b2TimeOfImpact.s_axisB=new box2d.b2Vec2,goog.provide("box2d.b2Contact"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Collision"),goog.require("box2d.b2TimeOfImpact"),box2d.b2MixFriction=function(a,b){return box2d.b2Sqrt(a*b)},box2d.b2MixRestitution=function(a,b){return a>b?a:b},box2d.b2ContactEdge=function(){},box2d.b2ContactEdge.prototype.other=null,box2d.b2ContactEdge.prototype.contact=null,box2d.b2ContactEdge.prototype.prev=null,box2d.b2ContactEdge.prototype.next=null,box2d.b2ContactFlag={e_none:0,e_islandFlag:1,e_touchingFlag:2,e_enabledFlag:4,e_filterFlag:8,e_bulletHitFlag:16,e_toiFlag:32},goog.exportProperty(box2d.b2ContactFlag,"e_none",box2d.b2ContactFlag.e_none),goog.exportProperty(box2d.b2ContactFlag,"e_islandFlag",box2d.b2ContactFlag.e_islandFlag),goog.exportProperty(box2d.b2ContactFlag,"e_touchingFlag",box2d.b2ContactFlag.e_touchingFlag),goog.exportProperty(box2d.b2ContactFlag,"e_enabledFlag",box2d.b2ContactFlag.e_enabledFlag),goog.exportProperty(box2d.b2ContactFlag,"e_filterFlag",box2d.b2ContactFlag.e_filterFlag),goog.exportProperty(box2d.b2ContactFlag,"e_bulletHitFlag",box2d.b2ContactFlag.e_bulletHitFlag),goog.exportProperty(box2d.b2ContactFlag,"e_toiFlag",box2d.b2ContactFlag.e_toiFlag),box2d.b2Contact=function(){this.m_nodeA=new box2d.b2ContactEdge,this.m_nodeB=new box2d.b2ContactEdge,this.m_manifold=new box2d.b2Manifold,this.m_oldManifold=new box2d.b2Manifold},box2d.b2Contact.prototype.m_flags=box2d.b2ContactFlag.e_none,box2d.b2Contact.prototype.m_prev=null,box2d.b2Contact.prototype.m_next=null,box2d.b2Contact.prototype.m_nodeA=null,box2d.b2Contact.prototype.m_nodeB=null,box2d.b2Contact.prototype.m_fixtureA=null,box2d.b2Contact.prototype.m_fixtureB=null,box2d.b2Contact.prototype.m_indexA=0,box2d.b2Contact.prototype.m_indexB=0,box2d.b2Contact.prototype.m_manifold=null,box2d.b2Contact.prototype.m_toiCount=0,box2d.b2Contact.prototype.m_toi=0,box2d.b2Contact.prototype.m_friction=0,box2d.b2Contact.prototype.m_restitution=0,box2d.b2Contact.prototype.m_tangentSpeed=0,box2d.b2Contact.prototype.m_oldManifold=null,box2d.b2Contact.prototype.GetManifold=function(){return this.m_manifold},box2d.b2Contact.prototype.GetWorldManifold=function(a){var b=this.m_fixtureA.GetBody(),c=this.m_fixtureB.GetBody(),d=this.m_fixtureA.GetShape(),e=this.m_fixtureB.GetShape();a.Initialize(this.m_manifold,b.GetTransform(),d.m_radius,c.GetTransform(),e.m_radius)},box2d.b2Contact.prototype.IsTouching=function(){return(this.m_flags&box2d.b2ContactFlag.e_touchingFlag)===box2d.b2ContactFlag.e_touchingFlag},box2d.b2Contact.prototype.SetEnabled=function(a){a?this.m_flags|=box2d.b2ContactFlag.e_enabledFlag:this.m_flags&=~box2d.b2ContactFlag.e_enabledFlag},box2d.b2Contact.prototype.IsEnabled=function(){return(this.m_flags&box2d.b2ContactFlag.e_enabledFlag)===box2d.b2ContactFlag.e_enabledFlag},box2d.b2Contact.prototype.GetNext=function(){return this.m_next},box2d.b2Contact.prototype.GetFixtureA=function(){return this.m_fixtureA},box2d.b2Contact.prototype.GetChildIndexA=function(){return this.m_indexA},box2d.b2Contact.prototype.GetFixtureB=function(){return this.m_fixtureB},box2d.b2Contact.prototype.GetChildIndexB=function(){return this.m_indexB},box2d.b2Contact.prototype.Evaluate=function(a,b,c){},box2d.b2Contact.prototype.FlagForFiltering=function(){this.m_flags|=box2d.b2ContactFlag.e_filterFlag},box2d.b2Contact.prototype.SetFriction=function(a){this.m_friction=a},box2d.b2Contact.prototype.GetFriction=function(){return this.m_friction},box2d.b2Contact.prototype.ResetFriction=function(){this.m_friction=box2d.b2MixFriction(this.m_fixtureA.m_friction,this.m_fixtureB.m_friction)},box2d.b2Contact.prototype.SetRestitution=function(a){this.m_restitution=a},box2d.b2Contact.prototype.GetRestitution=function(){return this.m_restitution},box2d.b2Contact.prototype.ResetRestitution=function(){this.m_restitution=box2d.b2MixRestitution(this.m_fixtureA.m_restitution,this.m_fixtureB.m_restitution)},box2d.b2Contact.prototype.SetTangentSpeed=function(a){this.m_tangentSpeed=a},box2d.b2Contact.prototype.GetTangentSpeed=function(){return this.m_tangentSpeed},box2d.b2Contact.prototype.Reset=function(a,b,c,d){this.m_flags=box2d.b2ContactFlag.e_enabledFlag,this.m_fixtureA=a,this.m_fixtureB=c,this.m_indexA=b,this.m_indexB=d,this.m_manifold.pointCount=0,this.m_prev=null,this.m_next=null,this.m_nodeA.contact=null,this.m_nodeA.prev=null,this.m_nodeA.next=null,this.m_nodeA.other=null,this.m_nodeB.contact=null,this.m_nodeB.prev=null,this.m_nodeB.next=null,this.m_nodeB.other=null,this.m_toiCount=0,this.m_friction=box2d.b2MixFriction(this.m_fixtureA.m_friction,this.m_fixtureB.m_friction),this.m_restitution=box2d.b2MixRestitution(this.m_fixtureA.m_restitution,this.m_fixtureB.m_restitution)},box2d.b2Contact.prototype.Update=function(a){var b=this.m_oldManifold;this.m_oldManifold=this.m_manifold,this.m_manifold=b,this.m_flags|=box2d.b2ContactFlag.e_enabledFlag;var c=!1,d=(this.m_flags&box2d.b2ContactFlag.e_touchingFlag)===box2d.b2ContactFlag.e_touchingFlag,e=this.m_fixtureA.IsSensor(),f=this.m_fixtureB.IsSensor(),g=e||f,h=this.m_fixtureA.GetBody(),i=this.m_fixtureB.GetBody(),j=h.GetTransform(),k=i.GetTransform();if(g){var l=this.m_fixtureA.GetShape(),m=this.m_fixtureB.GetShape();c=box2d.b2TestOverlapShape(l,this.m_indexA,m,this.m_indexB,j,k),this.m_manifold.pointCount=0}else{this.Evaluate(this.m_manifold,j,k),c=this.m_manifold.pointCount>0;for(var n=0;n<this.m_manifold.pointCount;++n){var o=this.m_manifold.points[n];o.normalImpulse=0,o.tangentImpulse=0;for(var p=o.id,q=0;q<this.m_oldManifold.pointCount;++q){var r=this.m_oldManifold.points[q];if(r.id.key===p.key){o.normalImpulse=r.normalImpulse,o.tangentImpulse=r.tangentImpulse;break}}}c!==d&&(h.SetAwake(!0),i.SetAwake(!0))}c?this.m_flags|=box2d.b2ContactFlag.e_touchingFlag:this.m_flags&=~box2d.b2ContactFlag.e_touchingFlag,!1===d&&!0===c&&a&&a.BeginContact(this),!0===d&&!1===c&&a&&a.EndContact(this),!1===g&&c&&a&&a.PreSolve(this,this.m_oldManifold)},box2d.b2Contact.prototype.ComputeTOI=function(a,b){var c=box2d.b2Contact.prototype.ComputeTOI.s_input;c.proxyA.SetShape(this.m_fixtureA.GetShape(),this.m_indexA),c.proxyB.SetShape(this.m_fixtureB.GetShape(),this.m_indexB),c.sweepA.Copy(a),c.sweepB.Copy(b),c.tMax=box2d.b2_linearSlop;var d=box2d.b2Contact.prototype.ComputeTOI.s_output;return box2d.b2TimeOfImpact(d,c),d.t},box2d.b2Contact.prototype.ComputeTOI.s_input=new box2d.b2TOIInput,box2d.b2Contact.prototype.ComputeTOI.s_output=new box2d.b2TOIOutput,goog.provide("box2d.b2PolygonAndCircleContact"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Contact"),box2d.b2PolygonAndCircleContact=function(){goog.base(this)},goog.inherits(box2d.b2PolygonAndCircleContact,box2d.b2Contact),box2d.b2PolygonAndCircleContact.Create=function(a){return new box2d.b2PolygonAndCircleContact},box2d.b2PolygonAndCircleContact.Destroy=function(a,b){},box2d.b2PolygonAndCircleContact.prototype.Reset=function(a,b,c,d){goog.base(this,"Reset",a,b,c,d),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.GetType()===box2d.b2ShapeType.e_polygonShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(c.GetType()===box2d.b2ShapeType.e_circleShape)},box2d.b2PolygonAndCircleContact.prototype.Evaluate=function(a,b,c){var d=this.m_fixtureA.GetShape(),e=this.m_fixtureB.GetShape();box2d.ENABLE_ASSERTS&&box2d.b2Assert(d instanceof box2d.b2PolygonShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(e instanceof box2d.b2CircleShape),box2d.b2CollidePolygonAndCircle(a,d instanceof box2d.b2PolygonShape?d:null,b,e instanceof box2d.b2CircleShape?e:null,c)},goog.provide("box2d.b2EdgeAndPolygonContact"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Contact"),box2d.b2EdgeAndPolygonContact=function(){goog.base(this)},goog.inherits(box2d.b2EdgeAndPolygonContact,box2d.b2Contact),box2d.b2EdgeAndPolygonContact.Create=function(a){return new box2d.b2EdgeAndPolygonContact},box2d.b2EdgeAndPolygonContact.Destroy=function(a,b){},box2d.b2EdgeAndPolygonContact.prototype.Reset=function(a,b,c,d){goog.base(this,"Reset",a,b,c,d),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.GetType()===box2d.b2ShapeType.e_edgeShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(c.GetType()===box2d.b2ShapeType.e_polygonShape)},box2d.b2EdgeAndPolygonContact.prototype.Evaluate=function(a,b,c){var d=this.m_fixtureA.GetShape(),e=this.m_fixtureB.GetShape();box2d.ENABLE_ASSERTS&&box2d.b2Assert(d instanceof box2d.b2EdgeShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(e instanceof box2d.b2PolygonShape),box2d.b2CollideEdgeAndPolygon(a,d instanceof box2d.b2EdgeShape?d:null,b,e instanceof box2d.b2PolygonShape?e:null,c)},goog.provide("box2d.b2Shape"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),goog.require("box2d.b2Distance"),box2d.b2MassData=function(){this.center=new box2d.b2Vec2(0,0)},box2d.b2MassData.prototype.mass=0,box2d.b2MassData.prototype.center=null,box2d.b2MassData.prototype.I=0,box2d.b2ShapeType={e_unknown:-1,e_circleShape:0,e_edgeShape:1,e_polygonShape:2,e_chainShape:3,e_shapeTypeCount:4},goog.exportProperty(box2d.b2ShapeType,"e_unknown",box2d.b2ShapeType.e_unknown),goog.exportProperty(box2d.b2ShapeType,"e_circleShape",box2d.b2ShapeType.e_circleShape),goog.exportProperty(box2d.b2ShapeType,"e_edgeShape",box2d.b2ShapeType.e_edgeShape),goog.exportProperty(box2d.b2ShapeType,"e_polygonShape",box2d.b2ShapeType.e_polygonShape),goog.exportProperty(box2d.b2ShapeType,"e_chainShape",box2d.b2ShapeType.e_chainShape),goog.exportProperty(box2d.b2ShapeType,"e_shapeTypeCount",box2d.b2ShapeType.e_shapeTypeCount),box2d.b2Shape=function(a,b){this.m_type=a,this.m_radius=b},box2d.b2Shape.prototype.m_type=box2d.b2ShapeType.e_unknown,box2d.b2Shape.prototype.m_radius=0,box2d.b2Shape.prototype.Clone=function(){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),null},box2d.b2Shape.prototype.Copy=function(a){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_type===a.m_type),this.m_radius=a.m_radius,this};box2d.b2Shape.prototype.GetType=function(){return this.m_type},box2d.b2Shape.prototype.GetChildCount=function(){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1,"pure virtual"),0},box2d.b2Shape.prototype.TestPoint=function(a,b){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1,"pure virtual"),!1},box2d.b2Shape.prototype.RayCast=function(a,b,c,d){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1,"pure virtual"),!1},box2d.b2Shape.prototype.ComputeAABB=function(a,b,c){box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1,"pure virtual")},box2d.b2Shape.prototype.ComputeMass=function(a,b){box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1,"pure virtual")},box2d.b2Shape.prototype.SetupDistanceProxy=function(a,b){box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1,"pure virtual")},box2d.b2Shape.prototype.ComputeSubmergedArea=function(a,b,c,d){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1,"pure virtual"),0},box2d.b2Shape.prototype.Dump=function(){box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1,"pure virtual")},goog.provide("box2d.b2PolygonShape"),goog.require("box2d.b2Shape"),box2d.b2PolygonShape=function(){goog.base(this,box2d.b2ShapeType.e_polygonShape,box2d.b2_polygonRadius),this.m_centroid=new box2d.b2Vec2(0,0),this.m_vertices=box2d.b2Vec2.MakeArray(box2d.b2_maxPolygonVertices),this.m_normals=box2d.b2Vec2.MakeArray(box2d.b2_maxPolygonVertices)},goog.inherits(box2d.b2PolygonShape,box2d.b2Shape),box2d.b2PolygonShape.prototype.m_centroid=null,box2d.b2PolygonShape.prototype.m_vertices=null,box2d.b2PolygonShape.prototype.m_normals=null,box2d.b2PolygonShape.prototype.m_count=0,box2d.b2PolygonShape.prototype.Clone=function(){return(new box2d.b2PolygonShape).Copy(this)},box2d.b2PolygonShape.prototype.Copy=function(a){goog.base(this,"Copy",a),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a instanceof box2d.b2PolygonShape),this.m_centroid.Copy(a.m_centroid),this.m_count=a.m_count;for(var b=0,c=this.m_count;b<c;++b)this.m_vertices[b].Copy(a.m_vertices[b]),this.m_normals[b].Copy(a.m_normals[b]);return this},box2d.b2PolygonShape.prototype.SetAsBox=function(a,b){return this.m_count=4,this.m_vertices[0].SetXY(-a,-b),this.m_vertices[1].SetXY(a,-b),this.m_vertices[2].SetXY(a,b),this.m_vertices[3].SetXY(-a,b),this.m_normals[0].SetXY(0,-1),this.m_normals[1].SetXY(1,0),this.m_normals[2].SetXY(0,1),this.m_normals[3].SetXY(-1,0),this.m_centroid.SetZero(),this},box2d.b2PolygonShape.prototype.SetAsOrientedBox=function(a,b,c,d){this.m_count=4,this.m_vertices[0].SetXY(-a,-b),this.m_vertices[1].SetXY(a,-b),this.m_vertices[2].SetXY(a,b),this.m_vertices[3].SetXY(-a,b),this.m_normals[0].SetXY(0,-1),this.m_normals[1].SetXY(1,0),this.m_normals[2].SetXY(0,1),this.m_normals[3].SetXY(-1,0),this.m_centroid.Copy(c);var e=new box2d.b2Transform;e.SetPosition(c),e.SetRotationAngleRadians(d);for(var f=0,g=this.m_count;f<g;++f)box2d.b2MulXV(e,this.m_vertices[f],this.m_vertices[f]),box2d.b2MulRV(e.q,this.m_normals[f],this.m_normals[f]);return this},box2d.b2PolygonShape.prototype.Set=function(a,b){if(void 0===b&&(b=a.length),box2d.ENABLE_ASSERTS&&box2d.b2Assert(3<=b&&b<=box2d.b2_maxPolygonVertices),b<3)return this.SetAsBox(1,1);for(var c=box2d.b2Min(b,box2d.b2_maxPolygonVertices),d=box2d.b2PolygonShape.prototype.Set.s_ps,e=0,f=0;f<c;++f){for(var g=a[f],h=!0,i=0;i<e;++i)if(box2d.b2DistanceSquaredVV(g,d[i])<.5*box2d.b2_linearSlop){h=!1;break}h&&d[e++].Copy(g)}if((c=e)<3)return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),this.SetAsBox(1,1);for(var j=0,k=d[0].x,f=1;f<c;++f){var l=d[f].x;(l>k||l===k&&d[f].y<d[j].y)&&(j=f,k=l)}for(var m=box2d.b2PolygonShape.prototype.Set.s_hull,n=0,o=j;;){m[n]=o;for(var p=0,i=1;i<c;++i)if(p!==o){var q=box2d.b2SubVV(d[p],d[m[n]],box2d.b2PolygonShape.prototype.Set.s_r),g=box2d.b2SubVV(d[i],d[m[n]],box2d.b2PolygonShape.prototype.Set.s_v),r=box2d.b2CrossVV(q,g);r<0&&(p=i),0===r&&g.GetLengthSquared()>q.GetLengthSquared()&&(p=i)}else p=i;if(++n,o=p,p===j)break}this.m_count=n;for(var f=0;f<n;++f)this.m_vertices[f].Copy(d[m[f]]);for(var f=0,s=n;f<s;++f){var t=this.m_vertices[f],u=this.m_vertices[(f+1)%s],v=box2d.b2SubVV(u,t,box2d.b2Vec2.s_t0);box2d.ENABLE_ASSERTS&&box2d.b2Assert(v.GetLengthSquared()>box2d.b2_epsilon_sq),box2d.b2CrossVOne(v,this.m_normals[f]).SelfNormalize()}return box2d.b2PolygonShape.ComputeCentroid(this.m_vertices,n,this.m_centroid),this},box2d.b2PolygonShape.prototype.Set.s_ps=box2d.b2Vec2.MakeArray(box2d.b2_maxPolygonVertices),box2d.b2PolygonShape.prototype.Set.s_hull=box2d.b2MakeNumberArray(box2d.b2_maxPolygonVertices),box2d.b2PolygonShape.prototype.Set.s_r=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.Set.s_v=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.SetAsVector=function(a,b){return this.Set(a,b),this},box2d.b2PolygonShape.prototype.SetAsArray=function(a,b){return this.Set(a,b),this},box2d.b2PolygonShape.prototype.GetChildCount=function(){return 1},box2d.b2PolygonShape.prototype.TestPoint=function(a,b){for(var c=box2d.b2MulTXV(a,b,box2d.b2PolygonShape.prototype.TestPoint.s_pLocal),d=0,e=this.m_count;d<e;++d){if(box2d.b2DotVV(this.m_normals[d],box2d.b2SubVV(c,this.m_vertices[d],box2d.b2Vec2.s_t0))>0)return!1}return!0},box2d.b2PolygonShape.prototype.TestPoint.s_pLocal=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.RayCast=function(a,b,c,d){
|
||
for(var e=box2d.b2MulTXV(c,b.p1,box2d.b2PolygonShape.prototype.RayCast.s_p1),f=box2d.b2MulTXV(c,b.p2,box2d.b2PolygonShape.prototype.RayCast.s_p2),g=box2d.b2SubVV(f,e,box2d.b2PolygonShape.prototype.RayCast.s_d),h=0,i=b.maxFraction,j=-1,k=0,l=this.m_count;k<l;++k){var m=box2d.b2DotVV(this.m_normals[k],box2d.b2SubVV(this.m_vertices[k],e,box2d.b2Vec2.s_t0)),n=box2d.b2DotVV(this.m_normals[k],g);if(0===n){if(m<0)return!1}else n<0&&m<h*n?(h=m/n,j=k):n>0&&m<i*n&&(i=m/n);if(i<h)return!1}return box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=h&&h<=b.maxFraction),j>=0&&(a.fraction=h,box2d.b2MulRV(c.q,this.m_normals[j],a.normal),!0)},box2d.b2PolygonShape.prototype.RayCast.s_p1=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.RayCast.s_p2=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.RayCast.s_d=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.ComputeAABB=function(a,b,c){for(var d=box2d.b2MulXV(b,this.m_vertices[0],a.lowerBound),e=a.upperBound.Copy(d),f=0,g=this.m_count;f<g;++f){var h=box2d.b2MulXV(b,this.m_vertices[f],box2d.b2PolygonShape.prototype.ComputeAABB.s_v);box2d.b2MinV(h,d,d),box2d.b2MaxV(h,e,e)}var i=this.m_radius;d.SelfSubXY(i,i),e.SelfAddXY(i,i)},box2d.b2PolygonShape.prototype.ComputeAABB.s_v=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.ComputeMass=function(a,b){box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_count>=3);for(var c=box2d.b2PolygonShape.prototype.ComputeMass.s_center.SetZero(),d=0,e=0,f=box2d.b2PolygonShape.prototype.ComputeMass.s_s.SetZero(),g=0,h=this.m_count;g<h;++g)f.SelfAdd(this.m_vertices[g]);f.SelfMul(1/this.m_count);for(var g=0,h=this.m_count;g<h;++g){var i=box2d.b2SubVV(this.m_vertices[g],f,box2d.b2PolygonShape.prototype.ComputeMass.s_e1),j=box2d.b2SubVV(this.m_vertices[(g+1)%h],f,box2d.b2PolygonShape.prototype.ComputeMass.s_e2),k=box2d.b2CrossVV(i,j),l=.5*k;d+=l,c.SelfAdd(box2d.b2MulSV(l*(1/3),box2d.b2AddVV(i,j,box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t1));var m=i.x,n=i.y,o=j.x,p=j.y;e+=1/3*.25*k*(m*m+o*m+o*o+(n*n+p*n+p*p))}a.mass=b*d,box2d.ENABLE_ASSERTS&&box2d.b2Assert(d>box2d.b2_epsilon),c.SelfMul(1/d),box2d.b2AddVV(c,f,a.center),a.I=b*e,a.I+=a.mass*(box2d.b2DotVV(a.center,a.center)-box2d.b2DotVV(c,c))},box2d.b2PolygonShape.prototype.ComputeMass.s_center=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.ComputeMass.s_s=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.ComputeMass.s_e1=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.ComputeMass.s_e2=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.Validate=function(){for(var a=0;a<this.m_count;++a)for(var b=a,c=(a+1)%this.m_count,d=this.m_vertices[b],e=box2d.b2SubVV(this.m_vertices[c],d,box2d.b2PolygonShape.prototype.Validate.s_e),f=0;f<this.m_count;++f)if(f!==b&&f!==c){var g=box2d.b2SubVV(this.m_vertices[f],d,box2d.b2PolygonShape.prototype.Validate.s_v),h=box2d.b2CrossVV(e,g);if(h<0)return!1}return!0},box2d.b2PolygonShape.prototype.Validate.s_e=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.Validate.s_v=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.SetupDistanceProxy=function(a,b){a.m_vertices=this.m_vertices,a.m_count=this.m_count,a.m_radius=this.m_radius},box2d.b2PolygonShape.prototype.ComputeSubmergedArea=function(a,b,c,d){for(var e=box2d.b2MulTRV(c.q,a,box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_normalL),f=b-box2d.b2DotVV(a,c.p),g=box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_depths,h=0,i=-1,j=-1,k=!1,l=0,m=this.m_count;l<m;++l){g[l]=box2d.b2DotVV(e,this.m_vertices[l])-f;var n=g[l]<-box2d.b2_epsilon;l>0&&(n?k||(i=l-1,h++):k&&(j=l-1,h++)),k=n}switch(h){case 0:if(k){var o=box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_md;return this.ComputeMass(o,1),box2d.b2MulXV(c,o.center,d),o.mass}return 0;case 1:-1===i?i=this.m_count-1:j=this.m_count-1}for(var p=(i+1)%this.m_count,q=(j+1)%this.m_count,r=(0-g[i])/(g[p]-g[i]),s=(0-g[j])/(g[q]-g[j]),t=box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_intoVec.SetXY(this.m_vertices[i].x*(1-r)+this.m_vertices[p].x*r,this.m_vertices[i].y*(1-r)+this.m_vertices[p].y*r),u=box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_outoVec.SetXY(this.m_vertices[j].x*(1-s)+this.m_vertices[q].x*s,this.m_vertices[j].y*(1-s)+this.m_vertices[q].y*s),v=0,w=box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_center.SetZero(),x=this.m_vertices[p],y=null,l=p;l!==q;){l=(l+1)%this.m_count,y=l===q?u:this.m_vertices[l];var z=.5*((x.x-t.x)*(y.y-t.y)-(x.y-t.y)*(y.x-t.x));v+=z,w.x+=z*(t.x+x.x+y.x)/3,w.y+=z*(t.y+x.y+y.y)/3,x=y}return w.SelfMul(1/v),box2d.b2MulXV(c,w,d),v},box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_normalL=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_depths=box2d.b2MakeNumberArray(box2d.b2_maxPolygonVertices),box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_md=new box2d.b2MassData,box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_intoVec=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_outoVec=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.ComputeSubmergedArea.s_center=new box2d.b2Vec2,box2d.b2PolygonShape.prototype.Dump=function(){box2d.b2Log(" /*box2d.b2PolygonShape*/ var shape = new box2d.b2PolygonShape();\n"),box2d.b2Log(" /*box2d.b2Vec2[]*/ var vs = box2d.b2Vec2.MakeArray(%d);\n",box2d.b2_maxPolygonVertices);for(var a=0;a<this.m_count;++a)box2d.b2Log(" vs[%d].SetXY(%.15f, %.15f);\n",a,this.m_vertices[a].x,this.m_vertices[a].y);box2d.b2Log(" shape.Set(vs, %d);\n",this.m_count)},box2d.b2PolygonShape.ComputeCentroid=function(a,b,c){box2d.ENABLE_ASSERTS&&box2d.b2Assert(b>=3);var d=c;d.SetZero();for(var e=0,f=box2d.b2PolygonShape.ComputeCentroid.s_pRef.SetZero(),g=0;g<b;++g){var h=f,i=a[g],j=a[(g+1)%b],k=box2d.b2SubVV(i,h,box2d.b2PolygonShape.ComputeCentroid.s_e1),l=box2d.b2SubVV(j,h,box2d.b2PolygonShape.ComputeCentroid.s_e2),m=box2d.b2CrossVV(k,l),n=.5*m;e+=n,d.x+=n*(1/3)*(h.x+i.x+j.x),d.y+=n*(1/3)*(h.y+i.y+j.y)}return box2d.ENABLE_ASSERTS&&box2d.b2Assert(e>box2d.b2_epsilon),d.SelfMul(1/e),d},box2d.b2PolygonShape.ComputeCentroid.s_pRef=new box2d.b2Vec2,box2d.b2PolygonShape.ComputeCentroid.s_e1=new box2d.b2Vec2,box2d.b2PolygonShape.ComputeCentroid.s_e2=new box2d.b2Vec2,goog.provide("box2d.b2CollideEdge"),goog.require("box2d.b2Collision"),box2d.b2CollideEdgeAndCircle=function(a,b,c,d,e){a.pointCount=0;var f=box2d.b2MulTXV(c,box2d.b2MulXV(e,d.m_p,box2d.b2Vec2.s_t0),box2d.b2CollideEdgeAndCircle.s_Q),g=b.m_vertex1,h=b.m_vertex2,i=box2d.b2SubVV(h,g,box2d.b2CollideEdgeAndCircle.s_e),j=box2d.b2DotVV(i,box2d.b2SubVV(h,f,box2d.b2Vec2.s_t0)),k=box2d.b2DotVV(i,box2d.b2SubVV(f,g,box2d.b2Vec2.s_t0)),l=b.m_radius+d.m_radius,m=box2d.b2CollideEdgeAndCircle.s_id;if(m.cf.indexB=0,m.cf.typeB=box2d.b2ContactFeatureType.e_vertex,k<=0){var n=g,o=box2d.b2SubVV(f,n,box2d.b2CollideEdgeAndCircle.s_d),p=box2d.b2DotVV(o,o);if(p>l*l)return;if(b.m_hasVertex0){var q=b.m_vertex0,r=g,s=box2d.b2SubVV(r,q,box2d.b2CollideEdgeAndCircle.s_e1);if(box2d.b2DotVV(s,box2d.b2SubVV(r,f,box2d.b2Vec2.s_t0))>0)return}return m.cf.indexA=0,m.cf.typeA=box2d.b2ContactFeatureType.e_vertex,a.pointCount=1,a.type=box2d.b2ManifoldType.e_circles,a.localNormal.SetZero(),a.localPoint.Copy(n),a.points[0].id.Copy(m),void a.points[0].localPoint.Copy(d.m_p)}if(j<=0){var n=h,o=box2d.b2SubVV(f,n,box2d.b2CollideEdgeAndCircle.s_d),p=box2d.b2DotVV(o,o);if(p>l*l)return;if(b.m_hasVertex3){var t=b.m_vertex3,u=h,v=box2d.b2SubVV(t,u,box2d.b2CollideEdgeAndCircle.s_e2);if(box2d.b2DotVV(v,box2d.b2SubVV(f,u,box2d.b2Vec2.s_t0))>0)return}return m.cf.indexA=1,m.cf.typeA=box2d.b2ContactFeatureType.e_vertex,a.pointCount=1,a.type=box2d.b2ManifoldType.e_circles,a.localNormal.SetZero(),a.localPoint.Copy(n),a.points[0].id.Copy(m),void a.points[0].localPoint.Copy(d.m_p)}var w=box2d.b2DotVV(i,i);box2d.ENABLE_ASSERTS&&box2d.b2Assert(w>0);var n=box2d.b2CollideEdgeAndCircle.s_P;n.x=1/w*(j*g.x+k*h.x),n.y=1/w*(j*g.y+k*h.y);var o=box2d.b2SubVV(f,n,box2d.b2CollideEdgeAndCircle.s_d),p=box2d.b2DotVV(o,o);if(!(p>l*l)){var x=box2d.b2CollideEdgeAndCircle.s_n.SetXY(-i.y,i.x);box2d.b2DotVV(x,box2d.b2SubVV(f,g,box2d.b2Vec2.s_t0))<0&&x.SetXY(-x.x,-x.y),x.Normalize(),m.cf.indexA=0,m.cf.typeA=box2d.b2ContactFeatureType.e_face,a.pointCount=1,a.type=box2d.b2ManifoldType.e_faceA,a.localNormal.Copy(x),a.localPoint.Copy(g),a.points[0].id.Copy(m),a.points[0].localPoint.Copy(d.m_p)}},box2d.b2CollideEdgeAndCircle.s_Q=new box2d.b2Vec2,box2d.b2CollideEdgeAndCircle.s_e=new box2d.b2Vec2,box2d.b2CollideEdgeAndCircle.s_d=new box2d.b2Vec2,box2d.b2CollideEdgeAndCircle.s_e1=new box2d.b2Vec2,box2d.b2CollideEdgeAndCircle.s_e2=new box2d.b2Vec2,box2d.b2CollideEdgeAndCircle.s_P=new box2d.b2Vec2,box2d.b2CollideEdgeAndCircle.s_n=new box2d.b2Vec2,box2d.b2CollideEdgeAndCircle.s_id=new box2d.b2ContactID,box2d.b2EPAxisType={e_unknown:0,e_edgeA:1,e_edgeB:2},goog.exportProperty(box2d.b2EPAxisType,"e_unknown",box2d.b2EPAxisType.e_unknown),goog.exportProperty(box2d.b2EPAxisType,"e_edgeA",box2d.b2EPAxisType.e_edgeA),goog.exportProperty(box2d.b2EPAxisType,"e_edgeB",box2d.b2EPAxisType.e_edgeB),box2d.b2EPAxis=function(){},box2d.b2EPAxis.prototype.type=box2d.b2EPAxisType.e_unknown,box2d.b2EPAxis.prototype.index=0,box2d.b2EPAxis.prototype.separation=0,box2d.b2TempPolygon=function(){this.vertices=box2d.b2Vec2.MakeArray(box2d.b2_maxPolygonVertices),this.normals=box2d.b2Vec2.MakeArray(box2d.b2_maxPolygonVertices),this.count=0},box2d.b2TempPolygon.prototype.vertices=null,box2d.b2TempPolygon.prototype.normals=null,box2d.b2TempPolygon.prototype.count=0,box2d.b2ReferenceFace=function(){this.i1=0,this.i2=0,this.v1=new box2d.b2Vec2,this.v2=new box2d.b2Vec2,this.normal=new box2d.b2Vec2,this.sideNormal1=new box2d.b2Vec2,this.sideOffset1=0,this.sideNormal2=new box2d.b2Vec2,this.sideOffset2=0},box2d.b2ReferenceFace.prototype.i1=0,box2d.b2ReferenceFace.prototype.i2=0,box2d.b2ReferenceFace.prototype.v1=null,box2d.b2ReferenceFace.prototype.v2=null,box2d.b2ReferenceFace.prototype.normal=null,box2d.b2ReferenceFace.prototype.sideNormal1=null,box2d.b2ReferenceFace.prototype.sideOffset1=0,box2d.b2ReferenceFace.prototype.sideNormal2=null,box2d.b2ReferenceFace.prototype.sideOffset2=0,box2d.b2EPColliderVertexType={e_isolated:0,e_concave:1,e_convex:2},goog.exportProperty(box2d.b2EPColliderVertexType,"e_isolated",box2d.b2EPColliderVertexType.e_isolated),goog.exportProperty(box2d.b2EPColliderVertexType,"e_concave",box2d.b2EPColliderVertexType.e_concave),goog.exportProperty(box2d.b2EPColliderVertexType,"e_convex",box2d.b2EPColliderVertexType.e_convex),box2d.b2EPCollider=function(){this.m_polygonB=new box2d.b2TempPolygon,this.m_xf=new box2d.b2Transform,this.m_centroidB=new box2d.b2Vec2,this.m_v0=new box2d.b2Vec2,this.m_v1=new box2d.b2Vec2,this.m_v2=new box2d.b2Vec2,this.m_v3=new box2d.b2Vec2,this.m_normal0=new box2d.b2Vec2,this.m_normal1=new box2d.b2Vec2,this.m_normal2=new box2d.b2Vec2,this.m_normal=new box2d.b2Vec2,this.m_type1=box2d.b2EPColliderVertexType.e_isolated,this.m_type2=box2d.b2EPColliderVertexType.e_isolated,this.m_lowerLimit=new box2d.b2Vec2,this.m_upperLimit=new box2d.b2Vec2,this.m_radius=0,this.m_front=!1},box2d.b2EPCollider.prototype.m_polygonB=null,box2d.b2EPCollider.prototype.m_xf=null,box2d.b2EPCollider.prototype.m_centroidB=null,box2d.b2EPCollider.prototype.m_v0=null,box2d.b2EPCollider.prototype.m_v1=null,box2d.b2EPCollider.prototype.m_v2=null,box2d.b2EPCollider.prototype.m_v3=null,box2d.b2EPCollider.prototype.m_normal0=null,box2d.b2EPCollider.prototype.m_normal1=null,box2d.b2EPCollider.prototype.m_normal2=null,box2d.b2EPCollider.prototype.m_normal=null,box2d.b2EPCollider.prototype.m_type1=box2d.b2EPColliderVertexType.e_isolated,box2d.b2EPCollider.prototype.m_type2=box2d.b2EPColliderVertexType.e_isolated,box2d.b2EPCollider.prototype.m_lowerLimit=null,box2d.b2EPCollider.prototype.m_upperLimit=null,box2d.b2EPCollider.prototype.m_radius=0,box2d.b2EPCollider.prototype.m_front=!1,box2d.b2EPCollider.prototype.Collide=function(a,b,c,d,e){box2d.b2MulTXX(c,e,this.m_xf),box2d.b2MulXV(this.m_xf,d.m_centroid,this.m_centroidB),this.m_v0.Copy(b.m_vertex0),this.m_v1.Copy(b.m_vertex1),this.m_v2.Copy(b.m_vertex2),this.m_v3.Copy(b.m_vertex3);var f=b.m_hasVertex0,g=b.m_hasVertex3,h=box2d.b2SubVV(this.m_v2,this.m_v1,box2d.b2EPCollider.s_edge1);h.Normalize(),this.m_normal1.SetXY(h.y,-h.x);var i=box2d.b2DotVV(this.m_normal1,box2d.b2SubVV(this.m_centroidB,this.m_v1,box2d.b2Vec2.s_t0)),j=0,k=0,l=!1,m=!1;if(f){var n=box2d.b2SubVV(this.m_v1,this.m_v0,box2d.b2EPCollider.s_edge0);n.Normalize(),this.m_normal0.SetXY(n.y,-n.x),l=box2d.b2CrossVV(n,h)>=0,j=box2d.b2DotVV(this.m_normal0,box2d.b2SubVV(this.m_centroidB,this.m_v0,box2d.b2Vec2.s_t0))}if(g){var o=box2d.b2SubVV(this.m_v3,this.m_v2,box2d.b2EPCollider.s_edge2);o.Normalize(),this.m_normal2.SetXY(o.y,-o.x),m=box2d.b2CrossVV(h,o)>0,k=box2d.b2DotVV(this.m_normal2,box2d.b2SubVV(this.m_centroidB,this.m_v2,box2d.b2Vec2.s_t0))}f&&g?l&&m?(this.m_front=j>=0||i>=0||k>=0,this.m_front?(this.m_normal.Copy(this.m_normal1),this.m_lowerLimit.Copy(this.m_normal0),this.m_upperLimit.Copy(this.m_normal2)):(this.m_normal.Copy(this.m_normal1).SelfNeg(),this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(),this.m_upperLimit.Copy(this.m_normal1).SelfNeg())):l?(this.m_front=j>=0||i>=0&&k>=0,this.m_front?(this.m_normal.Copy(this.m_normal1),this.m_lowerLimit.Copy(this.m_normal0),this.m_upperLimit.Copy(this.m_normal1)):(this.m_normal.Copy(this.m_normal1).SelfNeg(),this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(),this.m_upperLimit.Copy(this.m_normal1).SelfNeg())):m?(this.m_front=k>=0||j>=0&&i>=0,this.m_front?(this.m_normal.Copy(this.m_normal1),this.m_lowerLimit.Copy(this.m_normal1),this.m_upperLimit.Copy(this.m_normal2)):(this.m_normal.Copy(this.m_normal1).SelfNeg(),this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(),this.m_upperLimit.Copy(this.m_normal0).SelfNeg())):(this.m_front=j>=0&&i>=0&&k>=0,this.m_front?(this.m_normal.Copy(this.m_normal1),this.m_lowerLimit.Copy(this.m_normal1),this.m_upperLimit.Copy(this.m_normal1)):(this.m_normal.Copy(this.m_normal1).SelfNeg(),this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(),this.m_upperLimit.Copy(this.m_normal0).SelfNeg())):f?l?(this.m_front=j>=0||i>=0,this.m_front?(this.m_normal.Copy(this.m_normal1),this.m_lowerLimit.Copy(this.m_normal0),this.m_upperLimit.Copy(this.m_normal1).SelfNeg()):(this.m_normal.Copy(this.m_normal1).SelfNeg(),this.m_lowerLimit.Copy(this.m_normal1),this.m_upperLimit.Copy(this.m_normal1).SelfNeg())):(this.m_front=j>=0&&i>=0,this.m_front?(this.m_normal.Copy(this.m_normal1),this.m_lowerLimit.Copy(this.m_normal1),this.m_upperLimit.Copy(this.m_normal1).SelfNeg()):(this.m_normal.Copy(this.m_normal1).SelfNeg(),this.m_lowerLimit.Copy(this.m_normal1),this.m_upperLimit.Copy(this.m_normal0).SelfNeg())):g?m?(this.m_front=i>=0||k>=0,this.m_front?(this.m_normal.Copy(this.m_normal1),this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(),this.m_upperLimit.Copy(this.m_normal2)):(this.m_normal.Copy(this.m_normal1).SelfNeg(),this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(),this.m_upperLimit.Copy(this.m_normal1))):(this.m_front=i>=0&&k>=0,this.m_front?(this.m_normal.Copy(this.m_normal1),this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(),this.m_upperLimit.Copy(this.m_normal1)):(this.m_normal.Copy(this.m_normal1).SelfNeg(),this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(),this.m_upperLimit.Copy(this.m_normal1))):(this.m_front=i>=0,this.m_front?(this.m_normal.Copy(this.m_normal1),this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(),this.m_upperLimit.Copy(this.m_normal1).SelfNeg()):(this.m_normal.Copy(this.m_normal1).SelfNeg(),this.m_lowerLimit.Copy(this.m_normal1),this.m_upperLimit.Copy(this.m_normal1))),this.m_polygonB.count=d.m_count;for(var p=0,q=d.m_count;p<q;++p)box2d.b2MulXV(this.m_xf,d.m_vertices[p],this.m_polygonB.vertices[p]),box2d.b2MulRV(this.m_xf.q,d.m_normals[p],this.m_polygonB.normals[p]);this.m_radius=2*box2d.b2_polygonRadius,a.pointCount=0;var r=this.ComputeEdgeSeparation(box2d.b2EPCollider.s_edgeAxis);if(r.type!==box2d.b2EPAxisType.e_unknown&&!(r.separation>this.m_radius)){var s=this.ComputePolygonSeparation(box2d.b2EPCollider.s_polygonAxis);if(!(s.type!==box2d.b2EPAxisType.e_unknown&&s.separation>this.m_radius)){var t;t=s.type===box2d.b2EPAxisType.e_unknown?r:s.separation>.98*r.separation+.001?s:r;var u=box2d.b2EPCollider.s_ie,v=box2d.b2EPCollider.s_rf;if(t.type===box2d.b2EPAxisType.e_edgeA){a.type=box2d.b2ManifoldType.e_faceA;for(var w=0,x=box2d.b2DotVV(this.m_normal,this.m_polygonB.normals[0]),p=1,q=this.m_polygonB.count;p<q;++p){var y=box2d.b2DotVV(this.m_normal,this.m_polygonB.normals[p]);y<x&&(x=y,w=p)}var z=w,A=(z+1)%this.m_polygonB.count,B=u[0];B.v.Copy(this.m_polygonB.vertices[z]),B.id.cf.indexA=0,B.id.cf.indexB=z,B.id.cf.typeA=box2d.b2ContactFeatureType.e_face,B.id.cf.typeB=box2d.b2ContactFeatureType.e_vertex;var C=u[1];C.v.Copy(this.m_polygonB.vertices[A]),C.id.cf.indexA=0,C.id.cf.indexB=A,C.id.cf.typeA=box2d.b2ContactFeatureType.e_face,C.id.cf.typeB=box2d.b2ContactFeatureType.e_vertex,this.m_front?(v.i1=0,v.i2=1,v.v1.Copy(this.m_v1),v.v2.Copy(this.m_v2),v.normal.Copy(this.m_normal1)):(v.i1=1,v.i2=0,v.v1.Copy(this.m_v2),v.v2.Copy(this.m_v1),v.normal.Copy(this.m_normal1).SelfNeg())}else{a.type=box2d.b2ManifoldType.e_faceB;var B=u[0];B.v.Copy(this.m_v1),B.id.cf.indexA=0,B.id.cf.indexB=t.index,B.id.cf.typeA=box2d.b2ContactFeatureType.e_vertex,B.id.cf.typeB=box2d.b2ContactFeatureType.e_face;var C=u[1];C.v.Copy(this.m_v2),C.id.cf.indexA=0,C.id.cf.indexB=t.index,C.id.cf.typeA=box2d.b2ContactFeatureType.e_vertex,C.id.cf.typeB=box2d.b2ContactFeatureType.e_face,v.i1=t.index,v.i2=(v.i1+1)%this.m_polygonB.count,v.v1.Copy(this.m_polygonB.vertices[v.i1]),v.v2.Copy(this.m_polygonB.vertices[v.i2]),v.normal.Copy(this.m_polygonB.normals[v.i1])}v.sideNormal1.SetXY(v.normal.y,-v.normal.x),v.sideNormal2.Copy(v.sideNormal1).SelfNeg(),v.sideOffset1=box2d.b2DotVV(v.sideNormal1,v.v1),v.sideOffset2=box2d.b2DotVV(v.sideNormal2,v.v2);var D=box2d.b2EPCollider.s_clipPoints1,E=box2d.b2EPCollider.s_clipPoints2;if(!(box2d.b2ClipSegmentToLine(D,u,v.sideNormal1,v.sideOffset1,v.i1)<box2d.b2_maxManifoldPoints||box2d.b2ClipSegmentToLine(E,D,v.sideNormal2,v.sideOffset2,v.i2)<box2d.b2_maxManifoldPoints)){t.type===box2d.b2EPAxisType.e_edgeA?(a.localNormal.Copy(v.normal),a.localPoint.Copy(v.v1)):(a.localNormal.Copy(d.m_normals[v.i1]),a.localPoint.Copy(d.m_vertices[v.i1]));for(var F=0,p=0,q=box2d.b2_maxManifoldPoints;p<q;++p){if(box2d.b2DotVV(v.normal,box2d.b2SubVV(E[p].v,v.v1,box2d.b2Vec2.s_t0))<=this.m_radius){var G=a.points[F];t.type===box2d.b2EPAxisType.e_edgeA?(box2d.b2MulTXV(this.m_xf,E[p].v,G.localPoint),G.id=E[p].id):(G.localPoint.Copy(E[p].v),G.id.cf.typeA=E[p].id.cf.typeB,G.id.cf.typeB=E[p].id.cf.typeA,G.id.cf.indexA=E[p].id.cf.indexB,G.id.cf.indexB=E[p].id.cf.indexA),++F}}a.pointCount=F}}}},box2d.b2EPCollider.s_edge1=new box2d.b2Vec2,box2d.b2EPCollider.s_edge0=new box2d.b2Vec2,box2d.b2EPCollider.s_edge2=new box2d.b2Vec2,box2d.b2EPCollider.s_ie=box2d.b2ClipVertex.MakeArray(2),box2d.b2EPCollider.s_rf=new box2d.b2ReferenceFace,box2d.b2EPCollider.s_clipPoints1=box2d.b2ClipVertex.MakeArray(2),box2d.b2EPCollider.s_clipPoints2=box2d.b2ClipVertex.MakeArray(2),box2d.b2EPCollider.s_edgeAxis=new box2d.b2EPAxis,box2d.b2EPCollider.s_polygonAxis=new box2d.b2EPAxis,box2d.b2EPCollider.prototype.ComputeEdgeSeparation=function(a){var b=a;b.type=box2d.b2EPAxisType.e_edgeA,b.index=this.m_front?0:1,b.separation=box2d.b2_maxFloat;for(var c=0,d=this.m_polygonB.count;c<d;++c){var e=box2d.b2DotVV(this.m_normal,box2d.b2SubVV(this.m_polygonB.vertices[c],this.m_v1,box2d.b2Vec2.s_t0));e<b.separation&&(b.separation=e)}return b},box2d.b2EPCollider.prototype.ComputePolygonSeparation=function(a){var b=a;b.type=box2d.b2EPAxisType.e_unknown,b.index=-1,b.separation=-box2d.b2_maxFloat;for(var c=box2d.b2EPCollider.s_perp.SetXY(-this.m_normal.y,this.m_normal.x),d=0,e=this.m_polygonB.count;d<e;++d){var f=box2d.b2NegV(this.m_polygonB.normals[d],box2d.b2EPCollider.s_n),g=box2d.b2DotVV(f,box2d.b2SubVV(this.m_polygonB.vertices[d],this.m_v1,box2d.b2Vec2.s_t0)),h=box2d.b2DotVV(f,box2d.b2SubVV(this.m_polygonB.vertices[d],this.m_v2,box2d.b2Vec2.s_t0)),i=box2d.b2Min(g,h);if(i>this.m_radius)return b.type=box2d.b2EPAxisType.e_edgeB,b.index=d,b.separation=i,b;if(box2d.b2DotVV(f,c)>=0){if(box2d.b2DotVV(box2d.b2SubVV(f,this.m_upperLimit,box2d.b2Vec2.s_t0),this.m_normal)<-box2d.b2_angularSlop)continue}else if(box2d.b2DotVV(box2d.b2SubVV(f,this.m_lowerLimit,box2d.b2Vec2.s_t0),this.m_normal)<-box2d.b2_angularSlop)continue;i>b.separation&&(b.type=box2d.b2EPAxisType.e_edgeB,b.index=d,b.separation=i)}return b},box2d.b2EPCollider.s_n=new box2d.b2Vec2,box2d.b2EPCollider.s_perp=new box2d.b2Vec2,box2d.b2CollideEdgeAndPolygon=function(a,b,c,d,e){box2d.b2CollideEdgeAndPolygon.s_collider.Collide(a,b,c,d,e)},box2d.b2CollideEdgeAndPolygon.s_collider=new box2d.b2EPCollider,goog.provide("box2d.b2EdgeShape"),goog.require("box2d.b2Shape"),box2d.b2EdgeShape=function(){goog.base(this,box2d.b2ShapeType.e_edgeShape,box2d.b2_polygonRadius),this.m_vertex1=new box2d.b2Vec2,this.m_vertex2=new box2d.b2Vec2,this.m_vertex0=new box2d.b2Vec2,this.m_vertex3=new box2d.b2Vec2},goog.inherits(box2d.b2EdgeShape,box2d.b2Shape),box2d.b2EdgeShape.prototype.m_vertex1=null,box2d.b2EdgeShape.prototype.m_vertex2=null,box2d.b2EdgeShape.prototype.m_vertex0=null,box2d.b2EdgeShape.prototype.m_vertex3=null,box2d.b2EdgeShape.prototype.m_hasVertex0=!1,box2d.b2EdgeShape.prototype.m_hasVertex3=!1,box2d.b2EdgeShape.prototype.Set=function(a,b){return this.m_vertex1.Copy(a),this.m_vertex2.Copy(b),this.m_hasVertex0=!1,this.m_hasVertex3=!1,this},box2d.b2EdgeShape.prototype.SetAsEdge=box2d.b2EdgeShape.prototype.Set,box2d.b2EdgeShape.prototype.Clone=function(){return(new box2d.b2EdgeShape).Copy(this)},box2d.b2EdgeShape.prototype.Copy=function(a){return goog.base(this,"Copy",a),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a instanceof box2d.b2EdgeShape),this.m_vertex1.Copy(a.m_vertex1),this.m_vertex2.Copy(a.m_vertex2),this.m_vertex0.Copy(a.m_vertex0),this.m_vertex3.Copy(a.m_vertex3),this.m_hasVertex0=a.m_hasVertex0,this.m_hasVertex3=a.m_hasVertex3,this},box2d.b2EdgeShape.prototype.GetChildCount=function(){return 1},box2d.b2EdgeShape.prototype.TestPoint=function(a,b){return!1},box2d.b2EdgeShape.prototype.RayCast=function(a,b,c,d){var e=box2d.b2MulTXV(c,b.p1,box2d.b2EdgeShape.prototype.RayCast.s_p1),f=box2d.b2MulTXV(c,b.p2,box2d.b2EdgeShape.prototype.RayCast.s_p2),g=box2d.b2SubVV(f,e,box2d.b2EdgeShape.prototype.RayCast.s_d),h=this.m_vertex1,i=this.m_vertex2,j=box2d.b2SubVV(i,h,box2d.b2EdgeShape.prototype.RayCast.s_e),k=a.normal.SetXY(j.y,-j.x).SelfNormalize(),l=box2d.b2DotVV(k,box2d.b2SubVV(h,e,box2d.b2Vec2.s_t0)),m=box2d.b2DotVV(k,g);if(0===m)return!1;var n=l/m;if(n<0||b.maxFraction<n)return!1;var o=box2d.b2AddVMulSV(e,n,g,box2d.b2EdgeShape.prototype.RayCast.s_q),p=box2d.b2SubVV(i,h,box2d.b2EdgeShape.prototype.RayCast.s_r),q=box2d.b2DotVV(p,p);if(0===q)return!1;var r=box2d.b2DotVV(box2d.b2SubVV(o,h,box2d.b2Vec2.s_t0),p)/q;return!(r<0||1<r)&&(a.fraction=n,box2d.b2MulRV(c.q,a.normal,a.normal),l>0&&a.normal.SelfNeg(),!0)},box2d.b2EdgeShape.prototype.RayCast.s_p1=new box2d.b2Vec2,box2d.b2EdgeShape.prototype.RayCast.s_p2=new box2d.b2Vec2,box2d.b2EdgeShape.prototype.RayCast.s_d=new box2d.b2Vec2,box2d.b2EdgeShape.prototype.RayCast.s_e=new box2d.b2Vec2,box2d.b2EdgeShape.prototype.RayCast.s_q=new box2d.b2Vec2,box2d.b2EdgeShape.prototype.RayCast.s_r=new box2d.b2Vec2,box2d.b2EdgeShape.prototype.ComputeAABB=function(a,b,c){var d=box2d.b2MulXV(b,this.m_vertex1,box2d.b2EdgeShape.prototype.ComputeAABB.s_v1),e=box2d.b2MulXV(b,this.m_vertex2,box2d.b2EdgeShape.prototype.ComputeAABB.s_v2);box2d.b2MinV(d,e,a.lowerBound),box2d.b2MaxV(d,e,a.upperBound);var f=this.m_radius;a.lowerBound.SelfSubXY(f,f),a.upperBound.SelfAddXY(f,f)},box2d.b2EdgeShape.prototype.ComputeAABB.s_v1=new box2d.b2Vec2,box2d.b2EdgeShape.prototype.ComputeAABB.s_v2=new box2d.b2Vec2,box2d.b2EdgeShape.prototype.ComputeMass=function(a,b){a.mass=0,box2d.b2MidVV(this.m_vertex1,this.m_vertex2,a.center),a.I=0},box2d.b2EdgeShape.prototype.SetupDistanceProxy=function(a,b){a.m_vertices=new Array(2),a.m_vertices[0]=this.m_vertex1,a.m_vertices[1]=this.m_vertex2,a.m_count=2,a.m_radius=this.m_radius},box2d.b2EdgeShape.prototype.ComputeSubmergedArea=function(a,b,c,d){return d.SetZero(),0},box2d.b2EdgeShape.prototype.Dump=function(){box2d.b2Log(" /*box2d.b2EdgeShape*/ var shape = new box2d.b2EdgeShape();\n"),box2d.b2Log(" shape.m_radius = %.15f;\n",this.m_radius),box2d.b2Log(" shape.m_vertex0.SetXY(%.15f, %.15f);\n",this.m_vertex0.x,this.m_vertex0.y),box2d.b2Log(" shape.m_vertex1.SetXY(%.15f, %.15f);\n",this.m_vertex1.x,this.m_vertex1.y),box2d.b2Log(" shape.m_vertex2.SetXY(%.15f, %.15f);\n",this.m_vertex2.x,this.m_vertex2.y),box2d.b2Log(" shape.m_vertex3.SetXY(%.15f, %.15f);\n",this.m_vertex3.x,this.m_vertex3.y),box2d.b2Log(" shape.m_hasVertex0 = %s;\n",this.m_hasVertex0),box2d.b2Log(" shape.m_hasVertex3 = %s;\n",this.m_hasVertex3)},goog.provide("box2d.b2ChainShape"),goog.require("box2d.b2Shape"),goog.require("box2d.b2EdgeShape"),box2d.b2ChainShape=function(){goog.base(this,box2d.b2ShapeType.e_chainShape,box2d.b2_polygonRadius),this.m_prevVertex=new box2d.b2Vec2,this.m_nextVertex=new box2d.b2Vec2},goog.inherits(box2d.b2ChainShape,box2d.b2Shape),box2d.b2ChainShape.prototype.m_vertices=null,box2d.b2ChainShape.prototype.m_count=0,box2d.b2ChainShape.prototype.m_prevVertex=null,box2d.b2ChainShape.prototype.m_nextVertex=null,box2d.b2ChainShape.prototype.m_hasPrevVertex=!1,box2d.b2ChainShape.prototype.m_hasNextVertex=!1,box2d.b2ChainShape.prototype.CreateLoop=function(a,b){if(b=b||a.length,box2d.ENABLE_ASSERTS&&box2d.b2Assert(null===this.m_vertices&&0===this.m_count),box2d.ENABLE_ASSERTS&&box2d.b2Assert(b>=3),box2d.ENABLE_ASSERTS)for(var c=1;c<b;++c){var d=a[c-1],e=a[c];box2d.b2Assert(box2d.b2DistanceSquaredVV(d,e)>box2d.b2_linearSlop*box2d.b2_linearSlop)}this.m_count=b+1,this.m_vertices=box2d.b2Vec2.MakeArray(this.m_count);for(var c=0;c<b;++c)this.m_vertices[c].Copy(a[c]);return this.m_vertices[b].Copy(this.m_vertices[0]),this.m_prevVertex.Copy(this.m_vertices[this.m_count-2]),this.m_nextVertex.Copy(this.m_vertices[1]),this.m_hasPrevVertex=!0,this.m_hasNextVertex=!0,this},box2d.b2ChainShape.prototype.CreateChain=function(a,b){if(b=b||a.length,box2d.ENABLE_ASSERTS&&box2d.b2Assert(null===this.m_vertices&&0===this.m_count),box2d.ENABLE_ASSERTS&&box2d.b2Assert(b>=2),box2d.ENABLE_ASSERTS)for(var c=1;c<b;++c){var d=a[c-1],e=a[c];box2d.b2Assert(box2d.b2DistanceSquaredVV(d,e)>box2d.b2_linearSlop*box2d.b2_linearSlop)}this.m_count=b,this.m_vertices=box2d.b2Vec2.MakeArray(b);for(var c=0;c<b;++c)this.m_vertices[c].Copy(a[c]);return this.m_hasPrevVertex=!1,this.m_hasNextVertex=!1,this.m_prevVertex.SetZero(),this.m_nextVertex.SetZero(),this},box2d.b2ChainShape.prototype.SetPrevVertex=function(a){return this.m_prevVertex.Copy(a),this.m_hasPrevVertex=!0,this},box2d.b2ChainShape.prototype.SetNextVertex=function(a){return this.m_nextVertex.Copy(a),this.m_hasNextVertex=!0,this},box2d.b2ChainShape.prototype.Clone=function(){return(new box2d.b2ChainShape).Copy(this)},box2d.b2ChainShape.prototype.Copy=function(a){return goog.base(this,"Copy",a),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a instanceof box2d.b2ChainShape),this.CreateChain(a.m_vertices,a.m_count),this.m_prevVertex.Copy(a.m_prevVertex),this.m_nextVertex.Copy(a.m_nextVertex),this.m_hasPrevVertex=a.m_hasPrevVertex,this.m_hasNextVertex=a.m_hasNextVertex,this},box2d.b2ChainShape.prototype.GetChildCount=function(){return this.m_count-1},box2d.b2ChainShape.prototype.GetChildEdge=function(a,b){box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=b&&b<this.m_count-1),a.m_type=box2d.b2ShapeType.e_edgeShape,a.m_radius=this.m_radius,a.m_vertex1.Copy(this.m_vertices[b]),a.m_vertex2.Copy(this.m_vertices[b+1]),b>0?(a.m_vertex0.Copy(this.m_vertices[b-1]),a.m_hasVertex0=!0):(a.m_vertex0.Copy(this.m_prevVertex),a.m_hasVertex0=this.m_hasPrevVertex),b<this.m_count-2?(a.m_vertex3.Copy(this.m_vertices[b+2]),a.m_hasVertex3=!0):(a.m_vertex3.Copy(this.m_nextVertex),a.m_hasVertex3=this.m_hasNextVertex)},box2d.b2ChainShape.prototype.TestPoint=function(a,b){return!1},box2d.b2ChainShape.prototype.RayCast=function(a,b,c,d){box2d.ENABLE_ASSERTS&&box2d.b2Assert(d<this.m_count);var e=box2d.b2ChainShape.s_edgeShape;return e.m_vertex1.Copy(this.m_vertices[d]),e.m_vertex2.Copy(this.m_vertices[(d+1)%this.m_count]),e.RayCast(a,b,c,0)},box2d.b2ChainShape.s_edgeShape=new box2d.b2EdgeShape,box2d.b2ChainShape.prototype.ComputeAABB=function(a,b,c){box2d.ENABLE_ASSERTS&&box2d.b2Assert(c<this.m_count);var d=this.m_vertices[c],e=this.m_vertices[(c+1)%this.m_count],f=box2d.b2MulXV(b,d,box2d.b2ChainShape.prototype.ComputeAABB.s_v1),g=box2d.b2MulXV(b,e,box2d.b2ChainShape.prototype.ComputeAABB.s_v2);box2d.b2MinV(f,g,a.lowerBound),box2d.b2MaxV(f,g,a.upperBound)},box2d.b2ChainShape.prototype.ComputeAABB.s_v1=new box2d.b2Vec2,box2d.b2ChainShape.prototype.ComputeAABB.s_v2=new box2d.b2Vec2,box2d.b2ChainShape.prototype.ComputeMass=function(a,b){a.mass=0,a.center.SetZero(),a.I=0},box2d.b2ChainShape.prototype.SetupDistanceProxy=function(a,b){box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=b&&b<this.m_count),a.m_buffer[0].Copy(this.m_vertices[b]),b+1<this.m_count?a.m_buffer[1].Copy(this.m_vertices[b+1]):a.m_buffer[1].Copy(this.m_vertices[0]),a.m_vertices=a.m_buffer,a.m_count=2,a.m_radius=this.m_radius},box2d.b2ChainShape.prototype.ComputeSubmergedArea=function(a,b,c,d){return d.SetZero(),0},box2d.b2ChainShape.prototype.Dump=function(){box2d.b2Log(" /*box2d.b2ChainShape*/ var shape = new box2d.b2ChainShape();\n"),box2d.b2Log(" /*box2d.b2Vec2[]*/ var vs = box2d.b2Vec2.MakeArray(%d);\n",box2d.b2_maxPolygonVertices);for(var a=0;a<this.m_count;++a)box2d.b2Log(" vs[%d].SetXY(%.15f, %.15f);\n",a,this.m_vertices[a].x,this.m_vertices[a].y);box2d.b2Log(" shape.CreateChain(vs, %d);\n",this.m_count),box2d.b2Log(" shape.m_prevVertex.SetXY(%.15f, %.15f);\n",this.m_prevVertex.x,this.m_prevVertex.y),box2d.b2Log(" shape.m_nextVertex.SetXY(%.15f, %.15f);\n",this.m_nextVertex.x,this.m_nextVertex.y),box2d.b2Log(" shape.m_hasPrevVertex = %s;\n",this.m_hasPrevVertex?"true":"false"),box2d.b2Log(" shape.m_hasNextVertex = %s;\n",this.m_hasNextVertex?"true":"false")},goog.provide("box2d.b2ChainAndPolygonContact"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Contact"),goog.require("box2d.b2CollideEdge"),goog.require("box2d.b2ChainShape"),goog.require("box2d.b2PolygonShape"),box2d.b2ChainAndPolygonContact=function(){goog.base(this)},goog.inherits(box2d.b2ChainAndPolygonContact,box2d.b2Contact),box2d.b2ChainAndPolygonContact.Create=function(a){return new box2d.b2ChainAndPolygonContact},box2d.b2ChainAndPolygonContact.Destroy=function(a,b){},box2d.b2ChainAndPolygonContact.prototype.Reset=function(a,b,c,d){goog.base(this,"Reset",a,b,c,d),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.GetType()===box2d.b2ShapeType.e_chainShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(c.GetType()===box2d.b2ShapeType.e_polygonShape)},box2d.b2ChainAndPolygonContact.prototype.Evaluate=function(a,b,c){var d=this.m_fixtureA.GetShape(),e=this.m_fixtureB.GetShape();box2d.ENABLE_ASSERTS&&box2d.b2Assert(d instanceof box2d.b2ChainShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(e instanceof box2d.b2PolygonShape);var f=d instanceof box2d.b2ChainShape?d:null,g=box2d.b2ChainAndPolygonContact.prototype.Evaluate.s_edge;f.GetChildEdge(g,this.m_indexA),box2d.b2CollideEdgeAndPolygon(a,g,b,e instanceof box2d.b2PolygonShape?e:null,c)};box2d.b2ChainAndPolygonContact.prototype.Evaluate.s_edge=new box2d.b2EdgeShape,goog.provide("box2d.b2CollidePolygon"),goog.require("box2d.b2Collision"),box2d.b2FindMaxSeparation=function(a,b,c,d,e){for(var f=b.m_count,g=d.m_count,h=b.m_normals,i=b.m_vertices,j=d.m_vertices,k=box2d.b2MulTXX(e,c,box2d.b2FindMaxSeparation.s_xf),l=0,m=-box2d.b2_maxFloat,n=0;n<f;++n){for(var o=box2d.b2MulRV(k.q,h[n],box2d.b2FindMaxSeparation.s_n),p=box2d.b2MulXV(k,i[n],box2d.b2FindMaxSeparation.s_v1),q=box2d.b2_maxFloat,r=0;r<g;++r){var s=box2d.b2DotVV(o,box2d.b2SubVV(j[r],p,box2d.b2Vec2.s_t0));s<q&&(q=s)}q>m&&(m=q,l=n)}return a[0]=l,m},
|
||
box2d.b2FindMaxSeparation.s_xf=new box2d.b2Transform,box2d.b2FindMaxSeparation.s_n=new box2d.b2Vec2,box2d.b2FindMaxSeparation.s_v1=new box2d.b2Vec2,box2d.b2FindIncidentEdge=function(a,b,c,d,e,f){var g=b.m_count,h=b.m_normals,i=e.m_count,j=e.m_vertices,k=e.m_normals;box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=d&&d<g);for(var l=box2d.b2MulTRV(f.q,box2d.b2MulRV(c.q,h[d],box2d.b2Vec2.s_t0),box2d.b2FindIncidentEdge.s_normal1),m=0,n=box2d.b2_maxFloat,o=0;o<i;++o){var p=box2d.b2DotVV(l,k[o]);p<n&&(n=p,m=o)}var q=m,r=(q+1)%i,s=a[0];box2d.b2MulXV(f,j[q],s.v);var t=s.id.cf;t.indexA=d,t.indexB=q,t.typeA=box2d.b2ContactFeatureType.e_face,t.typeB=box2d.b2ContactFeatureType.e_vertex;var u=a[1];box2d.b2MulXV(f,j[r],u.v);var v=u.id.cf;v.indexA=d,v.indexB=r,v.typeA=box2d.b2ContactFeatureType.e_face,v.typeB=box2d.b2ContactFeatureType.e_vertex},box2d.b2FindIncidentEdge.s_normal1=new box2d.b2Vec2,box2d.b2CollidePolygons=function(a,b,c,d,e){a.pointCount=0;var f=b.m_radius+d.m_radius,g=box2d.b2CollidePolygons.s_edgeA;g[0]=0;var h=box2d.b2FindMaxSeparation(g,b,c,d,e);if(!(h>f)){var i=box2d.b2CollidePolygons.s_edgeB;i[0]=0;var j=box2d.b2FindMaxSeparation(i,d,e,b,c);if(!(j>f)){var k,l,m,n,o=0,p=0;j>.98*h+.001?(k=d,l=b,m=e,n=c,o=i[0],a.type=box2d.b2ManifoldType.e_faceB,p=1):(k=b,l=d,m=c,n=e,o=g[0],a.type=box2d.b2ManifoldType.e_faceA,p=0);var q=box2d.b2CollidePolygons.s_incidentEdge;box2d.b2FindIncidentEdge(q,k,m,o,l,n);var r=k.m_count,s=k.m_vertices,t=o,u=(o+1)%r,v=s[t],w=s[u],x=box2d.b2SubVV(w,v,box2d.b2CollidePolygons.s_localTangent);x.Normalize();var y=box2d.b2CrossVOne(x,box2d.b2CollidePolygons.s_localNormal),z=box2d.b2MidVV(v,w,box2d.b2CollidePolygons.s_planePoint),A=box2d.b2MulRV(m.q,x,box2d.b2CollidePolygons.s_tangent),B=box2d.b2CrossVOne(A,box2d.b2CollidePolygons.s_normal),C=box2d.b2MulXV(m,v,box2d.b2CollidePolygons.s_v11),D=box2d.b2MulXV(m,w,box2d.b2CollidePolygons.s_v12),E=box2d.b2DotVV(B,C),F=-box2d.b2DotVV(A,C)+f,G=box2d.b2DotVV(A,D)+f,H=box2d.b2CollidePolygons.s_clipPoints1,I=box2d.b2CollidePolygons.s_clipPoints2,J=box2d.b2NegV(A,box2d.b2CollidePolygons.s_ntangent);if(!(box2d.b2ClipSegmentToLine(H,q,J,F,t)<2||box2d.b2ClipSegmentToLine(I,H,A,G,u)<2)){a.localNormal.Copy(y),a.localPoint.Copy(z);for(var K=0,L=0;L<box2d.b2_maxManifoldPoints;++L){var M=I[L];if(box2d.b2DotVV(B,M.v)-E<=f){var N=a.points[K];if(box2d.b2MulTXV(n,M.v,N.localPoint),N.id.Copy(M.id),p){var O=N.id.cf;N.id.cf.indexA=O.indexB,N.id.cf.indexB=O.indexA,N.id.cf.typeA=O.typeB,N.id.cf.typeB=O.typeA}++K}}a.pointCount=K}}}},box2d.b2CollidePolygons.s_incidentEdge=box2d.b2ClipVertex.MakeArray(2),box2d.b2CollidePolygons.s_clipPoints1=box2d.b2ClipVertex.MakeArray(2),box2d.b2CollidePolygons.s_clipPoints2=box2d.b2ClipVertex.MakeArray(2),box2d.b2CollidePolygons.s_edgeA=box2d.b2MakeNumberArray(1),box2d.b2CollidePolygons.s_edgeB=box2d.b2MakeNumberArray(1),box2d.b2CollidePolygons.s_localTangent=new box2d.b2Vec2,box2d.b2CollidePolygons.s_localNormal=new box2d.b2Vec2,box2d.b2CollidePolygons.s_planePoint=new box2d.b2Vec2,box2d.b2CollidePolygons.s_normal=new box2d.b2Vec2,box2d.b2CollidePolygons.s_tangent=new box2d.b2Vec2,box2d.b2CollidePolygons.s_ntangent=new box2d.b2Vec2,box2d.b2CollidePolygons.s_v11=new box2d.b2Vec2,box2d.b2CollidePolygons.s_v12=new box2d.b2Vec2,goog.provide("box2d.b2PolygonContact"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Contact"),goog.require("box2d.b2CollidePolygon"),box2d.b2PolygonContact=function(){goog.base(this)},goog.inherits(box2d.b2PolygonContact,box2d.b2Contact),box2d.b2PolygonContact.Create=function(a){return new box2d.b2PolygonContact},box2d.b2PolygonContact.Destroy=function(a,b){},box2d.b2PolygonContact.prototype.Reset=function(a,b,c,d){goog.base(this,"Reset",a,b,c,d)},box2d.b2PolygonContact.prototype.Evaluate=function(a,b,c){var d=this.m_fixtureA.GetShape(),e=this.m_fixtureB.GetShape();box2d.ENABLE_ASSERTS&&box2d.b2Assert(d instanceof box2d.b2PolygonShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(e instanceof box2d.b2PolygonShape),box2d.b2CollidePolygons(a,d instanceof box2d.b2PolygonShape?d:null,b,e instanceof box2d.b2PolygonShape?e:null,c)},goog.provide("box2d.b2CollideCircle"),goog.require("box2d.b2Collision"),box2d.b2CollideCircles=function(a,b,c,d,e){a.pointCount=0;var f=box2d.b2MulXV(c,b.m_p,box2d.b2CollideCircles.s_pA),g=box2d.b2MulXV(e,d.m_p,box2d.b2CollideCircles.s_pB),h=box2d.b2DistanceSquaredVV(f,g),i=b.m_radius+d.m_radius;h>i*i||(a.type=box2d.b2ManifoldType.e_circles,a.localPoint.Copy(b.m_p),a.localNormal.SetZero(),a.pointCount=1,a.points[0].localPoint.Copy(d.m_p),a.points[0].id.key=0)},box2d.b2CollideCircles.s_pA=new box2d.b2Vec2,box2d.b2CollideCircles.s_pB=new box2d.b2Vec2,box2d.b2CollidePolygonAndCircle=function(a,b,c,d,e){a.pointCount=0;for(var f=box2d.b2MulXV(e,d.m_p,box2d.b2CollidePolygonAndCircle.s_c),g=box2d.b2MulTXV(c,f,box2d.b2CollidePolygonAndCircle.s_cLocal),h=0,i=-box2d.b2_maxFloat,j=b.m_radius+d.m_radius,k=b.m_count,l=b.m_vertices,m=b.m_normals,n=0;n<k;++n){var o=box2d.b2DotVV(m[n],box2d.b2SubVV(g,l[n],box2d.b2Vec2.s_t0));if(o>j)return;o>i&&(i=o,h=n)}var p=h,q=(p+1)%k,r=l[p],s=l[q];if(i<box2d.b2_epsilon)return a.pointCount=1,a.type=box2d.b2ManifoldType.e_faceA,a.localNormal.Copy(m[h]),box2d.b2MidVV(r,s,a.localPoint),a.points[0].localPoint.Copy(d.m_p),void(a.points[0].id.key=0);var t=box2d.b2DotVV(box2d.b2SubVV(g,r,box2d.b2Vec2.s_t0),box2d.b2SubVV(s,r,box2d.b2Vec2.s_t1)),u=box2d.b2DotVV(box2d.b2SubVV(g,s,box2d.b2Vec2.s_t0),box2d.b2SubVV(r,s,box2d.b2Vec2.s_t1));if(t<=0){if(box2d.b2DistanceSquaredVV(g,r)>j*j)return;a.pointCount=1,a.type=box2d.b2ManifoldType.e_faceA,box2d.b2SubVV(g,r,a.localNormal).SelfNormalize(),a.localPoint.Copy(r),a.points[0].localPoint.Copy(d.m_p),a.points[0].id.key=0}else if(u<=0){if(box2d.b2DistanceSquaredVV(g,s)>j*j)return;a.pointCount=1,a.type=box2d.b2ManifoldType.e_faceA,box2d.b2SubVV(g,s,a.localNormal).SelfNormalize(),a.localPoint.Copy(s),a.points[0].localPoint.Copy(d.m_p),a.points[0].id.key=0}else{var v=box2d.b2MidVV(r,s,box2d.b2CollidePolygonAndCircle.s_faceCenter);if((i=box2d.b2DotVV(box2d.b2SubVV(g,v,box2d.b2Vec2.s_t1),m[p]))>j)return;a.pointCount=1,a.type=box2d.b2ManifoldType.e_faceA,a.localNormal.Copy(m[p]).SelfNormalize(),a.localPoint.Copy(v),a.points[0].localPoint.Copy(d.m_p),a.points[0].id.key=0}},box2d.b2CollidePolygonAndCircle.s_c=new box2d.b2Vec2,box2d.b2CollidePolygonAndCircle.s_cLocal=new box2d.b2Vec2,box2d.b2CollidePolygonAndCircle.s_faceCenter=new box2d.b2Vec2,goog.provide("box2d.b2CircleContact"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Contact"),goog.require("box2d.b2CollideCircle"),box2d.b2CircleContact=function(){goog.base(this)},goog.inherits(box2d.b2CircleContact,box2d.b2Contact),box2d.b2CircleContact.Create=function(a){return new box2d.b2CircleContact},box2d.b2CircleContact.Destroy=function(a,b){},box2d.b2CircleContact.prototype.Reset=function(a,b,c,d){goog.base(this,"Reset",a,b,c,d)},box2d.b2CircleContact.prototype.Evaluate=function(a,b,c){var d=this.m_fixtureA.GetShape(),e=this.m_fixtureB.GetShape();box2d.ENABLE_ASSERTS&&box2d.b2Assert(d instanceof box2d.b2CircleShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(e instanceof box2d.b2CircleShape),box2d.b2CollideCircles(a,d instanceof box2d.b2CircleShape?d:null,b,e instanceof box2d.b2CircleShape?e:null,c)},goog.provide("box2d.b2ChainAndCircleContact"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Contact"),goog.require("box2d.b2CollideEdge"),box2d.b2ChainAndCircleContact=function(){goog.base(this)},goog.inherits(box2d.b2ChainAndCircleContact,box2d.b2Contact),box2d.b2ChainAndCircleContact.Create=function(a){return new box2d.b2ChainAndCircleContact},box2d.b2ChainAndCircleContact.Destroy=function(a,b){},box2d.b2ChainAndCircleContact.prototype.Reset=function(a,b,c,d){goog.base(this,"Reset",a,b,c,d),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.GetType()===box2d.b2ShapeType.e_chainShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(c.GetType()===box2d.b2ShapeType.e_circleShape)},box2d.b2ChainAndCircleContact.prototype.Evaluate=function(a,b,c){var d=this.m_fixtureA.GetShape(),e=this.m_fixtureB.GetShape();box2d.ENABLE_ASSERTS&&box2d.b2Assert(d instanceof box2d.b2ChainShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(e instanceof box2d.b2CircleShape);var f=d instanceof box2d.b2ChainShape?d:null,g=box2d.b2ChainAndCircleContact.prototype.Evaluate.s_edge;f.GetChildEdge(g,this.m_indexA),box2d.b2CollideEdgeAndCircle(a,g,b,e instanceof box2d.b2CircleShape?e:null,c)},box2d.b2ChainAndCircleContact.prototype.Evaluate.s_edge=new box2d.b2EdgeShape,goog.provide("box2d.b2EdgeAndCircleContact"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Contact"),goog.require("box2d.b2CollideEdge"),box2d.b2EdgeAndCircleContact=function(){goog.base(this)},goog.inherits(box2d.b2EdgeAndCircleContact,box2d.b2Contact),box2d.b2EdgeAndCircleContact.Create=function(a){return new box2d.b2EdgeAndCircleContact},box2d.b2EdgeAndCircleContact.Destroy=function(a,b){},box2d.b2EdgeAndCircleContact.prototype.Reset=function(a,b,c,d){goog.base(this,"Reset",a,b,c,d),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.GetType()===box2d.b2ShapeType.e_edgeShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(c.GetType()===box2d.b2ShapeType.e_circleShape)},box2d.b2EdgeAndCircleContact.prototype.Evaluate=function(a,b,c){var d=this.m_fixtureA.GetShape(),e=this.m_fixtureB.GetShape();box2d.ENABLE_ASSERTS&&box2d.b2Assert(d instanceof box2d.b2EdgeShape),box2d.ENABLE_ASSERTS&&box2d.b2Assert(e instanceof box2d.b2CircleShape),box2d.b2CollideEdgeAndCircle(a,d instanceof box2d.b2EdgeShape?d:null,b,e instanceof box2d.b2CircleShape?e:null,c)},goog.provide("box2d.b2ContactSolver"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),goog.require("box2d.b2Collision"),goog.require("box2d.b2CircleContact"),goog.require("box2d.b2PolygonAndCircleContact"),goog.require("box2d.b2PolygonContact"),goog.require("box2d.b2EdgeAndCircleContact"),goog.require("box2d.b2EdgeAndPolygonContact"),goog.require("box2d.b2ChainAndCircleContact"),goog.require("box2d.b2ChainAndPolygonContact"),box2d.b2VelocityConstraintPoint=function(){this.rA=new box2d.b2Vec2,this.rB=new box2d.b2Vec2},box2d.b2VelocityConstraintPoint.prototype.rA=null,box2d.b2VelocityConstraintPoint.prototype.rB=null,box2d.b2VelocityConstraintPoint.prototype.normalImpulse=0,box2d.b2VelocityConstraintPoint.prototype.tangentImpulse=0,box2d.b2VelocityConstraintPoint.prototype.normalMass=0,box2d.b2VelocityConstraintPoint.prototype.tangentMass=0,box2d.b2VelocityConstraintPoint.prototype.velocityBias=0,box2d.b2VelocityConstraintPoint.MakeArray=function(a){return box2d.b2MakeArray(a,function(a){return new box2d.b2VelocityConstraintPoint})},box2d.b2ContactVelocityConstraint=function(){this.points=box2d.b2VelocityConstraintPoint.MakeArray(box2d.b2_maxManifoldPoints),this.normal=new box2d.b2Vec2,this.tangent=new box2d.b2Vec2,this.normalMass=new box2d.b2Mat22,this.K=new box2d.b2Mat22},box2d.b2ContactVelocityConstraint.prototype.points=null,box2d.b2ContactVelocityConstraint.prototype.normal=null,box2d.b2ContactVelocityConstraint.prototype.tangent=null,box2d.b2ContactVelocityConstraint.prototype.normalMass=null,box2d.b2ContactVelocityConstraint.prototype.K=null,box2d.b2ContactVelocityConstraint.prototype.indexA=0,box2d.b2ContactVelocityConstraint.prototype.indexB=0,box2d.b2ContactVelocityConstraint.prototype.invMassA=0,box2d.b2ContactVelocityConstraint.prototype.invMassB=0,box2d.b2ContactVelocityConstraint.prototype.invIA=0,box2d.b2ContactVelocityConstraint.prototype.invIB=0,box2d.b2ContactVelocityConstraint.prototype.friction=0,box2d.b2ContactVelocityConstraint.prototype.restitution=0,box2d.b2ContactVelocityConstraint.prototype.tangentSpeed=0,box2d.b2ContactVelocityConstraint.prototype.pointCount=0,box2d.b2ContactVelocityConstraint.prototype.contactIndex=0,box2d.b2ContactVelocityConstraint.MakeArray=function(a){return box2d.b2MakeArray(a,function(a){return new box2d.b2ContactVelocityConstraint})},box2d.b2ContactPositionConstraint=function(){this.localPoints=box2d.b2Vec2.MakeArray(box2d.b2_maxManifoldPoints),this.localNormal=new box2d.b2Vec2,this.localPoint=new box2d.b2Vec2,this.localCenterA=new box2d.b2Vec2,this.localCenterB=new box2d.b2Vec2},box2d.b2ContactPositionConstraint.prototype.localPoints=null,box2d.b2ContactPositionConstraint.prototype.localNormal=null,box2d.b2ContactPositionConstraint.prototype.localPoint=null,box2d.b2ContactPositionConstraint.prototype.indexA=0,box2d.b2ContactPositionConstraint.prototype.indexB=0,box2d.b2ContactPositionConstraint.prototype.invMassA=0,box2d.b2ContactPositionConstraint.prototype.invMassB=0,box2d.b2ContactPositionConstraint.prototype.localCenterA=null,box2d.b2ContactPositionConstraint.prototype.localCenterB=null,box2d.b2ContactPositionConstraint.prototype.invIA=0,box2d.b2ContactPositionConstraint.prototype.invIB=0,box2d.b2ContactPositionConstraint.prototype.type=box2d.b2ManifoldType.e_unknown,box2d.b2ContactPositionConstraint.prototype.radiusA=0,box2d.b2ContactPositionConstraint.prototype.radiusB=0,box2d.b2ContactPositionConstraint.prototype.pointCount=0,box2d.b2ContactPositionConstraint.MakeArray=function(a){return box2d.b2MakeArray(a,function(a){return new box2d.b2ContactPositionConstraint})},box2d.b2ContactSolverDef=function(){this.step=new box2d.b2TimeStep},box2d.b2ContactSolverDef.prototype.step=null,box2d.b2ContactSolverDef.prototype.contacts=null,box2d.b2ContactSolverDef.prototype.count=0,box2d.b2ContactSolverDef.prototype.positions=null,box2d.b2ContactSolverDef.prototype.velocities=null,box2d.b2ContactSolverDef.prototype.allocator=null,box2d.b2ContactSolver=function(){this.m_step=new box2d.b2TimeStep,this.m_positionConstraints=box2d.b2ContactPositionConstraint.MakeArray(1024),this.m_velocityConstraints=box2d.b2ContactVelocityConstraint.MakeArray(1024)},box2d.b2ContactSolver.prototype.m_step=null,box2d.b2ContactSolver.prototype.m_positions=null,box2d.b2ContactSolver.prototype.m_velocities=null,box2d.b2ContactSolver.prototype.m_allocator=null,box2d.b2ContactSolver.prototype.m_positionConstraints=null,box2d.b2ContactSolver.prototype.m_velocityConstraints=null,box2d.b2ContactSolver.prototype.m_contacts=null,box2d.b2ContactSolver.prototype.m_count=0,box2d.b2ContactSolver.prototype.Initialize=function(a){if(this.m_step.Copy(a.step),this.m_allocator=a.allocator,this.m_count=a.count,this.m_positionConstraints.length<this.m_count){var b=box2d.b2Max(2*this.m_positionConstraints.length,this.m_count);for(box2d.DEBUG&&window.console.log("box2d.b2ContactSolver.m_positionConstraints: "+b);this.m_positionConstraints.length<b;)this.m_positionConstraints[this.m_positionConstraints.length]=new box2d.b2ContactPositionConstraint}if(this.m_velocityConstraints.length<this.m_count){var b=box2d.b2Max(2*this.m_velocityConstraints.length,this.m_count);for(box2d.DEBUG&&window.console.log("box2d.b2ContactSolver.m_velocityConstraints: "+b);this.m_velocityConstraints.length<b;)this.m_velocityConstraints[this.m_velocityConstraints.length]=new box2d.b2ContactVelocityConstraint}this.m_positions=a.positions,this.m_velocities=a.velocities,this.m_contacts=a.contacts;var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;for(c=0,d=this.m_count;c<d;++c)for(g=this.m_contacts[c],h=g.m_fixtureA,i=g.m_fixtureB,j=h.GetShape(),k=i.GetShape(),l=j.m_radius,m=k.m_radius,n=h.GetBody(),o=i.GetBody(),p=g.GetManifold(),q=p.pointCount,box2d.ENABLE_ASSERTS&&box2d.b2Assert(q>0),r=this.m_velocityConstraints[c],r.friction=g.m_friction,r.restitution=g.m_restitution,r.tangentSpeed=g.m_tangentSpeed,r.indexA=n.m_islandIndex,r.indexB=o.m_islandIndex,r.invMassA=n.m_invMass,r.invMassB=o.m_invMass,r.invIA=n.m_invI,r.invIB=o.m_invI,r.contactIndex=c,r.pointCount=q,r.K.SetZero(),r.normalMass.SetZero(),s=this.m_positionConstraints[c],s.indexA=n.m_islandIndex,s.indexB=o.m_islandIndex,s.invMassA=n.m_invMass,s.invMassB=o.m_invMass,s.localCenterA.Copy(n.m_sweep.localCenter),s.localCenterB.Copy(o.m_sweep.localCenter),s.invIA=n.m_invI,s.invIB=o.m_invI,s.localNormal.Copy(p.localNormal),s.localPoint.Copy(p.localPoint),s.pointCount=q,s.radiusA=l,s.radiusB=m,s.type=p.type,e=0,f=q;e<f;++e)t=p.points[e],u=r.points[e],this.m_step.warmStarting?(u.normalImpulse=this.m_step.dtRatio*t.normalImpulse,u.tangentImpulse=this.m_step.dtRatio*t.tangentImpulse):(u.normalImpulse=0,u.tangentImpulse=0),u.rA.SetZero(),u.rB.SetZero(),u.normalMass=0,u.tangentMass=0,u.velocityBias=0,s.localPoints[e].Copy(t.localPoint);return this},box2d.b2ContactSolver.prototype.InitializeVelocityConstraints=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S=box2d.b2ContactSolver.prototype.InitializeVelocityConstraints.s_xfA,T=box2d.b2ContactSolver.prototype.InitializeVelocityConstraints.s_xfB,U=box2d.b2ContactSolver.prototype.InitializeVelocityConstraints.s_worldManifold;for(a=0,b=this.m_count;a<b;++a){for(e=this.m_velocityConstraints[a],f=this.m_positionConstraints[a],g=f.radiusA,h=f.radiusB,i=this.m_contacts[e.contactIndex].GetManifold(),j=e.indexA,k=e.indexB,l=e.invMassA,m=e.invMassB,n=e.invIA,o=e.invIB,p=f.localCenterA,q=f.localCenterB,r=this.m_positions[j].c,s=this.m_positions[j].a,t=this.m_velocities[j].v,u=this.m_velocities[j].w,v=this.m_positions[k].c,w=this.m_positions[k].a,x=this.m_velocities[k].v,y=this.m_velocities[k].w,box2d.ENABLE_ASSERTS&&box2d.b2Assert(i.pointCount>0),S.q.SetAngleRadians(s),T.q.SetAngleRadians(w),box2d.b2SubVV(r,box2d.b2MulRV(S.q,p,box2d.b2Vec2.s_t0),S.p),box2d.b2SubVV(v,box2d.b2MulRV(T.q,q,box2d.b2Vec2.s_t0),T.p),U.Initialize(i,S,g,T,h),e.normal.Copy(U.normal),box2d.b2CrossVOne(e.normal,e.tangent),z=e.pointCount,c=0,d=z;c<d;++c)A=e.points[c],box2d.b2SubVV(U.points[c],r,A.rA),box2d.b2SubVV(U.points[c],v,A.rB),B=box2d.b2CrossVV(A.rA,e.normal),C=box2d.b2CrossVV(A.rB,e.normal),D=l+m+n*B*B+o*C*C,A.normalMass=D>0?1/D:0,E=e.tangent,F=box2d.b2CrossVV(A.rA,E),G=box2d.b2CrossVV(A.rB,E),H=l+m+n*F*F+o*G*G,A.tangentMass=H>0?1/H:0,A.velocityBias=0,(I=box2d.b2DotVV(e.normal,box2d.b2SubVV(box2d.b2AddVCrossSV(x,y,A.rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(t,u,A.rA,box2d.b2Vec2.s_t1),box2d.b2Vec2.s_t0)))<-box2d.b2_velocityThreshold&&(A.velocityBias+=-e.restitution*I);2===e.pointCount&&(J=e.points[0],K=e.points[1],L=box2d.b2CrossVV(J.rA,e.normal),M=box2d.b2CrossVV(J.rB,e.normal),N=box2d.b2CrossVV(K.rA,e.normal),O=box2d.b2CrossVV(K.rB,e.normal),P=l+m+n*L*L+o*M*M,Q=l+m+n*N*N+o*O*O,R=l+m+n*L*N+o*M*O,P*P<1e3*(P*Q-R*R)?(e.K.ex.SetXY(P,R),e.K.ey.SetXY(R,Q),e.K.GetInverse(e.normalMass)):e.pointCount=1)}},box2d.b2ContactSolver.prototype.InitializeVelocityConstraints.s_xfA=new box2d.b2Transform,box2d.b2ContactSolver.prototype.InitializeVelocityConstraints.s_xfB=new box2d.b2Transform,box2d.b2ContactSolver.prototype.InitializeVelocityConstraints.s_worldManifold=new box2d.b2WorldManifold,box2d.b2ContactSolver.prototype.WarmStart=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t=box2d.b2ContactSolver.prototype.WarmStart.s_P;for(a=0,b=this.m_count;a<b;++a){for(e=this.m_velocityConstraints[a],f=e.indexA,g=e.indexB,h=e.invMassA,i=e.invIA,j=e.invMassB,k=e.invIB,l=e.pointCount,m=this.m_velocities[f].v,n=this.m_velocities[f].w,o=this.m_velocities[g].v,p=this.m_velocities[g].w,q=e.normal,r=e.tangent,c=0,d=l;c<d;++c)s=e.points[c],box2d.b2AddVV(box2d.b2MulSV(s.normalImpulse,q,box2d.b2Vec2.s_t0),box2d.b2MulSV(s.tangentImpulse,r,box2d.b2Vec2.s_t1),t),n-=i*box2d.b2CrossVV(s.rA,t),m.SelfMulSub(h,t),p+=k*box2d.b2CrossVV(s.rB,t),o.SelfMulAdd(j,t);this.m_velocities[f].w=n,this.m_velocities[g].w=p}},box2d.b2ContactSolver.prototype.WarmStart.s_P=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_dv,E=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_dv1,F=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_dv2,G=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_P,H=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_a,I=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_b,J=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_x,K=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_d,L=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_P1,M=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_P2,N=box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_P1P2;for(a=0,b=this.m_count;a<b;++a){for(e=this.m_velocityConstraints[a],f=e.indexA,g=e.indexB,h=e.invMassA,i=e.invIA,j=e.invMassB,k=e.invIB,l=e.pointCount,m=this.m_velocities[f].v,n=this.m_velocities[f].w,o=this.m_velocities[g].v,p=this.m_velocities[g].w,q=e.normal,r=e.tangent,s=e.friction,box2d.ENABLE_ASSERTS&&box2d.b2Assert(1===l||2===l),c=0,d=l;c<d;++c)t=e.points[c],box2d.b2SubVV(box2d.b2AddVCrossSV(o,p,t.rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(m,n,t.rA,box2d.b2Vec2.s_t1),D),u=box2d.b2DotVV(D,r)-e.tangentSpeed,w=t.tangentMass*-u,x=s*t.normalImpulse,y=box2d.b2Clamp(t.tangentImpulse+w,-x,x),w=y-t.tangentImpulse,t.tangentImpulse=y,box2d.b2MulSV(w,r,G),m.SelfMulSub(h,G),n-=i*box2d.b2CrossVV(t.rA,G),o.SelfMulAdd(j,G),p+=k*box2d.b2CrossVV(t.rB,G);if(1===e.pointCount)t=e.points[0],box2d.b2SubVV(box2d.b2AddVCrossSV(o,p,t.rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(m,n,t.rA,box2d.b2Vec2.s_t1),D),v=box2d.b2DotVV(D,q),w=-t.normalMass*(v-t.velocityBias),y=box2d.b2Max(t.normalImpulse+w,0),w=y-t.normalImpulse,t.normalImpulse=y,box2d.b2MulSV(w,q,G),m.SelfMulSub(h,G),n-=i*box2d.b2CrossVV(t.rA,G),o.SelfMulAdd(j,G),p+=k*box2d.b2CrossVV(t.rB,G);else for(z=e.points[0],A=e.points[1],H.SetXY(z.normalImpulse,A.normalImpulse),box2d.ENABLE_ASSERTS&&box2d.b2Assert(H.x>=0&&H.y>=0),box2d.b2SubVV(box2d.b2AddVCrossSV(o,p,z.rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(m,n,z.rA,box2d.b2Vec2.s_t1),E),box2d.b2SubVV(box2d.b2AddVCrossSV(o,p,A.rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(m,n,A.rA,box2d.b2Vec2.s_t1),F),B=box2d.b2DotVV(E,q),C=box2d.b2DotVV(F,q),I.x=B-z.velocityBias,I.y=C-A.velocityBias,I.SelfSub(box2d.b2MulMV(e.K,H,box2d.b2Vec2.s_t0));;){if(box2d.b2MulMV(e.normalMass,I,J).SelfNeg(),J.x>=0&&J.y>=0){box2d.b2SubVV(J,H,K),box2d.b2MulSV(K.x,q,L),box2d.b2MulSV(K.y,q,M),box2d.b2AddVV(L,M,N),m.SelfMulSub(h,N),n-=i*(box2d.b2CrossVV(z.rA,L)+box2d.b2CrossVV(A.rA,M)),o.SelfMulAdd(j,N),p+=k*(box2d.b2CrossVV(z.rB,L)+box2d.b2CrossVV(A.rB,M)),z.normalImpulse=J.x,A.normalImpulse=J.y;break}if(J.x=-z.normalMass*I.x,J.y=0,B=0,C=e.K.ex.y*J.x+I.y,J.x>=0&&C>=0){box2d.b2SubVV(J,H,K),box2d.b2MulSV(K.x,q,L),box2d.b2MulSV(K.y,q,M),box2d.b2AddVV(L,M,N),m.SelfMulSub(h,N),n-=i*(box2d.b2CrossVV(z.rA,L)+box2d.b2CrossVV(A.rA,M)),o.SelfMulAdd(j,N),p+=k*(box2d.b2CrossVV(z.rB,L)+box2d.b2CrossVV(A.rB,M)),z.normalImpulse=J.x,A.normalImpulse=J.y;break}if(J.x=0,J.y=-A.normalMass*I.y,B=e.K.ey.x*J.y+I.x,C=0,J.y>=0&&B>=0){box2d.b2SubVV(J,H,K),box2d.b2MulSV(K.x,q,L),box2d.b2MulSV(K.y,q,M),box2d.b2AddVV(L,M,N),m.SelfMulSub(h,N),n-=i*(box2d.b2CrossVV(z.rA,L)+box2d.b2CrossVV(A.rA,M)),o.SelfMulAdd(j,N),p+=k*(box2d.b2CrossVV(z.rB,L)+box2d.b2CrossVV(A.rB,M)),z.normalImpulse=J.x,A.normalImpulse=J.y;break}if(J.x=0,J.y=0,B=I.x,C=I.y,B>=0&&C>=0){box2d.b2SubVV(J,H,K),box2d.b2MulSV(K.x,q,L),box2d.b2MulSV(K.y,q,M),box2d.b2AddVV(L,M,N),m.SelfMulSub(h,N),n-=i*(box2d.b2CrossVV(z.rA,L)+box2d.b2CrossVV(A.rA,M)),o.SelfMulAdd(j,N),p+=k*(box2d.b2CrossVV(z.rB,L)+box2d.b2CrossVV(A.rB,M)),z.normalImpulse=J.x,A.normalImpulse=J.y;break}break}this.m_velocities[f].w=n,this.m_velocities[g].w=p}},box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_dv=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_dv1=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_dv2=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_a=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_b=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_x=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_d=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_P1=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_P2=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveVelocityConstraints.s_P1P2=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.StoreImpulses=function(){var a,b,c,d,e,f;for(a=0,b=this.m_count;a<b;++a)for(e=this.m_velocityConstraints[a],f=this.m_contacts[e.contactIndex].GetManifold(),c=0,d=e.pointCount;c<d;++c)f.points[c].normalImpulse=e.points[c].normalImpulse,f.points[c].tangentImpulse=e.points[c].tangentImpulse},box2d.b2PositionSolverManifold=function(){this.normal=new box2d.b2Vec2,this.point=new box2d.b2Vec2},box2d.b2PositionSolverManifold.prototype.normal=null,box2d.b2PositionSolverManifold.prototype.point=null,box2d.b2PositionSolverManifold.prototype.separation=0,box2d.b2PositionSolverManifold.prototype.Initialize=function(a,b,c,d){var e=box2d.b2PositionSolverManifold.prototype.Initialize.s_pointA,f=box2d.b2PositionSolverManifold.prototype.Initialize.s_pointB,g=box2d.b2PositionSolverManifold.prototype.Initialize.s_planePoint,h=box2d.b2PositionSolverManifold.prototype.Initialize.s_clipPoint;switch(box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.pointCount>0),a.type){case box2d.b2ManifoldType.e_circles:box2d.b2MulXV(b,a.localPoint,e),box2d.b2MulXV(c,a.localPoints[0],f),box2d.b2SubVV(f,e,this.normal).SelfNormalize(),box2d.b2MidVV(e,f,this.point),this.separation=box2d.b2DotVV(box2d.b2SubVV(f,e,box2d.b2Vec2.s_t0),this.normal)-a.radiusA-a.radiusB;break;case box2d.b2ManifoldType.e_faceA:box2d.b2MulRV(b.q,a.localNormal,this.normal),box2d.b2MulXV(b,a.localPoint,g),box2d.b2MulXV(c,a.localPoints[d],h),this.separation=box2d.b2DotVV(box2d.b2SubVV(h,g,box2d.b2Vec2.s_t0),this.normal)-a.radiusA-a.radiusB,this.point.Copy(h);break;case box2d.b2ManifoldType.e_faceB:box2d.b2MulRV(c.q,a.localNormal,this.normal),box2d.b2MulXV(c,a.localPoint,g),box2d.b2MulXV(b,a.localPoints[d],h),this.separation=box2d.b2DotVV(box2d.b2SubVV(h,g,box2d.b2Vec2.s_t0),this.normal)-a.radiusA-a.radiusB,this.point.Copy(h),this.normal.SelfNeg()}},box2d.b2PositionSolverManifold.prototype.Initialize.s_pointA=new box2d.b2Vec2,box2d.b2PositionSolverManifold.prototype.Initialize.s_pointB=new box2d.b2Vec2,box2d.b2PositionSolverManifold.prototype.Initialize.s_planePoint=new box2d.b2Vec2,box2d.b2PositionSolverManifold.prototype.Initialize.s_clipPoint=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolvePositionConstraints=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A=box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_xfA,B=box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_xfB,C=box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_psm,D=box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_rA,E=box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_rB,F=box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_P,G=0;for(a=0,b=this.m_count;a<b;++a){for(e=this.m_positionConstraints[a],f=e.indexA,g=e.indexB,h=e.localCenterA,i=e.invMassA,j=e.invIA,k=e.localCenterB,l=e.invMassB,m=e.invIB,n=e.pointCount,o=this.m_positions[f].c,p=this.m_positions[f].a,q=this.m_positions[g].c,r=this.m_positions[g].a,c=0,d=n;c<d;++c)A.q.SetAngleRadians(p),B.q.SetAngleRadians(r),box2d.b2SubVV(o,box2d.b2MulRV(A.q,h,box2d.b2Vec2.s_t0),A.p),box2d.b2SubVV(q,box2d.b2MulRV(B.q,k,box2d.b2Vec2.s_t0),B.p),C.Initialize(e,A,B,c),s=C.normal,t=C.point,u=C.separation,box2d.b2SubVV(t,o,D),box2d.b2SubVV(t,q,E),G=box2d.b2Min(G,u),v=box2d.b2Clamp(box2d.b2_baumgarte*(u+box2d.b2_linearSlop),-box2d.b2_maxLinearCorrection,0),w=box2d.b2CrossVV(D,s),x=box2d.b2CrossVV(E,s),y=i+l+j*w*w+m*x*x,z=y>0?-v/y:0,box2d.b2MulSV(z,s,F),o.SelfMulSub(i,F),p-=j*box2d.b2CrossVV(D,F),q.SelfMulAdd(l,F),r+=m*box2d.b2CrossVV(E,F);this.m_positions[f].a=p,this.m_positions[g].a=r}return G>-3*box2d.b2_linearSlop},box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_xfA=new box2d.b2Transform,box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_xfB=new box2d.b2Transform,box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_psm=new box2d.b2PositionSolverManifold,box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_rA=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_rB=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolvePositionConstraints.s_P=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C=box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_xfA,D=box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_xfB,E=box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_psm,F=box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_rA,G=box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_rB,H=box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_P,I=0;for(c=0,d=this.m_count;c<d;++c){for(g=this.m_positionConstraints[c],h=g.indexA,i=g.indexB,j=g.localCenterA,k=g.localCenterB,l=g.pointCount,m=0,n=0,h!==a&&h!==b||(m=g.invMassA,n=g.invIA),o=0,p=0,i!==a&&i!==b||(o=g.invMassB,p=g.invIB),q=this.m_positions[h].c,r=this.m_positions[h].a,s=this.m_positions[i].c,t=this.m_positions[i].a,e=0,f=l;e<f;++e)C.q.SetAngleRadians(r),D.q.SetAngleRadians(t),box2d.b2SubVV(q,box2d.b2MulRV(C.q,j,box2d.b2Vec2.s_t0),C.p),box2d.b2SubVV(s,box2d.b2MulRV(D.q,k,box2d.b2Vec2.s_t0),D.p),E.Initialize(g,C,D,e),u=E.normal,v=E.point,w=E.separation,box2d.b2SubVV(v,q,F),box2d.b2SubVV(v,s,G),I=box2d.b2Min(I,w),x=box2d.b2Clamp(box2d.b2_toiBaumgarte*(w+box2d.b2_linearSlop),-box2d.b2_maxLinearCorrection,0),y=box2d.b2CrossVV(F,u),z=box2d.b2CrossVV(G,u),A=m+o+n*y*y+p*z*z,B=A>0?-x/A:0,box2d.b2MulSV(B,u,H),q.SelfMulSub(m,H),r-=n*box2d.b2CrossVV(F,H),s.SelfMulAdd(o,H),t+=p*box2d.b2CrossVV(G,H);this.m_positions[h].a=r,this.m_positions[i].a=t}return I>=-1.5*box2d.b2_linearSlop},box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_xfA=new box2d.b2Transform,box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_xfB=new box2d.b2Transform,box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_psm=new box2d.b2PositionSolverManifold,box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_rA=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_rB=new box2d.b2Vec2,box2d.b2ContactSolver.prototype.SolveTOIPositionConstraints.s_P=new box2d.b2Vec2,goog.provide("box2d.b2WorldCallbacks"),goog.require("box2d.b2Settings"),box2d.b2DestructionListener=function(){},box2d.b2DestructionListener.prototype.SayGoodbyeJoint=function(a){},box2d.b2DestructionListener.prototype.SayGoodbyeFixture=function(a){},box2d.b2ContactFilter=function(){},box2d.b2ContactFilter.prototype.ShouldCollide=function(a,b){var c=a.GetFilterData(),d=b.GetFilterData();return c.groupIndex===d.groupIndex&&0!==c.groupIndex?c.groupIndex>0:0!=(c.maskBits&d.categoryBits)&&0!=(c.categoryBits&d.maskBits)},box2d.b2ContactFilter.b2_defaultFilter=new box2d.b2ContactFilter,box2d.b2ContactImpulse=function(){this.normalImpulses=box2d.b2MakeNumberArray(box2d.b2_maxManifoldPoints),this.tangentImpulses=box2d.b2MakeNumberArray(box2d.b2_maxManifoldPoints)},box2d.b2ContactImpulse.prototype.normalImpulses=null,box2d.b2ContactImpulse.prototype.tangentImpulses=null,box2d.b2ContactImpulse.prototype.count=0,box2d.b2ContactListener=function(){};box2d.b2ContactListener.prototype.BeginContact=function(a){},box2d.b2ContactListener.prototype.EndContact=function(a){},box2d.b2ContactListener.prototype.PreSolve=function(a,b){},box2d.b2ContactListener.prototype.PostSolve=function(a,b){},box2d.b2ContactListener.b2_defaultListener=new box2d.b2ContactListener,box2d.b2QueryCallback=function(){},box2d.b2QueryCallback.prototype.ReportFixture=function(a){return!0},box2d.b2RayCastCallback=function(){},box2d.b2RayCastCallback.prototype.ReportFixture=function(a,b,c,d){return d},goog.provide("box2d.b2Island"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Timer"),goog.require("box2d.b2TimeStep"),
|
||
goog.require("box2d.b2WorldCallbacks"),goog.require("box2d.b2ContactSolver"),box2d.b2Island=function(){this.m_bodies=new Array(1024),this.m_contacts=new Array(1024),this.m_joints=new Array(1024),this.m_positions=box2d.b2Position.MakeArray(1024),this.m_velocities=box2d.b2Velocity.MakeArray(1024)},box2d.b2Island.prototype.m_allocator=null,box2d.b2Island.prototype.m_listener=null,box2d.b2Island.prototype.m_bodies=null,box2d.b2Island.prototype.m_contacts=null,box2d.b2Island.prototype.m_joints=null,box2d.b2Island.prototype.m_positions=null,box2d.b2Island.prototype.m_velocities=null,box2d.b2Island.prototype.m_bodyCount=0,box2d.b2Island.prototype.m_jointCount=0,box2d.b2Island.prototype.m_contactCount=0,box2d.b2Island.prototype.m_bodyCapacity=0,box2d.b2Island.prototype.m_contactCapacity=0,box2d.b2Island.prototype.m_jointCapacity=0,box2d.b2Island.prototype.Initialize=function(a,b,c,d,e){for(this.m_bodyCapacity=a,this.m_contactCapacity=b,this.m_jointCapacity=c,this.m_bodyCount=0,this.m_contactCount=0,this.m_jointCount=0,this.m_allocator=d,this.m_listener=e;this.m_bodies.length<a;)this.m_bodies[this.m_bodies.length]=null;for(;this.m_contacts.length<b;)this.m_contacts[this.m_contacts.length]=null;for(;this.m_joints.length<c;)this.m_joints[this.m_joints.length]=null;if(this.m_positions.length<a){var f=box2d.b2Max(2*this.m_positions.length,a);for(box2d.DEBUG&&window.console.log("box2d.b2Island.m_positions: "+f);this.m_positions.length<f;)this.m_positions[this.m_positions.length]=new box2d.b2Position}if(this.m_velocities.length<a){var f=box2d.b2Max(2*this.m_velocities.length,a);for(box2d.DEBUG&&window.console.log("box2d.b2Island.m_velocities: "+f);this.m_velocities.length<f;)this.m_velocities[this.m_velocities.length]=new box2d.b2Velocity}},box2d.b2Island.prototype.Clear=function(){this.m_bodyCount=0,this.m_contactCount=0,this.m_jointCount=0},box2d.b2Island.prototype.AddBody=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_bodyCount<this.m_bodyCapacity),a.m_islandIndex=this.m_bodyCount,this.m_bodies[this.m_bodyCount++]=a},box2d.b2Island.prototype.AddContact=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_contactCount<this.m_contactCapacity),this.m_contacts[this.m_contactCount++]=a},box2d.b2Island.prototype.AddJoint=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_jointCount<this.m_jointCapacity),this.m_joints[this.m_jointCount++]=a},box2d.b2Island.prototype.Solve=function(a,b,c,d){for(var e=box2d.b2Island.s_timer.Reset(),f=b.dt,g=0;g<this.m_bodyCount;++g){var h=this.m_bodies[g],i=this.m_positions[g].c.Copy(h.m_sweep.c),j=h.m_sweep.a,k=this.m_velocities[g].v.Copy(h.m_linearVelocity),l=h.m_angularVelocity;h.m_sweep.c0.Copy(h.m_sweep.c),h.m_sweep.a0=h.m_sweep.a,h.m_type===box2d.b2BodyType.b2_dynamicBody&&(k.x+=f*(h.m_gravityScale*c.x+h.m_invMass*h.m_force.x),k.y+=f*(h.m_gravityScale*c.y+h.m_invMass*h.m_force.y),l+=f*h.m_invI*h.m_torque,k.SelfMul(1/(1+f*h.m_linearDamping)),l*=1/(1+f*h.m_angularDamping)),this.m_positions[g].a=j,this.m_velocities[g].w=l}e.Reset();var m=box2d.b2Island.s_solverData;m.step.Copy(b),m.positions=this.m_positions,m.velocities=this.m_velocities;var n=box2d.b2Island.s_contactSolverDef;n.step.Copy(b),n.contacts=this.m_contacts,n.count=this.m_contactCount,n.positions=this.m_positions,n.velocities=this.m_velocities,n.allocator=this.m_allocator;var o=box2d.b2Island.s_contactSolver.Initialize(n);o.InitializeVelocityConstraints(),b.warmStarting&&o.WarmStart();for(var g=0;g<this.m_jointCount;++g)this.m_joints[g].InitVelocityConstraints(m);a.solveInit=e.GetMilliseconds(),e.Reset();for(var g=0;g<b.velocityIterations;++g){for(var p=0;p<this.m_jointCount;++p)this.m_joints[p].SolveVelocityConstraints(m);o.SolveVelocityConstraints()}o.StoreImpulses(),a.solveVelocity=e.GetMilliseconds();for(var g=0;g<this.m_bodyCount;++g){var i=this.m_positions[g].c,j=this.m_positions[g].a,k=this.m_velocities[g].v,l=this.m_velocities[g].w,q=box2d.b2MulSV(f,k,box2d.b2Island.s_translation);if(box2d.b2DotVV(q,q)>box2d.b2_maxTranslationSquared){var r=box2d.b2_maxTranslation/q.GetLength();k.SelfMul(r)}var s=f*l;if(s*s>box2d.b2_maxRotationSquared){var r=box2d.b2_maxRotation/box2d.b2Abs(s);l*=r}i.x+=f*k.x,i.y+=f*k.y,j+=f*l,this.m_positions[g].a=j,this.m_velocities[g].w=l}e.Reset();for(var t=!1,g=0;g<b.positionIterations;++g){for(var u=o.SolvePositionConstraints(),v=!0,p=0;p<this.m_jointCount;++p){var w=this.m_joints[p].SolvePositionConstraints(m);v=v&&w}if(u&&v){t=!0;break}}for(var g=0;g<this.m_bodyCount;++g){var x=this.m_bodies[g];x.m_sweep.c.Copy(this.m_positions[g].c),x.m_sweep.a=this.m_positions[g].a,x.m_linearVelocity.Copy(this.m_velocities[g].v),x.m_angularVelocity=this.m_velocities[g].w,x.SynchronizeTransform()}if(a.solvePosition=e.GetMilliseconds(),this.Report(o.m_velocityConstraints),d){for(var y=box2d.b2_maxFloat,z=box2d.b2_linearSleepTolerance*box2d.b2_linearSleepTolerance,A=box2d.b2_angularSleepTolerance*box2d.b2_angularSleepTolerance,g=0;g<this.m_bodyCount;++g){var h=this.m_bodies[g];h.GetType()!==box2d.b2BodyType.b2_staticBody&&(0==(h.m_flags&box2d.b2BodyFlag.e_autoSleepFlag)||h.m_angularVelocity*h.m_angularVelocity>A||box2d.b2DotVV(h.m_linearVelocity,h.m_linearVelocity)>z?(h.m_sleepTime=0,y=0):(h.m_sleepTime+=f,y=box2d.b2Min(y,h.m_sleepTime)))}if(y>=box2d.b2_timeToSleep&&t)for(var g=0;g<this.m_bodyCount;++g){var h=this.m_bodies[g];h.SetAwake(!1)}}},box2d.b2Island.prototype.SolveTOI=function(a,b,c){box2d.ENABLE_ASSERTS&&box2d.b2Assert(b<this.m_bodyCount),box2d.ENABLE_ASSERTS&&box2d.b2Assert(c<this.m_bodyCount);for(var d=0;d<this.m_bodyCount;++d){var e=this.m_bodies[d];this.m_positions[d].c.Copy(e.m_sweep.c),this.m_positions[d].a=e.m_sweep.a,this.m_velocities[d].v.Copy(e.m_linearVelocity),this.m_velocities[d].w=e.m_angularVelocity}var f=box2d.b2Island.s_contactSolverDef;f.contacts=this.m_contacts,f.count=this.m_contactCount,f.allocator=this.m_allocator,f.step.Copy(a),f.positions=this.m_positions,f.velocities=this.m_velocities;for(var g=box2d.b2Island.s_contactSolver.Initialize(f),d=0;d<a.positionIterations;++d){if(g.SolveTOIPositionConstraints(b,c))break}this.m_bodies[b].m_sweep.c0.Copy(this.m_positions[b].c),this.m_bodies[b].m_sweep.a0=this.m_positions[b].a,this.m_bodies[c].m_sweep.c0.Copy(this.m_positions[c].c),this.m_bodies[c].m_sweep.a0=this.m_positions[c].a,g.InitializeVelocityConstraints();for(var d=0;d<a.velocityIterations;++d)g.SolveVelocityConstraints();for(var h=a.dt,d=0;d<this.m_bodyCount;++d){var i=this.m_positions[d].c,j=this.m_positions[d].a,k=this.m_velocities[d].v,l=this.m_velocities[d].w,m=box2d.b2MulSV(h,k,box2d.b2Island.s_translation);if(box2d.b2DotVV(m,m)>box2d.b2_maxTranslationSquared){var n=box2d.b2_maxTranslation/m.GetLength();k.SelfMul(n)}var o=h*l;if(o*o>box2d.b2_maxRotationSquared){var n=box2d.b2_maxRotation/box2d.b2Abs(o);l*=n}i.SelfMulAdd(h,k),j+=h*l,this.m_positions[d].a=j,this.m_velocities[d].w=l;var p=this.m_bodies[d];p.m_sweep.c.Copy(i),p.m_sweep.a=j,p.m_linearVelocity.Copy(k),p.m_angularVelocity=l,p.SynchronizeTransform()}this.Report(g.m_velocityConstraints)},box2d.b2Island.prototype.Report=function(a){if(null!==this.m_listener)for(var b=0;b<this.m_contactCount;++b){var c=this.m_contacts[b];if(c){var d=a[b],e=box2d.b2Island.s_impulse;e.count=d.pointCount;for(var f=0;f<d.pointCount;++f)e.normalImpulses[f]=d.points[f].normalImpulse,e.tangentImpulses[f]=d.points[f].tangentImpulse;this.m_listener.PostSolve(c,e)}}},box2d.b2Island.s_timer=new box2d.b2Timer,box2d.b2Island.s_solverData=new box2d.b2SolverData,box2d.b2Island.s_contactSolverDef=new box2d.b2ContactSolverDef,box2d.b2Island.s_contactSolver=new box2d.b2ContactSolver,box2d.b2Island.s_translation=new box2d.b2Vec2,box2d.b2Island.s_impulse=new box2d.b2ContactImpulse,goog.provide("box2d.b2ContactFactory"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Contact"),box2d.b2ContactRegister=function(){},box2d.b2ContactRegister.prototype.createFcn=null,box2d.b2ContactRegister.prototype.destroyFcn=null,box2d.b2ContactRegister.prototype.primary=!1,box2d.b2ContactFactory=function(a){this.m_allocator=a,this.InitializeRegisters()},box2d.b2ContactFactory.prototype.m_allocator=null,box2d.b2ContactFactory.prototype.AddType=function(a,b,c,d){var e=box2d.b2MakeArray(256,function(b){return a()}),f=function(b){return e.length>0?e.pop():a(b)},g=function(a,b){e.push(a)};this.m_registers[c][d].pool=e,this.m_registers[c][d].createFcn=f,this.m_registers[c][d].destroyFcn=g,this.m_registers[c][d].primary=!0,c!==d&&(this.m_registers[d][c].pool=e,this.m_registers[d][c].createFcn=f,this.m_registers[d][c].destroyFcn=g,this.m_registers[d][c].primary=!1)},box2d.b2ContactFactory.prototype.InitializeRegisters=function(){this.m_registers=new Array(box2d.b2ShapeType.e_shapeTypeCount);for(var a=0;a<box2d.b2ShapeType.e_shapeTypeCount;a++){this.m_registers[a]=new Array(box2d.b2ShapeType.e_shapeTypeCount);for(var b=0;b<box2d.b2ShapeType.e_shapeTypeCount;b++)this.m_registers[a][b]=new box2d.b2ContactRegister}this.AddType(box2d.b2CircleContact.Create,box2d.b2CircleContact.Destroy,box2d.b2ShapeType.e_circleShape,box2d.b2ShapeType.e_circleShape),this.AddType(box2d.b2PolygonAndCircleContact.Create,box2d.b2PolygonAndCircleContact.Destroy,box2d.b2ShapeType.e_polygonShape,box2d.b2ShapeType.e_circleShape),this.AddType(box2d.b2PolygonContact.Create,box2d.b2PolygonContact.Destroy,box2d.b2ShapeType.e_polygonShape,box2d.b2ShapeType.e_polygonShape),this.AddType(box2d.b2EdgeAndCircleContact.Create,box2d.b2EdgeAndCircleContact.Destroy,box2d.b2ShapeType.e_edgeShape,box2d.b2ShapeType.e_circleShape),this.AddType(box2d.b2EdgeAndPolygonContact.Create,box2d.b2EdgeAndPolygonContact.Destroy,box2d.b2ShapeType.e_edgeShape,box2d.b2ShapeType.e_polygonShape),this.AddType(box2d.b2ChainAndCircleContact.Create,box2d.b2ChainAndCircleContact.Destroy,box2d.b2ShapeType.e_chainShape,box2d.b2ShapeType.e_circleShape),this.AddType(box2d.b2ChainAndPolygonContact.Create,box2d.b2ChainAndPolygonContact.Destroy,box2d.b2ShapeType.e_chainShape,box2d.b2ShapeType.e_polygonShape)},box2d.b2ContactFactory.prototype.Create=function(a,b,c,d){var e=a.GetType(),f=c.GetType();box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=e&&e<box2d.b2ShapeType.e_shapeTypeCount),box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=f&&f<box2d.b2ShapeType.e_shapeTypeCount);var g=this.m_registers[e][f],h=g.createFcn;if(null!==h){if(g.primary){var i=h(this.m_allocator);return i.Reset(a,b,c,d),i}var i=h(this.m_allocator);return i.Reset(c,d,a,b),i}return null},box2d.b2ContactFactory.prototype.Destroy=function(a){var b=a.m_fixtureA,c=a.m_fixtureB;a.m_manifold.pointCount>0&&!1===b.IsSensor()&&!1===c.IsSensor()&&(b.GetBody().SetAwake(!0),c.GetBody().SetAwake(!0));var d=b.GetType(),e=c.GetType();box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=d&&e<box2d.b2ShapeType.e_shapeTypeCount),box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=d&&e<box2d.b2ShapeType.e_shapeTypeCount),(0,this.m_registers[d][e].destroyFcn)(a,this.m_allocator)},goog.provide("box2d.b2GrowableStack"),goog.require("box2d.b2Settings"),box2d.b2GrowableStack=function(a){this.m_stack=new Array(a)},box2d.b2GrowableStack.prototype.m_stack=null,box2d.b2GrowableStack.prototype.m_count=0,box2d.b2GrowableStack.prototype.Reset=function(){return this.m_count=0,this},box2d.b2GrowableStack.prototype.Push=function(a){this.m_stack[this.m_count]=a,++this.m_count},box2d.b2GrowableStack.prototype.Pop=function(){box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_count>0),--this.m_count;var a=this.m_stack[this.m_count];return this.m_stack[this.m_count]=null,a},box2d.b2GrowableStack.prototype.GetCount=function(){return this.m_count},goog.provide("box2d.b2DynamicTree"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Collision"),goog.require("box2d.b2GrowableStack"),box2d.b2TreeNode=function(a){this.m_id=a||0,this.aabb=new box2d.b2AABB},box2d.b2TreeNode.prototype.m_id=0,box2d.b2TreeNode.prototype.aabb=null,box2d.b2TreeNode.prototype.userData=null,box2d.b2TreeNode.prototype.parent=null,box2d.b2TreeNode.prototype.child1=null,box2d.b2TreeNode.prototype.child2=null,box2d.b2TreeNode.prototype.height=0,box2d.b2TreeNode.prototype.IsLeaf=function(){return null===this.child1},box2d.b2DynamicTree=function(){},box2d.b2DynamicTree.prototype.m_root=null,box2d.b2DynamicTree.prototype.m_freeList=null,box2d.b2DynamicTree.prototype.m_path=0,box2d.b2DynamicTree.prototype.m_insertionCount=0,box2d.b2DynamicTree.s_stack=new box2d.b2GrowableStack(256),box2d.b2DynamicTree.s_r=new box2d.b2Vec2,box2d.b2DynamicTree.s_v=new box2d.b2Vec2,box2d.b2DynamicTree.s_abs_v=new box2d.b2Vec2,box2d.b2DynamicTree.s_segmentAABB=new box2d.b2AABB,box2d.b2DynamicTree.s_subInput=new box2d.b2RayCastInput,box2d.b2DynamicTree.s_combinedAABB=new box2d.b2AABB,box2d.b2DynamicTree.s_aabb=new box2d.b2AABB,box2d.b2DynamicTree.prototype.GetUserData=function(a){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(null!==a),a.userData},box2d.b2DynamicTree.prototype.GetFatAABB=function(a){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(null!==a),a.aabb},box2d.b2DynamicTree.prototype.Query=function(a,b){if(null!==this.m_root){var c=box2d.b2DynamicTree.s_stack.Reset();for(c.Push(this.m_root);c.GetCount()>0;){var d=c.Pop();if(null!==d&&d.aabb.TestOverlap(b))if(d.IsLeaf()){var e=a(d);if(!1===e)return}else c.Push(d.child1),c.Push(d.child2)}}},box2d.b2DynamicTree.prototype.RayCast=function(a,b){if(null!==this.m_root){var c=b.p1,d=b.p2,e=box2d.b2SubVV(d,c,box2d.b2DynamicTree.s_r);box2d.ENABLE_ASSERTS&&box2d.b2Assert(e.GetLengthSquared()>0),e.Normalize();var f=box2d.b2CrossOneV(e,box2d.b2DynamicTree.s_v),g=box2d.b2AbsV(f,box2d.b2DynamicTree.s_abs_v),h=b.maxFraction,i=box2d.b2DynamicTree.s_segmentAABB,j=c.x+h*(d.x-c.x),k=c.y+h*(d.y-c.y);i.lowerBound.x=box2d.b2Min(c.x,j),i.lowerBound.y=box2d.b2Min(c.y,k),i.upperBound.x=box2d.b2Max(c.x,j),i.upperBound.y=box2d.b2Max(c.y,k);var l=box2d.b2DynamicTree.s_stack.Reset();for(l.Push(this.m_root);l.GetCount()>0;){var m=l.Pop();if(null!==m&&!1!==box2d.b2TestOverlapAABB(m.aabb,i)){var n=m.aabb.GetCenter(),o=m.aabb.GetExtents();if(!(box2d.b2Abs(box2d.b2DotVV(f,box2d.b2SubVV(c,n,box2d.b2Vec2.s_t0)))-box2d.b2DotVV(g,o)>0))if(m.IsLeaf()){var p=box2d.b2DynamicTree.s_subInput;p.p1.Copy(b.p1),p.p2.Copy(b.p2),p.maxFraction=h;var q=a(p,m);if(0===q)return;q>0&&(h=q,j=c.x+h*(d.x-c.x),k=c.y+h*(d.y-c.y),i.lowerBound.x=box2d.b2Min(c.x,j),i.lowerBound.y=box2d.b2Min(c.y,k),i.upperBound.x=box2d.b2Max(c.x,j),i.upperBound.y=box2d.b2Max(c.y,k))}else l.Push(m.child1),l.Push(m.child2)}}}},box2d.b2DynamicTree.prototype.AllocateNode=function(){if(this.m_freeList){var a=this.m_freeList;return this.m_freeList=a.parent,a.parent=null,a.child1=null,a.child2=null,a.height=0,a.userData=null,a}return new box2d.b2TreeNode(box2d.b2DynamicTree.prototype.s_node_id++)},box2d.b2DynamicTree.prototype.s_node_id=0,box2d.b2DynamicTree.prototype.FreeNode=function(a){a.parent=this.m_freeList,a.height=-1,this.m_freeList=a},box2d.b2DynamicTree.prototype.CreateProxy=function(a,b){var c=this.AllocateNode(),d=box2d.b2_aabbExtension,e=box2d.b2_aabbExtension;return c.aabb.lowerBound.x=a.lowerBound.x-d,c.aabb.lowerBound.y=a.lowerBound.y-e,c.aabb.upperBound.x=a.upperBound.x+d,c.aabb.upperBound.y=a.upperBound.y+e,c.userData=b,c.height=0,this.InsertLeaf(c),c},box2d.b2DynamicTree.prototype.DestroyProxy=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.IsLeaf()),this.RemoveLeaf(a),this.FreeNode(a)},box2d.b2DynamicTree.prototype.MoveProxy=function(a,b,c){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.IsLeaf()),a.aabb.Contains(b))return!1;this.RemoveLeaf(a);var d=box2d.b2_aabbExtension+box2d.b2_aabbMultiplier*(c.x>0?c.x:-c.x),e=box2d.b2_aabbExtension+box2d.b2_aabbMultiplier*(c.y>0?c.y:-c.y);return a.aabb.lowerBound.x=b.lowerBound.x-d,a.aabb.lowerBound.y=b.lowerBound.y-e,a.aabb.upperBound.x=b.upperBound.x+d,a.aabb.upperBound.y=b.upperBound.y+e,this.InsertLeaf(a),!0},box2d.b2DynamicTree.prototype.InsertLeaf=function(a){if(++this.m_insertionCount,null===this.m_root)return this.m_root=a,void(this.m_root.parent=null);for(var b,c,d=a.aabb,e=(d.GetCenter(),this.m_root);!1===e.IsLeaf();){b=e.child1,c=e.child2;var f=e.aabb.GetPerimeter(),g=box2d.b2DynamicTree.s_combinedAABB;g.Combine2(e.aabb,d);var h,i,j,k=g.GetPerimeter(),l=2*k,m=2*(k-f),n=box2d.b2DynamicTree.s_aabb;b.IsLeaf()?(n.Combine2(d,b.aabb),h=n.GetPerimeter()+m):(n.Combine2(d,b.aabb),i=b.aabb.GetPerimeter(),j=n.GetPerimeter(),h=j-i+m);var o;if(c.IsLeaf()?(n.Combine2(d,c.aabb),o=n.GetPerimeter()+m):(n.Combine2(d,c.aabb),i=c.aabb.GetPerimeter(),j=n.GetPerimeter(),o=j-i+m),l<h&&l<o)break;e=h<o?b:c}var p=e,q=p.parent,r=this.AllocateNode();for(r.parent=q,r.userData=null,r.aabb.Combine2(d,p.aabb),r.height=p.height+1,q?(q.child1===p?q.child1=r:q.child2=r,r.child1=p,r.child2=a,p.parent=r,a.parent=r):(r.child1=p,r.child2=a,p.parent=r,a.parent=r,this.m_root=r),e=a.parent;null!==e;)e=this.Balance(e),b=e.child1,c=e.child2,box2d.ENABLE_ASSERTS&&box2d.b2Assert(null!==b),box2d.ENABLE_ASSERTS&&box2d.b2Assert(null!==c),e.height=1+box2d.b2Max(b.height,c.height),e.aabb.Combine2(b.aabb,c.aabb),e=e.parent},box2d.b2DynamicTree.prototype.RemoveLeaf=function(a){if(a===this.m_root)return void(this.m_root=null);var b,c=a.parent,d=c.parent;if(b=c.child1===a?c.child2:c.child1,d){d.child1===c?d.child1=b:d.child2=b,b.parent=d,this.FreeNode(c);for(var e=d;e;){e=this.Balance(e);var f=e.child1,g=e.child2;e.aabb.Combine2(f.aabb,g.aabb),e.height=1+box2d.b2Max(f.height,g.height),e=e.parent}}else this.m_root=b,b.parent=null,this.FreeNode(c)},box2d.b2DynamicTree.prototype.Balance=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(null!==a),a.IsLeaf()||a.height<2)return a;var b=a.child1,c=a.child2,d=c.height-b.height;if(d>1){var e=c.child1,f=c.child2;return c.child1=a,c.parent=a.parent,a.parent=c,null!==c.parent?c.parent.child1===a?c.parent.child1=c:(box2d.ENABLE_ASSERTS&&box2d.b2Assert(c.parent.child2===a),c.parent.child2=c):this.m_root=c,e.height>f.height?(c.child2=e,a.child2=f,f.parent=a,a.aabb.Combine2(b.aabb,f.aabb),c.aabb.Combine2(a.aabb,e.aabb),a.height=1+box2d.b2Max(b.height,f.height),c.height=1+box2d.b2Max(a.height,e.height)):(c.child2=f,a.child2=e,e.parent=a,a.aabb.Combine2(b.aabb,e.aabb),c.aabb.Combine2(a.aabb,f.aabb),a.height=1+box2d.b2Max(b.height,e.height),c.height=1+box2d.b2Max(a.height,f.height)),c}if(d<-1){var g=b.child1,h=b.child2;return b.child1=a,b.parent=a.parent,a.parent=b,null!==b.parent?b.parent.child1===a?b.parent.child1=b:(box2d.ENABLE_ASSERTS&&box2d.b2Assert(b.parent.child2===a),b.parent.child2=b):this.m_root=b,g.height>h.height?(b.child2=g,a.child1=h,h.parent=a,a.aabb.Combine2(c.aabb,h.aabb),b.aabb.Combine2(a.aabb,g.aabb),a.height=1+box2d.b2Max(c.height,h.height),b.height=1+box2d.b2Max(a.height,g.height)):(b.child2=h,a.child1=g,g.parent=a,a.aabb.Combine2(c.aabb,g.aabb),b.aabb.Combine2(a.aabb,h.aabb),a.height=1+box2d.b2Max(c.height,g.height),b.height=1+box2d.b2Max(a.height,h.height)),b}return a},box2d.b2DynamicTree.prototype.GetHeight=function(){return null===this.m_root?0:this.m_root.height},box2d.b2DynamicTree.prototype.GetAreaRatio=function(){if(null===this.m_root)return 0;var a=this.m_root,b=a.aabb.GetPerimeter(),c=function(a){if(null===a)return 0;if(a.IsLeaf())return 0;var b=a.aabb.GetPerimeter();return b+=c(a.child1),b+=c(a.child2)};return c(this.m_root)/b},box2d.b2DynamicTree.prototype.ComputeHeightNode=function(a){if(a.IsLeaf())return 0;var b=this.ComputeHeightNode(a.child1),c=this.ComputeHeightNode(a.child2);return 1+box2d.b2Max(b,c)},box2d.b2DynamicTree.prototype.ComputeHeight=function(){return this.ComputeHeightNode(this.m_root)},box2d.b2DynamicTree.prototype.ValidateStructure=function(a){if(null!==a){a===this.m_root&&box2d.ENABLE_ASSERTS&&box2d.b2Assert(null===a.parent);var b=a,c=b.child1,d=b.child2;if(b.IsLeaf())return box2d.ENABLE_ASSERTS&&box2d.b2Assert(null===c),box2d.ENABLE_ASSERTS&&box2d.b2Assert(null===d),void(box2d.ENABLE_ASSERTS&&box2d.b2Assert(0===b.height));box2d.ENABLE_ASSERTS&&box2d.b2Assert(c.parent===a),box2d.ENABLE_ASSERTS&&box2d.b2Assert(d.parent===a),this.ValidateStructure(c),this.ValidateStructure(d)}},box2d.b2DynamicTree.prototype.ValidateMetrics=function(a){if(null!==a){var b=a,c=b.child1,d=b.child2;if(b.IsLeaf())return box2d.ENABLE_ASSERTS&&box2d.b2Assert(null===c),box2d.ENABLE_ASSERTS&&box2d.b2Assert(null===d),void(box2d.ENABLE_ASSERTS&&box2d.b2Assert(0===b.height));var e,f=c.height,g=d.height;e=1+box2d.b2Max(f,g),box2d.ENABLE_ASSERTS&&box2d.b2Assert(b.height===e);var h=box2d.b2DynamicTree.s_aabb;h.Combine2(c.aabb,d.aabb),box2d.ENABLE_ASSERTS&&box2d.b2Assert(h.lowerBound===b.aabb.lowerBound),box2d.ENABLE_ASSERTS&&box2d.b2Assert(h.upperBound===b.aabb.upperBound),this.ValidateMetrics(c),this.ValidateMetrics(d)}},box2d.b2DynamicTree.prototype.Validate=function(){this.ValidateStructure(this.m_root),this.ValidateMetrics(this.m_root);for(var a=0,b=this.m_freeList;null!==b;)b=b.parent,++a;box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.GetHeight()===this.ComputeHeight())},box2d.b2DynamicTree.prototype.GetMaxBalance=function(){return function(a,b){if(null===a)return b;if(a.height<=1)return b;box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===a.IsLeaf());var c=a.child1,d=a.child2,e=box2d.b2Abs(d.height-c.height);return box2d.b2Max(b,e)}(this.m_root,0)},box2d.b2DynamicTree.prototype.RebuildBottomUp=function(){this.Validate()},box2d.b2DynamicTree.prototype.ShiftOrigin=function(a){var b=function(a,c){if(null!==a&&!(a.height<=1)){box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===a.IsLeaf());var d=a.child1,e=a.child2;b(d,c),b(e,c),a.aabb.lowerBound.SelfSub(c),a.aabb.upperBound.SelfSub(c)}};b(this.m_root,a)},goog.provide("box2d.b2BroadPhase"),goog.require("box2d.b2Settings"),goog.require("box2d.b2DynamicTree"),box2d.b2Pair=function(){},box2d.b2Pair.prototype.proxyA=null,box2d.b2Pair.prototype.proxyB=null,box2d.b2BroadPhase=function(){this.m_tree=new box2d.b2DynamicTree,this.m_moveBuffer=new Array,this.m_pairBuffer=new Array},box2d.b2BroadPhase.prototype.m_tree=null,box2d.b2BroadPhase.prototype.m_proxyCount=0,box2d.b2BroadPhase.prototype.m_moveCount=0,box2d.b2BroadPhase.prototype.m_moveBuffer=null,box2d.b2BroadPhase.prototype.m_pairCount=0,box2d.b2BroadPhase.prototype.m_pairBuffer=null,box2d.b2BroadPhase.prototype.CreateProxy=function(a,b){var c=this.m_tree.CreateProxy(a,b);return++this.m_proxyCount,this.BufferMove(c),c},box2d.b2BroadPhase.prototype.DestroyProxy=function(a){this.UnBufferMove(a),--this.m_proxyCount,this.m_tree.DestroyProxy(a)},box2d.b2BroadPhase.prototype.MoveProxy=function(a,b,c){this.m_tree.MoveProxy(a,b,c)&&this.BufferMove(a)},box2d.b2BroadPhase.prototype.TouchProxy=function(a){this.BufferMove(a)},box2d.b2BroadPhase.prototype.GetFatAABB=function(a){return this.m_tree.GetFatAABB(a)},box2d.b2BroadPhase.prototype.GetUserData=function(a){return this.m_tree.GetUserData(a)},box2d.b2BroadPhase.prototype.TestOverlap=function(a,b){var c=this.m_tree.GetFatAABB(a),d=this.m_tree.GetFatAABB(b);return box2d.b2TestOverlapAABB(c,d)},box2d.b2BroadPhase.prototype.GetProxyCount=function(){return this.m_proxyCount},box2d.b2BroadPhase.prototype.GetTreeHeight=function(){return this.m_tree.GetHeight()},box2d.b2BroadPhase.prototype.GetTreeBalance=function(){return this.m_tree.GetMaxBalance()},box2d.b2BroadPhase.prototype.GetTreeQuality=function(){return this.m_tree.GetAreaRatio()},box2d.b2BroadPhase.prototype.ShiftOrigin=function(a){this.m_tree.ShiftOrigin(a)},box2d.b2BroadPhase.prototype.UpdatePairs=function(a){this.m_pairCount=0;for(var b=0;b<this.m_moveCount;++b){var c=this.m_moveBuffer[b];if(null!==c){var d=this,e=function(a){if(a.m_id===c.m_id)return!0;d.m_pairCount===d.m_pairBuffer.length&&(d.m_pairBuffer[d.m_pairCount]=new box2d.b2Pair);var b=d.m_pairBuffer[d.m_pairCount];return a.m_id<c.m_id?(b.proxyA=a,b.proxyB=c):(b.proxyA=c,b.proxyB=a),++d.m_pairCount,!0},f=this.m_tree.GetFatAABB(c);this.m_tree.Query(e,f)}}this.m_moveCount=0,this.m_pairBuffer.length=this.m_pairCount,this.m_pairBuffer.sort(box2d.b2PairLessThan);for(var b=0;b<this.m_pairCount;){var g=this.m_pairBuffer[b],h=this.m_tree.GetUserData(g.proxyA),i=this.m_tree.GetUserData(g.proxyB);for(a.AddPair(h,i),++b;b<this.m_pairCount;){var j=this.m_pairBuffer[b];if(j.proxyA.m_id!==g.proxyA.m_id||j.proxyB.m_id!==g.proxyB.m_id)break;++b}}},box2d.b2BroadPhase.prototype.Query=function(a,b){this.m_tree.Query(a,b)},box2d.b2BroadPhase.prototype.RayCast=function(a,b){this.m_tree.RayCast(a,b)},box2d.b2BroadPhase.prototype.BufferMove=function(a){this.m_moveBuffer[this.m_moveCount]=a,++this.m_moveCount},box2d.b2BroadPhase.prototype.UnBufferMove=function(a){var b=this.m_moveBuffer.indexOf(a);this.m_moveBuffer[b]=null},box2d.b2PairLessThan=function(a,b){return a.proxyA.m_id===b.proxyA.m_id?a.proxyB.m_id-b.proxyB.m_id:a.proxyA.m_id-b.proxyA.m_id},goog.provide("box2d.b2ContactManager"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),goog.require("box2d.b2Collision"),goog.require("box2d.b2BroadPhase"),goog.require("box2d.b2ContactFactory"),box2d.b2ContactManager=function(){this.m_broadPhase=new box2d.b2BroadPhase,this.m_contactFactory=new box2d.b2ContactFactory(this.m_allocator)},box2d.b2ContactManager.prototype.m_broadPhase=null,box2d.b2ContactManager.prototype.m_contactList=null,box2d.b2ContactManager.prototype.m_contactCount=0,box2d.b2ContactManager.prototype.m_contactFilter=box2d.b2ContactFilter.b2_defaultFilter,box2d.b2ContactManager.prototype.m_contactListener=box2d.b2ContactListener.b2_defaultListener,box2d.b2ContactManager.prototype.m_allocator=null,box2d.b2ContactManager.prototype.m_contactFactory=null,box2d.b2ContactManager.prototype.Destroy=function(a){var b=a.GetFixtureA(),c=a.GetFixtureB(),d=b.GetBody(),e=c.GetBody();this.m_contactListener&&a.IsTouching()&&this.m_contactListener.EndContact(a),a.m_prev&&(a.m_prev.m_next=a.m_next),a.m_next&&(a.m_next.m_prev=a.m_prev),a===this.m_contactList&&(this.m_contactList=a.m_next),a.m_nodeA.prev&&(a.m_nodeA.prev.next=a.m_nodeA.next),a.m_nodeA.next&&(a.m_nodeA.next.prev=a.m_nodeA.prev),a.m_nodeA===d.m_contactList&&(d.m_contactList=a.m_nodeA.next),a.m_nodeB.prev&&(a.m_nodeB.prev.next=a.m_nodeB.next),a.m_nodeB.next&&(a.m_nodeB.next.prev=a.m_nodeB.prev),a.m_nodeB===e.m_contactList&&(e.m_contactList=a.m_nodeB.next),this.m_contactFactory.Destroy(a),--this.m_contactCount},box2d.b2ContactManager.prototype.Collide=function(){for(var a=this.m_contactList;a;){var b=a.GetFixtureA(),c=a.GetFixtureB(),d=a.GetChildIndexA(),e=a.GetChildIndexB(),f=b.GetBody(),g=c.GetBody();if(a.m_flags&box2d.b2ContactFlag.e_filterFlag){if(!1===g.ShouldCollide(f)){var h=a;a=h.m_next,this.Destroy(h);continue}if(this.m_contactFilter&&!1===this.m_contactFilter.ShouldCollide(b,c)){h=a,a=h.m_next,this.Destroy(h);continue}a.m_flags&=~box2d.b2ContactFlag.e_filterFlag}var i=f.IsAwake()&&f.m_type!==box2d.b2BodyType.b2_staticBody,j=g.IsAwake()&&g.m_type!==box2d.b2BodyType.b2_staticBody;if(!1!==i||!1!==j){var k=b.m_proxies[d].proxy,l=c.m_proxies[e].proxy;!1!==this.m_broadPhase.TestOverlap(k,l)?(a.Update(this.m_contactListener),a=a.m_next):(h=a,a=h.m_next,this.Destroy(h))}else a=a.m_next}},box2d.b2ContactManager.prototype.FindNewContacts=function(){this.m_broadPhase.UpdatePairs(this)},box2d.b2ContactManager.prototype.AddPair=function(a,b){box2d.ENABLE_ASSERTS&&box2d.b2Assert(a instanceof box2d.b2FixtureProxy),box2d.ENABLE_ASSERTS&&box2d.b2Assert(b instanceof box2d.b2FixtureProxy);var c=a,d=b,e=c.fixture,f=d.fixture,g=c.childIndex,h=d.childIndex,i=e.GetBody(),j=f.GetBody();if(i!==j){for(var k=j.GetContactList();k;){if(k.other===i){var l=k.contact.GetFixtureA(),m=k.contact.GetFixtureB(),n=k.contact.GetChildIndexA(),o=k.contact.GetChildIndexB();if(l===e&&m===f&&n===g&&o===h)return;if(l===f&&m===e&&n===h&&o===g)return}k=k.next}if(!1!==j.ShouldCollide(i)&&(!this.m_contactFilter||!1!==this.m_contactFilter.ShouldCollide(e,f))){var p=this.m_contactFactory.Create(e,g,f,h);null!==p&&(e=p.GetFixtureA(),f=p.GetFixtureB(),g=p.GetChildIndexA(),h=p.GetChildIndexB(),i=e.m_body,j=f.m_body,p.m_prev=null,p.m_next=this.m_contactList,null!==this.m_contactList&&(this.m_contactList.m_prev=p),this.m_contactList=p,p.m_nodeA.contact=p,p.m_nodeA.other=j,p.m_nodeA.prev=null,p.m_nodeA.next=i.m_contactList,null!==i.m_contactList&&(i.m_contactList.prev=p.m_nodeA),i.m_contactList=p.m_nodeA,p.m_nodeB.contact=p,p.m_nodeB.other=i,p.m_nodeB.prev=null,p.m_nodeB.next=j.m_contactList,null!==j.m_contactList&&(j.m_contactList.prev=p.m_nodeB),j.m_contactList=p.m_nodeB,!1===e.IsSensor()&&!1===f.IsSensor()&&(i.SetAwake(!0),j.SetAwake(!0)),++this.m_contactCount)}}},goog.provide("box2d.b2JointFactory"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),goog.require("box2d.b2Joint"),box2d.b2JointFactory.Create=function(a,b){var c=null;switch(a.type){case box2d.b2JointType.e_distanceJoint:c=new box2d.b2DistanceJoint(a instanceof box2d.b2DistanceJointDef?a:null);break;case box2d.b2JointType.e_mouseJoint:c=new box2d.b2MouseJoint(a instanceof box2d.b2MouseJointDef?a:null);break;case box2d.b2JointType.e_prismaticJoint:c=new box2d.b2PrismaticJoint(a instanceof box2d.b2PrismaticJointDef?a:null);break;case box2d.b2JointType.e_revoluteJoint:c=new box2d.b2RevoluteJoint(a instanceof box2d.b2RevoluteJointDef?a:null);break;case box2d.b2JointType.e_pulleyJoint:c=new box2d.b2PulleyJoint(a instanceof box2d.b2PulleyJointDef?a:null);break;case box2d.b2JointType.e_gearJoint:c=new box2d.b2GearJoint(a instanceof box2d.b2GearJointDef?a:null);break;case box2d.b2JointType.e_wheelJoint:c=new box2d.b2WheelJoint(a instanceof box2d.b2WheelJointDef?a:null);break;case box2d.b2JointType.e_weldJoint:c=new box2d.b2WeldJoint(a instanceof box2d.b2WeldJointDef?a:null);break;case box2d.b2JointType.e_frictionJoint:c=new box2d.b2FrictionJoint(a instanceof box2d.b2FrictionJointDef?a:null);break;case box2d.b2JointType.e_ropeJoint:c=new box2d.b2RopeJoint(a instanceof box2d.b2RopeJointDef?a:null);break;case box2d.b2JointType.e_motorJoint:c=new box2d.b2MotorJoint(a instanceof box2d.b2MotorJointDef?a:null);break;case box2d.b2JointType.e_areaJoint:c=new box2d.b2AreaJoint(a instanceof box2d.b2AreaJointDef?a:null);break;default:box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1)}return c},box2d.b2JointFactory.Destroy=function(a,b){},goog.provide("box2d.b2Draw"),goog.require("box2d.b2Settings"),box2d.b2Color=function(a,b,c){this.r=a,this.g=b,this.b=c},box2d.b2Color.prototype.r=.5,box2d.b2Color.prototype.g=.5,box2d.b2Color.prototype.b=.5,box2d.b2Color.prototype.SetRGB=function(a,b,c){return this.r=a,this.g=b,this.b=c,this},box2d.b2Color.prototype.MakeStyleString=function(a){var b=Math.round(Math.max(0,Math.min(255,255*this.r))),c=Math.round(Math.max(0,Math.min(255,255*this.g))),d=Math.round(Math.max(0,Math.min(255,255*this.b))),e=void 0===a?1:Math.max(0,Math.min(1,a));return box2d.b2Color.MakeStyleString(b,c,d,e)},box2d.b2Color.MakeStyleString=function(a,b,c,d){return d<1?"rgba("+a+","+b+","+c+","+d+")":"rgb("+a+","+b+","+c+")"},box2d.b2Color.RED=new box2d.b2Color(1,0,0),box2d.b2Color.GREEN=new box2d.b2Color(0,1,0),box2d.b2Color.BLUE=new box2d.b2Color(0,0,1),box2d.b2DrawFlags={e_none:0,e_shapeBit:1,e_jointBit:2,e_aabbBit:4,e_pairBit:8,e_centerOfMassBit:16,e_controllerBit:32,e_all:63},goog.exportProperty(box2d.b2DrawFlags,"e_none",box2d.b2DrawFlags.e_none),goog.exportProperty(box2d.b2DrawFlags,"e_shapeBit",box2d.b2DrawFlags.e_shapeBit),goog.exportProperty(box2d.b2DrawFlags,"e_jointBit",box2d.b2DrawFlags.e_jointBit),goog.exportProperty(box2d.b2DrawFlags,"e_aabbBit",box2d.b2DrawFlags.e_aabbBit),goog.exportProperty(box2d.b2DrawFlags,"e_pairBit",box2d.b2DrawFlags.e_pairBit),goog.exportProperty(box2d.b2DrawFlags,"e_centerOfMassBit",box2d.b2DrawFlags.e_centerOfMassBit),goog.exportProperty(box2d.b2DrawFlags,"e_controllerBit",box2d.b2DrawFlags.e_controllerBit),goog.exportProperty(box2d.b2DrawFlags,"e_all",box2d.b2DrawFlags.e_all),box2d.b2Draw=function(){},box2d.b2Draw.prototype.m_drawFlags=box2d.b2DrawFlags.e_none,box2d.b2Draw.prototype.SetFlags=function(a){this.m_drawFlags=a},box2d.b2Draw.prototype.GetFlags=function(){return this.m_drawFlags},box2d.b2Draw.prototype.AppendFlags=function(a){this.m_drawFlags|=a},box2d.b2Draw.prototype.ClearFlags=function(a){this.m_drawFlags&=~a},
|
||
box2d.b2Draw.prototype.PushTransform=function(a){},box2d.b2Draw.prototype.PopTransform=function(a){},box2d.b2Draw.prototype.DrawPolygon=function(a,b,c){},box2d.b2Draw.prototype.DrawSolidPolygon=function(a,b,c){};box2d.b2Draw.prototype.DrawCircle=function(a,b,c){},box2d.b2Draw.prototype.DrawSolidCircle=function(a,b,c,d){},box2d.b2Draw.prototype.DrawSegment=function(a,b,c){},box2d.b2Draw.prototype.DrawTransform=function(a){},goog.provide("box2d.b2Fixture"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Collision"),goog.require("box2d.b2Shape"),box2d.b2Filter=function(){},box2d.b2Filter.prototype.categoryBits=1,box2d.b2Filter.prototype.maskBits=65535,box2d.b2Filter.prototype.groupIndex=0,box2d.b2Filter.prototype.Clone=function(){return(new box2d.b2Filter).Copy(this)},box2d.b2Filter.prototype.Copy=function(a){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(this!==a),this.categoryBits=a.categoryBits,this.maskBits=a.maskBits,this.groupIndex=a.groupIndex,this},box2d.b2FixtureDef=function(){this.filter=new box2d.b2Filter},box2d.b2FixtureDef.prototype.shape=null,box2d.b2FixtureDef.prototype.userData=null,box2d.b2FixtureDef.prototype.friction=.2,box2d.b2FixtureDef.prototype.restitution=0,box2d.b2FixtureDef.prototype.density=0,box2d.b2FixtureDef.prototype.isSensor=!1,box2d.b2FixtureDef.prototype.filter=null,box2d.b2FixtureProxy=function(){this.aabb=new box2d.b2AABB},box2d.b2FixtureProxy.prototype.aabb=null,box2d.b2FixtureProxy.prototype.fixture=null,box2d.b2FixtureProxy.prototype.childIndex=0,box2d.b2FixtureProxy.prototype.proxy=null,box2d.b2FixtureProxy.MakeArray=function(a){return box2d.b2MakeArray(a,function(a){return new box2d.b2FixtureProxy})},box2d.b2Fixture=function(){this.m_proxyCount=0,this.m_filter=new box2d.b2Filter},box2d.b2Fixture.prototype.m_density=0,box2d.b2Fixture.prototype.m_next=null,box2d.b2Fixture.prototype.m_body=null,box2d.b2Fixture.prototype.m_shape=null,box2d.b2Fixture.prototype.m_friction=0,box2d.b2Fixture.prototype.m_restitution=0,box2d.b2Fixture.prototype.m_proxies=null,box2d.b2Fixture.prototype.m_proxyCount=0,box2d.b2Fixture.prototype.m_filter=null,box2d.b2Fixture.prototype.m_isSensor=!1,box2d.b2Fixture.prototype.m_userData=null,box2d.b2Fixture.prototype.GetType=function(){return this.m_shape.GetType()},box2d.b2Fixture.prototype.GetShape=function(){return this.m_shape},box2d.b2Fixture.prototype.IsSensor=function(){return this.m_isSensor},box2d.b2Fixture.prototype.GetFilterData=function(){return this.m_filter},box2d.b2Fixture.prototype.GetUserData=function(){return this.m_userData},box2d.b2Fixture.prototype.SetUserData=function(a){this.m_userData=a},box2d.b2Fixture.prototype.GetBody=function(){return this.m_body},box2d.b2Fixture.prototype.GetNext=function(){return this.m_next},box2d.b2Fixture.prototype.SetDensity=function(a){this.m_density=a},box2d.b2Fixture.prototype.GetDensity=function(){return this.m_density},box2d.b2Fixture.prototype.GetFriction=function(){return this.m_friction},box2d.b2Fixture.prototype.SetFriction=function(a){this.m_friction=a},box2d.b2Fixture.prototype.GetRestitution=function(){return this.m_restitution},box2d.b2Fixture.prototype.SetRestitution=function(a){this.m_restitution=a},box2d.b2Fixture.prototype.TestPoint=function(a){return this.m_shape.TestPoint(this.m_body.GetTransform(),a)},box2d.b2Fixture.prototype.RayCast=function(a,b,c){return this.m_shape.RayCast(a,b,this.m_body.GetTransform(),c)},box2d.b2Fixture.prototype.GetMassData=function(a){return a=a||new box2d.b2MassData,this.m_shape.ComputeMass(a,this.m_density),a},box2d.b2Fixture.prototype.GetAABB=function(a){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(0<=a&&a<this.m_proxyCount),this.m_proxies[a].aabb},box2d.b2Fixture.prototype.Create=function(a,b){this.m_userData=b.userData,this.m_friction=b.friction,this.m_restitution=b.restitution,this.m_body=a,this.m_next=null,this.m_filter.Copy(b.filter),this.m_isSensor=b.isSensor,this.m_shape=b.shape.Clone(),this.m_proxies=box2d.b2FixtureProxy.MakeArray(this.m_shape.GetChildCount()),this.m_proxyCount=0,this.m_density=b.density},box2d.b2Fixture.prototype.Destroy=function(){box2d.ENABLE_ASSERTS&&box2d.b2Assert(0===this.m_proxyCount),this.m_shape=null},box2d.b2Fixture.prototype.CreateProxies=function(a,b){box2d.ENABLE_ASSERTS&&box2d.b2Assert(0===this.m_proxyCount),this.m_proxyCount=this.m_shape.GetChildCount();for(var c=0;c<this.m_proxyCount;++c){var d=this.m_proxies[c];this.m_shape.ComputeAABB(d.aabb,b,c),d.proxy=a.CreateProxy(d.aabb,d),d.fixture=this,d.childIndex=c}},box2d.b2Fixture.prototype.DestroyProxies=function(a){for(var b=0;b<this.m_proxyCount;++b){var c=this.m_proxies[b];a.DestroyProxy(c.proxy),c.proxy=null}this.m_proxyCount=0},box2d.b2Fixture.prototype.Synchronize=function(a,b,c){if(0!==this.m_proxyCount)for(var d=0;d<this.m_proxyCount;++d){var e=this.m_proxies[d],f=box2d.b2Fixture.prototype.Synchronize.s_aabb1,g=box2d.b2Fixture.prototype.Synchronize.s_aabb2;this.m_shape.ComputeAABB(f,b,d),this.m_shape.ComputeAABB(g,c,d),e.aabb.Combine2(f,g);var h=box2d.b2SubVV(c.p,b.p,box2d.b2Fixture.prototype.Synchronize.s_displacement);a.MoveProxy(e.proxy,e.aabb,h)}},box2d.b2Fixture.prototype.Synchronize.s_aabb1=new box2d.b2AABB,box2d.b2Fixture.prototype.Synchronize.s_aabb2=new box2d.b2AABB,box2d.b2Fixture.prototype.Synchronize.s_displacement=new box2d.b2Vec2,box2d.b2Fixture.prototype.SetFilterData=function(a){this.m_filter.Copy(a),this.Refilter()},box2d.b2Fixture.prototype.Refilter=function(){if(null!=this.m_body){for(var a=this.m_body.GetContactList();a;){var b=a.contact,c=b.GetFixtureA(),d=b.GetFixtureB();c!==this&&d!==this||b.FlagForFiltering(),a=a.next}var e=this.m_body.GetWorld();if(null!==e)for(var f=e.m_contactManager.m_broadPhase,g=0;g<this.m_proxyCount;++g)f.TouchProxy(this.m_proxies[g].proxy)}},box2d.b2Fixture.prototype.SetSensor=function(a){a!==this.m_isSensor&&(this.m_body.SetAwake(!0),this.m_isSensor=a)},box2d.b2Fixture.prototype.Dump=function(a){box2d.DEBUG&&(box2d.b2Log(" /*box2d.b2FixtureDef*/ var fd = new box2d.b2FixtureDef();\n"),box2d.b2Log(" fd.friction = %.15f;\n",this.m_friction),box2d.b2Log(" fd.restitution = %.15f;\n",this.m_restitution),box2d.b2Log(" fd.density = %.15f;\n",this.m_density),box2d.b2Log(" fd.isSensor = %s;\n",this.m_isSensor?"true":"false"),box2d.b2Log(" fd.filter.categoryBits = %d;\n",this.m_filter.categoryBits),box2d.b2Log(" fd.filter.maskBits = %d;\n",this.m_filter.maskBits),box2d.b2Log(" fd.filter.groupIndex = %d;\n",this.m_filter.groupIndex),this.m_shape.Dump(),box2d.b2Log("\n"),box2d.b2Log(" fd.shape = shape;\n"),box2d.b2Log("\n"),box2d.b2Log(" bodies[%d].CreateFixture(fd);\n",a))},goog.provide("box2d.b2Body"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),goog.require("box2d.b2Fixture"),box2d.b2BodyType={b2_unknown:-1,b2_staticBody:0,b2_kinematicBody:1,b2_dynamicBody:2,b2_bulletBody:3},goog.exportProperty(box2d.b2BodyType,"b2_unknown",box2d.b2BodyType.b2_unknown),goog.exportProperty(box2d.b2BodyType,"b2_staticBody",box2d.b2BodyType.b2_staticBody),goog.exportProperty(box2d.b2BodyType,"b2_kinematicBody",box2d.b2BodyType.b2_kinematicBody),goog.exportProperty(box2d.b2BodyType,"b2_dynamicBody",box2d.b2BodyType.b2_dynamicBody),goog.exportProperty(box2d.b2BodyType,"b2_bulletBody",box2d.b2BodyType.b2_bulletBody),box2d.b2BodyDef=function(){this.position=new box2d.b2Vec2(0,0),this.linearVelocity=new box2d.b2Vec2(0,0)},box2d.b2BodyDef.prototype.type=box2d.b2BodyType.b2_staticBody,box2d.b2BodyDef.prototype.position=null,box2d.b2BodyDef.prototype.angle=0,box2d.b2BodyDef.prototype.linearVelocity=null,box2d.b2BodyDef.prototype.angularVelocity=0,box2d.b2BodyDef.prototype.linearDamping=0,box2d.b2BodyDef.prototype.angularDamping=0,box2d.b2BodyDef.prototype.allowSleep=!0,box2d.b2BodyDef.prototype.awake=!0,box2d.b2BodyDef.prototype.fixedRotation=!1,box2d.b2BodyDef.prototype.bullet=!1,box2d.b2BodyDef.prototype.active=!0,box2d.b2BodyDef.prototype.userData=null,box2d.b2BodyDef.prototype.gravityScale=1,box2d.b2BodyFlag={e_none:0,e_islandFlag:1,e_awakeFlag:2,e_autoSleepFlag:4,e_bulletFlag:8,e_fixedRotationFlag:16,e_activeFlag:32,e_toiFlag:64},goog.exportProperty(box2d.b2BodyFlag,"e_none",box2d.b2BodyFlag.e_none),goog.exportProperty(box2d.b2BodyFlag,"e_islandFlag",box2d.b2BodyFlag.e_islandFlag),goog.exportProperty(box2d.b2BodyFlag,"e_awakeFlag",box2d.b2BodyFlag.e_awakeFlag),goog.exportProperty(box2d.b2BodyFlag,"e_autoSleepFlag",box2d.b2BodyFlag.e_autoSleepFlag),goog.exportProperty(box2d.b2BodyFlag,"e_bulletFlag",box2d.b2BodyFlag.e_bulletFlag),goog.exportProperty(box2d.b2BodyFlag,"e_fixedRotationFlag",box2d.b2BodyFlag.e_fixedRotationFlag),goog.exportProperty(box2d.b2BodyFlag,"e_activeFlag",box2d.b2BodyFlag.e_activeFlag),goog.exportProperty(box2d.b2BodyFlag,"e_toiFlag",box2d.b2BodyFlag.e_toiFlag),box2d.b2Body=function(a,b){this.m_xf=new box2d.b2Transform,this.m_out_xf=new box2d.b2Transform,this.m_sweep=new box2d.b2Sweep,this.m_out_sweep=new box2d.b2Sweep,this.m_linearVelocity=new box2d.b2Vec2,this.m_out_linearVelocity=new box2d.b2Vec2,this.m_force=new box2d.b2Vec2,box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.position.IsValid()),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.linearVelocity.IsValid()),box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a.angle)),box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a.angularVelocity)),box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a.gravityScale)&&a.gravityScale>=0),box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a.angularDamping)&&a.angularDamping>=0),box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a.linearDamping)&&a.linearDamping>=0),this.m_flags=box2d.b2BodyFlag.e_none,a.bullet&&(this.m_flags|=box2d.b2BodyFlag.e_bulletFlag),a.fixedRotation&&(this.m_flags|=box2d.b2BodyFlag.e_fixedRotationFlag),a.allowSleep&&(this.m_flags|=box2d.b2BodyFlag.e_autoSleepFlag),a.awake&&(this.m_flags|=box2d.b2BodyFlag.e_awakeFlag),a.active&&(this.m_flags|=box2d.b2BodyFlag.e_activeFlag),this.m_world=b,this.m_xf.p.Copy(a.position),this.m_xf.q.SetAngleRadians(a.angle),this.m_sweep.localCenter.SetZero(),this.m_sweep.c0.Copy(this.m_xf.p),this.m_sweep.c.Copy(this.m_xf.p),this.m_sweep.a0=a.angle,this.m_sweep.a=a.angle,this.m_sweep.alpha0=0,this.m_linearVelocity.Copy(a.linearVelocity),this.m_angularVelocity=a.angularVelocity,this.m_linearDamping=a.linearDamping,this.m_angularDamping=a.angularDamping,this.m_gravityScale=a.gravityScale,this.m_force.SetZero(),this.m_torque=0,this.m_sleepTime=0,this.m_type=a.type,a.type===box2d.b2BodyType.b2_dynamicBody?(this.m_mass=1,this.m_invMass=1):(this.m_mass=0,this.m_invMass=0),this.m_I=0,this.m_invI=0,this.m_userData=a.userData,this.m_fixtureList=null,this.m_fixtureCount=0,this.m_controllerList=null,this.m_controllerCount=0},box2d.b2Body.prototype.m_flags=box2d.b2BodyFlag.e_none,box2d.b2Body.prototype.m_islandIndex=0,box2d.b2Body.prototype.m_world=null,box2d.b2Body.prototype.m_xf=null,box2d.b2Body.prototype.m_out_xf=null,box2d.b2Body.prototype.m_sweep=null,box2d.b2Body.prototype.m_out_sweep=null,box2d.b2Body.prototype.m_jointList=null,box2d.b2Body.prototype.m_contactList=null,box2d.b2Body.prototype.m_prev=null,box2d.b2Body.prototype.m_next=null,box2d.b2Body.prototype.m_linearVelocity=null,box2d.b2Body.prototype.m_out_linearVelocity=null,box2d.b2Body.prototype.m_angularVelocity=0,box2d.b2Body.prototype.m_linearDamping=0,box2d.b2Body.prototype.m_angularDamping=0,box2d.b2Body.prototype.m_gravityScale=1,box2d.b2Body.prototype.m_force=null,box2d.b2Body.prototype.m_torque=0,box2d.b2Body.prototype.m_sleepTime=0,box2d.b2Body.prototype.m_type=box2d.b2BodyType.b2_staticBody,box2d.b2Body.prototype.m_mass=1,box2d.b2Body.prototype.m_invMass=1,box2d.b2Body.prototype.m_I=0,box2d.b2Body.prototype.m_invI=0,box2d.b2Body.prototype.m_userData=null,box2d.b2Body.prototype.m_fixtureList=null,box2d.b2Body.prototype.m_fixtureCount=0,box2d.b2Body.prototype.m_controllerList=null,box2d.b2Body.prototype.m_controllerCount=0,box2d.b2Body.prototype.CreateFixture=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.m_world.IsLocked()),!0===this.m_world.IsLocked())return null;var b=new box2d.b2Fixture;if(b.Create(this,a),this.m_flags&box2d.b2BodyFlag.e_activeFlag){var c=this.m_world.m_contactManager.m_broadPhase;b.CreateProxies(c,this.m_xf)}return b.m_next=this.m_fixtureList,this.m_fixtureList=b,++this.m_fixtureCount,b.m_body=this,b.m_density>0&&this.ResetMassData(),this.m_world.m_flags|=box2d.b2WorldFlag.e_newFixture,b},box2d.b2Body.prototype.CreateFixture2=function(a,b){void 0===b&&(b=0);var c=box2d.b2Body.prototype.CreateFixture2.s_def;return c.shape=a,c.density=b,this.CreateFixture(c)},box2d.b2Body.prototype.CreateFixture2.s_def=new box2d.b2FixtureDef,box2d.b2Body.prototype.DestroyFixture=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.m_world.IsLocked()),!0!==this.m_world.IsLocked()){box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.m_body===this),box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_fixtureCount>0);for(var b=this.m_fixtureList,c=null,d=!1;null!==b;){if(b===a){c?c.m_next=a.m_next:this.m_fixtureList=a.m_next,d=!0;break}c=b,b=b.m_next}box2d.ENABLE_ASSERTS&&box2d.b2Assert(d);for(var e=this.m_contactList;e;){var f=e.contact;e=e.next;var g=f.GetFixtureA(),h=f.GetFixtureB();a!==g&&a!==h||this.m_world.m_contactManager.Destroy(f)}if(this.m_flags&box2d.b2BodyFlag.e_activeFlag){var i=this.m_world.m_contactManager.m_broadPhase;a.DestroyProxies(i)}a.Destroy(),a.m_body=null,a.m_next=null,--this.m_fixtureCount,this.ResetMassData()}},box2d.b2Body.prototype.SetTransformVecRadians=function(a,b){this.SetTransformXYRadians(a.x,a.y,b)},box2d.b2Body.prototype.SetTransformXYRadians=function(a,b,c){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.m_world.IsLocked()),!0!==this.m_world.IsLocked()&&(this.m_xf.p.x!==a||this.m_xf.p.y!==b||this.m_xf.q.GetAngleRadians()!==c)){this.m_xf.q.SetAngleRadians(c),this.m_xf.p.SetXY(a,b),box2d.b2MulXV(this.m_xf,this.m_sweep.localCenter,this.m_sweep.c),this.m_sweep.a=c,this.m_sweep.c0.Copy(this.m_sweep.c),this.m_sweep.a0=c;for(var d=this.m_world.m_contactManager.m_broadPhase,e=this.m_fixtureList;e;e=e.m_next)e.Synchronize(d,this.m_xf,this.m_xf)}},box2d.b2Body.prototype.SetTransform=function(a){this.SetTransformVecRadians(a.p,a.GetAngleRadians())},box2d.b2Body.prototype.GetTransform=function(a){return a=a||this.m_out_xf,a.Copy(this.m_xf)},box2d.b2Body.prototype.GetPosition=function(a){return a=a||this.m_out_xf.p,a.Copy(this.m_xf.p)},box2d.b2Body.prototype.SetPosition=function(a){this.SetTransformVecRadians(a,this.GetAngleRadians())},box2d.b2Body.prototype.SetPositionXY=function(a,b){this.SetTransformXYRadians(a,b,this.GetAngleRadians())},box2d.b2Body.prototype.GetAngle=function(){return this.m_sweep.a},box2d.b2Body.prototype.GetAngleRadians=box2d.b2Body.prototype.GetAngle,box2d.b2Body.prototype.GetAngleDegrees=function(){return box2d.b2RadToDeg(this.GetAngle())},box2d.b2Body.prototype.SetAngle=function(a){this.SetTransformVecRadians(this.GetPosition(),a)},box2d.b2Body.prototype.SetAngleRadians=box2d.b2Body.prototype.SetAngle,box2d.b2Body.prototype.SetAngleDegrees=function(a){this.SetAngle(box2d.b2DegToRad(a))},box2d.b2Body.prototype.GetWorldCenter=function(a){return a=a||this.m_out_sweep.c,a.Copy(this.m_sweep.c)},box2d.b2Body.prototype.GetLocalCenter=function(a){return a=a||this.m_out_sweep.localCenter,a.Copy(this.m_sweep.localCenter)},box2d.b2Body.prototype.SetLinearVelocity=function(a){this.m_type!==box2d.b2BodyType.b2_staticBody&&(box2d.b2DotVV(a,a)>0&&this.SetAwake(!0),this.m_linearVelocity.Copy(a))},box2d.b2Body.prototype.GetLinearVelocity=function(a){return a=a||this.m_out_linearVelocity,a.Copy(this.m_linearVelocity)},box2d.b2Body.prototype.SetAngularVelocity=function(a){this.m_type!==box2d.b2BodyType.b2_staticBody&&(a*a>0&&this.SetAwake(!0),this.m_angularVelocity=a)},box2d.b2Body.prototype.GetAngularVelocity=function(){return this.m_angularVelocity},box2d.b2Body.prototype.GetDefinition=function(a){return a.type=this.GetType(),a.allowSleep=(this.m_flags&box2d.b2BodyFlag.e_autoSleepFlag)===box2d.b2BodyFlag.e_autoSleepFlag,a.angle=this.GetAngleRadians(),a.angularDamping=this.m_angularDamping,a.gravityScale=this.m_gravityScale,a.angularVelocity=this.m_angularVelocity,a.fixedRotation=(this.m_flags&box2d.b2BodyFlag.e_fixedRotationFlag)===box2d.b2BodyFlag.e_fixedRotationFlag,a.bullet=(this.m_flags&box2d.b2BodyFlag.e_bulletFlag)===box2d.b2BodyFlag.e_bulletFlag,a.awake=(this.m_flags&box2d.b2BodyFlag.e_awakeFlag)===box2d.b2BodyFlag.e_awakeFlag,a.linearDamping=this.m_linearDamping,a.linearVelocity.Copy(this.GetLinearVelocity()),a.position.Copy(this.GetPosition()),a.userData=this.GetUserData(),a},box2d.b2Body.prototype.ApplyForce=function(a,b,c){c=c||!0,this.m_type===box2d.b2BodyType.b2_dynamicBody&&(c&&0==(this.m_flags&box2d.b2BodyFlag.e_awakeFlag)&&this.SetAwake(!0),this.m_flags&box2d.b2BodyFlag.e_awakeFlag&&(this.m_force.x+=a.x,this.m_force.y+=a.y,this.m_torque+=(b.x-this.m_sweep.c.x)*a.y-(b.y-this.m_sweep.c.y)*a.x))},box2d.b2Body.prototype.ApplyForceToCenter=function(a,b){b=b||!0,this.m_type===box2d.b2BodyType.b2_dynamicBody&&(b&&0==(this.m_flags&box2d.b2BodyFlag.e_awakeFlag)&&this.SetAwake(!0),this.m_flags&box2d.b2BodyFlag.e_awakeFlag&&(this.m_force.x+=a.x,this.m_force.y+=a.y))},box2d.b2Body.prototype.ApplyTorque=function(a,b){b=b||!0,this.m_type===box2d.b2BodyType.b2_dynamicBody&&(b&&0==(this.m_flags&box2d.b2BodyFlag.e_awakeFlag)&&this.SetAwake(!0),this.m_flags&box2d.b2BodyFlag.e_awakeFlag&&(this.m_torque+=a))},box2d.b2Body.prototype.ApplyLinearImpulse=function(a,b,c){c=c||!0,this.m_type===box2d.b2BodyType.b2_dynamicBody&&(c&&0==(this.m_flags&box2d.b2BodyFlag.e_awakeFlag)&&this.SetAwake(!0),this.m_flags&box2d.b2BodyFlag.e_awakeFlag&&(this.m_linearVelocity.x+=this.m_invMass*a.x,this.m_linearVelocity.y+=this.m_invMass*a.y,this.m_angularVelocity+=this.m_invI*((b.x-this.m_sweep.c.x)*a.y-(b.y-this.m_sweep.c.y)*a.x)))},box2d.b2Body.prototype.ApplyAngularImpulse=function(a,b){b=b||!0,this.m_type===box2d.b2BodyType.b2_dynamicBody&&(b&&0==(this.m_flags&box2d.b2BodyFlag.e_awakeFlag)&&this.SetAwake(!0),this.m_flags&box2d.b2BodyFlag.e_awakeFlag&&(this.m_angularVelocity+=this.m_invI*a))},box2d.b2Body.prototype.GetMass=function(){return this.m_mass},box2d.b2Body.prototype.GetInertia=function(){return this.m_I+this.m_mass*box2d.b2DotVV(this.m_sweep.localCenter,this.m_sweep.localCenter)},box2d.b2Body.prototype.GetMassData=function(a){return a.mass=this.m_mass,a.I=this.m_I+this.m_mass*box2d.b2DotVV(this.m_sweep.localCenter,this.m_sweep.localCenter),a.center.Copy(this.m_sweep.localCenter),a},box2d.b2Body.prototype.SetMassData=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.m_world.IsLocked()),!0!==this.m_world.IsLocked()&&this.m_type===box2d.b2BodyType.b2_dynamicBody){this.m_invMass=0,this.m_I=0,this.m_invI=0,this.m_mass=a.mass,this.m_mass<=0&&(this.m_mass=1),this.m_invMass=1/this.m_mass,a.I>0&&0==(this.m_flags&box2d.b2BodyFlag.e_fixedRotationFlag)&&(this.m_I=a.I-this.m_mass*box2d.b2DotVV(a.center,a.center),box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_I>0),this.m_invI=1/this.m_I);var b=box2d.b2Body.prototype.SetMassData.s_oldCenter.Copy(this.m_sweep.c);this.m_sweep.localCenter.Copy(a.center),box2d.b2MulXV(this.m_xf,this.m_sweep.localCenter,this.m_sweep.c),this.m_sweep.c0.Copy(this.m_sweep.c),box2d.b2AddVCrossSV(this.m_linearVelocity,this.m_angularVelocity,box2d.b2SubVV(this.m_sweep.c,b,box2d.b2Vec2.s_t0),this.m_linearVelocity)}},box2d.b2Body.prototype.SetMassData.s_oldCenter=new box2d.b2Vec2,box2d.b2Body.prototype.ResetMassData=function(){if(this.m_mass=0,this.m_invMass=0,this.m_I=0,this.m_invI=0,this.m_sweep.localCenter.SetZero(),this.m_type===box2d.b2BodyType.b2_staticBody||this.m_type===box2d.b2BodyType.b2_kinematicBody)return this.m_sweep.c0.Copy(this.m_xf.p),this.m_sweep.c.Copy(this.m_xf.p),void(this.m_sweep.a0=this.m_sweep.a);box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_type===box2d.b2BodyType.b2_dynamicBody);for(var a=box2d.b2Body.prototype.ResetMassData.s_localCenter.SetZero(),b=this.m_fixtureList;b;b=b.m_next)if(0!==b.m_density){var c=b.GetMassData(box2d.b2Body.prototype.ResetMassData.s_massData);this.m_mass+=c.mass,a.x+=c.center.x*c.mass,a.y+=c.center.y*c.mass,this.m_I+=c.I}this.m_mass>0?(this.m_invMass=1/this.m_mass,a.x*=this.m_invMass,a.y*=this.m_invMass):(this.m_mass=1,this.m_invMass=1),this.m_I>0&&0==(this.m_flags&box2d.b2BodyFlag.e_fixedRotationFlag)?(this.m_I-=this.m_mass*box2d.b2DotVV(a,a),box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_I>0),this.m_invI=1/this.m_I):(this.m_I=0,this.m_invI=0);var d=box2d.b2Body.prototype.ResetMassData.s_oldCenter.Copy(this.m_sweep.c);this.m_sweep.localCenter.Copy(a),box2d.b2MulXV(this.m_xf,this.m_sweep.localCenter,this.m_sweep.c),this.m_sweep.c0.Copy(this.m_sweep.c),box2d.b2AddVCrossSV(this.m_linearVelocity,this.m_angularVelocity,box2d.b2SubVV(this.m_sweep.c,d,box2d.b2Vec2.s_t0),this.m_linearVelocity)},box2d.b2Body.prototype.ResetMassData.s_localCenter=new box2d.b2Vec2,box2d.b2Body.prototype.ResetMassData.s_oldCenter=new box2d.b2Vec2,box2d.b2Body.prototype.ResetMassData.s_massData=new box2d.b2MassData,box2d.b2Body.prototype.GetWorldPoint=function(a,b){return box2d.b2MulXV(this.m_xf,a,b)},box2d.b2Body.prototype.GetWorldVector=function(a,b){return box2d.b2MulRV(this.m_xf.q,a,b)},box2d.b2Body.prototype.GetLocalPoint=function(a,b){return box2d.b2MulTXV(this.m_xf,a,b)},box2d.b2Body.prototype.GetLocalVector=function(a,b){return box2d.b2MulTRV(this.m_xf.q,a,b)},box2d.b2Body.prototype.GetLinearVelocityFromWorldPoint=function(a,b){return box2d.b2AddVCrossSV(this.m_linearVelocity,this.m_angularVelocity,box2d.b2SubVV(a,this.m_sweep.c,box2d.b2Vec2.s_t0),b)},box2d.b2Body.prototype.GetLinearVelocityFromLocalPoint=function(a,b){return this.GetLinearVelocityFromWorldPoint(this.GetWorldPoint(a,b),b)},box2d.b2Body.prototype.GetLinearDamping=function(){return this.m_linearDamping},box2d.b2Body.prototype.SetLinearDamping=function(a){this.m_linearDamping=a},box2d.b2Body.prototype.GetAngularDamping=function(){return this.m_angularDamping},box2d.b2Body.prototype.SetAngularDamping=function(a){this.m_angularDamping=a},box2d.b2Body.prototype.GetGravityScale=function(){return this.m_gravityScale},box2d.b2Body.prototype.SetGravityScale=function(a){this.m_gravityScale=a},box2d.b2Body.prototype.SetType=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.m_world.IsLocked()),!0!==this.m_world.IsLocked()&&this.m_type!==a){this.m_type=a,this.ResetMassData(),this.m_type===box2d.b2BodyType.b2_staticBody&&(this.m_linearVelocity.SetZero(),this.m_angularVelocity=0,this.m_sweep.a0=this.m_sweep.a,this.m_sweep.c0.Copy(this.m_sweep.c),this.SynchronizeFixtures()),this.SetAwake(!0),this.m_force.SetZero(),this.m_torque=0;for(var b=this.m_contactList;b;){var c=b;b=b.next,this.m_world.m_contactManager.Destroy(c.contact)}this.m_contactList=null;for(var d=this.m_world.m_contactManager.m_broadPhase,e=this.m_fixtureList;e;e=e.m_next)for(var f=e.m_proxyCount,g=0;g<f;++g)d.TouchProxy(e.m_proxies[g].proxy)}},box2d.b2Body.prototype.GetType=function(){return this.m_type},box2d.b2Body.prototype.SetBullet=function(a){a?this.m_flags|=box2d.b2BodyFlag.e_bulletFlag:this.m_flags&=~box2d.b2BodyFlag.e_bulletFlag},box2d.b2Body.prototype.IsBullet=function(){return(this.m_flags&box2d.b2BodyFlag.e_bulletFlag)===box2d.b2BodyFlag.e_bulletFlag},box2d.b2Body.prototype.SetSleepingAllowed=function(a){a?this.m_flags|=box2d.b2BodyFlag.e_autoSleepFlag:(this.m_flags&=~box2d.b2BodyFlag.e_autoSleepFlag,this.SetAwake(!0))},box2d.b2Body.prototype.IsSleepingAllowed=function(){return(this.m_flags&box2d.b2BodyFlag.e_autoSleepFlag)===box2d.b2BodyFlag.e_autoSleepFlag},box2d.b2Body.prototype.SetAwake=function(a){a?0==(this.m_flags&box2d.b2BodyFlag.e_awakeFlag)&&(this.m_flags|=box2d.b2BodyFlag.e_awakeFlag,this.m_sleepTime=0):(this.m_flags&=~box2d.b2BodyFlag.e_awakeFlag,this.m_sleepTime=0,this.m_linearVelocity.SetZero(),this.m_angularVelocity=0,this.m_force.SetZero(),this.m_torque=0)},box2d.b2Body.prototype.IsAwake=function(){return(this.m_flags&box2d.b2BodyFlag.e_awakeFlag)===box2d.b2BodyFlag.e_awakeFlag},box2d.b2Body.prototype.SetActive=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.m_world.IsLocked()),a!==this.IsActive())if(a){this.m_flags|=box2d.b2BodyFlag.e_activeFlag;for(var b=this.m_world.m_contactManager.m_broadPhase,c=this.m_fixtureList;c;c=c.m_next)c.CreateProxies(b,this.m_xf)}else{this.m_flags&=~box2d.b2BodyFlag.e_activeFlag;for(var b=this.m_world.m_contactManager.m_broadPhase,c=this.m_fixtureList;c;c=c.m_next)c.DestroyProxies(b);for(var d=this.m_contactList;d;){var e=d;d=d.next,this.m_world.m_contactManager.Destroy(e.contact)}this.m_contactList=null}},box2d.b2Body.prototype.IsActive=function(){return(this.m_flags&box2d.b2BodyFlag.e_activeFlag)===box2d.b2BodyFlag.e_activeFlag},box2d.b2Body.prototype.SetFixedRotation=function(a){(this.m_flags&box2d.b2BodyFlag.e_fixedRotationFlag)===box2d.b2BodyFlag.e_fixedRotationFlag!==a&&(a?this.m_flags|=box2d.b2BodyFlag.e_fixedRotationFlag:this.m_flags&=~box2d.b2BodyFlag.e_fixedRotationFlag,this.m_angularVelocity=0,this.ResetMassData())},box2d.b2Body.prototype.IsFixedRotation=function(){return(this.m_flags&box2d.b2BodyFlag.e_fixedRotationFlag)===box2d.b2BodyFlag.e_fixedRotationFlag},box2d.b2Body.prototype.GetFixtureList=function(){return this.m_fixtureList},box2d.b2Body.prototype.GetJointList=function(){return this.m_jointList},box2d.b2Body.prototype.GetContactList=function(){return this.m_contactList};box2d.b2Body.prototype.GetNext=function(){return this.m_next},box2d.b2Body.prototype.GetUserData=function(){return this.m_userData},box2d.b2Body.prototype.SetUserData=function(a){this.m_userData=a},box2d.b2Body.prototype.GetWorld=function(){return this.m_world},box2d.b2Body.prototype.SynchronizeFixtures=function(){var a=box2d.b2Body.prototype.SynchronizeFixtures.s_xf1;a.q.SetAngleRadians(this.m_sweep.a0),box2d.b2MulRV(a.q,this.m_sweep.localCenter,a.p),box2d.b2SubVV(this.m_sweep.c0,a.p,a.p);for(var b=this.m_world.m_contactManager.m_broadPhase,c=this.m_fixtureList;c;c=c.m_next)c.Synchronize(b,a,this.m_xf)},box2d.b2Body.prototype.SynchronizeFixtures.s_xf1=new box2d.b2Transform,box2d.b2Body.prototype.SynchronizeTransform=function(){this.m_xf.q.SetAngleRadians(this.m_sweep.a),box2d.b2MulRV(this.m_xf.q,this.m_sweep.localCenter,this.m_xf.p),box2d.b2SubVV(this.m_sweep.c,this.m_xf.p,this.m_xf.p)},box2d.b2Body.prototype.ShouldCollide=function(a){if(this.m_type!==box2d.b2BodyType.b2_dynamicBody&&a.m_type!==box2d.b2BodyType.b2_dynamicBody)return!1;for(var b=this.m_jointList;b;b=b.next)if(b.other===a&&!1===b.joint.m_collideConnected)return!1;return!0},box2d.b2Body.prototype.Advance=function(a){this.m_sweep.Advance(a),this.m_sweep.c.Copy(this.m_sweep.c0),this.m_sweep.a=this.m_sweep.a0,this.m_xf.q.SetAngleRadians(this.m_sweep.a),box2d.b2MulRV(this.m_xf.q,this.m_sweep.localCenter,this.m_xf.p),box2d.b2SubVV(this.m_sweep.c,this.m_xf.p,this.m_xf.p)},box2d.b2Body.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_islandIndex;box2d.b2Log("if (true)\n"),box2d.b2Log("{\n"),box2d.b2Log(" /*box2d.b2BodyDef*/ var bd = new box2d.b2BodyDef();\n");var b="";switch(this.m_type){case box2d.b2BodyType.b2_staticBody:b="box2d.b2BodyType.b2_staticBody";break;case box2d.b2BodyType.b2_kinematicBody:b="box2d.b2BodyType.b2_kinematicBody";break;case box2d.b2BodyType.b2_dynamicBody:b="box2d.b2BodyType.b2_dynamicBody";break;default:box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1)}box2d.b2Log(" bd.type = %s;\n",b),box2d.b2Log(" bd.position.SetXY(%.15f, %.15f);\n",this.m_xf.p.x,this.m_xf.p.y),box2d.b2Log(" bd.angle = %.15f;\n",this.m_sweep.a),box2d.b2Log(" bd.linearVelocity.SetXY(%.15f, %.15f);\n",this.m_linearVelocity.x,this.m_linearVelocity.y),box2d.b2Log(" bd.angularVelocity = %.15f;\n",this.m_angularVelocity),box2d.b2Log(" bd.linearDamping = %.15f;\n",this.m_linearDamping),box2d.b2Log(" bd.angularDamping = %.15f;\n",this.m_angularDamping),box2d.b2Log(" bd.allowSleep = %s;\n",this.m_flags&box2d.b2BodyFlag.e_autoSleepFlag?"true":"false"),box2d.b2Log(" bd.awake = %s;\n",this.m_flags&box2d.b2BodyFlag.e_awakeFlag?"true":"false"),box2d.b2Log(" bd.fixedRotation = %s;\n",this.m_flags&box2d.b2BodyFlag.e_fixedRotationFlag?"true":"false"),box2d.b2Log(" bd.bullet = %s;\n",this.m_flags&box2d.b2BodyFlag.e_bulletFlag?"true":"false"),box2d.b2Log(" bd.active = %s;\n",this.m_flags&box2d.b2BodyFlag.e_activeFlag?"true":"false"),box2d.b2Log(" bd.gravityScale = %.15f;\n",this.m_gravityScale),box2d.b2Log("\n"),box2d.b2Log(" bodies[%d] = this.m_world.CreateBody(bd);\n",this.m_islandIndex),box2d.b2Log("\n");for(var c=this.m_fixtureList;c;c=c.m_next)box2d.b2Log(" if (true)\n"),box2d.b2Log(" {\n"),c.Dump(a),box2d.b2Log(" }\n");box2d.b2Log("}\n")}},box2d.b2Body.prototype.GetControllerList=function(){return this.m_controllerList},box2d.b2Body.prototype.GetControllerCount=function(){return this.m_controllerCount},goog.provide("box2d.b2World"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Draw"),goog.require("box2d.b2ContactManager"),goog.require("box2d.b2ContactSolver"),goog.require("box2d.b2Island"),goog.require("box2d.b2Body"),goog.require("box2d.b2Math"),goog.require("box2d.b2Collision"),goog.require("box2d.b2TimeStep"),goog.require("box2d.b2WorldCallbacks"),goog.require("box2d.b2JointFactory"),box2d.b2WorldFlag={e_none:0,e_newFixture:1,e_locked:2,e_clearForces:4},goog.exportProperty(box2d.b2WorldFlag,"e_none",box2d.b2WorldFlag.e_none),goog.exportProperty(box2d.b2WorldFlag,"e_newFixture",box2d.b2WorldFlag.e_newFixture),goog.exportProperty(box2d.b2WorldFlag,"e_locked",box2d.b2WorldFlag.e_locked),goog.exportProperty(box2d.b2WorldFlag,"e_clearForces",box2d.b2WorldFlag.e_clearForces),box2d.b2World=function(a){this.m_flags=box2d.b2WorldFlag.e_clearForces,this.m_contactManager=new box2d.b2ContactManager,this.m_gravity=a.Clone(),this.m_out_gravity=new box2d.b2Vec2,this.m_allowSleep=!0,this.m_destructionListener=null,this.m_debugDraw=null,this.m_warmStarting=!0,this.m_continuousPhysics=!0,this.m_subStepping=!1,this.m_stepComplete=!0,this.m_profile=new box2d.b2Profile,this.m_island=new box2d.b2Island,this.s_stack=new Array},box2d.b2World.prototype.m_flags=box2d.b2WorldFlag.e_none,box2d.b2World.prototype.m_contactManager=null,box2d.b2World.prototype.m_bodyList=null,box2d.b2World.prototype.m_jointList=null,box2d.b2World.prototype.m_bodyCount=0,box2d.b2World.prototype.m_jointCount=0,box2d.b2World.prototype.m_gravity=null,box2d.b2World.prototype.m_out_gravity=null,box2d.b2World.prototype.m_allowSleep=!0,box2d.b2World.prototype.m_destructionListener=null,box2d.b2World.prototype.m_debugDraw=null,box2d.b2World.prototype.m_inv_dt0=0,box2d.b2World.prototype.m_warmStarting=!0,box2d.b2World.prototype.m_continuousPhysics=!0,box2d.b2World.prototype.m_subStepping=!1,box2d.b2World.prototype.m_stepComplete=!0,box2d.b2World.prototype.m_profile=null,box2d.b2World.prototype.m_island=null,box2d.b2World.prototype.s_stack=null,box2d.b2World.prototype.m_controllerList=null,box2d.b2World.prototype.m_controllerCount=0,box2d.b2World.prototype.SetAllowSleeping=function(a){if(a!==this.m_allowSleep&&(this.m_allowSleep=a,!1===this.m_allowSleep))for(var b=this.m_bodyList;b;b=b.m_next)b.SetAwake(!0)},box2d.b2World.prototype.GetAllowSleeping=function(){return this.m_allowSleep},box2d.b2World.prototype.SetWarmStarting=function(a){this.m_warmStarting=a},box2d.b2World.prototype.GetWarmStarting=function(){return this.m_warmStarting},box2d.b2World.prototype.SetContinuousPhysics=function(a){this.m_continuousPhysics=a},box2d.b2World.prototype.GetContinuousPhysics=function(){return this.m_continuousPhysics},box2d.b2World.prototype.SetSubStepping=function(a){this.m_subStepping=a},box2d.b2World.prototype.GetSubStepping=function(){return this.m_subStepping},box2d.b2World.prototype.GetBodyList=function(){return this.m_bodyList},box2d.b2World.prototype.GetJointList=function(){return this.m_jointList},box2d.b2World.prototype.GetContactList=function(){return this.m_contactManager.m_contactList},box2d.b2World.prototype.GetBodyCount=function(){return this.m_bodyCount},
|
||
box2d.b2World.prototype.GetJointCount=function(){return this.m_jointCount},box2d.b2World.prototype.GetContactCount=function(){return this.m_contactManager.m_contactCount},box2d.b2World.prototype.SetGravity=function(a,b){if(b=b||!0,(this.m_gravity.x!==a.x||this.m_gravity.y!==a.y)&&(this.m_gravity.Copy(a),b))for(var c=this.m_bodyList;c;c=c.m_next)c.SetAwake(!0)},box2d.b2World.prototype.GetGravity=function(a){return a=a||this.m_out_gravity,a.Copy(this.m_gravity)},box2d.b2World.prototype.IsLocked=function(){return(this.m_flags&box2d.b2WorldFlag.e_locked)>0},box2d.b2World.prototype.SetAutoClearForces=function(a){a?this.m_flags|=box2d.b2WorldFlag.e_clearForces:this.m_flags&=~box2d.b2WorldFlag.e_clearForces},box2d.b2World.prototype.GetAutoClearForces=function(){return(this.m_flags&box2d.b2WorldFlag.e_clearForces)===box2d.b2WorldFlag.e_clearForces},box2d.b2World.prototype.GetContactManager=function(){return this.m_contactManager},box2d.b2World.prototype.GetProfile=function(){return this.m_profile},box2d.b2World.prototype.SetDestructionListener=function(a){this.m_destructionListener=a},box2d.b2World.prototype.SetContactFilter=function(a){this.m_contactManager.m_contactFilter=a},box2d.b2World.prototype.SetContactListener=function(a){this.m_contactManager.m_contactListener=a},box2d.b2World.prototype.SetDebugDraw=function(a){this.m_debugDraw=a},box2d.b2World.prototype.CreateBody=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.IsLocked()),this.IsLocked())return null;var b=new box2d.b2Body(a,this);return b.m_prev=null,b.m_next=this.m_bodyList,this.m_bodyList&&(this.m_bodyList.m_prev=b),this.m_bodyList=b,++this.m_bodyCount,b},box2d.b2World.prototype.DestroyBody=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_bodyCount>0),box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.IsLocked()),!this.IsLocked()){for(var b=a.m_jointList;b;){var c=b;b=b.next,this.m_destructionListener&&this.m_destructionListener.SayGoodbyeJoint(c.joint),this.DestroyJoint(c.joint),a.m_jointList=b}a.m_jointList=null;for(var d=a.m_controllerList;d;){var e=d;d=d.nextController,e.controller.RemoveBody(a)}for(var f=a.m_contactList;f;){var g=f;f=f.next,this.m_contactManager.Destroy(g.contact)}a.m_contactList=null;for(var h=a.m_fixtureList;h;){var i=h;h=h.m_next,this.m_destructionListener&&this.m_destructionListener.SayGoodbyeFixture(i),i.DestroyProxies(this.m_contactManager.m_broadPhase),i.Destroy(),a.m_fixtureList=h,a.m_fixtureCount-=1}a.m_fixtureList=null,a.m_fixtureCount=0,a.m_prev&&(a.m_prev.m_next=a.m_next),a.m_next&&(a.m_next.m_prev=a.m_prev),a===this.m_bodyList&&(this.m_bodyList=a.m_next),--this.m_bodyCount}},box2d.b2World.prototype.CreateJoint=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.IsLocked()),this.IsLocked())return null;var b=box2d.b2JointFactory.Create(a,null);b.m_prev=null,b.m_next=this.m_jointList,this.m_jointList&&(this.m_jointList.m_prev=b),this.m_jointList=b,++this.m_jointCount,b.m_edgeA.joint=b,b.m_edgeA.other=b.m_bodyB,b.m_edgeA.prev=null,b.m_edgeA.next=b.m_bodyA.m_jointList,b.m_bodyA.m_jointList&&(b.m_bodyA.m_jointList.prev=b.m_edgeA),b.m_bodyA.m_jointList=b.m_edgeA,b.m_edgeB.joint=b,b.m_edgeB.other=b.m_bodyA,b.m_edgeB.prev=null,b.m_edgeB.next=b.m_bodyB.m_jointList,b.m_bodyB.m_jointList&&(b.m_bodyB.m_jointList.prev=b.m_edgeB),b.m_bodyB.m_jointList=b.m_edgeB;var c=a.bodyA,d=a.bodyB;if(!1===a.collideConnected)for(var e=d.GetContactList();e;)e.other===c&&e.contact.FlagForFiltering(),e=e.next;return b},box2d.b2World.prototype.DestroyJoint=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.IsLocked()),!this.IsLocked()){var b=a.m_collideConnected;a.m_prev&&(a.m_prev.m_next=a.m_next),a.m_next&&(a.m_next.m_prev=a.m_prev),a===this.m_jointList&&(this.m_jointList=a.m_next);var c=a.m_bodyA,d=a.m_bodyB;if(c.SetAwake(!0),d.SetAwake(!0),a.m_edgeA.prev&&(a.m_edgeA.prev.next=a.m_edgeA.next),a.m_edgeA.next&&(a.m_edgeA.next.prev=a.m_edgeA.prev),a.m_edgeA===c.m_jointList&&(c.m_jointList=a.m_edgeA.next),a.m_edgeA.prev=null,a.m_edgeA.next=null,a.m_edgeB.prev&&(a.m_edgeB.prev.next=a.m_edgeB.next),a.m_edgeB.next&&(a.m_edgeB.next.prev=a.m_edgeB.prev),a.m_edgeB===d.m_jointList&&(d.m_jointList=a.m_edgeB.next),a.m_edgeB.prev=null,a.m_edgeB.next=null,box2d.b2JointFactory.Destroy(a,null),box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.m_jointCount>0),--this.m_jointCount,!1===b)for(var e=d.GetContactList();e;)e.other===c&&e.contact.FlagForFiltering(),e=e.next}},box2d.b2World.prototype.Solve=function(a){for(var b=this.m_controllerList;b;b=b.m_next)b.Step(a);this.m_profile.solveInit=0,this.m_profile.solveVelocity=0,this.m_profile.solvePosition=0;var c=this.m_island;c.Initialize(this.m_bodyCount,this.m_contactManager.m_contactCount,this.m_jointCount,null,this.m_contactManager.m_contactListener);for(var d=this.m_bodyList;d;d=d.m_next)d.m_flags&=~box2d.b2BodyFlag.e_islandFlag;for(var e=this.m_contactManager.m_contactList;e;e=e.m_next)e.m_flags&=~box2d.b2ContactFlag.e_islandFlag;for(var f=this.m_jointList;f;f=f.m_next)f.m_islandFlag=!1;for(var g=this.m_bodyCount,h=this.s_stack,i=this.m_bodyList;i;i=i.m_next)if(!(i.m_flags&box2d.b2BodyFlag.e_islandFlag)&&!1!==i.IsAwake()&&!1!==i.IsActive()&&i.GetType()!==box2d.b2BodyType.b2_staticBody){c.Clear();var j=0;for(h[j++]=i,i.m_flags|=box2d.b2BodyFlag.e_islandFlag;j>0;){var d=h[--j];if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!0===d.IsActive()),c.AddBody(d),d.SetAwake(!0),d.GetType()!==box2d.b2BodyType.b2_staticBody){for(var k=d.m_contactList;k;k=k.next){var l=k.contact;if(!(l.m_flags&box2d.b2ContactFlag.e_islandFlag)&&(!1!==l.IsEnabled()&&!1!==l.IsTouching())){var m=l.m_fixtureA.m_isSensor,n=l.m_fixtureB.m_isSensor;if(!m&&!n){c.AddContact(l),l.m_flags|=box2d.b2ContactFlag.e_islandFlag;var o=k.other;o.m_flags&box2d.b2BodyFlag.e_islandFlag||(box2d.ENABLE_ASSERTS&&box2d.b2Assert(j<g),h[j++]=o,o.m_flags|=box2d.b2BodyFlag.e_islandFlag)}}}for(var p=d.m_jointList;p;p=p.next)if(!0!==p.joint.m_islandFlag){var o=p.other;!1!==o.IsActive()&&(c.AddJoint(p.joint),p.joint.m_islandFlag=!0,o.m_flags&box2d.b2BodyFlag.e_islandFlag||(box2d.ENABLE_ASSERTS&&box2d.b2Assert(j<g),h[j++]=o,o.m_flags|=box2d.b2BodyFlag.e_islandFlag))}}}var q=new box2d.b2Profile;c.Solve(q,a,this.m_gravity,this.m_allowSleep),this.m_profile.solveInit+=q.solveInit,this.m_profile.solveVelocity+=q.solveVelocity,this.m_profile.solvePosition+=q.solvePosition;for(var r=0;r<c.m_bodyCount;++r){var d=c.m_bodies[r];d.GetType()===box2d.b2BodyType.b2_staticBody&&(d.m_flags&=~box2d.b2BodyFlag.e_islandFlag)}}for(var r=0;r<h.length&&h[r];++r)h[r]=null;for(var s=new box2d.b2Timer,d=this.m_bodyList;d;d=d.m_next)0!=(d.m_flags&box2d.b2BodyFlag.e_islandFlag)&&d.GetType()!==box2d.b2BodyType.b2_staticBody&&d.SynchronizeFixtures();this.m_contactManager.FindNewContacts(),this.m_profile.broadphase=s.GetMilliseconds()},box2d.b2World.prototype.SolveTOI=function(a){var b=this.m_island;if(b.Initialize(2*box2d.b2_maxTOIContacts,box2d.b2_maxTOIContacts,0,null,this.m_contactManager.m_contactListener),this.m_stepComplete){for(var c=this.m_bodyList;c;c=c.m_next)c.m_flags&=~box2d.b2BodyFlag.e_islandFlag,c.m_sweep.alpha0=0;for(var d=this.m_contactManager.m_contactList;d;d=d.m_next)d.m_flags&=~(box2d.b2ContactFlag.e_toiFlag|box2d.b2ContactFlag.e_islandFlag),d.m_toiCount=0,d.m_toi=1}for(;;){for(var e=null,f=1,d=this.m_contactManager.m_contactList;d;d=d.m_next)if(!1!==d.IsEnabled()&&!(d.m_toiCount>box2d.b2_maxSubSteps)){var g=1;if(d.m_flags&box2d.b2ContactFlag.e_toiFlag)g=d.m_toi;else{var h=d.GetFixtureA(),i=d.GetFixtureB();if(h.IsSensor()||i.IsSensor())continue;var j=h.GetBody(),k=i.GetBody(),l=j.m_type,m=k.m_type;box2d.ENABLE_ASSERTS&&box2d.b2Assert(l===box2d.b2BodyType.b2_dynamicBody||m===box2d.b2BodyType.b2_dynamicBody);var n=j.IsAwake()&&l!==box2d.b2BodyType.b2_staticBody,o=k.IsAwake()&&m!==box2d.b2BodyType.b2_staticBody;if(!1===n&&!1===o)continue;var p=j.IsBullet()||l!==box2d.b2BodyType.b2_dynamicBody,q=k.IsBullet()||m!==box2d.b2BodyType.b2_dynamicBody;if(!1===p&&!1===q)continue;var r=j.m_sweep.alpha0;j.m_sweep.alpha0<k.m_sweep.alpha0?(r=k.m_sweep.alpha0,j.m_sweep.Advance(r)):k.m_sweep.alpha0<j.m_sweep.alpha0&&(r=j.m_sweep.alpha0,k.m_sweep.Advance(r)),box2d.ENABLE_ASSERTS&&box2d.b2Assert(r<1);var s=d.GetChildIndexA(),t=d.GetChildIndexB(),u=box2d.b2World.prototype.SolveTOI.s_toi_input;u.proxyA.SetShape(h.GetShape(),s),u.proxyB.SetShape(i.GetShape(),t),u.sweepA.Copy(j.m_sweep),u.sweepB.Copy(k.m_sweep),u.tMax=1;var v=box2d.b2World.prototype.SolveTOI.s_toi_output;box2d.b2TimeOfImpact(v,u);var w=v.t;g=v.state===box2d.b2TOIOutputState.e_touching?box2d.b2Min(r+(1-r)*w,1):1,d.m_toi=g,d.m_flags|=box2d.b2ContactFlag.e_toiFlag}g<f&&(e=d,f=g)}if(null===e||1-10*box2d.b2_epsilon<f){this.m_stepComplete=!0;break}var h=e.GetFixtureA(),i=e.GetFixtureB(),j=h.GetBody(),k=i.GetBody(),x=box2d.b2World.prototype.SolveTOI.s_backup1.Copy(j.m_sweep),y=box2d.b2World.prototype.SolveTOI.s_backup2.Copy(k.m_sweep);if(j.Advance(f),k.Advance(f),e.Update(this.m_contactManager.m_contactListener),e.m_flags&=~box2d.b2ContactFlag.e_toiFlag,++e.m_toiCount,!1!==e.IsEnabled()&&!1!==e.IsTouching()){j.SetAwake(!0),k.SetAwake(!0),b.Clear(),b.AddBody(j),b.AddBody(k),b.AddContact(e),j.m_flags|=box2d.b2BodyFlag.e_islandFlag,k.m_flags|=box2d.b2BodyFlag.e_islandFlag,e.m_flags|=box2d.b2ContactFlag.e_islandFlag;for(var z=0;z<2;++z){var A=0===z?j:k;if(A.m_type===box2d.b2BodyType.b2_dynamicBody)for(var B=A.m_contactList;B&&b.m_bodyCount!==b.m_bodyCapacity&&b.m_contactCount!==b.m_contactCapacity;B=B.next){var C=B.contact;if(!(C.m_flags&box2d.b2ContactFlag.e_islandFlag)){var D=B.other;if(D.m_type!==box2d.b2BodyType.b2_dynamicBody||!1!==A.IsBullet()||!1!==D.IsBullet()){var E=C.m_fixtureA.m_isSensor,F=C.m_fixtureB.m_isSensor;if(!E&&!F){var G=box2d.b2World.prototype.SolveTOI.s_backup.Copy(D.m_sweep);0==(D.m_flags&box2d.b2BodyFlag.e_islandFlag)&&D.Advance(f),C.Update(this.m_contactManager.m_contactListener),!1!==C.IsEnabled()&&!1!==C.IsTouching()?(C.m_flags|=box2d.b2ContactFlag.e_islandFlag,b.AddContact(C),D.m_flags&box2d.b2BodyFlag.e_islandFlag||(D.m_flags|=box2d.b2BodyFlag.e_islandFlag,D.m_type!==box2d.b2BodyType.b2_staticBody&&D.SetAwake(!0),b.AddBody(D))):(D.m_sweep.Copy(G),D.SynchronizeTransform())}}}}}var H=box2d.b2World.prototype.SolveTOI.s_subStep;H.dt=(1-f)*a.dt,H.inv_dt=1/H.dt,H.dtRatio=1,H.positionIterations=20,H.velocityIterations=a.velocityIterations,H.warmStarting=!1,b.SolveTOI(H,j.m_islandIndex,k.m_islandIndex);for(var z=0;z<b.m_bodyCount;++z){var A=b.m_bodies[z];if(A.m_flags&=~box2d.b2BodyFlag.e_islandFlag,A.m_type===box2d.b2BodyType.b2_dynamicBody){A.SynchronizeFixtures();for(var B=A.m_contactList;B;B=B.next)B.contact.m_flags&=~(box2d.b2ContactFlag.e_toiFlag|box2d.b2ContactFlag.e_islandFlag)}}if(this.m_contactManager.FindNewContacts(),this.m_subStepping){this.m_stepComplete=!1;break}}else e.SetEnabled(!1),j.m_sweep.Copy(x),k.m_sweep.Copy(y),j.SynchronizeTransform(),k.SynchronizeTransform()}},box2d.b2World.prototype.SolveTOI.s_subStep=new box2d.b2TimeStep,box2d.b2World.prototype.SolveTOI.s_backup=new box2d.b2Sweep,box2d.b2World.prototype.SolveTOI.s_backup1=new box2d.b2Sweep,box2d.b2World.prototype.SolveTOI.s_backup2=new box2d.b2Sweep,box2d.b2World.prototype.SolveTOI.s_toi_input=new box2d.b2TOIInput,box2d.b2World.prototype.SolveTOI.s_toi_output=new box2d.b2TOIOutput,box2d.b2World.prototype.Step=function(a,b,c){var d=new box2d.b2Timer;this.m_flags&box2d.b2WorldFlag.e_newFixture&&(this.m_contactManager.FindNewContacts(),this.m_flags&=~box2d.b2WorldFlag.e_newFixture),this.m_flags|=box2d.b2WorldFlag.e_locked;var e=box2d.b2World.prototype.Step.s_step;e.dt=a,e.velocityIterations=b,e.positionIterations=c,e.inv_dt=a>0?1/a:0,e.dtRatio=this.m_inv_dt0*a,e.warmStarting=this.m_warmStarting;var f=new box2d.b2Timer;if(this.m_contactManager.Collide(),this.m_profile.collide=f.GetMilliseconds(),this.m_stepComplete&&e.dt>0){var f=new box2d.b2Timer;this.Solve(e),this.m_profile.solve=f.GetMilliseconds()}if(this.m_continuousPhysics&&e.dt>0){var f=new box2d.b2Timer;this.SolveTOI(e),this.m_profile.solveTOI=f.GetMilliseconds()}e.dt>0&&(this.m_inv_dt0=e.inv_dt),this.m_flags&box2d.b2WorldFlag.e_clearForces&&this.ClearForces(),this.m_flags&=~box2d.b2WorldFlag.e_locked,this.m_profile.step=d.GetMilliseconds()},box2d.b2World.prototype.Step.s_step=new box2d.b2TimeStep,box2d.b2World.prototype.ClearForces=function(){for(var a=this.m_bodyList;a;a=a.m_next)a.m_force.SetZero(),a.m_torque=0},box2d.b2World.prototype.QueryAABB=function(a,b){var c=this.m_contactManager.m_broadPhase,d=function(b){var d=c.GetUserData(b);box2d.ENABLE_ASSERTS&&box2d.b2Assert(d instanceof box2d.b2FixtureProxy);var e=d.fixture;d.childIndex;return a instanceof box2d.b2QueryCallback?a.ReportFixture(e):a(e)};c.Query(d,b)},box2d.b2World.prototype.QueryShape=function(a,b,c){var d=this.m_contactManager.m_broadPhase,e=function(e){var f=d.GetUserData(e);box2d.ENABLE_ASSERTS&&box2d.b2Assert(f instanceof box2d.b2FixtureProxy);var g=f.fixture;f.childIndex;return!box2d.b2TestOverlapShape(b,0,g.GetShape(),0,c,g.GetBody().GetTransform())||(a instanceof box2d.b2QueryCallback?a.ReportFixture(g):a(g))},f=box2d.b2World.prototype.QueryShape.s_aabb;b.ComputeAABB(f,c,0),d.Query(e,f)},box2d.b2World.prototype.QueryShape.s_aabb=new box2d.b2AABB,box2d.b2World.prototype.QueryPoint=function(a,b){var c=this.m_contactManager.m_broadPhase,d=function(d){var e=c.GetUserData(d);box2d.ENABLE_ASSERTS&&box2d.b2Assert(e instanceof box2d.b2FixtureProxy);var f=e.fixture;e.childIndex;return!f.TestPoint(b)||(a instanceof box2d.b2QueryCallback?a.ReportFixture(f):a(f))},e=box2d.b2World.prototype.QueryPoint.s_aabb;e.lowerBound.SetXY(b.x-box2d.b2_linearSlop,b.y-box2d.b2_linearSlop),e.upperBound.SetXY(b.x+box2d.b2_linearSlop,b.y+box2d.b2_linearSlop),c.Query(d,e)},box2d.b2World.prototype.QueryPoint.s_aabb=new box2d.b2AABB,box2d.b2World.prototype.RayCast=function(a,b,c){var d=this.m_contactManager.m_broadPhase,e=function(e,f){var g=d.GetUserData(f);box2d.ENABLE_ASSERTS&&box2d.b2Assert(g instanceof box2d.b2FixtureProxy);var h=g.fixture,i=g.childIndex,j=box2d.b2World.prototype.RayCast.s_output;if(h.RayCast(j,e,i)){var k=j.fraction,l=box2d.b2World.prototype.RayCast.s_point;return l.SetXY((1-k)*b.x+k*c.x,(1-k)*b.y+k*c.y),a instanceof box2d.b2RayCastCallback?a.ReportFixture(h,l,j.normal,k):a(h,l,j.normal,k)}return e.maxFraction},f=box2d.b2World.prototype.RayCast.s_input;f.maxFraction=1,f.p1.Copy(b),f.p2.Copy(c),d.RayCast(e,f)},box2d.b2World.prototype.RayCast.s_input=new box2d.b2RayCastInput,box2d.b2World.prototype.RayCast.s_output=new box2d.b2RayCastOutput,box2d.b2World.prototype.RayCast.s_point=new box2d.b2Vec2,box2d.b2World.prototype.RayCastOne=function(a,b){function c(a,b,c,f){return f<e&&(e=f,d=a),e}var d=null,e=1;return this.RayCast(c,a,b),d},box2d.b2World.prototype.RayCastAll=function(a,b,c){function d(a,b,d,e){return c.push(a),1}return c.length=0,this.RayCast(d,a,b),c},box2d.b2World.prototype.DrawShape=function(a,b){var c=a.GetShape();switch(c.m_type){case box2d.b2ShapeType.e_circleShape:var d=c instanceof box2d.b2CircleShape?c:null,e=d.m_p,f=d.m_radius,g=box2d.b2Vec2.UNITX;this.m_debugDraw.DrawSolidCircle(e,f,g,b);break;case box2d.b2ShapeType.e_edgeShape:var h=c instanceof box2d.b2EdgeShape?c:null,i=h.m_vertex1,j=h.m_vertex2;this.m_debugDraw.DrawSegment(i,j,b);break;case box2d.b2ShapeType.e_chainShape:for(var k=c instanceof box2d.b2ChainShape?c:null,l=k.m_count,m=k.m_vertices,i=m[0],n=0;n<l;++n){var j=m[n];this.m_debugDraw.DrawSegment(i,j,b),this.m_debugDraw.DrawCircle(j,.05,b),i=j}break;case box2d.b2ShapeType.e_polygonShape:var o=c instanceof box2d.b2PolygonShape?c:null,p=o.m_count,m=o.m_vertices;this.m_debugDraw.DrawSolidPolygon(m,p,b)}},box2d.b2World.prototype.DrawJoint=function(a){var b=a.GetBodyA(),c=a.GetBodyB(),d=b.m_xf,e=c.m_xf,f=d.p,g=e.p,h=a.GetAnchorA(box2d.b2World.prototype.DrawJoint.s_p1),i=a.GetAnchorB(box2d.b2World.prototype.DrawJoint.s_p2),j=box2d.b2World.prototype.DrawJoint.s_color.SetRGB(.5,.8,.8);switch(a.m_type){case box2d.b2JointType.e_distanceJoint:this.m_debugDraw.DrawSegment(h,i,j);break;case box2d.b2JointType.e_pulleyJoint:var k=a instanceof box2d.b2PulleyJoint?a:null,l=k.GetGroundAnchorA(box2d.b2World.prototype.DrawJoint.s_s1),m=k.GetGroundAnchorB(box2d.b2World.prototype.DrawJoint.s_s2);this.m_debugDraw.DrawSegment(l,h,j),this.m_debugDraw.DrawSegment(m,i,j),this.m_debugDraw.DrawSegment(l,m,j);break;case box2d.b2JointType.e_mouseJoint:this.m_debugDraw.DrawSegment(h,i,j);break;default:this.m_debugDraw.DrawSegment(f,h,j),this.m_debugDraw.DrawSegment(h,i,j),this.m_debugDraw.DrawSegment(g,i,j)}},box2d.b2World.prototype.DrawJoint.s_p1=new box2d.b2Vec2,box2d.b2World.prototype.DrawJoint.s_p2=new box2d.b2Vec2,box2d.b2World.prototype.DrawJoint.s_color=new box2d.b2Color(.5,.8,.8),box2d.b2World.prototype.DrawJoint.s_s1=new box2d.b2Vec2,box2d.b2World.prototype.DrawJoint.s_s2=new box2d.b2Vec2,box2d.b2World.prototype.DrawDebugData=function(){if(null!==this.m_debugDraw){var a=this.m_debugDraw.GetFlags(),b=box2d.b2World.prototype.DrawDebugData.s_color.SetRGB(0,0,0);if(a&box2d.b2DrawFlags.e_shapeBit)for(var c=this.m_bodyList;c;c=c.m_next){var d=c.m_xf;this.m_debugDraw.PushTransform(d);for(var e=c.GetFixtureList();e;e=e.m_next)!1===c.IsActive()?(b.SetRGB(.5,.5,.3),this.DrawShape(e,b)):c.GetType()===box2d.b2BodyType.b2_staticBody?(b.SetRGB(.5,.9,.5),this.DrawShape(e,b)):c.GetType()===box2d.b2BodyType.b2_kinematicBody?(b.SetRGB(.5,.5,.9),this.DrawShape(e,b)):!1===c.IsAwake()?(b.SetRGB(.6,.6,.6),this.DrawShape(e,b)):(b.SetRGB(.9,.7,.7),this.DrawShape(e,b));this.m_debugDraw.PopTransform(d)}if(a&box2d.b2DrawFlags.e_jointBit)for(var f=this.m_jointList;f;f=f.m_next)this.DrawJoint(f);if(a&box2d.b2DrawFlags.e_aabbBit){b.SetRGB(.9,.3,.9);for(var g=this.m_contactManager.m_broadPhase,h=box2d.b2World.prototype.DrawDebugData.s_vs,c=this.m_bodyList;c;c=c.m_next)if(!1!==c.IsActive())for(var e=c.GetFixtureList();e;e=e.m_next)for(var i=0;i<e.m_proxyCount;++i){var j=e.m_proxies[i],k=g.GetFatAABB(j.proxy);h[0].SetXY(k.lowerBound.x,k.lowerBound.y),h[1].SetXY(k.upperBound.x,k.lowerBound.y),h[2].SetXY(k.upperBound.x,k.upperBound.y),h[3].SetXY(k.lowerBound.x,k.upperBound.y),this.m_debugDraw.DrawPolygon(h,4,b)}}if(a&box2d.b2DrawFlags.e_centerOfMassBit)for(var c=this.m_bodyList;c;c=c.m_next){var d=box2d.b2World.prototype.DrawDebugData.s_xf;d.q.Copy(c.m_xf.q),d.p.Copy(c.GetWorldCenter()),this.m_debugDraw.DrawTransform(d)}if(a&box2d.b2DrawFlags.e_controllerBit)for(var l=this.m_controllerList;l;l=l.m_next)l.Draw(this.m_debugDraw)}},box2d.b2World.prototype.DrawDebugData.s_color=new box2d.b2Color(0,0,0),box2d.b2World.prototype.DrawDebugData.s_vs=box2d.b2Vec2.MakeArray(4),box2d.b2World.prototype.DrawDebugData.s_xf=new box2d.b2Transform,box2d.b2World.prototype.SetBroadPhase=function(a){var b=this.m_contactManager.m_broadPhase;this.m_contactManager.m_broadPhase=a;for(var c=this.m_bodyList;c;c=c.m_next)for(var d=c.m_fixtureList;d;d=d.m_next)d.m_proxy=a.CreateProxy(b.GetFatAABB(d.m_proxy),d)},box2d.b2World.prototype.GetProxyCount=function(){return this.m_contactManager.m_broadPhase.GetProxyCount()},box2d.b2World.prototype.GetTreeHeight=function(){return this.m_contactManager.m_broadPhase.GetTreeHeight()},box2d.b2World.prototype.GetTreeBalance=function(){return this.m_contactManager.m_broadPhase.GetTreeBalance()},box2d.b2World.prototype.GetTreeQuality=function(){return this.m_contactManager.m_broadPhase.GetTreeQuality()},box2d.b2World.prototype.ShiftOrigin=function(a){if(box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1===this.IsLocked()),!this.IsLocked()){for(var b=this.m_bodyList;b;b=b.m_next)b.m_xf.p.SelfSub(a),b.m_sweep.c0.SelfSub(a),b.m_sweep.c.SelfSub(a);for(var c=this.m_jointList;c;c=c.m_next)c.ShiftOrigin(a);this.m_contactManager.m_broadPhase.ShiftOrigin(a)}},box2d.b2World.prototype.Dump=function(){if(box2d.DEBUG){if((this.m_flags&box2d.b2WorldFlag.e_locked)===box2d.b2WorldFlag.e_locked)return;box2d.b2Log("/** @type {box2d.b2Vec2} */ var g = new box2d.b2Vec2(%.15f, %.15f);\n",this.m_gravity.x,this.m_gravity.y),box2d.b2Log("this.m_world.SetGravity(g);\n"),box2d.b2Log("/** @type {Array.<box2d.b2Body>} */ var bodies = new Array(%d);\n",this.m_bodyCount),box2d.b2Log("/** @type {Array.<box2d.b2Joint>} */ var joints = new Array(%d);\n",this.m_jointCount);for(var a=0,b=this.m_bodyList;b;b=b.m_next)b.m_islandIndex=a,b.Dump(),++a;a=0;for(var c=this.m_jointList;c;c=c.m_next)c.m_index=a,++a;for(var c=this.m_jointList;c;c=c.m_next)c.m_type!==box2d.b2JointType.e_gearJoint&&(box2d.b2Log("if (true)\n"),box2d.b2Log("{\n"),c.Dump(),box2d.b2Log("}\n"));for(var c=this.m_jointList;c;c=c.m_next)c.m_type===box2d.b2JointType.e_gearJoint&&(box2d.b2Log("if (true)\n"),box2d.b2Log("{\n"),c.Dump(),box2d.b2Log("}\n"))}},box2d.b2World.prototype.AddController=function(a){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(null===a.m_world,"Controller can only be a member of one world"),a.m_world=this,a.m_next=this.m_controllerList,a.m_prev=null,this.m_controllerList&&(this.m_controllerList.m_prev=a),this.m_controllerList=a,++this.m_controllerCount,a},box2d.b2World.prototype.RemoveController=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.m_world===this,"Controller is not a member of this world"),a.m_prev&&(a.m_prev.m_next=a.m_next),a.m_next&&(a.m_next.m_prev=a.m_prev),this.m_controllerList===a&&(this.m_controllerList=a.m_next),--this.m_controllerCount,a.m_prev=null,a.m_next=null,a.m_world=null},goog.provide("box2d.b2AreaJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),box2d.b2AreaJointDef=function(){goog.base(this,box2d.b2JointType.e_areaJoint),this.bodies=new Array},goog.inherits(box2d.b2AreaJointDef,box2d.b2JointDef),box2d.b2AreaJointDef.prototype.world=null,box2d.b2AreaJointDef.prototype.bodies=null,box2d.b2AreaJointDef.prototype.frequencyHz=0,box2d.b2AreaJointDef.prototype.dampingRatio=0,box2d.b2AreaJointDef.prototype.AddBody=function(a){this.bodies.push(a),1===this.bodies.length?this.bodyA=a:2===this.bodies.length&&(this.bodyB=a)},box2d.b2AreaJoint=function(a){goog.base(this,a),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.bodies.length>=3,"You cannot create an area joint with less than three bodies."),this.m_bodies=a.bodies,this.m_frequencyHz=a.frequencyHz,this.m_dampingRatio=a.dampingRatio,this.m_targetLengths=box2d.b2MakeNumberArray(a.bodies.length),this.m_normals=box2d.b2Vec2.MakeArray(a.bodies.length),this.m_joints=new Array(a.bodies.length),this.m_deltas=box2d.b2Vec2.MakeArray(a.bodies.length),this.m_delta=new box2d.b2Vec2;var b=new box2d.b2DistanceJointDef;b.frequencyHz=a.frequencyHz,b.dampingRatio=a.dampingRatio,this.m_targetArea=0;for(var c=0,d=this.m_bodies.length;c<d;++c){var e=this.m_bodies[c],f=this.m_bodies[(c+1)%d],g=e.GetWorldCenter(),h=f.GetWorldCenter();this.m_targetLengths[c]=box2d.b2DistanceVV(g,h),this.m_targetArea+=box2d.b2CrossVV(g,h),b.Initialize(e,f,g,h),this.m_joints[c]=a.world.CreateJoint(b)}this.m_targetArea*=.5},goog.inherits(box2d.b2AreaJoint,box2d.b2Joint),box2d.b2AreaJoint.prototype.m_bodies=null,box2d.b2AreaJoint.prototype.m_frequencyHz=0,box2d.b2AreaJoint.prototype.m_dampingRatio=0,box2d.b2AreaJoint.prototype.m_impulse=0,box2d.b2AreaJoint.prototype.m_targetLengths=null,box2d.b2AreaJoint.prototype.m_targetArea=0,box2d.b2AreaJoint.prototype.m_normals=null,box2d.b2AreaJoint.prototype.m_joints=null,box2d.b2AreaJoint.prototype.m_deltas=null,box2d.b2AreaJoint.prototype.m_delta=null,box2d.b2AreaJoint.prototype.GetAnchorA=function(a){return a.SetZero()},box2d.b2AreaJoint.prototype.GetAnchorB=function(a){return a.SetZero()},box2d.b2AreaJoint.prototype.GetReactionForce=function(a,b){return b.SetZero()},box2d.b2AreaJoint.prototype.GetReactionTorque=function(a){return 0},box2d.b2AreaJoint.prototype.SetFrequency=function(a){this.m_frequencyHz=a;for(var b=0,c=this.m_joints.length;b<c;++b)this.m_joints[b].SetFrequency(a)},box2d.b2AreaJoint.prototype.GetFrequency=function(){return this.m_frequencyHz},box2d.b2AreaJoint.prototype.SetDampingRatio=function(a){this.m_dampingRatio=a;for(var b=0,c=this.m_joints.length;b<c;++b)this.m_joints[b].SetDampingRatio(a)},box2d.b2AreaJoint.prototype.GetDampingRatio=function(){return this.m_dampingRatio},box2d.b2AreaJoint.prototype.Dump=function(){box2d.DEBUG&&box2d.b2Log("Area joint dumping is not supported.\n")},box2d.b2AreaJoint.prototype.InitVelocityConstraints=function(a){for(var b=0,c=this.m_bodies.length;b<c;++b){var d=this.m_bodies[(b+c-1)%c],e=this.m_bodies[(b+1)%c],f=a.positions[d.m_islandIndex].c,g=a.positions[e.m_islandIndex].c,h=this.m_deltas[b];box2d.b2SubVV(g,f,h)}if(a.step.warmStarting){this.m_impulse*=a.step.dtRatio;for(var b=0,c=this.m_bodies.length;b<c;++b){var i=this.m_bodies[b],j=a.velocities[i.m_islandIndex].v,h=this.m_deltas[b];j.x+=i.m_invMass*h.y*.5*this.m_impulse,j.y+=i.m_invMass*-h.x*.5*this.m_impulse}}else this.m_impulse=0},box2d.b2AreaJoint.prototype.SolveVelocityConstraints=function(a){for(var b=0,c=0,d=0,e=this.m_bodies.length;d<e;++d){var f=this.m_bodies[d],g=a.velocities[f.m_islandIndex].v,h=this.m_deltas[d];b+=h.GetLengthSquared()/f.GetMass(),c+=box2d.b2CrossVV(g,h)}var i=-2*c/b;this.m_impulse+=i;for(var d=0,e=this.m_bodies.length;d<e;++d){var f=this.m_bodies[d],g=a.velocities[f.m_islandIndex].v,h=this.m_deltas[d];g.x+=f.m_invMass*h.y*.5*i,g.y+=f.m_invMass*-h.x*.5*i}},box2d.b2AreaJoint.prototype.SolvePositionConstraints=function(a){for(var b=0,c=0,d=0,e=this.m_bodies.length;d<e;++d){var f=this.m_bodies[d],g=this.m_bodies[(d+1)%e],h=a.positions[f.m_islandIndex].c,i=a.positions[g.m_islandIndex].c,j=box2d.b2SubVV(i,h,this.m_delta),k=j.GetLength();k<box2d.b2_epsilon&&(k=1),this.m_normals[d].x=j.y/k,this.m_normals[d].y=-j.x/k,b+=k,c+=box2d.b2CrossVV(h,i)}c*=.5;for(var l=this.m_targetArea-c,m=.5*l/b,n=!0,d=0,e=this.m_bodies.length;d<e;++d){var f=this.m_bodies[d],h=a.positions[f.m_islandIndex].c,o=(d+1)%e,j=box2d.b2AddVV(this.m_normals[d],this.m_normals[o],this.m_delta);j.SelfMul(m);var p=j.GetLengthSquared();p>box2d.b2Sq(box2d.b2_maxLinearCorrection)&&j.SelfMul(box2d.b2_maxLinearCorrection/box2d.b2Sqrt(p)),p>box2d.b2Sq(box2d.b2_linearSlop)&&(n=!1),h.x+=j.x,h.y+=j.y}return n},goog.provide("box2d.b2BuoyancyController"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Controller"),goog.require("box2d.b2Math"),goog.require("box2d.b2WorldCallbacks"),box2d.b2BuoyancyController=function(){goog.base(this),this.normal=new box2d.b2Vec2(0,1),this.velocity=new box2d.b2Vec2(0,0),this.gravity=new box2d.b2Vec2(0,0)},goog.inherits(box2d.b2BuoyancyController,box2d.b2Controller),box2d.b2BuoyancyController.prototype.normal=null,box2d.b2BuoyancyController.prototype.offset=0,box2d.b2BuoyancyController.prototype.density=0,box2d.b2BuoyancyController.prototype.velocity=null,box2d.b2BuoyancyController.prototype.linearDrag=0,box2d.b2BuoyancyController.prototype.angularDrag=0,box2d.b2BuoyancyController.prototype.useDensity=!1,box2d.b2BuoyancyController.prototype.useWorldGravity=!0,box2d.b2BuoyancyController.prototype.gravity=null,box2d.b2BuoyancyController.prototype.Step=function(a){if(this.m_bodyList){this.useWorldGravity&&this.gravity.Copy(this.GetWorld().GetGravity());for(var b=this.m_bodyList;b;b=b.nextBody){var c=b.body;if(!1!==c.IsAwake()){for(var d=new box2d.b2Vec2,e=new box2d.b2Vec2,f=0,g=0,h=c.GetFixtureList();h;h=h.m_next){var i=new box2d.b2Vec2,j=h.GetShape().ComputeSubmergedArea(this.normal,this.offset,c.GetTransform(),i);f+=j,d.x+=j*i.x,d.y+=j*i.y;var k=0;k=this.useDensity?h.GetDensity():1,g+=j*k,e.x+=j*i.x*k,e.y+=j*i.y*k}if(d.x/=f,d.y/=f,e.x/=g,e.y/=g,!(f<box2d.b2_epsilon)){var l=box2d.b2NegV(this.gravity,new box2d.b2Vec2);l.SelfMul(this.density*f),c.ApplyForce(l,e);var m=c.GetLinearVelocityFromWorldPoint(d,new box2d.b2Vec2);m.SelfSub(this.velocity),m.SelfMul(-this.linearDrag*f),c.ApplyForce(m,d),c.ApplyTorque(-c.GetInertia()/c.GetMass()*f*c.GetAngularVelocity()*this.angularDrag)}}}}},box2d.b2BuoyancyController.prototype.Draw=function(a){var b=100,c=new box2d.b2Vec2,d=new box2d.b2Vec2;c.x=this.normal.x*this.offset+this.normal.y*b,c.y=this.normal.y*this.offset-this.normal.x*b,d.x=this.normal.x*this.offset-this.normal.y*b,d.y=this.normal.y*this.offset+this.normal.x*b;var e=new box2d.b2Color(0,0,.8);a.DrawSegment(c,d,e)},goog.provide("box2d.b2TensorDampingController"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Controller"),goog.require("box2d.b2Math"),box2d.b2TensorDampingController=function(){goog.base(this),this.T=new box2d.b2Mat22,this.maxTimestep=0},goog.inherits(box2d.b2TensorDampingController,box2d.b2Controller),box2d.b2TensorDampingController.prototype.T=new box2d.b2Mat22,box2d.b2TensorDampingController.prototype.maxTimestep=0,box2d.b2TensorDampingController.prototype.Step=function(a){var b=a.dt;if(!(b<=box2d.b2_epsilon)){b>this.maxTimestep&&this.maxTimestep>0&&(b=this.maxTimestep);for(var c=this.m_bodyList;c;c=c.nextBody){var d=c.body;if(d.IsAwake()){var e=d.GetWorldVector(box2d.b2MulMV(this.T,d.GetLocalVector(d.GetLinearVelocity(),box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t1),box2d.b2TensorDampingController.prototype.Step.s_damping);d.SetLinearVelocity(box2d.b2AddVV(d.GetLinearVelocity(),box2d.b2MulSV(b,e,box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t1))}}}},box2d.b2TensorDampingController.prototype.Step.s_damping=new box2d.b2Vec2,box2d.b2TensorDampingController.prototype.SetAxisAligned=function(a,b){this.T.ex.x=-a,this.T.ex.y=0,this.T.ey.x=0,this.T.ey.y=-b,this.maxTimestep=a>0||b>0?1/box2d.b2Max(a,b):0},goog.provide("box2d.b2DistanceJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),box2d.b2DistanceJointDef=function(){goog.base(this,box2d.b2JointType.e_distanceJoint),this.localAnchorA=new box2d.b2Vec2,this.localAnchorB=new box2d.b2Vec2},goog.inherits(box2d.b2DistanceJointDef,box2d.b2JointDef),box2d.b2DistanceJointDef.prototype.localAnchorA=null,box2d.b2DistanceJointDef.prototype.localAnchorB=null,box2d.b2DistanceJointDef.prototype.length=1,box2d.b2DistanceJointDef.prototype.frequencyHz=0,box2d.b2DistanceJointDef.prototype.dampingRatio=0,box2d.b2DistanceJointDef.prototype.Initialize=function(a,b,c,d){this.bodyA=a,this.bodyB=b,this.bodyA.GetLocalPoint(c,this.localAnchorA),this.bodyB.GetLocalPoint(d,this.localAnchorB),this.length=box2d.b2DistanceVV(c,d),this.frequencyHz=0,this.dampingRatio=0},box2d.b2DistanceJoint=function(a){goog.base(this,a),this.m_u=new box2d.b2Vec2,this.m_rA=new box2d.b2Vec2,this.m_rB=new box2d.b2Vec2,this.m_localCenterA=new box2d.b2Vec2,this.m_localCenterB=new box2d.b2Vec2,this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_lalcA=new box2d.b2Vec2,this.m_lalcB=new box2d.b2Vec2,this.m_frequencyHz=a.frequencyHz,this.m_dampingRatio=a.dampingRatio,this.m_localAnchorA=a.localAnchorA.Clone(),this.m_localAnchorB=a.localAnchorB.Clone(),this.m_length=a.length},goog.inherits(box2d.b2DistanceJoint,box2d.b2Joint);box2d.b2DistanceJoint.prototype.m_frequencyHz=0,box2d.b2DistanceJoint.prototype.m_dampingRatio=0,box2d.b2DistanceJoint.prototype.m_bias=0,box2d.b2DistanceJoint.prototype.m_localAnchorA=null,box2d.b2DistanceJoint.prototype.m_localAnchorB=null,box2d.b2DistanceJoint.prototype.m_gamma=0,box2d.b2DistanceJoint.prototype.m_impulse=0,box2d.b2DistanceJoint.prototype.m_length=0,box2d.b2DistanceJoint.prototype.m_indexA=0,box2d.b2DistanceJoint.prototype.m_indexB=0,box2d.b2DistanceJoint.prototype.m_u=null,box2d.b2DistanceJoint.prototype.m_rA=null,box2d.b2DistanceJoint.prototype.m_rB=null,box2d.b2DistanceJoint.prototype.m_localCenterA=null,box2d.b2DistanceJoint.prototype.m_localCenterB=null,box2d.b2DistanceJoint.prototype.m_invMassA=0,box2d.b2DistanceJoint.prototype.m_invMassB=0,box2d.b2DistanceJoint.prototype.m_invIA=0,box2d.b2DistanceJoint.prototype.m_invIB=0,box2d.b2DistanceJoint.prototype.m_mass=0,box2d.b2DistanceJoint.prototype.m_qA=null,box2d.b2DistanceJoint.prototype.m_qB=null,box2d.b2DistanceJoint.prototype.m_lalcA=null,box2d.b2DistanceJoint.prototype.m_lalcB=null,box2d.b2DistanceJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,a)},box2d.b2DistanceJoint.prototype.GetAnchorB=function(a){
|
||
return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2DistanceJoint.prototype.GetReactionForce=function(a,b){return b.SetXY(a*this.m_impulse*this.m_u.x,a*this.m_impulse*this.m_u.y)},box2d.b2DistanceJoint.prototype.GetReactionTorque=function(a){return 0},box2d.b2DistanceJoint.prototype.GetLocalAnchorA=function(a){return a.Copy(this.m_localAnchorA)},box2d.b2DistanceJoint.prototype.GetLocalAnchorB=function(a){return a.Copy(this.m_localAnchorB)},box2d.b2DistanceJoint.prototype.SetLength=function(a){this.m_length=a},box2d.b2DistanceJoint.prototype.GetLength=function(){return this.m_length},box2d.b2DistanceJoint.prototype.SetFrequency=function(a){this.m_frequencyHz=a},box2d.b2DistanceJoint.prototype.GetFrequency=function(){return this.m_frequencyHz},box2d.b2DistanceJoint.prototype.SetDampingRatio=function(a){this.m_dampingRatio=a},box2d.b2DistanceJoint.prototype.GetDampingRatio=function(){return this.m_dampingRatio},box2d.b2DistanceJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex;box2d.b2Log(" /*box2d.b2DistanceJointDef*/ var jd = new box2d.b2DistanceJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.localAnchorA.SetXY(%.15f, %.15f);\n",this.m_localAnchorA.x,this.m_localAnchorA.y),box2d.b2Log(" jd.localAnchorB.SetXY(%.15f, %.15f);\n",this.m_localAnchorB.x,this.m_localAnchorB.y),box2d.b2Log(" jd.length = %.15f;\n",this.m_length),box2d.b2Log(" jd.frequencyHz = %.15f;\n",this.m_frequencyHz),box2d.b2Log(" jd.dampingRatio = %.15f;\n",this.m_dampingRatio),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},box2d.b2DistanceJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassA=this.m_bodyA.m_invMass,this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIA=this.m_bodyA.m_invI,this.m_invIB=this.m_bodyB.m_invI;var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.velocities[this.m_indexA].v,e=a.velocities[this.m_indexA].w,f=a.positions[this.m_indexB].c,g=a.positions[this.m_indexB].a,h=a.velocities[this.m_indexB].v,i=a.velocities[this.m_indexB].w,j=this.m_qA.SetAngleRadians(c),k=this.m_qB.SetAngleRadians(g);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA),box2d.b2MulRV(j,this.m_lalcA,this.m_rA),box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),box2d.b2MulRV(k,this.m_lalcB,this.m_rB),this.m_u.x=f.x+this.m_rB.x-b.x-this.m_rA.x,this.m_u.y=f.y+this.m_rB.y-b.y-this.m_rA.y;var l=this.m_u.GetLength();l>box2d.b2_linearSlop?this.m_u.SelfMul(1/l):this.m_u.SetZero();var m=box2d.b2CrossVV(this.m_rA,this.m_u),n=box2d.b2CrossVV(this.m_rB,this.m_u),o=this.m_invMassA+this.m_invIA*m*m+this.m_invMassB+this.m_invIB*n*n;if(this.m_mass=0!==o?1/o:0,this.m_frequencyHz>0){var p=l-this.m_length,q=2*box2d.b2_pi*this.m_frequencyHz,r=2*this.m_mass*this.m_dampingRatio*q,s=this.m_mass*q*q,t=a.step.dt;this.m_gamma=t*(r+t*s),this.m_gamma=0!==this.m_gamma?1/this.m_gamma:0,this.m_bias=p*t*s*this.m_gamma,o+=this.m_gamma,this.m_mass=0!==o?1/o:0}else this.m_gamma=0,this.m_bias=0;if(a.step.warmStarting){this.m_impulse*=a.step.dtRatio;var u=box2d.b2MulSV(this.m_impulse,this.m_u,box2d.b2DistanceJoint.prototype.InitVelocityConstraints.s_P);d.SelfMulSub(this.m_invMassA,u),e-=this.m_invIA*box2d.b2CrossVV(this.m_rA,u),h.SelfMulAdd(this.m_invMassB,u),i+=this.m_invIB*box2d.b2CrossVV(this.m_rB,u)}else this.m_impulse=0;a.velocities[this.m_indexA].w=e,a.velocities[this.m_indexB].w=i},box2d.b2DistanceJoint.prototype.InitVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2DistanceJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexA].v,c=a.velocities[this.m_indexA].w,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=box2d.b2AddVCrossSV(b,c,this.m_rA,box2d.b2DistanceJoint.prototype.SolveVelocityConstraints.s_vpA),g=box2d.b2AddVCrossSV(d,e,this.m_rB,box2d.b2DistanceJoint.prototype.SolveVelocityConstraints.s_vpB),h=box2d.b2DotVV(this.m_u,box2d.b2SubVV(g,f,box2d.b2Vec2.s_t0)),i=-this.m_mass*(h+this.m_bias+this.m_gamma*this.m_impulse);this.m_impulse+=i;var j=box2d.b2MulSV(i,this.m_u,box2d.b2DistanceJoint.prototype.SolveVelocityConstraints.s_P);b.SelfMulSub(this.m_invMassA,j),c-=this.m_invIA*box2d.b2CrossVV(this.m_rA,j),d.SelfMulAdd(this.m_invMassB,j),e+=this.m_invIB*box2d.b2CrossVV(this.m_rB,j),a.velocities[this.m_indexA].w=c,a.velocities[this.m_indexB].w=e},box2d.b2DistanceJoint.prototype.SolveVelocityConstraints.s_vpA=new box2d.b2Vec2,box2d.b2DistanceJoint.prototype.SolveVelocityConstraints.s_vpB=new box2d.b2Vec2,box2d.b2DistanceJoint.prototype.SolveVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2DistanceJoint.prototype.SolvePositionConstraints=function(a){if(this.m_frequencyHz>0)return!0;var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.positions[this.m_indexB].c,e=a.positions[this.m_indexB].a,f=(this.m_qA.SetAngleRadians(c),this.m_qB.SetAngleRadians(e),box2d.b2MulRV(this.m_qA,this.m_lalcA,this.m_rA)),g=box2d.b2MulRV(this.m_qB,this.m_lalcB,this.m_rB),h=this.m_u;h.x=d.x+g.x-b.x-f.x,h.y=d.y+g.y-b.y-f.y;var i=this.m_u.Normalize(),j=i-this.m_length;j=box2d.b2Clamp(j,-box2d.b2_maxLinearCorrection,box2d.b2_maxLinearCorrection);var k=-this.m_mass*j,l=box2d.b2MulSV(k,h,box2d.b2DistanceJoint.prototype.SolvePositionConstraints.s_P);return b.SelfMulSub(this.m_invMassA,l),c-=this.m_invIA*box2d.b2CrossVV(f,l),d.SelfMulAdd(this.m_invMassB,l),e+=this.m_invIB*box2d.b2CrossVV(g,l),a.positions[this.m_indexA].a=c,a.positions[this.m_indexB].a=e,box2d.b2Abs(j)<box2d.b2_linearSlop},box2d.b2DistanceJoint.prototype.SolvePositionConstraints.s_P=new box2d.b2Vec2,goog.provide("box2d.b2FrictionJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),box2d.b2FrictionJointDef=function(){goog.base(this,box2d.b2JointType.e_frictionJoint),this.localAnchorA=new box2d.b2Vec2,this.localAnchorB=new box2d.b2Vec2},goog.inherits(box2d.b2FrictionJointDef,box2d.b2JointDef),box2d.b2FrictionJointDef.prototype.localAnchorA=null,box2d.b2FrictionJointDef.prototype.localAnchorB=null,box2d.b2FrictionJointDef.prototype.maxForce=0,box2d.b2FrictionJointDef.prototype.maxTorque=0,box2d.b2FrictionJointDef.prototype.Initialize=function(a,b,c){this.bodyA=a,this.bodyB=b,this.bodyA.GetLocalPoint(c,this.localAnchorA),this.bodyB.GetLocalPoint(c,this.localAnchorB)},box2d.b2FrictionJoint=function(a){goog.base(this,a),this.m_localAnchorA=a.localAnchorA.Clone(),this.m_localAnchorB=a.localAnchorB.Clone(),this.m_linearImpulse=(new box2d.b2Vec2).SetZero(),this.m_maxForce=a.maxForce,this.m_maxTorque=a.maxTorque,this.m_rA=new box2d.b2Vec2,this.m_rB=new box2d.b2Vec2,this.m_localCenterA=new box2d.b2Vec2,this.m_localCenterB=new box2d.b2Vec2,this.m_linearMass=(new box2d.b2Mat22).SetZero(),this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_lalcA=new box2d.b2Vec2,this.m_lalcB=new box2d.b2Vec2,this.m_K=new box2d.b2Mat22},goog.inherits(box2d.b2FrictionJoint,box2d.b2Joint),box2d.b2FrictionJoint.prototype.m_localAnchorA=null,box2d.b2FrictionJoint.prototype.m_localAnchorB=null,box2d.b2FrictionJoint.prototype.m_linearImpulse=null,box2d.b2FrictionJoint.prototype.m_angularImpulse=0,box2d.b2FrictionJoint.prototype.m_maxForce=0,box2d.b2FrictionJoint.prototype.m_maxTorque=0,box2d.b2FrictionJoint.prototype.m_indexA=0,box2d.b2FrictionJoint.prototype.m_indexB=0,box2d.b2FrictionJoint.prototype.m_rA=null,box2d.b2FrictionJoint.prototype.m_rB=null,box2d.b2FrictionJoint.prototype.m_localCenterA=null,box2d.b2FrictionJoint.prototype.m_localCenterB=null,box2d.b2FrictionJoint.prototype.m_invMassA=0,box2d.b2FrictionJoint.prototype.m_invMassB=0,box2d.b2FrictionJoint.prototype.m_invIA=0,box2d.b2FrictionJoint.prototype.m_invIB=0,box2d.b2FrictionJoint.prototype.m_linearMass=null,box2d.b2FrictionJoint.prototype.m_angularMass=0,box2d.b2FrictionJoint.prototype.m_qA=null,box2d.b2FrictionJoint.prototype.m_qB=null,box2d.b2FrictionJoint.prototype.m_lalcA=null,box2d.b2FrictionJoint.prototype.m_lalcB=null,box2d.b2FrictionJoint.prototype.m_K=null,box2d.b2FrictionJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassA=this.m_bodyA.m_invMass,this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIA=this.m_bodyA.m_invI,this.m_invIB=this.m_bodyB.m_invI;var b=a.positions[this.m_indexA].a,c=a.velocities[this.m_indexA].v,d=a.velocities[this.m_indexA].w,e=a.positions[this.m_indexB].a,f=a.velocities[this.m_indexB].v,g=a.velocities[this.m_indexB].w,h=this.m_qA.SetAngleRadians(b),i=this.m_qB.SetAngleRadians(e);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var j=box2d.b2MulRV(h,this.m_lalcA,this.m_rA);box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var k=box2d.b2MulRV(i,this.m_lalcB,this.m_rB),l=this.m_invMassA,m=this.m_invMassB,n=this.m_invIA,o=this.m_invIB,p=this.m_K;if(p.ex.x=l+m+n*j.y*j.y+o*k.y*k.y,p.ex.y=-n*j.x*j.y-o*k.x*k.y,p.ey.x=p.ex.y,p.ey.y=l+m+n*j.x*j.x+o*k.x*k.x,p.GetInverse(this.m_linearMass),this.m_angularMass=n+o,this.m_angularMass>0&&(this.m_angularMass=1/this.m_angularMass),a.step.warmStarting){this.m_linearImpulse.SelfMul(a.step.dtRatio),this.m_angularImpulse*=a.step.dtRatio;var q=this.m_linearImpulse;c.SelfMulSub(l,q),d-=n*(box2d.b2CrossVV(this.m_rA,q)+this.m_angularImpulse),f.SelfMulAdd(m,q),g+=o*(box2d.b2CrossVV(this.m_rB,q)+this.m_angularImpulse)}else this.m_linearImpulse.SetZero(),this.m_angularImpulse=0;a.velocities[this.m_indexA].w=d,a.velocities[this.m_indexB].w=g},box2d.b2FrictionJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexA].v,c=a.velocities[this.m_indexA].w,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=this.m_invMassA,g=this.m_invMassB,h=this.m_invIA,i=this.m_invIB,j=a.step.dt,k=e-c,l=-this.m_angularMass*k,m=this.m_angularImpulse,n=j*this.m_maxTorque;this.m_angularImpulse=box2d.b2Clamp(this.m_angularImpulse+l,-n,n),l=this.m_angularImpulse-m,c-=h*l,e+=i*l;var k=box2d.b2SubVV(box2d.b2AddVCrossSV(d,e,this.m_rB,box2d.b2Vec2.s_t0),box2d.b2AddVCrossSV(b,c,this.m_rA,box2d.b2Vec2.s_t1),box2d.b2FrictionJoint.prototype.SolveVelocityConstraints.s_Cdot),o=box2d.b2MulMV(this.m_linearMass,k,box2d.b2FrictionJoint.prototype.SolveVelocityConstraints.s_impulseV).SelfNeg(),p=box2d.b2FrictionJoint.prototype.SolveVelocityConstraints.s_oldImpulseV.Copy(this.m_linearImpulse);this.m_linearImpulse.SelfAdd(o);var n=j*this.m_maxForce;this.m_linearImpulse.GetLengthSquared()>n*n&&(this.m_linearImpulse.Normalize(),this.m_linearImpulse.SelfMul(n)),box2d.b2SubVV(this.m_linearImpulse,p,o),b.SelfMulSub(f,o),c-=h*box2d.b2CrossVV(this.m_rA,o),d.SelfMulAdd(g,o),e+=i*box2d.b2CrossVV(this.m_rB,o),a.velocities[this.m_indexA].w=c,a.velocities[this.m_indexB].w=e},box2d.b2FrictionJoint.prototype.SolveVelocityConstraints.s_Cdot=new box2d.b2Vec2,box2d.b2FrictionJoint.prototype.SolveVelocityConstraints.s_impulseV=new box2d.b2Vec2,box2d.b2FrictionJoint.prototype.SolveVelocityConstraints.s_oldImpulseV=new box2d.b2Vec2,box2d.b2FrictionJoint.prototype.SolvePositionConstraints=function(a){return!0},box2d.b2FrictionJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,a)},box2d.b2FrictionJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2FrictionJoint.prototype.GetReactionForce=function(a,b){return b.SetXY(a*this.m_linearImpulse.x,a*this.m_linearImpulse.y)},box2d.b2FrictionJoint.prototype.GetReactionTorque=function(a){return a*this.m_angularImpulse},box2d.b2FrictionJoint.prototype.GetLocalAnchorA=function(a){return a.Copy(this.m_localAnchorA)},box2d.b2FrictionJoint.prototype.GetLocalAnchorB=function(a){return a.Copy(this.m_localAnchorB)},box2d.b2FrictionJoint.prototype.SetMaxForce=function(a){this.m_maxForce=a},box2d.b2FrictionJoint.prototype.GetMaxForce=function(){return this.m_maxForce},box2d.b2FrictionJoint.prototype.SetMaxTorque=function(a){this.m_maxTorque=a},box2d.b2FrictionJoint.prototype.GetMaxTorque=function(){return this.m_maxTorque},box2d.b2FrictionJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex;box2d.b2Log(" /*box2d.b2FrictionJointDef*/ var jd = new box2d.b2FrictionJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.localAnchorA.SetXY(%.15f, %.15f);\n",this.m_localAnchorA.x,this.m_localAnchorA.y),box2d.b2Log(" jd.localAnchorB.SetXY(%.15f, %.15f);\n",this.m_localAnchorB.x,this.m_localAnchorB.y),box2d.b2Log(" jd.maxForce = %.15f;\n",this.m_maxForce),box2d.b2Log(" jd.maxTorque = %.15f;\n",this.m_maxTorque),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},goog.provide("box2d.b2MouseJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),box2d.b2MouseJointDef=function(){goog.base(this,box2d.b2JointType.e_mouseJoint),this.target=new box2d.b2Vec2},goog.inherits(box2d.b2MouseJointDef,box2d.b2JointDef),box2d.b2MouseJointDef.prototype.target=null,box2d.b2MouseJointDef.prototype.maxForce=0,box2d.b2MouseJointDef.prototype.frequencyHz=5,box2d.b2MouseJointDef.prototype.dampingRatio=.7,box2d.b2MouseJoint=function(a){goog.base(this,a),this.m_localAnchorB=new box2d.b2Vec2,this.m_targetA=new box2d.b2Vec2,this.m_impulse=new box2d.b2Vec2,this.m_rB=new box2d.b2Vec2,this.m_localCenterB=new box2d.b2Vec2,this.m_mass=new box2d.b2Mat22,this.m_C=new box2d.b2Vec2,this.m_qB=new box2d.b2Rot,this.m_lalcB=new box2d.b2Vec2,this.m_K=new box2d.b2Mat22,box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.target.IsValid()),box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a.maxForce)&&a.maxForce>=0),box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a.frequencyHz)&&a.frequencyHz>=0),box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a.dampingRatio)&&a.dampingRatio>=0),this.m_targetA.Copy(a.target),box2d.b2MulTXV(this.m_bodyB.GetTransform(),this.m_targetA,this.m_localAnchorB),this.m_maxForce=a.maxForce,this.m_impulse.SetZero(),this.m_frequencyHz=a.frequencyHz,this.m_dampingRatio=a.dampingRatio,this.m_beta=0,this.m_gamma=0},goog.inherits(box2d.b2MouseJoint,box2d.b2Joint),box2d.b2MouseJoint.prototype.m_localAnchorB=null,box2d.b2MouseJoint.prototype.m_targetA=null,box2d.b2MouseJoint.prototype.m_frequencyHz=0,box2d.b2MouseJoint.prototype.m_dampingRatio=0,box2d.b2MouseJoint.prototype.m_beta=0,box2d.b2MouseJoint.prototype.m_impulse=null,box2d.b2MouseJoint.prototype.m_maxForce=0,box2d.b2MouseJoint.prototype.m_gamma=0,box2d.b2MouseJoint.prototype.m_indexA=0,box2d.b2MouseJoint.prototype.m_indexB=0,box2d.b2MouseJoint.prototype.m_rB=null,box2d.b2MouseJoint.prototype.m_localCenterB=null,box2d.b2MouseJoint.prototype.m_invMassB=0,box2d.b2MouseJoint.prototype.m_invIB=0,box2d.b2MouseJoint.prototype.m_mass=null,box2d.b2MouseJoint.prototype.m_C=null,box2d.b2MouseJoint.prototype.m_qB=null,box2d.b2MouseJoint.prototype.m_lalcB=null,box2d.b2MouseJoint.prototype.m_K=null,box2d.b2MouseJoint.prototype.SetTarget=function(a){!1===this.m_bodyB.IsAwake()&&this.m_bodyB.SetAwake(!0),this.m_targetA.Copy(a)},box2d.b2MouseJoint.prototype.GetTarget=function(a){return a.Copy(this.m_targetA)},box2d.b2MouseJoint.prototype.SetMaxForce=function(a){this.m_maxForce=a},box2d.b2MouseJoint.prototype.GetMaxForce=function(){return this.m_maxForce},box2d.b2MouseJoint.prototype.SetFrequency=function(a){this.m_frequencyHz=a},box2d.b2MouseJoint.prototype.GetFrequency=function(){return this.m_frequencyHz},box2d.b2MouseJoint.prototype.SetDampingRatio=function(a){this.m_dampingRatio=a},box2d.b2MouseJoint.prototype.GetDampingRatio=function(){return this.m_dampingRatio},box2d.b2MouseJoint.prototype.InitVelocityConstraints=function(a){this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIB=this.m_bodyB.m_invI;var b=a.positions[this.m_indexB].c,c=a.positions[this.m_indexB].a,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=this.m_qB.SetAngleRadians(c),g=this.m_bodyB.GetMass(),h=2*box2d.b2_pi*this.m_frequencyHz,i=2*g*this.m_dampingRatio*h,j=g*(h*h),k=a.step.dt;box2d.ENABLE_ASSERTS&&box2d.b2Assert(i+k*j>box2d.b2_epsilon),this.m_gamma=k*(i+k*j),0!==this.m_gamma&&(this.m_gamma=1/this.m_gamma),this.m_beta=k*j*this.m_gamma,box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),box2d.b2MulRV(f,this.m_lalcB,this.m_rB);var l=this.m_K;l.ex.x=this.m_invMassB+this.m_invIB*this.m_rB.y*this.m_rB.y+this.m_gamma,l.ex.y=-this.m_invIB*this.m_rB.x*this.m_rB.y,l.ey.x=l.ex.y,l.ey.y=this.m_invMassB+this.m_invIB*this.m_rB.x*this.m_rB.x+this.m_gamma,l.GetInverse(this.m_mass),this.m_C.x=b.x+this.m_rB.x-this.m_targetA.x,this.m_C.y=b.y+this.m_rB.y-this.m_targetA.y,this.m_C.SelfMul(this.m_beta),e*=.98,a.step.warmStarting?(this.m_impulse.SelfMul(a.step.dtRatio),d.x+=this.m_invMassB*this.m_impulse.x,d.y+=this.m_invMassB*this.m_impulse.y,e+=this.m_invIB*box2d.b2CrossVV(this.m_rB,this.m_impulse)):this.m_impulse.SetZero(),a.velocities[this.m_indexB].w=e},box2d.b2MouseJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexB].v,c=a.velocities[this.m_indexB].w,d=box2d.b2AddVCrossSV(b,c,this.m_rB,box2d.b2MouseJoint.prototype.SolveVelocityConstraints.s_Cdot),e=box2d.b2MulMV(this.m_mass,box2d.b2AddVV(d,box2d.b2AddVV(this.m_C,box2d.b2MulSV(this.m_gamma,this.m_impulse,box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t0).SelfNeg(),box2d.b2MouseJoint.prototype.SolveVelocityConstraints.s_impulse),f=box2d.b2MouseJoint.prototype.SolveVelocityConstraints.s_oldImpulse.Copy(this.m_impulse);this.m_impulse.SelfAdd(e);var g=a.step.dt*this.m_maxForce;this.m_impulse.GetLengthSquared()>g*g&&this.m_impulse.SelfMul(g/this.m_impulse.GetLength()),box2d.b2SubVV(this.m_impulse,f,e),b.SelfMulAdd(this.m_invMassB,e),c+=this.m_invIB*box2d.b2CrossVV(this.m_rB,e),a.velocities[this.m_indexB].w=c},box2d.b2MouseJoint.prototype.SolveVelocityConstraints.s_Cdot=new box2d.b2Vec2,box2d.b2MouseJoint.prototype.SolveVelocityConstraints.s_impulse=new box2d.b2Vec2,box2d.b2MouseJoint.prototype.SolveVelocityConstraints.s_oldImpulse=new box2d.b2Vec2,box2d.b2MouseJoint.prototype.SolvePositionConstraints=function(a){return!0},box2d.b2MouseJoint.prototype.GetAnchorA=function(a){return a.Copy(this.m_targetA)},box2d.b2MouseJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2MouseJoint.prototype.GetReactionForce=function(a,b){return box2d.b2MulSV(a,this.m_impulse,b)},box2d.b2MouseJoint.prototype.GetReactionTorque=function(a){return 0},box2d.b2MouseJoint.prototype.Dump=function(){box2d.DEBUG&&box2d.b2Log("Mouse joint dumping is not supported.\n")},box2d.b2MouseJoint.prototype.ShiftOrigin=function(a){this.m_targetA.SelfSub(a)},goog.provide("box2d.b2ConstantForceController"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Controller"),goog.require("box2d.b2Math"),box2d.b2ConstantForceController=function(){goog.base(this),this.F=new box2d.b2Vec2(0,0)},goog.inherits(box2d.b2ConstantForceController,box2d.b2Controller),box2d.b2ConstantAccelController.prototype.F=null,box2d.b2ConstantForceController.prototype.Step=function(a){for(var b=this.m_bodyList;b;b=b.nextBody){var c=b.body;c.IsAwake()&&c.ApplyForce(this.F,c.GetWorldCenter())}},goog.provide("box2d.b2PulleyJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Joint"),goog.require("box2d.b2Math"),box2d.b2_minPulleyLength=2,box2d.b2PulleyJointDef=function(){goog.base(this,box2d.b2JointType.e_pulleyJoint),this.collideConnected=!0,this.groundAnchorA=new box2d.b2Vec2(-1,1),this.groundAnchorB=new box2d.b2Vec2(1,1),this.localAnchorA=new box2d.b2Vec2(-1,0),this.localAnchorB=new box2d.b2Vec2(1,0)},goog.inherits(box2d.b2PulleyJointDef,box2d.b2JointDef),box2d.b2PulleyJointDef.prototype.groundAnchorA=null,box2d.b2PulleyJointDef.prototype.groundAnchorB=null,box2d.b2PulleyJointDef.prototype.localAnchorA=null,box2d.b2PulleyJointDef.prototype.localAnchorB=null,box2d.b2PulleyJointDef.prototype.lengthA=0,box2d.b2PulleyJointDef.prototype.lengthB=0,box2d.b2PulleyJointDef.prototype.ratio=1,box2d.b2PulleyJointDef.prototype.Initialize=function(a,b,c,d,e,f,g){this.bodyA=a,this.bodyB=b,this.groundAnchorA.Copy(c),this.groundAnchorB.Copy(d),this.bodyA.GetLocalPoint(e,this.localAnchorA),this.bodyB.GetLocalPoint(f,this.localAnchorB),this.lengthA=box2d.b2DistanceVV(e,c),this.lengthB=box2d.b2DistanceVV(f,d),this.ratio=g,box2d.ENABLE_ASSERTS&&box2d.b2Assert(this.ratio>box2d.b2_epsilon)},box2d.b2PulleyJoint=function(a){goog.base(this,a),this.m_groundAnchorA=new box2d.b2Vec2,this.m_groundAnchorB=new box2d.b2Vec2,this.m_localAnchorA=new box2d.b2Vec2,this.m_localAnchorB=new box2d.b2Vec2,this.m_uA=new box2d.b2Vec2,this.m_uB=new box2d.b2Vec2,this.m_rA=new box2d.b2Vec2,this.m_rB=new box2d.b2Vec2,this.m_localCenterA=new box2d.b2Vec2,this.m_localCenterB=new box2d.b2Vec2,this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_lalcA=new box2d.b2Vec2,this.m_lalcB=new box2d.b2Vec2,this.m_groundAnchorA.Copy(a.groundAnchorA),this.m_groundAnchorB.Copy(a.groundAnchorB),this.m_localAnchorA.Copy(a.localAnchorA),this.m_localAnchorB.Copy(a.localAnchorB),this.m_lengthA=a.lengthA,this.m_lengthB=a.lengthB,box2d.ENABLE_ASSERTS&&box2d.b2Assert(0!==a.ratio),this.m_ratio=a.ratio,this.m_constant=a.lengthA+this.m_ratio*a.lengthB,this.m_impulse=0},goog.inherits(box2d.b2PulleyJoint,box2d.b2Joint),box2d.b2PulleyJoint.prototype.m_groundAnchorA=null,box2d.b2PulleyJoint.prototype.m_groundAnchorB=null,box2d.b2PulleyJoint.prototype.m_lengthA=0,box2d.b2PulleyJoint.prototype.m_lengthB=0,box2d.b2PulleyJoint.prototype.m_localAnchorA=null,box2d.b2PulleyJoint.prototype.m_localAnchorB=null,box2d.b2PulleyJoint.prototype.m_constant=0,box2d.b2PulleyJoint.prototype.m_ratio=0,box2d.b2PulleyJoint.prototype.m_impulse=0,box2d.b2PulleyJoint.prototype.m_indexA=0,box2d.b2PulleyJoint.prototype.m_indexB=0,box2d.b2PulleyJoint.prototype.m_uA=null,box2d.b2PulleyJoint.prototype.m_uB=null,box2d.b2PulleyJoint.prototype.m_rA=null,box2d.b2PulleyJoint.prototype.m_rB=null,box2d.b2PulleyJoint.prototype.m_localCenterA=null,box2d.b2PulleyJoint.prototype.m_localCenterB=null,box2d.b2PulleyJoint.prototype.m_invMassA=0,box2d.b2PulleyJoint.prototype.m_invMassB=0,box2d.b2PulleyJoint.prototype.m_invIA=0,box2d.b2PulleyJoint.prototype.m_invIB=0,box2d.b2PulleyJoint.prototype.m_mass=0,box2d.b2PulleyJoint.prototype.m_qA=null,box2d.b2PulleyJoint.prototype.m_qB=null,box2d.b2PulleyJoint.prototype.m_lalcA=null,box2d.b2PulleyJoint.prototype.m_lalcB=null;box2d.b2PulleyJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassA=this.m_bodyA.m_invMass,this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIA=this.m_bodyA.m_invI,this.m_invIB=this.m_bodyB.m_invI;var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.velocities[this.m_indexA].v,e=a.velocities[this.m_indexA].w,f=a.positions[this.m_indexB].c,g=a.positions[this.m_indexB].a,h=a.velocities[this.m_indexB].v,i=a.velocities[this.m_indexB].w,j=this.m_qA.SetAngleRadians(c),k=this.m_qB.SetAngleRadians(g);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA),box2d.b2MulRV(j,this.m_lalcA,this.m_rA),box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),box2d.b2MulRV(k,this.m_lalcB,this.m_rB),this.m_uA.Copy(b).SelfAdd(this.m_rA).SelfSub(this.m_groundAnchorA),this.m_uB.Copy(f).SelfAdd(this.m_rB).SelfSub(this.m_groundAnchorB);var l=this.m_uA.GetLength(),m=this.m_uB.GetLength();l>10*box2d.b2_linearSlop?this.m_uA.SelfMul(1/l):this.m_uA.SetZero(),m>10*box2d.b2_linearSlop?this.m_uB.SelfMul(1/m):this.m_uB.SetZero();var n=box2d.b2CrossVV(this.m_rA,this.m_uA),o=box2d.b2CrossVV(this.m_rB,this.m_uB),p=this.m_invMassA+this.m_invIA*n*n,q=this.m_invMassB+this.m_invIB*o*o;if(this.m_mass=p+this.m_ratio*this.m_ratio*q,this.m_mass>0&&(this.m_mass=1/this.m_mass),a.step.warmStarting){this.m_impulse*=a.step.dtRatio;var r=box2d.b2MulSV(-this.m_impulse,this.m_uA,box2d.b2PulleyJoint.prototype.InitVelocityConstraints.s_PA),s=box2d.b2MulSV(-this.m_ratio*this.m_impulse,this.m_uB,box2d.b2PulleyJoint.prototype.InitVelocityConstraints.s_PB);d.SelfMulAdd(this.m_invMassA,r),e+=this.m_invIA*box2d.b2CrossVV(this.m_rA,r),h.SelfMulAdd(this.m_invMassB,s),i+=this.m_invIB*box2d.b2CrossVV(this.m_rB,s)}else this.m_impulse=0;a.velocities[this.m_indexA].w=e,a.velocities[this.m_indexB].w=i},box2d.b2PulleyJoint.prototype.InitVelocityConstraints.s_PA=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.InitVelocityConstraints.s_PB=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexA].v,c=a.velocities[this.m_indexA].w,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=box2d.b2AddVCrossSV(b,c,this.m_rA,box2d.b2PulleyJoint.prototype.SolveVelocityConstraints.s_vpA),g=box2d.b2AddVCrossSV(d,e,this.m_rB,box2d.b2PulleyJoint.prototype.SolveVelocityConstraints.s_vpB),h=-box2d.b2DotVV(this.m_uA,f)-this.m_ratio*box2d.b2DotVV(this.m_uB,g),i=-this.m_mass*h;this.m_impulse+=i;var j=box2d.b2MulSV(-i,this.m_uA,box2d.b2PulleyJoint.prototype.SolveVelocityConstraints.s_PA),k=box2d.b2MulSV(-this.m_ratio*i,this.m_uB,box2d.b2PulleyJoint.prototype.SolveVelocityConstraints.s_PB);b.SelfMulAdd(this.m_invMassA,j),c+=this.m_invIA*box2d.b2CrossVV(this.m_rA,j),d.SelfMulAdd(this.m_invMassB,k),e+=this.m_invIB*box2d.b2CrossVV(this.m_rB,k),a.velocities[this.m_indexA].w=c,a.velocities[this.m_indexB].w=e},box2d.b2PulleyJoint.prototype.SolveVelocityConstraints.s_vpA=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.SolveVelocityConstraints.s_vpB=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.SolveVelocityConstraints.s_PA=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.SolveVelocityConstraints.s_PB=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.SolvePositionConstraints=function(a){var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.positions[this.m_indexB].c,e=a.positions[this.m_indexB].a,f=this.m_qA.SetAngleRadians(c),g=this.m_qB.SetAngleRadians(e);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var h=box2d.b2MulRV(f,this.m_lalcA,this.m_rA);box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var i=box2d.b2MulRV(g,this.m_lalcB,this.m_rB),j=this.m_uA.Copy(b).SelfAdd(h).SelfSub(this.m_groundAnchorA),k=this.m_uB.Copy(d).SelfAdd(i).SelfSub(this.m_groundAnchorB),l=j.GetLength(),m=k.GetLength();l>10*box2d.b2_linearSlop?j.SelfMul(1/l):j.SetZero(),m>10*box2d.b2_linearSlop?k.SelfMul(1/m):k.SetZero();var n=box2d.b2CrossVV(h,j),o=box2d.b2CrossVV(i,k),p=this.m_invMassA+this.m_invIA*n*n,q=this.m_invMassB+this.m_invIB*o*o,r=p+this.m_ratio*this.m_ratio*q;r>0&&(r=1/r);var s=this.m_constant-l-this.m_ratio*m,t=box2d.b2Abs(s),u=-r*s,v=box2d.b2MulSV(-u,j,box2d.b2PulleyJoint.prototype.SolvePositionConstraints.s_PA),w=box2d.b2MulSV(-this.m_ratio*u,k,box2d.b2PulleyJoint.prototype.SolvePositionConstraints.s_PB);return b.SelfMulAdd(this.m_invMassA,v),c+=this.m_invIA*box2d.b2CrossVV(h,v),d.SelfMulAdd(this.m_invMassB,w),e+=this.m_invIB*box2d.b2CrossVV(i,w),a.positions[this.m_indexA].a=c,a.positions[this.m_indexB].a=e,t<box2d.b2_linearSlop},box2d.b2PulleyJoint.prototype.SolvePositionConstraints.s_PA=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.SolvePositionConstraints.s_PB=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,a)},box2d.b2PulleyJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2PulleyJoint.prototype.GetReactionForce=function(a,b){return b.SetXY(a*this.m_impulse*this.m_uB.x,a*this.m_impulse*this.m_uB.y)},box2d.b2PulleyJoint.prototype.GetReactionTorque=function(a){return 0},box2d.b2PulleyJoint.prototype.GetGroundAnchorA=function(a){return a.Copy(this.m_groundAnchorA)},box2d.b2PulleyJoint.prototype.GetGroundAnchorB=function(a){return a.Copy(this.m_groundAnchorB)},box2d.b2PulleyJoint.prototype.GetLengthA=function(){return this.m_lengthA},box2d.b2PulleyJoint.prototype.GetLengthB=function(){return this.m_lengthB},box2d.b2PulleyJoint.prototype.GetRatio=function(){return this.m_ratio},box2d.b2PulleyJoint.prototype.GetCurrentLengthA=function(){var a=this.m_bodyA.GetWorldPoint(this.m_localAnchorA,box2d.b2PulleyJoint.prototype.GetCurrentLengthA.s_p),b=this.m_groundAnchorA;return box2d.b2DistanceVV(a,b)},box2d.b2PulleyJoint.prototype.GetCurrentLengthA.s_p=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.GetCurrentLengthB=function(){var a=this.m_bodyB.GetWorldPoint(this.m_localAnchorB,box2d.b2PulleyJoint.prototype.GetCurrentLengthB.s_p),b=this.m_groundAnchorB;return box2d.b2DistanceVV(a,b)},box2d.b2PulleyJoint.prototype.GetCurrentLengthB.s_p=new box2d.b2Vec2,box2d.b2PulleyJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex;box2d.b2Log(" /*box2d.b2PulleyJointDef*/ var jd = new box2d.b2PulleyJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.groundAnchorA.SetXY(%.15f, %.15f);\n",this.m_groundAnchorA.x,this.m_groundAnchorA.y),box2d.b2Log(" jd.groundAnchorB.SetXY(%.15f, %.15f);\n",this.m_groundAnchorB.x,this.m_groundAnchorB.y),box2d.b2Log(" jd.localAnchorA.SetXY(%.15f, %.15f);\n",this.m_localAnchorA.x,this.m_localAnchorA.y),box2d.b2Log(" jd.localAnchorB.SetXY(%.15f, %.15f);\n",this.m_localAnchorB.x,this.m_localAnchorB.y),box2d.b2Log(" jd.lengthA = %.15f;\n",this.m_lengthA),box2d.b2Log(" jd.lengthB = %.15f;\n",this.m_lengthB),box2d.b2Log(" jd.ratio = %.15f;\n",this.m_ratio),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},box2d.b2PulleyJoint.prototype.ShiftOrigin=function(a){this.m_groundAnchorA.SelfSub(a),this.m_groundAnchorB.SelfSub(a)},goog.provide("box2d.b2CircleShape"),goog.require("box2d.b2Shape"),box2d.b2CircleShape=function(a){goog.base(this,box2d.b2ShapeType.e_circleShape,a||0),this.m_p=new box2d.b2Vec2},goog.inherits(box2d.b2CircleShape,box2d.b2Shape),box2d.b2CircleShape.prototype.m_p=null,box2d.b2CircleShape.prototype.Clone=function(){return(new box2d.b2CircleShape).Copy(this)},box2d.b2CircleShape.prototype.Copy=function(a){return goog.base(this,"Copy",a),box2d.ENABLE_ASSERTS&&box2d.b2Assert(a instanceof box2d.b2CircleShape),this.m_p.Copy(a.m_p),this},box2d.b2CircleShape.prototype.GetChildCount=function(){return 1},box2d.b2CircleShape.prototype.TestPoint=function(a,b){var c=box2d.b2MulXV(a,this.m_p,box2d.b2CircleShape.prototype.TestPoint.s_center),d=box2d.b2SubVV(b,c,box2d.b2CircleShape.prototype.TestPoint.s_d);return box2d.b2DotVV(d,d)<=box2d.b2Sq(this.m_radius)},box2d.b2CircleShape.prototype.TestPoint.s_center=new box2d.b2Vec2,box2d.b2CircleShape.prototype.TestPoint.s_d=new box2d.b2Vec2,box2d.b2CircleShape.prototype.RayCast=function(a,b,c,d){var e=box2d.b2MulXV(c,this.m_p,box2d.b2CircleShape.prototype.RayCast.s_position),f=box2d.b2SubVV(b.p1,e,box2d.b2CircleShape.prototype.RayCast.s_s),g=box2d.b2DotVV(f,f)-box2d.b2Sq(this.m_radius),h=box2d.b2SubVV(b.p2,b.p1,box2d.b2CircleShape.prototype.RayCast.s_r),i=box2d.b2DotVV(f,h),j=box2d.b2DotVV(h,h),k=i*i-j*g;if(k<0||j<box2d.b2_epsilon)return!1;var l=-(i+box2d.b2Sqrt(k))
|
||
;return 0<=l&&l<=b.maxFraction*j&&(l/=j,a.fraction=l,box2d.b2AddVMulSV(f,l,h,a.normal).SelfNormalize(),!0)},box2d.b2CircleShape.prototype.RayCast.s_position=new box2d.b2Vec2,box2d.b2CircleShape.prototype.RayCast.s_s=new box2d.b2Vec2,box2d.b2CircleShape.prototype.RayCast.s_r=new box2d.b2Vec2,box2d.b2CircleShape.prototype.ComputeAABB=function(a,b,c){var d=box2d.b2MulXV(b,this.m_p,box2d.b2CircleShape.prototype.ComputeAABB.s_p);a.lowerBound.SetXY(d.x-this.m_radius,d.y-this.m_radius),a.upperBound.SetXY(d.x+this.m_radius,d.y+this.m_radius)},box2d.b2CircleShape.prototype.ComputeAABB.s_p=new box2d.b2Vec2,box2d.b2CircleShape.prototype.ComputeMass=function(a,b){var c=box2d.b2Sq(this.m_radius);a.mass=b*box2d.b2_pi*c,a.center.Copy(this.m_p),a.I=a.mass*(.5*c+box2d.b2DotVV(this.m_p,this.m_p))},box2d.b2CircleShape.prototype.SetupDistanceProxy=function(a,b){a.m_vertices=new Array(1,!0),a.m_vertices[0]=this.m_p,a.m_count=1,a.m_radius=this.m_radius},box2d.b2CircleShape.prototype.ComputeSubmergedArea=function(a,b,c,d){var e=box2d.b2MulXV(c,this.m_p,new box2d.b2Vec2),f=-(box2d.b2DotVV(a,e)-b);if(f<-this.m_radius+box2d.b2_epsilon)return 0;if(f>this.m_radius)return d.Copy(e),box2d.b2_pi*this.m_radius*this.m_radius;var g=this.m_radius*this.m_radius,h=f*f,i=g*(box2d.b2Asin(f/this.m_radius)+box2d.b2_pi/2)+f*box2d.b2Sqrt(g-h),j=-2/3*box2d.b2Pow(g-h,1.5)/i;return d.x=e.x+a.x*j,d.y=e.y+a.y*j,i},box2d.b2CircleShape.prototype.Dump=function(){box2d.b2Log(" /*box2d.b2CircleShape*/ var shape = new box2d.b2CircleShape();\n"),box2d.b2Log(" shape.m_radius = %.15f;\n",this.m_radius),box2d.b2Log(" shape.m_p.SetXY(%.15f, %.15f);\n",this.m_p.x,this.m_p.y)},goog.provide("box2d.b2Rope"),goog.require("box2d.b2Math"),goog.require("box2d.b2Draw"),box2d.b2RopeDef=function(){this.vertices=new Array,this.masses=new Array,this.gravity=new box2d.b2Vec2},box2d.b2RopeDef.prototype.vertices=null,box2d.b2RopeDef.prototype.count=0,box2d.b2RopeDef.prototype.masses=null,box2d.b2RopeDef.prototype.gravity=null,box2d.b2RopeDef.prototype.damping=.1,box2d.b2RopeDef.prototype.k2=.9,box2d.b2RopeDef.prototype.k3=.1,box2d.b2Rope=function(){this.m_gravity=new box2d.b2Vec2},box2d.b2Rope.prototype.m_count=0,box2d.b2Rope.prototype.m_ps=null,box2d.b2Rope.prototype.m_p0s=null,box2d.b2Rope.prototype.m_vs=null,box2d.b2Rope.prototype.m_ims=null,box2d.b2Rope.prototype.m_Ls=null,box2d.b2Rope.prototype.m_as=null,box2d.b2Rope.prototype.m_gravity=null,box2d.b2Rope.prototype.m_damping=0,box2d.b2Rope.prototype.m_k2=1,box2d.b2Rope.prototype.m_k3=.1,box2d.b2Rope.prototype.GetVertexCount=function(){return this.m_count},box2d.b2Rope.prototype.GetVertices=function(){return this.m_ps},box2d.b2Rope.prototype.Initialize=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(a.count>=3),this.m_count=a.count,this.m_ps=box2d.b2Vec2.MakeArray(this.m_count),this.m_p0s=box2d.b2Vec2.MakeArray(this.m_count),this.m_vs=box2d.b2Vec2.MakeArray(this.m_count),this.m_ims=box2d.b2MakeNumberArray(this.m_count);for(var b=0;b<this.m_count;++b){this.m_ps[b].Copy(a.vertices[b]),this.m_p0s[b].Copy(a.vertices[b]),this.m_vs[b].SetZero();var c=a.masses[b];this.m_ims[b]=c>0?1/c:0}var d=this.m_count-1,e=this.m_count-2;this.m_Ls=box2d.b2MakeNumberArray(d),this.m_as=box2d.b2MakeNumberArray(e);for(var b=0;b<d;++b){var f=this.m_ps[b],g=this.m_ps[b+1];this.m_Ls[b]=box2d.b2DistanceVV(f,g)}for(var b=0;b<e;++b){var f=this.m_ps[b],g=this.m_ps[b+1],h=this.m_ps[b+2],i=box2d.b2SubVV(g,f,box2d.b2Vec2.s_t0),j=box2d.b2SubVV(h,g,box2d.b2Vec2.s_t1),k=box2d.b2CrossVV(i,j),l=box2d.b2DotVV(i,j);this.m_as[b]=box2d.b2Atan2(k,l)}this.m_gravity.Copy(a.gravity),this.m_damping=a.damping,this.m_k2=a.k2,this.m_k3=a.k3},box2d.b2Rope.prototype.Step=function(a,b){if(0!==a){for(var c=Math.exp(-a*this.m_damping),d=0;d<this.m_count;++d)this.m_p0s[d].Copy(this.m_ps[d]),this.m_ims[d]>0&&this.m_vs[d].SelfMulAdd(a,this.m_gravity),this.m_vs[d].SelfMul(c),this.m_ps[d].SelfMulAdd(a,this.m_vs[d]);for(var d=0;d<b;++d)this.SolveC2(),this.SolveC3(),this.SolveC2();for(var e=1/a,d=0;d<this.m_count;++d)box2d.b2MulSV(e,box2d.b2SubVV(this.m_ps[d],this.m_p0s[d],box2d.b2Vec2.s_t0),this.m_vs[d])}},box2d.b2Rope.prototype.SolveC2=function(){for(var a=this.m_count-1,b=0;b<a;++b){var c=this.m_ps[b],d=this.m_ps[b+1],e=box2d.b2SubVV(d,c,box2d.b2Rope.s_d),f=e.Normalize(),g=this.m_ims[b],h=this.m_ims[b+1];if(g+h!==0){var i=g/(g+h),j=h/(g+h);c.SelfMulSub(this.m_k2*i*(this.m_Ls[b]-f),e),d.SelfMulAdd(this.m_k2*j*(this.m_Ls[b]-f),e)}}},box2d.b2Rope.s_d=new box2d.b2Vec2,box2d.b2Rope.prototype.SetAngleRadians=function(a){for(var b=this.m_count-2,c=0;c<b;++c)this.m_as[c]=a},box2d.b2Rope.prototype.SolveC3=function(){for(var a=this.m_count-2,b=0;b<a;++b){var c=this.m_ps[b],d=this.m_ps[b+1],e=this.m_ps[b+2],f=this.m_ims[b],g=this.m_ims[b+1],h=this.m_ims[b+2],i=box2d.b2SubVV(d,c,box2d.b2Rope.s_d1),j=box2d.b2SubVV(e,d,box2d.b2Rope.s_d2),k=i.GetLengthSquared(),l=j.GetLengthSquared();if(k*l!=0){var m=box2d.b2CrossVV(i,j),n=box2d.b2DotVV(i,j),o=box2d.b2Atan2(m,n),p=box2d.b2MulSV(-1/k,i.SelfSkew(),box2d.b2Rope.s_Jd1),q=box2d.b2MulSV(1/l,j.SelfSkew(),box2d.b2Rope.s_Jd2),r=box2d.b2NegV(p,box2d.b2Rope.s_J1),s=box2d.b2SubVV(p,q,box2d.b2Rope.s_J2),t=q,u=f*box2d.b2DotVV(r,r)+g*box2d.b2DotVV(s,s)+h*box2d.b2DotVV(t,t);if(0!==u){u=1/u;for(var v=o-this.m_as[b];v>box2d.b2_pi;)o-=2*box2d.b2_pi,v=o-this.m_as[b];for(;v<-box2d.b2_pi;)o+=2*box2d.b2_pi,v=o-this.m_as[b];var w=-this.m_k3*u*v;c.SelfMulAdd(f*w,r),d.SelfMulAdd(g*w,s),e.SelfMulAdd(h*w,t)}}}},box2d.b2Rope.s_d1=new box2d.b2Vec2,box2d.b2Rope.s_d2=new box2d.b2Vec2,box2d.b2Rope.s_Jd1=new box2d.b2Vec2,box2d.b2Rope.s_Jd2=new box2d.b2Vec2,box2d.b2Rope.s_J1=new box2d.b2Vec2,box2d.b2Rope.s_J2=new box2d.b2Vec2,box2d.b2Rope.prototype.Draw=function(a){for(var b=new box2d.b2Color(.4,.5,.7),c=0;c<this.m_count-1;++c)a.DrawSegment(this.m_ps[c],this.m_ps[c+1],b)},goog.provide("box2d.b2WheelJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),box2d.b2WheelJointDef=function(){goog.base(this,box2d.b2JointType.e_wheelJoint),this.localAnchorA=new box2d.b2Vec2(0,0),this.localAnchorB=new box2d.b2Vec2(0,0),this.localAxisA=new box2d.b2Vec2(1,0)},goog.inherits(box2d.b2WheelJointDef,box2d.b2JointDef),box2d.b2WheelJointDef.prototype.localAnchorA=null,box2d.b2WheelJointDef.prototype.localAnchorB=null,box2d.b2WheelJointDef.prototype.localAxisA=null,box2d.b2WheelJointDef.prototype.enableMotor=!1,box2d.b2WheelJointDef.prototype.maxMotorTorque=0,box2d.b2WheelJointDef.prototype.motorSpeed=0,box2d.b2WheelJointDef.prototype.frequencyHz=2,box2d.b2WheelJointDef.prototype.dampingRatio=.7,box2d.b2WheelJointDef.prototype.Initialize=function(a,b,c,d){this.bodyA=a,this.bodyB=b,this.bodyA.GetLocalPoint(c,this.localAnchorA),this.bodyB.GetLocalPoint(c,this.localAnchorB),this.bodyA.GetLocalVector(d,this.localAxisA)},box2d.b2WheelJoint=function(a){goog.base(this,a),this.m_frequencyHz=a.frequencyHz,this.m_dampingRatio=a.dampingRatio,this.m_localAnchorA=a.localAnchorA.Clone(),this.m_localAnchorB=a.localAnchorB.Clone(),this.m_localXAxisA=a.localAxisA.Clone(),this.m_localYAxisA=box2d.b2CrossOneV(this.m_localXAxisA,new box2d.b2Vec2),this.m_maxMotorTorque=a.maxMotorTorque,this.m_motorSpeed=a.motorSpeed,this.m_enableMotor=a.enableMotor,this.m_localCenterA=new box2d.b2Vec2,this.m_localCenterB=new box2d.b2Vec2,this.m_ax=new box2d.b2Vec2,this.m_ay=new box2d.b2Vec2,this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_lalcA=new box2d.b2Vec2,this.m_lalcB=new box2d.b2Vec2,this.m_rA=new box2d.b2Vec2,this.m_rB=new box2d.b2Vec2,this.m_ax.SetZero(),this.m_ay.SetZero()},goog.inherits(box2d.b2WheelJoint,box2d.b2Joint),box2d.b2WheelJoint.prototype.m_frequencyHz=0,box2d.b2WheelJoint.prototype.m_dampingRatio=0,box2d.b2WheelJoint.prototype.m_localAnchorA=null,box2d.b2WheelJoint.prototype.m_localAnchorB=null,box2d.b2WheelJoint.prototype.m_localXAxisA=null,box2d.b2WheelJoint.prototype.m_localYAxisA=null,box2d.b2WheelJoint.prototype.m_impulse=0,box2d.b2WheelJoint.prototype.m_motorImpulse=0,box2d.b2WheelJoint.prototype.m_springImpulse=0,box2d.b2WheelJoint.prototype.m_maxMotorTorque=0,box2d.b2WheelJoint.prototype.m_motorSpeed=0,box2d.b2WheelJoint.prototype.m_enableMotor=!1,box2d.b2WheelJoint.prototype.m_indexA=0,box2d.b2WheelJoint.prototype.m_indexB=0,box2d.b2WheelJoint.prototype.m_localCenterA=null,box2d.b2WheelJoint.prototype.m_localCenterB=null,box2d.b2WheelJoint.prototype.m_invMassA=0,box2d.b2WheelJoint.prototype.m_invMassB=0,box2d.b2WheelJoint.prototype.m_invIA=0,box2d.b2WheelJoint.prototype.m_invIB=0,box2d.b2WheelJoint.prototype.m_ax=null,box2d.b2WheelJoint.prototype.m_ay=null,box2d.b2WheelJoint.prototype.m_sAx=0,box2d.b2WheelJoint.prototype.m_sBx=0,box2d.b2WheelJoint.prototype.m_sAy=0,box2d.b2WheelJoint.prototype.m_sBy=0,box2d.b2WheelJoint.prototype.m_mass=0,box2d.b2WheelJoint.prototype.m_motorMass=0,box2d.b2WheelJoint.prototype.m_springMass=0,box2d.b2WheelJoint.prototype.m_bias=0,box2d.b2WheelJoint.prototype.m_gamma=0,box2d.b2WheelJoint.prototype.m_qA=null,box2d.b2WheelJoint.prototype.m_qB=null,box2d.b2WheelJoint.prototype.m_lalcA=null,box2d.b2WheelJoint.prototype.m_lalcB=null,box2d.b2WheelJoint.prototype.m_rA=null,box2d.b2WheelJoint.prototype.m_rB=null,box2d.b2WheelJoint.prototype.GetMotorSpeed=function(){return this.m_motorSpeed},box2d.b2WheelJoint.prototype.GetMaxMotorTorque=function(){return this.m_maxMotorTorque},box2d.b2WheelJoint.prototype.SetSpringFrequencyHz=function(a){this.m_frequencyHz=a},box2d.b2WheelJoint.prototype.GetSpringFrequencyHz=function(){return this.m_frequencyHz},box2d.b2WheelJoint.prototype.SetSpringDampingRatio=function(a){this.m_dampingRatio=a},box2d.b2WheelJoint.prototype.GetSpringDampingRatio=function(){return this.m_dampingRatio},box2d.b2WheelJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassA=this.m_bodyA.m_invMass,this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIA=this.m_bodyA.m_invI,this.m_invIB=this.m_bodyB.m_invI;var b=this.m_invMassA,c=this.m_invMassB,d=this.m_invIA,e=this.m_invIB,f=a.positions[this.m_indexA].c,g=a.positions[this.m_indexA].a,h=a.velocities[this.m_indexA].v,i=a.velocities[this.m_indexA].w,j=a.positions[this.m_indexB].c,k=a.positions[this.m_indexB].a,l=a.velocities[this.m_indexB].v,m=a.velocities[this.m_indexB].w,n=this.m_qA.SetAngleRadians(g),o=this.m_qB.SetAngleRadians(k);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var p=box2d.b2MulRV(n,this.m_lalcA,this.m_rA);box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var q=box2d.b2MulRV(o,this.m_lalcB,this.m_rB),r=box2d.b2SubVV(box2d.b2AddVV(j,q,box2d.b2Vec2.s_t0),box2d.b2AddVV(f,p,box2d.b2Vec2.s_t1),box2d.b2WheelJoint.prototype.InitVelocityConstraints.s_d);if(box2d.b2MulRV(n,this.m_localYAxisA,this.m_ay),this.m_sAy=box2d.b2CrossVV(box2d.b2AddVV(r,p,box2d.b2Vec2.s_t0),this.m_ay),this.m_sBy=box2d.b2CrossVV(q,this.m_ay),this.m_mass=b+c+d*this.m_sAy*this.m_sAy+e*this.m_sBy*this.m_sBy,this.m_mass>0&&(this.m_mass=1/this.m_mass),this.m_springMass=0,this.m_bias=0,this.m_gamma=0,this.m_frequencyHz>0){box2d.b2MulRV(n,this.m_localXAxisA,this.m_ax),this.m_sAx=box2d.b2CrossVV(box2d.b2AddVV(r,p,box2d.b2Vec2.s_t0),this.m_ax),this.m_sBx=box2d.b2CrossVV(q,this.m_ax);var s=b+c+d*this.m_sAx*this.m_sAx+e*this.m_sBx*this.m_sBx;if(s>0){this.m_springMass=1/s;var t=box2d.b2DotVV(r,this.m_ax),u=2*box2d.b2_pi*this.m_frequencyHz,v=2*this.m_springMass*this.m_dampingRatio*u,w=this.m_springMass*u*u,x=a.step.dt;this.m_gamma=x*(v+x*w),this.m_gamma>0&&(this.m_gamma=1/this.m_gamma),this.m_bias=t*x*w*this.m_gamma,this.m_springMass=s+this.m_gamma,this.m_springMass>0&&(this.m_springMass=1/this.m_springMass)}}else this.m_springImpulse=0;if(this.m_enableMotor?(this.m_motorMass=d+e,this.m_motorMass>0&&(this.m_motorMass=1/this.m_motorMass)):(this.m_motorMass=0,this.m_motorImpulse=0),a.step.warmStarting){this.m_impulse*=a.step.dtRatio,this.m_springImpulse*=a.step.dtRatio,this.m_motorImpulse*=a.step.dtRatio;var y=box2d.b2AddVV(box2d.b2MulSV(this.m_impulse,this.m_ay,box2d.b2Vec2.s_t0),box2d.b2MulSV(this.m_springImpulse,this.m_ax,box2d.b2Vec2.s_t1),box2d.b2WheelJoint.prototype.InitVelocityConstraints.s_P),z=this.m_impulse*this.m_sAy+this.m_springImpulse*this.m_sAx+this.m_motorImpulse,A=this.m_impulse*this.m_sBy+this.m_springImpulse*this.m_sBx+this.m_motorImpulse;h.SelfMulSub(this.m_invMassA,y),i-=this.m_invIA*z,l.SelfMulAdd(this.m_invMassB,y),m+=this.m_invIB*A}else this.m_impulse=0,this.m_springImpulse=0,this.m_motorImpulse=0;a.velocities[this.m_indexA].w=i,a.velocities[this.m_indexB].w=m},box2d.b2WheelJoint.prototype.InitVelocityConstraints.s_d=new box2d.b2Vec2,box2d.b2WheelJoint.prototype.InitVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2WheelJoint.prototype.SolveVelocityConstraints=function(a){var b=this.m_invMassA,c=this.m_invMassB,d=this.m_invIA,e=this.m_invIB,f=a.velocities[this.m_indexA].v,g=a.velocities[this.m_indexA].w,h=a.velocities[this.m_indexB].v,i=a.velocities[this.m_indexB].w,j=box2d.b2DotVV(this.m_ax,box2d.b2SubVV(h,f,box2d.b2Vec2.s_t0))+this.m_sBx*i-this.m_sAx*g,k=-this.m_springMass*(j+this.m_bias+this.m_gamma*this.m_springImpulse);this.m_springImpulse+=k;var l=box2d.b2MulSV(k,this.m_ax,box2d.b2WheelJoint.prototype.SolveVelocityConstraints.s_P),m=k*this.m_sAx,n=k*this.m_sBx;f.SelfMulSub(b,l),g-=d*m,h.SelfMulAdd(c,l),i+=e*n;var j=i-g-this.m_motorSpeed,k=-this.m_motorMass*j,o=this.m_motorImpulse,p=a.step.dt*this.m_maxMotorTorque;this.m_motorImpulse=box2d.b2Clamp(this.m_motorImpulse+k,-p,p),k=this.m_motorImpulse-o,g-=d*k,i+=e*k;var j=box2d.b2DotVV(this.m_ay,box2d.b2SubVV(h,f,box2d.b2Vec2.s_t0))+this.m_sBy*i-this.m_sAy*g,k=-this.m_mass*j;this.m_impulse+=k;var l=box2d.b2MulSV(k,this.m_ay,box2d.b2WheelJoint.prototype.SolveVelocityConstraints.s_P),m=k*this.m_sAy,n=k*this.m_sBy;f.SelfMulSub(b,l),g-=d*m,h.SelfMulAdd(c,l),i+=e*n,a.velocities[this.m_indexA].w=g,a.velocities[this.m_indexB].w=i},box2d.b2WheelJoint.prototype.SolveVelocityConstraints.s_P=new box2d.b2Vec2,box2d.b2WheelJoint.prototype.SolvePositionConstraints=function(a){var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.positions[this.m_indexB].c,e=a.positions[this.m_indexB].a,f=this.m_qA.SetAngleRadians(c),g=this.m_qB.SetAngleRadians(e);box2d.b2SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var h=box2d.b2MulRV(f,this.m_lalcA,this.m_rA);box2d.b2SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var i,j=box2d.b2MulRV(g,this.m_lalcB,this.m_rB),k=box2d.b2AddVV(box2d.b2SubVV(d,b,box2d.b2Vec2.s_t0),box2d.b2SubVV(j,h,box2d.b2Vec2.s_t1),box2d.b2WheelJoint.prototype.SolvePositionConstraints.s_d),l=box2d.b2MulRV(f,this.m_localYAxisA,this.m_ay),m=box2d.b2CrossVV(box2d.b2AddVV(k,h,box2d.b2Vec2.s_t0),l),n=box2d.b2CrossVV(j,l),o=box2d.b2DotVV(k,this.m_ay),p=this.m_invMassA+this.m_invMassB+this.m_invIA*this.m_sAy*this.m_sAy+this.m_invIB*this.m_sBy*this.m_sBy;i=0!==p?-o/p:0;var q=box2d.b2MulSV(i,l,box2d.b2WheelJoint.prototype.SolvePositionConstraints.s_P),r=i*m,s=i*n;return b.SelfMulSub(this.m_invMassA,q),c-=this.m_invIA*r,d.SelfMulAdd(this.m_invMassB,q),e+=this.m_invIB*s,a.positions[this.m_indexA].a=c,a.positions[this.m_indexB].a=e,box2d.b2Abs(o)<=box2d.b2_linearSlop},box2d.b2WheelJoint.prototype.SolvePositionConstraints.s_d=new box2d.b2Vec2,box2d.b2WheelJoint.prototype.SolvePositionConstraints.s_P=new box2d.b2Vec2,box2d.b2WheelJoint.prototype.GetDefinition=function(a){return box2d.ENABLE_ASSERTS&&box2d.b2Assert(!1),a},box2d.b2WheelJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,a)},box2d.b2WheelJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,a)},box2d.b2WheelJoint.prototype.GetReactionForce=function(a,b){return b.x=a*(this.m_impulse*this.m_ay.x+this.m_springImpulse*this.m_ax.x),b.y=a*(this.m_impulse*this.m_ay.y+this.m_springImpulse*this.m_ax.y),b},box2d.b2WheelJoint.prototype.GetReactionTorque=function(a){return a*this.m_motorImpulse},box2d.b2WheelJoint.prototype.GetLocalAnchorA=function(a){return a.Copy(this.m_localAnchorA)},box2d.b2WheelJoint.prototype.GetLocalAnchorB=function(a){return a.Copy(this.m_localAnchorB)},box2d.b2WheelJoint.prototype.GetLocalAxisA=function(a){return a.Copy(this.m_localXAxisA)},box2d.b2WheelJoint.prototype.GetJointTranslation=function(){var a=this.m_bodyA,b=this.m_bodyB,c=a.GetWorldPoint(this.m_localAnchorA,new box2d.b2Vec2),d=b.GetWorldPoint(this.m_localAnchorB,new box2d.b2Vec2),e=box2d.b2SubVV(d,c,new box2d.b2Vec2),f=a.GetWorldVector(this.m_localXAxisA,new box2d.b2Vec2);return box2d.b2DotVV(e,f)},box2d.b2WheelJoint.prototype.GetJointSpeed=function(){var a=this.m_bodyA.m_angularVelocity;return this.m_bodyB.m_angularVelocity-a},box2d.b2WheelJoint.prototype.IsMotorEnabled=function(){return this.m_enableMotor},box2d.b2WheelJoint.prototype.EnableMotor=function(a){this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_enableMotor=a},box2d.b2WheelJoint.prototype.SetMotorSpeed=function(a){this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_motorSpeed=a},box2d.b2WheelJoint.prototype.SetMaxMotorTorque=function(a){this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_maxMotorTorque=a},box2d.b2WheelJoint.prototype.GetMotorTorque=function(a){return a*this.m_motorImpulse},box2d.b2WheelJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex;box2d.b2Log(" /*box2d.b2WheelJointDef*/ var jd = new box2d.b2WheelJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.localAnchorA.SetXY(%.15f, %.15f);\n",this.m_localAnchorA.x,this.m_localAnchorA.y),box2d.b2Log(" jd.localAnchorB.SetXY(%.15f, %.15f);\n",this.m_localAnchorB.x,this.m_localAnchorB.y),box2d.b2Log(" jd.localAxisA.Set(%.15f, %.15f);\n",this.m_localXAxisA.x,this.m_localXAxisA.y),box2d.b2Log(" jd.enableMotor = %s;\n",this.m_enableMotor?"true":"false"),box2d.b2Log(" jd.motorSpeed = %.15f;\n",this.m_motorSpeed),box2d.b2Log(" jd.maxMotorTorque = %.15f;\n",this.m_maxMotorTorque),box2d.b2Log(" jd.frequencyHz = %.15f;\n",this.m_frequencyHz),box2d.b2Log(" jd.dampingRatio = %.15f;\n",this.m_dampingRatio),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},goog.provide("box2d.b2MotorJoint"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Math"),box2d.b2MotorJointDef=function(){goog.base(this,box2d.b2JointType.e_motorJoint),this.linearOffset=new box2d.b2Vec2(0,0)},goog.inherits(box2d.b2MotorJointDef,box2d.b2JointDef),box2d.b2MotorJointDef.prototype.linearOffset=null,box2d.b2MotorJointDef.prototype.angularOffset=0,box2d.b2MotorJointDef.prototype.maxForce=1,box2d.b2MotorJointDef.prototype.maxTorque=1,box2d.b2MotorJointDef.prototype.correctionFactor=.3,box2d.b2MotorJointDef.prototype.Initialize=function(a,b){this.bodyA=a,this.bodyB=b,this.bodyA.GetLocalPoint(this.bodyB.GetPosition(),this.linearOffset);var c=this.bodyA.GetAngleRadians(),d=this.bodyB.GetAngleRadians();this.angularOffset=d-c},box2d.b2MotorJoint=function(a){goog.base(this,a),this.m_linearOffset=a.linearOffset.Clone(),this.m_linearImpulse=new box2d.b2Vec2(0,0),this.m_maxForce=a.maxForce,this.m_maxTorque=a.maxTorque,this.m_correctionFactor=a.correctionFactor,this.m_rA=new box2d.b2Vec2(0,0),this.m_rB=new box2d.b2Vec2(0,0),this.m_localCenterA=new box2d.b2Vec2(0,0),this.m_localCenterB=new box2d.b2Vec2(0,0),this.m_linearError=new box2d.b2Vec2(0,0),this.m_linearMass=new box2d.b2Mat22,this.m_qA=new box2d.b2Rot,this.m_qB=new box2d.b2Rot,this.m_K=new box2d.b2Mat22},goog.inherits(box2d.b2MotorJoint,box2d.b2Joint),box2d.b2MotorJoint.prototype.m_linearOffset=null,box2d.b2MotorJoint.prototype.m_angularOffset=0,box2d.b2MotorJoint.prototype.m_linearImpulse=null,box2d.b2MotorJoint.prototype.m_angularImpulse=0,box2d.b2MotorJoint.prototype.m_maxForce=0,box2d.b2MotorJoint.prototype.m_maxTorque=0,box2d.b2MotorJoint.prototype.m_correctionFactor=.3,box2d.b2MotorJoint.prototype.m_indexA=0,box2d.b2MotorJoint.prototype.m_indexB=0,box2d.b2MotorJoint.prototype.m_rA=null,box2d.b2MotorJoint.prototype.m_rB=null,box2d.b2MotorJoint.prototype.m_localCenterA=null,box2d.b2MotorJoint.prototype.m_localCenterB=null,box2d.b2MotorJoint.prototype.m_linearError=null,box2d.b2MotorJoint.prototype.m_angularError=0,box2d.b2MotorJoint.prototype.m_invMassA=0,box2d.b2MotorJoint.prototype.m_invMassB=0,box2d.b2MotorJoint.prototype.m_invIA=0,box2d.b2MotorJoint.prototype.m_invIB=0;box2d.b2MotorJoint.prototype.m_linearMass=null,box2d.b2MotorJoint.prototype.m_angularMass=0,box2d.b2MotorJoint.prototype.m_qA=null,box2d.b2MotorJoint.prototype.m_qB=null,box2d.b2MotorJoint.prototype.m_K=null,box2d.b2MotorJoint.prototype.GetAnchorA=function(a){return this.m_bodyA.GetPosition(a)},box2d.b2MotorJoint.prototype.GetAnchorB=function(a){return this.m_bodyB.GetPosition(a)},box2d.b2MotorJoint.prototype.GetReactionForce=function(a,b){return box2d.b2MulSV(a,this.m_linearImpulse,b)},box2d.b2MotorJoint.prototype.GetReactionTorque=function(a){return a*this.m_angularImpulse},box2d.b2MotorJoint.prototype.SetCorrectionFactor=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a)&&0<=a&&a<=1),this._correctionFactor=a},box2d.b2MotorJoint.prototype.GetCorrectionFactor=function(){return this.m_correctionFactor},box2d.b2MotorJoint.prototype.SetLinearOffset=function(a){box2d.b2IsEqualToV(a,this.m_linearOffset)||(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_linearOffset.Copy(a))},box2d.b2MotorJoint.prototype.GetLinearOffset=function(a){return a.Copy(this.m_linearOffset)},box2d.b2MotorJoint.prototype.SetAngularOffset=function(a){a!==this.m_angularOffset&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_angularOffset=a)},box2d.b2MotorJoint.prototype.GetAngularOffset=function(){return this.m_angularOffset},box2d.b2MotorJoint.prototype.SetMaxForce=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a)&&a>=0),this.m_maxForce=a},box2d.b2MotorJoint.prototype.GetMaxForce=function(){return this.m_maxForce},box2d.b2MotorJoint.prototype.SetMaxTorque=function(a){box2d.ENABLE_ASSERTS&&box2d.b2Assert(box2d.b2IsValid(a)&&a>=0),this.m_maxTorque=a},box2d.b2MotorJoint.prototype.GetMaxTorque=function(){return this.m_maxTorque},box2d.b2MotorJoint.prototype.InitVelocityConstraints=function(a){this.m_indexA=this.m_bodyA.m_islandIndex,this.m_indexB=this.m_bodyB.m_islandIndex,this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter),this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter),this.m_invMassA=this.m_bodyA.m_invMass,this.m_invMassB=this.m_bodyB.m_invMass,this.m_invIA=this.m_bodyA.m_invI,this.m_invIB=this.m_bodyB.m_invI;var b=a.positions[this.m_indexA].c,c=a.positions[this.m_indexA].a,d=a.velocities[this.m_indexA].v,e=a.velocities[this.m_indexA].w,f=a.positions[this.m_indexB].c,g=a.positions[this.m_indexB].a,h=a.velocities[this.m_indexB].v,i=a.velocities[this.m_indexB].w,j=this.m_qA.SetAngleRadians(c),k=this.m_qB.SetAngleRadians(g),l=box2d.b2MulRV(j,box2d.b2NegV(this.m_localCenterA,box2d.b2Vec2.s_t0),this.m_rA),m=box2d.b2MulRV(k,box2d.b2NegV(this.m_localCenterB,box2d.b2Vec2.s_t0),this.m_rB),n=this.m_invMassA,o=this.m_invMassB,p=this.m_invIA,q=this.m_invIB,r=this.m_K;if(r.ex.x=n+o+p*l.y*l.y+q*m.y*m.y,r.ex.y=-p*l.x*l.y-q*m.x*m.y,r.ey.x=r.ex.y,r.ey.y=n+o+p*l.x*l.x+q*m.x*m.x,r.GetInverse(this.m_linearMass),this.m_angularMass=p+q,this.m_angularMass>0&&(this.m_angularMass=1/this.m_angularMass),box2d.b2SubVV(box2d.b2SubVV(box2d.b2AddVV(f,m,box2d.b2Vec2.s_t0),box2d.b2AddVV(b,l,box2d.b2Vec2.s_t1),box2d.b2Vec2.s_t2),box2d.b2MulRV(j,this.m_linearOffset,box2d.b2Vec2.s_t3),this.m_linearError),this.m_angularError=g-c-this.m_angularOffset,a.step.warmStarting){this.m_linearImpulse.SelfMul(a.step.dtRatio),this.m_angularImpulse*=a.step.dtRatio;var s=this.m_linearImpulse;d.SelfMulSub(n,s),e-=p*(box2d.b2CrossVV(l,s)+this.m_angularImpulse),h.SelfMulAdd(o,s),i+=q*(box2d.b2CrossVV(m,s)+this.m_angularImpulse)}else this.m_linearImpulse.SetZero(),this.m_angularImpulse=0;a.velocities[this.m_indexA].w=e,a.velocities[this.m_indexB].w=i},box2d.b2MotorJoint.prototype.SolveVelocityConstraints=function(a){var b=a.velocities[this.m_indexA].v,c=a.velocities[this.m_indexA].w,d=a.velocities[this.m_indexB].v,e=a.velocities[this.m_indexB].w,f=this.m_invMassA,g=this.m_invMassB,h=this.m_invIA,i=this.m_invIB,j=a.step.dt,k=a.step.inv_dt,l=e-c+k*this.m_correctionFactor*this.m_angularError,m=-this.m_angularMass*l,n=this.m_angularImpulse,o=j*this.m_maxTorque;this.m_angularImpulse=box2d.b2Clamp(this.m_angularImpulse+m,-o,o),m=this.m_angularImpulse-n,c-=h*m,e+=i*m;var p=this.m_rA,q=this.m_rB,l=box2d.b2AddVV(box2d.b2SubVV(box2d.b2AddVV(d,box2d.b2CrossSV(e,q,box2d.b2Vec2.s_t0),box2d.b2Vec2.s_t0),box2d.b2AddVV(b,box2d.b2CrossSV(c,p,box2d.b2Vec2.s_t1),box2d.b2Vec2.s_t1),box2d.b2Vec2.s_t2),box2d.b2MulSV(k*this.m_correctionFactor,this.m_linearError,box2d.b2Vec2.s_t3),box2d.b2MotorJoint.prototype.SolveVelocityConstraints.s_Cdot),m=box2d.b2MulMV(this.m_linearMass,l,box2d.b2MotorJoint.prototype.SolveVelocityConstraints.s_impulse).SelfNeg(),n=box2d.b2MotorJoint.prototype.SolveVelocityConstraints.s_oldImpulse.Copy(this.m_linearImpulse);this.m_linearImpulse.SelfAdd(m);var o=j*this.m_maxForce;this.m_linearImpulse.GetLengthSquared()>o*o&&(this.m_linearImpulse.Normalize(),this.m_linearImpulse.SelfMul(o)),box2d.b2SubVV(this.m_linearImpulse,n,m),b.SelfMulSub(f,m),c-=h*box2d.b2CrossVV(p,m),d.SelfMulAdd(g,m),e+=i*box2d.b2CrossVV(q,m),a.velocities[this.m_indexA].w=c,a.velocities[this.m_indexB].w=e},box2d.b2MotorJoint.prototype.SolveVelocityConstraints.s_Cdot=new box2d.b2Vec2,box2d.b2MotorJoint.prototype.SolveVelocityConstraints.s_impulse=new box2d.b2Vec2,box2d.b2MotorJoint.prototype.SolveVelocityConstraints.s_oldImpulse=new box2d.b2Vec2,box2d.b2MotorJoint.prototype.SolvePositionConstraints=function(a){return!0},box2d.b2MotorJoint.prototype.Dump=function(){if(box2d.DEBUG){var a=this.m_bodyA.m_islandIndex,b=this.m_bodyB.m_islandIndex;box2d.b2Log(" /*box2d.b2MotorJointDef*/ var jd = new box2d.b2MotorJointDef();\n"),box2d.b2Log(" jd.bodyA = bodies[%d];\n",a),box2d.b2Log(" jd.bodyB = bodies[%d];\n",b),box2d.b2Log(" jd.collideConnected = %s;\n",this.m_collideConnected?"true":"false"),box2d.b2Log(" jd.linearOffset.SetXY(%.15f, %.15f);\n",this.m_linearOffset.x,this.m_linearOffset.y),box2d.b2Log(" jd.angularOffset = %.15f;\n",this.m_angularOffset),box2d.b2Log(" jd.maxForce = %.15f;\n",this.m_maxForce),box2d.b2Log(" jd.maxTorque = %.15f;\n",this.m_maxTorque),box2d.b2Log(" jd.correctionFactor = %.15f;\n",this.m_correctionFactor),box2d.b2Log(" joints[%d] = this.m_world.CreateJoint(jd);\n",this.m_index)}},goog.provide("box2d"),goog.require("box2d.b2Settings"),goog.require("box2d.b2Draw"),goog.require("box2d.b2Timer"),goog.require("box2d.b2CircleShape"),goog.require("box2d.b2EdgeShape"),goog.require("box2d.b2ChainShape"),goog.require("box2d.b2PolygonShape"),goog.require("box2d.b2BroadPhase"),goog.require("box2d.b2Distance"),goog.require("box2d.b2DynamicTree"),goog.require("box2d.b2TimeOfImpact"),goog.require("box2d.b2Body"),goog.require("box2d.b2Fixture"),goog.require("box2d.b2WorldCallbacks"),goog.require("box2d.b2TimeStep"),goog.require("box2d.b2World"),goog.require("box2d.b2Contact"),goog.require("box2d.b2AreaJoint"),goog.require("box2d.b2DistanceJoint"),goog.require("box2d.b2FrictionJoint"),goog.require("box2d.b2GearJoint"),goog.require("box2d.b2MotorJoint"),goog.require("box2d.b2MouseJoint"),goog.require("box2d.b2PrismaticJoint"),goog.require("box2d.b2PulleyJoint"),goog.require("box2d.b2RevoluteJoint"),goog.require("box2d.b2RopeJoint"),goog.require("box2d.b2WeldJoint"),goog.require("box2d.b2WheelJoint"),goog.require("box2d.b2Rope"),goog.require("box2d.b2BuoyancyController"),goog.require("box2d.b2ConstantAccelController"),goog.require("box2d.b2ConstantForceController"),goog.require("box2d.b2GravityController"),goog.require("box2d.b2TensorDampingController"),Phaser.Physics.Box2D=function(a,b){this.game=a,this.version="1.0.2",this.ptmRatio=50,this.world=new box2d.b2World(new box2d.b2Vec2(0,0)),this.debugDraw=new Phaser.Physics.Box2D.DefaultDebugDraw(this.mpx(1)),this.world.SetDebugDraw(this.debugDraw),this.contactListener=new Phaser.Physics.Box2D.DefaultContactListener,this.world.SetContactListener(this.contactListener),this.nextBodyId=0,this.nextFixtureId=0,this.gravity=new Phaser.Physics.Box2D.PointProxy(this,this.world,this.world.GetGravity,this.world.SetGravity),this.friction=.2,this.restitution=0,this.density=1,this.frameRate=1/60,this.velocityIterations=8,this.positionIterations=3,this.useElapsedTime=!1,this.paused=!1,this.particleSystem=null;var c=new box2d.b2BodyDef;this.mouseJointBody=this.world.CreateBody(c),this.mouseJoint=null,b.hasOwnProperty("mpx")&&b.hasOwnProperty("pxm")&&(this.mpx=b.mpx,this.pxm=b.pxm),this.walls={left:null,right:null,top:null,bottom:null},this.onBodyAdded=new Phaser.Signal,this.onBodyRemoved=new Phaser.Signal,this._toRemove=[]},Phaser.Physics.Box2D.worldBoundsFilterCategory=32768,Phaser.Physics.Box2D.prototype={getNextBodyId:function(){var a=this.nextBodyId;return this.nextBodyId+=1,a},getNextFixtureId:function(){var a=this.nextFixtureId;return this.nextFixtureId+=1,a},removeBodyNextStep:function(a){this._toRemove.push(a)},preUpdate:function(){for(var a=this._toRemove.length;a--;)this.removeBody(this._toRemove[a]);this._toRemove.length=0},enable:function(a,b){void 0===b&&(b=!0);var c=1;if(Array.isArray(a))for(c=a.length;c--;)a[c]instanceof Phaser.Group?this.enable(a[c].children,b):(this.enableBody(a[c]),b&&a[c].hasOwnProperty("children")&&a[c].children.length>0&&this.enable(a[c],!0));else a instanceof Phaser.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new Phaser.Physics.Box2D.Body(this.game,a,a.x,a.y,2),a.anchor.set(.5))},setBoundsToWorld:function(a,b,c,d,e,f){void 0===a&&(a=!0),void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=1),void 0===f&&(e=4294967295),this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e,f)},setBounds:function(a,b,c,d,e,f,g,h,i,j){void 0===e&&(e=!0),void 0===f&&(f=!0),void 0===g&&(g=!0),void 0===h&&(h=!0),void 0===i&&(i=1),void 0===j&&(j=4294967295),this.walls.left&&this.removeBody(this.walls.left),this.walls.right&&this.removeBody(this.walls.right),this.walls.top&&this.removeBody(this.walls.top),this.walls.bottom&&this.removeBody(this.walls.bottom);var k=new box2d.b2PolygonShape,l=new box2d.b2FixtureDef;l.shape=k,l.filter.categoryBits=Phaser.Physics.Box2D.worldBoundsFilterCategory,l.filter.maskBits=65535;var m=this.pxm(100),n=new PIXI.Rectangle(a,b,c,d);if(e){this.walls.left=this.createBody(0,0,0),k.SetAsOrientedBox(m,this.pxm(n.height)+m,new box2d.b2Vec2(m-this.pxm(n.x),-this.pxm(n.y)),0);var o=this.walls.left.data.CreateFixture(l);o.id=this.getNextFixtureId()}if(f){this.walls.right=this.createBody(0,0,0),k.SetAsOrientedBox(m,this.pxm(n.height)+m,new box2d.b2Vec2(this.pxm(-n.width)-m-this.pxm(n.x),-this.pxm(n.y)),0);var o=this.walls.right.data.CreateFixture(l);o.id=this.getNextFixtureId()}if(g){this.walls.top=this.createBody(0,0,0),k.SetAsOrientedBox(this.pxm(n.width)+m,m,new box2d.b2Vec2(-this.pxm(n.x),m-this.pxm(n.y)),0);var o=this.walls.top.data.CreateFixture(l);o.id=this.getNextFixtureId()}if(h){this.walls.bottom=this.createBody(0,0,0),k.SetAsOrientedBox(this.pxm(n.width)+m,m,new box2d.b2Vec2(-this.pxm(n.x),this.pxm(-n.height)-m-this.pxm(n.y)),0);var o=this.walls.bottom.data.CreateFixture(l);o.id=this.getNextFixtureId()}},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){
|
||
this.paused||(this.useElapsedTime?this.world.Step(this.game.time.physicsElapsed,this.velocityIterations,this.positionIterations):this.world.Step(this.frameRate,this.velocityIterations,this.positionIterations))},reset:function(){this.clear()},clear:function(){var a=this.world.GetGravity().Clone();this.world=new box2d.b2World(a),this.world.SetDebugDraw(this.debugDraw),this.world.SetContactListener(this.contactListener),this._toRemove=[]},destroy:function(){this.clear(),this.gravity=null,this.world=null,this.game=null},createBody:function(a,b,c){return new Phaser.Physics.Box2D.Body(this.game,null,a,b,c,this)},createCircle:function(a,b,c,d,e){return this.createBody(a,b,2).setCircle(c,d,e)},createRectangle:function(a,b,c,d,e,f,g){return this.createBody(a,b,2).setRectangle(c,d,e,f,g)},createPolygon:function(a,b,c,d,e){return this.createBody(a,b,2).setPolygon(c,d,e)},addBody:function(a){return!a.data.world&&(a.data=this.world.CreateBody(a.bodyDef),a.data.world=this.world,a.data.parent=a,this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.DestroyBody(a.data),this.onBodyRemoved.dispatch(a)),a},getBodies:function(){for(var a=[],b=this.world.GetBodyList();b;b=b.GetNext())a.push(b);return a},getBody:function(a){return a instanceof box2d.b2Body?a:a instanceof Phaser.Physics.Box2D.Body?a.data:a.body&&a.body.type===Phaser.Physics.BOX2D?a.body.data:null},toJSON:function(){return this.world.toJSON()},mpx:function(a){return a*=this.ptmRatio},pxm:function(a){return a/this.ptmRatio},renderDebugDraw:function(a){if(this.game.physics.box2d){var b=this.game.physics.box2d;b.debugDraw.start(a),b.world.DrawDebugData(),b.debugDraw.stop()}},renderBodyInfo:function(a,b){a.line("Position: x: "+b.x.toFixed(3)+" y: "+b.y.toFixed(3)),a.line("Rotation: "+b.rotation.toFixed(3)+" degrees"),a.line("Velocity: x: "+b.velocity.x.toFixed(3)+" y: "+b.velocity.y.toFixed(3)),a.line("Angular velocity: "+b.angularVelocity.toFixed(3)+" degrees/sec")},getFixturesAtPoint:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.pxm(-a),f=this.pxm(-b),g=new box2d.b2Vec2(e,f),h=new box2d.b2AABB,i=new box2d.b2Vec2;i.SetXY(.001,.001),box2d.b2SubVV(g,i,h.lowerBound),box2d.b2AddVV(g,i,h.upperBound);var j=[],k=function(a){return!(!d||a.GetBody().GetType()===box2d.b2BodyType.b2_dynamicBody)||(!a.TestPoint(g)||(j.push(a),!c))};return this.world.QueryAABB(k,h),j},getBodiesAtPoint:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getFixturesAtPoint(a,b,c,d);if(e.length<1)return e;for(var f=[],g=0;g<e.length;g++)f.push(e[g].GetBody().parent);return f.filter(function(a,b){return f.indexOf(a)===b}),f},mouseDragStart:function(a){this.mouseDragEnd();var b=this.getFixturesAtPoint(a.x,a.y,!0,!0);if(!(b.length<1)){var c=this.pxm(-a.x),d=this.pxm(-a.y),e=new box2d.b2Vec2(c,d),f=new box2d.b2MouseJointDef;f.bodyA=this.mouseJointBody,f.bodyB=b[0].GetBody(),f.target.Copy(e),f.maxForce=1e3*f.bodyB.GetMass(),this.mouseJoint=this.world.CreateJoint(f),f.bodyB.SetAwake(!0)}},mouseDragMove:function(a){if(this.mouseJoint){var b=this.pxm(-a.x),c=this.pxm(-a.y),d=new box2d.b2Vec2(b,c);this.mouseJoint.SetTarget(d)}},mouseDragEnd:function(){this.mouseJoint&&(this.world.DestroyJoint(this.mouseJoint),this.mouseJoint=null)},distanceJoint:function(a,b,c,d,e,f,g,h,i){void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),void 0===i&&(i=0),d=this.pxm(-d),e=this.pxm(-e),f=this.pxm(-f),g=this.pxm(-g),a.body&&(a=a.body),b.body&&(b=b.body);var j=new box2d.b2DistanceJointDef;if(j.bodyA=a.data,j.bodyB=b.data,j.localAnchorA.SetXY(d,e),j.localAnchorB.SetXY(f,g),null===c||void 0===c){var k=new box2d.b2Vec2,l=new box2d.b2Vec2;j.bodyA.GetWorldPoint(j.localAnchorA,k),j.bodyB.GetWorldPoint(j.localAnchorB,l),k.SelfSub(l),c=k.Length()}else c=this.pxm(c);return j.length=c,j.frequencyHz=h,j.dampingRatio=i,this.world.CreateJoint(j)},ropeJoint:function(a,b,c,d,e,f,g){void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=0),void 0===g&&(g=0),d=this.pxm(-d),e=this.pxm(-e),f=this.pxm(-f),g=this.pxm(-g),a.body&&(a=a.body),b.body&&(b=b.body);var h=new box2d.b2RopeJointDef;if(h.bodyA=a.data,h.bodyB=b.data,h.localAnchorA.SetXY(d,e),h.localAnchorB.SetXY(f,g),null===c||void 0===c){var i=new box2d.b2Vec2,j=new box2d.b2Vec2;h.bodyA.GetWorldPoint(h.localAnchorA,i),h.bodyB.GetWorldPoint(h.localAnchorB,j),i.SelfSub(j),c=i.Length()}else c=this.pxm(c);return h.maxLength=c,this.world.CreateJoint(h)},revoluteJoint:function(a,b,c,d,e,f,g,h,i,j,k,l){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),void 0===i&&(i=!1),void 0===j&&(j=0),void 0===k&&(k=0),void 0===l&&(l=!1),c=this.pxm(-c),d=this.pxm(-d),e=this.pxm(-e),f=this.pxm(-f),a.body&&(a=a.body),b.body&&(b=b.body);var m=new box2d.b2RevoluteJointDef;return m.bodyA=a.data,m.bodyB=b.data,m.localAnchorA.SetXY(c,d),m.localAnchorB.SetXY(e,f),m.motorSpeed=Phaser.Math.degToRad(-g),m.maxMotorTorque=h,m.enableMotor=i,m.lowerAngle=Phaser.Math.degToRad(j),m.upperAngle=Phaser.Math.degToRad(k),m.enableLimit=l,this.world.CreateJoint(m)},prismaticJoint:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){void 0===c&&(c=1),void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),void 0===i&&(i=0),void 0===j&&(j=0),void 0===l&&(l=0),void 0===m&&(m=0),void 0===n&&(n=!1),void 0===k&&(k=!1),void 0===o&&(o=0),c*=-1,d*=-1,e=this.pxm(-e),f=this.pxm(-f),g=this.pxm(-g),h=this.pxm(-h),i=this.pxm(i),l=this.pxm(l),m=this.pxm(m),a.body&&(a=a.body),b.body&&(b=b.body);var p=new box2d.b2PrismaticJointDef;return p.bodyA=a.data,p.bodyB=b.data,p.localAxisA.SetXY(c,d),p.localAnchorA.SetXY(e,f),p.localAnchorB.SetXY(g,h),p.motorSpeed=i,p.maxMotorForce=j,p.enableMotor=k,p.lowerTranslation=l,p.upperTranslation=m,p.enableLimit=n,p.referenceAngle=Phaser.Math.degToRad(-o),this.world.CreateJoint(p)},frictionJoint:function(a,b,c,d,e,f,g,h){void 0===e&&(e=0),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),void 0===c&&(c=0),void 0===d&&(d=0),e=this.pxm(-e),f=this.pxm(-f),g=this.pxm(-g),h=this.pxm(-h),a.body&&(a=a.body),b.body&&(b=b.body);var i=new box2d.b2FrictionJointDef;return i.bodyA=a.data,i.bodyB=b.data,i.localAnchorA.SetXY(e,f),i.localAnchorB.SetXY(g,h),i.maxForce=c,i.maxTorque=d,this.world.CreateJoint(i)},weldJoint:function(a,b,c,d,e,f,g,h){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),c=this.pxm(-c),d=this.pxm(-d),e=this.pxm(-e),f=this.pxm(-f),a.body&&(a=a.body),b.body&&(b=b.body);var i=new box2d.b2WeldJointDef;return i.bodyA=a.data,i.bodyB=b.data,i.localAnchorA.SetXY(c,d),i.localAnchorB.SetXY(e,f),i.frequencyHz=g,i.dampingRatio=h,this.world.CreateJoint(i)},motorJoint:function(a,b,c,d,e,f,g,h){void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=1),f=this.pxm(-f),g=this.pxm(-g),a.body&&(a=a.body),b.body&&(b=b.body);var i=new box2d.b2MotorJointDef;return i.bodyA=a.data,i.bodyB=b.data,i.linearOffset.SetXY(f,g),i.maxForce=c,i.maxTorque=d,i.angularOffset=Phaser.Math.degToRad(-h),i.correctionFactor=e,this.world.CreateJoint(i)},wheelJoint:function(a,b,c,d,e,f,g,h,i,j,k,l,m){void 0===g&&(g=0),void 0===h&&(h=1),void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=0),void 0===k&&(k=0),void 0===l&&(l=0),void 0===m&&(m=!1),void 0===i&&(i=0),void 0===j&&(j=0),g*=-1,h*=-1,c=this.pxm(-c),d=this.pxm(-d),e=this.pxm(-e),f=this.pxm(-f),a.body&&(a=a.body),b.body&&(b=b.body);var n=new box2d.b2WheelJointDef;return n.bodyA=a.data,n.bodyB=b.data,n.localAxisA.SetXY(g,h),n.localAnchorA.SetXY(c,d),n.localAnchorB.SetXY(e,f),n.motorSpeed=Phaser.Math.degToRad(-k),n.maxMotorTorque=l,n.enableMotor=m,n.frequencyHz=i,n.dampingRatio=j,this.world.CreateJoint(n)},pulleyJoint:function(a,b,c,d,e,f,g,h,i,j,k,l,m){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),void 0===i&&(i=0),void 0===j&&(j=0),void 0===k&&(k=1),void 0===l&&(l=100),void 0===m&&(m=100),c=this.pxm(-c),d=this.pxm(-d),e=this.pxm(-e),f=this.pxm(-f),g=this.pxm(-g),h=this.pxm(-h),i=this.pxm(-i),j=this.pxm(-j),l=this.pxm(l),m=this.pxm(m),a.body&&(a=a.body),b.body&&(b=b.body);var n=new box2d.b2PulleyJointDef;return n.bodyA=a.data,n.bodyB=b.data,n.localAnchorA.SetXY(c,d),n.localAnchorB.SetXY(e,f),n.groundAnchorA.SetXY(g,h),n.groundAnchorB.SetXY(i,j),n.lengthA=l,n.lengthB=m,n.ratio=k,this.world.CreateJoint(n)},gearJoint:function(a,b,c){void 0===c&&(c=1);var d=new box2d.b2GearJointDef;return d.joint1=a,d.joint2=b,d.ratio=-c,d.bodyA=a.GetBodyA(),d.bodyB=b.GetBodyB(),this.world.CreateJoint(d)},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),void 0===c&&(c=!0),void 0===d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;h<i;h++){e=0;for(var j=0,k=a.layers[b].width;j<k;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=new Phaser.Physics.Box2D.Body(this.game,null,f,g,0);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},raycast:function(a,b,c,d,e,f){void 0===e&&(e=!0),void 0===f&&(f=null),a=this.pxm(-a),b=this.pxm(-b),c=this.pxm(-c),d=this.pxm(-d);var g=new box2d.b2Vec2(a,b),h=new box2d.b2Vec2(c,d),i=[],j=new Phaser.Physics.Box2D.RayCastCallback(this,e,f);this.world.RayCast(j,g,h);for(var k=0;k<j.hits.length;k++){var l=j.hits[k];l.point={x:this.mpx(-l.point.x),y:this.mpx(-l.point.y)},l.normal={x:-l.normal.x,y:-l.normal.y},i.push(l)}return i},queryAABB:function(a,b,c,d){a=this.pxm(-a),b=this.pxm(-b),c=this.pxm(c),d=this.pxm(d);var e=new box2d.b2AABB;e.lowerBound.SetXY(a-c,b-d),e.upperBound.SetXY(a,b);var f=new Phaser.Physics.Box2D.QueryCallback(this);return this.world.QueryAABB(f,e),f.hits},queryFixture:function(a){var b=new Phaser.Physics.Box2D.QueryCallback(this);return this.world.QueryShape(b,a.GetShape(),a.GetBody().GetTransform()),b.hits},setPTMRatio:function(a){this.ptmRatio=a,this.debugDraw=new Phaser.Physics.Box2D.DefaultDebugDraw(this.ptmRatio),this.world.SetDebugDraw(this.debugDraw)}},Phaser.Physics.Box2D.RayCastCallback=function(a,b,c){this.world=a,this.closestHitOnly=b,this.filterFunction=c,this.hits=[]},goog.inherits(Phaser.Physics.Box2D.RayCastCallback,box2d.b2RayCastCallback),Phaser.Physics.Box2D.RayCastCallback.prototype.ReportFixture=function(a,b,c,d){if(null!==this.filterFunction){var e={x:this.world.mpx(-b.x),y:this.world.mpx(-b.y)},f={x:-c.x,y:-c.y},g=a.GetBody().parent;if(!this.filterFunction.call(this,g,a,e,f))return-1}this.closestHitOnly&&(this.hits=[]);var h={};return h.body=a.GetBody().parent,h.fixture=a,h.point={x:b.x,y:b.y},h.normal={x:c.x,y:c.y},this.hits.push(h),this.closestHitOnly?d:1},Phaser.Physics.Box2D.QueryCallback=function(a){this.world=a,this.hits=[]},goog.inherits(Phaser.Physics.Box2D.QueryCallback,box2d.b2QueryCallback),Phaser.Physics.Box2D.QueryCallback.prototype.ReportFixture=function(a){var b={};return b.body=a.GetBody().parent,b.fixture=a,this.hits.push(b),!0},Phaser.Physics.Box2D.renderBody=function(a,b,c,d){c=c||"rgb(255,255,255)",void 0===d&&(d=!0);var e=b.data,f=e.GetTransform(),g=b.world;f.p.x+=-b.game.camera.x/g.ptmRatio,f.p.y-=-b.game.camera.y/g.ptmRatio,g.debugDraw.start(a),g.debugDraw.PushTransform(f);var h=Phaser.Color.webToColor(c),i=g.debugDraw.color;i.r=h.r/255,i.g=h.g/255,i.b=h.b/255;for(var j=e.GetFixtureList();j;j=j.GetNext())g.world.DrawShape(j,i);g.debugDraw.PopTransform(),g.debugDraw.stop()},Phaser.Physics.Box2D.Body=function(a,b,c,d,e,f){void 0===b&&(b=null),void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=2),void 0===f&&(f=a.physics.box2d),this.game=a,this.world=f,this.id=this.world.getNextBodyId(),this.sprite=b,this.type=Phaser.Physics.BOX2D,this.offset=new Phaser.Point,this.bodyDef=new box2d.b2BodyDef,this.bodyDef.position.SetXY(-this.world.pxm(c),-this.world.pxm(d)),0===e?this.bodyDef.type=box2d.b2BodyType.b2_staticBody:1===e?this.bodyDef.type=box2d.b2BodyType.b2_kinematicBody:2===e?this.bodyDef.type=box2d.b2BodyType.b2_dynamicBody:3===e&&(this.bodyDef.type=box2d.b2BodyType.b2_bulletBody),this.data=this.world.world.CreateBody(this.bodyDef),this.data.world=this.world.world,this.data.parent=this,this.velocity=new Phaser.Physics.Box2D.PointProxy(this.world,this.data,this.data.GetLinearVelocity,this.data.SetLinearVelocity),this.removeNextStep=!1,this._fixtureContactCallbacks={},this._fixtureContactCallbackContext={},this._bodyContactCallbacks={},this._bodyContactCallbackContext={},this._categoryContactCallbacks={},this._categoryContactCallbackContext={},this._fixturePresolveCallbacks={},this._fixturePresolveCallbackContext={},this._bodyPresolveCallbacks={},this._bodyPresolveCallbackContext={},this._categoryPresolveCallbacks={},this._categoryPresolveCallbackContext={},this._fixturePostsolveCallbacks={},this._fixturePostsolveCallbackContext={},this._bodyPostsolveCallbacks={},this._bodyPostsolveCallbackContext={},this._categoryPostsolveCallbacks={},this._categoryPostsolveCallbackContext={},b&&this.setRectangleFromSprite(b)},Phaser.Physics.Box2D.Body.prototype={setBodyContactCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyContactCallbacks[d],delete this._bodyContactCallbackContext[d]):(this._bodyContactCallbacks[d]=b,this._bodyContactCallbackContext[d]=c))},setFixtureContactCallback:function(a,b,c){var d=a.id;d>-1&&(null===b?(delete this._fixtureContactCallbacks[d],delete this._fixtureContactCallbackContext[d]):(this._fixtureContactCallbacks[d]=b,this._fixtureContactCallbackContext[d]=c))},setCategoryContactCallback:function(a,b,c){null===b?(delete this._categoryContactCallbacks[a],delete this._categoryContactCallbacksContext[a]):(this._categoryContactCallbacks[a]=b,this._categoryContactCallbackContext[a]=c)},setBodyPresolveCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyPresolveCallbacks[d],delete this._bodyPresolveCallbackContext[d]):(this._bodyPresolveCallbacks[d]=b,this._bodyPresolveCallbackContext[d]=c))},setFixturePresolveCallback:function(a,b,c){var d=a.id;d>-1&&(null===b?(delete this._fixturePresolveCallbacks[d],delete this._fixturePresolveCallbackContext[d]):(this._fixturePresolveCallbacks[d]=b,this._fixturePresolveCallbackContext[d]=c))},setCategoryPresolveCallback:function(a,b,c){null===b?(delete this._categoryPresolveCallbacks[a],delete this._categoryPresolveCallbacksContext[a]):(this._categoryPresolveCallbacks[a]=b,this._categoryPresolveCallbackContext[a]=c)},setBodyPostsolveCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyPostsolveCallbacks[d],delete this._bodyPostsolveCallbackContext[d]):(this._bodyPostsolveCallbacks[d]=b,this._bodyPostsolveCallbackContext[d]=c))},setFixturePostsolveCallback:function(a,b,c){var d=a.id;d>-1&&(null===b?(delete this._fixturePostsolveCallbacks[d],delete this._fixturePostsolveCallbackContext[d]):(this._fixturePostsolveCallbacks[d]=b,this._fixturePostsolveCallbackContext[d]=c))},setCategoryPostsolveCallback:function(a,b,c){null===b?(delete this._categoryPostsolveCallbacks[a],delete this._categoryPostsolveCallbacksContext[a]):(this._categoryPostsolveCallbacks[a]=b,this._categoryPostsolveCallbackContext[a]=c)},setCollisionCategory:function(a,b){if(void 0===b)for(var c=this.data.GetFixtureList();c;c=c.GetNext()){var d=c.GetFilterData();d.categoryBits=a}else{var d=b.GetFilterData();d.categoryBits=a}},setCollisionMask:function(a,b){if(void 0===b)for(var c=this.data.GetFixtureList();c;c=c.GetNext()){var d=c.GetFilterData();d.maskBits=a}else{var d=b.GetFilterData();d.maskBits=a}},applyForce:function(a,b){this.data.ApplyForce(new box2d.b2Vec2(-a,-b),this.data.GetWorldCenter(),!0)},setZeroRotation:function(){this.data.SetAngularVelocity(0)},setZeroVelocity:function(){this.data.SetLinearVelocity(box2d.b2Vec2.ZERO)},setZeroDamping:function(){this.data.SetLinearDamping(0),this.data.SetAngularDamping(0)},toLocalPoint:function(a,b){return a.x=this.world.pxm(-b.x),a.y=this.world.pxm(-b.y),this.data.GetLocalPoint(a,a),a.x=this.world.mpx(-a.x),a.y=this.world.mpx(-a.y),a},toWorldPoint:function(a,b){return a.x=this.world.pxm(-b.x),a.y=this.world.pxm(-b.y),this.data.GetWorldPoint(a,a),a.x=this.world.mpx(-a.x),a.y=this.world.mpx(-a.y),a},toLocalVector:function(a,b){return a.x=this.world.pxm(-b.x),a.y=this.world.pxm(-b.y),this.data.GetLocalVector(a,a),a.x=this.world.mpx(-a.x),a.y=this.world.mpx(-a.y),a},toWorldVector:function(a,b){a.x=this.world.pxm(-b.x),a.y=this.world.pxm(-b.y),this.data.GetWorldVector(a,a),a.x=this.world.mpx(-a.x),a.y=this.world.mpx(-a.y)},rotateLeft:function(a){this.data.SetAngularVelocity(this.world.pxm(-a))},rotateRight:function(a){this.data.SetAngularVelocity(this.world.pxm(a))},moveForward:function(a){var b=this.world.pxm(a),c=new box2d.b2Vec2;this.toWorldVector(c,{x:0,y:b}),this.data.SetLinearVelocity(c)},moveBackward:function(a){var b=this.world.pxm(-a),c=new box2d.b2Vec2;this.toWorldVector(c,{x:0,y:b}),this.data.SetLinearVelocity(c)},thrust:function(a){var b=this.world.pxm(a)*this.data.GetMass(),c=new box2d.b2Vec2;this.toWorldVector(c,{x:0,y:b}),this.data.ApplyForce(c,this.data.GetWorldCenter(),!0)},reverse:function(a){var b=-this.world.pxm(a)*this.data.GetMass(),c=new box2d.b2Vec2;this.toWorldVector(c,{x:0,y:b}),this.data.ApplyForce(c,this.data.GetWorldCenter(),!0)},moveLeft:function(a){this.velocity.x=-a},moveRight:function(a){this.velocity.x=a},moveUp:function(a){this.velocity.y=-a},moveDown:function(a){this.velocity.y=a},preUpdate:function(){this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite&&(this.sprite.x=this.world.mpx(-this.data.GetPosition().x),this.sprite.y=this.world.mpx(-this.data.GetPosition().y),this.sprite.rotation=this.data.GetAngle())},kill:function(){this.data.SetActive(!1)},reset:function(a,b){this.data.SetPositionXY(this.world.pxm(-a),this.world.pxm(-b)),this.data.SetActive(!0)},removeFromWorld:function(){this.data.world===this.game.physics.box2d.world&&this.game.physics.box2d.removeBodyNextStep(this)},destroy:function(){this.removeFromWorld(),this._bodyCallbacks={},this._bodyCallbackContext={},this._categoryCallbacks={},this._categoryCallbackContext={},this.sprite=null},clearFixtures:function(){for(var a=[],b=this.data.GetFixtureList();b;b=b.GetNext())a.push(b);for(var c=a.length;c--;)this.data.DestroyFixture(a[c])},addCircle:function(a,b,c){var d=new box2d.b2CircleShape(this.world.pxm(a));d.m_p.SetXY(this.world.pxm(-b),this.world.pxm(-c));var e=new box2d.b2FixtureDef;e.shape=d,e.friction=this.world.friction,e.restitution=this.world.restitution,e.density=this.world.density;var f=this.data.CreateFixture(e);return f.id=this.world.getNextFixtureId(),f},addRectangle:function(a,b,c,d,e){void 0===a&&(a=16),void 0===b&&(b=16),void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=0),a=this.world.pxm(a),b=this.world.pxm(b);var f=new box2d.b2PolygonShape;f.SetAsOrientedBox(.5*a,.5*b,new box2d.b2Vec2(this.world.pxm(-c),this.world.pxm(-d)),e);var g=new box2d.b2FixtureDef;g.shape=f,g.friction=this.world.friction,g.restitution=this.world.restitution,g.density=this.world.density;var h=this.data.CreateFixture(g);return h.id=this.world.getNextFixtureId(),h},addEdge:function(a,b,c,d){var e=new box2d.b2EdgeShape;e.Set(new box2d.b2Vec2(this.world.pxm(-a),this.world.pxm(-b)),new box2d.b2Vec2(this.world.pxm(-c),this.world.pxm(-d)));var f=new box2d.b2FixtureDef;f.shape=e,f.friction=this.world.friction,f.restitution=this.world.restitution,f.density=this.world.density;var g=this.data.CreateFixture(f);return g.id=this.world.getNextFixtureId(),g},addChain:function(a,b,c,d){if(void 0===a)return null;if(a.length<4)return null;void 0===b&&(b=0),void 0===c&&(c=(a.length-b)/2);for(var e=[],f=b;f<b+c;f++)e.push(new box2d.b2Vec2(this.world.pxm(-a[2*f]),this.world.pxm(-a[2*f+1])));var g=new box2d.b2ChainShape;d?g.CreateLoop(e,e.length):g.CreateChain(e,e.length);var h=new box2d.b2FixtureDef;h.shape=g,h.friction=this.world.friction,h.restitution=this.world.restitution,h.density=this.world.density;var i=this.data.CreateFixture(h);return i.id=this.world.getNextFixtureId(),i},addLoop:function(a,b,c){return this.addChain(a,b,c,!0)},addPolygon:function(a,b,c){if(void 0===a)return null;if(a.length<6)return null;void 0===b&&(b=0),void 0===c&&(c=(a.length-b)/2);for(var d=[],e=b;e<b+c;e++)d.push({x:this.world.pxm(-a[2*e]),y:this.world.pxm(-a[2*e+1])});var f=new Phaser.Physics.Box2D.Polygon;f.setFromXYObjects(d);for(var g=f.decompose(d),h=null,e=0;e<g.length;e++){var i=new box2d.b2PolygonShape;i.Set(g[e],g[e].length);var j=new box2d.b2FixtureDef;j.shape=i,j.friction=this.world.friction,j.restitution=this.world.restitution,j.density=this.world.density,h=this.data.CreateFixture(j),h.id=this.world.getNextFixtureId()}return h},removeFixture:function(a){return a.GetBody()==this.data&&(this.data.DestroyFixture(a),!0)},setCircle:function(a,b,c){return void 0===a&&(a=32),void 0===b&&(b=0),void 0===c&&(c=0),this.clearFixtures(),this.addCircle(a,b,c)},setRectangle:function(a,b,c,d,e){return this.clearFixtures(),this.addRectangle(a,b,c,d,e)},setRectangleFromSprite:function(a){return void 0===a&&(a=this.sprite),this.clearFixtures(),this.addRectangle(a.width,a.height,0,0,a.rotation)},setEdge:function(a,b,c,d){return void 0===a&&(a=0),void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d=0),this.clearFixtures(),this.addEdge(a,b,c,d)},setChain:function(a,b,c,d){return void 0===a?null:a.length<4?null:(void 0===b&&(b=0),void 0===c&&(c=(a.length-b)/2),this.clearFixtures(),this.addChain(a,b,c,d))},setLoop:function(a,b,c){return this.setChain(a,b,c,!0)},setPolygon:function(a,b,c){return void 0===a?null:a.length<4?null:(void 0===b&&(b=0),void 0===c&&(c=(a.length-b)/2),this.clearFixtures(),this.addPolygon(a,b,c))},loadPolygon:function(a,b,c){void 0===c&&(c=null);for(var d=this.game.cache.getPhysicsData(a,b),e=0;e<d.length;e++){for(var f=[],g=0;g<d[e].shape.length;g+=2)f.push(new box2d.b2Vec2(this.world.pxm(-d[e].shape[g]),this.world.pxm(-d[e].shape[g+1])));if(c)for(var h=this.world.pxm(-.5*c.width),i=this.world.pxm(-.5*c.height),j=0;j<f.length;j++)f[j].x-=h,f[j].y-=i;var k=new box2d.b2PolygonShape;k.Set(f,f.length);var l=new box2d.b2FixtureDef;l.shape=k,l.friction=d[e].friction,l.restitution=d[e].bounce,l.density=d[e].density,l.filter.categoryBits=d[e].filter.categoryBits,l.filter.maskBits=d[e].filter.maskBits;this.data.CreateFixture(l).id=this.world.getNextFixtureId()}return!0},containsPoint:function(a){for(var b=this.world.pxm(-a.x),c=this.world.pxm(-a.y),d=new box2d.b2Vec2(b,c),e=this.data.GetFixtureList();e;e=e.GetNext())if(e.TestPoint(d))return!0;return!1}},Phaser.Physics.Box2D.Body.prototype.constructor=Phaser.Physics.Box2D.Body,Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"static",{get:function(){return this.data.GetType()===box2d.b2BodyType.b2_staticBody},set:function(a){a&&this.data.GetType()!==box2d.b2BodyType.b2_staticBody?this.data.SetType(box2d.b2BodyType.b2_staticBody):a||this.data.GetType()!==box2d.b2BodyType.b2_staticBody||this.data.SetType(box2d.b2BodyType.b2_dynamicBody)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"dynamic",{get:function(){return this.data.GetType()===box2d.b2BodyType.b2_dynamicBody},set:function(a){a&&this.data.GetType()!==box2d.b2BodyType.b2_dynamicBody?this.data.SetType(box2d.b2BodyType.b2_dynamicBody):a||this.data.GetType()!==box2d.b2BodyType.b2_dynamicBody||this.data.SetType(box2d.b2BodyType.b2_staticBody)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"kinematic",{get:function(){return this.data.GetType()===box2d.b2BodyType.b2_kinematicBody},set:function(a){a&&this.data.GetType()!==box2d.b2BodyType.b2_kinematicBody?this.data.SetType(box2d.b2BodyType.b2_kinematicBody):a||this.data.GetType()!==box2d.b2BodyType.b2_kinematicBody||this.data.SetType(box2d.b2BodyType.b2_staticBody)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"angle",{get:function(){return Phaser.Math.wrapAngle(Phaser.Math.radToDeg(this.data.GetAngle()))},set:function(a){this.data.SetAngle(Phaser.Math.degToRad(Phaser.Math.wrapAngle(a)))}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"linearDamping",{get:function(){return this.data.GetLinearDamping()},set:function(a){this.data.SetLinearDamping(a)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"angularDamping",{get:function(){return this.data.GetAngularDamping()},set:function(a){this.data.SetAngularDamping(a)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"angularVelocity",{get:function(){return this.data.GetAngularVelocity()},set:function(a){this.data.SetAngularVelocity(a)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"fixedRotation",{get:function(){return this.data.IsFixedRotation()},set:function(a){this.data.SetFixedRotation(a)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"gravityScale",{get:function(){return this.data.GetGravityScale()},set:function(a){this.data.SetGravityScale(a)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"friction",{get:function(){var a=this.data.GetFixtureList();return a?a.GetFriction():0},set:function(a){for(var b=this.data.GetFixtureList();b;b=b.GetNext())b.SetFriction(a),b.Refilter()}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"restitution",{get:function(){var a=this.data.GetFixtureList();return a?a.GetRestitution():0},set:function(a){for(var b=this.data.GetFixtureList();b;b=b.GetNext())b.SetRestitution(a),b.Refilter()}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"sensor",{get:function(){var a=this.data.GetFixtureList();return a?a.IsSensor():0},set:function(a){for(var b=this.data.GetFixtureList();b;b=b.GetNext())b.SetSensor(a),b.Refilter()}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"bullet",{get:function(){return this.data.IsBullet()},set:function(a){this.data.SetBullet(a)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"mass",{get:function(){return this.data.GetMass()},set:function(a){if(0===a)this.data.SetType(box2d.b2BodyType.b2_staticBody);else{this.data.GetType()!==box2d.b2BodyType.b2_dynamicBody&&this.data.SetType(box2d.b2BodyType.b2_dynamicBody);for(var b=this.data.GetMass(),c=a/b,d=this.data.GetFixtureList();d;d=d.GetNext()){var e=d.GetDensity();d.SetDensity(e*c)}this.data.ResetMassData()}}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"rotation",{get:function(){return this.data.GetAngle()},set:function(a){this.data.SetAngle(a)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"x",{get:function(){return this.world.mpx(-this.data.GetPosition().x)},set:function(a){this.data.SetPositionXY(this.world.pxm(-a),this.data.GetPosition().y)}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"y",{get:function(){return this.world.mpx(-this.data.GetPosition().y)},set:function(a){this.data.SetPositionXY(this.data.GetPosition().x,this.world.pxm(-a))}}),Object.defineProperty(Phaser.Physics.Box2D.Body.prototype,"collideWorldBounds",{get:function(){for(var a=this.data.GetFixtureList();a;a=a.GetNext()){if(a.GetFilterData().maskBits&Phaser.Physics.Box2D.worldBoundsFilterCategory)return!0}return!1},set:function(a){for(var b=this.data.GetFixtureList();b;b=b.GetNext()){var c=b.GetFilterData();a?c.maskBits|=Phaser.Physics.Box2D.worldBoundsFilterCategory:c.maskBits&=~Phaser.Physics.Box2D.worldBoundsFilterCategory}}}),Phaser.Physics.Box2D.PointProxy=function(a,b,c,d){this.world=a,this.object=b,this.gettor=c,this.settor=d},Phaser.Physics.Box2D.PointProxy.prototype.constructor=Phaser.Physics.Box2D.PointProxy,Object.defineProperty(Phaser.Physics.Box2D.PointProxy.prototype,"x",{get:function(){return this.world.mpx(-this.gettor.call(this.object).x)},set:function(a){var b=this.gettor.call(this.object);b.x=this.world.pxm(-a),this.settor.call(this.object,b)}}),Object.defineProperty(Phaser.Physics.Box2D.PointProxy.prototype,"y",{get:function(){return this.world.mpx(-this.gettor.call(this.object).y)},set:function(a){var b=this.gettor.call(this.object);b.y=this.world.pxm(-a),this.settor.call(this.object,b)}}),Phaser.Physics.Box2D.DefaultDebugDraw=function(a){this.context=null,this.pixelsPerMeter=a,this.flags=box2d.b2DrawFlags.e_shapeBit},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.color=new box2d.b2Color(1,1,1),Phaser.Physics.Box2D.DefaultDebugDraw.prototype.SetFlags=function(a){this.flags=a},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.GetFlags=function(){return this.flags},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.start=function(a){this.context=a,this.context.save(),this.context.scale(-1,-1),this.context.scale(this.pixelsPerMeter,this.pixelsPerMeter)},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.stop=function(){this.context.restore()},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.PushTransform=function(a){var b=this.context;b.save(),b.translate(a.p.x,a.p.y),b.rotate(a.q.GetAngleRadians())},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.PopTransform=function(){this.context.restore()},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.DrawPolygon=function(a,b,c){if(b){var d=this.context;d.lineWidth=1/this.pixelsPerMeter,d.beginPath(),d.moveTo(a[0].x,a[0].y);for(var e=1;e<b;e++)d.lineTo(a[e].x,a[e].y);d.closePath(),d.strokeStyle=c.MakeStyleString(1),d.stroke()}},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.DrawSolidPolygon=function(a,b,c){if(b){var d=this.context;d.lineWidth=1/this.pixelsPerMeter,d.beginPath(),d.moveTo(a[0].x,a[0].y);for(var e=1;e<b;e++)d.lineTo(a[e].x,a[e].y);d.closePath(),d.fillStyle=c.MakeStyleString(.5),d.fill(),d.strokeStyle=c.MakeStyleString(1),d.stroke()}},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.DrawCircle=function(a,b,c){if(b){var d=this.context;d.beginPath(),d.arc(a.x,a.y,b,0,2*Math.PI,!0),d.strokeStyle=c.MakeStyleString(1),d.stroke()}},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.DrawSolidCircle=function(a,b,c,d){if(b){var e=this.context;e.lineWidth=1/this.pixelsPerMeter;var f=a.x,g=a.y;e.beginPath(),e.arc(f,g,b,0,2*Math.PI,!0),e.moveTo(f,g),e.lineTo(f+c.x*b,g+c.y*b),e.fillStyle=d.MakeStyleString(.5),e.fill(),e.strokeStyle=d.MakeStyleString(1),e.stroke()}},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.DrawSegment=function(a,b,c){var d=this.context;d.lineWidth=1/this.pixelsPerMeter,d.beginPath(),d.moveTo(a.x,a.y),d.lineTo(b.x,b.y),d.strokeStyle=c.MakeStyleString(1),d.stroke()},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.DrawTransform=function(a){var b=this.context;b.lineWidth=1/this.pixelsPerMeter,this.PushTransform(a),b.beginPath(),b.moveTo(0,0),b.lineTo(1,0),b.strokeStyle=box2d.b2Color.RED.MakeStyleString(1),b.stroke(),b.beginPath(),b.moveTo(0,0),b.lineTo(0,1),b.strokeStyle=box2d.b2Color.GREEN.MakeStyleString(1),b.stroke(),this.PopTransform(a)},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.DrawPoint=function(a,b,c){var d=this.context;d.fillStyle=c.MakeStyleString();var e=b/2;d.fillRect(a.x-e,a.y-e,b,b)},Phaser.Physics.Box2D.DefaultDebugDraw.prototype.DrawAABB=function(a,b){var c=this.context;c.strokeStyle=b.MakeStyleString();var d=a.lowerBound.x,e=a.lowerBound.y,f=a.upperBound.x-a.lowerBound.x,g=a.upperBound.y-a.lowerBound.y;c.strokeRect(d,e,f,g)},Object.defineProperty(Phaser.Physics.Box2D.DefaultDebugDraw.prototype,"shapes",{get:function(){return this.flags&box2d.b2DrawFlags.e_shapeBit},set:function(a){a?this.flags|=box2d.b2DrawFlags.e_shapeBit:this.flags&=~box2d.b2DrawFlags.e_shapeBit}}),Object.defineProperty(Phaser.Physics.Box2D.DefaultDebugDraw.prototype,"joints",{get:function(){return this.flags&box2d.b2DrawFlags.e_jointBit},
|
||
set:function(a){a?this.flags|=box2d.b2DrawFlags.e_jointBit:this.flags&=~box2d.b2DrawFlags.e_jointBit}}),Object.defineProperty(Phaser.Physics.Box2D.DefaultDebugDraw.prototype,"aabbs",{get:function(){return this.flags&box2d.b2DrawFlags.e_aabbBit},set:function(a){a?this.flags|=box2d.b2DrawFlags.e_aabbBit:this.flags&=~box2d.b2DrawFlags.e_aabbBit}}),Object.defineProperty(Phaser.Physics.Box2D.DefaultDebugDraw.prototype,"pairs",{get:function(){return this.flags&box2d.b2DrawFlags.e_pairBit},set:function(a){a?this.flags|=box2d.b2DrawFlags.e_pairBit:this.flags&=~box2d.b2DrawFlags.e_pairBit}}),Object.defineProperty(Phaser.Physics.Box2D.DefaultDebugDraw.prototype,"centerOfMass",{get:function(){return this.flags&box2d.b2DrawFlags.e_centerOfMassBit},set:function(a){a?this.flags|=box2d.b2DrawFlags.e_centerOfMassBit:this.flags&=~box2d.b2DrawFlags.e_centerOfMassBit}}),Phaser.Physics.Box2D.DefaultContactListener=function(){},Phaser.Physics.Box2D.DefaultContactListener.prototype.BeginContact=function(a){this.handleContactBeginOrEnd(a,!0)},Phaser.Physics.Box2D.DefaultContactListener.prototype.EndContact=function(a){this.handleContactBeginOrEnd(a,!1)},Phaser.Physics.Box2D.DefaultContactListener.prototype.handleContactBeginOrEnd=function(a,b){var c=a.GetFixtureA(),d=a.GetFixtureB(),e=c.GetBody(),f=d.GetBody(),g=c.GetFilterData().categoryBits,h=d.GetFilterData().categoryBits,i=e.parent,j=f.parent;if(void 0!==i&&void 0!==j){var k=i.id,l=j.id;i._bodyContactCallbacks[l]&&i._bodyContactCallbacks[l].call(i._bodyContactCallbackContext[l],i,j,c,d,b,a),j._bodyContactCallbacks[k]&&j._bodyContactCallbacks[k].call(j._bodyContactCallbackContext[k],j,i,d,c,b,a),i._fixtureContactCallbacks[d.id]&&i._fixtureContactCallbacks[d.id].call(i._fixtureContactCallbackContext[d.id],i,j,c,d,b,a),j._fixtureContactCallbacks[c.id]&&j._fixtureContactCallbacks[c.id].call(j._fixtureContactCallbackContext[c.id],j,i,d,c,b,a),i._fixtureContactCallbacks[c.id]&&i._fixtureContactCallbacks[c.id].call(i._fixtureContactCallbackContext[c.id],i,j,c,d,b,a),j._fixtureContactCallbacks[d.id]&&j._fixtureContactCallbacks[d.id].call(j._fixtureContactCallbackContext[d.id],j,i,d,c,b,a),i._categoryContactCallbacks[h]&&i._categoryContactCallbacks[h].call(i._categoryContactCallbackContext[h],i,j,c,d,b,a),j._categoryContactCallbacks[g]&&j._categoryContactCallbacks[g].call(j._categoryContactCallbackContext[g],j,i,d,c,b,a),i._categoryContactCallbacks[g]&&i._categoryContactCallbacks[g].call(i._categoryContactCallbackContext[g],i,j,c,d,b,a),j._categoryContactCallbacks[h]&&j._categoryContactCallbacks[h].call(j._categoryContactCallbackContext[h],j,i,d,c,b,a)}},Phaser.Physics.Box2D.DefaultContactListener.prototype.PreSolve=function(a,b){var c=a.GetFixtureA(),d=a.GetFixtureB(),e=c.GetBody(),f=d.GetBody(),g=c.GetFilterData().categoryBits,h=d.GetFilterData().categoryBits,i=e.parent,j=f.parent;if(void 0!==i&&void 0!==j){var k=i.id,l=j.id;i._bodyPresolveCallbacks[l]&&i._bodyPresolveCallbacks[l].call(i._bodyPresolveCallbackContext[l],i,j,c,d,a,b),j._bodyPresolveCallbacks[k]&&j._bodyPresolveCallbacks[k].call(j._bodyPresolveCallbackContext[k],j,i,d,c,a,b),i._fixturePresolveCallbacks[d.id]&&i._fixturePresolveCallbacks[d.id].call(i._fixturePresolveCallbackContext[d.id],i,j,c,d,a,b),j._fixturePresolveCallbacks[c.id]&&j._fixturePresolveCallbacks[c.id].call(j._fixturePresolveCallbackContext[c.id],j,i,d,c,a,b),i._categoryPresolveCallbacks[h]&&i._categoryPresolveCallbacks[h].call(i._categoryPresolveCallbackContext[h],i,j,c,d,a,b),j._categoryPresolveCallbacks[g]&&j._categoryPresolveCallbacks[g].call(j._categoryPresolveCallbackContext[g],j,i,d,c,a,b)}},Phaser.Physics.Box2D.DefaultContactListener.prototype.PostSolve=function(a,b){var c=a.GetFixtureA(),d=a.GetFixtureB(),e=c.GetBody(),f=d.GetBody(),g=c.GetFilterData().categoryBits,h=d.GetFilterData().categoryBits,i=e.parent,j=f.parent;if(void 0!==i&&void 0!==j){var k=i.id,l=j.id;i._bodyPostsolveCallbacks[l]&&i._bodyPostsolveCallbacks[l].call(i._bodyPostsolveCallbackContext[l],i,j,c,d,a,b),j._bodyPostsolveCallbacks[k]&&j._bodyPostsolveCallbacks[k].call(j._bodyPostsolveCallbackContext[k],j,i,d,c,a,b),i._fixturePostsolveCallbacks[d.id]&&i._fixturePostsolveCallbacks[d.id].call(i._fixturePostsolveCallbackContext[d.id],i,j,c,d,a,b),j._fixturePostsolveCallbacks[c.id]&&j._fixturePostsolveCallbacks[c.id].call(j._fixturePostsolveCallbackContext[c.id],j,i,d,c,a,b),i._categoryPostsolveCallbacks[h]&&i._categoryPostsolveCallbacks[h].call(i._categoryPostsolveCallbackContext[h],i,j,c,d,a,b),j._categoryPostsolveCallbacks[g]&&j._categoryPostsolveCallbacks[g].call(j._categoryPostsolveCallbackContext[g],j,i,d,c,a,b)}},Phaser.Physics.Box2D.Polygon=function(){this.vertices=[]},Phaser.Physics.Box2D.Polygon.prototype.setFromFlatXYCoords=function(a){this.vertices=[];for(var b=0;b<a.length/2;b++)this.vertices.push({x:a[2*b],y:a[2*b+1]})},Phaser.Physics.Box2D.Polygon.prototype.setFromXYObjects=function(a){this.vertices=a.concat()},Phaser.Physics.Box2D.Polygon.prototype.addVertex=function(a){this.vertices.push(a)},Phaser.Physics.Box2D.Polygon.prototype.at=function(a){var b=this.vertices.length;return this.vertices[a<0?a%b+b:a%b]},Phaser.Physics.Box2D.Polygon.prototype.indicesAreAdjacent=function(a,b){if(a%=this.vertices.length,b%=this.vertices.length,a==b)return!0;var c=Math.abs(a-b);return c<2||c==this.vertices.length-1},Phaser.Physics.Box2D.Polygon.prototype.areaInTriangle=function(a,b,c){return a=this.at(a),b=this.at(b),c=this.at(c),.5*((b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y))},Phaser.Physics.Box2D.Polygon.prototype.left=function(a,b,c){return this.areaInTriangle(a,b,c)>0},Phaser.Physics.Box2D.Polygon.prototype.leftOn=function(a,b,c){return this.areaInTriangle(a,b,c)>=0},Phaser.Physics.Box2D.Polygon.prototype.right=function(a,b,c){return this.areaInTriangle(a,b,c)<0},Phaser.Physics.Box2D.Polygon.prototype.rightOn=function(a,b,c){return this.areaInTriangle(a,b,c)<=0},Phaser.Physics.Box2D.Polygon.sqdist=function(a,b){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d},Phaser.Physics.Box2D.Polygon.prototype.makeCCW=function(){for(var a=0,b=1,c=this.vertices.length;b<c;b++)(this.at(b).y<this.at(a).y||this.at(b).y===this.at(a).y&&this.at(b).x>this.at(a).x)&&(a=b);return!this.left(a-1,a,a+1)&&(this.vertices.reverse(),!0)},Phaser.Physics.Box2D.Polygon.prototype.isConvex=function(){for(var a=!1,b=!1,c=0,d=this.vertices.length;c<d;c++){var e=c,f=(c+1)%d,g=(c+2)%d;this.areaInTriangle(this.vertices[e],this.vertices[f],this.vertices[g])>0?a=!0:b=!0}return b^a},Phaser.Physics.Box2D.Polygon.prototype.isReflex=function(a){return this.right(a-1,a,a+1)},Phaser.Physics.Box2D.Polygon.areVecsEqual=function(a,b){return a.x==b.x&&a.y==b.y},Phaser.Physics.Box2D.Polygon.linesCross=function(a,b,c,d){if(Phaser.Physics.Box2D.Polygon.areVecsEqual(b,c)||Phaser.Physics.Box2D.Polygon.areVecsEqual(a,c)||Phaser.Physics.Box2D.Polygon.areVecsEqual(b,d)||Phaser.Physics.Box2D.Polygon.areVecsEqual(a,d))return null;var e={};box2d.b2SubVV(b,a,e),box2d.b2CrossVS(e,1,e);var f=box2d.b2DotVV(e,a),g=box2d.b2DotVV(e,c),h=box2d.b2DotVV(e,d);if(g>f&&h>f)return null;if(g<f&&h<f)return null;var i={};box2d.b2SubVV(d,c,i),box2d.b2CrossVS(i,1,i);var g=box2d.b2DotVV(i,c),f=box2d.b2DotVV(i,a),j=box2d.b2DotVV(i,b);if(f>g&&j>g)return null;if(f<g&&j<g)return null;var k=(g-f)/(j-f);return{x:a.x+k*(b.x-a.x),y:a.y+k*(b.y-a.y)}},Phaser.Physics.Box2D.Polygon.prototype.canSee=function(a,b){if(this.indicesAreAdjacent(a,b))return!1;if(this.leftOn(a+1,a,b)&&this.rightOn(a-1,a,b))return!1;for(var c=0;c<this.vertices.length;++c)if((c+1)%this.vertices.length!=a&&c!=a&&this.leftOn(a,b,c+1)&&this.rightOn(a,b,c)&&Phaser.Physics.Box2D.Polygon.linesCross(this.at(a),this.at(b),this.at(c),this.at(c+1)))return!1;return!0},Phaser.Physics.Box2D.Polygon.prototype.subPolygon=function(a,b){var c=new Phaser.Physics.Box2D.Polygon;if(a<b)for(var d=a;d<b+1;d++)c.addVertex(this.at(d));else{for(var d=a;d<this.vertices.length;d++)c.addVertex(this.at(d));for(var d=0;d<b+1;d++)c.addVertex(this.at(d))}return c},Phaser.Physics.Box2D.Polygon.prototype.decomposeOptimal=function(a){if(void 0===a&&(a=0),a>1)return this.vertices;this.makeCCW();for(var b=[],c=[],d=[],e=Number.MAX_VALUE,f=0;f<this.vertices.length;f++)if(this.isReflex(f))for(var g=0;g<this.vertices.length;g++)this.canSee(f,g)&&(c=this.subPolygon(f,g).decompose(a+1),d=this.subPolygon(g,f).decompose(a+1),c.length+d.length<e&&(b=c.concat(d),e=b.length));return 0===b.length&&b.push(this.vertices),b},Phaser.Physics.Box2D.Polygon.prototype.decompose=function(a){void 0===a&&(a=0),this.makeCCW();for(var b,c,d=[],e=Number.MAX_VALUE,f=!1,g=0;g<this.vertices.length;g++)if(this.isReflex(g)){f=!0;for(var h=this.at(g),i=0;i<this.vertices.length;i++)if(this.canSee(g,i)){var j=this.at(i),k=j.x-h.x,l=j.y-h.y,m=k*k*(l*l);m<e&&(b=g,c=i,e=m)}}if(!f&&this.vertices.length>8&&(b=0,c=Math.floor(this.vertices.length/2),f=!0),f){var n=this.subPolygon(b,c).decompose(a+1),o=this.subPolygon(c,b).decompose(a+1);d=n.concat(o)}return 0===d.length&&d.push(this.vertices),d},define("box2d",["Phaser"],function(a){return function(){return a.box2d}}(this)),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Level/Devices/BackgroundCover",["Phaser"],function(b){return function(b){function c(a,b){c.__super__.constructor.call(this,a,b.x,b.y,"MechAssets","BackgroundCover0000"),this.options=b,this.width=b.width,this.height=b.height,a.layers.background.addChild(this)}return a(c,b),c}(b.Sprite)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Device",["Phaser"],function(){"use strict";var c;return c=c=function(c){function d(b,c){this.sounds=a(this.sounds,this),this.ocupy=a(this.ocupy,this),this.ocupyTile=a(this.ocupyTile,this),this.checkState=a(this.checkState,this),this.updateState=a(this.updateState,this),this._updateState=a(this._updateState,this),this.updateLight=a(this.updateLight,this),this.setupLight=a(this.setupLight,this),this.getColor=a(this.getColor,this),this.registerDevice=a(this.registerDevice,this),this.pxm=a(this.pxm,this),this.mpx=a(this.mpx,this);var e,f,g,h,i;this.lights=[],g={},_.deepObjectExtend(g,this._defaults),c.properties||(c.properties={}),_.deepObjectExtend(g,c),_.deepObjectExtend(g,this.options),this.options=g,null==this.options.layer&&(this.options.layer="overGround"),(e=this.options).rotation||(e.rotation=0),this.options.rotation=Math.PI*this.options.rotation/180,this.options.width=b.physics.box2d.pxm(this.options.width),this.options.height=b.physics.box2d.pxm(this.options.height),h=this.options.x,i=this.options.y,this.state=null!=this.options.properties?+this.options.properties.initialState||0:0,d.__super__.constructor.call(this,b),null!=this.options.atlasName&&null!=this.options.frameName&&(this.sprite=this.game.make.resSprite(h,i,this.options.atlasName,this.options.frameName),this.game.layers[this.options.layer].addChild(this.sprite),this.sprite.anchor.set(.5)),null!=this.sprite&&(this.sprite.autoCull=!0),this.sprite&&!0===this.options.enableBody&&(this.game.physics.box2d.enable(this.sprite),this.sprite.body.clearFixtures(),this.sprite.body.data.SetAngle(Math.PI*c.rotation/180||0),this.body=this.sprite.body),null!=this.options.lightAtlas&&null!=this.options.lightFrame&&(f=this.create(0,0,this.options.lightAtlas,this.options.lightFrame+"_on0000"),null!=this.sprite&&this.sprite.addChild(f),f.anchor.set(.5),f.offFrameName=this.options.lightFrame+"_off0000",f.onFrameName=this.options.lightFrame+"_on0000",f.frameName=f.offFrameName,this.lights.push(f)),_.defer(function(a){return function(){return a.updateLight(a.state)}}(this))}return b(d,c),d.prototype._defaults={atlasName:null,frameName:null,lightAtlas:null,lightFrame:null},d.prototype.mpx=function(a){return this.game.physics.box2d.mpx(-1*a)},d.prototype.pxm=function(a){return this.game.physics.box2d.pxm(-1*a)},d.prototype.registerDevice=function(){if(this.game.MechManager.registerDevice(this),this.lights.length>0)return this.setupLight()},d.prototype.getColor=function(){var a;return a=Number(String(this.options.properties.group)[0]),d.groupColors[a]||"#ffffff"},d.prototype.setupLight=function(){var a,b,c,d,e;for(e=this.lights,b=0,d=e.length;b<d;b++)c=e[b],a=this.getColor(),c.offTint=Phaser.Color.hexToColor(a).color,c.onTint=Phaser.Color.hexToColor(a).color,c.tint=c.offTint},d.prototype.updateLight=function(a){var b,c,d,e,f;if(0!==this.lights.length){for(e=this.lights,f=[],b=0,d=e.length;b<d;b++)c=e[b],null!=c.onFrameName&&a?(c.frameName=c.onFrameName,f.push(c.tint=c.onTint)):null==c.offFrameName||a?f.push(void 0):(c.frameName=c.offFrameName,f.push(c.tint=c.offTint));return f}},d.prototype.update=function(){return this.checkState()},d.prototype._updateState=function(){return this.updateLight(this.state),this.updateState()},d.prototype.updateState=function(){},d.prototype.checkState=function(){},d.prototype.ocupyTile=function(a,b,c){if(null!=a[Math.floor(c)]&&null!=a[Math.floor(c)][Math.floor(b)])return a[Math.floor(c)][Math.floor(b)].ocupied=!0},d.prototype.ocupy=function(a,b){return!1},d.prototype.sounds=function(){return[]},d}(Phaser.Group),c.groupColors={1:"#ff0000",2:"#00cc00",3:"#0D3EFF",4:"#ffff00",5:"#EC0EF1",6:"#57beff",7:"#9933FF"},c})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/BoxedDevice",["./Device"],function(c){"use strict";return function(c){function d(b,c){this.ocupy=a(this.ocupy,this);var e;this._defaults.enableBody=!0,e=new box2d.b2Vec2(b.physics.box2d.mpx(this.boxSize.x/2),b.physics.box2d.mpx(this.boxSize.y/2)),e=e.SelfRotateRadians(-Math.PI*c.rotation/180||0),c.x=c.x+e.x,c.y=c.y-e.y,d.__super__.constructor.call(this,b,c)}return b(d,c),d.prototype.boxSize={x:2,y:2},d.prototype.ocupy=function(a){var b,c;return b=this.options.x/32,c=this.options.y/32,this.ocupyTile(a,b,c),this.ocupyTile(a,b-1,c-1),this.ocupyTile(a,b-1,c),this.ocupyTile(a,b,c-1)},d}(c)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Level/Devices/Ball",["./BoxedDevice"],function(b){"use strict";return function(b){function c(a,b){var d,e,f,g;return b.x-=a.physics.box2d.mpx(.5),b.y+=a.physics.box2d.mpx(.65),c.__super__.constructor.call(this,a,b),g=new box2d.b2CircleShape(this.radius),f=new box2d.b2FixtureDef,f.shape=g,f.friction=.2,f.restitution=.1,f.density=2.3,f.filter.categoryBits=17,e=this.body.data.CreateFixture(f),e.id=this.body.world.getNextFixtureId(),null!=this.options.properties&&null!=this.options.properties.linearDamping&&this.body.data.SetLinearDamping(this.options.properties.linearDamping),null!=this.options.properties&&null!=this.options.properties.angularDamping&&this.body.data.SetAngularDamping(this.options.properties.angularDamping),d=new box2d.b2CircleShape(.1),d.m_p.SetXY(0,0),f=new box2d.b2FixtureDef,f.shape=d,f.filter.categoryBits=4096,f.filter.maskBits=4096,f.friction=.5,f.density=0,f.userData={"portal-sensor":!0},e=this.body.data.CreateFixture(f),e.id=this.body.world.getNextFixtureId(),this}return a(c,b),c.prototype.options={boxWidth:1.8,boxHeight:1.8,atlasName:"MechAssets",frameName:"ball0000"},c.prototype.radius=.4,c}(b)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Beamer",["./BoxedDevice"],function(c){"use strict";return function(c){function d(b,c){this.drawDarkMask=a(this.drawDarkMask,this),this.drawBeam=a(this.drawBeam,this),this.update=a(this.update,this),this.getColor=a(this.getColor,this);var e,f,g,h,i;return this.state=1,d.__super__.constructor.call(this,b,c),this.body.mass=0,i=[],i.push(new box2d.b2Vec2(0,-this.options.pusherWidth/2-.6)),i.push(new box2d.b2Vec2(0,this.options.pusherWidth/2+.6)),i.push(new box2d.b2Vec2(-this.options.pusherHeight,this.options.pusherWidth/2)),i.push(new box2d.b2Vec2(-this.options.pusherHeight,-this.options.pusherWidth/2)),h=new box2d.b2PolygonShape,h.Set(i),f=new box2d.b2FixtureDef,f.shape=h,f.friction=.7,f.restitution=0,f.density=0,f.filter.categoryBits=1,f.filter.maskBits=65535,e=this.body.data.CreateFixture(f),e.id=this.body.world.getNextFixtureId(),g=this.game.make.sprite(0,0,"MechAssets","beamer_light_off0000"),g.anchor.set(.5),this.sprite.addChild(g),g.offFrameName="beamer_light_off0000",g.onFrameName="beamer_light_on0000",this.lights.push(g),this.registerDevice(),this.graphics=this.game.make.graphics(0,0),this.game.layers.lights.addChild(this.graphics),this.game.layers.dust.sources.push(this),this.graphicsColor=Phaser.Color.hexToColor(this.getColor()).color,this}return b(d,c),d.prototype.options={pusherWidth:.8,pusherHeight:.4,atlasName:"MechAssets",frameName:"beamer0000",layer:"overGround"},d.prototype.getColor=function(){switch(this.options.properties.color){case"blue":return"#AAEAFF";case"red":return"#FF4D00";default:return"#ffff88"}},d.prototype.update=function(){var a,b,c,d,e,f,g,h,i,j,k,l;if(this.dirty=!1,1!==this.state)return null!==this.points&&(this.dirty=!0),this.points=null,this.graphics.clear();for(a=new box2d.b2RayCastCallback,a.ReportFixture=function(a,b,c,d){if(null==a.m_userData||null==a.m_userData.lightProperties)return this.contact={point:b.Clone(),normal:null},d;if("transparent"!==a.m_userData.lightProperties.type)return"normal"===a.m_userData.lightProperties.type?(this.contact={point:b.Clone(),normal:null},a.m_userData.lightProperties.sensor&&(this.contact.sensor=a),d):"mirror"===a.m_userData.lightProperties.type?(this.contact={point:b.Clone(),normal:c.Clone()},a.m_userData.lightProperties.sensor&&(this.contact.sensor=a),d):"portal"===a.m_userData.lightProperties.type?1===a.m_userData.device.state?(this.contact={point:a.m_userData.lightProperties.getPoint(b,c),output:a.m_userData.lightProperties.getOutput,skipPoint:b.Clone()},d):void 0:void(a.m_userData.lightProperties.sensor&&(this.contact.sensor=a))},a.point=new box2d.b2Vec2(this.pxm(this.options.x),this.pxm(this.options.y)),c=new box2d.b2Vec2(-1,0),c=c.SelfRotateRadians(this.options.rotation||0),a.dir=c,j=[],j.push({point:a.point.Clone()});null!=a.dir&&j.length<12;)h=a.point.Clone(),i=a.point.Clone().SelfAdd(a.dir.Clone().SelfMul(50)),a.contact=null,this.body.world.world.RayCast(a,h,i),null!=a.contact&&(a.point=a.contact.point,null!=a.contact.sensor&&(a.contact.sensor.m_userData.lightProperties.iluminated=this.options.properties.color,a.contact.sensor.m_userData.lightProperties.lightAt=a.contact.point),a.contact.skipPoint?(j.push({type:"line",point:a.contact.skipPoint.Clone()}),j.push({type:"move",point:a.point.Clone()})):j.push({type:"line",point:a.point.Clone()}),null!=a.contact.output?a.dir=a.contact.output(a.dir):null!=a.contact.normal?(b=h.Clone().SelfSub(i).SelfNormalize(),f=a.contact.normal.Clone().SelfCrossVS(1),a.dir=b.Clone().SelfSub(f.Clone().SelfMul(2*b.Clone().Dot(f)))):a.dir=null);if(l=[30,10,2],g=[.05,.3,1],!_.isEqual(this.points,j)){for(this.graphics.clear(),this.dirty=!0,this.points=j,this.graphics.blendMode=PIXI.blendModes.LIGHTEN,k=[],d=e=1;e<=2;d=++e)this.graphics.lineStyle(l[d],this.graphicsColor,g[d]),k.push(this.drawBeam(this.graphics,j));return k}},d.prototype.drawBeam=function(a,b,c){var d,e,f,g,h;for(null==c&&(c={x:0,y:0}),a.moveTo(this.mpx(b[0].point.x)+c.x,this.mpx(b[0].point.y)+c.y),h=[],d=e=0,f=b.length;e<f;d=++e)g=b[d],d>0?"line"===g.type?(a.lineTo(this.mpx(g.point.x)+c.x,this.mpx(g.point.y)+c.y),h.push(a.moveTo(this.mpx(g.point.x)+c.x,this.mpx(g.point.y)+c.y))):"move"===g.type?h.push(a.moveTo(this.mpx(g.point.x)+c.x,this.mpx(g.point.y)+c.y)):h.push(void 0):h.push(void 0);return h},d.prototype.drawDarkMask=function(a){var b,c;if(1===this.state&&null!=this.points)return a.ctx.globalCompositeOperation="lighter",a.ctx.beginPath(),a.ctx.lineCap="round",a.ctx.strokeStyle="rgba(255,255,255,0.8)",a.ctx.lineWidth=25,this.drawBeam(a.ctx,this.points,a.offset),a.ctx.stroke(),a.ctx.closePath(),c={x:this.sprite.x+a.offset.x,y:this.sprite.y+a.offset.y},b=a.ctx.createRadialGradient(c.x,c.y,30,c.x,c.y,90),b.addColorStop(0,"rgba(255,255,255,1)"),b.addColorStop(.5,"rgba(255,255,255,0.3)"),b.addColorStop(1,"transparent"),a.circle(c.x,c.y,90,b)},d}(c)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Level/Devices/BoxPrototype",["./BoxedDevice"],function(b){"use strict";return function(b){function c(a,b){var d,e,f,g,h,i,j,k,l;return c.__super__.constructor.call(this,a,b),null!=this.options.properties.boxSize&&(this.options.boxWidth=this.options.properties.boxSize,this.options.boxWidth=this.options.properties.boxSize),this.sprite.cacheAsBitmap=!0,g=.1,k=new box2d.b2PolygonShape,l=[],l.push(new box2d.b2Vec2(-this.options.boxWidth/2+g,-this.options.boxHeight/2)),l.push(new box2d.b2Vec2(this.options.boxWidth/2-g,-this.options.boxHeight/2)),l.push(new box2d.b2Vec2(this.options.boxWidth/2,-this.options.boxHeight/2+g)),l.push(new box2d.b2Vec2(this.options.boxWidth/2,+this.options.boxHeight/2-g)),l.push(new box2d.b2Vec2(this.options.boxWidth/2-g,+this.options.boxHeight/2)),l.push(new box2d.b2Vec2(-this.options.boxWidth/2+g,+this.options.boxHeight/2)),l.push(new box2d.b2Vec2(-this.options.boxWidth/2,+this.options.boxHeight/2-g)),l.push(new box2d.b2Vec2(-this.options.boxWidth/2,-this.options.boxHeight/2+g)),k.Set(l.reverse()),i=new box2d.b2FixtureDef,i.shape=k,i.friction=null!=this.options.properties.friction?this.options.properties.friction:.4,i.restitution=0,i.density=this.options.density,h=this.body.data.CreateFixture(i),h.id=this.body.world.getNextFixtureId(),this.boxFixture=h,j=function(a){return function(b,c){var d;return d=new box2d.b2CircleShape(b),d.m_p.SetXY(c[0],c[1]),i=new box2d.b2FixtureDef,i.shape=d,i.filter.categoryBits=17,i.filter.maskBits=4097,i.friction=a.options.circleFriction,i.density=0,i.userData={lightProperties:{type:"transparent"}},h=a.body.data.CreateFixture(i),h.id=a.body.world.getNextFixtureId(),h}}(this),d=g,f=this.options.boxWidth/2-.6*g,j(d,[-f,-f]),j(d,[f,-f]),j(d,[-f,f]),j(d,[f,f]),e=new box2d.b2CircleShape(.1),e.m_p.SetXY(0,0),i=new box2d.b2FixtureDef,i.shape=e,i.filter.categoryBits=4096,i.filter.maskBits=4096,i.friction=.5,i.density=0,i.userData={"portal-sensor":!0,lightProperties:{type:"transparent"}},h=this.body.data.CreateFixture(i),h.id=this.body.world.getNextFixtureId(),this.body.data.SetLinearDamping(1),this.body.data.SetAngularDamping(20),this}return a(c,b),c.prototype.options={boxWidth:1.77,boxHeight:1.77,atlasName:"MechAssets",frameName:"movingbox0000",layer:"overGround",density:.45,circleFriction:.1},c}(b)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Level/Devices/Box",["./BoxedDevice","./BoxPrototype"],function(b,c){"use strict";return function(b){function c(a,b){return c.__super__.constructor.call(this,a,b),this}return a(c,b),c}(c)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Level/Devices/BoxHeavy",["./BoxedDevice","./BoxPrototype"],function(b,c){"use strict";return function(b){function c(a,b){return b.frameName="movingbox20000",b.density=.8,b.circleFriction=.05,c.__super__.constructor.call(this,a,b),this}return a(c,b),c}(c)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Level/Devices/BoxMirror",["./BoxedDevice","./BoxPrototype"],function(b,c){"use strict";return function(b){function c(a,b){var d,e,f;return b.mirrorWidth=2,b.mirrorHeight=.05,b.frameName="BoxMirror0000",c.__super__.constructor.call(this,a,b),this.boxFixture.m_userData={lightProperties:{type:"transparent"}},f=new box2d.b2PolygonShape,f.SetAsOrientedBox(this.options.mirrorWidth/2,this.options.mirrorHeight/2,new box2d.b2Vec2(0,0),Math.PI/4),e=new box2d.b2FixtureDef,e.shape=f,e.friction=0,e.restitution=0,e.density=0,e.userData={lightProperties:{type:"mirror"}},d=this.body.data.CreateFixture(e),d.id=this.body.world.getNextFixtureId(),this}return a(c,b),c}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Diamond",["Phaser"],function(){"use strict";return function(c){function d(b,c,e,f){this.grabbed=a(this.grabbed,this);var g,h,i;return c+=b.physics.box2d.mpx(1),e-=b.physics.box2d.mpx(1),d.__super__.constructor.call(this,b,c,e,"CharAssets","_default0000"),this.game.physics.box2d.enable(this),this.sprite=b.make.sprite(0,0,"CharAssets","diamond_"+f+"0000"),this.sprite.anchor.set(.5),this.addChild(this.sprite),this.signal=new Phaser.Signal,this.body.clearFixtures(),this.body.mass=0,i=new box2d.b2PolygonShape,i.SetAsOrientedBox(this.options.width/2,this.options.height/2,new box2d.b2Vec2(0,0),0),h=new box2d.b2FixtureDef,h.shape=i,h.friction=.7,h.restitution=0,h.density=0,h.userData="diamond-"+f,h.isSensor=!0,h.userData={lightProperties:{type:"transparent"}},this.data.char=f,g=this.body.data.CreateFixture(h),g.id=this.body.world.getNextFixtureId(),this.game.layers.underGround.addChild(this),this.body.setFixtureContactCallback(g,function(a){return function(b,c,d,e,f,g){if(null!=c.sprite.character&&c.sprite.character.data.char&&("silver"===a.data.char||"fbwg"===a.data.char||c.sprite.character.data.char===a.data.char)&&f)return console.log("Grabbed!"),a.grabbed(c.sprite.character),a.signal.dispatch()}}(this),this),this.sprite.y=-5,_.delay(function(a){return function(){var b;return b=a.game.add.tween(a.sprite).to({y:5},2e3,Phaser.Easing.Sinusoidal.InOut,!0),b.yoyo(!0).loop()}}(this),2e3*Math.random()),this}return b(d,c),d.prototype.options={width:.7,height:.7},d.prototype.grabbed=function(a){return this.game.level.sounds.diamond.play(),"silver"===this.data.char?a.data.silverDiamond++:a.data.diamonds++,this.destroy()},d}(Phaser.Sprite)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Door",["Phaser"],function(){"use strict";return function(c){function d(b,c,e,f){this.update=a(this.update,this);var g,h,i,j;return d.__super__.constructor.call(this,b),c+=this.game.physics.box2d.mpx(1),this.pos={x:c,y:e},i="fb"===f?"FinishBoy":"FinishGirl",this.sprite=this.game.make.sprite(c,e+4,"TempleAssets",i+"0000"),this.sprite.scale.set(.8),this.sprite.animations.add("open",Phaser.Animation.generateFrameNames(i,0,21,"",4),10,!1),this.game.physics.box2d.enable(this.sprite),this.body=this.sprite.body,this.sprite.anchor.y=.99,this.game.layers.background.addChild(this.sprite),this.signal=new Phaser.Signal,this.body.clearFixtures(),this.body.data.SetType(box2d.b2BodyType.b2_staticBody),j=new box2d.b2PolygonShape,j.SetAsOrientedBox(this.game.physics.box2d.pxm(this.options.width/2),this.game.physics.box2d.pxm(this.options.height/2),new box2d.b2Vec2(0,0),0),h=new box2d.b2FixtureDef,h.shape=j,h.friction=.7,h.restitution=0,h.density=0,h.userData="door-"+f,h.isSensor=!0,this.data={char:f},g=this.body.data.CreateFixture(h),g.id=this.body.world.getNextFixtureId(),this.body.setFixtureContactCallback(g,function(a){return function(b,c,d,e,f,g){if(null!=c.sprite.character&&c.sprite.character.data.char===a.data.char)return a.isOpen=!!f}}(this),this),this.currentFrac=this.sprite.animations.currentFrame.index,this}return b(d,c),d.prototype.options={width:64,height:8},d.prototype.update=function(){var a,b,c;return a=this.sprite.animations._outputFrames.indexOf(this.sprite.animations.currentFrame.index),this.isUp=21===a,b=Math.min(.04,this.game.time.elapsed/1e3),c=25*b,this.isOpen?(a<21&&(this.currentFrac+=c,this.sprite.animations.frame=Math.round(this.currentFrac),null!=this.sound&&this.sound.isPlaying||(this.sound=this.game.level.sounds.door.playInstance())),21===a&&(this.signal.dispatch(),null!=this.sound&&(this.sound.stopInstance(),this.sound=null))):this.isOpen||(a>0&&(this.currentFrac-=c,this.sprite.animations.frame=Math.round(this.currentFrac),null!=this.sound&&this.sound.isPlaying||(this.sound=this.game.level.sounds.door.playInstance())),0===a&&(null!=this.sound&&(this.sound.stopInstance(),this.sound=null),this.signal.dispatch())),this.isUp},d}(Phaser.Group)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Hanging",["./Device"],function(c){"use strict";return function(c){function d(b,c){this.update=a(this.update,this);var e,f,g,h,i,j,k,l,m,n,o,p,q,r;return d.__super__.constructor.call(this,b,c),this.barWidth=this.options.properties.barWidth||this.options.barWidth,this.anchor=new box2d.b2Vec2(this.options.polyline[0][0]+this.options.x,this.options.polyline[0][1]+this.options.y),this.pos={x:this.options.polyline[1][0]+this.options.x,y:this.options.polyline[1][1]+this.options.y},this.rope=this.game.make.tileSprite(this.anchor.x,this.anchor.y,this.options.polyline[0][1]-this.options.polyline[1][1],20,"MechAssets","pulley_rope0000"),this.rope.anchor.set(0,.5),this.game.layers.underGround.addChild(this.rope),this.platform=p=this.game.make.sprite(this.pos.x,this.pos.y),h=this.game.make.sprite(0,0,"MechAssets","hanging_platform0000"),h.anchor.set(.5),h.width=1.15*this.mpx(this.barWidth),this.platform.addChild(h),g=this.game.make.sprite(this.anchor.x,this.anchor.y,"MechAssets","hanging_anchor0000"),i=this.game.make.sprite(0,0,"MechAssets","hanging_base0000"),i.anchor.set(.5),this.game.physics.box2d.enable(p,!1),this.game.physics.box2d.enable(g),g.body.data.m_fixtureList.m_filter.categoryBits=0,this.platform.addChild(i),this.game.layers.underGround.addChild(this.platform),this.game.layers.underGround.addChild(g),p.body.data.SetLinearDamping(.4),p.body.data.SetAngularDamping(.3),j=this.platform.body,j.clearFixtures(),r=[],m=this.barWidth/2,n=m+.1,r.push(new box2d.b2Vec2(m,.12)),r.push(new box2d.b2Vec2(-m,.12)),r.push(new box2d.b2Vec2(-n,0)),r.push(new box2d.b2Vec2(-m,-.12)),r.push(new box2d.b2Vec2(m,-.12)),r.push(new box2d.b2Vec2(n,0)),q=new box2d.b2PolygonShape,q.Set(r),l=new box2d.b2FixtureDef,l.shape=q,l.friction=.4,l.restitution=0,l.density=this.options.properties.density||2.5,l.filter.categoryBits=65535,l.filter.maskBits=65535,k=j.data.CreateFixture(l),k.id=j.world.getNextFixtureId(),o=new box2d.b2DistanceJointDef,e={x:this.pxm(this.anchor.x),y:this.pxm(this.anchor.y)},f={x:this.pxm(this.pos.x),
|
||
y:this.pxm(this.pos.y)},o.Initialize(g.body.data,p.body.data,e,f),this.joint=this.game.physics.box2d.world.CreateJoint(o),o=new box2d.b2RevoluteJointDef,o.Initialize(g.body.data,p.body.data,f),o.lowerAngle=-.85*Math.PI/2,o.upperAngle=.85*Math.PI/2,this.options.properties.fullRotation||(o.enableLimit=!0),this.joint=this.game.physics.box2d.world.CreateJoint(o),o=new box2d.b2RevoluteJointDef,o.Initialize(g.body.data,this.game.level.groundBody,e),this.joint=this.game.physics.box2d.world.CreateJoint(o),this}return b(d,c),d.prototype.options={barWidth:3.2},d.prototype.baseHeight=60,d.prototype.update=function(){var a,b;return b=new box2d.b2Vec2(this.platform.position.x,this.platform.position.y),a=b.Clone().SelfSub(this.anchor),this.rope.rotation=Math.atan2(-a.y,-a.x)},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/InfiniteMirror",["./BoxedDevice"],function(c){"use strict";return function(c){function d(b,c){this.updateState=a(this.updateState,this);var e,f,g,h,i,j,k,l,m,n,o;return d.__super__.constructor.call(this,b,c),f=this.game.make.sprite(this.options.x,this.options.y,"MechAssets","rotmirror_circle0000"),f.anchor.set(.5),this.game.layers.underGround.addChild(f),k=this.game.make.sprite(this.options.x,this.options.y,"MechAssets","infinitemirror0000"),k.anchor.set(.5),this.game.physics.box2d.enable(k),this.body=k.body,l=this.game.make.sprite(0,0,"MechAssets","infinitemirror_light_off0000"),l.anchor.set(.5),k.addChild(l),l.offFrameName="infinitemirror_light_off0000",l.onFrameName="infinitemirror_light_off0000",this.lights.push(l),this.game.layers.overGround.addChild(k),this.body.clearFixtures(),o=new box2d.b2PolygonShape,o.SetAsOrientedBox(this.options.boxWidth/2,this.options.boxHeight/2,new box2d.b2Vec2(0,0),0),m=new box2d.b2PolygonShape,m.SetAsOrientedBox(this.options.mirrorWidth/2,this.options.mirrorHeight/2,new box2d.b2Vec2(0,0),Math.PI/4),i=new box2d.b2FixtureDef,i.shape=m,i.friction=.7,i.restitution=0,i.density=.2,i.userData={lightProperties:{type:"mirror"}},h=this.body.data.CreateFixture(i),h.id=this.body.world.getNextFixtureId(),this.body.data.SetAngle(this.options.rotation),e=new box2d.b2CircleShape(.3),e.m_p=new box2d.b2Vec2(1.1,1.1),i=new box2d.b2FixtureDef,i.shape=e,h=this.body.data.CreateFixture(i),e=new box2d.b2CircleShape(.3),e.m_p=new box2d.b2Vec2(-1.1,-1.1),i=new box2d.b2FixtureDef,i.shape=e,h=this.body.data.CreateFixture(i),j=new box2d.b2RevoluteJointDef,n=this.body.data.GetWorldCenter(),g=new box2d.b2Vec2(n.x,n.y),j.Initialize(this.body.data,this.game.level.groundBody,g),j.enableLimit=!0,j.maxMotorTorque=500,j.motorSpeed=0,j.enableMotor=!0,this.joint=this.game.physics.box2d.world.CreateJoint(j),this.registerDevice(),this}return b(d,c),d.prototype.options={atlasName:null,frameName:null,lightAtlas:null,lightFrame:null,boxWidth:1.8,boxHeight:1.8,mirrorWidth:3,mirrorHeight:.1},d.prototype.updateState=function(){return this.joint.SetLimits(this.state,this.state)},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Lever",["./BoxedDevice"],function(c){"use strict";return function(c){function d(b,c){this.drawDarkMask=a(this.drawDarkMask,this),this.checkState=a(this.checkState,this),this.sounds=a(this.sounds,this);var e,f,g,h,i,j,k,l,m,n;return d.__super__.constructor.call(this,b,c),m=this.game.make.resSprite(this.options.x,this.options.y,"MechAssets","lever_stick0000"),m.anchor.set(.5),this.game.physics.box2d.enable(m),this.body=m.body,n=this.game.make.resSprite(0,0,"MechAssets","lever_stick_light_off0000"),n.anchor.set(.5),m.addChild(n),n.offFrameName="lever_stick_light_off0000",n.onFrameName="lever_stick_light_on0000",this.lights.push(n),this.game.layers.overGround.addChild(m),this.base=e=this.game.make.resSprite(this.options.x,this.options.y,"MechAssets","lever_base0000"),e.anchor.set(.5),f=this.game.make.resSprite(0,0,"MechAssets","lever_base_light_off0000"),f.anchor.set(.5),e.addChild(f),f.offFrameName="lever_base_light_off0000",f.onFrameName="lever_base_light_on0000",this.lights.push(f),this.game.layers.overGround.addChild(e),this.body.clearFixtures(),l=new box2d.b2PolygonShape,l.SetAsOrientedBox(.15,.7,new box2d.b2Vec2(0,.55),0),i=new box2d.b2FixtureDef,i.shape=l,i.friction=.7,i.restitution=0,i.density=1.6,i.filter.categoryBits=1,i.filter.maskBits=61695,h=m.body.data.CreateFixture(i),h.id=m.body.world.getNextFixtureId(),j=new box2d.b2RevoluteJointDef,k=this.body.data.GetWorldCenter(),g=new box2d.b2Vec2(k.x,k.y-.7),j.Initialize(this.body.data,this.game.level.groundBody,g),j.lowerAngle=-.2*Math.PI,j.upperAngle=.2*Math.PI,j.enableLimit=!0,j.maxMotorTorque=10,j.motorSpeed=0,j.enableMotor=!0,this.joint=this.game.physics.box2d.world.CreateJoint(j),-1===this.options.properties.startPos?this.body.data.SetAngle(this.joint.GetLowerLimit()):this.body.data.SetAngle(this.joint.GetUpperLimit()),this.signal=new Phaser.Signal,this.registerDevice(),this}return b(d,c),d.prototype.options={atlasName:null,frameName:null},d.prototype.sounds=function(){return"lever"},d.prototype.checkState=function(){return 0===this.state&&this.joint.GetJointAngleRadians()*this.options.properties.onis<0?(this.state=1,this.joint.SetMotorSpeed(-4*this.options.properties.onis),this.game.level.sounds.lever.play(),this.signal.dispatch(this)):1===this.state&&this.joint.GetJointAngleRadians()*this.options.properties.onis>0?(this.state=0,this.joint.SetMotorSpeed(4*this.options.properties.onis),this.game.level.sounds.lever.play(),this.signal.dispatch(this)):void 0},d.prototype.drawDarkMask=function(a){var b,c,d;if(1===this.state)return a.ctx.globalCompositeOperation="lighter",d={x:this.base.x+a.offset.x,y:this.base.y+a.offset.y},b=new box2d.b2Vec2(0,this.mpx(-1.1)),b.SelfRotateRadians(this.joint.GetJointAngleRadians()),b.SelfAdd(new box2d.b2Vec2(0,this.mpx(1.8))),c=a.ctx.createRadialGradient(d.x+b.x,d.y+b.y,10,d.x+b.x,d.y+b.y,50),c.addColorStop(0,"rgba(255,255,255,1)"),c.addColorStop(.7,"rgba(255,255,255,0.1)"),c.addColorStop(1,"rgba(255,255,255,0)"),a.circle(d.x+b.x,d.y+b.y,60,c)},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/LightPusher",["./BoxedDevice"],function(c){"use strict";return function(c){function d(b,c){this.checkState=a(this.checkState,this),this.sounds=a(this.sounds,this);var e,f,g,h,i;return d.__super__.constructor.call(this,b,c),this.body.mass=0,f=new box2d.b2PolygonShape,f.SetAsOrientedBox(this.options.sensorWidth/2,this.options.pusherHeight/2,new box2d.b2Vec2(0,0),0),e=new box2d.b2FixtureDef,e.shape=f,e.friction=.7,e.restitution=0,e.density=0,e.isSensor=!0,e.userData={lightProperties:{type:"normal",sensor:!0}},this.sensorFixture=g=this.body.data.CreateFixture(e),g.id=this.body.world.getNextFixtureId(),i=[],i.push(new box2d.b2Vec2(-this.options.pusherWidth/2-.5,0)),i.push(new box2d.b2Vec2(this.options.pusherWidth/2+.5,0)),i.push(new box2d.b2Vec2(this.options.pusherWidth/2,this.options.pusherHeight-.1)),i.push(new box2d.b2Vec2(-this.options.pusherWidth/2,this.options.pusherHeight-.1)),h=new box2d.b2PolygonShape,h.Set(i),e=new box2d.b2FixtureDef,e.shape=h,e.friction=.7,e.restitution=0,e.density=0,e.isSensor=!1,e.userData={lightProperties:{type:"transparent"}},this.body.data.CreateFixture(e),g.id=this.body.world.getNextFixtureId(),this.signal=new Phaser.Signal,this.registerDevice(),this}return b(d,c),d.prototype.options={pusherWidth:1,pusherHeight:.4,sensorWidth:1.5,atlasName:"MechAssets",frameName:"lightpusher_base0000",lightAtlas:"MechAssets",lightFrame:"lightpusher_light"},d.prototype.sounds=function(){return"lightPusher"},d.prototype.checkState=function(){return 0===this.state&&this.sensorFixture.m_userData.lightProperties.iluminated===this.options.properties.color?(this.state=1,this.game.level.sounds.lightPusher.play(),this.signal.dispatch(this)):1===this.state&&this.sensorFixture.m_userData.lightProperties.iluminated!==this.options.properties.color&&(this.state=0,this.signal.dispatch(this)),this.sensorFixture.m_userData.lightProperties.iluminated=null},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Liquid",["Phaser"],function(){"use strict";return function(c){function d(b,c,e,f){this.melt=a(this.melt,this),this.freeze=a(this.freeze,this),this.initialFreeze=a(this.initialFreeze,this),this.shouldMelt=a(this.shouldMelt,this),this.shouldFreeze=a(this.shouldFreeze,this),this.update=a(this.update,this),this.createIceGraphics=a(this.createIceGraphics,this),this.createLiquidGraphics=a(this.createLiquidGraphics,this);var g,h,i,j,k,l;return 55===f.type&&(f.type=5,f.startFrozen=!0),this.options=f,this.options.x=c,this.options.y=e,d.__super__.constructor.call(this,b,c,e,"GroundAssets","_default0000"),this.game.layers.liquids.addChild(this),this.game.physics.box2d.enable(this),this.body.clearFixtures(),this.body.mass=0,this.body.data.SetPosition(new box2d.b2Vec2(-c,-e)),j=new box2d.b2PolygonShape,l=[],k=f.width,i=1,l.push(new box2d.b2Vec2(0,-.15)),l.push(new box2d.b2Vec2(-k,-.15)),l.push(new box2d.b2Vec2(-k,-i/2)),l.push(new box2d.b2Vec2(0,-i/2)),j.Set(l),h=new box2d.b2FixtureDef,h.shape=j,h.filter.categoryBits=1,h.filter.maskBits=61695,h.friction=.7,h.isSensor=!0,h.userData={type:"liquid",liquidType:f.type,lightProperties:{type:"normal",sensor:!0}},g=this.sensorFixture=this.body.data.CreateFixture(h),g.id=this.body.world.getNextFixtureId(),j=new box2d.b2PolygonShape,l=[],k=f.width,i=1,l.push(new box2d.b2Vec2(0,0)),l.push(new box2d.b2Vec2(-k,0)),l.push(new box2d.b2Vec2(-k,-i/2)),l.push(new box2d.b2Vec2(0,-i/2)),j.Set(l),h=new box2d.b2FixtureDef,h.shape=j,h.filter.categoryBits=1,h.filter.maskBits=0,h.friction=0,h.userData={type:"ice",liquidType:f.type,lightProperties:{type:"transparent"}},g=this.iceFixture=this.body.data.CreateFixture(h),g.id=this.body.world.getNextFixtureId(),this.body.setFixtureContactCallback(this.iceFixture,function(a){return function(a,b,c,d,e,f){var g;if(null!=b.sprite.character||null!=a.sprite.character)return g=b.sprite.character||a.sprite.character,e?(g.snowCount||(g.snowCount=0),g.snowCount+=1):(g.snowCount||(g.snowCount=0),g.snowCount-=1),g.setOnIce(0!==g.snowCount)}}()),j=new box2d.b2PolygonShape,l=[],k=f.width,i=.18,l.push(new box2d.b2Vec2(0,-i)),l.push(new box2d.b2Vec2(-k,-i)),l.push(new box2d.b2Vec2(-k,-1)),l.push(new box2d.b2Vec2(0,-1)),j.Set(l),h=new box2d.b2FixtureDef,h.shape=j,h.filter.categoryBits=1,h.filter.maskBits=4369,h.friction=.7,h.isSensor=!0,h.userData={type:"liquid_death",liquidType:f.type,lightProperties:{type:"transparent"}},g=this.killFixture=this.body.data.CreateFixture(h),g.id=this.body.world.getNextFixtureId(),this.liquidGraphics=this.game.make.group(),this.liquidGraphics.position.y=2,this.createLiquidGraphics(),this.addChild(this.liquidGraphics),5===f.type&&(this.iceGraphics=this.game.make.group(),this.iceGraphics.position.y=4,this.createIceGraphics(),this.addChild(this.iceGraphics),this.iceGraphics.visible=!1),this.nearBodies={},this.frozenBodies={},this.body.setFixtureContactCallback(this.sensorFixture,function(a){return function(b,c,d,e,f,g){var h;return f||null==a.nearBodies[c.id]?f&&null==a.nearBodies[c.id]?(h={body:c},a.nearBodies[c.id]=h):void 0:delete a.nearBodies[c.id]}}(this),this),f.startFrozen&&_.delay(this.initialFreeze,10),this}return b(d,c),d.prototype.createLiquidGraphics=function(){var a,b,c,d,e,f,g;if(5===this.options.type?a="WaterBox":6===this.options.type?a="FireBox":7===this.options.type&&(a="GreenBox"),d=this.game.make.sprite(0,0,"GroundAssets"),d.anchor.set(.5),d.animations.add("loop",Phaser.Animation.generateFrameNames(a+"Left",0,14,"",4),30,!0),this.liquidGraphics.addChild(d),d.x=this.body.world.mpx(.5),d.y=this.body.world.mpx(.5),d.animations.play("loop"),this.options.width>2)for(b=c=1,f=this.options.width-2;1<=f?c<=f:c>=f;b=1<=f?++c:--c)e=this.game.make.sprite(0,0,"GroundAssets"),e.anchor.set(.5),e.animations.add("loop",Phaser.Animation.generateFrameNames(a,0,14,"",4),30,!0),this.liquidGraphics.addChild(e),e.x=this.body.world.mpx(b+.5),e.y=this.body.world.mpx(.5),e.animations.play("loop");return g=this.game.make.sprite(0,0,"GroundAssets"),g.anchor.set(.5),g.animations.add("loop",Phaser.Animation.generateFrameNames(a+"Right",0,14,"",4),30,!0),this.liquidGraphics.addChild(g),g.x=this.body.world.mpx(this.options.width-.5),g.y=this.body.world.mpx(.5),g.animations.play("loop")},d.prototype.createIceGraphics=function(){var a,b,c,d,e,f,g;for(a="IceBox",d=this.game.make.sprite(0,0,"GroundAssets",a+"Left0000"),d.anchor.set(.5),this.iceGraphics.addChild(d),d.x=this.body.world.mpx(.5),d.y=this.body.world.mpx(.5),b=c=1,f=this.options.width-2;1<=f?c<=f:c>=f;b=1<=f?++c:--c)e=this.game.make.sprite(0,0,"GroundAssets",a+"0000"),e.anchor.set(.5),this.iceGraphics.addChild(e),e.x=this.body.world.mpx(b+.5),e.y=this.body.world.mpx(.5);return g=this.game.make.sprite(0,0,"GroundAssets",a+"Right0000"),g.anchor.set(.5),this.iceGraphics.addChild(g),g.x=this.body.world.mpx(this.options.width-.5),g.y=this.body.world.mpx(.5)},d.prototype.update=function(){if(!this.game.physics.box2d.paused){if(!this.ready)return void(this.ready=!0);if(null!=this.sensorFixture.m_userData.lightProperties.iluminated){if("blue"===this.sensorFixture.m_userData.lightProperties.iluminated&&5===this.options.type)return this.shouldFreeze();if("red"===this.sensorFixture.m_userData.lightProperties.iluminated&&5===this.options.type)return this.shouldMelt()}}},d.prototype.shouldFreeze=function(){if(!this.frozen)return this.freeze(),this.game.level.sounds.freeze.play()},d.prototype.shouldMelt=function(){if(this.frozen)return this.game.level.sounds.melt.play(),this.melt()},d.prototype.initialFreeze=function(){var a,b,c;this.game.physics.box2d.paused=!1,this.game.physics.box2d.update(),this.game.physics.box2d.paused=!0,this.frozen=!0,this.iceFixture.SetFilterData({maskBits:16,categoryBits:1}),c=this.nearBodies;for(a in c)b=c[a],"pers"===b.body.data.m_userData?(b.body.data.SetPosition(b.body.data.GetPosition().SelfAdd(new box2d.b2Vec2(0,.5))),b.body.data.SetAwake(!0)):(this.frozenBodies[a]=b,b.body.static=!0);return this.iceFixture.Refilter(),this.sensorFixture.m_userData.lightProperties.type="mirror",this.iceGraphics.visible=!0,this.liquidGraphics.visible=!1},d.prototype.freeze=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;b=800,console.log("freezing"),this.frozen=!0,this.iceFixture.SetFilterData({maskBits:16,categoryBits:1}),h=this.nearBodies;for(d in h)e=h[d],"pers"===e.body.data.m_userData?(e.body.data.SetPosition(e.body.data.GetPosition().SelfAdd(new box2d.b2Vec2(0,.5))),e.body.data.SetAwake(!0)):(this.frozenBodies[d]=e,e.body.static=!0);this.iceFixture.Refilter(),this.sensorFixture.m_userData.lightProperties.type="mirror",this.iceGraphics.visible=!0,c=this.game.make.graphics(0,0),this.addChild(c),l=this.game.physics.box2d.mpx(this.options.width),c.beginFill(16777215),c.drawRect(-10,-10,l+20,52),a=this.sensorFixture.m_userData.lightProperties.lightAt,n=this.game.physics.box2d.mpx(-a.x-this.options.x),c.width=0,c.x=n,i=this.game.add.tween(c).to({x:0,width:l},b,"Linear",!0).onUpdateCallback(function(a){return function(){return a.frozen?a.iceGraphics.mask=c:c.visible=!1}}(this)),m=this.game.make.graphics(0,0),this.addChild(m),m.width=l,m.x=0,f={val:l-n},i=this.game.add.tween(f).to({val:0},b,"Linear",!0).onUpdateCallback(function(a){return function(){return a.frozen?(m.clear(),m.beginFill(16777215),m.drawRect(l-f.val,-10,f.val,52),a.liquidGraphics.mask=m):m.visible=!1}}(this)),g={val:n},i=this.game.add.tween(g).to({val:0},b,"Linear",!0).onUpdateCallback(function(a){return function(){return a.frozen?(m.beginFill(16777215),m.drawRect(0,-10,g.val,52),a.liquidGraphics.mask=m):m.visible=!1}}(this)),j=this.game.make.sprite(0,0,"GroundAssets","frost0000"),k=this.game.make.sprite(0,0,"GroundAssets","frost0000"),j.anchor.set(.5),k.anchor.set(.5),j.animations.add("loop",Phaser.Animation.generateFrameNames("frost",0,10,"",4),30,!0),k.animations.add("loop",Phaser.Animation.generateFrameNames("frost",0,10,"",4),30,!0),j.animations.play("loop"),k.animations.play("loop"),this.addChild(j),this.addChild(k),j.x=n,k.x=n,i=this.game.add.tween(j).to({x:10},b,"Linear",!0),i=this.game.add.tween(k).to({x:l-10},b,"Linear",!0),i.onComplete.add(function(a){return function(){return a.frozen&&(a.liquidGraphics.visible=!1),m.destroy(),c.destroy(),j.destroy(),k.destroy()}}(this))},d.prototype.melt=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;e=800,console.log("melting"),this.frozen=!1,this.iceFixture.SetFilterData({maskBits:0,categoryBits:1}),i=this.frozenBodies;for(c in i)f=i[c],f.body.static=!1,delete this.frozenBodies[c];return this.iceFixture.Refilter(),this.sensorFixture.m_userData.lightProperties.type="normal",this.liquidGraphics.visible=!0,d=this.game.make.graphics(0,0),this.addChild(d),m=this.game.physics.box2d.mpx(this.options.width),d.beginFill(16777215),d.drawRect(0,-10,m,52),a=this.sensorFixture.m_userData.lightProperties.lightAt,n=this.game.physics.box2d.mpx(-a.x-this.options.x),d.width=0,d.x=n,j=this.game.add.tween(d).to({x:0,width:m},e,"Linear",!0).onUpdateCallback(function(a){return function(){return a.frozen?d.visible=!1:a.liquidGraphics.mask=d}}(this)),b=this.game.make.graphics(0,0),this.addChild(b),b.width=m,b.x=0,g={val:m-n},j=this.game.add.tween(g).to({val:0},e,"Linear",!0).onUpdateCallback(function(a){return function(){return a.frozen?b.visible=!1:(b.clear(),b.beginFill(16777215),b.drawRect(m-g.val-10,-10,g.val+20,52))}}(this)),h={val:n},j=this.game.add.tween(h).to({val:0},e,"Linear",!0).onUpdateCallback(function(a){return function(){return a.frozen?b.visible=!1:(b.beginFill(16777215),b.drawRect(0,-10,h.val,52),a.iceGraphics.mask=b)}}(this)),k=this.game.make.sprite(0,0,"GroundAssets","vapor0000"),l=this.game.make.sprite(0,0,"GroundAssets","vapor0000"),k.anchor.set(.5),l.anchor.set(.5),k.animations.add("loop",Phaser.Animation.generateFrameNames("vapor",0,10,"",4),30,!0),l.animations.add("loop",Phaser.Animation.generateFrameNames("vapor",0,10,"",4),30,!0),k.animations.play("loop"),l.animations.play("loop"),this.addChild(k),this.addChild(l),k.x=n,l.x=n,j=this.game.add.tween(k).to({x:10},e,"Linear",!0),j=this.game.add.tween(l).to({x:m-10},e,"Linear",!0),j.onComplete.add(function(a){return function(){return a.frozen||(a.iceGraphics.visible=!1),d.destroy(),b.destroy(),k.destroy(),l.destroy()}}(this))},d}(Phaser.Sprite)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/MovingPlatform",["./Device"],function(c){"use strict";return function(c){function d(b,c){this.drawDarkMask=a(this.drawDarkMask,this),this.checkState=a(this.checkState,this),this.updateState=a(this.updateState,this),this.update=a(this.update,this),this.sounds=a(this.sounds,this);var e,f,g,h,i,j,k,l,m,n,o;c.width<c.height?(o=c.width,c.width=c.height,c.height=o,c.x=c.x+c.height/2,c.y=c.y+c.width/2,this.shapeRotation=n=-Math.PI/2):(c.x=c.x+c.width/2,c.y=c.y+c.height/2,this.shapeRotation=n=0),c.padding={x:null!=c.properties&&null!=c.properties.paddingX?c.properties.paddingX:0,y:null!=c.properties&&null!=c.properties.paddingY?c.properties.paddingY:.06},d.__super__.constructor.call(this,b,c),this.sprite=this.game.make.sprite(this.options.x,this.options.y,"MechAssets","_default0000"),this.game.physics.box2d.enable(this.sprite),this.game.layers.underGround.addChild(this.sprite),this.body=this.sprite.body,this.body.clearFixtures(),this.body.data.SetAngle(this.options.rotation),l=new box2d.b2PolygonShape,l.SetAsOrientedBox(this.options.width/2-this.options.padding.x,this.options.height/2-this.options.padding.y,new box2d.b2Vec2(0,0),n),h=new box2d.b2FixtureDef,h.shape=l,h.friction=.7,h.restitution=0,null!=this.options.properties.dtheta?h.density=.5:h.density=0,h.userData={reflection:!0},h.filter.categoryBits=256,h.filter.maskBits=4369,g=this.body.data.CreateFixture(h),g.id=this.body.world.getNextFixtureId(),null!=this.options.properties.dtheta?(i=new box2d.b2RevoluteJointDef,k=this.body.data.GetWorldCenter(),f=new box2d.b2Vec2(k.x-(this.options.properties.offsetX||0),k.y-(this.options.properties.offsetY||0)),i.Initialize(this.body.data,this.game.level.groundBody,f),this.options.properties.dtheta>0?(i.lowerAngle=0,i.upperAngle=Math.PI*this.options.properties.dtheta/180):(i.lowerAngle=Math.PI*this.options.properties.dtheta/180,i.upperAngle=0),i.enableLimit=!0,i.maxMotorTorque=200,i.enableMotor=!0,this.joint=this.game.physics.box2d.world.CreateJoint(i)):(e=new box2d.b2Vec2(this.options.properties.dx,this.options.properties.dy),i=new box2d.b2PrismaticJointDef,i.Initialize(this.body.data,this.game.level.groundBody,this.body.data.GetWorldCenter(),e),i.lowerTranslation=-e.Length(),i.upperTranslation=0,i.enableLimit=!0,i.motorSpeed=.5,i.maxMotorForce=220,i.enableMotor=!0,this.joint=this.game.physics.box2d.world.CreateJoint(i)),this.state=0,this.registerDevice(),this.shapeSprite=this.game.make.group(0,0),j=this.game.make.sprite(0,0,"MechAssets","BarCapLeft0000"),j.anchor.set(.5),this.shapeSprite.addChild(j),j.x=this.mpx(this.options.width/2-.5),j.y=this.mpx(this.options.height/2-.5),m=this.game.make.sprite(0,0,"MechAssets","BarCapRight0000"),m.anchor.set(.5),this.shapeSprite.addChild(m),m.x=-this.mpx(this.options.width/2-.5),m.y=this.mpx(this.options.height/2-.5),f=this.game.make.sprite(0,0,"MechAssets","BarCenter0000"),f.anchor.set(.5),this.shapeSprite.addChild(f),f.x=0,f.y=0,f.scale.x=(this.options.width-2)/3,this.lights[0].scale.x=(this.options.width-1)/3,this.shapeSprite.addChild(this.lights[0]),this.shapeSprite.rotation=n,this.sprite.addChild(this.shapeSprite),0===n?(this.sprite.scale.x=1.05,this.sprite.scale.y=.95):(this.sprite.scale.y=1.05,this.sprite.scale.x=.95)}return b(d,c),d.prototype.options={atlasName:null,frameName:null,lightAtlas:"MechAssets",lightFrame:"moving_platform_light",properties:{group:0,dx:4,dy:0}},d.prototype.sounds=function(){return"platform"},d.prototype.update=function(){return null!=this.joint.GetJointAngleRadians&&(this.joint.GetJointAngleRadians()<this.joint.GetLowerLimit()&&this.body.data.SetAngle(-this.joint.GetLowerLimit()),this.joint.GetJointAngleRadians()>this.joint.GetUpperLimit()&&this.body.data.SetAngle(-this.joint.GetUpperLimit())),d.__super__.update.apply(this,arguments)},d.prototype.updateState=function(a){var b;if(this.cacheAsBitmap=!0,b=null!=this.joint.GetJointAngleRadians&&this.options.properties.dtheta>0?-2:2,0===this.state){if(this.joint.SetMotorSpeed(b),this.body.data.ApplyForce(new box2d.b2Vec2(1,0),new box2d.b2Vec2(0,0)),null!=this.sound&&(this.sound.stopInstance(),this.sound=null),!a)return this.sound=this.game.level.sounds.platform.playInstance()}else if(this.joint.SetMotorSpeed(-b),this.body.data.ApplyForce(new box2d.b2Vec2(1,0),new box2d.b2Vec2(0,0)),null!=this.sound&&(this.sound.stopInstance(),this.sound=null),!a)return this.sound=this.game.level.sounds.platform.playInstance()},d.prototype.checkState=function(){var a,b,c;return a=function(a){return function(){return null!=a.joint.GetJointTranslation?a.joint.GetJointTranslation():a.options.properties.dtheta>0?-a.joint.GetJointAngleRadians():a.joint.GetJointAngleRadians()}}(this),c=function(a){return function(){return null!=a.joint.GetJointTranslation?a.joint.m_upperTranslation:a.options.properties.dtheta>0?-a.joint.GetLowerLimit():a.joint.GetUpperLimit()}}(this),b=function(a){return function(){return null!=a.joint.GetJointTranslation?a.joint.m_lowerTranslation:a.options.properties.dtheta>0?-a.joint.GetUpperLimit():a.joint.GetLowerLimit()}}(this),null!=this.sound&&0===this.state&&a()>=c()?(this.sound.stopInstance(),this.sound=null):null!=this.sound&&1===this.state&&a()<=b()?(this.sound.stopInstance(),this.sound=null):void 0},d.prototype.drawDarkMask=function(a){var b,c,d,e;if(1===this.state)return a.ctx.globalCompositeOperation="lighter",e={x:this.sprite.x+a.offset.x,y:this.sprite.y+a.offset.y},b=new box2d.b2Vec2(36,0).SelfRotateRadians(this.shapeRotation),c=new box2d.b2Vec2(-36,0).SelfRotateRadians(this.shapeRotation),d=a.ctx.createRadialGradient(e.x+b.x,e.y+b.y,20,e.x+b.x,e.y+b.y,160),d.addColorStop(0,"rgba(255,255,255,0.9)"),d.addColorStop(.5,"rgba(255,255,255,0.2)"),d.addColorStop(1,"transparent"),a.circle(e.x+b.x,e.y+b.y,160,d),d=a.ctx.createRadialGradient(e.x+c.x,e.y+c.y,20,e.x+c.x,e.y+c.y,160),d.addColorStop(0,"rgba(255,255,255,0.9)"),d.addColorStop(.5,"rgba(255,255,255,0.2)"),d.addColorStop(1,"transparent"),a.circle(e.x+c.x,e.y+c.y,180,d)},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Portal",["./BoxedDevice"],function(c){"use strict";return function(c){function d(b,c){this.drawDarkMask=a(this.drawDarkMask,this),this.ocupy=a(this.ocupy,this),this.createFakeBlock=a(this.createFakeBlock,this),this.debugVector=a(this.debugVector,this),this.destroy=a(this.destroy,this),this.update=a(this.update,this),this.updateState=a(this.updateState,this),this.transport=a(this.transport,this),this.removeMask=a(this.removeMask,this),this.createMask=a(this.createMask,this),this.sounds=a(this.sounds,this);var e,f,g,h,i,j,k,l,m,n;c.rotation||(c.rotation=0),d.__super__.constructor.call(this,b,c),this.center=g=this.game.make.sprite(this.options.x,this.options.y,"MechAssets"),g.animations.add("loop",Phaser.Animation.generateFrameNames("portal_center",0,39,"",4),30,!0),g.animations.play("loop"),g.anchor.set(.5),this.game.physics.box2d.enable(g),this.body=g.body,this.game.layers.liquids.addChild(g),this.glowLeft=j=this.game.make.sprite(this.options.x,this.options.y,"MechAssets"),j.animations.add("loop",Phaser.Animation.generateFrameNames("portal_glow",0,29,"",4),30,!0),j.animations.play("loop"),j.anchor.set(.5),j.scale.x=-1,j.rotation=this.options.rotation||0,j.alpha=0,j.tint=0,this.game.layers.liquids.addChild(j),this.glowRight=k=this.game.make.sprite(this.options.x,this.options.y,"MechAssets"),k.animations.add("loop",Phaser.Animation.generateFrameNames("portal_glow",0,29,"",4),30,!0),k.animations.play("loop"),k.anchor.set(.5),k.rotation=this.options.rotation||0,k.alpha=0,this.game.layers.liquids.addChild(k),e=this.game.make.sprite(this.options.x,this.options.y,"MechAssets","portal0000"),e.anchor.set(.5),e.rotation=this.options.rotation||0,f=this.game.make.sprite(0,0,"MechAssets","portal_light_off0000"),f.anchor.set(.5),e.addChild(f),f.offFrameName="portal_light_off0000",f.onFrameName="portal_light_on0000",this.lights.push(f),this.game.layers.liquids.addChild(e),this.options.properties.inverted&&(g.scale.x=-1,e.scale.x=-1,j.scale.x=1,k.scale.x=-1),this.body.clearFixtures(),this.body.mass=0,this.body.data.SetAngle(this.options.rotation),m=new box2d.b2PolygonShape,m.SetAsOrientedBox(this.options.sensorWidth,this.options.sensorHeigh,new box2d.b2Vec2(0,0),0),i=new box2d.b2FixtureDef,i.shape=m,i.density=0,i.isSensor=!0,i.filter.maskBits=4096,i.filter.categoryBits=4096,i.userData={lightProperties:{type:"transparent"}},this.sensorFixture=n=this.body.data.CreateFixture(i),n.id=this.body.world.getNextFixtureId(),l=new box2d.b2PolygonShape,l.SetAsOrientedBox(this.options.lightSensorWidth,this.options.sensorHeigh,new box2d.b2Vec2(0,0),0),i=new box2d.b2FixtureDef,i.shape=l,i.density=0,i.isSensor=!1,i.filter.maskBits=4096,i.filter.categoryBits=4096,i.userData={lightProperties:{type:"portal",getOutput:function(a){return function(b){var c,d;return d=b,c=(a.other.options.rotation||0)-(a.options.rotation||0),a.other.options.properties.inverted===a.options.properties.inverted?d.SelfRotateRadians(c+Math.PI):d.SelfRotateRadians(c),d}}(this),getPoint:function(a){return function(b,c){var d,e;return c=new box2d.b2Vec2(0,1).SelfRotateRadians(a.options.rotation||0),e=b.Clone().SelfSub(a.body.data.GetPosition()),a.other.options.properties.inverted!==a.options.properties.inverted&&(e=c.Clone().SelfMul(2*e.Dot(c)/c.Length()).SelfSub(e)),d=(a.other.options.rotation||0)-(a.options.rotation||0),e.SelfRotateRadians(d),a.other.body.data.GetPosition().SelfAdd(e)}}(this)},device:this},h=this.body.data.CreateFixture(i),h.id=this.body.world.getNextFixtureId(),this.eventHorizon=h,this.registerDevice(),this.nearBodies={},this.body.setFixtureContactCallback(n,function(a){return function(b,c,d,e,f,g){var h,i;if(e.m_userData["portal-sensor"])return f||null==a.nearBodies[c.id]?1===a.state&&f&&null==a.nearBodies[c.id]?(console.log("add",c.id),h=a.body.data.GetLocalPoint(c.data.GetPosition(),new box2d.b2Vec2).x,i={body:c,dist:null},c.side=h/Math.abs(h),a.createMask(i),a.nearBodies[c.id]=i):void 0:(console.log("remove",c.id),i=a.nearBodies[c.id],a.removeMask(i),delete a.nearBodies[c.id])}}(this),this),this.body.setFixtureContactCallback(this.eventHorizon,function(a){return function(b,c,d,e,f,g){var h,i;if(f)return h=a.body.data.GetLocalPoint(c.data.GetPosition(),new box2d.b2Vec2).x,i=h>0&&!a.options.properties.inverted||h<0&&a.options.properties.inverted?1:-1,a.transporting||(a.transporting=[]),!c.lastTransport||(new Date).getTime()-c.lastTransport>200?(c.lastTransport=(new Date).getTime(),a.transporting.push({body:c,vel:c.data.GetLinearVelocity().Clone(),side:i})):console.log("prevented transport...")}}(this),this),this.options.properties.inverted?this.normal=new box2d.b2Vec2(1,0):this.normal=new box2d.b2Vec2(-1,0),this.normal.SelfRotateRadians(this.options.rotation||0)}return b(d,c),d.prototype.options={sensorWidth:2,sensorHeigh:1.5,lightSensorWidth:.1},d.prototype.boxSize={x:2,y:3},d.prototype.sounds=function(){return["portalOpen","portalLoop","portalClose","portalTransport"]},d.prototype.createMask=function(a){var b,c,d,e,f;return c=this.mpx(3*this.options.sensorHeigh),d=this.game.make.graphics(0,0),this.game.level.root.addChild(d),d.beginFill(16777215),f=new box2d.b2Vec2(-1,0).SelfRotateRadians(this.options.rotation||0),b=a.body.data.GetPosition().Clone().SelfSub(this.body.data.GetPosition()),e=f.Dot(b)<0?this.mpx(5):-this.mpx(5),d.drawRect(0,-c,e,2*c),d.x=this.options.x,d.y=this.options.y,d.angle=180*this.options.rotation/Math.PI||0,a.mask=d,a.body.sprite.mask=d},d.prototype.removeMask=function(a){return a.body.sprite.mask=null,a.mask.destroy()},d.prototype.transport=function(a){var b,c,d,e,f,g;return c=a.body,e=new box2d.b2Vec2(0,1).SelfRotateRadians(this.options.rotation||0),d=c.data.GetPosition().Clone().SelfSub(this.body.data.GetPosition()),this.other.options.properties.inverted!==this.options.properties.inverted&&(d=e.Clone().SelfMul(2*d.Dot(e)/e.Length()).SelfSub(d)),b=(this.other.options.rotation||0)-(this.options.rotation||0),d.SelfRotateRadians(b),c.data.SetPosition(this.other.body.data.GetPosition().SelfAdd(d)),this.other.options.properties.inverted===this.options.properties.inverted?(g=a.vel.Clone().SelfRotateRadians(-b),g=e.Clone().SelfMul(2*g.Dot(e)/e.Length()).SelfSub(g)):g=a.vel.Clone().SelfRotateRadians(b),c.data.SetLinearVelocity(g),
|
||
g.Length()<10&&(f=this.other.normal.Clone(),1===a.side&&f.SelfMul(-1),c.data.SetLinearVelocity(g.SelfNormalize().SelfMul(10/c.data.GetMass()))),this.game.physics.update(),this.game.level.sounds.portalTransport.play(),this.sensorFixture.Refilter(),this.eventHorizon.Refilter()},d.prototype.updateState=function(a){if(1!==this.state||this.center.visible?0===this.state&&this.center.visible&&(this.center.visible=!1,this.eventHorizon.SetFilterData({maskBits:0,categoryBits:0}),this.sensorFixture.SetFilterData({maskBits:0,categoryBits:0}),null!=this.sound&&(this.sound.stopInstance(),this.sound=null),a||this.game.level.sounds.portalClose.play()):(this.center.visible=!0,this.eventHorizon.SetFilterData({maskBits:4096,categoryBits:4096}),this.sensorFixture.SetFilterData({maskBits:4096,categoryBits:4096}),this.game.level.sounds.portalOpen.play(),this.game.level.sounds.portalLoop.loop=!0,a||(this.sound=this.game.level.sounds.portalLoop.playInstance(),this.sound.volume=.3)),this.sensorFixture.Refilter(),null!=this.fakeWallFixture)return 1===this.state?this.fakeWallFixture.SetFilterData({maskBits:0,categoryBits:0}):this.fakeWallFixture.SetFilterData({maskBits:4369,categoryBits:1}),this.fakeWallFixture.Refilter()},d.prototype.update=function(){var a,b,c,d,e,f,g,h;if(1===this.state&&Object.keys(this.nearBodies).length>0){d=1/0,e=1/0,h=this.nearBodies;for(c in h)f=h[c],a=this.body.data.GetLocalPoint(f.body.data.GetPosition(),new box2d.b2Vec2),b=a.x,f.body.side&&f.body.side!==b/Math.abs(b)&&(console.log("side violation!",f.body),f.body.data.SetPosition(f.body.data.GetPosition().SelfAdd(a.Clone().SelfMul(-2)))),this.options.properties.inverted&&(b*=-1),b>0?d=Math.min(d,b):e=Math.min(e,-b);d<1/0&&(this.glowLeft.alpha=this.other.glowLeft.alpha=Math.min(1,(2-d)/2+.3)),e<1/0&&(this.glowRight.alpha=this.other.glowRight.alpha=Math.min(1,(2-e)/2+.3)),null!=this.sound&&(this.sound.volume=.3+Math.max(this.glowRight.alpha,this.glowLeft.alpha))}else null==this.transporting&&null==this.other.transporting&&null==this.receiving&&null==this.other.receiving&&(0===this.state||0===Object.keys(this.nearBodies).length&&0===Object.keys(this.other.nearBodies).length)&&(this.glowRight.alpha=this.other.glowRight.alpha=this.glowLeft.alpha=this.other.glowLeft.alpha=0);if(1===this.state&&null!=this.transporting){for(;g=this.transporting.shift();)this.transport(g);this.other.receiving=!0,this.transporting=null}this.receiving=null},d.prototype.destroy=function(){return null!=this.sound&&this.sound.stopInstance(),d.__super__.destroy.apply(this,arguments)},d.prototype.debugVector=function(a,b){return this.debugger.lineStyle(2,b,1),this.debugger.moveTo(0,0),this.debugger.lineTo(this.mpx(a.x),this.mpx(a.y))},d.prototype.createFakeBlock=function(a){var b,c,d,e;return e=this.game.make.sprite(0,0,"MechAssets","_default0000"),this.game.physics.box2d.enable(e),b=e.body,b.clearFixtures(),a.center.y-=.5*Math.cos(this.options.rotation),a.center.x+=.5*Math.sin(this.options.rotation),d=new box2d.b2PolygonShape,d.SetAsOrientedBox(a.width,a.height,a.center,a.rotation),c=new box2d.b2FixtureDef,c.shape=d,this.fakeWallFixture=b.data.CreateFixture(c),b.mass=0},d.prototype.ocupy=function(a){var b,c;return b=this.options.x/32,c=this.options.y/32,this.ocupyTile(a,b,c+2),this.ocupyTile(a,b-1,c-2),this.ocupyTile(a,b-1,c+2),this.ocupyTile(a,b,c-2)},d.prototype.drawDarkMask=function(a){var b,c,d,e;if(1===this.state)return a.ctx.globalCompositeOperation="lighter",e={x:this.center.x+a.offset.x,y:this.center.y+a.offset.y},b=new box2d.b2Vec2(0,36).SelfRotateRadians(this.options.rotation),c=new box2d.b2Vec2(0,-36).SelfRotateRadians(this.options.rotation),d=a.ctx.createRadialGradient(e.x+b.x,e.y+b.y,20,e.x+b.x,e.y+b.y,90),d.addColorStop(0,"rgba(255,255,255,1)"),d.addColorStop(.5,"rgba(255,255,255,0.3)"),d.addColorStop(1,"transparent"),a.circle(e.x+b.x,e.y+b.y,90,d),d=a.ctx.createRadialGradient(e.x+c.x,e.y+c.y,20,e.x+c.x,e.y+c.y,90),d.addColorStop(0,"rgba(255,255,255,1)"),d.addColorStop(.5,"rgba(255,255,255,0.3)"),d.addColorStop(1,"transparent"),a.circle(e.x+c.x,e.y+c.y,90,d)},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Pulley",["./Device"],function(c){"use strict";return function(c){function d(b,c){this.update=a(this.update,this);var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;for(d.__super__.constructor.call(this,b,c),this.barWidth=this.options.properties.barWidth||this.options.barWidth,this.barHeight=this.options.properties.barHeight||this.options.barHeight,this.anchor1=new box2d.b2Vec2(this.options.polyline[1][0]+this.options.x,this.options.polyline[1][1]+this.options.y-this.mpx(2)),this.anchor2=new box2d.b2Vec2(this.options.polyline[2][0]+this.options.x,this.options.polyline[2][1]+this.options.y-this.mpx(2)),q={x:this.options.polyline[0][0]+this.options.x,y:this.options.polyline[0][1]+this.options.y},r={x:this.options.polyline[3][0]+this.options.x,y:this.options.polyline[3][1]+this.options.y},this.ropeLeft=this.game.make.tileSprite(q.x,q.y,200,20,"MechAssets","pulley_rope0000"),this.ropeCenter=this.game.make.tileSprite(this.anchor1.x,this.anchor1.y,200,20,"MechAssets","pulley_rope0000"),this.ropeRight=this.game.make.tileSprite(r.x,r.y,200,20,"MechAssets","pulley_rope0000"),this.ropeLeft.anchor.set(0,.5),this.ropeCenter.anchor.set(0,.5),this.ropeRight.anchor.set(0,.5),this.game.layers.underGround.addChild(this.ropeLeft),this.game.layers.underGround.addChild(this.ropeCenter),this.game.layers.underGround.addChild(this.ropeRight),this.platform1=s=this.game.make.sprite(q.x,q.y,"MechAssets","_default0000"),this.platform2=t=this.game.make.sprite(r.x,r.y,"MechAssets","_default0000"),this.game.physics.box2d.enable(s),this.game.physics.box2d.enable(t),this.plat1=this.game.make.sprite(0,0,"MechAssets","pulley_platform0000"),this.plat2=this.game.make.sprite(0,0,"MechAssets","pulley_platform0000"),this.plat1.anchor.set(.5),this.plat2.anchor.set(.5),this.plat1.width=1.3*this.mpx(this.barWidth),this.plat2.width=1.3*this.mpx(this.barWidth),this.base1=this.game.make.sprite(0,0,"MechAssets","pulley_base0000"),this.base2=this.game.make.sprite(0,0,"MechAssets","pulley_base0000"),this.base1.anchor.set(.5),this.base2.anchor.set(.5),this.platform1.addChild(this.base1),this.platform2.addChild(this.base2),this.platform1.addChild(this.plat1),this.platform2.addChild(this.plat2),this.game.layers.underGround.addChild(this.platform1),this.game.layers.underGround.addChild(this.platform2),s.body.data.SetFixedRotation(!0),t.body.data.SetFixedRotation(!0),s.body.data.m_userData="reactable",t.body.data.m_userData="reactable",s.body.data.SetLinearDamping(.1),t.body.data.SetLinearDamping(.1),v=[this.platform1.body,this.platform2.body],n=0,p=v.length;n<p;n++)h=v[n],h.clearFixtures(),l=this.barWidth/2,k=this.barHeight/2,m=l+.1,y=[],y.push(new box2d.b2Vec2(l,k)),y.push(new box2d.b2Vec2(-l,k)),y.push(new box2d.b2Vec2(-m,0)),y.push(new box2d.b2Vec2(-l,-k)),y.push(new box2d.b2Vec2(l,-k)),y.push(new box2d.b2Vec2(m,0)),u=new box2d.b2PolygonShape,u.Set(y),j=new box2d.b2FixtureDef,j.shape=u,j.friction=.4,j.restitution=0,j.density=3,i=h.data.CreateFixture(j),i.id=h.world.getNextFixtureId(),this.options.properties.prismatic&&(g=new box2d.b2Vec2(0,1),x=new box2d.b2BodyDef,x.density=0,w=new box2d.b2Body(x),o=new box2d.b2PrismaticJointDef,o.Initialize(h.data,w,h.data.GetWorldCenter(),g),this.joint=this.game.physics.box2d.world.CreateJoint(o));return this.wheel1=this.game.make.sprite(this.anchor1.x+10,this.anchor1.y+10-this.baseHeight,"MechAssets","pulley_anchor0000"),this.wheel2=this.game.make.sprite(this.anchor2.x-10,this.anchor2.y+10-this.baseHeight,"MechAssets","pulley_anchor0000"),this.wheel1.anchor.set(.5),this.wheel2.anchor.set(.5),this.game.layers.underGround.addChild(this.wheel1),this.game.layers.underGround.addChild(this.wheel2),o=new box2d.b2PulleyJointDef,e={x:this.pxm(this.anchor1.x),y:this.pxm(this.anchor1.y)},f={x:this.pxm(this.anchor2.x),y:this.pxm(this.anchor2.y)},o.Initialize(s.body.data,t.body.data,e,f,s.body.data.GetWorldCenter(),t.body.data.GetWorldCenter(),1),this.joint=this.game.physics.box2d.world.CreateJoint(o),this}return b(d,c),d.prototype.options={barWidth:2.7,barHeight:.24},d.prototype.lastp1={x:0,y:0},d.prototype.baseHeight=60,d.prototype.update=function(){var a,b,c,d,e,f,g;return f=new box2d.b2Vec2(this.platform1.position.x,this.platform1.position.y-this.baseHeight),a=new box2d.b2Vec2(this.anchor1.x,this.anchor1.y-this.baseHeight),g=new box2d.b2Vec2(this.platform2.position.x,this.platform2.position.y-this.baseHeight),b=new box2d.b2Vec2(this.anchor2.x,this.anchor2.y-this.baseHeight),Math.round(1*this.lastp1.x)!==Math.round(1*f.x)||Math.round(1*this.lastp1.y)!==Math.round(1*f.y)||Math.round(1*this.lastp2.x)!==Math.round(1*g.x)||Math.round(1*this.lastp2.y)!==Math.round(1*g.y)?(this.cacheAsBitmap=!1,this.lastp1=f.Clone(),this.lastp2=g.Clone(),d=f.Clone().SelfSub(a),c=a.Clone().SelfSub(b),e=b.Clone().SelfSub(g),this.ropeLeft.position={x:a.x,y:a.y},this.ropeLeft.width=d.Length(),this.ropeLeft.height=20,this.ropeLeft.rotation=Math.atan2(-d.y,-d.x)+Math.PI,this.ropeLeft.tilePosition.x=d.Length(),this.ropeCenter.position={x:a.x,y:a.y},this.ropeCenter.width=c.Length(),this.ropeCenter.height=20,this.ropeCenter.rotation=Math.atan2(-c.y,-c.x),this.ropeCenter.tilePosition.x=e.Length(),this.ropeRight.position={x:b.x,y:b.y},this.ropeRight.width=e.Length(),this.ropeRight.height=20,this.ropeRight.rotation=Math.atan2(-e.y,-e.x),this.ropeRight.tilePosition.x=e.Length(),this.wheel1.rotation=e.Length()/Math.PI/10,this.wheel2.rotation=e.Length()/Math.PI/10):this.cacheAsBitmap?void 0:this.cacheAsBitmap=!0},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Pusher",["./BoxedDevice"],function(c){"use strict";return function(c){function d(b,c){this.ocupy=a(this.ocupy,this),this.checkState=a(this.checkState,this),this.doRegister=a(this.doRegister,this),this.sounds=a(this.sounds,this);var e,f,g,h,i,j,k,l,m,n,o;return d.__super__.constructor.call(this,b,c),g=this.game.make.sprite(this.options.x,this.options.y,"MechAssets","_default0000"),this.game.physics.box2d.enable(g),h=this.game.make.resSprite(0,0,"MechAssets","pusher_block0000"),h.anchor.set(.5),g.addChild(h),j=this.game.make.resSprite(0,0,"MechAssets","pusher_block_light0000"),j.anchor.set(.5),g.addChild(j),this.button=g,this.game.layers.underGround.addChild(g),this.base=f=this.game.make.sprite(this.options.x,this.options.y+this.mpx(.5),"MechAssets","_default0000"),this.game.layers.overGround.addChild(f),this.lights.push(j),g.body.clearFixtures(),g.body.data.SetAngle(Math.PI*c.rotation/180||0),i=g.body,o=[],o.push(new box2d.b2Vec2(-this.options.pusherWidth/2-.5,0)),o.push(new box2d.b2Vec2(this.options.pusherWidth/2+.5,0)),o.push(new box2d.b2Vec2(this.options.pusherWidth/2,this.options.pusherHeight)),o.push(new box2d.b2Vec2(-this.options.pusherWidth/2,this.options.pusherHeight)),n=new box2d.b2PolygonShape,n.Set(o),k=new box2d.b2FixtureDef,k.shape=n,k.friction=.7,k.restitution=0,k.density=.1,k.userData="pusher",k.filter.categoryBits=1,k.filter.maskBits=61695,m=i.data.CreateFixture(k),m.id=i.world.getNextFixtureId(),e=new box2d.b2Vec2(0,1),l=new box2d.b2PrismaticJointDef,l.Initialize(i.data,this.game.level.groundBody,i.data.GetWorldCenter(),e),l.upperTranslation=.7,l.lowerTranslation=0,l.enableLimit=!0,l.motorSpeed=-15,l.maxMotorForce=5,l.enableMotor=!0,this.joint=this.game.physics.box2d.world.CreateJoint(l),this.signal=new Phaser.Signal,this.doRegister(),this}return b(d,c),d.prototype.options={pusherWidth:1,pusherHeight:.6,atlasName:null,frameName:null},d.prototype.sounds=function(){return"pusher"},d.prototype.doRegister=function(){return this.registerDevice()},d.prototype.checkState=function(){return 0===this.state&&this.joint.GetJointTranslation()>.2?(this.state=1,this.game.level.sounds.pusher.play(),this.signal.dispatch(this)):1===this.state&&this.joint.GetJointTranslation()<=.2?(this.state=0,this.game.level.sounds.pusher.play(),this.signal.dispatch(this)):void 0},d.prototype.ocupy=function(){},d}(c)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Level/Devices/Roman",["./BoxedDevice"],function(b){"use strict";return function(b){function c(a,b){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;return c.__super__.constructor.call(this,a,b),this.options.polygon[0][0]===this.options.polygon[1][0]?(m=2*this.pxm(this.options.polygon[2][0]-this.options.polygon[1][0]),k=this.pxm(this.options.polygon[1][1]-this.options.polygon[0][1]),f=.6,d=-Math.atan(k/(m/2))):(m=2*this.pxm(this.options.polygon[1][0]-this.options.polygon[0][0]),k=this.pxm(this.options.polygon[1][1]-this.options.polygon[0][1]),f=.6,d=Math.atan(k/(m/2))),h={x:this.options.polygon[1][0]+this.options.x+this.mpx(1),y:this.options.polygon[1][1]+this.options.y-this.mpx(1)},e=this.game.make.tileSprite(h.x,h.y,this.mpx(m),30,"MechAssets","roman_bar0000"),this.game.physics.box2d.enable(e),i=this.game.make.sprite(this.mpx(m/2),0,"MechAssets","roman_end0000"),i.anchor.set(.05,.5),e.addChild(i),i=this.game.make.sprite(-this.mpx(m/2),0,"MechAssets","roman_end0000"),i.scale.x=-1,i.anchor.set(.05,.5),e.addChild(i),o=this.game.make.sprite(h.x,h.y,"MechAssets","roman_center0000"),o.anchor.set(.5,.5),e.body.clearFixtures(),q=[],q.push(new box2d.b2Vec2(-m/2,-f/2)),q.push(new box2d.b2Vec2(m/2,-f/2)),q.push(new box2d.b2Vec2(m/2-2,f/2)),q.push(new box2d.b2Vec2(-m/2+2,f/2)),p=new box2d.b2PolygonShape,p.Set(q),j=new box2d.b2FixtureDef,j.shape=p,j.friction=.7,j.restitution=0,j.density=.1,j.filter.categoryBits=1,j.filter.maskBits=65535,e.body.data.CreateFixture(j),e.body.data.SetAngle(d||0),g=this.game.make.sprite(h.x,h.y-this.mpx(k),"MechAssets","roman_base0000"),this.game.physics.box2d.enable(g),g.height/(2*this.mpx(k)),g.height=-2*this.mpx(k),this.game.layers.overGround.addChild(g),this.game.layers.overGround.addChild(e),this.game.layers.overChars.addChild(o),g.body.clearFixtures(),g.body.data.SetAngle(Math.PI*b.rotation/180||0),g.body.mass=0,g.body,q=[],q.push(new box2d.b2Vec2(-1,0)),q.push(new box2d.b2Vec2(0,k)),q.push(new box2d.b2Vec2(1,0)),p=new box2d.b2PolygonShape,p.Set(q),j=new box2d.b2FixtureDef,j.shape=p,j.friction=.7,j.restitution=0,j.density=.1,j.filter.categoryBits=1,j.filter.maskBits=65535,g.body.data.CreateFixture(j),l=new box2d.b2RevoluteJointDef,n=e.body.data.GetWorldCenter(),h=new box2d.b2Vec2(n.x,n.y),l.Initialize(e.body.data,g.body.data,h),this.joint=this.game.physics.box2d.world.CreateJoint(l),this}return a(c,b),c.prototype.options={atlasName:null,frameName:null},c}(b)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/RotMirror",["./BoxedDevice"],function(c){"use strict";return function(c){function d(b,c){this.drawDarkMask=a(this.drawDarkMask,this),this.checkState=a(this.checkState,this),this.updateState=a(this.updateState,this),this.update=a(this.update,this),this.sounds=a(this.sounds,this);var e,f,g,h,i,j,k,l,m,n,o;for(d.__super__.constructor.call(this,b,c),this.base=f=this.game.make.resSprite(this.options.x,this.options.y,"MechAssets","rotmirror_circle0000"),f.anchor.set(.5),this.game.layers.underGround.addChild(f),k=this.game.make.resSprite(this.options.x,this.options.y,"MechAssets","rotmirror0000"),k.anchor.set(.5),this.game.physics.box2d.enable(k),this.body=k.body,l=this.game.make.resSprite(0,0,"MechAssets","rotmirror_light_off0000"),l.anchor.set(.5),k.addChild(l),l.offFrameName="rotmirror_light_off0000",l.onFrameName="rotmirror_light_on0000",this.lights.push(l),this.options.properties.bringToBack?this.game.layers.underGround.addChild(k):this.game.layers.overGround.addChild(k),this.body.clearFixtures(),o=new box2d.b2PolygonShape,o.SetAsOrientedBox(this.options.boxWidth/2,this.options.boxHeight/2,new box2d.b2Vec2(0,0),0),i=new box2d.b2FixtureDef,i.shape=o,i.friction=.7,i.restitution=0,i.density=1,i.userData={lightProperties:{type:"transparent"}},h=this.body.data.CreateFixture(i),h.id=this.body.world.getNextFixtureId(),m=new box2d.b2PolygonShape,m.SetAsOrientedBox(this.options.mirrorWidth/2,this.options.mirrorHeight/2,new box2d.b2Vec2(0,0),Math.PI/4),i=new box2d.b2FixtureDef,i.shape=m,i.friction=.7,i.restitution=0,i.density=.2,i.userData={lightProperties:{type:"mirror"}},h=this.body.data.CreateFixture(i),h.id=this.body.world.getNextFixtureId(),e=new box2d.b2CircleShape(.25),e.m_p=new box2d.b2Vec2(this.options.boxWidth/2-.25,this.options.boxWidth/2-.25),i=new box2d.b2FixtureDef,i.shape=e,h=this.body.data.CreateFixture(i),e=new box2d.b2CircleShape(.25),e.m_p=new box2d.b2Vec2(-this.options.boxWidth/2+.25,-this.options.boxWidth/2+.25),i=new box2d.b2FixtureDef,i.shape=e,h=this.body.data.CreateFixture(i),j=new box2d.b2RevoluteJointDef,n=this.body.data.GetWorldCenter(),g=new box2d.b2Vec2(n.x,n.y),j.Initialize(this.body.data,this.game.level.groundBody,g);this.options.rotation<0;)this.options.rotation+=2*Math.PI;return 1===this.options.properties.dir?(j.lowerAngle=-this.options.rotation,j.upperAngle=-this.options.rotation+Math.PI/2):(j.lowerAngle=-this.options.rotation-Math.PI/2,j.upperAngle=-this.options.rotation),j.enableLimit=!0,j.maxMotorTorque=100,j.enableMotor=!0,this.joint=this.game.physics.box2d.world.CreateJoint(j),1===this.options.properties.dir?this.body.data.SetAngle(-this.joint.GetLowerLimit()):this.body.data.SetAngle(-this.joint.GetUpperLimit()),this.registerDevice(),this}return b(d,c),d.prototype.options={atlasName:null,frameName:null,lightAtlas:null,lightFrame:null,boxWidth:1.8,boxHeight:1.8,mirrorWidth:2,mirrorHeight:.1},d.prototype.sounds=function(){return["platform"]},d.prototype.update=function(){return this.joint.GetJointAngleRadians()<this.joint.GetLowerLimit()&&this.body.data.SetAngle(-this.joint.GetLowerLimit()),this.joint.GetJointAngleRadians()>this.joint.GetUpperLimit()&&this.body.data.SetAngle(-this.joint.GetUpperLimit()),d.__super__.update.apply(this,arguments)},d.prototype.updateState=function(a){if(0===this.state){if(this.joint.SetMotorSpeed(-1.5*this.options.properties.dir),null!=this.sound&&this.sound.stopInstance(),!a)return this.sound=this.game.level.sounds.platform.playInstance()}else if(this.joint.SetMotorSpeed(1.5*this.options.properties.dir),null!=this.sound&&this.sound.stopInstance(),!a)return this.sound=this.game.level.sounds.platform.playInstance()},d.prototype.checkState=function(){var a,b,c;return a=function(a){return function(){return a.options.properties.dir>0?-a.joint.GetJointAngleRadians():a.joint.GetJointAngleRadians()}}(this),c=function(a){return function(){return a.options.properties.dir>0?-a.joint.GetLowerLimit():a.joint.GetUpperLimit()}}(this),b=function(a){return function(){return a.options.properties.dir>0?-a.joint.GetUpperLimit():a.joint.GetLowerLimit()}}(this),null!=this.sound&&0===this.state&&a()>=c()?(this.game.level.sounds.platform.stopInstance(),this.sound=null):null!=this.sound&&1===this.state&&a()<=b()?(this.game.level.sounds.platform.stopInstance(),this.sound=null):void 0},d.prototype.drawDarkMask=function(a){var b,c;if(1===this.state)return c={x:this.base.x+a.offset.x,y:this.base.y+a.offset.y},a.ctx.globalCompositeOperation="lighter",b=a.ctx.createRadialGradient(c.x,c.y,20,c.x,c.y,160),b.addColorStop(0,"rgba(255,255,255,1)"),b.addColorStop(.5,"rgba(255,255,255,0.3)"),b.addColorStop(1,"transparent"),a.circle(c.x,c.y,160,b)},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Slider",["./Device"],function(c){"use strict";return function(c){function d(b,c){this.checkState=a(this.checkState,this),this.sounds=a(this.sounds,this);var e,f,g,h,i,j,k,l,m,n,o,p;return d.__super__.constructor.call(this,b,c),o+=this.game.physics.box2d.mpx(1),p-=this.game.physics.box2d.mpx(1),n=this.options.polyline[1][0]-this.options.polyline[0][0],this._width=n,l={x:this.options.x+n/2,y:this.options.y},g=this.game.make.sprite(l.x,l.y,"MechAssets","_default0000"),this.game.physics.box2d.enable(g),h=this.game.make.sprite(0,0,"MechAssets","SliderDot0000"),h.anchor.set(.5),g.addChild(h),i=this.game.make.sprite(0,0,"MechAssets","slider_light_off0000"),i.anchor.set(.5),g.addChild(i),this.game.layers.overChars.addChild(g),this.lights.push(i),m=this.game.make.sprite(l.x,l.y,"MechAssets","SliderTrack0000"),m.anchor.set(.5),m.width=n,this.game.layers.underGround.addChild(m),g.body.clearFixtures(),f=new box2d.b2CircleShape(.3),f.m_p.SetXY(0,0),j=new box2d.b2FixtureDef,j.shape=f,j.friction=0,g.body.data.CreateFixture(j),e=new box2d.b2Vec2(-1,0),k=new box2d.b2PrismaticJointDef,k.Initialize(g.body.data,this.game.level.groundBody,g.body.data.GetWorldCenter(),e),k.upperTranslation=-this.pxm(n/2),k.lowerTranslation=this.pxm(n/2),k.enableLimit=!0,k.motorSpeed=0,k.maxMotorForce=20,k.enableMotor=!0,this.joint=this.game.physics.box2d.world.CreateJoint(k),g.body.data.SetLinearDamping(1),this.signal=new Phaser.Signal,this.registerDevice(),this}return b(d,c),d.prototype.options={properties:{group:0}},d.prototype.sounds=function(){return"slider"},d.prototype.checkState=function(){var a,b;if(a=this.joint.GetJointTranslation(),b=this.state,a!==this.prevJointValue||b!==this.prevStateValue)return a!==b&&(this.sound&&this.sound.isPlaying||(this.sound=this.game.level.sounds.slider.play()),this.state=Math.PI*this.joint.GetJointTranslation()*(this.options.properties.max||1)/this.pxm(-this._width),this.signal.dispatch(this)),this.prevJointValue=a,this.prevStateValue=b},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Snow",["Phaser"],function(){"use strict";return function(c){function d(b,c,e){this.drawTile=a(this.drawTile,this),this.createSnowGraphics=a(this.createSnowGraphics,this);var f,g,h,i,j,k,l,m;return this.ground=c,this.options={},this.options.data=e,"SW"===e.dir?(i=e.length*Math.sqrt(2),this.options.y=e.x+e.length/2,this.options.x=e.y+e.length/2):"SE"===e.dir?(i=e.length*Math.sqrt(2),this.options.y=e.x+e.length/2,this.options.x=e.y-e.length/2+1):"WE"===e.dir&&(i=e.length,this.options.y=e.x,this.options.x=e.y+e.length/2),d.__super__.constructor.call(this,b,this.options.x,this.options.y),this.game.add.existing(this),this.game.layers.liquids.addChild(this),this.game.physics.box2d.enable(this),this.body.clearFixtures(),this.body.mass=0,this.body.data.SetPosition(new box2d.b2Vec2(-this.options.x,-this.options.y)),"SW"===e.dir?f=Math.PI/4:"SE"===e.dir?f=-Math.PI/4:"WE"===e.dir&&(f=0),this.body.data.SetAngle(f),k=new box2d.b2PolygonShape,m=[],l=i-.1,j=.4,m.push(new box2d.b2Vec2(-l/2+0,.01)),m.push(new box2d.b2Vec2(l/2-0,.01)),m.push(new box2d.b2Vec2(l/2-.3,0-j+.01)),m.push(new box2d.b2Vec2(-l/2+.3,0-j+.01)),k.Set(m),h=new box2d.b2FixtureDef,h.shape=k,h.filter.categoryBits=1,h.filter.maskBits=16,h.friction=1,h.userData={type:"ice"},g=this.iceFixture=this.body.data.CreateFixture(h),g.id=this.body.world.getNextFixtureId(),this.body.setFixtureContactCallback(this.iceFixture,function(a){return function(a,b,c,d,e,f){var g;if(null!=b.sprite.character&&"feet"===d.m_userData||null!=a.sprite.character&&"feet"===c.m_userData)return g=b.sprite.character||a.sprite.character,e?(g.snowCount||(g.snowCount=0),g.snowCount+=1):(g.snowCount||(g.snowCount=0),g.snowCount-=1),g.setOnIce(0!==g.snowCount)}}()),this.createSnowGraphics(),this}return b(d,c),d.prototype.createSnowGraphics=function(){var a,b,c,d,e,f,g,h;for(d=[],e=a=0,c=this.options.data.length-1;0<=c?a<=c:a>=c;e=0<=c?++a:--a)b=1,"SW"===this.options.data.dir?(g=this.game.physics.box2d.mpx(1)*(this.options.x-this.options.data.length/2+e*b),h=this.game.physics.box2d.mpx(1)*(this.options.y-this.options.data.length/2+e*b),f="SnowSlope0000"):"SE"===this.options.data.dir?(g=this.game.physics.box2d.mpx(1)*(this.options.x+this.options.data.length/2-1-e*b),h=this.game.physics.box2d.mpx(1)*(this.options.y-this.options.data.length/2+e*b),f="SnowSlope0001"):"WE"===this.options.data.dir&&(g=this.game.physics.box2d.mpx(1)*(this.options.x-this.options.data.length/2+e),h=this.game.physics.box2d.mpx(1)*this.options.y,f="SnowFlat0000"),d.push(this.drawTile(g,h,f));return d},d.prototype.drawTile=function(a,b,c,d){var e,f;return e=this.game.cache.getFrameByName("GroundAssets",c),f=this.game.cache.getImage("GroundAssets"),a=a-(e.width-32)/2+32,b=b-(e.height-32)/2+32,this.ground.bmd.ctx.drawImage(f,e.x,e.y,e.width,e.height,a,b,e.width,e.height)},d}(Phaser.Sprite)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/TimedPusher",["./Pusher"],function(c){"use strict";return function(c){function d(b,c){this.drawDarkMask=a(this.drawDarkMask,this),this.ocupy=a(this.ocupy,this),this.checkState=a(this.checkState,this),this.doRegister=a(this.doRegister,this),this.destroy=a(this.destroy,this),this.sounds=a(this.sounds,this);var e,f,g;d.__super__.constructor.call(this,b,c),f=this.game.make.sprite(0,0,"MechAssets","timed_pusher_base0000"),f.anchor.set(.5),this.base.addChild(f),g=this.game.make.sprite(0,0,"MechAssets","timed_pusher_light_off0000"),g.anchor.set(.5),this.base.addChild(g),g.offFrameName="timed_pusher_light_off0000",g.onFrameName="timed_pusher_light_off0000",this.lights.push(g),this.baseLight=e=this.game.make.sprite(0,0,"MechAssets","timed_pusher_light_off0000"),e.anchor.set(.5),this.base.addChild(e),e.offFrameName="timed_pusher_light_off0000",e.onFrameName="timed_pusher_light_on0000",e.cacheAsBitmap=!0,this.lights.push(e),this.clock=this.game.make.graphics(0,27),this.clock.cacheAsBitmap=!0,this.registerDevice(),this.downState=0}return b(d,c),d.prototype.timer=null,d.prototype.sounds=function(){return["pusher","clock"]},d.prototype.destroy=function(){return null!=this.sound&&this.sound.stop(),d.__super__.destroy.apply(this,arguments)},d.prototype.doRegister=function(){},d.prototype.checkState=function(){var a,b,c,d,e,f,g,h;if(f=this.joint.GetJointTranslation(),0===this.downState&&f>0?(this.downState=1,this.game.level.sounds.pusher.play(),null!=this.sound&&this.sound.isPlaying&&this.sound.stop()):1===this.downState&&f<=0&&(this.downState=0,this.game.level.sounds.pusher.play(),null!=this.sound&&this.sound.isPlaying&&this.sound.stop()),f>0?(this.state=1,this.signal.dispatch(this),null==this.timer&&(this.timer=this.game.time.create(!0),this.timer.add(this.options.properties.time,function(a){return function(){return a.state=0,a.game.level.sounds.pusher.play(),a.signal.dispatch(a),a.timer=null}}(this))),this.timer.stop(!1),this.timer.start()):!this.timer&&1===this.state&&f<=0&&(this.state=0,this.signal.dispatch(this)),1===this.state){if(null==this.baseLight.mask&&(this.base.addChild(this.clock),this.baseLight.mask=this.clock),0!==this.downState||null!=this.sound&&this.sound.isPlaying||(d=22796,this.sound=this.game.level.sounds.clock.play(null,(d-this.options.properties.time)/1e3)),a=0,b=0,g=20,c=Math.max(0,Math.min(1,1-this.timer.ms/this.options.properties.time)),c=Math.ceil(12*c)/12,h=-2*Math.PI*c-Math.PI/2,e=-Math.PI/2,console.log("angling "+this.timer.ms+" "+this.options.properties.time+" "+(1-this.timer.ms/this.options.properties.time)),this.lastDrawnAngle!==h)return this.clock.clear(),this.clock.beginFill(16777215,1),this.clock.moveTo(a,b),this.clock.arc(a,b,g,h,e),this.clock.lineTo(a,b),this.clock.cacheAsBitmap=!0,this.lastDrawnAngle=h}else if(this.lastDrawnAngle)return this.base.removeChild(this.clock),this.baseLight.mask=null,this.lastDrawnAngle=null},d.prototype.ocupy=function(a){var b,c;return b=this.options.x/32,c=this.options.y/32,this.ocupyTile(a,b,c),this.ocupyTile(a,b-1,c),this.ocupyTile(a,b-2,c),this.ocupyTile(a,b+1,c),this.ocupyTile(a,b,c-1),this.ocupyTile(a,b-1,c-1),this.ocupyTile(a,b-2,c-1),this.ocupyTile(a,b+1,c-1)},d.prototype.drawDarkMask=function(a){var b,c;if(1===this.state)return a.ctx.globalCompositeOperation="lighter",c={x:this.options.x+a.offset.x,y:this.options.y+a.offset.y+12},b=a.ctx.createRadialGradient(c.x,c.y,20,c.x,c.y,80),b.addColorStop(0,"rgba(255,255,255,1)"),b.addColorStop(.5,"rgba(255,255,255,0.2)"),b.addColorStop(1,"transparent"),a.circle(c.x,c.y,90,b)},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Devices/Wind",["./BoxedDevice"],function(c){"use strict";return function(c){function d(b,c){this.drawDarkMask=a(this.drawDarkMask,this),this.ocupy=a(this.ocupy,this),this.updateState=a(this.updateState,this),this.update=a(this.update,this),this.destroy=a(this.destroy,this),this.sounds=a(this.sounds,this);var e,f,g,h,i,j,k,l;c.rotation||(c.rotation=0),c.rotation+=90,d.__super__.constructor.call(this,b,c),this.sprite.anchor.set(.5),i=new box2d.b2PolygonShape,this.options.properties.flat?i.SetAsOrientedBox(this.options.boxWidth/2,this.options.boxHeight/2,new box2d.b2Vec2(0,.3),0):(j=[],j.push(new box2d.b2Vec2(-this.options.boxWidth/2-.6,0)),j.push(new box2d.b2Vec2(this.options.boxWidth/2+.6,0)),j.push(new box2d.b2Vec2(this.options.boxWidth/2,this.options.boxHeight)),j.push(new box2d.b2Vec2(-this.options.boxWidth/2,this.options.boxHeight)),i.Set(j)),f=new box2d.b2FixtureDef,f.shape=i,f.friction=.4,f.restitution=0,f.density=.2,g=new box2d.b2Vec2(0,0),g=g.SelfRotateRadians(this.options.rotation||0),e=this.body.data.CreateFixture(f),e.id=this.body.world.getNextFixtureId(),this.body.mass=0,l=null!=this.options.properties.windWidth?this.options.properties.windWidth:this.options.windWidth,h=new box2d.b2PolygonShape,h.SetAsOrientedBox(l/2,this.options.properties.length/2,new box2d.b2Vec2(0,this.options.properties.length/2+.5),0),f=new box2d.b2FixtureDef,f.shape=h,f.isSensor=!0,f.userData={lightProperties:{type:"transparent"}},this.windSensor=this.body.data.CreateFixture(f),this.windSensor.id=this.body.world.getNextFixtureId(),this.body.mass=0,this.activeBodies={},this.body.setFixtureContactCallback(this.windSensor,function(a){return function(b,c,d,e,f,g){var h;if(null!=c.sprite.character){if(!f&&null!=a.activeBodies[c.id])return delete a.activeBodies[c.id];if(f&&null==a.activeBodies[c.id])return h={body:c},a.activeBodies[c.id]=h}}}(this)),this.sprite.animations.add("loop",Phaser.Animation.generateFrameNames("wind_base",0,4,"",4),30,!0),k=this.windEffect=this.game.make.sprite(this.options.x-b.physics.box2d.mpx(g.x),this.options.y-b.physics.box2d.mpx(g.y),"MechAssets"),k.anchor.y=1,k.anchor.x=.5,k.animations.add("loop",Phaser.Animation.generateFrameNames("wind_effect",0,30,"",4),30,!0),k.animations.play("loop"),k.animations.next(Math.floor(30*Math.random())),k.height=b.physics.box2d.mpx(this.options.properties.length),
|
||
k.rotation=this.options.rotation||0,k.visible=!1,this.game.layers.overChars.addChild(k),this.registerDevice()}return b(d,c),d.prototype.options={boxWidth:2.5,boxHeight:.6,windWidth:2.6,windHeight:10,atlasName:"MechAssets",frameName:"wind_base0000",lightAtlas:"MechAssets",lightFrame:"wind_base_light",layer:"liquids"},d.prototype.boxSize={x:-3,y:2},d.prototype.sounds=function(){return"wind"},d.prototype.destroy=function(){return null!=this.sound&&this.sound.stopInstance(),d.__super__.destroy.apply(this,arguments)},d.prototype.update=function(){var a,b,c,d,e,f,g;if(1===(this.options.properties.invertInput?+!this.state:this.state)){e=this.activeBodies,f=[];for(c in e)d=e[c],b=new box2d.b2Vec2(0,1),b=b.SelfRotateRadians(this.options.rotation||0),a=d.body.data.GetPosition().SelfSub(this.body.data.GetPosition()),b.SelfMul(1.2+.2*Math.sin(this.game.time.now/1e3)).SelfMul(100).SelfMul(1-a.GetLength()/this.options.properties.length),d.body.data.ApplyForce(b,new box2d.b2Vec2(0,0)),d.body.data.SetLinearVelocity(d.body.data.GetLinearVelocity().SelfMul(.975)),g=d.body.data.GetLinearVelocity().GetLength(),f.push(d.body.data.SetLinearVelocity(d.body.data.GetLinearVelocity().SelfNormalize().SelfMul(Math.min(g,15))));return f}},d.prototype.updateState=function(){var a;return this.running||(this.running=!1),a=this.options.properties.invertInput?+!this.state:this.state,1===a&&!1===this.windEffect.visible?(this.windEffect.visible=!0,this.sprite.animations.play("loop"),this.running=!0,this.game.level.sounds.wind.loop=!0,this.sound=this.game.level.sounds.wind.playInstance(),this.sound.volume=.2):0===a&&!0===this.windEffect.visible?(this.windEffect.visible=!1,null!=this.sound&&(this.sound.stopInstance(),this.sound=null),_.delay(function(a){return function(){return a.sprite.animations.stop(),a.sprite.frameName="wind_base0000"}}(this),400)):void 0},d.prototype.ocupy=function(a){var b,c;return b=this.options.x/32,c=this.options.y/32,this.ocupyTile(a,b-1,c),this.ocupyTile(a,b-1,c-1),this.ocupyTile(a,b,c),this.ocupyTile(a,b,c-1),this.ocupyTile(a,b-2,c),this.ocupyTile(a,b-2,c-1)},d.prototype.drawDarkMask=function(a){var b,c,d,e;if(1===this.state)return a.ctx.globalCompositeOperation="lighter",e={x:this.sprite.x+a.offset.x,y:this.sprite.y+a.offset.y},b=new box2d.b2Vec2(36,0).SelfRotateRadians(this.options.rotation),c=new box2d.b2Vec2(-36,0).SelfRotateRadians(this.options.rotation),d=a.ctx.createRadialGradient(e.x+b.x,e.y+b.y,20,e.x+b.x,e.y+b.y,90),d.addColorStop(0,"rgba(255,255,255,1)"),d.addColorStop(.5,"rgba(255,255,255,0.3)"),d.addColorStop(1,"transparent"),a.circle(e.x+b.x,e.y+b.y,90,d),d=a.ctx.createRadialGradient(e.x+c.x,e.y+c.y,20,e.x+c.x,e.y+c.y,90),d.addColorStop(0,"rgba(255,255,255,1)"),d.addColorStop(.5,"rgba(255,255,255,0.3)"),d.addColorStop(1,"transparent"),a.circle(e.x+c.x,e.y+c.y,90,d)},d}(c)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Level/Devices/Window",["./Device"],function(b){"use strict";return function(b){function c(a,b){var d,e,f,g,h,i,j;b.width<b.height?(j=b.width,b.width=b.height,b.height=j,b.x=b.x+b.height/2,b.y=b.y+b.width/2,b.rotation=-90):(b.x=b.x+b.width/2,b.y=b.y+b.height/2),c.__super__.constructor.call(this,a,b),this.sprite=this.game.make.sprite(this.options.x,this.options.y,"MechAssets","_default0000"),this.game.physics.box2d.enable(this.sprite),this.game.layers.overGround.addChild(this.sprite),this.body=this.sprite.body,this.body.clearFixtures(),this.body.data.SetAngle(this.options.rotation),this.body.static=!0,h=new box2d.b2PolygonShape,h.SetAsOrientedBox(this.options.width/2,this.options.height/2,new box2d.b2Vec2(0,0),0),f=new box2d.b2FixtureDef,f.shape=h,f.friction=.7,f.restitution=0,f.density=0,f.userData=f.userData={lightProperties:{type:"transparent"}},f.filter.categoryBits=1,f.filter.maskBits=61695,e=this.body.data.CreateFixture(f),e.id=this.body.world.getNextFixtureId(),new box2d.b2Vec2(this.options.properties.dx,this.options.properties.dy),this.state=0,this.registerDevice(),g=this.game.make.sprite(0,0,"MechAssets","WindowLeft0000"),g.anchor.set(.5),this.sprite.addChild(g),g.x=this.mpx(this.options.width/2-.5),g.y=this.mpx(this.options.height/2-.5),i=this.game.make.sprite(0,0,"MechAssets","WindowRight0000"),i.anchor.set(.5),this.sprite.addChild(i),i.x=-this.mpx(this.options.width/2-.5),i.y=this.mpx(this.options.height/2-.5),d=this.game.make.sprite(0,0,"MechAssets","WindowCenter0000"),d.anchor.set(.5),this.sprite.addChild(d),d.x=0,d.y=0,d.scale.x=(this.options.width-2)/3,this.sprite.scale.x=1.05,this.sprite.scale.y=1.05}return a(c,b),c.prototype.options={atlasName:null,frameName:null,lightAtlas:"MechAssets",properties:{group:0,dx:4,dy:0}},c}(b)})}.call(this),function(){define("States/Level/Devices/_define",["require","./BackgroundCover","./Ball","./Beamer","./Box","./BoxedDevice","./BoxHeavy","./BoxMirror","./BoxPrototype","./Device","./Diamond","./Door","./Hanging","./InfiniteMirror","./Lever","./LightPusher","./Liquid","./MovingPlatform","./Portal","./Pulley","./Pusher","./Roman","./RotMirror","./Slider","./Snow","./TimedPusher","./Wind","./Window"],function(a){"use strict";var b;return b=window.Devices={},b.BackgroundCover=a("./BackgroundCover"),b.Ball=a("./Ball"),b.Beamer=a("./Beamer"),b.Box=a("./Box"),b.BoxedDevice=a("./BoxedDevice"),b.BoxHeavy=a("./BoxHeavy"),b.BoxMirror=a("./BoxMirror"),b.BoxPrototype=a("./BoxPrototype"),b.Device=a("./Device"),b.Diamond=a("./Diamond"),b.Door=a("./Door"),b.Hanging=a("./Hanging"),b.InfiniteMirror=a("./InfiniteMirror"),b.Lever=a("./Lever"),b.LightPusher=a("./LightPusher"),b.Liquid=a("./Liquid"),b.MovingPlatform=a("./MovingPlatform"),b.Portal=a("./Portal"),b.Pulley=a("./Pulley"),b.Pusher=a("./Pusher"),b.Roman=a("./Roman"),b.RotMirror=a("./RotMirror"),b.Slider=a("./Slider"),b.Snow=a("./Snow"),b.TimedPusher=a("./TimedPusher"),b.Wind=a("./Wind"),b.Window=a("./Window"),b})}.call(this),function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return!!Array.isArray(a)&&(g(a,c[b],c),!0)}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(b,c,d){var e="DEPRECATED METHOD: "+c+"\n"+d+" AT \n";return function(){var c=new Error("get-stack-trace"),d=c&&c.stack?c.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&ka(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==na?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function s(a){return Array.prototype.slice.call(a,0)}function t(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];r(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<la.length;){if(c=la[g],(e=c?c+f:b)in a)return e;g++}return d}function v(){return ta++}function w(b){var c=b.ownerDocument||b;return c.defaultView||c.parentWindow||a}function x(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){k(a.options.enable,[a])&&c.handler(b)},this.init()}function y(a){var b=a.options.inputClass;return new(b||(wa?M:xa?P:va?R:L))(a,z)}function z(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&za&&d-e==0,g=b&(Ba|Ca)&&d-e==0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,A(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function A(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=D(b)),e>1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=qa(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=pa(j.x)>pa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==za&&f.eventType!==Ba||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ca&&(i>ya||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=pa(l.x)>pa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:oa(a.pointers[c].clientX),clientY:oa(a.pointers[c].clientY)},c++;return{timeStamp:qa(),pointers:b,center:E(b),deltaX:a.deltaX,deltaY:a.deltaY}}function E(a){var b=a.length;if(1===b)return{x:oa(a[0].clientX),y:oa(a[0].clientY)};for(var c=0,d=0,e=0;e<b;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:oa(c/b),y:oa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Da:pa(a)>=pa(b)?a<0?Ea:Fa:b<0?Ga:Ha}function H(a,b,c){c||(c=La);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=La);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ma)+I(a[1],a[0],Ma)}function K(a,b){return H(b[0],b[1],Ma)/H(a[0],a[1],Ma)}function L(){this.evEl=Oa,this.evWin=Pa,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Sa,this.evWin=Ta,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=Va,this.evWin=Wa,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ba|Ca)&&(c=t(c.concat(d),"identifier",!0)),[c,d]}function P(){this.evTarget=Ya,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(za|Aa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===za)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ba|Ca)&&delete d[g[e].identifier],e++;return h.length?[t(f.concat(h),"identifier",!0),h]:void 0}function R(){x.apply(this,arguments);var a=j(this.handler,this);this.touch=new P(this.manager,a),this.mouse=new L(this.manager,a),this.primaryTouch=null,this.lastTouches=[]}function S(a,b){a&za?(this.primaryTouch=b.changedPointers[0].identifier,T.call(this,b)):a&(Ba|Ca)&&T.call(this,b)}function T(a){var b=a.changedPointers[0];if(b.identifier===this.primaryTouch){var c={x:b.clientX,y:b.clientY};this.lastTouches.push(c);var d=this.lastTouches,e=function(){var a=d.indexOf(c);a>-1&&d.splice(a,1)};setTimeout(e,Za)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d<this.lastTouches.length;d++){var e=this.lastTouches[d],f=Math.abs(b-e.x),g=Math.abs(c-e.y);if(f<=$a&&g<=$a)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,db))return db;var b=p(a,eb),c=p(a,fb);return b&&c?db:b||c?b?eb:fb:p(a,cb)?cb:bb}function X(a){this.options=ka({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=hb,this.simultaneous={},this.requireFail=[]}function Y(a){return a&mb?"cancel":a&kb?"end":a&jb?"move":a&ib?"start":""}function Z(a){return a==Ha?"down":a==Ga?"up":a==Ea?"left":a==Fa?"right":""}function $(a,b){var c=b.manager;return c?c.get(a):a}function _(){X.apply(this,arguments)}function aa(){_.apply(this,arguments),this.pX=null,this.pY=null}function ba(){_.apply(this,arguments)}function ca(){X.apply(this,arguments),this._timer=null,this._input=null}function da(){_.apply(this,arguments)}function ea(){_.apply(this,arguments)}function fa(){X.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ga(a,b){return b=b||{},b.recognizers=l(b.recognizers,ga.defaults.preset),new ha(a,b)}function ha(a,b){this.options=ka({},ga.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ia(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ia(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||""}),b||(a.oldCssProps={})}}function ja(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var ka,la=["","webkit","Moz","MS","ms","o"],ma=b.createElement("div"),na="function",oa=Math.round,pa=Math.abs,qa=Date.now;ka="function"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(a),c=1;c<arguments.length;c++){var e=arguments[c];if(e!==d&&null!==e)for(var f in e)e.hasOwnProperty(f)&&(b[f]=e[f])}return b}:Object.assign;var ra=h(function(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a},"extend","Use `assign`."),sa=h(function(a,b){return ra(a,b,!0)},"merge","Use `assign`."),ta=1,ua=/mobile|tablet|ip(ad|hone|od)|android/i,va="ontouchstart"in a,wa=u(a,"PointerEvent")!==d,xa=va&&ua.test(navigator.userAgent),ya=25,za=1,Aa=2,Ba=4,Ca=8,Da=1,Ea=2,Fa=4,Ga=8,Ha=16,Ia=Ea|Fa,Ja=Ga|Ha,Ka=Ia|Ja,La=["x","y"],Ma=["clientX","clientY"];x.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(w(this.element),this.evWin,this.domHandler)}};var Na={mousedown:za,mousemove:Aa,mouseup:Ba},Oa="mousedown",Pa="mousemove mouseup";i(L,x,{handler:function(a){var b=Na[a.type];b&za&&0===a.button&&(this.pressed=!0),b&Aa&&1!==a.which&&(b=Ba),this.pressed&&(b&Ba&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:"mouse",srcEvent:a}))}});var Qa={pointerdown:za,pointermove:Aa,pointerup:Ba,pointercancel:Ca,pointerout:Ca},Ra={2:"touch",3:"pen",4:"mouse",5:"kinect"},Sa="pointerdown",Ta="pointermove pointerup pointercancel";a.MSPointerEvent&&!a.PointerEvent&&(Sa="MSPointerDown",Ta="MSPointerMove MSPointerUp MSPointerCancel"),i(M,x,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Qa[d],f=Ra[a.pointerType]||a.pointerType,g="touch"==f,h=r(b,a.pointerId,"pointerId");e&za&&(0===a.button||g)?h<0&&(b.push(a),h=b.length-1):e&(Ba|Ca)&&(c=!0),h<0||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Ua={touchstart:za,touchmove:Aa,touchend:Ba,touchcancel:Ca},Va="touchstart",Wa="touchstart touchmove touchend touchcancel";i(N,x,{handler:function(a){var b=Ua[a.type];if(b===za&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ba|Ca)&&c[0].length-c[1].length==0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:"touch",srcEvent:a})}}});var Xa={touchstart:za,touchmove:Aa,touchend:Ba,touchcancel:Ca},Ya="touchstart touchmove touchend touchcancel";i(P,x,{handler:function(a){var b=Xa[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:"touch",srcEvent:a})}});var Za=2500,$a=25;i(R,x,{handler:function(a,b,c){var d="touch"==c.pointerType,e="mouse"==c.pointerType;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var _a=u(ma.style,"touchAction"),ab=_a!==d,bb="auto",cb="manipulation",db="none",eb="pan-x",fb="pan-y",gb=function(){if(!ab)return!1;var b={},c=a.CSS&&a.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(d){b[d]=!c||a.CSS.supports("touch-action",d)}),b}();V.prototype={set:function(a){"compute"==a&&(a=this.compute()),ab&&this.manager.element.style&&gb[a]&&(this.manager.element.style[_a]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(" "))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,db)&&!gb[db],f=p(d,fb)&&!gb[fb],g=p(d,eb)&&!gb[eb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Ia||g&&c&Ja?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var hb=1,ib=2,jb=4,kb=8,lb=kb,mb=16;X.prototype={defaults:{},set:function(a){return ka(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=$(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=$(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=$(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=$(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;d<kb&&b(c.options.event+Y(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=kb&&b(c.options.event+Y(d))},tryEmit:function(a){if(this.canEmit())return this.emit(a);this.state=32},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(32|hb)))return!1;a++}return!0},recognize:function(a){var b=ka({},a);if(!k(this.options.enable,[this,b]))return this.reset(),void(this.state=32);this.state&(lb|mb|32)&&(this.state=hb),this.state=this.process(b),this.state&(ib|jb|kb|mb)&&this.tryEmit(b)},process:function(a){},getTouchAction:function(){},reset:function(){}},i(_,X,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(ib|jb),e=this.attrTest(a);return d&&(c&Ca||!e)?b|mb:d||e?c&Ba?b|kb:b&ib?b|jb:ib:32}}),i(aa,_,{defaults:{event:"pan",threshold:10,pointers:1,direction:Ka},getTouchAction:function(){var a=this.options.direction,b=[];return a&Ia&&b.push(fb),a&Ja&&b.push(eb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Ia?(e=0===f?Da:f<0?Ea:Fa,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Da:g<0?Ga:Ha,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return _.prototype.attrTest.call(this,a)&&(this.state&ib||!(this.state&ib)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=Z(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ba,_,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[db]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ib)},emit:function(a){if(1!==a.scale){var b=a.scale<1?"in":"out";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(ca,X,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[bb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ba|Ca)&&!f)this.reset();else if(a.eventType&za)this.reset(),this._timer=e(function(){this.state=lb,this.tryEmit()},b.time,this);else if(a.eventType&Ba)return lb;return 32},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===lb&&(a&&a.eventType&Ba?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=qa(),this.manager.emit(this.options.event,this._input)))}}),i(da,_,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[db]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ib)}}),i(ea,_,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ia|Ja,pointers:1},getTouchAction:function(){return aa.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Ia|Ja)?b=a.overallVelocity:c&Ia?b=a.overallVelocityX:c&Ja&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&pa(b)>this.options.velocity&&a.eventType&Ba},emit:function(a){var b=Z(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(fa,X,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[cb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&za&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ba)return this.failTimeout();var g=!this.pTime||a.timeStamp-this.pTime<b.interval,h=!this.pCenter||H(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;if(0===this.count%b.taps)return this.hasRequireFailures()?(this._timer=e(function(){this.state=lb,this.tryEmit()},b.interval,this),ib):lb}return 32},failTimeout:function(){return this._timer=e(function(){this.state=32},this.options.interval,this),32},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==lb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ga.VERSION="2.0.7",ga.defaults={domEvents:!1,touchAction:"compute",enable:!0,inputTarget:null,inputClass:null,preset:[[da,{enable:!1}],[ba,{enable:!1},["rotate"]],[ea,{direction:Ia}],[aa,{direction:Ia},["swipe"]],[fa],[fa,{event:"doubletap",taps:2},["tap"]],[ca]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};ha.prototype={set:function(a){return ka(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?2:1},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&lb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],2===b.stopped||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(ib|jb|kb)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof X)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;if(a=this.get(a)){var b=this.recognizers,c=r(b,a);-1!==c&&(b.splice(c,1),this.touchAction.update())}return this},on:function(a,b){if(a!==d&&b!==d){var c=this.handlers;return g(q(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this}},off:function(a,b){if(a!==d){var c=this.handlers;return g(q(a),function(a){b?c[a]&&c[a].splice(r(c[a],b),1):delete c[a]}),this}},emit:function(a,b){this.options.domEvents&&ja(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&ia(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},ka(ga,{INPUT_START:za,INPUT_MOVE:Aa,INPUT_END:Ba,INPUT_CANCEL:Ca,STATE_POSSIBLE:hb,STATE_BEGAN:ib,STATE_CHANGED:jb,STATE_ENDED:kb,STATE_RECOGNIZED:lb,STATE_CANCELLED:mb,STATE_FAILED:32,DIRECTION_NONE:Da,DIRECTION_LEFT:Ea,DIRECTION_RIGHT:Fa,DIRECTION_UP:Ga,DIRECTION_DOWN:Ha,DIRECTION_HORIZONTAL:Ia,DIRECTION_VERTICAL:Ja,DIRECTION_ALL:Ka,Manager:ha,Input:x,TouchAction:V,TouchInput:P,MouseInput:L,PointerEventInput:M,TouchMouseInput:R,SingleTouchInput:N,Recognizer:X,AttrRecognizer:_,Tap:fa,Pan:aa,Swipe:ea,Pinch:ba,Rotate:da,Press:ca,on:m,off:n,each:g,merge:sa,extend:ra,assign:ka,inherit:i,bindFn:j,prefixed:u}),(void 0!==a?a:"undefined"!=typeof self?self:{}).Hammer=ga,"function"==typeof define&&define.amd?define("hammer",[],function(){return ga}):"undefined"!=typeof module&&module.exports?module.exports=ga:a.Hammer=ga}(window,document),Phaser.Filter.OutlineFilter=function(a,b,c,d,e){Phaser.Filter.call(this,a),this.uniforms={thickness:{type:"1f",value:d},outlineColor:{type:"4f",value:null},pixelWidth:{type:"1f",value:null},pixelHeight:{type:"1f",value:null}},this.color=e,this.viewWidth=b,this.viewHeight=c,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform sampler2D texture;","uniform float thickness;","uniform vec4 outlineColor;","uniform float pixelWidth;","uniform float pixelHeight;","vec2 px = vec2(pixelWidth, pixelHeight);","void main(void) {"," const float PI = 3.14159265358979323846264;"," vec4 curColor;"," vec4 ownColor = texture2D(texture, vTextureCoord);"," float maxAlpha = 0.;"," for (float angle = -PI; angle <= PI; angle += "+(Math.PI/10).toFixed(4)+") {"," curColor = texture2D(texture, vec2(vTextureCoord.x - thickness * px.x * cos(angle), vTextureCoord.y - thickness * px.y * sin(angle)));"," maxAlpha = max(maxAlpha, curColor.a);"," }"," float resultAlpha = max(maxAlpha, ownColor.a);"," if (ownColor.a < 0.1) gl_FragColor = vec4((ownColor.rgb + outlineColor.rgb * (1. - ownColor.a)) * resultAlpha, resultAlpha);"," else gl_FragColor = vec4(ownColor.rgb,1.);","}"]},Phaser.Filter.OutlineFilter.prototype=Object.create(Phaser.Filter.prototype),Phaser.Filter.OutlineFilter.prototype.constructor=Phaser.Filter,Object.defineProperty(Phaser.Filter.OutlineFilter.prototype,"color",{set:function(a){var b=((16711680&a)>>16)/255,c=((65280&a)>>8)/255,d=(255&a)/255;this.uniforms.outlineColor.value={x:b,y:c,z:d,w:1},this.dirty=!0}}),Object.defineProperty(Phaser.Filter.OutlineFilter.prototype,"viewWidth",{set:function(a){this.uniforms.pixelWidth.value=1/a,this.dirty=!0}}),Object.defineProperty(Phaser.Filter.OutlineFilter.prototype,"viewHeight",{set:function(a){this.uniforms.pixelHeight.value=1/a,this.dirty=!0}}),define("outlineFilter",["Phaser"],function(a){return function(){return a.outlineFilter}}(this)),Phaser.Filter.InlineFilter=function(a,b,c,d,e){Phaser.Filter.call(this,a),this.uniforms={thickness:{type:"1f",value:d},outlineColor:{type:"4f",value:null},pixelWidth:{type:"1f",value:null},pixelHeight:{type:"1f",value:null}},this.color=e,this.viewWidth=b,this.viewHeight=c,this.passes=[this],this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform sampler2D texture;","uniform float thickness;","uniform vec4 outlineColor;","uniform float pixelWidth;","uniform float pixelHeight;","vec2 px = vec2(pixelWidth, pixelHeight);","void main(void) {"," const float PI = 3.14159265358979323846264;"," vec4 curColor;"," vec4 ownColor = texture2D(texture, vTextureCoord);"," float maxAlpha = 255.;"," for (float angle = 0.; angle < PI * 2.; angle += "+(1/d).toFixed(4)+") {"," curColor = texture2D(texture, vec2(vTextureCoord.x + thickness * px.x * cos(angle), vTextureCoord.y + thickness * px.y * sin(angle)));"," maxAlpha = min(maxAlpha, curColor.a);"," }"," float resultAlpha = min(maxAlpha, ownColor.a);"," if (ownColor.a > 0.1) gl_FragColor = vec4((ownColor.rgb + outlineColor.rgb * (1. - ownColor.a)) * resultAlpha, resultAlpha);"," else gl_FragColor = ownColor;","}"]},Phaser.Filter.InlineFilter.prototype=Object.create(Phaser.Filter.prototype),Phaser.Filter.InlineFilter.prototype.constructor=Phaser.Filter,Object.defineProperty(Phaser.Filter.InlineFilter.prototype,"color",{set:function(a){var b=((16711680&a)>>16)/255,c=((65280&a)>>8)/255,d=(255&a)/255;this.uniforms.outlineColor.value={x:b,y:c,z:d,w:1},this.dirty=!0}}),Object.defineProperty(Phaser.Filter.InlineFilter.prototype,"viewWidth",{set:function(a){this.uniforms.pixelWidth.value=1/a,this.dirty=!0}}),Object.defineProperty(Phaser.Filter.InlineFilter.prototype,"viewHeight",{set:function(a){this.uniforms.pixelHeight.value=1/a,this.dirty=!0}}),define("inlineFilter",["Phaser"],function(a){return function(){return a.inlineFilter}}(this)),Phaser.Filter.ShadowFilter=function(a,b,c,d,e){Phaser.Filter.call(this,a),this.uniforms={thickness:{type:"1f",value:d},outlineColor:{type:"4f",value:null},pixelWidth:{type:"1f",value:null},pixelHeight:{type:"1f",value:null}},this.color=e,this.viewWidth=b,this.viewHeight=c,this.passes=[this],this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform sampler2D texture;","uniform float thickness;","uniform vec4 outlineColor;","uniform float pixelWidth;","uniform float pixelHeight;","vec2 px = vec2(pixelWidth, pixelHeight);","void main(void) {"," const float PI = 3.14159265358979323846264;"," vec4 curColor;"," vec4 ownColor = texture2D(texture, vTextureCoord);"," float maxAlpha = 0.;"," float angle = -3.*PI/4.;"," curColor = texture2D(texture, vec2(vTextureCoord.x + thickness * px.x * cos(angle), vTextureCoord.y + thickness * px.y * sin(angle)));"," if (ownColor.a > 0.8) gl_FragColor = ownColor;"," else gl_FragColor = vec4(outlineColor.rgb, curColor.a*0.1);","}"]},Phaser.Filter.ShadowFilter.prototype=Object.create(Phaser.Filter.prototype),Phaser.Filter.ShadowFilter.prototype.constructor=Phaser.Filter,Object.defineProperty(Phaser.Filter.ShadowFilter.prototype,"color",{set:function(a){var b=((16711680&a)>>16)/255,c=((65280&a)>>8)/255,d=(255&a)/255;this.uniforms.outlineColor.value={x:b,y:c,z:d,w:1},this.dirty=!0}}),Object.defineProperty(Phaser.Filter.ShadowFilter.prototype,"viewWidth",{set:function(a){this.uniforms.pixelWidth.value=1/a,this.dirty=!0}}),Object.defineProperty(Phaser.Filter.ShadowFilter.prototype,"viewHeight",{
|
||
set:function(a){this.uniforms.pixelHeight.value=1/a,this.dirty=!0}}),define("shadowFilter",["Phaser"],function(a){return function(){return a.shadowFilter}}(this)),Phaser.Filter.BevelFilter=function(a,b,c,d,e,f,g){Phaser.Filter.call(this,a),this.uniforms={outer:{type:"1f",value:f},dir:{type:"1f",value:g},thickness:{type:"1f",value:d},outlineColor:{type:"4f",value:null},pixelWidth:{type:"1f",value:null},pixelHeight:{type:"1f",value:null}},this.color=e,this.viewWidth=b,this.viewHeight=c,this.passes=[this],this.maxStep=1/this.uniforms.thickness.value,this.res=3,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float outer;","uniform float dir;","uniform sampler2D uSampler;","uniform vec4 filterArea;","void main(void)","{"," vec2 onePixel = vec2(1.0);"," vec4 color = texture2D(uSampler, vTextureCoord);"," float a1 = 0.0;"," float a2 = 0.0;"," for (float step = 0.; step < "+this.maxStep+"; step += "+this.maxStep/this.res+") {"," a1 = a1 + texture2D(uSampler, vec2(vTextureCoord.x + step , vTextureCoord.y + step)).a;"," }"," for (float step = 0.; step < "+this.maxStep+"; step += "+this.maxStep/this.res+") {"," a2 = a2 + texture2D(uSampler, vec2(vTextureCoord.x - step , vTextureCoord.y - step)).a;"," }"," a1 = a1/"+this.res.toFixed(4)+";"," a2 = a2/"+this.res.toFixed(4)+";"," color.rgb = vec3(0.5);"," float alpha = texture2D(uSampler, vTextureCoord).a;"," if (outer == 1.0){"," alpha = a1 + a2;"," color.rgb = vec3(0.5-dir*a1/6.0+dir*a2/6.0);"," }else{"," alpha = texture2D(uSampler, vTextureCoord).a;"," color.rgb = vec3(0.5+dir*a1/6.0-dir*a2/6.0);"," }"," if(alpha>0.5){"," alpha = 1.0;"," }"," gl_FragColor = vec4(color.rgb * alpha, alpha);","}"]},Phaser.Filter.BevelFilter.prototype=Object.create(Phaser.Filter.prototype),Phaser.Filter.BevelFilter.prototype.constructor=Phaser.Filter,Object.defineProperty(Phaser.Filter.BevelFilter.prototype,"color",{set:function(a){var b=((16711680&a)>>16)/255,c=((65280&a)>>8)/255,d=(255&a)/255;this.uniforms.outlineColor.value={x:b,y:c,z:d,w:1},this.dirty=!0}});Object.defineProperty(Phaser.Filter.BevelFilter.prototype,"viewWidth",{set:function(a){this.uniforms.pixelWidth.value=1/a,this.dirty=!0}}),Object.defineProperty(Phaser.Filter.BevelFilter.prototype,"viewHeight",{set:function(a){this.uniforms.pixelHeight.value=1/a,this.dirty=!0}}),Object.defineProperty(Phaser.Filter.BevelFilter.prototype,"thickness",{set:function(a){this.uniforms.thickness.value=1/a,this.dirty=!0}}),define("bevelFilter",["Phaser"],function(a){return function(){return a.bevelFilter}}(this)),Phaser.Filter.ColorMatrix=function(a,b,c,d){Phaser.Filter.call(this,a),this.passes=[this];var e=((16711680&d)>>16)/255,f=((65280&d)>>8)/255,g=(255&d)/255;offset=1.7,this.uniforms={matrix:{type:"mat4",value:[offset*e,0,0,0,0,offset*f,0,0,0,0,offset*g,0,0,0,0,1]}},this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform float invert;","uniform mat4 matrix;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * matrix;","}"]},Phaser.Filter.ColorMatrix.prototype=Object.create(Phaser.Filter.prototype),Phaser.Filter.ColorMatrix.prototype.constructor=Phaser.Filter,Object.defineProperty(Phaser.Filter.ColorMatrix.prototype,"color",{set:function(a){var b=((16711680&a)>>16)/255,c=((65280&a)>>8)/255,d=(255&a)/255;this.uniforms.outlineColor.value={x:b,y:c,z:d,w:1},this.dirty=!0}}),Object.defineProperty(Phaser.Filter.ColorMatrix.prototype,"viewWidth",{set:function(a){this.uniforms.pixelWidth.value=1/a,this.dirty=!0}}),Object.defineProperty(Phaser.Filter.ColorMatrix.prototype,"viewHeight",{set:function(a){this.uniforms.pixelHeight.value=1/a,this.dirty=!0}}),define("colorMatrix",["Phaser"],function(a){return function(){return a.colorMatrix}}(this)),function(a,b){function c(c,o,p){var q=[],r=f(function a(b,c){var d,e=[],f=typeof b;if(c&&"object"==f)for(d in b)try{e.push(a(b[d],c-1))}catch(a){}return e.length?e:"string"==f?b:b+"\0"}((o=1==o?{entropy:!0}:o||{}).entropy?[c,g(a)]:null==c?function(){try{var b;return h&&(b=h.randomBytes)?b=b(j):(b=new Uint8Array(j),(i.crypto||i.msCrypto).getRandomValues(b)),g(b)}catch(b){var c=i.navigator,d=c&&c.plugins;return[+new Date,i,d,i.screen,g(a)]}}():c,3),q),s=new d(q),t=function(){for(var a=s.g(6),b=l,c=0;a<m;)a=(a+c)*j,b*=j,c=s.g(1);for(;n<=a;)a/=2,b/=2,c>>>=1;return(a+c)/b};return t.int32=function(){return 0|s.g(4)},t.quick=function(){return s.g(4)/4294967296},t.double=t,f(g(s.S),a),(o.pass||p||function(a,c,d,f){return f&&(f.S&&e(f,s),a.state=function(){return e(s,{})}),d?(b[k]=a,c):a})(t,r,"global"in o?o.global:this==b,o.state)}function d(a){var b,c=a.length,d=this,e=0,f=d.i=d.j=0,g=d.S=[];for(c||(a=[c++]);e<j;)g[e]=e++;for(e=0;e<j;e++)g[e]=g[f=o&f+a[e%c]+(b=g[e])],g[f]=b;(d.g=function(a){for(var b,c=0,e=d.i,f=d.j,g=d.S;a--;)b=g[e=o&e+1],c=c*j+g[o&(g[e]=g[f=o&f+b])+(g[f]=b)];return d.i=e,d.j=f,c})(j)}function e(a,b){return b.i=a.i,b.j=a.j,b.S=a.S.slice(),b}function f(a,b){for(var c,d=a+"",e=0;e<d.length;)b[o&e]=o&(c^=19*b[o&e])+d.charCodeAt(e++);return g(b)}function g(a){return String.fromCharCode.apply(0,a)}var h,i=eval("this"),j=256,k="random",l=b.pow(j,6),m=b.pow(2,52),n=2*m,o=j-1;if(b["seed"+k]=c,f(b.random(),a),"object"==typeof module&&module.exports){module.exports=c;try{h=require("crypto")}catch(d){}}else"function"==typeof define&&define.amd&&define("seedrandom",[],function(){return c})}([],Math),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Ground",["./Devices/Liquid","./Devices/Snow","seedrandom"],function(c,d,e){"use strict";return function(f){function g(b,c,d){this.CreateLiquid=a(this.CreateLiquid,this),this.CreateSnow=a(this.CreateSnow,this),this.CreateSnows=a(this.CreateSnows,this),this.createGroundFixture=a(this.createGroundFixture,this),this.destroy=a(this.destroy,this),this.drawForeground=a(this.drawForeground,this),this.decorate=a(this.decorate,this),this.getNaviesPoints=a(this.getNaviesPoints,this),this.getTileAt=a(this.getTileAt,this),this.drawTile=a(this.drawTile,this);this.options=_.extend(this.options,d),g.__super__.constructor.call(this,b),this.game.physics.box2d.enable(this),this.body.mass=0,this.body.clearFixtures(),this.mapData=c,this.options.width=this.mapData.width*this.mapData.tileWidth,this.options.height=this.mapData.height*this.mapData.tileHeight,this.convertTilemap(this.mapData),this.CreateSnows(this.mapData),Phaser.Physics.Box2D.worldBoundsFilterCategory=65535,this.game.physics.box2d.setBounds(-100,-100,this.options.width+200,this.options.height+200,!0,!0,!0,!0,65535,65535),this.drawForeground(),this.applyFilter()}return b(g,f),g.prototype.options={tileWidth:32,tileHeight:32,key:"map"},g.prototype.filterPadding=10,g.prototype.getTileRight=function(a,b,c){return null!=a.data[c]&&null!=a.data[c][b+1]?a.data[c][b+1]:null},g.prototype.getTileLeft=function(a,b,c){return null!=a.data[c]&&null!=a.data[c][b-1]?a.data[c][b-1]:null},g.prototype.getTileUp=function(a,b,c){return null!=a.data[c-1]&&null!=a.data[c-1][b]?a.data[c-1][b]:null},g.prototype.getTileDown=function(a,b,c){return null!=a.data[c+1]&&null!=a.data[c+1][b]?a.data[c+1][b]:null},g.prototype.drawTile=function(a,b,c,d){var e,f,g,h;return 10===d&&(d=0),11===d&&(d=1),12===d&&(d=2),55===d&&(d=5),0===d?(h=Math.floor(4*Math.random()),g="MaskBox0000"+h):g="MaskBox"+d+"0000",e=this.game.cache.getFrameByName("GroundAssets",g),f=this.game.cache.getImage("GroundAssets"),b=b-(e.width-32)/2+32,c=c-(e.height-32)/2+32,a.drawImage(f,e.x,e.y,e.width,e.height,b,c,e.width,e.height)},g.prototype.getTileAt=function(a,b){return this.mapData.layers[0].data[b][a]},g.prototype.convertTilemap=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;for(m=0,this.map=a,A=0,v=0,w=0,C=0,this.h=h=a.height,this.w=z=a.width,this.groundBody=c=this.body,this.groundBody.data.m_userData="ground",this.game.level.groundBody=this.groundBody.data,n=this.game.add.bitmapData(this.options.width+64,this.options.height+64);C<h;){for(A=0,B=0;B<z;)x=a.layers[m].data[C][B],x&&x.index>-1&&(d=B*this.options.tileWidth,e=C*this.options.tileHeight,0===x.properties.type?(0===A&&(v=B*x.width,w=C*x.height,A=1),r=this.getTileRight(a.layers[m],B,C),r&&0===r.properties.type?(A+=1,this.drawTile(n.ctx,d,e,x.properties.type)):(t=new box2d.b2PolygonShape,y=[],u=this.groundBody.world.pxm(c.world.mpx(1)*A),s=this.groundBody.world.pxm(c.world.mpx(1)),y.push(new box2d.b2Vec2(0,0)),y.push(new box2d.b2Vec2(-u,0)),y.push(new box2d.b2Vec2(-u,-s)),y.push(new box2d.b2Vec2(0,-s)),_.each(y,function(a){return a.x-=c.world.pxm(v),a.y-=c.world.pxm(w)}),t.Set(y),A=0,this.createGroundFixture(t),this.drawTile(n.ctx,d,e,x.properties.type))):5===x.properties.type||6===x.properties.type||7===x.properties.type||55===x.properties.type?(0===A&&(v=B*x.width,w=C*x.height,A=1),r=this.getTileRight(a.layers[m],B,C),r&&r.properties.type===x.properties.type?(A>1&&this.drawTile(n.ctx,d,e,x.properties.type),A+=1):(t=this.createGroundShape(8,new box2d.b2Vec2(c.world.pxm(d)-A+1,c.world.pxm(e))),this.createGroundFixture(t),this.drawTile(n.ctx,d-c.world.mpx(A-1),e,8),t=this.createGroundShape(9,new box2d.b2Vec2(c.world.pxm(d),c.world.pxm(e))),this.createGroundFixture(t),this.drawTile(n.ctx,d,e,9),t=new box2d.b2PolygonShape,y=[],u=this.groundBody.world.pxm(c.world.mpx(1)*A),s=this.groundBody.world.pxm(c.world.mpx(1)),y.push(new box2d.b2Vec2(-1,-s/2+.05)),y.push(new box2d.b2Vec2(1-u,-s/2+.05)),y.push(new box2d.b2Vec2(1-u,-s)),y.push(new box2d.b2Vec2(-1,-s)),_.each(y,function(a){return a.x-=c.world.pxm(v),a.y-=c.world.pxm(w)}),t.Set(y),this.createGroundFixture(t),this.CreateLiquid(x.properties.type,B+1,C,A),A=0)):-1===x.properties.type?this.drawTile(n.ctx,d,e,0):(t=this.createGroundShape(x.properties.type,new box2d.b2Vec2(c.world.pxm(d),c.world.pxm(e))),this.createGroundFixture(t),this.drawTile(n.ctx,d,e,x.properties.type))),B++;C++}for(f=this.game.make.bitmapData(this.options.width+64,this.options.height+64),g=this.game.cache.getFrameByName("TempleAssets","ForeGround0000"),j=this.game.cache.getImage("TempleAssets"),i=l=0,p=Math.ceil(this.options.width/256);0<=p?l<=p:l>=p;i=0<=p?++l:--l)for(k=o=0,q=Math.ceil(this.options.height/256);0<=q?o<=q:o>=q;k=0<=q?++o:--o)B=256*i,C=256*k,f.ctx.drawImage(j,g.x,g.y,g.width,g.height,B,C,g.width,g.height);return b=this.game.add.bitmapData(this.options.width+64,this.options.height+64),b.alphaMask(f,n),this.bmd=b,this.maskBmd=n,this.foregroundBmd=f,c},g.prototype.getNaviesPoints=function(){var a,b,c,d,f,g,h,i,j,k,l,m;for(i=this.map,d=this.h,m=this.w,g=0,b=this.groundBody,this.rng=e("ASDFA"),function(a){return function(){return Math.round(3*a.rng()+3.5)}}(this),j=function(a){return function(a,b){return null!=i.layers[g].data[a]&&null!=i.layers[g].data[a][b]?i.layers[g].data[a][b]:null}}(),l=[{x:Math.floor(d/4),y:Math.floor(d/4)},{x:Math.floor(3*d/4),y:Math.floor(d/4)},{x:Math.floor(d/4),y:Math.floor(3*d/4)},{x:Math.floor(3*d/4),y:Math.floor(d/4)}],a=function(a){return function(a){return a>0?1:a<0?-1:0}}(),f=0,h=l.length;f<h;f++)for(k=l[f],k.valid=!1,c={x:a(Math.random()-.5),y:a(Math.random()-.5)};k.x>0&&k.x<m&&k.y>0&&k.y<d;){if(null==j(k.y,k.x).properties.type){k.valid=!0;break}k.x+=c.x,k.y+=c.y}return l=l.filter(function(a){return a.valid}),_.each(l,function(a){return a.x*=b.world.mpx(1),a.y*=b.world.mpx(1)}),l},g.prototype.decorate=function(a){var b,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J;for(s=this.map,k=this.h,H=this.w,o=0,c=this.groundBody,this.rng=e("ASDFA"),z=function(a){return function(){return Math.round(3*a.rng()+3.5)}}(this),n=0,q=a.length;n<q;n++)v=a[n],null!=v.ocupy&&v.ocupy(s.layers[o].data);for(t=function(a){return function(a,b){return null!=s.layers[o].data[a]&&null!=s.layers[o].data[a][b]?s.layers[o].data[a][b]:null}}(),J=1,f=[],g=new Phaser.RenderTexture(this.game,this.options.width+64,this.options.height+64,"decosTexture",void 0,1);J<k;){for(0,I=1;I<H-1;){for(F=s.layers[o].data[J][I],l=x=0;x<=6;l=++x){for(j=null,m=y=0;y<=6;m=++y)if(h=Math.max(Math.min(I+l,H-2),0),i=Math.max(Math.min(J+m,k-1),0),null!=t(i,h).properties.type&&!t(i,h).ocupied&&f.indexOf(t(i,h))<0&&f.indexOf(t(i-1,h))<0&&f.indexOf(t(i,h+1))<0&&f.indexOf(t(i-1,h+1))<0&&f.indexOf(t(i,h-1))<0&&f.indexOf(t(i-1,h-1))<0){j=s.layers[o].data[i][h],f.push(j);break}if(null!=j)break}I+=z()}J+=z()}for(w=0,l=E=0,r=f.length;E<r;l=++E)d=f[l],F=s.layers[o].data[d.y][d.x],b=this.getTileUp(s.layers[o],d.x,d.y),A=this.getTileRight(s.layers[o],d.x,d.y),p=this.getTileLeft(s.layers[o],d.x,d.y),G=null,B=0,C=[1,1],u=1,0===F.properties.type&&null!=b&&null!=b.properties.type&&null!=A&&null!=A.properties.type&&null!=p&&null!=p.properties.type?(G="O_"+(w%2+1),B="1"===w?Math.floor(3*Math.random())*Math.PI/2:0):0!==F.properties.type||null!=b&&null!=b.properties.type?0===F.properties.type?(G="X",B=Math.floor(3*Math.random())*Math.PI/2):1===F.properties.type?G="A":2===F.properties.type?(G="A",C=[-1,1]):3===F.properties.type?G="V":4===F.properties.type&&(G="V",C=[-1,1]):(G="T_"+(w%3+1),u=2*Math.round(Math.random())-1),w++,null!=G&&(D=this.game.make.sprite((d.x+.5)*c.world.mpx(1),(d.y+.5)*c.world.mpx(1),"TempleAssets","decor_"+G+"0000"),D.rotation=B,D.scale.set(u*C[0],C[1]),D.anchor.set(.5),g.renderXY(D,D.x+32,D.y+32,!1),D.destroy());return this.game.cache.addRenderTexture("decosTexture",g),D=this.game.make.sprite(-32,-32,this.game.cache.getRenderTexture("decosTexture").texture),this.game.layers.decorations.addChild(D),this.game.layers.decorations.cacheAsBitmap=!0},g.prototype.drawForeground=function(){return this.image=this.game.make.image(0,0,this.bmd)},g.prototype.applyFilter=function(){var a,b,c,d,e,f,g;return a=this.game.make.tileSprite(0,0,this.options.width,this.options.height,"TempleAssets","BackGround0000"),this.game.layers.background.addChild(a),a.cacheAsBitmap=!0,g=this.options.width+64,b=this.options.height+64,c=new Phaser.Filter.InlineFilter(this.game,g,b,3,16711680),c.init(),d=new Phaser.Filter.OutlineFilter(this.game,g,b,3.5,0),d.init(),f=new Phaser.Filter.ShadowFilter(this.game,g,b,8,0),f.init(),this.image.filters=[c,d,f],e=new Phaser.RenderTexture(this.game,g,b,"groundTexture",void 0,1),this.game.renderer.renderSession.resolution=1,e.renderRawXY(this.image,0,0,!0),this.game.renderer.renderSession.resolution=this.game.resolution,this.game.cache.addRenderTexture("groundTexture",e),this.sprite=this.game.make.sprite(-32,-32,this.game.cache.getRenderTexture("groundTexture").texture),this.game.layers.ground.addChild(this.sprite),this.sprite.cacheAsBitmap=!0,this.image.destroy(),this.bmd.destroy(),this.maskBmd.destroy(),this.foregroundBmd.destroy()},g.prototype.destroy=function(){return this.sprite.destroy(),this.image.destroy(),this.bmd.destroy(),this.maskBmd.destroy(),this.foregroundBmd.destroy(),g.__super__.destroy.call(this)},g.prototype.createGroundFixture=function(a,b,c){var d,e;return e=new box2d.b2FixtureDef,e.shape=a,e.filter.categoryBits=1,e.filter.maskBits=4369,e.friction=.8,e.isSensor=b,e.userData=c,d=this.groundBody.data.CreateFixture(e),d.id=this.groundBody.world.getNextFixtureId()},g.prototype.createGroundShape=function(a,b){var c,d,e,f;return e=1,d=1,c=new box2d.b2PolygonShape,0===a||10===a?(f=[],f.push(new box2d.b2Vec2(0,0)),f.push(new box2d.b2Vec2(-e,0)),f.push(new box2d.b2Vec2(-e,-d)),f.push(new box2d.b2Vec2(0,-d))):1===a||-2===a||11===a?(f=[],f.push(new box2d.b2Vec2(-e,0)),f.push(new box2d.b2Vec2(-e,-d)),f.push(new box2d.b2Vec2(0,-d))):2===a||12===a?(f=[],f.push(new box2d.b2Vec2(0,0)),f.push(new box2d.b2Vec2(-e,-d)),f.push(new box2d.b2Vec2(0,-d))):3===a?(f=[],f.push(new box2d.b2Vec2(0,0)),f.push(new box2d.b2Vec2(-e,0)),f.push(new box2d.b2Vec2(-e,-d))):4===a?(f=[],f.push(new box2d.b2Vec2(0,0)),f.push(new box2d.b2Vec2(-e,0)),f.push(new box2d.b2Vec2(0,-d))):5===a||6===a||7===a?(f=[],f.push(new box2d.b2Vec2(0,-d/2)),f.push(new box2d.b2Vec2(-e,-d/2)),f.push(new box2d.b2Vec2(-e,-d)),f.push(new box2d.b2Vec2(0,-d))):8===a?(f=[],f.push(new box2d.b2Vec2(0,0)),f.push(new box2d.b2Vec2(-e-.3,-d/2)),f.push(new box2d.b2Vec2(-e-.3,-d)),f.push(new box2d.b2Vec2(0,-d))):9===a&&(f=[],f.push(new box2d.b2Vec2(.3,-d/2)),f.push(new box2d.b2Vec2(-e,0)),f.push(new box2d.b2Vec2(-e,-d)),f.push(new box2d.b2Vec2(.3,-d))),_.each(f,function(a){return a.x-=b.x,a.y-=b.y}),c.Set(f),c},g.prototype.CreateSnows=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;for(c=a.layers[0].data,j=c.length,i=c[0].length,v=[],console.log("WE"),d=g=0,m=j;0<=m?g<=m:g>=m;d=0<=m?++g:--g)for([],e=k=0,n=i;0<=n?k<=n:k>=n;e=0<=n?++k:--k)d>=0&&e>=0&&d<j&&e<i&&(x=c[d][e],10===x.properties.type?void 0===u||null===u?u={x:d,y:e,length:1,dir:"WE"}:u.length+=1:null!=u&&(v.push(u),u=null));for(console.log("SE"),f=l=0,o=i+j;0<=o?l<=o:l>=o;f=0<=o?++l:--l)for([],d=w=0,p=f;0<=p?w<=p:w>=p;d=0<=p?++w:--w)e=f-d,d>=0&&e>=0&&d<j&&e<i&&(x=c[d][e],11===x.properties.type?null==u?u={x:d,y:e,length:1,dir:"SE"}:u.length+=1:null!=u&&(v.push(u),u=null));for(console.log("SW"),f=y=q=-Math.max(i,j),r=Math.max(i,j);q<=r?y<=r:y>=r;f=q<=r?++y:--y)for([],d=z=0,s=j;0<=s?z<=s:z>=s;d=0<=s?++z:--z)e=f+d,d>=0&&e>=0&&d<j&&e<i&&(x=c[d][e],12===x.properties.type?null==u?u={x:d,y:e,length:1,dir:"SW"}:u.length+=1:null!=u&&(v.push(u),u=null));for(console.log(v),b=0,h=v.length;b<h;b++)t=v[b],this.CreateSnow(this,t)},g.prototype.CreateSnow=function(a,b){return new d(this.game,a,b)},g.prototype.CreateLiquid=function(a,b,d,e){return new c(this.game,b-e,d,{type:a,width:e})},g}(Phaser.Sprite)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Common/TouchButton",["./Button","Phaser"],function(c){"use strict";return function(c){function d(b,c,e,f,g,h){this.onUp=a(this.onUp,this),this.onDown=a(this.onDown,this),this.setState=a(this.setState,this);var i;"up"===f?i="FingerRingJump0000":"right"===f?i="FingerRingRight0000":"left"===f&&(i="FingerRingLeft0000"),d.__super__.constructor.call(this,b,c,e,"PopupAssets",i,h),this.sprite.anchor.set(.5),this.anchor.set(.5),this.sprite.tint="fb"===g?16757917:10347007,this.alpha=.7,this.initialFrame=i,b.TouchManager.register(this,"touchstart",function(a){return function(){return console.log("down"),a.isDown=!0,a.alpha=.3,a.onDown()}}(this)),b.TouchManager.register(this,"touchend",function(a){return function(){return console.log("up"),a.isDown=!1,a.alpha=.5,a.onUp()}}(this)),this.hitArea=new PIXI.Circle(0,0,this.sprite.width)}return b(d,c),d.prototype.customEvents=!0,d.prototype.setState=function(a){return this.sprite.frameName="up"===a?"FingerRingJump0000":this.initialFrame,this.sprite.cacheAsBitmap=!0},d.prototype.onDown=function(){},d.prototype.onUp=function(){},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/CharCursors",["../Common/TouchButton","Phaser"],function(c){"use strict";return function(d){function e(b,c){this.hide=a(this.hide,this),this.show=a(this.show,this),this.updateDowns=a(this.updateDowns,this),this.onSettingChange=a(this.onSettingChange,this),this.destroy=a(this.destroy,this),e.__super__.constructor.call(this),this.game=b,this.id=c,this.active=!1,b.settingsSignal.add(this.onSettingChange),this.setup()}return b(e,d),e.prototype.destroy=function(){return this.game.settingsSignal.remove(this.onSettingChange)},e.prototype.onSettingChange=function(a){if("controls"===a)return this.buttons&&(this.buttons.destroy(),this.buttons=null),this.setup()},e.prototype.isOnDevice=function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},e.prototype.setup=function(){var a,b,d,e,f,g;return"dual"===this.game.settings.controls?(a=.35*window.devicePixelRatio,b=this.buttons=this.game.make.sprite(0,0),d=new c(this.game,0,0,"left",this.id),d.scale.set(a),e=new c(this.game,0,0,"right",this.id),e.scale.set(a),f=new c(this.game,0,0,"up",this.id),f.scale.set(a),this.updateDowns=g=function(a){return function(){return a.right.isDown=a.right.buttonDown,a.left.isDown=a.left.buttonDown,a.up.isDown=a.up.buttonDown,a.active=a.up.isDown||a.left.isDown||a.right.isDown}}(this),d.onDown=function(a){return function(){return a.left.buttonDown=!0,g()}}(this),e.onDown=function(a){return function(){return a.right.buttonDown=!0,g()}}(this),f.onDown=function(a){return function(){return a.up.buttonDown=!0,g()}}(this),d.onUp=function(a){return function(){return a.left.buttonDown=!1,g()}}(this),e.onUp=function(a){return function(){return a.right.buttonDown=!1,g()}}(this),f.onUp=function(a){return function(){return a.up.buttonDown=!1,g()}}(this),b.addChild(d),b.addChild(e),b.addChild(f),this.layoutContent=function(c){return function(){var g;return d.x=-1.2*a*d.sprite.width/2,e.x=1.2*a*e.sprite.width/2,f.y=-1.2*a*f.sprite.width/2,g="wg"===c.id?{x:-c.game.realWidth/2+2*d.sprite.width/3,y:c.game.realHeight/2-d.sprite.height/4}:{x:c.game.realWidth/2-2*d.sprite.width/3,y:c.game.realHeight/2-d.sprite.height/4},b.x=g.x,b.y=g.y}}(this),this.layoutContent(),this.game.layers.ui.addChild(b),this.left={isDown:!1},this.right={isDown:!1},this.up={isDown:!1}):"single"===this.game.settings.controls||this.isOnDevice()?(a=.5*window.devicePixelRatio,b=this.buttons=this.game.make.group(0,0),d=new c(this.game,0,0,"left",this.id),e=new c(this.game,0,0,"right",this.id),d.scale.set(a),e.scale.set(a),this.layoutContent=function(b){return function(){return d.x=-b.game.realWidth/2+.7*a*d.sprite.width/2,d.y=b.game.realHeight/2-.7*a*d.sprite.height/2,e.x=b.game.realWidth/2-.7*a*e.sprite.width/2,e.y=b.game.realHeight/2-.7*a*e.sprite.height/2}}(this),this.layoutContent(),this.updateDowns=g=function(a){return function(){return a.left.buttonDown&&a.right.buttonDown?(Date.now()-a.lastTouch<80&&(a.right.isDown=a.right.lastDown=!1,a.left.isDown=a.left.lastDown=!1),a.up.isDown=!0):a.up.isDown=!1,a.left.buttonDown&&!a.right.buttonDown?(a.left.lastDown=!0,a.right.lastDown=!1):a.right.buttonDown&&!a.left.buttonDown&&(a.right.lastDown=!0,a.left.lastDown=!1),a.left.lastDown&&a.left.buttonDown?(a.left.isDown=!0,a.right.isDown=!1,e.setState("up"),d.setState("left")):a.right.lastDown&&a.right.buttonDown?(a.right.isDown=!0,a.left.isDown=!1,d.setState("up"),e.setState("right")):(a.right.isDown=!1,a.left.isDown=!1,d.setState("left"),e.setState("right")),a.active=a.buttons.visible&&(a.up.isDown||a.left.isDown||a.right.isDown),a.lastTouch=Date.now()}}(this),d.onDown=function(a){return function(){return a.left.buttonDown=!0,g()}}(this),e.onDown=function(a){return function(){return a.right.buttonDown=!0,g()}}(this),d.onUp=function(a){return function(){return a.left.buttonDown=!1,g()}}(this),e.onUp=function(a){return function(){return a.right.buttonDown=!1,g()}}(this),"fb"===this.id&&(b.visible=!1),b.addChild(d),b.addChild(e),this.game.layers.ui.addChild(b),this.left={isDown:!1},this.right={isDown:!1},this.up={isDown:!1},this.up.visible=!1):"wg"===this.id?(this.up=this.game.input.keyboard.addKey(Phaser.Keyboard.W),this.left=this.game.input.keyboard.addKey(Phaser.Keyboard.A),this.right=this.game.input.keyboard.addKey(Phaser.Keyboard.D)):(this.up=this.game.input.keyboard.addKey(Phaser.Keyboard.UP),this.left=this.game.input.keyboard.addKey(Phaser.Keyboard.LEFT),this.right=this.game.input.keyboard.addKey(Phaser.Keyboard.RIGHT)),this},e.prototype.updateDowns=function(){},e.prototype.show=function(){return this.buttons.visible=!0},e.prototype.hide=function(){return this.buttons.visible=!1},e}(Phaser.Signal)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/character",["./CharCursors","Phaser"],function(c){"use strict";return function(d){function e(b,d,f,g){this.drawDarkMask=a(this.drawDarkMask,this),this.update=a(this.update,this),this.setFriction=a(this.setFriction,this),this.setOnIce=a(this.setOnIce,this),this.animateStairs=a(this.animateStairs,this),this.destroy=a(this.destroy,this),this._doKill=a(this._doKill,this),this.kill=a(this.kill,this),this.liquidTouched=a(this.liquidTouched,this);var h,i,j,k,l,m,n,o,p,q,r,s;return this.maxSpeed=this.defaultMaxSpeed,e.__super__.constructor.call(this,b),d+=this.game.physics.box2d.mpx(1),f-=this.game.physics.box2d.mpx(1),this.data={char:g,diamonds:0,silverDiamond:0},this.sprite=this.game.make.sprite(d,f,"CharAssets","_default0000"),this.sprite.character=this,this.sprite.scale.x=this.spriteScale,this.sprite.scale.y=this.spriteScale,this.game.layers.chars.addChild(this.sprite),this.game.physics.box2d.enable(this.sprite),this.body=this.sprite.body,this.body.clearFixtures(),this.body.fixedRotation=!0,this.body.data.m_userData="pers",this.body.data.SetBullet(!0),this.signal=new Phaser.Signal,m=function(a){return function(b,c,d){var e,f,g;return e=new box2d.b2CircleShape(b),e.m_p.SetXY(c[0],c[1]),g=new box2d.b2FixtureDef,g.shape=e,g.density=0,g.filter.categoryBits=16,g.filter.maskBits=4353,g.friction=d,f=a.body.data.CreateFixture(g),f.id=a.body.world.getNextFixtureId(),f}}(this),n=function(a){return function(b,c,d,e){var f,g,h,i,j;return j=[],f=a.dr,j.push(new box2d.b2Vec2(b-f,d)),j.push(new box2d.b2Vec2(-b+f,d)),j.push(new box2d.b2Vec2(c-f,e)),j.push(new box2d.b2Vec2(-c+f,e)),i=new box2d.b2PolygonShape,i.Set(j),h=new box2d.b2FixtureDef,h.shape=i,h.friction=0,h.density=1.4,h.filter.categoryBits=16,h.filter.maskBits=4353,g=a.body.data.CreateFixture(h),g.id=a.body.world.getNextFixtureId(),g}}(this),p=this.r1,q=this.r2,r=this.y1,s=this.y2,h=new box2d.b2CircleShape(.1),h.m_p.SetXY(0,0),i=new box2d.b2FixtureDef,i.shape=h,i.density=0,i.filter.categoryBits=4096,i.filter.maskBits=4096,i.filter.groupIndex=-1,i.friction=0,this.portalSensor=this.body.data.CreateFixture(i),this.portalSensor.id=this.body.world.getNextFixtureId(),this.portalSensor.m_userData={"portal-sensor":!0},m(p,[0,r],0),this.feetSensor=m(q,[0,s],this.feetFriction),n(p,q,r,s),this.feetSensor.m_userData="feet",this.feetSensor.contacts=[],o="fb"===g?"fire":"water",this.prefix=o,this.bodySprite=b.make.sprite(0,0,"CharAssets","_default0000"),this.sprite.addChild(this.bodySprite),l=b.make.sprite(0,0,"CharAssets"),l.anchor.set(.5),l.animations.add("running",Phaser.Animation.generateFrameNames(o+"_legs_running",0,7,"",4),30,!0),"wg"===this.data.char&&l.animations.add("onice",Phaser.Animation.generateFrameNames(o+"_legs_running",0,7,"",4),10,!0),l.frameName=o+"_legs_idle0000",this.bodySprite.addChild(l),j=b.make.sprite(0,0,"CharAssets"),j.animations.add("idle",Phaser.Animation.generateFrameNames(o+"_head_idle",0,29,"",4),30,!0),j.animations.add("falling",Phaser.Animation.generateFrameNames(o+"_head_falling",0,4,"",4),30,!0),j.animations.add("jumping",Phaser.Animation.generateFrameNames(o+"_head_jumping",0,10,"",4),30,!0),j.animations.add("rising",Phaser.Animation.generateFrameNames(o+"_head_rising",0,4,"",4),30,!0),j.anchor.set(.5),j.animations.play("idle"),this.bodySprite.addChild(j),k=b.make.sprite(0,0,"CharAssets"),k.anchor.set(.5),k.animations.add("loop",Phaser.Animation.generateFrameNames(o+"_ice_legs",0,4,"",4),10,!0),k.visible=!1,this.bodySprite.addChild(k),this.bodyParts={},this.bodyParts.legs=l,this.bodyParts.ice=k,this.bodyParts.head=j,this.bodySprite.hitArea=new PIXI.Circle(0,0,.65*l.height),this.body.setFixtureContactCallback(this.feetSensor,function(a){return function(b,c,d,e,f,g){var h;if(e.m_isSensor){if(null!=e.m_userData&&"liquid_death"===e.m_userData.type)return f?(a.liquidTouched(e.m_userData.liquidType),a.isOnLiquid=!0):a.isOnLiquid=!1}else{if(f&&g.m_manifold.localNormal.Length()>0)return a.feetSensor.contacts.push(g);if((h=a.feetSensor.contacts.indexOf(g))>=0)return a.feetSensor.contacts.splice(h,1)}}}(this),this),this.cursors=new c(this.game,g),this.sprite.char=this.char=g,this}return b(e,d),e.prototype.facing="left",e.prototype.feetFriction=.5,e.prototype.r1=.48,e.prototype.r2=.2,e.prototype.dr=.03,e.prototype.y1=.2,e.prototype.y2=-.9,e.prototype.spriteScale=.95,e.prototype.jumpImpulse=1,e.prototype.jumpVelocity=15.5,e.prototype.jumpIceVelocity=10,e.prototype.runForce=50,e.prototype.floatForce=30,e.prototype.defaultMaxSpeed=8.5,e.prototype.waterIceMaxSpeed=2,e.prototype.absoluteMaxSpeed=40,e.prototype.liquidTouched=function(a){if(7===a||"wg"===this.char&&6===a||"fb"===this.char&&5===a)return this.kill()},e.prototype.kill=function(){if(!this.dying)return this.dying=!0,_.delay(this._doKill,0)},e.prototype._doKill=function(){var a,b;return this.game.level.sounds.death.play(),this.game.level.sounds.levelMusic.stop(),this.game.level.sounds.levelMusicOver.play(),b=this.game.make.sprite(0,-.7*this.game.physics.box2d.mpx(1),"CharAssets"),a=b.animations.add("play",Phaser.Animation.generateFrameNames("death_smoke",0,45,"",4),30,!1),this.body.data.GetLinearVelocity().x<0&&(b.scale.x=-1),b.animations.play("play"),b.anchor.set(.5),a.onComplete.add(function(a){return function(){return a.sprite.visible=!1,a.isDead=!0,a.signal.dispatch()}}(this)),this.sprite.addChild(b),this.dead=!0},e.prototype.destroy=function(){return e.__super__.destroy.apply(this,arguments),this.cursors.destroy()},e.prototype.animateStairs=function(a){var b;return this.bodyParts.head.visible=!1,this.bodyParts.legs.visible=!1,b=this.game.make.sprite(0,0,"CharAssets"),b.animations.add("up",Phaser.Animation.generateFrameNames(this.prefix+"_stairs",0,30,"",4),25,!1),b.anchor.set(.5,1),this.game.add.tween(b.scale).to({x:.8,y:.8},360,Phaser.Easing.Linear.None,!0,0),this.sprite.addChild(b),this.body.x=a.pos.x,this.body.y=a.pos.y+4,b.animations.play("up")},e.prototype.setOnIce=function(a){return a&&!this.isOnIce?(this.isOnIce=!0,this.setFriction()):!a&&this.isOnIce?(this.isOnIce=!1,this.setFriction()):void 0},e.prototype.setFriction=function(){var a,b;for("fb"===this.data.char&&(this.isOnIce?(this.feetSensor.m_friction=0,this.maxSpeed=this.defaultMaxSpeed):(this.feetSensor.m_friction=this.feetFriction,this.maxSpeed=this.defaultMaxSpeed)),"wg"===this.data.char&&(this.isOnIce?(this.feetSensor.m_friction=.7,this.maxSpeed=this.waterIceMaxSpeed):(this.feetSensor.m_friction=this.feetFriction,this.maxSpeed=this.defaultMaxSpeed)),this.feetSensor.Refilter(),a=this.feetSensor.m_body.m_contactList,b=[];null!=a;)a.contact.ResetFriction(),b.push(a=a.next);return b},e.prototype.update=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(!(null!=this.game.level&&this.game.level.ended||this.game.physics.box2d.paused)){if(this.dying)return this.bodySprite.visible=!1,this.bodyParts.legs.visible=!1,this.bodyParts.head.visible=!1,void(this.dead&&this.body.data.SetLinearVelocity(new box2d.b2Vec2(0,0)));if(k=this.jumpImpulse,this.jumpVelocity,q=this.runForce,h=this.floatForce,this.defaultMaxSpeed,(this.cursors.right.isDown||this.cursors.left.isDown)&&this.isOnLiquid?this.waterplaying||(this.waterplaying=!0,this.game.level.sounds.waterSteps.loop=!0,this.game.level.sounds.waterSteps.volume=.5,this.game.level.sounds.waterSteps.play()):!0===this.waterplaying&&(this.waterplaying=!1,this.game.level.sounds.waterSteps.stop()),(this.cursors.right.isDown||this.cursors.left.isDown)&&this.isOnIce?this.iceplaying||(this.iceplaying=!0,this.game.level.sounds["iceSteps_"+this.data.char].loop=!0,this.game.level.sounds["iceSteps_"+this.data.char].play()):!0===this.iceplaying&&(this.iceplaying=!1,this.game.level.sounds["iceSteps_"+this.data.char].stop()),j=new box2d.b2Vec2(0,-1),
|
||
this.feetSensor.contacts.length>0&&(_.each(this.feetSensor.contacts,function(a){return function(a){return a.m_normal||(a.m_normal=new box2d.b2Vec2),a.m_fixtureA.m_body.GetWorldVector(a.m_manifold.localNormal,a.m_normal)}}()),this.feetSensor.contacts=_.sortBy(this.feetSensor.contacts,function(a){return function(a){return a.m_normal.Dot(j)}}()),d=this.feetSensor.contacts[0],l=d.m_normal),g=this.game.time.elapsed/1e3,e=130*g/this.currentRunForce,this.body.data.GetLinearVelocity().Length()<1&&this.currentRunForce>.5*q&&(e=q),this.cursors.left.isDown?null!=d?(this.currentRunForce<q&&(this.currentRunForce=Math.min(this.currentRunForce+e,q)),n=l.y>.6?l.y:0,i=l.Clone().SelfCrossSV(-this.currentRunForce).SelfMul(Math.max(0,Math.sqrt(n))),n>.6&&i.y>=0&&i.y<20&&(i.y+=20)):i=new box2d.b2Vec2(h,0):this.cursors.right.isDown?null!=d?(this.currentRunForce<q&&(this.currentRunForce=Math.min(this.currentRunForce+e,q)),n=l.y>.6?l.y:0,i=l.Clone().SelfCrossSV(this.currentRunForce).SelfMul(Math.max(0,Math.sqrt(n))),n>.6&&i.y>=0&&i.y<20&&(i.y+=20)):i=new box2d.b2Vec2(-h,0):(this.currentRunForce=.475*q,this.isOnIce&&"wg"===this.data.char?(i=new box2d.b2Vec2(20*-this.body.data.GetLinearVelocity().x,0),this.body.data.SetLinearVelocity(new box2d.b2Vec2(0,0))):i=new box2d.b2Vec2(7*-this.body.data.GetLinearVelocity().x,0)),this.prohibitJump&&!this.cursors.up.isDown&&(this.prohibitJump=!1),!this.prohibitJump&&this.cursors.up.isDown&&(null!=l&&l.y>.2||this.feetSensor.contacts.length>=2)){for(this.body.data.ApplyLinearImpulse({x:0,y:k},{x:0,y:0}),this.isOnIce?"fb"===this.data.char?l.y>.9?(t=new box2d.b2Vec2(this.body.data.GetLinearVelocity().x,3*l.y),this.body.data.SetLinearVelocity(t)):(t=new box2d.b2Vec2(3*l.x,3*l.y),this.body.data.SetLinearVelocity(t)):(t=new box2d.b2Vec2(this.body.data.GetLinearVelocity().x,this.jumpIceVelocity),this.body.data.SetLinearVelocity(t)):(t=l.y>.65?new box2d.b2Vec2(this.body.data.GetLinearVelocity().x,this.jumpVelocity):new box2d.b2Vec2(this.body.data.GetLinearVelocity().x,Math.sqrt(Math.sqrt(l.y))*this.jumpVelocity),t.Length()>this.jumpVelocity&&t.SelfNormalize().SelfMul(this.jumpVelocity),this.body.data.SetLinearVelocity(t),f=!0),o=this.feetSensor.m_body.m_contactList,p=new box2d.b2Vec2(0,-1),p;null!=o;)c=o.contact.m_fixtureA.m_body,"reactable"===c.m_userData&&c.ApplyLinearImpulse(p,{x:0,y:0},!0),o=o.next;this.prohibitJump=!0,"wg"===this.char?this.game.level.sounds.jump_wg.play():this.game.level.sounds.jump_fb.play()}null!=i&&(f&&(i.y=0,f=!1),this.isOnIce&&("fb"===this.data.char&&i.SelfMul(.2),"wg"===this.data.char&&i.SelfMul(1),s=this.body.data.GetLinearVelocity(),s.Length()>this.maxSpeed&&(s.SelfNormalize().SelfMul(this.maxSpeed),this.body.data.SetLinearVelocity(s))),s=this.body.data.GetLinearVelocity(),i.x>0&&s.x<this.maxSpeed&&this.body.data.ApplyForce(i,{x:0,y:0}),i.x<0&&s.x>-this.maxSpeed&&this.body.data.ApplyForce(i,{x:0,y:0})),s.Length()>this.absoluteMaxSpeed&&(s.SelfNormalize().SelfMul(this.absoluteMaxSpeed),this.body.data.SetLinearVelocity(s)),s=this.body.data.GetLinearVelocity(),m=s.Clone().SelfNormalize(),a=Math.atan2(Math.max(-.333,m.y),m.x),null!=l?this.cursors.left.isDown?(b="jumping",r=-1,a=Math.atan2(l.y,l.x)-Math.PI/2,a=Math.max(Math.min(a,.25*Math.PI),.1*-Math.PI)):this.cursors.right.isDown?(b="jumping",r=1,a=Math.atan2(l.y,l.x)-Math.PI/2,a=Math.max(Math.min(a,.1*Math.PI),.25*-Math.PI)):(b="idle",r=1,a=0):s.x>4?(b="jumping",r=-1,a=a):s.x<-4?(b="jumping",r=1,a+=Math.PI):s.y>3?(b="rising",r=1,a=0):s.y<-3?(b="falling",r=1,a=0):this.cursors.left.isDown?(b="jumping",r=-1,a=this.bodyParts.head.rotation):this.cursors.right.isDown?(b="jumping",r=1,a=this.bodyParts.head.rotation):(b="idle",r=1,a=0),this.bodyParts.head.scale.set(r,1),this.bodyParts.head.rotation=a,this.bodyParts.head.animations.play(b),"rising"===b?this.bodyParts.legs.renderOrderID<this.bodyParts.head.renderOrderID&&(this.sprite.removeChild(this.bodyParts.legs,!1,!0),this.sprite.addChild(this.bodyParts.legs,!0)):this.bodyParts.legs.renderOrderID>this.bodyParts.head.renderOrderID&&(this.sprite.removeChild(this.bodyParts.head,!1,!0),this.sprite.addChild(this.bodyParts.head,!0)),"jumping"===b?(-1===r&&"left"!==this.facing&&(this.bodyParts.legs.scale.set(-1,1),this.bodyParts.ice.scale.set(-1,1),this.facing="left"),1===r&&"right"!==this.facing&&(this.bodyParts.legs.scale.set(1,1),this.bodyParts.ice.scale.set(1,1),this.facing="right"),this.isOnIce?(this.bodyParts.ice.animations.play("loop"),this.bodyParts.ice.visible=!0):(this.bodyParts.ice.animations.stop(),this.bodyParts.ice.visible=!1),"wg"===this.data.char&&this.isOnIce?this.bodyParts.legs.animations.play("onice"):this.bodyParts.legs.animations.play("running")):"idle"!==this.facing&&(this.bodyParts.ice.animations.stop(),this.bodyParts.ice.visible=!1,this.bodyParts.legs.animations.stop(),this.bodyParts.legs.frameName=this.prefix+"_legs_idle0000",this.facing="idle")}},e.prototype.drawDarkMask=function(a){var b,c;return a.ctx.globalCompositeOperation="lighter",c={x:this.sprite.x+a.offset.x,y:this.sprite.y+a.offset.y},b=a.ctx.createRadialGradient(c.x,c.y,20,c.x,c.y,180),b.addColorStop(0,"rgba(255,255,255,1)"),b.addColorStop(.5,"rgba(255,255,255,0.3)"),b.addColorStop(1,"transparent"),a.circle(c.x,c.y,220,b)},e}(Phaser.Group)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/MechManager",["./Devices/Device","./Devices/_define"],function(){"use strict";var c;return c=c=function(c){function d(b){this.deviceChanged=a(this.deviceChanged,this),this.resetStates=a(this.resetStates,this),this.connectToWall=a(this.connectToWall,this),this.registerDevice=a(this.registerDevice,this),this.game=b,this.deviceGroups={}}return b(d,c),d.prototype.registerDevice=function(a){var b,c;if(c=a.options.properties.group,(b=this.deviceGroups)[c]||(b[c]=[]),this.deviceGroups[c].push(a),null!=a.signal)return a.signal.add(this.deviceChanged)},d.prototype.connectPortals=function(){var a,b,c,d,e,f,g,h,i,j,k,l;j={},k=this.deviceGroups;for(f in k)for(d=k[f],e=0,g=d.length;e<g;e++)c=d[e],"portal"===c.options.type&&(j[h=c.options.properties.portalId]||(j[h]=[]),j[c.options.properties.portalId].push(c));l=[];for(f in j)i=j[f],i[0].other=i[1],i[1].other=i[0],(a=i[0].options.properties).inverted||(a.inverted=!1),(b=i[1].options.properties).inverted||(b.inverted=!1),this.connectToWall(i[0]),l.push(this.connectToWall(i[1]));return l},d.prototype.connectToWall=function(a){var b,c,d,e,f,g,h;if(g=this.game.physics.box2d.pxm(a.options.x),h=this.game.physics.box2d.pxm(a.options.y),d=new box2d.b2Vec2(g,h),c=d.Clone().SelfAdd(new box2d.b2Vec2(.5,0).SelfRotateRadians(a.options.rotation)),f=d.Clone().SelfAdd(new box2d.b2Vec2(-.5,0).SelfRotateRadians(a.options.rotation)),-1===this.game.level.ground.getTileAt(Math.floor(c.x),Math.floor(c.y)).properties.type&&(b=c),-1===this.game.level.ground.getTileAt(Math.floor(f.x),Math.floor(f.y)).properties.type&&(b=f),null!=b)return b.SelfAdd(new box2d.b2Vec2(0,-.5).SelfRotateRadians(a.options.rotation)),e={center:{x:-b.x,y:-b.y},rotation:a.options.rotation,width:.5,height:1.5},a.createFakeBlock(e)},d.prototype.resetStates=function(){var a,b,c,d,e;d=this.deviceGroups,e=[];for(c in d)b=d[c],e.push(function(){var c,d,e;for(e=[],c=0,d=b.length;c<d;c++)a=b[c],e.push(a.updateState(!0));return e}());return e},d.prototype.deviceChanged=function(a){var b,c,d,e,f,g,h,i,j;for(console.log("--"),g=a.state,h=this.deviceGroups[a.options.properties.group],c=0,e=h.length;c<e;c++)b=h[c],null!=b.signal&&(g=g||b.state);for(i=this.deviceGroups[a.options.properties.group],j=[],d=0,f=i.length;d<f;d++)b=i[d],null==b.signal&&(b.state=g),j.push(b._updateState());return j},d}(Object),c.classNames={pusher:Devices.Pusher,lever:Devices.Lever,box:Devices.Box,platform:Devices.MovingPlatform,beamer:Devices.Beamer,rotmirror:Devices.RotMirror,lightpusher:Devices.LightPusher,portal:Devices.Portal,ball:Devices.Ball,pulley:Devices.Pulley,hanging:Devices.Hanging,boxmirror:Devices.BoxMirror,boxheavy:Devices.BoxHeavy,infinitemirror:Devices.InfiniteMirror,slider:Devices.Slider,timedpusher:Devices.TimedPusher,wind:Devices.Wind,cover:Devices.BackgroundCover,window:Devices.Window,roman:Devices.Roman},c.className=function(a){return c.classNames[a]},c})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/CameraManager",[],function(){"use strict";return function(c){function d(b){this.destroy=a(this.destroy,this),this.checkBounds=a(this.checkBounds,this),this.animate=a(this.animate,this),this.focusOn=a(this.focusOn,this),this.updateCamera=a(this.updateCamera,this),this.update=a(this.update,this);var c,d;this.game=b.game,this.level=b,this.camGraphics=this.game.add.graphics(0,0),this.camGraphics.fixedToCamera=!0,this.viewportPadding={top:64,left:0,bottom:0,right:0},this.worldPadding={top:100,left:200,bottom:100,right:200},this.target={x:0,y:0,scale:1,vx:0,vy:0,vscale:0,ax:0,ay:0,ascale:0},this.updateCamera(),this.minScale=d=Math.min(.9*this.game.realWidth/this.game.level.size.width,.9*this.game.realHeight/this.game.level.size.height),this.maxScale=1.5,this.level.root.x=-this.game.level.size.width/2*d,this.level.root.y=-this.game.level.size.height/2*d,this.level.root.scale.set(d),this.camFreeze=!0,c=_.debounce(function(a){return function(){return a.wheelScale=null}}(this),1e3),$(window).on("wheel",function(a){return function(b){return console.log("zoom",b.originalEvent.deltaY),b.originalEvent.deltaY>0?a.wheelScale=Math.min(a.maxScale,Math.max(a.minScale,.8*a.level.root.scale.x)):a.wheelScale=Math.min(a.maxScale,Math.max(a.minScale,1.2*a.level.root.scale.x)),b.stopPropagation(),c()}}(this)),this.game.TouchManager.register(this,"pinch",function(a){return function(b){if(!a.game.level.pers1.cursors.active&&!a.game.level.pers2.cursors.active)return null==a.userScale&&(a.pinchScale=a.level.root.scale.x,a.pinchOrigin={x:-a.level.root.x,y:-a.level.root.y},a.pinchCenter={x:-a.level.root.x-a.game.realWidth/2+b.center.x/a.pinchScale,y:-a.level.root.y-a.game.realHeight/2+b.center.y/a.pinchScale}),a.userScale=Math.min(a.maxScale,Math.max(a.minScale,b.scale*a.pinchScale)),a.userCenter=new box2d.b2Vec2(a.pinchOrigin.x+a.pinchCenter.x*a.userScale-a.pinchCenter.x*a.pinchScale-b.deltaX/a.game.camera.scale.x,a.pinchOrigin.y+a.pinchCenter.y*a.userScale-a.pinchCenter.y*a.pinchScale-b.deltaY/a.game.camera.scale.y)}}(this)),this.game.TouchManager.register(this,"pinchend",function(a){return function(b){return a.userScale=null,a.userCenter=null}}(this)),this.game.TouchManager.register(null,"pan",function(a){return function(b){if(!a.game.level.pers1.cursors.active&&!a.game.level.pers2.cursors.active)return null==a.userCenter&&(a.panOrigin={x:-a.level.root.x,y:-a.level.root.y}),a.userCenter=new box2d.b2Vec2(a.panOrigin.x-b.deltaX/a.game.camera.scale.x,a.panOrigin.y-b.deltaY/a.game.camera.scale.y)}}(this)),this.game.TouchManager.register(null,"panend",function(a){return function(b){return a.userCenter=null}}(this))}return b(d,c),d.prototype.update=function(){if(!this.camFreeze)return this.updateCamera(),this.animate()},d.prototype.updateCamera=function(){var a,b,c,d,e,f,g,h,i,j,k;if(null!=this.level.pers1&&null!=this.level.pers2)return f=new box2d.b2Vec2(this.level.pers1.sprite.x,this.level.pers1.sprite.y),g=new box2d.b2Vec2(this.level.pers2.sprite.x,this.level.pers2.sprite.y),b=g.Clone().SelfSub(f),k={width:this.game.realWidth-this.viewportPadding.left-this.viewportPadding.right,height:this.game.realHeight-this.viewportPadding.top-this.viewportPadding.bottom},i=j=1,c=Math.abs(b.x)+this.worldPadding.left+this.worldPadding.right,d=Math.abs(b.y)+this.worldPadding.top+this.worldPadding.bottom,c=Math.min(c,this.game.level.size.width),d=Math.min(d,this.game.level.size.height),c>k.width&&(i=k.width/c),d>k.height&&(j=k.height/d),h=i<1||j<1?Math.min(i,j):1,e="elements"===this.game.gameConfig.id||this.game.bowser.mobile||this.game.width<=780||this.game.height<=480?{width:20,height:15}:{width:40,height:30},h*this.game.physics.box2d.mpx(e.width)>this.game.realWidth&&(h=this.game.realWidth/this.game.physics.box2d.mpx(e.width)),h*this.game.physics.box2d.mpx(e.height)>this.game.realHeight&&(h=this.game.realHeight/this.game.physics.box2d.mpx(e.height)),null!=this.userScale&&(h=this.userScale),null!=this.wheelScale&&(h=this.wheelScale),a=f.Clone().SelfAdd(b.Clone().SelfMul(.5)).SelfMul(h),null!=this.userCenter&&(a=new box2d.b2Vec2(this.userCenter.x,this.userCenter.y)),this.level.debug&&(h=1,a=new box2d.b2Vec2(this.game.realWidth/2,this.game.realHeight/2),this.game.camera.x=0,this.game.camera.y=0),this.focusOn(a,h),this.level.debug?void 0:this.checkBounds()},d.prototype.focusOn=function(a,b){return this.target.x=Math.round(-a.x+this.game.realWidth/2),this.target.y=Math.round(-a.y+this.game.realHeight/2),this.target.scale=b},d.prototype.animate=function(){var a,b;if(this.target.x!==this.level.root.x||this.target.y!==this.level.root.y||this.target.scale!==this.level.root.scale.x)return a=null!=this.userCenter?1/3:1/15,b=.5,this.target.ax=(this.target.x-this.level.root.x)*a,this.target.ay=(this.target.y-this.level.root.y)*a,this.target.ascale=(this.target.scale-this.level.root.scale.x)*a,this.target.vx+=this.target.ax,this.target.vx*=b,this.target.vy+=this.target.ay,this.target.vy*=b,this.target.vscale+=this.target.ascale,this.target.vscale*=b,this.level.root.x+=this.target.vx,this.level.root.y+=this.target.vy,this.level.root.scale.x+=this.target.vscale,this.level.root.scale.y+=this.target.vscale},d.prototype.checkBounds=function(){var a,b,c,d,e,f;d={left:!1,top:!1,right:!1,bottom:!1},b=new Phaser.Rectangle(0,0,this.game.level.size.width,this.game.level.size.height),c=0,e=this.game.realWidth,f=0,a=this.game.realHeight,c<=this.target.x+b.x*this.target.scale&&(d.left=!0,this.target.x=b.x*this.target.scale),e>=this.target.x+b.right*this.target.scale&&(d.right=!0,this.target.x=e-b.right*this.target.scale),f<=this.target.y+b.y*this.target.scale&&(d.top=!0,this.target.y=b.top*this.target.scale),a>=this.target.y+b.bottom*this.target.scale&&(d.bottom=!0,this.target.y=a-b.bottom*this.target.scale),b.width*this.target.scale<this.game.realWidth&&(d.right||d.left)&&(this.target.x=this.game.realWidth/2-b.width*this.target.scale/2),b.height*this.target.scale<this.game.realHeight&&(d.top||d.bottom)&&(this.target.y=this.game.realHeight/2-b.height*this.target.scale/2),this.target.x-=this.game.realWidth/2,this.target.y-=this.game.realHeight/2},d.prototype.destroy=function(){return this.camGraphics.destroy(),$(window).off("wheel"),this.game.TouchManager.unregister(this,"pinch pinchend"),this.game.TouchManager.unregister(null,"pan panend")},d}(Object)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Common/StoneButton",["./Button","Phaser"],function(b){"use strict";return function(b){function c(a,b,d,e,f){c.__super__.constructor.call(this,a,b,d,"MenuAssets",["StoneButton0000","StoneButton0001"],f,"pusher"),this.anchor.set(.5),this.label=a.make.bitmapText(0,0,this.game.lang.font,e,26),this.label.anchor.set(.5),this.label.y=-this.label.textHeight/2,this.label.textWidth>.65*this.sprite.width&&(this.sprite.width=this.label.textWidth/.65),this.addChild(this.label)}return a(c,b),c}(b)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty,d=[].slice;define("States/Level/IngameMenu",["../Common/StoneButton","Phaser"],function(c){"use strict";return function(c){function e(b,c){this.destroy=a(this.destroy,this),this.update=a(this.update,this),this.fixToCamera=a(this.fixToCamera,this),this.layoutContent=a(this.layoutContent,this),this.renderContent=a(this.renderContent,this);var d,f;e.__super__.constructor.call(this,b,0,0),this.options=c,this.background=b.make.graphics(0,0),this.background.boundsPadding=0,this.addChild(this.background),this.board=d=b.make.sprite(0,0,"PopupAssets","_default0000"),d.anchor.set(.5),this.boardBg=f=b.make.sprite(0,0,"PopupAssets","PopupBackground0000"),f.anchor.set(.5),f.cacheAsBitmap=!0,this.board.addChild(f),this.addChild(d),b.TouchManager.register(this.background,"mousedown",function(a){return function(){return console.log("prevent event")}}()),b.TouchManager.register(this.background,"touchstart",function(a){return function(){return console.log("prevent event")}}()),this.visible=!1,this.game.add.existing(this),this.fixToCamera(),this.target=this.outside,this.force=2.3,this.vy=0,this.ay=0,this.friction=.7,this.board.x=this.target.x,this.board.y=this.target.y,this.renderContent()}return b(e,c),e.prototype.renderContent=function(){},e.prototype.layoutContent=function(){return this.fixToCamera(),this.shown?this.target=this.center:this.target=this.outside,this.board.x=this.target.x},e.prototype.show=function(){return this.target=this.center,this.shown=!0,this.visible=!0},e.prototype.hide=function(){return this.shown=!1,this.target=this.outside},e.prototype.fixToCamera=function(){var a;return this.x=-this.game.realWidth/2,this.y=-this.game.realHeight/2,this.background.clear(),this.background.beginFill(0),this.background.drawRect(0,0,this.game.realWidth,this.game.realHeight),this.background.alpha=0,a=Math.min(1,Math.min(this.game.realWidth/this.boardBg.texture.frame.width,this.game.realHeight/this.boardBg.texture.frame.height)),this.board.scale.set(a),this.contentSize={width:.8*this.boardBg.width,height:this.boardBg.height},this.contentSize.halfWidth=this.contentSize.width/2,this.contentSize.halfHeight=this.contentSize.height/2,this.center={x:this.game.realWidth/2,y:this.game.realHeight/2},this.outside={x:this.game.realWidth/2,y:1.5*this.game.realHeight}},e.prototype.update=function(){var a;if(this.visible){if(this.background.alpha=.7*(1-(this.board.y-this.center.y)/(this.outside.y-this.center.y)),Math.abs(this.board.y-this.target.y)<1&&Math.abs(this.vy)<1)return;if(a=Math.min(.04,this.game.time.elapsed/1e3),this.ay=(this.target.y-this.board.y)*this.force*a,this.vy+=this.ay,this.vy*=this.friction,this.board.y+=this.vy,Math.abs(this.board.y-this.outside.y)<3)return this.visible=!1}},e.prototype.destroy=function(){var a;return a=1<=arguments.length?d.call(arguments,0):[],this.background.clear(),this.visible=!1,e.__super__.destroy.apply(this,a)},e}(Phaser.Group)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Settings/ToggleSettingButton",["../Common/Button","Phaser"],function(c){"use strict";return function(c){function d(b,c,e,f,g,h){this.setSelected=a(this.setSelected,this),this.myKey=f,d.__super__.constructor.call(this,b,c,e,"MenuAssets",[f+"0000",f+"0000"],function(a){return function(){return h(g)}}(),"pusher"),this.anchor.set(.5)}return b(d,c),d.prototype.setSelected=function(a){return a?(this.downFrameName=this.myKey+"0000",this.upFrameName=this.myKey+"0000"):(this.downFrameName=this.myKey+"0001",this.upFrameName=this.myKey+"0001"),this.sprite.frameName=this.upFrameName},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Settings/ToggleControlButton",["../Common/Button","Phaser"],function(c){"use strict";return function(c){function d(b,c,e,f,g,h){this.setSelected=a(this.setSelected,this);var i,j,k;this.myKey=f,d.__super__.constructor.call(this,b,c,e,"MenuAssets",[f+"0000",f+"0000"],function(a){return function(){return h(g)}}(),"pusher"),this.anchor.set(.5),"single"===g&&(k=b.make.sprite(0,0,"MenuAssets"),k.anchor.set(.5),j=Phaser.Animation.generateFrameNames("ToggleSingleScreen",0,12,"",4),k.animations.add("forth",j,12,!1),k.animations.add("back",j.slice(0).reverse(),12,!1),i=function(a){return function(){if(null!=k.animations.play("forth"))return k.animations.play("forth").onComplete.add(function(){return a.game.time.events.add(1e3,function(){if(null!=k.animations.play("back"))return k.animations.play("back").onComplete.add(function(){return a.game.time.events.add(1e3,i,a)})},i,a)})}}(this),i(),this.addChild(k))}return b(d,c),d.prototype.setSelected=function(a){return a?(this.downFrameName=this.myKey+"0000",this.upFrameName=this.myKey+"0000"):(this.downFrameName=this.myKey+"0001",this.upFrameName=this.myKey+"0001"),this.sprite.frameName=this.upFrameName},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Settings/SettingsMenu",["../Level/IngameMenu","../Common/StoneButton","./ToggleSettingButton","./ToggleControlButton","Phaser"],function(c,d,e,f){"use strict";return function(c){function g(b,c){this.changeControls=a(this.changeControls,this),this.chagneSetting=a(this.chagneSetting,this),this.setState=a(this.setState,this),this.show=a(this.show,this),this.close=a(this.close,this),this.renderContent=a(this.renderContent,this),g.__super__.constructor.call(this,b,c),this.onClose=new Phaser.Signal}return b(g,c),g.prototype.renderContent=function(){var a,b,c,g;return c=this.contentSize.halfWidth,b=this.contentSize.halfHeight,"keyboard"!==this.game.settings.controls?(this.single=a=new f(this.game,-120,-b/3,"ToggleControlButtonSingle","single",this.changeControls),a.anchor.set(.5),this.board.addChild(a),g=this.game.make.bitmapText(0,-b/3,this.game.lang.font,"or",18),g.anchor.set(.5),this.board.addChild(g),this.dual=a=new f(this.game,120,-b/3,"ToggleControlButtonDual","dual",this.changeControls),a.anchor.set(.5),this.board.addChild(a),this.vibrate=a=new e(this.game,-c/2,b/6,"VibrateButton","vibrate",this.chagneSetting),a.anchor.set(.5),this.board.addChild(a),this.music=a=new e(this.game,0,b/6,"MusicButton","music",this.chagneSetting),a.anchor.set(.5),this.board.addChild(a),this.fx=a=new e(this.game,c/2,b/6,"FxButton","fx",this.chagneSetting),a.anchor.set(.5),this.board.addChild(a)):(this.music=a=new e(this.game,c/3,0,"MusicButton","music",this.chagneSetting),a.anchor.set(.5),this.board.addChild(a),this.fx=a=new e(this.game,-c/3,0,"FxButton","fx",this.chagneSetting),a.anchor.set(.5),this.board.addChild(a)),this.setState(),this.button=a=new d(this.game,0,1.1*b/2,this.game.lang.locale("Ok"),this.close),a.anchor.set(.5),this.board.addChild(a)},g.prototype.close=function(){return this.hide(),_.delay(function(a){return function(){return a.onClose.dispatch()}}(this),1e3)},g.prototype.show=function(){return g.__super__.show.call(this),h5branding.google.sendScreenView("settings")},g.prototype.setState=function(){return this.dual&&this.single&&("dual"===this.game.settings.controls?(this.dual.setSelected(!0),this.single.setSelected(!1)):(this.dual.setSelected(!1),this.single.setSelected(!0))),this.vibrate&&this.vibrate.setSelected(this.game.settings.vibrate),this.music.setSelected(this.game.settings.music),this.fx.setSelected(this.game.settings.fx)},g.prototype.chagneSetting=function(a){return this.game.settings[a]=!this.game.settings[a],this.game.saveSettings(),this.game.settingsSignal.dispatch(a),this.setState()},g.prototype.changeControls=function(a){return this.game.settings.controls=a,this.game.saveSettings(),this.game.settingsSignal.dispatch("controls"),this.setState()},g}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/PauseMenu",["require","./IngameMenu","../Common/StoneButton","../Common/Button","Phaser","States/Settings/SettingsMenu"],function(c){var d,e,f,g;return e=c("./IngameMenu"),g=c("../Common/StoneButton"),d=c("../Common/Button"),c("Phaser"),f=c("States/Settings/SettingsMenu"),function(c){function e(b,c){this.retry=a(this.retry,this),this.quit=a(this.quit,this),this.resume=a(this.resume,this),this.show=a(this.show,this),this.layoutContent=a(this.layoutContent,this),this.renderContent=a(this.renderContent,this),e.__super__.constructor.call(this,b),this.level=c}return b(e,c),e.prototype.renderContent=function(){var a,b;return this.label=b=this.game.make.bitmapText(0,0,this.game.lang.font,this.game.lang.locale("Paused"),36),b.anchor.set(0),b.x=-b.width/2,b.y=.5*-this.contentSize.halfHeight+b.textHeight/2,this.board.addChild(b),this.settingsButton=new d(this.game,0,0,"MenuAssets",["SettingsButton0000","SettingsButton0001"],function(a){return function(){var b;return a.settingsMenu=b=new f(a.game,a.levelState),b.show(),b.onClose.add(b.destroy)}}(this),"pusher"),this.settingsButton.anchor.set(1),this.settingsButton.scale.set(.9),this.settingsButton.x=this.contentSize.halfWidth-this.settingsButton.width,this.settingsButton.y=-this.contentSize.halfHeight+this.settingsButton.height+100,this.board.addChild(this.settingsButton),this.button1=a=new g(this.game,0,0,this.game.lang.locale("Retry"),this.retry),a.anchor.set(0),this.board.addChild(a),this.button2=a=new g(this.game,0,0,this.game.lang.locale("End"),this.quit),a.anchor.set(0),this.board.addChild(a),this.button3=a=new g(this.game,0,0,this.game.lang.locale("Resume"),this.resume),a.anchor.set(0),this.board.addChild(a),this.layoutContent()},e.prototype.layoutContent=function(){return e.__super__.layoutContent.call(this),this.label.x=-this.label.width/2,this.label.y=.6*-this.contentSize.halfHeight+this.label.textHeight/2,this.button1.x=this.contentSize.halfWidth/3,this.button1.y=.15*this.contentSize.halfHeight,this.button2.x=-this.contentSize.halfWidth/3,this.button2.y=.15*this.contentSize.halfHeight,this.button3.x=0,this.button3.y=.5*this.contentSize.halfHeight,this.settingsButton.x=this.contentSize.halfWidth-this.settingsButton.width,this.settingsButton.y=-this.contentSize.halfHeight+this.settingsButton.height+100},e.prototype.show=function(){return e.__super__.show.call(this),h5branding.google.sendScreenView("button_game_pause")},e.prototype.resume=function(){return this.game.level.togglePause()},e.prototype.quit=function(){return this.level.quit()},e.prototype.retry=function(){return this.level.retry()},e}(e)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/CursorToggle",["../Common/Button"],function(c){"use strict";return function(c){function d(b){this.setChar=a(this.setChar,this),this.clicked=a(this.clicked,this),this.update=a(this.update,this),this.getAngle=a(this.getAngle,this),this.normalizeAngle=a(this.normalizeAngle,this),this.layoutContent=a(this.layoutContent,this),this.init=a(this.init,this),d.__super__.constructor.call(this,b,0,0,"PopupAssets","CursorToggle0000",this.clicked),this.game.layers.ui.addChild(this),this.anchor.set(.5),this.y=this.game.realHeight/2,this.onChange=new Phaser.Signal,this.setChar("wg"),this.vtheta=0,this.atheta=0,this.rotation=Math.PI}return b(d,c),d.prototype.init=function(){return requestAnimationFrame(function(a){return function(){var b;return b=a.game.level.pers2.sprite,new box2d.b2Vec2(b.world.x-a.world.x,b.world.y-a.world.y),a.rotation=a.getAngle()}}(this))},d.prototype.layoutContent=function(){return this.y=this.game.realHeight/2},d.prototype.normalizeAngle=function(a){for(;a>2*Math.PI;)a-=2*Math.PI;for(;a<0;)a+=2*Math.PI;return a},d.prototype.getAngle=function(){var a,b,c;return"fb"===this.current?(b=this.game.level.pers1.sprite,a=0):(b=this.game.level.pers2.sprite,a=Math.PI),c=new box2d.b2Vec2(b.world.x-this.world.x,b.world.y-this.world.y),this.normalizeAngle(a+Math.atan2(c.y,c.x))},d.prototype.update=function(){var a,b,c;return b=.5,c=this.getAngle(),a=c-this.rotation,a>Math.PI&&(a-=2*Math.PI),a<-Math.PI&&(a+=2*Math.PI),this.atheta=.1*a,this.vtheta+=this.atheta,this.vtheta*=b,this.rotation+=this.vtheta,this.rotation=this.normalizeAngle(this.rotation)},d.prototype.clicked=function(){return console.log("toggle"),"wg"===this.current?(this.setChar("fb"),this.game.level.sounds.charToggle1.play()):(this.setChar("wg"),this.game.level.sounds.charToggle2.play())},d.prototype.setChar=function(a,b){if(null==b&&(b=null),null==b||!this.game.input.hitTest(this,b.center,new Phaser.Point))return this.current!==a?(this.current=a,this.onChange.dispatch(this.current)):void 0},d}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Clock",["./IngameMenu","../Common/StoneButton","Phaser"],function(c,d){"use strict";return function(c){function d(b,c,e){this.getElapsedSeconds=a(this.getElapsedSeconds,this),this.resume=a(this.resume,this),this.stop=a(this.stop,this),this.pause=a(this.pause,this),this.update=a(this.update,this),this.start=a(this.start,this);var f;d.__super__.constructor.call(this,b,c,e,"TempleAssets","Clock0000"),this.text=f=b.make.bitmapText(0,0,"font_en","00:00",24),f.anchor.set(0),f.x=-this.text.textWidth/2,f.y=-this.height/2+this.text.textHeight+20,this.addChild(f),this.text.text=this.game.secondsToString(0)}return b(d,c),d.prototype.start=function(){if(null!=this.game)return this.startTime=this.game.time.now},d.prototype.update=function(){var a;if(null!=this.startTime&&!this.stopped&&null==this.pauseTime)return a=this.getElapsedSeconds(),this.text.text=this.game.secondsToString(a),this.text.x=-this.text.textWidth/2,this.text.y=-this.height/2+this.text.textHeight+20},d.prototype.pause=function(){if(null==this.pauseTime)return this.pauseTime=this.game.time.now},d.prototype.stop=function(){return this.stopped=!0},d.prototype.resume=function(){return this.startTime=this.startTime+(this.game.time.now-this.pauseTime),this.pauseTime=null},d.prototype.getElapsedSeconds=function(){return Math.round((this.game.time.now-this.startTime)/1e3)},d}(Phaser.Sprite)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/LevelUI",["../Common/Button","./Clock","../Common/MuteButton","Phaser"],function(c,d,e){"use strict";return function(e){function f(b,e){this.pauseClicked=a(this.pauseClicked,this),this.show=a(this.show,this),this.layoutContent=a(this.layoutContent,this);var g,h;f.__super__.constructor.call(this,b,0,0),this.game.layers.ui.addChild(this),this.pauseButton=h=new c(this.game,this.game.realWidth/2,-this.game.realHeight/2,"PopupAssets","PauseButton0000",this.pauseClicked),h.sprite.anchor.set(1,0),h.hitArea=new PIXI.Circle(-h.width/2,h.width/2,2*h.width),this.addChild(h),
|
||
this.clock=g=new d(this.game,0,-this.game.realHeight/2),g.anchor.set(.5,.05),this.addChild(g),this.visible=!1}return b(f,e),f.prototype.layoutContent=function(){return this.pauseButton.x=this.game.realWidth/2,this.pauseButton.y=-this.game.realHeight/2,this.clock.x=0,this.clock.y=-this.game.realHeight/2},f.prototype.show=function(){return this.visible=!0},f.prototype.pauseClicked=function(){return console.log("pause"),this.game.level.togglePause()},f}(Phaser.Group)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/FinishCounter",["../Common/StoneButton","Phaser"],function(c){"use strict";return function(c){function d(b,c,e){this.setAchieved=a(this.setAchieved,this);var f,g;d.__super__.constructor.call(this,b,0,0),e=this.game.make.sprite(0,0,"PopupAssets",e),e.anchor.set(.5,.5),e.x=-e.width/2,this.addChild(e),""!==c&&(g=this.game.make.bitmapText(0,0,this.game.lang.font,c,20),g.anchor.set(.5,.5),g.x=-e.width/2,g.y=40,this.addChild(g)),this.achieved=f=this.game.make.sprite(0,0,"PopupAssets","TickIcon0000"),f.anchor.set(.5,.5),f.x=e.width/2,f.visible=!1,this.addChild(f)}return b(d,c),d.prototype.setAchieved=function(a){return this.achieved.frameName=a?"TickIcon0000":"CrossIcon0000",this.achieved.visible=!0},d}(Phaser.Group)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/EndMenu",["./IngameMenu","./FinishCounter","../Common/StoneButton","Phaser","h5ads"],function(c,d,e){"use strict";return function(f){function g(){return this.gotoMenu=a(this.gotoMenu,this),this.renderContent=a(this.renderContent,this),g.__super__.constructor.apply(this,arguments)}return b(g,f),g.prototype.renderContent=function(){var a,b,f,g,h,i,j,k,l,m,n,o;return j=new d(this.game,"","FinishIcon0000"),h=this.options.state.diamonds,i=this.options.data.totalDiamonds,g=new d(this.game,"","DiamondsIcon0000"),m="puzzle"===this.options.data.type?new d(this.game,"","SilverIcon0000"):new d(this.game,"","TimeIcon0000"),n=this.options.state.time,o="single"===this.game.settings.controls&&this.options.data.mobileTime||this.options.data.time,console.log("Time current: "+n),this.board.addChild(j),this.board.addChild(g),this.board.addChild(m),this.layoutContent=function(a){return function(){return c.prototype.layoutContent.call(a),j.x=-200,g.x=-200,m.x=-200,"puzzle"===a.options.data.type?(g.visible=!1,j.y=.5*-a.contentSize.halfHeight+60,m.y=.5*-a.contentSize.halfHeight+140):"dark"===a.options.data.type?(j.y=.5*-a.contentSize.halfHeight+60,m.y=.5*-a.contentSize.halfHeight+140,g.visible=!1):(j.y=.5*-a.contentSize.halfHeight+20,g.y=.5*-a.contentSize.halfHeight+100,m.y=.5*-a.contentSize.halfHeight+180)}}(this),this.layoutContent(),b=new e(this.game,0,this.contentSize.halfHeight-140,this.game.lang.locale("Continue"),this.gotoMenu),b.disable(),this.board.addChild(b),a=this.game.make.sprite(5,-60,"PopupAssets","popupArrow0000"),a.anchor.set(.5),this.board.addChild(a),l="puzzle"===this.options.data.type?"FinishStonePuzzle":"speed"===this.options.data.type?"FinishStoneSpeed":"dark"===this.options.data.type?"FinishStoneDark":"FinishStone",k=this.game.make.sprite(180,-60,"PopupAssets",l+"0000"),k.animations.add("to_1",Phaser.Animation.generateFrameNames(l,1,7,"",4),30,!1),k.animations.add("to_2",Phaser.Animation.generateFrameNames(l,8,14,"",4),30,!1),k.animations.add("to_3",Phaser.Animation.generateFrameNames(l,15,21,"",4),30,!1),k.anchor.set(.5),this.board.addChild(k),f=700,_.delay(function(c){return function(){if(j.setAchieved(!0),null!=c.game&&null!=c.game.level)return c.game.level.sounds.endPass.play(),_.delay(function(){if(null!=c.game&&null!=c.game.level)return c.game.level.sounds.endPass.play(),g.setAchieved(h>=i),_.delay(function(){if(null!=c.game&&null!=c.game.level)return c.game.level.sounds.endPass.play(),"puzzle"===c.options.data.type?m.setAchieved(c.options.state.silverDiamond>0):m.setAchieved(n<=o),_.delay(function(){if(null!=c.game&&null!=c.game.level)return c.game.level.sounds.endDiamond.play(),a.frameName="popupArrow0001",k.animations.play("to_"+c.options.state.stars),c.animationDone=!0,b.enable()},m.visible&&f)},g.visible&&f)},j.visible&&f)}}(this),f)},g.prototype.gotoMenu=function(){if(this.animationDone)return this.game.state.fade("levelMenu",!0,!1,this.game.currentTemple)},g}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Common/RewardedUnavailableMenu",["../Level/IngameMenu","../Common/StoneButton","Phaser"],function(c,d){"use strict";return function(c){function e(b,c){this.close=a(this.close,this),this.renderContent=a(this.renderContent,this),e.__super__.constructor.call(this,b,c),this.onClose=new Phaser.Signal}return b(e,c),e.prototype.renderContent=function(){var a,b;return h5branding.google.sendScreenView("rewarded_unavailable_menu"),b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/2+30,this.game.lang.font,this.game.lang.locale("rewarded_unavailable1"),26),b.anchor.set(.5),this.board.addChild(b),b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/2+120,this.game.lang.font,this.game.lang.locale("rewarded_unavailable2"),26),b.anchor.set(.5),this.board.addChild(b),a=new d(this.game,0,1.1*this.contentSize.halfHeight/2,this.game.lang.locale("rewarded_close"),this.close),a.anchor.set(.5),this.board.addChild(a)},e.prototype.close=function(){return this.hide(),_.delay(function(a){return function(){return a.onClose.dispatch()}}(this),1e3)},e}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/GameOverMenu",["require","Phaser","h5ads","./IngameMenu","../Common/RewardedUnavailableMenu","../Common/StoneButton"],function(c){var d,e,f,g;return c("Phaser"),g=c("h5ads"),e=c("./IngameMenu"),f=c("../Common/RewardedUnavailableMenu"),d=c("../Common/StoneButton"),function(c){function e(){return this.close=a(this.close,this),this.onUnavailableClose=a(this.onUnavailableClose,this),this.showRewardedUnavailable=a(this.showRewardedUnavailable,this),this.skip=a(this.skip,this),this.endRewardedAd=a(this.endRewardedAd,this),this.showRewardedAd=a(this.showRewardedAd,this),this.retry=a(this.retry,this),this.gotoMenu=a(this.gotoMenu,this),this.layoutContent=a(this.layoutContent,this),this.renderContent=a(this.renderContent,this),e.__super__.constructor.apply(this,arguments)}return b(e,c),e.prototype.renderContent=function(){var a,b;return h5branding.google.sendScreenView("gameover_menu"),this.label=b=this.game.make.bitmapText(0,0,this.game.lang.font,this.game.lang.locale("Game Over"),36),b.anchor.set(0),b.x=-b.width/2,b.y=.5*-this.contentSize.halfHeight+b.textHeight/2,this.board.addChild(b),h5branding.Branding.analyticsEnabled&&g.adWrapper.adAvailable(g.AdType.rewarded)?(b=this.game.make.bitmapText(0,0,this.game.lang.font,this.game.lang.locale("SkipText"),36),b.anchor.set(0),b.fontSize=14,b.x=-b.width/2,b.y=.15*-this.contentSize.halfHeight+b.textHeight/2,this.board.addChild(b),a=new d(this.game,.6*-this.contentSize.halfWidth,.4*this.contentSize.halfHeight,this.game.lang.locale("Menu"),this.gotoMenu),a.anchor.set(.5),this.board.addChild(a),a=new d(this.game,0,.4*this.contentSize.halfHeight,this.game.lang.locale("Retry"),this.retry),a.anchor.set(.5),this.board.addChild(a),this.skipButton=a=new d(this.game,.6*this.contentSize.halfWidth,.4*this.contentSize.halfHeight,this.game.lang.locale("Skip"),this.showRewardedAd),a.anchor.set(.5),this.board.addChild(a)):(a=new d(this.game,.4*-this.contentSize.halfWidth,.4*this.contentSize.halfHeight,this.game.lang.locale("Menu"),this.gotoMenu),a.anchor.set(.5),this.board.addChild(a),a=new d(this.game,.4*this.contentSize.halfWidth,.4*this.contentSize.halfHeight,this.game.lang.locale("Retry"),this.retry),a.anchor.set(.5),this.board.addChild(a))},e.prototype.layoutContent=function(){return e.__super__.layoutContent.call(this),this.label.x=-this.label.width/2,this.label.y=.5*-this.contentSize.halfHeight+this.label.textHeight/2},e.prototype.gotoMenu=function(){return this.game.state.fade("levelMenu",!0,!1,this.game.currentTemple)},e.prototype.retry=function(){return this.game.level.retry()},e.prototype.showRewardedAd=function(){if(!this.blockRewarded)return this.blockRewarded=!0,h5branding.google.sendScreenView("advertisement_skip_level_rewarded"),g.adWrapper.addListener(g.AdEvents.AD_REWARDED,this.endRewardedAd),g.adWrapper.addListener(g.AdEvents.CONTENT_RESUMED,this.showRewardedUnavailable),g.adWrapper.showAd(g.AdType.rewarded)},e.prototype.endRewardedAd=function(){return g.adWrapper.removeAllListeners(g.AdEvents.AD_REWARDED),g.adWrapper.removeAllListeners(g.AdEvents.CONTENT_RESUMED),g.adWrapper.preloadAd(g.AdType.rewarded),this.skip()},e.prototype.skip=function(){return this.options.data.skipped=!0,this.game.progress.process(),this.gotoMenu()},e.prototype.showRewardedUnavailable=function(){return g.adWrapper.removeAllListeners(g.AdEvents.AD_REWARDED),g.adWrapper.removeAllListeners(g.AdEvents.CONTENT_RESUMED),this.menu=new f(this.game),this.menu.show(),this.menu.onClose.add(this.onUnavailableClose),this.skipButton.alpha=.5},e.prototype.onUnavailableClose=function(){return h5branding.google.sendScreenView("gameover_menu")},e.prototype.close=function(){return g.adWrapper.removeAllListeners(g.AdEvents.AD_REWARDED),g.adWrapper.removeAllListeners(g.AdEvents.CONTENT_RESUMED),e.__super__.close.apply(this,arguments).close()},e}(e)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/End",["./Level/EndMenu","./Level/GameOverMenu"],function(c,d){"use strict";return function(e){function f(){return this.shutdown=a(this.shutdown,this),this.pauseUpdate=a(this.pauseUpdate,this),this.layoutContent=a(this.layoutContent,this),this.create=a(this.create,this),this.init=a(this.init,this),f.__super__.constructor.apply(this,arguments)}return b(f,e),f.prototype.init=function(a){return this.levelState=a},f.prototype.create=function(){return this.levelState.success?(this.game.progress.update(this.levelState),this.menu=new c(this.game,this.levelState),this.menu.show()):(this.menu=new d(this.game,this.levelState),this.menu.show(),this.restartKey=this.game.input.keyboard.addKey(Phaser.Keyboard.R),this.restartKey.onDown.add(this.levelState.retry))},f.prototype.layoutContent=function(){if(null!=this.menu.layoutContent)return this.menu.layoutContent()},f.prototype.pauseUpdate=function(){return this.menu.update(),this.game.tweens.update()},f.prototype.shutdown=function(){return console.log("shuting down end, with levelstate ",this.game.state.states.level),this.game.state.states.level.killAll()},f}(Phaser.State)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Level/Level",["require","box2d","States/Level/Devices/_define","hammer","outlineFilter","inlineFilter","shadowFilter","bevelFilter","colorMatrix","./Ground","./character","./MechManager","./CameraManager","./PauseMenu","./CursorToggle","./LevelUI","States/End","../Common/Navies"],function(c){var d,e,f,g,h,i,j,k,l;return c("box2d"),c("States/Level/Devices/_define"),c("hammer"),c("outlineFilter"),c("inlineFilter"),c("shadowFilter"),c("bevelFilter"),c("colorMatrix"),h=c("./Ground"),e=c("./character"),j=c("./MechManager"),d=c("./CameraManager"),l=c("./PauseMenu"),f=c("./CursorToggle"),i=c("./LevelUI"),g=c("States/End"),k=c("../Common/Navies"),function(c){function m(){this.quit=a(this.quit,this),this.gameOver=a(this.gameOver,this),this.retry=a(this.retry,this),this.updateDust=a(this.updateDust,this),this.updateTutorial=a(this.updateTutorial,this),this.update=a(this.update,this),this.gameFinish=a(this.gameFinish,this),this.animateFinish=a(this.animateFinish,this),this.checkEndGame=a(this.checkEndGame,this),this.updateMusic=a(this.updateMusic,this),this.setupCursorToggle=a(this.setupCursorToggle,this),this.onSettingChange=a(this.onSettingChange,this),this.createCharObjects=a(this.createCharObjects,this),this.createObjects=a(this.createObjects,this),this.fillDustLayer=a(this.fillDustLayer,this),this.updateDarkness=a(this.updateDarkness,this),this.setupDarkness=a(this.setupDarkness,this),this.setupLayers=a(this.setupLayers,this),this.pauseUpdate=a(this.pauseUpdate,this),this.togglePause=a(this.togglePause,this),this.startLevel=a(this.startLevel,this),this.start=a(this.start,this),this.layoutContent=a(this.layoutContent,this),this.loadComplete=a(this.loadComplete,this),this.setupTutorial=a(this.setupTutorial,this),this.parseMapPropper=a(this.parseMapPropper,this),this.killAll=a(this.killAll,this),this.shutdown=a(this.shutdown,this),this.decodeAudio=a(this.decodeAudio,this),this.preloadAudioFiles=a(this.preloadAudioFiles,this),this.sendScreenView=a(this.sendScreenView,this),this.baseLoadComplete=a(this.baseLoadComplete,this),this.create=a(this.create,this),this.init=a(this.init,this),this.onReady=new Phaser.Signal,m.__super__.constructor.call(this)}return b(m,c),m.prototype.useDust=!0,m.prototype.init=function(a){return this.levelPath="data/"+a.filename,this.levelData=a,this.levelState={diamonds:{red:0,blue:0,silver:0},time:1/0},this.game.time.advancedTiming=!0,this.game.sound.mute=!this.game.settings.fx},m.prototype.create=function(){this.game.load.tilemap("map",this.levelPath,null,Phaser.Tilemap.TILED_JSON),this.game.load.onLoadComplete.addOnce(this.baseLoadComplete,this),this.game.load.start(),this.sendScreenView(),this.game.SideBanners.destroyBanners()},m.prototype.baseLoadComplete=function(){_.defer(function(a){return function(){var b;return a.mapData=a.parseMapPropper(),b="assets/atlasses/Temples/"+a.game.currentTemple.id,a.game.load.atlasJSONArray("TempleAssets",b+"/TempleAssets.png",b+"/TempleAssets.json"),a.preloadAudioFiles(),a.game.load.onLoadComplete.addOnce(a.loadComplete,a),a.game.load.start()}}(this))},m.prototype.sendScreenView=function(){return h5branding.google.sendScreenView("gameplay")},m.prototype.preloadAudioFiles=function(){var a,b,c,d,e,f,g,h,i,k,l,m,n,o,p,q;for("dark"===this.levelData.type?(h="levelMusic_dark",k="levelMusicOver",i="levelMusicFinish"):"speed"===this.levelData.type?(h="levelMusic_speed",k="levelMusicOver",i="levelMusicFinish_speed"):(h="levelMusic",k="levelMusicOver",i="levelMusicFinish"),q={levelMusic:h,levelMusicOver:k,levelMusicFinish:i},this.sounds=[],this.sounds=this.sounds.concat(["levelMusic","levelMusicOver","levelMusicFinish","charToggle1","charToggle2","endPass","endFail","endDiamond","jump_fb","jump_wg","waterSteps","iceSteps_fb","iceSteps_wg","death","diamond","door","freeze","melt"]),m=this.mapData.objects.Objects,d=0,f=m.length;d<f;d++)l=m[d],a=j.className(l.type),null!=a?(b=null!=a.prototype.sounds&&a.prototype.sounds()||[],Array.isArray(b)||[b],this.sounds=this.sounds.concat(b)):console.warn("Object type "+l.type+" not found!");for(this.sounds=_.uniq(this.sounds),n=this.sounds,o=[],e=0,g=n.length;e<g;e++)p=n[e],c=(q[p]||p).charAt(0).toUpperCase()+(q[p]||p).slice(1),o.push(this.game.load.audio(p,"assets/audio/"+c+".mp3"));return o},m.prototype.decodeAudio=function(a){var b,c,d,e,f;for(f={},d=this.sounds,b=0,c=d.length;b<c;b++)e=d[b],f[e]=this.game.add.audio(e);return this.sounds=f,this.game.sound.setDecodedCallback(_.map(this.sounds),function(a){return function(){if(a.game.settings.music)return a.sounds.levelMusic.loop=!0,a.sounds.levelMusic.play()}}(this),this),a()},m.prototype.shutdown=function(){var a,b,c,d,e;if(this.pers1.destroy(!0),this.pers2.destroy(!0),this.door1.destroy(!0),this.door2.destroy(!0),this.camManager.destroy(),null!=this.darknessBmd&&this.darkness.events.onRemovedFromGroup.add(function(a){return function(){return a.darknessBmd.destroy()}}(this)),_.each(this.objects,function(a){return a.destroy(!0)}),_.each(this.game.layers,function(a){return a.update=function(a){return function(){}}()}),this.game.settingsSignal.remove(this.onSettingChange),null!=this.cursorToggle&&(this.game.TouchManager.unregister(this.pers1.bodySprite,"tap"),this.game.TouchManager.unregister(this.pers2.bodySprite,"tap")),null!=this.navies){for(d=this.navies,e=[],a=0,b=d.length;a<b;a++)c=d[a],e.push(c.destroy(!0));return e}},m.prototype.killAll=function(){if(null!=this.game)return this.game.physics.box2d.paused=!0,this.game.paused=!0,this.ui.clock.destroy(!0),this.ui.destroy(!0),_.each(this.sounds,function(a){return function(a){return a.destroy()}}())},m.prototype.parseMapPropper=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;for(g=this.game.cache.getTilemapData("map").data,a=[],i=[],l=g.tilesets,b=0,d=l.length;b<d;b++)p=l[b],null!=p.source&&(p.src=p.source,h=p.src.split("/").pop().replace(".json",""),delete p.source,"Ground"===h?a.push(p):i.push(p));for(g.tilesets=a,m=g.tilesets,c=0,e=m.length;c<e;c++)p=m[c],null!=p.src&&"Ground"===(h=p.src.split("/").pop().replace(".json",""))&&_.extend(p,this.game.cache.getJSON(h));for(q=Phaser.TilemapParser.parseTiledJSON(g),g.tilesets=a.concat(i),n=g.tilesets,k=0,f=n.length;k<f;k++)p=n[k],null!=p.src&&"Ground"!==(h=p.src.split("/").pop().replace(".json",""))&&q.tilesets.push(_.extend(p,this.game.cache.getJSON(h)));return j=function(a){return function(){var a,b,c,d,e,f,g;for(g={},e=q.tilesets,d=0,b=e.length;d<b;d++)if(f=e[d],null!=f.tiles)for(a in f.tiles)c=f.tileproperties[a],g[+f.firstgid+ +a]={type:f.tiles[a].type,properties:c};return g}}(),r=j(),o=function(a){return function(a){var b,c,d,e;for(e=[],d=0,b=a.length;d<b;d++)c=a[d],null!=c.gid&&null!=r[+c.gid]?(""===c.type&&delete c.type,e.push(_.deepObjectExtend(c,r[+c.gid]))):e.push(void 0);return e}}(),o(q.objects.Objects),o(q.objects.Chars),q},m.prototype.setupTutorial=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;if(f=this.game.cache.getTilemapData("map").data,null!=(o=_.findWhere(f.layers,{name:"Tutorial_"+this.game.settings.controls})||_.findWhere(f.layers,{name:"Tutorial"}))){for(n={},i=o.objects,c=0,e=i.length;c<e;c++)h=i[c],n[g=h.properties.id]||(n[g]={}),null!=h.text?((a=n[h.properties.id]).texts||(a.texts=[]),n[h.properties.id].texts.push(h)):((b=n[h.properties.id]).rects||(b.rects=[]),n[h.properties.id].rects.push(new Phaser.Rectangle(h.x,h.y,h.width,h.height)));this.tutorialTexts=[],j=[];for(d in n)l=n[d],console.log("text object",l),j.push(function(){var a,b,c,d;for(c=l.texts,d=[],a=0,b=c.length;a<b;a++)k=c[a],m=this.game.make.bitmapText(k.x,k.y,this.game.lang.font,this.game.lang.locale(k.text.text),18,k.text.halign),m.maxWidth=k.width,m.cacheAsBitmap=!0,m.visible=!1,m.rects=l.rects,this.game.layers.tutorial.addChild(m),d.push(this.tutorialTexts.push(m));return d}.call(this));return j}},m.prototype.loadComplete=function(){var a,b,c,e,f,g,m,n,o,p;for(this.loadCompleted=!0,this.game.clearBeforeRender=!1,this.game.level=this,this.setupLayers(),$('<div style="top:0; left: 0; width: 100%; height: 100%; position:absolute"></div>'),this.game.config.enableDebug&&$(window).on("keydown",function(a){return function(b){if(81===b.keyCode)return a.debug=!a.debug}}(this)),this.showfps=this.game.config.showFps,this.game.MechManager=new j(this.game),this.game.physics.startSystem(Phaser.Physics.BOX2D),this.game.physics.box2d.setPTMRatio(32),this.game.physics.setBoundsToWorld=function(a){return function(){}}(),a=new h(this.game,this.mapData),this.ground=a,this.size={width:a.options.width,height:a.options.height},this.game.physics.box2d.gravity.y=1e3,this.objects=this.createObjects(this.map,this.mapData.objects.Objects),this.createCharObjects(this.map,this.mapData.objects.Chars),o=_.values(this.game.physics.box2d.walls),b=0,e=o.length;b<e;b++)p=o[b],p.setBodyContactCallback(this.pers1,function(a){return function(b,c,d,e,f,g){return console.log("char1 is dead"),a.pers1.kill()}}(this),this),p.setBodyContactCallback(this.pers2,function(a){return function(b,c,d,e,f,g){return console.log("char2 is dead"),a.pers2.kill()}}(this),this);if(this.useDust)for(n=a.getNaviesPoints(),this.navies=[],c=0,f=n.length;c<f;c++)m=n[c],g=new k(this.game,m.x,m.y,Math.floor(1+3*Math.random())),g.scale.set(.3+.7*Math.random()),this.game.layers.overGround.addChild(g),this.navies.push(g);this.useDust&&null!=_.find(this.objects,function(a){return"beamer"===a.options.type})&&this.fillDustLayer(),a.decorate(this.objects),this.setupDarkness(),this.setupTutorial(),this.pauseMenu=new l(this.game,this),this.pauseKey=this.game.input.keyboard.addKey(Phaser.Keyboard.P),this.pauseKey.onDown.add(this.togglePause),this.ui=new i(this.game,this),this.camManager=new d(this),this.root.alpha=0,requestAnimationFrame(function(a){return function(){if(a.game.stage.backgroundColor=0,a.onReady.dispatch(),a.root.alpha=1,a.game.layers.ui.alpha=1,a.ui.show(),null!=a.cursorToggle)return a.cursorToggle.init()}}(this)),this.game.physics.box2d.useElapsedTime=!0,this.game.physics.box2d.paused=!0,this.game.physics.box2d.update=function(){var a;if(!this.paused)return a=Math.min(.04,this.game.time.elapsed/1e3),this.world.Step(a,this.velocityIterations,this.positionIterations)},this.decodeAudio(function(a){return function(){return console.log("load completed"),a.startLevel()}}(this))},m.prototype.layoutContent=function(){if(this.ui.layoutContent(),this.pauseMenu.layoutContent(),null!=this.cursorToggle&&this.cursorToggle.layoutContent(),null!=this.pers1.cursors.layoutContent&&this.pers1.cursors.layoutContent(),null!=this.pers2.cursors.layoutContent)return this.pers2.cursors.layoutContent()},m.prototype.start=function(){},m.prototype.startLevel=function(){var a;for(this.game.time.addvancedTiming=!0,_.delay(function(a){return function(){if(a.game.time.suggestedFps<40)return a.useDust=!1,_.each(a.navies,function(a){return a.destroy()}),a.game.layers.dust.destroy()}}(this),3e3),this.levelStarted=!0,this.game.MechManager.resetStates(),this.game.physics.box2d.paused=!1,this.game.forceSingleUpdate=!1,a=0;a<=3;++a)this.game.updateLogic(this.game.time.desiredFpsMult);return this.game.updateRender(this.game.time.slowMotion*this.game.time.desiredFps),this.game.forceSingleUpdate=!0,this.game.physics.box2d.paused=!0,console.log("start timer, and whatever"),_.delay(function(a){return function(){return a.camManager.camFreeze=!1,_.delay(function(){if(a.restartKey=a.game.input.keyboard.addKey(Phaser.Keyboard.R),a.restartKey.onDown.add(a.retry),null!=a.game.physics.box2d)return a.ui.clock.start(),a.game.physics.box2d.paused=!1},400)}}(this),1600)},m.prototype.togglePause=function(){return this.game.paused=!this.game.paused,this.game.paused?(this.game.SideBanners.resize(!1),this.root.alpha.cacheAsBitmap=!0,this.pauseMenu.show(),this.ui.clock.pause()):(this.game.SideBanners.destroyBanners(),this.sendScreenView(),this.root.alpha.cacheAsBitmap=!1,this.root.alpha=1,this.pauseMenu.hide(),this.ui.clock.resume())},m.prototype.pauseUpdate=function(){if(this.loadCompleted)return this.pauseMenu.update(),null!=this.pauseMenu.settingsMenu&&this.pauseMenu.settingsMenu.update(),this.game.tweens.update(),this.camManager.update()},m.prototype.setupLayers=function(){var a,b;return b={},this.root=this.game.make.group(0,0),a=function(a){return function(c){return b[c]=a.game.make.group(),b[c].name=c,a.root.addChild(b[c])}}(this),a("background"),a("tutorial"),a("underGround"),a("lights"),a("ground"),a("overGround"),a("chars"),a("overChars"),a("decorations"),a("liquids"),b.liquids.update=function(){return _.each(this.children,function(a){return a.update()})},this.game.add.existing(this.root),b.ui=this.game.make.group(),b.ui.alpha=0,this.game.add.existing(b.ui),b.ui.update=function(){return _.each(this.children,function(a){return a.update()})},b.dust=this.game.make.group(),b.dust.sources=[],this.root.addChild(b.dust),this.game.layers=b},m.prototype.setupDarkness=function(){var a,b;if(null!=this.levelData.type&&"dark"===this.levelData.type)return this.darknessBmd=a=this.game.add.bitmapData(this.size.width+64,this.size.height+64),a.offset={x:32,y:32},this.darkness=b=this.game.make.sprite(-32,-32,a),b.blendMode=Phaser.blendModes.MULTIPLY,this.game.layers.darkGradients=this.game.make.group(0,0),this.root.addChild(this.game.layers.darkGradients),this.root.addChild(b),this.updateDarkness(a),this.game.layers.darkGradients.update=function(b){return function(){if(null!=b.game.physics)return b.updateDarkness(a)}}(this)},m.prototype.updateDarkness=function(a){var b,c,d,e;for(a.ctx.globalCompositeOperation="source-over",a.ctx.beginPath(),a.ctx.rect(0,0,this.size.width+64,this.size.height+64),a.ctx.fillStyle="#000000",a.ctx.fill(),this.pers1.drawDarkMask(a),this.pers2.drawDarkMask(a),e=this.objects,b=0,c=e.length;b<c;b++)d=e[b],null!=d.drawDarkMask&&d.drawDarkMask(a);return a.dirty=!0},m.prototype.fillDustLayer=function(){var a,b,c,d;for(d=this.game.layers.dust,a=0,b=Math.ceil(this.size.width/20);0<=b?a<=b:a>=b;0<=b?++a:--a)c=this.game.make.sprite(Math.random()*this.size.width,Math.random()*this.size.height,"GroundAssets","BeamDust0000"),c.rotation=180*Math.random(),d.add(c);return d.maskGraphics=this.game.make.graphics(0,0),this.root.addChild(d.maskGraphics),d.mask=d.maskGraphics,d},m.prototype.createObjects=function(a,b){var c,d,e,f,g,h;for(e=[],f=0,g=b.length;f<g;f++)h=b[f],console.log("create",h.name,h.type),c=j.className(h.type),null!=c?(d=new c(this.game,h),e.push(d)):console.warn("Object type "+h.type+" not found!");return this.game.MechManager.connectPortals(),e},m.prototype.createCharObjects=function(a,b){var c,d,f;for(this.totalDiamonds=0,c=0,d=b.length;c<d;c++)f=b[c],console.log("found char object",f.type),"char"===f.type&&(null==f.properties||"fb"===f.properties.char?(this.pers1=new e(this.game,f.x,f.y,"fb"),this.pers1.signal.add(this.checkEndGame)):"wg"===f.properties.char&&(this.pers2=new e(this.game,f.x,f.y,"wg"),this.pers2.signal.add(this.checkEndGame))),"door"===f.type&&(null==f.properties||"fb"===f.properties.char?(this.door1=new Devices.Door(this.game,f.x,f.y,"fb"),this.door1.signal.add(this.checkEndGame)):"wg"===f.properties.char&&(this.door2=new Devices.Door(this.game,f.x,f.y,"wg"),this.door2.signal.add(this.checkEndGame))),"diamond"===f.type&&(new Devices.Diamond(this.game,f.x,f.y,f.properties.char),"silver"!==f.properties.char&&this.totalDiamonds++);return this.setupCursorToggle(),this.game.settingsSignal.add(this.onSettingChange)},m.prototype.onSettingChange=function(a){if("controls"===a)return null!=this.cursorToggle&&(this.cursorToggle.destroy(),this.cursorToggle=null),this.setupCursorToggle()},m.prototype.setupCursorToggle=function(){if("single"===this.game.settings.controls)return this.game.TouchManager.register(this.pers1.bodySprite,"tap",function(a){return function(b){return a.cursorToggle.setChar("fb",b)}}(this)),this.game.TouchManager.register(this.pers2.bodySprite,"tap",function(a){return function(b){return a.cursorToggle.setChar("wg",b)}}(this)),this.cursorToggle=new f(this.game),this.game.layers.ui.addChild(this.cursorToggle),this.cursorToggle.onChange.add(function(a){return function(b){return"fb"===b?(a.pers1.cursors.show(),a.pers2.cursors.hide()):(a.pers1.cursors.hide(),a.pers2.cursors.show())}}(this))},m.prototype.updateMusic=function(){if(null!=this.sounds.levelMusic&&this.sounds.levelMusic.stop(),this.game.settings.music)return this.sounds.levelMusic.play()},m.prototype.checkEndGame=function(){if(!this.ended)return this.door1.isUp&&this.door2.isUp&&(this.ended=!0,this.game.physics.box2d.paused=!0,this.animateFinish()),this.pers1.isDead||this.pers2.isDead?(this.ended=!0,this.game.physics.box2d.paused=!0,this.gameOver()):void 0},m.prototype.animateFinish=function(){return this.game.level.sounds.levelMusic.stop(),this.game.level.sounds.levelMusicFinish.play(),this.pers1.animateStairs(this.door1),this.pers2.animateStairs(this.door2),_.delay(function(a){return function(){return a.gameFinish()}}(this),1600)},m.prototype.gameFinish=function(){return this.game.SideBanners.resize(!1),this.levelState.diamonds=this.pers1.data.diamonds+this.pers2.data.diamonds,this.levelState.silverDiamond=this.pers1.data.silverDiamond+this.pers2.data.silverDiamond,this.levelState.time=this.ui.clock.getElapsedSeconds(),this.ui.clock.stop(),h5branding.gameanalytics.addProgressionEvent(h5branding.EGAProgressionStatus.Complete,this.levelData.id.toString()),this.levelData.totalDiamonds=this.totalDiamonds,this.game.state.add("endGame",g),this.game.state.start("endGame",!1,!1,{success:!0,data:this.levelData,state:this.levelState,retry:this.retry})},m.prototype.update=function(){if(this.loadCompleted)return this.showfps&&$("#debug-fps").html(this.game.time.fps),this.debug&&this.game.debug.box2dWorld(),this.ui.update(),this.useDust&&this.updateDust(),null!=this.tutorialTexts&&this.updateTutorial(),this.camManager.update()},m.prototype.updateTutorial=function(){var a,b,c,d,e,f,g,h,i,j,k;for(f=this.tutorialTexts,h=[],a=0,c=f.length;a<c;a++){for(j=f[a],k=!1,g=j.rects,b=0,d=g.length;b<d;b++)e=g[b],(e.contains(this.pers1.sprite.x,this.pers1.sprite.y)||e.contains(this.pers2.sprite.x,this.pers2.sprite.y))&&(k=!0);k&&!j.shown&&(j.visible=!0,j.shown=!0,j.alpha=0,this.game.add.tween(j).to({alpha:1},400,"Linear",!0)),!k&&j.shown?(j.shown=!1,j.alpha=1,i=this.game.add.tween(j).to({alpha:0},400,"Linear",!0),h.push(i.onComplete.add(function(a){return function(a){return a.visible=!1}}()))):h.push(void 0)}return h},m.prototype.updateDust=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;if(null!=this.game.layers.dust&&this.game.layers.dust.sources.length>0){for(i=!1,j=this.game.layers.dust.sources,c=0,e=j.length;c<e;c++)o=j[c],o.dirty&&(i=!0);if(i){for(this.game.layers.dust.maskGraphics.clear(),this.game.layers.dust.maskGraphics.lineStyle(40,0,1),a=!0,k=this.game.layers.dust.sources,d=0,f=k.length;d<f;d++)o=k[d],null!=o.points&&o.points.length>0&&(a=!1,o.drawBeam(this.game.layers.dust.maskGraphics,o.points));this.game.layers.dust.visible=!a}for(l=this.game.layers.dust.children,m=[],b=h=0,g=l.length;h<g;b=++h)n=l[b],n.angle+=.002*(b%2*2-1),m.push(n.anchor.set(Math.sin(n.angle),Math.cos(n.angle)));return m}},m.prototype.retry=function(){return this.game.level.sounds.levelMusic.stop(),h5branding.gameanalytics.addProgressionEvent(h5branding.EGAProgressionStatus.Start,this.levelData.id.toString()),this.game.state.add("level",m),this.game.state.fade("level",!0,!1,this.levelData),this.killAll()},m.prototype.gameOver=function(){return this.game.SideBanners.resize(!1),this.ui.clock.stop(),h5branding.gameanalytics.addProgressionEvent(h5branding.EGAProgressionStatus.Fail,this.levelData.id.toString()),this.game.state.add("endGame",g),this.game.state.start("endGame",!1,!1,{success:!1,data:this.levelData,state:this.levelState,retry:this.retry})},m.prototype.quit=function(){return this.game.level.sounds.levelMusic.stop(),h5branding.gameanalytics.addProgressionEvent(h5branding.EGAProgressionStatus.Fail,this.levelData.id.toString()),this.game.state.fade("levelMenu",!0,!1,this.game.currentTemple),this.killAll()},m}(Phaser.State)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e])
|
||
;return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Common/BackButton",["./Button","Phaser"],function(b){"use strict";return function(b){function c(a,b,d,e,f){c.__super__.constructor.call(this,a,b,d,"MenuAssets",["BackButton0000","BackButton0001"],f,"pusher"),this.anchor.set(.5),this.label=a.make.bitmapText(0,0,this.game.lang.font,e,28),this.label.anchor.set(0),this.label.y=-this.label.textHeight/2-12,this.label.x=40,this.addChild(this.label)}return a(c,b),c}(b)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Buy/BuyMenu",["../Level/IngameMenu","../Common/StoneButton","Phaser"],function(c,d){"use strict";return function(c){function e(b,c){this.close=a(this.close,this),this.renderContent=a(this.renderContent,this),e.__super__.constructor.call(this,b,c),this.onClose=new Phaser.Signal}return b(e,c),e.prototype.renderContent=function(){var a,b;return b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/2,this.game.lang.font,this.game.lang.locale("unlock_all"),26),b.anchor.set(.5),this.board.addChild(b),a=new d(this.game,0,0,"1.19€",function(a){return function(){return store.order("elements_full")}}()),a.anchor.set(.5),this.board.addChild(a),a=new d(this.game,0,1.1*this.contentSize.halfHeight/2,this.game.lang.locale("Cancel"),this.close),a.anchor.set(.5),this.board.addChild(a)},e.prototype.close=function(){return this.hide(),_.delay(function(a){return function(){return a.onClose.dispatch()}}(this),1e3)},e}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Common/RewardedAdMenu",["require","Phaser","../Level/IngameMenu","../Common/StoneButton","./RewardedUnavailableMenu","h5ads"],function(c){var d,e,f,g;return c("Phaser"),e=c("../Level/IngameMenu"),d=c("../Common/StoneButton"),f=c("./RewardedUnavailableMenu"),g=c("h5ads"),function(c){function e(b,c){this.close=a(this.close,this),this.rewardedFailed=a(this.rewardedFailed,this),this.rewardedShown=a(this.rewardedShown,this),this.watchAd=a(this.watchAd,this),this.renderContent=a(this.renderContent,this),e.__super__.constructor.call(this,b,c),this.onClose=new Phaser.Signal,this.button=c.button,this.buttonClick=c.buttonClick}return b(e,c),e.prototype.renderContent=function(){var a,b;return b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/2+30,this.game.lang.font,this.game.lang.locale("rewarded_header1"),26),b.anchor.set(.5),this.board.addChild(b),b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/2+120,this.game.lang.font,this.game.lang.locale("rewarded_header2"),26),b.anchor.set(.5),this.board.addChild(b),a=new d(this.game,-this.contentSize.width/4,1.1*this.contentSize.halfHeight/2,this.game.lang.locale("rewarded_close"),this.close),a.anchor.set(.5),this.board.addChild(a),this.watchButton=a=new d(this.game,this.contentSize.width/4,1.1*this.contentSize.halfHeight/2,this.game.lang.locale("rewarded_watch"),this.watchAd),a.anchor.set(.5),this.board.addChild(a)},e.prototype.watchAd=function(){if(!this.debounceClick)return g.adWrapper.addListener(g.AdEvents.AD_REWARDED,this.rewardedShown),g.adWrapper.addListener(g.AdEvents.CONTENT_RESUMED,this.rewardedFailed),g.adWrapper.showAd(g.AdType.rewarded),this.watchButton.alpha=.5,this.debounceClick=!0},e.prototype.rewardedShown=function(){return g.adWrapper.removeAllListeners(g.AdEvents.AD_REWARDED),g.adWrapper.removeAllListeners(g.AdEvents.CONTENT_RESUMED),g.adWrapper.preloadAd(g.AdType.rewarded),this.button.data.rewarded=!0,this.buttonClick(this.button)},e.prototype.rewardedFailed=function(){return this.menu=new f(this.game),this.menu.show()},e.prototype.close=function(){return g.adWrapper.removeAllListeners(g.AdEvents.AD_REWARDED),g.adWrapper.removeAllListeners(g.AdEvents.CONTENT_RESUMED),this.hide(),_.delay(function(a){return function(){return a.onClose.dispatch()}}(this),1e3)},e}(e)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Common/SoftLockMenu",["../Level/IngameMenu","../Common/StoneButton","Phaser"],function(c,d){"use strict";return function(c){function e(b,c){this.close=a(this.close,this),this.renderContent=a(this.renderContent,this),e.__super__.constructor.call(this,b,c),this.onClose=new Phaser.Signal}return b(e,c),e.prototype.renderContent=function(){var a,b,c;return c=this.game.lang.locale("this")+" "+this.game.lang.locale(this.options.label)+" "+this.game.lang.locale("not_yet"),b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/2+30,this.game.lang.font,c,26),b.anchor.set(.5),this.board.addChild(b),b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/2+140,this.game.lang.font,this.game.lang.locale("complete_more"),22),b.anchor.set(.5),this.board.addChild(b),b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/2+200,this.game.lang.font,this.game.lang.locale("to_unlock"),22),b.anchor.set(.5),this.board.addChild(b),a=new d(this.game,0,1.1*this.contentSize.halfHeight/2,this.game.lang.locale("Ok!"),this.close),a.anchor.set(.5),this.board.addChild(a)},e.prototype.close=function(){return this.hide(),_.delay(function(a){return function(){return a.onClose.dispatch()}}(this),1e3)},e}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/LevelMenu/LevelMenuButtons",["require","Phaser","./LevelButton","States/Buy/BuyMenu","States/Common/RewardedAdMenu","States/Common/SoftLockMenu"],function(c){var d,e,f,g,h;return f=c("Phaser"),e=c("./LevelButton"),d=c("States/Buy/BuyMenu"),g=c("States/Common/RewardedAdMenu"),h=c("States/Common/SoftLockMenu"),function(c){function i(b,c){this.buttonClick=a(this.buttonClick,this),this.toggleNumbers=a(this.toggleNumbers,this),this.destroy=a(this.destroy,this),this.layoutContent=a(this.layoutContent,this),this.showPopup=a(this.showPopup,this),i.__super__.constructor.call(this,b),this.onClick=new f.Signal,this.templeData=c,this.currentMenu=null,this.addContent()}return b(i,c),i.prototype.addContent=function(){var a,b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F;for(j=.9*this.game.realHeight,D=Math.min(1.2*j,.9*this.game.realWidth),3,y=Math.min(j,D)<800?.5:.6,h=function(a){return function(a){return _.find(B.levels,function(b){return b._id===a})}}(),B=this.templeData,g=function(a){return function(b,c){var d,e,f,g,i,k,l,m,n,o,p,q,r;for(null==c&&(c=1),e=a.game.add.bitmapData(D,j),e.ctx.strokeStyle=a.templeData.color,e.ctx.lineWidth=16*y,o=B.edges,i=0,m=o.length;i<m;i++)f=o[i],q=h(f.source),r=h(f.target),(b||q.state+r.state>2)&&(e.ctx.moveTo(q.x*D,q.y*j),e.ctx.lineTo(r.x*D,r.y*j),e.ctx.stroke());for(p=B.levels,k=0,n=p.length;k<n;k++)l=p[k],(b||l.state>0||l.rewarded)&&(g="puzzle"===l.type?"DiamondPuzzle_Bkg_Mask":"speed"===l.type?"DiamondSpeed_Bkg_Mask":"dark"===l.type?"DiamondDark_Bkg_Mask":"Diamond_Bkg_Mask",d=a.game.make.sprite(0,0,"MenuAssets",g+"0000"),d.scale.set(y*c),e.draw(d,l.x*D-d.width/2,l.y*j-d.height/2));return a.game.make.image(0,0,e)}}(this),this.imageAll=g(!0),this.imageAllBig=g(!0,1.2),this.imageDone=g(!1),l=new f.Filter.BevelFilter(this.game,D,j,180,0,0,1),l.init(),m=new f.Filter.BevelFilter(this.game,D,j,200,0,0,-1),m.init(),t=new f.Filter.BevelFilter(this.game,D,j,200,0,1,1),t.init(),i=new f.Filter.ColorMatrix(this.game,D,j,16766496),a=new f.Filter.ColorMatrix(this.game,D,j,parseInt("0x"+this.templeData.color.replace("#",""))),u=new f.Filter.OutlineFilter(this.game,D,j,3,0),u.init(),d=function(a){return function(b,c){var d,e;return b.filters=c,d=new f.RenderTexture(a.game,D,j,"treeTexture",void 0,1),a.game.renderer.renderSession.resolution=1,d.renderRawXY(b,0,0,!0),a.game.renderer.renderSession.resolution=a.game.resolution,a.game.cache.addRenderTexture("treeTexture",d),e=a.game.make.sprite(0,0,a.game.cache.getRenderTexture("treeTexture").texture),e.x=-D/2,e.y=-j/2,a.addChild(e),e}}(this),d(this.imageAllBig,[t,a]),d(this.imageAll,[m,a,u]),d(this.imageDone,[l,i]),this.imageAll.key.destroy(),this.imageAllBig.key.destroy(),this.imageDone.key.destroy(),this.imageAll.destroy(),this.imageAllBig.destroy(),this.imageDone.destroy(),z=function(a){return function(a){return 0===a?"0000":1===a?"0000":2===a?"0001":3===a?"0002":4===a?"0003":void 0}}(),s=this.game.make.group(0,0),x=this.game.make.group(0,0),this.numbers=[],v=B.levels,k=n=0,p=v.length;n<p;k=++n)o=v[k],E=o.x*D-D/2,F=o.y*j-j/2,o.locked?(q=new f.Sprite(this.game,E,F,"MenuAssets","Lock0000"),q.scale.set(y),q.anchor.set(.5),this.addChild(q)):(c=o.state>0||o.rewarded?this.buttonClick:h5branding.Branding.analyticsEnabled?function(a){return function(b){return a.showPopup({type:"rewarded",button:b,buttonClick:a.buttonClick})}}(this):function(a){return function(){return a.showPopup({type:"softLock"})}}(this),b=new e(this.game,E,F,o.type,z(o.state),c),b.scale.set(y),b.anchor.set(.5),b.data=o,this.addChild(b),o.state>0&&o.isNew&&(r=new f.BitmapText(this.game,E,F,this.game.lang.font,this.game.lang.locale("new")),r.x+=40,r.y-=20,r.scale.set(y),r.anchor.set(.5),s.addChild(r)),0===o.state&&o.rewarded&&h5branding.Branding.analyticsEnabled&&(w=new f.BitmapText(this.game,E,F,this.game.lang.font,this.game.lang.locale("rewarded_play")),w.x+=40,w.y-=20,w.scale.set(y),w.anchor.set(.5),x.addChild(w))),A={font:"28px Arial",fill:"#ffffff",fontWeight:"bold",stroke:"#000000",strokeThickness:4},C=this.game.make.text(E,F+3,o.id,A),C.anchor.set(.5),C.cacheAsBitmap=!0,C.visible=!1,this.addChild(C),this.numbers.push(C);return this.addChild(s),this.addChild(x)},i.prototype.showPopup=function(a){var b;if(null===this.currentMenu)return console.log("show popup for",a.type),"rewarded"===a.type&&h5branding.Branding.analyticsEnabled?b=new g(this.game,{button:a.button,buttonClick:a.buttonClick}):"softLock"===a.type?b=new h(this.game,{label:"level"}):"buyTemple"===a.type&&(b=new d(this.game)),this.currentMenu=b,b.show(),b.onClose.add(function(a){return function(){return a.currentMenu.destroy(),a.currentMenu=null}}(this))},i.prototype.layoutContent=function(){if(null!=this.currentMenu&&null!=this.currentMenu.layoutContent)return this.currentMenu.layoutContent()},i.prototype.destroy=function(){return null!=this.currentMenu&&this.currentMenu.destroy(),i.__super__.destroy.apply(this,arguments)},i.prototype.toggleNumbers=function(a){var b,c,d,e,f;for(d=this.numbers,e=[],b=0,c=d.length;b<c;b++)f=d[b],e.push(f.visible=a);return e},i.prototype.buttonClick=function(a){return this.onClick.dispatch(a)},i}(f.Sprite)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/LevelMenu/LevelMenuGrid",["./LevelMenuButtons","Phaser"],function(b){"use strict";return function(b){function c(){return c.__super__.constructor.apply(this,arguments)}return a(c,b),c}(b)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/LevelMenu/LevelMenuTree",["./LevelMenuButtons","Phaser"],function(b){"use strict";return function(b){function c(){return c.__super__.constructor.apply(this,arguments)}return a(c,b),c}(b)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Buy/Buy",["./BuyMenu","Phaser"],function(c){"use strict";return function(d){function e(){return this.doKill=a(this.doKill,this),this.create=a(this.create,this),this.preload=a(this.preload,this),this.init=a(this.init,this),e.__super__.constructor.apply(this,arguments)}return b(e,d),e.prototype.init=function(a){return this.levelState=a},e.prototype.preload=function(){},e.prototype.create=function(){return this.menu=new c(this.game),this.menu.show(),this.menu.onClose.add(this.doKill)},e.prototype.doKill=function(){return this.menu.destroy(),_.delay(function(a){return function(){return a.shutdown()}}(this),1e3)},e}(Phaser.State)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Complete/GameCompleteMenu",["../Level/IngameMenu","../Common/StoneButton","Phaser"],function(c,d){"use strict";return function(c){function e(b,c){this.close=a(this.close,this),this.renderContent=a(this.renderContent,this),e.__super__.constructor.call(this,b,c),this.onClose=new Phaser.Signal}return b(e,c),e.prototype.renderContent=function(){var a,b;return b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/3,this.game.lang.font,this.game.lang.locale("congratulations"),36),b.anchor.set(.5),this.board.addChild(b),b=this.game.make.bitmapText(0,-this.contentSize.halfHeight/3+1.2*b.height,this.game.lang.font,this.game.lang.locale("you_completed"),28),b.anchor.set(.5),this.board.addChild(b),a=new d(this.game,0,this.contentSize.halfHeight/2,this.game.lang.locale("Ok"),this.close),a.anchor.set(.5),this.board.addChild(a)},e.prototype.close=function(){return this.hide(),_.delay(function(a){return function(){return a.onClose.dispatch()}}(this),1e3)},e}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Complete/Complete",["./GameCompleteMenu","Phaser"],function(c){"use strict";return function(d){function e(){return this.doKill=a(this.doKill,this),this.create=a(this.create,this),this.preload=a(this.preload,this),this.init=a(this.init,this),e.__super__.constructor.apply(this,arguments)}return b(e,d),e.prototype.init=function(a){return this.levelState=a},e.prototype.preload=function(){},e.prototype.create=function(){var a;return this.menu=new c(this.game,this.levelState),this.menu.show(),this.menu.onClose.add(this.doKill),this.emitter=a=this.game.add.emitter(0,-this.game.realHeight/2,200),a.width=this.game.realWidth,a.makeParticles("PopupAssets",["Confetti0000","Confetti0001","Confetti0002","Confetti0003"]),a.minParticleScale=.5,a.maxParticleScale=1,a.setYSpeed(100,200),a.setXSpeed(-5,5),a.minRotation=20,a.maxRotation=50,a.start(!1,2500,60,0)},e.prototype.doKill=function(){return this.menu.destroy(),this.emitter.on=!1,_.delay(function(a){return function(){return a.shutdown()}}(this),5200)},e}(Phaser.State)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/LevelMenu/LevelMenu",["require","Phaser","h5ads","../Common/UIState","./LevelButton","States/Level/Level","../Common/BackButton","../Common/Button","./LevelMenuGrid","./LevelMenuTree","./LevelMenuButtons","States/Buy/Buy","States/Complete/Complete"],function(c){var d,e,f,g,h,i,j,k,l;return c("Phaser"),l=c("h5ads"),k=c("../Common/UIState"),c("./LevelButton"),j=c("States/Level/Level"),d=c("../Common/BackButton"),e=c("../Common/Button"),h=c("./LevelMenuGrid"),i=c("./LevelMenuTree"),c("./LevelMenuButtons"),f=c("States/Buy/Buy"),g=c("States/Complete/Complete"),function(c){function k(){this.goBack=a(this.goBack,this),this.startLevel=a(this.startLevel,this),this.layoutContent=a(this.layoutContent,this),this.afterAddContent=a(this.afterAddContent,this),this.toggleNumbers=a(this.toggleNumbers,this),this.preload=a(this.preload,this),this.init=a(this.init,this),this.onReady=new Phaser.Signal,k.__super__.constructor.apply(this,arguments)}return b(k,c),k.prototype.init=function(a){return this.game.progress.get("temples")[0].levels[1].played||(this.game.progress.setPlayed(this.game.progress.get("temples")[0].levels[1]),this.game.state.add("level",j),this.game.state.start("level",!0,!1,this.game.progress.get("temples")[0].levels[1])),this.templeData=a,this.game.currentTemple=a},k.prototype.preload=function(){var a;return k.__super__.preload.apply(this,arguments),a="assets/atlasses/Temples/"+this.templeData.id,this.game.load.atlasJSONArray("TempleAssets",a+"/TempleAssets.png",a+"/TempleAssets.json"),h5branding.google.sendScreenView("level_menu")},k.prototype.addContent=function(){var a,b,c,f,g,h;return console.log("createing MenuState"),l.adWrapper.preloadAd(l.AdType.rewarded),this.game.stage.backgroundColor="#000000",h=this.game.realWidth,c=this.game.realHeight,this.bkg=b=this.game.make.tileSprite(-h/2,-c/2,h,c,"TempleAssets","MenuBackground0000"),this.root.addChild(b),"tree"===this.templeData.type?(this.back=a=new d(this.game,-h/2+100,c/2-100,this.game.lang.locale("Back"),this.goBack),this.root.addChild(this.back),this.showNumBtn=new e(this.game,0,0,"","",this.toggleNumbers),this.showNumBtn.numsVisible=!1,f=this.game.make.bitmapText(0,0,this.game.lang.font,this.game.lang.locale("level_numbers"),20),f.anchor.set(.5),this.showNumBtn.label=f,this.showNumBtn.addChild(f),this.root.addChild(this.showNumBtn)):(c>800?(g=this.game.make.bitmapText(0,-c/2+120,this.game.lang.font,this.game.lang.locale(this.templeData.label),38),g.anchor.set(0,.5),g.y=-c/2+120,g.x=0-g.width/2):(g=this.game.make.bitmapText(-h/2+50,-c/2+50,this.game.lang.font,this.game.lang.locale(this.templeData.label),32),g.anchor.set(0,.5),g.x=-h/2+50,g.y=-c/2+50),this.text=g,this.root.addChild(g),this.back=a=new d(this.game,-h/2+100,0,this.game.lang.locale("Back"),this.goBack),this.root.addChild(a)),this.afterAddContent(),this.onReady.dispatch()},k.prototype.toggleNumbers=function(){return this.showNumBtn.numsVisible=!this.showNumBtn.numsVisible,this.buttons.toggleNumbers(this.showNumBtn.numsVisible)},k.prototype.afterAddContent=function(){return this.game.progress.firstComplete&&(this.game.progress.firstComplete=!1,this.game.state.add("gameComplete",g),this.game.state.start("gameComplete",!1,!1,{success:!0})),("cordova"===this.game.gameConfig.target||this.game.config.simulateCordova)&&(this.unlockButton=new e(this.game,this.game.realWidth/2-100,this.game.realHeight/2-100,"MenuAssets","UnlockButton0000",function(a){return function(){return a.game.state.add("buy",f),a.game.state.start("buy",!1,!1,{success:!0})}}(this)),this.root.addChild(this.unlockButton)),this.layoutContent()},k.prototype.layoutContent=function(){var a,b,c;return k.__super__.layoutContent.call(this),c=this.game.realWidth,a=this.game.realHeight,this.bkg.width=c,this.bkg.height=a,this.bkg.x=-c/2,this.bkg.y=-a/2,null!=this.text&&(a>800?(this.text.fontSize=38,this.text.anchor.set(0,.5),this.text.y=-a/2+100,this.text.x=0-this.text.width/2):(this.text.fontSize=32,this.text.anchor.set(0,.5),this.text.x=-c/2+50,this.text.y=-a/2+50)),null!=this.back&&(this.templeData.type,b=this.back.sprite.height/4,this.back.x=-c/2+this.back.sprite.width/2+b,this.back.y=a/2-this.back.sprite.height/2-b),null!=this.unlockButton&&(this.unlockButton.x=this.game.realWidth/2-100,this.unlockButton.y=this.game.realHeight/2-100),null!=this.showNumBtn&&(this.showNumBtn.x=this.game.realWidth/2-this.showNumBtn.label.textWidth/2-40,this.showNumBtn.y=this.game.realHeight/2-this.showNumBtn.label.textHeight/2-40),null!=this.buttons&&this.buttons.destroy(),"tree"===this.templeData.type?(this.buttons=new i(this.game,this.templeData),this.buttons.onClick.add(this.startLevel),this.root.addChild(this.buttons)):(this.buttons=new h(this.game,this.templeData),this.buttons.onClick.add(this.startLevel),this.root.addChild(this.buttons))},k.prototype.startLevel=function(a){return this.game.progress.setPlayed(a.data),h5branding.gameanalytics.addProgressionEvent(h5branding.EGAProgressionStatus.Start,a.data.id.toString()),null!=this.game.menuMusic&&(this.game.menuMusic.fadeOut(500),this.game.menuMusic.onFadeComplete.add(function(a){return a.stop()})),this.game.state.add("level",j),this.game.state.fade("level",!0,!1,a.data,!a.data.rewarded)},k.prototype.goBack=function(){return"menu"!==this.game.state.current?this.game.state.fade("menu",!0,!1):console.log("dasfasdfa")},k}(k)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Credits/CreditsMenu",["../Level/IngameMenu","../Common/StoneButton","Phaser"],function(c,d){"use strict";return function(c){function e(b,c){this.show=a(this.show,this),this.close=a(this.close,this),this.renderContent=a(this.renderContent,this),e.__super__.constructor.call(this,b,c),this.onClose=new Phaser.Signal}return b(e,c),e.prototype.renderContent=function(){var a,b,c,e;return this.contentSize.halfWidth,b=this.contentSize.halfHeight,e=this.game.lang.locale("credits_to"),c=this.game.make.bitmapText(0,-160,this.game.lang.font,e,20,"center"),c.anchor.set(.5),this.board.addChild(c),e="Oslo Albet \r \r Anna Tamarit \r \r Jan Villanueva",c=this.game.make.bitmapText(0,-40,"font_en",e,24,"center"),c.anchor.set(.5),this.board.addChild(c),e="Septimania 2018",c=this.game.make.bitmapText(0,80,"font_en",e,16,"center"),c.anchor.set(.5),this.board.addChild(c),a=new d(this.game,0,1.1*b/2,this.game.lang.locale("Ok"),this.close),a.anchor.set(.5),this.board.addChild(a)},e.prototype.close=function(){return this.hide(),_.delay(function(a){return function(){return a.onClose.dispatch()}}(this),1e3)},e.prototype.show=function(){return e.__super__.show.call(this),h5branding.google.sendScreenView("credits")},e}(c)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Menu/SkirbyUpsellButton",["require","Phaser","States/Common/Button"],function(c){var d;return c("Phaser"),d=c("States/Common/Button"),function(c){function d(b,c,e){this.openAffiliateLink=a(this.openAffiliateLink,this),d.__super__.constructor.call(this,b,c,e,"skirby-upsell",null,this.openAffiliateLink),this.anchor.set(.5)}return b(d,c),d.prototype.openAffiliateLink=function(){return window.open("https://skirby.refersion.com/c/4ab1c2","_blank")},d}(d)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Menu/Menu",["require","Phaser","../Common/UIState","../Common/Button","States/LevelMenu/LevelMenu","States/Level/Level","States/Buy/BuyMenu","States/Settings/SettingsMenu","States/Credits/CreditsMenu","States/Menu/TempleHall","States/Complete/Complete","../Common/GoldButton","States/Menu/SkirbyUpsellButton","h5branding"],function(c){var d,e,f,g,h,i,j,k,l,m;return c("Phaser"),l=c("../Common/UIState"),d=c("../Common/Button"),h=c("States/LevelMenu/LevelMenu"),i=c("States/Level/Level"),e=c("States/Buy/BuyMenu"),j=c("States/Settings/SettingsMenu"),f=c("States/Credits/CreditsMenu"),c("States/Menu/TempleHall"),c("States/Complete/Complete"),g=c("../Common/GoldButton"),k=c("States/Menu/SkirbyUpsellButton"),m=c("h5branding"),function(c){function l(){this.layoutContent=a(this.layoutContent,this),this.skipToLevel=a(this.skipToLevel,this),this.startTemple=a(this.startTemple,this),this.showBuy=a(this.showBuy,this),this.showCredits=a(this.showCredits,this),this.showSettings=a(this.showSettings,this),this.afterAddContent=a(this.afterAddContent,this),this.sendScreenView=a(this.sendScreenView,this),this.preload=a(this.preload,this),this.onReady=new Phaser.Signal,l.__super__.constructor.apply(this,arguments)}return b(l,c),l.prototype.preload=function(){return l.__super__.preload.apply(this,arguments),this.sendScreenView()},l.prototype.sendScreenView=function(){return m.google.sendScreenView("main_menu")},l.prototype.afterAddContent=function(){var a,b,c,e,f,h,i,j,l;if(("cordova"===this.game.gameConfig.target||this.game.config.simulateCordova)&&(this.unlockButton=new d(this.game,this.game.realWidth/2-100,this.game.realHeight/2-100,"MenuAssets","UnlockButton0000",this.showBuy,"pusher"),this.root.addChild(this.unlockButton)),"cordova"!==this.game.gameConfig.target&&!this.game.config.simulateCordova&&(j=this.game.getStoreObjects(),j.length>0))for(this.appStoreButtons=[],e=0,f=j.length;e<f;e++)i=j[e],h=function(a){return function(a){return m.google.sendGenericEvent("UpSell",i.image),window.open(a.data.url,"_blank")}}(),a=new d(this.game,0,0,i.image,null,h,"pusher"),a.data=i,a.anchor.set(1),this.root.addChild(a),this.appStoreButtons.push(a);return c="multi"===this.game.gameConfig.type?["SettingsButton0000","SettingsButton0001"]:["SettingsButton0002","SettingsButton0003"],this.settingsButton=new d(this.game,-this.game.realWidth/2+100,this.game.realHeight/2-100,"MenuAssets",c,this.showSettings,"pusher"),this.root.addChild(this.settingsButton),this.creditsBtn=b=new g(this.game,this.game.realWidth/2-40,-this.game.realHeight/2+40,"?",this.showCredits,30),this.creditsBtn.hitArea=new PIXI.Circle(0,0,3*b.width),this.root.addChild(b),m.Branding.outGoingLinksAllowed()&&(this.upsellButton=l=new k(this.game,this.game.realWidth/2-100,0),this.root.addChild(l)),this.game.SideBanners.resize(!0),this.layoutContent()},l.prototype.showSettings=function(){var a;return a=new j(this.game,this.levelState),a.show(),this.currentMenu=a,a.onClose.add(function(b){return function(){return a.destroy(),b.currentMenu=null,b.sendScreenView()}}(this))},l.prototype.showCredits=function(){var a;return a=new f(this.game),a.show(),this.currentMenu=a,a.onClose.add(function(b){return function(){return a.destroy(),b.currentMenu=null,b.sendScreenView()}}(this))},l.prototype.showBuy=function(){var a;return a=new e(this.game),a.show(),this.currentMenu=a,a.onClose.add(function(b){return function(){return a.destroy(),b.currentMenu=null,b.sendScreenView()}}(this))},l.prototype.startTemple=function(a){return this.game.state.add("levelMenu",h),this.game.state.start("levelMenu",!0,!1,a)},l.prototype.skipToLevel=function(a){return a||(a={id:0,filename:"",required:0}),this.game.state.add("level",i),this.game.state.fade("level",!0,!1,a)},l.prototype.layoutContent=function(){var a,b,c,d,e;if(l.__super__.layoutContent.call(this),this.game.realWidth,this.game.realHeight,null!=this.unlockButton&&(this.unlockButton.x=this.game.realWidth/2-100,this.unlockButton.y=this.game.realHeight/2-100,this.game.realWidth<=900?(this.unlockButton.x=this.game.realWidth/2-50,this.unlockButton.scale.set(.7)):this.unlockButton.scale.set(1)),null!=this.appStoreButtons&&this.appStoreButtons.length>0){for(e=this.appStoreButtons,b=c=0,d=e.length;c<d;b=++c)a=e[b],(this.game.realWidth-800)/2<120?a.scale.set(.4):(this.game.realWidth-800)/2<180?a.scale.set(.45):a.scale.set(.6),a.x=this.game.realWidth/2-20,a.y=this.game.realHeight/2-20-b*a.height;null!=this.upsellButton&&(this.game.realWidth>=1250&&this.game.realHeight>=810?(this.upsellButton.x=0,this.upsellButton.y=this.game.realHeight/2-50):(this.upsellButton.x=this.game.realWidth/2-100,this.upsellButton.y=0))}if(null!=this.settingsButton&&(this.settingsButton.x=-this.game.realWidth/2+100,this.settingsButton.y=this.game.realHeight/2-100,this.game.realWidth<=900&&(this.settingsButton.x=-this.game.realWidth/2+50)),null!=this.creditsBtn&&(this.creditsBtn.x=-this.game.realWidth/2+200,this.creditsBtn.y=this.settingsButton.y-10),null!=this.currentMenu)return this.currentMenu.layoutContent()},l}(l)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Menu/SingleMenu",["require","Phaser","States/Menu/TempleHall","States/Menu/Menu"],function(c){var d,e;return c("Phaser"),e=c("States/Menu/TempleHall"),d=c("States/Menu/Menu"),function(c){function d(){return this.layoutContent=a(this.layoutContent,this),this.addContent=a(this.addContent,this),this.preload=a(this.preload,this),d.__super__.constructor.apply(this,arguments)}return b(d,c),d.prototype.preload=function(){return d.__super__.preload.apply(this,arguments)},d.prototype.addContent=function(){var a;return this.templeHall=a=new e(this.game,0,0),this.root.addChild(a),a.onStart.add(this.startTemple),this.onReady.dispatch(),this.afterAddContent()},d.prototype.layoutContent=function(){return d.__super__.layoutContent.call(this),this.templeHall.layoutContent()},d}(d)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Menu/TempleSelector",["../Common/StoneButton","../Common/Button","Phaser"],function(c,d){"use strict";return function(c){function e(b,c,f){this.destroy=a(this.destroy,this),this.layoutContent=a(this.layoutContent,this),this.getTarget=a(this.getTarget,this),this.update=a(this.update,this),this.showBuyTemple=a(this.showBuyTemple,this),this.showSoftLockWarning=a(this.showSoftLockWarning,this),this.templeClicked=a(this.templeClicked,this),this.resize=a(this.resize,this),this.preload=a(this.preload,this);var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D;for(e.__super__.constructor.call(this,b,c,f,"MenuBackgrounds","_default0000"),this.onSelected=new Phaser.Signal,this.onMove=new Phaser.Signal,this.onTarget=new Phaser.Signal,this.onShowPopup=new Phaser.Signal,this.icon_distance=256,this.strip_height=A=300,D=this.game.realWidth,this.strip=this.game.make.sprite(1/0,0,"MenuBackgrounds","_default0000"),this.addChild(this.strip),j=Math.ceil(this.game.realWidth/256),this.bs=i=[],i[0]=this.game.make.group(),i[1]=this.game.make.group(),p=q=0,u=i.length;q<u;p=++q){for(g=i[p],m=r=0,y=j;0<=y?r<=y:r>=y;m=0<=y?++r:--r)h=this.game.make.sprite(-D/2+255*m,-A,"MenuBackgrounds","SimpleBackground0000"),g.addChild(h);g.cacheAsBitmap=!0,g.x=-p*g.width,this.strip.addChild(g)}for(C=b.progress.get("temples"),this.icons=[],m=s=0,v=C.length;s<v;m=++s)B=C[m],o=B.icon||B.id,B.locked&&!this.game.config.devUnlock?(n=new d(b,B.index*this.icon_distance,-A/2,"TempleIcons",[o+"Icon0000",o+"Icon0000"],function(a){return function(){return a.showBuyTemple(B)}}(this)),w=new Phaser.Sprite(this.game,0,0,"MenuAssets","GoldLock0000"),w.scale.set(1),w.anchor.set(.5),
|
||
n.addChild(w)):B.softLocked&&!this.game.config.devUnlock?n=new d(b,B.index*this.icon_distance,-A/2,"TempleIcons",[o+"Icon0000",o+"Icon0000"],this.showSoftLockWarning):(n=new d(b,B.index*this.icon_distance,-A/2,"TempleIcons",[o+"Icon0001",o+"Icon0002"],this.templeClicked,null),B.hasNew&&(x=new Phaser.Sprite(this.game,0,0,"MenuAssets","NewSign0000"),x.scale.set(.7),x.x+=60,x.y-=60,x.anchor.set(.5),n.addChild(x))),n.anchor.set(.5),n.data=B,this.icons.push(n),this.strip.addChild(n);this.currentX=this._x=0,this.v=0,this.a=0,this.anchor=0,b.TouchManager.register(this.strip,"panstart",function(a){return function(b){return a.panning=!0}}(this)),b.TouchManager.register(this.strip,"panmove",function(a){return function(c){if(!0===a.panning)return a._x=a.currentX+c.deltaX/b.camera.scale.x,a.v=10*c.overallVelocityX}}(this)),b.TouchManager.register(this.strip,"panend",function(a){return function(b){return a.panning=!1,a.didpan=!0}}(this)),l=this.game.make.group(0,0),this.cover=k=this.game.make.sprite(0,50,"MenuBackgrounds","SliderHolder0000"),k.anchor.set(.5,1),this.leftSide=t=this.game.make.tileSprite(-k.width/2,50,(this.game.realWidth-k.width)/2,k.height,"MenuBackgrounds","HolderTexture0000"),this.rigthSide=z=this.game.make.tileSprite(k.width/2,50,(this.game.realWidth-k.width)/2,k.height,"MenuBackgrounds","HolderTexture0000"),t.anchor.set(1,1),z.anchor.set(0,1),l.addChild(k),l.addChild(t),l.addChild(z),k.cacheAsBitmap=!0,t.cacheAsBitmap=!0,z.cacheAsBitmap=!0,this.addChild(l),b.TouchManager.register(t,"touchstart",function(a){return function(a){return console.log("prevent event")}}()),b.TouchManager.register(t,"mousedown",function(a){return function(a){return console.log("prevent event")}}()),b.TouchManager.register(t,"panstart",function(a){return function(a){return console.log("prevent event")}}()),b.TouchManager.register(z,"touchstart",function(a){return function(a){return console.log("prevent event")}}()),b.TouchManager.register(z,"mousedown",function(a){return function(a){return console.log("prevent event")}}()),b.TouchManager.register(z,"panstart",function(a){return function(a){return console.log("prevent event")}}()),p=null!=this.game.currentTemple?this.game.currentTemple.index:0,this._x=this.anchor=-this.icon_distance*p}return b(e,c),e.prototype.preload=function(){},e.prototype.resize=function(){var a;return a=this.game.realWidth,this.background.width=a,this.background.x=-a/2,this.leftSide.width=(this.game.realWidth-this.cover.width)/2,this.rigthSide.width=(this.game.realWidth-this.cover.width)/2,this.leftSide.x=-this.cover.width/2,this.rigthSide.x=this.cover.width/2},e.prototype.templeClicked=function(a){return this.didpan||(this.game.currentSounds.pusher.play(),console.log("clicked temple"+a.data.id),this.onSelected.dispatch(a.data)),this.didpan=!1},e.prototype.showSoftLockWarning=function(){return this.didpan||(console.log("should trigger to show 'complete more levels'"),this.onShowPopup.dispatch({type:"softLock"})),this.didpan=!1},e.prototype.showBuyTemple=function(a){return this.didpan||(console.log("should trigger to show 'buy this temple'"),this.onShowPopup.dispatch({type:"buyTemple",value:a})),this.didpan=!1},e.prototype.update=function(){var a,b,c,d,e,f,g,h,i,j,k;for(this.panning?this.a=0:(b=Math.min(.04,this.game.time.elapsed/1e3),this.a=(this.anchor-this._x)*b*.25,this.v+=this.a,this.v*=.9,this._x+=this.v,this.currentX=this._x),this.anchor=this.icon_distance*Math.round(this._x/this.icon_distance),i=this.icons,e=0,g=i.length;e<g;e++)d=i[e],d.x+this._x>=((this.icons.length-2)/2+1)*this.icon_distance?d.x-=this.icons.length*this.icon_distance:d.x+this._x<-((this.icons.length-2)/2+1)*this.icon_distance&&(d.x+=this.icons.length*this.icon_distance);for(j=this.bs,c=f=0,h=j.length;f<h;c=++f)a=j[c],a.x+this._x>a.width&&(a.x-=2*a.width),a.x+this._x<-a.width&&(a.x+=2*a.width);if(this.lastAnchor!==this.anchor&&(this.lastAnchor=this.anchor,k=this.getTarget(),this.onTarget.dispatch(k)),this.strip.x!==Math.round(this._x))return this.strip.x=Math.round(this._x),this.onMove.dispatch()},e.prototype.getTarget=function(){return this.icons.sort(function(a){return function(b,c){return Math.abs(a._x+b.x)-Math.abs(a._x+c.x)}}(this))[0]},e.prototype.layoutContent=function(){return this.leftSide.width=(this.game.realWidth-this.cover.width)/2,this.rigthSide.width=(this.game.realWidth-this.cover.width)/2},e.prototype.destroy=function(){return this.game.TouchManager.unregister(this.leftSide,"touchstart"),this.game.TouchManager.unregister(this.leftSide,"mousedown"),this.game.TouchManager.unregister(this.leftSide,"panstart"),this.game.TouchManager.unregister(this.rigthSide,"touchstart"),this.game.TouchManager.unregister(this.rigthSide,"mousedown"),this.game.TouchManager.unregister(this.rigthSide,"panstart"),this.game.TouchManager.unregister(this.strip,"panstart"),this.game.TouchManager.unregister(this.strip,"panmove"),this.game.TouchManager.unregister(this.strip,"panend"),e.__super__.destroy.apply(this,arguments)},e}(Phaser.Sprite)})}.call(this),Phaser.Filter.BWMatrix=function(a,b,c,d){Phaser.Filter.call(this,a),this.passes=[this];offset=1.7,this.uniforms={matrix:{type:"mat4",value:[.3,.6,.1,0,.3,.6,.1,0,.3,.6,.1,0,0,0,0,1]}},this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform float invert;","uniform mat4 matrix;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * matrix;","}"]},Phaser.Filter.BWMatrix.prototype=Object.create(Phaser.Filter.prototype),Phaser.Filter.BWMatrix.prototype.constructor=Phaser.Filter,Object.defineProperty(Phaser.Filter.BWMatrix.prototype,"color",{set:function(a){var b=((16711680&a)>>16)/255,c=((65280&a)>>8)/255,d=(255&a)/255;this.uniforms.outlineColor.value={x:b,y:c,z:d,w:1},this.dirty=!0}}),Object.defineProperty(Phaser.Filter.BWMatrix.prototype,"viewWidth",{set:function(a){this.uniforms.pixelWidth.value=1/a,this.dirty=!0}}),Object.defineProperty(Phaser.Filter.BWMatrix.prototype,"viewHeight",{set:function(a){this.uniforms.pixelHeight.value=1/a,this.dirty=!0}}),define("bwMatrix",["Phaser"],function(a){return function(){return a.bwMatrix}}(this)),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Menu/MultiHall",["require","Phaser","../Common/GoldButton","../Common/Navies","States/Menu/TempleSelector","States/Buy/BuyMenu","States/Common/SoftLockMenu","bwMatrix"],function(c){var d,e,f,g,h;return f=c("Phaser"),c("../Common/GoldButton"),e=c("../Common/Navies"),h=c("States/Menu/TempleSelector"),d=c("States/Buy/BuyMenu"),g=c("States/Common/SoftLockMenu"),c("bwMatrix"),function(c){function i(b,c,d){this.destroy=a(this.destroy,this),this.showPopup=a(this.showPopup,this),this.layoutContent=a(this.layoutContent,this),this.update=a(this.update,this),this.drawBackgrounds=a(this.drawBackgrounds,this),this.setBackground=a(this.setBackground,this);var g,j;i.__super__.constructor.call(this,b,c,d),this.templeSelector=g=new h(this.game,0,this.game.realHeight/2),this.w=this.game.realWidth,this.h=this.game.realHeight,this.paralaxFactor=3,this.bkg=this.drawBackgrounds(),this.addChild(this.bkg),this.title=j=this.game.make.sprite(0,0,"GameName"),j.anchor.set(.5,.5),j.cacheAsBitmap=!0,this.addChild(j),this.onStart=new f.Signal,g.onTarget.add(_.debounce(this.setBackground,800)),g.onSelected.add(function(a){return function(b){return a.onStart.dispatch(b)}}(this)),g.onShowPopup.add(this.showPopup),this.addChild(g),this.navies=new e(this.game,0,0),this.addChild(this.navies),this.game.time.advancedTiming=!0,this.setBackground(g.getTarget(),!1)}return b(i,c),i.prototype.setBackground=function(a,b){var c,d;if(null==b&&(b=!0),c=this.backgroundImages[a.data.id],this.currentBkg!==c)return b&&(c.alpha=0,d=this.game.add.tween(c).to({alpha:1},800,f.Easing.Quadratic.InOut,!0),d.onComplete.add(function(a){return function(){return c.alpha=1}}())),this.currentBkg=c,this.bkg.addChild(c),this.bkg.bringToTop(c)},i.prototype.drawBackgrounds=function(){var a,b,c,d,e,f,g,h,i,j,k;for(k=this.game.progress.get("temples"),this.backgroundImages={},this.bkgBmd=a=this.game.make.bitmapData(1366,768),a.fill(0,0,0,1),c=this.game.make.sprite(0,0,a),c.anchor.set(.5),d=f=0,g=k.length;f<g;d=++f)j=k[d],i=j.id,e="TempleHall"+i.charAt(0).toUpperCase()+i.slice(1),j.locked||j.softLocked?b=c:(b=this.game.make.sprite(0,0,e),b.anchor.set(.5),h=Math.max(this.w/1366,this.h/768),b.scale.set(h),b.cacheAsBitmap=!0),this.backgroundImages[j.id]=b;return this.game.make.group(0,0)},i.prototype.update=function(){return this.game.config.showFps&&$("#debug-fps").html(this.game.time.fps),this.templeSelector.update(),this.navies.update()},i.prototype.layoutContent=function(){var a,b,c,d;this.w=this.game.realWidth,this.h=this.game.realHeight,d=Math.max(this.w/1366,this.h/768),c=this.backgroundImages;for(b in c)a=c[b],a.scale.set(d),a.x=0;return this.templeSelector.y=this.game.realHeight/2,this.templeSelector.layoutContent(),this.title.y=-this.game.realHeight/2+(this.game.realHeight-this.templeSelector.height)/2-this.title.height/2,this.navies.y=this.game.realHeight/2-this.templeSelector.strip_height/2},i.prototype.showPopup=function(a){var b;return console.log("show popup for",a.type),"softLock"===a.type?b=new g(this.game,{label:"temple"}):"buyTemple"===a.type&&(b=new d(this.game)),b.show(),b.onClose.add(b.destroy)},i.prototype.destroy=function(){return this.bkgBmd.destroy(),i.__super__.destroy.apply(this,arguments)},i}(f.Sprite)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Menu/MultiMenu",["require","Phaser","States/Menu/Menu","States/Menu/MultiHall","States/Menu/TempleSelector"],function(c){var d,e;return c("Phaser"),d=c("States/Menu/Menu"),e=c("States/Menu/MultiHall"),c("States/Menu/TempleSelector"),function(c){function d(){return this.shutdown=a(this.shutdown,this),this.layoutContent=a(this.layoutContent,this),this.update=a(this.update,this),this.addContent=a(this.addContent,this),this.preload=a(this.preload,this),d.__super__.constructor.apply(this,arguments)}return b(d,c),d.prototype.preload=function(){return d.__super__.preload.apply(this,arguments)},d.prototype.addContent=function(){var a;return this.inputEnableChildren=!0,this.templeHall=a=new e(this.game,0,0),this.root.addChild(a),a.onStart.add(this.startTemple),this.afterAddContent(),this.onReady.dispatch()},d.prototype.update=function(){if(null!=this.templeHall)return this.templeHall.update()},d.prototype.layoutContent=function(){return d.__super__.layoutContent.call(this),this.templeHall.layoutContent()},d.prototype.shutdown=function(){return this.templeHall.destroy()},d}(d)})}.call(this),function(){var a="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},b=a._,c=Array.prototype,d=Object.prototype,e="undefined"!=typeof Symbol?Symbol.prototype:null,f=c.push,g=c.slice,h=d.toString,i=d.hasOwnProperty,j=Array.isArray,k=Object.keys,l=Object.create,m=function(){},n=function(a){return a instanceof n?a:this instanceof n?void(this._wrapped=a):new n(a)};"undefined"==typeof exports||exports.nodeType?a._=n:("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=n),exports._=n),n.VERSION="1.9.2";var o,p=function(a,b,c){if(void 0===b)return a;switch(null==c?3:c){case 1:return function(c){return a.call(b,c)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)}}return function(){return a.apply(b,arguments)}},q=function(a,b,c){return n.iteratee!==o?n.iteratee(a,b):null==a?n.identity:n.isFunction(a)?p(a,b,c):n.isObject(a)&&!n.isArray(a)?n.matcher(a):n.property(a)};n.iteratee=o=function(a,b){return q(a,b,1/0)};var r=function(a,b){return b=null==b?a.length-1:+b,function(){for(var c=Math.max(arguments.length-b,0),d=Array(c),e=0;e<c;e++)d[e]=arguments[e+b];switch(b){case 0:return a.call(this,d);case 1:return a.call(this,arguments[0],d);case 2:return a.call(this,arguments[0],arguments[1],d)}var f=Array(b+1);for(e=0;e<b;e++)f[e]=arguments[e];return f[b]=d,a.apply(this,f)}},s=function(a){if(!n.isObject(a))return{};if(l)return l(a);m.prototype=a;var b=new m;return m.prototype=null,b},t=function(a){return function(b){return null==b?void 0:b[a]}},u=function(a,b){return null!=a&&i.call(a,b)},v=function(a,b){for(var c=b.length,d=0;d<c;d++){if(null==a)return;a=a[b[d]]}return c?a:void 0},w=Math.pow(2,53)-1,x=t("length"),y=function(a){var b=x(a);return"number"==typeof b&&b>=0&&b<=w};n.each=n.forEach=function(a,b,c){b=p(b,c);var d,e;if(y(a))for(d=0,e=a.length;d<e;d++)b(a[d],d,a);else{var f=n.keys(a);for(d=0,e=f.length;d<e;d++)b(a[f[d]],f[d],a)}return a},n.map=n.collect=function(a,b,c){b=q(b,c);for(var d=!y(a)&&n.keys(a),e=(d||a).length,f=Array(e),g=0;g<e;g++){var h=d?d[g]:g;f[g]=b(a[h],h,a)}return f};var z=function(a){var b=function(b,c,d,e){var f=!y(b)&&n.keys(b),g=(f||b).length,h=a>0?0:g-1;for(e||(d=b[f?f[h]:h],h+=a);h>=0&&h<g;h+=a){var i=f?f[h]:h;d=c(d,b[i],i,b)}return d};return function(a,c,d,e){var f=arguments.length>=3;return b(a,p(c,e,4),d,f)}};n.reduce=n.foldl=n.inject=z(1),n.reduceRight=n.foldr=z(-1),n.find=n.detect=function(a,b,c){var d=y(a)?n.findIndex:n.findKey,e=d(a,b,c);if(void 0!==e&&-1!==e)return a[e]},n.filter=n.select=function(a,b,c){var d=[];return b=q(b,c),n.each(a,function(a,c,e){b(a,c,e)&&d.push(a)}),d},n.reject=function(a,b,c){return n.filter(a,n.negate(q(b)),c)},n.every=n.all=function(a,b,c){b=q(b,c);for(var d=!y(a)&&n.keys(a),e=(d||a).length,f=0;f<e;f++){var g=d?d[f]:f;if(!b(a[g],g,a))return!1}return!0},n.some=n.any=function(a,b,c){b=q(b,c);for(var d=!y(a)&&n.keys(a),e=(d||a).length,f=0;f<e;f++){var g=d?d[f]:f;if(b(a[g],g,a))return!0}return!1},n.contains=n.includes=n.include=function(a,b,c,d){return y(a)||(a=n.values(a)),("number"!=typeof c||d)&&(c=0),n.indexOf(a,b,c)>=0},n.invoke=r(function(a,b,c){var d,e;return n.isFunction(b)?e=b:n.isArray(b)&&(d=b.slice(0,-1),b=b[b.length-1]),n.map(a,function(a){var f=e;if(!f){if(d&&d.length&&(a=v(a,d)),null==a)return;f=a[b]}return null==f?f:f.apply(a,c)})}),n.pluck=function(a,b){return n.map(a,n.property(b))},n.where=function(a,b){return n.filter(a,n.matcher(b))},n.findWhere=function(a,b){return n.find(a,n.matcher(b))},n.max=function(a,b,c){var d,e,f=-1/0,g=-1/0;if(null==b||"number"==typeof b&&"object"!=typeof a[0]&&null!=a){a=y(a)?a:n.values(a);for(var h=0,i=a.length;h<i;h++)null!=(d=a[h])&&d>f&&(f=d)}else b=q(b,c),n.each(a,function(a,c,d){((e=b(a,c,d))>g||e===-1/0&&f===-1/0)&&(f=a,g=e)});return f},n.min=function(a,b,c){var d,e,f=1/0,g=1/0;if(null==b||"number"==typeof b&&"object"!=typeof a[0]&&null!=a){a=y(a)?a:n.values(a);for(var h=0,i=a.length;h<i;h++)null!=(d=a[h])&&d<f&&(f=d)}else b=q(b,c),n.each(a,function(a,c,d){((e=b(a,c,d))<g||e===1/0&&f===1/0)&&(f=a,g=e)});return f},n.shuffle=function(a){return n.sample(a,1/0)},n.sample=function(a,b,c){if(null==b||c)return y(a)||(a=n.values(a)),a[n.random(a.length-1)];var d=y(a)?n.clone(a):n.values(a),e=x(d);b=Math.max(Math.min(b,e),0);for(var f=e-1,g=0;g<b;g++){var h=n.random(g,f),i=d[g];d[g]=d[h],d[h]=i}return d.slice(0,b)},n.sortBy=function(a,b,c){var d=0;return b=q(b,c),n.pluck(n.map(a,function(a,c,e){return{value:a,index:d++,criteria:b(a,c,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;if(c!==d){if(c>d||void 0===c)return 1;if(c<d||void 0===d)return-1}return a.index-b.index}),"value")};var A=function(a,b){return function(c,d,e){var f=b?[[],[]]:{};return d=q(d,e),n.each(c,function(b,e){var g=d(b,e,c);a(f,b,g)}),f}};n.groupBy=A(function(a,b,c){u(a,c)?a[c].push(b):a[c]=[b]}),n.indexBy=A(function(a,b,c){a[c]=b}),n.countBy=A(function(a,b,c){u(a,c)?a[c]++:a[c]=1});var B=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;n.toArray=function(a){return a?n.isArray(a)?g.call(a):n.isString(a)?a.match(B):y(a)?n.map(a,n.identity):n.values(a):[]},n.size=function(a){return null==a?0:y(a)?a.length:n.keys(a).length},n.partition=A(function(a,b,c){a[c?0:1].push(b)},!0),n.first=n.head=n.take=function(a,b,c){return null==a||a.length<1?null==b?void 0:[]:null==b||c?a[0]:n.initial(a,a.length-b)},n.initial=function(a,b,c){return g.call(a,0,Math.max(0,a.length-(null==b||c?1:b)))},n.last=function(a,b,c){return null==a||a.length<1?null==b?void 0:[]:null==b||c?a[a.length-1]:n.rest(a,Math.max(0,a.length-b))},n.rest=n.tail=n.drop=function(a,b,c){return g.call(a,null==b||c?1:b)},n.compact=function(a){return n.filter(a,Boolean)};var C=function(a,b,c,d){d=d||[];for(var e=d.length,f=0,g=x(a);f<g;f++){var h=a[f];if(y(h)&&(n.isArray(h)||n.isArguments(h)))if(b)for(var i=0,j=h.length;i<j;)d[e++]=h[i++];else C(h,b,c,d),e=d.length;else c||(d[e++]=h)}return d};n.flatten=function(a,b){return C(a,b,!1)},n.without=r(function(a,b){return n.difference(a,b)}),n.uniq=n.unique=function(a,b,c,d){n.isBoolean(b)||(d=c,c=b,b=!1),null!=c&&(c=q(c,d));for(var e=[],f=[],g=0,h=x(a);g<h;g++){var i=a[g],j=c?c(i,g,a):i;b&&!c?(g&&f===j||e.push(i),f=j):c?n.contains(f,j)||(f.push(j),e.push(i)):n.contains(e,i)||e.push(i)}return e},n.union=r(function(a){return n.uniq(C(a,!0,!0))}),n.intersection=function(a){for(var b=[],c=arguments.length,d=0,e=x(a);d<e;d++){var f=a[d];if(!n.contains(b,f)){var g;for(g=1;g<c&&n.contains(arguments[g],f);g++);g===c&&b.push(f)}}return b},n.difference=r(function(a,b){return b=C(b,!0,!0),n.filter(a,function(a){return!n.contains(b,a)})}),n.unzip=function(a){for(var b=a&&n.max(a,x).length||0,c=Array(b),d=0;d<b;d++)c[d]=n.pluck(a,d);return c},n.zip=r(n.unzip),n.object=function(a,b){for(var c={},d=0,e=x(a);d<e;d++)b?c[a[d]]=b[d]:c[a[d][0]]=a[d][1];return c};var D=function(a){return function(b,c,d){c=q(c,d);for(var e=x(b),f=a>0?0:e-1;f>=0&&f<e;f+=a)if(c(b[f],f,b))return f;return-1}};n.findIndex=D(1),n.findLastIndex=D(-1),n.sortedIndex=function(a,b,c,d){c=q(c,d,1);for(var e=c(b),f=0,g=x(a);f<g;){var h=Math.floor((f+g)/2);c(a[h])<e?f=h+1:g=h}return f};var E=function(a,b,c){return function(d,e,f){var h=0,i=x(d);if("number"==typeof f)a>0?h=f>=0?f:Math.max(f+i,h):i=f>=0?Math.min(f+1,i):f+i+1;else if(c&&f&&i)return f=c(d,e),d[f]===e?f:-1;if(e!==e)return f=b(g.call(d,h,i),n.isNaN),f>=0?f+h:-1;for(f=a>0?h:i-1;f>=0&&f<i;f+=a)if(d[f]===e)return f;return-1}};n.indexOf=E(1,n.findIndex,n.sortedIndex),n.lastIndexOf=E(-1,n.findLastIndex),n.range=function(a,b,c){null==b&&(b=a||0,a=0),c||(c=b<a?-1:1);for(var d=Math.max(Math.ceil((b-a)/c),0),e=Array(d),f=0;f<d;f++,a+=c)e[f]=a;return e},n.chunk=function(a,b){if(null==b||b<1)return[];for(var c=[],d=0,e=a.length;d<e;)c.push(g.call(a,d,d+=b));return c};var F=function(a,b,c,d,e){if(!(d instanceof b))return a.apply(c,e);var f=s(a.prototype),g=a.apply(f,e);return n.isObject(g)?g:f};n.bind=r(function(a,b,c){if(!n.isFunction(a))throw new TypeError("Bind must be called on a function");var d=r(function(e){return F(a,d,b,this,c.concat(e))});return d}),n.partial=r(function(a,b){var c=n.partial.placeholder,d=function(){for(var e=0,f=b.length,g=Array(f),h=0;h<f;h++)g[h]=b[h]===c?arguments[e++]:b[h];for(;e<arguments.length;)g.push(arguments[e++]);return F(a,d,this,this,g)};return d}),n.partial.placeholder=n,n.bindAll=r(function(a,b){b=C(b,!1,!1);var c=b.length;if(c<1)throw new Error("bindAll must be passed function names");for(;c--;){var d=b[c];a[d]=n.bind(a[d],a)}}),n.memoize=function(a,b){var c=function(d){var e=c.cache,f=""+(b?b.apply(this,arguments):d);return u(e,f)||(e[f]=a.apply(this,arguments)),e[f]};return c.cache={},c},n.delay=r(function(a,b,c){return setTimeout(function(){return a.apply(null,c)},b)}),n.defer=n.partial(n.delay,n,1),n.throttle=function(a,b,c){var d,e,f,g,h=0;c||(c={});var i=function(){h=!1===c.leading?0:n.now(),d=null,g=a.apply(e,f),d||(e=f=null)},j=function(){var j=n.now();h||!1!==c.leading||(h=j);var k=b-(j-h);return e=this,f=arguments,k<=0||k>b?(d&&(clearTimeout(d),d=null),h=j,g=a.apply(e,f),d||(e=f=null)):d||!1===c.trailing||(d=setTimeout(i,k)),g};return j.cancel=function(){clearTimeout(d),h=0,d=e=f=null},j},n.debounce=function(a,b,c){var d,e,f=function(b,c){d=null,c&&(e=a.apply(b,c))},g=r(function(g){if(d&&clearTimeout(d),c){var h=!d;d=setTimeout(f,b),h&&(e=a.apply(this,g))}else d=n.delay(f,b,this,g);return e});return g.cancel=function(){clearTimeout(d),d=null},g},n.wrap=function(a,b){return n.partial(b,a)},n.negate=function(a){return function(){return!a.apply(this,arguments)}},n.compose=function(){var a=arguments,b=a.length-1;return function(){for(var c=b,d=a[b].apply(this,arguments);c--;)d=a[c].call(this,d);return d}},n.after=function(a,b){return function(){if(--a<1)return b.apply(this,arguments)}},n.before=function(a,b){var c;return function(){return--a>0&&(c=b.apply(this,arguments)),a<=1&&(b=null),c}},n.once=n.partial(n.before,2),n.restArguments=r;var G=!{toString:null}.propertyIsEnumerable("toString"),H=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],I=function(a,b){var c=H.length,e=a.constructor,f=n.isFunction(e)&&e.prototype||d,g="constructor";for(u(a,g)&&!n.contains(b,g)&&b.push(g);c--;)(g=H[c])in a&&a[g]!==f[g]&&!n.contains(b,g)&&b.push(g)};n.keys=function(a){if(!n.isObject(a))return[];if(k)return k(a);var b=[];for(var c in a)u(a,c)&&b.push(c);return G&&I(a,b),b},n.allKeys=function(a){if(!n.isObject(a))return[];var b=[];for(var c in a)b.push(c);return G&&I(a,b),b},n.values=function(a){for(var b=n.keys(a),c=b.length,d=Array(c),e=0;e<c;e++)d[e]=a[b[e]];return d},n.mapObject=function(a,b,c){b=q(b,c);for(var d=n.keys(a),e=d.length,f={},g=0;g<e;g++){var h=d[g];f[h]=b(a[h],h,a)}return f},n.pairs=function(a){for(var b=n.keys(a),c=b.length,d=Array(c),e=0;e<c;e++)d[e]=[b[e],a[b[e]]];return d},n.invert=function(a){for(var b={},c=n.keys(a),d=0,e=c.length;d<e;d++)b[a[c[d]]]=c[d];return b},n.functions=n.methods=function(a){var b=[];for(var c in a)n.isFunction(a[c])&&b.push(c);return b.sort()};var J=function(a,b){return function(c){var d=arguments.length;if(b&&(c=Object(c)),d<2||null==c)return c;for(var e=1;e<d;e++)for(var f=arguments[e],g=a(f),h=g.length,i=0;i<h;i++){var j=g[i];b&&void 0!==c[j]||(c[j]=f[j])}return c}};n.extend=J(n.allKeys),n.extendOwn=n.assign=J(n.keys),n.findKey=function(a,b,c){b=q(b,c);for(var d,e=n.keys(a),f=0,g=e.length;f<g;f++)if(d=e[f],b(a[d],d,a))return d};var K=function(a,b,c){return b in c};n.pick=r(function(a,b){var c={},d=b[0];if(null==a)return c;n.isFunction(d)?(b.length>1&&(d=p(d,b[1])),b=n.allKeys(a)):(d=K,b=C(b,!1,!1),a=Object(a));for(var e=0,f=b.length;e<f;e++){var g=b[e],h=a[g];d(h,g,a)&&(c[g]=h)}return c}),n.omit=r(function(a,b){var c,d=b[0];return n.isFunction(d)?(d=n.negate(d),b.length>1&&(c=b[1])):(b=n.map(C(b,!1,!1),String),d=function(a,c){return!n.contains(b,c)}),n.pick(a,d,c)}),n.defaults=J(n.allKeys,!0),n.create=function(a,b){var c=s(a);return b&&n.extendOwn(c,b),c},n.clone=function(a){return n.isObject(a)?n.isArray(a)?a.slice():n.extend({},a):a},n.tap=function(a,b){return b(a),a},n.isMatch=function(a,b){var c=n.keys(b),d=c.length;if(null==a)return!d;for(var e=Object(a),f=0;f<d;f++){var g=c[f];if(b[g]!==e[g]||!(g in e))return!1}return!0};var L,M;L=function(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;if(null==a||null==b)return!1;if(a!==a)return b!==b;var e=typeof a;return("function"===e||"object"===e||"object"==typeof b)&&M(a,b,c,d)},M=function(a,b,c,d){a instanceof n&&(a=a._wrapped),b instanceof n&&(b=b._wrapped);var f=h.call(a);if(f!==h.call(b))return!1;switch(f){case"[object RegExp]":case"[object String]":return""+a==""+b;case"[object Number]":return+a!=+a?+b!=+b:0==+a?1/+a==1/b:+a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object Symbol]":return e.valueOf.call(a)===e.valueOf.call(b)}var g="[object Array]"===f;if(!g){if("object"!=typeof a||"object"!=typeof b)return!1;var i=a.constructor,j=b.constructor;if(i!==j&&!(n.isFunction(i)&&i instanceof i&&n.isFunction(j)&&j instanceof j)&&"constructor"in a&&"constructor"in b)return!1}c=c||[],d=d||[];for(var k=c.length;k--;)if(c[k]===a)return d[k]===b;if(c.push(a),d.push(b),g){if((k=a.length)!==b.length)return!1;for(;k--;)if(!L(a[k],b[k],c,d))return!1}else{var l,m=n.keys(a);if(k=m.length,n.keys(b).length!==k)return!1;for(;k--;)if(l=m[k],!u(b,l)||!L(a[l],b[l],c,d))return!1}return c.pop(),d.pop(),!0},n.isEqual=function(a,b){return L(a,b)},n.isEmpty=function(a){return null==a||(y(a)&&(n.isArray(a)||n.isString(a)||n.isArguments(a))?0===a.length:0===n.keys(a).length)},n.isElement=function(a){return!(!a||1!==a.nodeType)},n.isArray=j||function(a){return"[object Array]"===h.call(a)},n.isObject=function(a){var b=typeof a;return"function"===b||"object"===b&&!!a},n.each(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],function(a){n["is"+a]=function(b){return h.call(b)==="[object "+a+"]"}}),n.isArguments(arguments)||(n.isArguments=function(a){return u(a,"callee")});var N=a.document&&a.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof N&&(n.isFunction=function(a){return"function"==typeof a||!1}),n.isFinite=function(a){return!n.isSymbol(a)&&isFinite(a)&&!isNaN(parseFloat(a))},n.isNaN=function(a){return n.isNumber(a)&&isNaN(a)},n.isBoolean=function(a){return!0===a||!1===a||"[object Boolean]"===h.call(a)},n.isNull=function(a){return null===a},n.isUndefined=function(a){return void 0===a},n.has=function(a,b){if(!n.isArray(b))return u(a,b);for(var c=b.length,d=0;d<c;d++){var e=b[d];if(null==a||!i.call(a,e))return!1;a=a[e]}return!!c},n.noConflict=function(){return a._=b,this},n.identity=function(a){return a},n.constant=function(a){return function(){return a}},n.noop=function(){},n.property=function(a){return n.isArray(a)?function(b){return v(b,a)}:t(a)},n.propertyOf=function(a){return null==a?function(){}:function(b){return n.isArray(b)?v(a,b):a[b]}},n.matcher=n.matches=function(a){return a=n.extendOwn({},a),function(b){return n.isMatch(b,a)}},n.times=function(a,b,c){var d=Array(Math.max(0,a));b=p(b,c,1);for(var e=0;e<a;e++)d[e]=b(e);return d},n.random=function(a,b){return null==b&&(b=a,a=0),a+Math.floor(Math.random()*(b-a+1))},n.now=Date.now||function(){return(new Date).getTime()};var O={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},P=n.invert(O),Q=function(a){var b=function(b){return a[b]},c="(?:"+n.keys(a).join("|")+")",d=RegExp(c),e=RegExp(c,"g");return function(a){return a=null==a?"":""+a,d.test(a)?a.replace(e,b):a}};n.escape=Q(O),n.unescape=Q(P),n.result=function(a,b,c){n.isArray(b)||(b=[b]);var d=b.length;if(!d)return n.isFunction(c)?c.call(a):c;for(var e=0;e<d;e++){var f=null==a?void 0:a[b[e]];void 0===f&&(f=c,e=d),a=n.isFunction(f)?f.call(a):f}return a};var R=0;n.uniqueId=function(a){var b=++R+"";return a?a+b:b},n.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var S=/(.)^/,T={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},U=/\\|'|\r|\n|\u2028|\u2029/g,V=function(a){return"\\"+T[a]};n.template=function(a,b,c){!b&&c&&(b=c),b=n.defaults({},b,n.templateSettings);var d=RegExp([(b.escape||S).source,(b.interpolate||S).source,(b.evaluate||S).source].join("|")+"|$","g"),e=0,f="__p+='";a.replace(d,function(b,c,d,g,h){return f+=a.slice(e,h).replace(U,V),e=h+b.length,c?f+="'+\n((__t=("+c+"))==null?'':_.escape(__t))+\n'":d?f+="'+\n((__t=("+d+"))==null?'':__t)+\n'":g&&(f+="';\n"+g+"\n__p+='"),b}),f+="';\n",b.variable||(f="with(obj||{}){\n"+f+"}\n"),f="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+f+"return __p;\n";var g;try{g=new Function(b.variable||"obj","_",f)}catch(a){throw a.source=f,a}var h=function(a){return g.call(this,a,n)};return h.source="function("+(b.variable||"obj")+"){\n"+f+"}",h},n.chain=function(a){var b=n(a);return b._chain=!0,b};var W=function(a,b){return a._chain?n(b).chain():b};n.mixin=function(a){return n.each(n.functions(a),function(b){var c=n[b]=a[b];n.prototype[b]=function(){var a=[this._wrapped];return f.apply(a,arguments),W(this,c.apply(n,a))}}),n},n.mixin(n),n.each(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=c[a];n.prototype[a]=function(){var c=this._wrapped;return b.apply(c,arguments),"shift"!==a&&"splice"!==a||0!==c.length||delete c[0],W(this,c)}}),n.each(["concat","join","slice"],function(a){var b=c[a];n.prototype[a]=function(){return W(this,b.apply(this._wrapped,arguments))}}),n.prototype.value=function(){return this._wrapped},n.prototype.valueOf=n.prototype.toJSON=n.prototype.value,n.prototype.toString=function(){return String(this._wrapped)},"function"==typeof define&&define.amd&&define("underscore",[],function(){return n})}(),function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a,b){b=b||_;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}function d(a){var b=!!a&&"length"in a&&a.length,c=la.type(a);return"function"!==c&&!la.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}function e(a,b,c){if(la.isFunction(b))return la.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return la.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(va.test(b))return la.filter(b,a,c);b=la.filter(b,a)}return la.grep(a,function(a){return ea.call(b,a)>-1!==c&&1===a.nodeType})}function f(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function g(a){var b={};return la.each(a.match(Aa)||[],function(a,c){b[c]=!0}),b}function h(a){return a}function i(a){throw a}function j(a,b,c){var d;try{a&&la.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&la.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}function k(){_.removeEventListener("DOMContentLoaded",k),a.removeEventListener("load",k),la.ready()}function l(){this.expando=la.expando+l.uid++}function m(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Ia,"-$&").toLowerCase(),"string"==typeof(c=a.getAttribute(d))){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:Ha.test(c)?JSON.parse(c):c)}catch(a){}Ga.set(a,b,c)}else c=void 0;return c}function n(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return la.css(a,b,"")},i=h(),j=c&&c[3]||(la.cssNumber[b]?"":"px"),k=(la.cssNumber[b]||"px"!==j&&+i)&&Ka.exec(la.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do{f=f||".5",k/=f,la.style(a,b,k+j)}while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}function o(a){var b,c=a.ownerDocument,d=a.nodeName,e=Oa[d];return e||(b=c.body.appendChild(c.createElement(d)),e=la.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),Oa[d]=e,e)}function p(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=Fa.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&Ma(d)&&(e[f]=o(d))):"none"!==c&&(e[f]="none",Fa.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}function q(a,b){var c=void 0!==a.getElementsByTagName?a.getElementsByTagName(b||"*"):void 0!==a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&la.nodeName(a,b)?la.merge([a],c):c}function r(a,b){for(var c=0,d=a.length;c<d;c++)Fa.set(a[c],"globalEval",!b||Fa.get(b[c],"globalEval"))}function s(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if((f=a[n])||0===f)if("object"===la.type(f))la.merge(m,f.nodeType?[f]:f);else if(Ta.test(f)){
|
||
for(g=g||l.appendChild(b.createElement("div")),h=(Qa.exec(f)||["",""])[1].toLowerCase(),i=Sa[h]||Sa._default,g.innerHTML=i[1]+la.htmlPrefilter(f)+i[2],k=i[0];k--;)g=g.lastChild;la.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));for(l.textContent="",n=0;f=m[n++];)if(d&&la.inArray(f,d)>-1)e&&e.push(f);else if(j=la.contains(f.ownerDocument,f),g=q(l.appendChild(f),"script"),j&&r(g),c)for(k=0;f=g[k++];)Ra.test(f.type||"")&&c.push(f);return l}function t(){return!0}function u(){return!1}function v(){try{return _.activeElement}catch(a){}}function w(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)w(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),!1===e)e=u;else if(!e)return a;return 1===f&&(g=e,e=function(a){return la().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=la.guid++)),a.each(function(){la.event.add(this,b,e,d,c)})}function x(a,b){return la.nodeName(a,"table")&&la.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function y(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function z(a){var b=_a.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function A(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(Fa.hasData(a)&&(f=Fa.access(a),g=Fa.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)la.event.add(b,e,j[e][c])}Ga.hasData(a)&&(h=Ga.access(a),i=la.extend({},h),Ga.set(b,i))}}function B(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Pa.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function C(a,b,d,e){b=ca.apply([],b);var f,g,h,i,j,k,l=0,m=a.length,n=m-1,o=b[0],p=la.isFunction(o);if(p||m>1&&"string"==typeof o&&!ka.checkClone&&$a.test(o))return a.each(function(c){var f=a.eq(c);p&&(b[0]=o.call(this,c,f.html())),C(f,b,d,e)});if(m&&(f=s(b,a[0].ownerDocument,!1,a,e),g=f.firstChild,1===f.childNodes.length&&(f=g),g||e)){for(h=la.map(q(f,"script"),y),i=h.length;l<m;l++)j=f,l!==n&&(j=la.clone(j,!0,!0),i&&la.merge(h,q(j,"script"))),d.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,la.map(h,z),l=0;l<i;l++)j=h[l],Ra.test(j.type||"")&&!Fa.access(j,"globalEval")&&la.contains(k,j)&&(j.src?la._evalUrl&&la._evalUrl(j.src):c(j.textContent.replace(ab,""),k))}return a}function D(a,b,c){for(var d,e=b?la.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||la.cleanData(q(d)),d.parentNode&&(c&&la.contains(d.ownerDocument,d)&&r(q(d,"script")),d.parentNode.removeChild(d));return a}function E(a,b,c){var d,e,f,g,h=a.style;return c=c||db(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||la.contains(a.ownerDocument,a)||(g=la.style(a,b)),!ka.pixelMarginRight()&&cb.test(g)&&bb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function F(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function G(a){if(a in ib)return a;for(var b=a[0].toUpperCase()+a.slice(1),c=hb.length;c--;)if((a=hb[c]+b)in ib)return a}function H(a,b,c){var d=Ka.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function I(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;f<4;f+=2)"margin"===c&&(g+=la.css(a,c+La[f],!0,e)),d?("content"===c&&(g-=la.css(a,"padding"+La[f],!0,e)),"margin"!==c&&(g-=la.css(a,"border"+La[f]+"Width",!0,e))):(g+=la.css(a,"padding"+La[f],!0,e),"padding"!==c&&(g+=la.css(a,"border"+La[f]+"Width",!0,e)));return g}function J(a,b,c){var d,e=!0,f=db(a),g="border-box"===la.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=E(a,b,f),(d<0||null==d)&&(d=a.style[b]),cb.test(d))return d;e=g&&(ka.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+I(a,b,c||(g?"border":"content"),e,f)+"px"}function K(a,b,c,d,e){return new K.prototype.init(a,b,c,d,e)}function L(){kb&&(a.requestAnimationFrame(L),la.fx.tick())}function M(){return a.setTimeout(function(){jb=void 0}),jb=la.now()}function N(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=La[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function O(a,b,c){for(var d,e=(R.tweeners[b]||[]).concat(R.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function P(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,q=a.nodeType&&Ma(a),r=Fa.get(a,"fxshow");c.queue||(g=la._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,la.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],lb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}n[d]=r&&r[d]||la.style(a,d)}if((i=!la.isEmptyObject(b))||!la.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=r&&r.display,null==j&&(j=Fa.get(a,"display")),k=la.css(a,"display"),"none"===k&&(j?k=j:(p([a],!0),j=a.style.display||j,k=la.css(a,"display"),p([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===la.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(r?"hidden"in r&&(q=r.hidden):r=Fa.access(a,"fxshow",{display:j}),f&&(r.hidden=!q),q&&p([a],!0),m.done(function(){q||p([a]),Fa.remove(a,"fxshow");for(d in n)la.style(a,d,n[d])})),i=O(q?r[d]:0,d,m),d in r||(r[d]=i.start,q&&(i.end=i.start,i.start=0))}}function Q(a,b){var c,d,e,f,g;for(c in a)if(d=la.camelCase(c),e=b[d],f=a[c],la.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),(g=la.cssHooks[d])&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function R(a,b,c){var d,e,f=0,g=R.prefilters.length,h=la.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=jb||M(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:la.extend({},b),opts:la.extend(!0,{specialEasing:{},easing:la.easing._default},c),originalProperties:b,originalOptions:c,startTime:jb||M(),duration:c.duration,tweens:[],createTween:function(b,c){var d=la.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Q(k,j.opts.specialEasing);f<g;f++)if(d=R.prefilters[f].call(j,a,k,j.opts))return la.isFunction(d.stop)&&(la._queueHooks(j.elem,j.opts.queue).stop=la.proxy(d.stop,d)),d;return la.map(k,O,j),la.isFunction(j.opts.start)&&j.opts.start.call(a,j),la.fx.timer(la.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function S(a){return a.getAttribute&&a.getAttribute("class")||""}function T(a,b,c,d){var e;if(la.isArray(b))la.each(b,function(b,e){c||yb.test(a)?d(a,e):T(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==la.type(b))d(a,b);else for(e in b)T(a+"["+e+"]",b[e],c,d)}function U(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(Aa)||[];if(la.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function V(a,b,c,d){function e(h){var i;return f[h]=!0,la.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===Kb;return e(b.dataTypes[0])||!f["*"]&&e("*")}function W(a,b){var c,d,e=la.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&la.extend(!0,a,d),a}function X(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;"*"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Y(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(!(g=j[i+" "+f]||j["* "+f]))for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){!0===g?g=j[e]:!0!==j[e]&&(f=h[0],k.unshift(h[1]));break}if(!0!==g)if(g&&a.throws)b=g(b);else try{b=g(b)}catch(a){return{state:"parsererror",error:g?a:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function Z(a){return la.isWindow(a)?a:9===a.nodeType&&a.defaultView}var $=[],_=a.document,aa=Object.getPrototypeOf,ba=$.slice,ca=$.concat,da=$.push,ea=$.indexOf,fa={},ga=fa.toString,ha=fa.hasOwnProperty,ia=ha.toString,ja=ia.call(Object),ka={},la=function(a,b){return new la.fn.init(a,b)},ma=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,na=/^-ms-/,oa=/-([a-z])/g,pa=function(a,b){return b.toUpperCase()};la.fn=la.prototype={jquery:"3.1.0",constructor:la,length:0,toArray:function(){return ba.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){var b=la.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return la.each(this,a)},map:function(a){return this.pushStack(la.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:da,sort:$.sort,splice:$.splice},la.extend=la.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||la.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(la.isPlainObject(d)||(e=la.isArray(d)))?(e?(e=!1,f=c&&la.isArray(c)?c:[]):f=c&&la.isPlainObject(c)?c:{},g[b]=la.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},la.extend({expando:"jQuery"+("3.1.0"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===la.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=la.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==ga.call(a))&&(!(b=aa(a))||"function"==typeof(c=ha.call(b,"constructor")&&b.constructor)&&ia.call(c)===ja)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?fa[ga.call(a)]||"object":typeof a},globalEval:function(a){c(a)},camelCase:function(a){return a.replace(na,"ms-").replace(oa,pa)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,e=0;if(d(a))for(c=a.length;e<c&&!1!==b.call(a[e],e,a[e]);e++);else for(e in a)if(!1===b.call(a[e],e,a[e]))break;return a},trim:function(a){return null==a?"":(a+"").replace(ma,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(d(Object(a))?la.merge(c,"string"==typeof a?[a]:a):da.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:ea.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d=[],e=0,f=a.length,g=!c;e<f;e++)!b(a[e],e)!==g&&d.push(a[e]);return d},map:function(a,b,c){var e,f,g=0,h=[];if(d(a))for(e=a.length;g<e;g++)null!=(f=b(a[g],g,c))&&h.push(f);else for(g in a)null!=(f=b(a[g],g,c))&&h.push(f);return ca.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),la.isFunction(a))return d=ba.call(arguments,2),e=function(){return a.apply(b||this,d.concat(ba.call(arguments)))},e.guid=a.guid=a.guid||la.guid++,e},now:Date.now,support:ka}),"function"==typeof Symbol&&(la.fn[Symbol.iterator]=$[Symbol.iterator]),la.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){fa["[object "+b+"]"]=b.toLowerCase()});var qa=function(a){function b(a,b,c,d){var e,f,g,h,i,k,m,n=b&&b.ownerDocument,o=b?b.nodeType:9;if(c=c||[],"string"!=typeof a||!a||1!==o&&9!==o&&11!==o)return c;if(!d&&((b?b.ownerDocument||b:N)!==F&&E(b),b=b||F,H)){if(11!==o&&(i=pa.exec(a)))if(e=i[1]){if(9===o){if(!(g=b.getElementById(e)))return c;if(g.id===e)return c.push(g),c}else if(n&&(g=n.getElementById(e))&&L(b,g)&&g.id===e)return c.push(g),c}else{if(i[2])return Y.apply(c,b.getElementsByTagName(a)),c;if((e=i[3])&&u.getElementsByClassName&&b.getElementsByClassName)return Y.apply(c,b.getElementsByClassName(e)),c}if(u.qsa&&!S[a+" "]&&(!I||!I.test(a))){if(1!==o)n=b,m=a;else if("object"!==b.nodeName.toLowerCase()){for((h=b.getAttribute("id"))?h=h.replace(ta,ua):b.setAttribute("id",h=M),k=y(a),f=k.length;f--;)k[f]="#"+h+" "+l(k[f]);m=k.join(","),n=qa.test(a)&&j(b.parentNode)||b}if(m)try{return Y.apply(c,n.querySelectorAll(m)),c}catch(a){}finally{h===M&&b.removeAttribute("id")}}}return A(a.replace(fa,"$1"),b,c,d)}function c(){function a(c,d){return b.push(c+" ")>v.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[M]=!0,a}function e(a){var b=F.createElement("fieldset");try{return!!a(b)}catch(a){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function f(a,b){for(var c=a.split("|"),d=c.length;d--;)v.attrHandle[c[d]]=b}function g(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function h(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&!1===b.disabled&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!wa(b))!==a)}}function i(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function j(a){return a&&void 0!==a.getElementsByTagName&&a}function k(){}function l(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function m(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=P++;return b.first?function(b,c,e){for(;b=b[d];)if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[O,h];if(i){for(;b=b[d];)if((1===b.nodeType||g)&&a(b,c,i))return!0}else for(;b=b[d];)if(1===b.nodeType||g)if(l=b[M]||(b[M]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===O&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function n(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function o(a,c,d){for(var e=0,f=c.length;e<f;e++)b(a,c[e],d);return d}function p(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function q(a,b,c,e,f,g){return e&&!e[M]&&(e=q(e)),f&&!f[M]&&(f=q(f,g)),d(function(d,g,h,i){var j,k,l,m=[],n=[],q=g.length,r=d||o(b||"*",h.nodeType?[h]:h,[]),s=!a||!d&&b?r:p(r,m,a,h,i),t=c?f||(d?a:q||e)?[]:g:s;if(c&&c(s,t,h,i),e)for(j=p(t,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(t[n[k]]=!(s[n[k]]=l));if(d){if(f||a){if(f){for(j=[],k=t.length;k--;)(l=t[k])&&j.push(s[k]=l);f(null,t=[],j,i)}for(k=t.length;k--;)(l=t[k])&&(j=f?$(d,l):m[k])>-1&&(d[j]=!(g[j]=l))}}else t=p(t===g?t.splice(q,t.length):t),f?f(null,g,t,i):Y.apply(g,t)})}function r(a){for(var b,c,d,e=a.length,f=v.relative[a[0].type],g=f||v.relative[" "],h=f?1:0,i=m(function(a){return a===b},g,!0),j=m(function(a){return $(b,a)>-1},g,!0),k=[function(a,c,d){var e=!f&&(d||c!==B)||((b=c).nodeType?i(a,c,d):j(a,c,d));return b=null,e}];h<e;h++)if(c=v.relative[a[h].type])k=[m(n(k),c)];else{if(c=v.filter[a[h].type].apply(null,a[h].matches),c[M]){for(d=++h;d<e&&!v.relative[a[d].type];d++);return q(h>1&&n(k),h>1&&l(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(fa,"$1"),c,h<d&&r(a.slice(h,d)),d<e&&r(a=a.slice(d)),d<e&&l(a))}k.push(c)}return n(k)}function s(a,c){var e=c.length>0,f=a.length>0,g=function(d,g,h,i,j){var k,l,m,n=0,o="0",q=d&&[],r=[],s=B,t=d||f&&v.find.TAG("*",j),u=O+=null==s?1:Math.random()||.1,w=t.length;for(j&&(B=g===F||g||j);o!==w&&null!=(k=t[o]);o++){if(f&&k){for(l=0,g||k.ownerDocument===F||(E(k),h=!H);m=a[l++];)if(m(k,g||F,h)){i.push(k);break}j&&(O=u)}e&&((k=!m&&k)&&n--,d&&q.push(k))}if(n+=o,e&&o!==n){for(l=0;m=c[l++];)m(q,r,g,h);if(d){if(n>0)for(;o--;)q[o]||r[o]||(r[o]=W.call(i));r=p(r)}Y.apply(i,r),j&&!d&&r.length>0&&n+c.length>1&&b.uniqueSort(i)}return j&&(O=u,B=s),q};return e?d(g):g}var t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M="sizzle"+1*new Date,N=a.document,O=0,P=0,Q=c(),R=c(),S=c(),T=function(a,b){return a===b&&(D=!0),0},U={}.hasOwnProperty,V=[],W=V.pop,X=V.push,Y=V.push,Z=V.slice,$=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},_="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",aa="[\\x20\\t\\r\\n\\f]",ba="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",ca="\\["+aa+"*("+ba+")(?:"+aa+"*([*^$|!~]?=)"+aa+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ba+"))|)"+aa+"*\\]",da=":("+ba+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ca+")*)|.*)\\)|)",ea=new RegExp(aa+"+","g"),fa=new RegExp("^"+aa+"+|((?:^|[^\\\\])(?:\\\\.)*)"+aa+"+$","g"),ga=new RegExp("^"+aa+"*,"+aa+"*"),ha=new RegExp("^"+aa+"*([>+~]|"+aa+")"+aa+"*"),ia=new RegExp("="+aa+"*([^\\]'\"]*?)"+aa+"*\\]","g"),ja=new RegExp(da),ka=new RegExp("^"+ba+"$"),la={ID:new RegExp("^#("+ba+")"),CLASS:new RegExp("^\\.("+ba+")"),TAG:new RegExp("^("+ba+"|[*])"),ATTR:new RegExp("^"+ca),PSEUDO:new RegExp("^"+da),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+aa+"*(even|odd|(([+-]|)(\\d*)n|)"+aa+"*(?:([+-]|)"+aa+"*(\\d+)|))"+aa+"*\\)|)","i"),bool:new RegExp("^(?:"+_+")$","i"),needsContext:new RegExp("^"+aa+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+aa+"*((?:-\\d)?\\d*)"+aa+"*\\)|)(?=[^-]|$)","i")},ma=/^(?:input|select|textarea|button)$/i,na=/^h\d$/i,oa=/^[^{]+\{\s*\[native \w/,pa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,qa=/[+~]/,ra=new RegExp("\\\\([\\da-f]{1,6}"+aa+"?|("+aa+")|.)","ig"),sa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ta=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ua=function(a,b){return b?"\0"===a?"<22>":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},va=function(){E()},wa=m(function(a){return!0===a.disabled},{dir:"parentNode",next:"legend"});try{Y.apply(V=Z.call(N.childNodes),N.childNodes),V[N.childNodes.length].nodeType}catch(a){Y={apply:V.length?function(a,b){X.apply(a,Z.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}u=b.support={},x=b.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},E=b.setDocument=function(a){var b,c,d=a?a.ownerDocument||a:N;return d!==F&&9===d.nodeType&&d.documentElement?(F=d,G=F.documentElement,H=!x(F),N!==F&&(c=F.defaultView)&&c.top!==c&&(c.addEventListener?c.addEventListener("unload",va,!1):c.attachEvent&&c.attachEvent("onunload",va)),u.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),u.getElementsByTagName=e(function(a){return a.appendChild(F.createComment("")),!a.getElementsByTagName("*").length}),u.getElementsByClassName=oa.test(F.getElementsByClassName),u.getById=e(function(a){return G.appendChild(a).id=M,!F.getElementsByName||!F.getElementsByName(M).length}),u.getById?(v.find.ID=function(a,b){if(void 0!==b.getElementById&&H){var c=b.getElementById(a);return c?[c]:[]}},v.filter.ID=function(a){var b=a.replace(ra,sa);return function(a){return a.getAttribute("id")===b}}):(delete v.find.ID,v.filter.ID=function(a){var b=a.replace(ra,sa);return function(a){var c=void 0!==a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),v.find.TAG=u.getElementsByTagName?function(a,b){return void 0!==b.getElementsByTagName?b.getElementsByTagName(a):u.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},v.find.CLASS=u.getElementsByClassName&&function(a,b){if(void 0!==b.getElementsByClassName&&H)return b.getElementsByClassName(a)},J=[],I=[],(u.qsa=oa.test(F.querySelectorAll))&&(e(function(a){G.appendChild(a).innerHTML="<a id='"+M+"'></a><select id='"+M+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&I.push("[*^$]="+aa+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||I.push("\\["+aa+"*(?:value|"+_+")"),a.querySelectorAll("[id~="+M+"-]").length||I.push("~="),a.querySelectorAll(":checked").length||I.push(":checked"),a.querySelectorAll("a#"+M+"+*").length||I.push(".#.+[+~]")}),e(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=F.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&I.push("name"+aa+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&I.push(":enabled",":disabled"),G.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&I.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),I.push(",.*:")})),(u.matchesSelector=oa.test(K=G.matches||G.webkitMatchesSelector||G.mozMatchesSelector||G.oMatchesSelector||G.msMatchesSelector))&&e(function(a){u.disconnectedMatch=K.call(a,"*"),K.call(a,"[s!='']:x"),J.push("!=",da)}),I=I.length&&new RegExp(I.join("|")),J=J.length&&new RegExp(J.join("|")),b=oa.test(G.compareDocumentPosition),L=b||oa.test(G.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},T=b?function(a,b){if(a===b)return D=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;return c||(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&c||!u.sortDetached&&b.compareDocumentPosition(a)===c?a===F||a.ownerDocument===N&&L(N,a)?-1:b===F||b.ownerDocument===N&&L(N,b)?1:C?$(C,a)-$(C,b):0:4&c?-1:1)}:function(a,b){if(a===b)return D=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===F?-1:b===F?1:e?-1:f?1:C?$(C,a)-$(C,b):0;if(e===f)return g(a,b);for(c=a;c=c.parentNode;)h.unshift(c);for(c=b;c=c.parentNode;)i.unshift(c);for(;h[d]===i[d];)d++;return d?g(h[d],i[d]):h[d]===N?-1:i[d]===N?1:0},F):F},b.matches=function(a,c){return b(a,null,null,c)},b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==F&&E(a),c=c.replace(ia,"='$1']"),u.matchesSelector&&H&&!S[c+" "]&&(!J||!J.test(c))&&(!I||!I.test(c)))try{var d=K.call(a,c);if(d||u.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(a){}return b(c,F,null,[a]).length>0},b.contains=function(a,b){return(a.ownerDocument||a)!==F&&E(a),L(a,b)},b.attr=function(a,b){(a.ownerDocument||a)!==F&&E(a);var c=v.attrHandle[b.toLowerCase()],d=c&&U.call(v.attrHandle,b.toLowerCase())?c(a,b,!H):void 0;return void 0!==d?d:u.attributes||!H?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},b.escape=function(a){return(a+"").replace(ta,ua)},b.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},b.uniqueSort=function(a){var b,c=[],d=0,e=0;if(D=!u.detectDuplicates,C=!u.sortStable&&a.slice(0),a.sort(T),D){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return C=null,a},w=b.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=w(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=w(b);return c},v=b.selectors={cacheLength:50,createPseudo:d,match:la,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ra,sa),a[3]=(a[3]||a[4]||a[5]||"").replace(ra,sa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return la.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&ja.test(c)&&(b=y(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ra,sa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=Q[a+" "];return b||(b=new RegExp("(^|"+aa+")"+a+"("+aa+"|$)"))&&Q(a,function(a){return b.test("string"==typeof a.className&&a.className||void 0!==a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){var f=b.attr(e,a);return null==f?"!="===c:!c||(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f.replace(ea," ")+" ").indexOf(d)>-1:"|="===c&&(f===d||f.slice(0,d.length+1)===d+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){for(;p;){for(m=b;m=m[p];)if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(m=q,l=m[M]||(m[M]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===O&&j[1],t=n&&j[2],m=n&&q.childNodes[n];m=++n&&m&&m[p]||(t=n=0)||o.pop();)if(1===m.nodeType&&++t&&m===b){k[a]=[O,n,t];break}}else if(s&&(m=b,l=m[M]||(m[M]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===O&&j[1],t=n),!1===t)for(;(m=++n&&m&&m[p]||(t=n=0)||o.pop())&&((h?m.nodeName.toLowerCase()!==r:1!==m.nodeType)||!++t||(s&&(l=m[M]||(m[M]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[O,t]),m!==b)););return(t-=e)===d||t%d==0&&t/d>=0}}},PSEUDO:function(a,c){var e,f=v.pseudos[a]||v.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return f[M]?f(c):f.length>1?(e=[a,a,"",c],v.setFilters.hasOwnProperty(a.toLowerCase())?d(function(a,b){for(var d,e=f(a,c),g=e.length;g--;)d=$(a,e[g]),a[d]=!(b[d]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:d(function(a){var b=[],c=[],e=z(a.replace(fa,"$1"));return e[M]?d(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,d,f){return b[0]=a,e(b,null,f,c),b[0]=null,!c.pop()}}),has:d(function(a){return function(c){return b(a,c).length>0}}),contains:d(function(a){return a=a.replace(ra,sa),function(b){return(b.textContent||b.innerText||w(b)).indexOf(a)>-1}}),lang:d(function(a){return ka.test(a||"")||b.error("unsupported lang: "+a),a=a.replace(ra,sa).toLowerCase(),function(b){var c;do{if(c=H?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return(c=c.toLowerCase())===a||0===c.indexOf(a+"-")}while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===G},focus:function(a){return a===F.activeElement&&(!F.hasFocus||F.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:h(!1),disabled:h(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,!0===a.selected},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!v.pseudos.empty(a)},header:function(a){return na.test(a.nodeName)},input:function(a){return ma.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:i(function(){return[0]}),last:i(function(a,b){return[b-1]}),eq:i(function(a,b,c){return[c<0?c+b:c]}),even:i(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:i(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:i(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:i(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},v.pseudos.nth=v.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})v.pseudos[t]=function(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}(t);for(t in{submit:!0,reset:!0})v.pseudos[t]=function(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}(t);return k.prototype=v.filters=v.pseudos,v.setFilters=new k,y=b.tokenize=function(a,c){var d,e,f,g,h,i,j,k=R[a+" "];if(k)return c?0:k.slice(0);for(h=a,i=[],j=v.preFilter;h;){d&&!(e=ga.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=ha.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(fa," ")}),h=h.slice(d.length));for(g in v.filter)!(e=la[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?b.error(a):R(a,i).slice(0)},z=b.compile=function(a,b){var c,d=[],e=[],f=S[a+" "];if(!f){for(b||(b=y(a)),c=b.length;c--;)f=r(b[c]),f[M]?d.push(f):e.push(f);f=S(a,s(e,d)),f.selector=a}return f},A=b.select=function(a,b,c,d){var e,f,g,h,i,k="function"==typeof a&&a,m=!d&&y(a=k.selector||a);if(c=c||[],1===m.length){if(f=m[0]=m[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&u.getById&&9===b.nodeType&&H&&v.relative[f[1].type]){if(!(b=(v.find.ID(g.matches[0].replace(ra,sa),b)||[])[0]))return c;k&&(b=b.parentNode),a=a.slice(f.shift().value.length)}for(e=la.needsContext.test(a)?0:f.length;e--&&(g=f[e],!v.relative[h=g.type]);)if((i=v.find[h])&&(d=i(g.matches[0].replace(ra,sa),qa.test(f[0].type)&&j(b.parentNode)||b))){if(f.splice(e,1),!(a=d.length&&l(f)))return Y.apply(c,d),c;break}}return(k||z(a,m))(d,b,!H,c,!b||qa.test(a)&&j(b.parentNode)||b),c},u.sortStable=M.split("").sort(T).join("")===M,u.detectDuplicates=!!D,E(),u.sortDetached=e(function(a){return 1&a.compareDocumentPosition(F.createElement("fieldset"))}),e(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||f("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),u.attributes&&e(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||f("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),e(function(a){return null==a.getAttribute("disabled")})||f(_,function(a,b,c){var d;if(!c)return!0===a[b]?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),b}(a);la.find=qa,la.expr=qa.selectors,la.expr[":"]=la.expr.pseudos,
|
||
la.uniqueSort=la.unique=qa.uniqueSort,la.text=qa.getText,la.isXMLDoc=qa.isXML,la.contains=qa.contains,la.escapeSelector=qa.escape;var ra=function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&la(a).is(c))break;d.push(a)}return d},sa=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},ta=la.expr.match.needsContext,ua=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,va=/^.[^:#\[\.,]*$/;la.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?la.find.matchesSelector(d,a)?[d]:[]:la.find.matches(a,la.grep(b,function(a){return 1===a.nodeType}))},la.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(la(a).filter(function(){for(b=0;b<d;b++)if(la.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)la.find(a,e[b],c);return d>1?la.uniqueSort(c):c},filter:function(a){return this.pushStack(e(this,a||[],!1))},not:function(a){return this.pushStack(e(this,a||[],!0))},is:function(a){return!!e(this,"string"==typeof a&&ta.test(a)?la(a):a||[],!1).length}});var wa,xa=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(la.fn.init=function(a,b,c){var d,e;if(!a)return this;if(c=c||wa,"string"==typeof a){if(!(d="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:xa.exec(a))||!d[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(d[1]){if(b=b instanceof la?b[0]:b,la.merge(this,la.parseHTML(d[1],b&&b.nodeType?b.ownerDocument||b:_,!0)),ua.test(d[1])&&la.isPlainObject(b))for(d in b)la.isFunction(this[d])?this[d](b[d]):this.attr(d,b[d]);return this}return e=_.getElementById(d[2]),e&&(this[0]=e,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):la.isFunction(a)?void 0!==c.ready?c.ready(a):a(la):la.makeArray(a,this)}).prototype=la.fn,wa=la(_);var ya=/^(?:parents|prev(?:Until|All))/,za={children:!0,contents:!0,next:!0,prev:!0};la.fn.extend({has:function(a){var b=la(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(la.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&la(a);if(!ta.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&la.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?la.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?ea.call(la(a),this[0]):ea.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(la.uniqueSort(la.merge(this.get(),la(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),la.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return ra(a,"parentNode")},parentsUntil:function(a,b,c){return ra(a,"parentNode",c)},next:function(a){return f(a,"nextSibling")},prev:function(a){return f(a,"previousSibling")},nextAll:function(a){return ra(a,"nextSibling")},prevAll:function(a){return ra(a,"previousSibling")},nextUntil:function(a,b,c){return ra(a,"nextSibling",c)},prevUntil:function(a,b,c){return ra(a,"previousSibling",c)},siblings:function(a){return sa((a.parentNode||{}).firstChild,a)},children:function(a){return sa(a.firstChild)},contents:function(a){return a.contentDocument||la.merge([],a.childNodes)}},function(a,b){la.fn[a]=function(c,d){var e=la.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=la.filter(d,e)),this.length>1&&(za[a]||la.uniqueSort(e),ya.test(a)&&e.reverse()),this.pushStack(e)}});var Aa=/\S+/g;la.Callbacks=function(a){a="string"==typeof a?g(a):la.extend({},a);var b,c,d,e,f=[],h=[],i=-1,j=function(){for(e=a.once,d=b=!0;h.length;i=-1)for(c=h.shift();++i<f.length;)!1===f[i].apply(c[0],c[1])&&a.stopOnFalse&&(i=f.length,c=!1);a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},k={add:function(){return f&&(c&&!b&&(i=f.length-1,h.push(c)),function b(c){la.each(c,function(c,d){la.isFunction(d)?a.unique&&k.has(d)||f.push(d):d&&d.length&&"string"!==la.type(d)&&b(d)})}(arguments),c&&!b&&j()),this},remove:function(){return la.each(arguments,function(a,b){for(var c;(c=la.inArray(b,f,c))>-1;)f.splice(c,1),c<=i&&i--}),this},has:function(a){return a?la.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=h=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=h=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],h.push(c),b||j()),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},la.extend({Deferred:function(b){var c=[["notify","progress",la.Callbacks("memory"),la.Callbacks("memory"),2],["resolve","done",la.Callbacks("once memory"),la.Callbacks("once memory"),0,"resolved"],["reject","fail",la.Callbacks("once memory"),la.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},catch:function(a){return e.then(null,a)},pipe:function(){var a=arguments;return la.Deferred(function(b){la.each(c,function(c,d){var e=la.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&la.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){function f(b,c,d,e){return function(){var j=this,k=arguments,l=function(){var a,l;if(!(b<g)){if((a=d.apply(j,k))===c.promise())throw new TypeError("Thenable self-resolution");l=a&&("object"==typeof a||"function"==typeof a)&&a.then,la.isFunction(l)?e?l.call(a,f(g,c,h,e),f(g,c,i,e)):(g++,l.call(a,f(g,c,h,e),f(g,c,i,e),f(g,c,h,c.notifyWith))):(d!==h&&(j=void 0,k=[a]),(e||c.resolveWith)(j,k))}},m=e?l:function(){try{l()}catch(a){la.Deferred.exceptionHook&&la.Deferred.exceptionHook(a,m.stackTrace),b+1>=g&&(d!==i&&(j=void 0,k=[a]),c.rejectWith(j,k))}};b?m():(la.Deferred.getStackHook&&(m.stackTrace=la.Deferred.getStackHook()),a.setTimeout(m))}}var g=0;return la.Deferred(function(a){c[0][3].add(f(0,a,la.isFunction(e)?e:h,a.notifyWith)),c[1][3].add(f(0,a,la.isFunction(b)?b:h)),c[2][3].add(f(0,a,la.isFunction(d)?d:i))}).promise()},promise:function(a){return null!=a?la.extend(a,e):e}},f={};return la.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=ba.call(arguments),f=la.Deferred(),g=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?ba.call(arguments):c,--b||f.resolveWith(d,e)}};if(b<=1&&(j(a,f.done(g(c)).resolve,f.reject),"pending"===f.state()||la.isFunction(e[c]&&e[c].then)))return f.then();for(;c--;)j(e[c],g(c),f.reject);return f.promise()}});var Ba=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;la.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Ba.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},la.readyException=function(b){a.setTimeout(function(){throw b})};var Ca=la.Deferred();la.fn.ready=function(a){return Ca.then(a).catch(function(a){la.readyException(a)}),this},la.extend({isReady:!1,readyWait:1,holdReady:function(a){a?la.readyWait++:la.ready(!0)},ready:function(a){(!0===a?--la.readyWait:la.isReady)||(la.isReady=!0,!0!==a&&--la.readyWait>0||Ca.resolveWith(_,[la]))}}),la.ready.then=Ca.then,"complete"===_.readyState||"loading"!==_.readyState&&!_.documentElement.doScroll?a.setTimeout(la.ready):(_.addEventListener("DOMContentLoaded",k),a.addEventListener("load",k));var Da=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===la.type(c)){e=!0;for(h in c)Da(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,la.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(la(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Ea=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};l.uid=1,l.prototype={cache:function(a){var b=a[this.expando];return b||(b={},Ea(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[la.camelCase(b)]=c;else for(d in b)e[la.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][la.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){la.isArray(b)?b=b.map(la.camelCase):(b=la.camelCase(b),b=b in d?[b]:b.match(Aa)||[]),c=b.length;for(;c--;)delete d[b[c]]}(void 0===b||la.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!la.isEmptyObject(b)}};var Fa=new l,Ga=new l,Ha=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Ia=/[A-Z]/g;la.extend({hasData:function(a){return Ga.hasData(a)||Fa.hasData(a)},data:function(a,b,c){return Ga.access(a,b,c)},removeData:function(a,b){Ga.remove(a,b)},_data:function(a,b,c){return Fa.access(a,b,c)},_removeData:function(a,b){Fa.remove(a,b)}}),la.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=Ga.get(f),1===f.nodeType&&!Fa.get(f,"hasDataAttrs"))){for(c=g.length;c--;)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=la.camelCase(d.slice(5)),m(f,d,e[d])));Fa.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){Ga.set(this,a)}):Da(this,function(b){var c;if(f&&void 0===b){if(void 0!==(c=Ga.get(f,a)))return c;if(void 0!==(c=m(f,a)))return c}else this.each(function(){Ga.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){Ga.remove(this,a)})}}),la.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=Fa.get(a,b),c&&(!d||la.isArray(c)?d=Fa.access(a,b,la.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=la.queue(a,b),d=c.length,e=c.shift(),f=la._queueHooks(a,b),g=function(){la.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return Fa.get(a,c)||Fa.access(a,c,{empty:la.Callbacks("once memory").add(function(){Fa.remove(a,[b+"queue",c])})})}}),la.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?la.queue(this[0],a):void 0===b?this:this.each(function(){var c=la.queue(this,a,b);la._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&la.dequeue(this,a)})},dequeue:function(a){return this.each(function(){la.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=la.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};for("string"!=typeof a&&(b=a,a=void 0),a=a||"fx";g--;)(c=Fa.get(f[g],a+"queueHooks"))&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Ja=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Ka=new RegExp("^(?:([+-])=|)("+Ja+")([a-z%]*)$","i"),La=["Top","Right","Bottom","Left"],Ma=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&la.contains(a.ownerDocument,a)&&"none"===la.css(a,"display")},Na=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Oa={};la.fn.extend({show:function(){return p(this,!0)},hide:function(){return p(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){Ma(this)?la(this).show():la(this).hide()})}});var Pa=/^(?:checkbox|radio)$/i,Qa=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,Ra=/^$|\/(?:java|ecma)script/i,Sa={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Sa.optgroup=Sa.option,Sa.tbody=Sa.tfoot=Sa.colgroup=Sa.caption=Sa.thead,Sa.th=Sa.td;var Ta=/<|&#?\w+;/;!function(){var a=_.createDocumentFragment(),b=a.appendChild(_.createElement("div")),c=_.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),ka.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",ka.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var Ua=_.documentElement,Va=/^key/,Wa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Xa=/^([^.]*)(?:\.(.+)|)/;la.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=Fa.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),e&&la.find.matchesSelector(Ua,e),c.guid||(c.guid=la.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return void 0!==la&&la.event.triggered!==b.type?la.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(Aa)||[""],j=b.length;j--;)h=Xa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=la.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=la.event.special[n]||{},k=la.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&la.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&!1!==l.setup.call(a,d,o,g)||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),la.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=Fa.hasData(a)&&Fa.get(a);if(q&&(i=q.events)){for(b=(b||"").match(Aa)||[""],j=b.length;j--;)if(h=Xa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=la.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&!1!==l.teardown.call(a,o,q.handle)||la.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)la.event.remove(a,n+b[j],c,d,!0);la.isEmptyObject(i)&&Fa.remove(a,"handle events")}},dispatch:function(a){var b,c,d,e,f,g,h=la.event.fix(a),i=new Array(arguments.length),j=(Fa.get(this,"events")||{})[h.type]||[],k=la.event.special[h.type]||{};for(i[0]=h,b=1;b<arguments.length;b++)i[b]=arguments[b];if(h.delegateTarget=this,!k.preDispatch||!1!==k.preDispatch.call(this,h)){for(g=la.event.handlers.call(this,h,j),b=0;(e=g[b++])&&!h.isPropagationStopped();)for(h.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!h.isImmediatePropagationStopped();)h.rnamespace&&!h.rnamespace.test(f.namespace)||(h.handleObj=f,h.data=f.data,void 0!==(d=((la.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,i))&&!1===(h.result=d)&&(h.preventDefault(),h.stopPropagation()));return k.postDispatch&&k.postDispatch.call(this,h),h.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(!0!==i.disabled||"click"!==a.type)){for(d=[],c=0;c<h;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?la(e,this).index(i)>-1:la.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(la.Event.prototype,a,{enumerable:!0,configurable:!0,get:la.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[la.expando]?a:new la.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==v()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===v()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&la.nodeName(this,"input"))return this.click(),!1},_default:function(a){return la.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},la.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},la.Event=function(a,b){if(!(this instanceof la.Event))return new la.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&!1===a.returnValue?t:u,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&la.extend(this,b),this.timeStamp=a&&a.timeStamp||la.now(),this[la.expando]=!0},la.Event.prototype={constructor:la.Event,isDefaultPrevented:u,isPropagationStopped:u,isImmediatePropagationStopped:u,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=t,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=t,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=t,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},la.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&Va.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&Wa.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},la.event.addProp),la.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){la.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||la.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),la.fn.extend({on:function(a,b,c,d){return w(this,a,b,c,d)},one:function(a,b,c,d){return w(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,la(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return!1!==b&&"function"!=typeof b||(c=b,b=void 0),!1===c&&(c=u),this.each(function(){la.event.remove(this,a,c,b)})}});var Ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Za=/<script|<style|<link/i,$a=/checked\s*(?:[^=]|=\s*.checked.)/i,_a=/^true\/(.*)/,ab=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;la.extend({htmlPrefilter:function(a){return a.replace(Ya,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=la.contains(a.ownerDocument,a);if(!(ka.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||la.isXMLDoc(a)))for(g=q(h),f=q(a),d=0,e=f.length;d<e;d++)B(f[d],g[d]);if(b)if(c)for(f=f||q(a),g=g||q(h),d=0,e=f.length;d<e;d++)A(f[d],g[d]);else A(a,h);return g=q(h,"script"),g.length>0&&r(g,!i&&q(a,"script")),h},cleanData:function(a){for(var b,c,d,e=la.event.special,f=0;void 0!==(c=a[f]);f++)if(Ea(c)){if(b=c[Fa.expando]){if(b.events)for(d in b.events)e[d]?la.event.remove(c,d):la.removeEvent(c,d,b.handle);c[Fa.expando]=void 0}c[Ga.expando]&&(c[Ga.expando]=void 0)}}}),la.fn.extend({detach:function(a){return D(this,a,!0)},remove:function(a){return D(this,a)},text:function(a){return Da(this,function(a){return void 0===a?la.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return C(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){x(this,a).appendChild(a)}})},prepend:function(){return C(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=x(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return C(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return C(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(la.cleanData(q(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return la.clone(this,a,b)})},html:function(a){return Da(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Za.test(a)&&!Sa[(Qa.exec(a)||["",""])[1].toLowerCase()]){a=la.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(la.cleanData(q(b,!1)),b.innerHTML=a);b=0}catch(a){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return C(this,arguments,function(b){var c=this.parentNode;la.inArray(this,a)<0&&(la.cleanData(q(this)),c&&c.replaceChild(b,this))},a)}}),la.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){la.fn[a]=function(a){for(var c,d=[],e=la(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),la(e[g])[b](c),da.apply(d,c.get());return this.pushStack(d)}});var bb=/^margin/,cb=new RegExp("^("+Ja+")(?!px)[a-z%]+$","i"),db=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(h){h.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",h.innerHTML="",Ua.appendChild(g);var b=a.getComputedStyle(h);c="1%"!==b.top,f="2px"===b.marginLeft,d="4px"===b.width,h.style.marginRight="50%",e="4px"===b.marginRight,Ua.removeChild(g),h=null}}var c,d,e,f,g=_.createElement("div"),h=_.createElement("div");h.style&&(h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",ka.clearCloneStyle="content-box"===h.style.backgroundClip,g.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",g.appendChild(h),la.extend(ka,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),d},pixelMarginRight:function(){return b(),e},reliableMarginLeft:function(){return b(),f}}))}();var eb=/^(none|table(?!-c[ea]).+)/,fb={position:"absolute",visibility:"hidden",display:"block"},gb={letterSpacing:"0",fontWeight:"400"},hb=["Webkit","Moz","ms"],ib=_.createElement("div").style;la.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=E(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=la.camelCase(b),i=a.style;if(b=la.cssProps[h]||(la.cssProps[h]=G(h)||h),g=la.cssHooks[b]||la.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];f=typeof c,"string"===f&&(e=Ka.exec(c))&&e[1]&&(c=n(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(la.cssNumber[h]?"":"px")),ka.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c))}},css:function(a,b,c,d){var e,f,g,h=la.camelCase(b);return b=la.cssProps[h]||(la.cssProps[h]=G(h)||h),g=la.cssHooks[b]||la.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=E(a,b,d)),"normal"===e&&b in gb&&(e=gb[b]),""===c||c?(f=parseFloat(e),!0===c||isFinite(f)?f||0:e):e}}),la.each(["height","width"],function(a,b){la.cssHooks[b]={get:function(a,c,d){if(c)return!eb.test(la.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?J(a,b,d):Na(a,fb,function(){return J(a,b,d)})},set:function(a,c,d){var e,f=d&&db(a),g=d&&I(a,b,d,"border-box"===la.css(a,"boxSizing",!1,f),f);return g&&(e=Ka.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=la.css(a,b)),H(a,c,g)}}}),la.cssHooks.marginLeft=F(ka.reliableMarginLeft,function(a,b){if(b)return(parseFloat(E(a,"marginLeft"))||a.getBoundingClientRect().left-Na(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),la.each({margin:"",padding:"",border:"Width"},function(a,b){la.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+La[d]+b]=f[d]||f[d-2]||f[0];return e}},bb.test(a)||(la.cssHooks[a+b].set=H)}),la.fn.extend({css:function(a,b){return Da(this,function(a,b,c){var d,e,f={},g=0;if(la.isArray(b)){for(d=db(a),e=b.length;g<e;g++)f[b[g]]=la.css(a,b[g],!1,d);return f}return void 0!==c?la.style(a,b,c):la.css(a,b)},a,b,arguments.length>1)}}),la.Tween=K,K.prototype={constructor:K,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||la.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(la.cssNumber[c]?"":"px")},cur:function(){var a=K.propHooks[this.prop];return a&&a.get?a.get(this):K.propHooks._default.get(this)},run:function(a){var b,c=K.propHooks[this.prop];return this.options.duration?this.pos=b=la.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):K.propHooks._default.set(this),this}},K.prototype.init.prototype=K.prototype,K.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=la.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){la.fx.step[a.prop]?la.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[la.cssProps[a.prop]]&&!la.cssHooks[a.prop]?a.elem[a.prop]=a.now:la.style(a.elem,a.prop,a.now+a.unit)}}},K.propHooks.scrollTop=K.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},la.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},la.fx=K.prototype.init,la.fx.step={};var jb,kb,lb=/^(?:toggle|show|hide)$/,mb=/queueHooks$/;la.Animation=la.extend(R,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return n(c.elem,a,Ka.exec(b),c),c}]},tweener:function(a,b){la.isFunction(a)?(b=a,a=["*"]):a=a.match(Aa);for(var c,d=0,e=a.length;d<e;d++)c=a[d],R.tweeners[c]=R.tweeners[c]||[],R.tweeners[c].unshift(b)},prefilters:[P],prefilter:function(a,b){b?R.prefilters.unshift(a):R.prefilters.push(a)}}),la.speed=function(a,b,c){var d=a&&"object"==typeof a?la.extend({},a):{complete:c||!c&&b||la.isFunction(a)&&a,duration:a,easing:c&&b||b&&!la.isFunction(b)&&b};return la.fx.off||_.hidden?d.duration=0:d.duration="number"==typeof d.duration?d.duration:d.duration in la.fx.speeds?la.fx.speeds[d.duration]:la.fx.speeds._default,null!=d.queue&&!0!==d.queue||(d.queue="fx"),d.old=d.complete,d.complete=function(){la.isFunction(d.old)&&d.old.call(this),d.queue&&la.dequeue(this,d.queue)},d},la.fn.extend({fadeTo:function(a,b,c,d){return this.filter(Ma).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=la.isEmptyObject(a),f=la.speed(b,c,d),g=function(){var b=R(this,la.extend({},a),f);(e||Fa.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||!1===f.queue?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&!1!==a&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=la.timers,g=Fa.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&mb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||la.dequeue(this,a)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var b,c=Fa.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=la.timers,g=d?d.length:0;for(c.finish=!0,la.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),la.each(["toggle","show","hide"],function(a,b){var c=la.fn[b];la.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(N(b,!0),a,d,e)}}),la.each({slideDown:N("show"),slideUp:N("hide"),slideToggle:N("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){la.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),la.timers=[],la.fx.tick=function(){var a,b=0,c=la.timers;for(jb=la.now();b<c.length;b++)(a=c[b])()||c[b]!==a||c.splice(b--,1);c.length||la.fx.stop(),jb=void 0},la.fx.timer=function(a){la.timers.push(a),a()?la.fx.start():la.timers.pop()},la.fx.interval=13,la.fx.start=function(){kb||(kb=a.requestAnimationFrame?a.requestAnimationFrame(L):a.setInterval(la.fx.tick,la.fx.interval))},la.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(kb):a.clearInterval(kb),kb=null},la.fx.speeds={slow:600,fast:200,_default:400},la.fn.delay=function(b,c){return b=la.fx?la.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=_.createElement("input"),b=_.createElement("select"),c=b.appendChild(_.createElement("option"));a.type="checkbox",ka.checkOn=""!==a.value,ka.optSelected=c.selected,a=_.createElement("input"),a.value="t",a.type="radio",ka.radioValue="t"===a.value}();var nb,ob=la.expr.attrHandle;la.fn.extend({attr:function(a,b){return Da(this,la.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){la.removeAttr(this,a)})}}),la.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return void 0===a.getAttribute?la.prop(a,b,c):(1===f&&la.isXMLDoc(a)||(e=la.attrHooks[b.toLowerCase()]||(la.expr.match.bool.test(b)?nb:void 0)),void 0!==c?null===c?void la.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=la.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!ka.radioValue&&"radio"===b&&la.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(Aa);if(e&&1===a.nodeType)for(;c=e[d++];)a.removeAttribute(c)}}),nb={set:function(a,b,c){return!1===b?la.removeAttr(a,c):a.setAttribute(c,c),c}},la.each(la.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ob[b]||la.find.attr;ob[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ob[g],ob[g]=e,e=null!=c(a,b,d)?g:null,ob[g]=f),e}});var pb=/^(?:input|select|textarea|button)$/i,qb=/^(?:a|area)$/i;la.fn.extend({prop:function(a,b){return Da(this,la.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[la.propFix[a]||a]})}}),la.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&la.isXMLDoc(a)||(b=la.propFix[b]||b,e=la.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=la.find.attr(a,"tabindex")
|
||
;return b?parseInt(b,10):pb.test(a.nodeName)||qb.test(a.nodeName)&&a.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),ka.optSelected||(la.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),la.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){la.propFix[this.toLowerCase()]=this});var rb=/[\t\r\n\f]/g;la.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(la.isFunction(a))return this.each(function(b){la(this).addClass(a.call(this,b,S(this)))});if("string"==typeof a&&a)for(b=a.match(Aa)||[];c=this[i++];)if(e=S(c),d=1===c.nodeType&&(" "+e+" ").replace(rb," ")){for(g=0;f=b[g++];)d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=la.trim(d),e!==h&&c.setAttribute("class",h)}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(la.isFunction(a))return this.each(function(b){la(this).removeClass(a.call(this,b,S(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a)for(b=a.match(Aa)||[];c=this[i++];)if(e=S(c),d=1===c.nodeType&&(" "+e+" ").replace(rb," ")){for(g=0;f=b[g++];)for(;d.indexOf(" "+f+" ")>-1;)d=d.replace(" "+f+" "," ");h=la.trim(d),e!==h&&c.setAttribute("class",h)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):la.isFunction(a)?this.each(function(c){la(this).toggleClass(a.call(this,c,S(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c)for(d=0,e=la(this),f=a.match(Aa)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else void 0!==a&&"boolean"!==c||(b=S(this),b&&Fa.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||!1===a?"":Fa.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;for(b=" "+a+" ";c=this[d++];)if(1===c.nodeType&&(" "+S(c)+" ").replace(rb," ").indexOf(b)>-1)return!0;return!1}});var sb=/\r/g,tb=/[\x20\t\r\n\f]+/g;la.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=la.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,la(this).val()):a,null==e?e="":"number"==typeof e?e+="":la.isArray(e)&&(e=la.map(e,function(a){return null==a?"":a+""})),(b=la.valHooks[this.type]||la.valHooks[this.nodeName.toLowerCase()])&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return(b=la.valHooks[e.type]||la.valHooks[e.nodeName.toLowerCase()])&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(sb,""):null==c?"":c)}}}),la.extend({valHooks:{option:{get:function(a){var b=la.find.attr(a,"value");return null!=b?b:la.trim(la.text(a)).replace(tb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i<h;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!la.nodeName(c.parentNode,"optgroup"))){if(b=la(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=la.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=la.inArray(la.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),la.each(["radio","checkbox"],function(){la.valHooks[this]={set:function(a,b){if(la.isArray(b))return a.checked=la.inArray(la(a).val(),b)>-1}},ka.checkOn||(la.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var ub=/^(?:focusinfocus|focusoutblur)$/;la.extend(la.event,{trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||_],n=ha.call(b,"type")?b.type:b,o=ha.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||_,3!==d.nodeType&&8!==d.nodeType&&!ub.test(n+la.event.triggered)&&(n.indexOf(".")>-1&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[la.expando]?b:new la.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:la.makeArray(c,[b]),l=la.event.special[n]||{},e||!l.trigger||!1!==l.trigger.apply(d,c))){if(!e&&!l.noBubble&&!la.isWindow(d)){for(i=l.delegateType||n,ub.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||_)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(Fa.get(g,"events")||{})[b.type]&&Fa.get(g,"handle"),k&&k.apply(g,c),(k=j&&g[j])&&k.apply&&Ea(g)&&(b.result=k.apply(g,c),!1===b.result&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&!1!==l._default.apply(m.pop(),c)||!Ea(d)||j&&la.isFunction(d[n])&&!la.isWindow(d)&&(h=d[j],h&&(d[j]=null),la.event.triggered=n,d[n](),la.event.triggered=void 0,h&&(d[j]=h)),b.result}},simulate:function(a,b,c){var d=la.extend(new la.Event,c,{type:a,isSimulated:!0});la.event.trigger(d,null,b)}}),la.fn.extend({trigger:function(a,b){return this.each(function(){la.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return la.event.trigger(a,b,c,!0)}}),la.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){la.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),la.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),ka.focusin="onfocusin"in a,ka.focusin||la.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){la.event.simulate(b,a.target,la.event.fix(a))};la.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=Fa.access(d,b);e||d.addEventListener(a,c,!0),Fa.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=Fa.access(d,b)-1;e?Fa.access(d,b,e):(d.removeEventListener(a,c,!0),Fa.remove(d,b))}}});var vb=a.location,wb=la.now(),xb=/\?/;la.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(a){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||la.error("Invalid XML: "+b),c};var yb=/\[\]$/,zb=/\r?\n/g,Ab=/^(?:submit|button|image|reset|file)$/i,Bb=/^(?:input|select|textarea|keygen)/i;la.param=function(a,b){var c,d=[],e=function(a,b){var c=la.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(la.isArray(a)||a.jquery&&!la.isPlainObject(a))la.each(a,function(){e(this.name,this.value)});else for(c in a)T(c,a[c],b,e);return d.join("&")},la.fn.extend({serialize:function(){return la.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=la.prop(this,"elements");return a?la.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!la(this).is(":disabled")&&Bb.test(this.nodeName)&&!Ab.test(a)&&(this.checked||!Pa.test(a))}).map(function(a,b){var c=la(this).val();return null==c?null:la.isArray(c)?la.map(c,function(a){return{name:b.name,value:a.replace(zb,"\r\n")}}):{name:b.name,value:c.replace(zb,"\r\n")}}).get()}});var Cb=/%20/g,Db=/#.*$/,Eb=/([?&])_=[^&]*/,Fb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Gb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Hb=/^(?:GET|HEAD)$/,Ib=/^\/\//,Jb={},Kb={},Lb="*/".concat("*"),Mb=_.createElement("a");Mb.href=vb.href,la.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:vb.href,type:"GET",isLocal:Gb.test(vb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Lb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":la.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?W(W(a,la.ajaxSettings),b):W(la.ajaxSettings,a)},ajaxPrefilter:U(Jb),ajaxTransport:U(Kb),ajax:function(b,c){function d(b,c,d,h){var j,m,n,u,v,w=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",x.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(u=X(o,x,d)),u=Y(o,u,x,j),j?(o.ifModified&&(v=x.getResponseHeader("Last-Modified"),v&&(la.lastModified[f]=v),(v=x.getResponseHeader("etag"))&&(la.etag[f]=v)),204===b||"HEAD"===o.type?w="nocontent":304===b?w="notmodified":(w=u.state,m=u.data,n=u.error,j=!n)):(n=w,!b&&w||(w="error",b<0&&(b=0))),x.status=b,x.statusText=(c||w)+"",j?r.resolveWith(p,[m,w,x]):r.rejectWith(p,[x,w,n]),x.statusCode(t),t=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[x,o,j?m:n]),s.fireWith(p,[x,w]),l&&(q.trigger("ajaxComplete",[x,o]),--la.active||la.event.trigger("ajaxStop")))}"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=la.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?la(p):la.event,r=la.Deferred(),s=la.Callbacks("once memory"),t=o.statusCode||{},u={},v={},w="canceled",x={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h)for(h={};b=Fb.exec(g);)h[b[1].toLowerCase()]=b[2];b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=v[a.toLowerCase()]=v[a.toLowerCase()]||a,u[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)x.always(a[x.status]);else for(b in a)t[b]=[t[b],a[b]];return this},abort:function(a){var b=a||w;return e&&e.abort(b),d(0,b),this}};if(r.promise(x),o.url=((b||o.url||vb.href)+"").replace(Ib,vb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(Aa)||[""],null==o.crossDomain){j=_.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Mb.protocol+"//"+Mb.host!=j.protocol+"//"+j.host}catch(a){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=la.param(o.data,o.traditional)),V(Jb,o,c,x),k)return x;l=la.event&&o.global,l&&0==la.active++&&la.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Hb.test(o.type),f=o.url.replace(Db,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Cb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(xb.test(f)?"&":"?")+o.data,delete o.data),!1===o.cache&&(f=f.replace(Eb,""),n=(xb.test(f)?"&":"?")+"_="+wb+++n),o.url=f+n),o.ifModified&&(la.lastModified[f]&&x.setRequestHeader("If-Modified-Since",la.lastModified[f]),la.etag[f]&&x.setRequestHeader("If-None-Match",la.etag[f])),(o.data&&o.hasContent&&!1!==o.contentType||c.contentType)&&x.setRequestHeader("Content-Type",o.contentType),x.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Lb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)x.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(!1===o.beforeSend.call(p,x,o)||k))return x.abort();if(w="abort",s.add(o.complete),x.done(o.success),x.fail(o.error),e=V(Kb,o,c,x)){if(x.readyState=1,l&&q.trigger("ajaxSend",[x,o]),k)return x;o.async&&o.timeout>0&&(i=a.setTimeout(function(){x.abort("timeout")},o.timeout));try{k=!1,e.send(u,d)}catch(a){if(k)throw a;d(-1,a)}}else d(-1,"No Transport");return x},getJSON:function(a,b,c){return la.get(a,b,c,"json")},getScript:function(a,b){return la.get(a,void 0,b,"script")}}),la.each(["get","post"],function(a,b){la[b]=function(a,c,d,e){return la.isFunction(c)&&(e=e||d,d=c,c=void 0),la.ajax(la.extend({url:a,type:b,dataType:e,data:c,success:d},la.isPlainObject(a)&&a))}}),la._evalUrl=function(a){return la.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},la.fn.extend({wrapAll:function(a){var b;return this[0]&&(la.isFunction(a)&&(a=a.call(this[0])),b=la(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return la.isFunction(a)?this.each(function(b){la(this).wrapInner(a.call(this,b))}):this.each(function(){var b=la(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=la.isFunction(a);return this.each(function(c){la(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){la(this).replaceWith(this.childNodes)}),this}}),la.expr.pseudos.hidden=function(a){return!la.expr.pseudos.visible(a)},la.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},la.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(a){}};var Nb={0:200,1223:204},Ob=la.ajaxSettings.xhr();ka.cors=!!Ob&&"withCredentials"in Ob,ka.ajax=Ob=!!Ob,la.ajaxTransport(function(b){var c,d;if(ka.cors||Ob&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Nb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(a){if(c)throw a}},abort:function(){c&&c()}}}),la.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),la.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return la.globalEval(a),a}}}),la.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),la.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=la("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),_.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Pb=[],Qb=/(=)\?(?=&|$)|\?\?/;la.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Pb.pop()||la.expando+"_"+wb++;return this[a]=!0,a}}),la.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=!1!==b.jsonp&&(Qb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=la.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Qb,"$1"+e):!1!==b.jsonp&&(b.url+=(xb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||la.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?la(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Pb.push(e)),g&&la.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),ka.createHTMLDocument=function(){var a=_.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),la.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var d,e,f;return b||(ka.createHTMLDocument?(b=_.implementation.createHTMLDocument(""),d=b.createElement("base"),d.href=_.location.href,b.head.appendChild(d)):b=_),e=ua.exec(a),f=!c&&[],e?[b.createElement(e[1])]:(e=s([a],b,f),f&&f.length&&la(f).remove(),la.merge([],e.childNodes))},la.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=la.trim(a.slice(h)),a=a.slice(0,h)),la.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&la.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?la("<div>").append(la.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},la.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){la.fn[b]=function(a){return this.on(b,a)}}),la.expr.pseudos.animated=function(a){return la.grep(la.timers,function(b){return a===b.elem}).length},la.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=la.css(a,"position"),l=la(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=la.css(a,"top"),i=la.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),la.isFunction(b)&&(b=b.call(a,c,la.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},la.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){la.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Z(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===la.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),la.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+la.css(a[0],"borderTopWidth",!0),left:d.left+la.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-la.css(c,"marginTop",!0),left:b.left-d.left-la.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent;a&&"static"===la.css(a,"position");)a=a.offsetParent;return a||Ua})}}),la.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;la.fn[a]=function(d){return Da(this,function(a,d,e){var f=Z(a);if(void 0===e)return f?f[b]:a[d];f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e},a,d,arguments.length)}}),la.each(["top","left"],function(a,b){la.cssHooks[b]=F(ka.pixelPosition,function(a,c){if(c)return c=E(a,b),cb.test(c)?la(a).position()[b]+"px":c})}),la.each({Height:"height",Width:"width"},function(a,b){la.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){la.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(!0===e||!0===f?"margin":"border");return Da(this,function(b,c,e){var f;return la.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?la.css(b,c,h):la.style(b,c,e,h)},b,g?e:void 0,g)}})}),la.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),la.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return la});var Rb=a.jQuery,Sb=a.$;return la.noConflict=function(b){return a.$===la&&(a.$=Sb),b&&a.jQuery===la&&(a.jQuery=Rb),la},b||(a.jQuery=a.$=la),la}),function(a){var b="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global;if("function"==typeof define&&define.amd)define("backbone",["underscore","jquery","exports"],function(c,d,e){b.Backbone=a(b,e,c,d)});else if("undefined"!=typeof exports){var c,d=require("underscore");try{c=require("jquery")}catch(a){}a(b,exports,d,c)}else b.Backbone=a(b,{},b._,b.jQuery||b.Zepto||b.ender||b.$)}(function(a,b,c,d){var e=a.Backbone,f=Array.prototype.slice;b.VERSION="1.4.0",b.$=d,b.noConflict=function(){return a.Backbone=e,this},b.emulateHTTP=!1,b.emulateJSON=!1;var g,h=b.Events={},i=/\s+/,j=function(a,b,d,e,f){var g,h=0;if(d&&"object"==typeof d){void 0!==e&&"context"in f&&void 0===f.context&&(f.context=e);for(g=c.keys(d);h<g.length;h++)b=j(a,b,g[h],d[g[h]],f)}else if(d&&i.test(d))for(g=d.split(i);h<g.length;h++)b=a(b,g[h],e,f);else b=a(b,d,e,f);return b};h.on=function(a,b,c){if(this._events=j(k,this._events||{},a,b,{context:c,ctx:this,listening:g}),g){(this._listeners||(this._listeners={}))[g.id]=g,g.interop=!1}return this},h.listenTo=function(a,b,d){if(!a)return this;var e=a._listenId||(a._listenId=c.uniqueId("l")),f=this._listeningTo||(this._listeningTo={}),h=g=f[e];h||(this._listenId||(this._listenId=c.uniqueId("l")),h=g=f[e]=new q(this,a));var i=l(a,b,d,this);if(g=void 0,i)throw i;return h.interop&&h.on(b,d),this};var k=function(a,b,c,d){if(c){var e=a[b]||(a[b]=[]),f=d.context,g=d.ctx,h=d.listening;h&&h.count++,e.push({callback:c,context:f,ctx:f||g,listening:h})}return a},l=function(a,b,c,d){try{a.on(b,c,d)}catch(a){return a}};h.off=function(a,b,c){return this._events?(this._events=j(m,this._events,a,b,{context:c,listeners:this._listeners}),this):this},h.stopListening=function(a,b,d){var e=this._listeningTo;if(!e)return this;for(var f=a?[a._listenId]:c.keys(e),g=0;g<f.length;g++){var h=e[f[g]];if(!h)break;h.obj.off(b,d,this),h.interop&&h.off(b,d)}return c.isEmpty(e)&&(this._listeningTo=void 0),this};var m=function(a,b,d,e){if(a){var f,g=e.context,h=e.listeners,i=0;if(b||g||d){for(f=b?[b]:c.keys(a);i<f.length;i++){b=f[i];var j=a[b];if(!j)break;for(var k=[],l=0;l<j.length;l++){var m=j[l];if(d&&d!==m.callback&&d!==m.callback._callback||g&&g!==m.context)k.push(m);else{var n=m.listening;n&&n.off(b,d)}}k.length?a[b]=k:delete a[b]}return a}for(f=c.keys(h);i<f.length;i++)h[f[i]].cleanup()}};h.once=function(a,b,c){var d=j(n,{},a,b,this.off.bind(this));return"string"==typeof a&&null==c&&(b=void 0),this.on(d,b,c)},h.listenToOnce=function(a,b,c){var d=j(n,{},b,c,this.stopListening.bind(this,a));return this.listenTo(a,d)};var n=function(a,b,d,e){if(d){var f=a[b]=c.once(function(){e(b,f),d.apply(this,arguments)});f._callback=d}return a};h.trigger=function(a){if(!this._events)return this;for(var b=Math.max(0,arguments.length-1),c=Array(b),d=0;d<b;d++)c[d]=arguments[d+1];return j(o,this._events,a,void 0,c),this};var o=function(a,b,c,d){if(a){var e=a[b],f=a.all;e&&f&&(f=f.slice()),e&&p(e,d),f&&p(f,[b].concat(d))}return a},p=function(a,b){var c,d=-1,e=a.length,f=b[0],g=b[1],h=b[2];switch(b.length){case 0:for(;++d<e;)(c=a[d]).callback.call(c.ctx);return;case 1:for(;++d<e;)(c=a[d]).callback.call(c.ctx,f);return;case 2:for(;++d<e;)(c=a[d]).callback.call(c.ctx,f,g);return;case 3:for(;++d<e;)(c=a[d]).callback.call(c.ctx,f,g,h);return;default:for(;++d<e;)(c=a[d]).callback.apply(c.ctx,b);return}},q=function(a,b){this.id=a._listenId,this.listener=a,this.obj=b,this.interop=!0,this.count=0,this._events=void 0};q.prototype.on=h.on,q.prototype.off=function(a,b){var c;this.interop?(this._events=j(m,this._events,a,b,{context:void 0,listeners:void 0}),c=!this._events):(this.count--,c=0===this.count),c&&this.cleanup()},q.prototype.cleanup=function(){delete this.listener._listeningTo[this.obj._listenId],this.interop||delete this.obj._listeners[this.id]},h.bind=h.on,h.unbind=h.off,c.extend(b,h);var r=b.Model=function(a,b){var d=a||{};b||(b={}),this.preinitialize.apply(this,arguments),this.cid=c.uniqueId(this.cidPrefix),this.attributes={},b.collection&&(this.collection=b.collection),b.parse&&(d=this.parse(d,b)||{});var e=c.result(this,"defaults");d=c.defaults(c.extend({},e,d),e),this.set(d,b),this.changed={},this.initialize.apply(this,arguments)};c.extend(r.prototype,h,{changed:null,validationError:null,idAttribute:"id",cidPrefix:"c",preinitialize:function(){},initialize:function(){},toJSON:function(a){return c.clone(this.attributes)},sync:function(){return b.sync.apply(this,arguments)},get:function(a){return this.attributes[a]},escape:function(a){return c.escape(this.get(a))},has:function(a){return null!=this.get(a)},matches:function(a){return!!c.iteratee(a,this)(this.attributes)},set:function(a,b,d){if(null==a)return this;var e;if("object"==typeof a?(e=a,d=b):(e={})[a]=b,d||(d={}),!this._validate(e,d))return!1;var f=d.unset,g=d.silent,h=[],i=this._changing;this._changing=!0,i||(this._previousAttributes=c.clone(this.attributes),this.changed={});var j=this.attributes,k=this.changed,l=this._previousAttributes;for(var m in e)b=e[m],c.isEqual(j[m],b)||h.push(m),c.isEqual(l[m],b)?delete k[m]:k[m]=b,f?delete j[m]:j[m]=b;if(this.idAttribute in e&&(this.id=this.get(this.idAttribute)),!g){h.length&&(this._pending=d);for(var n=0;n<h.length;n++)this.trigger("change:"+h[n],this,j[h[n]],d)}if(i)return this;if(!g)for(;this._pending;)d=this._pending,this._pending=!1,this.trigger("change",this,d);return this._pending=!1,this._changing=!1,this},unset:function(a,b){return this.set(a,void 0,c.extend({},b,{unset:!0}))},clear:function(a){var b={};for(var d in this.attributes)b[d]=void 0;return this.set(b,c.extend({},a,{unset:!0}))},hasChanged:function(a){return null==a?!c.isEmpty(this.changed):c.has(this.changed,a)},changedAttributes:function(a){if(!a)return!!this.hasChanged()&&c.clone(this.changed);var b,d=this._changing?this._previousAttributes:this.attributes,e={};for(var f in a){var g=a[f];c.isEqual(d[f],g)||(e[f]=g,b=!0)}return!!b&&e},previous:function(a){return null!=a&&this._previousAttributes?this._previousAttributes[a]:null},previousAttributes:function(){return c.clone(this._previousAttributes)},fetch:function(a){a=c.extend({parse:!0},a);var b=this,d=a.success;return a.success=function(c){var e=a.parse?b.parse(c,a):c;if(!b.set(e,a))return!1;d&&d.call(a.context,b,c,a),b.trigger("sync",b,c,a)},W(this,a),this.sync("read",this,a)},save:function(a,b,d){var e;null==a||"object"==typeof a?(e=a,d=b):(e={})[a]=b,d=c.extend({validate:!0,parse:!0},d);var f=d.wait;if(e&&!f){if(!this.set(e,d))return!1}else if(!this._validate(e,d))return!1;var g=this,h=d.success,i=this.attributes;d.success=function(a){g.attributes=i;var b=d.parse?g.parse(a,d):a;if(f&&(b=c.extend({},e,b)),b&&!g.set(b,d))return!1;h&&h.call(d.context,g,a,d),g.trigger("sync",g,a,d)},W(this,d),e&&f&&(this.attributes=c.extend({},i,e));var j=this.isNew()?"create":d.patch?"patch":"update";"patch"!==j||d.attrs||(d.attrs=e);var k=this.sync(j,this,d);return this.attributes=i,k},destroy:function(a){a=a?c.clone(a):{};var b=this,d=a.success,e=a.wait,f=function(){b.stopListening(),b.trigger("destroy",b,b.collection,a)};a.success=function(c){e&&f(),d&&d.call(a.context,b,c,a),b.isNew()||b.trigger("sync",b,c,a)};var g=!1;return this.isNew()?c.defer(a.success):(W(this,a),g=this.sync("delete",this,a)),e||f(),g},url:function(){var a=c.result(this,"urlRoot")||c.result(this.collection,"url")||V();if(this.isNew())return a;var b=this.get(this.idAttribute);return a.replace(/[^\/]$/,"$&/")+encodeURIComponent(b)},parse:function(a,b){return a},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(a){return this._validate({},c.extend({},a,{validate:!0}))},_validate:function(a,b){if(!b.validate||!this.validate)return!0;a=c.extend({},this.attributes,a);var d=this.validationError=this.validate(a,b)||null;return!d||(this.trigger("invalid",this,d,c.extend(b,{validationError:d})),!1)}});var s=b.Collection=function(a,b){b||(b={}),this.preinitialize.apply(this,arguments),b.model&&(this.model=b.model),void 0!==b.comparator&&(this.comparator=b.comparator),this._reset(),this.initialize.apply(this,arguments),a&&this.reset(a,c.extend({silent:!0},b))},t={add:!0,remove:!0,merge:!0},u={add:!0,remove:!1},v=function(a,b,c){c=Math.min(Math.max(c,0),a.length);var d,e=Array(a.length-c),f=b.length;for(d=0;d<e.length;d++)e[d]=a[d+c];for(d=0;d<f;d++)a[d+c]=b[d];for(d=0;d<e.length;d++)a[d+f+c]=e[d]};c.extend(s.prototype,h,{model:r,preinitialize:function(){},initialize:function(){},toJSON:function(a){return this.map(function(b){return b.toJSON(a)})},sync:function(){return b.sync.apply(this,arguments)},add:function(a,b){return this.set(a,c.extend({merge:!1},b,u))},remove:function(a,b){b=c.extend({},b);var d=!c.isArray(a);a=d?[a]:a.slice();var e=this._removeModels(a,b);return!b.silent&&e.length&&(b.changes={added:[],merged:[],removed:e},this.trigger("update",this,b)),d?e[0]:e},set:function(a,b){if(null!=a){b=c.extend({},t,b),b.parse&&!this._isModel(a)&&(a=this.parse(a,b)||[]);var d=!c.isArray(a);a=d?[a]:a.slice();var e=b.at;null!=e&&(e=+e),e>this.length&&(e=this.length),e<0&&(e+=this.length+1);var f,g,h=[],i=[],j=[],k=[],l={},m=b.add,n=b.merge,o=b.remove,p=!1,q=this.comparator&&null==e&&!1!==b.sort,r=c.isString(this.comparator)?this.comparator:null;for(g=0;g<a.length;g++){f=a[g];var s=this.get(f);if(s){if(n&&f!==s){var u=this._isModel(f)?f.attributes:f;b.parse&&(u=s.parse(u,b)),s.set(u,b),j.push(s),q&&!p&&(p=s.hasChanged(r))}l[s.cid]||(l[s.cid]=!0,h.push(s)),a[g]=s}else m&&(f=a[g]=this._prepareModel(f,b))&&(i.push(f),this._addReference(f,b),l[f.cid]=!0,h.push(f))}if(o){for(g=0;g<this.length;g++)f=this.models[g],l[f.cid]||k.push(f);k.length&&this._removeModels(k,b)}var w=!1,x=!q&&m&&o;if(h.length&&x?(w=this.length!==h.length||c.some(this.models,function(a,b){return a!==h[b]}),this.models.length=0,v(this.models,h,0),this.length=this.models.length):i.length&&(q&&(p=!0),v(this.models,i,null==e?this.length:e),this.length=this.models.length),p&&this.sort({silent:!0}),!b.silent){for(g=0;g<i.length;g++)null!=e&&(b.index=e+g),f=i[g],f.trigger("add",f,this,b);(p||w)&&this.trigger("sort",this,b),(i.length||k.length||j.length)&&(b.changes={added:i,removed:k,merged:j},this.trigger("update",this,b))}return d?a[0]:a}},reset:function(a,b){b=b?c.clone(b):{};for(var d=0;d<this.models.length;d++)this._removeReference(this.models[d],b);return b.previousModels=this.models,this._reset(),a=this.add(a,c.extend({silent:!0},b)),b.silent||this.trigger("reset",this,b),a},push:function(a,b){return this.add(a,c.extend({at:this.length},b))},pop:function(a){var b=this.at(this.length-1);return this.remove(b,a)},unshift:function(a,b){return this.add(a,c.extend({at:0},b))},shift:function(a){var b=this.at(0);return this.remove(b,a)},slice:function(){return f.apply(this.models,arguments)},get:function(a){if(null!=a)return this._byId[a]||this._byId[this.modelId(this._isModel(a)?a.attributes:a)]||a.cid&&this._byId[a.cid]},has:function(a){return null!=this.get(a)},at:function(a){return a<0&&(a+=this.length),this.models[a]},where:function(a,b){return this[b?"find":"filter"](a)},findWhere:function(a){return this.where(a,!0)},sort:function(a){var b=this.comparator;if(!b)throw new Error("Cannot sort a set without a comparator");a||(a={});var d=b.length;return c.isFunction(b)&&(b=b.bind(this)),1===d||c.isString(b)?this.models=this.sortBy(b):this.models.sort(b),a.silent||this.trigger("sort",this,a),this},pluck:function(a){return this.map(a+"")},fetch:function(a){a=c.extend({parse:!0},a);var b=a.success,d=this;return a.success=function(c){var e=a.reset?"reset":"set";d[e](c,a),b&&b.call(a.context,d,c,a),d.trigger("sync",d,c,a)},W(this,a),this.sync("read",this,a)},create:function(a,b){b=b?c.clone(b):{};var d=b.wait;if(!(a=this._prepareModel(a,b)))return!1;d||this.add(a,b);var e=this,f=b.success;return b.success=function(a,b,c){d&&e.add(a,c),f&&f.call(c.context,a,b,c)},a.save(null,b),a},parse:function(a,b){return a},clone:function(){return new this.constructor(this.models,{model:this.model,comparator:this.comparator})},modelId:function(a){return a[this.model.prototype.idAttribute||"id"]},values:function(){return new x(this,y)},keys:function(){return new x(this,z)},entries:function(){return new x(this,A)},_reset:function(){this.length=0,this.models=[],this._byId={}},_prepareModel:function(a,b){
|
||
if(this._isModel(a))return a.collection||(a.collection=this),a;b=b?c.clone(b):{},b.collection=this;var d=new this.model(a,b);return d.validationError?(this.trigger("invalid",this,d.validationError,b),!1):d},_removeModels:function(a,b){for(var c=[],d=0;d<a.length;d++){var e=this.get(a[d]);if(e){var f=this.indexOf(e);this.models.splice(f,1),this.length--,delete this._byId[e.cid];var g=this.modelId(e.attributes);null!=g&&delete this._byId[g],b.silent||(b.index=f,e.trigger("remove",e,this,b)),c.push(e),this._removeReference(e,b)}}return c},_isModel:function(a){return a instanceof r},_addReference:function(a,b){this._byId[a.cid]=a;var c=this.modelId(a.attributes);null!=c&&(this._byId[c]=a),a.on("all",this._onModelEvent,this)},_removeReference:function(a,b){delete this._byId[a.cid];var c=this.modelId(a.attributes);null!=c&&delete this._byId[c],this===a.collection&&delete a.collection,a.off("all",this._onModelEvent,this)},_onModelEvent:function(a,b,c,d){if(b){if(("add"===a||"remove"===a)&&c!==this)return;if("destroy"===a&&this.remove(b,d),"change"===a){var e=this.modelId(b.previousAttributes()),f=this.modelId(b.attributes);e!==f&&(null!=e&&delete this._byId[e],null!=f&&(this._byId[f]=b))}}this.trigger.apply(this,arguments)}});var w="function"==typeof Symbol&&Symbol.iterator;w&&(s.prototype[w]=s.prototype.values);var x=function(a,b){this._collection=a,this._kind=b,this._index=0},y=1,z=2,A=3;w&&(x.prototype[w]=function(){return this}),x.prototype.next=function(){if(this._collection){if(this._index<this._collection.length){var a=this._collection.at(this._index);this._index++;var b;if(this._kind===y)b=a;else{var c=this._collection.modelId(a.attributes);b=this._kind===z?c:[c,a]}return{value:b,done:!1}}this._collection=void 0}return{value:void 0,done:!0}};var B=b.View=function(a){this.cid=c.uniqueId("view"),this.preinitialize.apply(this,arguments),c.extend(this,c.pick(a,D)),this._ensureElement(),this.initialize.apply(this,arguments)},C=/^(\S+)\s*(.*)$/,D=["model","collection","el","id","attributes","className","tagName","events"];c.extend(B.prototype,h,{tagName:"div",$:function(a){return this.$el.find(a)},preinitialize:function(){},initialize:function(){},render:function(){return this},remove:function(){return this._removeElement(),this.stopListening(),this},_removeElement:function(){this.$el.remove()},setElement:function(a){return this.undelegateEvents(),this._setElement(a),this.delegateEvents(),this},_setElement:function(a){this.$el=a instanceof b.$?a:b.$(a),this.el=this.$el[0]},delegateEvents:function(a){if(a||(a=c.result(this,"events")),!a)return this;this.undelegateEvents();for(var b in a){var d=a[b];if(c.isFunction(d)||(d=this[d]),d){var e=b.match(C);this.delegate(e[1],e[2],d.bind(this))}}return this},delegate:function(a,b,c){return this.$el.on(a+".delegateEvents"+this.cid,b,c),this},undelegateEvents:function(){return this.$el&&this.$el.off(".delegateEvents"+this.cid),this},undelegate:function(a,b,c){return this.$el.off(a+".delegateEvents"+this.cid,b,c),this},_createElement:function(a){return document.createElement(a)},_ensureElement:function(){if(this.el)this.setElement(c.result(this,"el"));else{var a=c.extend({},c.result(this,"attributes"));this.id&&(a.id=c.result(this,"id")),this.className&&(a.class=c.result(this,"className")),this.setElement(this._createElement(c.result(this,"tagName"))),this._setAttributes(a)}},_setAttributes:function(a){this.$el.attr(a)}});var E=function(a,b,c,d){switch(b){case 1:return function(){return a[c](this[d])};case 2:return function(b){return a[c](this[d],b)};case 3:return function(b,e){return a[c](this[d],G(b,this),e)};case 4:return function(b,e,f){return a[c](this[d],G(b,this),e,f)};default:return function(){var b=f.call(arguments);return b.unshift(this[d]),a[c].apply(a,b)}}},F=function(a,b,d,e){c.each(d,function(c,d){b[d]&&(a.prototype[d]=E(b,c,d,e))})},G=function(a,b){return c.isFunction(a)?a:c.isObject(a)&&!b._isModel(a)?H(a):c.isString(a)?function(b){return b.get(a)}:a},H=function(a){var b=c.matches(a);return function(a){return b(a.attributes)}},I={forEach:3,each:3,map:3,collect:3,reduce:0,foldl:0,inject:0,reduceRight:0,foldr:0,find:3,detect:3,filter:3,select:3,reject:3,every:3,all:3,some:3,any:3,include:3,includes:3,contains:3,invoke:0,max:3,min:3,toArray:1,size:1,first:3,head:3,take:3,initial:3,rest:3,tail:3,drop:3,last:3,without:0,difference:0,indexOf:3,shuffle:1,lastIndexOf:3,isEmpty:1,chain:1,sample:3,partition:3,groupBy:3,countBy:3,sortBy:3,indexBy:3,findIndex:3,findLastIndex:3},J={keys:1,values:1,pairs:1,invert:1,pick:0,omit:0,chain:1,isEmpty:1};c.each([[s,I,"models"],[r,J,"attributes"]],function(a){var b=a[0],d=a[1],e=a[2];b.mixin=function(a){var d=c.reduce(c.functions(a),function(a,b){return a[b]=0,a},{});F(b,a,d,e)},F(b,c,d,e)}),b.sync=function(a,d,e){var f=K[a];c.defaults(e||(e={}),{emulateHTTP:b.emulateHTTP,emulateJSON:b.emulateJSON});var g={type:f,dataType:"json"};if(e.url||(g.url=c.result(d,"url")||V()),null!=e.data||!d||"create"!==a&&"update"!==a&&"patch"!==a||(g.contentType="application/json",g.data=JSON.stringify(e.attrs||d.toJSON(e))),e.emulateJSON&&(g.contentType="application/x-www-form-urlencoded",g.data=g.data?{model:g.data}:{}),e.emulateHTTP&&("PUT"===f||"DELETE"===f||"PATCH"===f)){g.type="POST",e.emulateJSON&&(g.data._method=f);var h=e.beforeSend;e.beforeSend=function(a){if(a.setRequestHeader("X-HTTP-Method-Override",f),h)return h.apply(this,arguments)}}"GET"===g.type||e.emulateJSON||(g.processData=!1);var i=e.error;e.error=function(a,b,c){e.textStatus=b,e.errorThrown=c,i&&i.call(e.context,a,b,c)};var j=e.xhr=b.ajax(c.extend(g,e));return d.trigger("request",d,j,e),j};var K={create:"POST",update:"PUT",patch:"PATCH",delete:"DELETE",read:"GET"};b.ajax=function(){return b.$.ajax.apply(b.$,arguments)};var L=b.Router=function(a){a||(a={}),this.preinitialize.apply(this,arguments),a.routes&&(this.routes=a.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},M=/\((.*?)\)/g,N=/(\(\?)?:\w+/g,O=/\*\w+/g,P=/[\-{}\[\]+?.,\\\^$|#\s]/g;c.extend(L.prototype,h,{preinitialize:function(){},initialize:function(){},route:function(a,d,e){c.isRegExp(a)||(a=this._routeToRegExp(a)),c.isFunction(d)&&(e=d,d=""),e||(e=this[d]);var f=this;return b.history.route(a,function(c){var g=f._extractParameters(a,c);!1!==f.execute(e,g,d)&&(f.trigger.apply(f,["route:"+d].concat(g)),f.trigger("route",d,g),b.history.trigger("route",f,d,g))}),this},execute:function(a,b,c){a&&a.apply(this,b)},navigate:function(a,c){return b.history.navigate(a,c),this},_bindRoutes:function(){if(this.routes){this.routes=c.result(this,"routes");for(var a,b=c.keys(this.routes);null!=(a=b.pop());)this.route(a,this.routes[a])}},_routeToRegExp:function(a){return a=a.replace(P,"\\$&").replace(M,"(?:$1)?").replace(N,function(a,b){return b?a:"([^/?]+)"}).replace(O,"([^?]*?)"),new RegExp("^"+a+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(a,b){var d=a.exec(b).slice(1);return c.map(d,function(a,b){return b===d.length-1?a||null:a?decodeURIComponent(a):null})}});var Q=b.History=function(){this.handlers=[],this.checkUrl=this.checkUrl.bind(this),"undefined"!=typeof window&&(this.location=window.location,this.history=window.history)},R=/^[#\/]|\s+$/g,S=/^\/+|\/+$/g,T=/#.*$/;Q.started=!1,c.extend(Q.prototype,h,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root&&!this.getSearch()},matchRoot:function(){return this.decodeFragment(this.location.pathname).slice(0,this.root.length-1)+"/"===this.root},decodeFragment:function(a){return decodeURI(a.replace(/%25/g,"%2525"))},getSearch:function(){var a=this.location.href.replace(/#.*/,"").match(/\?.+/);return a?a[0]:""},getHash:function(a){var b=(a||this).location.href.match(/#(.*)$/);return b?b[1]:""},getPath:function(){var a=this.decodeFragment(this.location.pathname+this.getSearch()).slice(this.root.length-1);return"/"===a.charAt(0)?a.slice(1):a},getFragment:function(a){return null==a&&(a=this._usePushState||!this._wantsHashChange?this.getPath():this.getHash()),a.replace(R,"")},start:function(a){if(Q.started)throw new Error("Backbone.history has already been started");if(Q.started=!0,this.options=c.extend({root:"/"},this.options,a),this.root=this.options.root,this._wantsHashChange=!1!==this.options.hashChange,this._hasHashChange="onhashchange"in window&&(void 0===document.documentMode||document.documentMode>7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=("/"+this.root+"/").replace(S,"/"),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var b=this.root.slice(0,-1)||"/";return this.location.replace(b+"#"+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe"),this.iframe.src="javascript:0",this.iframe.style.display="none",this.iframe.tabIndex=-1;var d=document.body,e=d.insertBefore(this.iframe,d.firstChild).contentWindow;e.document.open(),e.document.close(),e.location.hash="#"+this.fragment}var f=window.addEventListener||function(a,b){return attachEvent("on"+a,b)};if(this._usePushState?f("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe?f("hashchange",this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var a=window.removeEventListener||function(a,b){return detachEvent("on"+a,b)};this._usePushState?a("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe&&a("hashchange",this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),Q.started=!1},route:function(a,b){this.handlers.unshift({route:a,callback:b})},checkUrl:function(a){var b=this.getFragment();if(b===this.fragment&&this.iframe&&(b=this.getHash(this.iframe.contentWindow)),b===this.fragment)return!1;this.iframe&&this.navigate(b),this.loadUrl()},loadUrl:function(a){return!!this.matchRoot()&&(a=this.fragment=this.getFragment(a),c.some(this.handlers,function(b){if(b.route.test(a))return b.callback(a),!0}))},navigate:function(a,b){if(!Q.started)return!1;b&&!0!==b||(b={trigger:!!b}),a=this.getFragment(a||"");var c=this.root;""!==a&&"?"!==a.charAt(0)||(c=c.slice(0,-1)||"/");var d=c+a;a=a.replace(T,"");var e=this.decodeFragment(a);if(this.fragment!==e){if(this.fragment=e,this._usePushState)this.history[b.replace?"replaceState":"pushState"]({},document.title,d);else{if(!this._wantsHashChange)return this.location.assign(d);if(this._updateHash(this.location,a,b.replace),this.iframe&&a!==this.getHash(this.iframe.contentWindow)){var f=this.iframe.contentWindow;b.replace||(f.document.open(),f.document.close()),this._updateHash(f.location,a,b.replace)}}return b.trigger?this.loadUrl(a):void 0}},_updateHash:function(a,b,c){if(c){var d=a.href.replace(/(javascript:|#).*$/,"");a.replace(d+"#"+b)}else a.hash="#"+b}}),b.history=new Q;var U=function(a,b){var d,e=this;return d=a&&c.has(a,"constructor")?a.constructor:function(){return e.apply(this,arguments)},c.extend(d,e,b),d.prototype=c.create(e.prototype,a),d.prototype.constructor=d,d.__super__=e.prototype,d};r.extend=s.extend=L.extend=B.extend=Q.extend=U;var V=function(){throw new Error('A "url" property or function must be specified')},W=function(a,b){var c=b.error;b.error=function(d){c&&c.call(b.context,a,d,b),a.trigger("error",a,d,b)}};return b}),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("ProgressModel",["backbone"],function(c){"use strict";return function(c){function d(b){this.save=a(this.save,this),this.getStored=a(this.getStored,this),this.erase=a(this.erase,this),this.betterThan=a(this.betterThan,this),this.setPlayed=a(this.setPlayed,this),this.update=a(this.update,this),this.unlockLevels=a(this.unlockLevels,this),this.setStates=a(this.setStates,this),this.process=a(this.process,this),this.initStore=a(this.initStore,this),this.fetch=a(this.fetch,this),d.__super__.constructor.call(this),this.on("sync",this.process),this.game=b}return b(d,c),d.prototype.url="",d.prototype.myKeys=[],d.prototype.fetch=function(){var a,b,c,d,e,f,g;for(e=[],a=this.game.gameConfig,f=[].concat(a.temples),b=0,c=f.length;b<c;b++)g=f[b],d=$.ajax("./data/"+g+"/temple.json"),e.push(d);return $.when.apply($,e).then(function(a){return function(){var b,c,f;for(console.log("all loaded ",e),f={temples:[]},b=0,c=e.length;b<c;b++)d=e[b],f.temples.push(JSON.parse(d.responseText));return a.getStored().then(function(b){var c,d;b||(b={}),f=_.deepObjectExtend(f,b);for(c in f)d=f[c],a.set(c,d);return"cordova"===a.game.gameConfig.target&&null!=window.store?a.initStore():(console.log("store not available"),a.myKeys=[]),a.trigger("sync")})}}(this))},d.prototype.initStore=function(){return console.log("Initing store"),store.register({id:"elements_full",alias:"Unlock all",type:store.NON_CONSUMABLE}),store.when("product").updated(function(a){return function(b){return console.log("product updated: "+b.id+" is owned: "+b.owned),b.owned&&a.myKeys.push(b.id),a.process()}}(this)),store.when("product").approved(function(a){return function(a){return console.log("Order approved"),a.finish()}}()),console.log("refresh"),store.refresh()},d.prototype.process=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(a=0,b=!0,q=this.get("temples"),c=0,f=q.length;c<f;c++){for(w=q[c],m=1/0,r=w.levels,d=0,g=r.length;d<g;d++)e=r[d],null!=e.best&&(a+=e.best.stars),(null==e.best||e.best.stars<3)&&(b=!1),e.required<m&&(m=e.required);w.minRequired=m}for(b&&!this.get("gameComplete")&&(this.firstComplete=!0),this.set("gameComplete",b),this.totalStars=a,s=this.get("temples"),l=0,h=s.length;l<h;l++)w=s[l],w.softLocked=this.totalStars<w.minRequired;for(this.unlockLevels(),t=this.get("temples"),n=0,i=t.length;n<i;n++)w=t[n],this.setStates(w);for(u=this.get("temples"),o=0,j=u.length;o<j;o++)for(w=u[o],delete w.hasNew,v=w.levels,p=0,k=v.length;p<k;p++)e=v[p],e.played||e.initial||e.locked?delete e.isNew:(e.isNew=!0,e.state>0&&(w.hasNew=!0));return this.save()},d.prototype.setStates=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c=function(b){return function(b){return _.find(a.levels,function(a){return a._id===b})}}(),"tree"===a.type){for(k=a.levels,d=0,g=k.length;d<g;d++)f=k[d],null!=f.best?3===f.best.stars?f.state=4:2===f.best.stars?f.state=3:1===f.best.stars&&(f.state=2):f.state=f.initial?1:0,this.game.config.devUnlock&&(f.state=Math.max(f.state,1));for(l=a.edges,n=[],e=0,h=l.length;e<h;e++)b=l[e],p=c(b.source),q=c(b.target),(p.state>1||null!=p.skipped)&&0===q.state?n.push(q.state=1):0===p.state&&(q.state>1||null!=q.skipped)?n.push(p.state=1):n.push(void 0);return n}for(m=a.levels,o=[],j=0,i=m.length;j<i;j++)f=m[j],null!=f.best&&f.best.stars>0?3===f.best.stars?f.state=4:2===f.best.stars?f.state=3:1===f.best.stars&&(f.state=2):this.game.progress.totalStars>=f.required&&!f.locked?f.state=1:f.state=0,this.game.config.devUnlock?o.push(f.state=Math.max(f.state,1)):o.push(void 0);return o},d.prototype.unlockLevels=function(){var a,b,c,d,e,f,g;for(console.log("Unlocking with keys ",this.myKeys),b=function(a){return function(b){return null!=b.unlock_key&&"free"!==b.unlock_key&&a.myKeys.indexOf(b.unlock_key)<0}}(this),e=this.get("temples"),f=[],a=0,d=e.length;a<d;a++)g=e[a],g.locked=b(g),f.push(function(){var a,d,e,f;for(e=g.levels,f=[],a=0,d=e.length;a<d;a++)c=e[a],f.push(c.locked=b(c));return f}());return f},d.prototype.update=function(a){var b,c,d,e,f;if(console.log("merge "+a.state+" into "+a.data),b=a.state.diamonds,c=a.data.totalDiamonds,e=a.state.time,f="single"===this.game.settings.controls&&a.data.mobileTime||a.data.time,d=0,"puzzle"===a.data.type?a.state.silverDiamond>0&&(d=3):"dark"===a.data.type?d=e<=f?3:2:(d=1,b>=c&&d++,e<=f&&d++),a.state.stars=d,a.state.stars>0&&(null==a.data.best||this.betterThan(a.state,a.data.best)))return a.data.best=a.state,this.process()},d.prototype.setPlayed=function(a){if(!a.played)return a.played=!0,this.process()},d.prototype.betterThan=function(a,b){return a.stars>b.stars||!(a.stars<b.stars)&&(a.diamonds>b.diamonds||!(a.diamonds<b.diamonds)&&(a.time<b.time||(a.time,b.time,!1)))},d.prototype.erase=function(){return this.game.storage.setNamespace("fb-"+this.game.gameConfig.id),this.game.storage.clear()},d.prototype.getStored=function(){return this.game.storage.setNamespace("fb-"+this.game.gameConfig.id),this.game.storage.getItem("progress").then(function(a){return function(a){return JSON.parse(a)}}(),function(a){return function(a){return null}}())},d.prototype.save=function(){return this.game.storage.setNamespace("fb-"+this.game.gameConfig.id),this.game.storage.setItem("progress",JSON.stringify(this.toJSON()))},d}(c.Model)})}.call(this),function(a,b){"object"==typeof exports&&"undefined"!=typeof module?b():"function"==typeof define&&define.amd?define("promise-polyfill",b):b()}(0,function(){"use strict";function a(a){var b=this.constructor;return this.then(function(c){return b.resolve(a()).then(function(){return c})},function(c){return b.resolve(a()).then(function(){return b.reject(c)})})}function b(a){return new this(function(b,c){function d(a,c){if(c&&("object"==typeof c||"function"==typeof c)){var g=c.then;if("function"==typeof g)return void g.call(c,function(b){d(a,b)},function(c){e[a]={status:"rejected",reason:c},0==--f&&b(e)})}e[a]={status:"fulfilled",value:c},0==--f&&b(e)}if(!a||void 0===a.length)return c(new TypeError(typeof a+" "+a+" is not iterable(cannot read property Symbol(Symbol.iterator))"));var e=Array.prototype.slice.call(a);if(0===e.length)return b([]);for(var f=e.length,g=0;g<e.length;g++)d(g,e[g])})}function c(a){return Boolean(a&&void 0!==a.length)}function d(){}function e(a,b){return function(){a.apply(b,arguments)}}function f(a){if(!(this instanceof f))throw new TypeError("Promises must be constructed via new");if("function"!=typeof a)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],l(a,this)}function g(a,b){for(;3===a._state;)a=a._value;if(0===a._state)return void a._deferreds.push(b);a._handled=!0,f._immediateFn(function(){var c=1===a._state?b.onFulfilled:b.onRejected;if(null===c)return void(1===a._state?h:i)(b.promise,a._value);var d;try{d=c(a._value)}catch(a){return void i(b.promise,a)}h(b.promise,d)})}function h(a,b){try{if(b===a)throw new TypeError("A promise cannot be resolved with itself.");if(b&&("object"==typeof b||"function"==typeof b)){var c=b.then;if(b instanceof f)return a._state=3,a._value=b,void j(a);if("function"==typeof c)return void l(e(c,b),a)}a._state=1,a._value=b,j(a)}catch(b){i(a,b)}}function i(a,b){a._state=2,a._value=b,j(a)}function j(a){2===a._state&&0===a._deferreds.length&&f._immediateFn(function(){a._handled||f._unhandledRejectionFn(a._value)});for(var b=0,c=a._deferreds.length;b<c;b++)g(a,a._deferreds[b]);a._deferreds=null}function k(a,b,c){this.onFulfilled="function"==typeof a?a:null,this.onRejected="function"==typeof b?b:null,this.promise=c}function l(a,b){var c=!1;try{a(function(a){c||(c=!0,h(b,a))},function(a){c||(c=!0,i(b,a))})}catch(a){if(c)return;c=!0,i(b,a)}}var m=setTimeout;f.prototype.catch=function(a){return this.then(null,a)},f.prototype.then=function(a,b){var c=new this.constructor(d);return g(this,new k(a,b,c)),c},f.prototype.finally=a,f.all=function(a){return new f(function(b,d){function e(a,c){try{if(c&&("object"==typeof c||"function"==typeof c)){var h=c.then;if("function"==typeof h)return void h.call(c,function(b){e(a,b)},d)}f[a]=c,0==--g&&b(f)}catch(a){d(a)}}if(!c(a))return d(new TypeError("Promise.all accepts an array"));var f=Array.prototype.slice.call(a);if(0===f.length)return b([]);for(var g=f.length,h=0;h<f.length;h++)e(h,f[h])})},f.allSettled=b,f.resolve=function(a){return a&&"object"==typeof a&&a.constructor===f?a:new f(function(b){b(a)})},f.reject=function(a){return new f(function(b,c){c(a)})},f.race=function(a){return new f(function(b,d){if(!c(a))return d(new TypeError("Promise.race accepts an array"));for(var e=0,g=a.length;e<g;e++)f.resolve(a[e]).then(b,d)})},f._immediateFn="function"==typeof setImmediate&&function(a){setImmediate(a)}||function(a){m(a,0)},f._unhandledRejectionFn=function(a){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",a)};var n=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();"function"!=typeof n.Promise?n.Promise=f:n.Promise.prototype.finally?n.Promise.allSettled||(n.Promise.allSettled=b):n.Promise.prototype.finally=a}),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("States/Boot",["require","Phaser","States/Menu/SingleMenu","States/Menu/MultiMenu","ProgressModel","States/Complete/Complete","promise-polyfill","h5branding"],function(c){var d,e,f,g,h;return e=c("Phaser"),g=c("States/Menu/SingleMenu"),d=c("States/Menu/MultiMenu"),f=c("ProgressModel"),c("States/Complete/Complete"),c("promise-polyfill"),h=c("h5branding"),function(c){function e(){this.initialize=a(this.initialize,this),this.loadSettings=a(this.loadSettings,this),this.setStorageAdapter=a(this.setStorageAdapter,this),this.gameName="Fireboy Watergirl Ice Temple",this.gameDist="f3a6e1ac0a77412289cbac47658b2b68",this.GOOGLE_ANALYTICS_KEY="UA-122764416-9",this.GAME_ANALYTICS_GAME_KEY="8abc93fc5af7366c20445b7bc1c3f513",this.GAME_ANALYTICS_SECRET_KEY="a121e97aa5106aa641177e08d744a22bd4741349"}return b(e,c),e.prototype.preload=function(){return console.log("Preloading Boot State"),this.game.load.json("gameConfig","game.json"),this.game.load.atlasJSONArray("PreloaderAssets","assets/atlasses/PreloaderAssets.png","assets/atlasses/PreloaderAssets.json"),h.Utils.getBrandingDomain()!==h.BrandingDomain.Neutral&&this.game.load.image("KiziLogo","assets/images/branding/branding_logo_kizi.png"),h.Branding.analyticsEnabled=!0,h.SplashLoader.getInstance({gameId:this.gameDist,gameName:this.gameName,gameTitle:this.gameName,libs:[],version:version}).create().catch(function(a){return console.log(a)})},e.prototype.create=function(){return this.game.add.plugin(PhaserSuperStorage.StoragePlugin),this.game.add.plugin(PhaserCachebuster.CacheBuster),this.game.load.cacheBuster=version,this.game.AdManager.start(this.game),this.game.SideBanners.start(this.game),this.game.gameConfig=this.game.cache.getJSON("gameConfig"),this.setStorageAdapter().then(function(a){return function(){return a.loadSettings().then(function(){return a.initialize().then(function(){return a.game.state.start("load")})})}}(this))},e.prototype.setStorageAdapter=function(){var a;return a=function(){try{return window.self!==window.top}catch(a){return a,!0}},new Promise(function(b){return function(c){var d;return a()?(d=new PhaserSuperStorage.StorageAdapters.IframeStorage("",document.referrer),d.init().then(function(){return b.game.storage.setAdapter(d),c()}).catch(function(a){return b.game.storage.forcePromises=!0,c()})):(b.game.storage.forcePromises=!0,c())}}(this))},e.prototype.loadSettings=function(){return this.game.loadSettings()},e.prototype.initialize=function(){var a,b;return this.game.camera.reset=function(){return this.target=null,this._shake.duration=0,this.resetFX()},"multi"===this.game.gameConfig.type?this.game.state.add("menu",d):this.game.state.add("menu",g),this.game.sound.volume=.1,this.game.sound.mute=!this.game.settings.fx,this.game.stage.disableVisibilityChange=!0,this.game.onBlur.add(function(a){return function(){return a.game.sound.mute=!0}}(this)),this.game.onPause.add(function(a){return function(){return a.game.sound.mute=!0}}(this)),this.game.onFocus.add(function(a){return function(){return a.game.sound.mute=!a.game.settings.fx}}(this)),this.game.onResume.add(function(a){return function(){return a.game.sound.mute=!a.game.settings.fx}}(this)),this.game.camera.bounds=null,b=800,a=600,(this.game.width<b||this.game.height<a)&&this.game.camera.scale.set(Math.min(this.game.width/b,this.game.height/a)),this.game.camera.x=-this.game.width/2,this.game.camera.y=-this.game.height/2,this.game.realWidth=this.game.width/this.game.camera.scale.x,this.game.realHeight=this.game.height/this.game.camera.scale.y,this.game.make.resSprite=function(a,b,c,d){return this.game.make.sprite(a,b,c,d)},this.game.gameConfig.temples=this.game.gameConfig.temples,$(window).on("keydown",function(a){return function(a){if(40===a.keyCode||38===a.keyCode)return a.preventDefault()}}()),"cordova"===this.game.gameConfig.target?reutnr(new Promise(function(a){return function(b){return document.addEventListener("deviceready",function(){return a.doStart().then(function(){return b()})},!1)}}(this))):this.doStart()},e.prototype.doStart=function(){return this.game.progress=new f(this.game),new Promise(function(a){return function(b){return a.game.progress.on("sync",b),a.game.progress.fetch()}}(this))},e}(e.State)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Common/LoaderBar",["./Button","Phaser"],function(b){"use strict";return function(b){function c(a,b,d){var e,f,g,h,i,j,k,l;c.__super__.constructor.call(this,a,b,d),i=200,g=20,f=this.game.make.sprite(0,0,"PreloaderAssets","LoaderBar0000"),f.x=-i/2,f.y=-g/2,this.addChild(f),j=new Phaser.Rectangle(0,0,0,g),f.crop(j),h=new Phaser.Sprite(this.game,0,0,"PreloaderAssets","LoaderHolder0000"),h.anchor.set(.5),this.addChild(h),k=new Phaser.Sprite(this.game,0,-80,"PreloaderAssets","LoaderTitle0000"),k.anchor.set(.47),this.addChild(k),l=function(a){return function(a){var b;return null!=window.parent&&(b={bytesLoaded:a,bytesTotal:100},window.parent.postMessage(b,"*")),j.width=a/100*i,f.crop(j)}}(),e=function(a){return function(){return a.game.load.onFileComplete.remove(l),a.game.load.onLoadComplete.remove(e),a.destroy()}}(this),this.game.load.onFileComplete.add(l),this.game.load.onLoadComplete.add(e)}return a(c,b),c}(Phaser.Group)})}.call(this),function(){var a=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a},b={}.hasOwnProperty;define("States/Load",["require","Phaser","ProgressModel","States/Common/LoaderBar","h5branding","States/LevelMenu/LevelMenu","States/Menu/SingleMenu"],function(b){var c,d,e,f;return d=b("Phaser"),b("ProgressModel"),b("States/Common/LoaderBar"),f=b("h5branding"),c=b("States/LevelMenu/LevelMenu"),e=b("States/Menu/SingleMenu"),function(b){function g(){this.gameName="Fireboy Watergirl Ice Temple",this.gameDist="f3a6e1ac0a77412289cbac47658b2b68",this.GOOGLE_ANALYTICS_KEY="UA-122764416-9",this.GAME_ANALYTICS_GAME_KEY="8abc93fc5af7366c20445b7bc1c3f513",this.GAME_ANALYTICS_SECRET_KEY="a121e97aa5106aa641177e08d744a22bd4741349"}return a(g,b),g.prototype.preload=function(){return console.log("Loading"),this.game.load.onFileComplete.add(this.onFileComplete),this.game.load.onLoadComplete.add(this.onLoadComplete),f.SplashLoader.getInstance().setButtonCallback(function(a){return function(){return f.SplashLoader.getInstance().destroy(),f.Utils.inGDGameZone()?a.startGame():a.game.AdManager.showAd(function(){return a.startGame()},"splash")}}(this)),this.loadAssets()},g.prototype.startGame=function(){return this.game.progress.get("temples")[0].levels[1].played?(this.game.state.add("levelMenu",c),this.game.state.start("levelMenu",!0,!1,this.game.progress.get("temples")[0])):(this.game.state.add("menu",e),this.game.state.start("menu")),this.game.load.onFileComplete.remove(this.onFileComplete),this.game.load.onLoadComplete.remove(this.onLoadComplete)},g.prototype.onFileComplete=function(a){return f.SplashLoader.getInstance().setLoadProgress(a)},g.prototype.onLoadComplete=function(){return f.SplashLoader.getInstance().setLoadProgress(100)},g.prototype.loadAssets=function(){var a,b,c,e,f,g,h,i,j,k,l,m,n,o,p;if(this.game.load.atlasJSONArray("MenuAssets","assets/atlasses/MenuAssets.png","assets/atlasses/MenuAssets.json"),this.game.load.atlasJSONArray("PopupAssets","assets/atlasses/PopupAssets.png","assets/atlasses/PopupAssets.json"),this.game.load.bitmapFont("font_en","assets/fonts/font.png","assets/fonts/font.fnt"),this.game.load.bitmapFont("font_ru","assets/fonts/fbwg_font_cyrillic.png","assets/fonts/fbwg_font_cyrillic.fnt"),this.game.load.atlasJSONArray("MenuBackgrounds","assets/atlasses/MenuBackgrounds.png","assets/atlasses/MenuBackgrounds.json"),o=_.isArray(this.game.gameConfig.assets)?this.game.gameConfig.assets:[this.game.gameConfig.assets],"multi"===this.game.gameConfig.type){for(this.game.load.atlasJSONArray("TempleIcons","assets/atlasses/TempleIcons.png","assets/atlasses/TempleIcons.json"),e=0,h=o.length;e<h;e++)a=o[e],k=a.charAt(0).toUpperCase()+a.slice(1),this.game.load.image("TempleHall"+k,"assets/images/TempleHall"+k+".jpg");this.game.load.image("GameName","assets/images/GameNameElements.png")}else a=o[0],k=a.charAt(0).toUpperCase()+a.slice(1),this.game.load.image("TempleHall","assets/images/TempleHall"+k+".jpg"),this.game.load.image("GameName","assets/images/GameName"+k+".png");for(this.game.load.atlasJSONArray("CharAssets","assets/atlasses/CharAssets.png","assets/atlasses/CharAssets.json"),this.game.load.image("HallBeam","assets/images/Beam.png"),this.game.load.image("ios-store","assets/images/stores/ios.png"),this.game.load.image("android-store","assets/images/stores/android.png"),this.game.load.image("microsoft-store","assets/images/stores/microsoft.png"),this.game.load.image("steam-store","assets/images/stores/steam.png"),this.game.load.image("skirby-upsell","assets/images/TOASTER-MINI-new.png"),this.game.load.atlasJSONArray("PopupAssets","assets/atlasses/PopupAssets.png","assets/atlasses/PopupAssets.json"),this.game.load.json("Ground","assets/tilemaps/tilesets/Ground.json",null,d.Tilemap.TILED_JSON),this.game.load.json("Objects","assets/tilemaps/tilesets/Objects.json",null,d.Tilemap.TILED_JSON),this.game.load.json("LargeObjects","assets/tilemaps/tilesets/LargeObjects.json",null,d.Tilemap.TILED_JSON),this.game.load.json("Chars","assets/tilemaps/tilesets/Chars.json",null,d.Tilemap.TILED_JSON),f=0,i=o.length;f<i;f++)c=o[f],p="assets/atlasses/Temples/"+c,this.game.load.atlasJSONArray("TempleAssets",p+"/TempleAssets.png",p+"/TempleAssets.json");for(this.game.load.atlasJSONArray("GroundAssets","assets/atlasses/GroundAssets.png","assets/atlasses/GroundAssets.json"),this.game.load.atlasJSONArray("CharAssets","assets/atlasses/CharAssets.png","assets/atlasses/CharAssets.json"),this.game.load.atlasJSONArray("MechAssets","assets/atlasses/MechAssets.png","assets/atlasses/MechAssets.json"),n=["menuMusic","levelMusic_speed","levelMusic_dark","levelMusicFinish_speed","levelMusic","levelMusicOver","levelMusicFinish","charToggle1","charToggle2","endPass","endFail","endDiamond","jump_fb","jump_wg","waterSteps","iceSteps_fb","iceSteps_wg","death","diamond","door","freeze","melt","lever","pusher","platform","wind","portalOpen","portalLoop","portalClose","portalTransport","clock","slider","lightPusher"],l=[],g=0,j=n.length;g<j;g++)m=n[g],b=m.charAt(0).toUpperCase()+m.slice(1),l.push(this.game.load.audio(m,"assets/audio/"+b+".mp3"));return l},g.prototype.create=function(){return window.h5branding=f,
|
||
f.gameanalytics.setup(this.GAME_ANALYTICS_GAME_KEY,this.GAME_ANALYTICS_SECRET_KEY,"1.0"),f.google.setup(this.GOOGLE_ANALYTICS_KEY,this.gameName,version)},g}(d.State)})}.call(this),function(){define("utils/lang/en",["require"],function(a){return{Play:"Play","More Games":"More Games",Walkthrough:"Walkthrough",Ok:"Ok",Continue:"Continue",credits_to:"All credit goes to",Back:"Back","Level Numbers":"Level Numbers",Paused:"Paused",End:"End",Retry:"Retry",Skip:"Skip",SkipText:"Retry or skip by watching an ad.",Resume:"Resume",Menu:"Menu","Game Over":"Game Over",congratulations:"Congratulations!",you_completed:"You completed the game",you_almost_completed_1:"Now try to get",you_almost_completed_2:"all the green gems!",Cancel:"Cancel",this:"This",menu:"menu",level:"level",temple:"temple",not_yet:"is not available yet",complete_more:"Complete more levels",in_other_temples:"in other temples to unlock",to_unlock:"to unlock","Ok!":"Ok!",loading:"Loading",rewarded_header1:"Watch a rewarded video",rewarded_header2:"to unlock this level!",rewarded_close:"Close",rewarded_watch:"Watch!",rewarded_play:"Play!",rewarded_unavailable1:"No rewarded video available",rewarded_unavailable2:"at the moment","Forest Temple":"Forest Temple","Water Temple":"Water Temple","Fire Temple":"Fire Temple","Light Temple":"Light Temple","Ice Temple":"Ice Temple","Crystal Temple":"Crystal Temple","Wind Temple":"Wind Temple",new:"New!","Next Level":"Next Level",skip_tut:"Skip Tutorial",unlock_all:"Unlock all levels!",level_numbers:"Level Numbers",play_more_levels:"Play more levels",get_more_levels:"Get more levels",tutorial_forest1:"Tap the right buttons ",tutorial_forest2:"to move WaterGirl",tutorial_forest3:"Never mix Fire & Water!",tutorial_forest4:"Buttons however",tutorial_forest5:"must be held",tutorial_forest6:"Don't forget to ",tutorial_forest7:"grab some",tutorial_forest8:"diamonds!",tutorial_forest9:"to move FireBoy",tutorial_forest10:"Use the left buttons ",tutorial_forest11:"Open the finish doors",tutorial_forest12:"by standing in front of them.",tutorial_forest13:"They can push ",tutorial_forest14:"boxes around",tutorial_forest15:"Levers remain as",tutorial_forest16:"you leave them",tutorial_forest17:"Green goo",tutorial_forest18:"hurts them both",tutorial_forest19:"Use the buttons ",tutorial_forest20:"to move WaterGirl",tutorial_forest21:"Tap the arrow to",tutorial_forest22:"control FireBoy",tutorial_forest23:"Never mix Fire & Water!",tutorial_forest24:"Green goo",tutorial_forest25:"hurts them both",tutorial_forest26:"Levers remain as",tutorial_forest27:"you leave them",tutorial_forest28:"Buttons however",tutorial_forest29:"must be held",tutorial_forest30:"They can push ",tutorial_forest33:"boxes around",tutorial_forest31:"Don't forget to ",tutorial_forest32:"grab some",tutorial_forest34:"diamonds!",tutorial_forest35:"You can tap FireBoy or WaterGirl",tutorial_forest36:"to change control",tutorial_forest37:"Use A,W,D ",tutorial_forest38:"to move WaterGirl",tutorial_forest39:"Use the arrow keys",tutorial_forest40:"to move FireBoy",tutorial_forest41:"Never mix Fire & Water!",tutorial_forest42:"Green goo",tutorial_forest43:"hurts them both",tutorial_forest44:"Levers remain as",tutorial_forest45:"you leave them",tutorial_forest46:"Buttons however",tutorial_forest47:"must be held",tutorial_forest48:"They can push ",tutorial_forest49:"Don't forget to ",tutorial_forest50:"grab some",tutorial_forest51:"Open the finish doors",tutorial_forest52:"by standing in front of them.",tutorial_forest53:"boxes around",tutorial_forest54:"diamonds!",tutorial_fire1:"In the Fire Temple",tutorial_fire2:"FireBoy can go everywhere",tutorial_fire3:"WaterGirl will need ",tutorial_fire4:"more help",tutorial_fire5:"Use objects ",tutorial_fire6:"to avoid the lava",tutorial_fire7:"Work as a team",tutorial_fire8:"and get to the end!",tutorial_light1:"Get the light to the detectors to",tutorial_light2:"activate platforms",tutorial_light3:"boxes with",tutorial_light4:"mirrors redirect",tutorial_light5:"light",tutorial_light6:"Some mirrors",tutorial_light7:"can rotate 90º",tutorial_light8:"Some mirrors are a bit more",tutorial_light9:"accurate.",tutorial_light10:"Good Luck!",tutorial_light_elements1:"In the Light Temple ",tutorial_light_elements2:"light activates things!",tutorial_light_elements3:"mirrors",tutorial_light_elements4:"can help",tutorial_light_elements5:"redirect light",tutorial_light_elements6:"Some mirrors",tutorial_light_elements7:"can rotate 90º",tutorial_light_elements8:"Some mirrors",tutorial_light_elements9:" are a bit more accurate",tutorial_crystal1:"Use crystal portals to ",tutorial_crystal2:"teleport!",tutorial_crystal3:"That's it!",tutorial_crystal4:"Some portals must be",tutorial_crystal5:"activated...",tutorial_crystal6:"... Portals can teleport",tutorial_crystal7:"objects...",tutorial_crystal8:"Pay attention to",tutorial_crystal9:"the sides of each ",tutorial_crystal10:"portal... Black",tutorial_crystal11:"goes to black and ",tutorial_crystal12:"white goes to ",tutorial_crystal13:"white.",tutorial_crystal_elements1:"In the Crystal Temple",tutorial_crystal_elements2:"you can teleport!",tutorial_crystal_elements3:"That's it!",tutorial_crystal_elements4:"Some portals must be",tutorial_crystal_elements5:"activated",tutorial_crystal_elements6:"... Portals can teleport",tutorial_crystal_elements7:"objects...",tutorial_crystal_elements8:"And remember!",tutorial_crystal_elements9:"Black",tutorial_crystal_elements10:"goes to black",tutorial_crystal_elements11:"and white",tutorial_crystal_elements12:"goes to white",tutorial_ice1:"FireBoy slides on snow,",tutorial_ice2:"WaterGirl is slowed...",tutorial_ice3:"... however FireBoy ",tutorial_ice4:"can't climb snowy",tutorial_ice5:"slopes.",tutorial_ice6:"Neither of them can",tutorial_ice7:"jump on ice nor snow!",tutorial_ice8:"blue light...",tutorial_ice9:"Freeze water with ",tutorial_ice10:"... And melt it with red",tutorial_ice11:"light.",tutorial_ice12:"This is a timed button,",tutorial_ice13:"hurry up before the",tutorial_ice14:"door closes!",tutorial_ice_elements1:"In the Ice Temple",tutorial_ice_elements2:"snow can slow down WaterGirl",tutorial_ice_elements3:"FireBoy however",tutorial_ice_elements4:"can't climb slopes",tutorial_ice_elements5:"blue light",tutorial_ice_elements6:"Freeze water with ",tutorial_ice_elements7:"Melt it with",tutorial_ice_elements8:"red light",tutorial_ice_elements9:"hurry up before the",tutorial_ice_elements10:"door closes!",tutorial_wind1:"Use wind to jump",tutorial_wind2:"higher than ever",tutorial_wind3:"Wind can also",tutorial_wind4:"block your path",tutorial_wind5:"Good luck soaring",tutorial_wind6:"in the winds!",tutorial_water1:"In the Water Temple",tutorial_water2:"WaterGirl will take the lead",tutorial_water3:"and help FireBoy",tutorial_water4:"Work as a team",tutorial_water5:"and get to the end!",tutorial_water6:"avoid the water"}})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}};define("utils/lang/Lang",["require","./en"],function(b){var c;return c=b("./en"),function(){function b(){this.locale=a(this.locale,this)}return b.prototype.dict=c,b.prototype.font="font_en",b.prototype.locale=function(a){return this.dict[a]||a+"|locale"},b}()})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("TouchManager",["Phaser"],function(c){"use strict";return function(d){function e(){return this.update=a(this.update,this),this.hammerIt=a(this.hammerIt,this),this.unregister=a(this.unregister,this),this.register=a(this.register,this),this.resize=a(this.resize,this),this.start=a(this.start,this),e.__super__.constructor.apply(this,arguments)}return b(e,d),e.prototype.start=function(a){return this.game=a,this.$el=$("#hammer"),this.$el.css({position:"absolute",top:0,lef:0,width:window.innerWidth||$(window).width(),height:window.innerHeight||$(window).height()}),this.hammerIt(),this.events={}},e.prototype.resize=function(){return this.$el.css({position:"absolute",top:0,lef:0,width:window.innerWidth||$(window).width(),height:window.innerHeight||$(window).height()})},e.prototype.register=function(a,b,c){var d,e,f,g,h;for(b=b.split(" ").length>0?b.split(" "):[ev],h=[],f=0,g=b.length;f<g;f++)e=b[f],(d=this.events)[e]||(d[e]=[]),h.push(this.events[e].unshift({sprite:a,callback:c}));return h},e.prototype.unregister=function(a,b){var c,d,e,f,g;for(b=b.split(" ").length>0?b.split(" "):[ev],g=[],e=0,f=b.length;e<f;e++)c=b[e],d=_.find(this.events[c],function(b){return b.sprite===a}),g.push(this.events[c].splice(this.events[c].indexOf(d),1));return g},e.prototype.hammerIt=function(){var a;return a=new Hammer(this.$el[0],{}),a.get("pinch").set({enable:!0}),a.get("swipe").set({enable:!0}),a.get("pinch").recognizeWith(a.get("pan")),(this.game.bowser.mobile||this.game.bowser.tablet||this.game.device.iPad)&&a.on("tap",function(a){return function(b){var d,e,f,g,h;if(null!=a.events.tap){for(g=a.events.tap,h=[],e=0,f=g.length;e<f;e++)if(null!=(d=g[e])){if(null==d.sprite||d.sprite.visible&&a.game.input.hitTest(d.sprite,b.center,new c.Point)){d.callback(b);break}h.push(void 0)}return h}}}(this)),a.on("pan",function(a){return function(b){var d,e,f,g,h;if(null!=a.events.pan){for(g=a.events.pan,h=[],e=0,f=g.length;e<f;e++)null!=(d=g[e])&&(null==d.sprite||d.sprite.visible&&a.game.input.hitTest(d.sprite,b.center,new c.Point)?h.push(d.callback(b)):h.push(void 0));return h}}}(this)),a.on("panstart",function(a){return function(b){var d,e,f,g,h;if(null!=a.events.panstart){for(g=a.events.panstart,h=[],e=0,f=g.length;e<f;e++)if(null!=(d=g[e])){if(null==d.sprite||d.sprite.visible&&a.game.input.hitTest(d.sprite,b.center,new c.Point)){d.callback(b);break}h.push(void 0)}return h}}}(this)),a.on("panmove",function(a){return function(b){var c,d,e,f,g;if(null!=a.events.panmove){for(f=a.events.panmove,g=[],d=0,e=f.length;d<e;d++)null!=(c=f[d])&&g.push(c.callback(b));return g}}}(this)),a.on("panend",function(a){return function(b){var c,d,e,f,g;if(null!=a.events.panend){for(f=a.events.panend,g=[],d=0,e=f.length;d<e;d++)null!=(c=f[d])&&g.push(c.callback(b));return g}}}(this)),a.on("swipe",function(a){return function(b){var c,d,e,f,g;if(null!=a.events.swipe){for(f=a.events.swipe,g=[],d=0,e=f.length;d<e;d++)null!=(c=f[d])&&(null==c.sprite||c.sprite.visible?g.push(c.callback(b)):g.push(void 0));return g}}}(this)),a.on("pinch",function(a){return function(b){var c,d,e,f,g;if(null!=a.events.pinch){for(f=a.events.pinch,g=[],d=0,e=f.length;d<e;d++)null!=(c=f[d])&&g.push(c.callback(b));return g}}}(this)),a.on("pinchend",function(a){return function(b){var c,d,e,f,g;if(null!=a.events.pinchend){for(f=a.events.pinchend,g=[],d=0,e=f.length;d<e;d++)null!=(c=f[d])&&g.push(c.callback(b));return g}}}(this)),this.game.bowser.mobile||this.game.bowser.tablet||this.game.device.iPad?(this.$el.on("touchstart",function(a){return function(b){var d,e,f,g,h,i,j;for(h=b.originalEvent.changedTouches,i=[],e=0,f=h.length;e<f;e++)j=h[e],null!=a.events.touchstart?(g={x:j.clientX,y:j.clientY},i.push(function(){var a,e,f,h;for(f=this.events.touchstart,h=[],a=0,e=f.length;a<e;a++)if(null!=(d=f[a])){if(null==d.sprite||d.sprite.visible&&this.game.input.hitTest(d.sprite,g,new c.Point)){d.callback(b),d.sprite.touchId=j.identifier;break}h.push(void 0)}return h}.call(a))):i.push(void 0);return i}}(this)),this.$el.on("touchend touchcancel",function(a){return function(b){var d,e,f,g,h,i,j,k;if(null!=a.events.touchend){for(h=b.originalEvent.changedTouches,i=[],e=0,f=h.length;e<f;e++)k=h[e],g={x:k.clientX,y:k.clientY},i.push(function(){var a,e,f,h;for(f=this.events.touchend,h=[],a=0,e=f.length;a<e;a++)null!=(d=f[a])&&(null==d.sprite||d.sprite.touchId===k.identifier?(d.sprite.touchId=null,j=this.game.input.hitTest(d.sprite,g,new c.Point),h.push(d.callback(b,j))):h.push(void 0));return h}.call(a));return i}}}(this))):(this.$el.on("mousedown",function(a){return function(b){var d,e,f,g,h,i;if(null!=a.events.mousedown){for(g={x:b.originalEvent.clientX,y:b.originalEvent.clientY},h=a.events.mousedown,i=[],e=0,f=h.length;e<f;e++)if(null!=(d=h[e])){if(null==d.sprite||d.sprite.visible&&a.game.input.hitTest(d.sprite,g,new c.Point)){d.callback(b),d.sprite.mousedowned=!0;break}i.push(d.sprite.mousedowned=!1)}return i}}}(this)),this.$el.on("mouseup",function(a){return function(b){var d,e,f,g,h,i,j;if(null!=a.events.mouseup){for(g={x:b.originalEvent.clientX,y:b.originalEvent.clientY},h=a.events.mouseup,i=[],e=0,f=h.length;e<f;e++)null!=(d=h[e])&&(null==d.sprite||d.sprite.visible&&d.sprite.mousedowned?(d.sprite.mousedowned=!1,j=a.game.input.hitTest(d.sprite,g,new c.Point),i.push(d.callback(b,j))):i.push(void 0));return i}}}(this)))},e.prototype.update=function(){},e}(c.Signal)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},c={}.hasOwnProperty;define("Ads/AdManager",["require","Phaser","h5ads"],function(c){var d,e;return d=c("Phaser"),e=c("h5ads"),function(c){function d(){return this.pauseGame=a(this.pauseGame,this),this.resumeGame=a(this.resumeGame,this),this.showAd=a(this.showAd,this),this.start=a(this.start,this),d.__super__.constructor.apply(this,arguments)}return b(d,c),d.prototype.start=function(a){if(this.game=a,!this.game.config.devSkipAds)return this.provider=new e.GameDistribution("f3a6e1ac0a77412289cbac47658b2b68"),e.adWrapper.setAdProvider(this.provider),window.h5ads=e},d.prototype.showAd=function(a,b){return h5branding.google.sendScreenView("advertisement_"+b),e.adWrapper.once(e.AdEvents.CONTENT_PAUSED,function(a){return function(){return a.pauseGame()}}(this)),e.adWrapper.once(e.AdEvents.CONTENT_RESUMED,function(a){return function(){return a.resumeGame()}}(this)),this.game.config.devSkipAds?void(null!=a&&a()):(this.callback=a,e.adWrapper.showAd(e.AdType.interstitial))},d.prototype.resumeGame=function(){return this.game.paused=!1,null!=this.callback&&this.callback(),this.callback=null,e.adWrapper.removeAllListeners(e.AdEvents.CONTENT_PAUSED),e.adWrapper.removeAllListeners(e.AdEvents.CONTENT_RESUMED)},d.prototype.pauseGame=function(){return this.game.paused=!0},d}(d.Signal)})}.call(this),function(){var a=function(a,b){return function(){return a.apply(b,arguments)}};define("Ads/SideBanners",["require","Phaser","h5ads"],function(b){var c;return b("Phaser"),c=b("h5ads"),function(){function b(){this.resize=a(this.resize,this),this.destroyBanners=a(this.destroyBanners,this),this.start=a(this.start,this)}return b.prototype.start=function(a){return this.game=a,this.leftBanner=null,this.rightBanner=null},b.prototype.destroyBanners=function(){if(this.leftBanner&&(this.leftBanner.destroy(),this.leftBanner=null),this.rightBanner)return this.rightBanner.destroy(),this.rightBanner=null},b.prototype.resize=function(a){var b,d;if(a=!0,null!=this.game&&this.game.device.desktop&&(d=!0,b=this.game.state.getCurrentState(),"level"===b.key&&(d=this.game.paused||!1||b.ended||!1),d)){if(!(this.game.realWidth>=1250&&this.game.realHeight>=810))return this.destroyBanners();if(this.leftBanner?this.leftBanner&&this.leftBanner.alignIn(document.body,a?c.GameDistributionAlignment.TopLeft:c.GameDistributionAlignment.CenterLeft):(this.leftBanner=c.adWrapper.loadBanner(c.GameDistributionBannerSize.Skyscraper),this.leftBanner&&this.leftBanner.alignIn(document.body,a?c.GameDistributionAlignment.TopLeft:c.GameDistributionAlignment.CenterLeft)),this.rightBanner){if(this.rightBanner)return this.rightBanner.alignIn(document.body,a?c.GameDistributionAlignment.TopRight:c.GameDistributionAlignment.CenterRight)}else if(this.rightBanner=c.adWrapper.loadBanner(c.GameDistributionBannerSize.Skyscraper),this.rightBanner)return this.rightBanner.alignIn(document.body,a?c.GameDistributionAlignment.TopRight:c.GameDistributionAlignment.CenterRight)}},b}()})}.call(this),function(a,b,c){"undefined"!=typeof module&&module.exports?module.exports=c():"function"==typeof define&&define.amd?define("bowser",c):a.bowser=c()}(this,0,function(){function a(a){function b(b){var c=a.match(b);return c&&c.length>1&&c[1]||""}function c(b){var c=a.match(b);return c&&c.length>1&&c[2]||""}var e,f=b(/(ipod|iphone|ipad)/i).toLowerCase(),h=/like android/i.test(a),i=!h&&/android/i.test(a),j=/nexus\s*[0-6]\s*/i.test(a),k=!j&&/nexus\s*[0-9]+/i.test(a),l=/CrOS/.test(a),m=/silk/i.test(a),n=/sailfish/i.test(a),o=/tizen/i.test(a),p=/(web|hpw)(o|0)s/i.test(a),q=/windows phone/i.test(a),r=(/SamsungBrowser/i.test(a),!q&&/windows/i.test(a)),s=!f&&!m&&/macintosh/i.test(a),t=!i&&!n&&!o&&!p&&/linux/i.test(a),u=c(/edg([ea]|ios)\/(\d+(\.\d+)?)/i),v=b(/version\/(\d+(\.\d+)?)/i),w=/tablet/i.test(a)&&!/tablet pc/i.test(a),x=!w&&/[^-]mobi/i.test(a),y=/xbox/i.test(a);/opera/i.test(a)?e={name:"Opera",opera:g,version:v||b(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr\/|opios/i.test(a)?e={name:"Opera",opera:g,version:b(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||v}:/SamsungBrowser/i.test(a)?e={name:"Samsung Internet for Android",samsungBrowser:g,version:v||b(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/Whale/i.test(a)?e={name:"NAVER Whale browser",whale:g,version:b(/(?:whale)[\s\/](\d+(?:\.\d+)+)/i)}:/MZBrowser/i.test(a)?e={name:"MZ Browser",mzbrowser:g,version:b(/(?:MZBrowser)[\s\/](\d+(?:\.\d+)+)/i)}:/coast/i.test(a)?e={name:"Opera Coast",coast:g,version:v||b(/(?:coast)[\s\/](\d+(\.\d+)?)/i)}:/focus/i.test(a)?e={name:"Focus",focus:g,version:b(/(?:focus)[\s\/](\d+(?:\.\d+)+)/i)}:/yabrowser/i.test(a)?e={name:"Yandex Browser",yandexbrowser:g,version:v||b(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(a)?e={name:"UC Browser",ucbrowser:g,version:b(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)}:/mxios/i.test(a)?e={name:"Maxthon",maxthon:g,version:b(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)}:/epiphany/i.test(a)?e={name:"Epiphany",epiphany:g,version:b(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)}:/puffin/i.test(a)?e={name:"Puffin",puffin:g,version:b(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)}:/sleipnir/i.test(a)?e={name:"Sleipnir",sleipnir:g,version:b(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)}:/k-meleon/i.test(a)?e={name:"K-Meleon",kMeleon:g,version:b(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)}:q?(e={name:"Windows Phone",osname:"Windows Phone",windowsphone:g},u?(e.msedge=g,e.version=u):(e.msie=g,e.version=b(/iemobile\/(\d+(\.\d+)?)/i))):/msie|trident/i.test(a)?e={name:"Internet Explorer",msie:g,version:b(/(?:msie |rv:)(\d+(\.\d+)?)/i)}:l?e={name:"Chrome",osname:"Chrome OS",chromeos:g,chromeBook:g,chrome:g,version:b(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/edg([ea]|ios)/i.test(a)?e={name:"Microsoft Edge",msedge:g,version:u}:/vivaldi/i.test(a)?e={name:"Vivaldi",vivaldi:g,version:b(/vivaldi\/(\d+(\.\d+)?)/i)||v}:n?e={name:"Sailfish",osname:"Sailfish OS",sailfish:g,version:b(/sailfish\s?browser\/(\d+(\.\d+)?)/i)}:/seamonkey\//i.test(a)?e={name:"SeaMonkey",seamonkey:g,version:b(/seamonkey\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(a)?(e={name:"Firefox",firefox:g,version:b(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)},/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(a)&&(e.firefoxos=g,e.osname="Firefox OS")):m?e={name:"Amazon Silk",silk:g,version:b(/silk\/(\d+(\.\d+)?)/i)}:/phantom/i.test(a)?e={name:"PhantomJS",phantom:g,version:b(/phantomjs\/(\d+(\.\d+)?)/i)}:/slimerjs/i.test(a)?e={name:"SlimerJS",slimer:g,version:b(/slimerjs\/(\d+(\.\d+)?)/i)}:/blackberry|\bbb\d+/i.test(a)||/rim\stablet/i.test(a)?e={name:"BlackBerry",osname:"BlackBerry OS",blackberry:g,version:v||b(/blackberry[\d]+\/(\d+(\.\d+)?)/i)}:p?(e={name:"WebOS",osname:"WebOS",webos:g,version:v||b(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)},/touchpad\//i.test(a)&&(e.touchpad=g)):/bada/i.test(a)?e={name:"Bada",osname:"Bada",bada:g,version:b(/dolfin\/(\d+(\.\d+)?)/i)}:o?e={name:"Tizen",osname:"Tizen",tizen:g,version:b(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||v}:/qupzilla/i.test(a)?e={name:"QupZilla",qupzilla:g,version:b(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i)||v}:/chromium/i.test(a)?e={name:"Chromium",chromium:g,version:b(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||v}:/chrome|crios|crmo/i.test(a)?e={name:"Chrome",chrome:g,version:b(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:i?e={name:"Android",version:v}:/safari|applewebkit/i.test(a)?(e={name:"Safari",safari:g},v&&(e.version=v)):f?(e={name:"iphone"==f?"iPhone":"ipad"==f?"iPad":"iPod"},v&&(e.version=v)):e=/googlebot/i.test(a)?{name:"Googlebot",googlebot:g,version:b(/googlebot\/(\d+(\.\d+))/i)||v}:{name:b(/^(.*)\/(.*) /),version:c(/^(.*)\/(.*) /)},!e.msedge&&/(apple)?webkit/i.test(a)?(/(apple)?webkit\/537\.36/i.test(a)?(e.name=e.name||"Blink",e.blink=g):(e.name=e.name||"Webkit",e.webkit=g),!e.version&&v&&(e.version=v)):!e.opera&&/gecko\//i.test(a)&&(e.name=e.name||"Gecko",e.gecko=g,e.version=e.version||b(/gecko\/(\d+(\.\d+)?)/i)),e.windowsphone||!i&&!e.silk?!e.windowsphone&&f?(e[f]=g,e.ios=g,e.osname="iOS"):s?(e.mac=g,e.osname="macOS"):y?(e.xbox=g,e.osname="Xbox"):r?(e.windows=g,e.osname="Windows"):t&&(e.linux=g,e.osname="Linux"):(e.android=g,e.osname="Android");var z="";e.windows?z=function(a){switch(a){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}(b(/Windows ((NT|XP)( \d\d?.\d)?)/i)):e.windowsphone?z=b(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i):e.mac?(z=b(/Mac OS X (\d+([_\.\s]\d+)*)/i),z=z.replace(/[_\s]/g,".")):f?(z=b(/os (\d+([_\s]\d+)*) like mac os x/i),z=z.replace(/[_\s]/g,".")):i?z=b(/android[ \/-](\d+(\.\d+)*)/i):e.webos?z=b(/(?:web|hpw)os\/(\d+(\.\d+)*)/i):e.blackberry?z=b(/rim\stablet\sos\s(\d+(\.\d+)*)/i):e.bada?z=b(/bada\/(\d+(\.\d+)*)/i):e.tizen&&(z=b(/tizen[\/\s](\d+(\.\d+)*)/i)),z&&(e.osversion=z);var A=!e.windows&&z.split(".")[0];return w||k||"ipad"==f||i&&(3==A||A>=4&&!x)||e.silk?e.tablet=g:(x||"iphone"==f||"ipod"==f||i||j||e.blackberry||e.webos||e.bada)&&(e.mobile=g),e.msedge||e.msie&&e.version>=10||e.yandexbrowser&&e.version>=15||e.vivaldi&&e.version>=1||e.chrome&&e.version>=20||e.samsungBrowser&&e.version>=4||e.whale&&1===d([e.version,"1.0"])||e.mzbrowser&&1===d([e.version,"6.0"])||e.focus&&1===d([e.version,"1.0"])||e.firefox&&e.version>=20||e.safari&&e.version>=6||e.opera&&e.version>=10||e.ios&&e.osversion&&e.osversion.split(".")[0]>=6||e.blackberry&&e.version>=10.1||e.chromium&&e.version>=20?e.a=g:e.msie&&e.version<10||e.chrome&&e.version<20||e.firefox&&e.version<20||e.safari&&e.version<6||e.opera&&e.version<10||e.ios&&e.osversion&&e.osversion.split(".")[0]<6||e.chromium&&e.version<20?e.c=g:e.x=g,e}function b(a){return a.split(".").length}function c(a,b){var c,d=[];if(Array.prototype.map)return Array.prototype.map.call(a,b);for(c=0;c<a.length;c++)d.push(b(a[c]));return d}function d(a){for(var d=Math.max(b(a[0]),b(a[1])),e=c(a,function(a){var e=d-b(a);return a+=new Array(e+1).join(".0"),c(a.split("."),function(a){return new Array(20-a.length).join("0")+a}).reverse()});--d>=0;){if(e[0][d]>e[1][d])return 1;if(e[0][d]!==e[1][d])return-1;if(0===d)return 0}}function e(b,c,e){var f=h;"string"==typeof c&&(e=c,c=void 0),void 0===c&&(c=!1),e&&(f=a(e));var g=""+f.version;for(var i in b)if(b.hasOwnProperty(i)&&f[i]){if("string"!=typeof b[i])throw new Error("Browser version in the minVersion map should be a string: "+i+": "+String(b));return d([g,b[i]])<0}return c}function f(a,b,c){return!e(a,b,c)}var g=!0,h=a("undefined"!=typeof navigator?navigator.userAgent||"":"");return h.test=function(a){for(var b=0;b<a.length;++b){var c=a[b];if("string"==typeof c&&c in h)return!0}return!1},h.isUnsupportedBrowser=e,h.compareVersions=d,h.check=f,h._detect=a,h.detect=a,h}),define("bowser",function(){});var PhaserSuperStorage;!function(a){!function(a){var b=function(){function a(a){void 0===a&&(a=""),this.namespace="",this.forcePromises=!1,this.setNamespace(a)}return Object.defineProperty(a.prototype,"length",{get:function(){return null!==this.getNameSpaceMatches()?this.getNameSpaceMatches().length:0},enumerable:!0,configurable:!0}),a.prototype.key=function(a){var b=this.getNameSpaceMatches()[a],c=this.getCookiesForNameSpace()[b]||null;return this.forcePromises?this.promisefy(c):c},a.prototype.getItem=function(a){var b=this.getCookiesForNameSpace()[a]||null;return this.forcePromises?this.promisefy(b):b},a.prototype.setItem=function(a,b){if(document.cookie=encodeURIComponent(this.namespace+a)+"="+encodeURIComponent(b)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/",this.forcePromises)return this.promisefy(null)},a.prototype.removeItem=function(a){if(document.cookie=encodeURIComponent(this.namespace+a)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/",this.forcePromises)return this.promisefy(null)},a.prototype.clear=function(){var a=this.getCookiesForNameSpace();for(var b in a)a.hasOwnProperty(b)&&this.removeItem(b);if(this.forcePromises)return this.promisefy(null)},a.prototype.setNamespace=function(a){if(a&&(this.namespace=a+":",this.reg=new RegExp("^"+this.namespace+"[a-zA-Z0-9]*","g")),this.forcePromises)return this.promisefy(a)},a.prototype.getNameSpaceMatches=function(){var a=this;return decodeURIComponent(document.cookie).split("; ").filter(function(b){return null!==b.match(a.reg)&&b.match(a.reg).length>0})},a.prototype.getCookiesForNameSpace=function(){var a=this,b={};return this.getNameSpaceMatches().forEach(function(c){var d=c.replace(a.namespace,"").split("=");b[d[0]]=d[1]}),b},a.prototype.promisefy=function(a){return new Promise(function(b,c){b(a)})},a}();a.CookieStorage=b}(a.StorageAdapters||(a.StorageAdapters={}))}(PhaserSuperStorage||(PhaserSuperStorage={}));var PhaserSuperStorage;!function(a){!function(a){var b=function(){function a(){this.namespace="",this.keys=[]}return Object.defineProperty(a.prototype,"forcePromises",{get:function(){return!0},set:function(a){},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"length",{get:function(){return this.keys.length},enumerable:!0,configurable:!0}),a.prototype.key=function(a){return this.promisefy(this.keys[a])},a.prototype.getItem=function(a){var b=this;return new Promise(function(c,d){NativeStorage.getItem(b.namespace+a,function(a){c(a)},function(a){2===a.code?c(null):d(a)})})},a.prototype.setItem=function(a,b){var c=this;return a.length<1?void console.error("CordovaStorage: Key cannot be an empty string!"):new Promise(function(d,e){NativeStorage.setItem(c.namespace+a,b,function(){c.keys.indexOf(a)<0&&(c.keys.push(a),c.save()),d(null)},function(a){e(a)})})},a.prototype.removeItem=function(a){var b=this;return new Promise(function(c,d){NativeStorage.remove(b.namespace+a,function(){var d=b.keys.indexOf(a);d>=0&&(b.keys.splice(d,1),b.save()),c(null)},function(a){d(a)})})},a.prototype.clear=function(){var a=this;return new Promise(function(b,c){for(var d=0,e=0;e<a.keys.length;e++)NativeStorage.remove(a.namespace+a.keys[e],function(){++d>=a.keys.length&&(a.keys=[],a.save(),b(null))},function(a){c(a)})})},a.prototype.setNamespace=function(a){var b=this;return void 0===a&&(a=""),this.namespace=a+":",this.keys=[],new Promise(function(a,c){b.load().then(a).catch(a)})},a.prototype.promisefy=function(a){return new Promise(function(b,c){b(a)})},a.prototype.load=function(){var a=this;return new Promise(function(b,c){NativeStorage.getItem(a.namespace,function(c){a.keys=JSON.parse(c),b(null)},function(a){c(a)})})},a.prototype.save=function(){NativeStorage.setItem(this.namespace,JSON.stringify(this.keys),function(){},function(a){console.warn("CordovaStorage: Failed to save keys of namespace.")})},a}();a.CordovaStorage=b}(a.StorageAdapters||(a.StorageAdapters={}))}(PhaserSuperStorage||(PhaserSuperStorage={}));var PhaserSuperStorage;!function(a){!function(b){var c=function(){function b(a,b){void 0===a&&(a=""),void 0===b&&(b="*"),this.namespace="",this.expectedOrigin="",this.storageLength=0,this.enabled=!1,""!==a&&this.setNamespace(a),this.expectedOrigin=b}return Object.defineProperty(b.prototype,"forcePromises",{get:function(){return!0},set:function(a){},enumerable:!0,configurable:!0}),Object.defineProperty(b.prototype,"length",{get:function(){return this.storageLength},enumerable:!0,configurable:!0}),b.prototype.init=function(){var b=this;return this.sendMessage({command:a.StorageCommand.init}).then(function(){b.enabled=!0})},b.prototype.key=function(b){return this.sendMessage({command:a.StorageCommand.key,value:b})},b.prototype.getItem=function(b){return this.sendMessage({command:a.StorageCommand.getItem,key:b})},b.prototype.setItem=function(b,c){return this.sendMessage({command:a.StorageCommand.setItem,key:b,value:c})},b.prototype.removeItem=function(b){return this.sendMessage({command:a.StorageCommand.removeItem,key:b})},b.prototype.clear=function(){return this.sendMessage({command:a.StorageCommand.clear})},b.prototype.setNamespace=function(b){return this.sendMessage({command:a.StorageCommand.setNamespace,value:b})},b.prototype.sendMessage=function(b){var c,d=this;b.command===a.StorageCommand.init&&(c=!1);var e=new MessageChannel;return new Promise(function(f,g){d.enabled||b.command===a.StorageCommand.init||g("Messaging not enabled!"),b.command===a.StorageCommand.init&&setTimeout(function(){c||g("Unable to get a response in time")},1e3),e.port1.onmessage=function(b){console.log("Frame received message",b);var e=a.StorageUtils.validateMessage(b.data);switch(e.command===a.StorageCommand.init&&(c=!0),void 0!==e.status&&"ok"===e.status||g(e.value),void 0!==e.length&&(d.storageLength=e.length),e.command){case a.StorageCommand.setNamespace:d.namespace=e.value+":";case a.StorageCommand.getItem:case a.StorageCommand.length:case a.StorageCommand.key:f(e.value);break;case a.StorageCommand.setItem:case a.StorageCommand.removeItem:case a.StorageCommand.clear:case a.StorageCommand.init:f(e.status);break;default:g(e.value)}},(d.enabled||b.command===a.StorageCommand.init)&&(console.log("Sending message to parent: ",b),window.parent.postMessage(b,d.expectedOrigin,[e.port2]))})},b}();b.IframeStorage=c}(a.StorageAdapters||(a.StorageAdapters={}))}(PhaserSuperStorage||(PhaserSuperStorage={}));var PhaserSuperStorage;!function(a){!function(b){var c=function(){function b(a){void 0===a&&(a=""),this.namespace="",this.forcePromises=!1,this.setNamespace(a)}return Object.defineProperty(b.prototype,"length",{get:function(){var b=Object.keys(localStorage);return a.StorageUtils.nameSpaceKeyFilter(b,this.namespace).length},enumerable:!0,configurable:!0}),b.prototype.key=function(a){return this.forcePromises?this.promisefy(this._key,arguments):this._key(a)},b.prototype._key=function(b){var c=Object.keys(localStorage),d=a.StorageUtils.nameSpaceKeyFilter(c,this.namespace);return localStorage.getItem(d[b])},b.prototype.getItem=function(a){return this.forcePromises?this.promisefy(this._getItem,arguments):this._getItem(a)},b.prototype._getItem=function(a){return localStorage.getItem(this.namespace+a)},b.prototype.setItem=function(a,b){return this.forcePromises?this.promisefy(this._setItem,arguments):this._setItem(a,b)},b.prototype._setItem=function(a,b){return localStorage.setItem(this.namespace+a,b)},b.prototype.removeItem=function(a){return this.forcePromises?this.promisefy(this._removeItem,arguments):this._removeItem(a)},b.prototype._removeItem=function(a){return localStorage.removeItem(this.namespace+a)},b.prototype.clear=function(){return this.forcePromises?this.promisefy(this._clear,arguments):this._clear()},b.prototype._clear=function(){for(var b=Object.keys(localStorage),c=a.StorageUtils.nameSpaceKeyFilter(b,this.namespace),d=0;d<c.length;d++)localStorage.removeItem(c[d])},b.prototype.setNamespace=function(a){return this.forcePromises?this.promisefy(this._setNameSpace,arguments):this._setNameSpace(a)},b.prototype._setNameSpace=function(a){a&&(this.namespace=a+":")},
|
||
b.prototype.promisefy=function(a,b){var c=this;return new Promise(function(d,e){d(a.apply(c,b))})},b}();b.LocalStorage=c}(a.StorageAdapters||(a.StorageAdapters={}))}(PhaserSuperStorage||(PhaserSuperStorage={}));var PhaserSuperStorage;!function(a){var b=function(){function b(c){if(void 0!==c)Object.defineProperty(c,"storage",{value:this});else{if(null!==b.instance)return b.instance;b.instance=this}a.StorageUtils.isLocalStorageSupport()?this.setAdapter(new a.StorageAdapters.LocalStorage):this.setAdapter(new a.StorageAdapters.CookieStorage)}return b.prototype.setAdapter=function(a){this.storage=a},Object.defineProperty(b.prototype,"forcePromises",{get:function(){return this.storage.forcePromises},set:function(a){this.storage.forcePromises=a},enumerable:!0,configurable:!0}),Object.defineProperty(b.prototype,"length",{get:function(){return null===this.storage?0:this.storage.length},enumerable:!0,configurable:!0}),b.prototype.setNamespace=function(a){if(null!==this.storage)return this.storage.setNamespace(a)},b.prototype.key=function(a){return null===this.storage?"":this.storage.key(a)},b.prototype.getItem=function(a){return null===this.storage?null:this.storage.getItem(a)},b.prototype.setItem=function(a,b){if(null!==this.storage)return this.storage.setItem(a,b)},b.prototype.removeItem=function(a){if(null!==this.storage)return this.storage.removeItem(a)},b.prototype.clear=function(){if(null!==this.storage)return this.storage.clear()},b.instance=null,b}();a.StoragePlugin=b}(PhaserSuperStorage||(PhaserSuperStorage={})),void 0!==window.Phaser&&Phaser.Utils.mixinPrototype(PhaserSuperStorage.StoragePlugin,Phaser.Plugin);var PhaserSuperStorage;!function(a){!function(a){a[a.init=0]="init",a[a.setItem=1]="setItem",a[a.getItem=2]="getItem",a[a.removeItem=3]="removeItem",a[a.clear=4]="clear",a[a.setNamespace=5]="setNamespace",a[a.length=6]="length",a[a.key=7]="key",a[a.error=8]="error"}(a.StorageCommand||(a.StorageCommand={}));var b=(a.StorageCommand,function(){function a(){}return a.isLocalStorageSupport=function(){try{if("object"==typeof localStorage)return localStorage.setItem("testingLocalStorage","foo"),localStorage.removeItem("testingLocalStorage"),!0}catch(a){return!1}return!1},a.validateMessage=function(a){return a.hasOwnProperty("command")?a:null},a.nameSpaceKeyFilter=function(a,b){return a.filter(function(a){return a.substring(0,b.length)===b})},a}());a.StorageUtils=b}(PhaserSuperStorage||(PhaserSuperStorage={})),define("superStorage",["Phaser"],function(a){return function(){return a.superStorage}}(this));var __extends=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},PhaserCachebuster;!function(a){var b=function(a){function b(b,c){var d=a.call(this,b,c)||this;return d.patchLoader(),d}return __extends(b,a),b.prototype.patchLoader=function(){Object.defineProperty(Phaser.Loader,"cacheBuster",{value:null}),Phaser.Loader.prototype.transformUrl=function(a,b){return a?(null!==this.cacheBuster&&null===a.match(/^(data:)/)&&(a+="?v="+this.cacheBuster),a.match(/^(?:blob:|data:|http:\/\/|https:\/\/|\/\/)/)?a:this.baseURL+b.path+a):""}},b}(Phaser.Plugin);a.CacheBuster=b}(PhaserCachebuster||(PhaserCachebuster={})),define("cacheBuster",["Phaser"],function(a){return function(){return a.cacheBuster}}(this));var RaygunHelper;!function(a){var b=function(){function a(){var a=this;this.apiKey="LUIxyizsmO9jqyPIhEaAyw",this.recurringError=[],function(a,b,c,d,e,f,g,h){a.RaygunObject=e,a[e]=a[e]||function(){(a[e].o=a[e].o||[]).push(arguments)},f=b.createElement(c),g=b.getElementsByTagName(c)[0],f.async=1,f.src="//cdn.raygun.io/raygun4js/raygun.min.js",g.parentNode.insertBefore(f,g),h=a.onerror,a.onerror=function(b,c,d,f,g){h&&h(b,c,d,f,g),g||(g=new Error(b)),a[e].q=a[e].q||[],a[e].q.push({e:g})}}(window,document,"script",0,"rg4js"),rg4js("apiKey",this.apiKey),rg4js("enableCrashReporting",!0),rg4js("setVersion",version),rg4js("options",{ignore3rdPartyErrors:!0}),rg4js("onBeforeSend",function(b){return a.filterError(b)}),rg4js("enablePulse",!1)}return a.getInstance=function(){return null===a.instance&&(a.instance=new a),a.instance},a.prototype.filterError=function(a){if(void 0!==a&&a.Details&&a.Details.Error&&a.Details.Error.Message){if(-1!==this.recurringError.indexOf(a.Details.Error.Message))return!1;this.recurringError.push(a.Details.Error.Message)}return a},a.instance=null,a}();a.RayGun=b}(RaygunHelper||(RaygunHelper={})),define("RaygunHelper",function(){}),function(){define("main",["require","Phaser","States/Boot","States/Load","States/Level/Level","utils/lang/Lang","TouchManager","Ads/AdManager","Ads/SideBanners","bowser","jquery","underscore","superStorage","cacheBuster","RaygunHelper"],function(a){var b,c,d,e,f,g,h,i,j,k,l;return g=a("Phaser"),c=a("States/Boot"),f=a("States/Load"),a("States/Level/Level"),e=a("utils/lang/Lang"),i=a("TouchManager"),b=a("Ads/AdManager"),h=a("Ads/SideBanners"),d=a("bowser"),a("jquery"),a("underscore"),a("superStorage"),a("cacheBuster"),a("RaygunHelper"),k={vibrate:!1,music:!0,fx:!0,controls:null},j={width:window.innerWidth||$(window).width(),height:window.innerHeight||$(window).height(),renderer:g.AUTO,parent:"container",transparent:!1,multiTexture:!1,antialias:!0,resolution:window.devicePixelRatio,enableDebug:!1,showFps:!1,devUnlock:!1,devSkipAds:!1,simulateCordova:!1,log:!1},j.log||(console.log=function(a){return function(){}}()),RaygunHelper.RayGun.getInstance(),$.ajaxSetup({data:{v:version}}),l=new g.Game(j),g.Device.whenReady(function(a){return function(){var j,m,n,o,p,q,r;return l.stage.disableVisibilityChange=!0,n=null!=(p=l.device.desktop||!l.device.iPad)?p:{click:"touchstart"},document.getElementById("container").addEventListener(n,function(a){return l.gameResumed(a)}),l.bowser=d,l.settingsSignal=new g.Signal,l.settingsSignal.add(function(a){var b;if("fx"===a&&(l.paused||(l.sound.mute=!l.settings.fx)),"music"===a&&(b=l.state.states[l.state.current],null!=b.updateMusic))return b.updateMusic()}),l.lang=new e,l.saveSettings=function(){return this.storage.setNamespace("fb-"+this.gameConfig.id),this.storage.setItem("settings",JSON.stringify(this.settings))},l.loadSettings=function(){return this.storage.setNamespace("fb-"+this.gameConfig.id),this.storage.getItem("settings").then(function(a){return function(b){return b?a.settings=JSON.parse(b):(a.settings=k,a.bowser.tablet||a.bowser.mobile||a.device.iPad?a.settings.controls="single":a.settings.controls="keyboard"),new Promise(function(a){return a()})}}(this))},l.state.add("load",f),l.state.add("boot",c),l.TouchManager=new i,l.TouchManager.start(l),l.AdManager=new b,l.SideBanners=new h,l.state.start("boot"),m=function(b){var c,d,e,f,g;return f=l.make.sprite(),d=l.make.graphics(0,0),d.beginFill(0,1),d.drawRect(0,0,l.realWidth,l.realHeight),d.endFill(),f.addChild(d),b.showText&&(g=l.make.bitmapText(0,0,l.lang.font,l.lang.locale("loading"),Math.min(30,36/Math.max(1,l.resolution))),g.anchor.set(0),g.alpha=0,g.x=window.innerWidth/2-g.textWidth/2,g.y=window.innerHeight/2-g.textHeight/2,f.addChild(g),d.text=g,e=l.time.time,c=function(){var b,d,f;if(d=l.time.elapsedSince(e),f=800,d>f&&(g.alpha=1),b=Math.floor((d-f)/300)%4,0===b&&(g.text=l.lang.locale("loading")+"..."),1===b&&(g.text=l.lang.locale("loading")),2===b&&(g.text=l.lang.locale("loading")+"."),3===b&&(g.text=l.lang.locale("loading")+".."),a.fading)return requestAnimationFrame(c)},requestAnimationFrame(c)),l.stage.addChild(f),f},r=function(a,b){var c;return l.paused=!1,a.alpha=0,c=l.add.tween(a),c.to({alpha:1},500,null),c.onComplete.add(function(){return l.stage.backgroundColor="#000000",l.tweens.remove(c),b()}),c.start()},o=function(a,b){var c;return l.stage.backgroundColor="#000000",l.paused=!1,c=l.add.tween(a),c.to({alpha:0},500,null),c.onComplete.add(function(){return l.tweens.remove(c),b(),a.kill()}),c.start()},function(){var a;if(l.bowser.tablet||l.bowser.mobile||l.device.iPad){if(a=document.getElementById("root"),a.requestFullscreen)return a.requestFullscreen();if(a.webkitRequestFullscreen)return a.webkitRequestFullscreen();if(a.mozRequestFullScreen)return a.mozRequestFullScreen();if(a.msRequestFullscreen)return a.msRequestFullscreen()}},l.state.actualFadeToState=function(a,b,c,d){var e;return this.game.state.start(a,b,c,d),this.game.paused=!1,e=function(b){return function(){var c;return b.fading=!1,null!=b.overlay&&b.overlay.kill(),b.overlay=c=m({showText:!1}),c.alpha=1,requestAnimationFrame(function(){return o(c,function(){if(b.fading=!1,null!=b.game.state.states[a].start)return b.game.state.states[a].start()})})}}(this),null!=this.game.state.states[a].onReady?this.game.state.states[a].onReady.addOnce(e):requestAnimationFrame(function(a){return function(){return e()}}())},l.state.actualFadeToState=function(a,b,c,d){var e;return this.game.state.start(a,b,c,d),this.game.paused=!1,e=function(b){return function(){var c;return b.fading=!1,null!=b.overlay&&b.overlay.kill(),b.overlay=c=m({showText:!1}),c.alpha=1,requestAnimationFrame(function(){return o(c,function(){if(b.fading=!1,null!=b.game.state.states[a].start)return b.game.state.states[a].start()})})}}(this),null!=this.game.state.states[a].onReady?this.game.state.states[a].onReady.addOnce(e):requestAnimationFrame(function(a){return function(){return e()}}())},l.state.fade=function(a,b,c,d,e){var f;if(null==e&&(e=!0),!this.fading)return this.fading=!0,this.overlay=f=m({showText:!0}),r(f,function(f){return function(){return e?f.game.AdManager.showAd(function(){return f.game.state.actualFadeToState(a,b,c,d)},a):f.game.state.actualFadeToState(a,b,c,d)}}(this))},_.deepObjectExtend=function(a,b){var c;for(c in b)null!=a[c]&&"object"==typeof a[c]&&"object"==typeof b[c]?_.deepObjectExtend(a[c],b[c]):null==a[c]&&(a[c]=_.clone(b[c]));return a},l.secondsToString=function(a){var b,c,d;return c=function(a){return(a<10?"0":"")+a},d=a%60,b=(a-d)/60,c(b)+":"+c(d)},j=function(){var a,b,c,d,e;if(console.log("_resize to height: ",window.innerWidth,"or",$(window).width()),l.TouchManager.resize(),e=window.innerWidth||$(window).width(),b=window.innerHeight||$(window).height(),l.scale.setGameSize(e,b),d=800,c=600,l.width<d||l.height<c?l.camera.scale.set(Math.min(l.width/d,l.height/c)):l.camera.scale.set(1,1),l.camera.x=-l.width/2,l.camera.y=-l.height/2,l.realWidth=l.width/l.camera.scale.x,l.realHeight=l.height/l.camera.scale.y,l.bounds=new g.Rectangle(0,0,l.width,l.height),a=l.state.states[l.state.current],null!=a&&null!=a.layoutContent&&a.layoutContent(),l.SideBanners.resize("level"!==a.key),l.camera.update(),l.bowser.tablet||l.bowser.mobile||l.device.iPad)return window.scrollTo(0,0)},g.Sound.prototype.playInstance=function(){return this.instances||(this.instances=0),0===this.instances||this.loop?this.play():this.restart(),this.instances++,this},g.Sound.prototype.stopInstance=function(){if(0===--this.instances)return this.stop()},q=_.debounce(j,200),$(window).on("resize",q),q(),l.getStoreObjects=function(){var a,b,c,d,e,f,g,h;for(a=["ios","android","microsoft"],e=[],g=[],l.bowser.windows?(a.indexOf("android")>=0&&g.push("android"),a.indexOf("ios")>=0&&g.push("ios")):l.bowser.windowsphone?a.indexOf("microsoft")>=0&&g.push("microsoft"):l.bowser.macos?a.indexOf("ios")>=0&&g.push("ios"):l.bowser.android?a.indexOf("android")>=0&&g.push("android"):l.bowser.ios?a.indexOf("ios")>=0&&g.push("ios"):(a.indexOf("microsoft")>=0&&g.push("microsoft"),a.indexOf("android")>=0&&g.push("android"),a.indexOf("ios")>=0&&g.push("ios"));g.length>2;)g.splice(Math.floor(Math.random()*g.length),1);for(b=0,d=g.length;b<d;b++)f=g[b],"microsoft"===f?(c="microsoft-store",h="https://www.microsoft.com/store/apps/9NSP5N3B7Q32?cid=GDNetwork"):"android"===f?(c="android-store",h="https://play.google.com/store/apps/details?id=com.osloalbet.fb&referrer=utm_source%3DGDNetwork"):"ios"===f&&(c="ios-store",h="https://itunes.apple.com/app/apple-store/id1446352801?pt=119475155&ct=GDNetwork&mt=8"),e.push({image:c,url:h});return e}}}(this))})}.call(this),function(){require.config({baseUrl:"js",deps:["main"],findNestedDependencies:!1,shim:{marionette:{deps:["backbone"],exports:"Marionette"},box2d:{deps:["Phaser"],exports:"box2d"},outlineFilter:{deps:["Phaser"],exports:"outlineFilter"},inlineFilter:{deps:["Phaser"],exports:"inlineFilter"},shadowFilter:{deps:["Phaser"],exports:"shadowFilter"},bevelFilter:{deps:["Phaser"],exports:"bevelFilter"},colorMatrix:{deps:["Phaser"],exports:"colorMatrix"},bwMatrix:{deps:["Phaser"],exports:"bwMatrix"},glowFilter:{deps:["Phaser"],exports:"glowFilter"},superStorage:{deps:["Phaser"],exports:"superStorage"},cacheBuster:{deps:["Phaser"],exports:"cacheBuster"}},paths:{jquery:"../../../bower_components/jquery/dist/jquery",underscore:"../../../bower_components/underscore/underscore",backbone:"../../../bower_components/backbone/backbone","backbone.radio":"../../../bower_components/backbone.radio/build/backbone.radio","backbone.marionette":"../../../bower_components/backbone.marionette/lib/backbone.marionette",Phaser:"../../../node_modules/@azerion/phaser/build/phaser",box2d:"../scripts/lib/box2d-plugin-full",hammer:"../../../bower_components/hammerjs/hammer",outlineFilter:"../scripts/lib/OutlineFilter",inlineFilter:"../scripts/lib/InlineFilter",shadowFilter:"../scripts/lib/ShadowFilter",bevelFilter:"../scripts/lib/BevelFilter",colorMatrix:"../scripts/lib/ColorMatrix",bwMatrix:"../scripts/lib/BWMatrix",glowFilter:"../scripts/lib/GlowFilter",seedrandom:"../../../bower_components/seedrandom/seedrandom.min",bowser:"../../../bower_components/bowser/src/bowser",h5branding:"../../../node_modules/@azerion/h5-azerion-branding/dist/h5-azerion-branding.umd",RaygunHelper:"../scripts/lib/RaygunHelper",h5ads:"../../../node_modules/@azerion/h5-ad-wrapper/dist/h5-ad-wrapper.umd",superStorage:"../scripts/lib/phaser-super-storage",cacheBuster:"../scripts/lib/phaser-cachebuster","promise-polyfill":"../../../bower_components/promise-polyfill/dist/polyfill"}})}.call(this),define("init",function(){}); |