Advertisement
7rodo

Gunc

Nov 9th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.42 KB | None | 0 0
  1. ba = (() => {
  2. function b(b, a, d, e, g, f = 0, z) {
  3. b.beginPath();
  4. if (g)
  5. if (g instanceof Array) {
  6. var c = Math.cos(f);
  7. f = Math.sin(f);
  8. for (let [h, l] of g) b.lineTo(a + e * (h * c - l * f), d + e * (l * c + h * f));
  9. b.closePath()
  10. } else {
  11. if ("string" === typeof g) {
  12. g = new Path2D(g);
  13. b.save();
  14. b.translate(a, d);
  15. b.scale(e, e);
  16. b.lineWidth /= e;
  17. b.rotate(f);
  18. B.graphical.inversedRender ? (b.stroke(g), b.fill(g)) : (b.fill(g), b.stroke(g));
  19. b.restore();
  20. return
  21. }
  22. if (0 > g) {
  23. 0 === g % 2 && (f += Math.PI / g);
  24. g = -g;
  25. let l = 1 - 6 / (g * g);
  26. b.lineJoin = B.graphical.sharp ? 'miter' : 'round';
  27. b.moveTo(a + e * Math.cos(f), d + e * Math.sin(f));
  28. for (let k = 0; k < g; k++) {
  29. c = (k + 1) / g * 2 * Math.PI;
  30. var h = (k + .5) / g * 2 * Math.PI;
  31. b.quadraticCurveTo(a + e * l * Math.cos(h + f), d + e * l * Math.sin(h + f), a + e * Math.cos(c + f), d + e * Math.sin(c + f))
  32. }
  33. B.graphical.pointy && b.closePath();
  34. B.graphical.inversedRender ?
  35. (b.stroke(), b.fill()) : (b.fill(), b.stroke());
  36. b.lineJoin = B.graphical.sharp ? 'miter' : 'round';
  37. //B.graphical.pointy && (b.lineJoin = "round");
  38. return
  39. }
  40. if (0 < g) {
  41. 0 === g % 2 && (f += Math.PI / g);
  42. for (c = 0; c < g; c++) h = c / g * 2 * Math.PI, b.lineTo(a + e * Math.cos(h + f), d + e * Math.sin(h + f));
  43. b.closePath()
  44. }
  45. }
  46. else b.arc(a, d, e, 0, 2 * Math.PI);
  47. B.graphical.inversedRender ? (b.stroke(), b.fill()) : (b.fill(), b.stroke())
  48. }
  49. return (a, c, d, x, t = 1, f = 1, m = 0, p = !1, z = !1, q = !1, F = d.render) => {
  50. let h = z || g,
  51. u = q ? 1 : F.status.getFade();
  52. f = f * x * d.size;
  53. let n = M[d.index],
  54. y = a,
  55. R = c;
  56. q = !1 === q ? d : q;
  57. if (0 !== u && 0 !== t) {
  58. F.expandsWithDeath && (f *=
  59. 1 + .5 * (1 - u));
  60. if (z !== Ma && (1 !== u || 1 !== t))
  61. if (B.graphical.fancyAnimations) h = Ma, h.canvas.width = h.canvas.height = f * n.position.axis + 20 * x, y = h.canvas.width / 2 - f * n.position.axis * n.position.middle.x * Math.cos(m) / 4, R = h.canvas.height / 2 - f * n.position.axis * n.position.middle.x * Math.sin(m) / 4, z = !1;
  62. else if (.5 > u * t) return;
  63. "object" !== typeof h && (h = g);
  64. h.lineCap = "round";
  65. h.lineJoin = B.graphical.sharp ? 'miter' : 'round' ;
  66. if (q.turrets.length === n.turrets.length)
  67. for (var E = 0; E < n.turrets.length; E++) {
  68. var v = n.turrets[E];
  69. if (0 === v.layer) {
  70. var w = v.direction + v.angle + m,
  71. A =
  72. v.offset * f;
  73. ba(y + A * Math.cos(w), R + A * Math.sin(w), v, x, t, f / x / v.size * v.sizeFactor, q.turrets[E].facing + p * m, p, h, q.turrets[E], F)
  74. }
  75. } else throw Error("Mismatch turret number with mockup.");
  76. q.guns.update();//guncolour
  77. h.lineWidth = Math.max(B.graphical.mininumBorderChunk, x * B.graphical.borderChunk);
  78. E = F.status.getColor();
  79. w = F.status.getBlend();
  80. E = T(e(d.color), E, w);
  81. d.invuln && 100 > (Date.now() - d.invuln) % 200 && (v = T(v, l.vlgrey, .3), E = T(E, l.vlgrey, .3));
  82. if (q.guns.length === n.guns.length)
  83. for (w = q.guns.getPositions(),
  84. A = 0; A < n.guns.length; A++) {
  85. var D = n.guns[A],
  86. r = 1 === D.aspect ? w[A] / 2 : w[A]; {
  87. d = h;
  88. v = y + f * (D.offset * Math.cos(D.direction + D.angle + m) + (D.length / 2 - r) * Math.cos(D.angle + m));
  89. r = R + f * (D.offset * Math.sin(D.direction + D.angle + m) + (D.length / 2 - r) * Math.sin(D.angle + m));
  90. var C = f * (D.length / 2 - (1 === D.aspect ? w[A] : 0)),
  91. L = f * D.width / 2,
  92. G = D.aspect;
  93. D = D.angle + m;
  94. var X = L;
  95. 0 < G ? X *= G : 0 > G && (L *= -G);
  96. G = Math.atan2(X, C);
  97. let b = Math.atan2(L, C);
  98. X = Math.sqrt(C * C + X * X);
  99. C = Math.sqrt(C * C + L * L);
  100. var lol = (D.color != null) ? T(e(D.color), F.status.getColor(), F.status.getBlend()) : T(l.grey, F.status.getColor(), F.status.getBlend());
  101. k(h, lol);
  102. d.beginPath();
  103. d.moveTo(v + X * Math.cos(D + G), r + X * Math.sin(D + G));
  104. d.lineTo(v +
  105. C * Math.cos(D + Math.PI - b), r + C * Math.sin(D + Math.PI - b));
  106. d.lineTo(v + C * Math.cos(D + Math.PI + b), r + C * Math.sin(D + Math.PI + b));
  107. d.lineTo(v + X * Math.cos(D - G), r + X * Math.sin(D - G));
  108. d.closePath();
  109. B.graphical.inversedRender ? (d.stroke(), d.fill()) : (d.fill(), d.stroke())
  110. }
  111. } else throw Error("Mismatch gun number with mockup.");
  112. h.globalAlpha = 1;
  113. k(h, E);
  114. b(h, y, R, f / n.size * n.realSize, n.shape, m);
  115. if (q.turrets.length === n.turrets.length)
  116. for (E = 0; E < n.turrets.length; E++) d = n.turrets[E], 1 === d.layer && (v = d.direction + d.angle + m, w = d.offset * f, ba(y +
  117. w * Math.cos(v), R + w * Math.sin(v), d, x, t, f / x / d.size * d.sizeFactor, q.turrets[E].facing + p * m, p, h, q.turrets[E], F));
  118. else throw Error("Mismatch turret number with mockup.");
  119. z || h === g || (g.save(), g.globalAlpha = t * u, g.drawImage(h.canvas, a - y, c - R), g.restore())
  120. }
  121. }
  122. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement