Advertisement
Guest User

Untitled

a guest
Feb 18th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 45.95 KB | None | 0 0
  1. ii.src = "https://i.imgur.com/4N2EqTp.jpg";
  2. asmc.style.opacity = 0.8;
  3. redraw = function() {
  4. fps++;
  5. omfps++;
  6. var b = mc.getContext("2d");
  7. if (animating) {
  8. if (snake) {
  9. gsc = 0.3;
  10. }
  11. e = view_xx;
  12. var c = view_yy;
  13. null != snake && (0 < fvtg && (fvtg--,
  14. fvx = fvxs[fvpos],
  15. fvy = fvys[fvpos],
  16. fvxs[fvpos] = 0,
  17. fvys[fvpos] = 0,
  18. fvpos++,
  19. fvpos >= vfc && (fvpos = 0)),
  20. view_xx = snake.xx + snake.fx + fvx,
  21. view_yy = snake.yy + snake.fy + fvy,
  22. choosing_skin && (view_xx -= 5 * snake.pts.length,
  23. view_yy -= bskoy,
  24. gsc = 1),
  25. view_ang = Math.atan2(view_yy - grd, view_xx - grd),
  26. view_dist = Math.sqrt((view_xx - grd) * (view_xx - grd) + (view_yy - grd) * (view_yy - grd)),
  27. bpx1 = view_xx - (mww2 / gsc + 84),
  28. bpy1 = view_yy - (mhh2 / gsc + 84),
  29. bpx2 = view_xx + (mww2 / gsc + 84),
  30. bpy2 = view_yy + (mhh2 / gsc + 84),
  31. fpx1 = view_xx - (mww2 / gsc + 24),
  32. fpy1 = view_yy - (mhh2 / gsc + 24),
  33. fpx2 = view_xx + (mww2 / gsc + 24),
  34. fpy2 = view_yy + (mhh2 / gsc + 24),
  35. apx1 = view_xx - (mww2 / gsc + 210),
  36. apy1 = view_yy - (mhh2 / gsc + 210),
  37. apx2 = view_xx + (mww2 / gsc + 210),
  38. apy2 = view_yy + (mhh2 / gsc + 210));
  39. bgx2 -= (view_xx - e) / bgw2;
  40. bgy2 -= (view_yy - c) / bgh2;
  41. bgx2 %= 1;
  42. 0 > bgx2 && (bgx2 += 1);
  43. bgy2 %= 1;
  44. 0 > bgy2 && (bgy2 += 1);
  45. ggbg && (high_quality || 0 < gla) ? (b.save(),
  46. b.fillStyle = "#000000",
  47. b.fillRect(0, 0, mww, mhh),
  48. b.globalAlpha = .3 * gla,
  49. b.drawImage(gbgmc, 0, 0),
  50. b.restore()) : (b.fillStyle = "#000000",
  51. b.fillRect(0, 0, mww, mhh));
  52. if (bgp2) {
  53. b.save();
  54. b.fillStyle = bgp2;
  55. b.translate(mww2, mhh2);
  56. b.scale(gsc, gsc);
  57. b.translate(bgx2 * bgw2, bgy2 * bgh2);
  58. b.globalAlpha = .4 + .6 * (1 - gla);
  59. b.fillRect(3 * -mww / gsc, 3 * -mhh / gsc, 5 * mww / gsc, 5 * mhh / gsc);
  60. if (high_quality || 0 < gla)
  61. b.globalCompositeOperation = "lighter",
  62. b.globalAlpha = .4 * gla,
  63. b.fillRect(3 * -mww / gsc, 3 * -mhh / gsc, 5 * mww / gsc, 5 * mhh / gsc);
  64. b.restore()
  65. }
  66. if (testing)
  67. for (e = sectors.length - 1; 0 <= e; e--)
  68. c = sectors[e],
  69. b.fillStyle = "rgba(0, 255, 0, .1)",
  70. b.fillRect(mww2 + (c.xx * sector_size - view_xx) * gsc, mhh2 + (c.yy * sector_size - view_yy) * gsc, sector_size * gsc - 4, sector_size * gsc - 4);
  71. if (high_quality || 0 < gla) {
  72. var h = 1.75;
  73. 1 != gla && (h = 1.75 * gla);
  74. b.save();
  75. for (e = foods_c - 1; 0 <= e; e--)
  76. c = foods[e],
  77. c.rx >= fpx1 && c.ry >= fpy1 && c.rx <= fpx2 && c.ry <= fpy2 && (1 == c.rad ? (y = mww2 + gsc * (c.rx - view_xx) - c.ofw2,
  78. A = mhh2 + gsc * (c.ry - view_yy) - c.ofh2,
  79. b.globalAlpha = h * c.fr,
  80. b.drawImage(c.ofi, y, A)) : (y = mww2 + gsc * (c.rx - view_xx) - c.ofw2 * c.rad,
  81. A = mhh2 + gsc * (c.ry - view_yy) - c.ofh2 * c.rad,
  82. b.globalAlpha = h * c.fr,
  83. b.drawImage(c.ofi, 0, 0, c.ofw, c.ofh, y, A, c.ofw * c.rad, c.ofh * c.rad)));
  84. b.restore()
  85. }
  86. b.save();
  87. b.globalCompositeOperation = "lighter";
  88. if (high_quality || 0 < gla) {
  89. h = .75;
  90. 1 != gla && (h = .75 * gla);
  91. var u = .75;
  92. 1 != gla && (u = 1 - .25 * gla);
  93. for (e = foods_c - 1; 0 <= e; e--)
  94. c = foods[e],
  95. c.rx >= fpx1 && c.ry >= fpy1 && c.rx <= fpx2 && c.ry <= fpy2 && (1 == c.rad ? (y = mww2 + gsc * (c.rx - view_xx) - c.fw2,
  96. A = mhh2 + gsc * (c.ry - view_yy) - c.fh2,
  97. b.globalAlpha = u * c.fr,
  98. b.drawImage(c.fi, y, A),
  99. b.globalAlpha = h * (.5 + .5 * Math.cos(c.gfr / 13)) * c.fr,
  100. b.drawImage(c.fi, y, A)) : (y = mww2 + gsc * (c.rx - view_xx) - c.fw2 * c.rad,
  101. A = mhh2 + gsc * (c.ry - view_yy) - c.fh2 * c.rad,
  102. b.globalAlpha = u * c.fr,
  103. b.drawImage(c.fi, 0, 0, c.fw, c.fh, y, A, c.fw * c.rad, c.fh * c.rad),
  104. b.globalAlpha = h * (.5 + .5 * Math.cos(c.gfr / 13)) * c.fr,
  105. b.drawImage(c.fi, 0, 0, c.fw, c.fh, y, A, c.fw * c.rad, c.fh * c.rad)))
  106. } else
  107. for (e = foods_c - 1; 0 <= e; e--)
  108. c = foods[e],
  109. c.rx >= fpx1 && c.ry >= fpy1 && c.rx <= fpx2 && c.ry <= fpy2 && (1 == c.rad ? (y = mww2 + gsc * (c.rx - view_xx) - c.fw2,
  110. A = mhh2 + gsc * (c.ry - view_yy) - c.fh2,
  111. b.globalAlpha = c.fr,
  112. b.drawImage(c.fi, y, A)) : (y = mww2 + gsc * (c.rx - view_xx) - c.fw2 * c.rad,
  113. A = mhh2 + gsc * (c.ry - view_yy) - c.fh2 * c.rad,
  114. b.globalAlpha = c.fr,
  115. b.drawImage(c.fi, 0, 0, c.fw, c.fh, y, A, c.fw * c.rad, c.fh * c.rad)));
  116. b.restore();
  117. b.save();
  118. b.globalCompositeOperation = "lighter";
  119. for (e = preys.length - 1; 0 <= e; e--) {
  120. h = preys[e];
  121. var f = h.xx + h.fx;
  122. var q = h.yy + h.fy;
  123. px = mww2 + gsc * (f - view_xx);
  124. py = mhh2 + gsc * (q - view_yy);
  125. if (-50 <= px && -50 <= py && px <= mwwp50 && py <= mhhp50) {
  126. if (h.eaten) {
  127. c = h.eaten_by;
  128. var t = Math.pow(h.eaten_fr, 2);
  129. f += (c.xx + c.fx + Math.cos(c.ang + c.fa) * (43 - 24 * t) * (1 - t) - f) * t;
  130. q += (c.yy + c.fy + Math.sin(c.ang + c.fa) * (43 - 24 * t) * (1 - t) - q) * t;
  131. px = mww2 + gsc * (f - view_xx);
  132. py = mhh2 + gsc * (q - view_yy)
  133. }
  134. 1 == h.rad ? (y = px - h.fw2,
  135. A = py - h.fh2,
  136. b.globalAlpha = .75 * h.fr,
  137. b.drawImage(h.fi, y, A),
  138. b.globalAlpha = .75 * (.5 + .5 * Math.cos(h.gfr / 13)) * h.fr,
  139. b.drawImage(h.fi, y, A)) : (y = px - h.fw2 * h.rad,
  140. A = py - h.fh2 * h.rad,
  141. b.globalAlpha = .75 * h.fr,
  142. b.drawImage(h.fi, 0, 0, h.fw, h.fh, y, A, h.fw * h.rad, h.fh * h.rad),
  143. b.globalAlpha = .75 * (.5 + .5 * Math.cos(h.gfr / 13)) * h.fr,
  144. b.drawImage(h.fi, 0, 0, h.fw, h.fh, y, A, h.fw * h.rad, h.fh * h.rad))
  145. }
  146. }
  147. b.restore();
  148. b.save();
  149. b.strokeStyle = "#90C098";
  150. for (e = snakes.length - 1; 0 <= e; e--)
  151. c = snakes[e],
  152. f = c.xx + c.fx,
  153. q = c.yy + c.fy + 40,
  154. 0 < c.na && f >= bpx1 - 100 && q >= bpy1 && f <= bpx2 + 100 && q <= bpy2 && (c == snake && (c.fnfr++,
  155. 200 < c.fnfr && (c.na -= .004,
  156. 0 > c.na && (c.na = 0))),
  157. b.save(),
  158. b.globalAlpha = .5 * c.na * c.alive_amt * (1 - c.dead_amt),
  159. b.font = "12px Arial, Helvetica Neue, Helvetica, sans-serif",
  160. b.fillStyle = c.csw,
  161. b.textBaseline = "middle",
  162. b.textAlign = "center",
  163. h = c.xx + c.fx,
  164. u = c.yy + c.fy,
  165. h = mww2 + (h - view_xx) * gsc,
  166. u = mhh2 + (u - view_yy) * gsc,
  167. b.fillText(c.nk, h, u + 32 + 11 * c.sc * gsc),
  168. b.restore());
  169. for (e = snakes.length - 1; 0 <= e; e--)
  170. for (c = snakes[e],
  171. c.iiv = !1,
  172. w = c.pts.length - 1; 0 <= w; w--)
  173. if (B = c.pts[w],
  174. px = B.xx + B.fx,
  175. py = B.yy + B.fy,
  176. px >= bpx1 && py >= bpy1 && px <= bpx2 && py <= bpy2) {
  177. c.iiv = !0;
  178. break
  179. }
  180. for (e = snakes.length - 1; 0 <= e; e--)
  181. if (c = snakes[e], c.iiv) {
  182. h = c.xx + c.fx;
  183. u = c.yy + c.fy;
  184. px = h;
  185. py = u;
  186. var C = c.ehang;
  187. var x = c.sc
  188. , D = 29 * x
  189. , H = c.cfl
  190. , B = c.pts[c.pts.length - 1];
  191. if (1 == render_mode) {
  192. b.save();
  193. b.beginPath();
  194. b.moveTo(mww2 + (px - view_xx) * gsc, mhh2 + (py - view_yy) * gsc);
  195. for (var M = !1, w = c.pts.length - 1; 0 <= w; w--) {
  196. B = c.pts[w];
  197. lpx = px;
  198. lpy = py;
  199. px = B.xx;
  200. py = B.yy;
  201. var y = B.fx
  202. , A = B.fy;
  203. 0 < H && (px += y,
  204. py += A,
  205. lax = ax,
  206. lay = ay,
  207. ax = (px + lpx) / 2,
  208. ay = (py + lpy) / 2,
  209. M || (lax = ax,
  210. lay = ay),
  211. 1 > H && (t = 1 - H,
  212. lpx += (lax - lpx) * t,
  213. lpy += (lay - lpy) * t,
  214. ax += (lax - ax) * t,
  215. ay += (lay - ay) * t),
  216. M ? H-- : H -= c.chl + c.fchl,
  217. M ? b.quadraticCurveTo(mww2 + (lpx - view_xx) * gsc, mhh2 + (lpy - view_yy) * gsc, mww2 + (ax - view_xx) * gsc, mhh2 + (ay - view_yy) * gsc) : (b.lineTo(mww2 + (ax - view_xx) * gsc, mhh2 + (ay - view_yy) * gsc),
  218. M = !0))
  219. }
  220. b.save();
  221. b.lineJoin = "round";
  222. b.lineCap = "round";
  223. doiosh ? (c.sp > c.fsp && (w = c.alive_amt * (1 - c.dead_amt) * Math.max(0, Math.min(1, (c.sp - c.ssp) / (c.msp - c.ssp))),
  224. b.save(),
  225. b.strokeStyle = c.cs,
  226. b.globalAlpha = .3 * w,
  227. b.lineWidth = (D + 6) * gsc,
  228. b.stroke(),
  229. b.lineWidth = (D + 9) * gsc,
  230. b.stroke(),
  231. b.lineWidth = (D + 12) * gsc,
  232. b.stroke(),
  233. b.restore()),
  234. b.globalAlpha = 1 * c.alive_amt * (1 - c.dead_amt),
  235. b.strokeStyle = "#000000",
  236. b.lineWidth = (D + 5) * gsc) : (c.sp > c.fsp && (w = c.alive_amt * (1 - c.dead_amt) * Math.max(0, Math.min(1, (c.sp - c.ssp) / (c.msp - c.ssp))),
  237. b.save(),
  238. b.lineWidth = (D - 2) * gsc,
  239. b.shadowBlur = 30 * gsc,
  240. b.shadowColor = "rgba(" + c.rr + "," + c.gg + "," + c.bb + ", " + Math.round(1E4 * w) / 1E4 + ")",
  241. b.stroke(),
  242. b.stroke(),
  243. b.restore()),
  244. b.globalAlpha = .4 * c.alive_amt * (1 - c.dead_amt),
  245. b.strokeStyle = "#000000",
  246. b.lineWidth = (D + 5) * gsc,
  247. b.stroke(),
  248. b.strokeStyle = c.cs,
  249. b.lineWidth = D * gsc,
  250. b.strokeStyle = "#000000",
  251. b.globalAlpha = 1 * c.alive_amt * (1 - c.dead_amt));
  252. b.stroke();
  253. b.strokeStyle = c.cs;
  254. b.globalAlpha = .8 * c.alive_amt * (1 - c.dead_amt);
  255. b.lineWidth = D * gsc;
  256. b.stroke();
  257. b.restore();
  258. b.strokeStyle = c.cs;
  259. c.dead && (A = (.5 + .5 * Math.abs(Math.sin(5 * Math.PI * c.dead_amt))) * Math.sin(Math.PI * c.dead_amt),
  260. b.save(),
  261. b.lineJoin = "round",
  262. b.lineCap = "round",
  263. b.globalCompositeOperation = "lighter",
  264. b.lineWidth = (D - 3) * gsc,
  265. b.globalAlpha = A,
  266. b.strokeStyle = "#FFCC99",
  267. b.stroke(),
  268. b.restore());
  269. b.restore()
  270. }
  271. if (2 == render_mode) {
  272. D *= .5;
  273. px = h;
  274. py = u;
  275. var G = px;
  276. var z = py;
  277. G >= bpx1 && z >= bpy1 && G <= bpx2 && z <= bpy2 ? (pbx[0] = G,
  278. pby[0] = z,
  279. pba[0] = Math.atan2(u - (B.yy + B.fy), h - (B.xx + B.fx)) + Math.PI,
  280. pbu[0] = 2) : pbu[0] = 0;
  281. y = 1;
  282. A = c.drez;
  283. var F = 0
  284. , L = .25;
  285. A && (L = .125);
  286. n = (c.chl + c.fchl) % L;
  287. 0 > n && (n += L);
  288. n = L - n;
  289. H += 1 - L * Math.ceil((c.chl + c.fchl) / L);
  290. ax = px;
  291. ay = py;
  292. c.sep != c.wsep && (c.sep < c.wsep ? (c.sep += .01,
  293. c.sep >= c.wsep && (c.sep = c.wsep)) : c.sep > c.wsep && (c.sep -= .01,
  294. c.sep <= c.wsep && (c.sep = c.wsep)));
  295. var I = c.sep * qsm;
  296. A && (I *= .333);
  297. var J = 0
  298. , E = per_color_imgs[c.cv]
  299. , N = E.kmcs;
  300. M = N.length;
  301. var O = 2 * M
  302. , R = E.klp;
  303. for (w = c.pts.length - 1; 0 <= w; w--)
  304. if (B = c.pts[w],
  305. lpx = px,
  306. lpy = py,
  307. px = B.xx + B.fx,
  308. py = B.yy + B.fy,
  309. H > -L) {
  310. var S = G;
  311. var P = z;
  312. G = (px + lpx) / 2;
  313. z = (py + lpy) / 2;
  314. var T = lpx;
  315. var U = lpy;
  316. for (t = 0; 1 > t; t += L) {
  317. B = n + t;
  318. f = S + (T - S) * B;
  319. q = P + (U - P) * B;
  320. var Q = T + (G - T) * B;
  321. var V = U + (z - U) * B;
  322. lax = ax;
  323. lay = ay;
  324. ax = f + (Q - f) * B;
  325. ay = q + (V - q) * B;
  326. 0 > H && (ax += -(lax - ax) * H / L,
  327. ay += -(lay - ay) * H / L);
  328. Q = Math.sqrt(Math.pow(ax - lax, 2) + Math.pow(ay - lay, 2));
  329. if (J + Q < I)
  330. J += Q;
  331. else {
  332. J = -J;
  333. for (B = (Q - J) / I; 1 <= B; B--)
  334. J += I,
  335. pax = lax + (ax - lax) * J / Q,
  336. pay = lay + (ay - lay) * J / Q,
  337. pax >= bpx1 && pay >= bpy1 && pax <= bpx2 && pay <= bpy2 ? (pbx[y] = pax,
  338. pby[y] = pay,
  339. pbu[y] = 2,
  340. A && (F--,
  341. 0 >= F ? F = 3 : pbu[y] = 1),
  342. f = ax - lax,
  343. q = ay - lay,
  344. pba[y] = -4 <= f && -4 <= q && 4 > f && 4 > q ? at2lt[32 * q + 128 << 8 | 32 * f + 128] : -8 <= f && -8 <= q && 8 > f && 8 > q ? at2lt[16 * q + 128 << 8 | 16 * f + 128] : -16 <= f && -16 <= q && 16 > f && 16 > q ? at2lt[8 * q + 128 << 8 | 8 * f + 128] : -127 <= f && -127 <= q && 127 > f && 127 > q ? at2lt[q + 128 << 8 | f + 128] : Math.atan2(q, f)) : pbu[y] = 0,
  345. y++;
  346. J = Q - J
  347. }
  348. if (1 > H && (H -= L,
  349. H <= -L))
  350. break
  351. }
  352. 1 <= H && H--
  353. }
  354. ax >= bpx1 && ay >= bpy1 && ax <= bpx2 && ay <= bpy2 ? (pbu[y] = 2,
  355. A && (F--,
  356. 0 >= F || (pbu[y] = 1)),
  357. pbx[y] = ax,
  358. pby[y] = ay,
  359. pba[y] = Math.atan2(ay - lay, ax - lax)) : pbu[y] = 0;
  360. y++;
  361. b.save();
  362. b.translate(mww2, mhh2);
  363. t = gsc * D * 52 / 32;
  364. G = gsc * D * 62 / 32;
  365. H = c.alive_amt * (1 - c.dead_amt);
  366. H *= H;
  367. B = 1;
  368. if (c.tsp > c.fsp) {
  369. B = c.alive_amt * (1 - c.dead_amt) * Math.max(0, Math.min(1, (c.tsp - c.ssp) / (c.msp - c.ssp)));
  370. var K = .37 * B;
  371. L = Math.pow(B, .5);
  372. I = 1.5 * gsc * D * (1 + .9375 * L);
  373. q = E.kfmc;
  374. b.save();
  375. b.globalCompositeOperation = "lighter";
  376. J = 4;
  377. A && (J = 12);
  378. if (c.rbcs)
  379. for (z = c.rbcs,
  380. F = z.length,
  381. w = y - 1; 0 <= w; w--)
  382. 2 == pbu[w] && (px = pbx[w],
  383. py = pby[w],
  384. q = per_color_imgs[z[w % F]],
  385. q = q.kfmc,
  386. b.save(),
  387. b.globalAlpha = H * L * .38 * (.6 + .4 * Math.cos(w / J - 1.15 * c.sfr)),
  388. b.translate((px - view_xx) * gsc, (py - view_yy) * gsc),
  389. 4 > w ? (f = I * (1 + (4 - w) * c.swell),
  390. b.drawImage(q, -f, -f, 2 * f, 2 * f)) : b.drawImage(q, -I, -I, 2 * I, 2 * I),
  391. b.restore());
  392. else
  393. for (w = y - 1; 0 <= w; w--)
  394. 2 == pbu[w] && (px = pbx[w],
  395. py = pby[w],
  396. b.save(),
  397. b.globalAlpha = H * L * .38 * (.6 + .4 * Math.cos(w / J - 1.15 * c.sfr)),
  398. b.translate((px - view_xx) * gsc, (py - view_yy) * gsc),
  399. 4 > w ? (f = I * (1 + (4 - w) * c.swell),
  400. b.drawImage(q, -f, -f, 2 * f, 2 * f)) : b.drawImage(q, -I, -I, 2 * I, 2 * I),
  401. b.restore());
  402. b.restore();
  403. B = 1 - B
  404. }
  405. B *= H;
  406. if (high_quality || 0 < gla)
  407. for (w = B,
  408. 1 != gla && (w = B * gla),
  409. b.globalAlpha = w,
  410. w = y - 1; 0 <= w; w--)
  411. 2 == pbu[w] && (px = pbx[w],
  412. py = pby[w],
  413. b.save(),
  414. b.translate((px - view_xx) * gsc, (py - view_yy) * gsc),
  415. b.drawImage(komc, -t, -t, 2 * t, 2 * t),
  416. 9 > w && (b.globalAlpha = H * (1 - w / 9),
  417. 4 > w ? (f = G * (1 + (4 - w) * c.swell),
  418. b.drawImage(ksmc, -f, -f, 2 * f, 2 * f)) : b.drawImage(ksmc, -G, -G, 2 * G, 2 * G),
  419. b.globalAlpha = H),
  420. b.restore());
  421. b.globalAlpha = B;
  422. if (c.rbcs) {
  423. z = c.rbcs;
  424. B = c.fdhc;
  425. E = c.fdtc;
  426. N = c.fdl;
  427. F = z.length;
  428. for (w = y - 1; 0 <= w; w--)
  429. 1 <= pbu[w] && (px = pbx[w],
  430. py = pby[w],
  431. 4 <= w && (t = w - 4,
  432. 2 == pbu[t] && (f = pbx[t],
  433. q = pby[t],
  434. b.save(),
  435. b.translate((f - view_xx) * gsc, (q - view_yy) * gsc),
  436. 9 > t ? (b.globalAlpha = t / 9 * H,
  437. 4 > t ? (f = G * (1 + (4 - t) * c.swell),
  438. b.drawImage(ksmc, -f, -f, 2 * f, 2 * f)) : b.drawImage(ksmc, -G, -G, 2 * G, 2 * G)) : (b.globalAlpha = H,
  439. b.drawImage(ksmc, -G, -G, 2 * G, 2 * G)),
  440. b.restore())),
  441. b.save(),
  442. b.globalAlpha = H,
  443. b.translate((px - view_xx) * gsc, (py - view_yy) * gsc),
  444. b.rotate(pba[w]),
  445. t = 0,
  446. c.cusk || (R ? (t = w % O,
  447. t >= M && (t = O - (t + 1))) : t = w % M),
  448. q = per_color_imgs[z[w % F]],
  449. 4 > w ? (f = D * (1 + (4 - w) * c.swell),
  450. b.drawImage(q.kmcs[t], -gsc * f, -gsc * f, 2 * gsc * f, 2 * gsc * f)) : b.drawImage(q.kmcs[t], -gsc * D, -gsc * D, 2 * gsc * D, 2 * gsc * D),
  451. B && w < N && (t = 1 - w / N,
  452. q = per_color_imgs[B],
  453. b.globalAlpha = H * t,
  454. f = (1 + .05 * t) * D * (1 + (4 - w) * c.swell),
  455. b.drawImage(q.kmcs[0], -gsc * f, -gsc * f, 2 * gsc * f, 2 * gsc * f)),
  456. E && w > y - N && (t = 1 - (y - w) / N,
  457. q = per_color_imgs[E],
  458. b.globalAlpha = H * t,
  459. f = (1 + .05 * t) * D * (1 + (4 - w) * c.swell),
  460. b.drawImage(q.kmcs[0], -gsc * f, -gsc * f, 2 * gsc * f, 2 * gsc * f)),
  461. b.restore());
  462. if (c.tsp > c.fsp && (high_quality || 0 < gla)) {
  463. b.save();
  464. b.globalCompositeOperation = "lighter";
  465. J = 4;
  466. A && (J = 12);
  467. I = 2 * D;
  468. for (w = y - 1; 0 <= w; w--)
  469. 2 == pbu[w] && (px = pbx[w],
  470. py = pby[w],
  471. b.save(),
  472. b.translate((px - view_xx) * gsc, (py - view_yy) * gsc),
  473. b.rotate(pba[w]),
  474. b.globalAlpha = H * K * gla * (.5 + .5 * Math.cos(w / J - c.sfr)),
  475. 4 > w ? (f = I * (1 + (4 - w) * c.swell),
  476. b.drawImage(per_color_imgs[z[w % F]].kfmc, -gsc * f, -gsc * f, 2 * gsc * f, 2 * gsc * f)) : b.drawImage(per_color_imgs[z[w % F]].kfmc, -gsc * I, -gsc * I, 2 * gsc * I, 2 * gsc * I),
  477. b.restore());
  478. b.restore()
  479. }
  480. } else {
  481. for (w = y - 1; 0 <= w; w--)
  482. 1 <= pbu[w] && (px = pbx[w],
  483. py = pby[w],
  484. 4 <= w && (t = w - 4,
  485. 2 == pbu[t] && (f = pbx[t],
  486. q = pby[t],
  487. b.save(),
  488. b.translate((f - view_xx) * gsc, (q - view_yy) * gsc),
  489. 9 > t ? (b.globalAlpha = t / 9 * H,
  490. 4 > t ? (f = G * (1 + (4 - t) * c.swell),
  491. b.drawImage(ksmc, -f, -f, 2 * f, 2 * f)) : b.drawImage(ksmc, -G, -G, 2 * G, 2 * G)) : (b.globalAlpha = H,
  492. b.drawImage(ksmc, -G, -G, 2 * G, 2 * G)),
  493. b.restore())),
  494. b.save(),
  495. b.globalAlpha = H,
  496. b.translate((px - view_xx) * gsc, (py - view_yy) * gsc),
  497. b.rotate(pba[w]),
  498. t = 0,
  499. c.cusk || (R ? (t = w % O,
  500. t >= M && (t = O - (t + 1))) : t = w % M),
  501. 4 > w ? (f = D * (1 + (4 - w) * c.swell),
  502. b.drawImage(N[t], -gsc * f, -gsc * f, 2 * gsc * f, 2 * gsc * f)) : b.drawImage(N[t], -gsc * D, -gsc * D, 2 * gsc * D, 2 * gsc * D),
  503. b.restore());
  504. if (c.tsp > c.fsp && (high_quality || 0 < gla)) {
  505. b.save();
  506. b.globalCompositeOperation = "lighter";
  507. J = 4;
  508. A && (J = 12);
  509. I = 2 * D;
  510. for (w = y - 1; 0 <= w; w--)
  511. 1 <= pbu[w] && (px = pbx[w],
  512. py = pby[w],
  513. b.save(),
  514. b.translate((px - view_xx) * gsc, (py - view_yy) * gsc),
  515. b.rotate(pba[w]),
  516. b.globalAlpha = H * K * gla * (.5 + .5 * Math.cos(w / J - c.sfr)),
  517. 4 > w ? (f = I * (1 + (4 - w) * c.swell),
  518. b.drawImage(E.kfmc, -gsc * f, -gsc * f, 2 * gsc * f, 2 * gsc * f)) : b.drawImage(E.kfmc, -gsc * I, -gsc * I, 2 * gsc * I, 2 * gsc * I),
  519. b.restore());
  520. b.restore()
  521. }
  522. }
  523. if (c.antenna)
  524. if (f = Math.cos(c.ang),
  525. q = Math.sin(c.ang),
  526. ax = h - 8 * f * c.sc,
  527. ay = u - 8 * q * c.sc,
  528. 2 <= y && ax >= apx1 && ay >= apy1 && ax <= apx2 && ay <= apy2) {
  529. c.atx[0] = ax;
  530. c.aty[0] = ay;
  531. B = c.sc * gsc;
  532. fj = c.atx.length - 1;
  533. if (choosing_skin)
  534. for (w = 1; w <= fj; w++)
  535. c.atvx[w] -= .3,
  536. c.atvy[w] += .14 * Math.cos(fr / 23 - 7 * w / fj);
  537. else if (!c.antenna_shown)
  538. for (c.antenna_shown = !0,
  539. w = 1; w <= fj; w++)
  540. c.atx[w] = ax - f * w * 4 * c.sc,
  541. c.aty[w] = ay - q * w * 4 * c.sc;
  542. for (w = 1; w <= fj; w++)
  543. xx = c.atx[w - 1],
  544. yy = c.aty[w - 1],
  545. xx += 2 * Math.random() - 1,
  546. yy += 2 * Math.random() - 1,
  547. f = c.atx[w] - xx,
  548. q = c.aty[w] - yy,
  549. ang = -4 <= f && -4 <= q && 4 > f && 4 > q ? at2lt[32 * q + 128 << 8 | 32 * f + 128] : -8 <= f && -8 <= q && 8 > f && 8 > q ? at2lt[16 * q + 128 << 8 | 16 * f + 128] : -16 <= f && -16 <= q && 16 > f && 16 > q ? at2lt[8 * q + 128 << 8 | 8 * f + 128] : -127 <= f && -127 <= q && 127 > f && 127 > q ? at2lt[q + 128 << 8 | f + 128] : Math.atan2(q, f),
  550. xx += 4 * Math.cos(ang) * c.sc,
  551. yy += 4 * Math.sin(ang) * c.sc,
  552. c.atvx[w] += .1 * (xx - c.atx[w]),
  553. c.atvy[w] += .1 * (yy - c.aty[w]),
  554. c.atx[w] += c.atvx[w],
  555. c.aty[w] += c.atvy[w],
  556. c.atvx[w] *= .88,
  557. c.atvy[w] *= .88,
  558. f = c.atx[w] - c.atx[w - 1],
  559. q = c.aty[w] - c.aty[w - 1],
  560. Q = Math.sqrt(f * f + q * q),
  561. Q > 4 * c.sc && (ang = -4 <= f && -4 <= q && 4 > f && 4 > q ? at2lt[32 * q + 128 << 8 | 32 * f + 128] : -8 <= f && -8 <= q && 8 > f && 8 > q ? at2lt[16 * q + 128 << 8 | 16 * f + 128] : -16 <= f && -16 <= q && 16 > f && 16 > q ? at2lt[8 * q + 128 << 8 | 8 * f + 128] : -127 <= f && -127 <= q && 127 > f && 127 > q ? at2lt[q + 128 << 8 | f + 128] : Math.atan2(q, f),
  562. c.atx[w] = c.atx[w - 1] + 4 * Math.cos(ang) * c.sc,
  563. c.aty[w] = c.aty[w - 1] + 4 * Math.sin(ang) * c.sc);
  564. b.globalAlpha = H;
  565. b.strokeStyle = c.atc1;
  566. b.lineWidth = 5 * B;
  567. b.lineCap = "round";
  568. b.lineJoin = "round";
  569. b.beginPath();
  570. fj = c.atx.length - 1;
  571. f = (c.atx[fj] - view_xx) * gsc;
  572. q = (c.aty[fj] - view_yy) * gsc;
  573. b.moveTo(f, q);
  574. for (w = fj - 1; 1 <= w; w--)
  575. xx = (c.atx[w] - view_xx) * gsc,
  576. yy = (c.aty[w] - view_yy) * gsc,
  577. 1 <= Math.abs(xx - f) + Math.abs(yy - q) && (f = xx,
  578. q = yy,
  579. b.lineTo(f, q));
  580. xx = (.5 * (c.atx[1] + c.atx[0]) - view_xx) * gsc;
  581. yy = (.5 * (c.aty[1] + c.aty[0]) - view_yy) * gsc;
  582. 1 <= Math.abs(xx - f) + Math.abs(yy - q) && (f = xx,
  583. q = yy,
  584. b.lineTo(f, q));
  585. b.stroke();
  586. b.globalAlpha = c.atia * H;
  587. b.strokeStyle = c.atc2;
  588. b.lineWidth = 4 * B;
  589. b.beginPath();
  590. fj = c.atx.length - 1;
  591. f = (c.atx[fj] - view_xx) * gsc;
  592. q = (c.aty[fj] - view_yy) * gsc;
  593. b.moveTo(f, q);
  594. for (w = fj - 1; 0 <= w; w--)
  595. xx = (c.atx[w] - view_xx) * gsc,
  596. yy = (c.aty[w] - view_yy) * gsc,
  597. 1 <= Math.abs(xx - f) + Math.abs(yy - q) && (f = xx,
  598. q = yy,
  599. b.lineTo(f, q));
  600. b.stroke();
  601. c.atwg && (b.lineWidth = 3 * B,
  602. b.stroke(),
  603. b.lineWidth = 2 * B,
  604. b.stroke());
  605. b.globalAlpha = H * c.blba;
  606. if (c.abrot) {
  607. b.save();
  608. b.translate((c.atx[fj] - view_xx) * gsc, (c.aty[fj] - view_yy) * gsc);
  609. vang = Math.atan2(c.aty[fj] - c.aty[fj - 1], c.atx[fj] - c.atx[fj - 1]) - c.atba;
  610. if (0 > vang || vang >= pi2)
  611. vang %= pi2;
  612. vang < -Math.PI ? vang += pi2 : vang > Math.PI && (vang -= pi2);
  613. c.atba = (c.atba + .15 * vang) % pi2;
  614. b.rotate(c.atba);
  615. b.drawImage(c.bulb, c.blbx * c.bsc * B, c.blby * c.bsc * B, c.blbw * c.bsc * B, c.blbh * c.bsc * B);
  616. b.restore()
  617. } else
  618. b.drawImage(c.bulb, (c.atx[fj] - view_xx + c.blbx * c.bsc * c.sc) * gsc, (c.aty[fj] - view_yy + c.blby * c.bsc * c.sc) * gsc, c.blbw * c.bsc * B, c.blbh * c.bsc * B);
  619. c.apbs && (b.globalAlpha = .5 * H,
  620. b.lineWidth = 3 * B,
  621. b.stroke(),
  622. b.lineWidth = 2 * B,
  623. b.stroke())
  624. } else
  625. c.antenna_shown && (c.antenna_shown = !1);
  626. if (c.dead) {
  627. b.save();
  628. b.globalCompositeOperation = "lighter";
  629. A = (.15 + .15 * Math.abs(Math.sin(5 * Math.PI * c.dead_amt))) * Math.sin(Math.PI * c.dead_amt);
  630. D *= gsc;
  631. for (w = y - 1; 0 <= w; w--)
  632. 2 == pbu[w] && (px = pbx[w],
  633. py = pby[w],
  634. b.save(),
  635. b.globalAlpha = A * (.6 + .4 * Math.cos(w / 4 - 15 * c.dead_amt)),
  636. b.translate((px - view_xx) * gsc, (py - view_yy) * gsc),
  637. 4 > w ? (f = D * (1 + (4 - w) * c.swell),
  638. b.drawImage(kdmc, -f, -f, 2 * f, 2 * f)) : b.drawImage(kdmc, -D, -D, 2 * D, 2 * D),
  639. b.restore());
  640. b.restore()
  641. }
  642. b.restore()
  643. }
  644. c.one_eye ? (D = 3 * x,
  645. w = Math.cos(C) * D,
  646. y = Math.sin(C) * D,
  647. A = x * c.ebisz,
  648. b.drawImage(c.ebi, 0, 0, c.ebiw, c.ebih, mww2 + (w + h - A / 2 - view_xx) * gsc, mhh2 + (y + u - A / 2 - view_yy) * gsc, A * gsc, A * gsc),
  649. w = Math.cos(C) * (D + .15) + c.rex * x,
  650. y = Math.sin(C) * (D + .15) + c.rey * x,
  651. A = x * c.episz,
  652. b.drawImage(c.epi, 0, 0, c.epiw, c.epih, mww2 + (w + h - A / 2 - view_xx) * gsc, mhh2 + (y + u - A / 2 - view_yy) * gsc, A * gsc, A * gsc)) : (D = c.ed * x,
  653. A = c.esp * x,
  654. c.eac || (w = Math.cos(C) * D + Math.cos(C - Math.PI / 2) * (A + .5),
  655. y = Math.sin(C) * D + Math.sin(C - Math.PI / 2) * (A + .5),
  656. b.fillStyle = c.ec,
  657. 0 < c.eo && (b.lineWidth = c.eo * gsc,
  658. b.strokeStyle = "#000000"),
  659. b.globalAlpha = c.eca * c.alive_amt,
  660. b.beginPath(),
  661. b.arc(mww2 + (w + h - view_xx) * gsc, mhh2 + (y + u - view_yy) * gsc, c.er * x * gsc, 0, pi2),
  662. b.closePath(),
  663. 0 < c.eo && b.stroke(),
  664. b.fill(),
  665. b.globalAlpha = c.ppa,
  666. w = Math.cos(C) * (D + .5) + c.rex * x + Math.cos(C - Math.PI / 2) * A,
  667. y = Math.sin(C) * (D + .5) + c.rey * x + Math.sin(C - Math.PI / 2) * A,
  668. b.fillStyle = c.ppc,
  669. b.beginPath(),
  670. b.arc(mww2 + (w + h - view_xx) * gsc, mhh2 + (y + u - view_yy) * gsc, c.pr * x * gsc, 0, pi2),
  671. b.closePath(),
  672. b.fill()),
  673. c.eac || (w = Math.cos(C) * D + Math.cos(C + Math.PI / 2) * (A + .5),
  674. y = Math.sin(C) * D + Math.sin(C + Math.PI / 2) * (A + .5),
  675. b.fillStyle = c.ec,
  676. 0 < c.eo && (b.lineWidth = c.eo * gsc,
  677. b.strokeStyle = "#000000"),
  678. b.globalAlpha = c.eca * c.alive_amt,
  679. b.beginPath(),
  680. b.arc(mww2 + (w + h - view_xx) * gsc, mhh2 + (y + u - view_yy) * gsc, c.er * x * gsc, 0, pi2),
  681. b.closePath(),
  682. 0 < c.eo && b.stroke(),
  683. b.fill(),
  684. b.globalAlpha = c.ppa,
  685. w = Math.cos(C) * (D + .5) + c.rex * x + Math.cos(C + Math.PI / 2) * A,
  686. y = Math.sin(C) * (D + .5) + c.rey * x + Math.sin(C + Math.PI / 2) * A,
  687. b.fillStyle = c.ppc,
  688. b.beginPath(),
  689. b.arc(mww2 + (w + h - view_xx) * gsc, mhh2 + (y + u - view_yy) * gsc, c.pr * x * gsc, 0, pi2),
  690. b.closePath(),
  691. b.fill()),
  692. c.jyt && (B = c.sc * gsc * .25,
  693. D = -3 * x,
  694. A = 7 * x,
  695. w = Math.cos(C) * (D + .5) + c.rex * x + Math.cos(C - Math.PI / 2) * A,
  696. y = Math.sin(C) * (D + .5) + c.rey * x + Math.sin(C - Math.PI / 2) * A,
  697. b.save(),
  698. b.translate(mww2 + (w + h - view_xx) * gsc, mhh2 + (y + u - view_yy) * gsc),
  699. b.rotate(C),
  700. b.drawImage(ecmc, -24 * B, -24 * B, 48 * B, 48 * B),
  701. b.restore(),
  702. w = Math.cos(C) * (D + .5) + c.rex * x + Math.cos(C + Math.PI / 2) * A,
  703. y = Math.sin(C) * (D + .5) + c.rey * x + Math.sin(C + Math.PI / 2) * A,
  704. b.save(),
  705. b.translate(mww2 + (w + h - view_xx) * gsc, mhh2 + (y + u - view_yy) * gsc),
  706. b.rotate(C),
  707. b.drawImage(ecmc, -24 * B, -24 * B, 48 * B, 48 * B),
  708. b.restore(),
  709. D = 5 * x,
  710. w = Math.cos(C) * (D + .5) + c.rex * x,
  711. y = Math.sin(C) * (D + .5) + c.rey * x,
  712. B = c.sc * gsc * .16,
  713. b.save(),
  714. b.translate(mww2 + (w + h - view_xx) * gsc, mhh2 + (y + u - view_yy) * gsc),
  715. b.rotate(C),
  716. b.drawImage(jmou, -40 * B, -65 * B, 79 * B, 130 * B),
  717. b.restore()));
  718. b.globalAlpha = 1;
  719. c.slg && (B = c.sc * gsc * .25,
  720. b.save(),
  721. f = 13 * Math.cos(C) * x + Math.cos(C - Math.PI / 2) * (6 * x + .5),
  722. q = 13 * Math.sin(C) * x + Math.sin(C - Math.PI / 2) * (6 * x + .5),
  723. b.translate(mww2 + (f + h - view_xx) * gsc, mhh2 + (q + u - view_yy) * gsc),
  724. b.rotate(C - .4),
  725. b.drawImage(sest, -28 * B, -44 * B, 105 * B, 88 * B),
  726. b.restore(),
  727. b.save(),
  728. f = 13 * Math.cos(C) * x + Math.cos(C + Math.PI / 2) * (6 * x + .5),
  729. q = 13 * Math.sin(C) * x + Math.sin(C + Math.PI / 2) * (6 * x + .5),
  730. b.translate(mww2 + (f + h - view_xx) * gsc, mhh2 + (q + u - view_yy) * gsc),
  731. b.rotate(C + .4),
  732. b.drawImage(sest, -28 * B, -44 * B, 105 * B, 88 * B),
  733. b.restore())
  734. } else {
  735. b.fillStyle = c.csw;
  736. b.fillRect(xx - 20, yy - 20, 40, 40);
  737. b.fillStyle = "#ffffff";
  738. b.textBaseline = "middle",
  739. b.textAlign = "center",
  740. b.fillText("Snek here (" + c.nk + ")", xx, yy);
  741. }
  742. if (high_quality || 0 < gla) {
  743. b.save();
  744. b.globalCompositeOperation = "lighter";
  745. for (e = foods_c - 1; 0 <= e; e--)
  746. c = foods[e],
  747. c.rx >= fpx1 && c.ry >= fpy1 && c.rx <= fpx2 && c.ry <= fpy2 && (f = c.rx - view_xx,
  748. q = c.ry - view_yy,
  749. h = f * f + q * q,
  750. fs = 1 + .06 * c.rad,
  751. y = f * fs,
  752. A = q * fs,
  753. K = .005 + .09 * (1 - h / (86E3 + h)),
  754. 1 != c.rad && (K *= Math.pow(c.rad, .25)),
  755. 1 != gla && (K *= gla),
  756. y = y * gsc + mww2,
  757. A = A * gsc + mhh2,
  758. 1 == c.rad ? (y -= c.gfw2,
  759. A -= c.gfh2,
  760. b.globalAlpha = K * c.fr,
  761. b.drawImage(c.gfi, y, A),
  762. b.globalAlpha = K * (.5 + .5 * Math.cos(c.gfr / 13)) * c.fr,
  763. b.drawImage(c.gfi, y, A)) : (y -= c.gfw2 * c.rad,
  764. A -= c.gfh2 * c.rad,
  765. b.globalAlpha = K * c.fr,
  766. b.drawImage(c.gfi, 0, 0, c.gfw, c.gfh, y, A, c.gfw * c.rad, c.gfh * c.rad),
  767. b.globalAlpha = K * (.5 + .5 * Math.cos(c.gfr / 13)) * c.fr,
  768. b.drawImage(c.gfi, 0, 0, c.gfw, c.gfh, y, A, c.gfw * c.rad, c.gfh * c.rad)),
  769. fs = 1 + .32 * c.rad,
  770. y = f * fs,
  771. A = q * fs,
  772. K = .085 * (1 - h / (16500 + h)),
  773. 1 != c.rad && (K *= Math.pow(c.rad, .25)),
  774. 1 != gla && (K *= gla),
  775. y = y * gsc + mww2,
  776. A = A * gsc + mhh2,
  777. 1 == c.rad ? (y -= c.g2fw2,
  778. A -= c.g2fh2,
  779. b.globalAlpha = K * c.fr,
  780. b.drawImage(c.g2fi, y, A),
  781. b.globalAlpha = K * (.5 + .5 * Math.cos(c.gfr / 13)) * c.fr,
  782. b.drawImage(c.g2fi, y, A)) : (y -= c.g2fw2 * c.rad,
  783. A -= c.g2fh2 * c.rad,
  784. b.globalAlpha = K * c.fr,
  785. b.drawImage(c.g2fi, 0, 0, c.g2fw, c.g2fh, y, A, c.g2fw * c.rad, c.g2fh * c.rad),
  786. b.globalAlpha = K * (.5 + .5 * Math.cos(c.gfr / 13)) * c.fr,
  787. b.drawImage(c.g2fi, 0, 0, c.g2fw, c.g2fh, y, A, c.g2fw * c.rad, c.g2fh * c.rad)));
  788. b.restore()
  789. }
  790. b.save();
  791. b.globalCompositeOperation = "lighter";
  792. for (e = preys.length - 1; 0 <= e; e--)
  793. h = preys[e],
  794. f = h.xx + h.fx,
  795. q = h.yy + h.fy,
  796. h.eaten && (c = h.eaten_by,
  797. t = Math.pow(h.eaten_fr, 2),
  798. f += (c.xx + c.fx + Math.cos(c.ang + c.fa) * (43 - 24 * t) * (1 - t) - f) * t,
  799. q += (c.yy + c.fy + Math.sin(c.ang + c.fa) * (43 - 24 * t) * (1 - t) - q) * t),
  800. f -= view_xx,
  801. q -= view_yy,
  802. c = f * f + q * q,
  803. fs = 1 + .08 * h.rad,
  804. px = f * fs,
  805. py = q * fs,
  806. K = .4 * (1 - c / (176E3 + c)),
  807. 1 != h.rad && (K *= Math.pow(h.rad, .25)),
  808. px = px * gsc + mww2,
  809. py = py * gsc + mhh2,
  810. 1 == h.rad ? -150 <= px && -150 <= py && px <= mwwp150 && py <= mhhp150 && (px -= h.gfw2,
  811. py -= h.gfh2,
  812. b.globalAlpha = K * h.fr,
  813. b.drawImage(h.gfi, px, py),
  814. b.globalAlpha = K * (.5 + .5 * Math.cos(h.gfr / 13)) * h.fr,
  815. b.drawImage(h.gfi, px, py)) : -150 <= px && -150 <= py && px <= mwwp150 && py <= mhhp150 && (px -= h.gfw2 * h.rad,
  816. py -= h.gfh2 * h.rad,
  817. b.globalAlpha = K * h.fr,
  818. b.drawImage(h.gfi, 0, 0, h.gfw, h.gfh, px, py, h.gfw * h.rad, h.gfh * h.rad),
  819. b.globalAlpha = K * (.5 + .5 * Math.cos(h.gfr / 13)) * h.fr,
  820. b.drawImage(h.gfi, 0, 0, h.gfw, h.gfh, px, py, h.gfw * h.rad, h.gfh * h.rad)),
  821. fs = 1 + .32 * h.rad,
  822. px = f * fs,
  823. py = q * fs,
  824. K = .35 * (1 - c / (46500 + c)),
  825. 1 != h.rad && (K *= Math.pow(h.rad, .25)),
  826. c = 2 * h.rad,
  827. px = px * gsc + mww2,
  828. py = py * gsc + mhh2,
  829. -150 <= px && -150 <= py && px <= mwwp150 && py <= mhhp150 && (px -= h.gfw2 * c,
  830. py -= h.gfh2 * c,
  831. b.globalAlpha = K * h.fr,
  832. b.drawImage(h.gfi, 0, 0, h.gfw, h.gfh, px, py, h.gfw * c, h.gfh * c),
  833. b.globalAlpha = K * (.5 + .5 * Math.cos(h.gfr / 13)) * h.fr,
  834. b.drawImage(h.gfi, 0, 0, h.gfw, h.gfh, px, py, h.gfw * c, h.gfh * c));
  835. b.restore();
  836. if (4E3 > Math.abs(grd - view_dist)) {
  837. b.save();
  838. b.lineWidth = 23 * gsc;
  839. b.strokeStyle = "#800000";
  840. b.fillStyle = "#300000";
  841. b.beginPath();
  842. xx = grd + Math.cos(view_ang - 2E3 / grd) * grd * .98;
  843. yy = grd + Math.sin(view_ang - 2E3 / grd) * grd * .98;
  844. b.moveTo(mww2 + (xx - view_xx) * gsc, mhh2 + (yy - view_yy) * gsc);
  845. for (w = -2E3; 2E3 >= w; w += 100)
  846. xx = grd + Math.cos(view_ang + w / grd) * grd * .98,
  847. yy = grd + Math.sin(view_ang + w / grd) * grd * .98,
  848. b.lineTo(mww2 + (xx - view_xx) * gsc, mhh2 + (yy - view_yy) * gsc);
  849. xx = grd + Math.cos(view_ang + 2E3 / grd) * (grd + 4E3);
  850. yy = grd + Math.sin(view_ang + 2E3 / grd) * (grd + 4E3);
  851. b.lineTo(mww2 + (xx - view_xx) * gsc, mhh2 + (yy - view_yy) * gsc);
  852. xx = grd + Math.cos(view_ang - 2E3 / grd) * (grd + 4E3);
  853. yy = grd + Math.sin(view_ang - 2E3 / grd) * (grd + 4E3);
  854. b.lineTo(mww2 + (xx - view_xx) * gsc, mhh2 + (yy - view_yy) * gsc);
  855. b.closePath();
  856. b.stroke();
  857. b.fill();
  858. b.restore()
  859. }
  860. wumsts && 0 < rank && 0 < snake_count && playing && (wumsts = !1,
  861. c = "Hacked by fran xD. Length",
  862. e = "of",
  863. K = "Your rank",
  864. "de" == lang ? (c = "Deine L\u00e4nge",
  865. e = "von",
  866. K = "Dein rang") : "fr" == lang ? (c = "Votre longueur",
  867. e = "de",
  868. K = "Ton rang") : "pt" == lang && (c = "Seu comprimento",
  869. e = "do",
  870. K = "Seu classifica\u00e7\u00e3o"),
  871. c = '<span style="font-size: 14px;"><span style="opacity: .4;">' + c + ': </span><span style="opacity: .8; font-weight: bold;">' + Math.floor(15 * (fpsls[snake.sct] + snake.fam / fmlts[snake.sct] - 1) - 5) / 1 + "</span></span>",
  872. c += '<BR><span style="opacity: .3;">' + K + ': </span><span style="opacity: .35;">' + rank + '</span><span style="opacity: .3;"> ' + e + ' </span><span style="opacity: .35;">' + snake_count + "</span>",
  873. lbf.innerHTML = c);
  874. b.restore()
  875. }
  876. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement