Advertisement
Guest User

Post-Compiled

a guest
Jan 14th, 2013
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // © 2013 Blaise Kal
  2. // Compiled using Google Closure Compiler on Mon, 14 Jan 2013 14:09:40 GMT
  3.  
  4. var http = require('http'),
  5.     socketio = require('socket.io'),
  6.     util = require('util'),
  7.     nodeEvents = require('events');
  8.  
  9. 'use strict';var n=void 0,p=!0,q=null,r=!1,t=80,u=4,v=[5,30],w="CON",x="SP1",y="SR1",A="SC1",aa="SS1",ba="SG1";function B(a,c,b){this.c=a;this.a=c;this.M=setInterval(this.w.bind(this),5E3);c.emit(w,c.h);b.on("disconnect",this.h.bind(this));b.on(y,this.m.bind(this));b.on(A,this.e.bind(this));b.on(aa,this.O.bind(this));b.on(ba,this.l.bind(this));b.on(x,this.N.bind(this))}
  10. B.prototype={w:function(){this.a.emit("PING",+new Date)},N:function(a){this.a.m=Math.round((+new Date-a)/2)},h:function(){var a,c=this.a;(a=this.c.n.o[c.a])?a.disconnect(c):(a=this.c,C(c),delete a.d[c.h])},m:function(a){var c=this.a,b=this.c;c.name=a.name;var b=b.n,d;a:{for(d in b.o)if(b.o.hasOwnProperty(d)){var e=b.o[d],h=e.G===a.G;if(e.P&&h&&e.d.length!==e.F&&!e.q){d=e;break a}}d=q}d||(d=++b.a,a=new D(b.c,d,a),d=b.o[a.a]=a);d.join(c)},e:function(a){var c,b;if(c=this.c.n.b(this.a.a))b=c.d.indexOf(this.a),
  11. a=[b,a.substr(0,30)],c.broadcast("CC2",a,this.a),c.emit("CS1",[b,"Blah"])},O:function(a){var c=this.a.a?this.c.n.b(this.a.a).k:q;if(c&&c.b.q){var b=this.a,d=a[0];a=a[1];var e=d[d.length-1],h=Math.min(Math.ceil(b.m/b.f.a)+1,c.J);b.f.direction=a;Math.abs(e[0]-E(b.f)[0])+Math.abs(e[1]-E(b.f)[1])<=h?(b.f.g=d,c.b.broadcast("CS4",[c.b.d.indexOf(b),b.f.g,b.f.direction],b)):(e=E(b.f),d=b.f.g,c.b.emit("CS4",[c.b.d.indexOf(b),b.f.g,b.f.direction]));F(c,b,d)?G(c,b,d):b.f.c=r;H(c.j,b,e)}},l:function(){var a=
  12. this.a.a?this.c.n.b(this.a.a).k:q;if(a&&a.b.q){for(var c=this.a,b=[],d=0,e=a.a.length;d<e;d++)b.push([d,a.a[d].g,a.a[d].direction]);c.emit("CG3",b);for(var a=a.j,b=a.i,d=[],e=0,h=b.length;e<h;e++){var g=b[e];q!==g&&d.push([a.A[g.type],[e,g.location]])}c.emit("CG4",d)}}};function I(a){this.a=a;this.i=[];this.c=[]}I.prototype={t:0,u:1,A:["CA2","CP2"]};function J(a,c){var b=a.i[c];b&&b.H&&clearTimeout(b.H);a.i[c]=q;a.c[c]=q}
  13. function H(a,c,b){for(var d=[],e=0,h=a.i.length;e<h;e++)if(q!==a.i[e]&&K(a.i[e].location,b)){d.push(e);var g=a,k=c,j=e,f=g.i[j];switch(f.type){case g.t:var m=g.a,l=j,s=m.b.d.indexOf(k),k=k.f.h+=3,z=++m.b.e[s];m.b.emit("CA1",[s,k,l]);m.b.emit("CS1",[s,"Nom"]);m.b.emit("CR3",[s,z]);break;case g.u:m=g.a,l=k,m.b.emit("CP1",[m.b.d.indexOf(l),j]),new L(m,l)}f.Q?(J(g,j),M(g,f.type,j,p,f.R)):J(g,j)}}
  14. function M(a,c,b,d,e){for(var h=a.a,g=h.j.c.slice(),k=0,j=h.a.length;k<j;k++)for(var f=h.a[k].g,m=0,l=f.length;m<l;m++)g.push(f[m]);a:{h=h.c;for(k=h.a.width*h.a.height;;){j=[Math.floor(Math.random()*k)%h.a.width,Math.floor(Math.floor(Math.random()*k)/h.a.width)];b:if(N(h,j[0],j[1]))f=r;else{f=0;for(m=g.length;f<m;f++)if((l=g[f])&&l[0]===j[0]&&l[1]===j[1]){f=r;break b}f=p}if(f){g=j;break a}}g=n}g={location:g,type:c,Q:!!d,R:e};b="number"===typeof b?b:a.i.length;e&&(g.H=setTimeout(function(){J(this,
  15. b);M(this,c,b,d,e)}.bind(a),e));a.i[b]=g;a.c[b]=g.location;a.a.b.emit(a.A[c],[b,g.location])}
  16. var ca=[{width:63,height:33,i:[192,1886,248,1830],v:[2,0,0,2],z:[]},{width:63,height:33,i:[192,1886,248,1830],v:[2,0,0,2],z:[94,157,220,283,346,409,472,535,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1480,1543,1606,1669,1732,1795,1858,1921,1984]},{width:63,height:33,i:[192,1886,248,1830],v:[2,0,0,2],z:[7,
  17. 31,55,70,94,118,133,157,181,220,259,283,307,322,346,370,385,409,433,441,442,443,444,445,446,447,448,472,496,497,498,499,500,501,502,503,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,
  18. 1294,1295,1296,1297,1298,1299,1300,1301,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1575,1576,1577,1578,1579,1580,1581,1582,1606,1630,1631,1632,1633,1634,1635,1636,1637,1645,1669,1693,1708,1732,1756,1771,1795,1819,1858,1897,1921,1945,1960,1984,2008,2023,2047,2071]}];function K(a,c){return a[0]===c[0]&&a[1]===c[1]}function O(a,c){this.a=c[a]}O.prototype={};
  19. function N(a,c,b){var d;if(!(d=0>c||0>b?p:c>=a.a.width||b>=a.a.height)){a:{d=a.a.z;for(var e=0,h=d.length;e<h;e++)if(c+a.a.width*b===d[e]){a=p;break a}a=r}d=a}return d?p:r}function P(a,c,b,d){this.g=[a];this.direction=c;this.h=b;this.a=d;this.r=r}P.prototype={};function Q(a){for(;a.g.length>a.h;)a.g.shift()}function E(a){return a.g[a.g.length-1]}
  20. function L(a,c){var b;a:{var d,e,h;e=0;h=[[1,this.h],[1,this.a],[1,this.c],[1,this.e]];b=0;for(d=h.length;b<d;b++)e+=h[b][0],h[b][0]=e;e=e*Math.random();b=0;for(d=h.length;b<d;b++)if(h[b][0]>e){b=h[b][1];break a}b=h[0][1]}b.bind(this)(c,a)}
  21. L.prototype={h:function(a,c){var b=c.b.d.indexOf(a);a.f.a-=5;c.b.emit("CS3",[b,a.f.a]);c.b.emit("CS1",[b,"Speed+"])},a:function(a,c){R(a,c,c.j.t,2+Math.floor(5*Math.random()),"Apples+")},c:function(a,c){R(a,c,c.j.u,2+Math.floor(3*Math.random()),"Power-ups+")},e:function(a,c){for(var b=c.b.d.indexOf(a),d=0,e=c.a.length;d<e;d++)if(d!==b){c.b.emit("CS1",[d,"Reverse"]);var h=c,g=d,k=n,j=n,f=h.a[g],k=f.g[0][0]-f.g[1][0],j=f.g[0][1]-f.g[1][1];0!==k?f.direction=-1===k?0:2:0!==j&&(f.direction=-1===j?1:3);
  22. f.g.reverse();h.b.emit("CS4",[g,f.g,f.direction])}}};function R(a,c,b,d,e){var h;h=c.b.d.indexOf(a);a=function(){M(c.j,b)};c.b.emit("CS1",[h,e]);for(e=0;e<d;e++)setTimeout(a,100*e)}function S(a,c){this.b=a;this.e=a.c;this.c=new O(c,ca);this.j=new I(this);this.a=[];this.m=r;this.h=this.L.bind(this)}
  23. S.prototype={J:4,p:{D:0,C:1,B:2},I:function(){console.log("___ NEW ROUND IN ROOM "+this.b.a+" ___");this.b.emit("CG2",[]);this.b.q=p;this.e.s.addListener("tick",this.h);M(this.j,this.j.t,q,p,3E4);T(this)},K:function(){this.e.s.removeListener("tick",this.h);var a=this.b;U(a.k);var c=a.h;if(c)for(var b=0,d=c.length;b<d;b++){a.d.splice(a.d.indexOf(c[b]),1);var e=a.c,h=c[b];C(h);delete e.d[h.h]}a.h=[];a.d.length?(a.k=new S(a,0),V(a),W(a.k)):a.c.n.remove(a)},L:function(a){for(var c=this.b.d,b=0,d=c.length;b<
  24. d;b++){var e=c[b],h=a,g=e.f;if(!g.r){if(g.e>=g.a){g.e-=g.a;var k=n,j=n,f=n,j=n,f=e.f,j=k=n,k=E(f),j=[[-1,0],[0,-1],[1,0],[0,1]][f.direction],k=[k[0]+j[0],k[1]+j[1]],j=f.g.slice(1);j.push(k);if(j=F(this,e,j))if(f.c){var m=n,l=j[0];l===this.p.D?m=util.format("{%d} crashed into a wall",j[1]):l===this.p.C?m=util.format("{%d} crashed into own tail",j[1]):l===this.p.B&&(m=util.format("{%d} crashed into {%d}",j[1],j[2]));this.b.emit("CC1",m);G(this,e,f.c)}else f.c=f.g.slice();f.r||(f.g.push(k),Q(f));f.c||
  25. H(this.j,e,k);Q(g)}g.e+=h}}}};function G(a,c,b){c.f.r=p;a.b.emit("CS2",[a.b.d.indexOf(c),b]);c=a.b.d;for(var d=b=0,e=c.length;d<e;d++)c[d].f.r?b++:a.b.emit("CR3",[d,a.b.e[d]+=2]);b>=c.length-1&&!a.m&&(a.m=p,a.b.emit("CC1","New round starting in 5 seconds"),setTimeout(a.K.bind(a),5E3))}
  26. function F(a,c,b){for(var d=c.f.c,e=a.b.d,h=a.c,g=0,k=b.length;g<k;g++){var j=b[g];if(N(h,j[0],j[1]))return[a.p.D,e.indexOf(c)];if(5<=k&&k-1!==g&&K(j,b[k-1])||d&&5<=k&&k-2!==g&&K(j,b[k-2]))return[a.p.C,e.indexOf(c)];for(var f=0,m=e.length;f<m;f++){var l;if(l=c!==e[f]){a:{l=e[f].f.g;for(var s=0,z=l.length;s<z;s++)if(l[s][0]===j[0]&&l[s][1]===j[1]){l=s;break a}l=-1}l=-1!==l}if(l)return[a.p.B,e.indexOf(c),f]}}return q}
  27. function T(a){clearTimeout(a.l);a.l=setTimeout(function(){M(this.j,this.j.u);T(this)}.bind(a),1E3*v[0]+Math.floor(Math.random()*(1E3*v[1]-1E3*v[0]+1)))}function U(a){var c=a.e.s;c.listeners("tick")&&c.removeListener("tick",a.h);clearTimeout(a.w);clearTimeout(a.l);if(a.j){for(var c=a.j,b=0,d=c.i.length;b<d;b++)J(c,b);a.j=q}a.a=q;a.c=q}
  28. function W(a){a.w=setTimeout(a.I.bind(a),3E3);a.b.emit("CG1",q);for(var c=a.b.d,b=0,d=c.length;b<d;b++){var e;e=n;e=new P([a.c.a.i[b]%a.c.a.width,Math.floor(a.c.a.i[b]/a.c.a.width)],a.c.a.v[b],4,150);e.e=0;a.a[b]=e;c[b].f=e}}function D(a,c,b){this.c=a;this.a=c;this.d=[];this.e=[];this.q=r;this.P=!!b["public"];this.G=!!b.friendly;this.F=u;this.k=new S(this,0);this.h=[]}
  29. D.prototype={join:function(a){var c=this.d.push(a)-1;a.e.join(this.a);a.a=this.a;this.e[c]=0;V(this);this.broadcast("CC1","{"+c+"} joined",a);this.d.length===this.F&&W(this.k);return this},disconnect:function(a){var c=this.d.indexOf(a);this.q?(G(this.k,a,a.f.g),this.h.push(a)):(this.d.splice(c,1),V(this),this.d.length||this.c.n.remove(this));this.emit("CC1","{"+c+"} left")},emit:function(a,c){this.c.a.sockets.in(this.a).emit(a,c)},broadcast:function(a,c,b){b.e.broadcast.to(this.a).emit(a,c)}};
  30. function V(a){for(var c=[],b=0,d=a.d.length;b<d;b++)c.push(a.d[b].name);b=0;for(d=a.d.length;b<d;b++)a.d[b].emit("CR2",[b,0,c,a.e])}function X(a){this.c=a;this.a=0;this.o={}}X.prototype={b:function(a){return this.o[a]},remove:function(a){delete this.o[a.a];U(a.k);a.k=q;a.d=q}};function Y(a,c,b){this.h=a;this.e=b;this.m=0;this.l=this.a=this.f=this.name=q;this.c=r}Y.prototype={emit:function(a,c){this.e.emit(a,c)}};function C(a){var c=a.l;clearInterval(c.M);c.c=q;c.a=q;a.l=q;a.f=q;a.e=q}
  31. function Z(a){this.a=+new Date;setInterval(this.c.bind(this),a)}util.inherits(Z,nodeEvents.EventEmitter);Z.prototype.c=function(){this.emit("tick",+new Date-this.a);this.a=new Date};function $(){this.c=0;this.d={};this.s=new Z(50);this.s.setMaxListeners(0);this.n=new X(this);this.listen(t)}
  32. $.prototype={listen:function(a){var c=http.createServer();this.a=socketio.listen(c,{log:r});this.a.set("browser client etag",p);this.a.set("browser client gzip",p);this.a.set("browser client minification",p);this.a.set("transports",["websocket"]);this.a.set("close timeout",10);this.a.set("heartbeat timeout ",10);this.a.sockets.on("connection",this.e.bind(this));c.listen(a)},e:function(a){var c,b=++this.c;c=new Y(b,0,a);c.l=new B(this,c,a);this.d[b]=c}};new $;console.log("XSSNAKE server is running...");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement