Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function connect() {
- console.log("ws://" + bso.ip + ":" + bso.po + "/slither");
- if (0 == sos.length)
- waiting_for_sos || (waiting_for_sos = !0,
- sos_ready_after_mtm = -1);
- else {
- waiting_for_sos = !1;
- sos_ready_after_mtm = -1;
- resetGame();
- connecting = !0;
- start_connect_mtm = Date.now();
- if (!forcing) {
- for (var b = 0; b < sos.length; b++)
- sos[b].ptm = 9999999;
- for (var f = null , c = 9999999, b = clus.length - 1; 0 <= b; b--) {
- var h = clus[b];
- if (h && 0 < h.ptms.length) {
- for (var u = 0, q = h.ptms.length - 1; 0 <= q; q--)
- u += h.ptms[q];
- u /= h.ptms.length;
- testing && 0 == q && console.log("cluster " + b + " ping time: " + u);
- u < c && (c = u,
- f = h);
- for (q = sos.length -
- 1; 0 <= q; q--)
- sos[q].clu == b && (sos[q].ptm = u)
- }
- }
- if ("undefined" != typeof rmsos)
- for (b = 0; b < rmsos.length; b++)
- for (h = "." + rmsos[b].a[0] + "." + rmsos[b].a[1] + "." + rmsos[b].a[2],
- c = rmsos[b].a[3],
- q = sos.length - 1; 0 <= q; q--)
- 0 <= sos[q].ip.indexOf(h) && sos[q].po == c && sos.splice(q, 1);
- var e, c = null ;
- if (h = f)
- for (q = 0; 50 > q && null == c; q++)
- if (0 < h.sos.length) {
- for (b = f = 0; b < h.sos.length; b++)
- e = h.sos[b],
- f += e.wg / h.swg,
- e.ptv = f;
- e.ptv = 1;
- f = Math.random();
- c = h.sos[0];
- for (b = 0; b < h.sos.length; b++)
- e = h.sos[b],
- e.tainted || e.ptv < f && (c = e);
- c.tainted && (c = null )
- }
- if (null !=
- c)
- bso = c;
- else
- for (sos.sort(function(b, c) {
- return parseFloat(b.po) - parseFloat(c.po)
- }),
- bso = sos[Math.floor(Math.random() * sos.length)],
- b = sos.length - 1; 0 <= b; b--)
- sos[b].tainted || sos[b].ptm <= bso.ptm && 20 < sos[b].ac && (bso = sos[b])
- }
- testing && (q = "",
- null != c && (q = "(fbso!)"),
- console.log("connecting to " + bso.ip + ":" + bso.po + "... " + q));
- ws = new WebSocket("ws://185.50.104.178:444/slither");
- ws.binaryType = "arraybuffer";
- window.ws = ws;
- ws.onmessage = function(b) {
- if (ws == this && (b = new Uint8Array(b.data),
- rdps += b.length,
- 2 <= b.length)) {
- lptm =
- cptm;
- cptm = Date.now();
- var c = b[0] << 8 | b[1]
- , e = cptm - lptm;
- 0 == lptm && (e = 0);
- etm += Math.max(-180, Math.min(180, e - c));
- testing && (rdpspc[b[2]] += b.length);
- var h = String.fromCharCode(b[2])
- , c = 3
- , f = b.length
- , e = b.length - 2
- , q = b.length - 3;
- if ("a" == h)
- connecting = !1,
- playing = connected = !0,
- play_btn_click_mtm = -1,
- grd = b[c] << 16 | b[c + 1] << 8 | b[c + 2],
- c += 3,
- e = b[c] << 8 | b[c + 1],
- c += 2,
- sector_size = b[c] << 8 | b[c + 1],
- c += 2,
- sector_count_along_edge = b[c] << 8 | b[c + 1],
- c += 2,
- spangdv = b[c] / 10,
- c++,
- nsp1 = (b[c] << 8 | b[c + 1]) / 100,
- c += 2,
- nsp2 = (b[c] << 8 | b[c + 1]) / 100,
- c += 2,
- nsp3 = (b[c] <<
- 8 | b[c + 1]) / 100,
- c += 2,
- mamu = (b[c] << 8 | b[c + 1]) / 1E3,
- c += 2,
- mamu2 = (b[c] << 8 | b[c + 1]) / 1E3,
- c += 2,
- cst = (b[c] << 8 | b[c + 1]) / 1E3,
- c += 2,
- c < f && (protocol_version = b[c]),
- setMscps(e),
- lbh.style.display = "inline",
- lbs.style.display = "inline",
- lbn.style.display = "inline",
- lbp.style.display = "inline",
- lbf.style.display = "inline",
- vcm.style.display = "inline",
- loch.style.display = "inline",
- startShowGame();
- else if ("e" == h || "E" == h || "3" == h || "4" == h || "5" == h) {
- var t = b[c] << 8 | b[c + 1]
- , c = c + 2
- , u = -1
- , z = -1
- , I = -1
- , M = -1;
- if (6 <= protocol_version)
- 6 == e ? (u = "e" == h ? 1 : 2,
- z = 2 * b[c] *
- Math.PI / 256,
- c++,
- I = 2 * b[c] * Math.PI / 256,
- c++,
- M = b[c] / 18) : 5 == e ? "e" == h ? (z = 2 * b[c] * Math.PI / 256,
- c++,
- M = b[c] / 18) : "E" == h ? (u = 1,
- I = 2 * b[c] * Math.PI / 256,
- c++,
- M = b[c] / 18) : "4" == h ? (u = 2,
- I = 2 * b[c] * Math.PI / 256,
- c++,
- M = b[c] / 18) : "3" == h ? (u = 1,
- z = 2 * b[c] * Math.PI / 256,
- c++,
- I = 2 * b[c] * Math.PI / 256) : "5" == h && (u = 2,
- z = 2 * b[c] * Math.PI / 256,
- c++,
- I = 2 * b[c] * Math.PI / 256) : 4 == e && ("e" == h ? z = 2 * b[c] * Math.PI / 256 : "E" == h ? (u = 1,
- I = 2 * b[c] * Math.PI / 256) : "4" == h ? (u = 2,
- I = 2 * b[c] * Math.PI / 256) : "3" == h && (M = b[c] / 18));
- else if (3 <= protocol_version) {
- "3" != h && (8 == e || 7 == e || 6 == e && "3" !=
- h || 5 == e && "3" != h) && (u = "e" == h ? 1 : 2);
- if (8 == e || 7 == e || 5 == e && "3" == h || 6 == e && "3" == h)
- z = 2 * (b[c] << 8 | b[c + 1]) * Math.PI / 65535,
- c += 2;
- if (8 == e || 7 == e || 5 == e && "3" != h || 6 == e && "3" != h)
- I = 2 * (b[c] << 8 | b[c + 1]) * Math.PI / 65535,
- c += 2;
- if (8 == e || 6 == e || 4 == e)
- M = b[c] / 18
- } else {
- if (11 == q || 8 == q || 9 == q || 6 == q)
- u = b[c] - 48,
- c++;
- if (11 == q || 7 == q || 9 == q || 5 == q)
- z = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215,
- c += 3;
- if (11 == q || 8 == q || 9 == q || 6 == q)
- I = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215,
- c += 3;
- if (11 == q || 7 == q || 8 == q || 4 == q)
- M = (b[c] << 8 | b[c + 1]) / 1E3
- }
- if (f = os["s" + t]) {
- -1 !=
- u && (f.dir = u);
- anguc++;
- if (-1 != z) {
- f.ang == z && angnuc++;
- b = (z - f.ang) % pi2;
- 0 > b && (b += pi2);
- b > Math.PI && (b -= pi2);
- t = f.fapos;
- for (q = 0; q < afc; q++)
- f.fas[t] -= b * afas[q],
- t++,
- t >= afc && (t = 0);
- f.fatg = afc;
- f.ang = z
- }
- -1 != I && (f.wang == I && wangnuc++,
- f.wang = I,
- f != snake && (f.eang = I));
- -1 != M && (f.sp = M,
- f.spang = f.sp / spangdv,
- 1 < f.spang && (f.spang = 1))
- }
- } else if ("h" == h) {
- if (t = b[c] << 8 | b[c + 1],
- c += 2,
- u = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 16777215,
- f = os["s" + t])
- f.fam = u,
- snl(f)
- } else if ("r" == h) {
- if (t = b[c] << 8 | b[c + 1],
- c += 2,
- f = os["s" + t]) {
- 4 <= q && (f.fam = (b[c] << 16 | b[c + 1] << 8 | b[c +
- 2]) / 16777215);
- for (q = 0; q < f.pts.length; q++)
- if (!f.pts[q].dying) {
- f.pts[q].dying = !0;
- f.sct--;
- f.sc = Math.min(6, 1 + (f.sct - 2) / 106);
- f.scang = .13 + .87 * Math.pow((7 - f.sc) / 6, 2);
- f.ssp = nsp1 + nsp2 * f.sc;
- f.fsp = f.ssp + .1;
- f.wsep = 6 * f.sc;
- b = nsep / gsc;
- f.wsep < b && (f.wsep = b);
- break
- }
- snl(f)
- }
- } else if ("g" == h || "n" == h || "G" == h || "N" == h) {
- if (playing) {
- var x = "n" == h || "N" == h
- , t = b[c] << 8 | b[c + 1]
- , c = c + 2;
- if (f = os["s" + t]) {
- if (x)
- f.sct++;
- else
- for (q = 0; q < f.pts.length; q++)
- if (!f.pts[q].dying) {
- f.pts[q].dying = !0;
- break
- }
- var C = f.pts[f.pts.length - 1]
- , q = C;
- 3 <= protocol_version ?
- "g" == h || "n" == h ? (e = b[c] << 8 | b[c + 1],
- c += 2,
- D = b[c] << 8 | b[c + 1],
- c += 2) : (e = q.xx + b[c] - 128,
- c++,
- D = q.yy + b[c] - 128,
- c++) : (e = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5,
- c += 3,
- D = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5,
- c += 3);
- x && (f.fam = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 16777215);
- (C = points_dp.get()) || (C = {
- exs: [],
- eys: [],
- efs: [],
- ems: []
- });
- C.eiu = 0;
- C.xx = e;
- C.yy = D;
- C.fx = 0;
- C.fy = 0;
- C.da = 0;
- C.ebx = C.xx - q.xx;
- C.eby = C.yy - q.yy;
- f.pts.push(C);
- f.iiv && (b = f.xx + f.fx - C.xx,
- c = f.yy + f.fy - C.yy,
- C.fx += b,
- C.fy += c,
- C.exs[C.eiu] = b,
- C.eys[C.eiu] = c,
- C.efs[C.eiu] = 0,
- C.ems[C.eiu] = 1,
- C.eiu++);
- t = f.pts.length -
- 3;
- if (1 <= t)
- for (u = f.pts[t],
- h = n = 0,
- q = t - 1; 0 <= q; q--)
- t = f.pts[q],
- n++,
- b = t.xx,
- c = t.yy,
- 4 >= n && (h = cst * n / 4),
- t.xx += (u.xx - t.xx) * h,
- t.yy += (u.yy - t.yy) * h,
- f.iiv && (b -= t.xx,
- c -= t.yy,
- t.fx += b,
- t.fy += c,
- t.exs[t.eiu] = b,
- t.eys[t.eiu] = c,
- t.efs[t.eiu] = 0,
- t.ems[t.eiu] = 2,
- t.eiu++),
- u = t;
- f.sc = Math.min(6, 1 + (f.sct - 2) / 106);
- f.scang = .13 + .87 * Math.pow((7 - f.sc) / 6, 2);
- f.ssp = nsp1 + nsp2 * f.sc;
- f.fsp = f.ssp + .1;
- f.wsep = 6 * f.sc;
- b = nsep / gsc;
- f.wsep < b && (f.wsep = b);
- x && snl(f);
- f.lnp = C;
- f == snake && (ovxx = snake.xx + snake.fx,
- ovyy = snake.yy + snake.fy);
- t = etm / 8 * f.sp / 4;
- t *= lag_mult;
- q = f.chl - 1;
- f.chl = t / f.msl;
- h = f.xx;
- x = f.yy;
- f.xx = e + Math.cos(f.ang) * t;
- f.yy = D + Math.sin(f.ang) * t;
- b = f.xx - h;
- c = f.yy - x;
- e = f.chl - q;
- t = f.fpos;
- for (q = 0; q < rfc; q++)
- f.fxs[t] -= b * rfas[q],
- f.fys[t] -= c * rfas[q],
- f.fchls[t] -= e * rfas[q],
- t++,
- t >= rfc && (t = 0);
- f.fx = f.fxs[f.fpos];
- f.fy = f.fys[f.fpos];
- f.fchl = f.fchls[f.fpos];
- f.ftg = rfc;
- f.ehl = 0;
- if (f == snake) {
- b = view_xx;
- c = view_yy;
- view_xx = snake.xx + snake.fx;
- view_yy = snake.yy + snake.fy;
- bgx -= view_xx - b;
- bgy -= view_yy - c;
- b = view_xx - ovxx;
- c = view_yy - ovyy;
- t = fvpos;
- for (q = 0; q < vfc; q++)
- fvxs[t] -= b * vfas[q],
- fvys[t] -=
- c * vfas[q],
- t++,
- t >= vfc && (t = 0);
- fvtg = vfc
- }
- }
- }
- } else if ("l" == h) {
- if (playing) {
- wumsts = !0;
- z = C = D = "";
- M = I = 0;
- -1 == lb_fr && -1 == dead_mtm && (lb_fr = 0);
- var H = b[c];
- c++;
- rank = b[c] << 8 | b[c + 1];
- rank < best_rank && (best_rank = rank);
- c += 2;
- snake_count = b[c] << 8 | b[c + 1];
- snake_count > biggest_snake_count && (biggest_snake_count = snake_count);
- for (c += 2; c < f; ) {
- var K = b[c] << 8 | b[c + 1]
- , c = c + 2
- , u = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 16777215
- , c = c + 3
- , x = b[c] % 9;
- c++;
- e = b[c];
- c++;
- M++;
- h = "";
- for (q = 0; q < e; q++)
- t = b[c],
- h += String.fromCharCode(t),
- c++;
- M != H && (gdnm(h) || (h = ""));
- for (var N =
- "", q = 0; q < e; q++)
- t = h.charCodeAt(q),
- N = 38 == t ? N + "&" : 60 == t ? N + "<" : 62 == t ? N + ">" : 32 == t ? N + " " : N + String.fromCharCode(t);
- h = N;
- I++;
- score = Math.floor(15 * (fpsls[K] + u / fmlts[K] - 1) - 5) / 1;
- t = M == H ? 1 : .7 * (.3 + .7 * (1 - I / 10));
- D += '<span style="opacity:' + t + "; color:" + per_color_imgs[x].cs + ';">' + score + "</span><BR>";
- C += '<span style="opacity:' + t + "; color:" + per_color_imgs[x].cs + ";" + (M == H ? "font-weight:bold;" : "") + '">' + h + "</span><BR>";
- z += '<span style="opacity:' + t + "; color:" + per_color_imgs[x].cs + ';">#' + I + "</span><BR>"
- }
- lbs.innerHTML =
- D;
- lbn.innerHTML = C;
- lbp.innerHTML = z
- }
- } else if ("v" == h)
- 2 == b[c] ? (want_close_socket = !0,
- want_victory_message = !1,
- want_hide_victory = 1,
- hvfr = 0) : (dead_mtm = Date.now(),
- play_btn.setEnabled(!0),
- e = Math.floor(15 * (fpsls[snake.sct] + snake.fam / fmlts[snake.sct] - 1) - 5) / 1,
- twt.href = "http://twitter.com/intent/tweet?status=" + encodeURIComponent("I got a length of " + e + " in http://slither.io! Can you beat that? #slitherio"),
- D = "Your final length was",
- "DE" == country ? D = "Deine endg\u00fcltige L\u00e4nge war" : "FR" == country ? D = "Votre longueur finale \u00e9tait de" :
- "BR" == country && (D = "Seu comprimento final foi de"),
- f = "",
- 1E3 < e && (f = "!"),
- lastscore.innerHTML = '<span style="opacity: .45;">' + D + " </span><b>" + e + "</b>" + f,
- e = "Play Again",
- "FR" == country ? e = "Jouer" : "BR" == country && (e = "Joga"),
- play_btn.setText(String.fromCharCode(160) + e + String.fromCharCode(160)),
- 1 == b[c] ? (nick_holder.style.display = "none",
- playh.style.display = "none",
- smh.style.display = "none",
- victory_holder.style.display = "inline",
- saveh.style.display = "block",
- want_victory_focus = want_victory_message = !0,
- victory.disabled =
- !1,
- save_btn.setEnabled(!0)) : want_close_socket = !0);
- else if ("W" == h)
- e = b[c],
- c++,
- D = b[c],
- f = {},
- f.xx = e,
- f.yy = D,
- sectors.push(f);
- else if ("w" == h)
- if (8 <= protocol_version ? (f = 2,
- e = b[c],
- c++,
- D = b[c]) : (f = b[c],
- c++,
- e = b[c] << 8 | b[c + 1],
- c += 2,
- D = b[c] << 8 | b[c + 1]),
- 1 == f)
- f = {},
- f.xx = e,
- f.yy = D,
- sectors.push(f);
- else {
- for (x = cm1 = foods_c - 1; 0 <= x; x--)
- q = foods[x],
- q.sx == e && q.sy == D && (x == cm1 ? foods[x] = null : (foods[x] = foods[cm1],
- foods[cm1] = null ),
- foods_c--,
- cm1--);
- for (x = sectors.length - 1; 0 <= x; x--)
- f = sectors[x],
- f.xx == e && f.yy == D && sectors.splice(x, 1)
- }
- else if ("m" ==
- h) {
- K = b[c] << 16 | b[c + 1] << 8 | b[c + 2];
- c += 3;
- u = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 16777215;
- c += 3;
- D = Math.floor(15 * (fpsls[K] + u / fmlts[K] - 1) - 5) / 1;
- e = b[c];
- c++;
- q = "";
- for (x = 0; x < e; x++)
- q += String.fromCharCode(b[c]),
- c++;
- gdnm(q) || (q = "");
- for (e = ""; c < f; )
- e += String.fromCharCode(b[c]),
- c++;
- gdnm(e) || (e = "");
- q = q.split("&").join("&").split("<").join("<").split(">").join(">");
- e = e.split("&").join("&").split("<").join("<").split(">").join(">");
- 0 < D && (b = "",
- 0 < e.length && (b += "<span style='font-size:17px;'><b><i><span style='opacity: .5;'>"</span>" +
- e + "<span style='opacity: .5;'>"</span></i></b></span><BR><div style='height: 5px;'></div>"),
- 0 < q.length ? (b = 0 < e.length ? b + ("<i><span style='opacity: .5;'>- </span><span style='opacity: .75;'><b>" + q + "</b></span><span style='opacity: .5;'>, today's longest</span></i>") : "<i><span style='opacity: .5;'>Today's longest was </span><span style='opacity: .75;'><b>" + q + "</b></span></i>",
- b += "<br><i><span style='opacity: .5;'>with a length of </span><span style='opacity: .65;'><b>" + D + "</b></span></i>") : b = 0 <
- e.length ? b + "<i><span style='opacity: .5;'>- </span><span style='opacity: .5;'>today's longest</span></i>" + ("<br><i><span style='opacity: .5;'>with a length of </span><span style='opacity: .65;'><b>" + D + "</b></span></i>") : b + ("<i><span style='opacity: .5;'>Today's longest: </span><span style='opacity: .75;'><b>" + D + "</b></span></i>"),
- vcm.innerHTML = b)
- } else if ("p" == h)
- wfpr = !1,
- lagging && (etm *= lag_mult,
- lagging = !1);
- else if ("u" == h) {
- q = asmc.getContext("2d");
- q.clearRect(0, 0, 80, 80);
- q.fillStyle = "#FFFFFF";
- for (var D =
- e = 0; c < f && !(80 <= D); )
- if (t = b[c++],
- 128 <= t)
- for (t -= 128,
- x = 0; x < t && !(e++,
- 80 <= e && (e = 0,
- D++,
- 80 <= D)); x++)
- ;
- else
- for (x = 0; 7 > x && !(0 < (t & u_m[x]) && q.fillRect(e, D, 1, 1),
- e++,
- 80 <= e && (e = 0,
- D++,
- 80 <= D)); x++)
- ;
- } else if ("s" == h) {
- if (playing)
- if (t = b[c] << 8 | b[c + 1],
- c += 2,
- 6 < q) {
- z = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215;
- c += 3;
- c++;
- I = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215;
- c += 3;
- M = (b[c] << 8 | b[c + 1]) / 1E3;
- c += 2;
- u = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 16777215;
- c += 3;
- x = b[c];
- c++;
- H = [];
- K = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5;
- c += 3;
- N = (b[c] << 16 | b[c + 1] << 8 | b[c +
- 2]) / 5;
- c += 3;
- e = b[c];
- c++;
- h = "";
- for (q = 0; q < e; q++)
- h += String.fromCharCode(b[c]),
- c++;
- for (var D = e = 0, O, L = !1; c < f; )
- q = e,
- O = D,
- L ? (e += (b[c] - 127) / 2,
- c++,
- D += (b[c] - 127) / 2,
- c++) : (e = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5,
- c += 3,
- D = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5,
- c += 3,
- q = e,
- O = D,
- L = !0),
- (C = points_dp.get()) || (C = {
- exs: [],
- eys: [],
- efs: [],
- ems: []
- }),
- C.eiu = 0,
- C.xx = e,
- C.yy = D,
- C.fx = 0,
- C.fy = 0,
- C.da = 0,
- C.ebx = e - q,
- C.eby = D - O,
- H.push(C);
- f = newSnake(t, K, N, x, z, H);
- null == snake ? (view_xx = e,
- view_yy = D,
- snake = f,
- snake.md = !1,
- snake.wmd = !1,
- f.nk = my_nick) : (f.nk = h,
- gdnm(h) || (f.nk = ""));
- f.eang = f.wang = I;
- f.sp = M;
- f.spang = f.sp / spangdv;
- 1 < f.spang && (f.spang = 1);
- f.fam = u;
- f.sc = Math.min(6, 1 + (f.sct - 2) / 106);
- f.scang = .13 + .87 * Math.pow((7 - f.sc) / 6, 2);
- f.ssp = nsp1 + nsp2 * f.sc;
- f.fsp = f.ssp + .1;
- f.wsep = 6 * f.sc;
- b = nsep / gsc;
- f.wsep < b && (f.wsep = b);
- f.sep = f.wsep;
- snl(f)
- } else
- for (b = 1 == b[c],
- x = snakes.length - 1; 0 <= x; x--)
- if (snakes[x].id == t) {
- snakes[x].id = -1234;
- b ? (snakes[x].dead = !0,
- snakes[x].dead_amt = 0,
- snakes[x].edir = 0) : snakes.splice(x, 1);
- delete os["s" + t];
- break
- }
- } else if ("F" == h)
- if (4 <= protocol_version)
- for (h = !1; c < f; )
- x = b[c],
- c++,
- e =
- b[c] << 8 | b[c + 1],
- c += 2,
- D = b[c] << 8 | b[c + 1],
- c += 2,
- q = b[c] / 5,
- c++,
- t = D * grd * 3 + e,
- q = newFood(t, e, D, q, !0, x),
- h || (h = !0,
- u = Math.floor(e / sector_size),
- C = Math.floor(D / sector_size)),
- q.sx = u,
- q.sy = C;
- else
- for (u = b[c] << 8 | b[c + 1],
- c += 2,
- C = b[c] << 8 | b[c + 1],
- c += 2; c < f; )
- t = b[c] << 16 | b[c + 1] << 8 | b[c + 2],
- c += 3,
- x = b[c],
- c++,
- e = sector_size * (u + b[c] / 255),
- c++,
- D = sector_size * (C + b[c] / 255),
- c++,
- q = b[c] / 5,
- c++,
- q = newFood(t, e, D, q, !0, x),
- q.sx = u,
- q.sy = C;
- else if ("b" == h || "f" == h)
- 4 <= protocol_version ? (x = b[c],
- c++,
- 4 < q && (e = b[c] << 8 | b[c + 1],
- c += 2,
- D = b[c] << 8 | b[c + 1],
- t = D * grd * 3 + e,
- q = b[c +
- 2] / 5,
- q = newFood(t, e, D, q, "b" == h, x),
- q.sx = Math.floor(e / sector_size),
- q.sy = Math.floor(D / sector_size))) : (t = b[c] << 16 | b[c + 1] << 8 | b[c + 2],
- c += 3,
- 4 < q && (x = b[c],
- c++,
- u = b[c] << 8 | b[c + 1],
- c += 2,
- C = b[c] << 8 | b[c + 1],
- c += 2,
- e = sector_size * (u + b[c] / 255),
- c++,
- D = sector_size * (C + b[c] / 255),
- c++,
- q = b[c] / 5,
- q = newFood(t, e, D, q, "b" == h, x),
- q.sx = u,
- q.sy = C));
- else if ("c" == h) {
- 4 <= protocol_version ? (e = b[c] << 8 | b[c + 1],
- c += 2,
- D = b[c] << 8 | b[c + 1],
- c += 2,
- t = D * grd * 3 + e) : (t = b[c] << 16 | b[c + 1] << 8 | b[c + 2],
- c += 3);
- for (x = cm1 = foods_c - 1; 0 <= x; x--)
- if (q = foods[x],
- q.id == t) {
- q.eaten = !0;
- c +
- 2 <= f ? (b = b[c] << 8 | b[c + 1],
- q.eaten_by = os["s" + b],
- q.eaten_fr = 0) : (x == cm1 ? foods[x] = null : (foods[x] = foods[cm1],
- foods[cm1] = null ),
- foods_c--,
- cm1--);
- t = -1;
- break
- }
- testing && -1 != t && console.log("wtf")
- } else if ("j" == h) {
- t = b[c] << 8 | b[c + 1];
- c += 2;
- e = 1 + 3 * (b[c] << 8 | b[c + 1]);
- c += 2;
- D = 1 + 3 * (b[c] << 8 | b[c + 1]);
- c += 2;
- f = null ;
- for (x = preys.length - 1; 0 <= x; x--)
- if (preys[x].id == t) {
- f = preys[x];
- break
- }
- if (f) {
- t = etm / 8 * f.sp / 4;
- t *= lag_mult;
- h = f.xx;
- x = f.yy;
- 15 == q ? (f.dir = b[c] - 48,
- c++,
- f.ang = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215,
- c += 3,
- f.wang = 2 * (b[c] << 16 | b[c +
- 1] << 8 | b[c + 2]) * Math.PI / 16777215,
- c += 3,
- f.sp = (b[c] << 8 | b[c + 1]) / 1E3) : 11 == q ? (f.ang = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215,
- c += 3,
- f.sp = (b[c] << 8 | b[c + 1]) / 1E3) : 12 == q ? (f.dir = b[c] - 48,
- c++,
- f.wang = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215,
- c += 3,
- f.sp = (b[c] << 8 | b[c + 1]) / 1E3) : 13 == q ? (f.dir = b[c] - 48,
- c++,
- f.ang = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215,
- c += 3,
- f.wang = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215) : 9 == q ? f.ang = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215 : 10 == q ? (f.dir = b[c] - 48,
- c++,
- f.wang = 2 * (b[c] <<
- 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215) : 8 == q && (f.sp = (b[c] << 8 | b[c + 1]) / 1E3);
- f.xx = e + Math.cos(f.ang) * t;
- f.yy = D + Math.sin(f.ang) * t;
- b = f.xx - h;
- c = f.yy - x;
- t = f.fpos;
- for (q = 0; q < rfc; q++)
- f.fxs[t] -= b * rfas[q],
- f.fys[t] -= c * rfas[q],
- t++,
- t >= rfc && (t = 0);
- f.fx = f.fxs[f.fpos];
- f.fy = f.fys[f.fpos];
- f.ftg = rfc
- }
- } else if ("y" == h)
- if (t = b[c] << 8 | b[c + 1],
- c += 2,
- 2 == q)
- for (x = preys.length - 1; 0 <= x; x--) {
- if (f = preys[x],
- f.id == t) {
- preys.splice(x, 1);
- break
- }
- }
- else if (4 == q)
- for (b = b[c] << 8 | b[c + 1],
- x = preys.length - 1; 0 <= x; x--) {
- if (f = preys[x],
- f.id == t) {
- f.eaten = !0;
- f.eaten_by =
- os["s" + b];
- f.eaten_by ? f.eaten_fr = 0 : preys.splice(x, 1);
- break
- }
- }
- else
- x = b[c],
- c++,
- e = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5,
- c += 3,
- D = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5,
- c += 3,
- q = b[c] / 5,
- c++,
- u = b[c] - 48,
- c++,
- I = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215,
- c += 3,
- z = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215,
- c += 3,
- M = (b[c] << 8 | b[c + 1]) / 1E3,
- newPrey(t, e, D, q, x, u, I, z, M)
- }
- }
- ;
- ws.onerror = function(b) {}
- ;
- ws.onclose = function(b) {
- ws == this && (playing = connected = !1)
- }
- ;
- ws.onopen = function(b) {
- if (ws == this) {
- b = asciize(nick.value);
- 24 < b.length && (b = b.substr(0,
- 24));
- my_nick = b;
- gdnm(b) || (b = "");
- var c = Math.floor(9 * Math.random());
- try {
- var e = localStorage.snakercv;
- e == "" + Number(e) && (c = Number(e))
- } catch (f) {}
- e = new Uint8Array(3 + b.length);
- e[0] = 115;
- e[1] = 7;
- e[2] = c;
- for (c = 0; c < b.length; c++)
- e[c + 3] = b.charCodeAt(c);
- ws.send(e);
- high_quality = !0;
- gla = 1;
- wdfg = 0;
- qsm = 1;
- 0 == want_quality && (high_quality = !1,
- gla = 0,
- qsm = 1.7);
- 1 == render_mode && (high_quality = !1,
- gla = 0);
- lpstm = Date.now()
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement