Advertisement
Guest User

Untitled

a guest
Jun 25th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.         ws.onmessage = function(b) {
  3.             if (ws == this && (b = new Uint8Array(b.data), rdps += b.length, 2 <= b.length)) {
  4.                 lptm = cptm;
  5.                 cptm = Date.now();
  6.                 var c = b[0] << 8 | b[1],
  7.                     e = cptm - lptm;
  8.                 0 == lptm && (e = 0);
  9.                 etm += Math.max(-180, Math.min(180, e - c));
  10.                 testing && (rdpspc[b[2]] += b.length);
  11.                 var h = String.fromCharCode(b[2]),
  12.                     c = 3,
  13.                     f = b.length,
  14.                     e = b.length - 2,
  15.                     q = b.length - 3;
  16.                 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] <<
  17.                     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();
  18.                 else if ("e" == h || "E" == h || "3" == h || "4" == h || "5" == h) {
  19.                     var t = b[c] << 8 | b[c + 1],
  20.                         c = c + 2,
  21.                         u = -1,
  22.                         z = -1,
  23.                         I = -1,
  24.                         M = -1;
  25.                     if (6 <= protocol_version) 6 == e ? (u = "e" == h ? 1 : 2, z = 2 * b[c] *
  26.                         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));
  27.                     else if (3 <= protocol_version) {
  28.                         "3" != h && (8 == e || 7 == e || 6 == e && "3" !=
  29.                             h || 5 == e && "3" != h) && (u = "e" == h ? 1 : 2);
  30.                         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;
  31.                         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;
  32.                         if (8 == e || 6 == e || 4 == e) M = b[c] / 18
  33.                     } else {
  34.                         if (11 == q || 8 == q || 9 == q || 6 == q) u = b[c] - 48, c++;
  35.                         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;
  36.                         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;
  37.                         if (11 == q || 7 == q || 8 == q || 4 == q) M = (b[c] << 8 | b[c + 1]) / 1E3
  38.                     }
  39.                     if (f = os["s" + t]) {
  40.                         -1 !=
  41.                             u && (f.dir = u);
  42.                         anguc++;
  43.                         if (-1 != z) {
  44.                             f.ang == z && angnuc++;
  45.                             b = (z - f.ang) % pi2;
  46.                             0 > b && (b += pi2);
  47.                             b > Math.PI && (b -= pi2);
  48.                             t = f.fapos;
  49.                             for (q = 0; q < afc; q++) f.fas[t] -= b * afas[q], t++, t >= afc && (t = 0);
  50.                             f.fatg = afc;
  51.                             f.ang = z
  52.                         } - 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))
  53.                     }
  54.                 } else if ("h" == h) {
  55.                     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)
  56.                 } else if ("r" == h) {
  57.                     if (t = b[c] << 8 | b[c + 1], c += 2, f = os["s" + t]) {
  58.                         4 <= q && (f.fam = (b[c] << 16 | b[c + 1] << 8 | b[c +
  59.                             2]) / 16777215);
  60.                         for (q = 0; q < f.pts.length; q++)
  61.                             if (!f.pts[q].dying) {
  62.                                 f.pts[q].dying = !0;
  63.                                 f.sct--;
  64.                                 f.sc = Math.min(6, 1 + (f.sct - 2) / 106);
  65.                                 f.scang = .13 + .87 * Math.pow((7 - f.sc) / 6, 2);
  66.                                 f.ssp = nsp1 + nsp2 * f.sc;
  67.                                 f.fsp = f.ssp + .1;
  68.                                 f.wsep = 6 * f.sc;
  69.                                 b = nsep / gsc;
  70.                                 f.wsep < b && (f.wsep = b);
  71.                                 break
  72.                             }
  73.                         snl(f)
  74.                     }
  75.                 } else if ("g" == h || "n" == h || "G" == h || "N" == h) {
  76.                     if (playing) {
  77.                         var y = "n" == h || "N" == h,
  78.                             t = b[c] << 8 | b[c + 1],
  79.                             c = c + 2;
  80.                         if (f = os["s" + t]) {
  81.                             if (y) f.sct++;
  82.                             else
  83.                                 for (q = 0; q < f.pts.length; q++)
  84.                                     if (!f.pts[q].dying) {
  85.                                         f.pts[q].dying = !0;
  86.                                         break
  87.                                     } var E = f.pts[f.pts.length - 1],
  88.                                 q = E;
  89.                             3 <= protocol_version ?
  90.                                 "g" == h || "n" == h ? (e = b[c] << 8 | b[c + 1], c += 2, F = b[c] << 8 | b[c + 1], c += 2) : (e = q.xx + b[c] - 128, c++, F = q.yy + b[c] - 128, c++) : (e = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5, c += 3, F = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5, c += 3);
  91.                             y && (f.fam = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 16777215);
  92.                             (E = points_dp.get()) || (E = {
  93.                                 exs: [],
  94.                                 eys: [],
  95.                                 efs: [],
  96.                                 ems: []
  97.                             });
  98.                             E.eiu = 0;
  99.                             E.xx = e;
  100.                             E.yy = F;
  101.                             E.fx = 0;
  102.                             E.fy = 0;
  103.                             E.da = 0;
  104.                             E.ebx = E.xx - q.xx;
  105.                             E.eby = E.yy - q.yy;
  106.                             f.pts.push(E);
  107.                             f.iiv && (b = f.xx + f.fx - E.xx, c = f.yy + f.fy - E.yy, E.fx += b, E.fy += c, E.exs[E.eiu] = b, E.eys[E.eiu] = c, E.efs[E.eiu] = 0, E.ems[E.eiu] = 1, E.eiu++);
  108.                             t = f.pts.length -
  109.                                 3;
  110.                             if (1 <= t)
  111.                                 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;
  112.                             f.sc = Math.min(6, 1 + (f.sct - 2) / 106);
  113.                             f.scang = .13 + .87 * Math.pow((7 - f.sc) / 6, 2);
  114.                             f.ssp = nsp1 + nsp2 * f.sc;
  115.                             f.fsp = f.ssp + .1;
  116.                             f.wsep = 6 * f.sc;
  117.                             b = nsep / gsc;
  118.                             f.wsep < b && (f.wsep = b);
  119.                             y && snl(f);
  120.                             f.lnp = E;
  121.                             f == snake && (ovxx = snake.xx + snake.fx, ovyy = snake.yy + snake.fy);
  122.                             t = etm / 8 * f.sp / 4;
  123.                             t *= lag_mult;
  124.                             q = f.chl - 1;
  125.                             f.chl = t / f.msl;
  126.                             h = f.xx;
  127.                             y = f.yy;
  128.                             f.xx = e + Math.cos(f.ang) * t;
  129.                             f.yy = F + Math.sin(f.ang) * t;
  130.                             b = f.xx - h;
  131.                             c = f.yy - y;
  132.                             e = f.chl - q;
  133.                             t = f.fpos;
  134.                             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);
  135.                             f.fx = f.fxs[f.fpos];
  136.                             f.fy = f.fys[f.fpos];
  137.                             f.fchl = f.fchls[f.fpos];
  138.                             f.ftg = rfc;
  139.                             f.ehl = 0;
  140.                             if (f == snake) {
  141.                                 b = view_xx;
  142.                                 c = view_yy;
  143.                                 view_xx = snake.xx + snake.fx;
  144.                                 view_yy = snake.yy + snake.fy;
  145.                                 bgx -= view_xx - b;
  146.                                 bgy -= view_yy - c;
  147.                                 b = view_xx - ovxx;
  148.                                 c = view_yy - ovyy;
  149.                                 t = fvpos;
  150.                                 for (q = 0; q < vfc; q++) fvxs[t] -= b * vfas[q], fvys[t] -=
  151.                                     c * vfas[q], t++, t >= vfc && (t = 0);
  152.                                 fvtg = vfc
  153.                             }
  154.                         }
  155.                     }
  156.                 } else if ("l" == h) {
  157.                     if (playing) {
  158.                         wumsts = !0;
  159.                         z = E = F = "";
  160.                         M = I = 0; - 1 == lb_fr && -1 == dead_mtm && (lb_fr = 0);
  161.                         var H = b[c];
  162.                         c++;
  163.                         rank = b[c] << 8 | b[c + 1];
  164.                         rank < best_rank && (best_rank = rank);
  165.                         c += 2;
  166.                         snake_count = b[c] << 8 | b[c + 1];
  167.                         snake_count > biggest_snake_count && (biggest_snake_count = snake_count);
  168.                         for (c += 2; c < f;) {
  169.                             var K = b[c] << 8 | b[c + 1],
  170.                                 c = c + 2,
  171.                                 u = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 16777215,
  172.                                 c = c + 3,
  173.                                 y = b[c] % 9;
  174.                             c++;
  175.                             e = b[c];
  176.                             c++;
  177.                             M++;
  178.                             h = "";
  179.                             for (q = 0; q < e; q++) t = b[c], h += String.fromCharCode(t), c++;
  180.                             M == H ? (h = my_nick, e = h.length) : gdnm(h) ||
  181.                                 (h = "");
  182.                             for (var N = "", q = 0; q < e; q++) t = h.charCodeAt(q), N = 38 == t ? N + "&amp;" : 60 == t ? N + "&lt;" : 62 == t ? N + "&gt;" : 32 == t ? N + "&nbsp;" : N + String.fromCharCode(t);
  183.                             h = N;
  184.                             I++;
  185.                             score = Math.floor(15 * (fpsls[K] + u / fmlts[K] - 1) - 5) / 1;
  186.                             t = M == H ? 1 : .7 * (.3 + .7 * (1 - I / 10));
  187.                             F += '<span style="opacity:' + t + "; color:" + per_color_imgs[y].cs + ';">' + score + "</span><BR>";
  188.                             E += '<span style="opacity:' + t + "; color:" + per_color_imgs[y].cs + ";" + (M == H ? "font-weight:bold;" : "") + '">' + h + "</span><BR>";
  189.                             z += '<span style="opacity:' + t + "; color:" + per_color_imgs[y].cs + ';">#' + I + "</span><BR>"
  190.                         }
  191.                         lbs.innerHTML =
  192.                             F;
  193.                         lbn.innerHTML = E;
  194.                         lbp.innerHTML = z
  195.                     }
  196.                 } 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"), F = "Your final length was", "de" == lang ? F = "Deine endg\u00fcltige L\u00e4nge war" : "fr" == lang ? F = "Votre longueur finale \u00e9tait de" :
  197.                     "pt" == lang && (F = "Seu comprimento final foi de"), f = "", 1E3 < e && (f = "!"), lastscore.innerHTML = '<span style="opacity: .45;">' + F + " </span><b>" + e + "</b>" + f, e = "Play Again", "fr" == lang ? e = "Jouer" : "pt" == lang && (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)) :
  198.                     want_close_socket = !0);
  199.                 else if ("W" == h) e = b[c], c++, F = b[c], f = {}, f.xx = e, f.yy = F, sectors.push(f);
  200.                 else if ("w" == h)
  201.                     if (8 <= protocol_version ? (f = 2, e = b[c], c++, F = b[c]) : (f = b[c], c++, e = b[c] << 8 | b[c + 1], c += 2, F = b[c] << 8 | b[c + 1]), 1 == f) f = {}, f.xx = e, f.yy = F, sectors.push(f);
  202.                     else {
  203.                         for (y = cm1 = foods_c - 1; 0 <= y; y--) q = foods[y], q.sx == e && q.sy == F && (y == cm1 ? foods[y] = null : (foods[y] = foods[cm1], foods[cm1] = null), foods_c--, cm1--);
  204.                         for (y = sectors.length - 1; 0 <= y; y--) f = sectors[y], f.xx == e && f.yy == F && sectors.splice(y, 1)
  205.                     }
  206.                 else if ("m" == h) {
  207.                     K = b[c] << 16 | b[c + 1] <<
  208.                         8 | b[c + 2];
  209.                     c += 3;
  210.                     u = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 16777215;
  211.                     c += 3;
  212.                     F = Math.floor(15 * (fpsls[K] + u / fmlts[K] - 1) - 5) / 1;
  213.                     e = b[c];
  214.                     c++;
  215.                     q = "";
  216.                     for (y = 0; y < e; y++) q += String.fromCharCode(b[c]), c++;
  217.                     gdnm(q) || (q = "");
  218.                     for (e = ""; c < f;) e += String.fromCharCode(b[c]), c++;
  219.                     gdnm(e) || (e = "");
  220.                     q = q.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;");
  221.                     e = e.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;");
  222.                     0 < F && (b = "", 0 < e.length && (b += "<span style='font-size:17px;'><b><i><span style='opacity: .5;'>&quot;</span>" +
  223.                             e + "<span style='opacity: .5;'>&quot;</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>" + F + "</b></span></i>") : b = 0 <
  224.                         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>" + F + "</b></span></i>") : b + ("<i><span style='opacity: .5;'>Today's longest: </span><span style='opacity: .75;'><b>" + F + "</b></span></i>"), vcm.innerHTML = b)
  225.                 } else if ("p" == h) wfpr = !1, lagging && (etm *= lag_mult, lagging = !1);
  226.                 else if ("u" == h) {
  227.                     q = asmc.getContext("2d");
  228.                     q.clearRect(0, 0, 80, 80);
  229.                     q.fillStyle = "#FFFFFF";
  230.                     for (var F =
  231.                             e = 0; c < f && !(80 <= F);)
  232.                         if (t = b[c++], 128 <= t)
  233.                             for (t -= 128, y = 0; y < t && !(e++, 80 <= e && (e = 0, F++, 80 <= F)); y++);
  234.                         else
  235.                             for (y = 0; 7 > y && !(0 < (t & u_m[y]) && q.fillRect(e, F, 1, 1), e++, 80 <= e && (e = 0, F++, 80 <= F)); y++);
  236.                 } else if ("s" == h) {
  237.                     if (playing)
  238.                         if (t = b[c] << 8 | b[c + 1], c += 2, 6 < q) {
  239.                             z = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215;
  240.                             c += 3;
  241.                             c++;
  242.                             I = 2 * (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215;
  243.                             c += 3;
  244.                             M = (b[c] << 8 | b[c + 1]) / 1E3;
  245.                             c += 2;
  246.                             u = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 16777215;
  247.                             c += 3;
  248.                             y = b[c];
  249.                             c++;
  250.                             H = [];
  251.                             K = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5;
  252.                             c += 3;
  253.                             N = (b[c] << 16 | b[c + 1] << 8 | b[c +
  254.                                 2]) / 5;
  255.                             c += 3;
  256.                             e = b[c];
  257.                             c++;
  258.                             h = "";
  259.                             for (q = 0; q < e; q++) h += String.fromCharCode(b[c]), c++;
  260.                             for (var F = e = 0, O, L = !1; c < f;) q = e, O = F, L ? (e += (b[c] - 127) / 2, c++, F += (b[c] - 127) / 2, c++) : (e = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5, c += 3, F = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5, c += 3, q = e, O = F, L = !0), (E = points_dp.get()) || (E = {
  261.                                 exs: [],
  262.                                 eys: [],
  263.                                 efs: [],
  264.                                 ems: []
  265.                             }), E.eiu = 0, E.xx = e, E.yy = F, E.fx = 0, E.fy = 0, E.da = 0, E.ebx = e - q, E.eby = F - O, H.push(E);
  266.                             f = newSnake(t, K, N, y, z, H);
  267.                             null == snake ? (view_xx = e, view_yy = F, snake = f, snake.md = !1, snake.wmd = !1, f.nk = my_nick) : (f.nk = h, gdnm(h) || (f.nk = ""));
  268.                             f.eang = f.wang = I;
  269.                             f.sp = M;
  270.                             f.spang = f.sp / spangdv;
  271.                             1 < f.spang && (f.spang = 1);
  272.                             f.fam = u;
  273.                             f.sc = Math.min(6, 1 + (f.sct - 2) / 106);
  274.                             f.scang = .13 + .87 * Math.pow((7 - f.sc) / 6, 2);
  275.                             f.ssp = nsp1 + nsp2 * f.sc;
  276.                             f.fsp = f.ssp + .1;
  277.                             f.wsep = 6 * f.sc;
  278.                             b = nsep / gsc;
  279.                             f.wsep < b && (f.wsep = b);
  280.                             f.sep = f.wsep;
  281.                             snl(f)
  282.                         } else
  283.                             for (b = 1 == b[c], y = snakes.length - 1; 0 <= y; y--)
  284.                                 if (snakes[y].id == t) {
  285.                                     snakes[y].id = -1234;
  286.                                     b ? (snakes[y].dead = !0, snakes[y].dead_amt = 0, snakes[y].edir = 0) : snakes.splice(y, 1);
  287.                                     delete os["s" + t];
  288.                                     break
  289.                                 }
  290.                 } else if ("F" == h)
  291.                     if (4 <= protocol_version)
  292.                         for (h = !1; c < f;) y = b[c], c++, e =
  293.                             b[c] << 8 | b[c + 1], c += 2, F = b[c] << 8 | b[c + 1], c += 2, q = b[c] / 5, c++, t = F * grd * 3 + e, q = newFood(t, e, F, q, !0, y), h || (h = !0, u = Math.floor(e / sector_size), E = Math.floor(F / sector_size)), q.sx = u, q.sy = E;
  294.                     else
  295.                         for (u = b[c] << 8 | b[c + 1], c += 2, E = b[c] << 8 | b[c + 1], c += 2; c < f;) t = b[c] << 16 | b[c + 1] << 8 | b[c + 2], c += 3, y = b[c], c++, e = sector_size * (u + b[c] / 255), c++, F = sector_size * (E + b[c] / 255), c++, q = b[c] / 5, c++, q = newFood(t, e, F, q, !0, y), q.sx = u, q.sy = E;
  296.                 else if ("b" == h || "f" == h) 4 <= protocol_version ? (y = b[c], c++, 4 < q && (e = b[c] << 8 | b[c + 1], c += 2, F = b[c] << 8 | b[c + 1], t = F * grd * 3 + e, q = b[c +
  297.                     2] / 5, q = newFood(t, e, F, q, "b" == h, y), q.sx = Math.floor(e / sector_size), q.sy = Math.floor(F / sector_size))) : (t = b[c] << 16 | b[c + 1] << 8 | b[c + 2], c += 3, 4 < q && (y = b[c], c++, u = b[c] << 8 | b[c + 1], c += 2, E = b[c] << 8 | b[c + 1], c += 2, e = sector_size * (u + b[c] / 255), c++, F = sector_size * (E + b[c] / 255), c++, q = b[c] / 5, q = newFood(t, e, F, q, "b" == h, y), q.sx = u, q.sy = E));
  298.                 else if ("c" == h) {
  299.                     4 <= protocol_version ? (e = b[c] << 8 | b[c + 1], c += 2, F = b[c] << 8 | b[c + 1], c += 2, t = F * grd * 3 + e) : (t = b[c] << 16 | b[c + 1] << 8 | b[c + 2], c += 3);
  300.                     for (y = cm1 = foods_c - 1; 0 <= y; y--)
  301.                         if (q = foods[y], q.id == t) {
  302.                             q.eaten = !0;
  303.                             c +
  304.                                 2 <= f ? (b = b[c] << 8 | b[c + 1], q.eaten_by = os["s" + b], q.eaten_fr = 0) : (y == cm1 ? foods[y] = null : (foods[y] = foods[cm1], foods[cm1] = null), foods_c--, cm1--);
  305.                             t = -1;
  306.                             break
  307.                         }
  308.                     testing && -1 != t && console.log("wtf")
  309.                 } else if ("j" == h) {
  310.                     t = b[c] << 8 | b[c + 1];
  311.                     c += 2;
  312.                     e = 1 + 3 * (b[c] << 8 | b[c + 1]);
  313.                     c += 2;
  314.                     F = 1 + 3 * (b[c] << 8 | b[c + 1]);
  315.                     c += 2;
  316.                     f = null;
  317.                     for (y = preys.length - 1; 0 <= y; y--)
  318.                         if (preys[y].id == t) {
  319.                             f = preys[y];
  320.                             break
  321.                         }
  322.                     if (f) {
  323.                         t = etm / 8 * f.sp / 4;
  324.                         t *= lag_mult;
  325.                         h = f.xx;
  326.                         y = f.yy;
  327.                         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 +
  328.                             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] <<
  329.                             16 | b[c + 1] << 8 | b[c + 2]) * Math.PI / 16777215) : 8 == q && (f.sp = (b[c] << 8 | b[c + 1]) / 1E3);
  330.                         f.xx = e + Math.cos(f.ang) * t;
  331.                         f.yy = F + Math.sin(f.ang) * t;
  332.                         b = f.xx - h;
  333.                         c = f.yy - y;
  334.                         t = f.fpos;
  335.                         for (q = 0; q < rfc; q++) f.fxs[t] -= b * rfas[q], f.fys[t] -= c * rfas[q], t++, t >= rfc && (t = 0);
  336.                         f.fx = f.fxs[f.fpos];
  337.                         f.fy = f.fys[f.fpos];
  338.                         f.ftg = rfc
  339.                     }
  340.                 } else if ("y" == h)
  341.                     if (t = b[c] << 8 | b[c + 1], c += 2, 2 == q)
  342.                         for (y = preys.length - 1; 0 <= y; y--) {
  343.                             if (f = preys[y], f.id == t) {
  344.                                 preys.splice(y, 1);
  345.                                 break
  346.                             }
  347.                         } else if (4 == q)
  348.                             for (b = b[c] << 8 | b[c + 1], y = preys.length - 1; 0 <= y; y--) {
  349.                                 if (f = preys[y], f.id == t) {
  350.                                     f.eaten = !0;
  351.                                     f.eaten_by =
  352.                                         os["s" + b];
  353.                                     f.eaten_by ? f.eaten_fr = 0 : preys.splice(y, 1);
  354.                                     break
  355.                                 }
  356.                             } else y = b[c], c++, e = (b[c] << 16 | b[c + 1] << 8 | b[c + 2]) / 5, c += 3, F = (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, F, q, y, u, I, z, M)
  357.             }
  358.         };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement